diff options
-rw-r--r-- | src/declarative/qml/qmlcontextscriptclass.cpp | 9 | ||||
-rw-r--r-- | src/declarative/qml/qmlcontextscriptclass_p.h | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/declarative/qml/qmlcontextscriptclass.cpp b/src/declarative/qml/qmlcontextscriptclass.cpp index ae86fb1..4df23f0 100644 --- a/src/declarative/qml/qmlcontextscriptclass.cpp +++ b/src/declarative/qml/qmlcontextscriptclass.cpp @@ -99,10 +99,12 @@ QmlContextScriptClass::queryProperty(Object *object, const Identifier &name, if (!bindContext) return 0; + bool includeTypes = true; while (bindContext) { QScriptClass::QueryFlags rv = - queryProperty(bindContext, scopeObject, name, flags); + queryProperty(bindContext, scopeObject, name, flags, includeTypes); scopeObject = 0; // Only applies to the first context + includeTypes = false; // Only applies to the first context if (rv) return rv; bindContext = bindContext->parentContext(); } @@ -113,7 +115,8 @@ QmlContextScriptClass::queryProperty(Object *object, const Identifier &name, QScriptClass::QueryFlags QmlContextScriptClass::queryProperty(QmlContext *bindContext, QObject *scopeObject, const Identifier &name, - QScriptClass::QueryFlags flags) + QScriptClass::QueryFlags flags, + bool includeTypes) { QmlEnginePrivate *ep = QmlEnginePrivate::get(engine); QmlContextPrivate *cp = QmlContextPrivate::get(bindContext); @@ -124,7 +127,7 @@ QmlContextScriptClass::queryProperty(QmlContext *bindContext, QObject *scopeObje return QScriptClass::HandlesReadAccess; } - if (cp->imports) { + if (includeTypes && cp->imports) { QmlTypeNameCache::Data *data = cp->imports->data(name); if (data) { diff --git a/src/declarative/qml/qmlcontextscriptclass_p.h b/src/declarative/qml/qmlcontextscriptclass_p.h index 126c8fe..95dff5b 100644 --- a/src/declarative/qml/qmlcontextscriptclass_p.h +++ b/src/declarative/qml/qmlcontextscriptclass_p.h @@ -80,7 +80,8 @@ protected: private: QScriptClass::QueryFlags queryProperty(QmlContext *, QObject *scopeObject, const Identifier &, - QScriptClass::QueryFlags flags); + QScriptClass::QueryFlags flags, + bool includeTypes); QmlEngine *engine; |