author | zautrix <zautrix> | 2004-09-18 13:13:58 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-18 13:13:58 (UTC) |
commit | bb16660f29fc709791aa0ee4cb63a40710a994a8 (patch) (side-by-side diff) | |
tree | 5d7387987848039bb3594a624b819d136a38b0cd /kaddressbook | |
parent | 4ec7c78ebd2c5a79ff224e9b07d9a3164f7fe602 (diff) | |
download | kdepimpi-bb16660f29fc709791aa0ee4cb63a40710a994a8.zip kdepimpi-bb16660f29fc709791aa0ee4cb63a40710a994a8.tar.gz kdepimpi-bb16660f29fc709791aa0ee4cb63a40710a994a8.tar.bz2 |
more AB syncing
-rw-r--r-- | kaddressbook/kabcore.cpp | 93 | ||||
-rw-r--r-- | kaddressbook/kabcore.h | 2 |
2 files changed, 60 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 @@ -2510,76 +2510,99 @@ QString KABCore::getPassword( ) retfile = lab.text(); dia.hide(); qApp->processEvents(); return retfile; } +#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; int addedAddressee = 0; int addedAddresseeR = 0; int deletedAddresseeR = 0; int deletedAddresseeL = 0; int changedLocal = 0; int changedRemote = 0; //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 ); } else { 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() ) { // qDebug("set fulldate to true %s %s" ,addresseeLSync->dtStart().toString().latin1(), addresseeRSync->dtStart().toString().latin1() ); //qDebug("%d %d %d %d ", addresseeLSync->dtStart().time().second(), addresseeLSync->dtStart().time().msec() , addresseeRSync->dtStart().time().second(), addresseeRSync->dtStart().time().msec()); fullDateRange = true; } } 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(); Incidence* inR = er.first(); Incidence* inL; QProgressBar bar( er.count(),0 ); bar.setCaption (i18n("Syncing - close to abort!") ); @@ -2654,13 +2677,13 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo inR->setLastModified( modifiedCalendar ); inL = inR->clone(); local->addIncidence( inL ); ++addedAddressee; } } else { - if ( inR->lastModified() > mLastCalendarSync || mode == 5 ) { + if ( inR->lastModified() > mLastAddressbookSync || mode == 5 ) { inR->setLastModified( modifiedCalendar ); local->addIncidence( inR->clone() ); ++addedAddressee; } else { checkExternSyncAddressee(addresseeRSyncSharp, inR); remote->deleteIncidence( inR ); @@ -2710,13 +2733,13 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo inR = inL->clone(); inR->setTempSyncStat( SYNC_TEMPSTATE_INITIAL ); remote->addIncidence( inR ); } } } else { - if ( inL->lastModified() < mLastCalendarSync && mode != 4 ) { + if ( inL->lastModified() < mLastAddressbookSync && mode != 4 ) { checkExternSyncAddressee(addresseeLSyncSharp, inL); local->deleteIncidence( inL ); ++deletedAddresseeL; } else { if ( ! KOPrefs::instance()->mWriteBackExistingOnly ) { ++addedAddresseeR; @@ -2757,18 +2780,18 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo ++delFut; } inR = er.next(); } } 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 ) ; addresseeLSync->setLocation(i18n("Local from: ") + mCurrentSyncName ); addresseeLSync->setReadOnly( true ); if ( mGlobalSyncMode == SYNC_MODE_NORMAL) remote->addAddressee( addresseeRSync ); QString mes; diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index 4487a8a..c67cee6 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h @@ -469,12 +469,14 @@ class KABCore : public QWidget void edit_sync_options(); bool syncAB(QString filename, int mode); int ringSync(); QString getPassword( ); int mGlobalSyncMode; bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); + KABC::Addressee getLastSyncAddressee(); + QDateTime mLastAddressbookSync; public slots: void confSync(); // ********************* }; |