summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-04-04 12:59:35 (UTC)
committer zautrix <zautrix>2005-04-04 12:59:35 (UTC)
commit919f1060a9ef41e6c865f28132cf9e82c3f67409 (patch) (unidiff)
tree8e7c1283071ff2af2897ccf1c7e51e8b2b2bfadc
parent23db4aa99cb7a5feb540b6be578efaee8ec6ef80 (diff)
downloadkdepimpi-919f1060a9ef41e6c865f28132cf9e82c3f67409.zip
kdepimpi-919f1060a9ef41e6c865f28132cf9e82c3f67409.tar.gz
kdepimpi-919f1060a9ef41e6c865f28132cf9e82c3f67409.tar.bz2
kapi filter fixes
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/filter.cpp18
-rw-r--r--kaddressbook/filter.h1
2 files changed, 15 insertions, 4 deletions
diff --git a/kaddressbook/filter.cpp b/kaddressbook/filter.cpp
index 7a869fa..12ab1e3 100644
--- a/kaddressbook/filter.cpp
+++ b/kaddressbook/filter.cpp
@@ -31,17 +31,19 @@
31#include <secrecy.h> 31#include <secrecy.h>
32 32
33Filter::Filter() 33Filter::Filter()
34 : mName( QString::null ), mMatchRule( Matching ), mEnabled( true ), 34 : mName( QString::null ), mMatchRule( NotMatching ), mEnabled( true ),
35 mInternal( false ) 35 mInternal( false )
36{ 36{
37 mCriteria = ShowPublic | ShowPrivate| ShowConfidential ; 37 mCriteria = ShowPublic | ShowPrivate| ShowConfidential ;
38 noName = true;
38} 39}
39 40
40Filter::Filter( const QString &name ) 41Filter::Filter( const QString &name )
41 : mName( name ), mMatchRule( Matching ), mEnabled( true ), 42 : mName( name ), mMatchRule( NotMatching ), mEnabled( true ),
42 mInternal( false ) 43 mInternal( false )
43{ 44{
44 mCriteria = ShowPublic | ShowPrivate| ShowConfidential ; 45 mCriteria = ShowPublic | ShowPrivate| ShowConfidential ;
46 noName = false;
45} 47}
46 48
47Filter::~Filter() 49Filter::~Filter()
@@ -51,6 +53,7 @@ Filter::~Filter()
51void Filter::setName( const QString &name ) 53void Filter::setName( const QString &name )
52{ 54{
53 mName = name; 55 mName = name;
56 noName = false;
54} 57}
55 58
56const QString &Filter::name() const 59const QString &Filter::name() const
@@ -65,6 +68,8 @@ bool Filter::isInternal() const
65 68
66void Filter::apply( KABC::Addressee::List &addresseeList ) 69void Filter::apply( KABC::Addressee::List &addresseeList )
67{ 70{
71 if ( noName )
72 return;
68 KABC::Addressee::List::Iterator iter; 73 KABC::Addressee::List::Iterator iter;
69 for ( iter = addresseeList.begin(); iter != addresseeList.end(); ) { 74 for ( iter = addresseeList.begin(); iter != addresseeList.end(); ) {
70 if ( filterAddressee( *iter ) ) 75 if ( filterAddressee( *iter ) )
@@ -82,6 +87,10 @@ void Filter::apply( KABC::Addressee::List &addresseeList )
82 87
83bool Filter::filterAddressee( const KABC::Addressee &a ) 88bool Filter::filterAddressee( const KABC::Addressee &a )
84{ 89{
90
91 if ( noName )
92 return true;
93 //qDebug("Filter::filterAddressee %s",mName.latin1() );
85 switch ( a.secrecy().type()) { 94 switch ( a.secrecy().type()) {
86 case KABC::Secrecy::Public: 95 case KABC::Secrecy::Public:
87 if (! (mCriteria & ShowPublic )) 96 if (! (mCriteria & ShowPublic ))
@@ -101,10 +110,9 @@ bool Filter::filterAddressee( const KABC::Addressee &a )
101 } 110 }
102 QStringList::Iterator iter; 111 QStringList::Iterator iter;
103 iter = mCategoryList.begin(); 112 iter = mCategoryList.begin();
104 // empty filter always matches
105 113
106 if ( iter == mCategoryList.end() ) 114 if ( iter == mCategoryList.end() )
107 return true; 115 return ( !(mMatchRule == Matching) );
108 116
109 for ( ; iter != mCategoryList.end(); ++iter ) { 117 for ( ; iter != mCategoryList.end(); ++iter ) {
110 if ( a.hasCategory( *iter ) ) 118 if ( a.hasCategory( *iter ) )
@@ -145,6 +153,7 @@ void Filter::save( KConfig *config )
145 153
146void Filter::restore( KConfig *config ) 154void Filter::restore( KConfig *config )
147{ 155{
156 noName = false;
148 mName = config->readEntry( "Name", "<internal error>" ); 157 mName = config->readEntry( "Name", "<internal error>" );
149 mEnabled = config->readBoolEntry( "Enabled", true ); 158 mEnabled = config->readBoolEntry( "Enabled", true );
150 mCategoryList = config->readListEntry( "Categories" ); 159 mCategoryList = config->readListEntry( "Categories" );
@@ -206,6 +215,7 @@ Filter::List Filter::restore( KConfig *config, QString baseGroup )
206 QStringList cats = KABPrefs::instance()->mCustomCategories; 215 QStringList cats = KABPrefs::instance()->mCustomCategories;
207 for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) { 216 for ( QStringList::Iterator it = cats.begin(); it != cats.end(); ++it ) {
208 Filter filter; 217 Filter filter;
218 filter.noName = false;
209 filter.mName = *it; 219 filter.mName = *it;
210 filter.mEnabled = true; 220 filter.mEnabled = true;
211 filter.mCategoryList = *it; 221 filter.mCategoryList = *it;
diff --git a/kaddressbook/filter.h b/kaddressbook/filter.h
index 93f1352..f4ae123 100644
--- a/kaddressbook/filter.h
+++ b/kaddressbook/filter.h
@@ -146,6 +146,7 @@ class Filter
146 MatchRule matchRule() const; 146 MatchRule matchRule() const;
147 147
148 private: 148 private:
149 bool noName;
149 int mCriteria; 150 int mCriteria;
150 QString mName; 151 QString mName;
151 QStringList mCategoryList; 152 QStringList mCategoryList;