aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmltypeloader.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-10-24 12:32:39 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2017-10-24 12:32:39 +0000
commit1aa91f8b0b140c417c6e97dfd22fa498d31bceb6 (patch)
tree714b9c79ca84cf9bda9912ea723cd925f0e8f4c9 /src/qml/qml/qqmltypeloader.cpp
parent83c8f8d90a960965c1f166c4421f514f4236212a (diff)
parent15dd1b7883f5dbe66266aeb588381f85f3532ab9 (diff)
Merge "Merge remote-tracking branch 'origin/5.9' into 5.10" into refs/staging/5.10
Diffstat (limited to 'src/qml/qml/qqmltypeloader.cpp')
-rw-r--r--src/qml/qml/qqmltypeloader.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
index d5ed5792b3..b9d6c521de 100644
--- a/src/qml/qml/qqmltypeloader.cpp
+++ b/src/qml/qml/qqmltypeloader.cpp
@@ -2612,7 +2612,8 @@ void QQmlTypeData::resolveTypes()
int majorVersion = csRef.majorVersion > -1 ? csRef.majorVersion : -1;
int minorVersion = csRef.minorVersion > -1 ? csRef.minorVersion : -1;
- if (!resolveType(typeName, majorVersion, minorVersion, ref))
+ if (!resolveType(typeName, majorVersion, minorVersion, ref, -1, -1, true,
+ QQmlType::CompositeSingletonType))
return;
if (ref.type.isCompositeSingleton()) {
@@ -2640,7 +2641,9 @@ void QQmlTypeData::resolveTypes()
const QString name = stringAt(unresolvedRef.key());
- if (!resolveType(name, majorVersion, minorVersion, ref, unresolvedRef->location.line, unresolvedRef->location.column, reportErrors) && reportErrors)
+ if (!resolveType(name, majorVersion, minorVersion, ref, unresolvedRef->location.line,
+ unresolvedRef->location.column, reportErrors,
+ QQmlType::AnyRegistrationType) && reportErrors)
return;
if (ref.type.isComposite()) {
@@ -2714,20 +2717,22 @@ QQmlCompileError QQmlTypeData::buildTypeResolutionCaches(
return noError;
}
-bool QQmlTypeData::resolveType(const QString &typeName, int &majorVersion, int &minorVersion, TypeReference &ref, int lineNumber, int columnNumber, bool reportErrors)
+bool QQmlTypeData::resolveType(const QString &typeName, int &majorVersion, int &minorVersion,
+ TypeReference &ref, int lineNumber, int columnNumber,
+ bool reportErrors, QQmlType::RegistrationType registrationType)
{
QQmlImportNamespace *typeNamespace = 0;
QList<QQmlError> errors;
- bool typeFound = m_importCache.resolveType(typeName, &ref.type,
- &majorVersion, &minorVersion, &typeNamespace, &errors);
+ bool typeFound = m_importCache.resolveType(typeName, &ref.type, &majorVersion, &minorVersion,
+ &typeNamespace, &errors, registrationType);
if (!typeNamespace && !typeFound && !m_implicitImportLoaded) {
// Lazy loading of implicit import
if (loadImplicitImport()) {
// Try again to find the type
errors.clear();
- typeFound = m_importCache.resolveType(typeName, &ref.type,
- &majorVersion, &minorVersion, &typeNamespace, &errors);
+ typeFound = m_importCache.resolveType(typeName, &ref.type, &majorVersion, &minorVersion,
+ &typeNamespace, &errors, registrationType);
} else {
return false; //loadImplicitImport() hit an error, and called setError already
}