forked from qt-creator/qt-creator
QmlDesigner: Fix shortcut override
Change-Id: I34867b463ce480542a894404f749fa46db06cc84 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
committed by
Thomas Hartmann
parent
e62eeb5aeb
commit
a5bb85c76b
@@ -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
|
||||
|
@@ -38,6 +38,9 @@ public:
|
||||
explicit Quick2PropertyEditorView(QWidget *parent = nullptr);
|
||||
|
||||
static void registerQmlTypes();
|
||||
|
||||
protected:
|
||||
bool event(QEvent *e) override;
|
||||
};
|
||||
|
||||
} //QmlDesigner
|
||||
|
Reference in New Issue
Block a user