Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 1 | #include "mainwindow.h" |
| 2 | |
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame^] | 3 | #include "apitracecall.h" |
Zack Rusin | 18eade5 | 2011-03-26 14:23:35 -0400 | [diff] [blame] | 4 | #include "apicalldelegate.h" |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 5 | #include "apitracemodel.h" |
Zack Rusin | 9106537 | 2011-03-26 01:54:10 -0400 | [diff] [blame] | 6 | #include "apitracefilter.h" |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 7 | |
| 8 | #include <QAction> |
| 9 | #include <QDebug> |
| 10 | #include <QDir> |
| 11 | #include <QFileDialog> |
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame^] | 12 | #include <QWebView> |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 13 | |
| 14 | |
| 15 | MainWindow::MainWindow() |
| 16 | : QMainWindow() |
| 17 | { |
| 18 | m_ui.setupUi(this); |
| 19 | |
| 20 | m_model = new ApiTraceModel(); |
Zack Rusin | 9106537 | 2011-03-26 01:54:10 -0400 | [diff] [blame] | 21 | m_proxyModel = new ApiTraceFilter(); |
| 22 | m_proxyModel->setSourceModel(m_model); |
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame^] | 23 | m_ui.callView->setModel(m_proxyModel); |
Zack Rusin | 18eade5 | 2011-03-26 14:23:35 -0400 | [diff] [blame] | 24 | m_ui.callView->setItemDelegate(new ApiCallDelegate); |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 25 | for (int column = 0; column < m_model->columnCount(); ++column) |
| 26 | m_ui.callView->resizeColumnToContents(column); |
| 27 | |
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame^] | 28 | m_ui.detailsDock->hide(); |
| 29 | |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 30 | connect(m_ui.actionOpen, SIGNAL(triggered()), |
| 31 | this, SLOT(openTrace())); |
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame^] | 32 | |
| 33 | connect(m_ui.callView, SIGNAL(activated(const QModelIndex &)), |
| 34 | this, SLOT(callItemSelected(const QModelIndex &))); |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 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 | |
Zack Rusin | 96130ac | 2011-03-27 01:48:36 -0400 | [diff] [blame^] | 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 | |
Zack Rusin | 601e837 | 2011-03-24 22:23:21 -0400 | [diff] [blame] | 69 | #include "mainwindow.moc" |