diff --git a/src/calibre/gui2/actions/__init__.py b/src/calibre/gui2/actions/__init__.py index 9dc6c6852f..1bc1a01e0c 100644 --- a/src/calibre/gui2/actions/__init__.py +++ b/src/calibre/gui2/actions/__init__.py @@ -12,6 +12,7 @@ from PyQt5.Qt import (QToolButton, QAction, QIcon, QObject, QMenu, QKeySequence) from calibre import prints +from calibre.constants import isosx from calibre.gui2 import Dispatcher from calibre.gui2.keyboard import NameConflict @@ -191,7 +192,11 @@ class InterfaceAction(QObject): pass shortcut_action.setShortcuts([QKeySequence(key, QKeySequence.PortableText) for key in keys]) - + else: + if isosx: + # In Qt 5 keyboard shortcuts dont work unless the + # action is explicitly added to the main window + self.gui.addAction(shortcut_action) if attr is not None: setattr(self, attr, action) @@ -253,6 +258,10 @@ class InterfaceAction(QObject): self.gui.keyboard.register_shortcut(unique_name, shortcut_name, default_keys=keys, action=ac, description=description, group=self.action_spec[0]) + if isosx: + # In Qt 5 keyboard shortcuts dont work unless the + # action is explicitly added to the main window + self.gui.addAction(ac) if triggered is not None: ac.triggered.connect(triggered) return ac diff --git a/src/calibre/gui2/actions/similar_books.py b/src/calibre/gui2/actions/similar_books.py index 0e6b6890af..347e1d1afd 100644 --- a/src/calibre/gui2/actions/similar_books.py +++ b/src/calibre/gui2/actions/similar_books.py @@ -9,7 +9,6 @@ from functools import partial from PyQt5.Qt import QToolButton -from calibre.constants import isosx from calibre.gui2.actions import InterfaceAction class SimilarBooksAction(InterfaceAction): @@ -31,11 +30,6 @@ class SimilarBooksAction(InterfaceAction): ac = self.create_action(spec=(text, icon, None, shortcut), attr=target) m.addAction(ac) - if isosx: - # For some reason with Qt 5 the keyboard shortcuts for these - # actions dont work unless the actions are added to the main - # window - self.gui.addAction(ac) ac.triggered.connect(partial(self.show_similar_books, target)) self.qaction.setMenu(m)