mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-09-03 12:30:07 +00:00
qt MyTreeView subclasses: change "headers" from list to dict
This commit is contained in:
parent
5aafcb2875
commit
c23b869d3c
6 changed files with 47 additions and 16 deletions
|
@ -81,12 +81,14 @@ class AddressList(MyTreeView):
|
|||
ccy = fx.get_currency()
|
||||
else:
|
||||
ccy = _('Fiat')
|
||||
headers = [_('Type'),
|
||||
_('Address'),
|
||||
_('Label'),
|
||||
_('Balance'),
|
||||
ccy + ' ' + _('Balance'),
|
||||
_('Tx')]
|
||||
headers = {
|
||||
self.Columns.TYPE: _('Type'),
|
||||
self.Columns.ADDRESS: _('Address'),
|
||||
self.Columns.LABEL: _('Label'),
|
||||
self.Columns.COIN_BALANCE: _('Balance'),
|
||||
self.Columns.FIAT_BALANCE: ccy + ' ' + _('Balance'),
|
||||
self.Columns.NUM_TXS: _('Tx'),
|
||||
}
|
||||
self.update_headers(headers)
|
||||
|
||||
def toggle_change(self, state):
|
||||
|
|
|
@ -44,6 +44,10 @@ class ContactList(MyTreeView):
|
|||
NAME = 0
|
||||
ADDRESS = 1
|
||||
|
||||
headers = {
|
||||
Columns.NAME: _('Name'),
|
||||
Columns.ADDRESS: _('Address'),
|
||||
}
|
||||
filter_columns = [Columns.NAME, Columns.ADDRESS]
|
||||
|
||||
def __init__(self, parent):
|
||||
|
@ -101,7 +105,7 @@ class ContactList(MyTreeView):
|
|||
def update(self):
|
||||
current_key = self.current_item_user_role(col=self.Columns.NAME)
|
||||
self.model().clear()
|
||||
self.update_headers([_('Name'), _('Address')])
|
||||
self.update_headers(self.__class__.headers)
|
||||
set_current = None
|
||||
for key in sorted(self.parent.contacts.keys()):
|
||||
contact_type, name = self.parent.contacts[key]
|
||||
|
|
|
@ -40,6 +40,13 @@ class InvoiceList(MyTreeView):
|
|||
AMOUNT = 3
|
||||
STATUS = 4
|
||||
|
||||
headers = {
|
||||
Columns.DATE: _('Expires'),
|
||||
Columns.REQUESTOR: _('Requestor'),
|
||||
Columns.DESCRIPTION: _('Description'),
|
||||
Columns.AMOUNT: _('Amount'),
|
||||
Columns.STATUS: _('Status'),
|
||||
}
|
||||
filter_columns = [Columns.DATE, Columns.REQUESTOR, Columns.DESCRIPTION, Columns.AMOUNT]
|
||||
|
||||
def __init__(self, parent):
|
||||
|
@ -54,7 +61,7 @@ class InvoiceList(MyTreeView):
|
|||
def update(self):
|
||||
inv_list = self.parent.invoices.unpaid_invoices()
|
||||
self.model().clear()
|
||||
self.update_headers([_('Expires'), _('Requestor'), _('Description'), _('Amount'), _('Status')])
|
||||
self.update_headers(self.__class__.headers)
|
||||
self.header().setSectionResizeMode(self.Columns.REQUESTOR, QHeaderView.Interactive)
|
||||
for idx, pr in enumerate(inv_list):
|
||||
key = pr.get_id()
|
||||
|
|
|
@ -48,6 +48,14 @@ class RequestList(MyTreeView):
|
|||
AMOUNT = 4
|
||||
STATUS = 5
|
||||
|
||||
headers = {
|
||||
Columns.DATE: _('Date'),
|
||||
Columns.ADDRESS: _('Address'),
|
||||
Columns.SIGNATURE: '',
|
||||
Columns.DESCRIPTION: _('Description'),
|
||||
Columns.AMOUNT: _('Amount'),
|
||||
Columns.STATUS: _('Status'),
|
||||
}
|
||||
filter_columns = [Columns.DATE, Columns.ADDRESS, Columns.SIGNATURE, Columns.DESCRIPTION, Columns.AMOUNT]
|
||||
|
||||
def __init__(self, parent):
|
||||
|
@ -102,7 +110,7 @@ class RequestList(MyTreeView):
|
|||
self.parent.new_request_button.setEnabled(addr != current_address)
|
||||
|
||||
self.model().clear()
|
||||
self.update_headers([_('Date'), _('Address'), '', _('Description'), _('Amount'), _('Status')])
|
||||
self.update_headers(self.__class__.headers)
|
||||
self.hideColumn(self.Columns.ADDRESS)
|
||||
for req in self.wallet.get_sorted_requests(self.config):
|
||||
address = req['address']
|
||||
|
|
|
@ -7,7 +7,7 @@ import queue
|
|||
import traceback
|
||||
|
||||
from functools import partial, lru_cache
|
||||
from typing import NamedTuple, Callable, Optional, TYPE_CHECKING
|
||||
from typing import NamedTuple, Callable, Optional, TYPE_CHECKING, Union, List, Dict
|
||||
|
||||
from PyQt5.QtGui import *
|
||||
from PyQt5.QtCore import *
|
||||
|
@ -466,13 +466,17 @@ class MyTreeView(QTreeView):
|
|||
assert set_current.isValid()
|
||||
self.selectionModel().select(QModelIndex(set_current), QItemSelectionModel.SelectCurrent)
|
||||
|
||||
def update_headers(self, headers):
|
||||
def update_headers(self, headers: Union[List[str], Dict[int, str]]):
|
||||
# headers is either a list of column names, or a dict: (col_idx->col_name)
|
||||
if not isinstance(headers, dict): # convert to dict
|
||||
headers = dict(enumerate(headers))
|
||||
col_names = [headers[col_idx] for col_idx in sorted(headers.keys())]
|
||||
model = self.model()
|
||||
model.setHorizontalHeaderLabels(headers)
|
||||
model.setHorizontalHeaderLabels(col_names)
|
||||
self.header().setStretchLastSection(False)
|
||||
for col in range(len(headers)):
|
||||
sm = QHeaderView.Stretch if col == self.stretch_column else QHeaderView.ResizeToContents
|
||||
self.header().setSectionResizeMode(col, sm)
|
||||
for col_idx in headers:
|
||||
sm = QHeaderView.Stretch if col_idx == self.stretch_column else QHeaderView.ResizeToContents
|
||||
self.header().setSectionResizeMode(col_idx, sm)
|
||||
|
||||
def keyPressEvent(self, event):
|
||||
if self.itemDelegate().opened:
|
||||
|
|
|
@ -39,7 +39,13 @@ class UTXOList(MyTreeView):
|
|||
HEIGHT = 3
|
||||
OUTPOINT = 4
|
||||
|
||||
headers = [ _('Address'), _('Label'), _('Amount'), _('Height'), _('Output point')]
|
||||
headers = {
|
||||
Columns.ADDRESS: _('Address'),
|
||||
Columns.LABEL: _('Label'),
|
||||
Columns.AMOUNT: _('Amount'),
|
||||
Columns.HEIGHT: _('Height'),
|
||||
Columns.OUTPOINT: _('Output point'),
|
||||
}
|
||||
filter_columns = [Columns.ADDRESS, Columns.LABEL]
|
||||
|
||||
def __init__(self, parent=None):
|
||||
|
|
Loading…
Add table
Reference in a new issue