| #pragma once |
| |
| #ifndef DOUBLEFIELD_H |
| #define DOUBLEFIELD_H |
| |
| #include "tcommon.h" |
| #include "toonzqt/intfield.h" |
| |
| #undef DVAPI |
| #undef DVVAR |
| #ifdef TOONZQT_EXPORTS |
| #define DVAPI DV_EXPORT_API |
| #define DVVAR DV_EXPORT_VAR |
| #else |
| #define DVAPI DV_IMPORT_API |
| #define DVVAR DV_IMPORT_VAR |
| #endif |
| |
| |
| class QDoubleValidator; |
| class QSlider; |
| class TMeasuredValue; |
| |
| |
| |
| namespace DVGui { |
| |
| |
| |
| |
| |
| class DVAPI DoubleValueLineEdit : public LineEdit { |
| Q_OBJECT |
| |
| public: |
| DoubleValueLineEdit(QWidget *parent = 0) : LineEdit(parent) {} |
| ~DoubleValueLineEdit() {} |
| |
| virtual void setValue(double value) = 0; |
| virtual double getValue() = 0; |
| |
| virtual void setRange(double minValue, double maxValue) = 0; |
| virtual void getRange(double &minValue, double &maxValue) = 0; |
| |
| virtual int getDecimals() { return 2; } |
| |
| protected: |
| |
| |
| void focusOutEvent(QFocusEvent *) override; |
| |
| signals: |
| |
| void valueChanged(); |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class DVAPI DoubleValueField : public QWidget { |
| Q_OBJECT |
| |
| protected: |
| RollerField *m_roller; |
| DoubleValueLineEdit *m_lineEdit; |
| QSlider *m_slider; |
| QWidget *m_spaceWidget; |
| |
| public: |
| DoubleValueField(QWidget *parent, DoubleValueLineEdit *lineEdit); |
| ~DoubleValueField() {} |
| |
| void getRange(double &minValue, double &maxValue); |
| void setRange(double minValue = 0, double maxValue = 0); |
| |
| void setValue(double value); |
| double getValue(); |
| |
| |
| |
| |
| |
| |
| void setValues(double value, double minValue = 0, double maxValue = 0); |
| |
| |
| void enableSlider(bool enable); |
| bool isSliderEnabled(); |
| |
| |
| void enableRoller(bool enable); |
| bool isRollerEnabled(); |
| |
| protected slots: |
| |
| |
| |
| void onSliderChanged(int value); |
| void onSliderReleased() { emit valueChanged(false); } |
| |
| |
| |
| |
| |
| void onLineEditValueChanged(); |
| |
| |
| |
| void onRollerValueChanged(bool isDragging); |
| |
| signals: |
| |
| |
| |
| |
| void valueChanged(bool); |
| |
| |
| |
| void valueEditedByHand(); |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class DVAPI DoubleLineEdit final : public DoubleValueLineEdit { |
| Q_OBJECT |
| |
| QDoubleValidator *m_validator; |
| |
| public: |
| DoubleLineEdit(QWidget *parent = 0, double value = 1); |
| ~DoubleLineEdit() {} |
| |
| |
| void setValue(double value) override; |
| |
| double getValue() override; |
| |
| |
| |
| void setRange(double minValue, double maxValue) override; |
| |
| |
| void getRange(double &minValue, double &maxValue) override; |
| |
| |
| void setDecimals(int decimals); |
| |
| int getDecimals() override; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| class DVAPI DoubleField : public DoubleValueField { |
| public: |
| DoubleField(QWidget *parent = 0, bool isRollerHide = true, int decimals = 2); |
| ~DoubleField() {} |
| }; |
| |
| |
| |
| |
| |
| class DVAPI MeasuredDoubleLineEdit : public DoubleValueLineEdit { |
| Q_OBJECT |
| |
| TMeasuredValue *m_value; |
| double m_minValue; |
| double m_maxValue; |
| bool m_modified; |
| double m_errorHighlighting; |
| int m_errorHighlightingTimerId; |
| int m_decimals; |
| |
| public: |
| MeasuredDoubleLineEdit(QWidget *parent = 0); |
| ~MeasuredDoubleLineEdit(); |
| |
| void setValue(double value) override; |
| double getValue() override; |
| |
| void setRange(double minValue, double maxValue) override; |
| void getRange(double &minValue, double &maxValue) override; |
| |
| void setMeasure(std::string measureName); |
| |
| void setDecimals(int decimals); |
| int getDecimals() override; |
| |
| |
| void postSetText() { onEditingFinished(); } |
| |
| private: |
| void valueToText(); |
| |
| protected: |
| void timerEvent(QTimerEvent *e) override; |
| |
| protected slots: |
| |
| void onEditingFinished(); |
| void onTextChanged(const QString &); |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| class DVAPI MeasuredDoubleField final : public DoubleValueField { |
| Q_OBJECT |
| |
| public: |
| MeasuredDoubleField(QWidget *parent = 0, bool isRollerHide = true); |
| ~MeasuredDoubleField() {} |
| |
| void setMeasure(std::string measureName); |
| |
| void setDecimals(int decimals); |
| }; |
| |
| |
| } |
| |
| |
| #endif // DOUBLEFIELD_H |