Salome HOME
PAL16617 (Modification/Transformation operations with copy don't create a new mesh)
authoreap <eap@opencascade.com>
Fri, 23 Nov 2007 11:00:01 +0000 (11:00 +0000)
committereap <eap@opencascade.com>
Fri, 23 Nov 2007 11:00:01 +0000 (11:00 +0000)
+  QString UniqueMeshName(const char* theBaseName, const char* thePostfix);

src/SMESHGUI/SMESHGUI_MeshUtils.cxx
src/SMESHGUI/SMESHGUI_MeshUtils.h

index b8e5c305577653443872bd72959ded9e0f944eca..ccbdaff7d5855e096ec46ea9cdd8bcc07e2902a8 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "SMESHGUI_MeshUtils.h"
 #include "SMESHGUI_Utils.h"
+#include "SALOMEDSClient_Study.hxx"
 
 #include "SALOMEconfig.h"
 #include CORBA_SERVER_HEADER(SMESH_Group)
@@ -44,4 +45,27 @@ namespace SMESH
     return SMESH_Mesh::_nil();
   }
 
+  QString UniqueMeshName(const char* theBaseName, const char* thePostfix)
+  {
+    QString baseName = theBaseName;
+    if ( thePostfix/* && !name.contains( postfix )*/) { // add postfix
+      baseName += "_";
+      baseName += thePostfix;
+    }
+    if(_PTR(Study) aStudy = GetActiveStudyDocument()) {
+      QString name = baseName;
+      while ( !aStudy->FindObjectByName( name.latin1(), "SMESH" ).empty() ) {
+        int nb = 0;
+        if ( name[ name.length()-1 ].isNumber() ) {
+          int nbBeg = name.findRev("_");
+          nb = name.right( name.length() - nbBeg - 1 ).toInt();
+          name = name.left( nbBeg );
+        }
+        name += QString("_%1").arg( nb+1 );
+      }
+      return name;
+    }
+    return QString("");
+  }
+
 }
index 15a2b54722af0610e4f88785df4011c584d8cde6..f5897a3d0eeb14b067ee5294c0ff71ab9d88efd0 100644 (file)
 #include "SALOMEconfig.h"
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
 
+#include <qstring.h>
+
 
 namespace SMESH{
 
   SMESH_Mesh_var GetMeshByIO(const Handle(SALOME_InteractiveObject)& theIO);
 
+  QString UniqueMeshName(const char* theBaseName, const char* thePostfix);
 }