]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
0021478: EDF 2083 ALL: Write the version of Salome used to create the study in the...
authorvsr <vsr@opencascade.com>
Thu, 18 Oct 2012 12:29:58 +0000 (12:29 +0000)
committervsr <vsr@opencascade.com>
Thu, 18 Oct 2012 12:29:58 +0000 (12:29 +0000)
Additional fix: whe old study is opened, automatically add "unknown" version tag for all components

src/SALOMEDSImpl/SALOMEDSImpl_StudyManager.cxx

index efa5daf1263eb92b7e57e659ef786ed91b48f0ff..cae31faee05287967a9ab8fd1c67cd6f630d52f8 100644 (file)
@@ -40,6 +40,7 @@
 #include "SALOMEDSImpl_SComponent.hxx"
 #include "SALOMEDSImpl_GenericAttribute.hxx"
 #include "SALOMEDSImpl_ScalarVariable.hxx"
+#include "SALOMEDSImpl_IParameters.hxx"
 #include <map>
 
 #include "HDFOI.hxx"
@@ -245,6 +246,20 @@ SALOMEDSImpl_Study* SALOMEDSImpl_StudyManager::Open(const std::string& aUrl)
 
   delete hdf_file; // all related hdf objects will be deleted
 
+  // unlock study if it is locked, to set components versions
+  StudyUnlocker unlock(Study);
+
+  //For old studies we have to add "unknown" version tag for all stored components
+  SALOMEDSImpl_SComponentIterator itcomponent = Study->NewComponentIterator();
+  for (; itcomponent.More(); itcomponent.Next())
+  {
+    SALOMEDSImpl_SComponent sco = itcomponent.Value();
+    std::string aCompType = sco.GetComment();
+    if ( aCompType == SALOMEDSImpl_IParameters::getDefaultVisualComponent() ) continue;
+    if ( Study->GetProperties()->GetComponentVersions( aCompType ).empty() )
+      Study->GetProperties()->SetComponentVersion( aCompType, "" ); // empty version means "unknown"
+  }
+
   return Study;
 }