summaryrefslogtreecommitdiffabout
path: root/kaddressbook
Unidiff
Diffstat (limited to 'kaddressbook') (more/less context) (show whitespace changes)
-rw-r--r--kaddressbook/filter.cpp22
-rw-r--r--kaddressbook/filter.h4
-rw-r--r--kaddressbook/filtereditdialog.cpp40
-rw-r--r--kaddressbook/filtereditdialog.h7
4 files changed, 59 insertions, 14 deletions
diff --git a/kaddressbook/filter.cpp b/kaddressbook/filter.cpp
index 39d2ae4..9cb4c2d 100644
--- a/kaddressbook/filter.cpp
+++ b/kaddressbook/filter.cpp
@@ -30,2 +30,3 @@
30#include "filter.h" 30#include "filter.h"
31#include <secrecy.h>
31 32
@@ -35,2 +36,3 @@ Filter::Filter()
35{ 36{
37 mCriteria = ShowPublic | ShowPrivate| ShowConfidential ;
36} 38}
@@ -41,2 +43,3 @@ Filter::Filter( const QString &name )
41{ 43{
44 mCriteria = ShowPublic | ShowPrivate| ShowConfidential ;
42} 45}
@@ -81,2 +84,19 @@ bool Filter::filterAddressee( const KABC::Addressee &a )
81{ 84{
85 switch ( a.secrecy().type()) {
86 case KABC::Secrecy::Public:
87 if (! (mCriteria & ShowPublic ))
88 return false;
89 break;
90 case KABC::Secrecy::Private:
91 if (! (mCriteria & ShowPrivate ))
92 return false;
93 break;
94 case KABC::Secrecy::Confidential:
95 if (! (mCriteria & ShowConfidential ))
96 return false;
97 break;
98 default:
99 return false;
100 break;
101 }
82 QStringList::Iterator iter; 102 QStringList::Iterator iter;
@@ -122,2 +142,3 @@ void Filter::save( KConfig *config )
122 config->writeEntry( "MatchRule", (int)mMatchRule ); 142 config->writeEntry( "MatchRule", (int)mMatchRule );
143 config->writeEntry( "Criteria", (int)mCriteria );
123} 144}
@@ -130,2 +151,3 @@ void Filter::restore( KConfig *config )
130 mMatchRule = (MatchRule)config->readNumEntry( "MatchRule", Matching ); 151 mMatchRule = (MatchRule)config->readNumEntry( "MatchRule", Matching );
152 mCriteria = config->readNumEntry( "Criteria", (ShowPublic | ShowPrivate| ShowConfidential) );
131} 153}
diff --git a/kaddressbook/filter.h b/kaddressbook/filter.h
index cf2c0a1..26870d7 100644
--- a/kaddressbook/filter.h
+++ b/kaddressbook/filter.h
@@ -41,2 +41,5 @@ class Filter
41 public: 41 public:
42 enum { ShowPublic = 1, ShowPrivate = 2, ShowConfidential = 4};
43 void setCriteria(int c) { mCriteria = c ;}
44 int criteria() const { return mCriteria;}
42 typedef QValueList<Filter> List; 45 typedef QValueList<Filter> List;
@@ -145,2 +148,3 @@ class Filter
145 private: 148 private:
149 int mCriteria;
146 QString mName; 150 QString mName;
diff --git a/kaddressbook/filtereditdialog.cpp b/kaddressbook/filtereditdialog.cpp
index 063585a..987f234 100644
--- a/kaddressbook/filtereditdialog.cpp
+++ b/kaddressbook/filtereditdialog.cpp
@@ -36,2 +36,3 @@ $Id$
36#include <qradiobutton.h> 36#include <qradiobutton.h>
37#include <qcheckbox.h>
37#include <qregexp.h> 38#include <qregexp.h>
@@ -92,2 +93,8 @@ void FilterEditDialog::setFilter( const Filter &filter )
92 mMatchRuleGroup->setButton( 1 ); 93 mMatchRuleGroup->setButton( 1 );
94
95 int c = filter.criteria() ;
96 mPublic->setChecked(c &Filter::ShowPublic);
97 mPrivate->setChecked(c & Filter::ShowPrivate);
98 mConfidential->setChecked(c & Filter::ShowConfidential);
99
93} 100}
@@ -116,2 +123,8 @@ Filter FilterEditDialog::filter()
116 123
124 int c = 0;
125 if (mPublic->isChecked()) c |= Filter::ShowPublic;
126 if (mPrivate->isChecked()) c |= Filter::ShowPrivate;
127 if (mConfidential->isChecked()) c |= Filter::ShowConfidential;
128 filter.setCriteria( c ) ;
129
117 return filter; 130 return filter;
@@ -145,19 +158,20 @@ void FilterEditDialog::initGUI()
145 158
146 mMatchRuleGroup = new QButtonGroup( page ); 159 mMatchRuleGroup = new QHButtonGroup( i18n( "Category rule" ), page );
147 mMatchRuleGroup->setExclusive( true ); 160 mMatchRuleGroup->setExclusive( true );
148 161 QRadioButton *radio = new QRadioButton( i18n( "Include categories" ), mMatchRuleGroup );
149 QBoxLayout *gbLayout = new QVBoxLayout( mMatchRuleGroup );
150 gbLayout->setSpacing( KDialog::spacingHint() );
151 gbLayout->setMargin( KDialog::marginHint() );
152
153 QRadioButton *radio = new QRadioButton( i18n( "Show only contacts matching\n the selected categories" ), mMatchRuleGroup );
154 radio->setChecked( true ); 162 radio->setChecked( true );
155 mMatchRuleGroup->insert( radio ); 163 //mMatchRuleGroup->insert( radio );
156 gbLayout->addWidget( radio ); 164 radio = new QRadioButton( i18n( "Exclude categories" ), mMatchRuleGroup );
165 //mMatchRuleGroup->insert( radio );
166 topLayout->addMultiCellWidget( mMatchRuleGroup, 2, 2, 0, 1 );
157 167
158 radio = new QRadioButton( i18n( "Show all contacts except those\n matching the selected categories" ), mMatchRuleGroup ); 168 QHButtonGroup * mMatchPPCGroup = new QHButtonGroup(i18n( "Include contacts, that are:" ), page );
159 mMatchRuleGroup->insert( radio ); 169 mPublic = new QCheckBox( i18n( "public" ), mMatchPPCGroup );
160 gbLayout->addWidget( radio ); 170 mPrivate = new QCheckBox( i18n( "private" ), mMatchPPCGroup );
171 mConfidential = new QCheckBox( i18n( "confidential" ), mMatchPPCGroup );
172 mPublic->setChecked( true );
173 mPrivate->setChecked( true );
174 mConfidential->setChecked( true );
175 topLayout->addMultiCellWidget( mMatchPPCGroup, 3, 3, 0, 1 );
161 176
162 topLayout->addMultiCellWidget( mMatchRuleGroup, 2, 2, 0, 1 );
163} 177}
diff --git a/kaddressbook/filtereditdialog.h b/kaddressbook/filtereditdialog.h
index 4dd75e4..5a8bad1 100644
--- a/kaddressbook/filtereditdialog.h
+++ b/kaddressbook/filtereditdialog.h
@@ -38,2 +38,3 @@ class QWidget;
38class QListBoxItem; 38class QListBoxItem;
39class QCheckBox;
39 40
@@ -44,2 +45,3 @@ class KListView;
44#include <kdialogbase.h> 45#include <kdialogbase.h>
46#include <qhbuttongroup.h>
45 47
@@ -98,3 +100,6 @@ class FilterEditDialog : public KDialogBase
98 KListView *mCategoriesView; 100 KListView *mCategoriesView;
99 QButtonGroup *mMatchRuleGroup; 101 QHButtonGroup *mMatchRuleGroup;
102 QCheckBox *mPrivate;
103 QCheckBox *mPublic;
104 QCheckBox *mConfidential;
100 QPushButton *mEditButton; 105 QPushButton *mEditButton;