Use the same context menu code for the cover grid view as well

This commit is contained in:
Kovid Goyal 2016-12-04 09:34:48 +05:30
parent 852618cb66
commit ee5711f0ba

View File

@ -15,14 +15,14 @@ from textwrap import wrap
from PyQt5.Qt import ( from PyQt5.Qt import (
QListView, QSize, QStyledItemDelegate, QModelIndex, Qt, QImage, pyqtSignal, QListView, QSize, QStyledItemDelegate, QModelIndex, Qt, QImage, pyqtSignal,
QTimer, QPalette, QColor, QItemSelection, QPixmap, QMenu, QApplication, QTimer, QPalette, QColor, QItemSelection, QPixmap, QApplication,
QMimeData, QUrl, QDrag, QPoint, QPainter, QRect, pyqtProperty, QEvent, QMimeData, QUrl, QDrag, QPoint, QPainter, QRect, pyqtProperty, QEvent,
QPropertyAnimation, QEasingCurve, pyqtSlot, QHelpEvent, QAbstractItemView, QPropertyAnimation, QEasingCurve, pyqtSlot, QHelpEvent, QAbstractItemView,
QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush, qRed, qGreen, QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush, qRed, qGreen,
qBlue, QItemSelectionModel, QIcon, QFont) qBlue, QItemSelectionModel, QIcon, QFont)
from calibre import fit_image, prints, prepare_string_for_xml, human_readable from calibre import fit_image, prints, prepare_string_for_xml, human_readable
from calibre.constants import DEBUG, config_dir from calibre.constants import DEBUG, config_dir, islinux
from calibre.ebooks.metadata import fmt_sidx, rating_to_stars from calibre.ebooks.metadata import fmt_sidx, rating_to_stars
from calibre.utils import join_with_timeout from calibre.utils import join_with_timeout
from calibre.gui2 import gprefs, config, rating_font from calibre.gui2 import gprefs, config, rating_font
@ -929,17 +929,16 @@ class GridView(QListView):
self.context_menu = menu self.context_menu = menu
def contextMenuEvent(self, event): def contextMenuEvent(self, event):
if self.context_menu is not None: if self.context_menu is None:
menu = self._temp_menu = QMenu(self) return
sac = self.gui.iactions['Sort By'] from calibre.gui2.main_window import clone_menu
sort_added = tuple(ac for ac in self.context_menu.actions() if ac is sac.qaction) sac = self.gui.iactions['Sort By']
if not sort_added: sort_added = tuple(ac for ac in self.context_menu.actions() if ac is sac.qaction)
menu.addAction(sac.qaction) if sort_added:
for ac in self.context_menu.actions():
menu.addAction(ac)
sac.update_menu() sac.update_menu()
menu.popup(event.globalPos()) m = clone_menu(self.context_menu) if islinux else self.context_menu
event.accept() m.popup(event.globalPos())
event.accept()
def get_selected_ids(self): def get_selected_ids(self):
m = self.model() m = self.model()