-rw-r--r-- | kaddressbook/kabcore.cpp | 93 |
1 files changed, 58 insertions, 35 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 1196360..53c63ff 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -2515,5 +2515,24 @@ QString KABCore::getPassword( ) } +#include <libkcal/syncdefines.h> + +KABC::Addressee KABCore::getLastSyncAddressee() +{ + Addressee lse; + //qDebug("CurrentSyncDevice %s ",mCurrentSyncDevice .latin1() ); + lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice ); + if (lse.isEmpty()) { + lse.setUid( "last-syncEvent-"+mCurrentSyncDevice ); + QString sum = ""; + if ( KABPrefs::instance()->mExternSyncProfiles.contains( mCurrentSyncDevice ) ) + sum = "E: "; + lse.setFamilyName(sum+mCurrentSyncDevice + i18n(" - sync event")); + lse.setRevision( mLastAddressbookSync ); + lse.setCategories( i18n("SyncEvent") ); + mAddressBook->insertAddressee( lse ); + } + return lse; +} + bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode) { -#if 0 bool syncOK = true; @@ -2526,19 +2545,19 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo //QPtrList<Addressee> el = local->rawAddressees(); - Addressee* addresseeR; + Addressee addresseeR; QString uid; int take; - Addressee* addresseeL; - Addressee* addresseeRSync; - Addressee* addresseeLSync; - QPtrList<Addressee> addresseeRSyncSharp = remote->getExternLastSyncAddressees(); - QPtrList<Addressee> addresseeLSyncSharp = local->getExternLastSyncAddressees(); + Addressee addresseeL; + Addressee addresseeRSync; + Addressee addresseeLSync; + KABC::Addressee::List addresseeRSyncSharp = remote->getExternLastSyncAddressees(); + KABC::Addressee::List addresseeLSyncSharp = local->getExternLastSyncAddressees(); bool fullDateRange = false; local->resetTempSyncStat(); - mLastCalendarSync = QDateTime::currentDateTime(); - QDateTime modifiedCalendar = mLastCalendarSync;; + mLastAddressbookSync = QDateTime::currentDateTime(); + QDateTime modifiedCalendar = mLastAddressbookSync;; addresseeLSync = getLastSyncAddressee(); - addresseeR = remote->addressee("last-syncAddressee-"+mCurrentSyncName ); - if ( addresseeR ) { - addresseeRSync = (Addressee*) addresseeR->clone(); - remote->deleteAddressee(addresseeR ); + addresseeR = remote->findByUid("last-syncAddressee-"+mCurrentSyncName ); + if ( !addresseeR.isEmpty() ) { + addresseeRSync = addresseeR; + remote->removeAddressee(addresseeR ); @@ -2546,18 +2565,17 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { - addresseeRSync = (Addressee*)addresseeLSync->clone(); + addresseeRSync = addresseeLSync ; } else { fullDateRange = true; - addresseeRSync = new Addressee(); - addresseeRSync->setSummary(mCurrentSyncName + i18n(" - sync addressee")); - addresseeRSync->setUid("last-syncAddressee-"+mCurrentSyncName ); - addresseeRSync->setDtStart( mLastCalendarSync ); - addresseeRSync->setDtEnd( mLastCalendarSync.addSecs( 7200 ) ); - addresseeRSync->setCategories( i18n("SyncAddressee") ); + Addressee newAdd; + addresseeRSync = newAdd; + addresseeRSync.setFamilyName(mCurrentSyncName + i18n(" - sync addressee")); + addresseeRSync.setUid("last-syncAddressee-"+mCurrentSyncName ); + addresseeRSync.setRevision( mLastAddressbookSync ); + addresseeRSync.setCategories( i18n("SyncAddressee") ); } } - if ( addresseeLSync->dtStart() == mLastCalendarSync ) + if ( addresseeLSync.revision() == mLastAddressbookSync ) fullDateRange = true; - if ( ! fullDateRange ) { - if ( addresseeLSync->dtStart() != addresseeRSync->dtStart() ) { + if ( addresseeLSync.revision() != addresseeRSync.revision() ) { @@ -2569,12 +2587,17 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo if ( fullDateRange ) - mLastCalendarSync = QDateTime::currentDateTime().addDays( -100*365); + mLastAddressbookSync = QDateTime::currentDateTime().addDays( -100*365); else - mLastCalendarSync = addresseeLSync->dtStart(); + mLastAddressbookSync = addresseeLSync.revision(); // for resyncing if own file has changed + // PENDING fixme later when implemented +#if 0 if ( mCurrentSyncDevice == "deleteaftersync" ) { - mLastCalendarSync = loadedFileVersion; - qDebug("setting mLastCalendarSync "); + mLastAddressbookSync = loadedFileVersion; + qDebug("setting mLastAddressbookSync "); } +#endif + + #if 0 //qDebug("*************************** "); - qDebug("mLastCalendarSync %s ",mLastCalendarSync.toString().latin1() ); + qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() ); QPtrList<Incidence> er = remote->rawIncidences(); @@ -2659,3 +2682,3 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo } else { - if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { + if ( inR->lastModified() > mLastAddressbookSync || mode == 5 ) { inR->setLastModified( modifiedCalendar ); @@ -2715,3 +2738,3 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo } else { - if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { + if ( inL->lastModified() < mLastAddressbookSync && mode != 4 ) { checkExternSyncAddressee(addresseeLSyncSharp, inL); @@ -2762,8 +2785,8 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo bar.hide(); - mLastCalendarSync = QDateTime::currentDateTime().addSecs( 1 ); + mLastAddressbookSync = QDateTime::currentDateTime().addSecs( 1 ); addresseeLSync->setReadOnly( false ); - addresseeLSync->setDtStart( mLastCalendarSync ); - addresseeRSync->setDtStart( mLastCalendarSync ); - addresseeLSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); - addresseeRSync->setDtEnd( mLastCalendarSync.addSecs( 3600 ) ); + addresseeLSync->setDtStart( mLastAddressbookSync ); + addresseeRSync->setDtStart( mLastAddressbookSync ); + addresseeLSync->setDtEnd( mLastAddressbookSync.addSecs( 3600 ) ); + addresseeRSync->setDtEnd( mLastAddressbookSync.addSecs( 3600 ) ); addresseeRSync->setLocation( i18n("Remote from: ")+mCurrentSyncName ) ; |