/***************************************************************************
- effecstackedit.h - description
+ effecstackedit.cpp - description
-------------------
begin : Mar 15 2008
copyright : (C) 2008 by Marco Gittler
vbox1->addWidget(m_effectEdit);
frame->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
connect(m_effectEdit, SIGNAL(seekTimeline(int)), this, SLOT(slotSeekTimeline(int)));
+ connect(m_effectEdit, SIGNAL(importClipKeyframes()), this, SIGNAL(importClipKeyframes()));
+
setEnabled(false);
QList<QStringList> transitionsList;
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, int)), this , SLOT(slotUpdateEffectParams(const QDomElement, const QDomElement)));
+ connect(m_effectEdit, SIGNAL(parameterChanged(QDomElement,QDomElement,int)), this , SLOT(slotUpdateEffectParams(QDomElement,QDomElement)));
}
void TransitionSettings::updateProjectFormat(MltVideoProfile profile, Timecode t, const QList <TrackInfo> info)
int limit = 1;
if (m_usedTransition)
limit = m_usedTransition->track() + 1;
- kDebug() << "/ / TRANS TRK: " << limit;
+ //kDebug() << "/ / TRANS TRK: " << limit;
KIcon videoIcon("kdenlive-show-video");
KIcon audioIcon("kdenlive-show-audio");
for (int i = limit; i < m_tracks.count(); i++) {
int ix = m_tracks.count() - i - 1;
transitionTrack->addItem(m_tracks.at(ix).type == VIDEOTRACK ? videoIcon : audioIcon,
- m_tracks.at(ix).trackName.isEmpty() ? QString::number(i) : m_tracks.at(ix).trackName + " (" + QString::number(i) + ")",
+ m_tracks.at(ix).trackName.isEmpty() ? QString::number(i) : m_tracks.at(ix).trackName + " (" + QString::number(i) + ')',
m_tracks.count() - i);
}
transitionTrack->addItem(i18n("Black"), 0);
QDomElement e = m_usedTransition->toXML().cloneNode().toElement();
if (reinit) {
// Reset the transition parameters to the default one
+ disconnect(m_effectEdit->monitor(), SIGNAL(renderPosition(int)), this, SLOT(slotRenderPos(int)));
QDomElement newTransition = MainWindow::transitions.getEffectByName(transitionList->currentText()).cloneNode().toElement();
slotUpdateEffectParams(e, newTransition);
m_effectEdit->transferParamDesc(newTransition, m_usedTransition->info(), false);
+ if (m_effectEdit->needsMonitorEffectScene())
+ connect(m_effectEdit->monitor(), SIGNAL(renderPosition(int)), this, SLOT(slotRenderPos(int)));
} else if (!updateCurrent) {
// Transition changed, update parameters dialog
//slotUpdateEffectParams(e, e);
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(), m_usedTransition->info(), false);
+ int ix = transitionList->findData(m_usedTransition->transitionInfo(), Qt::UserRole, Qt::MatchExactly);
+ if (ix != transitionList->currentIndex()) {
+ // Transition type changed, reload params
+ transitionList->blockSignals(true);
+ transitionList->setCurrentIndex(ix);
+ transitionList->blockSignals(false);
+ m_effectEdit->transferParamDesc(e, m_usedTransition->info(), false);
+ }
+ else {
+ slotUpdateEffectParams(e, e);
+ if (m_usedTransition->hasGeometry())
+ m_effectEdit->transferParamDesc(m_usedTransition->toXML(), m_usedTransition->info(), false);
+ }
+ if (m_effectEdit->needsMonitorEffectScene())
+ connect(m_effectEdit->monitor(), SIGNAL(renderPosition(int)), this, SLOT(slotRenderPos(int)));
}
slotCheckMonitorPosition(m_effectEdit->monitor()->render->seekFramePosition());
}
m_usedTransition = NULL;
ItemInfo info;
m_effectEdit->transferParamDesc(QDomElement(), info, false);
+ m_effectEdit->monitor()->slotShowEffectScene(false);
}
}
{
if (dock && m_usedTransition)
dock->raise();
-
}
void TransitionSettings::slotRenderPos(int pos)
{
if (!isEnabled()) return;
if (m_effectEdit->needsMonitorEffectScene()) {
- if (renderPos >= m_usedTransition->startPos().frames(KdenliveSettings::project_fps()) && renderPos <= m_usedTransition->endPos().frames(KdenliveSettings::project_fps())) {
+ if (renderPos >= m_usedTransition->startPos().frames(KdenliveSettings::project_fps()) && renderPos < m_usedTransition->endPos().frames(KdenliveSettings::project_fps())) {
if (!m_effectEdit->monitor()->effectSceneDisplayed()) {
m_effectEdit->monitor()->slotShowEffectScene(true);
}
}
}
+void TransitionSettings::setKeyframes(const QString &data, int maximum)
+{
+ m_effectEdit->setKeyframes(data, maximum);
+}
#include "transitionsettings.moc"