-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File: XGUI_MenuMgr.cpp
-// Created: 13 Apr 2016
-// Author: Natalia ERMOLAEVA
+// Copyright (C) 2014-2023 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>
#endif
#include <ModuleBase_IModule.h>
+#include <ModuleBase_Tools.h>
#include <QObject>
#include <QAction>
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()) {
#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;
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;
}
}
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;
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();
- for(int i = 0; aFIt != aFLast; aFIt++, i++) {
+ 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(size_t i = 0; aFIt != aFLast; aFIt++, i++) {
std::shared_ptr<Config_FeatureMessage> aMessage = *aFIt;
bool aUseSeparator = i == aFSize-1;
QAction* aAction = buildAction(aMessage, aWchName, aUseSeparator);
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();
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);
+ 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()));
+ 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