]> git.sesse.net Git - kdenlive/blobdiff - src/customtrackview.cpp
Implement drag & drop of effects in effect stack
[kdenlive] / src / customtrackview.cpp
index 94de517ac33829b30c8996aa2cd7c1e16a9ff12a..c6abfabcd8616db1fd0fe62ca3433197f17ccd2a 100644 (file)
@@ -1999,10 +1999,14 @@ void CustomTrackView::moveEffect(int track, GenTime pos, int oldPos, int newPos)
     if (newPos > clip->effectsCount()) {
        newPos = clip->effectsCount();
     }
-    if (clip && !clip->effectAt(newPos ).isNull() && !clip->effectAt(oldPos).isNull()) {
+    if (clip) {
         QDomElement act = clip->effectAt(newPos);
         QDomElement before = clip->effectAt(oldPos);
-        clip->moveEffect(act, oldPos);
+       if (act.isNull() || before.isNull()) {
+           emit displayMessage(i18n("Cannot move effect"), ErrorMessage);
+           return;
+       }
+        //clip->moveEffect(act, oldPos);
         clip->moveEffect(before, newPos);
         // special case: speed effect, which is a pseudo-effect, not appearing in MLT's effects
         if (act.attribute("id") == "speed") {
@@ -2010,7 +2014,7 @@ void CustomTrackView::moveEffect(int track, GenTime pos, int oldPos, int newPos)
         } else if (before.attribute("id") == "speed") {
             m_document->renderer()->mltUpdateEffectPosition(track, pos, newPos, oldPos);
         } else m_document->renderer()->mltMoveEffect(track, pos, oldPos, newPos);
-        emit clipItemSelected(clip, newPos - 1);
+        emit clipItemSelected(clip, newPos);
         setDocumentModified();
     } else emit displayMessage(i18n("Cannot move effect"), ErrorMessage);
 }