Salome HOME
Issue #219 Clear selected list if selection type changed
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetMultiSelector.h
index bc184d5e57323fb3c08d0f289e634a232434e130..a456a10dc30f68e4cca4dcea030596e6160fecdf 100644 (file)
 #include <ModuleBase.h>
 #include <ModuleBase_ModelWidget.h>
 
+#include <GeomAPI_Shape.h>
+#include <ModelAPI_Result.h>
+
 #include <NCollection_List.hxx>
 #include <TopoDS_Shape.hxx>
 
 #include <QList>
 #include <QString>
 #include <QStringList>
+#include <QPair>
 
 class QWidget;
-class QTextEdit;
+class QListWidget;
 class QComboBox;
 class ModuleBase_IWorkshop;
 
@@ -57,9 +61,12 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Model
  protected:
   void filterShapes(const NCollection_List<TopoDS_Shape>& theShapesToFilter,
                     NCollection_List<TopoDS_Shape>& theResult);
+  void setCurrentShapeType(const TopAbs_ShapeEnum theShapeType);
 
  private:
-  QTextEdit* myListControl;
+   void updateSelectionList();
+
+  QListWidget* myListControl;
   QComboBox* myTypeCombo;
   QWidget* myMainWidget;
 
@@ -67,9 +74,11 @@ class MODULEBASE_EXPORT ModuleBase_WidgetMultiSelector : public ModuleBase_Model
   ModuleBase_IWorkshop* myWorkshop;
 
   /// If true then local selector has to be activated in context
-  QStringList myShapeTypes;
   bool myUseSubShapes;
   bool myIsActive;
+
+  typedef QPair<ResultPtr, GeomShapePtr> GeomSelection;
+  QList<GeomSelection> mySelection;
 };
 
 #endif /* MODULEBASE_WIDGETFILESELECTOR_H_ */