kmfilterdlg.h
00001
00002
00003
00004
00005
00006 #ifndef kmfilterdlg_h
00007 #define kmfilterdlg_h
00008
00009 #include "kmfilter.h"
00010 #include "kmfilteraction.h"
00011
00012 #include <kwidgetlister.h>
00013
00014 #include <kdialogbase.h>
00015
00016 #include <qvgroupbox.h>
00017 #include <qgroupbox.h>
00018 #include <qhbox.h>
00019 #include <qstring.h>
00020 #include <qptrlist.h>
00021 #include <qradiobutton.h>
00022 #include <qvbuttongroup.h>
00023 #include <qmap.h>
00024
00025 class KMSearchPatternEdit;
00026 class QListBox;
00027 class QPushButton;
00028 class QComboBox;
00029 class QWidgetStack;
00030 class QCheckBox;
00031 class KIconButton;
00032
00033
00058 class KMFilterListBox : public QGroupBox
00059 {
00060 Q_OBJECT
00061 public:
00063 KMFilterListBox( const QString & title, QWidget* parent=0, const char* name=0, bool popFilter = false);
00064
00071 void createFilter( const QCString & field, const QString & value );
00072
00075 void loadFilterList();
00076
00078 bool showLaterMsgs();
00079
00080 signals:
00084 void filterSelected( KMFilter* filter );
00085
00090 void resetWidgets();
00091
00094 void applyWidgets();
00095
00096 public slots:
00101 void slotUpdateFilterName();
00104 void slotApplyFilterChanges();
00107 void slotShowLaterToggled(bool aOn);
00108
00109 protected slots:
00113 void slotSelected( int aIdx );
00116 void slotNew();
00119 void slotCopy();
00122 void slotDelete();
00125 void slotUp();
00128 void slotDown();
00131 void slotRename();
00132
00133 protected:
00135 QPtrList<KMFilter> mFilterList;
00137 QListBox *mListBox;
00139 QPushButton *mBtnNew, *mBtnCopy, *mBtnDelete, *mBtnUp, *mBtnDown, *mBtnRename;
00141 int mIdxSelItem;
00142 bool mShowLater;
00143 private:
00144 void enableControls();
00145 void insertFilter( KMFilter* aFilter );
00146 void swapNeighbouringFilters( int untouchedOne, int movedOne);
00147 bool bPopFilter;
00148 };
00149
00150
00172 class KMFilterActionWidget : public QHBox
00173 {
00174 Q_OBJECT
00175 public:
00178 KMFilterActionWidget( QWidget* parent=0, const char* name=0 );
00179
00183 void setAction( const KMFilterAction * aAction );
00188 KMFilterAction *action();
00189
00190 private:
00195 QPtrList<KMFilterAction> mActionList;
00199 QComboBox *mComboBox;
00202 QWidgetStack *mWidgetStack;
00203 };
00204
00205 class KMPopFilterActionWidget : public QVButtonGroup
00206 {
00207 Q_OBJECT
00208 public:
00209 KMPopFilterActionWidget( const QString &title, QWidget* parent=0, const char* name=0 );
00210 void setAction( KMPopFilterAction aAction );
00211 KMPopFilterAction action();
00212
00213 public slots:
00214 void reset();
00215
00216 private slots:
00217 void slotActionClicked(int aId);
00218
00219 private:
00220 KMPopFilterAction mAction;
00221 KMFilter mFilter;
00222 QMap<KMPopFilterAction, QRadioButton*> mActionMap;
00223 QMap<int, KMPopFilterAction> mIdMap;
00224
00225 signals:
00226 void actionChanged(const KMPopFilterAction aAction);
00227 };
00228
00229 class KMFilterActionWidgetLister : public KWidgetLister
00230 {
00231 Q_OBJECT
00232 public:
00233 KMFilterActionWidgetLister( QWidget *parent=0, const char* name=0 );
00234
00235 virtual ~KMFilterActionWidgetLister();
00236
00237 void setActionList( QPtrList<KMFilterAction> * aList );
00238
00240 void updateActionList() { regenerateActionListFromWidgets(); }
00241
00242 public slots:
00243 void reset();
00244
00245 protected:
00246 virtual void clearWidget( QWidget *aWidget );
00247 virtual QWidget* createWidget( QWidget *parent );
00248
00249 private:
00250 void regenerateActionListFromWidgets();
00251 QPtrList<KMFilterAction> *mActionList;
00252
00253 };
00254
00255
00256
00313 class KMFilterDlg: public KDialogBase
00314 {
00315 Q_OBJECT
00316 public:
00320 KMFilterDlg(QWidget* parent=0, const char* name=0, bool popFilter=false);
00321
00326 void createFilter( const QCString & field, const QString & value )
00327 { mFilterList->createFilter( field, value ); }
00328
00329 public slots:
00334 void slotFilterSelected(KMFilter * aFilter);
00336 void slotActionChanged(const KMPopFilterAction aAction);
00337
00338 protected slots:
00339 void slotApplicabilityChanged();
00340 void slotStopProcessingButtonToggled( bool aChecked );
00341 void slotConfigureShortcutButtonToggled( bool aChecked );
00342 void slotFilterActionIconChanged( QString icon );
00343 void slotReset();
00344 void slotUpdateFilter();
00345 void slotSaveSize();
00347 void slotFinished();
00348
00349 protected:
00353 KMFilterListBox *mFilterList;
00355 KMSearchPatternEdit *mPatternEdit;
00357 KMFilterActionWidgetLister *mActionLister;
00359 KMPopFilterActionWidget *mActionGroup;
00362 QCheckBox *mApplyOnIn, *mApplyOnOut, *mApplyOnCtrlJ;
00363 QCheckBox *mStopProcessingHere;
00364 QCheckBox *mConfigureShortcut;
00365 QLabel *mFilterActionLabel;
00366 KIconButton *mFilterActionIconButton;
00367 QGroupBox *mAdvOptsGroup;
00368 QVGroupBox *mGlobalsBox;
00369 QCheckBox *mShowLaterBtn;
00370
00371 KMFilter *mFilter;
00372 bool bPopFilter;
00373 };
00374
00375
00376
00377 #endif
This file is part of the documentation for kmail Library Version 3.3.2.