diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py index 478e49a6bb04a5cb5ac6c8d72cd2ebd9d81842b7..e39152f4a3b5d4090373b84860cc1de34a99e853 100644 --- a/src/Solver/ASolver.py +++ b/src/Solver/ASolver.py @@ -33,6 +33,16 @@ class AbstractSolver(object): def __str__(self): return f"{self._name} : {self._type} : {self._description}" + def __getitem__(self, key): + ret = None + if key == "name": + ret = self._name + elif key == "description": + ret = self._description + elif key == "type": + ret = self._type + return ret + @classmethod def default_parameters(cls): return [] diff --git a/src/Solver/Solvers.py b/src/Solver/Solvers.py index b5f30476fb9bb5c15e0a008443e605fd5e469072..25cb95e31551691013f530b9b7ce903f27236959 100644 --- a/src/Solver/Solvers.py +++ b/src/Solver/Solvers.py @@ -1,3 +1,10 @@ # -*- coding: utf-8 -*- -solver_type_list = ["generic"] +from Solver.GenericSolver import GenericSolver +from Solver.Mage import Mage7, Mage8 + +solver_type_list = { + "generic": GenericSolver, + "mage7": Mage7, + "mage8": Mage8, +} diff --git a/src/View/Configure/Solver/Window.py b/src/View/Configure/Solver/Window.py index cc98fd6590ef0b23531b3799c31f29ffce90d775..64faf8da183dc816100116695ff2655d867276a0 100644 --- a/src/View/Configure/Solver/Window.py +++ b/src/View/Configure/Solver/Window.py @@ -64,8 +64,11 @@ class ConfigureSolverWindow(ASubWindow): "Please give a name to your solver" ) else: - self.data = GenericSolver(self.get_line_edit_text("lineEdit_name")) - self.data.set_description(self.get_line_edit_text("lineEdit_description")) + # Build new solver from selected type + stype = self.get_combobox_text("comboBox_solver") + self.data = solver_type_list[stype](self.get_line_edit_text("lineEdit_name")) + + self.data.description = self.get_line_edit_text("lineEdit_description") self.data.set_input( self.get_line_edit_text("lineEdit_input"), self.get_line_edit_text("lineEdit_input_cmd")