QbsProjectManager: Take product profiles into account.

- Identify products by the name/profile tuple instead of just the name.
- If the product's profile differs from that of the overall
project, add it to the visual representation.

Change-Id: I4a89db60911277977458370157e435472bbe428f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This commit is contained in:
Christian Kandeler
2014-09-05 12:08:15 +02:00
parent 48f19e925b
commit 38320b15f5
7 changed files with 92 additions and 67 deletions

View File

@@ -132,7 +132,7 @@ class QbsProductNode : public QbsBaseProjectNode
Q_OBJECT
public:
explicit QbsProductNode(const qbs::ProductData &prd);
explicit QbsProductNode(const qbs::Project &project, const qbs::ProductData &prd);
bool isEnabled() const;
bool showInSimpleTree() const;
@@ -140,7 +140,7 @@ public:
bool addFiles(const QStringList &filePaths, QStringList *notAdded = 0);
bool removeFiles(const QStringList &filePaths, QStringList *notRemoved = 0);
void setQbsProductData(const qbs::ProductData prd);
void setQbsProductData(const qbs::Project &project, const qbs::ProductData prd);
const qbs::ProductData qbsProductData() const { return m_qbsProductData; }
QList<ProjectExplorer::RunConfiguration *> runConfigurations() const;
@@ -164,8 +164,6 @@ public:
explicit QbsProjectNode(const QString &path);
~QbsProjectNode();
bool addFiles(const QStringList &filePaths, QStringList *notAdded = 0);
virtual QbsProject *project() const;
const qbs::Project qbsProject() const;
const qbs::ProjectData qbsProjectData() const { return m_projectData; }
@@ -173,12 +171,12 @@ public:
bool showInSimpleTree() const;
protected:
void update(const qbs::ProjectData &prjData);
void update(const qbs::Project &qbsProject, const qbs::ProjectData &prjData);
private:
void ctor();
QbsProductNode *findProductNode(const QString &name);
QbsProductNode *findProductNode(const QString &uniqueName);
QbsProjectNode *findProjectNode(const QString &name);
static QIcon m_projectIcon;