reimplemented dragging all field types

This commit is contained in:
itsmattkc
2019-03-13 22:34:26 +11:00
parent 06ed5ea05d
commit 933cbb0304
28 changed files with 265 additions and 178 deletions
+5
View File
@@ -48,5 +48,10 @@ QString BoolField::ConvertValueToString(const QVariant &v)
void BoolField::UpdateFromWidget(bool b)
{
KeyframeDataChange* kdc = new KeyframeDataChange(this);
SetValueAt(Now(), b);
kdc->SetNewKeyframes();
olive::UndoStack.push(kdc);
}
+5
View File
@@ -42,5 +42,10 @@ QString ColorField::ConvertValueToString(const QVariant &v)
void ColorField::UpdateFromWidget(const QColor& c)
{
KeyframeDataChange* kdc = new KeyframeDataChange(this);
SetValueAt(Now(), c);
kdc->SetNewKeyframes();
olive::UndoStack.push(kdc);
}
+5
View File
@@ -54,5 +54,10 @@ void ComboField::UpdateWidgetValue(QWidget *widget, double timecode)
void ComboField::UpdateFromWidget(int index)
{
KeyframeDataChange* kdc = new KeyframeDataChange(this);
SetValueAt(Now(), items_.at(index).data);
kdc->SetNewKeyframes();
olive::UndoStack.push(kdc);
}
+16 -2
View File
@@ -1,6 +1,6 @@
#include "doublefield.h"
#include <QDebug>
#include "effects/effectrow.h"
DoubleField::DoubleField(EffectRow* parent, const QString& id) :
EffectField(parent, id, EFFECT_FIELD_DOUBLE),
@@ -9,7 +9,8 @@ DoubleField::DoubleField(EffectRow* parent, const QString& id) :
default_(0),
display_type_(LabelSlider::Normal),
frame_rate_(30),
value_set_(false)
value_set_(false),
kdc_(nullptr)
{
connect(this, SIGNAL(Changed()), this, SLOT(ValueHasBeenSet()), Qt::DirectConnection);
}
@@ -94,5 +95,18 @@ void DoubleField::ValueHasBeenSet()
void DoubleField::UpdateFromWidget(double d)
{
LabelSlider* ls = static_cast<LabelSlider*>(sender());
if (ls->IsDragging() && kdc_ == nullptr) {
kdc_ = new KeyframeDataChange(this);
}
SetValueAt(Now(), d);
GetParentRow()->SetKeyframeOnAllFields(nullptr);
if (!ls->IsDragging() && kdc_ != nullptr) {
kdc_->SetNewKeyframes();
olive::UndoStack.push(kdc_);
kdc_ = nullptr;
}
}
+2
View File
@@ -46,6 +46,8 @@ private:
double frame_rate_;
bool value_set_;
KeyframeDataChange* kdc_;
private slots:
void ValueHasBeenSet();
void UpdateFromWidget(double d);
+5
View File
@@ -25,5 +25,10 @@ QWidget *FileField::CreateWidget()
void FileField::UpdateFromWidget(const QString &s)
{
KeyframeDataChange* kdc = new KeyframeDataChange(this);
SetValueAt(Now(), s);
kdc->SetNewKeyframes();
olive::UndoStack.push(kdc);
}
+5
View File
@@ -54,5 +54,10 @@ void FontField::UpdateWidgetValue(QWidget *widget, double timecode)
void FontField::UpdateFromWidget(const QString& s)
{
KeyframeDataChange* kdc = new KeyframeDataChange(this);
SetValueAt(Now(), s);
kdc->SetNewKeyframes();
olive::UndoStack.push(kdc);
}
+5
View File
@@ -41,5 +41,10 @@ void StringField::UpdateWidgetValue(QWidget *widget, double timecode)
void StringField::UpdateFromWidget(const QString &s)
{
KeyframeDataChange* kdc = new KeyframeDataChange(this);
SetValueAt(Now(), s);
kdc->SetNewKeyframes();
olive::UndoStack.push(kdc);
}