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