#include <XGUI_ObjectsBrowser.h>
#include <XGUI_OperationMgr.h>
#include <XGUI_Displayer.h>
+#include <XGUI_MenuMgr.h>
#include <ModuleBase_Operation.h>
#include <ModuleBase_Preferences.h>
return new SHAPERGUI_DataModel(this);
}
-QAction* SHAPERGUI::addFeature(const QString& theWBName, const ActionInfo& theInfo)
+QAction* SHAPERGUI::addFeature(const QString& theWBName, const ActionInfo& theInfo,
+ const bool isAddSeparator)
{
return addFeature(theWBName,
theInfo.id,
theInfo.text,
- theInfo.toolTip,
+ theInfo.text, //Issue #650: in the SALOME mode the tooltip should be same as text
theInfo.icon,
theInfo.shortcut,
- theInfo.checkable);
+ theInfo.checkable,
+ isAddSeparator,
+ theInfo.toolTip);
}
//******************************************************
QAction* SHAPERGUI::addFeature(const QString& theWBName, const QString& theId,
- const QString& theTitle, const QString& theTip,
- const QIcon& theIcon, const QKeySequence& theKeys,
- bool isCheckable)
+ const QString& theTitle, const QString& theTip,
+ const QIcon& theIcon, const QKeySequence& theKeys,
+ bool isCheckable, const bool isAddSeparator,
+ const QString& theStatusTip)
{
static QString aLastTool = "";
static int aNb = 0;
}
aNb++;
- int aMenu = createMenu(theWBName, -1, -1, 50);
- int aTool = createTool(theWBName, theWBName);
-
int aId = myActionsList.size();
myActionsList.append(theId);
SUIT_Desktop* aDesk = application()->desktop();
aKeys += theKeys[i];
QAction* aAction = createAction(aId, theTip, theIcon, theTitle, theTip, aKeys, aDesk,
isCheckable);
+ aAction->setStatusTip(theStatusTip);
+
aAction->setData(theId);
- int aItemId = createMenu(aId, aMenu, -1, 10);
- int aToolId = createTool(aId, aTool);
+
+ int aWBMenu = createMenu(theWBName, -1, -1, 50/*10-Window, 1000 - Help*/);
+ int aItemId = createMenu(aId, aWBMenu);
+ if (isAddSeparator)
+ createMenu(separator(), aWBMenu);
+
+ int aWBTool = createTool(theWBName, theWBName);
+ int aToolId = createTool(aId, aWBTool);
+ if (isAddSeparator)
+ createTool(separator(), aWBTool);
return aAction;
}
}
QAction* SHAPERGUI::addFeatureOfNested(const QString& theWBName,
- const ActionInfo& theInfo,
- const QList<QAction*>& theNestedActions)
+ const ActionInfo& theInfo,
+ const QList<QAction*>& theNestedActions)
{
- int aMenu = createMenu(theWBName, -1, -1, 50);
- int aTool = createTool(theWBName, theWBName);
-
- int aId = myActionsList.size();
myActionsList.append(theInfo.id);
SUIT_Desktop* aDesk = application()->desktop();
SHAPERGUI_NestedButton* anAction = new SHAPERGUI_NestedButton(aDesk, theNestedActions);
anAction->setShortcut(theInfo.shortcut);
anAction->setFont(theInfo.font);
- //int aItemId = createMenu(aId, aMenu, -1, 10);
- int aToolId = createTool(anAction, aTool, aId);
+ int aWBMenu = createMenu(theWBName, -1, -1, 50);
+ int aItemId = createMenu(anAction, aWBMenu);
+ createMenu(separator(), aWBMenu); /// nested action is always separated of others
+
+ int aWBTool = createTool(theWBName, theWBName);
+ int aToolId = createTool(anAction, aWBTool);
+ createTool(separator(), aWBTool); /// nested action is always separated of others
return anAction;
}
aKeys += theKeys[i];
QAction* aAction = createAction(aId, theTip, theIcon, theTitle, theTip, aKeys, aDesk,
isCheckable);
+ aAction->setStatusTip(theTip);
aAction->setData(theId);
createMenu(aId, aMenu, theMenuPosition);
return aAction;
if (aCmd && myActionsList.contains(aCmd->data().toString()))
aActions.append(aCmd);
}
- return aActions;
-}
-//******************************************************
-QStringList SHAPERGUI::commandIdList() const
-{
- return myActionsList;
+ return aActions;
}
//******************************************************
return application()->desktop();
}
-//******************************************************
-QString SHAPERGUI::commandId(const QAction* theCmd) const
-{
- int aId = actionId(theCmd);
- if (aId < myActionsList.size())
- return myActionsList[aId];
- return QString();
-}
-
-//******************************************************
-QAction* SHAPERGUI::command(const QString& theId) const
+void SHAPERGUI::setFeatureInfo(const QString& theFeatureId,
+ const std::shared_ptr<Config_FeatureMessage>& theMessage)
{
- int aId = myActionsList.indexOf(theId);
- if ((aId != -1) && (aId < myActionsList.size())) {
- return action(aId);
- }
- return 0;
+ myFeaturesInfo.insert(theFeatureId, theMessage);
}
-//******************************************************
-void SHAPERGUI::setNestedActions(const QString& theId, const QStringList& theActions)
+std::shared_ptr<Config_FeatureMessage> SHAPERGUI::featureInfo(const QString& theFeatureId)
{
- myNestedActions[theId] = theActions;
-}
-
-//******************************************************
-QStringList SHAPERGUI::nestedActions(const QString& theId) const
-{
- if (myNestedActions.contains(theId))
- return myNestedActions[theId];
- return QStringList();
-}
-
-//******************************************************
-void SHAPERGUI::setDocumentKind(const QString& theId, const QString& theKind)
-{
- myDocumentType[theId] = theKind;
-}
-
-//******************************************************
-QString SHAPERGUI::documentKind(const QString& theId) const
-{
- if (myDocumentType.contains(theId))
- return myDocumentType[theId];
- return QString();
-
+ std::shared_ptr<Config_FeatureMessage> aMessage;
+ if (myFeaturesInfo.contains(theFeatureId))
+ aMessage = myFeaturesInfo[theFeatureId];
+ return aMessage;
}
//******************************************************
int viewTab = pref->addItem(tr("Viewer"), catId);
// Create other parameters group in viewer tab
- int otherGroup = pref->addItem(tr("Other parameters"), viewTab);
- int selId = pref->addItem(tr("Default selection type"), otherGroup,
- SUIT_PreferenceMgr::Selector,
- ModuleBase_Preferences::VIEWER_SECTION, "selection");
- QStringList aSelectionList;
- aSelectionList.append( tr("Vertices") );
- aSelectionList.append( tr("Edges") );
- aSelectionList.append( tr("Faces") );
- aSelectionList.append( tr("Results") );
-
- QList<QVariant> anIndexesList;
- anIndexesList.append(TopAbs_VERTEX);
- anIndexesList.append(TopAbs_EDGE);
- anIndexesList.append(TopAbs_FACE);
- anIndexesList.append(-1);
-
- pref->setItemProperty( "strings", aSelectionList, selId );
- pref->setItemProperty( "indexes", anIndexesList, selId );
+ int otherGroup = pref->addItem(tr("Default selection"), viewTab);
+ pref->setItemProperty("columns", 3, otherGroup);
+ pref->addItem(tr("Faces"), otherGroup,
+ SUIT_PreferenceMgr::Bool,
+ ModuleBase_Preferences::VIEWER_SECTION, "face-selection");
+ pref->addItem(tr("Edges"), otherGroup,
+ SUIT_PreferenceMgr::Bool,
+ ModuleBase_Preferences::VIEWER_SECTION, "edge-selection");
+ pref->addItem(tr("Vertices"), otherGroup,
+ SUIT_PreferenceMgr::Bool,
+ ModuleBase_Preferences::VIEWER_SECTION, "vertex-selection");
+ int sensitivityGroup = pref->addItem(tr("Selection sensitivity"), viewTab);
+ pref->setItemProperty("columns", 2, sensitivityGroup);
+ pref->addItem(tr("Vertex"), sensitivityGroup, SUIT_PreferenceMgr::Double,
+ ModuleBase_Preferences::VIEWER_SECTION, "point-selection-sensitivity");
+ pref->addItem(tr("Edge"), sensitivityGroup, SUIT_PreferenceMgr::Double,
+ ModuleBase_Preferences::VIEWER_SECTION, "edge-selection-sensitivity");
pref->retrieve();
}
myWorkshop->displayer()->redisplayObjects();
}
+void SHAPERGUI::putInfo(const QString& theInfo, const int theMSecs)
+{
+ application()->putInfo(theInfo, theMSecs);
+}
+
void SHAPERGUI::inspectSalomeModules()
{
QStringList aModuleNames;
{
return workshop()->operationMgr()->abortAllOperations();
}
+
+void SHAPERGUI::createFeatureActions()
+{
+ myWorkshop->menuMgr()->createFeatureActions();
+}