From ef36eba039d437de4856f822c40a0a8d0ecc17b8 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Fri, 4 Sep 2026 10:09:56 +0200 Subject: [PATCH] Ensemble: Results: Add method to open ensemble results window. --- src/Model/Results/River/River.py | 2 ++ src/Solver/Mage.py | 2 +- src/View/MainWindow.py | 26 ++++++++++++++++++++++++++ src/View/Results/Window.py | 1 + 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/Model/Results/River/River.py b/src/Model/Results/River/River.py index 6e32b7a3..44f8b0c2 100644 --- a/src/Model/Results/River/River.py +++ b/src/Model/Results/River/River.py @@ -404,6 +404,8 @@ class River(SQLSubModel): # Dict with timestamps as key self._reachs = [] + for i, _ in enumerate(self._study.river.enable_edges()): + self.add(i) def __len__(self): return len(self._reachs) diff --git a/src/Solver/Mage.py b/src/Solver/Mage.py index 242e7c73..7d25152e 100644 --- a/src/Solver/Mage.py +++ b/src/Solver/Mage.py @@ -1160,7 +1160,7 @@ class Mage8(Mage): for i in range(nb_reach): # Add results reach to reach list - r = results.river.add(i) + r = results.river.reach(i) reachs.append(r) # ID of first and last reach profiles diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index 61ef6729..2be37a2c 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -1696,6 +1696,12 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): if not self.msg_box_results_continue(): return + if self._study.status.scenario.is_ensemble(): + self.open_solver_ens_results_window(solver, results) + else: + self.open_solver_results_window(solver, results) + + def open_solver_results_window(self, solver, results): # Windows already opened if self.sub_window_exists( ResultsWindow, @@ -1715,6 +1721,26 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): ) res.show() + def open_solver_ens_results_window(self, solver, results): + # Windows already opened + if self.sub_window_exists( + ResultsEnsembleWindow, + data=[ + self._study, + None, # No config, + results._solver, + results._repertory, + results._name] + ): + return + + res = ResultsEnsembleWindow( + study=self._study, + results=[results], + parent=self + ) + res.show() + def msg_open_results_no_results(self): self.message_box( window_title=self._trad["Warning"], diff --git a/src/View/Results/Window.py b/src/View/Results/Window.py index 2362b984..50430e0d 100644 --- a/src/View/Results/Window.py +++ b/src/View/Results/Window.py @@ -1638,6 +1638,7 @@ class ResultsEnsembleWindow(ResultsWindow): # unselect all profiles but the first one profile_id = self._get_current_profile() self.update_table_selection_profile(profile_id) + tab_widget = self.find(QTabWidget, f"tabWidget") tab_index = tab_widget.currentIndex() name = tab_widget.tabText(tab_index)