X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Tool.cxx;h=29d053f046bb210563677941224d417d9c8f979d;hb=dc73e2b2e8db52dbea7aab9ade159daef696d95f;hp=991dff2564ed7865717bc2d6fad8e44ae9f42eaf;hpb=8c87cbf681f35c575bf15818e2afc226c272404d;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Tool.cxx b/src/HYDROGUI/HYDROGUI_Tool.cxx index 991dff25..29d053f0 100644 --- a/src/HYDROGUI/HYDROGUI_Tool.cxx +++ b/src/HYDROGUI/HYDROGUI_Tool.cxx @@ -44,6 +44,7 @@ #include #include +#include // Definition of this id allows to use 'latin1' (Qt alias for 'ISO-8859-1') // encoding instead of default 'System' @@ -342,15 +343,20 @@ void HYDROGUI_Tool::GetObjectReferences( const Handle(HYDROData_Image)& theImage for( int anIndex = 0, aNbRef = theImage->NbReferences(); anIndex < aNbRef; anIndex++ ) { - Handle(HYDROData_Image) aRefImage = theImage->Reference( anIndex ); - if( !aRefImage.IsNull() && !aRefImage->IsRemoved() ) + Handle(HYDROData_Object) aRefObj = theImage->Reference( anIndex ); + if( !aRefObj.IsNull() && !aRefObj->IsRemoved() ) { - QString aName = aRefImage->GetName(); + QString aName = aRefObj->GetName(); if( !theRefNames.contains( aName ) ) { - theRefObjects.Append( aRefImage ); - theRefNames.append( aRefImage->GetName() ); - GetObjectReferences( aRefImage, theRefObjects, theRefNames ); + theRefObjects.Append( aRefObj ); + theRefNames.append( aRefObj->GetName() ); + if( aRefObj->GetKind() == KIND_IMAGE ) + { + Handle(HYDROData_Image) aRefImage = Handle(HYDROData_Image)::DownCast( aRefObj ); + if( !aRefImage.IsNull() ) + GetObjectReferences( aRefImage, theRefObjects, theRefNames ); + } } } } @@ -387,3 +393,19 @@ void HYDROGUI_Tool::GetObjectBackReferences( HYDROGUI_Module* theModule, } } } + + +QDockWidget* HYDROGUI_Tool::WindowDock( QWidget* wid ) +{ + if ( !wid ) + return 0; + + QDockWidget* dock = 0; + QWidget* w = wid->parentWidget(); + while ( w && !dock ) + { + dock = ::qobject_cast( w ); + w = w->parentWidget(); + } + return dock; +}