From a2411ef0a0f3517ae06a509000561c90168a10fa Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Mon, 4 Jan 2021 15:57:03 +0000 Subject: [PATCH] Add hierarchical search to the tag browser context menu --- src/calibre/gui2/tag_browser/view.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index f35763f122..9dace785e9 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -782,11 +782,24 @@ class TagsView(QTreeView): # {{{ partial(self.context_menu_handler, action='search', search_state=TAG_SEARCH_STATES['mark_plus'], index=index)) + if add_child_search := (tag.is_hierarchical == '5state' and + len(tag_item.children)): + search_submenu.addAction(self.search_icon, + _('Search for %s and its children')%display_name(tag), + partial(self.context_menu_handler, action='search', + search_state=TAG_SEARCH_STATES['mark_plusplus'], + index=index)) search_submenu.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 add_child_search: + search_submenu.addAction(self.search_icon, + _('Search for everything but %s and its children')%display_name(tag), + partial(self.context_menu_handler, action='search', + search_state=TAG_SEARCH_STATES['mark_minusminus'], + index=index)) if key == 'search': search_submenu.addAction(self.search_copy_icon, _('Search using saved search expression'),