-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 | |||
@@ -603,4 +603,36 @@ Addressee AddressBook::findByUid( const QString &uid ) | |||
603 | return Addressee(); | 603 | return Addressee(); |
604 | } | 604 | } |
605 | void AddressBook::preExternSync( AddressBook* aBook, const QString& csd ) | ||
606 | { | ||
607 | qDebug("AddressBook::preExternSync "); | ||
608 | AddressBook::Iterator it; | ||
609 | for ( it = begin(); it != end(); ++it ) { | ||
610 | (*it).setID( csd, (*it).externalUID() ); | ||
611 | (*it).computeCsum( csd ); | ||
612 | } | ||
613 | mergeAB( aBook ,csd ); | ||
614 | } | ||
615 | void AddressBook::postExternSync( AddressBook* aBook , const QString& csd) | ||
616 | { | ||
617 | qDebug("AddressBook::postExternSync "); | ||
618 | AddressBook::Iterator it; | ||
619 | for ( it = begin(); it != end(); ++it ) { | ||
620 | if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID || | ||
621 | (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_CSUM ) { | ||
622 | Addressee ad = aBook->findByUid( ( (*it).uid() )); | ||
623 | if ( ad.isEmpty() ) { | ||
624 | qDebug("ERROR ad empty "); | ||
625 | } else { | ||
626 | (*it).computeCsum( csd ); | ||
627 | if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) | ||
628 | ad.setID( csd, (*it).externalUID() ); | ||
629 | ad.setCsum( csd, (*it).getCsum( csd ) ); | ||
630 | aBook->insertAddressee( ad ); | ||
631 | } | ||
632 | } | ||
633 | } | ||
634 | } | ||
635 | |||
636 | |||
605 | Addressee AddressBook::findByExternUid( const QString& uid , const QString& profile ) | 637 | Addressee AddressBook::findByExternUid( const QString& uid , const QString& profile ) |
606 | { | 638 | { |
diff --git a/kabc/addressbook.h b/kabc/addressbook.h index f40e015..157dc56 100644 --- a/kabc/addressbook.h +++ b/kabc/addressbook.h | |||
@@ -296,4 +296,7 @@ class AddressBook : public QObject | |||
296 | void mergeAB( AddressBook *aBook, const QString& profile ); | 296 | void mergeAB( AddressBook *aBook, const QString& profile ); |
297 | Addressee findByExternUid( const QString& uid , const QString& profile ); | 297 | Addressee findByExternUid( const QString& uid , const QString& profile ); |
298 | |||
299 | void preExternSync( AddressBook* aBook, const QString& csd ); | ||
300 | void postExternSync( AddressBook* aBook, const QString& csd ); | ||
298 | signals: | 301 | signals: |
299 | /** | 302 | /** |
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index b3d88de..8f3ca9b 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -2929,11 +2929,5 @@ bool KABCore::syncAB(QString filename, int mode) | |||
2929 | if ( filename.right(4) == ".xml") { | 2929 | if ( filename.right(4) == ".xml") { |
2930 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; | 2930 | mGlobalSyncMode = SYNC_MODE_EXTERNAL; |
2931 | AddressBook::Iterator it; | 2931 | abLocal.preExternSync( mAddressBook ,mCurrentSyncDevice ); |
2932 | for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { | ||
2933 | (*it).setID( mCurrentSyncDevice, (*it).externalUID() ); | ||
2934 | (*it).computeCsum( mCurrentSyncDevice ); | ||
2935 | } | ||
2936 | abLocal.mergeAB( mAddressBook ,mCurrentSyncDevice ); | ||
2937 | |||
2938 | } else { | 2932 | } else { |
2939 | Addressee lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice ); | 2933 | Addressee lse = mAddressBook->findByUid( "last-syncAddressee-"+mCurrentSyncDevice ); |
@@ -2979,20 +2973,5 @@ bool KABCore::syncAB(QString filename, int mode) | |||
2979 | if ( external && filename.right(4) == ".xml") { | 2973 | if ( external && filename.right(4) == ".xml") { |
2980 | // afterwrite processing | 2974 | // afterwrite processing |
2981 | AddressBook::Iterator it; | 2975 | abLocal.postExternSync( mAddressBook,mCurrentSyncDevice ); |
2982 | for ( it = abLocal.begin(); it != abLocal.end(); ++it ) { | ||
2983 | if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID || | ||
2984 | (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_CSUM ) { | ||
2985 | Addressee ad = mAddressBook->findByUid( ( (*it).uid() )); | ||
2986 | if ( ad.isEmpty() ) { | ||
2987 | qDebug("ERROR ad empty "); | ||
2988 | } else { | ||
2989 | (*it).computeCsum( mCurrentSyncDevice ); | ||
2990 | if ( (*it).tempSyncStat() == SYNC_TEMPSTATE_NEW_ID ) | ||
2991 | ad.setID( mCurrentSyncDevice, (*it).externalUID() ); | ||
2992 | ad.setCsum( mCurrentSyncDevice, (*it).getCsum( mCurrentSyncDevice ) ); | ||
2993 | mAddressBook->insertAddressee( ad ); | ||
2994 | } | ||
2995 | } | ||
2996 | } | ||
2997 | } | 2976 | } |
2998 | } | 2977 | } |