-// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
class QPushButton;
class QCheckBox;
+class ModelAPI_Filter;
+
class ModuleBase_IWorkshop;
/**
/// Returns filter Id
std::string filter() const { return myFilterID; }
- /// Returns list of widget controls
- /// \return a control list
- QList<QWidget*> getControls() const;
-
/// Returns list of widgets which reperesent the current filter GUI
QList<ModuleBase_ModelWidget*> widgets() const {
return myWidgets;
{
Q_OBJECT
public:
+ static FeaturePtr SelectorFeature;
+ static std::string AttributeId;
+
/// Constructor
/// \param theParent the parent object
/// \param theData the widget configuration. The attribute of the model widget is obtained from
/// a low-level API for reading xml definitions of widgets
ModuleBase_WidgetSelectionFilter(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
- const Config_WidgetAPI* theData);
+ const Config_WidgetAPI* theData, bool theReadOnly = false);
/// Destructor
~ModuleBase_WidgetSelectionFilter();
/// Add a filter by Id in combo box
void onAddFilter(int);
- /// Add a filter by name
- void onAddFilter(const std::string& theFilter);
-
/// Process deletion of a filter item
void onDeleteItem(ModuleBase_FilterItem* theItem);
/// Call to redisplay the fiter feature
void redisplayFeature();
+ /// Add a filter by name
+ ModuleBase_FilterItem* onAddFilter(const std::string& theFilter);
+
+ /// Return currently created filter items
+ QList<ModuleBase_FilterItem*> itemsList() const;
+
+ /// Translate a string
+ QString translate(const std::string& theString) const;
+
+ /// Store translated names of filters and their instances
+ void storeFilters(const std::list<std::shared_ptr<ModelAPI_Filter> >& theFilters);
+
private:
ModuleBase_IWorkshop* myWorkshop;
/// Type of selection mode
int mySelectionType;
- /// List of non-used filters
- std::list<std::string> myFilters;
-
- /// List of used filters
- std::list<std::string> myUseFilters;
-
/// Result of filtering
QList<ModuleBase_ViewerPrsPtr> myValues;
/// Attribute name which will get result of filtering
std::string mySelectorAttribute;
+
+ /// Translated name and the corresponding filter
+ std::map<std::string, std::shared_ptr<ModelAPI_Filter> > myFilters;
};