Salome HOME
Python console has been added for HYDRO module (Bug #22).
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Tool.cxx
index 991dff2564ed7865717bc2d6fad8e44ae9f42eaf..29d053f046bb210563677941224d417d9c8f979d 100644 (file)
@@ -44,6 +44,7 @@
 #include <SUIT_ViewWindow.h>
 
 #include <QTextCodec>
+#include <QDockWidget>
 
 // 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<QDockWidget*>( w );
+    w = w->parentWidget();
+  }
+  return dock;
+}