From 8109ddf78fb9768c1c1778a2649a9a1575097d38 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Tue, 13 Feb 2024 11:43:24 +0100 Subject: [PATCH] Pamhyr: Chose to close all subwindow at window close. --- src/View/MainWindow.py | 11 ++++++++--- src/View/Tools/ListedSubWindow.py | 4 ++++ src/View/Tools/PamhyrWindow.py | 6 ++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index 902d2d83..1d8cbee4 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -342,6 +342,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): def _do_propagate_update(self): for key in self._propagation_keys: if key == "window_list": + logger.debug(f"Update window list") self._do_update_window_list() continue @@ -568,9 +569,9 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): elif res == QMessageBox.Cancel: return False - ############# - # SUBWINDOW # - ############# + ######################### + # SUB WINDOWS MENU LIST # + ######################### def _activate_window(self, window_hash): self._try_activate_window_for_window(self, window_hash) @@ -629,6 +630,10 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): menu.addAction(action) + ############### + # SUB WINDOWS # + ############### + def open_configure(self): """Open configure window diff --git a/src/View/Tools/ListedSubWindow.py b/src/View/Tools/ListedSubWindow.py index dad36234..2a4d6e84 100644 --- a/src/View/Tools/ListedSubWindow.py +++ b/src/View/Tools/ListedSubWindow.py @@ -112,3 +112,7 @@ class ListedSubWindow(object): self._parent._update_window_list() except Exception: return + + def _close_sub_window(self): + for _, win in self._sub_win_list: + win.close() diff --git a/src/View/Tools/PamhyrWindow.py b/src/View/Tools/PamhyrWindow.py index 32b77db9..7555d5fb 100644 --- a/src/View/Tools/PamhyrWindow.py +++ b/src/View/Tools/PamhyrWindow.py @@ -172,6 +172,12 @@ class PamhyrWindow(ASubMainWindow, ListedSubWindow, PamhyrWindowTools): self._set_title() + def closeEvent(self, event): + self._close_sub_window() + self._propagate_update("window_list") + + super(PamhyrWindow, self).closeEvent(event) + class PamhyrDialog(ASubWindow, ListedSubWindow, PamhyrWindowTools): _pamhyr_ui = "dummy" -- GitLab