+void XGUI_OperationMgr::abortOperation(ModuleBase_Operation* theOperation)
+{
+ ModuleBase_Operation* aCurrentOperation = currentOperation();
+ if (theOperation == aCurrentOperation)
+ theOperation->abort();
+ else {
+ // it is possible to trigger upper operation(e.g. sketch, current is sketch line)
+ // all operation from the current to triggered should also be aborted
+ // operations over the parameter one are not aborted(e.g. extrusion cut, sketch abort)
+ while(hasOperation()) {
+ ModuleBase_Operation* aCurrentOperation = currentOperation();
+ aCurrentOperation->abort();
+ if(theOperation == aCurrentOperation)
+ break;
+ }
+ }
+}