From 77bd206a4e137aafd5ce108c3776b6fa13b2985a Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sat, 1 Sep 2018 19:07:00 +0300 Subject: [PATCH] feature: made the current solver preset persistent. let it stick. --- pysollib/options.py | 3 +++ pysollib/tile/solverdialog.py | 3 ++- pysollib/tk/solverdialog.py | 1 + pysollib/ui/tktile/solverdialog.py | 4 ++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pysollib/options.py b/pysollib/options.py index 87ca68fc..c3c690ba 100644 --- a/pysollib/options.py +++ b/pysollib/options.py @@ -112,6 +112,7 @@ solver_presets = string_list solver_show_progress = boolean solver_max_iterations = integer solver_iterations_output_step = integer +solver_preset = string display_win_message = boolean [sound_samples] @@ -249,6 +250,7 @@ class Options: ('solver_show_progress', 'bool'), ('solver_max_iterations', 'int'), ('solver_iterations_output_step', 'int'), + ('solver_preset', 'string'), # ('toolbar_vars', 'list'), # ('recent_gameid', 'list'), # ('favorite_gameid', 'list'), @@ -433,6 +435,7 @@ class Options: self.solver_show_progress = True self.solver_max_iterations = 100000 self.solver_iterations_output_step = 100 + self.solver_preset = 'video-editing' def setDefaults(self, top=None): WIN_SYSTEM = pysollib.settings.WIN_SYSTEM diff --git a/pysollib/tile/solverdialog.py b/pysollib/tile/solverdialog.py index 57257e48..364872e1 100644 --- a/pysollib/tile/solverdialog.py +++ b/pysollib/tile/solverdialog.py @@ -47,7 +47,8 @@ class SolverDialog(BaseSolverDialog, BaseTileMfxDialog): return cb def _createPresetVar(self, frame, row): - cb = PysolCombo(frame, values=tuple(self.presets), state='readonly') + cb = PysolCombo(frame, values=tuple(self.presets), state='readonly', + selectcommand=self._OnAssignToPreset) cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) cb.current(0) return cb diff --git a/pysollib/tk/solverdialog.py b/pysollib/tk/solverdialog.py index 0cb1bef6..1040e867 100644 --- a/pysollib/tk/solverdialog.py +++ b/pysollib/tk/solverdialog.py @@ -57,6 +57,7 @@ class SolverDialog(BaseSolverDialog, BaseTkMfxDialog): var.set('none') om = tkinter.OptionMenu(frame, var, *(self.presets)) om.grid(row=row, column=1, sticky='ew', padx=2, pady=2) + var.trace('w', self._OnAssignToPreset) return var def _createShowProgressButton(self, frame): diff --git a/pysollib/ui/tktile/solverdialog.py b/pysollib/ui/tktile/solverdialog.py index 53661bd0..9f324d0b 100644 --- a/pysollib/ui/tktile/solverdialog.py +++ b/pysollib/ui/tktile/solverdialog.py @@ -19,6 +19,9 @@ class BaseSolverDialog: def _OnAssignToMaxIters(self, *args): self.app.opt.solver_max_iterations = self._getMaxIters() + def _OnAssignToPreset(self, *args): + self.app.opt.solver_preset = self.preset_var.get() + def __init__(self, parent, app, **kw): self.parent = parent self.app = app @@ -58,6 +61,7 @@ class BaseSolverDialog: presets = app.opt.solver_presets self.presets = presets self.preset_var = self._createPresetVar(frame, row) + self.preset_var.set(self.app.opt.solver_preset) # row += 1