Fix dissolve in slideshow clips broken

BUG: 370337
parent 67eb1aea
......@@ -3359,7 +3359,7 @@ void Bin::showSlideshowWidget(ProjectClip *clip)
properties.insert(QStringLiteral("loop"), QString::number(dia->loop()));
properties.insert(QStringLiteral("crop"), QString::number(dia->crop()));
properties.insert(QStringLiteral("fade"), QString::number(dia->fade()));
properties.insert(QStringLiteral("luma_duration"), dia->lumaDuration());
properties.insert(QStringLiteral("luma_duration"), QString::number(m_doc->getFramePos(dia->lumaDuration())));
properties.insert(QStringLiteral("luma_file"), dia->lumaFile());
properties.insert(QStringLiteral("softness"), QString::number(dia->softness()));
properties.insert(QStringLiteral("animation"), dia->animation());
......
......@@ -288,9 +288,13 @@ QDomElement ProjectClip::toXml(QDomDocument& document, bool includeMeta)
{
if (m_controller) {
m_controller->getProducerXML(document, includeMeta);
return document.documentElement().firstChildElement(QStringLiteral("producer"));
QDomElement prod = document.documentElement().firstChildElement(QStringLiteral("producer"));
if (m_type != Unknown) {
prod.setAttribute(QStringLiteral("type"), (int) m_type);
}
return prod;
} else {
// We only have very basic infos, ike id and url, pass them
// We only have very basic infos, like id and url, pass them
QDomElement prod = document.createElement(QStringLiteral("producer"));
prod.setAttribute(QStringLiteral("id"), m_id);
EffectsList::setProperty(prod, QStringLiteral("resource"), m_temporaryUrl.path());
......@@ -592,6 +596,7 @@ void ProjectClip::setProperties(QMap <QString, QString> properties, bool refresh
QMap <QString, QString> passProperties;
bool refreshAnalysis = false;
bool reload = false;
bool refreshOnly = true;
// Some properties also need to be passed to track producers
QStringList timelineProperties;
if (properties.contains(QLatin1String("templatetext"))) {
......@@ -607,6 +612,7 @@ void ProjectClip::setProperties(QMap <QString, QString> properties, bool refresh
setProducerProperty(i.key(), i.value());
if (m_type == SlideShow && keys.contains(i.key())) {
reload = true;
refreshOnly = false;
}
if (i.key().startsWith(QLatin1String("kdenlive:clipanalysis"))) refreshAnalysis = true;
if (timelineProperties.contains(i.key())) {
......@@ -658,7 +664,7 @@ void ProjectClip::setProperties(QMap <QString, QString> properties, bool refresh
}
if (reload) {
// producer has changed, refresh monitor and thumbnail
reloadProducer(true);
reloadProducer(refreshOnly);
bin()->refreshClip(m_id);
}
if (!passProperties.isEmpty()) {
......
......@@ -245,7 +245,7 @@ void ClipCreationDialog::createSlideshowClip(KdenliveDoc *doc, QStringList group
properties.insert(QStringLiteral("loop"), QString::number(dia->loop()));
properties.insert(QStringLiteral("crop"), QString::number(dia->crop()));
properties.insert(QStringLiteral("fade"), QString::number(dia->fade()));
properties.insert(QStringLiteral("luma_duration"), dia->lumaDuration());
properties.insert(QStringLiteral("luma_duration"), QString::number(doc->getFramePos(dia->lumaDuration())));
properties.insert(QStringLiteral("luma_file"), dia->lumaFile());
properties.insert(QStringLiteral("softness"), QString::number(dia->softness()));
properties.insert(QStringLiteral("animation"), dia->animation());
......
......@@ -501,7 +501,6 @@ void ProducerQueue::processFileProperties()
if (frameNumber > 0) producer->seek(frameNumber);
duration = duration > 0 ? duration : producer->get_playtime();
//qDebug() << "/////// PRODUCER: " << url.path() << " IS: " << producer->get_playtime();
if (type == SlideShow) {
int ttl = EffectsList::property(info.xml,QStringLiteral("ttl")).toInt();
QString anim = EffectsList::property(info.xml,QStringLiteral("animation"));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment