tSmall fix for trezor devices - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit eb865779eb8181df0bfab9545c2150dfa9c5d22a DIR parent f6200bd73ed579eba154dfb90fc3820a7d7b5323 HTML Author: Neil Booth <kyuupichan@gmail.com> Date: Sat, 23 Jan 2016 12:11:07 +0900 Small fix for trezor devices Client operations are asynchronous; do any unpairing after tthe operation. Diffstat: M plugins/trezor/qt_generic.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) --- DIR diff --git a/plugins/trezor/qt_generic.py b/plugins/trezor/qt_generic.py t@@ -320,12 +320,16 @@ class SettingsDialog(WindowModalDialog): self.current_label=None def invoke_client(method, *args, **kw_args): + unpair_after = kw_args.pop('unpair_after', False) + def task(): client = devmgr.client_by_id(device_id, handler) if not client: raise RuntimeError("Device not connected") if method: getattr(client, method)(*args, **kw_args) + if unpair_after: + devmgr.unpair_id(device_id) return client.features thread.add(task, on_success=update) t@@ -378,8 +382,7 @@ class SettingsDialog(WindowModalDialog): "Are you sure you want to proceed?") % plugin.device if not self.question(msg, title=title): return - invoke_client('toggle_passphrase') - devmgr.unpair_id(device_id) + invoke_client('toggle_passphrase', unpair_after=True) def change_homescreen(): from PIL import Image # FIXME t@@ -416,8 +419,7 @@ class SettingsDialog(WindowModalDialog): if not self.question(msg, title=title, icon=QMessageBox.Critical): return - invoke_client('wipe_device') - devmgr.unpair_id(device_id) + invoke_client('wipe_device', unpair_after=True) def slider_moved(): mins = timeout_slider.sliderPosition()