ttrezor: check if device is connected before asking passphrase - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit ca6194e5634addf3c4b90454cb42f3ad1f7f6a4b DIR parent ad4449dc380d94f4fc79cdb7e25fc53c9f4663e2 HTML Author: ThomasV <thomasv@gitorious> Date: Sun, 14 Sep 2014 11:48:30 +0200 ttrezor: check if device is connected before asking passphrase Diffstat: M plugins/trezor.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) --- DIR diff --git a/plugins/trezor.py b/plugins/trezor.py t@@ -79,16 +79,31 @@ class Plugin(BasePlugin): def enable(self): return BasePlugin.enable(self) + def trezor_is_connected(self): + try: + self.wallet.get_client().ping('t') + except: + return False + return True + + @hook + def init_qt(self, gui): + self.window = gui.main_window + @hook def close_wallet(self): print_error("trezor: clear session") - self.wallet.client.clear_session() + if self.wallet.client: + self.wallet.client.clear_session() @hook def load_wallet(self, wallet): self.wallet = wallet - if not self.wallet.check_proper_device(): - QMessageBox.information(None, _('Error'), _("This wallet does not match your Trezor device"), _('OK')) + if self.trezor_is_connected(): + if not self.wallet.check_proper_device(): + QMessageBox.information(self.window, _('Error'), _("This wallet does not match your Trezor device"), _('OK')) + else: + QMessageBox.information(self.window, _('Error'), _("Trezor device not detected.\nContinuing in watching-only mode."), _('OK')) @hook def installwizard_restore(self, wizard, storage):