forked from qt-creator/qt-creator
QbsProjectManager: Fix project node operations.
The qbsProjectData() member function always returned the top-level project data, which messed up a couple of things, for instance "build sub-projects" and the node tree updates. Instead, return the project data corresponding to the node. Change-Id: If40c441c62334f0069a5fe3cb4873cf973baf135 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
@@ -752,6 +752,7 @@ void QbsProjectNode::update(const qbs::ProjectData &prjData)
|
|||||||
|
|
||||||
removeProjectNodes(toRemove);
|
removeProjectNodes(toRemove);
|
||||||
addProjectNodes(toAdd);
|
addProjectNodes(toAdd);
|
||||||
|
m_projectData = prjData;
|
||||||
}
|
}
|
||||||
|
|
||||||
QbsProject *QbsProjectNode::project() const
|
QbsProject *QbsProjectNode::project() const
|
||||||
@@ -764,11 +765,6 @@ const qbs::Project QbsProjectNode::qbsProject() const
|
|||||||
return project()->qbsProject();
|
return project()->qbsProject();
|
||||||
}
|
}
|
||||||
|
|
||||||
const qbs::ProjectData QbsProjectNode::qbsProjectData() const
|
|
||||||
{
|
|
||||||
return project()->qbsProjectData();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool QbsProjectNode::showInSimpleTree() const
|
bool QbsProjectNode::showInSimpleTree() const
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ public:
|
|||||||
|
|
||||||
virtual QbsProject *project() const;
|
virtual QbsProject *project() const;
|
||||||
const qbs::Project qbsProject() const;
|
const qbs::Project qbsProject() const;
|
||||||
const qbs::ProjectData qbsProjectData() const;
|
const qbs::ProjectData qbsProjectData() const { return m_projectData; }
|
||||||
|
|
||||||
bool showInSimpleTree() const;
|
bool showInSimpleTree() const;
|
||||||
|
|
||||||
@@ -182,6 +182,7 @@ private:
|
|||||||
QbsProjectNode *findProjectNode(const QString &name);
|
QbsProjectNode *findProjectNode(const QString &name);
|
||||||
|
|
||||||
static QIcon m_projectIcon;
|
static QIcon m_projectIcon;
|
||||||
|
qbs::ProjectData m_projectData;
|
||||||
};
|
};
|
||||||
|
|
||||||
// --------------------------------------------------------------------
|
// --------------------------------------------------------------------
|
||||||
|
|||||||
@@ -243,6 +243,7 @@ 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, allPaths, QFileInfo(productFilePath).absolutePath(), true);
|
QbsGroupNode::setupFiles(node, allPaths, QFileInfo(productFilePath).absolutePath(), true);
|
||||||
|
m_rootProjectNode->update();
|
||||||
}
|
}
|
||||||
return notAdded->isEmpty();
|
return notAdded->isEmpty();
|
||||||
}
|
}
|
||||||
@@ -268,6 +269,7 @@ 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, allPaths, QFileInfo(productFilePath).absolutePath(), true);
|
QbsGroupNode::setupFiles(node, allPaths, QFileInfo(productFilePath).absolutePath(), true);
|
||||||
|
m_rootProjectNode->update();
|
||||||
}
|
}
|
||||||
return notRemoved->isEmpty();
|
return notRemoved->isEmpty();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user