In TSearchersDeleter fix setting/removing the event listener
This commit is contained in:
eap 2013-11-29 08:45:55 +00:00
parent df70ba0baf
commit ccb0d68b6f

View File

@ -227,22 +227,22 @@ namespace MeshEditor_I {
} }
myMesh = mesh; myMesh = mesh;
myMeshPartIOR = meshPartIOR; myMeshPartIOR = meshPartIOR;
if ( SMESH_subMesh* myMainSubMesh = mesh->GetSubMeshContaining(1) ) { SMESH_subMesh* sm = mesh->GetSubMesh( mesh->GetShapeToMesh() );
const TDependsOnMap & subMeshes = myMainSubMesh->DependsOn(); SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator( /*includeSelf=*/true );
TDependsOnMap::const_iterator sm; while ( smIt->more() )
for (sm = subMeshes.begin(); sm != subMeshes.end(); sm++) {
sm->second->SetEventListener( this, 0, sm->second ); sm = smIt->next();
sm->SetEventListener( this, 0, sm );
} }
} }
} }
//!< delete self from all submeshes //!< delete self from all submeshes
void Unset(SMESH_Mesh* mesh) void Unset(SMESH_Mesh* mesh)
{ {
if ( SMESH_subMesh* myMainSubMesh = mesh->GetSubMeshContaining(1) ) { if ( SMESH_subMesh* sm = mesh->GetSubMeshContaining(1) ) {
const TDependsOnMap & subMeshes = myMainSubMesh->DependsOn(); SMESH_subMeshIteratorPtr smIt = sm->getDependsOnIterator( /*includeSelf=*/true );
TDependsOnMap::const_iterator sm; while ( smIt->more() )
for (sm = subMeshes.begin(); sm != subMeshes.end(); sm++) smIt->next()->DeleteEventListener( this );
sm->second->DeleteEventListener( this );
} }
myMesh = 0; myMesh = 0;
} }
@ -1747,7 +1747,7 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuad (const SMESH::long_array & IDsOfE
if ( !myIsPreviewMode ) { if ( !myIsPreviewMode ) {
// Update Python script // Update Python script
TPythonDump() << "isDone = " << this << ".TriToQuad( " TPythonDump() << "isDone = " << this << ".TriToQuad( "
<< IDsOfElements << ", " << aNumericalFunctor << ", " << TVar( MaxAngle ) << " )"; << IDsOfElements << ", " << aNumericalFunctor << ", " << TVar( MaxAngle ) << " )";
} }
bool stat = getEditor().TriToQuad( *workElements, aCrit, MaxAngle ); bool stat = getEditor().TriToQuad( *workElements, aCrit, MaxAngle );
@ -1785,7 +1785,7 @@ CORBA::Boolean SMESH_MeshEditor_i::TriToQuadObject (SMESH::SMESH_IDSource_ptr
// Update Python script // Update Python script
aTPythonDump << "isDone = " << this << ".TriToQuadObject(" aTPythonDump << "isDone = " << this << ".TriToQuadObject("
<< theObject << ", " << aNumericalFunctor << ", " << TVar( MaxAngle ) << " )"; << theObject << ", " << aNumericalFunctor << ", " << TVar( MaxAngle ) << " )";
} }
return isDone; return isDone;