20 #ifndef ModuleBase_ParamSpinBox_H
21 #define ModuleBase_ParamSpinBox_H
23 #include "ModuleBase.h"
25 #include <QAbstractSpinBox>
29 class QStringListModel;
40 enum State { Invalid = 0, NoVariable, Incompatible, Acceptable };
56 void setCompletionList(QStringList&);
60 virtual void stepBy(
int);
65 virtual QValidator::State validate(QString&,
int&)
const;
67 virtual void setValue(
double);
71 virtual void setText(
const QString&);
73 QString text()
const {
return lineEdit()->text(); }
76 void setAcceptVariables(
const bool);
79 bool isAcceptVariables()
const;
82 bool hasVariable()
const;
84 double minimum()
const {
return myMinimum; }
85 double maximum()
const {
return myMaximum; }
87 void setMinimum(
double theMin) { myMinimum = theMin; myValidator->setBottom(theMin); }
88 void setMaximum(
double theMax) { myMaximum = theMax; myValidator->setTop(theMax); }
90 int decimals()
const {
return myValidator->decimals(); }
91 void setDecimals(
int thePrecision) { myValidator->setDecimals(thePrecision); }
93 double singleStep()
const {
return mySingleStep; }
94 void setSingleStep(
double theStep) { mySingleStep = theStep; }
96 void setValueEnabled(
bool theEnable);
102 virtual void keyReleaseEvent(QKeyEvent *event);
110 virtual StepEnabled stepEnabled()
const {
return StepUpEnabled | StepDownEnabled; }
114 bool hasVariable(
const QString& theText)
const;
128 void textChanged(
const QString&);
141 void insertCompletion(
const QString&);
143 void onTextChanged(
const QString&);
146 QString getPrefix(
int& theStart,
int& theEnd)
const;
147 void showCompletion(
bool checkPrefix);
150 bool myAcceptVariables;
152 QStringListModel* myCompleterModel;
153 QCompleter* myCompleter;
163 QColor myEnabledBaseColor;
165 QDoubleValidator* myValidator;
An extension of a double spin box which let to use parameters and expressions for value definition.
Definition: ModuleBase_ParamSpinBox.h:37
virtual void timerEvent(QTimerEvent *)
The virtual function is reimplemented in order to avoid extra increasing of value by StepBy method.
Definition: ModuleBase_ParamSpinBox.h:108