Fix #2034757 [[Enhancement] E-book viewer: search pane should have a context menu](https://bugs.launchpad.net/calibre/+bug/2034757)

This commit is contained in:
Kovid Goyal 2023-09-14 11:46:15 +05:30
parent ad2f746c2c
commit 3b6e829d36
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -6,8 +6,8 @@ import regex
from collections import Counter, OrderedDict
from html import escape
from qt.core import (
QAbstractItemView, QCheckBox, QComboBox, QFont, QHBoxLayout, QIcon, QLabel, Qt,
QToolButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal,
QAbstractItemView, QCheckBox, QComboBox, QFont, QHBoxLayout, QIcon, QLabel, QMenu,
Qt, QToolButton, QTreeWidget, QTreeWidgetItem, QVBoxLayout, QWidget, pyqtSignal,
)
from threading import Thread
@ -542,6 +542,8 @@ class Results(QTreeWidget): # {{{
def __init__(self, parent=None):
QTreeWidget.__init__(self, parent)
self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
self.customContextMenuRequested.connect(self.show_context_menu)
self.setHeaderHidden(True)
self.setFocusPolicy(Qt.FocusPolicy.NoFocus)
self.delegate = ResultsDelegate(self)
@ -558,6 +560,14 @@ class Results(QTreeWidget): # {{{
self.gesture_manager = GestureManager(self)
self.setVerticalScrollMode(QAbstractItemView.ScrollMode.ScrollPerPixel)
def show_context_menu(self, point):
self.context_menu = m = QMenu(self)
m.addAction(QIcon.ic('plus.png'), _('Expand all'), self.expandAll)
m.addAction(QIcon.ic('minus.png'), _('Collapse all'), self.collapseAll)
self.context_menu.popup(self.mapToGlobal(point))
return True
def viewportEvent(self, ev):
if hasattr(self, 'gesture_manager'):
ret = self.gesture_manager.handle_event(ev)