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