QbsProjectManager: Assign types to source files.

At the moment, all source files get the type "unknown",
so certain code in other plugins that looks for e.g.
Qt resource files never finds any.

Task-number: QBS-762
Change-Id: I71b798980b7ca318f2b4e7871148ba72703f8d83
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
Christian Kandeler
2015-03-10 16:41:59 +01:00
parent cc469f6466
commit 008def4f36
4 changed files with 66 additions and 14 deletions

View File

@@ -254,6 +254,25 @@ bool QbsProject::ensureWriteableQbsFile(const QString &file)
return true;
}
qbs::GroupData QbsProject::reRetrieveGroupData(const qbs::ProductData &oldProduct,
const qbs::GroupData &oldGroup)
{
qbs::GroupData newGroup;
foreach (const qbs::ProductData &pd, m_projectData.allProducts()) {
if (uniqueProductName(pd) == uniqueProductName(oldProduct)) {
foreach (const qbs::GroupData &gd, pd.groups()) {
if (gd.location() == oldGroup.location()) {
newGroup = gd;
break;
}
}
break;
}
}
QTC_CHECK(newGroup.isValid());
return newGroup;
}
bool QbsProject::addFilesToProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
const qbs::ProductData &productData, const qbs::GroupData &groupData, QStringList *notAdded)
{
@@ -273,7 +292,8 @@ bool QbsProject::addFilesToProduct(QbsBaseProjectNode *node, const QStringList &
}
if (notAdded->count() != filePaths.count()) {
m_projectData = m_qbsProject.projectData();
QbsGroupNode::setupFiles(node, allPaths, QFileInfo(productFilePath).absolutePath(), true);
QbsGroupNode::setupFiles(node, reRetrieveGroupData(productData, groupData),
allPaths, QFileInfo(productFilePath).absolutePath(), true);
m_rootProjectNode->update();
}
return notAdded->isEmpty();
@@ -300,7 +320,8 @@ bool QbsProject::removeFilesFromProduct(QbsBaseProjectNode *node, const QStringL
}
if (notRemoved->count() != filePaths.count()) {
m_projectData = m_qbsProject.projectData();
QbsGroupNode::setupFiles(node, allPaths, QFileInfo(productFilePath).absolutePath(), true);
QbsGroupNode::setupFiles(node, reRetrieveGroupData(productData, groupData), allPaths,
QFileInfo(productFilePath).absolutePath(), true);
m_rootProjectNode->update();
}
return notRemoved->isEmpty();