From 5a02940cb7f7b96f175f211b5b518f2a9099aa31 Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Mon, 30 Aug 2021 19:03:49 +0200
Subject: [PATCH] UI: Ensure the delete of the contained widget in the
 UnclosableDockWidget at destruction time

---
 src/UI/UnclosableDockWidget.cc | 9 ++++++++-
 src/UI/UnclosableDockWidget.hh | 1 +
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/UI/UnclosableDockWidget.cc b/src/UI/UnclosableDockWidget.cc
index 583948db..e08d2f73 100644
--- a/src/UI/UnclosableDockWidget.cc
+++ b/src/UI/UnclosableDockWidget.cc
@@ -9,6 +9,14 @@ UnclosableDockWidget::UnclosableDockWidget(const QString &name, QWidget *parent)
     DockWidgetTitleBar::addToDock(this);
 }
 
+UnclosableDockWidget::~UnclosableDockWidget() noexcept
+{
+    QWidget *w = widget();
+    if (w != nullptr)
+        delete w;
+    setWidget(nullptr);
+}
+
 void
 UnclosableDockWidget::closeEvent(QCloseEvent *event) noexcept
 {
@@ -21,6 +29,5 @@ UnclosableDockWidget::closeEvent(QCloseEvent *event) noexcept
 void
 UnclosableDockWidget::allowClose() noexcept
 {
-    // qDebug() << "Dock" << windowTitle() << "is now allowed to be closed";
     allowedToClose = true;
 }
diff --git a/src/UI/UnclosableDockWidget.hh b/src/UI/UnclosableDockWidget.hh
index 99b4a37b..204a1172 100644
--- a/src/UI/UnclosableDockWidget.hh
+++ b/src/UI/UnclosableDockWidget.hh
@@ -10,6 +10,7 @@ class UnclosableDockWidget final : public QDockWidget {
 
 public:
     explicit UnclosableDockWidget(const QString &, QWidget *parent) noexcept;
+    ~UnclosableDockWidget() noexcept override;
     void allowClose() noexcept;
 
 protected:
-- 
GitLab