From 9db458451751184588ec0d8c45c9bb8e02a25e9c Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 3 Jun 2022 14:17:23 +0100 Subject: [PATCH 1/2] Bug #1977496: shortcut for OK buttons --- src/calibre/gui2/dialogs/comments_dialog.py | 25 ++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/dialogs/comments_dialog.py b/src/calibre/gui2/dialogs/comments_dialog.py index 6ff8275e0b..7520087413 100644 --- a/src/calibre/gui2/dialogs/comments_dialog.py +++ b/src/calibre/gui2/dialogs/comments_dialog.py @@ -7,7 +7,7 @@ __license__ = 'GPL v3' from qt.core import ( QApplication, QDialog, QDialogButtonBox, QPlainTextEdit, QSize, Qt, - QVBoxLayout + QVBoxLayout, QLabel, QHBoxLayout, pyqtSignal ) from calibre.gui2 import Application, gprefs @@ -66,6 +66,18 @@ class CommentsDialog(QDialog): return QDialog.closeEvent(self, ev) +class PlainTextEdit(QPlainTextEdit): + ctrl_enter_pushed = pyqtSignal() + + def keyPressEvent (self, event): + v = int(QApplication.keyboardModifiers() & Qt.KeyboardModifier.ControlModifier) + if v and event.key() == Qt.Key_Return: + event.accept() + self.ctrl_enter_pushed.emit() + else: + super().keyPressEvent(event) + + class PlainTextDialog(Dialog): def __init__(self, parent, text, column_name=None): @@ -75,9 +87,16 @@ class PlainTextDialog(Dialog): def setup_ui(self): self.l = l = QVBoxLayout(self) - self._text = QPlainTextEdit(self) + self._text = PlainTextEdit(self) + self._text.ctrl_enter_pushed.connect(self.ctrl_enter_pushed) l.addWidget(self._text) - l.addWidget(self.bb) + hl = QHBoxLayout() + hl.addWidget(QLabel(_('CTRL-Return presses OK, ESC presses Cancel'))) + hl.addWidget(self.bb) + l.addLayout(hl) + + def ctrl_enter_pushed(self): + self.accept() @property def text(self): From b341100d12788abab169215e47f9a60a3a215a17 Mon Sep 17 00:00:00 2001 From: Charles Haley Date: Fri, 3 Jun 2022 14:20:15 +0100 Subject: [PATCH 2/2] I forgot the Key enum ... --- src/calibre/gui2/dialogs/comments_dialog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/gui2/dialogs/comments_dialog.py b/src/calibre/gui2/dialogs/comments_dialog.py index 7520087413..986bd6bcab 100644 --- a/src/calibre/gui2/dialogs/comments_dialog.py +++ b/src/calibre/gui2/dialogs/comments_dialog.py @@ -71,7 +71,7 @@ class PlainTextEdit(QPlainTextEdit): def keyPressEvent (self, event): v = int(QApplication.keyboardModifiers() & Qt.KeyboardModifier.ControlModifier) - if v and event.key() == Qt.Key_Return: + if v and event.key() == Qt.Key.Key_Return: event.accept() self.ctrl_enter_pushed.emit() else: