From 92c5811d43dbb5ba22d15fef38225104732c9b60 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 19 Dec 2007 15:05:55 +0000 Subject: [PATCH] PAL16617 (Modification/Transformation operations with copy don't create a new mesh) + QString UniqueMeshName(const char* theBaseName, const char* thePostfix); --- src/SMESHGUI/SMESHGUI_MeshUtils.cxx | 24 ++++++++++++++++++++++++ src/SMESHGUI/SMESHGUI_MeshUtils.h | 3 +++ 2 files changed, 27 insertions(+) diff --git a/src/SMESHGUI/SMESHGUI_MeshUtils.cxx b/src/SMESHGUI/SMESHGUI_MeshUtils.cxx index b8e5c3055..ccbdaff7d 100644 --- a/src/SMESHGUI/SMESHGUI_MeshUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_MeshUtils.cxx @@ -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(""); + } + } diff --git a/src/SMESHGUI/SMESHGUI_MeshUtils.h b/src/SMESHGUI/SMESHGUI_MeshUtils.h index 81cdb67c1..c7e93a065 100644 --- a/src/SMESHGUI/SMESHGUI_MeshUtils.h +++ b/src/SMESHGUI/SMESHGUI_MeshUtils.h @@ -27,12 +27,15 @@ #include "SALOMEconfig.h" #include CORBA_SERVER_HEADER(SMESH_Mesh) +#include + namespace SMESH{ SMESHGUI_EXPORT SMESH_Mesh_var GetMeshByIO(const Handle(SALOME_InteractiveObject)& theIO); + QString UniqueMeshName(const char* theBaseName, const char* thePostfix); } -- 2.39.2