]> git.cworth.org Git - apitrace/blob - gui/mainwindow.cpp
add lots of quirks and details view
[apitrace] / gui / mainwindow.cpp
1 #include "mainwindow.h"
2
3 #include "apitracecall.h"
4 #include "apicalldelegate.h"
5 #include "apitracemodel.h"
6 #include "apitracefilter.h"
7
8 #include <QAction>
9 #include <QDebug>
10 #include <QDir>
11 #include <QFileDialog>
12 #include <QWebView>
13
14
15 MainWindow::MainWindow()
16     : QMainWindow()
17 {
18     m_ui.setupUi(this);
19
20     m_model = new ApiTraceModel();
21     m_proxyModel = new ApiTraceFilter();
22     m_proxyModel->setSourceModel(m_model);
23     m_ui.callView->setModel(m_proxyModel);
24     m_ui.callView->setItemDelegate(new ApiCallDelegate);
25     for (int column = 0; column < m_model->columnCount(); ++column)
26         m_ui.callView->resizeColumnToContents(column);
27
28     m_ui.detailsDock->hide();
29
30     connect(m_ui.actionOpen, SIGNAL(triggered()),
31             this, SLOT(openTrace()));
32
33     connect(m_ui.callView, SIGNAL(activated(const QModelIndex &)),
34             this, SLOT(callItemSelected(const QModelIndex &)));
35 }
36
37 void MainWindow::openTrace()
38 {
39     QString fileName =
40         QFileDialog::getOpenFileName(
41             this,
42             tr("Open Trace"),
43             QDir::homePath(),
44             tr("Trace Files (*.trace)"));
45
46     qDebug()<< "File name : " <<fileName;
47
48     m_model->loadTraceFile(fileName);
49 }
50
51 void MainWindow::loadTrace(const QString &fileName)
52 {
53     qDebug()<< "Loading  : " <<fileName;
54
55     m_model->loadTraceFile(fileName);
56 }
57
58 void MainWindow::callItemSelected(const QModelIndex &index)
59 {
60     ApiTraceCall *call = index.data().value<ApiTraceCall*>();
61     if (call) {
62         m_ui.detailsWebView->setHtml(call->richText());
63         m_ui.detailsDock->show();
64     } else {
65         m_ui.detailsDock->hide();
66     }
67 }
68
69 #include "mainwindow.moc"