X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_OperationFeature.h;h=ab0ce8c900ab13485f5ecf6333ff950674daf10b;hb=752c9e02e6aa8ced24e9b53097cb42540d5e6a08;hp=0d2afdd9ba8e7dcdd5116f9aa5f559c3191ad970;hpb=5ebfd3be8bf1d28be01c4edd749e73852591dd21;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_OperationFeature.h b/src/ModuleBase/ModuleBase_OperationFeature.h index 0d2afdd9b..ab0ce8c90 100755 --- a/src/ModuleBase/ModuleBase_OperationFeature.h +++ b/src/ModuleBase/ModuleBase_OperationFeature.h @@ -14,12 +14,15 @@ #include #include +#include #include #include #include #include +#include + class ModuleBase_ModelWidget; class ModuleBase_ISelection; class ModuleBase_IViewer; @@ -61,6 +64,13 @@ Q_OBJECT /// Returns True id the current operation is launched in editing mode bool isEditOperation() const { return myIsEditing; } + /// Change the operation mode from create to edit. + /// The transaction and the operation name in the model history of transaction are the same. + /// It updates the edit state in the widgets of property panel + /// \param theRestartTransaction if true, the current model transaction is committed and + /// the new one is started + void setEditOperation(const bool theRestartTransaction); + /// Returns the operation feature /// \return the feature FeaturePtr feature() const; @@ -75,6 +85,11 @@ Q_OBJECT /// Returns True if the current operation works with the given object (feature or result) virtual bool hasObject(ObjectPtr theObj) const; + /// Returns true if the object is displayed when the operation was started + /// \param theObject a feature or result of the operation feature + /// \return boolean value whether the object display state was changed + virtual bool isDisplayedOnStart(ObjectPtr theObject); + /// Initialisation of operation with preliminary selection /// \param theSelection an instance of Selection class /// \param theViewer a viewer to have the viewer the eye position @@ -99,6 +114,14 @@ Q_OBJECT /// \return Installed parent feature (can be NULL) CompositeFeaturePtr parentFeature() const; + /// Stores the previous to the operation current feature + /// \param theFeature a feature + void setPreviousCurrentFeature(const FeaturePtr& theFeature); + + /// Returns the previous to the operation current feature + /// \return theFeature a feature + FeaturePtr previousCurrentFeature(); + signals: /// The operation is filled with existing preselection void activatedByPreselection(); @@ -110,7 +133,8 @@ signals: /// to change behavior of operation. There is no point in using this method. It would /// be better to inherit own operator from base one and redefine startOperation method /// instead. - void start(); + /// \return true if the start is successful + virtual bool start(); /// Aborts operation /// Public slot. Aborts operation. This slot is not virtual and cannot be redefined. @@ -123,6 +147,12 @@ signals: bool commit(); protected: + /// Displays the feature/results if it is hidden. It will be hided in stopOperation + virtual void startOperation(); + + /// Hide feature/results if they were hided on start + virtual void stopOperation(); + /// Creates an operation new feature /// \param theFlushMessage the flag whether the create message should be flushed /// \returns the created feature @@ -135,6 +165,10 @@ signals: /// The operation feature to be handled FeaturePtr myFeature; + /// a list of hidden objects, whic are diplayed by operation start + /// and should be hidden by operation stop + std::set myVisualizedObjects; + /// Editing feature flag bool myIsEditing;