fix: lite mode switch
authorthomasv <thomasv@gitorious>
Wed, 11 Sep 2013 13:23:27 +0000 (15:23 +0200)
committerthomasv <thomasv@gitorious>
Wed, 11 Sep 2013 13:23:27 +0000 (15:23 +0200)
gui/gui_classic/__init__.py
gui/gui_classic/main_window.py

index 61e8eb3..471827e 100644 (file)
@@ -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):
 
@@ -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)
@@ -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_()
 
index fefd2bd..341c5eb 100644 (file)
@@ -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
@@ -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') + ':')