diff --git a/electrum/gui/qml/components/InvoiceDialog.qml b/electrum/gui/qml/components/InvoiceDialog.qml index 988b1e7ac..5996692cd 100644 --- a/electrum/gui/qml/components/InvoiceDialog.qml +++ b/electrum/gui/qml/components/InvoiceDialog.qml @@ -1,4 +1,4 @@ -import QtQuick 2.6 +import QtQuick 2.12 import QtQuick.Layouts 1.0 import QtQuick.Controls 2.14 import QtQuick.Controls.Material 2.0 @@ -299,6 +299,7 @@ ElDialog { visible: invoice_key == '' enabled: invoice.canSave onClicked: { + app.stack.push(Qt.resolvedUrl('Invoices.qml')) invoice.save_invoice() dialog.close() } diff --git a/electrum/gui/qml/components/Invoices.qml b/electrum/gui/qml/components/Invoices.qml index cf2f2b023..fd8777a80 100644 --- a/electrum/gui/qml/components/Invoices.qml +++ b/electrum/gui/qml/components/Invoices.qml @@ -46,6 +46,14 @@ Pane { } } + add: Transition { + NumberAnimation { properties: 'scale'; from: 0.75; to: 1; duration: 500 } + NumberAnimation { properties: 'opacity'; from: 0; to: 1; duration: 500 } + } + addDisplaced: Transition { + SpringAnimation { properties: 'y'; duration: 200; spring: 5; damping: 0.5; mass: 2 } + } + remove: Transition { NumberAnimation { properties: 'scale'; to: 0.75; duration: 300 } NumberAnimation { properties: 'opacity'; to: 0; duration: 300 } diff --git a/electrum/gui/qml/components/WalletMainView.qml b/electrum/gui/qml/components/WalletMainView.qml index 9f2f59ff3..a3c0c7785 100644 --- a/electrum/gui/qml/components/WalletMainView.qml +++ b/electrum/gui/qml/components/WalletMainView.qml @@ -193,7 +193,7 @@ Item { } onInvoiceSaved: { - Daemon.currentWallet.invoiceModel.init_model() + Daemon.currentWallet.invoiceModel.addInvoice(key) } } diff --git a/electrum/gui/qml/qeinvoice.py b/electrum/gui/qml/qeinvoice.py index 71c1f4e6b..1b0c1afe7 100644 --- a/electrum/gui/qml/qeinvoice.py +++ b/electrum/gui/qml/qeinvoice.py @@ -123,7 +123,7 @@ class QEInvoiceParser(QEInvoice): _userinfo = '' invoiceChanged = pyqtSignal() - invoiceSaved = pyqtSignal() + invoiceSaved = pyqtSignal([str], arguments=['key']) validationSuccess = pyqtSignal() validationWarning = pyqtSignal([str,str], arguments=['code', 'message']) @@ -493,7 +493,7 @@ class QEInvoiceParser(QEInvoice): # TODO detect duplicate? self.key = self._effectiveInvoice.get_id() self._wallet.wallet.save_invoice(self._effectiveInvoice) - self.invoiceSaved.emit() + self.invoiceSaved.emit(self.key) class QEUserEnteredPayment(QEInvoice): diff --git a/electrum/gui/qml/qeinvoicelistmodel.py b/electrum/gui/qml/qeinvoicelistmodel.py index 6afaa502b..a56d24479 100644 --- a/electrum/gui/qml/qeinvoicelistmodel.py +++ b/electrum/gui/qml/qeinvoicelistmodel.py @@ -68,6 +68,10 @@ class QEAbstractInvoiceListModel(QAbstractListModel): self.invoices.insert(0, item) self.endInsertRows() + @pyqtSlot(str) + def addInvoice(self, key): + self.add_invoice(self.get_invoice_for_key(key)) + def delete_invoice(self, key: str): i = 0 for invoice in self.invoices: