2 #ifndef ModuleBase_ParamSpinBox_H
3 #define ModuleBase_ParamSpinBox_H
5 #include "ModuleBase.h"
7 #include <ModuleBase_DoubleSpinBox.h>
11 class MODULEBASE_EXPORT ModuleBase_ParamSpinBox : public ModuleBase_DoubleSpinBox
15 enum State { Invalid = 0, NoVariable, Incompatible, Acceptable };
18 explicit ModuleBase_ParamSpinBox(QWidget* theParent = 0, int thePrecision = 6);
19 virtual ~ModuleBase_ParamSpinBox();
21 virtual void stepBy(int);
23 virtual double valueFromText(const QString&) const;
24 virtual QString textFromValue(double) const;
26 virtual QValidator::State validate(QString&, int&) const;
28 virtual void setDefaultValue(const double);
30 virtual void setValue(double);
32 virtual void setText(const QString&);
34 void setAcceptVariables(const bool);
35 bool isAcceptVariables() const;
36 bool hasVariables() const;
39 void textChanged(const QString&);
42 State isValid(const QString&, double&) const;
44 double defaultValue() const;
45 bool checkRange(const double) const;
47 bool findVariable(const QString&, double&) const;
50 virtual void keyPressEvent(QKeyEvent*);
51 virtual void showEvent(QShowEvent*);
54 void onEditingFinished();
55 void onTextChanged(const QString&);
58 void connectSignalsAndSlots();
61 double myDefaultValue;
63 QString myCorrectValue;
66 bool myAcceptVariables;