]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModuleBase/ModuleBase_WidgetValidator.cpp
Salome HOME
Issue #1393 Angle constraint : incorrect angle displayed. solution: do not select...
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetValidator.cpp
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 #include <ModuleBase_WidgetValidator.h>
4
5 #include <ModuleBase_ModelWidget.h>
6 #include <ModuleBase_ViewerPrs.h>
7 #include <ModuleBase_IViewer.h>
8 #include <ModuleBase_IWorkshop.h>
9
10 ModuleBase_WidgetValidator::ModuleBase_WidgetValidator(ModuleBase_ModelWidget* theModelWidget,
11                                                        ModuleBase_IWorkshop* theWorkshop)
12 : myModelWidget(theModelWidget), myWorkshop(theWorkshop)
13 {
14 }
15
16 ModuleBase_WidgetValidator::~ModuleBase_WidgetValidator()
17 {
18 }
19
20 //********************************************************************
21 bool ModuleBase_WidgetValidator::isValidSelection(const ModuleBase_ViewerPrsPtr& theValue)
22 {
23   return myModelWidget->isValidSelectionCustom(theValue);
24 }
25
26 bool ModuleBase_WidgetValidator::isFilterActivated() const
27 {
28   bool isActivated = false;
29
30   Handle(SelectMgr_Filter) aSelFilter = myWorkshop->validatorFilter();
31   ModuleBase_IViewer* aViewer = myWorkshop->viewer();
32
33   return aViewer->hasSelectionFilter(aSelFilter);
34 }
35
36 bool ModuleBase_WidgetValidator::activateFilters(const bool toActivate)
37 {
38   ModuleBase_IViewer* aViewer = myWorkshop->viewer();
39
40   Handle(SelectMgr_Filter) aSelFilter = myWorkshop->validatorFilter();
41   bool aHasSelectionFilter = aViewer->hasSelectionFilter(aSelFilter);
42
43   if (toActivate)
44     aViewer->addSelectionFilter(aSelFilter);
45   else {
46     aViewer->removeSelectionFilter(aSelFilter);
47     //clearValidatedCash();
48   }
49
50   return aHasSelectionFilter;
51 }