From 47da75254ef81fcec6e4f3ba7e7a0247edfb1b64 Mon Sep 17 00:00:00 2001 From: vsr Date: Wed, 28 Aug 2013 11:00:25 +0000 Subject: [PATCH] Fix crash in salome_test.py --- src/SMESH_I/SMESH_Gen_i_1.cxx | 13 ++++++++++--- src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx | 4 ++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/SMESH_I/SMESH_Gen_i_1.cxx b/src/SMESH_I/SMESH_Gen_i_1.cxx index 85ab4def0..9cf0613df 100644 --- a/src/SMESH_I/SMESH_Gen_i_1.cxx +++ b/src/SMESH_I/SMESH_Gen_i_1.cxx @@ -478,10 +478,19 @@ SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent(SALOMEDS::Study_ptr theSt return SALOMEDS::SComponent::_nil(); if(MYDEBUG) MESSAGE("PublishComponent"); + SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder(); + SALOMEDS::UseCaseBuilder_var useCaseBuilder = theStudy->GetUseCaseBuilder(); + CORBA::String_var compDataType = ComponentDataType(); SALOMEDS::SComponent_wrap father = theStudy->FindComponent( compDataType.in() ); - if ( !CORBA::is_nil( father ) ) + if ( !CORBA::is_nil( father ) ) { + // check that the component is added to the use case browser + if ( !useCaseBuilder->IsUseCaseNode( father ) ) { + useCaseBuilder->SetRootCurrent(); + useCaseBuilder->Append( father ); // component object is added as the top level item + } return father._retn(); + } SALOME_ModuleCatalog::ModuleCatalog_var aCat = SALOME_ModuleCatalog::ModuleCatalog::_narrow( GetNS()->Resolve("/Kernel/ModulCatalog") ); @@ -492,8 +501,6 @@ SALOMEDS::SComponent_ptr SMESH_Gen_i::PublishComponent(SALOMEDS::Study_ptr theSt if ( CORBA::is_nil( aComp ) ) return father._retn(); - SALOMEDS::StudyBuilder_var aStudyBuilder = theStudy->NewBuilder(); - SALOMEDS::UseCaseBuilder_var useCaseBuilder = theStudy->GetUseCaseBuilder(); SALOMEDS::GenericAttribute_wrap anAttr; SALOMEDS::AttributePixMap_wrap aPixmap; diff --git a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx index c97dd01fd..593855b72 100644 --- a/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx +++ b/src/SMESH_SWIG_WITHIHM/libSMESH_Swig.cxx @@ -380,6 +380,10 @@ SMESH_Swig::Init(int theStudyID) aPixmap->SetPixMap( "ICON_OBJBROWSER_SMESH" ); aPixmap->UnRegister(); + SALOMEDS::UseCaseBuilder_var useCaseBuilder = myStudy->GetUseCaseBuilder(); + useCaseBuilder->SetRootCurrent(); + useCaseBuilder->Append( aSComponent.in() ); + myStudyBuilder->DefineComponentInstance(aSComponent,aSMESHGen); if (aLocked) myStudy->GetProperties()->SetLocked(true); -- 2.30.2