-rw-r--r-- | kaddressbook/kabcore.cpp | 79 |
1 files changed, 42 insertions, 37 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index aa04631..a480baf 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp @@ -2800,6 +2800,8 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo int deletedAddresseeL = 0; int changedLocal = 0; int changedRemote = 0; + int filteredIN = 0; + int filteredOUT = 0; QString mCurrentSyncName = syncManager->getCurrentSyncName(); QString mCurrentSyncDevice = syncManager->getCurrentSyncDevice(); @@ -2989,6 +2991,8 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo ++deletedAddresseeR; } } + } else { + ++filteredIN; } } } @@ -3010,49 +3014,50 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo bool skipIncidence = false; if ( uid.left(19) == QString("last-syncAddressee-") ) skipIncidence = true; - if ( ! skipIncidence ) { - inL = local->findByUid( uid ); - if ( (!filterOUT.name().isEmpty()) && (! filterOUT.filterAddressee( inL ) ) ) - skipIncidence = true; - } if ( !skipIncidence ) { + inL = local->findByUid( uid ); if ( !inL.resource() || inL.resource()->includeInSync() ) { inR = remote->findByUid( uid ); - if ( inR.isEmpty() ) { // no conflict ********** add or delete local - if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { - if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { - // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); - local->removeAddressee( inL ); - ++deletedAddresseeL; - } else { - if ( ! syncManager->mWriteBackExistingOnly ) { - inL.removeID(mCurrentSyncDevice ); - ++addedAddresseeR; - inL.setRevision( modifiedCalendar ); - local->insertAddressee( inL, false ); - inR = inL; - inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); - inR.setResource( 0 ); - remote->insertAddressee( inR, false ); + if ( inR.isEmpty() ){ + if ( filterOUT.name().isEmpty() || filterOUT.filterAddressee( inL ) ) { + // no conflict ********** add or delete local + if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) { + if ( !inL.getID(mCurrentSyncDevice).isEmpty() && mode != 4 ) { + // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); + local->removeAddressee( inL ); + ++deletedAddresseeL; + } else { + if ( ! syncManager->mWriteBackExistingOnly ) { + inL.removeID(mCurrentSyncDevice ); + ++addedAddresseeR; + inL.setRevision( modifiedCalendar ); + local->insertAddressee( inL, false ); + inR = inL; + inR.setTempSyncStat( SYNC_TEMPSTATE_ADDED_EXTERNAL ); + inR.setResource( 0 ); + remote->insertAddressee( inR, false ); + } } - } - } else { - if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { - //qDebug("data %s ", inL.revision().toString().latin1()); - // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); - local->removeAddressee( inL ); - ++deletedAddresseeL; } else { - if ( ! syncManager->mWriteBackExistingOnly ) { - ++addedAddresseeR; - inL.setRevision( modifiedCalendar ); - local->insertAddressee( inL, false ); - inR = inL; - inR.setIDStr( ":" ); - inR.setResource( 0 ); - remote->insertAddressee( inR, false ); + if ( inL.revision() < mLastAddressbookSync && mode != 4 ) { + //qDebug("data %s ", inL.revision().toString().latin1()); + // pending checkExternSyncAddressee(addresseeLSyncSharp, inL); + local->removeAddressee( inL ); + ++deletedAddresseeL; + } else { + if ( ! syncManager->mWriteBackExistingOnly ) { + ++addedAddresseeR; + inL.setRevision( modifiedCalendar ); + local->insertAddressee( inL, false ); + inR = inL; + inR.setIDStr( ":" ); + inR.setResource( 0 ); + remote->insertAddressee( inR, false ); + } } } + } else { + ++filteredOUT; } } } @@ -3080,7 +3085,7 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo remote->insertAddressee( addresseeRSync, false ); local->insertAddressee( addresseeLSync, false ); QString mes; - mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR ); + mes .sprintf( i18n("Synchronization summary:\n\n %d items added to local\n %d items added to remote\n %d items updated on local\n %d items updated on remote\n %d items deleted on local\n %d items deleted on remote\n %d incoming filtered out\n %d outgoing filtered out"),addedAddressee, addedAddresseeR, changedLocal, changedRemote, deletedAddresseeL, deletedAddresseeR, filteredIN, filteredOUT ); qDebug( mes ); mes = i18n("Local addressbook changed!\n") +mes; if ( syncManager->mShowSyncSummary ) { |