]> git.cworth.org Git - apitrace/blobdiff - gui/apitracefilter.cpp
d3dretrace: Dump D3D8 images too.
[apitrace] / gui / apitracefilter.cpp
index 98ee1db52dac6bb75106bf582e6cae3165596209..a908325101958fb343bc4dc2d5c514e85cb48780 100644 (file)
@@ -29,10 +29,10 @@ bool ApiTraceFilter::filterAcceptsRow(int sourceRow,
     }
 
     ApiTraceCall *call = static_cast<ApiTraceCall*>(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) {
@@ -50,6 +50,8 @@ 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) {
@@ -57,21 +59,23 @@ bool ApiTraceFilter::filterAcceptsRow(int sourceRow,
             return false;
         if (function.contains(QLatin1String("glXQueryExtensionsString")))
             return false;
-        QString fullText = call->filterText();
-        if (function.contains(QLatin1String("glGetString")) &&
-            fullText.contains(QLatin1String("GL_EXTENSIONS")))
+        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 &regexp)
 {
-    if (text != m_text) {
-        m_text = text;
+    if (regexp != m_regexp) {
+        m_regexp = regexp;
         invalidate();
     }
 }
@@ -89,4 +93,27 @@ void ApiTraceFilter::setFilterOptions(ApiTraceFilter::FilterOptions opts)
     }
 }
 
+
+QModelIndex ApiTraceFilter::indexForCall(ApiTraceCall *call) const
+{
+    ApiTraceModel *model = static_cast<ApiTraceModel *>(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"