]> git.sesse.net Git - kdenlive/commitdiff
Fix insertion of track in last position (after last track in timeline):
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 20 Apr 2009 20:14:18 +0000 (20:14 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 20 Apr 2009 20:14:18 +0000 (20:14 +0000)
http://www.kdenlive.org/mantis/view.php?id=780

svn path=/trunk/kdenlive/; revision=3326

src/customtrackview.cpp
src/renderer.cpp

index a3b903744ed33116c48d23a9a01b16ad4ae75f1f..4058fe016ec079be15ca5c54ceea60451db5036e 100644 (file)
@@ -1704,8 +1704,10 @@ int CustomTrackView::duration() const
 
 void CustomTrackView::addTrack(TrackInfo type, int ix)
 {
-    if (ix == -1) m_document->insertTrack(ix, type);
-    else {
+    if (ix == -1 || ix == m_document->tracksCount()) {
+        m_document->insertTrack(ix, type);
+        m_document->renderer()->mltInsertTrack(1, type.type == VIDEOTRACK);
+    } else {
         m_document->insertTrack(m_document->tracksCount() - ix, type);
         // insert track in MLT playlist
         m_document->renderer()->mltInsertTrack(m_document->tracksCount() - ix, type.type == VIDEOTRACK);
index 68b522b4774aaf5b4774f5061c5b1a398a1657ef..6893ef5a8cfae6b4b19dd298c340a3690a5b9954 100644 (file)
@@ -2927,9 +2927,13 @@ void Render::mltInsertTrack(int ix, bool videoTrack)
 
     Mlt::Tractor tractor(service);
 
-    Mlt::Playlist playlist;// = new Mlt::Playlist();
+    Mlt::Playlist playlist;
     int ct = tractor.count();
-    // kDebug() << "// TRACK INSERT: " << ix << ", MAX: " << ct;
+    if (ix > ct) {
+        kDebug() << "// ERROR, TRYING TO insert TRACK " << ix << ", max: " << ct;
+        ix = ct;
+    }
+
     int pos = ix;
     if (pos < ct) {
         Mlt::Producer *prodToMove = new Mlt::Producer(tractor.track(pos));