X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_WidgetValidated.cpp;h=55abdb5035e40020379be97f8b0697d81c85d337;hb=38012f90328622b1b395fc6ff6c3b790f290c0be;hp=aa774ca55286e28dc30aa9651c991e1ac03f1914;hpb=d24741939099378df05801e5f620d31507fe66cf;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_WidgetValidated.cpp b/src/ModuleBase/ModuleBase_WidgetValidated.cpp index aa774ca55..55abdb503 100644 --- a/src/ModuleBase/ModuleBase_WidgetValidated.cpp +++ b/src/ModuleBase/ModuleBase_WidgetValidated.cpp @@ -25,7 +25,7 @@ ModuleBase_WidgetValidated::ModuleBase_WidgetValidated(QWidget* theParent, const Config_WidgetAPI* theData, const std::string& theParentId) : ModuleBase_ModelWidget(theParent, theData, theParentId), - myWorkshop(theWorkshop) + myWorkshop(theWorkshop), myIsInValidate(false) { } @@ -60,6 +60,18 @@ ObjectPtr ModuleBase_WidgetValidated::findPresentedObject(const AISObjectPtr& th return myPresentedObject; } +//******************************************************************** +void ModuleBase_WidgetValidated::storeAttributeValue() +{ + myIsInValidate = true; +} + +//******************************************************************** +void ModuleBase_WidgetValidated::restoreAttributeValue(const bool theValid) +{ + myIsInValidate = false; +} + //******************************************************************** bool ModuleBase_WidgetValidated::isValidInFilters(const ModuleBase_ViewerPrs& thePrs) { @@ -89,11 +101,14 @@ bool ModuleBase_WidgetValidated::isValidInFilters(const ModuleBase_ViewerPrs& th if (!isActivated) activateFilters(true); - const SelectMgr_ListOfFilter& aFilters = myWorkshop->viewer()->AISContext()->Filters(); - SelectMgr_ListIteratorOfListOfFilter anIt(aFilters); - for (; anIt.More() && aValid; anIt.Next()) { - Handle(SelectMgr_Filter) aFilter = anIt.Value(); - aValid = aFilter->IsOk(anOwner); + Handle(AIS_InteractiveContext) aContext = myWorkshop->viewer()->AISContext(); + if (!aContext.IsNull()) { + const SelectMgr_ListOfFilter& aFilters = aContext->Filters(); + SelectMgr_ListIteratorOfListOfFilter anIt(aFilters); + for (; anIt.More() && aValid; anIt.Next()) { + Handle(SelectMgr_Filter) aFilter = anIt.Value(); + aValid = aFilter->IsOk(anOwner); + } } if (!isActivated) activateFilters(false); @@ -171,24 +186,9 @@ bool ModuleBase_WidgetValidated::isValidAttribute() const { SessionPtr aMgr = ModelAPI_Session::get(); ModelAPI_ValidatorsFactory* aFactory = aMgr->validators(); - std::list aValidators; - std::list > anArguments; - aFactory->validators(myFeature->getKind(), attributeID(), aValidators, anArguments); - - DataPtr aData = myFeature->data(); AttributePtr anAttribute = myFeature->attribute(attributeID()); - - std::list::iterator aValidator = aValidators.begin(); - std::list >::iterator aArgs = anArguments.begin(); - bool aValid = true; - for (; aValidator != aValidators.end() && aValid; aValidator++, aArgs++) { - const ModelAPI_AttributeValidator* aAttrValidator = - dynamic_cast(*aValidator); - if (aAttrValidator) { - aValid = aAttrValidator->isValid(anAttribute, *aArgs); - } - } - return aValid; + std::string aValidatorID, anError; + return aFactory->validate(anAttribute, aValidatorID, anError); } bool ModuleBase_WidgetValidated::isFilterActivated() const