From fdf8191ec7d0287b342543d4160d1849ecdee2f4 Mon Sep 17 00:00:00 2001 From: adv Date: Thu, 16 Jan 2014 11:40:41 +0000 Subject: [PATCH] One useful method added. --- src/HYDROData/HYDROData_Tool.cxx | 24 ++++++++++++++++++++++-- src/HYDROData/HYDROData_Tool.h | 11 ++++++++++- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/HYDROData/HYDROData_Tool.cxx b/src/HYDROData/HYDROData_Tool.cxx index d754ec0f..072b0d22 100644 --- a/src/HYDROData/HYDROData_Tool.cxx +++ b/src/HYDROData/HYDROData_Tool.cxx @@ -18,6 +18,8 @@ #include +static int aMaxNameId = std::numeric_limits::max(); + void HYDROData_Tool::WriteStringsToFile( QFile& theFile, const QStringList& theStrings, const QString& theSep ) @@ -93,8 +95,7 @@ QString HYDROData_Tool::GenerateObjectName( const Handle(HYDROData_Document)& th aName = thePrefix; } else { int anId = 1; - int aMaxId = std::numeric_limits::max(); - while( anId < aMaxId ) + while( anId < aMaxNameId ) { aName = QString( "%1_%2" ).arg( thePrefix ).arg( QString::number( anId++ ) ); @@ -191,3 +192,22 @@ void HYDROData_Tool::UpdateChildObjectName( const QString& theO theObject->SetName( anObjName ); } +QString HYDROData_Tool::GenerateNameForPython( const MapOfTreatedObjects& theTreatedObjects, + const QString& thePrefix ) +{ + QString aName = thePrefix; + if ( !theTreatedObjects.contains( aName ) ) + return aName; + + int anId = 1; + while( anId < aMaxNameId ) + { + aName = QString( "%1_%2" ).arg( thePrefix ).arg( QString::number( anId++ ) ); + + // check that there are no other objects with the same name + if ( !theTreatedObjects.contains( aName ) ) + break; + } + + return aName; +} \ No newline at end of file diff --git a/src/HYDROData/HYDROData_Tool.h b/src/HYDROData/HYDROData_Tool.h index 99fd1754..6dc38124 100644 --- a/src/HYDROData/HYDROData_Tool.h +++ b/src/HYDROData/HYDROData_Tool.h @@ -33,7 +33,7 @@ public: /** * \brief Generate name for new object. - * \param theModule module + * \param theDoc document * \param thePrefix name prefix * \param theUsedNames list of already used names * \param theIsTryToUsePurePrefix if true - the prefix will be returned if the name equal to the prefix is not busy @@ -83,6 +83,15 @@ public: const QString& theNewStr, const Handle(HYDROData_Entity)& theObject ); + + /** + * \brief Generate name for new object in python environment. + * \param theTreatedObjects objects which was alredy created by dump operation + * \param thePrefix name prefix + * \return generated name + */ + static QString GenerateNameForPython( const MapOfTreatedObjects& theTreatedObjects, + const QString& thePrefix ); }; inline bool ValuesEquals( const double& theFirst, const double& theSecond ) -- 2.39.2