electrum

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

commit 2da9a02fb382684fb130399f6e634d2e19d66692
parent 55770a93bff3ea914133d7591080a75060a44418
Author: ThomasV <thomasv@gitorious>
Date:   Tue, 24 Jun 2014 19:09:41 +0200

catch exception within sign thread, to re-enable send button

Diffstat:
Mgui/qt/main_window.py | 13++++++++-----
Mgui/qt/util.py | 5++++-
2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py @@ -1021,13 +1021,15 @@ class ElectrumWindow(QMainWindow): # sign the tx def sign_thread(): - time.sleep(0.1) keypairs = {} - self.wallet.add_keypairs(tx, keypairs, password) - self.wallet.sign_transaction(tx, keypairs, password) - return tx, fee, label + try: + self.wallet.add_keypairs(tx, keypairs, password) + self.wallet.sign_transaction(tx, keypairs, password) + except Exception as e: + tx.error = str(e) + return tx - def sign_done(tx, fee, label): + def sign_done(tx): if tx.error: self.show_message(tx.error) self.send_button.setDisabled(False) @@ -1047,6 +1049,7 @@ class ElectrumWindow(QMainWindow): self.broadcast_transaction(tx) + # keep a reference to WaitingDialog or the gui might crash self.waiting_dialog = WaitingDialog(self, 'Signing..', sign_thread, sign_done) self.waiting_dialog.start() diff --git a/gui/qt/util.py b/gui/qt/util.py @@ -37,7 +37,10 @@ class WaitingDialog(QThread): return if self.on_complete: - self.on_complete(*self.result) + if type(self.result) is tuple: + self.on_complete(*self.result) + else: + self.on_complete(self.result)