ProjectExplorer: Use unique_ptr for Project::setRootProjectNode

Change-Id: If63a49d0eecfb93adcc6076fcb3208c87603af10
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
Tobias Hunger
2018-04-26 14:41:46 +02:00
parent 1f55ba9012
commit 5754d5accf
15 changed files with 38 additions and 42 deletions

View File

@@ -205,13 +205,13 @@ QStringList unreferencedBuildSystemFiles(const qbs::Project &p)
namespace QbsProjectManager {
namespace Internal {
QbsRootProjectNode *QbsNodeTreeBuilder::buildTree(QbsProject *project)
std::unique_ptr<QbsRootProjectNode> QbsNodeTreeBuilder::buildTree(QbsProject *project)
{
if (!project->qbsProjectData().isValid())
return nullptr;
return {};
auto root = new QbsRootProjectNode(project);
setupProjectNode(root, project->qbsProjectData(), project->qbsProject());
auto root = std::make_unique<QbsRootProjectNode>(project);
setupProjectNode(root.get(), project->qbsProjectData(), project->qbsProject());
auto buildSystemFiles
= new ProjectExplorer::FolderNode(project->projectDirectory(),
ProjectExplorer::NodeType::Folder,

View File

@@ -39,7 +39,7 @@ namespace Internal {
class QbsNodeTreeBuilder
{
public:
static QbsRootProjectNode *buildTree(QbsProject *project);
static std::unique_ptr<QbsRootProjectNode> buildTree(QbsProject *project);
};
} // namespace Internal

View File

@@ -526,9 +526,9 @@ void QbsProject::handleQbsParsingDone(bool success)
void QbsProject::rebuildProjectTree()
{
QbsProjectNode *newRoot = Internal::QbsNodeTreeBuilder::buildTree(this);
std::unique_ptr<QbsRootProjectNode> newRoot = Internal::QbsNodeTreeBuilder::buildTree(this);
setDisplayName(newRoot ? newRoot->displayName() : projectFilePath().toFileInfo().completeBaseName());
setRootProjectNode(newRoot);
setRootProjectNode(std::move(newRoot));
}
void QbsProject::handleRuleExecutionDone()