add widget type to numeric PIVariantEdit
This commit is contained in:
@@ -36,6 +36,35 @@
|
||||
namespace PIVariantEditors {
|
||||
|
||||
|
||||
class QAD_PIQT_UTILS_EXPORT NumberBase: public PIVariantEditorBase {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
NumberBase();
|
||||
void setValueNumeric(double v);
|
||||
double valueNumeric() const;
|
||||
PIVariantMap attributes() const override;
|
||||
static PIVariantMap defaultAttributes();
|
||||
static PIVariantTypes::Enum createTypes();
|
||||
void retranslate() override;
|
||||
|
||||
protected:
|
||||
void applyAttributes(const PIVariantMap & a) override;
|
||||
enum Type {
|
||||
tInvalid,
|
||||
tSpinBox,
|
||||
tSlider,
|
||||
tSpinSlider,
|
||||
tEvalSpinBox,
|
||||
tScrollSpinBox,
|
||||
};
|
||||
Type type = tInvalid;
|
||||
PIString prefix, suffix;
|
||||
QWidget * widget = nullptr;
|
||||
bool is_int = false;
|
||||
};
|
||||
|
||||
|
||||
class QAD_PIQT_UTILS_EXPORT Bool: public PIVariantEditorBase {
|
||||
Q_OBJECT
|
||||
|
||||
@@ -52,47 +81,29 @@ private:
|
||||
};
|
||||
|
||||
|
||||
class QAD_PIQT_UTILS_EXPORT Int: public PIVariantEditorBase {
|
||||
class QAD_PIQT_UTILS_EXPORT Int: public NumberBase {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Int() {
|
||||
widget = new QSpinBox();
|
||||
widget->setRange(-std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
|
||||
layout()->addWidget(widget);
|
||||
Int(): NumberBase() {
|
||||
is_int = true;
|
||||
applyAttributes(NumberBase::defaultAttributes());
|
||||
}
|
||||
void setValue(const PIVariant & v) override { widget->setValue(v.toInt()); }
|
||||
PIVariant value() const override { return widget->value(); }
|
||||
PIVariantMap attributes() const override;
|
||||
static PIVariantMap defaultAttributes();
|
||||
void retranslate();
|
||||
|
||||
private:
|
||||
void applyAttributes(const PIVariantMap & a) override;
|
||||
PIString prefix, suffix;
|
||||
QSpinBox * widget;
|
||||
void setValue(const PIVariant & v) override { setValueNumeric(v.toInt()); }
|
||||
PIVariant value() const override { return piRoundd(valueNumeric()); }
|
||||
};
|
||||
|
||||
|
||||
class QAD_PIQT_UTILS_EXPORT Double: public PIVariantEditorBase {
|
||||
class QAD_PIQT_UTILS_EXPORT Double: public NumberBase {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Double() {
|
||||
widget = new QDoubleSpinBox();
|
||||
widget->setRange(-std::numeric_limits<float>::max(), std::numeric_limits<float>::max());
|
||||
layout()->addWidget(widget);
|
||||
Double(): NumberBase() {
|
||||
is_int = false;
|
||||
applyAttributes(NumberBase::defaultAttributes());
|
||||
}
|
||||
void setValue(const PIVariant & v) override { widget->setValue(v.toDouble()); }
|
||||
PIVariant value() const override { return widget->value(); }
|
||||
PIVariantMap attributes() const override;
|
||||
static PIVariantMap defaultAttributes();
|
||||
void retranslate();
|
||||
|
||||
private:
|
||||
void applyAttributes(const PIVariantMap & a) override;
|
||||
PIString prefix, suffix;
|
||||
QDoubleSpinBox * widget;
|
||||
void setValue(const PIVariant & v) override { setValueNumeric(v.toDouble()); }
|
||||
PIVariant value() const override { return valueNumeric(); }
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user