-void XGUI_OperationMgr::onOperationTriggered(bool theState)
-{
- ModuleBase_Operation* aSenderOperation = dynamic_cast<ModuleBase_Operation*>(sender());
- if (aSenderOperation && !theState) {
- ModuleBase_Operation* aCurrentOperation = currentOperation();
- if (aSenderOperation == aCurrentOperation)
- aCurrentOperation->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
- while(hasOperation()) {
- ModuleBase_Operation* aCurrentOperation = currentOperation();
- aCurrentOperation->abort();
- if(aSenderOperation == aCurrentOperation)
- break;
- }
- }
- }
-}
-