X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectstack%2Fcollapsibleeffect.cpp;h=352cd820bf5d7550b5e2b26cd75ecfbaa8fe85f8;hb=e0fa1332f109b6455207ea701da386b2fddddf09;hp=22e2a02b85212c50d5e2c37bf2fd043215c6395f;hpb=4191df91ef00b8e1ea8f5cf627da46eb53246302;p=kdenlive diff --git a/src/effectstack/collapsibleeffect.cpp b/src/effectstack/collapsibleeffect.cpp index 22e2a02b..352cd820 100644 --- a/src/effectstack/collapsibleeffect.cpp +++ b/src/effectstack/collapsibleeffect.cpp @@ -41,7 +41,7 @@ #include -CollapsibleEffect::CollapsibleEffect(QDomElement effect, QDomElement original_effect, ItemInfo info, EffectMetaInfo *metaInfo, bool lastEffect, QWidget * parent) : +CollapsibleEffect::CollapsibleEffect(const QDomElement &effect, const QDomElement &original_effect, const ItemInfo &info, EffectMetaInfo *metaInfo, bool lastEffect, QWidget * parent) : AbstractCollapsibleWidget(parent), m_paramWidget(NULL), m_effect(effect), @@ -78,15 +78,21 @@ CollapsibleEffect::CollapsibleEffect(QDomElement effect, QDomElement original_ef m_menu->addAction(KIcon("view-refresh"), i18n("Reset Effect"), this, SLOT(slotResetEffect())); m_menu->addAction(KIcon("document-save"), i18n("Save Effect"), this, SLOT(slotSaveEffect())); - QDomElement namenode = m_effect.firstChildElement("name"); - if (namenode.isNull()) return; - QString effectname = i18n(namenode.text().toUtf8().data()); - if (m_regionEffect) effectname.append(':' + KUrl(EffectsList::parameter(m_effect, "resource")).fileName()); - QHBoxLayout *l = static_cast (frame->layout()); title = new QLabel(this); l->insertWidget(2, title); + m_groupAction = new QAction(KIcon("folder-new"), i18n("Create Group"), this); + connect(m_groupAction, SIGNAL(triggered(bool)), this, SLOT(slotCreateGroup())); + + QDomElement namenode = m_effect.firstChildElement("name"); + if (namenode.isNull()) { + // Warning, broken effect? + kDebug()<<"// Could not create effect"; + return; + } + QString effectname = i18n(namenode.text().toUtf8().data()); + if (m_regionEffect) effectname.append(':' + KUrl(EffectsList::parameter(m_effect, "resource")).fileName()); title->setText(effectname); /* * Do not show icon, makes too much visual noise @@ -97,8 +103,6 @@ CollapsibleEffect::CollapsibleEffect(QDomElement effect, QDomElement original_ef else if (type == "custom") icon = KIcon("kdenlive-custom-effect"); else icon = KIcon("kdenlive-show-video"); effecticon->setPixmap(icon.pixmap(16,16));*/ - m_groupAction = new QAction(KIcon("folder-new"), i18n("Create Group"), this); - connect(m_groupAction, SIGNAL(triggered(bool)), this, SLOT(slotCreateGroup())); if (!m_regionEffect) { if (m_info.groupIndex == -1) m_menu->addAction(m_groupAction); @@ -141,7 +145,7 @@ CollapsibleEffect::CollapsibleEffect(QDomElement effect, QDomElement original_ef CollapsibleEffect::~CollapsibleEffect() { - if (m_paramWidget) delete m_paramWidget; + delete m_paramWidget; delete m_menu; } @@ -428,10 +432,10 @@ void CollapsibleEffect::setupWidget(ItemInfo info, EffectMetaInfo *metaInfo) QVBoxLayout *vbox = static_cast (widgetFrame->layout()); vbox->addWidget(container); // m_paramWidget = new ParameterContainer(m_effect.toElement(), info, metaInfo, container); - for (int i = 0; i < effects.count(); i++) { + for (int i = 0; i < effects.count(); ++i) { CollapsibleEffect *coll = new CollapsibleEffect(effects.at(i).toElement(), origin_effects.at(i).toElement(), info, metaInfo, container); m_subParamWidgets.append(coll); - connect(coll, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int)), this , SLOT(slotUpdateRegionEffectParams(const QDomElement, const QDomElement, int))); + connect(coll, SIGNAL(parameterChanged(QDomElement,QDomElement,int)), this , SLOT(slotUpdateRegionEffectParams(QDomElement,QDomElement,int))); //container = new QWidget(widgetFrame); vbox->addWidget(coll); //p = new ParameterContainer(effects.at(i).toElement(), info, isEffect, container); @@ -453,13 +457,14 @@ void CollapsibleEffect::setupWidget(ItemInfo info, EffectMetaInfo *metaInfo) collapseButton->setArrowType(Qt::RightArrow); } - connect (m_paramWidget, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int)), this, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int))); + connect (m_paramWidget, SIGNAL(parameterChanged(QDomElement,QDomElement,int)), this, SIGNAL(parameterChanged(QDomElement,QDomElement,int))); - connect(m_paramWidget, SIGNAL(startFilterJob(QString,QString,QString,QString,QString,QString,QStringList)), this, SIGNAL(startFilterJob(QString,QString,QString,QString,QString,QString,QStringList))); + connect(m_paramWidget, SIGNAL(startFilterJob(QString,QString,QString,QString,QMap)), this, SIGNAL(startFilterJob(QString,QString,QString,QString,QMap))); connect (this, SIGNAL(syncEffectsPos(int)), m_paramWidget, SIGNAL(syncEffectsPos(int))); connect (m_paramWidget, SIGNAL(checkMonitorPosition(int)), this, SIGNAL(checkMonitorPosition(int))); connect (m_paramWidget, SIGNAL(seekTimeline(int)), this, SIGNAL(seekTimeline(int))); + connect(m_paramWidget, SIGNAL(importClipKeyframes()), this, SIGNAL(importClipKeyframes())); } @@ -485,7 +490,7 @@ void CollapsibleEffect::updateTimecodeFormat() m_paramWidget->updateTimecodeFormat(); if (!m_subParamWidgets.isEmpty()) { // we have a group - for (int i = 0; i < m_subParamWidgets.count(); i++) + for (int i = 0; i < m_subParamWidgets.count(); ++i) m_subParamWidgets.at(i)->updateTimecodeFormat(); } } @@ -548,7 +553,7 @@ void CollapsibleEffect::dropEvent(QDropEvent *event) // Moving group QList effectsIds; // Collect moved effects ids - for (int i = 0; i < subeffects.count(); i++) { + for (int i = 0; i < subeffects.count(); ++i) { QDomElement effect = subeffects.at(i).toElement(); effectsIds << effect.attribute("kdenlive_ix").toInt(); } @@ -592,4 +597,13 @@ bool CollapsibleEffect::needsMonitorEffectScene() const return m_paramWidget->needsMonitorEffectScene(); } +void CollapsibleEffect::setRange(int inPoint , int outPoint) +{ + m_paramWidget->setRange(inPoint, outPoint); +} + +void CollapsibleEffect::setKeyframes(const QString data, int maximum) +{ + m_paramWidget->setKeyframes(data, maximum); +}