summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Side-by-side diff
Diffstat (limited to 'kaddressbook') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/kabcore.cpp9
-rw-r--r--kaddressbook/viewmanager.cpp9
-rw-r--r--kaddressbook/viewmanager.h2
3 files changed, 20 insertions, 0 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp
index c6288fa..c5a36e2 100644
--- a/kaddressbook/kabcore.cpp
+++ b/kaddressbook/kabcore.cpp
@@ -2867,6 +2867,11 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
}
#endif
+
+ // ********** setting filters ****************
+ Filter filterIN = mViewManager->getFilterByName( syncManager->mFilterInAB );
+ Filter filterOUT = mViewManager->getFilterByName( syncManager->mFilterOutAB );
+
//qDebug("*************************** ");
// qDebug("mLastAddressbookSync %s ",mLastAddressbookSync.toString().latin1() );
QStringList er = remote->uidList();
@@ -2946,6 +2951,7 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
}
}
} else { // no conflict ********** add or delete remote
+ if ( filterIN.name().isEmpty() || filterIN.filterAddressee( inR ) ) {
if ( mGlobalSyncMode == SYNC_MODE_EXTERNAL ) {
QString des = addresseeLSync.note();
if ( des.find( inR.getID(mCurrentSyncDevice) +"," ) >= 0 && mode != 5) { // delete it
@@ -2978,6 +2984,7 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
}
}
}
+ }
++incCounter;
}
er.clear();
@@ -2996,6 +3003,8 @@ bool KABCore::synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBo
bool skipIncidence = false;
if ( uid.left(19) == QString("last-syncAddressee-") )
skipIncidence = true;
+ if ( !filterOUT.name().isEmpty() && ! filterOUT.filterAddressee( inL ) )
+ skipIncidence = true;
if ( !skipIncidence ) {
inL = local->findByUid( uid );
if ( !inL.resource() || inL.resource()->includeInSync() ) {
diff --git a/kaddressbook/viewmanager.cpp b/kaddressbook/viewmanager.cpp
index 59bddd9..9c3a641 100644
--- a/kaddressbook/viewmanager.cpp
+++ b/kaddressbook/viewmanager.cpp
@@ -618,6 +618,15 @@ QStringList ViewManager::filterNames() const
return names;
}
+Filter ViewManager::getFilterByName( const QString &name ) const
+{
+ Filter::List::ConstIterator it;
+ for ( it = mFilterList.begin(); it != mFilterList.end(); ++it )
+ if ( name == (*it).name() )
+ return (*it);
+
+ return Filter();
+}
int ViewManager::filterPosition( const QString &name ) const
{
diff --git a/kaddressbook/viewmanager.h b/kaddressbook/viewmanager.h
index a03a83f..272e1b0 100644
--- a/kaddressbook/viewmanager.h
+++ b/kaddressbook/viewmanager.h
@@ -28,6 +28,7 @@
#include <qstringlist.h>
#include <kaddressbookview.h>
#include <qdict.h>
+#include "filter.h"
class KAction;
class KSelectAction;
@@ -59,6 +60,7 @@ class ViewManager : public QWidget
void unloadViews();
KSelectAction * getFilterAction() { return mActionSelectFilter; }
+ Filter getFilterByName( const QString &name ) const;
QStringList selectedUids() const;
QStringList selectedEmails() const;