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
00092
public slots:
00097
void slotUpdateFilterName();
00100
void slotApplyFilterChanges();
00103
void slotShowLaterToggled(
bool aOn);
00104
00105
protected slots:
00109
void slotSelected(
int aIdx );
00112
void slotNew();
00115
void slotDelete();
00118
void slotUp();
00121
void slotDown();
00124
void slotRename();
00125
00126
protected:
00128 QPtrList<KMFilter>
mFilterList;
00130 QListBox *
mListBox;
00132 QPushButton *
mBtnNew, *
mBtnDelete, *
mBtnUp, *
mBtnDown, *
mBtnRename;
00134 int mIdxSelItem;
00135
bool mShowLater;
00136
private:
00137
void enableControls();
00138
void insertFilter( KMFilter* aFilter );
00139
void swapNeighbouringFilters(
int untouchedOne,
int movedOne);
00140
bool bPopFilter;
00141 };
00142
00143
00165 class KMFilterActionWidget :
public QHBox
00166 {
00167 Q_OBJECT
00168
public:
00171
KMFilterActionWidget( QWidget* parent=0,
const char* name=0 );
00172
00176
void setAction(
const KMFilterAction * aAction );
00181
KMFilterAction *
action();
00182
00183
private:
00188 QPtrList<KMFilterAction> mActionList;
00192 QComboBox *mComboBox;
00195 QWidgetStack *mWidgetStack;
00196 };
00197
00198
class KMPopFilterActionWidget :
public QVButtonGroup
00199 {
00200 Q_OBJECT
00201
public:
00202 KMPopFilterActionWidget(
const QString &title, QWidget* parent=0,
const char* name=0 );
00203
void setAction( KMPopFilterAction aAction );
00204 KMPopFilterAction action();
00205
00206
public slots:
00207
void reset();
00208
00209
private slots:
00210
void slotActionClicked(
int aId);
00211
00212
private:
00213 KMPopFilterAction mAction;
00214 KMFilter mFilter;
00215 QMap<KMPopFilterAction, QRadioButton*> mActionMap;
00216 QMap<int, KMPopFilterAction> mIdMap;
00217
00218 signals:
00219
void actionChanged(
const KMPopFilterAction aAction);
00220 };
00221
00222
class KMFilterActionWidgetLister :
public KWidgetLister
00223 {
00224 Q_OBJECT
00225
public:
00226 KMFilterActionWidgetLister( QWidget *parent=0,
const char* name=0 );
00227
00228
virtual ~KMFilterActionWidgetLister();
00229
00230
void setActionList( QPtrList<KMFilterAction> * aList );
00231
00232
public slots:
00233
void reset();
00234
00235
protected:
00236
virtual void clearWidget( QWidget *aWidget );
00237
virtual QWidget* createWidget( QWidget *parent );
00238
00239
private:
00240
void regenerateActionListFromWidgets();
00241 QPtrList<KMFilterAction> *mActionList;
00242
00243 };
00244
00245
00246
00303 class KMFilterDlg:
public KDialogBase
00304 {
00305 Q_OBJECT
00306
public:
00310
KMFilterDlg(QWidget* parent=0,
const char* name=0,
bool popFilter=
false);
00311
00316 void createFilter(
const QCString & field,
const QString & value )
00317 {
mFilterList->
createFilter( field, value ); }
00318
00319
public slots:
00324
void slotFilterSelected(KMFilter * aFilter);
00326
void slotActionChanged(
const KMPopFilterAction aAction);
00327
00328
protected slots:
00329
void slotApplicabilityChanged();
00330
void slotStopProcessingButtonToggled(
bool aChecked );
00331
void slotConfigureShortcutButtonToggled(
bool aChecked );
00332
void slotFilterActionIconChanged( QString icon );
00333
void slotReset();
00334
void slotSaveSize();
00336
void slotFinished();
00337
00338
protected:
00342 KMFilterListBox *
mFilterList;
00344 KMSearchPatternEdit *
mPatternEdit;
00346 KMFilterActionWidgetLister *
mActionLister;
00348 KMPopFilterActionWidget *
mActionGroup;
00351 QCheckBox *
mApplyOnIn, *
mApplyOnOut, *
mApplyOnCtrlJ;
00352 QCheckBox *mStopProcessingHere;
00353 QCheckBox *mConfigureShortcut;
00354 QLabel *mFilterActionLabel;
00355 KIconButton *mFilterActionIconButton;
00356 QGroupBox *mAdvOptsGroup;
00357 QVGroupBox *mGlobalsBox;
00358 QCheckBox *mShowLaterBtn;
00359
00360 KMFilter *mFilter;
00361
bool bPopFilter;
00362 };
00363
00364
00365
00366
#endif