]> git.sesse.net Git - kdenlive/commitdiff
Warn user and remove if transition is invalid when opening a document
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 21 Feb 2010 16:47:50 +0000 (16:47 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 21 Feb 2010 16:47:50 +0000 (16:47 +0000)
svn path=/trunk/kdenlive/; revision=4326

src/trackview.cpp

index f91abc35b871e51146332e79f8f1f5dab11dff43..5589d27444ccebfa4b57524b9e0c1df6c35fee05 100644 (file)
@@ -341,9 +341,10 @@ void TrackView::parseDocument(QDomDocument doc)
                     if (isWipeTransition) transitionId = "slide";
                 }
             }
+
             QDomElement base = MainWindow::transitions.getEffectByTag(mlt_service, transitionId).cloneNode().toElement();
 
-            for (int k = 0; k < transitionparams.count(); k++) {
+            if (!base.isNull()) for (int k = 0; k < transitionparams.count(); k++) {
                 p = transitionparams.item(k).toElement();
                 if (!p.isNull()) {
                     QString paramName = p.attribute("name");
@@ -380,9 +381,9 @@ void TrackView::parseDocument(QDomDocument doc)
             transitionInfo.track = m_projectTracks - 1 - b_track;
 
             //kDebug() << "///////////////   +++++++++++  ADDING TRANSITION ON TRACK: " << b_track << ", TOTAL TRKA: " << m_projectTracks;
-            if (transitionInfo.startPos >= transitionInfo.endPos) {
+            if (transitionInfo.startPos >= transitionInfo.endPos || base.isNull()) {
                 // invalid transition, remove it.
-                m_documentErrors.append(i18n("Removed invalid transition: %1", e.attribute("id")) + '\n');
+                m_documentErrors.append(i18n("Removed invalid transition: (%1, %2, %3)", e.attribute("id"), mlt_service, transitionId) + '\n');
                 kDebug() << "///// REMOVED INVALID TRANSITION: " << e.attribute("id");
                 tractor.removeChild(transitions.item(i));
                 i--;