X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_OperationMgr.h;h=3cd0f9a379eeaac1ebbe805d8d191858d93f4eae;hb=64fc7e4fdd63997ec7a502b233ef5f88186d5bbb;hp=80c457b2b2823edeeddb36ae7c91c4ea85aeb682;hpb=600312b6ee50f49aaf513e694d3d177386b916d9;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_OperationMgr.h b/src/XGUI/XGUI_OperationMgr.h index 80c457b2b..3cd0f9a37 100644 --- a/src/XGUI/XGUI_OperationMgr.h +++ b/src/XGUI/XGUI_OperationMgr.h @@ -18,6 +18,7 @@ class QKeyEvent; class ModuleBase_IWorkshop; +class XGUI_Workshop; /**\class XGUI_OperationMgr * \ingroup GUI @@ -55,8 +56,10 @@ Q_OBJECT /// Returns true is operation manager has an operation with given Id. bool hasOperation(const QString& theId) const; - /// Returns true if the operation can be aborted - bool canStopOperation(); + /// Returns true if the operation can be aborted. If the operation is modified, + /// the warning message box is shown. + /// \param theOperation an operation which is checked on stop + bool canStopOperation(ModuleBase_Operation* theOperation); /// Find and return operation by its Id. ModuleBase_Operation* findOperation(const QString& theId) const; @@ -82,7 +85,14 @@ 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); + /// \param isAdditionallyGranted a boolean flag whether the id operation is granted in the previous one + bool canStartOperation(const QString& theId, const bool isAdditionallyGranted = false); + + /// 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 + /// not aborted. + /// \param theOperation an aborted operation + void abortOperation(ModuleBase_Operation* theOperation); /// Blocking/unblocking enabling of Ok button in property panel. /// It is used when operation can not be validated even all attributes are valid @@ -130,10 +140,12 @@ signals: void operationAborted(ModuleBase_Operation* theOperation); /// Signal is emitted after the apply enable state changed. - void validationStateChanged(bool); + //void validationStateChanged(bool); - /// Signal is emitted after the apply enable state changed. - void nestedStateChanged(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(); @@ -146,13 +158,26 @@ signals: /// \param theEnabled the state value void setApplyEnabled(const bool theEnabled); +public: // TEMPORARY, it should be protected and be performed automatically + /// Emits nestedStateChange for operations with an information about validity of the operation + /// \param theOperation the sent operation. If it is NULL, all operations in the stack are sent. + void updateApplyOfOperations(ModuleBase_Operation* theOperation = 0); + /// Commits the current operatin if it is valid bool commitOperation(); +protected: // TEMPORARY /// Sets the current operation or NULL /// \param theOperation the started operation void resumeOperation(ModuleBase_Operation* theOperation); + /// 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 + /// \return boolean result + bool isGrantedOperation(ModuleBase_Operation* theOperation); + public slots: /// SLOT, that is called by the key in the property panel is clicked. /// \param theEvent the mouse event @@ -175,8 +200,8 @@ signals: /// Slot called on operation resume void onOperationResumed(); - /// Slot called on operation triggered - void onOperationTriggered(bool theState); +private: + XGUI_Workshop* workshop() const; private: typedef QList Operations; ///< definition for a list of operations