Salome HOME
refs #441: crash in digue construction
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ShowHideOp.cxx
index 05f5fb2551c7f7f5eaf23a7e37e8a2e7758f7c1d..4dba86de8bea240269a8c7c8135c6f9e89253be6 100644 (file)
@@ -34,7 +34,7 @@
 #include <HYDROData_Region.h>
 
 #include <LightApp_Application.h>
-#include <LightApp_Study.h>
+#include <LightApp_Displayer.h>
 
 #include <OCCViewer_ViewModel.h>
 #include <OCCViewer_ViewManager.h>
@@ -109,18 +109,7 @@ void HYDROGUI_ShowHideOp::startOperation()
 
     // For occ viewer we do the additional step to hide objects from other modules
     if ( anOCCManager != NULL && !aVisibility )
-    {
-      if ( SUIT_ViewModel* vmod = anOCCManager->getViewModel() )
-      {
-        SALOME_View* vf = dynamic_cast<SALOME_View*>( vmod );
-        if ( vf )
-          vf->EraseAll( true );
-      }
-      
-      LightApp_Study* aStudy = dynamic_cast<LightApp_Study*>( aModule->getApp()->activeStudy() );  
-      if ( aStudy )
-        aStudy->setVisibilityStateForAll( Qtx::HiddenState );
-    }
+      LightApp_Displayer().EraseAll( true );
   }
 
   bool isFoundImage = false;
@@ -158,7 +147,11 @@ void HYDROGUI_ShowHideOp::startOperation()
         }
         else if ( anObject->GetKind() == KIND_BATHYMETRY && aVisibility )
         {
-          if ( !(anUpdateFlags & UF_VTKViewer) )
+          if ( anUpdateFlags & UF_OCCViewer )
+          {
+            aModule->setObjectVisible( aViewId, anObject, aVisibility );
+          }
+          else if ( !(anUpdateFlags & UF_VTKViewer) )
           {
             // Activate VTK viewer if show a bathymetry
             aVTKMgr = aModule->getApp()->viewManager( SVTK_Viewer::Type() );