From 795dd84415b4603a10dcc72aa876b71152b59ddd Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sun, 8 Jan 2012 09:37:49 +0100 Subject: [PATCH 1/2] Fix committed. Note that the problem existed only with the context menu. Manage saved searches correctly deletes the searches. Also note that it was possible to click on a manufactured hierarchical node which triggered a non-existent search. This also has been fixed. --- src/calibre/gui2/tag_browser/view.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index 4559eedc0d..a9930ac360 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -373,7 +373,7 @@ class TagsView(QTreeView): # {{{ add_node_tree(tree_dict[k], tm, p) p.pop() add_node_tree(nt, m, []) - elif key == 'search': + elif key == 'search' and tag.is_searchable: self.context_menu.addAction(self.rename_icon, _('Rename %s')%display_name(tag), partial(self.context_menu_handler, action='edit_item', @@ -389,17 +389,18 @@ class TagsView(QTreeView): # {{{ partial(self.context_menu_handler, action='delete_item_from_user_category', key = key, index = tag_item)) - # Add the search for value items. All leaf nodes are searchable - self.context_menu.addAction(self.search_icon, - _('Search for %s')%display_name(tag), - partial(self.context_menu_handler, action='search', - search_state=TAG_SEARCH_STATES['mark_plus'], - index=index)) - self.context_menu.addAction(self.search_icon, - _('Search for everything but %s')%display_name(tag), - partial(self.context_menu_handler, action='search', - search_state=TAG_SEARCH_STATES['mark_minus'], - index=index)) + if tag.is_searchable: + # Add the search for value items. All leaf nodes are searchable + self.context_menu.addAction(self.search_icon, + _('Search for %s')%display_name(tag), + partial(self.context_menu_handler, action='search', + search_state=TAG_SEARCH_STATES['mark_plus'], + index=index)) + self.context_menu.addAction(self.search_icon, + _('Search for everything but %s')%display_name(tag), + partial(self.context_menu_handler, action='search', + search_state=TAG_SEARCH_STATES['mark_minus'], + index=index)) self.context_menu.addSeparator() elif key.startswith('@') and not item.is_gst: if item.can_be_edited: From 1400222d170c42fb380ba1e83ef69c9aabeb7b4e Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Sun, 8 Jan 2012 10:11:54 +0100 Subject: [PATCH 2/2] Fix bug 913154: focus problem with template history widget in bulk edit. --- src/calibre/gui2/widgets.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index 09b655f758..f3badd91c9 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -660,7 +660,8 @@ class HistoryLineEdit(QComboBox): # {{{ def focusOutEvent(self, e): QComboBox.focusOutEvent(self, e) - self.lost_focus.emit() + if not (self.hasFocus() or self.view().hasFocus()): + self.lost_focus.emit() # }}}