tShow and change themes via GUI. - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit 4d5615b8a88a189c4b15ca499dca62a930315e57 (DIR) parent 49aec96e1ec39b09698ad96ecf3c4a2fa20ef19a (HTM) Author: Amir Taaki <genjix@riseup.net> Date: Sat, 18 Aug 2012 08:23:57 +0100 Show and change themes via GUI. Diffstat: M lib/gui_lite.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) --- (DIR) diff --git a/lib/gui_lite.py b/lib/gui_lite.py t@@ -185,7 +185,24 @@ class MiniWindow(QDialog): view_menu = menubar.addMenu(_("&View")) expert_gui = view_menu.addAction(_("&Pro Mode")) expert_gui.triggered.connect(expand_callback) - view_menu.addMenu(_("&Themes")) + themes_menu = view_menu.addMenu(_("&Themes")) + selected_theme = self.actuator.selected_theme() + theme_group = QActionGroup(self) + for theme_name in self.actuator.theme_names(): + theme_action = themes_menu.addAction(theme_name) + theme_action.setCheckable(True) + if selected_theme == theme_name: + theme_action.setChecked(True) + class SelectThemeFunctor: + def __init__(self, theme_name, toggle_theme): + self.theme_name = theme_name + self.toggle_theme = toggle_theme + def __call__(self, checked): + if checked: + self.toggle_theme(self.theme_name) + delegate = SelectThemeFunctor(theme_name, self.toggle_theme) + theme_action.toggled.connect(delegate) + theme_group.addAction(theme_action) view_menu.addSeparator() show_history = view_menu.addAction(_("Show History")) show_history.setCheckable(True) t@@ -212,8 +229,10 @@ class MiniWindow(QDialog): self.layout().setSizeConstraint(QLayout.SetFixedSize) self.setObjectName("main_window") self.show() - - def recompute_style(self): + + def toggle_theme(self, theme_name): + self.actuator.change_theme(theme_name) + # Recompute style globally qApp.style().unpolish(self) qApp.style().polish(self) t@@ -482,6 +501,10 @@ class MiniActuator: def selected_theme(self): return self.theme_name + def change_theme(self, theme_name): + self.wallet.theme = self.theme_name = theme_name + self.load_theme() + def set_configured_currency(self, set_quote_currency): currency = self.wallet.conversion_currency # currency can be none when Electrum is used for the first