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