diff --git a/src/project_manager/ros_project.cpp b/src/project_manager/ros_project.cpp index 82331b59..d96b5ab2 100644 --- a/src/project_manager/ros_project.cpp +++ b/src/project_manager/ros_project.cpp @@ -69,8 +69,7 @@ namespace Internal { static FolderNode *folderNode(const FolderNode *folder, const Utils::FilePath &directory) { - return static_cast(Utils::findOrDefault(folder->folderNodes(), - [&directory](const FolderNode *fn) { + return static_cast(folder->findChildFolderNode([&](FolderNode *fn) { return fn && fn->filePath() == directory; })); } diff --git a/src/project_manager/ros_project_nodes.cpp b/src/project_manager/ros_project_nodes.cpp index 38cd8027..e4a48f29 100644 --- a/src/project_manager/ros_project_nodes.cpp +++ b/src/project_manager/ros_project_nodes.cpp @@ -43,14 +43,15 @@ FileNode *ROSProjectNode::findFileNode(FolderNode *folder_node, const Utils::Fil if (file_node) return file_node; - for (FolderNode *fn : folder_node->folderNodes()) - { - file_node = findFileNode(fn, filePaths); - if (file_node) - return file_node; - } + folder_node->findChildFolderNode([&](FolderNode *folder_node) { + file_node = findFileNode(folder_node, filePaths); + return bool(file_node); + }); - return nullptr; + if (file_node) + return file_node; + else + return nullptr; } bool ROSProjectNode::showInSimpleTree() const