From 85332362ed87110b788afa215a9bc8e02a160fea Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 30 Mar 2005 08:04:33 +0000 Subject: [PATCH] fix PAL8469. Updating the global mesh icon when local hypotheses are edited --- src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx | 44 +++++++---------------- src/StdMeshersGUI/StdMeshersGUI.cxx | 13 +++++-- 2 files changed, 24 insertions(+), 33 deletions(-) diff --git a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx index 323b1ec68..5d47d4c19 100644 --- a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx @@ -376,7 +376,9 @@ namespace SMESH{ if ( !aMesh->_is_nil() && !SsubM->_is_nil() && !aShapeObject->_is_nil() ) { res = aMesh->AddHypothesis( aShapeObject, aHyp ); if ( res < SMESH::HYP_UNKNOWN_FATAL ) { - SMESH::ModifiedMesh( SsubM, false ); + SALOMEDS::SObject_var meshSO = SMESH::FindSObject( aMesh ); + if ( !meshSO->_is_nil() ) + SMESH::ModifiedMesh( meshSO, false ); } if ( res > SMESH::HYP_OK ) { wc.stop(); @@ -429,8 +431,11 @@ namespace SMESH{ if (!aMesh->_is_nil()) { res = aMesh->RemoveHypothesis(aShape, anHyp); - if ( res < SMESH::HYP_UNKNOWN_FATAL ) - SMESH::ModifiedMesh(MorSM, false); + if ( res < SMESH::HYP_UNKNOWN_FATAL ) { + SALOMEDS::SObject_var meshSO = SMESH::FindSObject( aMesh ); + if ( !meshSO->_is_nil() ) + SMESH::ModifiedMesh(meshSO, false); + } if ( res > SMESH::HYP_OK ) { wc.stop(); processHypothesisStatus( res, anHyp, false ); @@ -439,32 +444,6 @@ namespace SMESH{ } } } - - SALOMEDS::SObject_var aHypSObj = aStudy->FindObjectID(IObject->getReference()); - if (!aHypSObj->_is_nil()) { - SALOMEDS::SObject_var MorSM = SMESH::GetMeshOrSubmesh(aHypSObj); - if (!MorSM->_is_nil()) { - GEOM::GEOM_Object_var aShapeObject =SMESH::GetShapeOnMeshOrSubMesh(MorSM); - if (!aShapeObject->_is_nil()){ - SMESH::SMESH_Mesh_var aMesh = SMESH::SObjectToInterface(MorSM); - SMESH::SMESH_subMesh_var aSubMesh = SMESH::SObjectToInterface(MorSM); - - if (!aSubMesh->_is_nil()) - aMesh = aSubMesh->GetFather(); - - if (!aMesh->_is_nil()) { - res = aMesh->RemoveHypothesis(aShapeObject, anHyp); - if ( res < SMESH::HYP_UNKNOWN_FATAL ) - SMESH::ModifiedMesh(MorSM, false); - if ( res > SMESH::HYP_OK ) { - wc.stop(); - processHypothesisStatus( res, anHyp, false ); - wc.start(); - } - } - } - } - } } } catch( const SALOME::SALOME_Exception& S_ex ) { @@ -500,8 +479,11 @@ namespace SMESH{ if (!aMesh->_is_nil()) { res = aMesh->RemoveHypothesis(aShapeObject, anHyp); - if ( res < SMESH::HYP_UNKNOWN_FATAL ) - SMESH::ModifiedMesh(MorSM, false); + if ( res < SMESH::HYP_UNKNOWN_FATAL ) { + SALOMEDS::SObject_var meshSO = SMESH::FindSObject( aMesh ); + if ( !meshSO->_is_nil() ) + SMESH::ModifiedMesh(meshSO, false); + } if ( res > SMESH::HYP_OK ) { wc.stop(); processHypothesisStatus( res, anHyp, false ); diff --git a/src/StdMeshersGUI/StdMeshersGUI.cxx b/src/StdMeshersGUI/StdMeshersGUI.cxx index 8682545d6..36a65f6f0 100644 --- a/src/StdMeshersGUI/StdMeshersGUI.cxx +++ b/src/StdMeshersGUI/StdMeshersGUI.cxx @@ -136,8 +136,17 @@ void StdMeshersGUI_HypothesisCreator::EditHypothesis //mySMESHGUI->GetActiveStudy()->updateObjBrowser(true); } - for (int i=0; ilength(); i++) - SMESH::ModifiedMesh(listSOmesh[i], false); + if ( listSOmesh->length() > 0 ) { + SALOMEDS::SObject_var submSO = listSOmesh[0]; + SMESH::SMESH_Mesh_var aMesh = + SMESH::SObjectToInterface(submSO); + SMESH::SMESH_subMesh_var aSubMesh = + SMESH::SObjectToInterface(submSO); + if ( !aSubMesh->_is_nil() ) + aMesh = aSubMesh->GetFather(); + SALOMEDS::SObject_var meshSO = SMESH::FindSObject( aMesh ); + SMESH::ModifiedMesh( meshSO, false); + } } }