X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Feffectslist.cpp;h=bd71efb077e1104547c87b2bbf6b87de3fc5ac8a;hb=f9394be680a8ac3c2ff8e39c9d8439eae5b55acc;hp=490f2f39b82ad7ad424fa2f997bdc49dbed645a9;hpb=9907bf2f3763c46da5543e39b34f6c22d578af8f;p=kdenlive diff --git a/src/effectslist.cpp b/src/effectslist.cpp index 490f2f39..bd71efb0 100644 --- a/src/effectslist.cpp +++ b/src/effectslist.cpp @@ -150,6 +150,17 @@ bool EffectsList::hasKeyFrames(QDomElement effect) return false; } +// static +bool EffectsList::hasSimpleKeyFrames(QDomElement effect) +{ + QDomNodeList params = effect.elementsByTagName("parameter"); + for (int i = 0; i < params.count(); i++) { + QDomElement e = params.item(i).toElement(); + if (e.attribute("type") == "simplekeyframe") return true; + } + return false; +} + void EffectsList::clone(const EffectsList original) { setContent(original.toString()); @@ -232,27 +243,28 @@ bool EffectsList::isEmpty() const const QDomElement EffectsList::at(int ix) const { QDomNodeList effects = m_baseElement.childNodes(); - if (ix >= effects.count()) return QDomElement(); + if (ix < 0 || ix >= effects.count()) return QDomElement(); return effects.at(ix).toElement(); } void EffectsList::removeAt(int ix) { QDomNodeList effects = m_baseElement.childNodes(); - if (ix >= effects.count()) return; + if (ix < 0 || ix >= effects.count()) return; m_baseElement.removeChild(effects.at(ix)); } QDomElement EffectsList::item(int ix) { QDomNodeList effects = m_baseElement.childNodes(); - if (ix >= effects.count()) return QDomElement(); + if (ix < 0 || ix >= effects.count()) return QDomElement(); return effects.at(ix).toElement(); } void EffectsList::insert(int ix, QDomElement effect) { QDomNodeList effects = m_baseElement.childNodes(); + if (ix < 0) ix = 0; if (ix >= effects.count()) m_baseElement.appendChild(importNode(effect, true)); else m_baseElement.insertBefore(importNode(effect, true), effects.at(ix)); } @@ -260,6 +272,7 @@ void EffectsList::insert(int ix, QDomElement effect) void EffectsList::replace(int ix, QDomElement effect) { QDomNodeList effects = m_baseElement.childNodes(); + if (ix < 0) ix = 0; if (ix < effects.count()) m_baseElement.removeChild(effects.at(ix)); if (ix == effects.count()) m_baseElement.appendChild(importNode(effect, true)); else m_baseElement.insertBefore(importNode(effect, true), effects.at(ix));