-rw-r--r-- | korganizer/calendarview.cpp | 20 | ||||
-rw-r--r-- | libkcal/incidencebase.cpp | 88 | ||||
-rw-r--r-- | libkcal/incidencebase.h | 13 | ||||
-rw-r--r-- | libkcal/sharpformat.cpp | 20 |
4 files changed, 41 insertions, 100 deletions
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index fab4540..5150455 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -727,7 +727,7 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b | |||
727 | QDateTime lastSync = mLastCalendarSync; | 727 | QDateTime lastSync = mLastCalendarSync; |
728 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 728 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
729 | bool remCh, locCh; | 729 | bool remCh, locCh; |
730 | remCh = ( remote->zaurusUid() != local->zaurusUid() ); | 730 | remCh = ( remote->getCsum(mCurrentSyncDevice) != local->getCsum(mCurrentSyncDevice) ); |
731 | locCh = ( local->lastModified() > mLastCalendarSync ); | 731 | locCh = ( local->lastModified() > mLastCalendarSync ); |
732 | //qDebug("locCh %d remCh %d locuid %d remuid %d", locCh, remCh,local->zaurusUid(), remote->zaurusUid() ); | 732 | //qDebug("locCh %d remCh %d locuid %d remuid %d", locCh, remCh,local->zaurusUid(), remote->zaurusUid() ); |
733 | if ( !remCh && ! locCh ) { | 733 | if ( !remCh && ! locCh ) { |
@@ -773,7 +773,7 @@ int CalendarView::takeEvent( Incidence* local, Incidence* remote, int mode , b | |||
773 | if ( equ ) { | 773 | if ( equ ) { |
774 | //qDebug("equal "); | 774 | //qDebug("equal "); |
775 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 775 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
776 | local->setZaurusUid( remote->zaurusUid() ); | 776 | local->setCsum( mCurrentSyncDevice, remote->getCsum(mCurrentSyncDevice) ); |
777 | } | 777 | } |
778 | if ( mode < SYNC_PREF_FORCE_LOCAL ) | 778 | if ( mode < SYNC_PREF_FORCE_LOCAL ) |
779 | return 0; | 779 | return 0; |
@@ -895,13 +895,13 @@ void CalendarView::checkExternSyncEvent( QPtrList<Event> lastSync , Incidence* t | |||
895 | Event* eve = lastSync.first(); | 895 | Event* eve = lastSync.first(); |
896 | 896 | ||
897 | while ( eve ) { | 897 | while ( eve ) { |
898 | int id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name | 898 | QString id = toDelete->getID( eve->uid().mid( 15 ) ); // this is the sync profile name |
899 | if ( id >= 0 ) { | 899 | if ( !id.isEmpty() ) { |
900 | QString des = eve->description(); | 900 | QString des = eve->description(); |
901 | QString pref = "e"; | 901 | QString pref = "e"; |
902 | if ( toDelete->type() == "Todo" ) | 902 | if ( toDelete->type() == "Todo" ) |
903 | pref = "t"; | 903 | pref = "t"; |
904 | des += pref+ QString::number ( id ) + ","; | 904 | des += pref+ id + ","; |
905 | eve->setReadOnly( false ); | 905 | eve->setReadOnly( false ); |
906 | eve->setDescription( des ); | 906 | eve->setDescription( des ); |
907 | eve->setReadOnly( true ); | 907 | eve->setReadOnly( true ); |
@@ -1013,7 +1013,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1013 | if ( take == 3 ) | 1013 | if ( take == 3 ) |
1014 | return false; | 1014 | return false; |
1015 | if ( take == 1 ) {// take local | 1015 | if ( take == 1 ) {// take local |
1016 | inL->setZaurusUid( inR->zaurusUid() ); | 1016 | inL->setCsum( mCurrentSyncDevice, inR->getCsum(mCurrentSyncDevice) ); |
1017 | remote->deleteIncidence( inR ); | 1017 | remote->deleteIncidence( inR ); |
1018 | if ( inL->revision() < maxrev ) | 1018 | if ( inL->revision() < maxrev ) |
1019 | inL->setRevision( maxrev ); | 1019 | inL->setRevision( maxrev ); |
@@ -1033,7 +1033,7 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1033 | QString pref = "e"; | 1033 | QString pref = "e"; |
1034 | if ( inR->type() == "Todo" ) | 1034 | if ( inR->type() == "Todo" ) |
1035 | pref = "t"; | 1035 | pref = "t"; |
1036 | if ( des.find(pref+QString::number( inR->getID(mCurrentSyncDevice) ) +"," ) >= 0 && mode != 5) { // delete it | 1036 | if ( des.find(pref+ inR->getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it |
1037 | inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); | 1037 | inR->setTempSyncStat( SYNC_TEMPSTATE_DELETE ); |
1038 | //remote->deleteIncidence( inR ); | 1038 | //remote->deleteIncidence( inR ); |
1039 | ++deletedEventR; | 1039 | ++deletedEventR; |
@@ -1083,12 +1083,12 @@ bool CalendarView::synchronizeCalendar( Calendar* local, Calendar* remote, int | |||
1083 | inR = remote->incidence( uid ); | 1083 | inR = remote->incidence( uid ); |
1084 | if ( ! inR ) { | 1084 | if ( ! inR ) { |
1085 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { | 1085 | if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { |
1086 | if ( inL->getID(mCurrentSyncDevice) >= 0 && mode != 4 ) { | 1086 | if ( !inL->getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { |
1087 | local->deleteIncidence( inL ); | 1087 | local->deleteIncidence( inL ); |
1088 | ++deletedEventL; | 1088 | ++deletedEventL; |
1089 | } else { | 1089 | } else { |
1090 | if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { | 1090 | if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { |
1091 | inL->setID(mCurrentSyncDevice, -1 ); | 1091 | inL->removeID(mCurrentSyncDevice ); |
1092 | ++addedEventR; | 1092 | ++addedEventR; |
1093 | inL->setLastModified( modifiedCalendar ); | 1093 | inL->setLastModified( modifiedCalendar ); |
1094 | remote->addIncidence( inL->clone() ); | 1094 | remote->addIncidence( inL->clone() ); |
@@ -1208,7 +1208,7 @@ void CalendarView::syncSharp() | |||
1208 | loc = mCalendar->incidence(inc->uid() ); | 1208 | loc = mCalendar->incidence(inc->uid() ); |
1209 | if ( loc ) { | 1209 | if ( loc ) { |
1210 | loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); | 1210 | loc->setID(mCurrentSyncDevice, inc->getID(mCurrentSyncDevice) ); |
1211 | loc->setZaurusUid( inc->zaurusUid() ); | 1211 | loc->setCsum( mCurrentSyncDevice, inc->getCsum(mCurrentSyncDevice) ); |
1212 | } | 1212 | } |
1213 | } | 1213 | } |
1214 | inc = iL.next(); | 1214 | inc = iL.next(); |
diff --git a/libkcal/incidencebase.cpp b/libkcal/incidencebase.cpp index 5d8785b..15c4fa8 100644 --- a/libkcal/incidencebase.cpp +++ b/libkcal/incidencebase.cpp | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <kglobal.h> | 21 | #include <kglobal.h> |
22 | #include <klocale.h> | 22 | #include <klocale.h> |
23 | #include <kdebug.h> | 23 | #include <kdebug.h> |
24 | #include <kidmanager.h> | ||
24 | 25 | ||
25 | #include "calformat.h" | 26 | #include "calformat.h" |
26 | 27 | ||
@@ -38,7 +39,6 @@ IncidenceBase::IncidenceBase() : | |||
38 | mDuration = 0; | 39 | mDuration = 0; |
39 | mHasDuration = false; | 40 | mHasDuration = false; |
40 | mPilotId = 0; | 41 | mPilotId = 0; |
41 | mZaurusUid = 0; | ||
42 | mExternalId = ":"; | 42 | mExternalId = ":"; |
43 | mTempSyncStat = 0; | 43 | mTempSyncStat = 0; |
44 | mSyncStatus = 0; | 44 | mSyncStatus = 0; |
@@ -61,7 +61,6 @@ IncidenceBase::IncidenceBase(const IncidenceBase &i) : | |||
61 | mFloats = i.mFloats; | 61 | mFloats = i.mFloats; |
62 | mLastModified = i.mLastModified; | 62 | mLastModified = i.mLastModified; |
63 | mPilotId = i.mPilotId; | 63 | mPilotId = i.mPilotId; |
64 | mZaurusUid = i.mZaurusUid; | ||
65 | mTempSyncStat = i.mTempSyncStat; | 64 | mTempSyncStat = i.mTempSyncStat; |
66 | mSyncStatus = i.mSyncStatus; | 65 | mSyncStatus = i.mSyncStatus; |
67 | mExternalId = i.mExternalId; | 66 | mExternalId = i.mExternalId; |
@@ -341,16 +340,6 @@ int IncidenceBase::pilotId() const | |||
341 | return mPilotId; | 340 | return mPilotId; |
342 | } | 341 | } |
343 | 342 | ||
344 | int IncidenceBase::zaurusUid() const | ||
345 | { | ||
346 | return mZaurusUid; | ||
347 | } | ||
348 | void IncidenceBase::setZaurusUid( int id ) | ||
349 | { | ||
350 | if (mReadOnly) return; | ||
351 | mZaurusUid = id; | ||
352 | } | ||
353 | |||
354 | int IncidenceBase::tempSyncStat() const | 343 | int IncidenceBase::tempSyncStat() const |
355 | { | 344 | { |
356 | return mTempSyncStat; | 345 | return mTempSyncStat; |
@@ -361,74 +350,29 @@ void IncidenceBase::setTempSyncStat( int id ) | |||
361 | mTempSyncStat = id; | 350 | mTempSyncStat = id; |
362 | } | 351 | } |
363 | 352 | ||
364 | void IncidenceBase::setID( const QString & prof , int id ) | 353 | void IncidenceBase::removeID(const QString &prof) |
365 | { | 354 | { |
366 | int num = mExternalId.find( ":"+prof+";" ); | 355 | mExternalId = KIdManager::removeId ( mExternalId, prof); |
367 | if ( num >= 0 ) { | 356 | |
368 | int len = prof.length()+2; | ||
369 | int end = mExternalId.find( ";", num+len ); | ||
370 | if ( end > 0 ) { | ||
371 | mExternalId = mExternalId.left( num+len ) +QString::number( id)+mExternalId.mid( end ); | ||
372 | } else | ||
373 | qDebug("Error in IncidenceBase::setID "); | ||
374 | } else { | ||
375 | mExternalId += prof+";"+QString::number( id) +";0:"; | ||
376 | } | ||
377 | qDebug("setID*%s*%d*%s* ", prof.latin1(), id,mExternalId.latin1() ); | ||
378 | } | 357 | } |
379 | int IncidenceBase::getID( const QString & prof) | 358 | void IncidenceBase::setID( const QString & prof , const QString & id ) |
380 | { | 359 | { |
381 | int ret = -1; | 360 | mExternalId = KIdManager::setId ( mExternalId, prof, id ); |
382 | int num = mExternalId.find(":"+ prof+";" ); | ||
383 | if ( num >= 0 ) { | ||
384 | int len = prof.length()+2; | ||
385 | int end = mExternalId.find( ";", num+len ); | ||
386 | if ( end > 0 ) { | ||
387 | bool ok; | ||
388 | ret = mExternalId.mid ( num + len,end-len-num).toInt( &ok ); | ||
389 | if (!ok) | ||
390 | ret = -1; | ||
391 | } | ||
392 | } | 361 | } |
393 | qDebug("getID*%s*%d*%s* ", prof.latin1(), ret,mExternalId.latin1() ); | 362 | QString IncidenceBase::getID( const QString & prof) |
394 | return ret; | 363 | { |
364 | return KIdManager::getId ( mExternalId, prof ); | ||
395 | } | 365 | } |
396 | 366 | ||
397 | // example :Sharp_DTM;22;23566:TP;-1;8654:TPP;18;0: | 367 | // example :Sharp_DTM;22;23566:TP;-1;8654:TPP;18;0: |
398 | // format name;III;JJJ: III >= 0, may be -1. JJJ always >= 0 | 368 | // format name;III;JJJ: III >= 0, may be -1. JJJ always >= 0 |
399 | void IncidenceBase::setCsum( const QString & prof , int id ) | 369 | void IncidenceBase::setCsum( const QString & prof , const QString & id ) |
400 | { | 370 | { |
401 | int num = mExternalId.find( ":"+prof+";"); | 371 | mExternalId = KIdManager::setCsum ( mExternalId, prof, id ); |
402 | if ( num >= 0 ) { | 372 | } |
403 | int len = prof.length()+2; | 373 | QString IncidenceBase::getCsum( const QString & prof) |
404 | num = mExternalId.find( ";", num+len ); | 374 | { |
405 | int end = mExternalId.find( ":", num+1 ); | 375 | return KIdManager::getCsum ( mExternalId, prof ); |
406 | if ( end > 0 ) { | ||
407 | mExternalId = mExternalId.left( num ) +QString::number(id)+mExternalId.mid( end ); | ||
408 | } else | ||
409 | qDebug("Error in IncidenceBase::setCsum "); | ||
410 | } else { | ||
411 | mExternalId += prof+";-1;"+QString::number( id) +":"; | ||
412 | } | ||
413 | qDebug("setCsum*%s*%d*%s* ", prof.latin1(), id,mExternalId.latin1() ); | ||
414 | } | ||
415 | int IncidenceBase::getCsum( const QString & prof) | ||
416 | { | ||
417 | int ret = -1; | ||
418 | int num = mExternalId.find( ":"+prof+";" ); | ||
419 | if ( num >= 0 ) { | ||
420 | int len = prof.length()+2; | ||
421 | num = mExternalId.find( ";", num+len ); | ||
422 | int end = mExternalId.find( ":", num+1 ); | ||
423 | if ( end > 0 ) { | ||
424 | bool ok; | ||
425 | ret = mExternalId.mid ( num ,end-num).toInt( &ok ); | ||
426 | if (!ok) | ||
427 | ret = -1; | ||
428 | } | ||
429 | } | ||
430 | qDebug("getCsum*%s*%d*%s* ", prof.latin1(), ret,mExternalId.latin1() ); | ||
431 | return ret; | ||
432 | } | 376 | } |
433 | 377 | ||
434 | void IncidenceBase::setIDStr( const QString & s ) | 378 | void IncidenceBase::setIDStr( const QString & s ) |
diff --git a/libkcal/incidencebase.h b/libkcal/incidencebase.h index e2950d3..e02d03a 100644 --- a/libkcal/incidencebase.h +++ b/libkcal/incidencebase.h | |||
@@ -126,17 +126,15 @@ class IncidenceBase : public CustomProperties | |||
126 | /** Return Pilot Id. */ | 126 | /** Return Pilot Id. */ |
127 | int pilotId() const; | 127 | int pilotId() const; |
128 | 128 | ||
129 | void setZaurusUid(int id); | ||
130 | int zaurusUid() const; | ||
131 | void setTempSyncStat(int id); | 129 | void setTempSyncStat(int id); |
132 | int tempSyncStat() const; | 130 | int tempSyncStat() const; |
133 | void setIDStr( const QString & ); | 131 | void setIDStr( const QString & ); |
134 | QString IDStr() const; | 132 | QString IDStr() const; |
135 | void setID( const QString &, int ); | 133 | void setID( const QString &, const QString & ); |
136 | int getID( const QString & ); | 134 | QString getID( const QString & ); |
137 | void setCsum( const QString &, int ); | 135 | void setCsum( const QString &, const QString & ); |
138 | int getCsum( const QString & ); | 136 | QString getCsum( const QString & ); |
139 | 137 | void removeID(const QString &); | |
140 | 138 | ||
141 | void registerObserver( Observer * ); | 139 | void registerObserver( Observer * ); |
142 | void unRegisterObserver( Observer * ); | 140 | void unRegisterObserver( Observer * ); |
@@ -159,7 +157,6 @@ class IncidenceBase : public CustomProperties | |||
159 | int mDuration; | 157 | int mDuration; |
160 | bool mHasDuration; | 158 | bool mHasDuration; |
161 | QString mExternalId; | 159 | QString mExternalId; |
162 | int mZaurusUid; | ||
163 | int mTempSyncStat; | 160 | int mTempSyncStat; |
164 | 161 | ||
165 | // PILOT SYNCHRONIZATION STUFF | 162 | // PILOT SYNCHRONIZATION STUFF |
diff --git a/libkcal/sharpformat.cpp b/libkcal/sharpformat.cpp index 605a54d..e8934bf 100644 --- a/libkcal/sharpformat.cpp +++ b/libkcal/sharpformat.cpp | |||
@@ -90,8 +90,8 @@ class SharpParser : public QObject | |||
90 | event = (Event*)event->clone(); | 90 | event = (Event*)event->clone(); |
91 | else | 91 | else |
92 | event = new Event; | 92 | event = new Event; |
93 | event->setID("Sharp_DTM", attList[0].toInt() ); | 93 | event->setID("Sharp_DTM", attList[0] ); |
94 | event->setZaurusUid( cSum ); | 94 | event->setCsum( "Sharp_DTM", QString::number( cSum )); |
95 | event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL ); | 95 | event->setTempSyncStat(SYNC_TEMPSTATE_NEW_EXTERNAL ); |
96 | 96 | ||
97 | event->setSummary( attList[2] ); | 97 | event->setSummary( attList[2] ); |
@@ -201,8 +201,8 @@ class SharpParser : public QObject | |||
201 | //3,Privat,20040317T000000,20040318T000000,20040319T000000,0,5,Call bbb,"notes123 bbb gggg ""bb "" " | 201 | //3,Privat,20040317T000000,20040318T000000,20040319T000000,0,5,Call bbb,"notes123 bbb gggg ""bb "" " |
202 | //2,"Familie,Freunde,Holiday",20040318T000000,20040324T000000,20040317T000000,1,2,tod2,notes | 202 | //2,"Familie,Freunde,Holiday",20040318T000000,20040324T000000,20040317T000000,1,2,tod2,notes |
203 | 203 | ||
204 | todo->setID( "Sharp_DTM", attList[0].toInt() ); | 204 | todo->setID( "Sharp_DTM", attList[0]); |
205 | todo->setZaurusUid( cSum ); | 205 | todo->setCsum( "Sharp_DTM", QString::number( cSum )); |
206 | todo->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); | 206 | todo->setTempSyncStat( SYNC_TEMPSTATE_NEW_EXTERNAL ); |
207 | 207 | ||
208 | todo->setSummary( attList[7] ); | 208 | todo->setSummary( attList[7] ); |
@@ -466,8 +466,8 @@ int SharpFormat::getNumFromRecord( QString answer, Incidence* inc ) | |||
466 | int newnum = templist[0].toInt( &ok ); | 466 | int newnum = templist[0].toInt( &ok ); |
467 | if ( ok && newnum > 0) { | 467 | if ( ok && newnum > 0) { |
468 | retval = newnum; | 468 | retval = newnum; |
469 | inc->setID( "Sharp_DTM",newnum ); | 469 | inc->setID( "Sharp_DTM",templist[0] ); |
470 | inc->setZaurusUid( getCsum( templist ) ); | 470 | inc->setCsum( "Sharp_DTM", QString::number( getCsum( templist ) )); |
471 | inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); | 471 | inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); |
472 | } | 472 | } |
473 | } | 473 | } |
@@ -520,7 +520,7 @@ bool SharpFormat::save( Calendar *calendar) | |||
520 | deleteEnt = true; | 520 | deleteEnt = true; |
521 | changeEnt = true; | 521 | changeEnt = true; |
522 | } | 522 | } |
523 | else if ( ev->getID("Sharp_DTM") == -1 ) { // add new | 523 | else if ( ev->getID("Sharp_DTM").isEmpty() ) { // add new |
524 | command = "(echo \"" + ePrefix + eString + "\" ) | db2file datebook -w -g -c " + codec+ " > "+ fileName; | 524 | command = "(echo \"" + ePrefix + eString + "\" ) | db2file datebook -w -g -c " + codec+ " > "+ fileName; |
525 | system ( command.utf8() ); | 525 | system ( command.utf8() ); |
526 | QFile file( fileName ); | 526 | QFile file( fileName ); |
@@ -606,7 +606,7 @@ bool SharpFormat::save( Calendar *calendar) | |||
606 | deleteEnt = true; | 606 | deleteEnt = true; |
607 | changeEnt = true; | 607 | changeEnt = true; |
608 | } | 608 | } |
609 | else if ( to->getID("Sharp_DTM") == -1 ) { // add new | 609 | else if ( to->getID("Sharp_DTM").isEmpty() ) { // add new |
610 | command = "(echo \"" + tPrefix + eString + "\" ) | db2file todo -w -g -c " + codec+ " > "+ fileName; | 610 | command = "(echo \"" + tPrefix + eString + "\" ) | db2file todo -w -g -c " + codec+ " > "+ fileName; |
611 | system ( command.utf8() ); | 611 | system ( command.utf8() ); |
612 | QFile file( fileName ); | 612 | QFile file( fileName ); |
@@ -696,7 +696,7 @@ QString SharpFormat::dtToString( const QDateTime& dti, bool useTZ ) | |||
696 | QString SharpFormat::getEventString( Event* event ) | 696 | QString SharpFormat::getEventString( Event* event ) |
697 | { | 697 | { |
698 | QStringList list; | 698 | QStringList list; |
699 | list.append( QString::number(event->getID("Sharp_DTM") ) ); | 699 | list.append( event->getID("Sharp_DTM") ); |
700 | list.append( event->categories().join(",") ); | 700 | list.append( event->categories().join(",") ); |
701 | if ( !event->summary().isEmpty() ) | 701 | if ( !event->summary().isEmpty() ) |
702 | list.append( event->summary() ); | 702 | list.append( event->summary() ); |
@@ -860,7 +860,7 @@ QString SharpFormat::getEventString( Event* event ) | |||
860 | QString SharpFormat::getTodoString( Todo* todo ) | 860 | QString SharpFormat::getTodoString( Todo* todo ) |
861 | { | 861 | { |
862 | QStringList list; | 862 | QStringList list; |
863 | list.append( QString::number( todo->getID("Sharp_DTM") ) ); | 863 | list.append( todo->getID("Sharp_DTM") ); |
864 | list.append( todo->categories().join(",") ); | 864 | list.append( todo->categories().join(",") ); |
865 | 865 | ||
866 | if ( todo->hasStartDate() ) { | 866 | if ( todo->hasStartDate() ) { |