Merge pull request #2167 from bauerj/filter-2165

Keep filter after updating the list
This commit is contained in:
ThomasV 2017-02-16 18:40:22 +01:00 committed by GitHub
commit 7d99098709
7 changed files with 17 additions and 6 deletions

View File

@ -34,6 +34,7 @@ from electrum.bitcoin import is_address
class AddressList(MyTreeWidget):
filter_columns = [0, 1, 2] # Address, Label, Balance
def __init__(self, parent=None):
MyTreeWidget.__init__(self, parent, self.create_menu, [ _('Address'), _('Label'), _('Balance'), _('Tx')], 1)

View File

@ -35,6 +35,7 @@ from util import MyTreeWidget, pr_tooltips, pr_icons
class ContactList(MyTreeWidget):
filter_columns = [0, 1] # Key, Value
def __init__(self, parent):
MyTreeWidget.__init__(self, parent, self.create_menu, [_('Name'), _('Address')], 0, [0])

View File

@ -49,6 +49,7 @@ TX_ICONS = [
class HistoryList(MyTreeWidget):
filter_columns = [2, 3, 4] # Date, Description, Amount
def __init__(self, parent=None):
MyTreeWidget.__init__(self, parent, self.create_menu, [], 3)

View File

@ -31,6 +31,7 @@ from electrum.plugins import run_hook
class InvoiceList(MyTreeWidget):
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)

View File

@ -1711,15 +1711,15 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
def do_search(self, t):
i = self.tabs.currentIndex()
if i == 0:
self.history_list.filter(t, [2, 3, 4]) # Date, Description, Amount
self.history_list.filter(t)
elif i == 1:
self.invoice_list.filter(t, [0, 1, 2, 3]) # Date, Requestor, Description, Amount
self.invoice_list.filter(t)
elif i == 2:
self.request_list.filter(t, [0, 1, 2, 3, 4]) # Date, Account, Address, Description, Amount
self.request_list.filter(t)
elif i == 3:
self.address_list.filter(t, [0,1, 2]) # Address, Label, Balance
self.address_list.filter(t)
elif i == 4:
self.contact_list.filter(t, [0, 1]) # Key, Value
self.contact_list.filter(t)
def new_contact_dialog(self):

View File

@ -34,6 +34,8 @@ from util import MyTreeWidget, pr_tooltips, pr_icons
class RequestList(MyTreeWidget):
filter_columns = [0, 1, 2, 3, 4] # Date, Account, Address, Description, Amount
def __init__(self, parent):
MyTreeWidget.__init__(self, parent, self.create_menu, [_('Date'), _('Address'), '', _('Description'), _('Amount'), _('Status')], 3)

View File

@ -391,6 +391,7 @@ class MyTreeWidget(QTreeWidget):
self.setItemDelegate(ElectrumItemDelegate(self))
self.itemDoubleClicked.connect(self.on_doubleclick)
self.update_headers(headers)
self.current_filter = ""
def update_headers(self, headers):
self.setColumnCount(len(headers))
@ -477,6 +478,8 @@ class MyTreeWidget(QTreeWidget):
self.setUpdatesEnabled(False)
self.on_update()
self.setUpdatesEnabled(True)
if self.current_filter:
self.filter(self.current_filter)
def on_update(self):
pass
@ -490,8 +493,10 @@ class MyTreeWidget(QTreeWidget):
for x in self.get_leaves(item):
yield x
def filter(self, p, columns):
def filter(self, p):
columns = self.__class__.filter_columns
p = unicode(p).lower()
self.current_filter = p
for item in self.get_leaves(self.invisibleRootItem()):
item.setHidden(all([unicode(item.text(column)).lower().find(p) == -1
for column in columns]))