author | zautrix <zautrix> | 2005-04-04 12:59:35 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-04-04 12:59:35 (UTC) |
commit | 919f1060a9ef41e6c865f28132cf9e82c3f67409 (patch) (unidiff) | |
tree | 8e7c1283071ff2af2897ccf1c7e51e8b2b2bfadc | |
parent | 23db4aa99cb7a5feb540b6be578efaee8ec6ef80 (diff) | |
download | kdepimpi-919f1060a9ef41e6c865f28132cf9e82c3f67409.zip kdepimpi-919f1060a9ef41e6c865f28132cf9e82c3f67409.tar.gz kdepimpi-919f1060a9ef41e6c865f28132cf9e82c3f67409.tar.bz2 |
kapi filter fixes
-rw-r--r-- | kaddressbook/filter.cpp | 24 | ||||
-rw-r--r-- | kaddressbook/filter.h | 1 |
2 files changed, 18 insertions, 7 deletions
diff --git a/kaddressbook/filter.cpp b/kaddressbook/filter.cpp index 7a869fa..12ab1e3 100644 --- a/kaddressbook/filter.cpp +++ b/kaddressbook/filter.cpp | |||
@@ -28,32 +28,35 @@ | |||
28 | #include "kabprefs.h" | 28 | #include "kabprefs.h" |
29 | 29 | ||
30 | #include "filter.h" | 30 | #include "filter.h" |
31 | #include <secrecy.h> | 31 | #include <secrecy.h> |
32 | 32 | ||
33 | Filter::Filter() | 33 | Filter::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 | ||
40 | Filter::Filter( const QString &name ) | 41 | Filter::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 | ||
47 | Filter::~Filter() | 49 | Filter::~Filter() |
48 | { | 50 | { |
49 | } | 51 | } |
50 | 52 | ||
51 | void Filter::setName( const QString &name ) | 53 | void Filter::setName( const QString &name ) |
52 | { | 54 | { |
53 | mName = name; | 55 | mName = name; |
56 | noName = false; | ||
54 | } | 57 | } |
55 | 58 | ||
56 | const QString &Filter::name() const | 59 | const QString &Filter::name() const |
57 | { | 60 | { |
58 | return mName; | 61 | return mName; |
59 | } | 62 | } |
@@ -61,13 +64,15 @@ const QString &Filter::name() const | |||
61 | bool Filter::isInternal() const | 64 | bool Filter::isInternal() const |
62 | { | 65 | { |
63 | return mInternal; | 66 | return mInternal; |
64 | } | 67 | } |
65 | 68 | ||
66 | void Filter::apply( KABC::Addressee::List &addresseeList ) | 69 | void 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 ) ) |
71 | ++iter; | 76 | ++iter; |
72 | else | 77 | else |
73 | { | 78 | { |
@@ -79,12 +84,16 @@ void Filter::apply( KABC::Addressee::List &addresseeList ) | |||
79 | } | 84 | } |
80 | } | 85 | } |
81 | } | 86 | } |
82 | 87 | ||
83 | bool Filter::filterAddressee( const KABC::Addressee &a ) | 88 | bool 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 )) |
88 | return false; | 97 | return false; |
89 | break; | 98 | break; |
90 | case KABC::Secrecy::Private: | 99 | case KABC::Secrecy::Private: |
@@ -98,16 +107,15 @@ bool Filter::filterAddressee( const KABC::Addressee &a ) | |||
98 | default: | 107 | default: |
99 | return false; | 108 | return false; |
100 | break; | 109 | break; |
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 ) ) |
111 | return ( mMatchRule == Matching ); | 119 | return ( mMatchRule == Matching ); |
112 | } | 120 | } |
113 | 121 | ||
@@ -141,13 +149,14 @@ void Filter::save( KConfig *config ) | |||
141 | config->writeEntry( "Categories", mCategoryList ); | 149 | config->writeEntry( "Categories", mCategoryList ); |
142 | config->writeEntry( "MatchRule", (int)mMatchRule ); | 150 | config->writeEntry( "MatchRule", (int)mMatchRule ); |
143 | config->writeEntry( "Criteria", (int)mCriteria ); | 151 | config->writeEntry( "Criteria", (int)mCriteria ); |
144 | } | 152 | } |
145 | 153 | ||
146 | void Filter::restore( KConfig *config ) | 154 | void 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" ); |
151 | mMatchRule = (MatchRule)config->readNumEntry( "MatchRule", Matching ); | 160 | mMatchRule = (MatchRule)config->readNumEntry( "MatchRule", Matching ); |
152 | mCriteria = config->readNumEntry( "Criteria", (ShowPublic | ShowPrivate| ShowConfidential ) ); | 161 | mCriteria = config->readNumEntry( "Criteria", (ShowPublic | ShowPrivate| ShowConfidential ) ); |
153 | } | 162 | } |
@@ -202,13 +211,14 @@ Filter::List Filter::restore( KConfig *config, QString baseGroup ) | |||
202 | list.append( f ); | 211 | list.append( f ); |
203 | } | 212 | } |
204 | 213 | ||
205 | if ( list.isEmpty()) { | 214 | if ( list.isEmpty()) { |
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; |
212 | filter.mMatchRule = Matching; | 222 | filter.mMatchRule = Matching; |
213 | filter.mInternal = true; | 223 | filter.mInternal = true; |
214 | list.append( filter ); | 224 | list.append( filter ); |
diff --git a/kaddressbook/filter.h b/kaddressbook/filter.h index 93f1352..f4ae123 100644 --- a/kaddressbook/filter.h +++ b/kaddressbook/filter.h | |||
@@ -143,12 +143,13 @@ class Filter | |||
143 | 143 | ||
144 | /** @return The current match rule. | 144 | /** @return The current match rule. |
145 | */ | 145 | */ |
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; |
152 | MatchRule mMatchRule; | 153 | MatchRule mMatchRule; |
153 | bool mEnabled; | 154 | bool mEnabled; |
154 | bool mInternal; | 155 | bool mInternal; |