#include <QLineEdit>
#include <QMessageBox>
#include <QProgressBar>
-#include <QShortcut>
#include <QToolBar>
#include <QUrl>
#include <QVBoxLayout>
dlgUi.doubleBufferingCB->setChecked(
m_retracer->isDoubleBuffered());
- dlgUi.benchmarkCB->setChecked(
- m_retracer->isBenchmarking());
+ dlgUi.errorCheckCB->setChecked(
+ !m_retracer->isBenchmarking());
if (dlg.exec() == QDialog::Accepted) {
m_retracer->setDoubleBuffered(
dlgUi.doubleBufferingCB->isChecked());
m_retracer->setBenchmarking(
- dlgUi.benchmarkCB->isChecked());
+ !dlgUi.errorCheckCB->isChecked());
replayTrace(false);
}
}
m_stateEvent = 0;
m_ui.actionShowErrorsDock->setEnabled(m_trace->hasErrors());
m_ui.errorsDock->setVisible(m_trace->hasErrors());
+ if (!m_trace->hasErrors())
+ m_ui.errorsTreeWidget->clear();
statusBar()->showMessage(
tr("Replaying finished!"), 2000);
return;
QVariant var = item->data(0, Qt::UserRole);
- m_imageViewer->setImage(var.value<QImage>());
- m_imageViewer->show();
- m_imageViewer->raise();
- m_imageViewer->activateWindow();
+
+ ImageViewer *viewer = new ImageViewer(this);
+ viewer->setAttribute(Qt::WA_DeleteOnClose, true);
+ viewer->setImage(var.value<QImage>());
+ viewer->show();
+ viewer->raise();
+ viewer->activateWindow();
}
void MainWindow::initObjects()
m_vdataInterpreter->setTypeFromString(
m_ui.vertexTypeCB->currentText());
- m_imageViewer = new ImageViewer(this);
-
m_model = new ApiTraceModel();
m_model->setApiTrace(m_trace);
m_proxyModel = new ApiTraceFilter();
m_searchWidget->hide();
m_traceProcess = new TraceProcess(this);
-
- new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_G),
- this, SLOT(slotGoTo()));
- new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_F),
- this, SLOT(slotSearch()));
}
void MainWindow::initConnections()
m_ui.actionShowErrorsDock, SLOT(setChecked(bool)));
connect(m_ui.actionShowErrorsDock, SIGNAL(triggered(bool)),
m_ui.errorsDock, SLOT(setVisible(bool)));
+ connect(m_ui.errorsTreeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
+ this, SLOT(slotErrorSelected(QTreeWidgetItem*)));
}
void MainWindow::replayStateFound(const ApiTraceState &state)
}
}
+void MainWindow::slotErrorSelected(QTreeWidgetItem *current)
+{
+ if (current) {
+ ApiTraceCall *call =
+ current->data(0, Qt::UserRole).value<ApiTraceCall*>();
+ Q_ASSERT(call);
+ QModelIndex index = m_proxyModel->indexForCall(call);
+ if (index.isValid()) {
+ m_ui.callView->setCurrentIndex(index);
+ } else {
+ statusBar()->showMessage(tr("Call has been filtered out."));
+ }
+ }
+}
+
#include "mainwindow.moc"