Project: Add setRootProjectNode method

Add setRootProjectNode method and a default implementation of
rootProjectNode to Project. Use that in all derived classes.

Change-Id: Id28cde04457a20a8963d43020785ef9d77fea57c
Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
Tobias Hunger
2016-01-08 12:49:00 +01:00
parent 219b2d9c16
commit d144ea58e0
28 changed files with 101 additions and 159 deletions

View File

@@ -36,6 +36,7 @@
#include "editorconfiguration.h"
#include "kit.h"
#include "projectexplorer.h"
#include "projectnodes.h"
#include "target.h"
#include "session.h"
#include "settingsaccessor.h"
@@ -95,6 +96,7 @@ public:
Core::Id m_id;
Core::IDocument *m_document = 0;
IProjectManager *m_manager = 0;
ProjectNode *m_rootProjectNode = 0;
QList<Target *> m_targets;
Target *m_activeTarget = 0;
EditorConfiguration m_editorConfiguration;
@@ -111,8 +113,13 @@ public:
ProjectPrivate::~ProjectPrivate()
{
delete m_accessor;
// Make sure our root node is 0 when deleting
ProjectNode *oldNode = m_rootProjectNode;
m_rootProjectNode = 0;
delete oldNode;
delete m_document;
delete m_accessor;
}
Project::Project() : d(new ProjectPrivate)
@@ -432,6 +439,13 @@ void Project::setProjectManager(IProjectManager *manager)
d->m_manager = manager;
}
void Project::setRootProjectNode(ProjectNode *root)
{
ProjectNode *oldNode = d->m_rootProjectNode;
d->m_rootProjectNode = root;
delete oldNode;
}
Target *Project::restoreTarget(const QVariantMap &data)
{
Core::Id id = idFromMap(data);
@@ -522,6 +536,11 @@ IProjectManager *Project::projectManager() const
return d->m_manager;
}
ProjectNode *Project::rootProjectNode() const
{
return d->m_rootProjectNode;
}
Project::RestoreResult Project::fromMap(const QVariantMap &map, QString *errorMessage)
{
Q_UNUSED(errorMessage);