diff options
Diffstat (limited to 'src/plugins/Effect/ladspa/settingsdialog.cpp')
| -rw-r--r-- | src/plugins/Effect/ladspa/settingsdialog.cpp | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/plugins/Effect/ladspa/settingsdialog.cpp b/src/plugins/Effect/ladspa/settingsdialog.cpp index 4d0c33a6f..e4d78a698 100644 --- a/src/plugins/Effect/ladspa/settingsdialog.cpp +++ b/src/plugins/Effect/ladspa/settingsdialog.cpp @@ -22,7 +22,11 @@ #include <QApplication> #include <QStyle> #include <QStandardItemModel> +#include <QFormLayout> +#include <QWidget> +#include <QLabel> #include <qmmp/qmmp.h> +#include "ladspaslider.h" #include "ladspaplugin.h" #include "settingsdialog.h" @@ -90,13 +94,34 @@ void SettingsDialog::on_configureButton_clicked() { LADSPAHost *l = LADSPAHost::instance(); QModelIndex index = ui.runningListWidget->currentIndex (); - if(index.isValid()) + if(!index.isValid()) + return; + + LADSPAEffect *effect = l->runningPlugins().at(index.row()); + QDialog *dialog = new QDialog(this); + dialog->setWindowTitle(effect->descriptor->Name); + QFormLayout *formLayout = new QFormLayout(dialog); + + foreach(LADSPAControl *c, effect->controls) + { + switch ((int) c->type) + { + case LADSPAControl::BUTTON: + break; + case LADSPAControl::SLIDER: + LADSPASlider *slider = new LADSPASlider(c->min, c->max, c->step, c->value, l, dialog); + formLayout->addRow(c->name, slider); + } + } + if (effect->controls.isEmpty()) { - l->runningPlugins().at(index.row())->widget->setParent(this); - l->runningPlugins().at(index.row())->widget->setWindowFlags(Qt::Window); - l->runningPlugins().at(index.row())->widget->show(); - //updateRunningPlugins(); + QLabel *label = new QLabel(tr("This LADSPA plugin has no user controls"), dialog); + formLayout->addRow(label); } + dialog->setLayout(formLayout); + dialog->setFixedSize(dialog->sizeHint()); + dialog->exec(); + dialog->deleteLater(); } void SettingsDialog::accept() |
