diff --git a/src/calibre/gui2/dialogs/book_info.py b/src/calibre/gui2/dialogs/book_info.py index c35bcde615..1078891119 100644 --- a/src/calibre/gui2/dialogs/book_info.py +++ b/src/calibre/gui2/dialogs/book_info.py @@ -39,6 +39,10 @@ class Cover(CoverView): def choose_open_with(self): self.choose_open_with_requested.emit() + def mouseDoubleClickEvent(self, ev): + ev.accept() + self.open_with_requested.emit(None) + class Configure(Dialog): diff --git a/src/calibre/gui2/init.py b/src/calibre/gui2/init.py index c7c9321feb..b299bb6810 100644 --- a/src/calibre/gui2/init.py +++ b/src/calibre/gui2/init.py @@ -7,16 +7,17 @@ __copyright__ = '2010, Kovid Goyal ' __docformat__ = 'restructuredtext en' import functools - from PyQt5.Qt import ( - QAction, QApplication, QIcon, QLabel, QMenu, QPainter, QSizePolicy, - QSplitter, QStackedWidget, QStatusBar, QStyle, QStyleOption, Qt, QTabBar, QTimer, + QAction, QApplication, QIcon, QLabel, QMenu, QPainter, QSizePolicy, QSplitter, + QStackedWidget, QStatusBar, QStyle, QStyleOption, Qt, QTabBar, QTimer, QToolButton, QVBoxLayout, QWidget ) from calibre.constants import __appname__, get_version, ismacos from calibre.customize.ui import find_plugin -from calibre.gui2 import config, error_dialog, gprefs, is_widescreen, open_url +from calibre.gui2 import ( + config, error_dialog, gprefs, is_widescreen, open_local_file, open_url +) from calibre.gui2.book_details import BookDetails from calibre.gui2.layout_menu import LayoutMenu from calibre.gui2.library.alternate_views import GridView @@ -731,6 +732,9 @@ class LayoutMixin(object): # {{{ def bd_open_cover_with(self, book_id, entry): cpath = self.current_db.new_api.format_abspath(book_id, '__COVER_INTERNAL__') if cpath: + if entry is None: + open_local_file(cpath) + return from calibre.gui2.open_with import run_program run_program(entry, cpath, self)