-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | libkcal/phoneformat.cpp | 34 |
2 files changed, 26 insertions, 10 deletions
@@ -1,99 +1,99 @@ | |||
1 | ############################################################################# | 1 | ############################################################################# |
2 | # Makefile for building: kopi-desktop | 2 | # Makefile for building: kopi-desktop |
3 | # Generated by qmake (1.07a) (Qt 3.3.3) on: Mon Aug 9 12:10:32 2004 | 3 | # Generated by qmake (1.07a) (Qt 3.3.3) on: Mon Aug 9 13:18:13 2004 |
4 | # Project: kopi-desktop.pro | 4 | # Project: kopi-desktop.pro |
5 | # Template: subdirs | 5 | # Template: subdirs |
6 | # Command: $(QMAKE) "CONFIG+=thread" "CONFIG+=debug" -o Makefile kopi-desktop.pro | 6 | # Command: $(QMAKE) "CONFIG+=thread" "CONFIG+=debug" -o Makefile kopi-desktop.pro |
7 | ############################################################################# | 7 | ############################################################################# |
8 | 8 | ||
9 | MAKEFILE =Makefile | 9 | MAKEFILE =Makefile |
10 | QMAKE =qmake | 10 | QMAKE =qmake |
11 | DEL_FILE = rm -f | 11 | DEL_FILE = rm -f |
12 | CHK_DIR_EXISTS= test -d | 12 | CHK_DIR_EXISTS= test -d |
13 | MKDIR = mkdir -p | 13 | MKDIR = mkdir -p |
14 | INSTALL_FILE= | 14 | INSTALL_FILE= |
15 | INSTALL_DIR = | 15 | INSTALL_DIR = |
16 | SUBTARGETS = \ | 16 | SUBTARGETS = \ |
17 | sub-gammu-emb-common \ | 17 | sub-gammu-emb-common \ |
18 | sub-libical \ | 18 | sub-libical \ |
19 | sub-libkcal \ | 19 | sub-libkcal \ |
20 | sub-microkde \ | 20 | sub-microkde \ |
21 | sub-libkdepim \ | 21 | sub-libkdepim \ |
22 | sub-kabc \ | 22 | sub-kabc \ |
23 | sub-korganizer \ | 23 | sub-korganizer \ |
24 | sub-kaddressbook \ | 24 | sub-kaddressbook \ |
25 | sub-kabc-plugins-file \ | 25 | sub-kabc-plugins-file \ |
26 | sub-kabc-plugins-dir | 26 | sub-kabc-plugins-dir |
27 | 27 | ||
28 | first: all | 28 | first: all |
29 | 29 | ||
30 | all: Makefile $(SUBTARGETS) | 30 | all: Makefile $(SUBTARGETS) |
31 | 31 | ||
32 | gammu/emb/common/$(MAKEFILE): | 32 | gammu/emb/common/$(MAKEFILE): |
33 | @$(CHK_DIR_EXISTS) "gammu/emb/common" || $(MKDIR) "gammu/emb/common" | 33 | @$(CHK_DIR_EXISTS) "gammu/emb/common" || $(MKDIR) "gammu/emb/common" |
34 | cd gammu/emb/common && $(QMAKE) common.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 34 | cd gammu/emb/common && $(QMAKE) common.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
35 | sub-gammu-emb-common: gammu/emb/common/$(MAKEFILE) FORCE | 35 | sub-gammu-emb-common: gammu/emb/common/$(MAKEFILE) FORCE |
36 | cd gammu/emb/common && $(MAKE) -f $(MAKEFILE) | 36 | cd gammu/emb/common && $(MAKE) -f $(MAKEFILE) |
37 | 37 | ||
38 | libical/$(MAKEFILE): | 38 | libical/$(MAKEFILE): |
39 | @$(CHK_DIR_EXISTS) "libical" || $(MKDIR) "libical" | 39 | @$(CHK_DIR_EXISTS) "libical" || $(MKDIR) "libical" |
40 | cd libical && $(QMAKE) libical.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 40 | cd libical && $(QMAKE) libical.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
41 | sub-libical: libical/$(MAKEFILE) FORCE | 41 | sub-libical: libical/$(MAKEFILE) FORCE |
42 | cd libical && $(MAKE) -f $(MAKEFILE) | 42 | cd libical && $(MAKE) -f $(MAKEFILE) |
43 | 43 | ||
44 | libkcal/$(MAKEFILE): | 44 | libkcal/$(MAKEFILE): |
45 | @$(CHK_DIR_EXISTS) "libkcal" || $(MKDIR) "libkcal" | 45 | @$(CHK_DIR_EXISTS) "libkcal" || $(MKDIR) "libkcal" |
46 | cd libkcal && $(QMAKE) libkcal.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 46 | cd libkcal && $(QMAKE) libkcal.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
47 | sub-libkcal: libkcal/$(MAKEFILE) FORCE | 47 | sub-libkcal: libkcal/$(MAKEFILE) FORCE |
48 | cd libkcal && $(MAKE) -f $(MAKEFILE) | 48 | cd libkcal && $(MAKE) -f $(MAKEFILE) |
49 | 49 | ||
50 | microkde/$(MAKEFILE): | 50 | microkde/$(MAKEFILE): |
51 | @$(CHK_DIR_EXISTS) "microkde" || $(MKDIR) "microkde" | 51 | @$(CHK_DIR_EXISTS) "microkde" || $(MKDIR) "microkde" |
52 | cd microkde && $(QMAKE) microkde.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 52 | cd microkde && $(QMAKE) microkde.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
53 | sub-microkde: microkde/$(MAKEFILE) FORCE | 53 | sub-microkde: microkde/$(MAKEFILE) FORCE |
54 | cd microkde && $(MAKE) -f $(MAKEFILE) | 54 | cd microkde && $(MAKE) -f $(MAKEFILE) |
55 | 55 | ||
56 | libkdepim/$(MAKEFILE): | 56 | libkdepim/$(MAKEFILE): |
57 | @$(CHK_DIR_EXISTS) "libkdepim" || $(MKDIR) "libkdepim" | 57 | @$(CHK_DIR_EXISTS) "libkdepim" || $(MKDIR) "libkdepim" |
58 | cd libkdepim && $(QMAKE) libkdepim.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 58 | cd libkdepim && $(QMAKE) libkdepim.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
59 | sub-libkdepim: libkdepim/$(MAKEFILE) FORCE | 59 | sub-libkdepim: libkdepim/$(MAKEFILE) FORCE |
60 | cd libkdepim && $(MAKE) -f $(MAKEFILE) | 60 | cd libkdepim && $(MAKE) -f $(MAKEFILE) |
61 | 61 | ||
62 | kabc/$(MAKEFILE): | 62 | kabc/$(MAKEFILE): |
63 | @$(CHK_DIR_EXISTS) "kabc" || $(MKDIR) "kabc" | 63 | @$(CHK_DIR_EXISTS) "kabc" || $(MKDIR) "kabc" |
64 | cd kabc && $(QMAKE) kabc.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 64 | cd kabc && $(QMAKE) kabc.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
65 | sub-kabc: kabc/$(MAKEFILE) FORCE | 65 | sub-kabc: kabc/$(MAKEFILE) FORCE |
66 | cd kabc && $(MAKE) -f $(MAKEFILE) | 66 | cd kabc && $(MAKE) -f $(MAKEFILE) |
67 | 67 | ||
68 | korganizer/$(MAKEFILE): | 68 | korganizer/$(MAKEFILE): |
69 | @$(CHK_DIR_EXISTS) "korganizer" || $(MKDIR) "korganizer" | 69 | @$(CHK_DIR_EXISTS) "korganizer" || $(MKDIR) "korganizer" |
70 | cd korganizer && $(QMAKE) korganizer.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 70 | cd korganizer && $(QMAKE) korganizer.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
71 | sub-korganizer: korganizer/$(MAKEFILE) FORCE | 71 | sub-korganizer: korganizer/$(MAKEFILE) FORCE |
72 | cd korganizer && $(MAKE) -f $(MAKEFILE) | 72 | cd korganizer && $(MAKE) -f $(MAKEFILE) |
73 | 73 | ||
74 | kaddressbook/$(MAKEFILE): | 74 | kaddressbook/$(MAKEFILE): |
75 | @$(CHK_DIR_EXISTS) "kaddressbook" || $(MKDIR) "kaddressbook" | 75 | @$(CHK_DIR_EXISTS) "kaddressbook" || $(MKDIR) "kaddressbook" |
76 | cd kaddressbook && $(QMAKE) kaddressbook.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 76 | cd kaddressbook && $(QMAKE) kaddressbook.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
77 | sub-kaddressbook: kaddressbook/$(MAKEFILE) FORCE | 77 | sub-kaddressbook: kaddressbook/$(MAKEFILE) FORCE |
78 | cd kaddressbook && $(MAKE) -f $(MAKEFILE) | 78 | cd kaddressbook && $(MAKE) -f $(MAKEFILE) |
79 | 79 | ||
80 | kabc/plugins/file/$(MAKEFILE): | 80 | kabc/plugins/file/$(MAKEFILE): |
81 | @$(CHK_DIR_EXISTS) "kabc/plugins/file" || $(MKDIR) "kabc/plugins/file" | 81 | @$(CHK_DIR_EXISTS) "kabc/plugins/file" || $(MKDIR) "kabc/plugins/file" |
82 | cd kabc/plugins/file && $(QMAKE) file.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 82 | cd kabc/plugins/file && $(QMAKE) file.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
83 | sub-kabc-plugins-file: kabc/plugins/file/$(MAKEFILE) FORCE | 83 | sub-kabc-plugins-file: kabc/plugins/file/$(MAKEFILE) FORCE |
84 | cd kabc/plugins/file && $(MAKE) -f $(MAKEFILE) | 84 | cd kabc/plugins/file && $(MAKE) -f $(MAKEFILE) |
85 | 85 | ||
86 | kabc/plugins/dir/$(MAKEFILE): | 86 | kabc/plugins/dir/$(MAKEFILE): |
87 | @$(CHK_DIR_EXISTS) "kabc/plugins/dir" || $(MKDIR) "kabc/plugins/dir" | 87 | @$(CHK_DIR_EXISTS) "kabc/plugins/dir" || $(MKDIR) "kabc/plugins/dir" |
88 | cd kabc/plugins/dir && $(QMAKE) dir.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) | 88 | cd kabc/plugins/dir && $(QMAKE) dir.pro "CONFIG+=thread" "CONFIG+=debug" -o $(MAKEFILE) |
89 | sub-kabc-plugins-dir: kabc/plugins/dir/$(MAKEFILE) FORCE | 89 | sub-kabc-plugins-dir: kabc/plugins/dir/$(MAKEFILE) FORCE |
90 | cd kabc/plugins/dir && $(MAKE) -f $(MAKEFILE) | 90 | cd kabc/plugins/dir && $(MAKE) -f $(MAKEFILE) |
91 | 91 | ||
92 | Makefile: kopi-desktop.pro /usr/local/qtgcc/mkspecs/default/qmake.conf | 92 | Makefile: kopi-desktop.pro /usr/local/qtgcc/mkspecs/default/qmake.conf |
93 | $(QMAKE) "CONFIG+=thread" "CONFIG+=debug" -o Makefile kopi-desktop.pro | 93 | $(QMAKE) "CONFIG+=thread" "CONFIG+=debug" -o Makefile kopi-desktop.pro |
94 | qmake: qmake_all | 94 | qmake: qmake_all |
95 | @$(QMAKE) "CONFIG+=thread" "CONFIG+=debug" -o Makefile kopi-desktop.pro | 95 | @$(QMAKE) "CONFIG+=thread" "CONFIG+=debug" -o Makefile kopi-desktop.pro |
96 | 96 | ||
97 | all: $(SUBTARGETS) | 97 | all: $(SUBTARGETS) |
98 | qmake_all: gammu/emb/common/$(MAKEFILE) libical/$(MAKEFILE) libkcal/$(MAKEFILE) microkde/$(MAKEFILE) libkdepim/$(MAKEFILE) kabc/$(MAKEFILE) korganizer/$(MAKEFILE) kaddressbook/$(MAKEFILE) kabc/plugins/file/$(MAKEFILE) kabc/plugins/dir/$(MAKEFILE) | 98 | qmake_all: gammu/emb/common/$(MAKEFILE) libical/$(MAKEFILE) libkcal/$(MAKEFILE) microkde/$(MAKEFILE) libkdepim/$(MAKEFILE) kabc/$(MAKEFILE) korganizer/$(MAKEFILE) kaddressbook/$(MAKEFILE) kabc/plugins/file/$(MAKEFILE) kabc/plugins/dir/$(MAKEFILE) |
99 | ( [ -d gammu/emb/common ] && cd gammu/emb/common ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true | 99 | ( [ -d gammu/emb/common ] && cd gammu/emb/common ; grep "^qmake_all:" $(MAKEFILE) && $(MAKE) -f $(MAKEFILE) qmake_all; ) || true |
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp index bc1b863..596148e 100644 --- a/libkcal/phoneformat.cpp +++ b/libkcal/phoneformat.cpp | |||
@@ -250,257 +250,273 @@ public: | |||
250 | } else { | 250 | } else { |
251 | event->setDtEnd (fromGSM ( dtp )); | 251 | event->setDtEnd (fromGSM ( dtp )); |
252 | } | 252 | } |
253 | break; | 253 | break; |
254 | case CAL_ALARM_DATETIME: | 254 | case CAL_ALARM_DATETIME: |
255 | dtp = &Note->Entries[i].Date ; | 255 | dtp = &Note->Entries[i].Date ; |
256 | alarm = true; | 256 | alarm = true; |
257 | alarmDt = fromGSM ( dtp ); | 257 | alarmDt = fromGSM ( dtp ); |
258 | break; | 258 | break; |
259 | case CAL_SILENT_ALARM_DATETIME: | 259 | case CAL_SILENT_ALARM_DATETIME: |
260 | dtp = &Note->Entries[i].Date ; | 260 | dtp = &Note->Entries[i].Date ; |
261 | alarm = true; | 261 | alarm = true; |
262 | alarmDt = fromGSM ( dtp ); | 262 | alarmDt = fromGSM ( dtp ); |
263 | break; | 263 | break; |
264 | case CAL_RECURRANCE: | 264 | case CAL_RECURRANCE: |
265 | rec_type = Note->Entries[i].Number; | 265 | rec_type = Note->Entries[i].Number; |
266 | //printmsg("Repeat : %d day%s\n",Note->Entries[i].Number/24,((Note->Entries[i].Number/24)>1) ? "s":"" ); | 266 | //printmsg("Repeat : %d day%s\n",Note->Entries[i].Number/24,((Note->Entries[i].Number/24)>1) ? "s":"" ); |
267 | break; | 267 | break; |
268 | case CAL_TEXT: | 268 | case CAL_TEXT: |
269 | //qDebug(" ev text %s", DecodeUnicodeConsole(Note->Entries[i].Text) ); | 269 | //qDebug(" ev text %s", DecodeUnicodeConsole(Note->Entries[i].Text) ); |
270 | event->setSummary( QString::fromUtf8 ( (const char*)DecodeUnicodeConsole( Note->Entries[i].Text ))); | 270 | event->setSummary( QString::fromUtf8 ( (const char*)DecodeUnicodeConsole( Note->Entries[i].Text ))); |
271 | break; | 271 | break; |
272 | case CAL_LOCATION: | 272 | case CAL_LOCATION: |
273 | event->setLocation(QString::fromUtf8 ((const char*) DecodeUnicodeConsole(Note->Entries[i].Text) )); | 273 | event->setLocation(QString::fromUtf8 ((const char*) DecodeUnicodeConsole(Note->Entries[i].Text) )); |
274 | break; | 274 | break; |
275 | case CAL_PHONE: | 275 | case CAL_PHONE: |
276 | //printmsg("Phone : \"%s\"\n",DecodeUnicodeConsole(Note->Entries[i].Text)); | 276 | //printmsg("Phone : \"%s\"\n",DecodeUnicodeConsole(Note->Entries[i].Text)); |
277 | break; | 277 | break; |
278 | case CAL_PRIVATE: | 278 | case CAL_PRIVATE: |
279 | if ( Note->Entries[i].Number == 1 ) | 279 | if ( Note->Entries[i].Number == 1 ) |
280 | event->setSecrecy( Incidence::SecrecyPrivate ); | 280 | event->setSecrecy( Incidence::SecrecyPrivate ); |
281 | else | 281 | else |
282 | event->setSecrecy( Incidence::SecrecyPublic ); | 282 | event->setSecrecy( Incidence::SecrecyPublic ); |
283 | 283 | ||
284 | break; | 284 | break; |
285 | case CAL_CONTACTID: | 285 | case CAL_CONTACTID: |
286 | #if 0 | 286 | #if 0 |
287 | entry.Location = Note->Entries[i].Number; | 287 | entry.Location = Note->Entries[i].Number; |
288 | entry.MemoryType = MEM_ME; | 288 | entry.MemoryType = MEM_ME; |
289 | error=Phone->GetMemory(&s, &entry); | 289 | error=Phone->GetMemory(&s, &entry); |
290 | if (error == ERR_NONE) { | 290 | if (error == ERR_NONE) { |
291 | name = GSM_PhonebookGetEntryName(&entry); | 291 | name = GSM_PhonebookGetEntryName(&entry); |
292 | if (name != NULL) { | 292 | if (name != NULL) { |
293 | //printmsg("Contact ID : \"%s\" (%d)\n", DecodeUnicodeConsole(name), Note->Entries[i].Number); | 293 | //printmsg("Contact ID : \"%s\" (%d)\n", DecodeUnicodeConsole(name), Note->Entries[i].Number); |
294 | } else { | 294 | } else { |
295 | //printmsg("Contact ID : %d\n",Note->Entries[i].Number); | 295 | //printmsg("Contact ID : %d\n",Note->Entries[i].Number); |
296 | } | 296 | } |
297 | } else { | 297 | } else { |
298 | //printmsg("Contact ID : %d\n",Note->Entries[i].Number); | 298 | //printmsg("Contact ID : %d\n",Note->Entries[i].Number); |
299 | } | 299 | } |
300 | #endif | 300 | #endif |
301 | break; | 301 | break; |
302 | case CAL_REPEAT_DAYOFWEEK: | 302 | case CAL_REPEAT_DAYOFWEEK: |
303 | repeat_dayofweek = Note->Entries[i].Number; | 303 | repeat_dayofweek = Note->Entries[i].Number; |
304 | repeating = true; | 304 | repeating = true; |
305 | break; | 305 | break; |
306 | case CAL_REPEAT_DAY: | 306 | case CAL_REPEAT_DAY: |
307 | repeat_day = Note->Entries[i].Number; | 307 | repeat_day = Note->Entries[i].Number; |
308 | repeating = true; | 308 | repeating = true; |
309 | break; | 309 | break; |
310 | case CAL_REPEAT_WEEKOFMONTH: | 310 | case CAL_REPEAT_WEEKOFMONTH: |
311 | repeat_weekofmonth = Note->Entries[i].Number; | 311 | repeat_weekofmonth = Note->Entries[i].Number; |
312 | repeating = true; | 312 | repeating = true; |
313 | break; | 313 | break; |
314 | case CAL_REPEAT_MONTH: | 314 | case CAL_REPEAT_MONTH: |
315 | repeat_month = Note->Entries[i].Number; | 315 | repeat_month = Note->Entries[i].Number; |
316 | repeating = true; | 316 | repeating = true; |
317 | break; | 317 | break; |
318 | case CAL_REPEAT_FREQUENCY: | 318 | case CAL_REPEAT_FREQUENCY: |
319 | repeat_frequency = Note->Entries[i].Number; | 319 | repeat_frequency = Note->Entries[i].Number; |
320 | repeating = true; | 320 | repeating = true; |
321 | break; | 321 | break; |
322 | case CAL_REPEAT_STARTDATE: | 322 | case CAL_REPEAT_STARTDATE: |
323 | repeat_startdate = Note->Entries[i].Date; | 323 | repeat_startdate = Note->Entries[i].Date; |
324 | repeating = true; | 324 | repeating = true; |
325 | break; | 325 | break; |
326 | case CAL_REPEAT_STOPDATE: | 326 | case CAL_REPEAT_STOPDATE: |
327 | repeat_stopdate = Note->Entries[i].Date; | 327 | repeat_stopdate = Note->Entries[i].Date; |
328 | repeating = true; | 328 | repeating = true; |
329 | break; | 329 | break; |
330 | } | 330 | } |
331 | } | 331 | } |
332 | #if 0 | 332 | #if 0 |
333 | event->setDescription( attList[4] ); | 333 | event->setDescription( attList[4] ); |
334 | bool repeating = false; | 334 | bool repeating = false; |
335 | int repeat_dayofweek = -1; | 335 | int repeat_dayofweek = -1; |
336 | int repeat_day = -1; | 336 | int repeat_day = -1; |
337 | int repeat_weekofmonth = -1; | 337 | int repeat_weekofmonth = -1; |
338 | int repeat_month = -1; | 338 | int repeat_month = -1; |
339 | int repeat_frequency = -1; | 339 | int repeat_frequency = -1; |
340 | GSM_DateTime repeat_startdate = {0,0,0,0,0,0,0}; | 340 | GSM_DateTime repeat_startdate = {0,0,0,0,0,0,0}; |
341 | GSM_DateTime repeat_stopdate = {0,0,0,0,0,0,0}; | 341 | GSM_DateTime repeat_stopdate = {0,0,0,0,0,0,0}; |
342 | 342 | ||
343 | #endif | 343 | #endif |
344 | 344 | ||
345 | QString recurString = "no"; | 345 | QString recurString = "no"; |
346 | if ( repeating ) { | 346 | if ( repeating && repeat_frequency != -1) { |
347 | recurString = "y"; | 347 | recurString = "y"; |
348 | if ( repeat_dayofweek >= 0 ) | 348 | if ( repeat_dayofweek >= 0 ) |
349 | recurString += "dow" + QString::number (repeat_dayofweek); | 349 | recurString += "dow" + QString::number (repeat_dayofweek); |
350 | if ( repeat_day >= 0 ) | 350 | if ( repeat_day >= 0 ) |
351 | recurString += "d" + QString::number (repeat_day); | 351 | recurString += "d" + QString::number (repeat_day); |
352 | if ( repeat_weekofmonth >= 0 ) | 352 | if ( repeat_weekofmonth >= 0 ) |
353 | recurString += "w" + QString::number (repeat_weekofmonth); | 353 | recurString += "w" + QString::number (repeat_weekofmonth); |
354 | if ( repeat_month >= 0 ) | 354 | if ( repeat_month >= 0 ) |
355 | recurString += "m" + QString::number ( repeat_month ); | 355 | recurString += "m" + QString::number ( repeat_month ); |
356 | if ( repeat_frequency >= 0 ) | 356 | if ( repeat_frequency >= 0 ) |
357 | recurString += "f" + QString::number (repeat_frequency ); | 357 | recurString += "f" + QString::number (repeat_frequency ); |
358 | 358 | ||
359 | int rtype = 0; | 359 | int rtype = 0; |
360 | // qDebug("recurs "); | 360 | // qDebug("recurs "); |
361 | QDate startDate, endDate; | 361 | QDate startDate, endDate; |
362 | if ( repeat_startdate.Day > 0 ) | 362 | if ( repeat_startdate.Day > 0 ) { |
363 | startDate = datefromGSM ( &repeat_startdate ); | 363 | startDate = datefromGSM ( &repeat_startdate ); |
364 | else | 364 | event->setDtStart(QDateTime ( startDate, event->dtStart().time())); |
365 | } else { | ||
365 | startDate = event->dtStart().date(); | 366 | startDate = event->dtStart().date(); |
367 | } | ||
366 | int freq = repeat_frequency; | 368 | int freq = repeat_frequency; |
367 | bool hasEndDate = false; | 369 | bool hasEndDate = false; |
368 | if ( repeat_stopdate.Day > 0 ) { | 370 | if ( repeat_stopdate.Day > 0 ) { |
369 | endDate = datefromGSM ( &repeat_stopdate ); | 371 | endDate = datefromGSM ( &repeat_stopdate ); |
370 | hasEndDate = true; | 372 | hasEndDate = true; |
371 | } | 373 | } |
372 | 374 | ||
373 | uint weekDaysNum = repeat_dayofweek ; | 375 | uint weekDaysNum = repeat_dayofweek ; |
374 | 376 | // 1 == monday, 7 == sunday | |
375 | QBitArray weekDays( 7 ); | 377 | QBitArray weekDays( 7 ); |
376 | int i; | 378 | int i; |
377 | int bb = 1; | 379 | int bb = 1; |
378 | for( i = 1; i <= 7; ++i ) { | 380 | for( i = 1; i <= 7; ++i ) { |
379 | weekDays.setBit( i - 1, ( bb & weekDaysNum )); | 381 | weekDays.setBit( i - 1, ( bb & weekDaysNum )); |
380 | bb = 2 << (i-1); | 382 | bb = 2 << (i-1); |
381 | //qDebug(" %d bit %d ",i-1,weekDays.at(i-1) ); | 383 | //qDebug(" %d bit %d ",i-1,weekDays.at(i-1) ); |
382 | } | 384 | } |
383 | // qDebug("next "); | 385 | // qDebug("next "); |
384 | int pos = 0; | 386 | int pos = 0; |
385 | Recurrence *r = event->recurrence(); | 387 | Recurrence *r = event->recurrence(); |
386 | /* | 388 | /* |
387 | 0 daily; | 389 | 0 daily; |
388 | 1 weekly;x | 390 | 1 weekly;x |
389 | 2 monthpos;x | 391 | 2 monthpos;x |
390 | 3 monthlyday; | 392 | 3 monthlyday; |
391 | 4 rYearlyMont | 393 | 4 rYearlyMont |
392 | bool repeating = false; | 394 | bool repeating = false; |
393 | int repeat_dayofweek = -1; | 395 | int repeat_dayofweek = -1; |
394 | int repeat_day = -1; | 396 | int repeat_day = -1; |
395 | int repeat_weekofmonth = -1; | 397 | int repeat_weekofmonth = -1; |
396 | int repeat_month = -1; | 398 | int repeat_month = -1; |
397 | int repeat_frequency = -1; | 399 | int repeat_frequency = -1; |
398 | */ | 400 | */ |
399 | int dayOfWeek = startDate.dayOfWeek(); | 401 | int dayOfWeek = startDate.dayOfWeek(); |
400 | if ( repeat_weekofmonth >= 0 ) { | 402 | if ( repeat_weekofmonth >= 0 ) { |
401 | rtype = 2; | 403 | rtype = 2; // ************************ 2 MonthlyPos |
402 | pos = repeat_weekofmonth; | 404 | pos = repeat_weekofmonth; |
403 | if ( repeat_dayofweek >= 0 ) | 405 | if ( repeat_dayofweek >= 0 ) |
404 | dayOfWeek = repeat_dayofweek; | 406 | dayOfWeek = repeat_dayofweek; |
407 | if (repeat_month > 0) { | ||
408 | if ( repeat_month != event->dtStart().date().month() ) { | ||
409 | QDate date (event->dtStart().date().year(),repeat_month,event->dtStart().date().day() ); | ||
410 | event->setDtStart(QDateTime ( date , event->dtStart().time()) ); | ||
411 | } | ||
412 | if ( freq == 1 ) | ||
413 | freq = 12; | ||
414 | } | ||
405 | } else if ( repeat_dayofweek >= 0 ) { | 415 | } else if ( repeat_dayofweek >= 0 ) { |
406 | rtype = 1; | 416 | rtype = 1;// ************************ 1 Weekly |
407 | } if ( repeat_dayofweek >= 0 ) { | 417 | } else if ( repeat_day >= 0 ) { |
408 | rtype = 1; | 418 | if ( repeat_month > 0) { |
419 | rtype = 4; | ||
420 | } else { | ||
421 | rtype = 3; | ||
422 | } | ||
423 | } else { | ||
424 | rtype = 0 ; | ||
409 | } | 425 | } |
410 | 426 | ||
411 | if ( rtype == 0 ) { | 427 | if ( rtype == 0 ) { |
412 | if ( hasEndDate ) r->setDaily( freq, endDate ); | 428 | if ( hasEndDate ) r->setDaily( freq, endDate ); |
413 | else r->setDaily( freq, -1 ); | 429 | else r->setDaily( freq, -1 ); |
414 | } else if ( rtype == 1 ) { | 430 | } else if ( rtype == 1 ) { |
415 | if ( hasEndDate ) r->setWeekly( freq, weekDays, endDate ); | 431 | if ( hasEndDate ) r->setWeekly( freq, weekDays, endDate ); |
416 | else r->setWeekly( freq, weekDays, -1 ); | 432 | else r->setWeekly( freq, weekDays, -1 ); |
417 | } else if ( rtype == 3 ) { | 433 | } else if ( rtype == 3 ) { |
418 | if ( hasEndDate ) | 434 | if ( hasEndDate ) |
419 | r->setMonthly( Recurrence::rMonthlyDay, freq, endDate ); | 435 | r->setMonthly( Recurrence::rMonthlyDay, freq, endDate ); |
420 | else | 436 | else |
421 | r->setMonthly( Recurrence::rMonthlyDay, freq, -1 ); | 437 | r->setMonthly( Recurrence::rMonthlyDay, freq, -1 ); |
422 | r->addMonthlyDay( startDate.day() ); | 438 | r->addMonthlyDay( startDate.day() ); |
423 | } else if ( rtype == 2 ) { | 439 | } else if ( rtype == 2 ) { |
424 | if ( hasEndDate ) | 440 | if ( hasEndDate ) |
425 | r->setMonthly( Recurrence::rMonthlyPos, freq, endDate ); | 441 | r->setMonthly( Recurrence::rMonthlyPos, freq, endDate ); |
426 | else | 442 | else |
427 | r->setMonthly( Recurrence::rMonthlyPos, freq, -1 ); | 443 | r->setMonthly( Recurrence::rMonthlyPos, freq, -1 ); |
428 | QBitArray days( 7 ); | 444 | QBitArray days( 7 ); |
429 | days.fill( false ); | 445 | days.fill( false ); |
430 | days.setBit( dayOfWeek - 1 ); | 446 | days.setBit( dayOfWeek - 1 ); |
431 | r->addMonthlyPos( pos, days ); | 447 | r->addMonthlyPos( pos, days ); |
432 | } else if ( rtype == 4 ) { | 448 | } else if ( rtype == 4 ) { |
433 | if ( hasEndDate ) | 449 | if ( hasEndDate ) |
434 | r->setYearly( Recurrence::rYearlyMonth, freq, endDate ); | 450 | r->setYearly( Recurrence::rYearlyMonth, freq, endDate ); |
435 | else | 451 | else |
436 | r->setYearly( Recurrence::rYearlyMonth, freq, -1 ); | 452 | r->setYearly( Recurrence::rYearlyMonth, freq, -1 ); |
437 | r->addYearlyNum( startDate.month() ); | 453 | r->addYearlyNum( startDate.month() ); |
438 | } | 454 | } |
439 | } else { | 455 | } else { |
440 | event->recurrence()->unsetRecurs(); | 456 | event->recurrence()->unsetRecurs(); |
441 | } | 457 | } |
442 | 458 | ||
443 | QStringList categoryList; | 459 | QStringList categoryList; |
444 | categoryList << getCategory( Note ); | 460 | categoryList << getCategory( Note ); |
445 | event->setCategories( categoryList ); | 461 | event->setCategories( categoryList ); |
446 | QString alarmString = "na"; | 462 | QString alarmString = "na"; |
447 | // strange 0 semms to mean: alarm enabled | 463 | // strange 0 semms to mean: alarm enabled |
448 | if ( alarm ) { | 464 | if ( alarm ) { |
449 | Alarm *alarm; | 465 | Alarm *alarm; |
450 | if ( event->alarms().count() > 0 ) | 466 | if ( event->alarms().count() > 0 ) |
451 | alarm = event->alarms().first(); | 467 | alarm = event->alarms().first(); |
452 | else { | 468 | else { |
453 | alarm = new Alarm( event ); | 469 | alarm = new Alarm( event ); |
454 | event->addAlarm( alarm ); | 470 | event->addAlarm( alarm ); |
455 | } | 471 | } |
456 | alarm->setType( Alarm::Audio ); | 472 | alarm->setType( Alarm::Audio ); |
457 | alarm->setEnabled( true ); | 473 | alarm->setEnabled( true ); |
458 | int alarmOffset = alarmDt.secsTo( event->dtStart() ); | 474 | int alarmOffset = alarmDt.secsTo( event->dtStart() ); |
459 | alarm->setStartOffset( -alarmOffset ); | 475 | alarm->setStartOffset( -alarmOffset ); |
460 | alarmString = QString::number( alarmOffset ); | 476 | alarmString = QString::number( alarmOffset ); |
461 | } else { | 477 | } else { |
462 | Alarm *alarm; | 478 | Alarm *alarm; |
463 | if ( event->alarms().count() > 0 ) { | 479 | if ( event->alarms().count() > 0 ) { |
464 | alarm = event->alarms().first(); | 480 | alarm = event->alarms().first(); |
465 | alarm->setType( Alarm::Audio ); | 481 | alarm->setType( Alarm::Audio ); |
466 | alarm->setStartOffset( -60*15 ); | 482 | alarm->setStartOffset( -60*15 ); |
467 | alarm->setEnabled( false ); | 483 | alarm->setEnabled( false ); |
468 | } | 484 | } |
469 | } | 485 | } |
470 | // csum ***************************************** | 486 | // csum ***************************************** |
471 | QStringList attList; | 487 | QStringList attList; |
472 | uint cSum; | 488 | uint cSum; |
473 | attList << dtToString ( event->dtStart() ); | 489 | attList << dtToString ( event->dtStart() ); |
474 | attList << dtToString ( event->dtEnd() ); | 490 | attList << dtToString ( event->dtEnd() ); |
475 | attList << QString::number( id ); | 491 | attList << QString::number( id ); |
476 | attList << event->summary(); | 492 | attList << event->summary(); |
477 | attList << event->location(); | 493 | attList << event->location(); |
478 | attList << alarmString; | 494 | attList << alarmString; |
479 | attList << recurString; | 495 | attList << recurString; |
480 | attList << event->categoriesStr(); | 496 | attList << event->categoriesStr(); |
481 | attList << event->secrecyStr(); | 497 | attList << event->secrecyStr(); |
482 | cSum = PhoneFormat::getCsum(attList ); | 498 | cSum = PhoneFormat::getCsum(attList ); |
483 | event->setCsum( mProfileName, QString::number( cSum )); | 499 | event->setCsum( mProfileName, QString::number( cSum )); |
484 | mCalendar->addEvent( event); | 500 | mCalendar->addEvent( event); |
485 | 501 | ||
486 | return true; | 502 | return true; |
487 | } | 503 | } |
488 | 504 | ||
489 | 505 | ||
490 | QDateTime fromGSM ( GSM_DateTime*dtp, bool useTz = true ) { | 506 | QDateTime fromGSM ( GSM_DateTime*dtp, bool useTz = true ) { |
491 | QDateTime dt; | 507 | QDateTime dt; |
492 | int y,m,t,h,min,sec; | 508 | int y,m,t,h,min,sec; |
493 | y = dtp->Year; | 509 | y = dtp->Year; |
494 | m = dtp->Month; | 510 | m = dtp->Month; |
495 | t = dtp->Day; | 511 | t = dtp->Day; |
496 | h = dtp->Hour; | 512 | h = dtp->Hour; |
497 | min = dtp->Minute; | 513 | min = dtp->Minute; |
498 | sec = dtp->Second; | 514 | sec = dtp->Second; |
499 | dt = QDateTime(QDate(y,m,t), QTime(h,min,sec)); | 515 | dt = QDateTime(QDate(y,m,t), QTime(h,min,sec)); |
500 | // dtp->Timezone: offset in hours | 516 | // dtp->Timezone: offset in hours |
501 | int offset = KGlobal::locale()->localTimeOffset( dt ); | 517 | int offset = KGlobal::locale()->localTimeOffset( dt ); |
502 | if ( useTz ) | 518 | if ( useTz ) |
503 | dt = dt.addSecs ( offset*60); | 519 | dt = dt.addSecs ( offset*60); |
504 | return dt; | 520 | return dt; |
505 | 521 | ||
506 | } | 522 | } |