URI: 
       tMerge pull request #2170 from bauerj/tor-detect - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit f494cf0c84d37698f75bd78556d816097131ed06
   DIR parent f5518a85663da3b882be409c19a7899eb0bdc437
  HTML 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:
         M gui/qt/network_dialog.py            |      30 +++++++++++++++++++++++-------
       
       1 file changed, 23 insertions(+), 7 deletions(-)
       ---
   DIR diff --git a/gui/qt/network_dialog.py b/gui/qt/network_dialog.py
       t@@ -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)
       t@@ -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):
       t@@ -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