bugfix: don't call GUI in non-GUI thread
This commit is contained in:
@@ -1134,32 +1134,30 @@ class ElectrumWindow(QMainWindow):
|
|||||||
def broadcast_transaction(self, tx):
|
def broadcast_transaction(self, tx):
|
||||||
|
|
||||||
def broadcast_thread():
|
def broadcast_thread():
|
||||||
|
# non-GUI thread
|
||||||
pr = self.payment_request
|
pr = self.payment_request
|
||||||
if pr is None:
|
if pr is None:
|
||||||
return self.wallet.sendtx(tx)
|
return self.wallet.sendtx(tx)
|
||||||
|
|
||||||
if pr.has_expired():
|
if pr.has_expired():
|
||||||
self.payment_request = None
|
self.payment_request = None
|
||||||
return False, _("Payment request has expired")
|
return False, _("Payment request has expired")
|
||||||
|
|
||||||
status, msg = self.wallet.sendtx(tx)
|
status, msg = self.wallet.sendtx(tx)
|
||||||
if not status:
|
if not status:
|
||||||
return False, msg
|
return False, msg
|
||||||
|
|
||||||
self.invoices[pr.get_id()] = (pr.get_domain(), pr.get_memo(), pr.get_amount(), pr.get_expiration_date(), PR_PAID, tx.hash())
|
self.invoices[pr.get_id()] = (pr.get_domain(), pr.get_memo(), pr.get_amount(), pr.get_expiration_date(), PR_PAID, tx.hash())
|
||||||
self.wallet.storage.put('invoices', self.invoices)
|
self.wallet.storage.put('invoices', self.invoices)
|
||||||
self.update_invoices_tab()
|
|
||||||
self.payment_request = None
|
self.payment_request = None
|
||||||
refund_address = self.wallet.addresses()[0]
|
refund_address = self.wallet.addresses()[0]
|
||||||
ack_status, ack_msg = pr.send_ack(str(tx), refund_address)
|
ack_status, ack_msg = pr.send_ack(str(tx), refund_address)
|
||||||
if ack_status:
|
if ack_status:
|
||||||
msg = ack_msg
|
msg = ack_msg
|
||||||
|
|
||||||
return status, msg
|
return status, msg
|
||||||
|
|
||||||
def broadcast_done(status, msg):
|
def broadcast_done(status, msg):
|
||||||
|
# GUI thread
|
||||||
if status:
|
if status:
|
||||||
QMessageBox.information(self, '', _('Payment sent.') + '\n' + msg, _('OK'))
|
QMessageBox.information(self, '', _('Payment sent.') + '\n' + msg, _('OK'))
|
||||||
|
self.update_invoices_tab()
|
||||||
self.do_clear()
|
self.do_clear()
|
||||||
else:
|
else:
|
||||||
QMessageBox.warning(self, _('Error'), msg, _('OK'))
|
QMessageBox.warning(self, _('Error'), msg, _('OK'))
|
||||||
|
|||||||
Reference in New Issue
Block a user