Olive
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
doublefield.h
Go to the documentation of this file.
1 #ifndef DOUBLEFIELD_H
2 #define DOUBLEFIELD_H
3 
4 #include "../effectfield.h"
5 #include "ui/labelslider.h"
6 
13 class DoubleField : public EffectField
14 {
15  Q_OBJECT
16 public:
20  DoubleField(EffectRow* parent, const QString& id);
21 
35  double GetDoubleAt(double timecode);
36 
40  void SetMinimum(double minimum);
41 
45  void SetMaximum(double maximum);
46 
50  void SetDefault(double d);
51 
56 
62  void SetFrameRate(const double& rate);
63 
67  virtual QVariant ConvertStringToValue(const QString& s) override;
68 
72  virtual QString ConvertValueToString(const QVariant& v) override;
73 
79  virtual QWidget* CreateWidget(QWidget *existing = nullptr) override;
80 
84  virtual void UpdateWidgetValue(QWidget* widget, double timecode) override;
85 signals:
101  void MaximumChanged(double maximum);
102 
118  void MinimumChanged(double minimum);
119 private:
125  double min_;
126 
132  double max_;
133 
139  double default_;
140 
147 
153  double frame_rate_;
154 
161 
170 private slots:
175  void ValueHasBeenSet();
176 
185  void UpdateFromWidget(double d);
186 };
187 
188 #endif // DOUBLEFIELD_H
virtual QWidget * CreateWidget(QWidget *existing=nullptr) override
Reimplementation of EffectField::CreateWidget()
Definition: doublefield.cpp:64
KeyframeDataChange * kdc_
An internal KeyframeDataChange undoable command.
Definition: doublefield.h:169
void UpdateFromWidget(double d)
Internal function connected to any QWidget made from CreateWidget() to update the value based on user...
Definition: doublefield.cpp:113
void MaximumChanged(double maximum)
Signal emitted when the field's maximum value has changed.
void MinimumChanged(double minimum)
Signal emitted when the field's minimum value has changed.
virtual void UpdateWidgetValue(QWidget *widget, double timecode) override
Reimplementation of EffectField::UpdateWidgetValue()
Definition: doublefield.cpp:99
Definition: undo.h:623
void ValueHasBeenSet()
Connected to EffectField::Changed() to ensure value_set_ gets set to TRUE whenever a value is set on ...
Definition: doublefield.cpp:108
double max_
Internal maximum value.
Definition: doublefield.h:132
const EffectFieldType & type()
Get the type of data to expect from this field.
Definition: effectfield.cpp:279
The DoubleField class.
Definition: doublefield.h:13
double frame_rate_
Internal frame rate value.
Definition: doublefield.h:153
bool value_set_
Internal value used to allow SetDefault() to set the value as well if none has been set...
Definition: doublefield.h:160
void SetMinimum(double minimum)
Sets the minimum allowed number for the user to set to minimum.
Definition: doublefield.cpp:23
DoubleField(EffectRow *parent, const QString &id)
Reimplementation of EffectField::EffectField().
Definition: doublefield.cpp:5
double default_
Internal default value.
Definition: doublefield.h:139
virtual QVariant ConvertStringToValue(const QString &s) override
Reimplementation of EffectField::ConvertStringToValue()
Definition: doublefield.cpp:54
double min_
Internal minimum value.
Definition: doublefield.h:125
LabelSlider::DisplayType display_type_
Internal display type value.
Definition: doublefield.h:146
void SetFrameRate(const double &rate)
For a timecode-based display type, sets the frame rate to be used for the displayed timecode...
Definition: doublefield.cpp:49
virtual QString ConvertValueToString(const QVariant &v) override
Reimplementation of EffectField::ConvertValueToString()
Definition: doublefield.cpp:59
The EffectField class.
Definition: effectfield.h:56
void SetDisplayType(LabelSlider::DisplayType type)
Sets the UI display type to a member of LabelSlider::DisplayType.
Definition: doublefield.cpp:44
double GetDoubleAt(double timecode)
Get double value at timecode.
Definition: doublefield.cpp:18
void SetMaximum(double maximum)
Sets the maximum allowed number for the user to set to maximum.
Definition: doublefield.cpp:29
DisplayType
Definition: labelslider.h:71
void SetDefault(double d)
Sets the default number for this field to d.
Definition: doublefield.cpp:35
The EffectRow class.
Definition: effectrow.h:51