X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftransitionsettings.cpp;h=6d87559b27700b064b6f36c23e5d9a33aa8a6285;hb=14ca746a71f42aaf144c44f59aec2140e87f3915;hp=55df15538170bf8ef14f6897f51736bd2fdf9002;hpb=af9a6ba51d81ba5102890bcd777155c1a341deb1;p=kdenlive diff --git a/src/transitionsettings.cpp b/src/transitionsettings.cpp index 55df1553..6d87559b 100644 --- a/src/transitionsettings.cpp +++ b/src/transitionsettings.cpp @@ -26,14 +26,14 @@ #include -TransitionSettings::TransitionSettings(QWidget* parent) : +TransitionSettings::TransitionSettings(Monitor *monitor, QWidget* parent) : QWidget(parent), m_usedTransition(NULL), m_autoTrackTransition(0) { setupUi(this); QVBoxLayout *vbox1 = new QVBoxLayout(frame); - m_effectEdit = new EffectStackEdit(frame); + m_effectEdit = new EffectStackEdit(monitor, frame); vbox1->setContentsMargins(0, 0, 0, 0); vbox1->setSpacing(0); vbox1->addWidget(m_effectEdit); @@ -63,6 +63,7 @@ TransitionSettings::TransitionSettings(QWidget* parent) : connect(transitionList, SIGNAL(activated(int)), this, SLOT(slotTransitionChanged())); connect(transitionTrack, SIGNAL(activated(int)), this, SLOT(slotTransitionTrackChanged())); connect(m_effectEdit, SIGNAL(parameterChanged(const QDomElement&, const QDomElement&)), this , SLOT(slotUpdateEffectParams(const QDomElement&, const QDomElement&))); + connect(monitor, SIGNAL(renderPosition(int)), this, SLOT(slotRenderPos(int))); } void TransitionSettings::updateProjectFormat(MltVideoProfile profile, Timecode t, const QList info) @@ -104,21 +105,20 @@ void TransitionSettings::updateTrackList() void TransitionSettings::slotTransitionChanged(bool reinit, bool updateCurrent) { QDomElement e = m_usedTransition->toXML().cloneNode().toElement(); - int start = m_usedTransition->startPos().frames(KdenliveSettings::project_fps()); - int end = m_usedTransition->endPos().frames(KdenliveSettings::project_fps()); if (reinit) { // Reset the transition parameters to the default one QDomElement newTransition = MainWindow::transitions.getEffectByName(transitionList->currentText()).cloneNode().toElement(); slotUpdateEffectParams(e, newTransition); - m_effectEdit->transferParamDesc(newTransition, start, start, end); + m_effectEdit->transferParamDesc(newTransition, m_usedTransition->info(), false); } else if (!updateCurrent) { // Transition changed, update parameters dialog //slotUpdateEffectParams(e, e); - m_effectEdit->transferParamDesc(e, start, start, end); + m_effectEdit->transferParamDesc(e, m_usedTransition->info(), false); } else { // Same transition, we just want to update the parameters value slotUpdateEffectParams(e, e); - if (m_usedTransition->hasGeometry()) m_effectEdit->transferParamDesc(m_usedTransition->toXML(), start, start, end); + if (m_usedTransition->hasGeometry()) + m_effectEdit->transferParamDesc(m_usedTransition->toXML(), m_usedTransition->info(), false); } } @@ -182,7 +182,8 @@ void TransitionSettings::slotTransitionItemSelected(Transition* t, int nextTrack } else { // null transition selected m_usedTransition = NULL; - m_effectEdit->transferParamDesc(QDomElement(), 0, 0, 0); + ItemInfo info; + m_effectEdit->transferParamDesc(QDomElement(), info, false); } } @@ -205,3 +206,10 @@ void TransitionSettings::raiseWindow(QWidget* dock) } +void TransitionSettings::slotRenderPos(int pos) +{ + if (m_usedTransition) + m_effectEdit->slotSyncEffectsPos(pos - m_usedTransition->startPos().frames(KdenliveSettings::project_fps())); +} + +#include "transitionsettings.moc"