[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdenlive/Applications/16.12] src: Fix dissolve in slideshow clips broken
From:       Jean-Baptiste Mardelle <jb () kdenlive ! org>
Date:       2016-12-02 15:10:33
Message-ID: E1cCpTt-0007WI-Jv () code ! kde ! org
[Download RAW message or body]

Git commit 55d2e159ab53b32a280032dee65510027556ff70 by Jean-Baptiste Mardelle.
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->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());
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 = \
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()) {
diff --git a/src/dialogs/clipcreationdialog.cpp b/src/dialogs/clipcreationdialog.cpp
index db4578d..61c239b 100644
--- a/src/dialogs/clipcreationdialog.cpp
+++ b/src/dialogs/clipcreationdialog.cpp
@@ -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());
diff --git a/src/mltcontroller/producerqueue.cpp \
b/src/mltcontroller/producerqueue.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 = 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"));


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic