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
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
/// 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();
virtual void abortOperation() {}
/// Virtual method called when operation committed (see commit() method for more description)
- virtual void commitOperation() {}
+ virtual void commitOperation();
/// Virtual method called after operation committed (see commit() method for more description)
virtual void afterCommitOperation() {}
/// 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
/// \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
/// before operation feature creating
CompositeFeaturePtr myParentFeature;
+ /// Last current feature before editing operation
+ FeaturePtr myCurrentFeature;
};
#endif