tfix: lite mode switch - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 462ddd252d82ba29d694c970878bc3fc330fc74f DIR parent 06d0c67b9cc15ae7eecc598b60623e2b4ca5441d HTML Author: thomasv <thomasv@gitorious> Date: Wed, 11 Sep 2013 15:23:27 +0200 fix: lite mode switch Diffstat: M gui/gui_classic/__init__.py | 38 ++++++++++++++++++++----------- M gui/gui_classic/main_window.py | 14 ++------------ 2 files changed, 27 insertions(+), 25 deletions(-) --- DIR diff --git a/gui/gui_classic/__init__.py b/gui/gui_classic/__init__.py t@@ -81,34 +81,38 @@ class ElectrumGui: self.mini.hide() self.expert.show() - def minimize(self, wallet, expert, url): + def minimize(self): + self.config.set_key('lite_mode', True, True) + self.expert.hide() + self.mini.show() + + def init_lite(self, wallet, expert, url): import lite_window + if not self.check_qt_version(): + return + actuator = lite_window.MiniActuator(self.config, wallet) # Should probably not modify the current path but instead # change the behaviour of rsrc(...) old_path = QDir.currentPath() actuator.load_theme() - self.mini = lite_window.MiniWindow(actuator, self.expand, self.config) - driver = lite_window.MiniDriver(wallet, self.mini) + mini = lite_window.MiniWindow(actuator, self.expand, self.config) + driver = lite_window.MiniDriver(wallet, mini) # Reset path back to original value now that loading the GUI # is completed. QDir.setCurrent(old_path) - if url: payto, amount, label, message, signature, identity, url = parse_url(url) self.mini.set_payment_fields(payto, amount) - self.expert = expert + return mini def check_qt_version(self): qtVersion = qVersion() - if not(int(qtVersion[0]) >= 4 and int(qtVersion[2]) >= 7): - app = QApplication(sys.argv) - QMessageBox.warning(None,"Could not start Lite GUI.", "Electrum was unable to load the 'Lite GUI' because it needs Qt version >= 4.7.\nChanging your config to use the 'Classic' GUI") - self.config.set_key('lite_mode', False, True) - sys.exit(0) + return int(qtVersion[0]) >= 4 and int(qtVersion[2]) >= 7 + def main(self, url): t@@ -127,7 +131,7 @@ class ElectrumGui: s = Timer() s.start() - w = ElectrumWindow(self.config, self.network) + w = ElectrumWindow(self.config, self.network, self.minimize) w.load_wallet(wallet) self.windows.append(w) t@@ -136,11 +140,19 @@ class ElectrumGui: w.connect_slots(s) w.update_wallet() + self.expert = w + self.mini = self.init_lite(wallet, w, url) + if self.config.get('lite_mode'): - self.check_qt_version() - self.minimize(wallet, w, url) + if not self.mini: + QMessageBox.warning(None,"Could not start Lite GUI.", "Electrum was unable to load the 'Lite GUI' because it needs Qt version >= 4.7.\nChanging your config to use the 'Classic' GUI") + self.config.set_key('lite_mode', False, True) + sys.exit(0) + else: + self.minimize() else: w.show() + self.mini.hide() self.app.exec_() DIR diff --git a/gui/gui_classic/main_window.py b/gui/gui_classic/main_window.py t@@ -151,11 +151,12 @@ class ElectrumWindow(QMainWindow): self.showNormal() - def __init__(self, config, network): + def __init__(self, config, network, go_lite): QMainWindow.__init__(self) self.config = config self.network = network + self.go_lite = go_lite self.init_plugins() self._close_electrum = False t@@ -1373,17 +1374,6 @@ class ElectrumWindow(QMainWindow): d.run() self.update_lock_icon() - - def go_lite(self): - import lite_window - self.config.set_key('lite_mode', True, True) - self.hide() - if self.lite: - self.lite.mini.show() - else: - self.lite = lite_window.ElectrumGui(self.config, None, None, self) - self.lite.main(None) - def new_contact_dialog(self): text, ok = QInputDialog.getText(self, _('New Contact'), _('Address') + ':')