X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_OCCSelector.cxx;h=432306627ff08164ce644a83d348cb9dca394d77;hb=71ba58001e1084f0995fff43bf5e4643b153e5e0;hp=750593296731d62ab2f7d1195845b7254b41a14f;hpb=2fe8190c31b4be5a6b7b9ba2e7195dc4ab64c87f;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_OCCSelector.cxx b/src/HYDROGUI/HYDROGUI_OCCSelector.cxx index 75059329..43230662 100644 --- a/src/HYDROGUI/HYDROGUI_OCCSelector.cxx +++ b/src/HYDROGUI/HYDROGUI_OCCSelector.cxx @@ -20,6 +20,7 @@ #include "HYDROGUI_DataModel.h" #include "HYDROGUI_DataObject.h" +#include "HYDROGUI_DataOwner.h" #include "HYDROGUI_Module.h" #include @@ -53,8 +54,14 @@ void HYDROGUI_OCCSelector::getSelection( SUIT_DataOwnerPtrList& aList ) const for ( AIS_ListIteratorOfListOfInteractive anIt( aSelList ); anIt.More(); anIt.Next() ) if ( !anIt.Value().IsNull() ) { - if ( !isLocalContext ) - aList.append( SUIT_DataOwnerPtr( new LightApp_DataOwner( entry( anIt.Value() ) ) ) ); + if ( !isLocalContext ) { + QString anEntry = entry( anIt.Value() ); + if ( !anEntry.isEmpty() ) { + aList.append( SUIT_DataOwnerPtr( new LightApp_DataOwner( entry( anIt.Value() ) ) ) ); + } else { + aList.append( SUIT_DataOwnerPtr( new HYDROGUI_DataOwner( anIt.Value() ) ) ); + } + } } // add externally selected objects SUIT_DataOwnerPtrList::const_iterator anExtIter; @@ -74,9 +81,7 @@ void HYDROGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList ) return; } - //@MZN LightApp_OCCSelector::setSelection( aList ); QMap aDisplayed; - AIS_ListOfInteractive aDispList, aSelList; aContext->DisplayedObjects( aDispList ); @@ -94,11 +99,16 @@ void HYDROGUI_OCCSelector::setSelection( const SUIT_DataOwnerPtrList& aList ) const LightApp_DataOwner* owner = dynamic_cast( (*itr).operator->() ); if ( owner && aDisplayed.contains( owner->entry() ) ) aSelList.Append( aDisplayed[owner->entry()] ); - else - mySelectedExternals.append(*itr); + else { + const HYDROGUI_DataOwner* hydroOwner = dynamic_cast( (*itr).operator->() ); + if ( hydroOwner && !hydroOwner->IO().IsNull() ) { + aSelList.Append( hydroOwner->IO() ); + } else + mySelectedExternals.append(*itr); + } } - - //@MZNmyViewer->unHighlightAll( false ); + + aViewer->unHighlightAll( false ); aViewer->setObjectsSelected( aSelList ); }