qt: use QStandardItemModel
This commit is contained in:
@@ -29,36 +29,40 @@ from electrum.util import format_time
|
||||
from .util import *
|
||||
|
||||
|
||||
class InvoiceList(MyTreeWidget):
|
||||
class InvoiceList(MyTreeView):
|
||||
filter_columns = [0, 1, 2, 3] # Date, Requestor, Description, Amount
|
||||
|
||||
def __init__(self, parent):
|
||||
MyTreeWidget.__init__(self, parent, self.create_menu, [_('Expires'), _('Requestor'), _('Description'), _('Amount'), _('Status')], 2)
|
||||
super().__init__(parent, self.create_menu, 2)
|
||||
self.setSortingEnabled(True)
|
||||
self.header().setSectionResizeMode(1, QHeaderView.Interactive)
|
||||
self.setColumnWidth(1, 200)
|
||||
self.setModel(QStandardItemModel(self))
|
||||
self.update()
|
||||
|
||||
def on_update(self):
|
||||
def update(self):
|
||||
inv_list = self.parent.invoices.unpaid_invoices()
|
||||
self.clear()
|
||||
self.model().clear()
|
||||
self.update_headers([_('Expires'), _('Requestor'), _('Description'), _('Amount'), _('Status')])
|
||||
self.header().setSectionResizeMode(1, QHeaderView.Interactive)
|
||||
for pr in inv_list:
|
||||
key = pr.get_id()
|
||||
status = self.parent.invoices.get_status(key)
|
||||
requestor = pr.get_requestor()
|
||||
exp = pr.get_expiration_date()
|
||||
date_str = format_time(exp) if exp else _('Never')
|
||||
item = QTreeWidgetItem([date_str, requestor, pr.memo, self.parent.format_amount(pr.get_amount(), whitespaces=True), pr_tooltips.get(status,'')])
|
||||
item.setIcon(4, self.icon_cache.get(pr_icons.get(status)))
|
||||
item.setData(0, Qt.UserRole, key)
|
||||
item.setFont(1, QFont(MONOSPACE_FONT))
|
||||
item.setFont(3, QFont(MONOSPACE_FONT))
|
||||
labels = [date_str, requestor, pr.memo, self.parent.format_amount(pr.get_amount(), whitespaces=True), pr_tooltips.get(status,'')]
|
||||
item = [QStandardItem(e) for e in labels]
|
||||
item[4].setIcon(self.icon_cache.get(pr_icons.get(status)))
|
||||
item[0].setData(Qt.UserRole, key)
|
||||
item[1].setFont(QFont(MONOSPACE_FONT))
|
||||
item[3].setFont(QFont(MONOSPACE_FONT))
|
||||
self.addTopLevelItem(item)
|
||||
self.setCurrentItem(self.topLevelItem(0))
|
||||
self.selectionModel().select(self.model().index(0,0), QItemSelectionModel.SelectCurrent)
|
||||
self.setVisible(len(inv_list))
|
||||
self.parent.invoices_label.setVisible(len(inv_list))
|
||||
|
||||
def import_invoices(self):
|
||||
import_meta_gui(self.parent, _('invoices'), self.parent.invoices.import_file, self.on_update)
|
||||
import_meta_gui(self.parent, _('invoices'), self.parent.invoices.import_file, self.update)
|
||||
|
||||
def export_invoices(self):
|
||||
export_meta_gui(self.parent, _('invoices'), self.parent.invoices.export_file)
|
||||
|
||||
Reference in New Issue
Block a user