From fefe7f10eda97fc0ea363702017ebcb0e3044b44 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 16 May 2020 14:09:36 +0530 Subject: [PATCH] Book details panel contenxt menu: Add an action to open the Book details window. Fixes #1878768 [[Enhancement] Open separate popup window by right clicking in Book details panel](https://bugs.launchpad.net/calibre/+bug/1878768) --- src/calibre/gui2/book_details.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/book_details.py b/src/calibre/gui2/book_details.py index 5f3503dcc7..4d5b1ca930 100644 --- a/src/calibre/gui2/book_details.py +++ b/src/calibre/gui2/book_details.py @@ -278,7 +278,7 @@ def add_item_specific_entries(menu, data, book_info): return search_internet_added -def details_context_menu_event(view, ev, book_info): +def details_context_menu_event(view, ev, book_info, add_popup_action=False): url = view.anchorAt(ev.pos()) menu = view.createStandardContextMenu() menu.addAction(QIcon(I('edit-copy.png')), _('Copy &all'), partial(copy_all, view)) @@ -298,6 +298,10 @@ def details_context_menu_event(view, ev, book_info): for ac in tuple(menu.actions()): if not ac.isEnabled(): menu.removeAction(ac) + if add_popup_action: + menu.addSeparator() + ac = menu.addAction(_('Open the Book details window')) + ac.triggered.connect(book_info.show_book_info) if len(menu.actions()) > 0: menu.exec_(ev.globalPos()) # }}} @@ -633,7 +637,7 @@ class BookInfo(HTMLDisplay): return HTMLDisplay.mouseDoubleClickEvent(self, ev) def contextMenuEvent(self, ev): - details_context_menu_event(self, ev, self) + details_context_menu_event(self, ev, self, True) def open_with(self, book_id, fmt, entry): self.open_fmt_with.emit(book_id, fmt, entry) @@ -825,6 +829,7 @@ class BookDetails(QWidget): # {{{ self.cover_view.cover_removed.connect(self.cover_removed.emit) self._layout.addWidget(self.cover_view) self.book_info = BookInfo(vertical, self) + self.book_info.show_book_info = self.show_book_info self.book_info.search_internet = self.search_internet self.book_info.search_requested = self.search_requested.emit self._layout.addWidget(self.book_info)