• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

knode

  • sources
  • kde-4.12
  • kdepim
  • knode
knstatusfilter.cpp
Go to the documentation of this file.
1 /*
2  KNode, the KDE newsreader
3  Copyright (c) 1999-2005 the KNode authors.
4  See file AUTHORS for details
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10  You should have received a copy of the GNU General Public License
11  along with this program; if not, write to the Free Software Foundation,
12  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
13 */
14 
15 #include "knstatusfilter.h"
16 
17 #include <QCheckBox>
18 #include <QGridLayout>
19 
20 #include <kdialog.h>
21 #include <klocale.h>
22 
23 #define EN_R 0
24 #define EN_N 1
25 #define EN_US 2
26 #define EN_NS 3
27 
28 #define DAT_R 4
29 #define DAT_N 5
30 #define DAT_US 6
31 #define DAT_NS 7
32 
33 using namespace KNode;
34 
35 KNode::StatusFilter::StatusFilter()
36 {
37  data.fill(false,8);
38 }
39 
40 
41 
42 KNode::StatusFilter::~StatusFilter()
43 {
44 }
45 
46 
47 
48 void KNode::StatusFilter::load( const KConfigGroup &group )
49 {
50  data.setBit(EN_R, group.readEntry("EN_R", false));
51  data.setBit(DAT_R, group.readEntry("DAT_R", false));
52 
53  data.setBit(EN_N, group.readEntry("EN_N", false));
54  data.setBit(DAT_N, group.readEntry("DAT_N", false));
55 
56  data.setBit(EN_US, group.readEntry("EN_US", false));
57  data.setBit(DAT_US, group.readEntry("DAT_US", false));
58 
59  data.setBit(EN_NS, group.readEntry("EN_NS", false));
60  data.setBit(DAT_NS, group.readEntry("DAT_NS", false));
61 
62 }
63 
64 
65 
66 void KNode::StatusFilter::save( KConfigGroup &group )
67 {
68  group.writeEntry("EN_R", data.at(EN_R));
69  group.writeEntry("DAT_R", data.at(DAT_R));
70 
71  group.writeEntry("EN_N", data.at(EN_N));
72  group.writeEntry("DAT_N", data.at(DAT_N));
73 
74  group.writeEntry("EN_US", data.at(EN_US));
75  group.writeEntry("DAT_US", data.at(DAT_US));
76 
77  group.writeEntry("EN_NS", data.at(EN_NS));
78  group.writeEntry("DAT_NS", data.at(DAT_NS));
79 }
80 
81 
82 
83 bool KNode::StatusFilter::doFilter( KNRemoteArticle::Ptr a )
84 {
85  bool ret=true;
86 
87  if(data.at(EN_R) && ret)
88  ret=(a->isRead() == data.at(DAT_R));
89 
90  if(data.at(EN_N) && ret)
91  ret=(a->isNew() == data.at(DAT_N));
92 
93  if(data.at(EN_US) && ret)
94  ret=(a->hasUnreadFollowUps() == data.at(DAT_US));
95 
96  if(data.at(EN_NS) && ret)
97  ret=(a->hasNewFollowUps() == data.at(DAT_NS));
98 
99  return ret;
100 }
101 
102 
103 
104 //==============================================================================
105 
106 KNode::StatusFilterWidget::StatusFilterWidget( QWidget *parent ) :
107  QWidget( parent )
108 {
109  enR=new QCheckBox(i18n("Is read:"), this);
110  enN=new QCheckBox(i18n("Is new:"), this);
111  enUS=new QCheckBox(i18n("Has unread followups:"), this);
112  enNS=new QCheckBox(i18n("Has new followups:"), this);
113 
114  rCom=new TFCombo(this);
115  nCom=new TFCombo(this);
116  usCom=new TFCombo(this);
117  nsCom=new TFCombo(this);
118 
119  QGridLayout *topL = new QGridLayout( this );
120  topL->setSpacing( KDialog::spacingHint() );
121  topL->addWidget(enR,0,0); topL->addWidget(rCom,0,1);
122  topL->addWidget(enN,1,0); topL->addWidget(nCom,1,1);
123  topL->addWidget(enUS,2,0); topL->addWidget(usCom,2,1);
124  topL->addWidget(enNS,3,0); topL->addWidget(nsCom,3,1);
125  topL->setColumnStretch(2,1);
126  topL->setRowStretch(4,1);
127 
128  connect( enR, SIGNAL(toggled(bool)), SLOT(slotEnabled()) );
129  connect( enN, SIGNAL(toggled(bool)), SLOT(slotEnabled()) );
130  connect( enUS, SIGNAL(toggled(bool)), SLOT(slotEnabled()) );
131  connect( enNS, SIGNAL(toggled(bool)), SLOT(slotEnabled()) );
132 }
133 
134 
135 
136 KNode::StatusFilterWidget::~StatusFilterWidget()
137 {
138 }
139 
140 
141 
142 StatusFilter KNode::StatusFilterWidget::filter()
143 {
144  StatusFilter f;
145 
146  f.data.setBit(EN_R, enR->isChecked());
147  f.data.setBit(DAT_R, rCom->value());
148 
149  f.data.setBit(EN_N, enN->isChecked());
150  f.data.setBit(DAT_N, nCom->value());
151 
152  f.data.setBit(EN_US, enUS->isChecked());
153  f.data.setBit(DAT_US, usCom->value());
154 
155  f.data.setBit(EN_NS, enNS->isChecked());
156  f.data.setBit(DAT_NS, nsCom->value());
157 
158  return f;
159 }
160 
161 
162 
163 void KNode::StatusFilterWidget::setFilter( StatusFilter &f )
164 {
165  enR->setChecked(f.data.at(EN_R));
166  rCom->setValue(f.data.at(DAT_R));
167 
168  enN->setChecked(f.data.at(EN_N));
169  nCom->setValue(f.data.at(DAT_N));
170 
171  enUS->setChecked(f.data.at(EN_US));
172  usCom->setValue(f.data.at(DAT_US));
173 
174  enNS->setChecked(f.data.at(EN_NS));
175  nsCom->setValue(f.data.at(DAT_NS));
176 
177  slotEnabled();
178 }
179 
180 
181 void KNode::StatusFilterWidget::clear()
182 {
183  enR->setChecked(false);
184  enN->setChecked(false);
185  enUS->setChecked(false);
186  enNS->setChecked(false);
187  rCom->setValue(true);
188  nCom->setValue(true);
189  nsCom->setValue(true);
190  usCom->setValue(true);
191 
192  slotEnabled();
193 }
194 
195 
196 
197 void KNode::StatusFilterWidget::slotEnabled()
198 {
199  rCom->setEnabled( enR->isChecked() );
200  nCom->setEnabled( enN->isChecked() );
201  usCom->setEnabled( enUS->isChecked() );
202  nsCom->setEnabled( enNS->isChecked() );
203 }
204 
205 
206 //==============================================================================
207 
208 
209 KNode::StatusFilterWidget::TFCombo::TFCombo( QWidget *parent ) : QComboBox( parent )
210 {
211  addItem(i18n("True"));
212  addItem(i18n("False"));
213 }
214 
215 
216 
217 KNode::StatusFilterWidget::TFCombo::~TFCombo()
218 {
219 }
220 
221 
222 
223 //--------------------------------
224 
225 #include "knstatusfilter.moc"
knstatusfilter.h
KNode::StatusFilterWidget::StatusFilterWidget
StatusFilterWidget(QWidget *parent)
Definition: knstatusfilter.cpp:106
KNode::StatusFilterWidget::nCom
TFCombo * nCom
Definition: knstatusfilter.h:82
DAT_NS
#define DAT_NS
Definition: knstatusfilter.cpp:31
QWidget
KNode::StatusFilterWidget::filter
StatusFilter filter()
Definition: knstatusfilter.cpp:142
EN_N
#define EN_N
Definition: knstatusfilter.cpp:24
KNode::StatusFilterWidget::clear
void clear()
Definition: knstatusfilter.cpp:181
KNode::StatusFilter::save
void save(KConfigGroup &conf)
Definition: knstatusfilter.cpp:66
KNode::StatusFilterWidget::TFCombo
Combobox to select a boolean value (true/false).
Definition: knstatusfilter.h:71
KNode::StatusFilterWidget::TFCombo::TFCombo
TFCombo(QWidget *parent)
Definition: knstatusfilter.cpp:209
KNode::StatusFilterWidget::enN
QCheckBox * enN
Definition: knstatusfilter.h:81
EN_US
#define EN_US
Definition: knstatusfilter.cpp:25
KNode::StatusFilterWidget::enUS
QCheckBox * enUS
Definition: knstatusfilter.h:81
DAT_US
#define DAT_US
Definition: knstatusfilter.cpp:30
QComboBox
KNode::StatusFilter
Filter for article status flags.
Definition: knstatusfilter.h:29
KNode::StatusFilterWidget::nsCom
TFCombo * nsCom
Definition: knstatusfilter.h:82
DAT_N
#define DAT_N
Definition: knstatusfilter.cpp:29
KNode::StatusFilter::load
void load(const KConfigGroup &conf)
Definition: knstatusfilter.cpp:48
KNode::StatusFilterWidget::~StatusFilterWidget
~StatusFilterWidget()
Definition: knstatusfilter.cpp:136
KNode::StatusFilter::StatusFilter
StatusFilter()
Definition: knstatusfilter.cpp:35
KNRemoteArticle::Ptr
boost::shared_ptr< KNRemoteArticle > Ptr
Shared pointer to a KNRemoteArticle. To be used instead of raw KNRemoteArticle*.
Definition: knarticle.h:107
DAT_R
#define DAT_R
Definition: knstatusfilter.cpp:28
KNode::StatusFilter::data
QBitArray data
Definition: knstatusfilter.h:46
EN_R
#define EN_R
Definition: knstatusfilter.cpp:23
KNode::StatusFilterWidget::rCom
TFCombo * rCom
Definition: knstatusfilter.h:82
KNode::StatusFilterWidget::slotEnabled
void slotEnabled()
Definition: knstatusfilter.cpp:197
KNode::StatusFilterWidget::TFCombo::~TFCombo
~TFCombo()
Definition: knstatusfilter.cpp:217
KNode::StatusFilterWidget::enR
QCheckBox * enR
Definition: knstatusfilter.h:81
EN_NS
#define EN_NS
Definition: knstatusfilter.cpp:26
KNode::StatusFilter::doFilter
bool doFilter(KNRemoteArticle::Ptr a)
Definition: knstatusfilter.cpp:83
KNode::StatusFilterWidget::setFilter
void setFilter(StatusFilter &f)
Definition: knstatusfilter.cpp:163
KNode::StatusFilterWidget::enNS
QCheckBox * enNS
Definition: knstatusfilter.h:81
KNode::StatusFilter::~StatusFilter
~StatusFilter()
Definition: knstatusfilter.cpp:42
KNode::StatusFilterWidget::usCom
TFCombo * usCom
Definition: knstatusfilter.h:82
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:58:36 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

knode

Skip menu "knode"
  • Main Page
  • Namespace List
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal