QmlDesigner: Fix shortcut override

Change-Id: I34867b463ce480542a894404f749fa46db06cc84
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Henning Gruendl
2019-07-03 14:48:05 +02:00
committed by Thomas Hartmann
parent e62eeb5aeb
commit a5bb85c76b
2 changed files with 30 additions and 0 deletions

View File

@@ -58,4 +58,31 @@ void Quick2PropertyEditorView::registerQmlTypes()
}
}
bool Quick2PropertyEditorView::event(QEvent *e)
{
static std::vector<QKeySequence> 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<QKeyEvent *>(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

View File

@@ -38,6 +38,9 @@ public:
explicit Quick2PropertyEditorView(QWidget *parent = nullptr);
static void registerQmlTypes();
protected:
bool event(QEvent *e) override;
};
} //QmlDesigner