]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
PR: dump correction when sudies from older versions are loaded
authorprascle <prascle>
Fri, 12 Apr 2013 15:28:08 +0000 (15:28 +0000)
committerprascle <prascle>
Fri, 12 Apr 2013 15:28:08 +0000 (15:28 +0000)
src/GEOM_I/GEOM_DumpPython.cc

index 54d374521b1cbd6bc991915e980ccd4a781db9e5..010a24842ba07e88723af569b53fc2db2f788dec 100644 (file)
@@ -55,6 +55,29 @@ void RemoveTabulation( TCollection_AsciiString& theScript )
   theScript = aString.c_str();
 }
 
+//=======================================================================
+//function : ConvertV6toV7
+//purpose  : dump elements are stored when study is saved,
+//           and kept when study is reloaded.
+//           When a study from an older version is loaded,
+//           the dump must be post processed in case of syntax modification.
+//           In V7.2, geompy.GEOM --> GEOM
+//=======================================================================
+void ConvertV6toV7( TCollection_AsciiString& theScript )
+{
+  std::string aString( theScript.ToCString() );
+  std::string::size_type aPos = 0;
+  while( aPos < aString.length() )
+  {
+    aPos = aString.find( "geompy.GEOM", aPos );
+    if( aPos == std::string::npos )
+      break;
+    aString.replace( aPos, 11, "GEOM" );
+    aPos++;
+  }
+  theScript = aString.c_str();
+}
+
 //=======================================================================
 //function : DumpPython
 //purpose  : 
@@ -177,6 +200,8 @@ Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
   if( !isMultiFile ) // remove unnecessary tabulation
     RemoveTabulation( aScript );
 
+  ConvertV6toV7( aScript ); //convert scripts related to studies saved in SALOME V6 and older
+  
   int aLen = aScript.Length(); 
   unsigned char* aBuffer = new unsigned char[aLen+1];
   strcpy((char*)aBuffer, aScript.ToCString());