From 29336f4e3212780850960c5e505cbb12eb9a5022 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 28 Apr 2021 21:11:23 +0530 Subject: [PATCH] Fix #1926454 [[Enhancement] Add a context menu action to expand/collapse all categories of plugins](https://bugs.launchpad.net/calibre/+bug/1926454) --- src/calibre/gui2/preferences/plugins.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/preferences/plugins.py b/src/calibre/gui2/preferences/plugins.py index 65457012d5..5827788f16 100644 --- a/src/calibre/gui2/preferences/plugins.py +++ b/src/calibre/gui2/preferences/plugins.py @@ -9,7 +9,7 @@ __docformat__ = 'restructuredtext en' import textwrap, os from collections import OrderedDict -from qt.core import (Qt, QModelIndex, QAbstractItemModel, QIcon, +from qt.core import (Qt, QMenu, QModelIndex, QAbstractItemModel, QIcon, QBrush, QDialog, QItemSelectionModel, QAbstractItemView) from calibre.gui2.preferences import ConfigWidgetBase, test_widget @@ -250,6 +250,14 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.previous_button.clicked.connect(self.find_previous) self.changed_signal.connect(self.reload_store_plugins) self.user_installed_plugins.stateChanged.connect(self.show_user_installed_plugins) + self.plugin_view.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) + self.plugin_view.customContextMenuRequested.connect(self.show_context_menu) + + def show_context_menu(self, pos): + menu = QMenu(self) + menu.addAction(_('Expand all'), self.plugin_view.expandAll) + menu.addAction(_('Collapse all'), self.plugin_view.collapseAll) + menu.exec_(self.plugin_view.mapToGlobal(pos)) def show_user_installed_plugins(self, state): self._plugin_model.toggle_shown_plugins(self.user_installed_plugins.isChecked())