diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py
index e2a8859c..23c26b51 100644
--- a/src/View/MainWindow.py
+++ b/src/View/MainWindow.py
@@ -111,6 +111,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
self._study = None
# Results
+ self._last_solver = None
self._last_results = None
# UI
@@ -150,6 +151,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
Returns:
Nothing
"""
+ logger.debug(f"Set {action} to {enable}")
self.findChild(QAction, action).setEnabled(enable)
def setup_sc(self):
@@ -180,6 +182,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
"action_menu_run_solver": self.run_solver,
"action_menu_sediment_layers": self.open_sediment_layers,
"action_menu_edit_reach_sediment_layers": self.open_reach_sediment_layers,
+ "action_menu_results_last": self.open_last_results,
## Help
"action_menu_about": self.open_about,
# ToolBar action
@@ -325,9 +328,12 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
for action in model_action:
self.enable_actions(action, not no_model)
- def set_results(self, results):
+ def set_results(self, solver, results):
+ self._last_solver = solver
self._last_results = results
+ self.enable_actions("action_menu_results_last", True)
+
############
# FEATURES #
############
@@ -703,6 +709,12 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
else:
res.activateWindow()
+ def open_last_results(self):
+ if self._last_solver is None or self._last_results is None:
+ return
+
+ self.open_solver_results(self._last_solver, self._last_results)
+
#########
# DEBUG #
#########
diff --git a/src/View/RunSolver/Window.py b/src/View/RunSolver/Window.py
index 72a65d45..62484308 100644
--- a/src/View/RunSolver/Window.py
+++ b/src/View/RunSolver/Window.py
@@ -204,6 +204,11 @@ class SolverLogWindow(PamhyrWindow):
if self._solver.log_file() != "":
self.find(QAction, "action_log_file").setEnabled(True)
+ # Get results
+ if self._results is None:
+ self._results = self._solver.results(self._study, self._workdir, qlog = self._output)
+ self._parent.set_results(self._solver, self._results)
+
while self._output.qsize() != 0:
s = self._output.get()
if type(s) is str and "[ERROR]" in s:
@@ -256,7 +261,7 @@ class SolverLogWindow(PamhyrWindow):
if self._results is None:
self._results = self._solver.results(self._study, self._workdir, qlog = self._output)
- self._parent.set_results(self._results)
+ self._parent.set_results(self._solver, self._results)
self._parent.open_solver_results(self._solver, self._results)
def log_file(self):
diff --git a/src/View/ui/MainWindow.ui b/src/View/ui/MainWindow.ui
index ea77d698..7578d600 100644
--- a/src/View/ui/MainWindow.ui
+++ b/src/View/ui/MainWindow.ui
@@ -141,12 +141,11 @@
-