From 34bb297de7b64aefcc0a8c921f81a6dba1d3c215 Mon Sep 17 00:00:00 2001 From: "andrei.danila" Date: Thu, 21 Mar 2024 11:41:54 +0200 Subject: [PATCH] gui/scopystatusbar: Managing the destruction of the status bar. Signed-off-by: andrei.danila --- gui/include/gui/widgets/scopystatusbar.h | 3 +++ gui/src/widgets/scopystatusbar.cpp | 13 +++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/gui/include/gui/widgets/scopystatusbar.h b/gui/include/gui/widgets/scopystatusbar.h index d74b7485f5..38c4024cb5 100644 --- a/gui/include/gui/widgets/scopystatusbar.h +++ b/gui/include/gui/widgets/scopystatusbar.h @@ -28,6 +28,7 @@ #include #include #include +#include #include "pluginbase/statusmessage.h" #include "utils.h" #include "menu_anim.hpp" @@ -40,6 +41,7 @@ class SCOPY_GUI_EXPORT ScopyStatusBar : public MenuVAnim QWIDGET_PAINT_EVENT_HELPER public: explicit ScopyStatusBar(QWidget *parent = nullptr); + ~ScopyStatusBar(); Q_SIGNALS: void requestHistory(); @@ -60,6 +62,7 @@ public Q_SLOTS: // UI elements QStackedWidget *m_stackedWidget; QWidget *m_rightWidget; + StatusBarManager *m_statusManager; }; } // namespace scopy diff --git a/gui/src/widgets/scopystatusbar.cpp b/gui/src/widgets/scopystatusbar.cpp index 84e1a71cae..e462407898 100644 --- a/gui/src/widgets/scopystatusbar.cpp +++ b/gui/src/widgets/scopystatusbar.cpp @@ -20,7 +20,6 @@ #include "scopystatusbar.h" #include "stylehelper.h" -#include #include #include #include @@ -34,10 +33,16 @@ ScopyStatusBar::ScopyStatusBar(QWidget *parent) : MenuVAnim(parent) { initUi(); + m_statusManager = StatusBarManager::GetInstance(); + connect(m_statusManager, &StatusBarManager::sendStatus, this, &ScopyStatusBar::displayStatusMessage); + connect(m_statusManager, &StatusBarManager::clearDisplay, this, &ScopyStatusBar::clearStatusMessage); +} - auto statusManager = StatusBarManager::GetInstance(); - connect(statusManager, &StatusBarManager::sendStatus, this, &ScopyStatusBar::displayStatusMessage); - connect(statusManager, &StatusBarManager::clearDisplay, this, &ScopyStatusBar::clearStatusMessage); +ScopyStatusBar::~ScopyStatusBar() +{ + clearStatusMessage(); + disconnect(m_statusManager, &StatusBarManager::sendStatus, this, &ScopyStatusBar::displayStatusMessage); + disconnect(m_statusManager, &StatusBarManager::clearDisplay, this, &ScopyStatusBar::clearStatusMessage); } void ScopyStatusBar::initUi()