]> git.cworth.org Git - apitrace/blobdiff - gui/apitracefilter.cpp
gui: Prevent assertion failure on debug builds.
[apitrace] / gui / apitracefilter.cpp
index 5c804508d19835d1f2cb42da69d6e3d18563962c..3dec70a4cf8a2be427dcb8ee7689990bfe436da5 100644 (file)
@@ -19,7 +19,6 @@ bool ApiTraceFilter::filterAcceptsRow(int sourceRow,
     QVariant varientData = sourceModel()->data(index0, ApiTraceModel::EventRole);
     ApiTraceEvent *event = varientData.value<ApiTraceEvent*>();
 
-    Q_ASSERT(event);
     if (!event)
         return false;
 
@@ -29,10 +28,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 +49,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 +58,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,11 +92,27 @@ void ApiTraceFilter::setFilterOptions(ApiTraceFilter::FilterOptions opts)
     }
 }
 
-QModelIndex ApiTraceFilter::callIndex(int callNum) const
+
+QModelIndex ApiTraceFilter::indexForCall(ApiTraceCall *call) const
 {
     ApiTraceModel *model = static_cast<ApiTraceModel *>(sourceModel());
-    QModelIndex index = model->callIndex(callNum);
+    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"