]> SALOME platform Git repositories - modules/hydro.git/commitdiff
Salome HOME
Displaying of objects corrected (Bug #359).
authoradv <adv@opencascade.com>
Fri, 31 Jan 2014 07:44:43 +0000 (07:44 +0000)
committeradv <adv@opencascade.com>
Fri, 31 Jan 2014 07:44:43 +0000 (07:44 +0000)
src/HYDROGUI/HYDROGUI_OCCDisplayer.cxx
src/HYDROGUI/HYDROGUI_Shape.cxx
src/HYDROGUI/HYDROGUI_ShowHideOp.cxx

index 3dbe862ccf5f9ab5d9b88fc8a76b5a526482f7dc..46449869f6e1b812fa18815893c107e738a7ba13 100644 (file)
@@ -200,6 +200,10 @@ void HYDROGUI_OCCDisplayer::Display( const HYDROData_SequenceOfObjects& theObjs,
       }
     }
   }
+  else if ( aCtx.IsNull() )
+  {
+    aCtx->UpdateSelected();
+  }
 }
 
 void HYDROGUI_OCCDisplayer::purgeObjects( const int theViewerId )
index c5f3bbd2011b0da005c39e9fdce0966a7279837e..3fed9548be2099543ba4eae17dc31127256af861 100644 (file)
@@ -408,14 +408,15 @@ void HYDROGUI_Shape::update( const bool theIsUpdateViewer,
 void HYDROGUI_Shape::setVisible( const bool theState,
                                  const bool theIsUpdateViewer )
 {
-  if ( myIsVisible == theState )
-    return;
-
   myIsVisible = theState;
 
   if ( myShape.IsNull() )
     return;
 
+  if ( ( myIsVisible && myContext->IsDisplayed( myShape ) ) ||
+       ( !myIsVisible && !myContext->IsDisplayed( myShape ) ) )
+    return;
+
   if ( myIsVisible )
     myContext->Display( myShape, theIsUpdateViewer );
   else
index 05f5fb2551c7f7f5eaf23a7e37e8a2e7758f7c1d..d754a33a9d55c336e3d4853a085a768f5537bd7f 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;