tAdd cancel button to trezor dialogs - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit c160a99ebcadcf95b04a59f5d43f1dc39e25d594 DIR parent 144f53be1845db3fc839fd0c9509602c6a8f4693 HTML Author: Neil Booth <kyuupichan@gmail.com> Date: Sun, 17 Jan 2016 18:16:58 +0900 Add cancel button to trezor dialogs Diffstat: M plugins/trezor/clientbase.py | 12 +++++------- M plugins/trezor/qt_generic.py | 12 ++++++------ 2 files changed, 11 insertions(+), 13 deletions(-) --- DIR diff --git a/plugins/trezor/clientbase.py b/plugins/trezor/clientbase.py t@@ -23,13 +23,7 @@ class GuiMixin(object): def callback_ButtonRequest(self, msg): msg_code = self.msg_code_override or msg.code message = self.messages.get(msg_code, self.messages['default']) - - if msg.code in [3, 8] and hasattr(self, 'cancel'): - cancel_callback = self.cancel - else: - cancel_callback = None - - self.handler.show_message(message % self.device, cancel_callback) + self.handler.show_message(message % self.device, self.cancel) return self.proto.ButtonAck() def callback_PinMatrixRequest(self, msg): t@@ -106,6 +100,10 @@ class TrezorClientBase(GuiMixin, PrintError): path.append(abs(int(x)) | prime) return path + def cancel(self): + '''Provided here as in keepkeylib but not trezorlib.''' + self.transport.write(self.proto.Cancel()) + def first_address(self, derivation): return self.address_from_derivation(derivation) DIR diff --git a/plugins/trezor/qt_generic.py b/plugins/trezor/qt_generic.py t@@ -43,8 +43,8 @@ class QtHandler(PrintError): def watching_only_changed(self): self.win.emit(SIGNAL('watching_only_changed')) - def show_message(self, msg, cancel_callback=None): - self.win.emit(SIGNAL('message_dialog'), msg, cancel_callback) + def show_message(self, msg, on_cancel=None): + self.win.emit(SIGNAL('message_dialog'), msg, on_cancel) def show_error(self, msg): self.win.emit(SIGNAL('error_dialog'), msg) t@@ -106,17 +106,17 @@ class QtHandler(PrintError): self.word = unicode(text.text()) self.done.set() - def message_dialog(self, msg, cancel_callback): + def message_dialog(self, msg, on_cancel): # Called more than once during signing, to confirm output and fee self.clear_dialog() title = _('Please check your %s device') % self.device self.dialog = dialog = WindowModalDialog(self.top_level_window(), title) l = QLabel(msg) vbox = QVBoxLayout(dialog) - if cancel_callback: - vbox.addLayout(Buttons(CancelButton(dialog))) - dialog.connect(dialog, SIGNAL('rejected()'), cancel_callback) vbox.addWidget(l) + if on_cancel: + dialog.rejected.connect(on_cancel) + vbox.addLayout(Buttons(CancelButton(dialog))) dialog.show() def error_dialog(self, msg):