X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FModelCreaDevManagerTree.cpp;h=64106b672c06401d47954b359b4d5ab16e50fda8;hb=8123a7d15f9698e1cdb7c8fc450e76497a6bfb0f;hp=4ae0ee2885920e0bb3d4975c435f7d014fa7dd40;hpb=41f7684f91c2a21b9db09d53404acfea645875e4;p=crea.git diff --git a/lib/creaDevManagerLib/ModelCreaDevManagerTree.cpp b/lib/creaDevManagerLib/ModelCreaDevManagerTree.cpp index 4ae0ee2..64106b6 100644 --- a/lib/creaDevManagerLib/ModelCreaDevManagerTree.cpp +++ b/lib/creaDevManagerLib/ModelCreaDevManagerTree.cpp @@ -7,15 +7,14 @@ #include "ModelCreaDevManagerTree.h" -#include -#include -#include -#include #include #include #include #include #include +#include +#include + ModelCreaDevManagerTree::ModelCreaDevManagerTree() { @@ -100,6 +99,38 @@ void ModelCreaDevManagerTree::populateNode(ModelCreaDevManagerTreeNode& node) //std::cout << "populating " << node.GetName() << " path " << node.GetPath() << "..." << std::endl; std::vector * nodes = new std::vector ; + std::string path = node.GetPath()+node.GetName()+"/"; + + wxDir dir(wxString(path.c_str())); + if (!dir.IsOpened()) + { + std::cerr << "Couldn't open the directory" << std::endl; + return; + } + + wxString fileName; + bool cont = dir.GetFirst(&fileName, wxEmptyString, wxDIR_DIRS); + while (cont) + { + ModelCreaDevManagerTreeNode innerNode = ModelCreaDevManagerTreeNode(path, crea::wx2std(fileName), wxDIR_DIRS, node.GetLevel()+1); + this->populateNode(innerNode); + nodes->push_back(innerNode); + cont = dir.GetNext(&fileName); + } + + cont = dir.GetFirst(&fileName, wxEmptyString, wxDIR_FILES); + while (cont) + { + ModelCreaDevManagerTreeNode innerNode = ModelCreaDevManagerTreeNode(path, crea::wx2std(fileName), wxDIR_FILES, node.GetLevel()+1); + nodes->push_back(innerNode); + cont = dir.GetNext(&fileName); + } + + sort (nodes->begin(), nodes->end(), CompareNodeItem); + node.SetChildren(*nodes); + + /* + DIR *dp; struct dirent *ep; @@ -133,7 +164,7 @@ void ModelCreaDevManagerTree::populateNode(ModelCreaDevManagerTreeNode& node) else { std::cerr << "Couldn't open the directory" << std::endl; - } + }*/ } void ModelCreaDevManagerTree::populateNode(std::string path)