-// 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;
/**
{
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 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;
};