From 9045c55f7f272dc2e767ed396652003db26a42f7 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Sat, 17 Jul 2021 22:48:07 +0100 Subject: [PATCH] Enhacement #1936472: support plugins adding entries in the context menu of tag browser --- src/calibre/gui2/tag_browser/view.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/calibre/gui2/tag_browser/view.py b/src/calibre/gui2/tag_browser/view.py index 397eb07611..668b37304f 100644 --- a/src/calibre/gui2/tag_browser/view.py +++ b/src/calibre/gui2/tag_browser/view.py @@ -999,6 +999,22 @@ class TagsView(QTreeView): # {{{ _("Collapse {0}").format(p[0]), partial(self.collapse_node, p[1])) m.addAction(self.minus_icon, _('Collapse all'), self.collapseAll) + # Ask plugins if they have any actions to add to the context menu + from calibre.gui2.ui import get_gui + first = True + for ac in get_gui().iactions.values(): + try: + if hasattr(ac, 'tag_browser_context_action'): + context_action = ac.tag_browser_context_action(index) + if context_action: + if first: + self.context_menu.addSeparator() + first = False + self.context_menu.addAction(context_action) + except Exception: + import traceback + traceback.print_exc() + if not self.context_menu.isEmpty(): self.context_menu.popup(self.mapToGlobal(point)) return True