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.
This commit is contained in:
parent
c33175c312
commit
d41dfa394b
|
@ -1165,10 +1165,12 @@ class ElectrumWindow(QMainWindow):
|
||||||
|
|
||||||
|
|
||||||
@protected
|
@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
|
'''Sign the transaction in a separate thread. When done, calls
|
||||||
the callback with a success code of True or False.
|
the callback with a success code of True or False.
|
||||||
'''
|
'''
|
||||||
|
if parent == None:
|
||||||
|
parent = self
|
||||||
self.send_button.setDisabled(True)
|
self.send_button.setDisabled(True)
|
||||||
|
|
||||||
# call hook to see if plugin needs gui interaction
|
# call hook to see if plugin needs gui interaction
|
||||||
|
@ -1186,11 +1188,11 @@ class ElectrumWindow(QMainWindow):
|
||||||
callback(success[0])
|
callback(success[0])
|
||||||
|
|
||||||
# keep a reference to WaitingDialog or the gui might crash
|
# 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()
|
self.waiting_dialog.start()
|
||||||
|
|
||||||
|
|
||||||
def broadcast_transaction(self, tx, tx_desc):
|
def broadcast_transaction(self, tx, tx_desc, parent=None):
|
||||||
|
|
||||||
def broadcast_thread():
|
def broadcast_thread():
|
||||||
# non-GUI thread
|
# non-GUI thread
|
||||||
|
@ -1217,14 +1219,16 @@ class ElectrumWindow(QMainWindow):
|
||||||
if status:
|
if status:
|
||||||
if tx_desc is not None and tx.is_complete():
|
if tx_desc is not None and tx.is_complete():
|
||||||
self.wallet.set_label(tx.hash(), tx_desc)
|
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.update_invoices_list()
|
||||||
self.do_clear()
|
self.do_clear()
|
||||||
else:
|
else:
|
||||||
QMessageBox.warning(self, _('Error'), msg, _('OK'))
|
QMessageBox.warning(parent, _('Error'), msg, _('OK'))
|
||||||
self.send_button.setDisabled(False)
|
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()
|
self.waiting_dialog.start()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ class TxDialog(QWidget):
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def do_broadcast(self):
|
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.broadcast = True
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
|
@ -142,10 +142,15 @@ class TxDialog(QWidget):
|
||||||
|
|
||||||
def sign(self):
|
def sign(self):
|
||||||
def sign_done(success):
|
def sign_done(success):
|
||||||
|
self.sign_button.setDisabled(False)
|
||||||
self.prompt_if_unsaved = True
|
self.prompt_if_unsaved = True
|
||||||
self.saved = False
|
self.saved = False
|
||||||
self.update()
|
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):
|
def save(self):
|
||||||
name = 'signed_%s.txn' % (self.tx.hash()[0:8]) if self.tx.is_complete() else 'unsigned.txn'
|
name = 'signed_%s.txn' % (self.tx.hash()[0:8]) if self.tx.is_complete() else 'unsigned.txn'
|
||||||
|
|
Loading…
Reference in New Issue