]> git.sesse.net Git - kdenlive/commitdiff
Fix various effect dropping regressions
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 29 Mar 2012 22:23:25 +0000 (00:23 +0200)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Thu, 29 Mar 2012 22:23:25 +0000 (00:23 +0200)
src/clipitem.cpp
src/customtrackview.cpp
src/effectslist.cpp

index f1de5698f9aed2ed02f2a287451de6e9c860e071..fadf7ba5843896aa2ac865f5b386bd3d9d7ed3fe 100644 (file)
@@ -160,7 +160,7 @@ void ClipItem::setEffectList(const EffectsList effectList)
     m_effectNames = m_effectList.effectNames().join(" / ");
     if (!m_effectList.isEmpty()) {
         for (int i = 0; i < m_effectList.count(); i++) {
-           QDomElement effect = m_effectList.itemFromIndex(i + 1);
+           QDomElement effect = m_effectList.at(i);
             QString effectId = effect.attribute("id");
             // check if it is a fade effect
             QDomNodeList params = effect.elementsByTagName("parameter");
@@ -394,7 +394,7 @@ bool ClipItem::checkKeyFrames()
 
 void ClipItem::setKeyframes(const int ix, const QStringList keyframes)
 {
-    QDomElement effect = getEffectAt(ix);
+    QDomElement effect = m_effectList.at(ix);
     if (effect.attribute("disable") == "1") return;
     QLocale locale;
     QDomNodeList params = effect.elementsByTagName("parameter");
@@ -473,7 +473,7 @@ void ClipItem::setSelectedEffect(const int ix)
 QStringList ClipItem::keyframes(const int index)
 {
     QStringList result;
-    QDomElement effect = effectAt(index);
+    QDomElement effect = m_effectList.at(index);
     QDomNodeList params = effect.elementsByTagName("parameter");
 
     for (int i = 0; i < params.count(); i++) {
@@ -1367,7 +1367,7 @@ QDomElement ClipItem::effectAt(int ix) const
 
 QDomElement ClipItem::getEffectAt(int ix) const
 {
-    if (ix > m_effectList.count() || ix < 0) return QDomElement();
+    if (ix > m_effectList.count() || ix <= 0) return QDomElement();
     return m_effectList.itemFromIndex(ix);
 }
 
index 66daef02ddd0dec4abf0f16a01dab5641eb4fb9a..362305159191ac8715a576086afec63684dcf8c8 100644 (file)
@@ -5552,7 +5552,7 @@ void CustomTrackView::pasteClipEffects()
     for (int i = 0; i < clips.count(); ++i) {
         if (clips.at(i)->type() == AVWIDGET) {
             ClipItem *item = static_cast < ClipItem *>(clips.at(i));
-            for (int j = 0; j < clip->effectsCount(); j++) {
+            for (int j = 1; j <= clip->effectsCount(); j++) {
                 QDomElement eff = clip->effectAt(j);
                 if (eff.attribute("unique", "0") == "0" || item->hasEffect(eff.attribute("tag"), eff.attribute("id")) == -1) {
                     adjustKeyfames(clip->cropStart(), item->cropStart(), item->cropDuration(), eff);
index 276c748d0915f69482919d1988778555a2f81502..68706abb02dd2800852efe3f0b0152068e026a3f 100644 (file)
@@ -90,8 +90,8 @@ int EffectsList::hasEffect(const QString & tag, const QString & id) const
     for (int i = 0; i < effects.count(); i++) {
         QDomElement effect =  effects.at(i).toElement();
         if (!id.isEmpty()) {
-            if (effect.attribute("id") == id) return i;
-        } else if (!tag.isEmpty() && effect.attribute("tag") == tag) return i;
+            if (effect.attribute("id") == id) return effect.attribute("kdenlive_ix").toInt();
+        } else if (!tag.isEmpty() && effect.attribute("tag") == tag) return effect.attribute("kdenlive_ix").toInt();
     }
     return -1;
 }