1
0

qt: do not mutate already saved invoice after editing amount.

Also show empty an string for invoices that do not have an amount,
similar to the requests list.
This commit is contained in:
ThomasV
2023-04-04 10:36:43 +02:00
parent 479f952c9d
commit 8e3a3cefcf
2 changed files with 5 additions and 2 deletions

View File

@@ -119,11 +119,12 @@ class InvoiceList(MyTreeView):
icon_name = 'seal.png'
status = self.wallet.get_invoice_status(item)
amount = item.get_amount_sat()
amount_str = self.main_window.format_amount(amount, whitespaces=True) if amount else ""
timestamp = item.time or 0
labels = [""] * len(self.Columns)
labels[self.Columns.DATE] = format_time(timestamp) if timestamp else _('Unknown')
labels[self.Columns.DESCRIPTION] = item.message
labels[self.Columns.AMOUNT] = self.main_window.format_amount(amount, whitespaces=True)
labels[self.Columns.AMOUNT] = amount_str
labels[self.Columns.STATUS] = item.get_status_str(status)
items = [QStandardItem(e) for e in labels]
self.set_editability(items)
@@ -182,7 +183,7 @@ class InvoiceList(MyTreeView):
if bool(invoice.get_amount_sat()):
menu.addAction(_("Pay") + "...", lambda: self.send_tab.do_pay_invoice(invoice))
else:
menu.addAction(_("Edit amount") + "...", lambda: self.send_tab.do_edit_invoice(invoice))
menu.addAction(_("Pay") + "...", lambda: self.send_tab.do_edit_invoice(invoice))
if status == PR_FAILED:
menu.addAction(_("Retry"), lambda: self.send_tab.do_pay_invoice(invoice))
if self.wallet.lnworker:

View File

@@ -585,6 +585,8 @@ class SendTab(QWidget, MessageBoxMixin, Logger):
text = invoice.lightning_invoice if invoice.is_lightning() else invoice.get_address()
self.payto_e._on_input_btn(text)
self.amount_e.setFocus()
# disable save button, because it would create a new invoice
self.save_button.setEnabled(False)
def do_pay_invoice(self, invoice: 'Invoice'):
if not bool(invoice.get_amount_sat()):