QString function = call->name;
+ if (!m_text.isEmpty()) {
+ return function.contains(m_text);
+ }
+
//XXX make it configurable
if (function.contains(QLatin1String("glXGetProcAddress")))
return false;
}
+void ApiTraceFilter::setFilterString(const QString &text)
+{
+ if (text != m_text) {
+ m_text = text;
+ invalidate();
+ }
+}
+
#include "apitracefilter.moc"
public:
ApiTraceFilter(QObject *parent = 0);
+ void setFilterString(const QString &text);
protected:
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
+
+private:
+ QString m_text;
};
#endif
#include <QAction>
#include <QDebug>
#include <QDir>
+#include <QLineEdit>
#include <QFileDialog>
+#include <QToolBar>
#include <QWebView>
for (int column = 0; column < m_model->columnCount(); ++column)
m_ui.callView->resizeColumnToContents(column);
+ QToolBar *toolBar = addToolBar(tr("Navigation"));
+ m_filterEdit = new QLineEdit(toolBar);
+ toolBar->addWidget(m_filterEdit);
+
m_ui.detailsDock->hide();
connect(m_ui.actionOpen, SIGNAL(triggered()),
this, SLOT(openTrace()));
-
connect(m_ui.callView, SIGNAL(activated(const QModelIndex &)),
this, SLOT(callItemSelected(const QModelIndex &)));
+ connect(m_filterEdit, SIGNAL(returnPressed()),
+ this, SLOT(filterTrace()));
}
void MainWindow::openTrace()
}
}
+void MainWindow::filterTrace()
+{
+ m_proxyModel->setFilterString(m_filterEdit->text());
+}
+
#include "mainwindow.moc"
class ApiTraceModel;
class ApiTraceFilter;
+class QLineEdit;
class QModelIndex;
class MainWindow : public QMainWindow
private slots:
void callItemSelected(const QModelIndex &index);
void openTrace();
+ void filterTrace();
private:
Ui_MainWindow m_ui;
ApiTraceModel *m_model;
ApiTraceFilter *m_proxyModel;
+ QLineEdit *m_filterEdit;
};
<item>
<widget class="QWebView" name="detailsWebView">
<property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <sizepolicy hsizetype="Preferred" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>