From c0803510940f762fd13418f4a0ee2a902401966e Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sat, 12 Feb 2011 08:18:23 +0000 Subject: [PATCH 1/2] Fix deleting tags in tags_list_editor --- src/calibre/gui2/dialogs/tag_list_editor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/dialogs/tag_list_editor.py b/src/calibre/gui2/dialogs/tag_list_editor.py index 9694a9a459..6c3ebb22d5 100644 --- a/src/calibre/gui2/dialogs/tag_list_editor.py +++ b/src/calibre/gui2/dialogs/tag_list_editor.py @@ -99,8 +99,8 @@ class TagListEditor(QDialog, Ui_TagListEditor): return self.available_tags.editItem(item) - def delete_tags(self, item=None): - deletes = self.available_tags.selectedItems() if item is None else [item] + def delete_tags(self): + deletes = self.available_tags.selectedItems() if not deletes: error_dialog(self, _('No items selected'), _('You must select at least one items from the list.')).exec_() From 2ad44078eaaa581f47e6dbdde6ef98d217ac9305 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sat, 12 Feb 2011 13:02:44 +0000 Subject: [PATCH 2/2] Fix #8925: Allow different libraries top display different items in the Tag Browser --- src/calibre/gui2/__init__.py | 8 ++++++-- src/calibre/gui2/tag_view.py | 11 +++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index b33166dd33..efe09e8866 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -137,14 +137,18 @@ def _config(): help=_('Automatically download the cover, if available')) c.add_opt('enforce_cpu_limit', default=True, help=_('Limit max simultaneous jobs to number of CPUs')) - c.add_opt('tag_browser_hidden_categories', default=set(), - help=_('tag browser categories not to display')) c.add_opt('gui_layout', choices=['wide', 'narrow'], help=_('The layout of the user interface'), default='wide') c.add_opt('show_avg_rating', default=True, help=_('Show the average rating per item indication in the tag browser')) c.add_opt('disable_animations', default=False, help=_('Disable UI animations')) + + # This option is no longer used. It remains for compatibility with upgrades + # so the value can be migrated + c.add_opt('tag_browser_hidden_categories', default=set(), + help=_('tag browser categories not to display')) + c.add_opt return ConfigProxy(c) diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index 79199c6881..3bc5d724ba 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -116,7 +116,14 @@ class TagsView(QTreeView): # {{{ self.set_new_model(self._model.get_filter_categories_by()) def set_database(self, db, tag_match, sort_by): - self.hidden_categories = config['tag_browser_hidden_categories'] + self.hidden_categories = db.prefs.get('tag_browser_hidden_categories', None) + # migrate from config to db prefs + if self.hidden_categories is None: + self.hidden_categories = config['tag_browser_hidden_categories'] + db.prefs.set('tag_browser_hidden_categories', list(self.hidden_categories)) + else: + self.hidden_categories = set(self.hidden_categories) + old = getattr(self, '_model', None) if old is not None: old.break_cycles() @@ -234,7 +241,7 @@ class TagsView(QTreeView): # {{{ gprefs['tags_browser_partition_method'] = category elif action == 'defaults': self.hidden_categories.clear() - config.set('tag_browser_hidden_categories', self.hidden_categories) + self.db.prefs.set('tag_browser_hidden_categories', list(self.hidden_categories)) self.set_new_model() except: return