1 #ifndef AbstractFilter_H
2 #define AbstractFilter_H
17 template<
typename U,
typename V >
struct QPair;
23 class AbstractFilterSelector;
50 enum FilterEffectiveness {
55 Q_DECLARE_FLAGS(FilterEffectivenessFlag, FilterEffectiveness)
59 AbstractFilter(FilterEffectivenessFlag,
int minimumForSuccess = -1);
63 virtual bool canFilterImages()
const;
64 virtual bool canFilterPoints()
const;
65 virtual bool canFilterMeasures()
const;
73 virtual QString getImageDescription()
const;
74 virtual QString getPointDescription()
const;
75 virtual QString getMeasureDescription()
const;
83 bool inclusive()
const;
84 int getMinForSuccess()
const {
85 return m_minForSuccess;
87 AbstractFilter::FilterEffectivenessFlag *getEffectivenessFlags()
const;
88 QBoxLayout *getMainLayout()
const;
89 QBoxLayout *getInclusiveExclusiveLayout()
const;
93 bool evaluatePointFromMeasureFilter(
const ControlPoint *)
const;
108 void updateEffectiveness();
109 void updateMinForSuccess(
int);
113 QCheckBox *createEffectivenessCheckBox(QString);
117 QBoxLayout *m_mainLayout;
118 QBoxLayout *m_inclusiveExclusiveLayout;
119 QButtonGroup *m_inclusiveExclusiveGroup;
120 QButtonGroup *m_effectivenessGroup;
126 FilterEffectivenessFlag *m_effectivenessFlags;
130 Q_DECLARE_OPERATORS_FOR_FLAGS(AbstractFilter::FilterEffectivenessFlag)