X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMMain.cpp;h=307decac4eb4bbcc96bcf191523abf5b7dc0409b;hb=e2223b619fa37daaf6103b34b39e789efc1a0b94;hp=9edeb6473390199421bdd00cc4ce43d0f11fd95b;hpb=39ca49498425bb3e3372604e9321dfe3a38e8874;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMMain.cpp b/lib/creaDevManagerLib/modelCDMMain.cpp index 9edeb64..307deca 100644 --- a/lib/creaDevManagerLib/modelCDMMain.cpp +++ b/lib/creaDevManagerLib/modelCDMMain.cpp @@ -2,7 +2,7 @@ # --------------------------------------------------------------------- # # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image -# pour la Santé) +# pour la Sant�) # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton # Previous Authors : Laurent Guigues, Jean-Pierre Roux # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil @@ -23,39 +23,155 @@ # The fact that you are presently reading this means that you have had # knowledge of the CeCILL-B license and that you accept its terms. # ------------------------------------------------------------------------ -*/ - - + */ /* * modelCDMMain.cpp * * Created on: 13/11/2012 - * Author: daniel + * Author: Daniel Felipe Gonzalez Obando */ #include "modelCDMMain.h" -#include +#include +#include +#include +#include + +#include "CDMUtilities.h" modelCDMMain::modelCDMMain() { - this->project = NULL; + //TODO: implement method } + modelCDMMain::~modelCDMMain() { - if (this->project != NULL) - delete this->project; + //TODO: implement method } -modelCDMProject* modelCDMMain::GetProject() +const modelCDMProject* modelCDMMain::GetProject() const { + //TODO: implement method return this->project; } -void modelCDMMain::SetProject(modelCDMProject* project) + +bool modelCDMMain::CreateProject( + const std::string& name, + const std::string& location, + std::string*& result, + const std::string& author, + const std::string& description) { - if(this->project != NULL && this->project != project) - delete this->project; - this->project = project; + //TODO: implement method + return true; } +bool modelCDMMain::OpenProject( + const std::string& path, + std::string*& result +) +{ + std::cout << "Selection path: "<< path << std::endl; + + //get fixed path + std::string pathFixed = CDMUtilities::fixPath(path); + std::cout << "Fixed selection path: "<< pathFixed << std::endl; + + //check if its binaries' folder + bool isBinary = false; + std::string pathBuild = ""; + + //check if Makefile file exists + std::string pathMakefile = pathFixed + "/Makefile"; + FILE* pFile = fopen(pathMakefile.c_str(), "r"); + + //is the binary folder + if (pFile != NULL) + { + fclose(pFile); + std::ifstream readFile; + readFile.open(pathMakefile.c_str()); + std::string word; + + while(!isBinary && readFile >> word) + { + //cout << word << endl; + if(word == "CMAKE_SOURCE_DIR") + { + readFile >> word; + readFile.ignore(); + getline(readFile, word, '\n'); + pathBuild = pathFixed; + pathFixed = word; + isBinary = true; + } + } + readFile.close(); + } + + //check if its source's folder + bool isSource = false; + std::string pathSource = ""; + //check if CMakeLists file exists + std::string pathCMakeLists = pathFixed + "/CMakeLists.txt"; + pFile = fopen(pathCMakeLists.c_str(), "r"); + + //is the source folder + if (pFile != NULL) + { + fclose(pFile); + std::ifstream readFile; + readFile.open(pathCMakeLists.c_str()); + std::string word; + + + while(!isSource && !readFile.eof()) + { + std::getline(readFile,word,'\n'); + int pos = word.find("PROJECT"); + if(pos != std::string::npos) + { + pathSource = pathFixed; + isSource = true; + } + } + readFile.close(); + } + + //if is source folder + if(isSource) + { + std::cout << "Project sources at: " << pathSource; + if(isBinary) + { + std::cout << ", and built in: " << pathBuild; + } + std::cout << std::endl; + } + else + { + result = new std::string("No source folder found. Please make sure to select either the project's build or source folder."); + return false; + } + + //TODO: create Project given the source folder + return true; +} + +bool modelCDMMain::RefreshProject( + std::string*& result +) +{ + //TODO: recreate the project using the project's path + return true; +} + +bool modelCDMMain::CloseProject( + std::string*& result +) +{ + //TODO: delete the project tree and leave it as NULL + return true; +}