]> git.cworth.org Git - apitrace/blob - gui/apitracefilter.h
217938c82a0fa2775175317afff428c58bca6a49
[apitrace] / gui / apitracefilter.h
1 #ifndef APITRACEFILTER_H
2 #define APITRACEFILTER_H
3
4 #include <QRegExp>
5 #include <QSortFilterProxyModel>
6
7 class ApiTraceCall;
8
9 class ApiTraceFilter : public QSortFilterProxyModel
10 {
11     Q_OBJECT
12 public:
13     enum FilterOption {
14         NullFilter        =  0,
15         ExtensionsFilter  = 1 << 0,
16         ResolutionsFilter = 1 << 1,
17         ErrorsQueryFilter = 1 << 2,
18         ExtraStateFilter  = 1 << 3,
19     };
20     Q_DECLARE_FLAGS(FilterOptions, FilterOption)
21 public:
22     ApiTraceFilter(QObject *parent = 0);
23
24     FilterOptions filterOptions() const;
25     void setFilterOptions(FilterOptions opts);
26
27     void setFilterRegexp(const QRegExp &regexp);
28     QRegExp filterRegexp() const;
29
30     QModelIndex callIndex(int callNum) const;
31     QModelIndex indexForCall(ApiTraceCall *call) const;
32 protected:
33     bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
34
35 private:
36     QRegExp m_regexp;
37     FilterOptions m_filters;
38 };
39
40 #endif