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

mailcommon

  • sources
  • kde-4.12
  • kdepim
  • mailcommon
  • search
searchpatternedit.h
Go to the documentation of this file.
1 /* -*- mode: C++; c-file-style: "gnu" -*-
2 
3  Author: Marc Mutz <mutz@kde.org>
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License along
16  with this program; if not, write to the Free Software Foundation, Inc.,
17  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 */
19 
20 #ifndef MAILCOMMON_SEARCHPATTERNEDIT_H
21 #define MAILCOMMON_SEARCHPATTERNEDIT_H
22 
23 #include "mailcommon_export.h"
24 #include "searchpattern.h"
25 
26 #include <libkdepim/widgets/kwidgetlister.h>
27 
28 #include <QByteArray>
29 #include <QGroupBox>
30 
31 class KComboBox;
32 class KPushButton;
33 
34 class QAbstractButton;
35 class QRadioButton;
36 class QStackedWidget;
37 
38 namespace MailCommon {
39 
40 class SearchPatternEdit;
41 
42 
43 
44 
76 class SearchRuleWidgetLister;
77 class MAILCOMMON_EXPORT SearchPatternEdit : public QWidget
78 {
79  Q_OBJECT
80 
81  public:
82  enum SearchPatternEditOption {
83  None = 0,
84  HeadersOnly = 1,
85  AbsoluteDate = 2,
86  MatchAllMessages = 4,
87  NotShowSize = 8,
88  NotShowDate = 16
89  };
90  Q_DECLARE_FLAGS( SearchPatternEditOptions, SearchPatternEditOption )
91 
92  enum SearchModeType {
93  StandardMode = 0,
94  NepomukMode = 1
95  };
96 
101  explicit SearchPatternEdit(
102  QWidget *parent = 0,
103  SearchPatternEditOptions options = (SearchPatternEditOptions) (None),
104  SearchModeType modeType = StandardMode);
105 
106  ~SearchPatternEdit();
107 
108  void setPatternEditOptions( SearchPatternEdit::SearchPatternEditOptions options );
109 
116  void setSearchPattern( MailCommon::SearchPattern *aPattern );
117 
118 
122  void updateSearchPattern();
123 
124  public slots:
129  void reset();
130 
131  signals:
136  void maybeNameChanged();
137 
141  void patternChanged();
142 
143  void returnPressed();
144 
145  private slots:
146  void slotRadioClicked( QAbstractButton *aRBtn );
147  void slotAutoNameHack();
148  void slotRuleAdded( QWidget *widget );
149 
150  private:
151  void initLayout( SearchPatternEditOptions options, SearchModeType modeType );
152  MailCommon::SearchPattern *mPattern;
153  QRadioButton *mAllRBtn;
154  QRadioButton *mAnyRBtn;
155  QRadioButton *mAllMessageRBtn;
156  SearchRuleWidgetLister *mRuleLister;
157 };
158 
173 class SearchRuleWidget : public QWidget
174 {
175 Q_OBJECT
176 
177 public:
182  explicit SearchRuleWidget(QWidget *parent = 0,
183  MailCommon::SearchRule::Ptr aRule = MailCommon::SearchRule::Ptr(),
184  SearchPatternEdit::SearchPatternEditOptions options = (SearchPatternEdit::SearchPatternEditOptions) (SearchPatternEdit::None),
185  SearchPatternEdit::SearchModeType modeType = SearchPatternEdit::StandardMode);
186 
187  enum {
188  Message,
189  Body,
190  AnyHeader,
191  Recipients,
192  Size,
193  AgeInDays,
194  Status,
195  Tag,
196  Subject,
197  From,
198  To,
199  CC,
200  ReplyTo,
201  Organization,
202  Date
203  };
204 
212  void setRule( MailCommon::SearchRule::Ptr aRule );
213 
217  MailCommon::SearchRule::Ptr rule() const;
218 
222  void reset();
223 
224  static int ruleFieldToId( const QString &i18nVal );
225 
226  void updateAddRemoveButton( bool addButtonEnabled, bool removeButtonEnabled );
227 
228  void setPatternEditOptions(MailCommon::SearchPatternEdit::SearchPatternEditOptions options);
229 
230 public slots:
231  void slotFunctionChanged();
232  void slotValueChanged();
233  void slotReturnPressed();
234 
235 signals:
241  void fieldChanged( const QString & );
242 
247  void contentsChanged( const QString & );
248 
249  void returnPressed();
250 
251  void addWidget( QWidget * );
252  void removeWidget( QWidget * );
253 
254 protected:
258  static QByteArray ruleFieldToEnglish( const QString &i18nVal );
259 
264  int indexOfRuleField( const QByteArray & aName ) const;
265 
266 protected slots:
267  void slotRuleFieldChanged( const QString & );
268  void slotAddWidget();
269  void slotRemoveWidget();
270 
271 private:
272  void initWidget(SearchPatternEdit::SearchModeType modeType);
273  void initFieldList(MailCommon::SearchPatternEdit::SearchPatternEditOptions options);
274 
275  QStringList mFilterFieldList;
276  KComboBox *mRuleField;
277  QStackedWidget *mFunctionStack;
278  QStackedWidget *mValueStack;
279  KPushButton *mAdd;
280  KPushButton *mRemove;
281 };
282 
283 
284 class SearchRuleWidgetLister : public KPIM::KWidgetLister
285 {
286  Q_OBJECT
287 
288  friend class SearchPatternEdit;
289 
290  public:
291  explicit SearchRuleWidgetLister(QWidget *parent = 0,
292  SearchPatternEdit::SearchPatternEditOptions opt = (SearchPatternEdit::SearchPatternEditOptions) (SearchPatternEdit::None),
293  SearchPatternEdit::SearchModeType modeType = SearchPatternEdit::StandardMode);
294 
295  virtual ~SearchRuleWidgetLister();
296 
297  void setRuleList( QList<MailCommon::SearchRule::Ptr> *aList );
298 
299  void setPatternEditOptions( SearchPatternEdit::SearchPatternEditOptions options );
300 
301  public slots:
302  void reset();
303  void slotAddWidget( QWidget * );
304  void slotRemoveWidget( QWidget * );
305 
306  protected:
307  virtual void clearWidget( QWidget *aWidget );
308  virtual QWidget *createWidget( QWidget *parent );
309 
310  private:
311  void reconnectWidget( SearchRuleWidget *w );
312  void updateAddRemoveButton();
313  void regenerateRuleListFromWidgets();
314  QList<MailCommon::SearchRule::Ptr> *mRuleList;
315  SearchPatternEdit::SearchPatternEditOptions mOptions;
316  SearchPatternEdit::SearchModeType mTypeMode;
317 };
318 
319 
320 }
321 
322 #endif
MailCommon::SearchRuleWidgetLister::createWidget
virtual QWidget * createWidget(QWidget *parent)
Definition: searchpatternedit.cpp:539
MailCommon::SearchRuleWidget::slotRuleFieldChanged
void slotRuleFieldChanged(const QString &)
Definition: searchpatternedit.cpp:400
MailCommon::SearchRuleWidgetLister::clearWidget
virtual void clearWidget(QWidget *aWidget)
Definition: searchpatternedit.cpp:547
MailCommon::SearchRuleWidgetLister
Definition: searchpatternedit.h:284
MailCommon::SearchRuleWidget::contentsChanged
void contentsChanged(const QString &)
This signal is emitted whenever the user alters the contents/value of the rule.
MailCommon::SearchRuleWidget::slotFunctionChanged
void slotFunctionChanged()
Definition: searchpatternedit.cpp:285
MailCommon::SearchRuleWidget::removeWidget
void removeWidget(QWidget *)
MailCommon::SearchRuleWidget::Recipients
Definition: searchpatternedit.h:191
QWidget
MailCommon::SearchRuleWidget::slotReturnPressed
void slotReturnPressed()
Definition: searchpatternedit.cpp:305
MailCommon::SearchRuleWidget::Date
Definition: searchpatternedit.h:202
MailCommon::SearchRuleWidget::Organization
Definition: searchpatternedit.h:201
MailCommon::SearchRuleWidget::From
Definition: searchpatternedit.h:197
MailCommon::SearchRuleWidget::addWidget
void addWidget(QWidget *)
MailCommon::SearchRuleWidget::AgeInDays
Definition: searchpatternedit.h:193
MailCommon::SearchRuleWidget::slotRemoveWidget
void slotRemoveWidget()
Definition: searchpatternedit.cpp:233
MailCommon::SearchRuleWidget::Subject
Definition: searchpatternedit.h:196
MailCommon::SearchRule::Ptr
boost::shared_ptr< SearchRule > Ptr
Defines a pointer to a search rule.
Definition: searchpattern.h:69
MailCommon::SearchRuleWidget::slotAddWidget
void slotAddWidget()
Definition: searchpatternedit.cpp:228
MailCommon::SearchRuleWidgetLister::slotAddWidget
void slotAddWidget(QWidget *)
Definition: searchpatternedit.cpp:484
MailCommon::SearchRuleWidget::Size
Definition: searchpatternedit.h:192
MailCommon::SearchRuleWidget::returnPressed
void returnPressed()
MailCommon::SearchRuleWidget::AnyHeader
Definition: searchpatternedit.h:190
MailCommon::SearchRuleWidget::Body
Definition: searchpatternedit.h:189
MailCommon::SearchPatternEdit
Definition: searchpatternedit.h:77
MailCommon::SearchRuleWidget::SearchRuleWidget
SearchRuleWidget(QWidget *parent=0, MailCommon::SearchRule::Ptr aRule=MailCommon::SearchRule::Ptr(), SearchPatternEdit::SearchPatternEditOptions options=(SearchPatternEdit::SearchPatternEditOptions)(SearchPatternEdit::None), SearchPatternEdit::SearchModeType modeType=SearchPatternEdit::StandardMode)
Constructor.
Definition: searchpatternedit.cpp:88
MailCommon::SearchRuleWidget::CC
Definition: searchpatternedit.h:199
mailcommon_export.h
MailCommon::SearchPatternEdit::StandardMode
Definition: searchpatternedit.h:93
MailCommon::SearchPatternEdit::SearchModeType
SearchModeType
Definition: searchpatternedit.h:92
MailCommon::SearchRuleWidget::Status
Definition: searchpatternedit.h:194
MailCommon::SearchRuleWidget::reset
void reset()
Resets the rule currently worked on and updates the widget accordingly.
Definition: searchpatternedit.cpp:275
MailCommon::SearchRuleWidget
A widget to edit a single MailCommon::SearchRule.
Definition: searchpatternedit.h:173
MailCommon::SearchRuleWidget::ruleFieldToEnglish
static QByteArray ruleFieldToEnglish(const QString &i18nVal)
Used internally to translate i18n-ized pseudo-headers back to English.
Definition: searchpatternedit.cpp:310
MailCommon::SearchPattern
This class is an abstraction of a search over messages.
Definition: searchpattern.h:595
MailCommon::SearchRuleWidget::ReplyTo
Definition: searchpatternedit.h:200
MAILCOMMON_EXPORT
#define MAILCOMMON_EXPORT
Definition: mailcommon_export.h:35
searchpattern.h
MailCommon::SearchRuleWidget::updateAddRemoveButton
void updateAddRemoveButton(bool addButtonEnabled, bool removeButtonEnabled)
Definition: searchpatternedit.cpp:222
MailCommon::SearchRuleWidgetLister::reset
void reset()
Definition: searchpatternedit.cpp:528
MailCommon::SearchRuleWidget::setPatternEditOptions
void setPatternEditOptions(MailCommon::SearchPatternEdit::SearchPatternEditOptions options)
Definition: searchpatternedit.cpp:106
MailCommon::SearchRuleWidgetLister::setPatternEditOptions
void setPatternEditOptions(SearchPatternEdit::SearchPatternEditOptions options)
Definition: searchpatternedit.cpp:425
MailCommon::SearchRuleWidgetLister::setRuleList
void setRuleList(QList< MailCommon::SearchRule::Ptr > *aList)
Definition: searchpatternedit.cpp:433
MailCommon::SearchRuleWidget::ruleFieldToId
static int ruleFieldToId(const QString &i18nVal)
Definition: searchpatternedit.cpp:320
MailCommon::SearchRuleWidget::rule
MailCommon::SearchRule::Ptr rule() const
Returns a reference to the currently-worked-on MailCommon::SearchRule.
Definition: searchpatternedit.cpp:262
MailCommon::SearchRuleWidget::Tag
Definition: searchpatternedit.h:195
MailCommon::SearchPatternEdit::None
Definition: searchpatternedit.h:83
MailCommon::SearchRuleWidget::fieldChanged
void fieldChanged(const QString &)
This signal is emitted whenever the user alters the field.
MailCommon::SearchRuleWidget::slotValueChanged
void slotValueChanged()
Definition: searchpatternedit.cpp:295
MailCommon::SearchRuleWidget::Message
Definition: searchpatternedit.h:188
MailCommon::SearchRuleWidget::To
Definition: searchpatternedit.h:198
MailCommon::SearchRuleWidget::indexOfRuleField
int indexOfRuleField(const QByteArray &aName) const
Used internally to find the corresponding index into the field ComboBox.
Definition: searchpatternedit.cpp:340
MailCommon::SearchRuleWidgetLister::slotRemoveWidget
void slotRemoveWidget(QWidget *)
Definition: searchpatternedit.cpp:490
MailCommon::SearchPatternEdit::SearchPatternEditOption
SearchPatternEditOption
Definition: searchpatternedit.h:82
MailCommon::SearchRuleWidget::setRule
void setRule(MailCommon::SearchRule::Ptr aRule)
Sets the rule.
Definition: searchpatternedit.cpp:238
QList
MailCommon::SearchRuleWidgetLister::SearchRuleWidgetLister
SearchRuleWidgetLister(QWidget *parent=0, SearchPatternEdit::SearchPatternEditOptions opt=(SearchPatternEdit::SearchPatternEditOptions)(SearchPatternEdit::None), SearchPatternEdit::SearchModeType modeType=SearchPatternEdit::StandardMode)
Definition: searchpatternedit.cpp:412
MailCommon::SearchRuleWidgetLister::~SearchRuleWidgetLister
virtual ~SearchRuleWidgetLister()
Definition: searchpatternedit.cpp:421
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:55:15 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

mailcommon

Skip menu "mailcommon"
  • Main Page
  • Namespace List
  • Namespace Members
  • 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