diff options
author | Martin Hertz <mvhertz@gmail.com> | 2024-03-19 13:55:29 +0100 |
---|---|---|
committer | Calum Lind <calumlind+deluge@gmail.com> | 2024-08-26 20:43:11 +0200 |
commit | e1fa8d18ecc150e4d95fac376629731009cb6963 (patch) | |
tree | 579f5019c9236818fa0f6b5d2568a6cf69219928 | |
parent | [Build] Fix Ubuntu dependency for appindicator (diff) | |
download | deluge-e1fa8d18ecc150e4d95fac376629731009cb6963.tar.xz deluge-e1fa8d18ecc150e4d95fac376629731009cb6963.zip |
[Console] Improve interactive-mode preferences saving
The bottom options for cancel/apply/ok where confusing for end-users as being checkboxes needing spacebar prepended to activate firstly, before return/enter to activate said previous selection, but changed now to omit. Also fixed not showing canceled options as sticking.
Co-authored-by: Calum Lind <calumlind+deluge@gmail.com>
Closes: https://github.com/deluge-torrent/deluge/pull/445
-rw-r--r-- | deluge/ui/console/modes/preferences/preferences.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/deluge/ui/console/modes/preferences/preferences.py b/deluge/ui/console/modes/preferences/preferences.py index 2c95323c6..09b6c5e0c 100644 --- a/deluge/ui/console/modes/preferences/preferences.py +++ b/deluge/ui/console/modes/preferences/preferences.py @@ -139,7 +139,13 @@ class Preferences(BaseMode, PopupsHandler): ] self.action_input = SelectInput( - self, None, None, [_('Cancel'), _('Apply'), _('OK')], [0, 1, 2], 0 + self, + None, + None, + [_('Cancel'), _('Apply'), _('OK')], + [0, 1, 2], + 0, + require_select_action=False, ) def load_config(self): @@ -308,16 +314,21 @@ class Preferences(BaseMode, PopupsHandler): if didupdate: self.parent_mode.on_config_changed() - def _update_preferences(self, core_config): + def _update_preferences(self, core_config, console_config=None): self.core_config = core_config for pane in self.panes: - pane.update_values(core_config) + if isinstance(pane, InterfacePane) and console_config: + pane.update_values(console_config) + else: + pane.update_values(core_config) def _actions_read(self, c): self.action_input.handle_read(c) if c in [curses.KEY_ENTER, util.KEY_ENTER2]: # take action if self.action_input.selected_index == 0: # Cancel + # Reload stored config for panes + self._update_preferences(self.core_config, self.console_config) self.back_to_parent() elif self.action_input.selected_index == 1: # Apply self._apply_prefs() |