summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/qml/qmlcontextscriptclass.cpp9
-rw-r--r--src/declarative/qml/qmlcontextscriptclass_p.h3
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;