//---------------------------------------------------------------
QString
- GenerateName(const std::string& theFmt, int theId)
+ GenerateName(const std::string& theFmt, int /*theId*/) // theId was deprecated because of incorrect work IPAL21151
{
QString aName;
- if(theId > 0)
- aName.sprintf("%s:%d", theFmt.c_str(), theId);
- else
- aName.sprintf("%s", theFmt.c_str());
+ aName.sprintf("%s", theFmt.c_str());
+ int count = 0;
+
+ SalomeApp_Application* anApp =
+ dynamic_cast< SalomeApp_Application* >( SUIT_Session::session()->activeApplication() );
+ if ( anApp) {
+ SalomeApp_Study* aStudy = dynamic_cast<SalomeApp_Study*>( anApp->activeStudy() );
+
+ if(aStudy){
+ while (1) {
+ std::vector<_PTR(SObject)> aList = aStudy->studyDS()->FindObjectByName(aName.toLatin1().data(), "VISU");
+ if ( aList.size() > 0 ) {
+ count++;
+ aName.sprintf("%s:%d", theFmt.c_str(), count);
+ } else
+ break;
+ }
+ }
+ }
+
+ if(count > 0)
+ aName.sprintf("%s:%d", theFmt.c_str(), count);
+
return aName;
}