QMap<QString, QVariant> EffectSettingsWidget::settings() const { QMap<QString, QVariant> settings; for (int i = 0; i < m_parameters.count(); ++i) { EffectParameter parameter = m_parameters.at(i); switch (parameter.type()) { case QVariant::Int: if (QSlider *slider = qobject_cast<QSlider *>(m_selectors.at(i))) settings.insert(parameter.key(), slider->value()); break; case QVariant::Color: if (ColorPicker *picker = qobject_cast<ColorPicker *>(m_selectors.at(i))) settings.insert(parameter.key(), picker->color()); break; default: break; } } return settings; }