diff --git a/icons.qrc b/icons.qrc index ef3c6f1c..5ad965f5 100644 --- a/icons.qrc +++ b/icons.qrc @@ -13,6 +13,7 @@ icons/status_connected.png icons/status_disconnected.png icons/status_waiting.png + icons/switchgui.png icons/unconfirmed.png icons/network.png diff --git a/icons/switchgui.png b/icons/switchgui.png new file mode 100644 index 00000000..ec18650d Binary files /dev/null and b/icons/switchgui.png differ diff --git a/lib/gui_lite.py b/lib/gui_lite.py index 42cbfa5d..dbf92910 100644 --- a/lib/gui_lite.py +++ b/lib/gui_lite.py @@ -131,14 +131,17 @@ def csv_transaction(wallet): class ElectrumGui(QObject): - def __init__(self, wallet, config): + def __init__(self, wallet, config, expert=None): super(QObject, self).__init__() self.wallet = wallet self.config = config self.check_qt_version() - self.app = QApplication(sys.argv) - + self.expert = expert + if self.expert != None: + self.app = self.expert.app + else: + self.app = QApplication(sys.argv) def check_qt_version(self): qtVersion = qVersion() @@ -165,14 +168,15 @@ class ElectrumGui(QObject): if url: self.set_url(url) - - timer = Timer() - timer.start() - self.expert = gui_qt.ElectrumWindow(self.wallet, self.config) - self.expert.app = self.app - self.expert.connect_slots(timer) - self.expert.update_wallet() - self.app.exec_() + + if self.expert == None: + timer = Timer() + timer.start() + self.expert = gui_qt.ElectrumWindow(self.wallet, self.config) + self.expert.app = self.app + self.expert.connect_slots(timer) + self.expert.update_wallet() + self.app.exec_() def expand(self): """Hide the lite mode window and show pro-mode.""" diff --git a/lib/gui_qt.py b/lib/gui_qt.py index dcbb5eab..6c113e97 100644 --- a/lib/gui_qt.py +++ b/lib/gui_qt.py @@ -296,6 +296,7 @@ class ElectrumWindow(QMainWindow): def __init__(self, wallet, config): QMainWindow.__init__(self) + self.lite = None self.wallet = wallet self.config = config self.wallet.interface.register_callback('updated', self.update_callback) @@ -1135,6 +1136,9 @@ class ElectrumWindow(QMainWindow): self.status_text = "" sb = QStatusBar() sb.setFixedHeight(35) + qtVersion = qVersion() + if (int(qtVersion[0]) >= 4 and int(qtVersion[2]) >= 7): + sb.addPermanentWidget( StatusBarButton( QIcon(":icons/switchgui.png"), "Switch to Lite Mode", self.go_lite ) ) if self.wallet.seed: sb.addPermanentWidget( StatusBarButton( QIcon(":icons/lock.png"), "Password", lambda: self.change_password_dialog(self.wallet, self) ) ) sb.addPermanentWidget( StatusBarButton( QIcon(":icons/preferences.png"), "Preferences", self.settings_dialog ) ) @@ -1143,6 +1147,15 @@ class ElectrumWindow(QMainWindow): self.status_button = StatusBarButton( QIcon(":icons/status_disconnected.png"), "Network", lambda: self.network_dialog(self.wallet, self) ) sb.addPermanentWidget( self.status_button ) self.setStatusBar(sb) + + def go_lite(self): + import gui_lite + self.hide() + if self.lite: + self.lite.mini.show() + else: + self.lite = gui_lite.ElectrumGui(self.wallet, self.config, self) + self.lite.main(None) def new_contact_dialog(self): text, ok = QInputDialog.getText(self, _('New Contact'), _('Address') + ':')