aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypewrapper.cpp
diff options
context:
space:
mode:
authorMichael Brasser <mbrasser@ford.com>2018-10-25 12:50:19 -0500
committerJani Heikkinen <jani.heikkinen@qt.io>2018-10-31 08:21:24 +0000
commitf46f8745053208e4a86fa65e039179b85d5c317b (patch)
treec397ffeb8394d010eef39c2605983e4b124895a7 /src/qml/qml/qqmltypewrapper.cpp
parent3a614b1c2e78de04b32a957414f5a8d4dd0e07b1 (diff)
Fix issues with lookup of scoped enums on Singletons
Change-Id: Id6cd0b7c571b38db30bded030f6927c9b5fbdb96 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/qml/qqmltypewrapper.cpp')
-rw-r--r--src/qml/qml/qqmltypewrapper.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/qml/qml/qqmltypewrapper.cpp b/src/qml/qml/qqmltypewrapper.cpp
index b58619c0d3..4089a7f030 100644
--- a/src/qml/qml/qqmltypewrapper.cpp
+++ b/src/qml/qml/qqmltypewrapper.cpp
@@ -203,9 +203,18 @@ ReturnedValue QQmlTypeWrapper::virtualGet(const Managed *m, PropertyKey id, cons
const bool includeEnums = w->d()->mode == Heap::QQmlTypeWrapper::IncludeEnums;
if (includeEnums && name->startsWithUpper()) {
bool ok = false;
- const int value = enumForSingleton(v4, name, qobjectSingleton, type, &ok);
+ int value = enumForSingleton(v4, name, qobjectSingleton, type, &ok);
if (ok)
return QV4::Value::fromInt32(value).asReturnedValue();
+
+ value = type.scopedEnumIndex(QQmlEnginePrivate::get(v4->qmlEngine()), name, &ok);
+ if (ok) {
+ Scoped<QQmlScopedEnumWrapper> enumWrapper(scope, v4->memoryManager->allocate<QQmlScopedEnumWrapper>());
+ enumWrapper->d()->typePrivate = type.priv();
+ QQmlType::refHandle(enumWrapper->d()->typePrivate);
+ enumWrapper->d()->scopeEnumIndex = value;
+ return enumWrapper.asReturnedValue();
+ }
}
// check for property.