diff options
author | Sami Shalayel <sami.shalayel@qt.io> | 2025-09-08 16:49:41 +0200 |
---|---|---|
committer | Sami Shalayel <sami.shalayel@qt.io> | 2025-09-15 09:48:34 +0200 |
commit | bfda4459c61b36d91d4584cf2c084380bafecacf (patch) | |
tree | bfb5371e80f0c84d828a02484a05ca78648fb365 | |
parent | 7cd0db124f4d9a04d006376c096f92d26330bea9 (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.cpp | 35 |
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) |