From: Jean-Baptiste Mardelle Date: Thu, 1 Oct 2009 15:18:27 +0000 (+0000) Subject: reindent + create a backup copy of the document if we upgraded the document version X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=3d6860cb1c05c50a462a82ca7fbfa163ec295b66;p=kdenlive reindent + create a backup copy of the document if we upgraded the document version svn path=/trunk/kdenlive/; revision=3974 --- diff --git a/src/cliptranscode.cpp b/src/cliptranscode.cpp index 6b431fc9..e81b4b54 100644 --- a/src/cliptranscode.cpp +++ b/src/cliptranscode.cpp @@ -114,8 +114,8 @@ void ClipTranscode::slotStartTransCode() if (KMessageBox::questionYesNo(this, i18n("File %1 already exists.\nDo you want to overwrite it?", destination + extension)) == KMessageBox::No) return; parameters << "-y"; } - foreach (QString s, params.split(' ')) - parameters << s.replace("%1", destination); + foreach(QString s, params.split(' ')) + parameters << s.replace("%1", destination); buttonBox->button(QDialogButtonBox::Abort)->setText(i18n("Abort")); //kDebug() << "/// FFMPEG ARGS: " << parameters; diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 1a831846..b90c587e 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -1693,7 +1693,7 @@ void CustomTrackView::cutClip(ItemInfo info, GenTime cutTime, bool cut) newPos.cropDuration = GenTime((int)((newPos.endPos - newPos.startPos).frames(m_document->fps()) * speed), m_document->fps()); newPos.originalcropStart = GenTime((int)(newPos.cropStart .frames(m_document->fps()) * speed), m_document->fps()); - + ClipItem *dup = item->clone(newPos); // remove unwanted effects (fade in) from 2nd part of cutted clip int ix = dup->hasEffect(QString(), "fadein"); diff --git a/src/documentvalidator.cpp b/src/documentvalidator.cpp index 614fa1ca..6aad1ae4 100644 --- a/src/documentvalidator.cpp +++ b/src/documentvalidator.cpp @@ -144,9 +144,11 @@ bool DocumentValidator::upgrade(double version, const double currentVersion) KMessageBox::sorry(kapp->activeWindow(), i18n("This project type is unsupported (version %1) and can't be loaded.", version), i18n("Unable to open project")); return false; } + // QDomNode infoXmlNode = m_doc.elementsByTagName("kdenlivedoc").at(0); QDomElement infoXml = infoXmlNode.toElement(); + infoXml.setAttribute("upgraded", "1"); if (version <= 0.6) { QDomElement infoXml_old = infoXmlNode.cloneNode(true).toElement(); // Needed for folders @@ -721,67 +723,65 @@ bool DocumentValidator::upgrade(double version, const double currentVersion) } if (version <= 0.84) { - // update the title clips to use the new MLT kdenlivetitle producer - QDomNodeList kproducerNodes = m_doc.elementsByTagName("kdenlive_producer"); - for (int i = 0; i < kproducerNodes.count(); ++i) { - QDomElement kproducer = kproducerNodes.at(i).toElement(); - if (kproducer.attribute("type").toInt() == TEXT) { - QString data = kproducer.attribute("xmldata"); - QString datafile = kproducer.attribute("resource"); - if (!datafile.endsWith(".kdenlivetitle")) { - datafile = QString(); - kproducer.setAttribute("resource", QString()); - } - QString id = kproducer.attribute("id"); - QDomNodeList mltproducers = m_doc.elementsByTagName("producer"); - bool foundData = false; - bool foundResource = false; - bool foundService = false; - for (int j = 0; j < mltproducers.count(); j++) { - QDomElement wproducer = mltproducers.at(j).toElement(); - if (wproducer.attribute("id") == id) { - QDomNodeList props = wproducer.childNodes(); - for (int k = 0; k < props.count(); k++) { - if (props.at(k).toElement().attribute("name") == "xmldata") { - props.at(k).firstChild().setNodeValue(data); - foundData = true; - } - else if (props.at(k).toElement().attribute("name") == "mlt_service") { - props.at(k).firstChild().setNodeValue("kdenlivetitle"); - foundService = true; - } - else if (props.at(k).toElement().attribute("name") == "resource") { - props.at(k).firstChild().setNodeValue(datafile); - foundResource = true; - } - } - if (!foundData) { - QDomElement e = m_doc.createElement("property"); - e.setAttribute("name", "xmldata"); - QDomText value = m_doc.createTextNode(data); - e.appendChild(value); - wproducer.appendChild(e); - } - if (!foundService) { - QDomElement e = m_doc.createElement("property"); - e.setAttribute("name", "mlt_service"); - QDomText value = m_doc.createTextNode("kdenlivetitle"); - e.appendChild(value); - wproducer.appendChild(e); - } - if (!foundResource) { - QDomElement e = m_doc.createElement("property"); - e.setAttribute("name", "resource"); - QDomText value = m_doc.createTextNode(datafile); - e.appendChild(value); - wproducer.appendChild(e); + // update the title clips to use the new MLT kdenlivetitle producer + QDomNodeList kproducerNodes = m_doc.elementsByTagName("kdenlive_producer"); + for (int i = 0; i < kproducerNodes.count(); ++i) { + QDomElement kproducer = kproducerNodes.at(i).toElement(); + if (kproducer.attribute("type").toInt() == TEXT) { + QString data = kproducer.attribute("xmldata"); + QString datafile = kproducer.attribute("resource"); + if (!datafile.endsWith(".kdenlivetitle")) { + datafile = QString(); + kproducer.setAttribute("resource", QString()); + } + QString id = kproducer.attribute("id"); + QDomNodeList mltproducers = m_doc.elementsByTagName("producer"); + bool foundData = false; + bool foundResource = false; + bool foundService = false; + for (int j = 0; j < mltproducers.count(); j++) { + QDomElement wproducer = mltproducers.at(j).toElement(); + if (wproducer.attribute("id") == id) { + QDomNodeList props = wproducer.childNodes(); + for (int k = 0; k < props.count(); k++) { + if (props.at(k).toElement().attribute("name") == "xmldata") { + props.at(k).firstChild().setNodeValue(data); + foundData = true; + } else if (props.at(k).toElement().attribute("name") == "mlt_service") { + props.at(k).firstChild().setNodeValue("kdenlivetitle"); + foundService = true; + } else if (props.at(k).toElement().attribute("name") == "resource") { + props.at(k).firstChild().setNodeValue(datafile); + foundResource = true; } - break; } + if (!foundData) { + QDomElement e = m_doc.createElement("property"); + e.setAttribute("name", "xmldata"); + QDomText value = m_doc.createTextNode(data); + e.appendChild(value); + wproducer.appendChild(e); + } + if (!foundService) { + QDomElement e = m_doc.createElement("property"); + e.setAttribute("name", "mlt_service"); + QDomText value = m_doc.createTextNode("kdenlivetitle"); + e.appendChild(value); + wproducer.appendChild(e); + } + if (!foundResource) { + QDomElement e = m_doc.createElement("property"); + e.setAttribute("name", "resource"); + QDomText value = m_doc.createTextNode(datafile); + e.appendChild(value); + wproducer.appendChild(e); + } + break; } } } } + } // The document has been converted: mark it as modified diff --git a/src/recmonitor.cpp b/src/recmonitor.cpp index ddfed565..84a7ecf7 100644 --- a/src/recmonitor.cpp +++ b/src/recmonitor.cpp @@ -589,7 +589,7 @@ void RecMonitor::slotProcessStatus(QProcess::ProcessState status) else video_frame->setPixmap(mergeSideBySide(KIcon("video-display").pixmap(QSize(50, 50)), i18n("Press record button\nto start screen capture\nFiles will be saved in:\n%1", KdenliveSettings::capturefolder()))); } m_isCapturing = false; - + #if KDE_IS_VERSION(4,2,0) m_spaceTimer.stop(); // update free space info diff --git a/src/trackview.cpp b/src/trackview.cpp index c89075c8..c18b1678 100644 --- a/src/trackview.cpp +++ b/src/trackview.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -241,7 +242,6 @@ void TrackView::parseDocument(QDomDocument doc) p = playlists.item(j).toElement(); if (p.attribute("id") == playlist_name) break; } - int black_clips = p.childNodes().count(); pos--; } } @@ -385,6 +385,18 @@ void TrackView::parseDocument(QDomDocument doc) slotRebuildTrackHeaders(); if (!m_documentErrors.isNull()) KMessageBox::sorry(this, m_documentErrors); + if (infoXml.hasAttribute("upgraded")) { + // Our document was upgraded, create a backup copy just in case + QString baseFile = m_doc->url().path().section(".kdenlive", 0, 0); + int ct = 0; + QString backupFile = baseFile + "_backup" + QString::number(ct) + ".kdenlive"; + while (QFile::exists(backupFile)) { + ct++; + backupFile = baseFile + "_backup" + QString::number(ct) + ".kdenlive"; + } + if (KIO::NetAccess::file_copy(m_doc->url(), KUrl(backupFile), this)) KMessageBox::information(this, i18n("Your project file was upgraded to the latest Kdenlive document version.\n To make sure you don't loose data, a backup copy called: %1 was created.", backupFile)); + else KMessageBox::information(this, i18n("Your project file was upgraded to the latest Kdenlive document version, it was not possible to create a backup copy.", backupFile)); + } //m_trackview->setCursorPos(cursorPos); //m_scrollBox->setGeometry(0, 0, 300 * zoomFactor(), m_scrollArea->height()); }