Salome HOME
Merge branch 'Dev_1.2.0' of newgeom:newgeom into Dev_1.2.0
[modules/shaper.git] / src / ModuleBase / ModuleBase_Operation.h
index 596b51d1df007630685e2665e252ed849a451a64..97e742eae9d3e346154ac63feb2c6043ab196486 100644 (file)
@@ -29,7 +29,8 @@ class ModuleBase_IViewer;
 class QKeyEvent;
 
 /*!
- \class ModuleBase_Operation
+ * \class ModuleBase_Operation
+ * \ingroup GUI
  * \brief Base class for all operations
  *
  *  Base class for all operations. If you perform an action it is reasonable to create
@@ -49,6 +50,9 @@ class MODULEBASE_EXPORT ModuleBase_Operation : public QObject
 Q_OBJECT
 
  public:
+
+  /// Appends to operation's history id, if it is an "edit" operation (myIsEditing == true)
+  static QString EditSuffix() { return "_E"; }
   /// Constructor
   /// \param theId the operation identifier
   /// \param theParent the QObject parent
@@ -120,10 +124,10 @@ Q_OBJECT
   /// If the operation works with feature which is sub-feature of another one
   /// then this variable has to be initialised by parent feature 
   /// before operation feature creating
-  void setParentFeature(CompositeFeaturePtr theParent) { myParentFeature = theParent; }
+  void setParentFeature(CompositeFeaturePtr theParent);
 
   /// \return Installed parent feature (can be NULL)
-  CompositeFeaturePtr parentFeature() const { return myParentFeature; }
+  CompositeFeaturePtr parentFeature() const;
 
 signals:
   /// The operation is started
@@ -144,6 +148,10 @@ signals:
   /// The operation is postponed
   void postponed();  
 
+  /// The operation is triggered
+  /// \param theState a new triggered state
+  void triggered(bool theState);
+
   /// The operation is filled with existing preselection
   void activatedByPreselection(); 
 
@@ -206,12 +214,6 @@ signals:
   /// Virtual method called after operation resume (see resume() method for more description)
   virtual void resumeOperation() {}
 
-  /// Send update message by loop
-  void flushUpdated();
-
-  /// Send created message by loop
-  void flushCreated();
-
   /// Creates an operation new feature
   /// \param theFlushMessage the flag whether the create message should be flushed
   /// \returns the created feature
@@ -221,9 +223,6 @@ signals:
   /// \return Returns TRUE if current operation can be committed, e.g. all parameters are filled
   virtual bool canBeCommitted() const;
 
-  /// Returns pointer to the root document.
-  std::shared_ptr<ModelAPI_Document> document() const;
-
   /// Return a widget value point by the selection and the viewer position
   /// The default realization returns false
   /// \param thePrs the presentation
@@ -265,6 +264,8 @@ signals:
   /// before operation feature creating
   CompositeFeaturePtr myParentFeature;  
 
+  /// Last current feature before editing operation
+  FeaturePtr myCurrentFeature;
 };
 
 #endif