From 9934ec577717ba855de0100a11e4c83dbceaa625 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 2 Jan 2019 11:29:37 +1100 Subject: [PATCH] changed effect field struct --- panels/grapheditor.cpp | 2 +- project/effectfield.h | 93 +++++++++++++++++++++++------------------- project/effectrow.h | 43 +++++++++---------- 3 files changed, 73 insertions(+), 65 deletions(-) diff --git a/panels/grapheditor.cpp b/panels/grapheditor.cpp index 259ade390..9b84dd8d0 100644 --- a/panels/grapheditor.cpp +++ b/panels/grapheditor.cpp @@ -93,7 +93,7 @@ GraphEditor::GraphEditor(QWidget* parent) : QDockWidget(parent), row(NULL) { current_row_desc = new QLabel(); values->addWidget(current_row_desc); -1 + QWidget* central_value_widget = new QWidget(); value_layout = new QHBoxLayout(); value_layout->setMargin(0); diff --git a/project/effectfield.h b/project/effectfield.h index 485b43287..f95c896cd 100644 --- a/project/effectfield.h +++ b/project/effectfield.h @@ -15,60 +15,71 @@ class EffectRow; class ComboAction; -class EffectField : public QObject { - Q_OBJECT +class EffectKeyframe { public: - EffectField(EffectRow* parent, int t, const QString& i); - EffectRow* parent_row; - int type; - QString id; + long time; + int type; + QVariant data; - QVariant get_previous_data(); - QVariant get_current_data(); - double frameToTimecode(long frame); - long timecodeToFrame(double timecode); - void set_current_data(const QVariant&); - void get_keyframe_data(double timecode, int& before, int& after, double& d); - QVariant validate_keyframe_data(double timecode, bool async = false); + // only for bezier type + QPointF pre_handle; + QPointF post_handle; +}; - double get_double_value(double timecode, bool async = false); - void set_double_value(double v); - void set_double_default_value(double v); - void set_double_minimum_value(double v); - void set_double_maximum_value(double v); +class EffectField : public QObject { + Q_OBJECT +public: + EffectField(EffectRow* parent, int t, const QString& i); + EffectRow* parent_row; + int type; + QString id; - const QString get_string_value(double timecode, bool async = false); - void set_string_value(const QString &s); + QVariant get_previous_data(); + QVariant get_current_data(); + double frameToTimecode(long frame); + long timecodeToFrame(double timecode); + void set_current_data(const QVariant&); + void get_keyframe_data(double timecode, int& before, int& after, double& d); + QVariant validate_keyframe_data(double timecode, bool async = false); - void add_combo_item(const QString& name, const QVariant &data); - int get_combo_index(double timecode, bool async = false); - const QVariant get_combo_data(double timecode); - const QString get_combo_string(double timecode); - void set_combo_index(int index); - void set_combo_string(const QString& s); + double get_double_value(double timecode, bool async = false); + void set_double_value(double v); + void set_double_default_value(double v); + void set_double_minimum_value(double v); + void set_double_maximum_value(double v); - bool get_bool_value(double timecode, bool async = false); - void set_bool_value(bool b); + const QString get_string_value(double timecode, bool async = false); + void set_string_value(const QString &s); - const QString get_font_name(double timecode, bool async = false); - void set_font_name(const QString& s); + void add_combo_item(const QString& name, const QVariant &data); + int get_combo_index(double timecode, bool async = false); + const QVariant get_combo_data(double timecode); + const QString get_combo_string(double timecode); + void set_combo_index(int index); + void set_combo_string(const QString& s); - QColor get_color_value(double timecode, bool async = false); - void set_color_value(QColor color); + bool get_bool_value(double timecode, bool async = false); + void set_bool_value(bool b); - QWidget* get_ui_element(); - void set_enabled(bool e); - QVector keyframe_data; - QWidget* ui_element; + const QString get_font_name(double timecode, bool async = false); + void set_font_name(const QString& s); - void make_key_from_change(ComboAction* ca); + QColor get_color_value(double timecode, bool async = false); + void set_color_value(QColor color); + + QWidget* get_ui_element(); + void set_enabled(bool e); + QVector keyframes; + QWidget* ui_element; + + void make_key_from_change(ComboAction* ca); private: - bool hasKeyframes(); + bool hasKeyframes(); private slots: - void ui_element_change(); + void ui_element_change(); signals: - void changed(); - void toggled(bool); + void changed(); + void toggled(bool); void clicked(); }; diff --git a/project/effectrow.h b/project/effectrow.h index a18cd56af..672c00b16 100644 --- a/project/effectrow.h +++ b/project/effectrow.h @@ -16,26 +16,23 @@ class KeyframeNavigator; class ClickableLabel; class EffectRow : public QObject { - Q_OBJECT + Q_OBJECT public: - EffectRow(Effect* parent, bool save, QGridLayout* uilayout, const QString& n, int row); - ~EffectRow(); - EffectField* add_field(int type, const QString &id, int colspan = 1); - EffectField* field(int i); - int fieldCount(); - void set_keyframe_now(ComboAction *ca); - void delete_keyframe(KeyframeDelete *kd, int index); - void delete_keyframe_at_time(KeyframeDelete* kd, long time); + EffectRow(Effect* parent, bool save, QGridLayout* uilayout, const QString& n, int row); + ~EffectRow(); + EffectField* add_field(int type, const QString &id, int colspan = 1); + EffectField* field(int i); + int fieldCount(); + void set_keyframe_now(ComboAction *ca); + void delete_keyframe(KeyframeDelete *kd, int index); + void delete_keyframe_at_time(KeyframeDelete* kd, long time); ClickableLabel* label; - Effect* parent_effect; - bool savable; + Effect* parent_effect; + bool savable; const QString& get_name(); - bool isKeyframing(); - void setKeyframing(bool); - - QVector keyframe_times; - QVector keyframe_types; + bool isKeyframing(); + void setKeyframing(bool); public slots: void goto_previous_key(); void toggle_key(); @@ -44,15 +41,15 @@ public slots: private slots: void set_keyframe_enabled(bool); private: - bool keyframing; - QGridLayout* ui; - QString name; - int ui_row; - QVector fields; + bool keyframing; + QGridLayout* ui; + QString name; + int ui_row; + QVector fields; - KeyframeNavigator* keyframe_nav; + KeyframeNavigator* keyframe_nav; - bool just_made_unsafe_keyframe; + bool just_made_unsafe_keyframe; }; #endif // EFFECTROW_H