diff --git a/src/View/RunSolver/Window.py b/src/View/RunSolver/Window.py index 3cf453c20656e0004f382a89dac3e1d765d1dd87..74190304102e1188c70bf703a1cde667614d388b 100644 --- a/src/View/RunSolver/Window.py +++ b/src/View/RunSolver/Window.py @@ -74,10 +74,16 @@ class SelectSolverWindow(PamhyrDialog): self.setup_combobox() self.setup_connections() + self.select_last_solver() def setup_combobox(self): solvers = self._config.solvers - solvers_name = list(map(lambda s: s.name + f" - ({s._type})", solvers)) + solvers_name = list( + map( + self._format_solver_name, + solvers + ) + ) self.combobox_add_items("comboBox", solvers_name) @@ -86,6 +92,26 @@ class SelectSolverWindow(PamhyrDialog): self.find(QPushButton, "pushButton_cancel")\ .clicked.connect(self.reject) + def select_last_solver(self): + solvers = self._config.solvers + last = self._config.last_solver_name + + solver = list( + filter( + lambda s: s.name == last, + solvers + ) + ) + + if len(solver) != 0: + self.set_combobox_text( + "comboBox", + self._format_solver_name(solver[0]) + ) + + def _format_solver_name(self, solver): + return f"{solver.name} - ({solver._type})" + @property def solver(self): return self._solver @@ -94,6 +120,8 @@ class SelectSolverWindow(PamhyrDialog): solver_name = self.get_combobox_text("comboBox") solver_name = solver_name.rsplit(" - ", 1)[0] + self._config.update_last_solver_used(solver_name) + self._solver = next( filter( lambda s: s.name == solver_name, diff --git a/src/config.py b/src/config.py index c8613a42323b307d0a0395d698644ca0b9d3b905..bce76549374985cec13255cfb33dbc4bacaf24dd 100644 --- a/src/config.py +++ b/src/config.py @@ -35,7 +35,7 @@ logger = logging.getLogger() class Config(SQL): def __init__(self): - self._version = '0.0.3' + self._version = '0.0.4' self.filename = Config.filename() self.set_default_value() @@ -113,11 +113,15 @@ class Config(SQL): '' ) """) + if int(release) < 3: self.execute(f"INSERT INTO data VALUES ('last_study', '')") self.execute( f"INSERT INTO data VALUES ('close_correctly', 'True')") + if int(release) < 4: + self.execute(f"INSERT INTO data VALUES ('last_solver_name', '')") + self.commit() def _load_solver(self): @@ -195,6 +199,12 @@ class Config(SQL): v = self.execute("SELECT value FROM data WHERE key='close_correctly'") self.close_correctly = v[0] == "True" + # Last Solver + v = self.execute("SELECT value FROM data WHERE key='last_solver_name'") + self.last_solver_name = v[0] + + self.last_study = v[0] + # Debug v = self.execute("SELECT value FROM data WHERE key='debug'") self.debug = v[0] == "True" @@ -250,6 +260,7 @@ class Config(SQL): "last_study": self.last_study, "close_correctly": self.close_correctly, "debug": self.debug, + "last_solver_name": self.last_solver_name, } for key in data: @@ -306,6 +317,9 @@ class Config(SQL): self.last_study = "" self.close_correctly = False + # Last Solver + self.last_solver_name = "" + # Debug self.debug = False @@ -332,6 +346,14 @@ class Config(SQL): ) self.commit() + def update_last_solver_used(self, solver_name): + self.last_solver_name = solver_name + self.execute( + "UPDATE data SET " + + f"value='{self._db_format(self.last_solver_name)}' " + + "WHERE key='last_solver_name'" + ) + @classmethod def filename(cls): file = ""