Library: refresh button, improve search

This commit is contained in:
luxick
2017-03-23 12:21:05 +01:00
parent 9a1322ad65
commit e6f2281f3f
3 changed files with 15 additions and 7 deletions

View File

@@ -4,7 +4,7 @@ from gi.repository import Gtk, GdkPixbuf, Pango
class CardList(Gtk.ScrolledWindow):
def __init__(self):
def __init__(self, with_filter):
Gtk.ScrolledWindow.__init__(self)
self.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
self.set_hexpand(True)
@@ -23,8 +23,11 @@ class CardList(Gtk.ScrolledWindow):
# 9 CMC
# 10 Edition
self.store = Gtk.ListStore(int, str, str, str, str, str, str, str, GdkPixbuf.Pixbuf, int, str)
if with_filter:
self.filter = self.store.filter_new()
self.list = Gtk.TreeView(self.filter)
else:
self.list = Gtk.TreeView(self.store)
self.add(self.list)
self.list.set_rules_hint(True)

View File

@@ -21,7 +21,7 @@ class LibraryView(Gtk.Grid):
# endregion
self.lib_list = cardlist.CardList()
self.lib_list = cardlist.CardList(True)
self.lib_list.selection.connect("changed", self.on_card_selected)
self.lib_list.filter.set_visible_func(self.lib_filter_func)
@@ -49,6 +49,7 @@ class LibraryView(Gtk.Grid):
self.refresh_button = Gtk.Button("Refresh")
self.refresh_button.set_image(Gtk.Image.new_from_icon_name(Gtk.STOCK_REFRESH, 0))
self.refresh_button.connect("clicked", self.refresh_library)
topbox.pack_start(search_label, False, False, 2)
topbox.pack_start(self.search_entry, False, False, 2)
@@ -79,11 +80,16 @@ class LibraryView(Gtk.Grid):
self.fill_lib_list()
def refresh_library(self, button):
self.fill_lib_list()
self.search_entry.set_text("")
self.search_entry.activate()
def lib_filter_func(self, model, iter, data):
if self.search_entry.get_text() is None or self.search_entry.get_text() == "":
return True
else:
return self.lib_list.store[iter][1] == self.search_entry.get_text()
return self.search_entry.get_text().lower() in self.lib_list.store[iter][1].lower()
def search_activated(self, entry):
self.lib_list.filter.refilter()

View File

@@ -145,7 +145,7 @@ class SearchView(Gtk.Grid):
self._do_init_filter_controls()
# Card List
self.search_results = cardlist.CardList()
self.search_results = cardlist.CardList(False)
self.search_results.selection.connect("changed", self.on_card_selected)
# Detail View for selected Card
@@ -283,7 +283,6 @@ class SearchView(Gtk.Grid):
GObject.idle_add(self.searchEntry.grab_focus, priority=GObject.PRIORITY_DEFAULT)
return
col_title.set_expand(True)
# Remove duplicate entries
if config.show_from_all_sets is False:
unique_cards = []