1 // File: ModuleBase_WidgetFeature.h
2 // Created: 25 Apr 2014
3 // Author: Natalia ERMOLAEVA
5 #ifndef ModuleBase_WidgetFeature_H
6 #define ModuleBase_WidgetFeature_H
8 #include <ModuleBase.h>
9 #include "ModuleBase_ModelWidget.h"
12 #include <QStringList>
14 class ModuleBase_WidgetValue;
15 class ModelAPI_Feature;
20 /**\class ModuleBase_WidgetFeature
22 * \brief Custom widget. An abstract class to be redefined to fill with some GUI controls
24 class MODULEBASE_EXPORT ModuleBase_WidgetFeature : public ModuleBase_ModelWidget
29 /// \theParent the parent object
30 /// \theParent the parent object
31 /// \theData the widget configuation. The attribute of the model widget is obtained from
32 ModuleBase_WidgetFeature(QWidget* theParent, const Config_WidgetAPI* theData);
34 virtual ~ModuleBase_WidgetFeature();
36 /// Set the given wrapped value to the current widget
37 /// This value should be processed in the widget according to the needs
38 /// \param theValue the wrapped widget value
39 virtual bool setValue(ModuleBase_WidgetValue* theValue);
41 /// Saves the internal parameters to the given feature
42 /// \param theFeature a model feature to be changed
43 virtual bool storeValue(FeaturePtr theFeature) const;
45 virtual bool restoreValue(FeaturePtr theFeature);
47 /// Returns the internal parent wiget control, that can be shown anywhere
48 /// \returns the widget
49 QWidget* getControl() const;
51 /// Returns list of widget controls
52 /// \return a control list
53 virtual QList<QWidget*> getControls() const;
56 /// Fill the widget values by given point
57 /// \param thePoint the point
58 bool setFeature(const FeaturePtr& theFeature);
61 FeaturePtr myFeature; ///< the current widget feature
62 QStringList myFeatureKinds; ///< the kinds of possible features
64 QWidget* myContainer; /// the parent top control
65 QLabel* myLabel; /// the editor information label
66 QLineEdit* myEditor; ///< the feature editor to visualize the feature name