diff --git a/cardvault/application.py b/cardvault/application.py index e258a39..5ee28b1 100644 --- a/cardvault/application.py +++ b/cardvault/application.py @@ -296,6 +296,13 @@ class Application: self.precon_icons[icon_name] = icon return icon + def filter_lib_func(self, model, iter, data): + filter_text = self.ui.get_object("searchLibEntry").get_text() + if filter_text == "": + return True + else: + return filter_text.lower() in model[iter][1].lower() + def main(): win = Application() diff --git a/cardvault/gui/library.glade b/cardvault/gui/library.glade index 6456e5e..82c715c 100644 --- a/cardvault/gui/library.glade +++ b/cardvault/gui/library.glade @@ -35,7 +35,6 @@ tagStore 0 - True @@ -203,6 +202,7 @@ True False False + 2 True @@ -211,6 +211,7 @@ False False Search Library + False @@ -219,11 +220,19 @@ - + True - True - tagCompleter - + False + True + + + True + True + False + Tag selected cards + tagCompleter + + False diff --git a/cardvault/handlers.py b/cardvault/handlers.py index 7391411..30249d6 100644 --- a/cardvault/handlers.py +++ b/cardvault/handlers.py @@ -177,6 +177,10 @@ class Handlers: self.app.remove_tag(tag) self.app.current_page.emit('show') + def do_refilter_library(self, container): + # Access Card View inside of container + container.get_child().filter.refilter() + # Handlers for TreeViews etc. wich have been not added by Glade # ----------------Search----------------- diff --git a/cardvault/lib_funct.py b/cardvault/lib_funct.py index 9fc3d4d..85ea87a 100644 --- a/cardvault/lib_funct.py +++ b/cardvault/lib_funct.py @@ -10,6 +10,7 @@ def init_library_view(app): card_list = cardlist.CardList(True, app) card_list.set_name("libScroller") card_list.list.connect("row-activated", app.handlers.on_library_card_selected) + card_list.filter.set_visible_func(app.filter_lib_func) container.add(card_list) container.add_overlay(app.ui.get_object("noResults")) container.show_all() @@ -24,6 +25,9 @@ def reload_library(app, tag=None): else: lib = app.get_tagged_cards(tag) reload_tag_list(app, tag) + tag_combo = app.ui.get_object("tagCardCombo") + tag_combo.set_model(app.ui.get_object("tagStore")) + card_tree = app.ui.get_object("libraryContainer").get_child() if lib: app.ui.get_object("noResults").set_visible(False) @@ -40,7 +44,7 @@ def add_new_tag(name, app): def reload_tag_list(app, preserve=False): tree = app.ui.get_object("tagTree") - (path, column) = tree.get_cursor() + (path, column) = tree.get_cursor() store = tree.get_model() store.clear() for tag, ids in app.tags.items(): @@ -58,3 +62,4 @@ def tag_cards(card_list, tag, app): for card in card_list.values(): if not app.tags[tag].__contains__(card.multiverse_id): app.tag_card(card, tag) +