Salome HOME
Variables naming.
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_Module.cxx
index c409cdbe5a2738bdd14e235df7d22d7e9d5219ee..ffa5d7ed5893d6d4889023535544a3792898c796 100644 (file)
@@ -42,6 +42,7 @@
 #include "HYDROGUI_PolylineOp.h"
 #include "HYDROGUI_SetColorOp.h"
 #include "HYDROGUI_ImportGeomObjectOp.h"
+#include "HYDROGUI_ShowHideOp.h"
 
 #include <HYDROData_Image.h>
 #include <HYDROData_Profile.h>
@@ -269,6 +270,7 @@ bool HYDROGUI_Module::deactivateModule( SUIT_Study* theStudy )
 
   HYDROGUI_Tool::setOCCActionShown( this, OCCViewer_ViewWindow::MaximizedId, true );
 
+  myActiveOperationMap.clear();
   return LightApp_Module::deactivateModule( theStudy );
 }
 
@@ -592,6 +594,11 @@ void HYDROGUI_Module::contextMenuPopup( const QString& theClient,
         theMenu->addAction( action( EditDigueId ) );
         theMenu->addSeparator();
       }
+      else if( anIsObstacle )
+      {
+        theMenu->addAction( action( TranslateObstacleId ) );
+        theMenu->addSeparator();
+      }
       else if( anIsVisualState && anIsObjectBrowser )
       {
         theMenu->addAction( action( SaveVisualStateId ) );
@@ -1514,3 +1521,30 @@ int HYDROGUI_Module::getObjectDisplayOrder(
 
   return anObjectEntries.indexOf( anEntry );
 }
+
+/**
+ * Returns stack of active operations;
+ */
+QStack<HYDROGUI_Operation*>& HYDROGUI_Module::getActiveOperations()
+{
+  return myActiveOperationMap;
+}
+
+/**
+ * Returns the module active operation. If the active operation is show/hide,
+ * the method returns the previous operation if it is.
+ */
+HYDROGUI_Operation* HYDROGUI_Module::activeOperation()
+{
+  HYDROGUI_Operation* anOp = !myActiveOperationMap.empty() ? myActiveOperationMap.top() : 0;
+
+  if ( dynamic_cast<HYDROGUI_ShowHideOp*>( anOp ) )
+  {
+    QVectorIterator<HYDROGUI_Operation*> aVIt( myActiveOperationMap );
+    aVIt.toBack();
+    aVIt.previous(); // skip the top show/hide operation
+    anOp = aVIt.hasPrevious() ? aVIt.previous() : 0;
+  }
+
+  return anOp;
+}