From ab2b965ed5ef7fdc096ecbd8fb7d683bb626ab8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Arve=20S=C3=A6ther?= Date: Wed, 21 Nov 2018 11:26:18 +0100 Subject: [PATCH] Testing ShortcutOverride Change-Id: I3527908b1e6900babb3e60942791b8d72eb3bae1 --- examples/widgets/widgets/lineedits/window.cpp | 23 ++++++++++++++++++++++- examples/widgets/widgets/lineedits/window.h | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/examples/widgets/widgets/lineedits/window.cpp b/examples/widgets/widgets/lineedits/window.cpp index ffb1edc..168fdb7 100644 --- a/examples/widgets/widgets/lineedits/window.cpp +++ b/examples/widgets/widgets/lineedits/window.cpp @@ -52,9 +52,30 @@ #include "window.h" +class LineEdit : public QLineEdit { +public: + bool event(QEvent *ev) override { + if (ev->type() == QEvent::ShortcutOverride) { + QKeyEvent *ke = static_cast(ev); + if (ke->key() == Qt::Key_Escape) { + ev->setAccepted(true); + qDebug() << "Escape shortcut overridden"; + return true; + } + } + return QLineEdit::event(ev); + } +}; + +void Window::escapePressed() +{ + qDebug() << "Got Shortcut escape"; +} + //! [0] Window::Window() { + (void) new QShortcut(QKeySequence(Qt::Key_Escape), this, SLOT(escapePressed())); QGroupBox *echoGroup = new QGroupBox(tr("Echo")); QLabel *echoLabel = new QLabel(tr("Mode:")); @@ -64,7 +85,7 @@ Window::Window() echoComboBox->addItem(tr("PasswordEchoOnEdit")); echoComboBox->addItem(tr("No Echo")); - echoLineEdit = new QLineEdit; + echoLineEdit = new LineEdit; echoLineEdit->setPlaceholderText("Placeholder Text"); echoLineEdit->setFocus(); //! [0] diff --git a/examples/widgets/widgets/lineedits/window.h b/examples/widgets/widgets/lineedits/window.h index 2070b3b..a2b3cef 100644 --- a/examples/widgets/widgets/lineedits/window.h +++ b/examples/widgets/widgets/lineedits/window.h @@ -72,6 +72,7 @@ public slots: void alignmentChanged(int); void inputMaskChanged(int); void accessChanged(int); + void escapePressed(); private: QLineEdit *echoLineEdit; -- 2.10.1.windows.1