#include <KDebug>
-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);
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 <TrackInfo> info)
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);
}
}
} else {
// null transition selected
m_usedTransition = NULL;
- m_effectEdit->transferParamDesc(QDomElement(), 0, 0, 0);
+ ItemInfo info;
+ m_effectEdit->transferParamDesc(QDomElement(), info, false);
}
}
}
+void TransitionSettings::slotRenderPos(int pos)
+{
+ if (m_usedTransition)
+ m_effectEdit->slotSyncEffectsPos(pos - m_usedTransition->startPos().frames(KdenliveSettings::project_fps()));
+}
+
+#include "transitionsettings.moc"