Salome HOME
Issue #1393 Angle constraint : incorrect angle displayed. solution: do not select...
[modules/shaper.git] / src / ModuleBase / ModuleBase_FilterValidated.cpp
index a41f154631c91eb1fd185b56baa6c4fe58294553..3d57d9f186922d496466ac9532e5d620d5672748 100644 (file)
@@ -12,6 +12,7 @@
 #include <ModuleBase_ISelection.h>
 #include <ModuleBase_Operation.h>
 #include <ModuleBase_WidgetValidated.h>
+#include <ModuleBase_WidgetValidator.h>
 #include <ModuleBase_ViewerPrs.h>
 
 IMPLEMENT_STANDARD_HANDLE(ModuleBase_FilterValidated, SelectMgr_Filter);
@@ -30,8 +31,12 @@ Standard_Boolean ModuleBase_FilterValidated::IsOk(const Handle(SelectMgr_EntityO
                                                                            (aCurrentWidget);
     ModuleBase_ViewerPrsPtr aPrs(new ModuleBase_ViewerPrs());
     myWorkshop->selection()->fillPresentation(aPrs, theOwner);
-
-    aValid = !aWidgetValidated || aWidgetValidated->isValidSelection(aPrs);
+    if (aWidgetValidated)
+      aValid = !aWidgetValidated || aWidgetValidated->isValidSelection(aPrs);
+    else if (aCurrentWidget->widgetValidator()) {
+      ModuleBase_WidgetValidator* aWidgetValidator = aCurrentWidget->widgetValidator();
+      aValid = aWidgetValidator->isValidSelection(aPrs);
+    }
   }
 
 #ifdef DEBUG_FILTERS