X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_OperationMgr.h;h=66e14f732b9e20c597dca92393f88769d946de2c;hb=70122a4400ec112e9c2c071724d444fa40282076;hp=55260d6ec1d0eb096d24605a28f109bd5b6d57b6;hpb=39542b37664439ffc0bd754c74a72853997102f6;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_OperationMgr.h b/src/XGUI/XGUI_OperationMgr.h index 55260d6ec..66e14f732 100644 --- a/src/XGUI/XGUI_OperationMgr.h +++ b/src/XGUI/XGUI_OperationMgr.h @@ -10,6 +10,7 @@ #include "XGUI.h" #include +#include "ModelAPI_Feature.h" #include #include @@ -18,6 +19,7 @@ class QKeyEvent; class ModuleBase_IWorkshop; +class XGUI_Workshop; /**\class XGUI_OperationMgr * \ingroup GUI @@ -34,10 +36,14 @@ Q_OBJECT public: /// Constructor /// \param theParent the parent + /// \param theWorkshop a reference to workshop XGUI_OperationMgr(QObject* theParent, ModuleBase_IWorkshop* theWorkshop); + /// Destructor virtual ~XGUI_OperationMgr(); + /// Set reference to workshop + /// \param theWorkshop reference to workshop void setWorkshop(ModuleBase_IWorkshop* theWorkshop) { myWorkshop = theWorkshop; }; @@ -84,7 +90,7 @@ Q_OBJECT /// Returns whether the operation can be started. Check if there is already started operation and /// the granted parameter of the launched operation /// \param theId id of the operation which is going to start - bool canStartOperation(QString theId); + bool canStartOperation(const QString& theId); /// Aborts the parameter operation if it is current, else abort operations from the stack /// of operations until the operation is found. All operations upper the parameter one are @@ -137,14 +143,6 @@ signals: /// Emitted when current operation is aborted void operationAborted(ModuleBase_Operation* theOperation); - /// Signal is emitted after the apply enable state changed. - void validationStateChanged(bool); - - /// Signal is emitted after the model is modified. It is emitted for all active operations. - /// \param theFeatureKind a feature id - /// \param theState validity of the operation with the feature kind - void nestedStateChanged(const std::string& theFeatureKind, const bool theState); - /// Signal is emitted after the current operation is filled with existing preselection. void operationActivatedByPreselection(); @@ -172,9 +170,13 @@ protected: // TEMPORARY /// Returns whether the parameter operation is granted in relation to the previous operation /// in a stack of started operations. It is used in canStopOperation to avoid warning message /// when granted operation is aborted, e.g. SketchLine in Sketch - /// \param theOperation the started operation + /// \param theId id of the operation which is checked /// \return boolean result - bool isGrantedOperation(ModuleBase_Operation* theOperation); + bool isGrantedOperation(const QString& theId); + + /// Sets the feature as a current in the document + /// \param theFeature a feature + void setCurrentFeature(const FeaturePtr& theFeature); public slots: /// SLOT, that is called by the key in the property panel is clicked. @@ -186,18 +188,32 @@ protected: // TEMPORARY /// If there is a suspended operation, restart it. void onOperationStopped(); - /// Slot called on operation start + /// Slot called before operation started. Stores the previous current feature, set the feature + /// of the operation as a current in the document. The previous current feature should be restored + /// by the operation abort/commit + void onBeforeOperationStarted(); + + /// Slot called after operation started void onOperationStarted(); - /// Slot called on operation abort + /// Slot called before operation aborted. Restore the previous current operation + void onBeforeOperationAborted(); + + /// Slot called after operation aborted void onOperationAborted(); - /// Slot called on operation commit + /// Slot called before operation committed. Restore the previous current operation + void onBeforeOperationCommitted(); + + /// Slot called after operation committed void onOperationCommitted(); /// Slot called on operation resume void onOperationResumed(); +private: + XGUI_Workshop* workshop() const; + private: typedef QList Operations; ///< definition for a list of operations Operations myOperations; ///< a stack of started operations. The active operation is on top, @@ -206,7 +222,6 @@ protected: // TEMPORARY /// Current workshop ModuleBase_IWorkshop* myWorkshop; - /// Lock/Unlock access to Ok button in property panel bool myIsValidationLock; /// Lock/Unlock access to Ok button in property panel