aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSami Shalayel <sami.shalayel@qt.io>2025-09-08 16:49:41 +0200
committerSami Shalayel <sami.shalayel@qt.io>2025-09-15 09:48:34 +0200
commitbfda4459c61b36d91d4584cf2c084380bafecacf (patch)
treebfb5371e80f0c84d828a02484a05ca78648fb365
parent7cd0db124f4d9a04d006376c096f92d26330bea9 (diff)
QQmlCodeModel: split buildPathsForFileUrl() method
Split the buildPathsForFileUrl method into a static helper method. Future commits will use it to add early exits in buildPathsForFileUrl(). Change-Id: Icadb89e8ea04bcf3e07f6b163c2cf9213e7d5945 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r--src/qmlls/qqmlcodemodel.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/qmlls/qqmlcodemodel.cpp b/src/qmlls/qqmlcodemodel.cpp
index 9a9cf7b3a1..b9bf9043d5 100644
--- a/src/qmlls/qqmlcodemodel.cpp
+++ b/src/qmlls/qqmlcodemodel.cpp
@@ -647,6 +647,25 @@ QStringList QQmlCodeModel::importPaths() const
return {};
}
+static QStringList withDependentBuildDirectories(QStringList &&buildPaths)
+{
+ // add dependent build directories
+ QStringList res;
+ std::reverse(buildPaths.begin(), buildPaths.end());
+ const int maxDeps = 4;
+ while (!buildPaths.isEmpty()) {
+ QString bPath = buildPaths.last();
+ buildPaths.removeLast();
+ res += bPath;
+ if (QFile::exists(bPath + u"/_deps") && bPath.split(u"/_deps/"_s).size() < maxDeps) {
+ QDir d(bPath + u"/_deps");
+ for (const QFileInfo &fInfo : d.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot))
+ buildPaths.append(fInfo.absoluteFilePath());
+ }
+ }
+ return res;
+}
+
QStringList QQmlCodeModel::buildPathsForFileUrl(const QByteArray &url)
{
QList<QByteArray> roots;
@@ -716,21 +735,7 @@ QStringList QQmlCodeModel::buildPathsForFileUrl(const QByteArray &url)
}
}
}
- // add dependent build directories
- QStringList res;
- std::reverse(buildPaths.begin(), buildPaths.end());
- const int maxDeps = 4;
- while (!buildPaths.isEmpty()) {
- QString bPath = buildPaths.last();
- buildPaths.removeLast();
- res += bPath;
- if (QFile::exists(bPath + u"/_deps") && bPath.split(u"/_deps/"_s).size() < maxDeps) {
- QDir d(bPath + u"/_deps");
- for (const QFileInfo &fInfo : d.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot))
- buildPaths.append(fInfo.absoluteFilePath());
- }
- }
- return res;
+ return withDependentBuildDirectories(std::move(buildPaths));
}
void QQmlCodeModel::setDocumentationRootPath(const QString &path)