X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FModelAPI%2FModelAPI_Tools.cpp;h=1e57d36b76113351ad2aff3d4c04837c88fd2837;hb=80926f787b594a2e9b77ee5bd22f517bdb910f07;hp=f22b73c23c1ce295cf320d64d933fa12440a4992;hpb=75e77d680594278a2da06c25fb6dbbad178e9fcd;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Tools.cpp b/src/ModelAPI/ModelAPI_Tools.cpp index f22b73c23..1e57d36b7 100755 --- a/src/ModelAPI/ModelAPI_Tools.cpp +++ b/src/ModelAPI/ModelAPI_Tools.cpp @@ -382,6 +382,7 @@ bool removeFeaturesAndReferences(const std::set& theFeatures, return ModelAPI_Tools::removeFeatures(aFeatures, false); } +//*********************************************************************** bool removeFeatures(const std::set& theFeatures, const bool theFlushRedisplay) { @@ -406,6 +407,7 @@ bool removeFeatures(const std::set& theFeatures, return true; } +//*********************************************************************** // Fills the references list by all references of the feature from the references map. // This is a recusive method to find references by next found feature in the map of references. // \param theFeature a feature to find references @@ -623,8 +625,9 @@ void getConcealedResults(const FeaturePtr& theFeature, } } -std::string getDefaultName(const std::shared_ptr& theResult, - const int theResultIndex) +std::pair getDefaultName( + const std::shared_ptr& theResult, + const int theResultIndex) { typedef std::list< std::pair < std::string, std::list > > ListOfReferences; @@ -646,7 +649,7 @@ std::string getDefaultName(const std::shared_ptr& theResult, if (aCompSolidRes == *anIt) break; aDefaultName << "_" << (aCompSolidResultIndex + 1) << "_" << (theResultIndex + 1); - return aDefaultName.str(); + return std::pair(aDefaultName.str(), false); } DataPtr aData = anOwner->data(); @@ -693,7 +696,11 @@ std::string getDefaultName(const std::shared_ptr& theResult, ResultCompSolidPtr aParentCompSolid = ModelAPI_Tools::compSolidOwner(anObjRes); if (aParentCompSolid) anObjRes = aParentCompSolid; - return anObjRes->data()->name(); + + // return name of reference result only if it has been renamed by the user, + // in other case compose a default name + if (anObjRes->data()->hasUserDefinedName()) + return std::pair(anObjRes->data()->name(), true); } } @@ -704,7 +711,7 @@ std::string getDefaultName(const std::shared_ptr& theResult, // add unique prefix starting from second if (theResultIndex > 0 || theResult->groupName() == ModelAPI_ResultBody::group()) aDefaultName << "_" << theResultIndex + 1; - return aDefaultName.str(); + return std::pair(aDefaultName.str(), false); } } // namespace ModelAPI_Tools