From 99fe5e8f740aa5e5828447531b0a8b563a1bc5b8 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr> Date: Tue, 16 Jan 2024 14:05:29 +0100 Subject: [PATCH] Results: Fix results reading before solver running... (again) --- src/View/MainWindow.py | 30 +++++++++++++++++++++++++++++- src/View/RunSolver/Window.py | 5 +++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index e48b4803..b07c2c1d 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -138,6 +138,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): self.setup_connection() self.default_style() self.setup_debug_mode(init=True) + self.setup_results() self.trans = QTranslator(self) # self.ui.retranslateUi() @@ -360,6 +361,16 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): for action in model_action: self.enable_actions(action, not no_model) + def setup_results(self): + self._last_solver = None + self._last_results = None + + for solver in self.conf.solvers: + if solver.name == self.conf.last_solver_name: + self._last_solver = solver + self.enable_actions("action_menu_results_last", True) + return + def set_results(self, solver, results): self._last_solver = solver self._last_results = results @@ -821,6 +832,12 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): if results is None: results = self._last_results + if self._last_results is None: + results = solver.results( + self._study, + self._solver_workdir(solver) + ) + # No results available if results is None: return @@ -845,8 +862,19 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): ) res.show() + def _solver_workdir(self, solver): + workdir = os.path.join( + os.path.dirname(self._study.filename), + "_PAMHYR_", + self._study.name.replace(" ", "_"), + solver.name.replace(" ", "_"), + ) + + return workdir + + def open_last_results(self): - if self._last_solver is None or self._last_results is None: + if self._last_solver is None: return self.open_solver_results(self._last_solver, self._last_results) diff --git a/src/View/RunSolver/Window.py b/src/View/RunSolver/Window.py index b950b929..d8cf9b87 100644 --- a/src/View/RunSolver/Window.py +++ b/src/View/RunSolver/Window.py @@ -264,7 +264,7 @@ class SolverLogWindow(PamhyrWindow): self.find(QAction, "action_log_file").setEnabled(True) self._update_logs_all() - self._update_get_results() + # self._update_get_results() self._update_logs_all() @@ -348,7 +348,8 @@ class SolverLogWindow(PamhyrWindow): def results(self): if self._results is None: self._results = self._solver.results( - self._study, self._workdir, qlog=self._output) + self._study, self._workdir, qlog=self._output + ) self._parent.set_results(self._solver, self._results) self._parent.open_solver_results(self._solver, self._results) -- GitLab