X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ActionsMgr.h;h=0acc6a26a98b8254fc501c208b9f57b8b57e9c00;hb=9129370ff85bfb4c0c37d9f32f9d107041ec2fe8;hp=8007e979421e63275f22a73277b729eed1b78e68;hpb=72cb66f9c09b0f8fa224f6f8ab43548658015b49;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ActionsMgr.h b/src/XGUI/XGUI_ActionsMgr.h index 8007e9794..0acc6a26a 100644 --- a/src/XGUI/XGUI_ActionsMgr.h +++ b/src/XGUI/XGUI_ActionsMgr.h @@ -12,6 +12,8 @@ #include #include +#include + #include #include #include @@ -29,14 +31,23 @@ class QAction; */ class XGUI_EXPORT XGUI_ActionsMgr : public QObject, public Events_Listener { -Q_OBJECT + Q_OBJECT public: - /// Constructor - /// \param theWorkshop an instance of workshop + /// Constructor + /// \param theWorkshop an instance of workshop XGUI_ActionsMgr(XGUI_Workshop* theWorkshop); virtual ~XGUI_ActionsMgr(); + /// Actions on operations + enum OperationStateActionId { + Abort = 0, + Accept = 1, + Help = 2, + AbortAll = 3, + AcceptAll = 4 + }; + //! Add a command in the manager. //! Please note that nested commands in the Salome mode (No AppElements_Command, pure QActions) //! won't be extracted and should be added manually using the addNestedCommands method. @@ -55,11 +66,23 @@ Q_OBJECT /// Registers shortcut (key sequence) for the command triggering /// \param theKeySequence a key sequence to register + QKeySequence registerShortcut(const QKeySequence& theKeySequence); + + /// This is an overloaded function. + /// Registers shortcut (key sequence) for the command triggering + /// \param theKeySequence - string that contain a key sequence to register QKeySequence registerShortcut(const QString& theKeySequence); //! Redefinition of Events_Listener method virtual void processEvent(const std::shared_ptr& theMessage); + //! Return property panel's action like ok, cancel, help. + //! If there is no such action, it will be created. + QAction* operationStateAction(OperationStateActionId theId, QObject* theParent = 0); + + /// 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: //! Update workbench actions according to OperationMgr state: //! No active operations: all actions but nested are available @@ -89,8 +112,10 @@ Q_OBJECT void updateByPlugins(FeaturePtr theActiveFeature); private: + QMap myActions; QMap myNestedActions; + QMap myOperationActions; QList myShortcuts; XGUI_Workshop* myWorkshop;