diff --git a/electrum/gui/qml/components/WalletMainView.qml b/electrum/gui/qml/components/WalletMainView.qml index 21f941c7c..f998969cb 100644 --- a/electrum/gui/qml/components/WalletMainView.qml +++ b/electrum/gui/qml/components/WalletMainView.qml @@ -260,6 +260,7 @@ Item { } close() } + onClosed: destroy() } } @@ -307,12 +308,13 @@ Item { Component { id: confirmPaymentDialog ConfirmTxDialog { + id: _confirmPaymentDialog title: qsTr('Confirm Payment') finalizer: TxFinalizer { wallet: Daemon.currentWallet canRbf: true + onFinished: _confirmPaymentDialog.destroy() } - onClosed: destroy() } } diff --git a/electrum/gui/qml/qetxfinalizer.py b/electrum/gui/qml/qetxfinalizer.py index ac38b7640..d8aafc2d7 100644 --- a/electrum/gui/qml/qetxfinalizer.py +++ b/electrum/gui/qml/qetxfinalizer.py @@ -218,6 +218,10 @@ class TxFeeSlider(FeeSlider): self.outputs = outputs class QETxFinalizer(TxFeeSlider): + _logger = get_logger(__name__) + + finished = pyqtSignal() + def __init__(self, parent=None, *, make_tx=None, accept=None): super().__init__(parent) self.f_make_tx = make_tx @@ -229,8 +233,6 @@ class QETxFinalizer(TxFeeSlider): self._extraFee = QEAmount() self._canRbf = False - _logger = get_logger(__name__) - addressChanged = pyqtSignal() @pyqtProperty(str, notify=addressChanged) def address(self): @@ -350,6 +352,7 @@ class QETxFinalizer(TxFeeSlider): return self._wallet.sign(self._tx, broadcast=True) + self.finished.emit() @pyqtSlot() def signAndSave(self): @@ -380,6 +383,8 @@ class QETxFinalizer(TxFeeSlider): if not self._wallet.wallet.adb.add_transaction(self._tx): self._logger.error('Could not save tx') + self.finished.emit() + @pyqtSlot(result=str) @pyqtSlot(bool, result=str) def serializedTx(self, for_qr=False):