#ifndef APITRACEFILTER_H
#define APITRACEFILTER_H
+#include <QRegExp>
#include <QSortFilterProxyModel>
-//! [0]
+class ApiTraceCall;
+
class ApiTraceFilter : public QSortFilterProxyModel
{
Q_OBJECT
-
+public:
+ enum FilterOption {
+ NullFilter = 0,
+ ExtensionsFilter = 1 << 0,
+ ResolutionsFilter = 1 << 1,
+ ErrorsQueryFilter = 1 << 2,
+ ExtraStateFilter = 1 << 3,
+ CustomFilter = 1 << 4,
+ };
+ Q_DECLARE_FLAGS(FilterOptions, FilterOption)
public:
ApiTraceFilter(QObject *parent = 0);
+ FilterOptions filterOptions() const;
+ void setFilterOptions(FilterOptions opts);
+
+ void setFilterRegexp(const QRegExp ®exp);
+ QRegExp filterRegexp() const;
+
+ void setCustomFilterRegexp(const QString &str);
+ QString customFilterRegexp() const;
+
+ QModelIndex indexForCall(ApiTraceCall *call) const;
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
+
+private:
+ QRegExp m_regexp;
+ FilterOptions m_filters;
+ QRegExp m_customRegexp;
};
#endif