From a5bb85c76b3da4693880dd92e9be11aa54948b50 Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Wed, 3 Jul 2019 14:48:05 +0200 Subject: [PATCH] QmlDesigner: Fix shortcut override Change-Id: I34867b463ce480542a894404f749fa46db06cc84 Reviewed-by: Thomas Hartmann --- .../quick2propertyeditorview.cpp | 27 +++++++++++++++++++ .../propertyeditor/quick2propertyeditorview.h | 3 +++ 2 files changed, 30 insertions(+) diff --git a/src/plugins/qmldesigner/components/propertyeditor/quick2propertyeditorview.cpp b/src/plugins/qmldesigner/components/propertyeditor/quick2propertyeditorview.cpp index 862d16ba22f..e475b982d7d 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/quick2propertyeditorview.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/quick2propertyeditorview.cpp @@ -58,4 +58,31 @@ void Quick2PropertyEditorView::registerQmlTypes() } } +bool Quick2PropertyEditorView::event(QEvent *e) +{ + static std::vector overrideSequences = { QKeySequence(Qt::SHIFT + Qt::Key_Up), + QKeySequence(Qt::SHIFT + Qt::Key_Down), + QKeySequence(Qt::CTRL + Qt::Key_Up), + QKeySequence(Qt::CTRL + Qt::Key_Down) + }; + + if (e->type() == QEvent::ShortcutOverride) { + auto keyEvent = static_cast(e); + + static const Qt::KeyboardModifiers relevantModifiers = Qt::ShiftModifier + | Qt::ControlModifier + | Qt::AltModifier + | Qt::MetaModifier; + + QKeySequence keySqeuence(keyEvent->key() | (keyEvent->modifiers() & relevantModifiers)); + for (const QKeySequence &overrideSequence : overrideSequences) + if (keySqeuence.matches(overrideSequence)) { + keyEvent->accept(); + return true; + } + } + + return QQuickWidget::event(e); +} + } //QmlDesigner diff --git a/src/plugins/qmldesigner/components/propertyeditor/quick2propertyeditorview.h b/src/plugins/qmldesigner/components/propertyeditor/quick2propertyeditorview.h index 7bfc6f15580..c2c0ba9f36f 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/quick2propertyeditorview.h +++ b/src/plugins/qmldesigner/components/propertyeditor/quick2propertyeditorview.h @@ -38,6 +38,9 @@ public: explicit Quick2PropertyEditorView(QWidget *parent = nullptr); static void registerQmlTypes(); + +protected: + bool event(QEvent *e) override; }; } //QmlDesigner