[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kdenlive] src: Merge branch '16.12'
From: Jean-Baptiste Mardelle <jb () kdenlive ! org>
Date: 2016-11-30 23:16:19
Message-ID: E1cCE6t-0001oK-G9 () code ! kde ! org
[Download RAW message or body]
Git commit d6b00054aad4a3ccf40bfc07dd3e200e75c7a3c2 by Jean-Baptiste Mardelle.
Committed on 30/11/2016 at 23:16.
Pushed by mardelle into branch 'master'.
Merge branch '16.12'
M +23 -0 src/bin/bin.cpp
M +1 -1 src/doc/documentvalidator.cpp
M +5 -5 src/effectstack/widgets/animationwidget.cpp
M +1 -1 src/effectstack/widgets/animationwidget.h
M +11 -9 src/mltcontroller/effectscontroller.cpp
M +6 -5 src/timeline/abstractclipitem.cpp
M +3 -5 src/timeline/clipitem.cpp
M +1 -2 src/timeline/customtrackview.cpp
M +1 -2 src/timeline/effectmanager.cpp
M +61 -6 src/timeline/keyframeview.cpp
M +2 -0 src/timeline/keyframeview.h
M +3 -3 src/timeline/track.cpp
https://commits.kde.org/kdenlive/d6b00054aad4a3ccf40bfc07dd3e200e75c7a3c2
diff --cc src/bin/bin.cpp
index ed6c39c,37ee81a..747e14d
--- a/src/bin/bin.cpp
+++ b/src/bin/bin.cpp
@@@ -862,7 -862,30 +862,30 @@@ void Bin::slotReloadClip(
AbstractProjectItem *item = \
static_cast<AbstractProjectItem*>(m_proxyModel->mapToSource(ix).internalPointer()); \
ProjectClip *currentItem = qobject_cast<ProjectClip*>(item); if (currentItem) {
- emit openClip(NULL);
+ emit openClip(Q_NULLPTR);
+ if (currentItem->clipType() == Playlist) {
+ //Check if a clip inside playlist is missing
+ QString path = currentItem->url().path();
+ QFile f(path);
+ QDomDocument doc;
+ doc.setContent(&f, false);
+ f.close();
+ DocumentChecker d(QUrl::fromLocalFile(path), doc);
+ if (!d.hasErrorInClips() && \
doc.documentElement().attribute(QStringLiteral("modified")) == QLatin1String("1")) { \
+ QString backupFile = path + QStringLiteral(".backup"); + \
KIO::FileCopyJob *copyjob = KIO::file_copy(QUrl::fromLocalFile(path), \
QUrl::fromLocalFile(backupFile)); + if (copyjob->exec()) {
+ if (!f.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ KMessageBox::sorry(this, i18n("Unable to write to file \
%1", path)); + } else {
+ QTextStream out(&f);
+ out << doc.toString();
+ f.close();
+ KMessageBox::information(this, i18n("Your project file \
was modified by Kdenlive.\nTo make sure you don't lose data, a backup copy called %1 \
was created.", backupFile)); + }
+ }
+ }
- }
++ }
QDomDocument doc;
QDomElement xml = currentItem->toXml(doc);
qDebug()<<"*****************\n"<<doc.toString()<<"\n******************";
diff --cc src/doc/documentvalidator.cpp
index c76dbff,7e524d6..c21f4c3
--- a/src/doc/documentvalidator.cpp
+++ b/src/doc/documentvalidator.cpp
@@@ -1495,8 -1496,8 +1495,8 @@@ bool DocumentValidator::upgrade(double
parsedValues << QString::number(l.key()) + "=" + \
locale.toString(l.value()); }
}
- EffectsList::setProperty(eff, conversionParams.at(2), \
parsedValues.join(";")); + EffectsList::setProperty(eff, \
conversionParams.at(2), parsedValues.join(QStringLiteral(";")));
- EffectsList::setProperty(eff, \
QStringLiteral("kdenlive:sync_in_out"), QStringLiteral("1")); + \
//EffectsList::setProperty(eff, QStringLiteral("kdenlive:sync_in_out"), \
QStringLiteral("1")); eff.setAttribute(QStringLiteral("out"), out);
}
}
diff --cc src/mltcontroller/effectscontroller.cpp
index 49133dd,026092f..460d9da
--- a/src/mltcontroller/effectscontroller.cpp
+++ b/src/mltcontroller/effectscontroller.cpp
@@@ -229,8 -231,8 +231,8 @@@ void EffectsController::initTrackEffect
bool hasValue = e.hasAttribute(QStringLiteral("value"));
// Check if this effect has a variable parameter, init effects default \
value
if ((type == QLatin1String("animatedrect") || type == \
QLatin1String("geometry")) && !hasValue) {
- QString kfr = \
AnimationWidget::getDefaultKeyframes(e.attribute(QStringLiteral("default")), type == \
QLatin1String("geometry")); + QString kfr = \
AnimationWidget::getDefaultKeyframes(0, e.attribute(QStringLiteral("default")), type \
== QLatin1String("geometry"));
- if (kfr.contains("%")) {
+ if (kfr.contains(QLatin1String("%"))) {
kfr = EffectsController::getStringRectEval(pInfo, kfr);
}
e.setAttribute(QStringLiteral("value"), kfr);
@@@ -273,8 -275,8 +275,8 @@@ void EffectsController::initEffect(cons
bool hasValue = e.hasAttribute(QStringLiteral("value"));
// Check if this effect has a variable parameter, init effects default \
value
if ((type == QLatin1String("animatedrect") || type == \
QLatin1String("geometry")) && !hasValue) {
- QString kfr = \
AnimationWidget::getDefaultKeyframes(e.attribute(QStringLiteral("default")), type == \
QLatin1String("geometry")); + QString kfr = \
AnimationWidget::getDefaultKeyframes(info.cropStart.frames(fps), \
e.attribute(QStringLiteral("default")), type == \
QLatin1String("geometry"));
- if (kfr.contains("%")) {
+ if (kfr.contains(QLatin1String("%"))) {
kfr = EffectsController::getStringRectEval(pInfo, kfr);
}
e.setAttribute(QStringLiteral("value"), kfr);
diff --cc src/timeline/effectmanager.cpp
index fcb4565,bcfb84b..5bd3d87
--- a/src/timeline/effectmanager.cpp
+++ b/src/timeline/effectmanager.cpp
@@@ -316,12 -316,11 +316,11 @@@ bool EffectManager::editEffect(EffectsP
if (params.paramValue(QStringLiteral("kdenlive:sync_in_out")) == \
QLatin1String("1")) { // This effect must sync in / out with parent clip
//params.removeParam(QStringLiteral("sync_in_out"));
- Mlt::Producer prod(m_producer);
- filter->set_in_and_out(prod.get_in(), prod.get_out());
+ filter->set_in_and_out(m_producer.get_int("in"), \
m_producer.get_int("out")); } else {
// Reset in/out properties
- filter->set("in", (char*)NULL);
- filter->set("out", (char*)NULL);
+ filter->set("in", (char*)Q_NULLPTR);
+ filter->set("out", (char*)Q_NULLPTR);
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic