X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcommands%2Fediteffectcommand.cpp;h=d49691229b5e19eb58b2c26d71928ecc0af50236;hb=ac8c99168f151e2f351043d13500741ce1ca8966;hp=b6a98145f2c0ab8605a3a859edafd30e5e9519b6;hpb=634e5785b160bbd16d73a7f9b149236b2fd24fed;p=kdenlive diff --git a/src/commands/editeffectcommand.cpp b/src/commands/editeffectcommand.cpp index b6a98145..d4969122 100644 --- a/src/commands/editeffectcommand.cpp +++ b/src/commands/editeffectcommand.cpp @@ -20,23 +20,26 @@ #include "editeffectcommand.h" #include "customtrackview.h" +#include +#include -#include - -EditEffectCommand::EditEffectCommand(CustomTrackView *view, const int track, GenTime pos, QDomElement oldeffect, QDomElement effect, int stackPos, bool doIt, QUndoCommand *parent) : - QUndoCommand(parent), - m_view(view), - m_track(track), - m_oldeffect(oldeffect), - m_effect(effect), - m_pos(pos), - m_stackPos(stackPos), - m_doIt(doIt) +EditEffectCommand::EditEffectCommand(CustomTrackView *view, const int track, const GenTime &pos, const QDomElement &oldeffect, const QDomElement &effect, int stackPos, bool refreshEffectStack, bool doIt, QUndoCommand *parent) : + QUndoCommand(parent), + m_view(view), + m_track(track), + m_oldeffect(oldeffect), + m_effect(effect), + m_pos(pos), + m_stackPos(stackPos), + m_doIt(doIt), + m_refreshEffectStack(refreshEffectStack) { QString effectName; - QDomElement namenode = effect.firstChildElement("name"); - if (!namenode.isNull()) effectName = i18n(namenode.text().toUtf8().data()); - else effectName = i18n("effect"); + QDomElement namenode = effect.firstChildElement(QLatin1String("name")); + if (!namenode.isNull()) + effectName = i18n(namenode.text().toUtf8().data()); + else + effectName = i18n("effect"); setText(i18n("Edit effect %1", effectName)); } @@ -49,9 +52,14 @@ int EditEffectCommand::id() const // virtual bool EditEffectCommand::mergeWith(const QUndoCommand * other) { - if (other->id() != id()) return false; - if (m_track != static_cast(other)->m_track) return false; - if (m_pos != static_cast(other)->m_pos) return false; + if (other->id() != id()) + return false; + if (m_track != static_cast(other)->m_track) + return false; + if (m_stackPos != static_cast(other)->m_stackPos) + return false; + if (m_pos != static_cast(other)->m_pos) + return false; m_effect = static_cast(other)->m_effect.cloneNode().toElement(); return true; } @@ -59,13 +67,16 @@ bool EditEffectCommand::mergeWith(const QUndoCommand * other) // virtual void EditEffectCommand::undo() { - m_view->updateEffect(m_track, m_pos, m_oldeffect, m_stackPos, false); + m_view->updateEffect(m_track, m_pos, m_oldeffect, true); } // virtual void EditEffectCommand::redo() { - m_view->updateEffect(m_track, m_pos, m_effect, m_stackPos, m_doIt); - m_doIt = false; + if (m_doIt) { + m_view->updateEffect(m_track, m_pos, m_effect, m_refreshEffectStack); + } + m_doIt = true; + m_refreshEffectStack = true; }