]> git.sesse.net Git - kdenlive/blobdiff - src/editeffectcommand.cpp
Fix crash when creating new project
[kdenlive] / src / editeffectcommand.cpp
index 22817750a81a5e94a6ef59540199af1a4e18d216..b6a98145f2c0ab8605a3a859edafd30e5e9519b6 100644 (file)
 
 #include <KLocale>
 
-EditEffectCommand::EditEffectCommand(CustomTrackView *view, const int track, GenTime pos, QDomElement oldeffect, QDomElement effect, int stackPos, bool doIt)
-        : m_view(view), m_track(track), m_pos(pos), m_oldeffect(oldeffect), m_stackPos(stackPos), m_doIt(doIt)
+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)
 {
-    m_effect = effect.cloneNode().toElement();
     QString effectName;
-    QDomNode namenode = effect.elementsByTagName("name").item(0);
-    if (!namenode.isNull()) effectName = i18n(namenode.toElement().text().toUtf8().data());
+    QDomElement namenode = effect.firstChildElement("name");
+    if (!namenode.isNull()) effectName = i18n(namenode.text().toUtf8().data());
     else effectName = i18n("effect");
     setText(i18n("Edit effect %1", effectName));
 }
@@ -46,20 +52,18 @@ bool EditEffectCommand::mergeWith(const QUndoCommand * other)
     if (other->id() != id()) return false;
     if (m_track != static_cast<const EditEffectCommand*>(other)->m_track) return false;
     if (m_pos != static_cast<const EditEffectCommand*>(other)->m_pos) return false;
-    m_effect = static_cast<const EditEffectCommand*>(other)->m_effect;
+    m_effect = static_cast<const EditEffectCommand*>(other)->m_effect.cloneNode().toElement();
     return true;
 }
 
 // virtual
 void EditEffectCommand::undo()
 {
-    kDebug() << "----  undoing action";
     m_view->updateEffect(m_track, m_pos, m_oldeffect, m_stackPos, false);
 }
 // virtual
 void EditEffectCommand::redo()
 {
-    kDebug() << "----  redoing action";
     m_view->updateEffect(m_track, m_pos, m_effect, m_stackPos, m_doIt);
     m_doIt = false;
 }