X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=lib%2FcreaDevManagerLib%2FmodelCDMMain.cpp;h=307decac4eb4bbcc96bcf191523abf5b7dc0409b;hb=c2943a0172ac4e3f6e2d7352913faa793887370a;hp=9cde4040584ab81970c422a6cac131361a935fe7;hpb=f887a0013d53146a6a280a0f88514df95ea6bfda;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMMain.cpp b/lib/creaDevManagerLib/modelCDMMain.cpp index 9cde404..307deca 100644 --- a/lib/creaDevManagerLib/modelCDMMain.cpp +++ b/lib/creaDevManagerLib/modelCDMMain.cpp @@ -1,32 +1,177 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# 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 +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# 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; +}