const std::list<ResultPtr>& aResults = theFeature->results();
std::list<ResultPtr>::const_iterator aResIt = aResults.begin();
for (int i = 0; aResIt != aResults.end(); ++aResIt, ++i) {
- std::string aDefaultName = ModelAPI_Tools::getDefaultName(*aResIt, i);
+ std::pair<std::string, bool> aName = ModelAPI_Tools::getDefaultName(*aResIt, i);
+ std::string aDefaultName = aName.first;
std::string aResName = (*aResIt)->data()->name();
bool isUserDefined = !(isFeatureDefaultName && aDefaultName == aResName);
for (int j = 0; j < aNbSubs; ++j) {
ResultPtr aSub = aCompSolid->subResult(j);
std::string aSubName = aSub->data()->name();
- aDefaultName = ModelAPI_Tools::getDefaultName(aSub, j);
+ aName = ModelAPI_Tools::getDefaultName(aSub, j);
+ aDefaultName = aName.first;
bool isUserDefinedSubName = isUserDefined || aDefaultName != aSubName;
myNames[aSub] = EntityName(aSubName,
}
}
}
+ // dump folders if any
+ dumpPostponed(true);
return isOk;
}
// decrease composite features stack
--gCompositeStackDepth;
+ // dump folders if any
+ dumpPostponed(true);
return isOk;
}
if (isDumpSetName)
dumpEntitySetName();
// dump folders if any
- dumpPostponed();
+ dumpPostponed(true);
return isOk;
}
myPostponed.push_back(theEntity);
}
-void ModelHighAPI_Dumper::dumpPostponed()
+void ModelHighAPI_Dumper::dumpPostponed(bool theDumpFolders)
{
if (myDumpPostponedInProgress)
return;
std::list<EntityPtr>::const_iterator anIt = aPostponedCopy.begin();
for (; anIt != aPostponedCopy.end(); ++anIt) {
FolderPtr aFolder = std::dynamic_pointer_cast<ModelAPI_Folder>(*anIt);
- if (aFolder)
- dumpFolder(aFolder);
+ if (aFolder) {
+ if (theDumpFolders)
+ dumpFolder(aFolder);
+ else
+ myPostponed.push_back(*anIt);
+ }
else {
FeaturePtr aFeature = std::dynamic_pointer_cast<ModelAPI_Feature>(*anIt);
if (aFeature)