• 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
  • filter
kmfilterdialog.h
Go to the documentation of this file.
1 /*
2  Filter Dialog
3  Author: Marc Mutz <mutz@kde.org>
4  based upon work by Stefan Taferner <taferner@kde.org>
5 
6  Copyright (c) 2011-2012-2013 Laurent Montel <montel@kde.org>
7 
8  This program is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 2 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License along
19  with this program; if not, write to the Free Software Foundation, Inc.,
20  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21 */
22 
23 #ifndef MAILCOMMON_KMFILTERDIALOG_H
24 #define MAILCOMMON_KMFILTERDIALOG_H
25 
26 #include "mailcommon_export.h"
27 #include "filteraction.h"
28 #include "filterimporterexporter.h"
29 #include "mailfilter.h"
30 #include "search/searchpattern.h"
31 
32 #include <KDialog>
33 
34 #include <QGroupBox>
35 #include <QList>
36 #include <QListWidgetItem>
37 #include <QTreeWidget>
38 
39 class KActionCollection;
40 class KIconButton;
41 class KKeySequenceWidget;
42 
43 class QCheckBox;
44 class QLabel;
45 class QListWidget;
46 class QModelIndex;
47 class QPushButton;
48 class QRadioButton;
49 
50 namespace MailCommon {
51 class SearchPatternEdit;
52 class FilterActionWidgetLister;
53 class FolderRequester;
54 }
55 
56 class KJob;
57 
82 namespace MailCommon {
83 
84 class AccountList : public QTreeWidget
85 {
86 public:
87  explicit AccountList( QWidget *parent );
88  ~AccountList();
89 
90  void updateAccountList( MailCommon::MailFilter *filter );
91  void applyOnAccount( MailCommon::MailFilter *filter );
92  void applyOnAccount( const QStringList &lst );
93 
94  QStringList selectedAccount();
95 };
96 
97 class MAILCOMMON_EXPORT KMFilterListBox : public QGroupBox
98 {
99  Q_OBJECT
100 public:
104  explicit KMFilterListBox( const QString &title, QWidget *parent = 0 );
105 
109  ~KMFilterListBox();
110 
118  void createFilter( const QByteArray &field, const QString &value );
119 
126  void loadFilterList( bool createDummyFilter );
127 
128  void insertFilter( MailCommon::MailFilter *aFilter );
129 
130  void appendFilter( MailCommon::MailFilter *aFilter );
131 
138  QList<MailCommon::MailFilter *> filtersForSaving( bool closeAfterSaving ) const;
139 
140  QStringList selectedFilterId( SearchRule::RequiredPart &requiredPart, const QString& resource ) const;
141 
142 signals:
147  void filterSelected( MailCommon::MailFilter *filter );
148 
155  void resetWidgets();
156 
161  void applyWidgets();
162 
167  void abortClosing() const;
168 
172  void filterCreated();
173 
177  void filterRemoved( const QList<MailCommon::MailFilter *> &filter );
178 
182  void filterUpdated( MailCommon::MailFilter *filter );
183 
187  void filterOrderAltered();
188 
189 public slots:
195  void slotUpdateFilterName();
196 
201  void slotApplyFilterChanges( KDialog::ButtonCode );
202 
203 protected slots:
208  void slotSelected( int aIdx );
209 
214  void slotNew();
215 
220  void slotCopy();
221 
226  void slotDelete();
227 
232  void slotUp();
233 
238  void slotDown();
239 
244  void slotRename();
245 
246  void slotRowsMoved( const QModelIndex &, int, int, const QModelIndex &, int );
247 
252  void slotTop();
253 
258  void slotBottom();
259 
260  void slotFilterEnabledChanged( QListWidgetItem *item );
261 
262  void slotSelectionChanged();
263 
264 protected:
266  QListWidget *mListWidget;
267 
269  QPushButton *mBtnNew;
270  QPushButton *mBtnCopy;
271  QPushButton *mBtnDelete;
272  QPushButton *mBtnUp;
273  QPushButton *mBtnDown;
274  QPushButton *mBtnRename;
275  QPushButton *mBtnTop;
276  QPushButton *mBtnBottom;
277 
278 private:
279  void enableControls();
280  bool itemIsValid( QListWidgetItem *item ) const;
281  QList<QListWidgetItem*> selectedFilter();
282  void swapNeighbouringFilters( int untouchedOne, int movedOne );
283 };
284 
339 class MAILCOMMON_EXPORT KMFilterDialog : public KDialog
340 {
341  Q_OBJECT
342 
343 public:
349  explicit KMFilterDialog( const QList<KActionCollection*> &actionCollection,
350  QWidget *parent = 0, bool createDummyFilter = true );
351 
358  void createFilter( const QByteArray &field, const QString &value )
359  {
360  mFilterList->createFilter( field, value );
361  }
362 
363 public slots:
370  void slotFilterSelected( MailCommon::MailFilter *aFilter );
371 
373  virtual void accept();
374 
375 protected slots:
376  void slotApplicabilityChanged();
377  void slotApplicableAccountsChanged();
378  void slotStopProcessingButtonToggled( bool aChecked );
379  void slotConfigureShortcutButtonToggled( bool aChecked );
380  void slotShortcutChanged( const QKeySequence &newSeq );
381  void slotConfigureToolbarButtonToggled( bool aChecked );
382  void slotFilterActionIconChanged( const QString &icon );
383  void slotReset();
384  void slotUpdateFilter();
385  void slotSaveSize();
386 
390  void slotFinished();
391 
395  void slotUpdateAccountList();
396 
402  void slotImportFilter( QAction * );
403 
409  void slotExportFilters();
410 
414  void slotDisableAccept();
415 
420  void slotDialogUpdated();
421 
425  void slotApply();
426 
427  void slotRunFilters();
428 
429  void slotFetchItemsForFolderDone( KJob *job );
430 
431  void slotFolderChanged( const Akonadi::Collection & );
432 
433 private Q_SLOTS:
434  void slotExportAsSieveScript();
435 
436 private:
437  void importFilters( MailCommon::FilterImporterExporter::FilterType type );
438 
439 protected:
442  KMFilterListBox *mFilterList;
443 
445  MailCommon::SearchPatternEdit *mPatternEdit;
446 
448  MailCommon::FilterActionWidgetLister *mActionLister;
449 
452  QCheckBox *mApplyOnIn, *mApplyOnOut, *mApplyBeforeOut, *mApplyOnCtrlJ;
453 
456  QRadioButton *mApplyOnForAll, *mApplyOnForTraditional, *mApplyOnForChecked;
457 
459  AccountList *mAccountList;
460 
461  QCheckBox *mStopProcessingHere;
462  QCheckBox *mConfigureShortcut;
463  QCheckBox *mConfigureToolbar;
464  QLabel *mFilterActionLabel;
465  KIconButton *mFilterActionIconButton;
466  KKeySequenceWidget *mKeySeqWidget;
467  QGroupBox *mAdvOptsGroup;
468 
469  MailCommon::MailFilter *mFilter;
470  MailCommon::FolderRequester *mFolderRequester;
471  KPushButton *mRunNow;
472  bool mDoNotClose;
473  bool mIgnoreFilterUpdates;
474 };
475 
476 class QListWidgetFilterItem : public QListWidgetItem
477 {
478 public:
479  explicit QListWidgetFilterItem( const QString &text, QListWidget *parent = 0 );
480  ~QListWidgetFilterItem();
481 
482  void setFilter( MailCommon::MailFilter *filter );
483  MailCommon::MailFilter *filter();
484 
485 private:
486  MailCommon::MailFilter *mFilter;
487 };
488 
489 }
490 
491 #endif /*kmfilterdialog_h*/
MailCommon::KMFilterDialog::mKeySeqWidget
KKeySequenceWidget * mKeySeqWidget
Definition: kmfilterdialog.h:466
MailCommon::KMFilterListBox::mBtnNew
QPushButton * mBtnNew
The various action buttons.
Definition: kmfilterdialog.h:269
MailCommon::KMFilterDialog::createFilter
void createFilter(const QByteArray &field, const QString &value)
Called from KMFilterMgr.
Definition: kmfilterdialog.h:358
MailCommon::AccountList::~AccountList
~AccountList()
Definition: kmfilterdialog.cpp:92
MailCommon::KMFilterDialog::mApplyOnOut
QCheckBox * mApplyOnOut
Definition: kmfilterdialog.h:452
MailCommon::KMFilterDialog::mFilterActionIconButton
KIconButton * mFilterActionIconButton
Definition: kmfilterdialog.h:465
MailCommon::QListWidgetFilterItem
Definition: kmfilterdialog.h:476
MailCommon::KMFilterListBox::mBtnRename
QPushButton * mBtnRename
Definition: kmfilterdialog.h:274
QTreeWidget
text
const char * text
Definition: mdnadvicedialog.cpp:52
MailCommon::FilterActionWidgetLister
A container widget for a list of FilterActionWidgets.
Definition: filteractionwidget.h:115
QWidget
MailCommon::KMFilterDialog::mConfigureShortcut
QCheckBox * mConfigureShortcut
Definition: kmfilterdialog.h:462
MailCommon::KMFilterListBox::mBtnDown
QPushButton * mBtnDown
Definition: kmfilterdialog.h:273
MailCommon::KMFilterDialog
The filter dialog.
Definition: kmfilterdialog.h:339
mailfilter.h
MailCommon::KMFilterDialog::mAdvOptsGroup
QGroupBox * mAdvOptsGroup
Definition: kmfilterdialog.h:467
KDialog
MailCommon::KMFilterDialog::mActionLister
MailCommon::FilterActionWidgetLister * mActionLister
The widget that allows editing of the filter actions.
Definition: kmfilterdialog.h:448
MailCommon::KMFilterListBox::mListWidget
QListWidget * mListWidget
The listbox displaying the filter list.
Definition: kmfilterdialog.h:266
MailCommon::QListWidgetFilterItem::QListWidgetFilterItem
QListWidgetFilterItem(const QString &text, QListWidget *parent=0)
Definition: kmfilterdialog.cpp:193
MailCommon::KMFilterDialog::mPatternEdit
MailCommon::SearchPatternEdit * mPatternEdit
The widget that allows editing of the filter pattern.
Definition: kmfilterdialog.h:445
MailCommon::QListWidgetFilterItem::filter
MailCommon::MailFilter * filter()
Definition: kmfilterdialog.cpp:209
MailCommon::KMFilterDialog::mDoNotClose
bool mDoNotClose
Definition: kmfilterdialog.h:472
MailCommon::KMFilterListBox::mBtnCopy
QPushButton * mBtnCopy
Definition: kmfilterdialog.h:270
MailCommon::SearchPatternEdit
Definition: searchpatternedit.h:77
MailCommon::KMFilterDialog::mFolderRequester
MailCommon::FolderRequester * mFolderRequester
Definition: kmfilterdialog.h:470
MailCommon::AccountList::selectedAccount
QStringList selectedAccount()
Definition: kmfilterdialog.cpp:179
MailCommon::QListWidgetFilterItem::setFilter
void setFilter(MailCommon::MailFilter *filter)
Definition: kmfilterdialog.cpp:203
mailcommon_export.h
MailCommon::FolderRequester
A widget that contains a KLineEdit which shows the current folder and a button that fires a FolderSel...
Definition: folderrequester.h:59
QGroupBox
MailCommon::SearchRule::RequiredPart
RequiredPart
Definition: searchpattern.h:104
MailCommon::FilterImporterExporter::FilterType
FilterType
Definition: filterimporterexporter.h:56
QListWidgetItem
MAILCOMMON_EXPORT
#define MAILCOMMON_EXPORT
Definition: mailcommon_export.h:35
searchpattern.h
MailCommon::AccountList
Definition: kmfilterdialog.h:84
MailCommon::KMFilterDialog::mAccountList
AccountList * mAccountList
ListView that shows the accounts in the advanced tab.
Definition: kmfilterdialog.h:459
MailCommon::KMFilterListBox::mBtnDelete
QPushButton * mBtnDelete
Definition: kmfilterdialog.h:271
filterimporterexporter.h
MailCommon::KMFilterListBox::mBtnTop
QPushButton * mBtnTop
Definition: kmfilterdialog.h:275
MailCommon::KMFilterDialog::mFilterList
KMFilterListBox * mFilterList
The widget that contains the ListBox showing the filters, and the controls to remove filters...
Definition: kmfilterdialog.h:442
MailCommon::KMFilterListBox::mBtnBottom
QPushButton * mBtnBottom
Definition: kmfilterdialog.h:276
MailCommon::AccountList::updateAccountList
void updateAccountList(MailCommon::MailFilter *filter)
Definition: kmfilterdialog.cpp:96
MailCommon::KMFilterListBox
Definition: kmfilterdialog.h:97
MailCommon::KMFilterDialog::mApplyOnForTraditional
QRadioButton * mApplyOnForTraditional
Definition: kmfilterdialog.h:456
MailCommon::KMFilterDialog::mConfigureToolbar
QCheckBox * mConfigureToolbar
Definition: kmfilterdialog.h:463
MailCommon::KMFilterDialog::mFilterActionLabel
QLabel * mFilterActionLabel
Definition: kmfilterdialog.h:464
MailCommon::KMFilterDialog::mFilter
MailCommon::MailFilter * mFilter
Definition: kmfilterdialog.h:469
MailCommon::KMFilterDialog::mRunNow
KPushButton * mRunNow
Definition: kmfilterdialog.h:471
MailCommon::AccountList::applyOnAccount
void applyOnAccount(MailCommon::MailFilter *filter)
Definition: kmfilterdialog.cpp:134
MailCommon::MailFilter
Definition: mailfilter.h:42
MailCommon::KMFilterDialog::mStopProcessingHere
QCheckBox * mStopProcessingHere
Definition: kmfilterdialog.h:461
MailCommon::KMFilterListBox::mBtnUp
QPushButton * mBtnUp
Definition: kmfilterdialog.h:272
MailCommon::KMFilterDialog::mIgnoreFilterUpdates
bool mIgnoreFilterUpdates
Definition: kmfilterdialog.h:473
filteraction.h
MailCommon::QListWidgetFilterItem::~QListWidgetFilterItem
~QListWidgetFilterItem()
Definition: kmfilterdialog.cpp:198
QList
MailCommon::AccountList::AccountList
AccountList(QWidget *parent)
Definition: kmfilterdialog.cpp:76
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