QbsProjectManager: Make sub-project files available in the locator.

They are currently ignored.

Change-Id: I9a13d37e857d03f988884031bbba81a7f3b95d02
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Christian Kandeler
2013-10-08 14:17:46 +02:00
committed by Tobias Hunger
parent c61610b259
commit 69c4770e68

View File

@@ -156,21 +156,28 @@ ProjectNode *QbsProject::rootProjectNode() const
return m_rootProjectNode;
}
static void collectFilesForProject(const qbs::ProjectData &project, QSet<QString> &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<QString> 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();
}