From 75910e910ea60a19ec9b6044055b926e9792c514 Mon Sep 17 00:00:00 2001 From: Uwe Kindler Date: Thu, 26 Nov 2020 08:07:31 +0100 Subject: [PATCH] Fixed centralwidget example to properly close all floating widgets on main window close --- examples/centralwidget/mainwindow.cpp | 11 +++++++++++ examples/centralwidget/mainwindow.h | 3 +++ 2 files changed, 14 insertions(+) diff --git a/examples/centralwidget/mainwindow.cpp b/examples/centralwidget/mainwindow.cpp index 9a3caa6..c5d49b5 100644 --- a/examples/centralwidget/mainwindow.cpp +++ b/examples/centralwidget/mainwindow.cpp @@ -133,3 +133,14 @@ void CMainWindow::savePerspective() PerspectiveComboBox->setCurrentText(PerspectiveName); } + +//============================================================================ +void CMainWindow::closeEvent(QCloseEvent* event) +{ + // Delete dock manager here to delete all floating widgets. This ensures + // that all top level windows of the dock manager are properly closed + DockManager->deleteLater(); + QMainWindow::closeEvent(event); +} + + diff --git a/examples/centralwidget/mainwindow.h b/examples/centralwidget/mainwindow.h index b31c91b..75869da 100644 --- a/examples/centralwidget/mainwindow.h +++ b/examples/centralwidget/mainwindow.h @@ -21,6 +21,9 @@ public: CMainWindow(QWidget *parent = nullptr); ~CMainWindow(); +protected: + virtual void closeEvent(QCloseEvent* event) override; + private: QAction* SavePerspectiveAction = nullptr; QWidgetAction* PerspectiveListAction = nullptr;