You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

129 lines
3.4 KiB

/* Filter Dialog
* Author: Stefan Taferner <taferner@kde.org>
* This code is under GPL
*/
#ifndef kmfilterdlg_h
#define kmfilterdlg_h
#include "kmfilteraction.h"
#include "kmfilter.h"
#include <qcombobox.h>
class QBoxLayout;
class QListBox;
class QWidget;
class QPushButton;
class QLineEdit;
class QGridLayout;
class KMFaComboBox;
class KMFolderDir;
#define KMFilterDlgInherited KMGFilterDlg
class KMFilterDlg: public KMGFilterDlg
{
Q_OBJECT
public:
KMFilterDlg(QWidget* parent=NULL, const char* name=NULL);
virtual ~KMFilterDlg();
/** Remove all widgets from the filter-grid. */
virtual void clear(void);
/** Show details of given filter. */
virtual void showFilter(KMFilter* filter);
/** Translates the field for the filter rule back to english */
virtual QString ruleFieldToEnglish(const QString & i18nVal);
/** Apply changes in the edit fields to the current filter. */
virtual void applyFilterChanges(void);
/** Methods for filter options, @see KMGFilterDlg in kmfilteraction.h */
virtual QPushButton* createDetailsButton(void);
/* Creates a combo box of all folder labels with folders indented
with white space according to their position in the folder
hierarchy */
virtual QComboBox* createFolderCombo( QStringList *,
QValueList<QGuardedPtr<KMFolder> >*,
QGuardedPtr<KMFolder> );
/* Creates a combo box of strings */
virtual QComboBox* createCombo( QStringList *str,
QString curItem );
virtual QLineEdit* createEdit(const QString txt=0);
protected slots:
void updateCurFilterName(const QString &text);
void slotBtnUp();
void slotBtnDown();
void slotBtnNew();
void slotBtnDelete();
void slotBtnOk();
void slotBtnCancel();
void slotBtnHelp();
void slotFilterSelected(int);
void slotActionTypeSelected(KMFaComboBox*, int);
protected:
// Fill listbox with filter list
virtual void reloadFilterList(void);
// Returns FALSE if grid was not created with setGrid() or given ptr is NULL
virtual bool testOpts(const QWidget* ptr) const;
// Returns index of filter rule field
virtual int indexOfRuleField(const QString fieldName) const;
// Initialize static lists. Automatically called.
static void initLists(void);
// disable/enabled relevant widgets
void enableControls();
// Update the position of the filter action field widgets
void resizeEvent(QResizeEvent *qre);
// Undo any changes that have been applied
virtual void closeEvent( QCloseEvent * );
KMFilter* mFilter;
QGridLayout *mGrid;
int mGridRow, mCbxHeight, mCbxWidth;
int mActLineHeight;
int mCurFilterIdx;
QListBox *mFilterList;
QWidget *mFilterArea;
QPushButton *mBtnUp, *mBtnDown, *mBtnNew, *mBtnDelete, *mBtnOk, *mBtnCancel;
QPushButton *mFaBtnDetails[FILTER_MAX_ACTIONS];
QWidget *mFaField[FILTER_MAX_ACTIONS];
KMFaComboBox*mFaType[FILTER_MAX_ACTIONS];
QComboBox *mRuleFieldA, *mRuleFieldB;
QLineEdit *mRuleValueA, *mRuleValueB;
QComboBox *mRuleFuncA, *mRuleFuncB, *mRuleOp;
private:
// ugly workaround against filter-up-down-move bug
bool updown_move_semaphore;
};
//-----------------------------------------------------------------------------
#define KMFaComboBoxInherited QComboBox
class KMFaComboBox: public QComboBox
{
Q_OBJECT
public:
KMFaComboBox(QWidget* parent, const char* name=0);
signals:
void selectType(KMFaComboBox* self, int index);
protected slots:
void slotSelected(int);
};
#endif /*kmfilterdlg_h*/