From 6c505b1242e1c3d6c9b15fe0e2d2e85aea6d5fe9 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Wed, 4 Apr 2012 11:15:43 +0200 Subject: [PATCH] Make tag browser filtering work when capital letters are entered. --- src/calibre/gui2/tag_browser/model.py | 9 +++++++++ src/calibre/gui2/tag_browser/ui.py | 6 +++--- src/calibre/gui2/tag_browser/view.py | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/tag_browser/model.py b/src/calibre/gui2/tag_browser/model.py index c82fd8be58..891656a9d4 100644 --- a/src/calibre/gui2/tag_browser/model.py +++ b/src/calibre/gui2/tag_browser/model.py @@ -840,6 +840,15 @@ class TagsModel(QAbstractItemModel): # {{{ self.categories[category] = tb_categories[category]['name'] return data + def set_categories_filter(self, txt): + if txt: + self.filter_categories_by = icu_lower(txt) + else: + self.filter_categories_by = None + + def get_categories_filter(self): + return self.filter_categories_by + def refresh(self, data=None): ''' Here to trap usages of refresh in the old architecture. Can eventually diff --git a/src/calibre/gui2/tag_browser/ui.py b/src/calibre/gui2/tag_browser/ui.py index 7919f4e4b0..feb2e0536d 100644 --- a/src/calibre/gui2/tag_browser/ui.py +++ b/src/calibre/gui2/tag_browser/ui.py @@ -443,12 +443,12 @@ class TagBrowserWidget(QWidget): # {{{ txt = unicode(self.item_search.currentText()).strip() if txt.startswith('*'): - model.filter_categories_by = txt[1:] + model.set_categories_filter(txt[1:]) self.tags_view.recount() self.current_find_position = None return - if model.filter_categories_by: - model.filter_categories_by = None + if model.get_categories_filter(): + model.set_categories_filter(None) self.tags_view.recount() self.current_find_position = None diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index f2e1513f18..dbc516493b 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -302,7 +302,7 @@ class TagsView(QTreeView): # {{{ self.hidden_categories.clear() self.db.prefs.set('tag_browser_hidden_categories', list(self.hidden_categories)) if reset_filter_categories: - self._model.filter_categories_by = None + self._model.set_categories_filter(None) self._model.rebuild_node_tree() except: return