X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_OperationMgr.h;h=e43485b5c392a0a850267cea3a1107a6b26ea2d5;hb=b5e6786b95d33825a3d1537d5453492e774d6399;hp=41323570ec46fc3e6fcf12566182c9c84e0e48a6;hpb=80a21be87c81ef61f0842b32e8b2ac7d4359acb4;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_OperationMgr.h b/src/XGUI/XGUI_OperationMgr.h index 41323570e..e43485b5c 100644 --- a/src/XGUI/XGUI_OperationMgr.h +++ b/src/XGUI/XGUI_OperationMgr.h @@ -11,20 +11,23 @@ #include #include +#include + +class QKeyEvent; /**\class XGUI_OperationMgr * \ingroup GUI - * \brief Operation manager. Servers to manupulate to the workshop operations. Contains a stack - * of started operations. In simple case, if only one operration is started, the stack contains + * \brief Operation manager. Servers to manipulate to the workshop operations. Contains a stack + * of started operations. In simple case, if only one operation is started, the stack contains * one operation. It is possible for some kind of operations to start them above already - * started one. In that case, the previous active operation becames suspended, a new one - active. + * started one. In that case, the previous active operation becomes suspended, a new one - active. * The new operation is added to the top of the stack. Then it is finished, it is removed from * the stack and the previous operation is activated. */ class XGUI_EXPORT XGUI_OperationMgr : public QObject { - Q_OBJECT -public: +Q_OBJECT + public: /// Constructor /// \param theParent the parent XGUI_OperationMgr(QObject* theParent); @@ -38,14 +41,29 @@ public: bool hasOperation() const; /// Returns number of operations in the stack int operationsCount() const; + /// Returns list of all operations IDs + QStringList operationList() const; + + /// Returns previous (parent) operation if given operation started. + /// else, or if there is no parent - returns NULL + ModuleBase_Operation* previousOperation(ModuleBase_Operation* theOperation) const; + + virtual bool eventFilter(QObject *theObject, QEvent *theEvent); + /// Start the operation and append it to the stack of operations /// \param theOperation the started operation /// \return the state whether the current operation is started bool startOperation(ModuleBase_Operation* theOperation); - /// Abort the operation and append it to the stack of operations - /// \return the state whether the current operation is aborted - bool abortOperation(); + bool abortAllOperations(); + + public slots: + /// Slot that commits the current operation. + void onCommitOperation(); + /// Slot that aborts the current operation. + void onAbortOperation(); + /// Slot that validates the current operation using the validateOperation method. + void onValidateOperation(); signals: /// Signal about an operation is started. It is emitted after the start() of operation is done. @@ -53,31 +71,57 @@ signals: /// Signal about an operation is stopped. It is emitted after the stop() of operation is done. /// \param theOperation a stopped operation void operationStopped(ModuleBase_Operation* theOperation); + /// Signal about an operation is resumed. It is emitted after the resume() of operation is done. + void operationResumed(); + /// Signal is emitted after the validate methods calls. + void operationValidated(bool); + /// Signal about the necessety of the next widget activating + /// \param theWidget the model widget + void activateNextWidget(ModuleBase_ModelWidget* theWidget); -protected: + protected: + + /// Commits the current operatin if it is valid + bool commitOperation(); /// Sets the current operation or NULL /// \param theOperation the started operation /// \param isCheckBeforeStart the flag whether to check whether the operation can be started /// \return the state whether the operation is resumed void resumeOperation(ModuleBase_Operation* theOperation); + /// Checks if given operation is Valid, if so sends operationValidated signal + /// \param theOperation to be validated + /// \return validation state (true means valid) + bool validateOperation(ModuleBase_Operation* theOperation); /// Returns whether the operation can be started. Check if there is already started operation and /// the granted parameter of the launched operation /// \param theOperation an operation to check bool canStartOperation(ModuleBase_Operation* theOperation); - /// Returns whether the operation can be stopped. bool canStopOperation(); -protected slots: + /// Returns true if the operation can be aborted + bool canAbortOperation(); + + public slots: + /// SLOT, that is called by the key in the property panel is clicked. + /// \param theName the attribute name + /// \param theEvent the mouse event + void onKeyReleased(QKeyEvent* theEvent); + + /// SLOT, that reacts to the widget activation + /// \param theWidget an activated widget + void onWidgetActivated(ModuleBase_ModelWidget* theWidget); + + protected slots: /// Slot that is called by an operation stop. Removes the stopped operation form the stack. /// If there is a suspended operation, restart it. void onOperationStopped(); -private: - typedef QList Operations; ///< definition for a list of operations - Operations myOperations; ///< a stack of started operations. The active operation is on top, - // others are suspended and started by the active is finished + private: + typedef QList Operations; ///< definition for a list of operations + Operations myOperations; ///< a stack of started operations. The active operation is on top, + // others are suspended and started by the active is finished }; #endif