1 #include "apitracefilter.h"
3 #include "apitracecall.h"
4 #include "apitracemodel.h"
8 ApiTraceFilter::ApiTraceFilter(QObject *parent)
9 : QSortFilterProxyModel(),
10 m_filters(ExtensionsFilter | ResolutionsFilter |
11 ErrorsQueryFilter | ExtraStateFilter)
15 bool ApiTraceFilter::filterAcceptsRow(int sourceRow,
16 const QModelIndex &sourceParent) const
18 QModelIndex index0 = sourceModel()->index(sourceRow, 0, sourceParent);
19 QVariant varientData = sourceModel()->data(index0, ApiTraceModel::EventRole);
20 ApiTraceEvent *event = varientData.value<ApiTraceEvent*>();
26 //we don't filter frames
27 if (event->type() == ApiTraceEvent::Frame) {
31 ApiTraceCall *call = static_cast<ApiTraceCall*>(event);
32 QString function = call->name;
34 if (!m_text.isEmpty()) {
35 return function.contains(m_text);
38 if (m_filters & ResolutionsFilter) {
39 if (function.contains(QLatin1String("glXGetProcAddress")))
41 if (function.contains(QLatin1String("wglGetProcAddress")))
45 if (m_filters & ExtensionsFilter) {
46 QString fullText = call->filterText();
47 if (function.contains(QLatin1String("glGetString")) &&
48 fullText.contains(QLatin1String("GL_EXTENSIONS")))
50 if (function.contains(QLatin1String("glXGetClientString")))
54 if (m_filters & ErrorsQueryFilter) {
55 if (function.contains(QLatin1String("glGetError")))
59 if (m_filters & ExtraStateFilter) {
60 if (function.contains(QLatin1String("glXGetCurrentDisplay")))
68 void ApiTraceFilter::setFilterString(const QString &text)
76 ApiTraceFilter::FilterOptions ApiTraceFilter::filterOptions() const
81 void ApiTraceFilter::setFilterOptions(ApiTraceFilter::FilterOptions opts)
83 if (opts != m_filters) {
89 #include "apitracefilter.moc"