merge send and invoices tab

This commit is contained in:
ThomasV 2015-04-22 08:59:14 +02:00
parent 1615daddaa
commit a32503d8fb
1 changed files with 21 additions and 17 deletions

View File

@ -132,7 +132,6 @@ class ElectrumWindow(QMainWindow):
tabs.addTab(self.create_receive_tab(), _('Receive') ) tabs.addTab(self.create_receive_tab(), _('Receive') )
tabs.addTab(self.create_addresses_tab(), _('Addresses') ) tabs.addTab(self.create_addresses_tab(), _('Addresses') )
tabs.addTab(self.create_contacts_tab(), _('Contacts') ) tabs.addTab(self.create_contacts_tab(), _('Contacts') )
tabs.addTab(self.create_invoices_tab(), _('Invoices') )
tabs.addTab(self.create_console_tab(), _('Console') ) tabs.addTab(self.create_console_tab(), _('Console') )
tabs.setMinimumSize(600, 400) tabs.setMinimumSize(600, 400)
tabs.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) tabs.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
@ -551,7 +550,7 @@ class ElectrumWindow(QMainWindow):
self.update_address_tab() self.update_address_tab()
self.update_contacts_tab() self.update_contacts_tab()
self.update_completions() self.update_completions()
self.update_invoices_tab() self.update_invoices_list()
def create_history_tab(self): def create_history_tab(self):
from history_widget import HistoryWidget from history_widget import HistoryWidget
@ -855,9 +854,7 @@ class ElectrumWindow(QMainWindow):
def create_send_tab(self): def create_send_tab(self):
w = QWidget() self.send_grid = grid = QGridLayout()
self.send_grid = grid = QGridLayout(w)
grid.setSpacing(8) grid.setSpacing(8)
grid.setColumnMinimumWidth(3,300) grid.setColumnMinimumWidth(3,300)
grid.setColumnStretch(5,1) grid.setColumnStretch(5,1)
@ -913,7 +910,6 @@ class ElectrumWindow(QMainWindow):
grid.addWidget(b, 6, 2) grid.addWidget(b, 6, 2)
self.payto_sig = QLabel('') self.payto_sig = QLabel('')
grid.addWidget(self.payto_sig, 7, 0, 1, 4) grid.addWidget(self.payto_sig, 7, 0, 1, 4)
w.setLayout(grid)
def on_shortcut(): def on_shortcut():
sendable = self.get_sendable_balance() sendable = self.get_sendable_balance()
@ -951,6 +947,17 @@ class ElectrumWindow(QMainWindow):
self.amount_e.textChanged.connect(entry_changed) self.amount_e.textChanged.connect(entry_changed)
self.fee_e.textChanged.connect(entry_changed) self.fee_e.textChanged.connect(entry_changed)
self.invoices_label = QLabel(_('Invoices'))
self.invoices_list = MyTreeWidget(self, self.create_invoice_menu, [_('Date'), _('Requestor'), _('Memo'), _('Amount'), _('Status')], [150, 150, None, 150, 100])
w = QWidget()
vbox = QVBoxLayout(w)
vbox.addLayout(grid)
vbox.addStretch()
vbox.addWidget(self.invoices_label)
vbox.addWidget(self.invoices_list)
run_hook('create_send_tab', grid) run_hook('create_send_tab', grid)
return w return w
@ -1150,7 +1157,7 @@ class ElectrumWindow(QMainWindow):
# GUI thread # GUI thread
if status: if status:
QMessageBox.information(self, '', _('Payment sent.') + '\n' + msg, _('OK')) QMessageBox.information(self, '', _('Payment sent.') + '\n' + msg, _('OK'))
self.update_invoices_tab() self.update_invoices_list()
self.do_clear() self.do_clear()
else: else:
QMessageBox.warning(self, _('Error'), msg, _('OK')) QMessageBox.warning(self, _('Error'), msg, _('OK'))
@ -1175,7 +1182,7 @@ class ElectrumWindow(QMainWindow):
pr = self.payment_request pr = self.payment_request
status = pr.get_status() status = pr.get_status()
key = self.invoices.add(pr) key = self.invoices.add(pr)
self.update_invoices_tab() self.update_invoices_list()
if status == PR_PAID: if status == PR_PAID:
self.do_clear() self.do_clear()
self.show_message("invoice already paid") self.show_message("invoice already paid")
@ -1291,15 +1298,11 @@ class ElectrumWindow(QMainWindow):
self.contacts_list = l self.contacts_list = l
return self.create_list_tab(l) return self.create_list_tab(l)
def create_invoices_tab(self): def update_invoices_list(self):
l = MyTreeWidget(self, self.create_invoice_menu, [_('Date'), _('Requestor'), _('Memo'), _('Amount'), _('Status')], [150, 150, None, 150, 100]) inv_list = self.invoices.sorted_list()
self.invoices_list = l
return self.create_list_tab(l)
def update_invoices_tab(self):
l = self.invoices_list l = self.invoices_list
l.clear() l.clear()
for pr in self.invoices.sorted_list(): for pr in inv_list:
key = pr.get_id() key = pr.get_id()
status = pr.get_status() status = pr.get_status()
domain = pr.get_domain() domain = pr.get_domain()
@ -1311,6 +1314,8 @@ class ElectrumWindow(QMainWindow):
item.setFont(3, QFont(MONOSPACE_FONT)) item.setFont(3, QFont(MONOSPACE_FONT))
l.addTopLevelItem(item) l.addTopLevelItem(item)
l.setCurrentItem(l.topLevelItem(0)) l.setCurrentItem(l.topLevelItem(0))
self.invoices_list.setVisible(len(inv_list))
self.invoices_label.setVisible(len(inv_list))
def delete_imported_key(self, addr): def delete_imported_key(self, addr):
if self.question(_("Do you want to remove")+" %s "%addr +_("from your wallet?")): if self.question(_("Do you want to remove")+" %s "%addr +_("from your wallet?")):
@ -1508,7 +1513,7 @@ class ElectrumWindow(QMainWindow):
menu.addAction(_("Pay Now"), lambda: self.do_pay_invoice(key)) menu.addAction(_("Pay Now"), lambda: self.do_pay_invoice(key))
def delete_invoice(key): def delete_invoice(key):
self.invoices.remove(key) self.invoices.remove(key)
self.update_invoices_tab() self.update_invoices_list()
menu.addAction(_("Delete"), lambda: delete_invoice(key)) menu.addAction(_("Delete"), lambda: delete_invoice(key))
menu.exec_(self.invoices_list.viewport().mapToGlobal(position)) menu.exec_(self.invoices_list.viewport().mapToGlobal(position))
@ -2542,7 +2547,6 @@ class ElectrumWindow(QMainWindow):
self.update_history_tab() self.update_history_tab()
self.update_receive_tab() self.update_receive_tab()
self.update_address_tab() self.update_address_tab()
self.update_invoices_tab()
fee_e.setAmount(self.wallet.fee_per_kb) fee_e.setAmount(self.wallet.fee_per_kb)
self.update_status() self.update_status()
unit_combo.currentIndexChanged.connect(on_unit) unit_combo.currentIndexChanged.connect(on_unit)