summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Baptiste Mardelle <jb@kdenlive.org>2016-12-02 15:09:58 (GMT)
committerJean-Baptiste Mardelle <jb@kdenlive.org>2016-12-02 15:09:58 (GMT)
commit55d2e159ab53b32a280032dee65510027556ff70 (patch)
tree3a96c7b1137ad919652d39ec71cf9674390b17cf
parent67eb1aeaa5c3b50d4ebc41fc2775ccff168b3d6c (diff)
Fix dissolve in slideshow clips brokenv16.11.90
BUG: 370337
-rw-r--r--src/bin/bin.cpp2
-rw-r--r--src/bin/projectclip.cpp12
-rw-r--r--src/dialogs/clipcreationdialog.cpp2
-rw-r--r--src/mltcontroller/producerqueue.cpp1
4 files changed, 11 insertions, 6 deletions
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"));