Browse Source

qml: fix tx not saved when PIN active

master
Sander van Grieken 3 years ago
parent
commit
3b7a09a307
  1. 4
      electrum/gui/qml/components/WalletMainView.qml
  2. 9
      electrum/gui/qml/qetxfinalizer.py

4
electrum/gui/qml/components/WalletMainView.qml

@ -260,6 +260,7 @@ Item {
} }
close() close()
} }
onClosed: destroy() onClosed: destroy()
} }
} }
@ -307,12 +308,13 @@ Item {
Component { Component {
id: confirmPaymentDialog id: confirmPaymentDialog
ConfirmTxDialog { ConfirmTxDialog {
id: _confirmPaymentDialog
title: qsTr('Confirm Payment') title: qsTr('Confirm Payment')
finalizer: TxFinalizer { finalizer: TxFinalizer {
wallet: Daemon.currentWallet wallet: Daemon.currentWallet
canRbf: true canRbf: true
onFinished: _confirmPaymentDialog.destroy()
} }
onClosed: destroy()
} }
} }

9
electrum/gui/qml/qetxfinalizer.py

@ -218,6 +218,10 @@ class TxFeeSlider(FeeSlider):
self.outputs = outputs self.outputs = outputs
class QETxFinalizer(TxFeeSlider): class QETxFinalizer(TxFeeSlider):
_logger = get_logger(__name__)
finished = pyqtSignal()
def __init__(self, parent=None, *, make_tx=None, accept=None): def __init__(self, parent=None, *, make_tx=None, accept=None):
super().__init__(parent) super().__init__(parent)
self.f_make_tx = make_tx self.f_make_tx = make_tx
@ -229,8 +233,6 @@ class QETxFinalizer(TxFeeSlider):
self._extraFee = QEAmount() self._extraFee = QEAmount()
self._canRbf = False self._canRbf = False
_logger = get_logger(__name__)
addressChanged = pyqtSignal() addressChanged = pyqtSignal()
@pyqtProperty(str, notify=addressChanged) @pyqtProperty(str, notify=addressChanged)
def address(self): def address(self):
@ -350,6 +352,7 @@ class QETxFinalizer(TxFeeSlider):
return return
self._wallet.sign(self._tx, broadcast=True) self._wallet.sign(self._tx, broadcast=True)
self.finished.emit()
@pyqtSlot() @pyqtSlot()
def signAndSave(self): def signAndSave(self):
@ -380,6 +383,8 @@ class QETxFinalizer(TxFeeSlider):
if not self._wallet.wallet.adb.add_transaction(self._tx): if not self._wallet.wallet.adb.add_transaction(self._tx):
self._logger.error('Could not save tx') self._logger.error('Could not save tx')
self.finished.emit()
@pyqtSlot(result=str) @pyqtSlot(result=str)
@pyqtSlot(bool, result=str) @pyqtSlot(bool, result=str)
def serializedTx(self, for_qr=False): def serializedTx(self, for_qr=False):

Loading…
Cancel
Save