From e6f2281f3f134e2ff686d5b3b27e5744fee38197 Mon Sep 17 00:00:00 2001 From: luxick Date: Thu, 23 Mar 2017 12:21:05 +0100 Subject: [PATCH] Library: refresh button, improve search --- mtg-collector/cardlist.py | 9 ++++++--- mtg-collector/library.py | 10 ++++++++-- mtg-collector/search.py | 3 +-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/mtg-collector/cardlist.py b/mtg-collector/cardlist.py index 393a310..2172037 100644 --- a/mtg-collector/cardlist.py +++ b/mtg-collector/cardlist.py @@ -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) - self.filter = self.store.filter_new() - self.list = Gtk.TreeView(self.filter) + 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) diff --git a/mtg-collector/library.py b/mtg-collector/library.py index d1b227c..6eea1e4 100644 --- a/mtg-collector/library.py +++ b/mtg-collector/library.py @@ -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() diff --git a/mtg-collector/search.py b/mtg-collector/search.py index 43bd85e..0dea721 100644 --- a/mtg-collector/search.py +++ b/mtg-collector/search.py @@ -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 = []