Browse Source

Qt request list: Ctrl+F filter to work for addr, LN invoice, LN rhash

add new hidden columns, mainly for ability to find a request that corresponds to an address
patch-4
SomberNight 2 years ago
parent
commit
c38022b5fc
No known key found for this signature in database GPG Key ID: B33B5F232C6271E9
  1. 28
      electrum/gui/qt/request_list.py

28
electrum/gui/qt/request_list.py

@ -55,14 +55,23 @@ class RequestList(MyTreeView):
DESCRIPTION = 1
AMOUNT = 2
STATUS = 3
ADDRESS = 4
LN_INVOICE = 5
LN_RHASH = 6
headers = {
Columns.DATE: _('Date'),
Columns.DESCRIPTION: _('Description'),
Columns.AMOUNT: _('Amount'),
Columns.STATUS: _('Status'),
Columns.ADDRESS: _('Address'),
Columns.LN_INVOICE: 'LN Request',
Columns.LN_RHASH: 'LN RHASH',
}
filter_columns = [Columns.DATE, Columns.DESCRIPTION, Columns.AMOUNT]
filter_columns = [
Columns.DATE, Columns.DESCRIPTION, Columns.AMOUNT,
Columns.ADDRESS, Columns.LN_INVOICE, Columns.LN_RHASH,
]
def __init__(self, receive_tab: 'ReceiveTab'):
window = receive_tab.window
@ -125,6 +134,7 @@ class RequestList(MyTreeView):
self.proxy.setDynamicSortFilter(False) # temp. disable re-sorting after every change
self.std_model.clear()
self.update_headers(self.__class__.headers)
self.set_visibility_of_columns()
for req in self.wallet.get_unpaid_requests():
key = req.get_id()
status = self.wallet.get_invoice_status(req)
@ -134,7 +144,14 @@ class RequestList(MyTreeView):
message = req.get_message()
date = format_time(timestamp)
amount_str = self.parent.format_amount(amount) if amount else ""
labels = [date, message, amount_str, status_str]
labels = [""] * len(self.Columns)
labels[self.Columns.DATE] = date
labels[self.Columns.DESCRIPTION] = message
labels[self.Columns.AMOUNT] = amount_str
labels[self.Columns.STATUS] = status_str
labels[self.Columns.ADDRESS] = req.get_address()
labels[self.Columns.LN_INVOICE] = req.lightning_invoice or ""
labels[self.Columns.LN_RHASH] = req.rhash if req.is_lightning() else ""
items = [QStandardItem(e) for e in labels]
self.set_editability(items)
#items[self.Columns.DATE].setData(request_type, ROLE_REQUEST_TYPE)
@ -196,3 +213,10 @@ class RequestList(MyTreeView):
self.delete_item(key)
self.wallet.save_db()
self.receive_tab.do_clear()
def set_visibility_of_columns(self):
def set_visible(col: int, b: bool):
self.showColumn(col) if b else self.hideColumn(col)
set_visible(self.Columns.ADDRESS, False)
set_visible(self.Columns.LN_INVOICE, False)
set_visible(self.Columns.LN_RHASH, False)

Loading…
Cancel
Save