From 4f22670377dd4ade173b36229ab01fb01b363bf3 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Fri, 25 Feb 2011 16:56:24 +0000 Subject: [PATCH] Fix dropping a book onto an internal part of a hierarchical tag. Fix dropping a book onto a user category --- src/calibre/gui2/tag_view.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/calibre/gui2/tag_view.py b/src/calibre/gui2/tag_view.py index 4b90b99835..2693ba8ed6 100644 --- a/src/calibre/gui2/tag_view.py +++ b/src/calibre/gui2/tag_view.py @@ -85,7 +85,7 @@ class TagsView(QTreeView): # {{{ author_sort_edit = pyqtSignal(object, object) tag_item_renamed = pyqtSignal() search_item_renamed = pyqtSignal() - drag_drop_finished = pyqtSignal(object, object) + drag_drop_finished = pyqtSignal(object) def __init__(self, parent=None): QTreeView.__init__(self, parent=None) @@ -921,7 +921,7 @@ class TagsModel(QAbstractItemModel): # {{{ def handle_user_category_drop(self, on_node, ids, column): categories = self.db.prefs.get('user_categories', {}) - category = categories.get(on_node.category_key[:-1], None) + category = categories.get(on_node.category_key[1:], None) if category is None: return fm_src = self.db.metadata_for_field(column) @@ -955,9 +955,9 @@ class TagsModel(QAbstractItemModel): # {{{ break else: category.append([val, column, vmap[val]]) - categories[on_node.category_key[:-1]] = category + categories[on_node.category_key[1:]] = category self.db.prefs.set('user_categories', categories) - self.drag_drop_finished.emit(None, True) + self.tags_view.recount() def handle_drop(self, on_node, ids): #print 'Dropped ids:', ids, on_node.tag @@ -975,7 +975,7 @@ class TagsModel(QAbstractItemModel): # {{{ fm = self.db.metadata_for_field(key) is_multiple = fm['is_multiple'] - val = on_node.tag.name + val = original_name(on_node.tag) for id in ids: mi = self.db.get_metadata(id, index_is_id=True) @@ -1007,7 +1007,7 @@ class TagsModel(QAbstractItemModel): # {{{ self.db.set_metadata(id, mi, set_title=False, set_authors=set_authors, commit=False) self.db.commit() - self.drag_drop_finished.emit(ids, False) + self.drag_drop_finished.emit(ids) def set_search_restriction(self, s): self.search_restriction = s @@ -1912,11 +1912,8 @@ class TagBrowserMixin(object): # {{{ self.library_view.model().refresh() self.tags_view.recount() - def drag_drop_finished(self, ids, is_category): - if is_category: - self.tags_view.recount() - else: - self.library_view.model().refresh_ids(ids) + def drag_drop_finished(self, ids): + self.library_view.model().refresh_ids(ids) # }}}