- QString aWchName = QString::fromStdString(theMessage->workbenchId());
- QStringList aNestedFeatures =
- QString::fromStdString(theMessage->nestedFeatures()).split(" ", QString::SkipEmptyParts);
- QString aDocKind = QString::fromStdString(theMessage->documentKind());
- QList<QAction*> aNestedActList;
- bool isColumnButton = !aNestedFeatures.isEmpty();
- if (isColumnButton) {
- QString aNestedActions = QString::fromStdString(theMessage->actionsWhenNested());
- XGUI_OperationMgr* anOperationMgr = aWorkshop->operationMgr();
- XGUI_ActionsMgr* anActionsMgr = aWorkshop->actionsMgr();
- if (aNestedActions.contains("accept")) {
- QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AcceptAll, NULL);
- connect(anAction, SIGNAL(triggered()), anOperationMgr, SLOT(commitAllOperations()));
- aNestedActList << anAction;
- }
- if (aNestedActions.contains("abort")) {
- QAction* anAction = anActionsMgr->operationStateAction(XGUI_ActionsMgr::AbortAll, NULL);
- connect(anAction, SIGNAL(triggered()), anOperationMgr, SLOT(abortAllOperations()));
- aNestedActList << anAction;
- }
- }
-
- if (aWorkshop->isSalomeMode()) {
- XGUI_SalomeConnector* aSalomeConnector = aWorkshop->salomeConnector();
- QAction* aAction;
- if (isColumnButton) {
- aAction = aSalomeConnector->addNestedFeature(aWchName, aFeatureInfo, aNestedActList);
- } else {
- //Issue #650: in the SALOME mode the tooltip should be same as text
- aFeatureInfo.toolTip = aFeatureInfo.text;
- aAction = aSalomeConnector->addFeature(aWchName, aFeatureInfo);
- }
- aSalomeConnector->setNestedActions(aFeatureInfo.id, aNestedFeatures);
- aSalomeConnector->setDocumentKind(aFeatureInfo.id, aDocKind);