Browse Source

Improved dialog centring

Password requests from the tx dialog box are now centred on the
tx dialog.  Similarly for error messages if misentering the password.
Also, "Signing transaction..." and "Broadcasting transaction..." are
centred on the appropriate tx dialog.
Finally restore the old "Sign" button enabling / disabling, as we
can now tell if the user cancelled the password request.
283
Neil Booth 10 years ago
parent
commit
3fbd81f8ab
  1. 16
      gui/qt/main_window.py
  2. 9
      gui/qt/transaction_dialog.py

16
gui/qt/main_window.py

@ -1203,10 +1203,12 @@ class ElectrumWindow(QMainWindow):
@protected
def sign_tx(self, tx, callback, password):
def sign_tx(self, tx, callback, password, parent=None):
'''Sign the transaction in a separate thread. When done, calls
the callback with a success code of True or False.
'''
if parent == None:
parent = self
self.send_button.setDisabled(True)
# call hook to see if plugin needs gui interaction
@ -1224,11 +1226,11 @@ class ElectrumWindow(QMainWindow):
callback(success[0])
# keep a reference to WaitingDialog or the gui might crash
self.waiting_dialog = WaitingDialog(self, 'Signing transaction...', sign_thread, on_sign_successful, on_dialog_close)
self.waiting_dialog = WaitingDialog(parent, 'Signing transaction...', sign_thread, on_sign_successful, on_dialog_close)
self.waiting_dialog.start()
def broadcast_transaction(self, tx, tx_desc):
def broadcast_transaction(self, tx, tx_desc, parent=None):
def broadcast_thread():
# non-GUI thread
@ -1255,14 +1257,16 @@ class ElectrumWindow(QMainWindow):
if status:
if tx_desc is not None and tx.is_complete():
self.wallet.set_label(tx.hash(), tx_desc)
QMessageBox.information(self, '', _('Payment sent.') + '\n' + msg, _('OK'))
QMessageBox.information(parent, '', _('Payment sent.') + '\n' + msg, _('OK'))
self.update_invoices_list()
self.do_clear()
else:
QMessageBox.warning(self, _('Error'), msg, _('OK'))
QMessageBox.warning(parent, _('Error'), msg, _('OK'))
self.send_button.setDisabled(False)
self.waiting_dialog = WaitingDialog(self, 'Broadcasting transaction...', broadcast_thread, broadcast_done)
if parent == None:
parent = self
self.waiting_dialog = WaitingDialog(parent, 'Broadcasting transaction...', broadcast_thread, broadcast_done)
self.waiting_dialog.start()

9
gui/qt/transaction_dialog.py

@ -116,7 +116,7 @@ class TxDialog(QDialog):
self.update()
def do_broadcast(self):
self.parent.broadcast_transaction(self.tx, self.desc)
self.parent.broadcast_transaction(self.tx, self.desc, parent=self)
self.broadcast = True
self.update()
@ -142,10 +142,15 @@ class TxDialog(QDialog):
def sign(self):
def sign_done(success):
self.sign_button.setDisabled(False)
self.prompt_if_unsaved = True
self.saved = False
self.update()
self.parent.sign_tx(self.tx, sign_done)
self.sign_button.setDisabled(True)
cancelled, ret = self.parent.sign_tx(self.tx, sign_done, parent=self)
if cancelled:
self.sign_button.setDisabled(False)
def save(self):
name = 'signed_%s.txn' % (self.tx.hash()[0:8]) if self.tx.is_complete() else 'unsigned.txn'

Loading…
Cancel
Save