X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOTreeHandlerImageAdder.cpp;h=b9291e1f31b0e3269f37ba1d70c7ac1624e0ffcb;hb=b0bee282f8a6c60d5d86495b9bdbc0b89309bf1f;hp=3f9d4aa8d32cb2512852cefeef2161d20b80e6f5;hpb=f2585049438c3630362b07e6029ddb0130a03818;p=creaImageIO.git diff --git a/src2/creaImageIOTreeHandlerImageAdder.cpp b/src2/creaImageIOTreeHandlerImageAdder.cpp index 3f9d4aa..b9291e1 100644 --- a/src2/creaImageIOTreeHandlerImageAdder.cpp +++ b/src2/creaImageIOTreeHandlerImageAdder.cpp @@ -1,9 +1,13 @@ #include -#include -#include -#include +#include +//#include +//#include -using namespace crea; +#include "boost/filesystem.hpp" + +namespace fs = boost::filesystem; + +//using namespace crea; namespace creaImageIO { @@ -29,7 +33,7 @@ namespace creaImageIO //===================================================================== bool TreeHandlerImageAdder::IsHandledFile( const std::string& filename) { - return (mReader.CanRead(filename,"")); + return (mReader.CanRead(filename)); } //===================================================================== @@ -42,6 +46,7 @@ namespace creaImageIO std::vector::const_iterator i; for (i=filenames.begin();i!=filenames.end();++i) { + mProgress.IncNumberScannedFiles(); if (IsHandledFile(*i)) { @@ -51,6 +56,7 @@ namespace creaImageIO mProgressSignal(mProgress); if (mProgress.GetStop()) break; } + SetNumberOfChildren(); } //===================================================================== @@ -60,16 +66,43 @@ namespace creaImageIO { mProgress.Reset(); AddDirectoryRecursor( directory, recurse ); + SetNumberOfChildren(); + GimmickDebugMessage(3,mProgress< children = mTreeHandler->GetTree().GetChildrenList(); + std::vector::iterator it; + for(it=children.begin();it!=children.end();++it) + { + SetNumberOfChildrenRecursor(*it); + } + } + //===================================================================== + void TreeHandlerImageAdder::SetNumberOfChildrenRecursor(tree::Node* node) + { + std::stringstream out; + out << node->GetChildrenList().size(); + mTreeHandler->SetAttribute(node,"D1111_0011",out.str()); + if(node->GetLevel()GetTree().GetNumberOfLevels()-2) + { + std::vector children = node->GetChildrenList(); + std::vector::iterator it; + for(it=children.begin();it!=children.end();++it) + { + SetNumberOfChildrenRecursor(*it); + } + } + } //===================================================================== void TreeHandlerImageAdder::AddFile( const std::string& filename ) { - + GimmickDebugMessage(4,"Adding '"< attr; mTreeHandler->GetTree().GetDescriptor().BuildAttributeMap(attr); @@ -87,8 +120,38 @@ namespace creaImageIO void TreeHandlerImageAdder::AddDirectoryRecursor(const std::string &dirpath, bool recursive) { + GimmickDebugMessage(4,"Scanning '"<status()) ) + { + if (recursive) AddDirectoryRecursor( itr->string(), recursive); + } + else + { + mProgress.IncNumberScannedFiles(); + if (IsHandledFile(itr->string())) + { + mProgress.IncNumberHandledFiles(); + AddFile( itr->string() ); + } + mProgressSignal(mProgress); + if (mProgress.GetStop()) break; + } + } + + } + + /* + std::string fileName; std::string dirName = dirpath; @@ -133,8 +196,9 @@ namespace creaImageIO cont = dir.GetNext(&filename); } } - - } + + */ + //=======================================================================