X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fmainwindow.cpp;h=327833039f47d5119bde157a9b7ce4e97dbf9e56;hb=a69f0de6b922160bec029cfd18b5002b904afccf;hp=e46fce6a095ece39d12f698464cca740a8017bb5;hpb=aa1b2136cc72893e519ff73c47e2ecd29cafe1da;p=apitrace diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index e46fce6..3278330 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -121,13 +121,6 @@ void MainWindow::callItemSelected(const QModelIndex &index) if (event && event->type() == ApiTraceEvent::Call) { ApiTraceCall *call = static_cast(event); - if (!call->backtrace().isNull()) { - m_ui.backtraceBrowser->setText(call->backtrace()); - m_ui.backtraceDock->show(); - } - else { - m_ui.backtraceDock->hide(); - } m_ui.detailsDock->setWindowTitle( tr("Details View. Frame %1, Call %2") .arg(call->parentFrame() ? call->parentFrame()->number : 0) @@ -157,6 +150,8 @@ void MainWindow::callItemSelected(const QModelIndex &index) } } } + m_ui.backtraceBrowser->setText(call->backtrace()); + m_ui.backtraceDock->setVisible(!call->backtrace().isNull()); m_ui.vertexDataDock->setVisible(call->hasBinaryData()); m_selectedEvent = call; } else { @@ -201,6 +196,9 @@ void MainWindow::replayStart() dlgUi.errorCheckCB->setChecked( !m_retracer->isBenchmarking()); + dlgUi.singlethreadCB->setChecked( + m_retracer->isSinglethread()); + if (dlg.exec() == QDialog::Accepted) { m_retracer->setDoubleBuffered( dlgUi.doubleBufferingCB->isChecked()); @@ -208,6 +206,9 @@ void MainWindow::replayStart() m_retracer->setBenchmarking( !dlgUi.errorCheckCB->isChecked()); + m_retracer->setSinglethread( + dlgUi.singlethreadCB->isChecked()); + m_retracer->setProfiling(false, false, false); replayTrace(false, false); @@ -369,8 +370,11 @@ void MainWindow::replayTrace(bool dumpState, bool dumpThumbnails) void MainWindow::trimEvent() { + int trimIndex = 0; + + Q_ASSERT(m_trimEvent->type() == ApiTraceEvent::Call || + m_trimEvent->type() == ApiTraceEvent::Frame); - int trimIndex; if (m_trimEvent->type() == ApiTraceEvent::Call) { ApiTraceCall *call = static_cast(m_trimEvent); trimIndex = call->index(); @@ -571,7 +575,7 @@ static void addSurfaceItem(const ApiSurface &surface, l->setWordWrap(true); tree->setItemWidget(item, 1, l); - item->setData(0, Qt::UserRole, surface.image()); + item->setData(0, Qt::UserRole, surface.base64Data()); } void MainWindow::fillStateForFrame() @@ -718,8 +722,8 @@ void MainWindow::showSelectedSurface() viewer->setAttribute(Qt::WA_DeleteOnClose, true); QVariant var = item->data(0, Qt::UserRole); - QImage img = var.value(); - viewer->setImage(img); + QByteArray base64Data = var.value(); + viewer->setBase64Data(base64Data); viewer->show(); viewer->raise();