Salome HOME
fix PAL8469. Updating the global mesh icon when local hypotheses are edited
authoreap <eap@opencascade.com>
Wed, 30 Mar 2005 08:04:33 +0000 (08:04 +0000)
committereap <eap@opencascade.com>
Wed, 30 Mar 2005 08:04:33 +0000 (08:04 +0000)
src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx
src/StdMeshersGUI/StdMeshersGUI.cxx

index 323b1ec6815f28dd28af0c74a3e8fd3f52e8d11c..5d47d4c1909a8611f20996ffaacb06e9c9a0f65e 100644 (file)
@@ -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 )  {
        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();
          }
          if ( res > SMESH::HYP_OK ) {
            wc.stop();
@@ -429,8 +431,11 @@ namespace SMESH{
              
              if (!aMesh->_is_nil()) {
                res = aMesh->RemoveHypothesis(aShape, anHyp);
              
              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 );
                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<SMESH::SMESH_Mesh>(MorSM);
-               SMESH::SMESH_subMesh_var aSubMesh = SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(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 ) {
        }
       }
       catch( const SALOME::SALOME_Exception& S_ex ) {
@@ -500,8 +479,11 @@ namespace SMESH{
          
          if (!aMesh->_is_nil()) {
            res = aMesh->RemoveHypothesis(aShapeObject, anHyp);
          
          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 );
            if ( res > SMESH::HYP_OK ) {
              wc.stop();
              processHypothesisStatus( res, anHyp, false );
index 8682545d6aec28b2586667f57157ffa73f79561c..36a65f6f07c182dc52cc9b0b2843929e75c24d4e 100644 (file)
@@ -136,8 +136,17 @@ void StdMeshersGUI_HypothesisCreator::EditHypothesis
        //mySMESHGUI->GetActiveStudy()->updateObjBrowser(true);
       }    
        
        //mySMESHGUI->GetActiveStudy()->updateObjBrowser(true);
       }    
        
-    for (int i=0; i<listSOmesh->length(); i++)
-      SMESH::ModifiedMesh(listSOmesh[i], false);
+    if ( listSOmesh->length() > 0 ) {
+      SALOMEDS::SObject_var submSO = listSOmesh[0];
+      SMESH::SMESH_Mesh_var aMesh =
+        SMESH::SObjectToInterface<SMESH::SMESH_Mesh>(submSO);
+      SMESH::SMESH_subMesh_var aSubMesh =
+        SMESH::SObjectToInterface<SMESH::SMESH_subMesh>(submSO);
+      if ( !aSubMesh->_is_nil() )
+        aMesh = aSubMesh->GetFather();
+      SALOMEDS::SObject_var meshSO = SMESH::FindSObject( aMesh );
+      SMESH::ModifiedMesh( meshSO, false);
+    }
   }
 }
 
   }
 }