commit b2be745b8d47d69ff812bd4e093de0ff60ecd369
parent 737a7f0bfbfd2b674f3af2ecfcc1a411f0cadb2e
Author: ThomasV <thomasv@electrum.org>
Date: Mon, 20 Mar 2017 11:13:45 +0100
add save/delete buttons to invoice dialog
Diffstat:
1 file changed, 24 insertions(+), 7 deletions(-)
diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
@@ -1616,6 +1616,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
self.show_pr_details(pr)
def show_pr_details(self, pr):
+ key = pr.get_id()
d = WindowModalDialog(self, _("Invoice"))
vbox = QVBoxLayout(d)
grid = QGridLayout()
@@ -1624,14 +1625,30 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
grid.addWidget(QLabel(_("Amount") + ':'), 1, 0)
outputs_str = '\n'.join(map(lambda x: self.format_amount(x[2])+ self.base_unit() + ' @ ' + x[1], pr.get_outputs()))
grid.addWidget(QLabel(outputs_str), 1, 1)
- grid.addWidget(QLabel(_("Expires") + ':'), 2, 0)
- grid.addWidget(QLabel(format_time(pr.get_expiration_date())), 2, 1)
- grid.addWidget(QLabel(_("Memo") + ':'), 3, 0)
- grid.addWidget(QLabel(pr.get_memo()), 3, 1)
- grid.addWidget(QLabel(_("Signature") + ':'), 4, 0)
- grid.addWidget(QLabel(pr.get_verify_status()), 4, 1)
+ expires = pr.get_expiration_date()
+ grid.addWidget(QLabel(_("Memo") + ':'), 2, 0)
+ grid.addWidget(QLabel(pr.get_memo()), 2, 1)
+ grid.addWidget(QLabel(_("Signature") + ':'), 3, 0)
+ grid.addWidget(QLabel(pr.get_verify_status()), 3, 1)
+ if expires:
+ grid.addWidget(QLabel(_("Expires") + ':'), 4, 0)
+ grid.addWidget(QLabel(format_time(expires)), 4, 1)
vbox.addLayout(grid)
- vbox.addLayout(Buttons(CloseButton(d)))
+ def do_export():
+ fn = self.getOpenFileName(_("Save invoice to file"), "*.bip70")
+ if not fn:
+ return
+ with open(fn, 'w') as f:
+ data = f.write(pr.raw)
+ self.show_message(_('Invoice saved as' + ' ' + fn))
+ exportButton = EnterButton(_('Save'), do_export)
+ def do_delete():
+ if self.question(_('Delete invoice?')):
+ self.invoices.remove(key)
+ self.history_list.update()
+ d.close()
+ deleteButton = EnterButton(_('Delete'), do_delete)
+ vbox.addLayout(Buttons(exportButton, deleteButton, CloseButton(d)))
d.exec_()
def do_pay_invoice(self, key):