]> git.sesse.net Git - kdenlive/blobdiff - src/addtimelineclipcommand.cpp
First steps to implement 3 points editing (Using v to insert-overwrite)
[kdenlive] / src / addtimelineclipcommand.cpp
index 394a7aff07bfcd0030fae4831001804ff8b3ab5a..3a13ad54dc26844641b578695153a695a62e0379 100644 (file)
 
 #include <KLocale>
 
-AddTimelineClipCommand::AddTimelineClipCommand(CustomTrackView *view, QDomElement xml, const QString &clipId, ItemInfo info, EffectsList effects, bool doIt, bool doRemove, QUndoCommand * parent) : QUndoCommand(parent), m_view(view), m_xml(xml), m_clipId(clipId), m_clipInfo(info), m_effects(effects),  m_doIt(doIt), m_remove(doRemove) {
+AddTimelineClipCommand::AddTimelineClipCommand(CustomTrackView *view, QDomElement xml, const QString &clipId, ItemInfo info, EffectsList effects, bool overwrite, bool push, bool doIt, bool doRemove, QUndoCommand * parent) :
+        QUndoCommand(parent),
+        m_view(view),
+        m_clipInfo(info),
+        m_effects(effects),
+        m_clipId(clipId),
+        m_xml(xml),
+        m_doIt(doIt),
+        m_remove(doRemove),
+        m_overwrite(overwrite),
+        m_push(push)
+{
     if (!m_remove) setText(i18n("Add timeline clip"));
     else setText(i18n("Delete timeline clip"));
+    if (parent) {
+        // command has a parent, so there are several operations ongoing, do not refresh monitor
+        m_refresh = false;
+    } else m_refresh = true;
 }
 
 
 // virtual
-void AddTimelineClipCommand::undo() {
-    if (!m_remove) m_view->deleteClip(m_clipInfo);
-    else m_view->addClip(m_xml, m_clipId, m_clipInfo, m_effects);
+void AddTimelineClipCommand::undo()
+{
+    if (!m_remove) m_view->deleteClip(m_clipInfo, m_refresh);
+    else m_view->addClip(m_xml, m_clipId, m_clipInfo, m_effects, m_overwrite, m_push, m_refresh);
 }
 // virtual
-void AddTimelineClipCommand::redo() {
+void AddTimelineClipCommand::redo()
+{
     if (m_doIt) {
-        if (!m_remove) m_view->addClip(m_xml, m_clipId, m_clipInfo, m_effects);
-        else m_view->deleteClip(m_clipInfo);
+        if (!m_remove) m_view->addClip(m_xml, m_clipId, m_clipInfo, m_effects, m_overwrite, m_push, m_refresh);
+        else m_view->deleteClip(m_clipInfo, m_refresh);
     }
     m_doIt = true;
 }