diff --git a/electrum/gui/qml/components/InvoiceDialog.qml b/electrum/gui/qml/components/InvoiceDialog.qml index 3fdd19db6..9757c5165 100644 --- a/electrum/gui/qml/components/InvoiceDialog.qml +++ b/electrum/gui/qml/components/InvoiceDialog.qml @@ -456,10 +456,14 @@ ElDialog { } else if (invoice.amount.isMax) { amountMax.checked = true } - if (invoice.lnurlData) { + if (invoice.isLnurlPay) { // we arrive from a lnurl-pay confirm dialog where the user already indicated the intent to pay. - if (invoice.canPay) + if (invoice.canPay) { + if (invoice_key == '') { + invoice.save_invoice() + } doPay() + } } } } diff --git a/electrum/gui/qml/qeinvoice.py b/electrum/gui/qml/qeinvoice.py index 894f880b3..c70381048 100644 --- a/electrum/gui/qml/qeinvoice.py +++ b/electrum/gui/qml/qeinvoice.py @@ -203,10 +203,8 @@ class QEInvoiceParser(QEInvoice, QtEventListener): @recipient.setter def recipient(self, recipient: str): - #if self._recipient != recipient: self.canPay = False self._recipient = recipient - self._lnurlData = None self.amountOverride = QEAmount() if recipient: self.validateRecipient(recipient) @@ -216,6 +214,10 @@ class QEInvoiceParser(QEInvoice, QtEventListener): def lnurlData(self): return self._lnurlData + @pyqtProperty(bool, notify=lnurlRetrieved) + def isLnurlPay(self): + return not self._lnurlData is None + @pyqtProperty(str, notify=invoiceChanged) def message(self): return self._effectiveInvoice.message if self._effectiveInvoice else ''