forked from qt-creator/qt-creator
ProjectExplorer: Make FolderNodeFactory return an unique_ptr
Change-Id: I9b611c4a3ff0928b2078dc30a44eb39df67c8d89 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
@@ -727,16 +727,14 @@ ServerModeReader::addCMakeLists(CMakeProjectNode *root, const QList<FileNode *>
|
|||||||
= Utils::transform<QSet>(cmakeLists, [](const Node *n) { return n->filePath().parentDir(); });
|
= Utils::transform<QSet>(cmakeLists, [](const Node *n) { return n->filePath().parentDir(); });
|
||||||
root->addNestedNodes(cmakeLists, Utils::FileName(),
|
root->addNestedNodes(cmakeLists, Utils::FileName(),
|
||||||
[&cmakeDirs, &cmakeListsNodes](const Utils::FileName &fp)
|
[&cmakeDirs, &cmakeListsNodes](const Utils::FileName &fp)
|
||||||
-> ProjectExplorer::FolderNode * {
|
-> std::unique_ptr<ProjectExplorer::FolderNode> {
|
||||||
FolderNode *fn = nullptr;
|
|
||||||
if (cmakeDirs.contains(fp)) {
|
if (cmakeDirs.contains(fp)) {
|
||||||
CMakeListsNode *n = new CMakeListsNode(fp);
|
auto fn = std::make_unique<CMakeListsNode>(fp);
|
||||||
cmakeListsNodes.insert(fp, n);
|
cmakeListsNodes.insert(fp, fn.get());
|
||||||
fn = n;
|
return fn;
|
||||||
} else {
|
|
||||||
fn = new FolderNode(fp);
|
|
||||||
}
|
}
|
||||||
return fn;
|
|
||||||
|
return std::make_unique<FolderNode>(fp);
|
||||||
});
|
});
|
||||||
root->compress();
|
root->compress();
|
||||||
return cmakeListsNodes;
|
return cmakeListsNodes;
|
||||||
|
@@ -96,8 +96,8 @@ static FolderNode *recursiveFindOrCreateFolderNode(FolderNode *folder,
|
|||||||
// No FolderNode yet, so create it
|
// No FolderNode yet, so create it
|
||||||
auto tmp = factory(path);
|
auto tmp = factory(path);
|
||||||
tmp->setDisplayName(part);
|
tmp->setDisplayName(part);
|
||||||
parent->addNode(tmp);
|
next = tmp.get();
|
||||||
next = tmp;
|
parent->addNode(std::move(tmp));
|
||||||
}
|
}
|
||||||
parent = next;
|
parent = next;
|
||||||
}
|
}
|
||||||
|
@@ -221,11 +221,15 @@ public:
|
|||||||
QList<FileNode *> fileNodes() const;
|
QList<FileNode *> fileNodes() const;
|
||||||
FileNode *fileNode(const Utils::FileName &file) const;
|
FileNode *fileNode(const Utils::FileName &file) const;
|
||||||
QList<FolderNode *> folderNodes() const;
|
QList<FolderNode *> folderNodes() const;
|
||||||
using FolderNodeFactory = std::function<FolderNode *(const Utils::FileName &)>;
|
using FolderNodeFactory = std::function<std::unique_ptr<FolderNode>(const Utils::FileName &)>;
|
||||||
void addNestedNodes(const QList<FileNode *> &files, const Utils::FileName &overrideBaseDir = Utils::FileName(),
|
void addNestedNodes(const QList<FileNode *> &files, const Utils::FileName &overrideBaseDir = Utils::FileName(),
|
||||||
const FolderNodeFactory &factory = [](const Utils::FileName &fn) { return new FolderNode(fn); });
|
const FolderNodeFactory &factory = [](const Utils::FileName &fn) {
|
||||||
|
return std::make_unique<FolderNode>(fn);
|
||||||
|
});
|
||||||
void addNestedNode(FileNode *fileNode, const Utils::FileName &overrideBaseDir = Utils::FileName(),
|
void addNestedNode(FileNode *fileNode, const Utils::FileName &overrideBaseDir = Utils::FileName(),
|
||||||
const FolderNodeFactory &factory = [](const Utils::FileName &fn) { return new FolderNode(fn); });
|
const FolderNodeFactory &factory = [](const Utils::FileName &fn) {
|
||||||
|
return std::make_unique<FolderNode>(fn);
|
||||||
|
});
|
||||||
void compress();
|
void compress();
|
||||||
|
|
||||||
bool isAncesterOf(Node *n);
|
bool isAncesterOf(Node *n);
|
||||||
|
Reference in New Issue
Block a user