forked from qt-creator/qt-creator
qbs: Simplify add/remove file code
There is no need to call setupFiles on the QbsGroupNode before calling update() on the root node. That will just redo the work anyway. Change-Id: I54048395f87dd6fb5436f5d9d47b97e82460b568 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -352,7 +352,7 @@ bool QbsGroupNode::addFiles(const QStringList &filePaths, QStringList *notAdded)
|
||||
return false;
|
||||
}
|
||||
|
||||
return prjNode->project()->addFilesToProduct(this, filePaths, prdNode->qbsProductData(),
|
||||
return prjNode->project()->addFilesToProduct(filePaths, prdNode->qbsProductData(),
|
||||
m_qbsGroupData, notAdded);
|
||||
}
|
||||
|
||||
@@ -374,7 +374,7 @@ bool QbsGroupNode::removeFiles(const QStringList &filePaths, QStringList *notRem
|
||||
return false;
|
||||
}
|
||||
|
||||
return prjNode->project()->removeFilesFromProduct(this, filePaths, prdNode->qbsProductData(),
|
||||
return prjNode->project()->removeFilesFromProduct(filePaths, prdNode->qbsProductData(),
|
||||
m_qbsGroupData, notRemoved);
|
||||
}
|
||||
|
||||
@@ -387,7 +387,7 @@ bool QbsGroupNode::renameFile(const QString &filePath, const QString &newFilePat
|
||||
if (!prdNode || !prdNode->qbsProductData().isValid())
|
||||
return false;
|
||||
|
||||
return prjNode->project()->renameFileInProduct(this, filePath, newFilePath,
|
||||
return prjNode->project()->renameFileInProduct(filePath, newFilePath,
|
||||
prdNode->qbsProductData(), m_qbsGroupData);
|
||||
}
|
||||
|
||||
@@ -574,8 +574,7 @@ bool QbsProductNode::addFiles(const QStringList &filePaths, QStringList *notAdde
|
||||
|
||||
qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
||||
if (grp.isValid()) {
|
||||
return prjNode->project()->addFilesToProduct(this, filePaths, m_qbsProductData, grp,
|
||||
notAdded);
|
||||
return prjNode->project()->addFilesToProduct(filePaths, m_qbsProductData, grp, notAdded);
|
||||
}
|
||||
|
||||
QTC_ASSERT(false, return false);
|
||||
@@ -595,7 +594,7 @@ bool QbsProductNode::removeFiles(const QStringList &filePaths, QStringList *notR
|
||||
|
||||
qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
||||
if (grp.isValid()) {
|
||||
return prjNode->project()->removeFilesFromProduct(this, filePaths, m_qbsProductData, grp,
|
||||
return prjNode->project()->removeFilesFromProduct(filePaths, m_qbsProductData, grp,
|
||||
notRemoved);
|
||||
}
|
||||
|
||||
@@ -609,8 +608,7 @@ bool QbsProductNode::renameFile(const QString &filePath, const QString &newFileP
|
||||
return false;
|
||||
const qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
||||
QTC_ASSERT(grp.isValid(), return false);
|
||||
return prjNode->project()->renameFileInProduct(this, filePath, newFilePath, m_qbsProductData,
|
||||
grp);
|
||||
return prjNode->project()->renameFileInProduct(filePath, newFilePath, m_qbsProductData, grp);
|
||||
}
|
||||
|
||||
void QbsProductNode::setQbsProductData(const qbs::Project &project, const qbs::ProductData prd)
|
||||
|
@@ -300,27 +300,9 @@ 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)
|
||||
bool QbsProject::addFilesToProduct(const QStringList &filePaths,
|
||||
const qbs::ProductData &productData,
|
||||
const qbs::GroupData &groupData, QStringList *notAdded)
|
||||
{
|
||||
QTC_ASSERT(m_qbsProject.isValid(), return false);
|
||||
QStringList allPaths = groupData.allFilePaths();
|
||||
@@ -338,17 +320,16 @@ bool QbsProject::addFilesToProduct(QbsBaseProjectNode *node, const QStringList &
|
||||
}
|
||||
if (notAdded->count() != filePaths.count()) {
|
||||
m_projectData = m_qbsProject.projectData();
|
||||
QbsGroupNode::setupFiles(node, reRetrieveGroupData(productData, groupData),
|
||||
allPaths, QFileInfo(productFilePath).absolutePath(), false);
|
||||
rootProjectNode()->update();
|
||||
emit fileListChanged();
|
||||
}
|
||||
return notAdded->isEmpty();
|
||||
}
|
||||
|
||||
bool QbsProject::removeFilesFromProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
|
||||
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
||||
QStringList *notRemoved)
|
||||
bool QbsProject::removeFilesFromProduct(const QStringList &filePaths,
|
||||
const qbs::ProductData &productData,
|
||||
const qbs::GroupData &groupData,
|
||||
QStringList *notRemoved)
|
||||
{
|
||||
QTC_ASSERT(m_qbsProject.isValid(), return false);
|
||||
QStringList allPaths = groupData.allFilePaths();
|
||||
@@ -367,22 +348,20 @@ bool QbsProject::removeFilesFromProduct(QbsBaseProjectNode *node, const QStringL
|
||||
}
|
||||
if (notRemoved->count() != filePaths.count()) {
|
||||
m_projectData = m_qbsProject.projectData();
|
||||
QbsGroupNode::setupFiles(node, reRetrieveGroupData(productData, groupData), allPaths,
|
||||
QFileInfo(productFilePath).absolutePath(), false);
|
||||
rootProjectNode()->update();
|
||||
emit fileListChanged();
|
||||
}
|
||||
return notRemoved->isEmpty();
|
||||
}
|
||||
|
||||
bool QbsProject::renameFileInProduct(QbsBaseProjectNode *node, const QString &oldPath,
|
||||
const QString &newPath, const qbs::ProductData &productData,
|
||||
const qbs::GroupData &groupData)
|
||||
bool QbsProject::renameFileInProduct(const QString &oldPath, const QString &newPath,
|
||||
const qbs::ProductData &productData,
|
||||
const qbs::GroupData &groupData)
|
||||
{
|
||||
if (newPath.isEmpty())
|
||||
return false;
|
||||
QStringList dummy;
|
||||
if (!removeFilesFromProduct(node, QStringList() << oldPath, productData, groupData, &dummy))
|
||||
if (!removeFilesFromProduct(QStringList(oldPath), productData, groupData, &dummy))
|
||||
return false;
|
||||
qbs::ProductData newProductData;
|
||||
foreach (const qbs::ProductData &p, m_projectData.allProducts()) {
|
||||
@@ -403,7 +382,7 @@ bool QbsProject::renameFileInProduct(QbsBaseProjectNode *node, const QString &ol
|
||||
if (!newGroupData.isValid())
|
||||
return false;
|
||||
|
||||
return addFilesToProduct(node, QStringList() << newPath, newProductData, newGroupData, &dummy);
|
||||
return addFilesToProduct(QStringList() << newPath, newProductData, newGroupData, &dummy);
|
||||
}
|
||||
|
||||
void QbsProject::invalidate()
|
||||
|
@@ -71,13 +71,12 @@ public:
|
||||
QStringList filesGeneratedFrom(const QString &sourceFile) const override;
|
||||
|
||||
bool isProjectEditable() const;
|
||||
bool addFilesToProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
|
||||
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
||||
QStringList *notAdded);
|
||||
bool removeFilesFromProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
|
||||
bool addFilesToProduct(const QStringList &filePaths, const qbs::ProductData &productData,
|
||||
const qbs::GroupData &groupData, QStringList *notAdded);
|
||||
bool removeFilesFromProduct(const QStringList &filePaths,
|
||||
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
||||
QStringList *notRemoved);
|
||||
bool renameFileInProduct(QbsBaseProjectNode *node, const QString &oldPath,
|
||||
bool renameFileInProduct(const QString &oldPath,
|
||||
const QString &newPath, const qbs::ProductData &productData,
|
||||
const qbs::GroupData &groupData);
|
||||
|
||||
@@ -145,9 +144,6 @@ private:
|
||||
|
||||
static bool ensureWriteableQbsFile(const QString &file);
|
||||
|
||||
qbs::GroupData reRetrieveGroupData(const qbs::ProductData &oldProduct,
|
||||
const qbs::GroupData &oldGroup);
|
||||
|
||||
const QString m_projectName;
|
||||
QHash<ProjectExplorer::Target *, qbs::Project> m_qbsProjects;
|
||||
qbs::Project m_qbsProject;
|
||||
|
Reference in New Issue
Block a user