aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlcompiler/qqmljsimporter.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-10-06 15:45:05 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-10-08 18:54:29 +0200
commit04bc9d83f22a7266fb0caf53c2c3da0d9b06fef4 (patch)
tree883b9e3eba194efa05dbab3592fca8f1273b844b /src/qmlcompiler/qqmljsimporter.cpp
parente8007671d4ec6d791cb337b297f2beb7e5300929 (diff)
Allow optional imports in qmldir files
This is useful for modules that select their imports at runtime using qmlRegisterModuleImport(). We can list all possible variants as optional imports so that tools can see what types might be available. Task-number: QTBUG-87130 Change-Id: I8a37bdde79aef3619fd1f05e5ea6781d521afa88 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmlcompiler/qqmljsimporter.cpp')
-rw-r--r--src/qmlcompiler/qqmljsimporter.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/qmlcompiler/qqmljsimporter.cpp b/src/qmlcompiler/qqmljsimporter.cpp
index 73d7637d79..e33538b653 100644
--- a/src/qmlcompiler/qqmljsimporter.cpp
+++ b/src/qmlcompiler/qqmljsimporter.cpp
@@ -89,14 +89,15 @@ void QQmlJSImporter::readQmltypes(
for (const QString &dependency : qAsConst(dependencyStrings)) {
const auto blank = dependency.indexOf(u' ');
if (blank < 0) {
- dependencies->append(QQmlDirParser::Import(dependency, {}, false));
+ dependencies->append(QQmlDirParser::Import(dependency, {},
+ QQmlDirParser::Import::Default));
continue;
}
const QString module = dependency.left(blank);
const QString versionString = dependency.mid(blank + 1).trimmed();
if (versionString == QStringLiteral("auto")) {
- dependencies->append(QQmlDirParser::Import(module, {}, true));
+ dependencies->append(QQmlDirParser::Import(module, {}, QQmlDirParser::Import::Auto));
continue;
}
@@ -107,7 +108,8 @@ void QQmlJSImporter::readQmltypes(
: QTypeRevision::fromVersion(versionString.left(dot).toUShort(),
versionString.mid(dot + 1).toUShort());
- dependencies->append(QQmlDirParser::Import(module, version, false));
+ dependencies->append(QQmlDirParser::Import(module, version,
+ QQmlDirParser::Import::Default));
}
}
@@ -174,7 +176,7 @@ void QQmlJSImporter::importDependencies(
for (auto const &import : qAsConst(import.imports)) {
importHelper(import.module, types, prefix,
- import.isAutoImport ? version : import.version);
+ (import.flags & QQmlDirParser::Import::Auto) ? version : import.version);
}
}