Salome HOME
Simplified calculation of fly out distance and creation of constraints limited only...
[modules/shaper.git] / src / XGUI / XGUI_ActionsMgr.cpp
index 8d2eada7c492bd5ae4a04d0a51c8c03182e2d5ce..8b6fbadd1c685e94305ef78d791405823e73c060 100644 (file)
@@ -20,6 +20,7 @@
 #include <ModelAPI_Events.h>
 #include <ModelAPI_Validator.h>
 #include <ModuleBase_Operation.h>
+#include <ModuleBase_OperationFeature.h>
 #include <ModuleBase_SelectionValidator.h>
 
 
@@ -95,15 +96,16 @@ bool XGUI_ActionsMgr::isNested(const QString& theId) const
 void XGUI_ActionsMgr::update()
 {
   FeaturePtr anActiveFeature = FeaturePtr();
-  if (myOperationMgr->hasOperation()) {
-    ModuleBase_Operation* anOperation = myOperationMgr->currentOperation();
-    anActiveFeature = anOperation->feature();
+  ModuleBase_OperationFeature* aFOperation = dynamic_cast<ModuleBase_OperationFeature*>
+                                                         (myOperationMgr->currentOperation());
+  if (aFOperation) {
+    anActiveFeature = aFOperation->feature();
     if(anActiveFeature.get()) {
       setAllEnabled(false);
       QString aFeatureId = QString::fromStdString(anActiveFeature->getKind());
       setActionEnabled(aFeatureId, true);
     }
-    setNestedStackEnabled(anOperation);
+    setNestedStackEnabled(aFOperation);
   } else {
     setAllEnabled(true);
     setNestedCommandsEnabled(false);
@@ -256,6 +258,15 @@ QAction* XGUI_ActionsMgr::operationStateAction(OperationStateActionId theId, QOb
   return aResult;
 }
 
+QAction* XGUI_ActionsMgr::action(const QString& theId)
+{
+  QAction* anAction = 0;
+  if(myActions.contains(theId)) {
+    anAction = myActions.value(theId);
+  }
+  return anAction;
+}
+
 ActionInfo XGUI_ActionsMgr::actionInfoById(const QString& theId)
 {
   ActionInfo aResult;
@@ -295,9 +306,10 @@ void XGUI_ActionsMgr::setNestedCommandsEnabled(bool theEnabled, const QString& t
 
 void XGUI_ActionsMgr::setNestedStackEnabled(ModuleBase_Operation* theOperation)
 {
-  if(!theOperation || !theOperation->feature())
+  ModuleBase_OperationFeature* anOperation = dynamic_cast<ModuleBase_OperationFeature*>(theOperation);
+  if(!anOperation || !anOperation->feature())
     return;
-  FeaturePtr aFeature = theOperation->feature();
+  FeaturePtr aFeature = anOperation->feature();
   QString aFeatureId = QString::fromStdString(aFeature->getKind());
   setActionEnabled(aFeatureId, true);
   setNestedCommandsEnabled(true, aFeatureId);