]> git.sesse.net Git - kdenlive/commitdiff
reindent + create a backup copy of the document if we upgraded the document version
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 1 Oct 2009 15:18:27 +0000 (15:18 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 1 Oct 2009 15:18:27 +0000 (15:18 +0000)
svn path=/trunk/kdenlive/; revision=3974

src/cliptranscode.cpp
src/customtrackview.cpp
src/documentvalidator.cpp
src/recmonitor.cpp
src/trackview.cpp

index 6b431fc94bd71da377a1df5dfdd3437114788cfb..e81b4b5479f417e90bf6d12c94633d927332cd37 100644 (file)
@@ -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;
index 1a831846ad33e444aeba4fc03355b88ed032a5e4..b90c587ecffa8169746f71999baeed87bd325a28 100644 (file)
@@ -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");
index 614fa1cab5095de4aa21fb4f3d0c8d4eca2733b9..6aad1ae41a0ba8a7385ed8c778b38ccc05b2896c 100644 (file)
@@ -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;
     }
+
     // <kdenlivedoc />
     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
index ddfed5652e3958608344288cb3319e4587e8eb39..84a7ecf728e3a5eb6f5916bb24556e9e4f456f6b 100644 (file)
@@ -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
index c89075c80a1ea08898e25f84827e0c2add6160ce..c18b1678baf96c9b0b5fe3885d32271bde75bc45 100644 (file)
@@ -34,6 +34,7 @@
 
 #include <KDebug>
 #include <KMessageBox>
+#include <KIO/NetAccess>
 
 #include <QScrollBar>
 #include <QInputDialog>
@@ -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());
 }