From e02197a09e5ff0a007a8d4d08e0a1db875050258 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Mon, 3 Apr 2017 12:47:38 +0200 Subject: [PATCH] Fix bug #1675535 --- src/calibre/gui2/tag_browser/model.py | 3 +++ src/calibre/gui2/tag_browser/ui.py | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/calibre/gui2/tag_browser/model.py b/src/calibre/gui2/tag_browser/model.py index 08e3e5ce6c..6b692b1178 100644 --- a/src/calibre/gui2/tag_browser/model.py +++ b/src/calibre/gui2/tag_browser/model.py @@ -286,6 +286,7 @@ class TagsModel(QAbstractItemModel): # {{{ restriction_error = pyqtSignal() drag_drop_finished = pyqtSignal(object) user_categories_edited = pyqtSignal(object, object) + user_category_added = pyqtSignal() def __init__(self, parent, prefs=gprefs): QAbstractItemModel.__init__(self, parent) @@ -827,6 +828,7 @@ class TagsModel(QAbstractItemModel): # {{{ self.db.new_api.set_pref('user_categories', user_cats) self.refresh_required.emit() + self.user_category_added.emit() return True @@ -896,6 +898,7 @@ class TagsModel(QAbstractItemModel): # {{{ categories[on_node.category_key[1:]] = [[v, c, 0] for v,c in cat_contents] self.db.new_api.set_pref('user_categories', categories) self.refresh_required.emit() + self.user_category_added.emit() def handle_drop(self, on_node, ids): # print 'Dropped ids:', ids, on_node.tag diff --git a/src/calibre/gui2/tag_browser/ui.py b/src/calibre/gui2/tag_browser/ui.py index 642491acf5..0401a27fba 100644 --- a/src/calibre/gui2/tag_browser/ui.py +++ b/src/calibre/gui2/tag_browser/ui.py @@ -87,6 +87,13 @@ class TagBrowserMixin(object): # {{{ type=Qt.QueuedConnection) self.tags_view.tag_item_delete.connect(self.do_tag_item_delete) self.populate_tb_manage_menu(db) + self.tags_view.model().user_categories_edited.connect(self.user_categories_edited, + type=Qt.QueuedConnection) + self.tags_view.model().user_category_added.connect(self.user_categories_edited, + type=Qt.QueuedConnection) + + def user_categories_edited(self): + self.library_view.model().refresh() def do_restriction_error(self): error_dialog(self.tags_view, _('Invalid search restriction'), @@ -139,6 +146,7 @@ class TagBrowserMixin(object): # {{{ db.new_api.set_pref('user_categories', d.categories) db.new_api.refresh_search_locations() self.tags_view.recount() + self.user_categories_edited() def do_delete_user_category(self, category_name): ''' @@ -172,6 +180,7 @@ class TagBrowserMixin(object): # {{{ del user_cats[k] db.new_api.set_pref('user_categories', user_cats) self.tags_view.recount() + self.user_categories_edited() def do_del_item_from_user_cat(self, user_cat, item_name, item_category): ''' @@ -190,6 +199,7 @@ class TagBrowserMixin(object): # {{{ self.tags_view.model().delete_item_from_user_category(user_cat, item_name, item_category) self.tags_view.recount() + self.user_categories_edited() def do_add_item_to_user_cat(self, dest_category, src_name, src_category): ''' @@ -217,6 +227,7 @@ class TagBrowserMixin(object): # {{{ user_cats[dest_category].append([src_name, src_category, 0]) db.new_api.set_pref('user_categories', user_cats) self.tags_view.recount() + self.user_categories_edited() def do_tags_list_edit(self, tag, category): '''