18#ifndef DOUBLESLIDERSPINNER_H
19#define DOUBLESLIDERSPINNER_H
26class DoubleSliderSpinner :
public QWidget
29 Q_PROPERTY(
double value READ value WRITE setValue NOTIFY valueChanged)
30 Q_PROPERTY(
double minimum READ minimum WRITE setMinimum)
31 Q_PROPERTY(
double maximum READ maximum WRITE setMaximum)
32 Q_PROPERTY(
double singleStep READ singleStep WRITE setSingleStep)
33 Q_PROPERTY(
int decimals READ decimals WRITE setDecimals)
34 Q_PROPERTY(QString prefix READ prefix WRITE setPrefix)
35 Q_PROPERTY(QString suffix READ suffix WRITE setSuffix)
36 Q_PROPERTY(QString specialValueText READ specialValueText WRITE setSpecialValueText)
37 Q_PROPERTY(
double defaultValue READ defaultValue WRITE setDefaultValue)
38 Q_PROPERTY(
bool showResetButton READ showResetButton WRITE setShowResetButton)
41 explicit DoubleSliderSpinner(QWidget *parent =
nullptr);
44 double minimum()
const;
45 double maximum()
const;
46 double singleStep()
const;
48 QString prefix()
const;
49 QString suffix()
const;
50 QString specialValueText()
const;
51 double defaultValue()
const;
52 bool showResetButton()
const;
55 void setValue(
double value);
56 void setMinimum(
double value);
57 void setMaximum(
double value);
58 void setRange(
double min,
double max);
59 void setSingleStep(
double value);
60 void setDecimals(
int decimals);
61 void setPrefix(
const QString &prefix);
62 void setSuffix(
const QString &suffix);
63 void setSpecialValueText(
const QString &text);
64 void setDefaultValue(
double value);
65 void setShowResetButton(
bool show);
68 void valueChanged(
double value);
71 void onSliderValueChanged(
int value);
72 void onSpinValueChanged(
double value);
73 void onResetButtonClicked();
76 int toSliderValue(
double value)
const;
77 double toSpinValue(
int value)
const;
79 void updateSliderRange();
80 void updateResetButtonState();
83 QDoubleSpinBox *m_spinBox;
84 class QToolButton *m_resetButton;
86 double m_defaultValue;
87 bool m_showResetButton;