#include "effectcontrols.h" #include "ui_effectcontrols.h" #include #include #include #include "effects/effects.h" #include "project/clip.h" #include "project/effect.h" #include "ui/collapsiblewidget.h" EffectControls::EffectControls(QWidget *parent) : QDockWidget(parent), ui(new Ui::EffectControls) { ui->setupUi(this); init_effects(); clip = NULL; set_clip(NULL); effects_menu = new QMenu(this); for (int i=0;isetText(video_effect_names.at(i)); action->setData(i); effects_menu->addAction(action); } effects_menu->addSeparator(); for (int i=0;isetText(audio_effect_names.at(i)); action->setData(i); effects_menu->addAction(action); } connect(effects_menu, SIGNAL(triggered(QAction*)), this, SLOT(menu_select(QAction*))); } void EffectControls::menu_select(QAction* q) { clip->effects.append(create_effect(q->data().toInt(), clip)); set_clip(clip); } EffectControls::~EffectControls() { delete ui; } void EffectControls::on_pushButton_clicked() { effects_menu->exec(QCursor::pos()); } void EffectControls::set_clip(Clip* c) { // clear ui->scrollAreaWidgetContents if (clip != NULL) { for (int i=0;ieffects.size();i++) { clip->effects.at(i)->container->setParent(NULL); } } ui->pushButton->setEnabled(c != NULL); if (c != NULL) { for (int i=0;ieffects.size();i++) { static_cast(ui->scrollAreaWidgetContents->layout())->insertWidget(i, c->effects.at(i)->container); } } clip = c; }