EffectSettingsWidget::EffectSettingsWidget(const QList<EffectParameter> ¶meters, QWidget *parent) : QWidget(parent) , m_parameters(parameters) { QFormLayout *layout = new QFormLayout; foreach (EffectParameter parameter, parameters) { switch (parameter.type()) { case QVariant::Int: { QSlider *slider = new QSlider(Qt::Horizontal); slider->setRange(parameter.minimum().toInt(), parameter.maximum().toInt()); slider->setValue(parameter.defaultValue().toInt()); slider->setSingleStep(parameter.step().toInt()); layout->addRow(parameter.name(), slider); m_selectors.append(slider); } break; case QVariant::Color: { ColorPicker *picker = new ColorPicker; picker->setColor(qvariant_cast<QColor>(parameter.defaultValue())); layout->addRow(parameter.name(), picker); m_selectors.append(picker); } break; default: m_selectors.append(0); } } setLayout(layout); }