diff --git a/src/View/MainWindow.py b/src/View/MainWindow.py index a22b0d16..4a0b4476 100644 --- a/src/View/MainWindow.py +++ b/src/View/MainWindow.py @@ -47,7 +47,7 @@ from PyQt5.QtWidgets import ( QMainWindow, QApplication, QAction, QFileDialog, QShortcut, QMenu, QToolBar, QMessageBox, QProgressDialog, QTabWidget, - QDialog, QVBoxLayout, QLabel, + QDialog, QVBoxLayout, QLabel, QInputDialog, ) from PyQt5.uic import loadUi @@ -606,6 +606,16 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): return None + def get_last_results(self, solver): + if self._study is None: + return None + + results = self._study.results + if solver in results: + return self._study.results[solver] + + return None + @last_results.setter def last_results(self, results): if self._study is None: @@ -1534,14 +1544,14 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): # If no specific results, get last results if results is None: def reading_fn(): - self._tmp_results = self.last_results + self._tmp_results = solver.results( + self._study, + self._solver_workdir(solver), + ) - if self.last_results is None: + if solver == self._last_solver: def reading_fn(): - self._tmp_results = solver.results( - self._study, - self._solver_workdir(solver), - ) + self._tmp_results = self.last_results # Open from file if type(results) is str: @@ -1566,7 +1576,7 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): ) dlg.exec_() results = self._tmp_results - self.last_results = results + # self.last_results = results # No results available if results is None: @@ -1691,12 +1701,35 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit): if self._last_solver is None: return + solver_type = self._study.results + + solver_name, ok = QInputDialog.getItem( + self, self._trad['Solver'], + self._trad['Solver'] + ":", + list( + map(lambda s: s.name, + filter(lambda s: s._type in solver_type, + self.conf.solvers)) + ) + ) + if not ok: + return + + solver = next( + filter( + lambda s: s.name == solver_name, + self.conf.solvers + ) + ) + if self._last_solver._type == "mage8": - self.open_solver_results(self._last_solver, - self.last_results) + self.open_solver_results( + solver, # self.last_results + ) elif self._last_solver._type == "adistswc": - self.open_solver_results_adists(self._last_solver, - self.last_results) + self.open_solver_results_adists( + solver, # self.last_results + ) def open_results_from_file(self): if self._study is None: diff --git a/src/View/Results/Window.py b/src/View/Results/Window.py index 44fe6861..45953b2d 100644 --- a/src/View/Results/Window.py +++ b/src/View/Results/Window.py @@ -56,7 +56,8 @@ from PyQt5.QtWidgets import ( QFileDialog, QTableView, QAbstractItemView, QUndoStack, QShortcut, QAction, QItemDelegate, QComboBox, QVBoxLayout, QHeaderView, QTabWidget, - QSlider, QLabel, QWidget, QGridLayout, QTabBar, QInputDialog + QSlider, QLabel, QWidget, QGridLayout, QTabBar, + QInputDialog, ) from Model.Results.Results import AdditionalData @@ -1229,8 +1230,7 @@ class ResultsWindow(PamhyrWindow): extent=[b[0], b[2], b[1], b[3]]) else: dlg = CoordinatesDialog( - xlim, - ylim, + xlim, ylim, trad=self._trad, parent=self ) @@ -1303,12 +1303,10 @@ class ResultsWindow(PamhyrWindow): 'Chose the type of data:', data_type_lst ) - if not ok: return legend, ok = QInputDialog.getText(self, 'Legend', 'Legend:') - if not ok: return diff --git a/src/View/Translate.py b/src/View/Translate.py index 6bd9018b..463b1057 100644 --- a/src/View/Translate.py +++ b/src/View/Translate.py @@ -261,3 +261,4 @@ class MainTranslate(UnitTranslate): self._dict["Cancel"] = _translate("MainWindow", "Cancel") self._dict["Save"] = _translate("MainWindow", "Save") self._dict["Close"] = _translate("MainWindow", "Close") + self._dict["Solver"] = _translate("MainWindow", "Solver")