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:
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)