X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMFile.cpp;h=dcafc8e1c8e0995babff83ef93376d0e6d294f69;hb=f4451b0dfa9bfa593ada3e9462570b6ca250f0d7;hp=8e8a40faa5966dfb828dc6a157db3071399cfcfb;hpb=73787c5a26e6b218b9e6c716dafc7d16330441e7;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMFile.cpp b/lib/creaDevManagerLib/modelCDMFile.cpp index 8e8a40f..dcafc8e 100644 --- a/lib/creaDevManagerLib/modelCDMFile.cpp +++ b/lib/creaDevManagerLib/modelCDMFile.cpp @@ -44,24 +44,20 @@ 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(); } @@ -69,14 +65,41 @@ 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; + } }