X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMFile.cpp;h=dcafc8e1c8e0995babff83ef93376d0e6d294f69;hb=e622abafafec5f3887413020502eebf8631cd853;hp=6fcfab6560982f1d1d2b75dd8a49e9c9f8091115;hpb=f0d6beb7af51921d5245cd04e307e69993044dfc;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMFile.cpp b/lib/creaDevManagerLib/modelCDMFile.cpp index 6fcfab6..dcafc8e 100644 --- a/lib/creaDevManagerLib/modelCDMFile.cpp +++ b/lib/creaDevManagerLib/modelCDMFile.cpp @@ -34,6 +34,7 @@ #include "modelCDMFile.h" +#include #include #include @@ -43,34 +44,62 @@ modelCDMFile::modelCDMFile() { } -modelCDMFile::modelCDMFile(const std::string& path, const int& level) +modelCDMFile::modelCDMFile(modelCDMIProjectTreeNode* parent, const std::string& path, const std::string& name, const int& level) { + std::cout << "creating file: " + path + "\n"; + this->parent = parent; this->children.clear(); this->level = level; - - std::vector words; - std::string delimiters; - //TODO::fix for windows - delimiters = "/"; - CDMUtilities::splitter::split(words, path, delimiters, CDMUtilities::splitter::no_empties); - this->name = words[words.size()-1]; - + this->name = name; this->path = path; this->type = wxDIR_FILES; + + std::ifstream in(path.c_str(), std::ifstream::in | std::ifstream::binary); + in.seekg(0, std::ifstream::end); + this->length = in.tellg(); + in.close(); + } modelCDMFile::~modelCDMFile() { } -bool modelCDMFile::OpenFile(std::string*& result) +bool modelCDMFile::OpenFile(std::string*& result, const std::string& command) { - //TODO: implement method + if (!CDMUtilities::openFileWithCommand(path, command)) return true; + else + { + result = new std::string("Couldn't open file with command " + command + "."); + return false; + } } const bool modelCDMFile::Refresh(std::string*& result) { - //TODO: implement method + //std::cout << "refreshing file " << this->name << std::endl; + std::ifstream in((this->path).c_str()); + if(!in.is_open()) + { + in.close(); + return false; + } + std::ifstream in2(path.c_str(), std::ifstream::in | std::ifstream::binary); + in2.seekg(0, std::ifstream::end); + this->length = in2.tellg(); + in2.close(); + return true; +} + +const bool modelCDMFile::OpenInFileExplorer(std::string*& result) const +{ + std::string pth = this->path.substr(0, path.size() - name.size() - 1); + if (!CDMUtilities::openFileExplorer(pth)) return true; + else + { + result = new std::string("Couldn't open file."); + return false; + } }