X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_OCCSelector.cxx;h=a3582ed2592ab000bb047701059c36a1a0c419d2;hb=a300fde9adcb04f1d57269c2849e7337a6d3d4a3;hp=24d8975b400479ec392eba562dd2b6658f671015;hpb=f67a557992493d2ec9508689e3cb8fa3b2227cf1;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_OCCSelector.cxx b/src/HYDROGUI/HYDROGUI_OCCSelector.cxx index 24d8975b..a3582ed2 100644 --- a/src/HYDROGUI/HYDROGUI_OCCSelector.cxx +++ b/src/HYDROGUI/HYDROGUI_OCCSelector.cxx @@ -49,12 +49,16 @@ void HYDROGUI_OCCSelector::getSelection( SUIT_DataOwnerPtrList& aList ) const if ( !aViewer ) return; + Handle(AIS_InteractiveContext) aContext = aViewer->getAISContext(); + bool isLocalContext = aContext->HasOpenedContext(); + AIS_ListOfInteractive aSelList; aViewer->getSelectedObjects( aSelList ); for ( AIS_ListIteratorOfListOfInteractive anIt( aSelList ); anIt.More(); anIt.Next() ) if ( !anIt.Value().IsNull() ) { - aList.append( SUIT_DataOwnerPtr( new LightApp_DataOwner( entry( anIt.Value() ) ) ) ); + if ( !isLocalContext ) + aList.append( SUIT_DataOwnerPtr( new LightApp_DataOwner( entry( anIt.Value() ) ) ) ); } // add externally selected objects SUIT_DataOwnerPtrList::const_iterator anExtIter; @@ -63,6 +67,20 @@ void HYDROGUI_OCCSelector::getSelection( SUIT_DataOwnerPtrList& aList ) const } } +void HYDROGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList ) +{ + OCCViewer_Viewer* aViewer = viewer(); + if ( !aViewer ) + return; + + Handle(AIS_InteractiveContext) aContext = aViewer->getAISContext(); + if ( aContext->HasOpenedContext() ) { + return; + } + + LightApp_OCCSelector::setSelection( aList ); +} + QString HYDROGUI_OCCSelector::entry( const Handle(AIS_InteractiveObject)& anAIS ) const { QString aRes; @@ -70,8 +88,8 @@ QString HYDROGUI_OCCSelector::entry( const Handle(AIS_InteractiveObject)& anAIS if ( anAIS.IsNull() || !anAIS->HasOwner() ) return aRes; - Handle(HYDROData_Object) anObj = - Handle(HYDROData_Object)::DownCast( anAIS->GetOwner() ); + Handle(HYDROData_Entity) anObj = + Handle(HYDROData_Entity)::DownCast( anAIS->GetOwner() ); if ( !anObj.IsNull() ) aRes = HYDROGUI_DataObject::dataObjectEntry( anObj );