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

mailcommon

  • sources
  • kde-4.14
  • 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  NotShowAbsoluteDate = 2,
86  MatchAllMessages = 4,
87  NotShowSize = 8,
88  NotShowDate = 16,
89  NotShowTags = 32
90  };
91  Q_DECLARE_FLAGS( SearchPatternEditOptions, SearchPatternEditOption )
92 
93  enum SearchModeType {
94  StandardMode = 0,
95  BalooMode = 1
96  };
97 
102  explicit SearchPatternEdit(
103  QWidget *parent = 0,
104  SearchPatternEditOptions options = (SearchPatternEditOptions) (None),
105  SearchModeType modeType = StandardMode);
106 
107  ~SearchPatternEdit();
108 
109  void setPatternEditOptions( SearchPatternEdit::SearchPatternEditOptions options );
110 
117  void setSearchPattern( MailCommon::SearchPattern *aPattern );
118 
119 
123  void updateSearchPattern();
124 
125 public slots:
130  void reset();
131 
132 signals:
137  void maybeNameChanged();
138 
142  void patternChanged();
143 
144  void returnPressed();
145 
146 private slots:
147  void slotRadioClicked( QAbstractButton *aRBtn );
148  void slotAutoNameHack();
149  void slotRuleAdded( QWidget *widget );
150 
151 private:
152  void initLayout( SearchPatternEditOptions options, SearchModeType modeType );
153  MailCommon::SearchPattern *mPattern;
154  QRadioButton *mAllRBtn;
155  QRadioButton *mAnyRBtn;
156  QRadioButton *mAllMessageRBtn;
157  SearchRuleWidgetLister *mRuleLister;
158 };
159 
174 class SearchRuleWidget : public QWidget
175 {
176  Q_OBJECT
177 
178 public:
183  explicit SearchRuleWidget(QWidget *parent = 0,
184  MailCommon::SearchRule::Ptr aRule = MailCommon::SearchRule::Ptr(),
185  SearchPatternEdit::SearchPatternEditOptions options = (SearchPatternEdit::SearchPatternEditOptions) (SearchPatternEdit::None),
186  SearchPatternEdit::SearchModeType modeType = SearchPatternEdit::StandardMode);
187 
188  enum {
189  Message,
190  Body,
191  AnyHeader,
192  Recipients,
193  Size,
194  AgeInDays,
195  Status,
196  Tag,
197  Subject,
198  From,
199  To,
200  CC,
201  ReplyTo,
202  Organization,
203  Date
204  };
205 
213  void setRule( MailCommon::SearchRule::Ptr aRule );
214 
218  MailCommon::SearchRule::Ptr rule() const;
219 
223  void reset();
224 
225  static int ruleFieldToId( const QString &i18nVal );
226 
227  void updateAddRemoveButton( bool addButtonEnabled, bool removeButtonEnabled );
228 
229  void setPatternEditOptions(MailCommon::SearchPatternEdit::SearchPatternEditOptions options);
230 
231 public slots:
232  void slotFunctionChanged();
233  void slotValueChanged();
234  void slotReturnPressed();
235 
236 signals:
242  void fieldChanged( const QString & );
243 
248  void contentsChanged( const QString & );
249 
250  void returnPressed();
251 
252  void addWidget( QWidget * );
253  void removeWidget( QWidget * );
254 
255 protected:
259  static QByteArray ruleFieldToEnglish( const QString &i18nVal );
260 
265  int indexOfRuleField( const QByteArray & aName ) const;
266 
267 protected slots:
268  void slotRuleFieldChanged( const QString & );
269  void slotAddWidget();
270  void slotRemoveWidget();
271 
272 private:
273  void initWidget(SearchPatternEdit::SearchModeType modeType);
274  void initFieldList(MailCommon::SearchPatternEdit::SearchPatternEditOptions options);
275 
276  QStringList mFilterFieldList;
277  KComboBox *mRuleField;
278  QStackedWidget *mFunctionStack;
279  QStackedWidget *mValueStack;
280  KPushButton *mAdd;
281  KPushButton *mRemove;
282 };
283 
284 
285 class SearchRuleWidgetLister : public KPIM::KWidgetLister
286 {
287  Q_OBJECT
288 
289  friend class SearchPatternEdit;
290 
291 public:
292  explicit SearchRuleWidgetLister(QWidget *parent = 0,
293  SearchPatternEdit::SearchPatternEditOptions opt = (SearchPatternEdit::SearchPatternEditOptions) (SearchPatternEdit::None),
294  SearchPatternEdit::SearchModeType modeType = SearchPatternEdit::StandardMode);
295 
296  virtual ~SearchRuleWidgetLister();
297 
298  void setRuleList( QList<MailCommon::SearchRule::Ptr> *aList );
299 
300  void setPatternEditOptions( SearchPatternEdit::SearchPatternEditOptions options );
301 
302 public slots:
303  void reset();
304  void slotAddWidget( QWidget * );
305  void slotRemoveWidget( QWidget * );
306 
307 protected:
308  virtual void clearWidget( QWidget *aWidget );
309  virtual QWidget *createWidget( QWidget *parent );
310 
311 private:
312  void reconnectWidget( SearchRuleWidget *w );
313  void updateAddRemoveButton();
314  void regenerateRuleListFromWidgets();
315  QList<MailCommon::SearchRule::Ptr> *mRuleList;
316  SearchPatternEdit::SearchPatternEditOptions mOptions;
317  SearchPatternEdit::SearchModeType mTypeMode;
318 };
319 
320 
321 }
322 
323 #endif
MailCommon::SearchRuleWidget::ReplyTo
Definition: searchpatternedit.h:201
MailCommon::SearchRuleWidgetLister::createWidget
virtual QWidget * createWidget(QWidget *parent)
Definition: searchpatternedit.cpp:548
MailCommon::SearchRuleWidget::slotRuleFieldChanged
void slotRuleFieldChanged(const QString &)
Definition: searchpatternedit.cpp:409
QWidget
MailCommon::SearchRuleWidget::Body
Definition: searchpatternedit.h:190
MailCommon::SearchRuleWidget::Recipients
Definition: searchpatternedit.h:192
MailCommon::SearchRuleWidgetLister::clearWidget
virtual void clearWidget(QWidget *aWidget)
Definition: searchpatternedit.cpp:556
MailCommon::SearchRuleWidgetLister
Definition: searchpatternedit.h:285
MailCommon::SearchRuleWidget::CC
Definition: searchpatternedit.h:200
MailCommon::SearchRuleWidget::Status
Definition: searchpatternedit.h:195
QByteArray
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:291
MailCommon::SearchRuleWidget::From
Definition: searchpatternedit.h:198
MailCommon::SearchRuleWidget::removeWidget
void removeWidget(QWidget *)
MailCommon::SearchRuleWidget::slotReturnPressed
void slotReturnPressed()
Definition: searchpatternedit.cpp:311
MailCommon::SearchRuleWidget::AnyHeader
Definition: searchpatternedit.h:191
MailCommon::SearchRuleWidget::addWidget
void addWidget(QWidget *)
MailCommon::SearchRuleWidget::slotRemoveWidget
void slotRemoveWidget()
Definition: searchpatternedit.cpp:239
MailCommon::SearchRule::Ptr
boost::shared_ptr< SearchRule > Ptr
Defines a pointer to a search rule.
Definition: searchrule.h:44
MailCommon::SearchRuleWidget::slotAddWidget
void slotAddWidget()
Definition: searchpatternedit.cpp:234
MailCommon::SearchRuleWidgetLister::slotAddWidget
void slotAddWidget(QWidget *)
Definition: searchpatternedit.cpp:493
MailCommon::SearchRuleWidget::returnPressed
void returnPressed()
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_export.h
MailCommon::SearchRuleWidget::Size
Definition: searchpatternedit.h:193
MailCommon::SearchPatternEdit::StandardMode
Definition: searchpatternedit.h:94
MailCommon::SearchPatternEdit::SearchModeType
SearchModeType
Definition: searchpatternedit.h:93
MailCommon::SearchRuleWidget::reset
void reset()
Resets the rule currently worked on and updates the widget accordingly.
Definition: searchpatternedit.cpp:281
MailCommon::SearchRuleWidget
A widget to edit a single MailCommon::SearchRule.
Definition: searchpatternedit.h:174
QStackedWidget
MailCommon::SearchRuleWidget::ruleFieldToEnglish
static QByteArray ruleFieldToEnglish(const QString &i18nVal)
Used internally to translate i18n-ized pseudo-headers back to English.
Definition: searchpatternedit.cpp:316
QString
QList
MailCommon::SearchPattern
This class is an abstraction of a search over messages.
Definition: searchpattern.h:79
QStringList
MailCommon::SearchRuleWidget::Tag
Definition: searchpatternedit.h:196
MAILCOMMON_EXPORT
#define MAILCOMMON_EXPORT
Definition: mailcommon_export.h:35
searchpattern.h
MailCommon::SearchRuleWidget::updateAddRemoveButton
void updateAddRemoveButton(bool addButtonEnabled, bool removeButtonEnabled)
Definition: searchpatternedit.cpp:228
MailCommon::SearchRuleWidgetLister::reset
void reset()
Definition: searchpatternedit.cpp:537
MailCommon::SearchRuleWidget::Date
Definition: searchpatternedit.h:203
MailCommon::SearchRuleWidget::setPatternEditOptions
void setPatternEditOptions(MailCommon::SearchPatternEdit::SearchPatternEditOptions options)
Definition: searchpatternedit.cpp:106
MailCommon::SearchRuleWidgetLister::setPatternEditOptions
void setPatternEditOptions(SearchPatternEdit::SearchPatternEditOptions options)
Definition: searchpatternedit.cpp:434
MailCommon::SearchRuleWidget::Subject
Definition: searchpatternedit.h:197
MailCommon::SearchRuleWidgetLister::setRuleList
void setRuleList(QList< MailCommon::SearchRule::Ptr > *aList)
Definition: searchpatternedit.cpp:442
QAbstractButton
MailCommon::SearchRuleWidget::ruleFieldToId
static int ruleFieldToId(const QString &i18nVal)
Definition: searchpatternedit.cpp:326
MailCommon::SearchRuleWidget::rule
MailCommon::SearchRule::Ptr rule() const
Returns a reference to the currently-worked-on MailCommon::SearchRule.
Definition: searchpatternedit.cpp:268
QRadioButton
MailCommon::SearchPatternEdit::None
Definition: searchpatternedit.h:83
MailCommon::SearchRuleWidget::To
Definition: searchpatternedit.h:199
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:301
MailCommon::SearchRuleWidget::indexOfRuleField
int indexOfRuleField(const QByteArray &aName) const
Used internally to find the corresponding index into the field ComboBox.
Definition: searchpatternedit.cpp:346
MailCommon::SearchRuleWidget::Organization
Definition: searchpatternedit.h:202
MailCommon::SearchRuleWidget::Message
Definition: searchpatternedit.h:189
QObject::parent
QObject * parent() const
MailCommon::SearchRuleWidget::AgeInDays
Definition: searchpatternedit.h:194
MailCommon::SearchRuleWidgetLister::slotRemoveWidget
void slotRemoveWidget(QWidget *)
Definition: searchpatternedit.cpp:499
MailCommon::SearchPatternEdit::SearchPatternEditOption
SearchPatternEditOption
Definition: searchpatternedit.h:82
MailCommon::SearchRuleWidget::setRule
void setRule(MailCommon::SearchRule::Ptr aRule)
Sets the rule.
Definition: searchpatternedit.cpp:244
MailCommon::SearchRuleWidgetLister::SearchRuleWidgetLister
SearchRuleWidgetLister(QWidget *parent=0, SearchPatternEdit::SearchPatternEditOptions opt=(SearchPatternEdit::SearchPatternEditOptions)(SearchPatternEdit::None), SearchPatternEdit::SearchModeType modeType=SearchPatternEdit::StandardMode)
Definition: searchpatternedit.cpp:421
MailCommon::SearchRuleWidgetLister::~SearchRuleWidgetLister
virtual ~SearchRuleWidgetLister()
Definition: searchpatternedit.cpp:430
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:31:40 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
  • pimprint

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