X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_OperationMgr.h;h=f47d6aebdab54b2585b91ea89e233f0587f2f281;hb=e6aea428c7da7751e753eac36b99e16b7e3166e4;hp=e3f653cca115b719d6eb138d3d4f00f320915112;hpb=5bc7e60d4b6c59c9e05f0aa6acfab22cced99e5e;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_OperationMgr.h b/src/XGUI/XGUI_OperationMgr.h index e3f653cca..f47d6aebd 100644 --- a/src/XGUI/XGUI_OperationMgr.h +++ b/src/XGUI/XGUI_OperationMgr.h @@ -11,6 +11,9 @@ #include #include +#include + +class QKeyEvent; /**\class XGUI_OperationMgr * \ingroup GUI @@ -36,17 +39,32 @@ public: ModuleBase_Operation* currentOperation() const; /// Returns true is operation manager has at least one non-null operation. bool hasOperation() const; + /// Returns number of operations in the stack + int operationsCount() const; /// 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(); + ///Returns list of all operations IDs + QStringList operationList(); + + virtual bool eventFilter(QObject *theObject, QEvent *theEvent); + signals: /// Signal about an operation is started. It is emitted after the start() of operation is done. void operationStarted(); /// 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 about the necessety of the next widget activating + /// \param theWidget the model widget + void activateNextWidget(ModuleBase_ModelWidget* theWidget); protected: /// Sets the current operation or NULL @@ -60,11 +78,28 @@ protected: /// \param theOperation an operation to check bool canStartOperation(ModuleBase_Operation* theOperation); + /// Returns whether the operation can be stopped. + bool canStopOperation(); + protected slots: + /// Slot that commits the current operation. + void onCommitOperation(); + /// Slot that aborts the current operation. + void onAbortOperation(); + /// 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(); + /// 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(const std::string& theName, QKeyEvent* theEvent); + + /// SLOT, that reacts to the widget activation + /// \param theWidget an activated widget + void onWidgetActivated(ModuleBase_ModelWidget* theWidget); + private: typedef QList Operations; ///< definition for a list of operations Operations myOperations; ///< a stack of started operations. The active operation is on top,