fix proxy issues: override config with command line option, and use interface.proxy...
authorthomasv <thomasv@gitorious>
Tue, 9 Oct 2012 13:48:06 +0000 (15:48 +0200)
committerthomasv <thomasv@gitorious>
Tue, 9 Oct 2012 13:48:06 +0000 (15:48 +0200)
electrum
lib/gui_qt.py
lib/simple_config.py

index ba7b71d..f02efdb 100755 (executable)
--- a/electrum
+++ b/electrum
@@ -118,9 +118,7 @@ if __name__ == '__main__':
     parser.add_option("-p", "--proxy", dest="proxy", default=None, help="set proxy [type:]host[:port], where type is socks4,socks5 or http")
     options, args = parser.parse_args()
 
-    if options.proxy:
-        options.proxy = parse_proxy_options(options.proxy)
-
+    proxy = parse_proxy_options(options.proxy) if options.proxy else simple_config.config["proxy"]
     wallet = Wallet()
     wallet.set_path(options.wallet_path)
     wallet.read()
@@ -180,7 +178,7 @@ if __name__ == '__main__':
             sys.exit("Error: Unknown GUI: " + options.gui)
 
         gui = gui.ElectrumGui(wallet)
-        interface = WalletSynchronizer(wallet, True, gui.server_list_changed, options.proxy)
+        interface = WalletSynchronizer(wallet, True, gui.server_list_changed, proxy)
         interface.start()
 
         try:
index a21209c..c1aced6 100644 (file)
@@ -1406,11 +1406,11 @@ class ElectrumWindow(QMainWindow):
         proxy_port.setFixedWidth(50)
         proxy_mode.addItems(['NONE', 'SOCKS4', 'SOCKS5', 'HTTP'])
 
-        cfg = SimpleConfig()
-        proxy_config = cfg.config['proxy']
-        proxy_mode.setCurrentIndex(proxy_mode.findText(str(proxy_config["mode"]).upper()))
-        proxy_host.setText(proxy_config["host"])
-        proxy_port.setText(proxy_config["port"])
+        proxy_config = interface.proxy if interface.proxy else { "mode":"none", "host":"localhost", "port":"8080"}
+        proxy_mode.setCurrentIndex(proxy_mode.findText(str(proxy_config.get("mode").upper())))
+        proxy_host.setText(proxy_config.get("host"))
+        proxy_port.setText(proxy_config.get("port"))
+
         hbox.addWidget(QLabel(_('Proxy') + ':'))
         hbox.addWidget(proxy_mode)
         hbox.addWidget(proxy_host)
@@ -1451,11 +1451,14 @@ class ElectrumWindow(QMainWindow):
         server = unicode( host_line.text() )
 
         try:
-            cfg.set_key("proxy", { u'mode':unicode(proxy_mode.currentText()).lower(), u'host':unicode(proxy_host.text()), u'port':unicode(proxy_port.text()) }, True)
-            if cfg.config["proxy"]["mode"] != "none":
-                wallet.set_server(server, cfg.config["proxy"])
+            if proxy_mode.currentText() != 'NONE':
+                proxy = { u'mode':unicode(proxy_mode.currentText()).lower(), u'host':unicode(proxy_host.text()), u'port':unicode(proxy_port.text()) }
             else:
-                wallet.set_server(server)
+                proxy = None
+
+            cfg = SimpleConfig()
+            cfg.set_key("proxy", proxy, True)
+            wallet.set_server(server, proxy)
                 
         except Exception as err:
             QMessageBox.information(None, _('Error'), str(err), _('OK'))
index a58ff9f..810bf8c 100644 (file)
@@ -5,8 +5,13 @@ from util import user_dir
 class SimpleConfig:
 
 
-    default_options = {"gui": "lite", "proxy": { "mode": "none", "host":"localhost", "port":"8080" },
-    "winpos-qt": [100, 100, 840, 400], "winpos-lite": [4, 25, 351, 149], "history": False }
+    default_options = {
+        "gui": "lite",
+        "proxy": None,
+        "winpos-qt": [100, 100, 840, 400],
+        "winpos-lite": [4, 25, 351, 149],
+        "history": False
+        }
     
     def __init__(self):
         # Find electrum data folder