X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_DumpPython.cxx;h=d08e923e031c3633c494c32e8260386967dbd53f;hb=6eb4c261736600c952fd2f73b4d87d5ef11f522d;hp=2d5d08883168734146f5a55a9443f1eac45c8865;hpb=85b1cfc1f07d0b93d88803c6c0ccadf8f3349719;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_DumpPython.cxx b/src/SMESH_I/SMESH_DumpPython.cxx index 2d5d08883..d08e923e0 100644 --- a/src/SMESH_I/SMESH_DumpPython.cxx +++ b/src/SMESH_I/SMESH_DumpPython.cxx @@ -296,6 +296,24 @@ namespace SMESH return *this; } + TPythonDump& TPythonDump::operator<<(const SMESH::ListOfGroups * theList){ + if(theList && theList->length() > 0 ) { + SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); + SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy(); + myStream << "["; + int aListLen = theList->length(); + for(int i = 0 ; i < aListLen; i++){ + SALOMEDS::SObject_var aSObject = SMESH_Gen_i::ObjectToSObject(aStudy,(*theList)[i]); + if(!aSObject->_is_nil()) { + myStream << aSObject->GetID(); + i < (aListLen - 1) ? myStream<<", " : myStream<<"]"; + } + + } + } + return *this; + } + TCollection_AsciiString myLongStringStart( "TPythonDump::LongStringStart" ); TCollection_AsciiString myLongStringEnd ( "TPythonDump::LongStringEnd" ); @@ -363,7 +381,7 @@ namespace SMESH // find where literal begins int literalBeg = theFrom + myLongStringStart.Length(); // = 26 - char* typeLenStr = theText.ToCString() + literalBeg - 1; // = "7 Pattern!!! SALO...." + char* typeLenStr = (char*) theText.ToCString() + literalBeg - 1; // = "7 Pattern!!! SALO...." int typeLen = atoi ( typeLenStr ); // = 7 while ( *typeLenStr != ' ' ) { // look for ' ' after typeLen literalBeg++; // 26 -> 27 @@ -437,7 +455,7 @@ Engines::TMPFile* SMESH_Gen_i::DumpPython (CORBA::Object_ptr theStudy, // Add trace of API methods calls and replace study entries by names TCollection_AsciiString aScript = "### This file is generated by SALOME automatically by dump python functionality of SMESH component\n\n"; - aScript += DumpPython_impl(aStudy->StudyId(), aMap, aMapNames, + aScript += DumpPython_impl(aStudy, aMap, aMapNames, isPublished, isValidScript, aSavedTrace); int aLen = aScript.Length(); @@ -527,7 +545,7 @@ Handle(TColStd_HSequenceOfInteger) FindEntries (TCollection_AsciiString& theStri Standard_Integer aLen = theString.Length(); Standard_Boolean isFound = Standard_False; - char* arr = theString.ToCString(); + char* arr = (char*) theString.ToCString(); Standard_Integer i = 0, j; while(i < aLen) { @@ -598,13 +616,15 @@ namespace { */ //============================================================================= TCollection_AsciiString SMESH_Gen_i::DumpPython_impl - (int theStudyID, + (SALOMEDS::Study_ptr theStudy, Resource_DataMapOfAsciiStringAsciiString& theObjectNames, Resource_DataMapOfAsciiStringAsciiString& theNames, bool isPublished, bool& aValidScript, const TCollection_AsciiString& theSavedTrace) { + int aStudyID = theStudy->StudyId(); + TCollection_AsciiString helper; // to comfortably concatenate C strings TCollection_AsciiString aSmeshpy( SMESH_2smeshpy::SmeshpyName() ); TCollection_AsciiString aSMESHGen( SMESH_2smeshpy::GenName() ); @@ -655,7 +675,7 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl } // Dump trace of API methods calls - TCollection_AsciiString aNewLines = GetNewPythonLines(theStudyID); + TCollection_AsciiString aNewLines = GetNewPythonLines(aStudyID); if (aNewLines.Length() > 0) { aScript += helper + "\n" + aNewLines; } @@ -750,14 +770,13 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl anUpdatedScript += aScript.SubString(aSeq->Value(aLen) + 1, aScriptLength); - SMESH_Gen_i* aSMESHGenI = SMESH_Gen_i::GetSMESHGen(); - SALOMEDS::Study_ptr aStudy = aSMESHGenI->GetCurrentStudy(); - if( !CORBA::is_nil(aStudy) ) + //SMESH_Gen_i* aSMESHGenI = SMESH_Gen_i::GetSMESHGen(); + if( !CORBA::is_nil(theStudy) ) { - SALOMEDS::SObject_var aComp = aStudy->FindComponent(ComponentDataType()); + SALOMEDS::SObject_var aComp = theStudy->FindComponent(ComponentDataType()); if( !CORBA::is_nil(aComp) ) { - SALOMEDS::ChildIterator_var Itr = aStudy->NewChildIterator(aComp); + SALOMEDS::ChildIterator_var Itr = theStudy->NewChildIterator(aComp); for( Itr->InitEx(true); Itr->More(); Itr->Next() ) { SALOMEDS::SObject_var aSObj = Itr->Value(); @@ -841,6 +860,21 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl } anUpdatedScript += "\n\n\t\tsalome.sg.updateObjBrowser(0)"; + // ----------------------------------------------------------------- + // store visual properties of displayed objects + // ----------------------------------------------------------------- + + if (isPublished) + { + //Output the script that sets up the visual parameters. + char* script = theStudy->GetDefaultScript(ComponentDataType(), "\t"); + if (script && strlen(script) > 0) { + anUpdatedScript += "\n\n\t### Store presentation parameters of displayed objects\n"; + anUpdatedScript += script; + CORBA::string_free(script); + } + } + anUpdatedScript += "\n\n\tpass\n"; // ----------------------------------------------------------------- @@ -864,7 +898,7 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl { // find the function name int functBeg = posAlready; - char* script = anUpdatedScript.ToCString() + posAlready - 1; // look at ":" after "def fuction()" + char* script = (char*) anUpdatedScript.ToCString() + posAlready - 1; // look at ":" after "def fuction()" while ( *script != ' ' ) { script--; functBeg--;