]> git.sesse.net Git - kdenlive/commitdiff
Fix moving of track effects
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 26 Mar 2012 23:08:59 +0000 (01:08 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 26 Mar 2012 23:08:59 +0000 (01:08 +0200)
src/customtrackview.cpp
src/effectstack/collapsibleeffect.cpp
src/kdenlivedoc.cpp

index 92cc78f2b62ed59d6cefa01dd93df352a16a51de..61fb07b85694fa73b4b7b8c53b9edf1bb360708d 100644 (file)
@@ -1991,9 +1991,8 @@ void CustomTrackView::moveEffect(int track, GenTime pos, int oldPos, int newPos)
        }
         QDomElement act = m_document->getTrackEffect(m_document->tracksCount() - track - 1, newPos);
         QDomElement before = m_document->getTrackEffect(m_document->tracksCount() - track - 1, oldPos);
-
         if (!act.isNull() && !before.isNull()) {
-            m_document->setTrackEffect(m_document->tracksCount() - track - 1, oldPos, act);
+            //m_document->setTrackEffect(m_document->tracksCount() - track - 1, oldPos, act);
             m_document->setTrackEffect(m_document->tracksCount() - track - 1, newPos, before);
             m_document->renderer()->mltMoveEffect(m_document->tracksCount() - track, pos, oldPos, newPos);
             emit showTrackEffects(m_document->tracksCount() - track, m_document->trackInfoAt(m_document->tracksCount() - track - 1));
@@ -5776,6 +5775,7 @@ void CustomTrackView::slotInsertTrack(int ix)
         info.duration = 0;
         info.isMute = false;
         info.isLocked = false;
+       info.effectsList = EffectsList(true);
         if (d.video_track->isChecked()) {
             info.type = VIDEOTRACK;
             info.isBlind = false;
index 3c8b47b2e1d79d60d578adb7185298d3547b207c..831556d8083854b41459914058295bed83ba2a10 100644 (file)
@@ -596,7 +596,7 @@ void CollapsibleEffect::dropEvent(QDropEvent *event)
        QVBoxLayout *vbox = static_cast<QVBoxLayout *>(widgetFrame->layout());
        if (vbox == NULL) return;
        CollapsibleEffect *e = static_cast<CollapsibleEffect *>(vbox->itemAt(vbox->count() -1)->widget());
-       new_index = e->effectIndex() + 1;
+       new_index = e->effectIndex();
     }
     else {
        new_index = effectIndex();
index 530a1d1ee440d8184bfd458905ef24c9af70f7bc..54581a12124093ec22706a7174efa0a29153a912 100644 (file)
@@ -217,6 +217,7 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
                                         projectTrack.isBlind = e.attribute("blind").toInt();
                                         projectTrack.isLocked = e.attribute("locked").toInt();
                                         projectTrack.trackName = e.attribute("trackname");
+                                       projectTrack.effectsList = EffectsList(true);
                                         m_tracksList.append(projectTrack);
                                     }
                                 }
@@ -385,6 +386,7 @@ QDomDocument KdenliveDoc::createEmptyDocument(int videotracks, int audiotracks)
         audioTrack.isLocked = false;
         audioTrack.trackName = QString("Audio ") + QString::number(audiotracks - i);
         audioTrack.duration = 0;
+       audioTrack.effectsList = EffectsList(true);
         m_tracksList.append(audioTrack);
 
     }
@@ -396,6 +398,7 @@ QDomDocument KdenliveDoc::createEmptyDocument(int videotracks, int audiotracks)
         videoTrack.isLocked = false;
         videoTrack.trackName = QString("Video ") + QString::number(videotracks - i);
         videoTrack.duration = 0;
+       videoTrack.effectsList = EffectsList(true);
         m_tracksList.append(videoTrack);
     }
     return createEmptyDocument(m_tracksList);
@@ -1523,8 +1526,10 @@ void KdenliveDoc::setTrackEffect(int trackIndex, int effectIndex, QDomElement ef
         kDebug() << "Invalid effect index: " << effectIndex;
         return;
     }
+    m_tracksList[trackIndex].effectsList.removeAt(effect.attribute("kdenlive_ix").toInt());
     effect.setAttribute("kdenlive_ix", effectIndex);
-    m_tracksList[trackIndex].effectsList.updateEffect(effect);
+    m_tracksList[trackIndex].effectsList.insert(effect);
+    //m_tracksList[trackIndex].effectsList.updateEffect(effect);
 }
 
 const EffectsList KdenliveDoc::getTrackEffects(int ix)