[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdenlive/Applications/16.12] src/timeline: Fix fadeouts re-appearing on clip cut+resize
From:       Vincent Pinon <null () kde ! org>
Date:       2017-02-08 3:54:44
Message-ID: E1cbJLA-000399-DA () code ! kde ! org
[Download RAW message or body]

Git commit a5490e5609d3676ec6cf12d9013d4e6854347171 by Vincent Pinon.
Committed on 08/02/2017 at 03:53.
Pushed by vpinon into branch 'Applications/16.12'.

Fix fadeouts re-appearing on clip cut+resize

M  +13   -4    src/timeline/track.cpp

https://commits.kde.org/kdenlive/a5490e5609d3676ec6cf12d9013d4e6854347171

diff --git a/src/timeline/track.cpp b/src/timeline/track.cpp
index 3d1e555e5..1f7b8d888 100644
--- a/src/timeline/track.cpp
+++ b/src/timeline/track.cpp
@@ -274,12 +274,21 @@ bool Track::cut(qreal t)
         return false;
     }
     m_playlist.unlock();
-    QScopedPointer<Mlt::Producer> clip1(m_playlist.get_clip(index + 1));
-    QScopedPointer<Mlt::Producer> clip2(m_playlist.get_clip(index));
+    QScopedPointer<Mlt::Producer> clip1(m_playlist.get_clip(index));
+    QScopedPointer<Mlt::Producer> clip2(m_playlist.get_clip(index + 1));
     qDebug()<<"CLIP CUT ID: "<<clip1->get("id")<<" / "<<clip1->parent().get("id");
-    Clip (*clip1).addEffects(*clip2, true);
+    Clip (*clip2).addEffects(*clip1, true);
+    for(int i = 0; i < clip1->filter_count(); ++i) {
+        QString effectId = clip1->filter(i)->get("kdenlive_id");
+        if (effectId == "fadeout" || effectId == "fade_to_black") {
+            Mlt::Filter *f = clip1->filter(i);
+            clip1->detach(*f);
+            delete f;
+            --i;
+        }
+    }
     // adjust filters in/out
-    Clip (*clip2).adjustEffectsLength();
+    Clip (*clip1).adjustEffectsLength();
     return true;
 }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic