From 06ef82c3a76793020e528e38c67c05f5cdf6dc05 Mon Sep 17 00:00:00 2001 From: eap Date: Tue, 2 Jul 2013 12:02:33 +0000 Subject: [PATCH] 0022238: Study dump produced by SMESH refers to undefined variable names Remove "aStudyBuilder.RemoveObjectWithChildren(SO)" for SO whose creation command was removed or commented --- src/SMESH_I/SMESH_2smeshpy.cxx | 5 +++-- src/SMESH_I/SMESH_DumpPython.cxx | 27 ++++++++++++--------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/SMESH_I/SMESH_2smeshpy.cxx b/src/SMESH_I/SMESH_2smeshpy.cxx index 4f8ab30f1..5f8d54e7d 100644 --- a/src/SMESH_I/SMESH_2smeshpy.cxx +++ b/src/SMESH_I/SMESH_2smeshpy.cxx @@ -217,16 +217,17 @@ namespace { return; } } - // comment a command having not created Object + // comment a command with an Object that was not created in the script const _pyID& obj = cmd->GetObject(); if ( !obj.IsEmpty() && cmd->IsStudyEntry( obj ) && !presentObjects.count( obj )) { cmd->Comment(); - cmd->GetString() += " ### not created object" ; + cmd->GetString() += " ### not created Object" ; for ( int i = 0; i < cmd->GetNbResultValues(); i++ ) { _pyID objID = cmd->GetResultValue( i+1 ); theGen->ObjectCreationRemoved( objID ); // objID.SetName( name ) is not needed } + return; } const _pyID& result = cmd->GetResultValue(); if ( result.IsEmpty() || result.Value( 1 ) == '"' || result.Value( 1 ) == '\'' ) diff --git a/src/SMESH_I/SMESH_DumpPython.cxx b/src/SMESH_I/SMESH_DumpPython.cxx index 2314da3c1..c9ca6c870 100644 --- a/src/SMESH_I/SMESH_DumpPython.cxx +++ b/src/SMESH_I/SMESH_DumpPython.cxx @@ -994,7 +994,8 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl do { aName = aBaseName + (++objectCounter); } while (theObjectNames.IsBound(aName)); - seqRemoved.Append(aName); + if ( !aRemovedObjIDs.count( anEntry )) + seqRemoved.Append(aName); mapRemoved.Bind(anEntry, "1"); theObjectNames.Bind(anEntry, aName); } @@ -1033,7 +1034,6 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl anUpdatedScript += "\n\taStudyBuilder = theStudy.NewBuilder()"; } for (int ir = 1; ir <= seqRemoved.Length(); ir++) { - if ( aRemovedObjIDs.count( seqRemoved.Value(ir) )) continue; anUpdatedScript += "\n\tSO = theStudy.FindObjectIOR(theStudy.ConvertObjectToIOR("; anUpdatedScript += seqRemoved.Value(ir); // for object wrapped by class of smeshBuilder.py @@ -1044,12 +1044,8 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl } // Set object names - anUpdatedScript += "\n\t## set object names"; -// anUpdatedScript += "\n\t\tsmeshgui = salome.ImportComponentGUI(\"SMESH\")"; -// anUpdatedScript += "\n\t\tsmeshgui.Init(theStudy._get_StudyId())"; -// anUpdatedScript += "\n"; - TCollection_AsciiString aGUIName; + TCollection_AsciiString aGUIName, aSetNameScriptPart; Resource_DataMapOfAsciiStringAsciiString mapEntries; for (Standard_Integer i = 1; i <= aLen; i += 2) { @@ -1057,23 +1053,24 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl aName = geom->GetDumpName( anEntry.ToCString() ); if (aName.IsEmpty() && // Not a GEOM object theNames.IsBound(anEntry) && - !aRemovedObjIDs.count(anEntry) && // a command creating anEntry was erased + !aRemovedObjIDs.count(anEntry) && // A command creating anEntry was erased !mapEntries.IsBound(anEntry) && // Not yet processed !mapRemoved.IsBound(anEntry)) // Was not removed { aName = theObjectNames.Find(anEntry); aGUIName = theNames.Find(anEntry); mapEntries.Bind(anEntry, aName); - anUpdatedScript += helper + "\n\t" + aSMESHGen + ".SetName(" + aName; + aSetNameScriptPart += helper + "\n\t" + aSMESHGen + ".SetName(" + aName; if ( anEntry2AccessorMethod.IsBound( anEntry ) ) - anUpdatedScript += helper + "." + anEntry2AccessorMethod( anEntry ); - anUpdatedScript += helper + ", '" + aGUIName + "')"; + aSetNameScriptPart += helper + "." + anEntry2AccessorMethod( anEntry ); + aSetNameScriptPart += helper + ", '" + aGUIName + "')"; } } - - // Issue 0021249: removed (a similar block is dumped by SALOMEDSImpl_Study) - //anUpdatedScript += "\n\tif salome.sg.hasDesktop():"; - //anUpdatedScript += "\n\t\tsalome.sg.updateObjBrowser(0)"; + if ( !aSetNameScriptPart.IsEmpty() ) + { + anUpdatedScript += "\n\t## set object names"; + anUpdatedScript += aSetNameScriptPart; + } // ----------------------------------------------------------------- // store visual properties of displayed objects