diff options
Diffstat (limited to 'src/plugins/projectexplorer/projectnodes.cpp')
-rw-r--r-- | src/plugins/projectexplorer/projectnodes.cpp | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index 4c82852954..e5c8a9a3c6 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -326,14 +326,13 @@ FilePath Node::pathOrDirectory(bool dir) const FilePath location; // Virtual Folder case // If there are files directly below or no subfolders, take the folder path - if (!folder->fileNodes().isEmpty() || folder->folderNodes().isEmpty()) { + auto Any = [](auto) { return true; }; + if (folder->findChildFileNode(Any) || !folder->findChildFolderNode(Any)) { location = m_filePath; } else { // Otherwise we figure out a commonPath from the subfolders FilePaths list; - const QList<FolderNode *> folders = folder->folderNodes(); - for (FolderNode *f : folders) - list << f->filePath(); + folder->forEachFolderNode([&](FolderNode *f) { list << f->filePath(); }); location = FileUtils::commonPath(list); } @@ -604,16 +603,6 @@ const QList<Node *> FolderNode::nodes() const return Utils::toRawPointer<QList>(m_nodes); } -QList<FileNode *> FolderNode::fileNodes() const -{ - QList<FileNode *> result; - for (const std::unique_ptr<Node> &n : m_nodes) { - if (FileNode *fn = n->asFileNode()) - result.append(fn); - } - return result; -} - FileNode *FolderNode::fileNode(const Utils::FilePath &file) const { return static_cast<FileNode *>(Utils::findOrDefault(m_nodes, @@ -623,16 +612,6 @@ FileNode *FolderNode::fileNode(const Utils::FilePath &file) const })); } -QList<FolderNode *> FolderNode::folderNodes() const -{ - QList<FolderNode *> result; - for (const std::unique_ptr<Node> &n : m_nodes) { - if (FolderNode *fn = n->asFolderNode()) - result.append(fn); - } - return result; -} - FolderNode *FolderNode::folderNode(const Utils::FilePath &directory) const { Node *node = Utils::findOrDefault(m_nodes, [directory](const std::unique_ptr<Node> &n) { @@ -705,8 +684,7 @@ void FolderNode::compress() compress(); } else { - for (FolderNode *fn : folderNodes()) - fn->compress(); + forEachFolderNode([&](FolderNode *fn) { fn->compress(); }); } } |