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
|
} //QmlDesigner
|
||||||
|
@@ -38,6 +38,9 @@ public:
|
|||||||
explicit Quick2PropertyEditorView(QWidget *parent = nullptr);
|
explicit Quick2PropertyEditorView(QWidget *parent = nullptr);
|
||||||
|
|
||||||
static void registerQmlTypes();
|
static void registerQmlTypes();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
bool event(QEvent *e) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} //QmlDesigner
|
} //QmlDesigner
|
||||||
|
Reference in New Issue
Block a user