1 #include "filefield.h"
2
3 #include <QDebug>
4
5 #include "ui/embeddedfilechooser.h"
6
FileField(EffectRow * parent,const QString & id)7 FileField::FileField(EffectRow* parent, const QString &id) :
8 EffectField(parent, id, EFFECT_FIELD_FILE)
9 {
10 // Set default value to an empty string
11 SetValueAt(0, "");
12 }
13
GetFileAt(double timecode)14 QString FileField::GetFileAt(double timecode)
15 {
16 return GetValueAt(timecode).toString();
17 }
18
CreateWidget(QWidget * existing)19 QWidget *FileField::CreateWidget(QWidget *existing)
20 {
21 EmbeddedFileChooser* efc = (existing != nullptr) ? static_cast<EmbeddedFileChooser*>(existing) : new EmbeddedFileChooser();
22
23 connect(efc, SIGNAL(changed(const QString&)), this, SLOT(UpdateFromWidget(const QString&)));
24 connect(this, SIGNAL(EnabledChanged(bool)), efc, SLOT(setEnabled(bool)));
25
26 return efc;
27 }
28
UpdateWidgetValue(QWidget * widget,double timecode)29 void FileField::UpdateWidgetValue(QWidget *widget, double timecode)
30 {
31 EmbeddedFileChooser* efc = static_cast<EmbeddedFileChooser*>(widget);
32
33 efc->blockSignals(true);
34 efc->setFilename(GetFileAt(timecode));
35 efc->blockSignals(false);
36 }
37
UpdateFromWidget(const QString & s)38 void FileField::UpdateFromWidget(const QString &s)
39 {
40 KeyframeDataChange* kdc = new KeyframeDataChange(this);
41
42 SetValueAt(Now(), s);
43
44 kdc->SetNewKeyframes();
45 olive::UndoStack.push(kdc);
46 }
47