Salome HOME
Issue #2998: Add help description for automatic creation of constraints
[modules/shaper.git] / src / XGUI / XGUI_MenuMgr.cpp
old mode 100755 (executable)
new mode 100644 (file)
index 6cbf91c..a568936
@@ -1,8 +1,21 @@
-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File:        XGUI_MenuMgr.cpp
-// Created:     13 Apr 2016
-// Author:      Natalia ERMOLAEVA
+// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 
 #include <XGUI_MenuMgr.h>
 #include <XGUI_Workshop.h>
@@ -27,6 +40,7 @@
 #endif
 
 #include <ModuleBase_IModule.h>
+#include <ModuleBase_Tools.h>
 
 #include <QObject>
 #include <QAction>
@@ -43,7 +57,8 @@ XGUI_MenuMgr::XGUI_MenuMgr(XGUI_Workshop* theWorkshop)
 void XGUI_MenuMgr::processEvent(const std::shared_ptr<Events_Message>& theMessage)
 {
   //A message to start feature creation received.
-  if (theMessage->eventID() == Events_Loop::loop()->eventByName(Config_FeatureMessage::GUI_EVENT())) {
+  if (theMessage->eventID() ==
+      Events_Loop::loop()->eventByName(Config_FeatureMessage::GUI_EVENT())) {
     std::shared_ptr<Config_FeatureMessage> aFeatureMsg =
        std::dynamic_pointer_cast<Config_FeatureMessage>(theMessage);
     if (!aFeatureMsg->isInternal()) {
@@ -60,15 +75,18 @@ void XGUI_MenuMgr::addFeature(const std::shared_ptr<Config_FeatureMessage>& theM
 #endif
     return;
   }
+  QString aWchName = ModuleBase_Tools::translate("workshop", theMessage->workbenchId());
+  theMessage->setToolBarId(ModuleBase_Tools::translate("workshop",
+      theMessage->workbenchId()).toStdString());
 #ifdef HAVE_SALOME
-  std::shared_ptr<XGUI_MenuWorkbench> aWorkbench = findWorkbench(theMessage->workbenchId());
+  std::string aWchNameString = aWchName.toStdString();
+  std::shared_ptr<XGUI_MenuWorkbench> aWorkbench = findWorkbench(aWchNameString);
   std::shared_ptr<XGUI_MenuGroup> aGroup = aWorkbench->findGroup(theMessage->groupId());
   aGroup->setFeatureInfo(theMessage);
 #else
   ActionInfo aFeatureInfo;
   aFeatureInfo.initFrom(theMessage);
 
-  QString aWchName = QString::fromStdString(theMessage->workbenchId());
   QStringList aNestedFeatures =
       QString::fromStdString(theMessage->nestedFeatures()).split(" ", QString::SkipEmptyParts);
   QList<QAction*> aNestedActList;
@@ -78,13 +96,13 @@ void XGUI_MenuMgr::addFeature(const std::shared_ptr<Config_FeatureMessage>& theM
     XGUI_OperationMgr* anOperationMgr = myWorkshop->operationMgr();
     XGUI_ActionsMgr* anActionsMgr = myWorkshop->actionsMgr();
     if (aNestedActions.contains(FEATURE_WHEN_NESTED_ACCEPT)) {
-      QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AcceptAll, NULL);
+      QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AcceptAll);
       QObject::connect(anAction, SIGNAL(triggered()), anOperationMgr, SLOT(commitAllOperations()));
       aNestedActList << anAction;
     }
     if (aNestedActions.contains(FEATURE_WHEN_NESTED_ABORT)) {
-      QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AbortAll, NULL);
-      QObject::connect(anAction, SIGNAL(triggered()), anOperationMgr, SLOT(abortAllOperations()));
+      QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AbortAll);
+      QObject::connect(anAction, SIGNAL(triggered()), anOperationMgr, SLOT(onAbortAllOperation()));
       aNestedActList << anAction;
     }
   }
@@ -129,7 +147,8 @@ std::shared_ptr<XGUI_MenuWorkbench> XGUI_MenuMgr::findWorkbench(const std::strin
       aResultWorkbench = aWorkbench;
   }
   if (!aResultWorkbench) {
-    aResultWorkbench = std::shared_ptr<XGUI_MenuWorkbench>(new XGUI_MenuWorkbench(theWorkbenchName));
+    aResultWorkbench =
+      std::shared_ptr<XGUI_MenuWorkbench>(new XGUI_MenuWorkbench(theWorkbenchName));
     myWorkbenches.push_back(aResultWorkbench);
   }
   return aResultWorkbench;
@@ -150,10 +169,11 @@ void XGUI_MenuMgr::createFeatureActions()
     for (; aGIt != aGLast; aGIt++) {
       const std::shared_ptr<XGUI_MenuGroup> aGroup = *aGIt;
       std::string aGName = aGroup->getName();
-      const std::list<std::shared_ptr<Config_FeatureMessage> >& aFeaturesInfo = aGroup->featuresInfo();
-      std::list<std::shared_ptr<Config_FeatureMessage> >::const_iterator aFIt = aFeaturesInfo.begin(),
-                                                                               aFLast = aFeaturesInfo.end();
-      int aFSize = aFeaturesInfo.size();
+      const std::list<std::shared_ptr<Config_FeatureMessage> >& aFeaturesInfo =
+        aGroup->featuresInfo();
+      std::list<std::shared_ptr<Config_FeatureMessage> >::const_iterator aFIt =
+        aFeaturesInfo.begin(), aFLast = aFeaturesInfo.end();
+      size_t aFSize = aFeaturesInfo.size();
       for(int i = 0; aFIt != aFLast; aFIt++, i++) {
         std::shared_ptr<Config_FeatureMessage> aMessage = *aFIt;
         bool aUseSeparator = i == aFSize-1;
@@ -171,7 +191,7 @@ void XGUI_MenuMgr::createFeatureActions()
 QAction* XGUI_MenuMgr::buildAction(const std::shared_ptr<Config_FeatureMessage>& theMessage,
                                    const std::string& theWchName, const bool aUseSeparator) const
 {
-  QAction* anAction;
+  QAction* anAction = 0;
 
 #ifdef HAVE_SALOME
   XGUI_SalomeConnector* aSalomeConnector = myWorkshop->salomeConnector();
@@ -186,24 +206,19 @@ QAction* XGUI_MenuMgr::buildAction(const std::shared_ptr<Config_FeatureMessage>&
     XGUI_OperationMgr* anOperationMgr = myWorkshop->operationMgr();
     XGUI_ActionsMgr* anActionsMgr = myWorkshop->actionsMgr();
     if (aNestedActions.contains(FEATURE_WHEN_NESTED_ACCEPT)) {
-      QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AcceptAll, NULL);
+      QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AcceptAll);
       QObject::connect(anAction, SIGNAL(triggered()), anOperationMgr, SLOT(commitAllOperations()));
       aNestedActList << anAction;
     }
     if (aNestedActions.contains(FEATURE_WHEN_NESTED_ABORT)) {
-      QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AbortAll, NULL);
-      QObject::connect(anAction, SIGNAL(triggered()), anOperationMgr, SLOT(abortAllOperations()));
+      QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AbortAll);
+      QObject::connect(anAction, SIGNAL(triggered()), anOperationMgr, SLOT(onAbortAllOperation()));
       aNestedActList << anAction;
     }
     anAction = aSalomeConnector->addFeatureOfNested(theWchName.c_str(), aFeatureInfo,
-                                                    aNestedActList, false, true);
-    QAction* aMenuAction = aSalomeConnector->addFeature(theWchName.c_str(), aFeatureInfo,
-                                                    aUseSeparator, true, false);
-    myWorkshop->module()->actionCreated(aMenuAction);
+                                                    aNestedActList);
   }
   else {
-    //Issue #650: in the SALOME mode the tooltip should be same as text
-    aFeatureInfo.toolTip = aFeatureInfo.text;
     anAction = aSalomeConnector->addFeature(theWchName.c_str(), aFeatureInfo, aUseSeparator);
   }
 #endif