Qbs: Fix crashes when switching QbsRunConfigurations

Do not use pointers to qbs::(Group|Product|Project)Data. Those are
implicitly shared classes, and now have a isValid method so that
default constructed instances can be spotted.

Change-Id: Icd49fa517f2e17bc60cc82d103f479d3a2e7097a
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Tobias Hunger
2013-06-21 15:09:01 +02:00
parent 28be3fb83b
commit 161b818b23
7 changed files with 62 additions and 69 deletions

View File

@@ -148,19 +148,19 @@ class QbsProductNode : public QbsBaseProjectNode
Q_OBJECT
public:
explicit QbsProductNode(const qbs::ProductData *prd);
explicit QbsProductNode(const qbs::ProductData &prd);
bool isEnabled() const;
void setQbsProductData(const qbs::ProductData *prd);
const qbs::ProductData *qbsProductData() const { return m_qbsProductData; }
void setQbsProductData(const qbs::ProductData prd);
const qbs::ProductData qbsProductData() const { return m_qbsProductData; }
QList<ProjectExplorer::RunConfiguration *> runConfigurationsFor(Node *node);
private:
QbsGroupNode *findGroupNode(const QString &name);
const qbs::ProductData *m_qbsProductData;
qbs::ProductData m_qbsProductData;
static QIcon m_productIcon;
};
@@ -182,7 +182,7 @@ public:
QbsProject *project() const;
const qbs::Project *qbsProject() const;
const qbs::ProjectData *qbsProjectData() const;
const qbs::ProjectData qbsProjectData() const;
private:
void ctor();
@@ -193,7 +193,7 @@ private:
QbsProject *m_project;
const qbs::Project *m_qbsProject;
const qbs::ProjectData *m_qbsProjectData;
qbs::ProjectData m_qbsProjectData;
static QIcon m_projectIcon;
};
} // namespace Internal