blob: d36d75d6ab862f8e7ab880ebc4c27f203fecd712 [file] [log] [blame]
Zack Rusin601e8372011-03-24 22:23:21 -04001#include "mainwindow.h"
2
Zack Rusin96130ac2011-03-27 01:48:36 -04003#include "apitracecall.h"
Zack Rusin18eade52011-03-26 14:23:35 -04004#include "apicalldelegate.h"
Zack Rusin601e8372011-03-24 22:23:21 -04005#include "apitracemodel.h"
Zack Rusin91065372011-03-26 01:54:10 -04006#include "apitracefilter.h"
Zack Rusin601e8372011-03-24 22:23:21 -04007
8#include <QAction>
9#include <QDebug>
10#include <QDir>
11#include <QFileDialog>
Zack Rusin96130ac2011-03-27 01:48:36 -040012#include <QWebView>
Zack Rusin601e8372011-03-24 22:23:21 -040013
14
15MainWindow::MainWindow()
16 : QMainWindow()
17{
18 m_ui.setupUi(this);
19
20 m_model = new ApiTraceModel();
Zack Rusin91065372011-03-26 01:54:10 -040021 m_proxyModel = new ApiTraceFilter();
22 m_proxyModel->setSourceModel(m_model);
Zack Rusin96130ac2011-03-27 01:48:36 -040023 m_ui.callView->setModel(m_proxyModel);
Zack Rusin18eade52011-03-26 14:23:35 -040024 m_ui.callView->setItemDelegate(new ApiCallDelegate);
Zack Rusin601e8372011-03-24 22:23:21 -040025 for (int column = 0; column < m_model->columnCount(); ++column)
26 m_ui.callView->resizeColumnToContents(column);
27
Zack Rusin96130ac2011-03-27 01:48:36 -040028 m_ui.detailsDock->hide();
29
Zack Rusin601e8372011-03-24 22:23:21 -040030 connect(m_ui.actionOpen, SIGNAL(triggered()),
31 this, SLOT(openTrace()));
Zack Rusin96130ac2011-03-27 01:48:36 -040032
33 connect(m_ui.callView, SIGNAL(activated(const QModelIndex &)),
34 this, SLOT(callItemSelected(const QModelIndex &)));
Zack Rusin601e8372011-03-24 22:23:21 -040035}
36
37void 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
51void MainWindow::loadTrace(const QString &fileName)
52{
53 qDebug()<< "Loading : " <<fileName;
54
55 m_model->loadTraceFile(fileName);
56}
57
Zack Rusin96130ac2011-03-27 01:48:36 -040058void 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
Zack Rusin601e8372011-03-24 22:23:21 -040069#include "mainwindow.moc"