Salome HOME
0020210: EDF SMESH 976: Update of a smesh group after modification of the associated...
authorvsr <vsr@opencascade.com>
Wed, 6 May 2009 14:54:16 +0000 (14:54 +0000)
committervsr <vsr@opencascade.com>
Wed, 6 May 2009 14:54:16 +0000 (14:54 +0000)
Additional patch: do not publish SMESH component automatically on the module activation

src/SMESH_I/SMESH_Gen_i.cxx

index c0850c7070d247d047ec401f77354493318c09d0..25f62dee307e4b5fd99c1de305c0e5943e213440 100644 (file)
@@ -575,13 +575,17 @@ void SMESH_Gen_i::SetCurrentStudy( SALOMEDS::Study_ptr theStudy )
     // Let meshes update their data depending on GEOM groups that could change
     if ( curStudyId != studyId )
     {
-      SALOMEDS::SComponent_var me = PublishComponent( myCurrentStudy );
-      SALOMEDS::ChildIterator_var anIter = myCurrentStudy->NewChildIterator( me );
-      for ( ; anIter->More(); anIter->Next() ) {
-       SALOMEDS::SObject_var so = anIter->Value();
-        CORBA::Object_var    ior = SObjectToObject( so );
-        if ( SMESH_Mesh_i*  mesh = SMESH::DownCast<SMESH_Mesh_i*>( ior ))
-          mesh->CheckGeomGroupModif();
+      //SALOMEDS::SComponent_var me = PublishComponent( myCurrentStudy );
+      SALOMEDS::SComponent_var me = SALOMEDS::SComponent::_narrow
+        ( myCurrentStudy->FindComponent( ComponentDataType() ) );
+      if ( !me->_is_nil() ) {
+       SALOMEDS::ChildIterator_var anIter = myCurrentStudy->NewChildIterator( me );
+       for ( ; anIter->More(); anIter->Next() ) {
+         SALOMEDS::SObject_var so = anIter->Value();
+         CORBA::Object_var    ior = SObjectToObject( so );
+         if ( SMESH_Mesh_i*  mesh = SMESH::DownCast<SMESH_Mesh_i*>( ior ))
+           mesh->CheckGeomGroupModif();
+       }
       }
     }
   }