X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ActionsMgr.cpp;h=b1b5f1cf512760d49678b83e0528254f82381170;hb=83a851858962e7cb250b2086ca43c8f0b2eaa787;hp=8b6fbadd1c685e94305ef78d791405823e73c060;hpb=9503b9474d57935de95296dfe6587f6422a6d85d;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ActionsMgr.cpp b/src/XGUI/XGUI_ActionsMgr.cpp index 8b6fbadd1..b1b5f1cf5 100644 --- a/src/XGUI/XGUI_ActionsMgr.cpp +++ b/src/XGUI/XGUI_ActionsMgr.cpp @@ -140,34 +140,23 @@ void XGUI_ActionsMgr::updateOnViewSelection() if (aIdList.isEmpty()) return; + ModuleBase_Operation* theOperation = myOperationMgr->currentOperation(); //QString aFeatureId = QString::fromStdString(anActiveFeature->getKind()); XGUI_Selection* aSelection = myWorkshop->selector()->selection(); // only viewer selection is processed - if (aSelection->getSelected(ModuleBase_ISelection::Viewer).size() == 0) { - // it seems that this code is not nesessary anymore. It leads to incorrect case: - // sketch operation start, click in any place in the viewer. The result is all nested - // entities are enabled(but the sketch plane is not selected yet). Any sketch operation - // can be started but will be incorrect on preview build before it uses the sketch unset plane. - /*foreach(QString aFeatureId, aIdList) { - foreach(QString aId, nestedCommands(aFeatureId)) { - setActionEnabled(aId, true); - } - }*/ - } else { - SessionPtr aMgr = ModelAPI_Session::get(); - ModelAPI_ValidatorsFactory* aFactory = aMgr->validators(); - foreach(QString aFeatureId, aIdList) { - foreach(QString aId, nestedCommands(aFeatureId)) { - ModelAPI_ValidatorsFactory::Validators aValidators; - aFactory->validators(aId.toStdString(), aValidators); - ModelAPI_ValidatorsFactory::Validators::iterator aValidatorIt = aValidators.begin(); - for (; aValidatorIt != aValidators.end(); ++aValidatorIt) { - const ModuleBase_SelectionValidator* aSelValidator = - dynamic_cast(aFactory->validator(aValidatorIt->first)); - if (!aSelValidator) - continue; - setActionEnabled(aId, aSelValidator->isValid(aSelection, aValidatorIt->second)); - } + SessionPtr aMgr = ModelAPI_Session::get(); + ModelAPI_ValidatorsFactory* aFactory = aMgr->validators(); + foreach(QString aFeatureId, aIdList) { + foreach(QString aId, nestedCommands(aFeatureId)) { + ModelAPI_ValidatorsFactory::Validators aValidators; + aFactory->validators(aId.toStdString(), aValidators); + ModelAPI_ValidatorsFactory::Validators::iterator aValidatorIt = aValidators.begin(); + for (; aValidatorIt != aValidators.end(); ++aValidatorIt) { + const ModuleBase_SelectionValidator* aSelValidator = + dynamic_cast(aFactory->validator(aValidatorIt->first)); + if (!aSelValidator) + continue; + setActionEnabled(aId, aSelValidator->isValid(aSelection, theOperation)); } } }