From 53334b539937d3517aaeaa750139720d219126f0 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 14 Mar 2019 19:25:53 +1100 Subject: [PATCH] some finishing touches --- effects/effect.cpp | 5 ++--- effects/effectfield.cpp | 2 ++ effects/fields/boolfield.cpp | 2 ++ effects/fields/combofield.cpp | 2 ++ effects/fields/combofield.h | 2 +- effects/fields/doublefield.cpp | 1 + effects/fields/stringfield.cpp | 1 + effects/internal/solideffect.cpp | 6 ++++-- effects/internal/solideffect.h | 2 +- effects/internal/transformeffect.h | 2 +- 10 files changed, 17 insertions(+), 8 deletions(-) diff --git a/effects/effect.cpp b/effects/effect.cpp index 9b6df1ede..81cdd83d5 100644 --- a/effects/effect.cpp +++ b/effects/effect.cpp @@ -540,15 +540,13 @@ void Effect::load(QXmlStreamReader& stream) { EffectField* field = row->Field(field_number); // get current field value - /* for (int k=0;kSetCurrentValue(field->GetValueFromString(attr.value().toString())); + field->persistent_data_ = field->ConvertStringToValue(attr.value().toString()); break; } } - */ while (!stream.atEnd() && !(stream.name() == "field" && stream.isEndElement())) { stream.readNext(); @@ -609,6 +607,7 @@ void Effect::save(QXmlStreamWriter& stream) { if (!field->id().isEmpty()) { stream.writeStartElement("field"); // field stream.writeAttribute("id", field->id()); + stream.writeAttribute("value", field->ConvertValueToString(field->persistent_data_)); for (int k=0;kkeyframes.size();k++) { const EffectKeyframe& key = field->keyframes.at(k); stream.writeStartElement("key"); diff --git a/effects/effectfield.cpp b/effects/effectfield.cpp index 23c863060..3afec20c0 100644 --- a/effects/effectfield.cpp +++ b/effects/effectfield.cpp @@ -241,7 +241,9 @@ void EffectField::SetValueAt(double time, const QVariant &value) } } else { + persistent_data_ = value; + } emit Changed(); diff --git a/effects/fields/boolfield.cpp b/effects/fields/boolfield.cpp index 9c23d9202..33102544d 100644 --- a/effects/fields/boolfield.cpp +++ b/effects/fields/boolfield.cpp @@ -34,6 +34,8 @@ void BoolField::UpdateWidgetValue(QWidget *widget, double timecode) cb->setChecked(GetBoolAt(timecode)); cb->blockSignals(false); + + emit Toggled(cb->isChecked()); } QVariant BoolField::ConvertStringToValue(const QString &s) diff --git a/effects/fields/combofield.cpp b/effects/fields/combofield.cpp index 6b1a46e3f..828705f67 100644 --- a/effects/fields/combofield.cpp +++ b/effects/fields/combofield.cpp @@ -45,6 +45,8 @@ void ComboField::UpdateWidgetValue(QWidget *widget, double timecode) cb->blockSignals(true); cb->setCurrentIndex(i); cb->blockSignals(false); + + emit DataChanged(data); return; } } diff --git a/effects/fields/combofield.h b/effects/fields/combofield.h index 97fe2efd7..d9c81e60a 100644 --- a/effects/fields/combofield.h +++ b/effects/fields/combofield.h @@ -20,7 +20,7 @@ public: virtual void UpdateWidgetValue(QWidget* widget, double timecode) override; signals: - void IndexChanged(int i); + void DataChanged(const QVariant&); private: QVector items_; diff --git a/effects/fields/doublefield.cpp b/effects/fields/doublefield.cpp index 42c58488b..378d18879 100644 --- a/effects/fields/doublefield.cpp +++ b/effects/fields/doublefield.cpp @@ -74,6 +74,7 @@ QWidget *DoubleField::CreateWidget() ls->SetDisplayType(display_type_); ls->SetFrameRate(frame_rate_); + //qDebug() << ""; ls->setEnabled(IsEnabled()); connect(ls, SIGNAL(valueChanged(double)), this, SLOT(UpdateFromWidget(double))); diff --git a/effects/fields/stringfield.cpp b/effects/fields/stringfield.cpp index 777a0fdfc..3b3d7579a 100644 --- a/effects/fields/stringfield.cpp +++ b/effects/fields/stringfield.cpp @@ -1,6 +1,7 @@ #include "stringfield.h" #include +#include #include "ui/texteditex.h" #include "global/config.h" diff --git a/effects/internal/solideffect.cpp b/effects/internal/solideffect.cpp index 7dd6c5cc3..db6f7434c 100644 --- a/effects/internal/solideffect.cpp +++ b/effects/internal/solideffect.cpp @@ -61,7 +61,7 @@ SolidEffect::SolidEffect(Clip* c, const EffectMeta* em) : checkerboard_size_field->SetMinimum(1); checkerboard_size_field->SetDefault(10); - connect(solid_type, SIGNAL(IndexChanged(int)), this, SLOT(ui_update(int))); + connect(solid_type, SIGNAL(DataChanged(const QVariant&)), this, SLOT(ui_update(const QVariant&))); // Set default UI solid_type->SetValueAt(0, SOLID_TYPE_COLOR); @@ -202,7 +202,9 @@ void SolidEffect::SetType(SolidEffect::SolidType type) solid_type->SetValueAt(0, type); } -void SolidEffect::ui_update(int i) { +void SolidEffect::ui_update(const QVariant& d) { + int i = d.toInt(); + solid_color_field->SetEnabled(i == SOLID_TYPE_COLOR || i == SOLID_TYPE_CHECKERBOARD); checkerboard_size_field->SetEnabled(i == SOLID_TYPE_CHECKERBOARD); } diff --git a/effects/internal/solideffect.h b/effects/internal/solideffect.h index 3d099b17f..26843fe71 100644 --- a/effects/internal/solideffect.h +++ b/effects/internal/solideffect.h @@ -39,7 +39,7 @@ public: void SetType(SolidType type); private slots: - void ui_update(int); + void ui_update(const QVariant &d); private: ComboField* solid_type; ColorField* solid_color_field; diff --git a/effects/internal/transformeffect.h b/effects/internal/transformeffect.h index 84f64fadb..43aad2b26 100644 --- a/effects/internal/transformeffect.h +++ b/effects/internal/transformeffect.h @@ -26,7 +26,7 @@ class TransformEffect : public Effect { Q_OBJECT public: - TransformEffect(Clip* c, const EffectMeta* em); + TransformEffect(Clip* c, const EffectMeta* em); void refresh(); void process_coords(double timecode, GLTextureCoords& coords, int data);