diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-02-18 15:46:24 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-02-19 00:29:45 +0000 |
commit | e09acc38d3af64c2136ee8b6ab4f01a83492ba17 (patch) | |
tree | f5713d97eba1f314fd1f329e89d7a2cc1607242f /src/qml/jsruntime/qv4engine.cpp | |
parent | 92ebe65589ac0e173d297817b07704b2b6f897ee (diff) |
QJSValue: Allow casting integers to enums
You can also cast enums to integers, after all.
Change-Id: I283d3dd280eeb44ba22bb45ca9be69e5358d5781
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 453be4e6065a323e7fc0ea93fa0bee845d2020cd)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 320dc15a15..21aee81985 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -2338,6 +2338,14 @@ bool ExecutionEngine::metaTypeFromJS(const Value &value, int type, void *data) } { + const QMetaType metaType(type); + if (metaType.flags() & QMetaType::IsEnumeration) { + *reinterpret_cast<int *>(data) = value.toInt32(); + return true; + } + } + + { const QQmlValueTypeWrapper *vtw = value.as<QQmlValueTypeWrapper>(); if (vtw && vtw->typeId() == type) { return vtw->toGadget(data); |