From c160e12f207f46a117e49b5d022da40582c8a9de Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Mon, 30 Aug 2021 18:56:18 +0200
Subject: [PATCH] UI: Call the deleteAllContent to clear all the
 VivyDocumentView's widgets at destruction time

---
 src/UI/AbstractDocumentView.cc | 2 +-
 src/UI/MainWindow.cc           | 4 +---
 src/UI/VivyDocumentView.cc     | 9 ++-------
 3 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/src/UI/AbstractDocumentView.cc b/src/UI/AbstractDocumentView.cc
index 70b1c241..d56a35bd 100644
--- a/src/UI/AbstractDocumentView.cc
+++ b/src/UI/AbstractDocumentView.cc
@@ -34,7 +34,7 @@ AbstractDocumentView::deleteAllContent() noexcept
             delete item->widget();
             delete item;
         }
-        delete layout(); // XXX
+        delete layout();
     }
 }
 
diff --git a/src/UI/MainWindow.cc b/src/UI/MainWindow.cc
index dca4130d..a322dab0 100644
--- a/src/UI/MainWindow.cc
+++ b/src/UI/MainWindow.cc
@@ -168,9 +168,7 @@ void
 MainWindow::closeEvent(QCloseEvent *event) noexcept
 {
     qDebug() << "Closing the main window!";
-    forEachViews<VivyDocumentView>(
-        [](VivyDocumentView *view, int) { view->closeDocument(); }); // XXX
-    // event->accept();
+    forEachViews<VivyDocumentView>([](VivyDocumentView *view, int) { view->closeDocument(); });
     QMainWindow::closeEvent(event);
 }
 
diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc
index 8bb95c5c..be743791 100644
--- a/src/UI/VivyDocumentView.cc
+++ b/src/UI/VivyDocumentView.cc
@@ -40,7 +40,8 @@ VivyDocumentView::~VivyDocumentView() noexcept
     qDebug()
         << "Deleting the document view: ref count on document" << document->getName() << "is"
         << document.use_count() << "and" << (visualizer ? "has visualizer" : "without visualizer");
-    closeDocument();
+
+    deleteAllContent();
 }
 
 VivyDocument *
@@ -148,12 +149,6 @@ VivyDocumentView::closeDocument() noexcept
              << document.use_count() << ")";
     vivyApp->documentStore.closeDocument(document->getUuid());
     allowToCloseAllDocks();
-
-    // Kubat: the visualizer pointer should have been deleted by the
-    // deleteAllContent() call if it was created.
-    // deleteAllContent();
-    // visualizer = nullptr;
-    // property   = nullptr;
 }
 
 QIcon
-- 
GitLab