X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FCDMUtilities.h;h=02c3b8285d7d852d76d9139fe21a068e9c3c0ee2;hb=327c33758d25e6ff1f90f9ab74ea219eaed934a9;hp=9bfa1d98a144608e42dc1a78252c19bd9b206840;hpb=cfa883d25e73975f73c20fefc1ec2c947d827938;p=crea.git diff --git a/lib/creaDevManagerLib/CDMUtilities.h b/lib/creaDevManagerLib/CDMUtilities.h index 9bfa1d9..02c3b82 100644 --- a/lib/creaDevManagerLib/CDMUtilities.h +++ b/lib/creaDevManagerLib/CDMUtilities.h @@ -40,7 +40,9 @@ namespace CDMUtilities { - //path slash + /** + * Path slash + */ #ifdef _WIN32 // ------ Windows static std::string SLASH = "\\"; @@ -51,10 +53,12 @@ namespace CDMUtilities static std::string SLASH = "/"; #endif - //text editor program + /** + * Text editor program + */ #ifdef _WIN32 // ------ Windows - //TODO: implementation for windows + static std::string TEXT_EDITOR = "notepad"; #elif __APPLE__ // ------ Apple //TODO: implementation for apple @@ -62,10 +66,12 @@ namespace CDMUtilities static std::string TEXT_EDITOR = "gedit"; #endif - //file explorer program + /** + * File explorer program + */ #ifdef _WIN32 // ------ Windows - //TODO: implementation for windows + static std::string FILE_EXPLORER = "explorer"; #elif __APPLE__ // ------ Apple //TODO: implementation for apple @@ -73,10 +79,12 @@ namespace CDMUtilities static std::string FILE_EXPLORER = "nautilus"; #endif - //terminal program + /** + * Terminal program + */ #ifdef _WIN32 // ------ Windows - //TODO: implementation for windows + static std::string TERMINAL = "start cmd.exe"; #elif __APPLE__ // ------ Apple //TODO: implementation for apple @@ -85,9 +93,24 @@ namespace CDMUtilities #endif + /** + * Structure that handles the split method for c++ + * It calls the split method to split a string given certain delimiters. + */ struct splitter { + /** + * Enum to allow or not empty resulting strings after performing splits. + */ enum empties_t { empties_ok, no_empties }; + /** + * Method to split a string given a set of delimiter characters. + * @param result Resulting container. + * @param s String to be splitted. + * @param delimiters Delimiter characters to split the string. + * @param empties Either allow or not empty resulting strings after performing split. + * @return Resulting container. + */ template static Container& split ( @@ -98,14 +121,61 @@ namespace CDMUtilities ); }; + /** + * Fixes a given path to avoid double slash directories + * @param path Unfixed path. + * @return Fixed path. + */ const std::string fixPath(const std::string& path); + /** + * Opens the default text editor. If a file is given, then it tries to open the given file. + * @param file Full path to the file. + * @return True if there was an error on the execution of the operation. + */ int openTextEditor(const std::string& file = ""); + /** + * Opens the system file explorer on the given file path + * @param file Path of the desired folder to open. + * @return True if there was an error on the execution of the operation. + */ int openFileExplorer(const std::string& file = ""); + /** + * Opens a file with a given command. + * @param file Full path of the file to open. + * @param command Command to execute the file with. + * @return True if there was an error on the execution of the operation. + */ int openFileWithCommand(const std::string& file, const std::string& command); + /** + * Opens the BBTK Graphical Editor + * @return True if there was an error on the execution of the operation. + */ int openBBEditor(); + /** + * Opens the minitools or the creaTools + * @return True if there was an error on the execution of the operation. + */ int openCreaToolsTools(); - int openTerminal(); + /** + * Open a command line interpreter and executes the given command if any. + * @param command Command to execute. + * @return True if there was an error on the execution of the operation. + */ + int openTerminal(const std::string& command = ""); + /** + * Creates a blank class(.h and .cpp files). + * @param name Name of the new class. + * @param path Path where the class is to be created. + * @return True if the class was successfully created. + */ + bool createEmptyClass(const std::string& name, const std::string& path); + /** + * Creates a string replacing each \ by \\. + * @param line String to stringify. + * @return line stringified. + */ + std::string stringify(const std::string& line); }; #endif /* CDMUTILITIES_H_ */