]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/ModuleBase/ModuleBase_WidgetMultiSelector.cpp
Salome HOME
Using validator in multi selector control for the "type_choice" key.
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetMultiSelector.cpp
index 21518852ccabc90f2ae13b0049accf256f7aa3a0..976972a6077f72bfa81309459694cb10864464e7 100644 (file)
@@ -15,6 +15,8 @@
 #include <ModuleBase_Tools.h>
 #include <ModuleBase_Definitions.h>
 
+#include <GeomValidators_ShapeType.h>
+
 #include <ModelAPI_Data.h>
 #include <ModelAPI_Object.h>
 
@@ -50,6 +52,8 @@ ModuleBase_WidgetMultiSelector::ModuleBase_WidgetMultiSelector(QWidget* theParen
   myTypeCombo = new QComboBox(this);
   // There is no sence to paramerize list of types while we can not parametrize selection mode
 
+  myShapeValidator = new GeomValidators_ShapeType();
+
   std::string aPropertyTypes = theData->getProperty("type_choice");
   QString aTypesStr = aPropertyTypes.c_str();
   QStringList aShapeTypes = aTypesStr.split(' ');
@@ -96,6 +100,8 @@ ModuleBase_WidgetMultiSelector::~ModuleBase_WidgetMultiSelector()
 {
   activateShapeSelection(false);
   activateFilters(myWorkshop, false);
+
+  delete myShapeValidator;
 }
 
 //********************************************************************
@@ -200,6 +206,19 @@ void ModuleBase_WidgetMultiSelector::restoreAttributeValue(bool/* theValid*/)
   }
 }
 
+//********************************************************************
+void ModuleBase_WidgetMultiSelector::customValidators(
+                                        std::list<ModelAPI_Validator*>& theValidators,
+                                        std::list<std::list<std::string> >& theArguments) const
+{
+  std::list<std::string> anArguments;
+
+  theValidators.push_back(myShapeValidator);
+  QString aType = myTypeCombo->currentText();
+  anArguments.push_back(aType.toStdString().c_str());
+  theArguments.push_back(anArguments);
+}
+
 //********************************************************************
 bool ModuleBase_WidgetMultiSelector::setSelection(const QList<ModuleBase_ViewerPrs>& theValues,
                                                   int& thePosition)