summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2022-05-16 15:17:57 +0200
committerMarco Bubke <marco.bubke@qt.io>2022-05-25 09:24:34 +0000
commitd3c9e3afc9e62de9a86b0733c19095b51f7ec3eb (patch)
tree0864b42fcfdf8e114c59f6ec1ac27d8865473e56
parent2d0ce5a450e30596c1c21fdd1538cb3986a92d6d (diff)
downloadqt-creator-d3c9e3afc9e62de9a86b0733c19095b51f7ec3eb.tar.gz
QmlDesigner: Add skip list for unsupported modules
Task-number: QDS-6943 Change-Id: I59284c9482815e67a58c042b2e95b3b857ef9397 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
-rw-r--r--src/plugins/qmldesigner/qmldesignerprojectmanager.cpp25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp
index c256147019..32e5e2bc2b 100644
--- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp
+++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp
@@ -231,15 +231,36 @@ void projectQmldirPaths(::ProjectExplorer::Target *target, QStringList &qmldirPa
+ "/qmldir");
}
+bool skipPath(const std::filesystem::path &path)
+{
+ auto directory = path.filename();
+ qDebug() << path.string().data();
+
+ bool skip = directory == "QtApplicationManager" || directory == "QtInterfaceFramework"
+ || directory == "QtOpcUa" || directory == "Qt3D" || directory == "Qt3D"
+ || directory == "Scene2D" || directory == "Scene3D" || directory == "QtWayland";
+ if (skip)
+ qDebug() << "skip" << path.string().data();
+
+ return skip;
+}
+
void qtQmldirPaths(::ProjectExplorer::Target *target, QStringList &qmldirPaths)
{
const QString installDirectory = qmlPath(target).toString();
const std::filesystem::path installDirectoryPath{installDirectory.toStdString()};
- for (const auto &entry : std::filesystem::recursive_directory_iterator{installDirectoryPath}) {
+ auto current = std::filesystem::recursive_directory_iterator{installDirectoryPath};
+ auto end = std::filesystem::end(current);
+ for (; current != end; ++current) {
+ const auto &entry = *current;
auto path = entry.path();
- if (entry.path().filename() == "qmldir") {
+ if (current.depth() < 3 && !current->is_regular_file() && skipPath(path)) {
+ current.disable_recursion_pending();
+ continue;
+ }
+ if (path.filename() == "qmldir") {
qmldirPaths.push_back(QString::fromStdU16String(path.generic_u16string()));
}
}