tdetect if electrum is offline during wallet creation - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 8b4410d86a9868a12a35c81e7be01659628e63c5 DIR parent 21121297032f55c273bd8cda779c778afcd73917 HTML Author: ecdsa <ecdsa@github> Date: Fri, 13 Dec 2013 07:30:35 +0100 detect if electrum is offline during wallet creation Diffstat: M gui/qt/installwizard.py | 10 +++++++--- M gui/qt/main_window.py | 2 +- M lib/network.py | 15 +++++++++------ 3 files changed, 17 insertions(+), 10 deletions(-) --- DIR diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py t@@ -268,7 +268,7 @@ class InstallWizard(QDialog): return if not self.verify_seed(wallet): return - ok, _, password = self.password_dialog(wallet) + ok, old_password, password = self.password_dialog(wallet) def create(): wallet.save_seed(password) wallet.synchronize() # generate first addresses offline t@@ -287,7 +287,7 @@ class InstallWizard(QDialog): QMessageBox.warning(None, _('Error'), _('Incorrect seed'), _('OK')) return - ok, _, password = self.password_dialog(wallet) + ok, old_password, password = self.password_dialog(wallet) wallet.save_seed(password) t@@ -302,7 +302,11 @@ class InstallWizard(QDialog): #if not self.config.get('server'): if self.network: - self.network_dialog() + if self.network.interfaces: + self.network_dialog() + else: + QMessageBox.information(None, _('Warning'), _('You are offline'), _('OK')) + self.network.stop() # start wallet threads wallet.start_threads(self.network) DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py t@@ -533,7 +533,7 @@ class ElectrumWindow(QMainWindow): def update_status(self): - if self.network is None: + if self.network is None or not self.network.is_running(): text = _("Offline") icon = QIcon(":icons/status_disconnected.png") DIR diff --git a/lib/network.py b/lib/network.py t@@ -151,8 +151,9 @@ class Network(threading.Thread): if server in self.interfaces.keys(): return i = interface.Interface(server, self.config) - self.interfaces[server] = i + # add it only if it gets connected i.start(self.queue) + return i def start_random_interface(self): server = self.random_server() t@@ -160,8 +161,8 @@ class Network(threading.Thread): self.start_interface(server) def start_interfaces(self): - self.start_interface(self.default_server) - self.interface = self.interfaces[self.default_server] + self.interface = self.start_interface(self.default_server) + #self.interface = self.interfaces[self.default_server] for i in range(self.num_server): self.start_random_interface() t@@ -252,8 +253,7 @@ class Network(threading.Thread): if server in self.interfaces.keys(): self.switch_to_interface( self.interfaces[server] ) else: - self.start_interface(server) - self.interface = self.interfaces[server] + self.interface = self.start_interface(server) def add_recent_server(self, i): t@@ -296,6 +296,8 @@ class Network(threading.Thread): continue if i.is_connected: + #if i.server in self.interfaces: raise + self.interfaces[i.server] = i self.add_recent_server(i) i.send([ ('blockchain.headers.subscribe',[])], self.on_header) if i == self.interface: t@@ -304,7 +306,8 @@ class Network(threading.Thread): self.trigger_callback('connected') else: self.disconnected_servers.append(i.server) - self.interfaces.pop(i.server) + if i.server in self.interfaces: + self.interfaces.pop(i.server) if i.server in self.heights: self.heights.pop(i.server) if i == self.interface: