diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 5733167d1e..72253dc75b 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -87,6 +87,13 @@ def create_defs(): 'Similar Books', 'Tweak ePub', None, 'Remove Books', ) + defs['action-layout-context-menu-split'] = ( + 'Edit Metadata', 'Send To Device', 'Save To Disk', + 'Connect Share', 'Copy To Library', None, + 'Convert Books', 'View', 'Open Folder', 'Show Book Details', + 'Similar Books', 'Tweak ePub', None, 'Remove Books', + ) + defs['action-layout-context-menu-device'] = ( 'View', 'Save To Disk', None, 'Remove Books', None, 'Add To Library', 'Edit Collections', 'Match Books' diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index 6a81e192b3..ad2f5bd397 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -82,6 +82,9 @@ class LibraryViewMixin(object): # {{{ populate_menu(dm, gprefs['action-layout-context-menu-device'], self.iactions) ec = self.iactions['Edit Collections'].qaction self.library_view.set_context_menu(lm, ec) + sm = QMenu(self) + populate_menu(sm, gprefs['action-layout-context-menu-split'], self.iactions) + self.library_view.pin_view.set_context_menu(sm) for v in (self.memory_view, self.card_a_view, self.card_b_view): v.set_context_menu(dm, ec) diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 25162e68cf..286d27a91f 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -886,11 +886,14 @@ class BooksView(QTableView): # {{{ self.alternate_views.set_context_menu(menu) self.edit_collections_action = edit_collections_action - def contextMenuEvent(self, event): + def show_context_menu(self, menu, event): from calibre.gui2.main_window import clone_menu - m = clone_menu(self.context_menu) if islinux else self.context_menu + m = clone_menu(menu) if islinux else menu m.popup(event.globalPos()) event.accept() + + def contextMenuEvent(self, event): + self.show_context_menu(self.context_menu, event) # }}} @property diff --git a/src/calibre/gui2/pin_columns.py b/src/calibre/gui2/pin_columns.py index 68c40c5439..a27ad5bb5a 100644 --- a/src/calibre/gui2/pin_columns.py +++ b/src/calibre/gui2/pin_columns.py @@ -14,6 +14,12 @@ class PinTableView(QTableView): self.books_view = books_view self.verticalHeader().close() + def set_context_menu(self, menu): + self.context_menu = menu + + def contextMenuEvent(self, event): + self.books_view.show_context_menu(self.context_menu, event) + class PinContainer(QSplitter): diff --git a/src/calibre/gui2/preferences/toolbar.py b/src/calibre/gui2/preferences/toolbar.py index 87578df994..921b2988ae 100644 --- a/src/calibre/gui2/preferences/toolbar.py +++ b/src/calibre/gui2/preferences/toolbar.py @@ -241,6 +241,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): ('menubar-device', _('The menubar when a device is connected')), ('context-menu', _('The context menu for the books in the ' 'calibre library')), + ('context-menu-split', _('The context menu for the split book list')), ('context-menu-device', _('The context menu for the books on ' 'the device')), ('context-menu-cover-browser', _('The context menu for the Cover '