commit f494cf0c84d37698f75bd78556d816097131ed06
parent f5518a85663da3b882be409c19a7899eb0bdc437
Author: ThomasV <thomasv@electrum.org>
Date: Fri, 17 Feb 2017 15:20:08 +0100
Merge pull request #2170 from bauerj/tor-detect
Use a checkbox instead of a button
Diffstat:
1 file changed, 23 insertions(+), 7 deletions(-)
diff --git a/gui/qt/network_dialog.py b/gui/qt/network_dialog.py
@@ -169,15 +169,20 @@ class NetworkChoiceLayout(object):
check_for_disable()
self.proxy_mode.connect(self.proxy_mode, SIGNAL('currentIndexChanged(int)'), check_for_disable)
+
self.proxy_mode.setCurrentIndex(self.proxy_mode.findText(str(proxy_config.get("mode").upper())))
self.proxy_host.setText(proxy_config.get("host"))
self.proxy_port.setText(proxy_config.get("port"))
+ self.proxy_mode.connect(self.proxy_mode, SIGNAL('currentIndexChanged(int)'), self.proxy_settings_changed)
+ self.proxy_host.connect(self.proxy_host, SIGNAL('textEdited(QString)'), self.proxy_settings_changed)
+ self.proxy_port.connect(self.proxy_port, SIGNAL('textEdited(QString)'), self.proxy_settings_changed)
+
grid.addWidget(QLabel(_('Proxy') + ':'), 4, 0)
grid.addWidget(self.proxy_mode, 4, 1)
grid.addWidget(self.proxy_host, 4, 2)
grid.addWidget(self.proxy_port, 4, 3)
- self.tor_button = QPushButton("Use Tor Proxy")
+ self.tor_button = QCheckBox("Use Tor Proxy")
self.tor_button.setIcon(QIcon(":icons/tor_logo.png"))
self.tor_button.hide()
self.tor_button.clicked.connect(self.use_tor_proxy)
@@ -264,14 +269,25 @@ class NetworkChoiceLayout(object):
def suggest_proxy(self, found_proxy):
self.tor_proxy = found_proxy
self.tor_button.setText("Use Tor proxy at port " + str(found_proxy[1]))
+ if self.proxy_mode.currentIndex() == 2 \
+ and self.proxy_host.text() == "127.0.0.1" \
+ and self.proxy_port.text() == str(found_proxy[1]):
+ self.tor_button.setChecked(True)
self.tor_button.show()
- def use_tor_proxy(self):
+ def use_tor_proxy(self, use_it):
# 2 = SOCKS5
- self.proxy_mode.setCurrentIndex(2)
- self.proxy_host.setText("127.0.0.1")
- self.proxy_port.setText(str(self.tor_proxy[1]))
- self.tor_button.hide()
+ if not use_it:
+ self.proxy_mode.setCurrentIndex(0)
+ self.tor_button.setChecked(False)
+ else:
+ self.proxy_mode.setCurrentIndex(2)
+ self.proxy_host.setText("127.0.0.1")
+ self.proxy_port.setText(str(self.tor_proxy[1]))
+ self.tor_button.setChecked(True)
+
+ def proxy_settings_changed(self):
+ self.tor_button.setChecked(False)
class TorDetector(QThread):
@@ -291,7 +307,7 @@ class TorDetector(QThread):
@staticmethod
def is_tor_port(port):
try:
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ s = socket._socketobject(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(0.1)
s.connect(("127.0.0.1", port))
# Tor responds uniquely to HTTP-like requests