]> git.cworth.org Git - apitrace/blobdiff - gui/mainwindow.cpp
add lots of quirks and details view
[apitrace] / gui / mainwindow.cpp
index a2fc380250fbd1733d73bc31a56d37bd8dbe4468..d36d75d6ab862f8e7ab880ebc4c27f203fecd712 100644 (file)
@@ -1,5 +1,6 @@
 #include "mainwindow.h"
 
+#include "apitracecall.h"
 #include "apicalldelegate.h"
 #include "apitracemodel.h"
 #include "apitracefilter.h"
@@ -8,6 +9,7 @@
 #include <QDebug>
 #include <QDir>
 #include <QFileDialog>
+#include <QWebView>
 
 
 MainWindow::MainWindow()
@@ -18,13 +20,18 @@ MainWindow::MainWindow()
     m_model = new ApiTraceModel();
     m_proxyModel = new ApiTraceFilter();
     m_proxyModel->setSourceModel(m_model);
-    m_ui.callView->setModel(m_model);
+    m_ui.callView->setModel(m_proxyModel);
     m_ui.callView->setItemDelegate(new ApiCallDelegate);
     for (int column = 0; column < m_model->columnCount(); ++column)
         m_ui.callView->resizeColumnToContents(column);
 
+    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 &)));
 }
 
 void MainWindow::openTrace()
@@ -48,4 +55,15 @@ void MainWindow::loadTrace(const QString &fileName)
     m_model->loadTraceFile(fileName);
 }
 
+void MainWindow::callItemSelected(const QModelIndex &index)
+{
+    ApiTraceCall *call = index.data().value<ApiTraceCall*>();
+    if (call) {
+        m_ui.detailsWebView->setHtml(call->richText());
+        m_ui.detailsDock->show();
+    } else {
+        m_ui.detailsDock->hide();
+    }
+}
+
 #include "mainwindow.moc"