author | zautrix <zautrix> | 2004-09-19 20:27:44 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-19 20:27:44 (UTC) |
commit | 3da2cfeab2edbe64a17251662e56668fe143f7a3 (patch) (side-by-side diff) | |
tree | 37e8d4445fca84bd4e93af38c96c5c489f9cbca8 | |
parent | afa28a62314117555d6b32291188eedd1a576284 (diff) | |
download | kdepimpi-3da2cfeab2edbe64a17251662e56668fe143f7a3.zip kdepimpi-3da2cfeab2edbe64a17251662e56668fe143f7a3.tar.gz kdepimpi-3da2cfeab2edbe64a17251662e56668fe143f7a3.tar.bz2 |
more AB sync
-rw-r--r-- | kabc/addressbook.cpp | 32 | ||||
-rw-r--r-- | kabc/addressbook.h | 3 | ||||
-rw-r--r-- | kaddressbook/kabcore.cpp | 25 |
3 files changed, 37 insertions, 23 deletions
diff --git a/kabc/addressbook.cpp b/kabc/addressbook.cpp index 64832f1..86dc7c2 100644 --- a/kabc/addressbook.cpp +++ b/kabc/addressbook.cpp @@ -599,12 +599,44 @@ Addressee AddressBook::findByUid( const QString &uid ) if ( uid == (*it).uid() ) { return *it; } } return Addressee(); } +void AddressBook::preExternSync( AddressBook* aBook, const QString& csd ) +{ + qDebug("AddressBook::preExternSync "); + AddressBook::Iterator it; + for ( it = begin(); it != end(); ++it ) { + (*it).setID( csd, (*it).externalUID() ); + (*it).computeCsum( csd ); + } + mergeAB( aBook ,csd ); +} +void AddressBook::postExternSync( AddressBook* aBook , const QString& csd) +{ + qDebug("AddressBook::postExternSync "); + AddressBook::Iterator it; + for ( it = begin(); it != end(); ++it ) { + if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID || + (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_CSUM ) { + Addressee ad = aBook->findByUid( ( (*it).uid() )); + if ( ad.isEmpty() ) { + qDebug("ERROR ad empty "); + } else { + (*it).computeCsum( csd ); + if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) + ad.setID( csd, (*it).externalUID() ); + ad.setCsum( csd, (*it).getCsum( csd ) ); + aBook->insertAddressee( ad ); + } + } + } +} + + Addressee AddressBook::findByExternUid( const QString& uid , const QString& profile ) { Iterator it; for ( it = begin(); it != end(); ++it ) { if ( uid == (*it).getID( profile ) ) return (*it); diff --git a/kabc/addressbook.h b/kabc/addressbook.h index f40e015..157dc56 100644 --- a/kabc/addressbook.h +++ b/kabc/addressbook.h @@ -292,12 +292,15 @@ class AddressBook : public QObject //Addressee::List getExternLastSyncAddressees(); void resetTempSyncStat(); QStringList uidList(); void removeDeletedAddressees(); void mergeAB( AddressBook *aBook, const QString& profile ); Addressee findByExternUid( const QString& uid , const QString& profile ); + + void preExternSync( AddressBook* aBook, const QString& csd ); + void postExternSync( AddressBook* aBook, const QString& csd ); signals: /** Emitted, when the address book has changed on disk. */ void addressBookChanged( AddressBook * ); diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index b3d88de..8f3ca9b 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -2925,19 +2925,13 @@ bool KABCore::syncAB(QString filename, int mode) if ( abLocal.load() ) { qDebug("AB loaded %s,sync mode %d",filename.latin1(), mode ); bool external = false; if ( filename.right(4) == ".xml") { mGlobalSyncMode = SYNC_MODE_EXTERNAL; - AddressBook::Iterator it; - for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { - (*it).setID( mCurrentSyncDevice, (*it).externalUID() ); - (*it).computeCsum( mCurrentSyncDevice ); - } - abLocal.mergeAB( mAddressBook ,mCurrentSyncDevice ); - + abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice ); } else { Addressee lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice ); if ( ! lse.isEmpty() ) { if ( lse.familyName().left(4) == "!E: " ) external = true; } else { @@ -2975,28 +2969,13 @@ bool KABCore::syncAB(QString filename, int mode) if ( external && filename.right(4) != ".xml") abLocal.removeDeletedAddressees(); qDebug("Saving remote AB "); abLocal.saveAB(); if ( external && filename.right(4) == ".xml") { // afterwrite processing - AddressBook::Iterator it; - for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { - if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID || - (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_CSUM ) { - Addressee ad = mAddressBook->findByUid( ( (*it).uid() )); - if ( ad.isEmpty() ) { - qDebug("ERROR ad empty "); - } else { - (*it).computeCsum( mCurrentSyncDevice ); - if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) - ad.setID( mCurrentSyncDevice, (*it).externalUID() ); - ad.setCsum( mCurrentSyncDevice, (*it).getCsum( mCurrentSyncDevice ) ); - mAddressBook->insertAddressee( ad ); - } - } - } + abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); } } } setModified(); } |