]> git.sesse.net Git - kdenlive/blobdiff - src/clipitem.cpp
Fix unnecessary refresh of effect stack, set effect param description as tooltip
[kdenlive] / src / clipitem.cpp
index aa86d6f284b2a0f23976a84f0ed673cf26a3e940..d5372fda6e2eea88558e147ff63db60ad1ac46f9 100644 (file)
@@ -212,7 +212,7 @@ void ClipItem::setEffectList(const EffectsList effectList)
             else if (fade < 0)
                 m_endFade = -fade;
         }
-        setSelectedEffect(0);
+        setSelectedEffect(1);
     }
 }
 
@@ -261,7 +261,7 @@ void ClipItem::initEffect(QDomElement effect, int diff, int offset)
         if (e.attribute("type") == "keyframe" || e.attribute("type") == "simplekeyframe") {
            if (e.attribute("keyframes").isEmpty()) {
                // Effect has a keyframe type parameter, we need to set the values
-               e.setAttribute("keyframes", QString::number(cropStart().frames(m_fps)) + ':' + e.attribute("default"));
+               e.setAttribute("keyframes", QString::number((int) cropStart().frames(m_fps)) + ':' + e.attribute("default"));
            }
            else if (offset != 0) {
                // adjust keyframes to this clip
@@ -272,8 +272,8 @@ void ClipItem::initEffect(QDomElement effect, int diff, int offset)
 
         if (e.attribute("type") == "geometry" && !e.hasAttribute("fixed")) {
             // Effects with a geometry parameter need to sync in / out with parent clip
-           effect.setAttribute("in", QString::number(cropStart().frames(m_fps)));
-           effect.setAttribute("out", QString::number((cropStart() + cropDuration()).frames(m_fps) - 1));
+           effect.setAttribute("in", QString::number((int) cropStart().frames(m_fps)));
+           effect.setAttribute("out", QString::number((int) (cropStart() + cropDuration()).frames(m_fps) - 1));
            effect.setAttribute("_sync_in_out", "1");
        }
     }
@@ -467,7 +467,7 @@ void ClipItem::setSelectedEffect(const int ix)
         QDomNodeList params = effect.elementsByTagName("parameter");
         for (int i = 0; i < params.count(); i++) {
             QDomElement e = params.item(i).toElement();
-            if (!e.isNull() && (e.attribute("type") == "keyframe" || e.attribute("type") == "simplekeyframe") && e.attribute("intimeline") == "1") {
+            if (!e.isNull() && (e.attribute("type") == "keyframe" || e.attribute("type") == "simplekeyframe") && (!e.hasAttribute("intimeline") || e.attribute("intimeline") == "1")) {
                 m_keyframes.clear();
                 m_limitedKeyFrames = e.attribute("type") == "keyframe";
                 m_visibleParam = i;
@@ -1659,8 +1659,8 @@ EffectsParameterList ClipItem::addEffect(QDomElement effect, bool /*animate*/)
         }
     }
     if (needInOutSync) {
-        parameters.addParam("in", QString::number(cropStart().frames(m_fps)));
-        parameters.addParam("out", QString::number((cropStart() + cropDuration()).frames(m_fps) - 1));
+        parameters.addParam("in", QString::number((int) cropStart().frames(m_fps)));
+        parameters.addParam("out", QString::number((int) (cropStart() + cropDuration()).frames(m_fps) - 1));
         parameters.addParam("_sync_in_out", "1");
     }
     m_effectNames = m_effectList.effectNames().join(" / ");
@@ -1668,7 +1668,7 @@ EffectsParameterList ClipItem::addEffect(QDomElement effect, bool /*animate*/)
     else if (fade < 0) m_endFade = -fade;
 
     if (m_selectedEffect == -1) {
-        setSelectedEffect(0);
+        setSelectedEffect(1);
     } else if (m_selectedEffect == ix - 1) setSelectedEffect(m_selectedEffect);
     if (needRepaint) update(boundingRect());
     /*if (animate) {
@@ -1800,7 +1800,7 @@ void ClipItem::dropEvent(QGraphicsSceneDragDropEvent * event)
            e.removeAttribute("kdenlive_ix");
        }
         CustomTrackView *view = (CustomTrackView *) scene()->views()[0];
-        if (view) view->slotAddEffect(e, m_info.startPos, track());
+        if (view) view->slotDropEffect(this, e, m_info.startPos, track());
     }
     else return;
 }
@@ -2002,7 +2002,7 @@ QMap<int, QDomElement> ClipItem::adjustEffectsToDuration(int width, int height,
                 if (in < cropStart().frames(m_fps)) {
                     if (!effects.contains(i))
                         effects[i] = effect.cloneNode().toElement();
-                    EffectsList::setParameter(effect, "in", QString::number(cropStart().frames(m_fps)));
+                    EffectsList::setParameter(effect, "in", QString::number((int) cropStart().frames(m_fps)));
                 }
                 if (effects.contains(i))
                     setFadeOut(out - in);