diff options
author | Liang Qi <liang.qi@qt.io> | 2017-10-24 12:32:39 +0000 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2017-10-24 12:32:39 +0000 |
commit | 1aa91f8b0b140c417c6e97dfd22fa498d31bceb6 (patch) | |
tree | 714b9c79ca84cf9bda9912ea723cd925f0e8f4c9 /src/qml/qml/qqmltypeloader.cpp | |
parent | 83c8f8d90a960965c1f166c4421f514f4236212a (diff) | |
parent | 15dd1b7883f5dbe66266aeb588381f85f3532ab9 (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.cpp | 19 |
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 } |