]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
IPAL21151 TC5.1.2: Incorrect name of new presentation V4_1_0_maintainance_20090803 V4_1_0_maintainance_20090811 V4_1_0_maintainance_20090817 V4_1_0_maintainance_20090824
authordmv <dmv@opencascade.com>
Mon, 27 Jul 2009 13:46:11 +0000 (13:46 +0000)
committerdmv <dmv@opencascade.com>
Mon, 27 Jul 2009 13:46:11 +0000 (13:46 +0000)
src/VISU_I/VISUConfig.cc

index b38ce0fef2969cd8240ffd38540b642aa7ff0161..a25b0e58421857c8f79bdd2804e552cf9b41bb8f 100644 (file)
@@ -677,13 +677,32 @@ namespace VISU
 
   //---------------------------------------------------------------
   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.latin1(), "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;
   }