summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--gammu/emb/common/service/gsmcal.c2
-rw-r--r--gammu/emb/gammu/gammu.c41
-rw-r--r--libkcal/phoneformat.cpp53
3 files changed, 80 insertions, 16 deletions
diff --git a/gammu/emb/common/service/gsmcal.c b/gammu/emb/common/service/gsmcal.c
index 598292c..ddf9790 100644
--- a/gammu/emb/common/service/gsmcal.c
+++ b/gammu/emb/common/service/gsmcal.c
@@ -137,17 +137,17 @@ GSM_Error GSM_EncodeVCALENDAR(char *Buffer, int *Length, GSM_CalendarEntry *note
137 if (EndTime != -1) { 137 if (EndTime != -1) {
138 SaveVCALDateTime(Buffer, Length, &note->Entries[EndTime].Date, "DTEND"); 138 SaveVCALDateTime(Buffer, Length, &note->Entries[EndTime].Date, "DTEND");
139 } 139 }
140 140
141 if (Alarm != -1) { 141 if (Alarm != -1) {
142 if (note->Entries[Alarm].EntryType == CAL_SILENT_ALARM_DATETIME) { 142 if (note->Entries[Alarm].EntryType == CAL_SILENT_ALARM_DATETIME) {
143 SaveVCALDateTime(Buffer, Length, &note->Entries[Alarm].Date, "DALARM"); 143 SaveVCALDateTime(Buffer, Length, &note->Entries[Alarm].Date, "DALARM");
144 } else { 144 } else {
145 SaveVCALDateTime(Buffer, Length, &note->Entries[Alarm].Date, "AALARM"); 145 SaveVCALDateTime(Buffer, Length, &note->Entries[Alarm].Date, "DALARM");
146 } 146 }
147 } 147 }
148 148
149 /* Birthday is known to be recurranced */ 149 /* Birthday is known to be recurranced */
150 if (Recurrance != -1 && note->Type != GSM_CAL_BIRTHDAY) { 150 if (Recurrance != -1 && note->Type != GSM_CAL_BIRTHDAY) {
151 switch(note->Entries[Recurrance].Number/24) { 151 switch(note->Entries[Recurrance].Number/24) {
152 case 1 : *Length+=sprintf(Buffer+(*Length), "RRULE:D1 #0%c%c",13,10); break; 152 case 1 : *Length+=sprintf(Buffer+(*Length), "RRULE:D1 #0%c%c",13,10); break;
153 case 7 : *Length+=sprintf(Buffer+(*Length), "RRULE:W1 #0%c%c",13,10); break; 153 case 7 : *Length+=sprintf(Buffer+(*Length), "RRULE:W1 #0%c%c",13,10); break;
diff --git a/gammu/emb/gammu/gammu.c b/gammu/emb/gammu/gammu.c
index 5163d81..a3b93a8 100644
--- a/gammu/emb/gammu/gammu.c
+++ b/gammu/emb/gammu/gammu.c
@@ -8236,21 +8236,22 @@ int main(int argc, char *argv[])
8236 8236
8237 /* Help? */ 8237 /* Help? */
8238 if (strncmp(argv[1 + start], "--help", 6) == 0) { 8238 if (strncmp(argv[1 + start], "--help", 6) == 0) {
8239 Help(argc - start, argv + start); 8239 Help(argc - start, argv + start);
8240 exit(1); 8240 exit(1);
8241 } 8241 }
8242 8242
8243 /* Is first parameter numeric? If so treat it as config that should be loaded. */ 8243 /* Is first parameter numeric? If so treat it as config that should be loaded. */
8244 if (isdigit(argv[1][0])) { 8244 //if (isdigit(argv[1][0])) {
8245 only_config = atoi(argv[1]); 8245 //only_config = atoi(argv[1]);
8246 if (only_config >= 0) start++; else only_config = -1; 8246 //if (only_config >= 0) start++; else only_config = -1;
8247 } 8247 //}
8248 8248 only_config = 0;;
8249#if 0
8249 GSM_ReadConfig(NULL, &s.Config[0], 0); 8250 GSM_ReadConfig(NULL, &s.Config[0], 0);
8250 s.ConfigNum = 1; 8251 s.ConfigNum = 1;
8251 GSM_Config *con = &s.Config[0]; 8252 GSM_Config *con = &s.Config[0];
8252 8253
8253 char* tempC; 8254 char* tempC;
8254 tempC = argv[argc-1]+2; 8255 tempC = argv[argc-1]+2;
8255 if ( *tempC != 0 ) { 8256 if ( *tempC != 0 ) {
8256 fprintf(stderr,"Using model %s \n",tempC); 8257 fprintf(stderr,"Using model %s \n",tempC);
@@ -8264,17 +8265,17 @@ int main(int argc, char *argv[])
8264 } 8265 }
8265 tempC = argv[argc-3]+2; 8266 tempC = argv[argc-3]+2;
8266 if ( *tempC != 0 ) { 8267 if ( *tempC != 0 ) {
8267 fprintf(stderr,"Using connection %s \n",tempC); 8268 fprintf(stderr,"Using connection %s \n",tempC);
8268 con->Connection = strdup(tempC); 8269 con->Connection = strdup(tempC);
8269 con->DefaultConnection = false; 8270 con->DefaultConnection = false;
8270 } 8271 }
8271 argc = argc-3; 8272 argc = argc-3;
8272#if 0 8273 //#if 0
8273 if ( ! mConnection.isEmpty() ) { 8274 if ( ! mConnection.isEmpty() ) {
8274 cfg->Connection = strdup(mConnection.latin1()); 8275 cfg->Connection = strdup(mConnection.latin1());
8275 cfg->DefaultConnection = false; 8276 cfg->DefaultConnection = false;
8276 qDebug("Connection set %s ", cfg->Connection ); 8277 qDebug("Connection set %s ", cfg->Connection );
8277 8278
8278 } 8279 }
8279 if ( ! mDevice.isEmpty() ) { 8280 if ( ! mDevice.isEmpty() ) {
8280 cfg->Device = strdup(mDevice.latin1()); 8281 cfg->Device = strdup(mDevice.latin1());
@@ -8285,17 +8286,17 @@ int main(int argc, char *argv[])
8285 if ( ! mModel.isEmpty() ) { 8286 if ( ! mModel.isEmpty() ) {
8286 strcpy(cfg->Model,mModel.latin1() ); 8287 strcpy(cfg->Model,mModel.latin1() );
8287 cfg->DefaultModel = false; 8288 cfg->DefaultModel = false;
8288 qDebug("Model set %s ",cfg->Model ); 8289 qDebug("Model set %s ",cfg->Model );
8289 } 8290 }
8290 8291
8291#endif 8292#endif
8292 8293
8293#if 0 8294
8294 cfg=GSM_FindGammuRC(); 8295 cfg=GSM_FindGammuRC();
8295 for (i = 0; i <= MAX_CONFIG_NUM; i++) { 8296 for (i = 0; i <= MAX_CONFIG_NUM; i++) {
8296 if (cfg!=NULL) { 8297 if (cfg!=NULL) {
8297 cp = INI_GetValue(cfg, "gammu", "gammucoding", false); 8298 cp = INI_GetValue(cfg, "gammu", "gammucoding", false);
8298 if (cp) di.coding = cp; 8299 if (cp) di.coding = cp;
8299 8300
8300 s.Config[i].Localize = INI_GetValue(cfg, "gammu", "gammuloc", false); 8301 s.Config[i].Localize = INI_GetValue(cfg, "gammu", "gammuloc", false);
8301 if (s.Config[i].Localize) { 8302 if (s.Config[i].Localize) {
@@ -8310,16 +8311,17 @@ int main(int argc, char *argv[])
8310 tolower(locale[1])); 8311 tolower(locale[1]));
8311 s.msg = INI_ReadFile(locale_file, true); 8312 s.msg = INI_ReadFile(locale_file, true);
8312 } 8313 }
8313#endif 8314#endif
8314 } 8315 }
8315 } 8316 }
8316 8317
8317 /* Wanted user specific configuration? */ 8318 /* Wanted user specific configuration? */
8319
8318 if (only_config != -1) { 8320 if (only_config != -1) {
8319 /* Here we get only in first for loop */ 8321 /* Here we get only in first for loop */
8320 if (!GSM_ReadConfig(cfg, &s.Config[0], only_config)) break; 8322 if (!GSM_ReadConfig(cfg, &s.Config[0], only_config)) break;
8321 } else { 8323 } else {
8322 if (!GSM_ReadConfig(cfg, &s.Config[i], i) && i != 0) break; 8324 if (!GSM_ReadConfig(cfg, &s.Config[i], i) && i != 0) break;
8323 } 8325 }
8324 s.ConfigNum++; 8326 s.ConfigNum++;
8325 8327
@@ -8345,17 +8347,41 @@ int main(int argc, char *argv[])
8345 /* If user gave debug file in gammurc, we will use it */ 8347 /* If user gave debug file in gammurc, we will use it */
8346 error=GSM_SetDebugFile(s.Config[i].DebugFile, &di); 8348 error=GSM_SetDebugFile(s.Config[i].DebugFile, &di);
8347 Print_Error(error); 8349 Print_Error(error);
8348 } 8350 }
8349 8351
8350 /* We wanted to read just user specified configuration. */ 8352 /* We wanted to read just user specified configuration. */
8351 if (only_config != -1) {break;} 8353 if (only_config != -1) {break;}
8352 } 8354 }
8355#if 0
8356 GSM_Config *con = &s.Config[0];
8357
8358 char* tempC;
8359 tempC = argv[argc-1]+2;
8360 if ( *tempC != 0 ) {
8361 fprintf(stderr,"Using model %s \n",tempC);
8362 strcpy(con->Model,tempC );
8363 }
8364 tempC = argv[argc-2]+2;
8365 if ( *tempC != 0 ) {
8366 fprintf(stderr,"Using device %s \n",tempC);
8367 con->Device = strdup(tempC);
8368 con->DefaultDevice = false;
8369 }
8370 tempC = argv[argc-3]+2;
8371 if ( *tempC != 0 ) {
8372 fprintf(stderr,"Using connection %s \n",tempC);
8373 con->Connection = strdup(tempC);
8374 con->DefaultConnection = false;
8375 }
8353#endif 8376#endif
8377 argc = argc-3;
8378
8379
8354 /* Do we have enough parameters? */ 8380 /* Do we have enough parameters? */
8355 if (argc == 1 + start) { 8381 if (argc == 1 + start) {
8356 HelpGeneral(); 8382 HelpGeneral();
8357 printmsg("Too few parameters!\n"); 8383 printmsg("Too few parameters!\n");
8358 exit(-2); 8384 exit(-2);
8359 } 8385 }
8360 8386
8361 /* Check used version vs. compiled */ 8387 /* Check used version vs. compiled */
@@ -8364,16 +8390,17 @@ int main(int argc, char *argv[])
8364 GetGammuVersion(),VERSION); 8390 GetGammuVersion(),VERSION);
8365 exit(-1); 8391 exit(-1);
8366 } 8392 }
8367 8393
8368 /* Check parameters */ 8394 /* Check parameters */
8369 while (Parameters[z].Function != NULL) { 8395 while (Parameters[z].Function != NULL) {
8370 if (mystrncasecmp(Parameters[z].parameter,argv[1+start], 0)) { 8396 if (mystrncasecmp(Parameters[z].parameter,argv[1+start], 0)) {
8371 if (argc-2-start >= Parameters[z].min_arg && argc-2-start <= Parameters[z].max_arg) { 8397 if (argc-2-start >= Parameters[z].min_arg && argc-2-start <= Parameters[z].max_arg) {
8398 fprintf(stderr,"Executing \n");
8372 Parameters[z].Function(argc - start, argv + start); 8399 Parameters[z].Function(argc - start, argv + start);
8373 break; 8400 break;
8374 } else { 8401 } else {
8375 count_failed = true; 8402 count_failed = true;
8376 } 8403 }
8377 } 8404 }
8378 z++; 8405 z++;
8379 } 8406 }
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp
index 2ad1b5a..6df639f 100644
--- a/libkcal/phoneformat.cpp
+++ b/libkcal/phoneformat.cpp
@@ -30,16 +30,17 @@
30#include <qtextstream.h> 30#include <qtextstream.h>
31#include <qtextcodec.h> 31#include <qtextcodec.h>
32#include <qxml.h> 32#include <qxml.h>
33#include <qlabel.h> 33#include <qlabel.h>
34 34
35#include <kdebug.h> 35#include <kdebug.h>
36#include <klocale.h> 36#include <klocale.h>
37#include <kglobal.h> 37#include <kglobal.h>
38#include <kmessagebox.h>
38 39
39#include "calendar.h" 40#include "calendar.h"
40#include "alarm.h" 41#include "alarm.h"
41#include "recurrence.h" 42#include "recurrence.h"
42#include "calendarlocal.h" 43#include "calendarlocal.h"
43 44
44#include "phoneformat.h" 45#include "phoneformat.h"
45#include "syncdefines.h" 46#include "syncdefines.h"
@@ -241,16 +242,18 @@ ulong PhoneFormat::getCsumEvent( Event* event )
241 } else { 242 } else {
242 list.append( "0" ); 243 list.append( "0" );
243 list.append( "20991231T000000" ); 244 list.append( "20991231T000000" );
244 } 245 }
245 246
246 } 247 }
247 attList << list.join(""); 248 attList << list.join("");
248 attList << event->categoriesStr(); 249 attList << event->categoriesStr();
250 //qDebug("csum cat %s", event->categoriesStr().latin1());
251
249 attList << event->secrecyStr(); 252 attList << event->secrecyStr();
250 return PhoneFormat::getCsum(attList ); 253 return PhoneFormat::getCsum(attList );
251} 254}
252ulong PhoneFormat::getCsum( const QStringList & attList) 255ulong PhoneFormat::getCsum( const QStringList & attList)
253{ 256{
254 int max = attList.count() -1; 257 int max = attList.count() -1;
255 ulong cSum = 0; 258 ulong cSum = 0;
256 int j,k,i; 259 int j,k,i;
@@ -264,16 +267,19 @@ ulong PhoneFormat::getCsum( const QStringList & attList)
264 add = s[k].unicode (); 267 add = s[k].unicode ();
265 if ( k < 16 ) 268 if ( k < 16 )
266 mul = mul * mul; 269 mul = mul * mul;
267 add = add * mul *i*i*i; 270 add = add * mul *i*i*i;
268 cSum += add; 271 cSum += add;
269 } 272 }
270 } 273 }
271 } 274 }
275 //QString dump = attList.join(",");
276 //qDebug("csum: %s", dump.latin1());
277
272 return cSum; 278 return cSum;
273 279
274} 280}
275//extern "C" GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum); 281//extern "C" GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum);
276#include <stdlib.h> 282#include <stdlib.h>
277#define DEBUGMODE false 283#define DEBUGMODE false
278bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal) 284bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal)
279{ 285{
@@ -282,25 +288,35 @@ bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal)
282#ifdef _WIN32_ 288#ifdef _WIN32_
283 fileName = locateLocal("data", "korganizer") + "\\tempfile.vcs"; 289 fileName = locateLocal("data", "korganizer") + "\\tempfile.vcs";
284#else 290#else
285 fileName = "/tmp/kdepimtemp.vcs"; 291 fileName = "/tmp/kdepimtemp.vcs";
286#endif 292#endif
287 QString command ="./kammu --backup " + fileName + " -yes -C" + 293 QString command ="./kammu --backup " + fileName + " -yes -C" +
288 mConnection +" -D" + mDevice +" -M" + mModel; 294 mConnection +" -D" + mDevice +" -M" + mModel;
289 int ret = system ( command.latin1() ); 295 int ret = system ( command.latin1() );
290 if ( ret != 0 ) 296 if ( ret != 0 ) {
297 qDebug("Error::command returned %d", ret);
291 return false; 298 return false;
299 }
300 qDebug("Command returned %d", ret);
292 VCalFormat vfload; 301 VCalFormat vfload;
293 vfload.setLocalTime ( true ); 302 vfload.setLocalTime ( true );
303 qDebug("loading file ...");
304
294 if ( ! vfload.load( calendar, fileName ) ) 305 if ( ! vfload.load( calendar, fileName ) )
295 return false; 306 return false;
296 QPtrList<Event> er = calendar->rawEvents(); 307 QPtrList<Event> er = calendar->rawEvents();
297 Event* ev = er.first(); 308 Event* ev = er.first();
309 qDebug("reading events... ");
298 while ( ev ) { 310 while ( ev ) {
311 QStringList cat = ev->categories();
312 if ( cat.contains( "MeetingDEF" )) {
313 ev->setCategories( QStringList() );
314 }
299 int id = ev->pilotId(); 315 int id = ev->pilotId();
300 Event *event; 316 Event *event;
301 event = existingCal->event( mProfileName ,QString::number( id ) ); 317 event = existingCal->event( mProfileName ,QString::number( id ) );
302 if ( event ) { 318 if ( event ) {
303 event = (Event*)event->clone(); 319 event = (Event*)event->clone();
304 copyEvent( event, ev ); 320 copyEvent( event, ev );
305 calendar->deleteEvent( ev ); 321 calendar->deleteEvent( ev );
306 calendar->addEvent( event); 322 calendar->addEvent( event);
@@ -310,16 +326,17 @@ bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal)
310 uint cSum; 326 uint cSum;
311 cSum = PhoneFormat::getCsumEvent( event ); 327 cSum = PhoneFormat::getCsumEvent( event );
312 event->setCsum( mProfileName, QString::number( cSum )); 328 event->setCsum( mProfileName, QString::number( cSum ));
313 event->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); 329 event->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL );
314 event->setID( mProfileName,QString::number( id ) ); 330 event->setID( mProfileName,QString::number( id ) );
315 ev = er.next(); 331 ev = er.next();
316 } 332 }
317 { 333 {
334 qDebug("reading todos... ");
318 QPtrList<Todo> tr = calendar->rawTodos(); 335 QPtrList<Todo> tr = calendar->rawTodos();
319 Todo* ev = tr.first(); 336 Todo* ev = tr.first();
320 while ( ev ) { 337 while ( ev ) {
321 338
322 QStringList cat = ev->categories(); 339 QStringList cat = ev->categories();
323 if ( cat.contains( "MeetingDEF" )) { 340 if ( cat.contains( "MeetingDEF" )) {
324 ev->setCategories( QStringList() ); 341 ev->setCategories( QStringList() );
325 } 342 }
@@ -477,28 +494,37 @@ bool PhoneFormat::save( Calendar *calendar)
477 // 2 remove todos which should be deleted 494 // 2 remove todos which should be deleted
478 QPtrList<Todo> tl = calendar->rawTodos(); 495 QPtrList<Todo> tl = calendar->rawTodos();
479 Todo* to = tl.first(); 496 Todo* to = tl.first();
480 while ( to ) { 497 while ( to ) {
481 if ( to->tempSyncStat() == SYNC_TEMPSTATE_DELETE ) { 498 if ( to->tempSyncStat() == SYNC_TEMPSTATE_DELETE ) {
482 calendar->deleteTodo( to ); 499 calendar->deleteTodo( to );
483 } 500 }
484 to = tl.next(); 501 to = tl.next();
485 } 502 }
486 // 3 save file 503 // 3 save file
487 VCalFormat vfsave; 504 VCalFormat vfsave;
488 vfsave.setLocalTime ( true ); 505 vfsave.setLocalTime ( true );
489 if ( ! vfsave.save( calendar, fileName ) ) 506 if ( ! vfsave.save( calendar, fileName ) )
490 return false; 507 return false;
491 // 4 call kammu 508 // 4 call kammu
492 QString command ="./kammu --restore " + fileName + " -C" + 509 QString command ="./kammu --restore " + fileName + " -C" +
493 mConnection +" -D" + mDevice +" -M" + mModel;; 510 mConnection +" -D" + mDevice +" -M" + mModel;
494 int ret = system ( command.latin1() ); 511 int ret;
495 if ( ret != 0 ) 512 while ( (ret = system ( command.latin1())) != 0 ) {
513 qDebug("Error S::command returned %d. asking users", ret);
514 int retval = KMessageBox::warningContinueCancel(0,
515 i18n("Error accessing device!\nPlease turn on connection\nand retry!"),i18n("KO/Pi phone sync"),i18n("Retry"),i18n("Cancel"));
516 if ( retval != KMessageBox::Continue )
517 return false;
518 }
519 if ( ret != 0 ) {
520 qDebug("Error S::command returned %d", ret);
496 return false; 521 return false;
522 }
497 // 5 reread data 523 // 5 reread data
498 message = i18n(" Rereading all data ... "); 524 message = i18n(" Rereading all data ... ");
499 status.setText ( message ); 525 status.setText ( message );
500 qApp->processEvents(); 526 qApp->processEvents();
501 CalendarLocal* calendarTemp = new CalendarLocal(); 527 CalendarLocal* calendarTemp = new CalendarLocal();
502 calendarTemp->setTimeZoneId( calendar->timeZoneId()); 528 calendarTemp->setTimeZoneId( calendar->timeZoneId());
503 if ( ! load( calendarTemp,calendar) ){ 529 if ( ! load( calendarTemp,calendar) ){
504 qDebug("error reloading calendar "); 530 qDebug("error reloading calendar ");
@@ -510,49 +536,60 @@ bool PhoneFormat::save( Calendar *calendar)
510//algo 6 compare event 536//algo 6 compare event
511 er = calendar->rawEvents(); 537 er = calendar->rawEvents();
512 ev = er.first(); 538 ev = er.first();
513 message = i18n(" Comparing event # "); 539 message = i18n(" Comparing event # ");
514 QPtrList<Event> er1 = calendarTemp->rawEvents(); 540 QPtrList<Event> er1 = calendarTemp->rawEvents();
515 Event* ev1; 541 Event* ev1;
516 int procCount = 0; 542 int procCount = 0;
517 while ( ev ) { 543 while ( ev ) {
518 qDebug("event new ID "); 544 //qDebug("event new ID %s",ev->summary().latin1());
519 status.setText ( message + QString::number ( ++procCount ) ); 545 status.setText ( message + QString::number ( ++procCount ) );
520 qApp->processEvents(); 546 qApp->processEvents();
521 QString cSum = ev->getCsum(mProfileName); 547 uint csum;
548 csum = PhoneFormat::getCsumEvent( ev );
549 QString cSum = QString::number( csum );
550 ev->setCsum( mProfileName, cSum );
551 //qDebug("Event cSum %s ", cSum.latin1());
522 ev1 = er1.first(); 552 ev1 = er1.first();
523 while ( ev1 ) { 553 while ( ev1 ) {
524 if ( ev1->getCsum( mProfileName ) == cSum ) { 554 if ( ev1->getCsum( mProfileName ) == cSum ) {
525 er1.remove( ev1 ); 555 er1.remove( ev1 );
526 afterSave( ev ); 556 afterSave( ev );
527 ev->setID(mProfileName, ev1->getID(mProfileName) ); 557 ev->setID(mProfileName, ev1->getID(mProfileName) );
558 //qDebug("Event found on phone for %s ", ev->summary().latin1());
559
528 break; 560 break;
529 } 561 }
530 ev1 = er1.next(); 562 ev1 = er1.next();
531 } 563 }
532 if ( ! ev1 ) { 564 if ( ! ev1 ) {
533 ev->removeID(mProfileName); 565 ev->removeID(mProfileName);
534 qDebug("ERROR: No event found on phone for %s ", ev->summary().latin1()); 566 qDebug("ERROR: No event found on phone for %s ", ev->summary().latin1());
535 } 567 }
536 568
537 569
538 ev = er.next(); 570 ev = er.next();
539 } 571 }
540 //algo 6 compare todo 572 //algo 6 compare todo
573 tl = calendar->rawTodos();
541 to = tl.first(); 574 to = tl.first();
542 procCount = 0; 575 procCount = 0;
543 QPtrList<Todo> tl1 = calendarTemp->rawTodos(); 576 QPtrList<Todo> tl1 = calendarTemp->rawTodos();
544 Todo* to1 ; 577 Todo* to1 ;
545 message = i18n(" Comparing todo # "); 578 message = i18n(" Comparing todo # ");
546 while ( to ) { 579 while ( to ) {
547 qDebug("todo2 %d ", procCount); 580 qDebug("todo2 %d ", procCount);
548 status.setText ( message + QString::number ( ++procCount ) ); 581 status.setText ( message + QString::number ( ++procCount ) );
549 qApp->processEvents(); 582 qApp->processEvents();
550 QString cSum = to->getCsum(mProfileName); 583 uint csum;
584 csum = PhoneFormat::getCsumTodo( to );
585 QString cSum = QString::number( csum );
586 to->setCsum( mProfileName, cSum );
587 qDebug("Todo cSum %s ", cSum.latin1());
551 Todo* to1 = tl1.first(); 588 Todo* to1 = tl1.first();
552 while ( to1 ) { 589 while ( to1 ) {
553 if ( to1->getCsum( mProfileName ) == cSum ) { 590 if ( to1->getCsum( mProfileName ) == cSum ) {
554 tl1.remove( to1 ); 591 tl1.remove( to1 );
555 afterSave( to ); 592 afterSave( to );
556 to->setID(mProfileName, to1->getID(mProfileName) ); 593 to->setID(mProfileName, to1->getID(mProfileName) );
557 break; 594 break;
558 } 595 }