From 14ede71d62a018b0447ca2461dece84c5e68bd36 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 12 Jan 2024 18:34:46 +0100 Subject: [PATCH] CtfVisualizer: Destroy CtfTool earlier again Amends 796053d7. After all, the defaulted destructor of the class did some actual work via the destructors of the QScopedPointer members. Change-Id: If6dc8a3d57961ec263fced11f9fa9f7e9f8c54cc Reviewed-by: Jarek Kobus --- src/plugins/ctfvisualizer/ctfvisualizerplugin.cpp | 2 +- src/plugins/ctfvisualizer/ctfvisualizertool.cpp | 9 +++++---- src/plugins/ctfvisualizer/ctfvisualizertool.h | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/plugins/ctfvisualizer/ctfvisualizerplugin.cpp b/src/plugins/ctfvisualizer/ctfvisualizerplugin.cpp index 80868c3e24f..769579714d1 100644 --- a/src/plugins/ctfvisualizer/ctfvisualizerplugin.cpp +++ b/src/plugins/ctfvisualizer/ctfvisualizerplugin.cpp @@ -14,7 +14,7 @@ class CtfVisualizerPlugin : public ExtensionSystem::IPlugin void initialize() final { - setupCtfVisualizerTool(); + setupCtfVisualizerTool(this); } }; diff --git a/src/plugins/ctfvisualizer/ctfvisualizertool.cpp b/src/plugins/ctfvisualizer/ctfvisualizertool.cpp index 0d84b35b8dc..d41b3d45029 100644 --- a/src/plugins/ctfvisualizer/ctfvisualizertool.cpp +++ b/src/plugins/ctfvisualizer/ctfvisualizertool.cpp @@ -35,8 +35,9 @@ namespace CtfVisualizer::Internal { using json = nlohmann::json; -CtfVisualizerTool::CtfVisualizerTool() - : m_modelAggregator(new Timeline::TimelineModelAggregator(this)) +CtfVisualizerTool::CtfVisualizerTool(QObject *parent) + : QObject(parent) + , m_modelAggregator(new Timeline::TimelineModelAggregator(this)) , m_zoomControl(new Timeline::TimelineZoomControl(this)) , m_statisticsModel(new CtfStatisticsModel(this)) , m_traceManager(new CtfTraceManager(this, m_modelAggregator.get(), m_statisticsModel.get())) @@ -251,9 +252,9 @@ void CtfVisualizerTool::loadJson(const QString &fileName) m_loader->start(); } -void setupCtfVisualizerTool() +void setupCtfVisualizerTool(QObject *guard) { - static CtfVisualizerTool theCtfVisualizerTool; + (void) new CtfVisualizerTool(guard); } } // namespace CtfVisualizer::Internal diff --git a/src/plugins/ctfvisualizer/ctfvisualizertool.h b/src/plugins/ctfvisualizer/ctfvisualizertool.h index 8427ef04379..7937767c079 100644 --- a/src/plugins/ctfvisualizer/ctfvisualizertool.h +++ b/src/plugins/ctfvisualizer/ctfvisualizertool.h @@ -28,7 +28,7 @@ class CtfVisualizerTool : public QObject Q_OBJECT public: - CtfVisualizerTool(); + explicit CtfVisualizerTool(QObject *parent); ~CtfVisualizerTool(); Timeline::TimelineModelAggregator *modelAggregator() const; @@ -66,6 +66,6 @@ private: QMenu *const m_restrictToThreadsMenu; }; -void setupCtfVisualizerTool(); +void setupCtfVisualizerTool(QObject *guard); } // namespace CtfVisualizer::Internal