X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_FilterValidated.cpp;h=be964c72bbdabebe0aa1c6ae7edde13b007dde0f;hb=3e6012473696e5fd94e3c8240e2e1eda8def1743;hp=bb56ba1491318356fcf5f9d62a5ebfd7983c01ca;hpb=a8cfbfb436c27ff96edd5c808e9a452c35cef207;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_FilterValidated.cpp b/src/ModuleBase/ModuleBase_FilterValidated.cpp index bb56ba149..be964c72b 100644 --- a/src/ModuleBase/ModuleBase_FilterValidated.cpp +++ b/src/ModuleBase/ModuleBase_FilterValidated.cpp @@ -6,6 +6,7 @@ #include "ModuleBase_FilterValidated.h" #include "ModuleBase_IWorkshop.h" +#include "ModuleBase_IViewer.h" #include #include @@ -16,51 +17,34 @@ #include #include -IMPLEMENT_STANDARD_HANDLE(ModuleBase_FilterValidated, SelectMgr_Filter); IMPLEMENT_STANDARD_RTTIEXT(ModuleBase_FilterValidated, SelectMgr_Filter); -//#define DEBUG_CURRENT_SELECTION - -Standard_Boolean ModuleBase_FilterValidated::IsOk(const Handle(SelectMgr_EntityOwner)& theOwner) const +Standard_Boolean ModuleBase_FilterValidated:: + IsOk(const Handle(SelectMgr_EntityOwner)& theOwner) const { bool aValid = true; ModuleBase_Operation* anOperation = myWorkshop->module()->currentOperation(); if (anOperation) { -#ifdef DEBUG_CURRENT_SELECTION - QString aPrefix = "ModuleBase_FilterValidated::IsOk: "; - QList aSelected = myWorkshop->selection()->getSelected(ModuleBase_ISelection::Viewer); - QList::const_iterator anIt = aSelected.begin(), aLast = aSelected.end(); - QStringList anInfo; - ModuleBase_ViewerPrsPtr aPrs; - for (; anIt != aLast; anIt++) { - aPrs = (*anIt); - if (!aPrs.get()) - continue; - - //GeomShapePtr aShape = aPrs->shape(); - ObjectPtr anObject = aPrs->object(); - QString anObjectInfo = anObject.get() ? ModuleBase_Tools::objectInfo(anObject) : ""; - anInfo.append(anObjectInfo); - } - QString anInfoStr = anInfo.join(";\t"); - qDebug(QString("%1: %2, %3").arg(aPrefix).arg(anInfo.size()).arg(anInfoStr).toStdString().c_str()); -#endif + ModuleBase_IViewer* aViewer = myWorkshop->viewer(); + Handle(AIS_InteractiveContext) aContext = aViewer->AISContext(); ModuleBase_IPropertyPanel* aPanel = anOperation->propertyPanel(); - ModuleBase_ModelWidget* aCurrentWidget = aPanel->preselectionWidget(); - if (!aCurrentWidget) - aCurrentWidget = myWorkshop->module()->activeWidget(); - if (aCurrentWidget) { - ModuleBase_ViewerPrsPtr aPrs(new ModuleBase_ViewerPrs()); - myWorkshop->selection()->fillPresentation(aPrs, theOwner); - ModuleBase_WidgetValidated* aWidgetValidated = dynamic_cast - (aCurrentWidget); - if (aWidgetValidated) - aValid = !aWidgetValidated || aWidgetValidated->isValidSelection(aPrs); - else{ - ModuleBase_WidgetValidator* aWidgetValidator = aCurrentWidget->widgetValidator(); - if (aWidgetValidator) - aValid = aWidgetValidator->isValidSelection(aPrs); + if (aPanel) { + ModuleBase_ModelWidget* aCurrentWidget = aPanel->preselectionWidget(); + if (!aCurrentWidget) + aCurrentWidget = myWorkshop->module()->activeWidget(); + if (aCurrentWidget) { + ModuleBase_ViewerPrsPtr aPrs(new ModuleBase_ViewerPrs()); + myWorkshop->selection()->fillPresentation(aPrs, theOwner); + ModuleBase_WidgetValidated* aWidgetValidated = dynamic_cast + (aCurrentWidget); + if (aWidgetValidated) + aValid = !aWidgetValidated || aWidgetValidated->isValidSelection(aPrs); + else{ + ModuleBase_WidgetValidator* aWidgetValidator = aCurrentWidget->widgetValidator(); + if (aWidgetValidator) + aValid = aWidgetValidator->isValidSelection(aPrs); + } } } }