]> git.cworth.org Git - apitrace/blob - gui/apitracefilter.cpp
Start on custom filtering.
[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         return false;
21
22     QString function = call->name;
23
24     if (!m_text.isEmpty()) {
25         return function.contains(m_text);
26     }
27
28     //XXX make it configurable
29     if (function.contains(QLatin1String("glXGetProcAddress")))
30         return false;
31     if (function.contains(QLatin1String("wglGetProcAddress")))
32         return false;
33
34     QString fullText = call->richText();
35     if (function.contains(QLatin1String("glGetString")) &&
36         fullText.contains(QLatin1String("GL_EXTENSIONS")))
37         return false;
38
39     return true;
40 }
41
42
43 void ApiTraceFilter::setFilterString(const QString &text)
44 {
45     if (text != m_text) {
46         m_text = text;
47         invalidate();
48     }
49 }
50
51 #include "apitracefilter.moc"