Salome HOME
Property panel widgets redesign
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetLineEdit.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 /*
4  * ModuleBase_WidgetLineEdit.h
5  *
6  *  Created on: Oct 8, 2014
7  *      Author: sbh
8  */
9
10 #ifndef MODULEBASE_WIDGETLINEEDIT_H_
11 #define MODULEBASE_WIDGETLINEEDIT_H_
12
13 #include <ModuleBase.h>
14 #include <ModuleBase_ModelWidget.h>
15
16 #include <QList>
17 #include <QString>
18 #include <QStringList>
19
20 class QWidget;
21 class QLineEdit;
22
23 /**
24 * \ingroup GUI
25 * Implementation of model widget for line edit widget.
26 * It can be defined with "stringvalue" keyword.
27 */
28 class MODULEBASE_EXPORT ModuleBase_WidgetLineEdit : public ModuleBase_ModelWidget
29 {
30   Q_OBJECT
31  public:
32   /// Constructor
33   /// \param theParent the parent object
34   /// \param theData the widget configuation. The attribute of the model widget is obtained from
35   /// \param theParentId is Id of a parent of the current attribute
36   ModuleBase_WidgetLineEdit(QWidget* theParent,
37                                 const Config_WidgetAPI* theData,
38                                 const std::string& theParentId);
39   virtual ~ModuleBase_WidgetLineEdit();
40
41   virtual bool restoreValue();
42
43   virtual QList<QWidget*> getControls() const;
44
45  public slots:
46    /// A slot for processing text changed event
47   void onTextChanged();
48
49 protected:
50   /// Saves the internal parameters to the given feature
51   /// \return True in success
52   virtual bool storeValue() const;
53
54 private:
55    /// A line edit control
56   QLineEdit* myLineEdit;
57 };
58
59 #endif /* MODULEBASE_WIDGETFILESELECTOR_H_ */