aboutsummaryrefslogtreecommitdiffstats
path: root/tools/shared/qmljsimporter.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-09-29 16:55:15 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-10-02 15:32:29 +0200
commitccd348d4b7423a23b2326c2f42c74719083248ba (patch)
treec42d114cac3824de9f3a0de9a1df0ee0e7c39a19 /tools/shared/qmljsimporter.cpp
parent4bb53fd1086e5e67391c7bd328ab5083ed83be68 (diff)
qmllint: Uncruftify the importing of base qmltypes
builtins.qmltypes are imported separately now. Any other bare qmltypes files without qmldir should be specified explicitly. If none are specified, qmllint looks in the current directory for qmltypes files, not in all possible import paths. This is still somewhat weird, but admittedly it's handy for qmltypes files generated for application binaries. For the same reason, we unconditionally include the current directory in the list of default import paths. Previously this was done if no explicit qmltypes files were specified, which makes little sense. Change-Id: Iaa56f8b40b3ec3045f55928251d7efea5616d23b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools/shared/qmljsimporter.cpp')
-rw-r--r--tools/shared/qmljsimporter.cpp44
1 files changed, 16 insertions, 28 deletions
diff --git a/tools/shared/qmljsimporter.cpp b/tools/shared/qmljsimporter.cpp
index b061b96a53..4412ec01fd 100644
--- a/tools/shared/qmljsimporter.cpp
+++ b/tools/shared/qmljsimporter.cpp
@@ -162,11 +162,9 @@ void QmlJSImporter::processImport(
}
/*!
- * Imports builtins.qmltypes and the given \a qmltypesFiles. If \a qmltypesFiles
- * is empty, imports any .qmltypes files without accompanying qmldir found in
- * any of the import base paths.
+ * Imports builtins.qmltypes found in any of the import paths.
*/
-QmlJSImporter::ImportedTypes QmlJSImporter::importBaseQmlTypes(const QStringList &qmltypesFiles)
+QmlJSImporter::ImportedTypes QmlJSImporter::importBuiltins()
{
ImportedTypes types;
@@ -180,32 +178,22 @@ QmlJSImporter::ImportedTypes QmlJSImporter::importBaseQmlTypes(const QStringList
processImport(result, &types);
}
- if (qmltypesFiles.isEmpty()) {
- for (auto const &qmltypesPath : m_importPaths) {
- if (QFile::exists(qmltypesPath + SlashQmldir))
- continue;
- Import result;
- QDirIterator it {
- qmltypesPath, QStringList { QLatin1String("*.qmltypes") }, QDir::Files };
-
- while (it.hasNext()) {
- const QString name = it.next();
- if (!name.endsWith(QLatin1String("/builtins.qmltypes")))
- readQmltypes(name, &result.objects);
- }
-
- importDependencies(result, &types);
- processImport(result, &types);
- }
- } else {
- Import result;
+ return types;
+}
- for (const auto &qmltypeFile : qmltypesFiles)
- readQmltypes(qmltypeFile, &result.objects);
+/*!
+ * Imports types from the specified \a qmltypesFiles.
+ */
+QmlJSImporter::ImportedTypes QmlJSImporter::importQmltypes(const QStringList &qmltypesFiles)
+{
+ ImportedTypes types;
+ Import result;
- importDependencies(result, &types);
- processImport(result, &types);
- }
+ for (const auto &qmltypeFile : qmltypesFiles)
+ readQmltypes(qmltypeFile, &result.objects);
+
+ importDependencies(result, &types);
+ processImport(result, &types);
return types;
}