+ /// 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
+ /// \param isCommitted boolean value if the operation was committed otherwise it was aborted
+ bool canStartOperation(const QString& theId, bool& isCommitted);
+
+ /// If Apply is enabled and operation has modification, it is applyed, otherwise aborted
+ /// \param theOperation the started operation
+ /// \param isCommitted boolean value if the operation was committed otherwise it was aborted
+ void stopOperation(ModuleBase_Operation* theOperation, bool& isCommitted);
+
+ /// 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);
+
+ /// Abort all operations
+ /// \param theMessageKind kind of shown warning message
+ bool abortAllOperations(const XGUI_MessageKind& theMessageKind = XGUI_AbortOperationMessage);
+
+ /// Commits the current operation.
+ bool commitOperation();
+
+ /// Returns true if SHIFT is pressed
+ /// \param thePressed new boolean state
+ void setSHIFTPressed(const bool thePressed) { mySHIFTPressed = thePressed; }
+
+ /// Returns true if SHIFT is pressed
+ /// \return boolean value
+ bool hasSHIFTPressed() const { return mySHIFTPressed; }
+
+public slots:
+ /// Slot that aborts the current operation.
+ void onAbortOperation();
+ /// Slot that aborts all operations. It shows aborting message
+ void onAbortAllOperation();
+ /// Slot that validates the current operation using the validateOperation method.
+ void onValidateOperation();
+ /// Commit all operations
+ bool commitAllOperations();
+