tkivy network dialog: update server and proxy properly - electrum - Electrum Bitcoin wallet
HTML git clone https://git.parazyd.org/electrum
DIR Log
DIR Files
DIR Refs
DIR Submodules
---
DIR commit b491a30dd9f550ab2f335ae88889c910125d4559
DIR parent 1d303fa9d223299b1dabbaa9f289316d01ea1c65
HTML Author: SomberNight <somber.night@protonmail.com>
Date: Fri, 21 Dec 2018 16:59:43 +0100
kivy network dialog: update server and proxy properly
Previously "proxy" would only get updated when closing and reopening
tthe network dialog. "server" would only get updated after successful
connection establishment to specified server.
Diffstat:
M electrum/gui/kivy/main_window.py | 13 +++++++++++++
M electrum/gui/kivy/uix/ui_screens/n… | 5 +----
M electrum/gui/kivy/uix/ui_screens/p… | 1 -
M electrum/gui/kivy/uix/ui_screens/s… | 4 ++--
4 files changed, 16 insertions(+), 7 deletions(-)
---
DIR diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py
t@@ -109,6 +109,13 @@ class ElectrumWindow(App):
def toggle_oneserver(self, x):
self.oneserver = not self.oneserver
+ proxy_str = StringProperty('')
+ def update_proxy_str(self, proxy: dict):
+ mode = proxy.get('mode')
+ host = proxy.get('host')
+ port = proxy.get('port')
+ self.proxy_str = (host + ':' + port) if mode else _('None')
+
def choose_server_dialog(self, popup):
from .uix.dialogs.choice_dialog import ChoiceDialog
protocol = 's'
t@@ -288,6 +295,7 @@ class ElectrumWindow(App):
self.auto_connect = net_params.auto_connect
self.oneserver = net_params.oneserver
self.proxy_config = net_params.proxy if net_params.proxy else {}
+ self.update_proxy_str(self.proxy_config)
self.plugins = kwargs.get('plugins', [])
self.gui_object = kwargs.get('gui_object', None)
t@@ -667,6 +675,7 @@ class ElectrumWindow(App):
self.tabs = self.root.ids['tabs']
def update_interfaces(self, dt):
+ net_params = self.network.get_parameters()
self.num_nodes = len(self.network.get_interfaces())
self.num_chains = len(self.network.get_blockchains())
chain = self.network.blockchain()
t@@ -675,6 +684,10 @@ class ElectrumWindow(App):
interface = self.network.interface
if interface:
self.server_host = interface.host
+ else:
+ self.server_host = str(net_params.host) + ' (connecting...)'
+ self.proxy_config = net_params.proxy or {}
+ self.update_proxy_str(self.proxy_config)
def on_network_event(self, event, *args):
Logger.info('network event: '+ event)
DIR diff --git a/electrum/gui/kivy/uix/ui_screens/network.kv b/electrum/gui/kivy/uix/ui_screens/network.kv
t@@ -24,10 +24,7 @@ Popup:
CardSeparator
SettingsItem:
- proxy: app.proxy_config.get('mode')
- host: app.proxy_config.get('host')
- port: app.proxy_config.get('port')
- title: _("Proxy") + ': ' + ((self.host +':' + self.port) if self.proxy else _('None'))
+ title: _("Proxy") + ': ' + app.proxy_str
description: _('Proxy configuration')
action: lambda x: app.popup_dialog('proxy')
DIR diff --git a/electrum/gui/kivy/uix/ui_screens/proxy.kv b/electrum/gui/kivy/uix/ui_screens/proxy.kv
t@@ -73,5 +73,4 @@ Popup:
if proxy['mode']=='none': proxy = None
net_params = net_params._replace(proxy=proxy)
app.network.run_from_another_thread(app.network.set_parameters(net_params))
- app.proxy_config = proxy if proxy else {}
nd.dismiss()
DIR diff --git a/electrum/gui/kivy/uix/ui_screens/server.kv b/electrum/gui/kivy/uix/ui_screens/server.kv
t@@ -23,7 +23,7 @@ Popup:
height: '36dp'
size_hint_x: 3
size_hint_y: None
- text: app.server_host
+ text: app.network.get_parameters().host
Label:
height: '36dp'
size_hint_x: 1
t@@ -36,7 +36,7 @@ Popup:
height: '36dp'
size_hint_x: 3
size_hint_y: None
- text: app.server_port
+ text: app.network.get_parameters().port
Widget
Button:
id: chooser