X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_ShowHideOp.cxx;h=8d91cde4c7a2d83114bc3f7be737fb569bce298d;hb=35a75ba275261aff7c8c48c0d16842dafd455007;hp=47e0a2b6e2362b06018c3b06ca51e5eeed6f6ced;hpb=94f079c9197f9655e023e5047feffea452b4a1fe;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_ShowHideOp.cxx b/src/HYDROGUI/HYDROGUI_ShowHideOp.cxx index 47e0a2b6..8d91cde4 100644 --- a/src/HYDROGUI/HYDROGUI_ShowHideOp.cxx +++ b/src/HYDROGUI/HYDROGUI_ShowHideOp.cxx @@ -22,18 +22,14 @@ #include "HYDROGUI_ShowHideOp.h" -#include "HYDROGUI_DataModel.h" #include "HYDROGUI_Module.h" #include "HYDROGUI_Operations.h" +#include "HYDROGUI_Tool.h" #include "HYDROGUI_UpdateFlags.h" #include #include -#include - -#include - HYDROGUI_ShowHideOp::HYDROGUI_ShowHideOp( HYDROGUI_Module* theModule, int theId ) : HYDROGUI_Operation( theModule ), myId( theId ) @@ -59,7 +55,9 @@ void HYDROGUI_ShowHideOp::startOperation() { HYDROGUI_Operation::startOperation(); - HYDROGUI_DataModel* aModel = module()->getDataModel(); + startDocOperation(); + + size_t aViewId = HYDROGUI_Tool::GetActiveGraphicsViewId( module() ); // for all objects if( myId == ShowOnlyId || myId == ShowAllId || myId == HideAllId ) @@ -70,29 +68,26 @@ void HYDROGUI_ShowHideOp::startOperation() { Handle(HYDROData_Object) anObject = anIterator.Current(); if( !anObject.IsNull() ) - anObject->SetVisibility( aVisibility ); + anObject->SetVisible( aViewId, aVisibility ); } } // for selected objects if( myId == ShowId || myId == ShowOnlyId || myId == HideId ) { - SUIT_SelectionMgr* aSelectionMgr = selectionMgr(); - SUIT_DataOwnerPtrList anOwners; - aSelectionMgr->selected( anOwners ); + HYDROData_SequenceOfObjects aSeq = HYDROGUI_Tool::GetSelectedObjects( module() ); bool aVisibility = myId == ShowId || myId == ShowOnlyId; - foreach( SUIT_DataOwner* aSUITOwner, anOwners ) + for( Standard_Integer anIndex = 1, aLength = aSeq.Length(); anIndex <= aLength; anIndex++ ) { - if( LightApp_DataOwner* anOwner = dynamic_cast( aSUITOwner ) ) - { - Handle(HYDROData_Object) anObject = aModel->objectByEntry( anOwner->entry() ); - if( !anObject.IsNull() ) - anObject->SetVisibility( aVisibility ? true : false ); - } + Handle(HYDROData_Object) anObject = aSeq.Value( anIndex ); + if( !anObject.IsNull() ) + anObject->SetVisible( aViewId, aVisibility ); } } + commitDocOperation(); + module()->update( UF_Viewer ); commit(); }