X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectstack%2Feffectstackview2.cpp;h=d67f2bbc337e987eb8e1031c384577ff639d9186;hb=1d9ce4dd0538c76fb9513b9b05bf66c3186f44de;hp=f33ecc6c0099f07ad8df8b76dc7458c127b29454;hpb=c2ff32876591d3e015410ac619b4d8e3746571dc;p=kdenlive diff --git a/src/effectstack/effectstackview2.cpp b/src/effectstack/effectstackview2.cpp index f33ecc6c..d67f2bbc 100644 --- a/src/effectstack/effectstackview2.cpp +++ b/src/effectstack/effectstackview2.cpp @@ -93,14 +93,26 @@ void EffectStackView2::slotRenderPos(int pos) m_effects.at(i)->slotSyncEffectsPos(pos); } +void EffectStackView2::slotClipItemUpdate() +{ + int inPoint = m_clipref->cropStart().frames(KdenliveSettings::project_fps()); + int outPoint = m_clipref->cropDuration().frames(KdenliveSettings::project_fps()) - inPoint; + CollapsibleEffect *effectToMove = NULL; + for (int i = 0; i < m_effects.count(); i++) { + m_effects.at(i)->setRange(inPoint, outPoint); + } +} + void EffectStackView2::slotClipItemSelected(ClipItem* c) { if (c && !c->isEnabled()) return; if (c && c == m_clipref) { } else { + if (m_clipref) disconnect(m_clipref, SIGNAL(updateRange()), this, SLOT(slotClipItemUpdate())); m_clipref = c; if (c) { + connect(m_clipref, SIGNAL(updateRange()), this, SLOT(slotClipItemUpdate())); QString cname = m_clipref->clipName(); if (cname.length() > 30) { m_ui.checkAll->setToolTip(i18n("Effects for %1", cname)); @@ -271,7 +283,7 @@ void EffectStackView2::connectEffect(CollapsibleEffect *currentEffect) // Check drag & drop currentEffect->installEventFilter( this ); connect(currentEffect, SIGNAL(parameterChanged(const QDomElement, const QDomElement, int)), this , SLOT(slotUpdateEffectParams(const QDomElement, const QDomElement, int))); - connect(currentEffect, SIGNAL(startFilterJob(QString,QString,QString,QString,QString,QStringList)), this , SLOT(slotStartFilterJob(QString,QString,QString,QString,QString,QStringList))); + connect(currentEffect, SIGNAL(startFilterJob(QString,QString,QString,QString,const QMap )), this , SLOT(slotStartFilterJob(QString,QString,QString,QString,const QMap ))); connect(currentEffect, SIGNAL(deleteEffect(const QDomElement)), this , SLOT(slotDeleteEffect(const QDomElement))); connect(currentEffect, SIGNAL(reloadEffects()), this , SIGNAL(reloadEffects())); connect(currentEffect, SIGNAL(resetEffect(int)), this , SLOT(slotResetEffect(int))); @@ -284,6 +296,7 @@ void EffectStackView2::connectEffect(CollapsibleEffect *currentEffect) connect(currentEffect, SIGNAL(addEffect(QDomElement)), this , SLOT(slotAddEffect(QDomElement))); connect(currentEffect, SIGNAL(createRegion(int,KUrl)), this, SLOT(slotCreateRegion(int,KUrl))); connect(currentEffect, SIGNAL(deleteGroup(QDomDocument)), this , SLOT(slotDeleteGroup(QDomDocument))); + connect(currentEffect, SIGNAL(importClipKeyframes()), this, SIGNAL(importClipKeyframes())); } void EffectStackView2::slotCheckWheelEventFilter() @@ -643,10 +656,10 @@ void EffectStackView2::slotMoveEffectUp(QList indexes, bool up) else emit changeEffectPosition(m_clipref, -1, indexes, endPos); } -void EffectStackView2::slotStartFilterJob(const QString&filterName, const QString&filterParams, const QString&finalFilterName, const QString&consumer, const QString&consumerParams, const QStringList &extraParams) +void EffectStackView2::slotStartFilterJob(const QString&filterName, const QString&filterParams, const QString&consumer, const QString&consumerParams, const QMap &extraParams) { if (!m_clipref) return; - emit startFilterJob(m_clipref->info(), m_clipref->clipProducer(), filterName, filterParams, finalFilterName, consumer, consumerParams, extraParams); + emit startFilterJob(m_clipref->info(), m_clipref->clipProducer(), filterName, filterParams, consumer, consumerParams, extraParams); } void EffectStackView2::slotResetEffect(int ix) @@ -941,6 +954,16 @@ void EffectStackView2::dropEvent(QDropEvent *event) processDroppedEffect(doc.documentElement(), event); } +void EffectStackView2::setKeyframes(const QString data, int maximum) +{ + for (int i = 0; i < m_effects.count(); i++) { + if (m_effects.at(i)->isActive()) { + m_effects.at(i)->setKeyframes(data, maximum); + break; + } + } +} + //static const QString EffectStackView2::getStyleSheet() {