X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FPartSet%2FPartSet_SketcherReentrantMgr.cpp;h=b0d19549b987d7aab87e7248646d2a6fd2642ef9;hb=ac6c4b849218e6f1a45c0a21e46c5fda401c38f0;hp=0e4aebf79659148efb77fa162fe1e4e4f941771d;hpb=b059beaa04c31859789fe2f56e70ebd07e4e829f;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_SketcherReentrantMgr.cpp b/src/PartSet/PartSet_SketcherReentrantMgr.cpp index 0e4aebf79..b0d19549b 100644 --- a/src/PartSet/PartSet_SketcherReentrantMgr.cpp +++ b/src/PartSet/PartSet_SketcherReentrantMgr.cpp @@ -333,9 +333,10 @@ void PartSet_SketcherReentrantMgr::setReentrantPreSelection( // ModuleBase_ModelWidget* aFirstWidget = aModule->activeWidget(); // ModuleBase_IPropertyPanel* aPanel = aModule->currentOperation()->propertyPanel(); // if (aFirstWidget != aPanel->activeWidget()) { -// ModuleBase_WidgetSelector* aWSelector = dynamic_cast(aFirstWidget); +// ModuleBase_WidgetSelector* aWSelector = dynamic_cast +// (aFirstWidget); // if (aWSelector) { -// myWorkshop->selectionActivate()->activateSelectionAndFilters(aWSelector); +// myWorkshop->selectionActivate()->updateSelectionModesAndFilters(aWSelector); // } // } //} @@ -364,15 +365,20 @@ void PartSet_SketcherReentrantMgr::onNoMoreWidgets(const std::string& thePreviou return; if (aFOperation && module()->sketchMgr()->isNestedSketchOperation(aFOperation)) { - bool isStarted = false; - if (!module()->sketchMgr()->sketchSolverError()) { - if (myRestartingMode != RM_Forbided) { - myRestartingMode = RM_LastFeatureUsed; - isStarted = startInternalEdit(thePreviousAttributeID); + if (aFOperation->isNeedToBeAborted()) { + aFOperation->abort(); + } + else { + bool isStarted = false; + if (!module()->sketchMgr()->sketchSolverError()) { + if (myRestartingMode != RM_Forbided) { + myRestartingMode = RM_LastFeatureUsed; + isStarted = startInternalEdit(thePreviousAttributeID); + } } + if (!isStarted) + aFOperation->commit(); } - if (!isStarted) - aFOperation->commit(); } } @@ -659,13 +665,8 @@ void PartSet_SketcherReentrantMgr::deleteInternalFeature() std::cout << "PartSet_SketcherReentrantMgr::deleteInternalFeature: " << myInternalFeature->data()->name() << std::endl; #endif - if (myInternalActiveWidget) { - ModuleBase_WidgetSelector* aWSelector = - dynamic_cast(myInternalActiveWidget); - if (aWSelector) - myWorkshop->selectionActivate()->activateSelectionAndFilters(aWSelector); + if (myInternalActiveWidget) myInternalActiveWidget = 0; - } delete myInternalWidget; myInternalWidget = 0;