Salome HOME
Python console has been added for HYDRO module (Bug #22).
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Module.cxx
index ee2dfa1fe29c1cc50e9c1b606126af661e06a38d..f011cfe9ae6b6bbf4013079be6da1f18d03294f2 100644 (file)
@@ -53,6 +53,7 @@
 
 #include <SALOME_Event.h>
 
+#include <SUIT_Desktop.h>
 #include <SUIT_Study.h>
 #include <SUIT_ViewManager.h>
 
@@ -70,7 +71,7 @@ extern "C" HYDRO_EXPORT CAM_Module* createModule()
 
 extern "C" HYDRO_EXPORT char* getModuleVersion()
 {
-  return "0.1";
+  return (char*)HYDRO_VERSION;
 }
 
 HYDROGUI_Module::HYDROGUI_Module()
@@ -110,9 +111,17 @@ bool HYDROGUI_Module::activateModule( SUIT_Study* theStudy )
 {
   bool aRes = LightApp_Module::activateModule( theStudy );
 
+  LightApp_Application* anApp = getApp();
+  SUIT_Desktop* aDesktop = anApp->desktop();
+
   setMenuShown( true );
   setToolShown( true );
 
+#ifndef DISABLE_PYCONSOLE
+  aDesktop->tabifyDockWidget( HYDROGUI_Tool::WindowDock( anApp->getWindow( LightApp_Application::WT_PyConsole ) ), 
+                              HYDROGUI_Tool::WindowDock( anApp->getWindow( LightApp_Application::WT_LogWindow ) ) );
+#endif
+
   update( UF_All );
 
   updateCommandsStatus();
@@ -140,6 +149,9 @@ void HYDROGUI_Module::windows( QMap<int, int>& theMap ) const
 {
   theMap.clear();
   theMap.insert( LightApp_Application::WT_LogWindow,     Qt::BottomDockWidgetArea );
+#ifndef DISABLE_PYCONSOLE
+  theMap.insert( LightApp_Application::WT_PyConsole,     Qt::BottomDockWidgetArea );
+#endif
   theMap.insert( LightApp_Application::WT_ObjectBrowser, Qt::LeftDockWidgetArea   );
 }
 
@@ -168,6 +180,7 @@ void HYDROGUI_Module::contextMenuPopup( const QString& theClient,
   bool anIsSplittedImage = false;
   bool anIsMustBeUpdatedImage = false;
   bool anIsPolyline = false;
+  bool anIsCalculation = false;
   bool anIsVisualState = false;
 
   HYDROData_SequenceOfObjects aSeq = HYDROGUI_Tool::GetSelectedObjects( this );
@@ -207,6 +220,8 @@ void HYDROGUI_Module::contextMenuPopup( const QString& theClient,
       }
       else if( anObject->GetKind() == KIND_POLYLINE )
         anIsPolyline = true;
+      else if( anObject->GetKind() == KIND_CALCULATION )
+        anIsCalculation = true;
       else if( anObject->GetKind() == KIND_VISUAL_STATE )
         anIsVisualState = true;
     }
@@ -249,6 +264,11 @@ void HYDROGUI_Module::contextMenuPopup( const QString& theClient,
       theMenu->addAction( action( EditPolylineId ) );
       theMenu->addSeparator();
     }
+    else if( anIsCalculation )
+    {
+      theMenu->addAction( action( EditCalculationId ) );
+      theMenu->addSeparator();
+    }
     else if( anIsVisualState )
     {
       theMenu->addAction( action( SaveVisualStateId ) );