From 68b1859f582cddd22a1492c6f06dac5cfd2763f0 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Fri, 17 Feb 2017 13:20:26 +0100 Subject: [PATCH] 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 Reviewed-by: Christian Kandeler --- src/plugins/qbsprojectmanager/qbsnodes.cpp | 14 +++--- src/plugins/qbsprojectmanager/qbsproject.cpp | 45 ++++++-------------- src/plugins/qbsprojectmanager/qbsproject.h | 12 ++---- 3 files changed, 22 insertions(+), 49 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsnodes.cpp b/src/plugins/qbsprojectmanager/qbsnodes.cpp index e84fb6413a4..149fa1167e7 100644 --- a/src/plugins/qbsprojectmanager/qbsnodes.cpp +++ b/src/plugins/qbsprojectmanager/qbsnodes.cpp @@ -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) diff --git a/src/plugins/qbsprojectmanager/qbsproject.cpp b/src/plugins/qbsprojectmanager/qbsproject.cpp index da7c5a2d295..22baf5a80a1 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.cpp +++ b/src/plugins/qbsprojectmanager/qbsproject.cpp @@ -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() diff --git a/src/plugins/qbsprojectmanager/qbsproject.h b/src/plugins/qbsprojectmanager/qbsproject.h index c28f403ff3b..e76887b9ed2 100644 --- a/src/plugins/qbsprojectmanager/qbsproject.h +++ b/src/plugins/qbsprojectmanager/qbsproject.h @@ -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 m_qbsProjects; qbs::Project m_qbsProject;