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 false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return prjNode->project()->addFilesToProduct(this, filePaths, prdNode->qbsProductData(),
|
return prjNode->project()->addFilesToProduct(filePaths, prdNode->qbsProductData(),
|
||||||
m_qbsGroupData, notAdded);
|
m_qbsGroupData, notAdded);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,7 +374,7 @@ bool QbsGroupNode::removeFiles(const QStringList &filePaths, QStringList *notRem
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return prjNode->project()->removeFilesFromProduct(this, filePaths, prdNode->qbsProductData(),
|
return prjNode->project()->removeFilesFromProduct(filePaths, prdNode->qbsProductData(),
|
||||||
m_qbsGroupData, notRemoved);
|
m_qbsGroupData, notRemoved);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,7 +387,7 @@ bool QbsGroupNode::renameFile(const QString &filePath, const QString &newFilePat
|
|||||||
if (!prdNode || !prdNode->qbsProductData().isValid())
|
if (!prdNode || !prdNode->qbsProductData().isValid())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return prjNode->project()->renameFileInProduct(this, filePath, newFilePath,
|
return prjNode->project()->renameFileInProduct(filePath, newFilePath,
|
||||||
prdNode->qbsProductData(), m_qbsGroupData);
|
prdNode->qbsProductData(), m_qbsGroupData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -574,8 +574,7 @@ bool QbsProductNode::addFiles(const QStringList &filePaths, QStringList *notAdde
|
|||||||
|
|
||||||
qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
||||||
if (grp.isValid()) {
|
if (grp.isValid()) {
|
||||||
return prjNode->project()->addFilesToProduct(this, filePaths, m_qbsProductData, grp,
|
return prjNode->project()->addFilesToProduct(filePaths, m_qbsProductData, grp, notAdded);
|
||||||
notAdded);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QTC_ASSERT(false, return false);
|
QTC_ASSERT(false, return false);
|
||||||
@@ -595,7 +594,7 @@ bool QbsProductNode::removeFiles(const QStringList &filePaths, QStringList *notR
|
|||||||
|
|
||||||
qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
||||||
if (grp.isValid()) {
|
if (grp.isValid()) {
|
||||||
return prjNode->project()->removeFilesFromProduct(this, filePaths, m_qbsProductData, grp,
|
return prjNode->project()->removeFilesFromProduct(filePaths, m_qbsProductData, grp,
|
||||||
notRemoved);
|
notRemoved);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -609,8 +608,7 @@ bool QbsProductNode::renameFile(const QString &filePath, const QString &newFileP
|
|||||||
return false;
|
return false;
|
||||||
const qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
const qbs::GroupData grp = findMainQbsGroup(m_qbsProductData);
|
||||||
QTC_ASSERT(grp.isValid(), return false);
|
QTC_ASSERT(grp.isValid(), return false);
|
||||||
return prjNode->project()->renameFileInProduct(this, filePath, newFilePath, m_qbsProductData,
|
return prjNode->project()->renameFileInProduct(filePath, newFilePath, m_qbsProductData, grp);
|
||||||
grp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void QbsProductNode::setQbsProductData(const qbs::Project &project, const qbs::ProductData prd)
|
void QbsProductNode::setQbsProductData(const qbs::Project &project, const qbs::ProductData prd)
|
||||||
|
@@ -300,27 +300,9 @@ bool QbsProject::ensureWriteableQbsFile(const QString &file)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
qbs::GroupData QbsProject::reRetrieveGroupData(const qbs::ProductData &oldProduct,
|
bool QbsProject::addFilesToProduct(const QStringList &filePaths,
|
||||||
const qbs::GroupData &oldGroup)
|
const qbs::ProductData &productData,
|
||||||
{
|
const qbs::GroupData &groupData, QStringList *notAdded)
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_qbsProject.isValid(), return false);
|
QTC_ASSERT(m_qbsProject.isValid(), return false);
|
||||||
QStringList allPaths = groupData.allFilePaths();
|
QStringList allPaths = groupData.allFilePaths();
|
||||||
@@ -338,17 +320,16 @@ bool QbsProject::addFilesToProduct(QbsBaseProjectNode *node, const QStringList &
|
|||||||
}
|
}
|
||||||
if (notAdded->count() != filePaths.count()) {
|
if (notAdded->count() != filePaths.count()) {
|
||||||
m_projectData = m_qbsProject.projectData();
|
m_projectData = m_qbsProject.projectData();
|
||||||
QbsGroupNode::setupFiles(node, reRetrieveGroupData(productData, groupData),
|
|
||||||
allPaths, QFileInfo(productFilePath).absolutePath(), false);
|
|
||||||
rootProjectNode()->update();
|
rootProjectNode()->update();
|
||||||
emit fileListChanged();
|
emit fileListChanged();
|
||||||
}
|
}
|
||||||
return notAdded->isEmpty();
|
return notAdded->isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QbsProject::removeFilesFromProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
|
bool QbsProject::removeFilesFromProduct(const QStringList &filePaths,
|
||||||
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
const qbs::ProductData &productData,
|
||||||
QStringList *notRemoved)
|
const qbs::GroupData &groupData,
|
||||||
|
QStringList *notRemoved)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(m_qbsProject.isValid(), return false);
|
QTC_ASSERT(m_qbsProject.isValid(), return false);
|
||||||
QStringList allPaths = groupData.allFilePaths();
|
QStringList allPaths = groupData.allFilePaths();
|
||||||
@@ -367,22 +348,20 @@ bool QbsProject::removeFilesFromProduct(QbsBaseProjectNode *node, const QStringL
|
|||||||
}
|
}
|
||||||
if (notRemoved->count() != filePaths.count()) {
|
if (notRemoved->count() != filePaths.count()) {
|
||||||
m_projectData = m_qbsProject.projectData();
|
m_projectData = m_qbsProject.projectData();
|
||||||
QbsGroupNode::setupFiles(node, reRetrieveGroupData(productData, groupData), allPaths,
|
|
||||||
QFileInfo(productFilePath).absolutePath(), false);
|
|
||||||
rootProjectNode()->update();
|
rootProjectNode()->update();
|
||||||
emit fileListChanged();
|
emit fileListChanged();
|
||||||
}
|
}
|
||||||
return notRemoved->isEmpty();
|
return notRemoved->isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QbsProject::renameFileInProduct(QbsBaseProjectNode *node, const QString &oldPath,
|
bool QbsProject::renameFileInProduct(const QString &oldPath, const QString &newPath,
|
||||||
const QString &newPath, const qbs::ProductData &productData,
|
const qbs::ProductData &productData,
|
||||||
const qbs::GroupData &groupData)
|
const qbs::GroupData &groupData)
|
||||||
{
|
{
|
||||||
if (newPath.isEmpty())
|
if (newPath.isEmpty())
|
||||||
return false;
|
return false;
|
||||||
QStringList dummy;
|
QStringList dummy;
|
||||||
if (!removeFilesFromProduct(node, QStringList() << oldPath, productData, groupData, &dummy))
|
if (!removeFilesFromProduct(QStringList(oldPath), productData, groupData, &dummy))
|
||||||
return false;
|
return false;
|
||||||
qbs::ProductData newProductData;
|
qbs::ProductData newProductData;
|
||||||
foreach (const qbs::ProductData &p, m_projectData.allProducts()) {
|
foreach (const qbs::ProductData &p, m_projectData.allProducts()) {
|
||||||
@@ -403,7 +382,7 @@ bool QbsProject::renameFileInProduct(QbsBaseProjectNode *node, const QString &ol
|
|||||||
if (!newGroupData.isValid())
|
if (!newGroupData.isValid())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return addFilesToProduct(node, QStringList() << newPath, newProductData, newGroupData, &dummy);
|
return addFilesToProduct(QStringList() << newPath, newProductData, newGroupData, &dummy);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QbsProject::invalidate()
|
void QbsProject::invalidate()
|
||||||
|
@@ -71,13 +71,12 @@ public:
|
|||||||
QStringList filesGeneratedFrom(const QString &sourceFile) const override;
|
QStringList filesGeneratedFrom(const QString &sourceFile) const override;
|
||||||
|
|
||||||
bool isProjectEditable() const;
|
bool isProjectEditable() const;
|
||||||
bool addFilesToProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
|
bool addFilesToProduct(const QStringList &filePaths, const qbs::ProductData &productData,
|
||||||
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
const qbs::GroupData &groupData, QStringList *notAdded);
|
||||||
QStringList *notAdded);
|
bool removeFilesFromProduct(const QStringList &filePaths,
|
||||||
bool removeFilesFromProduct(QbsBaseProjectNode *node, const QStringList &filePaths,
|
|
||||||
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
const qbs::ProductData &productData, const qbs::GroupData &groupData,
|
||||||
QStringList *notRemoved);
|
QStringList *notRemoved);
|
||||||
bool renameFileInProduct(QbsBaseProjectNode *node, const QString &oldPath,
|
bool renameFileInProduct(const QString &oldPath,
|
||||||
const QString &newPath, const qbs::ProductData &productData,
|
const QString &newPath, const qbs::ProductData &productData,
|
||||||
const qbs::GroupData &groupData);
|
const qbs::GroupData &groupData);
|
||||||
|
|
||||||
@@ -145,9 +144,6 @@ private:
|
|||||||
|
|
||||||
static bool ensureWriteableQbsFile(const QString &file);
|
static bool ensureWriteableQbsFile(const QString &file);
|
||||||
|
|
||||||
qbs::GroupData reRetrieveGroupData(const qbs::ProductData &oldProduct,
|
|
||||||
const qbs::GroupData &oldGroup);
|
|
||||||
|
|
||||||
const QString m_projectName;
|
const QString m_projectName;
|
||||||
QHash<ProjectExplorer::Target *, qbs::Project> m_qbsProjects;
|
QHash<ProjectExplorer::Target *, qbs::Project> m_qbsProjects;
|
||||||
qbs::Project m_qbsProject;
|
qbs::Project m_qbsProject;
|
||||||
|
Reference in New Issue
Block a user