X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FXGUI%2FXGUI_ActionsMgr.h;h=89e3b70b7ae0139b985285456dd02305940588d0;hb=cf44c594091917274fca6b5aa0c9cbaee611d268;hp=d6c55d833ca7b87720107404be8267a1afd434c3;hpb=d86c77d1c6210bbe04fbc3e5b00f9e212e1ec930;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ActionsMgr.h b/src/XGUI/XGUI_ActionsMgr.h index d6c55d833..89e3b70b7 100644 --- a/src/XGUI/XGUI_ActionsMgr.h +++ b/src/XGUI/XGUI_ActionsMgr.h @@ -5,35 +5,62 @@ #ifndef XGUI_ACTIONSMGR_H_ #define XGUI_ACTIONSMGR_H_ +#include "XGUI.h" + #include #include #include class XGUI_Command; +class XGUI_Workshop; +class XGUI_OperationMgr; class QAction; -class XGUI_ActionsMgr: public QObject +class XGUI_EXPORT XGUI_ActionsMgr: public QObject { Q_OBJECT public: - XGUI_ActionsMgr(QObject* theParent); + XGUI_ActionsMgr(XGUI_Workshop* theWorkshop); virtual ~XGUI_ActionsMgr(); + //! Add a command in the manager. + //! Please note that nested commands in the Salome mode (No XGUI_Command, pure QActions) + //! won't be extracted and should be added manually using the addNestedCommands method. + void addCommand(QAction* theCmd); + //! Sets relation between the command (with given Id) and it's nested actions. + void addNestedCommands(const QString& theId, const QStringList& theCommands); - void addCommand(XGUI_Command* theCmd); - void saveCommandsState(); - void restoreCommandState(); + QStringList nestedCommands(const QString& theId) const; - void setNestedActionsEnabled(bool); + bool isNested(const QString& theId) const; public slots: - void setActionsDisabled(bool isEnabled); + //! 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(); + //! Sets all commands checked if it's operation is active. + void updateCheckState(); + +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 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); private: - QStringList myNestedActions; QMap myActions; - QMap myActionsState; + QMap myNestedActions; + + XGUI_OperationMgr* myOperationMgr; }; #endif /* XGUI_ACTIONSMGR_H_ */ +