aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/ctfvisualizer/ctfvisualizertool.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/ctfvisualizer/ctfvisualizertool.cpp')
-rw-r--r--src/plugins/ctfvisualizer/ctfvisualizertool.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/ctfvisualizer/ctfvisualizertool.cpp b/src/plugins/ctfvisualizer/ctfvisualizertool.cpp
index 8b35e2b8d5e..1c1a9415b10 100644
--- a/src/plugins/ctfvisualizer/ctfvisualizertool.cpp
+++ b/src/plugins/ctfvisualizer/ctfvisualizertool.cpp
@@ -24,6 +24,7 @@
#include <QFileDialog>
#include <QMenu>
#include <QMessageBox>
+#include <QQuickItem>
#include <fstream>
@@ -157,6 +158,15 @@ void CtfVisualizerTool::setAvailableThreads(const QList<CtfTimelineModel *> &thr
void CtfVisualizerTool::toggleThreadRestriction(QAction *action)
{
const QString tid = action->data().toString();
+
+ // deselect possibly current event
+ // (avoids crashes as next / previous would act afterwards on different or even nullptr models)
+ if (auto root = m_traceView->rootObject()) {
+ QMetaObject::invokeMethod(root, "selectByIndices",
+ Q_ARG(QVariant, QVariant(-1)),
+ Q_ARG(QVariant, QVariant(-1)));
+ }
+
m_traceManager->setThreadRestriction(tid, action->isChecked());
}