X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGEOM_I%2FGEOM_Gen_i.cc;h=ce76a6fad321fadcb6e13a16a32171f34d125927;hb=a5e6595533c838ad0d1ae3373c7b05ecfd149089;hp=b36a652f7981dab7152f75e29e12ebb7b078a979;hpb=1d552bfd2c0e1b0262a5ea5d0e1dd03b16ea90a8;p=modules%2Fgeom.git diff --git a/src/GEOM_I/GEOM_Gen_i.cc b/src/GEOM_I/GEOM_Gen_i.cc index b36a652f7..ce76a6fad 100644 --- a/src/GEOM_I/GEOM_Gen_i.cc +++ b/src/GEOM_I/GEOM_Gen_i.cc @@ -274,31 +274,23 @@ SALOMEDS::SObject_ptr GEOM_Gen_i::PublishInStudy(SALOMEDS::Study_ptr theStudy, aNameAttrib->SetValue(aShapeName.ToCString()); //Set NoteBook variables used in the object creation - TCollection_AsciiString aParams(aShape->GetParameters()); - if(!aParams.IsEmpty()) { - TCollection_AsciiString aVars; - int nbVars = 0; - int n = 1; - TCollection_AsciiString aParam = aParams.Token(":",1); - while( aParam.Length() != 0 ) { - aParam = aParams.Token(":",n); - if(theStudy->IsVariable(aParam.ToCString())){ - aVars+=aParam; - nbVars++; - } - if(aParam.Length() == 0) - break; - aVars+=":"; - n++; - } - aVars.Remove(aVars.Length(),1); - if(nbVars > 0 ) { - anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeString"); - SALOMEDS::AttributeString_var aStringAttrib = SALOMEDS::AttributeString::_narrow(anAttr); - aStringAttrib->SetValue(aVars.ToCString()); + bool isFound = false; + TCollection_AsciiString aVars; + SALOMEDS::ListOfStrings_var aListOfVars = theStudy->ParseVariables(aShape->GetParameters()); + for(int i = 0, n = aListOfVars->length(); i < n; i++) { + if(theStudy->IsVariable(aListOfVars[i].in())) { + aVars += TCollection_AsciiString(aListOfVars[i].in()); + isFound = true; } + if(i != n-1) + aVars += ":"; } - + if(isFound) { + anAttr = aStudyBuilder->FindOrCreateAttribute(aResultSO, "AttributeString"); + SALOMEDS::AttributeString_var aStringAttrib = SALOMEDS::AttributeString::_narrow(anAttr); + aStringAttrib->SetValue(aVars.ToCString()); + } + //Set a name of the GEOM object aShape->SetName(theName);