diff --git a/project/effectfields/combofield.cpp b/project/effectfields/combofield.cpp index 301b1f8f2..ff4a1a164 100644 --- a/project/effectfields/combofield.cpp +++ b/project/effectfields/combofield.cpp @@ -1,5 +1,7 @@ #include "combofield.h" +#include + ComboField::ComboField(EffectRow* parent, const QString& id) : EffectField(parent, id, EFFECT_FIELD_COMBO) {} @@ -9,7 +11,25 @@ void ComboField::AddItem(const QString &text, const QVariant &data) ComboFieldItem item; item.name = text; - item.data.append(data); + item.data = data; items_.append(item); } + +QWidget *ComboField::CreateWidget() +{ + QComboBox* cb = new QComboBox(); + + for (int i=0;iaddItem(items_.at(i).name); + } + + connect(cb, SIGNAL(activated(int)), this, SLOT(UpdateFromWidget(int))); + + return cb; +} + +void ComboField::UpdateFromWidget(int index) +{ + SetValueAt(Now(), items_.at(index).data); +} diff --git a/project/effectfields/combofield.h b/project/effectfields/combofield.h index 26afd90b3..c886a0172 100644 --- a/project/effectfields/combofield.h +++ b/project/effectfields/combofield.h @@ -5,7 +5,7 @@ struct ComboFieldItem { QString name; - QVector data; + QVariant data; }; class ComboField : public EffectField @@ -16,11 +16,16 @@ public: void AddItem(const QString& text, const QVariant& data); + virtual QWidget *CreateWidget() override; + signals: void IndexChanged(int i); private: QVector items_; + +private slots: + void UpdateFromWidget(int index); }; #endif // COMBOFIELD_H