X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitracefilter.cpp;h=a908325101958fb343bc4dc2d5c514e85cb48780;hb=1c3144b7f0d37ae3909bd1a854ede6a0aa3ea20d;hp=fdee2bb87b2e876aac4bf65ff4e6ebad708a72ae;hpb=e17455750b302f1cb0750c501ab7593a8846d34e;p=apitrace diff --git a/gui/apitracefilter.cpp b/gui/apitracefilter.cpp index fdee2bb..a908325 100644 --- a/gui/apitracefilter.cpp +++ b/gui/apitracefilter.cpp @@ -29,10 +29,10 @@ bool ApiTraceFilter::filterAcceptsRow(int sourceRow, } ApiTraceCall *call = static_cast(event); - QString function = call->name; + QString function = call->name(); - if (!m_text.isEmpty()) { - return function.contains(m_text); + if (!m_regexp.isEmpty() && m_regexp.isValid()) { + return function.contains(m_regexp); } if (m_filters & ResolutionsFilter) { @@ -42,15 +42,6 @@ bool ApiTraceFilter::filterAcceptsRow(int sourceRow, return false; } - if (m_filters & ExtensionsFilter) { - QString fullText = call->filterText(); - if (function.contains(QLatin1String("glGetString")) && - fullText.contains(QLatin1String("GL_EXTENSIONS"))) - return false; - if (function.contains(QLatin1String("glXGetClientString"))) - return false; - } - if (m_filters & ErrorsQueryFilter) { if (function.contains(QLatin1String("glGetError"))) return false; @@ -59,16 +50,32 @@ bool ApiTraceFilter::filterAcceptsRow(int sourceRow, if (m_filters & ExtraStateFilter) { if (function.contains(QLatin1String("glXGetCurrentDisplay"))) return false; + if (function.contains(QLatin1String("wglDescribePixelFormat"))) + return false; + } + + if (m_filters & ExtensionsFilter) { + if (function.contains(QLatin1String("glXGetClientString"))) + return false; + if (function.contains(QLatin1String("glXQueryExtensionsString"))) + return false; + if (function.contains(QLatin1String("glGetString"))) + return false; + } + + if (m_filters & CustomFilter) { + return !function.contains(m_customRegexp); } + return true; } -void ApiTraceFilter::setFilterString(const QString &text) +void ApiTraceFilter::setFilterRegexp(const QRegExp ®exp) { - if (text != m_text) { - m_text = text; + if (regexp != m_regexp) { + m_regexp = regexp; invalidate(); } } @@ -86,4 +93,27 @@ void ApiTraceFilter::setFilterOptions(ApiTraceFilter::FilterOptions opts) } } + +QModelIndex ApiTraceFilter::indexForCall(ApiTraceCall *call) const +{ + ApiTraceModel *model = static_cast(sourceModel()); + QModelIndex index = model->indexForCall(call); + return mapFromSource(index); +} + +QRegExp ApiTraceFilter::filterRegexp() const +{ + return m_regexp; +} + +void ApiTraceFilter::setCustomFilterRegexp(const QString &str) +{ + m_customRegexp = QRegExp(str); +} + +QString ApiTraceFilter::customFilterRegexp() const +{ + return m_customRegexp.pattern(); +} + #include "apitracefilter.moc"