diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-02-08 03:49:09 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-02-08 03:53:03 (GMT) |
commit | 87d71b29a8c4239cb807f13ac9d009cef1ca1a69 (patch) | |
tree | 5889e80b9a96bb8b70f44a67d737e5464d2d72d3 /src/declarative/qml/qmlcontext.cpp | |
parent | f5ad8f76430b43c0a72c1bf41fae1d279948a0e0 (diff) | |
download | Qt-87d71b29a8c4239cb807f13ac9d009cef1ca1a69.zip Qt-87d71b29a8c4239cb807f13ac9d009cef1ca1a69.tar.gz Qt-87d71b29a8c4239cb807f13ac9d009cef1ca1a69.tar.bz2 |
Allow objects to be shared between QmlEngines
QTBUG-7957
Diffstat (limited to 'src/declarative/qml/qmlcontext.cpp')
-rw-r--r-- | src/declarative/qml/qmlcontext.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/declarative/qml/qmlcontext.cpp b/src/declarative/qml/qmlcontext.cpp index 0eb497d..4c6dc6f 100644 --- a/src/declarative/qml/qmlcontext.cpp +++ b/src/declarative/qml/qmlcontext.cpp @@ -461,16 +461,13 @@ QVariant QmlContext::contextProperty(const QString &name) const QByteArray utf8Name = name.toUtf8(); for (int ii = d->defaultObjects.count() - 1; ii >= 0; --ii) { QObject *obj = d->defaultObjects.at(ii); - QmlDeclarativeData *data = QmlDeclarativeData::get(obj); - if (data && data->propertyCache) { - QmlPropertyCache::Data *property = data->propertyCache->property(name); - if (property) - value = obj->metaObject()->property(property->coreIndex).read(obj); - } else { - value = obj->property(utf8Name); - } - if (value.isValid()) + QmlPropertyCache::Data local; + QmlPropertyCache::Data *property = QmlPropertyCache::property(d->engine, obj, name, local); + + if (property) { + value = obj->metaObject()->property(property->coreIndex).read(obj); break; + } } if (!value.isValid() && parentContext()) value = parentContext()->contextProperty(name); |