X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ActionsMgr.h;h=3788197734e5ad3352bb732bd34e9dd2696cb80b;hb=220bd2b37119be1c65abf88a88792445cb9d99f8;hp=00f6086efdb397fae4b389a5744343c67845895a;hpb=053bed33433b464fc9dc4f876310cb7b344b3031;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ActionsMgr.h b/src/XGUI/XGUI_ActionsMgr.h index 00f6086ef..378819773 100644 --- a/src/XGUI/XGUI_ActionsMgr.h +++ b/src/XGUI/XGUI_ActionsMgr.h @@ -39,6 +39,7 @@ class XGUI_EXPORT XGUI_ActionsMgr : public QObject, public Events_Listener XGUI_ActionsMgr(XGUI_Workshop* theWorkshop); virtual ~XGUI_ActionsMgr(); + /// Actions on operations enum OperationStateActionId { Abort = 0, Accept = 1, @@ -79,36 +80,49 @@ class XGUI_EXPORT XGUI_ActionsMgr : public QObject, public Events_Listener //! If there is no such action, it will be created. QAction* operationStateAction(OperationStateActionId theId, QObject* theParent = 0); + /// Return an action by the given id, if it was registered in the manager + QAction* action(const QString& theId); + + /// Return info (icon, text, etc) about the action by the given id, if it was registered in the manager ActionInfo actionInfoById(const QString& theId); - public slots: + private: //! Update workbench actions according to OperationMgr state: //! No active operations: all actions but nested are available //! There is active operation: current operation + it's nested //! are enabled, all the rest is disabled. All active commands is checked. - void update(); + void updateCommandsStatus(); + //! Sets all commands checked if it's operation is active. void updateCheckState(); + //! Updates actions according to current selection in the viewer void updateOnViewSelection(); - - protected: + //! Sets all actions to isEnabled state. void setAllEnabled(bool isEnabled); + //! Sets all nested actions to isEnabled state for the command with given ID. //! If ID is empty - all nested actions will be affected. void setNestedCommandsEnabled(bool isEnabled, const QString& theParent = QString()); + //! Sets to enabled state all siblings of the given operation and it's parents recursively void setNestedStackEnabled(ModuleBase_Operation* theOperation); + //! Sets the action with theId to theChecked state. void setActionChecked(const QString& theId, const bool theChecked); + //! Sets the action with theId to theEnabled state. void setActionEnabled(const QString& theId, const bool theEnabled); + //! Updates actions according to their "document" tag void updateByDocumentKind(); + //! Asks plugins about their features state, using the Events system void updateByPlugins(FeaturePtr theActiveFeature); + QStringList allNestedCommands(ModuleBase_Operation* theOperation); + private: QMap myActions; @@ -118,6 +132,8 @@ class XGUI_EXPORT XGUI_ActionsMgr : public QObject, public Events_Listener XGUI_Workshop* myWorkshop; XGUI_OperationMgr* myOperationMgr; + + friend class XGUI_Workshop; }; #endif /* XGUI_ACTIONSMGR_H_ */