]> git.cworth.org Git - apitrace/blob - gui/apitracefilter.cpp
Introduce ApiTrace which encapsulates the data.
[apitrace] / gui / apitracefilter.cpp
1 #include "apitracefilter.h"
2
3 #include "apitracecall.h"
4
5 #include <QDebug>
6
7 ApiTraceFilter::ApiTraceFilter(QObject *parent)
8     : QSortFilterProxyModel()
9 {
10 }
11
12 bool ApiTraceFilter::filterAcceptsRow(int sourceRow,
13                                       const QModelIndex &sourceParent) const
14 {
15     QModelIndex index0 = sourceModel()->index(sourceRow, 0, sourceParent);
16     QVariant varientData = sourceModel()->data(index0);
17     ApiTraceCall *call = varientData.value<ApiTraceCall*>();
18
19     if (!call) {
20         ApiTraceFrame *frame = varientData.value<ApiTraceFrame*>();
21         return frame != 0;
22     }
23
24     QString function = call->name;
25
26     if (!m_text.isEmpty()) {
27         return function.contains(m_text);
28     }
29
30     //XXX make it configurable
31     if (function.contains(QLatin1String("glXGetProcAddress")))
32         return false;
33     if (function.contains(QLatin1String("wglGetProcAddress")))
34         return false;
35
36     QString fullText = call->filterText();
37     if (function.contains(QLatin1String("glGetString")) &&
38         fullText.contains(QLatin1String("GL_EXTENSIONS")))
39         return false;
40
41     return true;
42 }
43
44
45 void ApiTraceFilter::setFilterString(const QString &text)
46 {
47     if (text != m_text) {
48         m_text = text;
49         invalidate();
50     }
51 }
52
53 #include "apitracefilter.moc"