Git commit d6b00054aad4a3ccf40bfc07dd3e200e75c7a3c2 by Jean-Baptiste Mardel= le. 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 =3D static_cast(m= _proxyModel->mapToSource(ix).internalPointer()); ProjectClip *currentItem =3D qobject_cast(item); if (currentItem) { - emit openClip(NULL); + emit openClip(Q_NULLPTR); + if (currentItem->clipType() =3D=3D Playlist) { + //Check if a clip inside playlist is missing + QString path =3D 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().attribu= te(QStringLiteral("modified")) =3D=3D QLatin1String("1")) { + QString backupFile =3D path + QStringLiteral(".backup= "); + KIO::FileCopyJob *copyjob =3D KIO::file_copy(QUrl::fr= omLocalFile(path), QUrl::fromLocalFile(backupFile)); + if (copyjob->exec()) { + if (!f.open(QIODevice::WriteOnly | QIODevice::Tex= t)) { + KMessageBox::sorry(this, i18n("Unable to writ= e to file %1", path)); + } else { + QTextStream out(&f); + out << doc.toString(); + f.close(); + KMessageBox::information(this, i18n("Your pro= ject file was modified by Kdenlive.\nTo make sure you don't lose data, a ba= ckup copy called %1 was created.", backupFile)); + } + } + } - } = ++ } QDomDocument doc; QDomElement xml =3D currentItem->toXml(doc); qDebug()<<"*****************\n"<set_in_and_out(prod.get_in(), prod.get_out()); + filter->set_in_and_out(m_producer.get_int("in"), m_producer.g= et_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); } } =20