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

@@ -65,14 +65,13 @@ QmlProject::QmlProject(Internal::Manager *manager, const Utils::FileName &fileNa
setProjectManager(manager);
setDocument(new Internal::QmlProjectFile(this, fileName));
DocumentManager::addDocument(document(), true);
setRootProjectNode(new Internal::QmlProjectNode(this));
setProjectContext(Context(QmlProjectManager::Constants::PROJECTCONTEXT));
setProjectLanguages(Context(ProjectExplorer::Constants::LANG_QMLJS));
m_projectName = projectFilePath().toFileInfo().completeBaseName();
m_rootNode = new Internal::QmlProjectNode(this);
projectManager()->registerProject(this);
}
@@ -81,7 +80,6 @@ QmlProject::~QmlProject()
projectManager()->unregisterProject(this);
delete m_projectItem.data();
delete m_rootNode;
}
void QmlProject::addedTarget(Target *target)
@@ -177,7 +175,7 @@ void QmlProject::parseProject(RefreshOptions options)
}
}
}
m_rootNode->refresh();
rootProjectNode()->refresh();
}
if (options & Configuration) {
@@ -193,7 +191,7 @@ void QmlProject::refresh(RefreshOptions options)
parseProject(options);
if (options & Files)
m_rootNode->refresh();
rootProjectNode()->refresh();
if (!modelManager())
return;
@@ -323,9 +321,9 @@ bool QmlProject::supportsKit(Kit *k, QString *errorMessage) const
return true;
}
ProjectNode *QmlProject::rootProjectNode() const
Internal::QmlProjectNode *QmlProject::rootProjectNode() const
{
return m_rootNode;
return static_cast<Internal::QmlProjectNode *>(Project::rootProjectNode());
}
QStringList QmlProject::files(FilesMode) const

View File

@@ -34,6 +34,7 @@
#include "qmlprojectmanager_global.h"
#include "qmlprojectmanager.h"
#include "qmlprojectnodes.h"
#include <projectexplorer/project.h>
@@ -47,10 +48,7 @@ namespace QmlProjectManager {
class QmlProjectItem;
namespace Internal {
class QmlProjectFile;
class QmlProjectNode;
} // namespace Internal
namespace Internal { class QmlProjectFile; }
class QMLPROJECTMANAGER_EXPORT QmlProject : public ProjectExplorer::Project
{
@@ -67,7 +65,7 @@ public:
bool supportsKit(ProjectExplorer::Kit *k, QString *errorMessage) const override;
ProjectExplorer::ProjectNode *rootProjectNode() const override;
Internal::QmlProjectNode *rootProjectNode() const override;
QStringList files(FilesMode fileMode) const override;
bool validProjectFile() const;
@@ -118,8 +116,6 @@ private:
QStringList m_files;
QPointer<QmlProjectItem> m_projectItem;
Internal::QmlProjectNode *m_rootNode;
};
} // namespace QmlProjectManager