Salome HOME
Draft version of "Find River Bottom", new viewer dialog base class, new component...
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_ShowHideOp.cxx
index 05f5fb2551c7f7f5eaf23a7e37e8a2e7758f7c1d..dbef108fc142d500c02552f7e8e5006cbd0278bd 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -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() );