X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fediteffectcommand.cpp;h=a8158bfe50028d880fd96366cfb27045075cde03;hb=3f928c7073780439f63f1fb5378ae144c84e735b;hp=8e3652369bdac4fcfd612e092e7413ad7043d03a;hpb=69fc8364266f9668d1c77ce09afbbf3b7fec8492;p=kdenlive diff --git a/src/editeffectcommand.cpp b/src/editeffectcommand.cpp index 8e365236..a8158bfe 100644 --- a/src/editeffectcommand.cpp +++ b/src/editeffectcommand.cpp @@ -17,28 +17,57 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#include #include "editeffectcommand.h" +#include "customtrackview.h" -EditEffectCommand::EditEffectCommand(CustomTrackView *view, const int track, GenTime pos, QDomElement oldeffect, QDomElement effect, bool doIt) - : m_view(view), m_track(track), m_pos(pos), m_oldeffect(oldeffect), m_doIt(doIt) { - m_effect = effect.cloneNode().toElement(); - setText(i18n("Edit effect")); - } +#include +EditEffectCommand::EditEffectCommand(CustomTrackView *view, const int track, GenTime pos, QDomElement oldeffect, QDomElement effect, int stackPos, bool doIt) : + QUndoCommand(), + m_view(view), + m_track(track), + m_oldeffect(oldeffect), + m_pos(pos), + m_stackPos(stackPos), + m_doIt(doIt) +{ + m_effect = effect.cloneNode().toElement(); + QString effectName; + QDomNode namenode = effect.elementsByTagName("name").item(0); + if (!namenode.isNull()) effectName = i18n(namenode.toElement().text().toUtf8().data()); + else effectName = i18n("effect"); + setText(i18n("Edit effect %1", effectName)); +} -// virtual +// virtual +int EditEffectCommand::id() const +{ + return 1; +} + +// 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; + m_effect = static_cast(other)->m_effect; + return true; +} + +// virtual void EditEffectCommand::undo() { -kDebug()<<"---- undoing action"; - m_view->updateEffect(m_track, m_pos, m_oldeffect); + kDebug() << "---- undoing action"; + m_view->updateEffect(m_track, m_pos, m_oldeffect, m_stackPos, false); } -// virtual +// virtual void EditEffectCommand::redo() { -kDebug()<<"---- redoing action"; - m_view->updateEffect(m_track, m_pos, m_effect); + kDebug() << "---- redoing action"; + m_view->updateEffect(m_track, m_pos, m_effect, m_stackPos, m_doIt); + m_doIt = false; } -#include "editeffectcommand.moc" +