]> Creatis software - crea.git/blobdiff - lib/creaDevManagerLib/modelCDMProject.cpp
Feature #1711 CreaDevManager application implementation
[crea.git] / lib / creaDevManagerLib / modelCDMProject.cpp
index 520fc0e8d822c92d637a3e1b0e21920ff9df9729..aa6fdebcfe45432d06dce302ce0a4e05a4064dfe 100644 (file)
@@ -345,7 +345,7 @@ modelCDMIProjectTreeNode* modelCDMProject::CreatePackage(
   //fixing input parameters
   std::vector<std::string> words;
 
-  CDMUtilities::splitter::split(words,name," ",CDMUtilities::splitter::no_empties);
+  CDMUtilities::splitter::split(words,name," '/\"\\,.",CDMUtilities::splitter::no_empties);
   std::string nameFixed = "";
   for (int i = 0; i < (int)(words.size()); i++)
     {
@@ -353,7 +353,7 @@ modelCDMIProjectTreeNode* modelCDMProject::CreatePackage(
     }
 
   words.clear();
-  CDMUtilities::splitter::split(words,authors," ",CDMUtilities::splitter::no_empties);
+  CDMUtilities::splitter::split(words,authors," '/\"\\,.",CDMUtilities::splitter::no_empties);
   std::string authorFixed;
   for (int i = 0; i < (int)(words.size()); i++)
     {
@@ -362,13 +362,13 @@ modelCDMIProjectTreeNode* modelCDMProject::CreatePackage(
 
   words.clear();
   std::string descriptionFixed;
-  CDMUtilities::splitter::split(words,authorsEmail," ",CDMUtilities::splitter::no_empties);
+  CDMUtilities::splitter::split(words,authorsEmail," '/\"\\,",CDMUtilities::splitter::no_empties);
   for (int i = 0; i < (int)(words.size()); i++)
     {
-      descriptionFixed += words[i];
+      descriptionFixed += words[i] + "/";
     }
   words.clear();
-  CDMUtilities::splitter::split(words,description," ",CDMUtilities::splitter::no_empties);
+  CDMUtilities::splitter::split(words,description," '\"",CDMUtilities::splitter::no_empties);
   for (int i = 0; i < (int)(words.size()); i++)
     {
       descriptionFixed += "_" + words[i];
@@ -833,13 +833,34 @@ bool modelCDMProject::Connect(std::string*& result, const std::string& folder)
       return false;
     }
   //create plug command
-  std::string plugComm = "bbPlugPackage \"" + this->buildPath + "\" > \"" + this->buildPath + CDMUtilities::SLASH + "plugging.log\" 2>&1";
-  std::cout << "executing '" << plugComm << "'" << std::endl;
+  std::string plugComm = "bbPlugPackage \"" + this->buildPath + "\"";
+
+  std::string Comm = "gnome-terminal -e \"bash -c \\\"";
+    for (int i = 0; i < plugComm.size(); i++)
+      {
+        if(plugComm[i] == '"')
+          {
+            Comm+="\\\\\\\"";
+          }
+        else if(plugComm[i] == '\\')
+          {
+            Comm+="\\\\\\\\";
+          }
+        else
+          {
+            Comm.push_back(plugComm[i]);
+          }
+      }
+    Comm += "; echo -e '\\a'; bash";
+    Comm += "\\\"\"";
+
+
+  std::cout << "executing '" << Comm << "'" << std::endl;
   //execute plug command
-  if(system(plugComm.c_str()))
+  if(system(Comm.c_str()))
     {
       //if there was an error then report it
-      result = new std::string("There was an error plugging the packages of the project, please check the plugging.log in the build folder file to read more about the problem.");
+      result = new std::string("There was an error plugging the packages of the project, please check the console to read more about the problem.");
       return false;
     }
 #endif