Files
oak-editor/panels/effectcontrols.cpp
T

60 lines
1.3 KiB
C++

#include "effectcontrols.h"
#include "ui_effectcontrols.h"
#include <QMenu>
#include <QDebug>
#include <QVBoxLayout>
#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);
}
EffectControls::~EffectControls()
{
delete ui;
}
void EffectControls::on_pushButton_clicked()
{
QMenu effects_menu(this);
for (int i=0;i<video_effect_names.size();i++) {
effects_menu.addAction(video_effect_names.at(i));
}
effects_menu.addSeparator();
for (int i=0;i<audio_effect_names.size();i++) {
effects_menu.addAction(audio_effect_names.at(i));
}
effects_menu.exec(QCursor::pos());
}
void EffectControls::set_clip(Clip* c) {
// clear ui->scrollAreaWidgetContents
if (clip != NULL) {
for (int i=0;i<clip->effects.size();i++) {
clip->effects.at(i)->container->setParent(NULL);
}
}
ui->pushButton->setEnabled(c != NULL);
if (c != NULL) {
for (int i=0;i<c->effects.size();i++) {
static_cast<QVBoxLayout*>(ui->scrollAreaWidgetContents->layout())->insertWidget(i, c->effects.at(i)->container);
}
}
clip = c;
}