From 69c4770e68caad8b376a099282705acf570b4b42 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 8 Oct 2013 14:17:46 +0200 Subject: [PATCH] QbsProjectManager: Make sub-project files available in the locator. They are currently ignored. Change-Id: I9a13d37e857d03f988884031bbba81a7f3b95d02 Reviewed-by: Tobias Hunger --- src/plugins/qbsprojectmanager/qbsproject.cpp | 29 ++++++++++++-------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index d6b4c262bb9..95fb74f021c 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -156,21 +156,28 @@ ProjectNode *QbsProject::rootProjectNode() const return m_rootProjectNode; } +static void collectFilesForProject(const qbs::ProjectData &project, QSet &result) +{ + result.insert(project.location().fileName()); + foreach (const qbs::ProductData &prd, project.products()) { + foreach (const qbs::GroupData &grp, prd.groups()) { + foreach (const QString &file, grp.allFilePaths()) + result.insert(file); + result.insert(grp.location().fileName()); + } + result.insert(prd.location().fileName()); + } + foreach (const qbs::ProjectData &subProject, project.subProjects()) + collectFilesForProject(subProject, result); +} + QStringList QbsProject::files(Project::FilesMode fileMode) const { Q_UNUSED(fileMode); + if (!m_rootProjectNode || !m_rootProjectNode->qbsProjectData().isValid()) + return QStringList(); QSet result; - if (m_rootProjectNode && m_rootProjectNode->qbsProjectData().isValid()) { - foreach (const qbs::ProductData &prd, m_rootProjectNode->qbsProjectData().allProducts()) { - foreach (const qbs::GroupData &grp, prd.groups()) { - foreach (const QString &file, grp.allFilePaths()) - result.insert(file); - result.insert(grp.location().fileName()); - } - result.insert(prd.location().fileName()); - } - result.insert(m_rootProjectNode->qbsProjectData().location().fileName()); - } + collectFilesForProject(m_rootProjectNode->qbsProjectData(), result); return result.toList(); }