X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src2%2FcreaImageIOTreeHandlerImageAdder.cpp;h=b9291e1f31b0e3269f37ba1d70c7ac1624e0ffcb;hb=b0bee282f8a6c60d5d86495b9bdbc0b89309bf1f;hp=ebfd2c594412a353fbcd025292497e1fa1168b3f;hpb=f1caae70392f96f30dd90eb073be6be10fbf1caa;p=creaImageIO.git diff --git a/src2/creaImageIOTreeHandlerImageAdder.cpp b/src2/creaImageIOTreeHandlerImageAdder.cpp index ebfd2c5..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,30 +46,17 @@ namespace creaImageIO std::vector::const_iterator i; for (i=filenames.begin();i!=filenames.end();++i) { + mProgress.IncNumberScannedFiles(); if (IsHandledFile(*i)) { mProgress.IncNumberHandledFiles(); AddFile(*i); - - - /* - if (progress) - { - std::string mess("Adding "); - mess += *i; - if (!progress->Update( (int)(summary.added_images*999./nbf), - std2wx(mess))) - { - // Some file was added hence we must return true ! - summary.cancelled_by_user = true; - break; - } - } - */ } mProgressSignal(mProgress); + if (mProgress.GetStop()) break; } + SetNumberOfChildren(); } //===================================================================== @@ -75,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); @@ -102,16 +120,38 @@ namespace creaImageIO void TreeHandlerImageAdder::AddDirectoryRecursor(const std::string &dirpath, bool recursive) { - // std::cout << "dir : "<Pulse(std2wx(mess)); + // If is directory & recurse : do recurse + if ( fs::is_directory(itr->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; @@ -134,37 +174,31 @@ namespace creaImageIO wxFileName wxffn(dir.GetName(),filename); std::string ffn = wx2std(wxffn.GetFullPath()); - // std::cout << "file : "<