Git commit 55d2e159ab53b32a280032dee65510027556ff70 by Jean-Baptiste Mardel= le. Committed on 02/12/2016 at 15:09. Pushed by mardelle into branch 'Applications/16.12'. Fix dissolve in slideshow clips broken BUG: 370337 M +1 -1 src/bin/bin.cpp M +9 -3 src/bin/projectclip.cpp M +1 -1 src/dialogs/clipcreationdialog.cpp M +0 -1 src/mltcontroller/producerqueue.cpp https://commits.kde.org/kdenlive/55d2e159ab53b32a280032dee65510027556ff70 diff --git a/src/bin/bin.cpp b/src/bin/bin.cpp index 37ee81a..90f313f 100644 --- a/src/bin/bin.cpp +++ b/src/bin/bin.cpp @@ -3359,7 +3359,7 @@ void Bin::showSlideshowWidget(ProjectClip *clip) properties.insert(QStringLiteral("loop"), QString::number(dia->loo= p())); properties.insert(QStringLiteral("crop"), QString::number(dia->cro= p())); properties.insert(QStringLiteral("fade"), QString::number(dia->fad= e())); - properties.insert(QStringLiteral("luma_duration"), dia->lumaDurati= on()); + 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()); diff --git a/src/bin/projectclip.cpp b/src/bin/projectclip.cpp index 12fc4fa..e23efe8 100644 --- a/src/bin/projectclip.cpp +++ b/src/bin/projectclip.cpp @@ -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 =3D document.documentElement().firstChildElement(= QStringLiteral("producer")); + if (m_type !=3D 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 =3D document.createElement(QStringLiteral("produc= er")); prod.setAttribute(QStringLiteral("id"), m_id); EffectsList::setProperty(prod, QStringLiteral("resource"), m_tempo= raryUrl.path()); @@ -592,6 +596,7 @@ void ProjectClip::setProperties(QMap = properties, bool refresh QMap passProperties; bool refreshAnalysis =3D false; bool reload =3D false; + bool refreshOnly =3D 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 = properties, bool refresh setProducerProperty(i.key(), i.value()); if (m_type =3D=3D SlideShow && keys.contains(i.key())) { reload =3D true; + refreshOnly =3D false; } if (i.key().startsWith(QLatin1String("kdenlive:clipanalysis"))) re= freshAnalysis =3D true; if (timelineProperties.contains(i.key())) { @@ -658,7 +664,7 @@ void ProjectClip::setProperties(QMap = properties, bool refresh } if (reload) { // producer has changed, refresh monitor and thumbnail - reloadProducer(true); + reloadProducer(refreshOnly); bin()->refreshClip(m_id); } if (!passProperties.isEmpty()) { diff --git a/src/dialogs/clipcreationdialog.cpp b/src/dialogs/clipcreationd= ialog.cpp index db4578d..61c239b 100644 --- a/src/dialogs/clipcreationdialog.cpp +++ b/src/dialogs/clipcreationdialog.cpp @@ -245,7 +245,7 @@ void ClipCreationDialog::createSlideshowClip(KdenliveDo= c *doc, QStringList group properties.insert(QStringLiteral("loop"), QString::number(dia->loo= p())); properties.insert(QStringLiteral("crop"), QString::number(dia->cro= p())); properties.insert(QStringLiteral("fade"), QString::number(dia->fad= e())); - properties.insert(QStringLiteral("luma_duration"), dia->lumaDurati= on()); + 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()); diff --git a/src/mltcontroller/producerqueue.cpp b/src/mltcontroller/produc= erqueue.cpp index 9e70330..e6e43eb 100644 --- a/src/mltcontroller/producerqueue.cpp +++ b/src/mltcontroller/producerqueue.cpp @@ -501,7 +501,6 @@ void ProducerQueue::processFileProperties() if (frameNumber > 0) producer->seek(frameNumber); duration =3D duration > 0 ? duration : producer->get_playtime(); //qDebug() << "/////// PRODUCER: " << url.path() << " IS: " << pr= oducer->get_playtime(); - if (type =3D=3D SlideShow) { int ttl =3D EffectsList::property(info.xml,QStringLiteral("ttl= ")).toInt(); QString anim =3D EffectsList::property(info.xml,QStringLiteral= ("animation"));