]> SALOME platform Git repositories - modules/shaper.git/blob - src/ModuleBase/ModuleBase_ParamSpinBox.h
Salome HOME
Using variables in WidgetDoubleValue
[modules/shaper.git] / src / ModuleBase / ModuleBase_ParamSpinBox.h
1
2 #ifndef ModuleBase_ParamSpinBox_H
3 #define ModuleBase_ParamSpinBox_H
4
5 #include "ModuleBase.h"
6
7 #include <ModuleBase_DoubleSpinBox.h>
8
9 #include <QValidator>
10
11 class MODULEBASE_EXPORT ModuleBase_ParamSpinBox : public ModuleBase_DoubleSpinBox
12 {
13   Q_OBJECT
14
15   enum State { Invalid = 0, NoVariable, Incompatible, Acceptable };
16
17 public:
18   explicit ModuleBase_ParamSpinBox(QWidget* theParent = 0, int thePrecision = 6);
19   virtual ~ModuleBase_ParamSpinBox();
20
21   virtual void stepBy(int);
22
23   virtual double valueFromText(const QString&) const;
24   virtual QString textFromValue(double) const;
25
26   virtual QValidator::State validate(QString&, int&) const;
27
28   virtual void setDefaultValue(const double);
29
30   virtual void setValue(double);
31
32   virtual void setText(const QString&);
33
34   void setAcceptVariables(const bool);
35   bool isAcceptVariables() const;
36   bool hasVariables() const;
37
38 signals:
39   void textChanged(const QString&);
40
41  protected:
42   State isValid(const QString&, double&) const;
43
44   double defaultValue() const;
45   bool checkRange(const double) const;
46
47   bool findVariable(const QString&, double&) const;
48
49  protected:
50   virtual void keyPressEvent(QKeyEvent*);
51   virtual void showEvent(QShowEvent*);
52
53  protected slots:
54   void onEditingFinished();
55   void onTextChanged(const QString&);
56
57  private:
58   void connectSignalsAndSlots();
59
60  private:
61   double myDefaultValue;
62
63   QString myCorrectValue;
64   QString myTextValue;
65
66   bool myAcceptVariables;
67   bool myHasVariables;
68 };
69
70 #endif