electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit cb4947d7056ee228e210c0facec88136cc228663
parent 7b5f3884fadcf1938bec8f60049b1f4101cb8b14
Author: Neil Booth <kyuupichan@gmail.com>
Date:   Sat, 26 Dec 2015 18:00:38 +0900

Add the keepkey cancellation feature

to the generic implementation.  Not currently used by the trezor
libraries.

Diffstat:
Mplugins/keepkey/keepkey.py | 3++-
Mplugins/trezor/qt_generic.py | 15+++++++++------
2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/plugins/keepkey/keepkey.py b/plugins/keepkey/keepkey.py @@ -268,7 +268,8 @@ class KeepKeyGuiMixin(object): message = "Confirm address on KeepKey device to continue" else: message = "Check KeepKey device to continue" - self.handler.show_message(msg.code, message, self) + cancel_callback=self.cancel if msg.code in [3, 8] else None + self.handler.show_message(message, cancel_callback) return proto.ButtonAck() def callback_PinMatrixRequest(self, msg): diff --git a/plugins/trezor/qt_generic.py b/plugins/trezor/qt_generic.py @@ -31,8 +31,8 @@ class QtHandler: def stop(self): self.win.emit(SIGNAL('message_done')) - def show_message(self, msg): - self.win.emit(SIGNAL('message_dialog'), msg) + def show_message(self, msg, cancel_callback=None): + self.win.emit(SIGNAL('message_dialog'), msg, cancel_callback) def get_pin(self, msg): self.done.clear() @@ -75,15 +75,18 @@ class QtHandler: self.passphrase = passphrase self.done.set() - def message_dialog(self, msg): + def message_dialog(self, msg, cancel_callback): # Called more than once during signing, to confirm output and fee self.dialog_stop() msg = _('Please check your %s Device') % self.device - self.dialog = WindowModalDialog(self.win, msg) + dialog = self.dialog = WindowModalDialog(self.win, msg) l = QLabel(msg) - vbox = QVBoxLayout(self.dialog) + vbox = QVBoxLayout(dialog) + if cancel_callback: + vbox.addLayout(Buttons(CancelButton(dialog))) + dialog.connect(dialog, SIGNAL('rejected()'), cancel_callback) vbox.addWidget(l) - self.dialog.show() + dialog.show() def dialog_stop(self): if self.dialog: