]> git.sesse.net Git - kdenlive/commitdiff
less flicker on effect stack changes
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 22 Feb 2008 19:55:39 +0000 (19:55 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Fri, 22 Feb 2008 19:55:39 +0000 (19:55 +0000)
svn path=/branches/KDE4/; revision=1908

src/customtrackview.cpp
src/renderer.cpp
src/renderer.h

index a8f98a36355f168df56818d415b0c5d1444a3b3e..a70ec9d6c392613c46c03f1e583070281c2ca28d 100644 (file)
@@ -333,10 +333,11 @@ void CustomTrackView::slotRefreshEffects(ClipItem *clip)
 {
   int track = m_tracksCount - clip->track();
   GenTime pos = GenTime(clip->startPos(), m_document->fps());
-  m_document->renderer()->mltRemoveEffect(track, pos, "-1");
+  m_document->renderer()->mltRemoveEffect(track, pos, "-1", false);
   for (int i = 0; i < clip->effectsCount(); i++) {
-    m_document->renderer()->mltAddEffect(track, pos, clip->getEffectArgs(clip->effectAt(i)));
+    m_document->renderer()->mltAddEffect(track, pos, clip->getEffectArgs(clip->effectAt(i)), false);
   }
+  m_document->renderer()->doRefresh();
 }
 
 void CustomTrackView::addEffect(int track, GenTime pos, QDomElement effect)
index 93719a3af60c6e57e181c1f715114797aef6a8b3..ee7f7b8377703b815c8af2443db9449b5732bad5 100644 (file)
@@ -1004,7 +1004,7 @@ void Render::mltRemoveClip(int track, GenTime position)
     m_isBlocked = false;
 }
 
-void Render::mltRemoveEffect(int track, GenTime position, QString index)
+void Render::mltRemoveEffect(int track, GenTime position, QString index, bool doRefresh)
 {
 
     Mlt::Service service(m_mltProducer->parent().get_service());
@@ -1034,11 +1034,11 @@ void Render::mltRemoveEffect(int track, GenTime position, QString index)
            filter = clipService.filter( ct );
        }
     m_isBlocked = false;
-    refresh();
+    if (doRefresh) refresh();
 }
 
 
-void Render::mltAddEffect(int track, GenTime position, QMap <QString, QString> args)
+void Render::mltAddEffect(int track, GenTime position, QMap <QString, QString> args, bool doRefresh)
 {
     Mlt::Service service(m_mltProducer->parent().get_service());
     Mlt::Tractor tractor(service);
@@ -1095,7 +1095,7 @@ void Render::mltAddEffect(int track, GenTime position, QMap <QString, QString> a
     clipService.attach(*filter);
     delete[] filterId;
     m_isBlocked = false;
-    refresh();
+    if (doRefresh) refresh();
 
 }
 
index b2cdaa7bcf17d8c0f859ab4b3ce527b76a811902..a995c2a112bbacdb1ea8d258bd36a39226e31d8b 100644 (file)
@@ -156,8 +156,8 @@ class Render:public QObject {
     void mltMoveClip(int startTrack, int endTrack, GenTime pos, GenTime moveStart);
     void mltMoveClip(int startTrack, int endTrack, int pos, int moveStart);
     void mltRemoveClip(int track, GenTime position);
-    void mltRemoveEffect(int track, GenTime position, QString index);
-    void mltAddEffect(int track, GenTime position, QMap <QString, QString> args);
+    void mltRemoveEffect(int track, GenTime position, QString index, bool doRefresh = true);
+    void mltAddEffect(int track, GenTime position, QMap <QString, QString> args, bool doRefresh = true);
     void mltEditEffect(int track, GenTime position, QMap <QString, QString> args);
     void mltChangeTrackState(int track, bool mute, bool blind);
     void mltMoveTransition(QString type, int startTrack, int trackOffset, GenTime oldIn, GenTime oldOut, GenTime newIn, GenTime newOut);