/// 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;
/// \return Currently installed property panel
//ModuleBase_IPropertyPanel* propertyPanel() const { return myPropertyPanel; }
- void setCurrentFeature(const FeaturePtr& theFeature);
-
/// Activates widgets by preselection if it is accepted. Emits signal if the activation is correct
virtual void activateByPreselection();
/// \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();
/// 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.
/// Hide feature/results if they were hided on start
virtual void stopOperation();
- /// Virtual method called after operation resume (see resume() method for more description)
- virtual void resumeOperation();
-
/// Creates an operation new feature
/// \param theFlushMessage the flag whether the create message should be flushed
/// \returns the created feature