00001 00002 00003 00004 00005 #ifndef FILTER_H 00006 #define FILTER_H 00007 00008 #include <QObject> 00009 #include <QList> 00010 00011 class QActionGroup; 00012 00015 class Filter : public QObject 00016 { 00017 Q_OBJECT 00018 public: 00022 explicit Filter(QObject *parent = 0); 00023 00028 virtual int filterableType() const = 0; 00029 00032 virtual bool isFiltered(QVariant value) const = 0; 00033 00036 virtual QActionGroup* createActions() = 0; 00037 00038 protected: 00040 void emitStateChanged(); 00041 00042 signals: 00043 void stateChanged(int type = -1); 00044 }; 00045 00046 #endif // FILTER_H