]> git.sesse.net Git - kdenlive/blobdiff - src/addtimelineclipcommand.cpp
Various fixes to improve general stability in Qt 4.5.2
[kdenlive] / src / addtimelineclipcommand.cpp
index de33fa997fd1945bbabfede279fdf9e4346691dc..7498fa181811f1f0caab6b7932bf3ee1647efa82 100644 (file)
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
  ***************************************************************************/
 
+
 #include "addtimelineclipcommand.h"
+#include "customtrackview.h"
 
-AddTimelineClipCommand::AddTimelineClipCommand(CustomTrackView *view, QDomElement xml, int track, int startpos, QRectF rect, int duration, bool doIt)
-         : m_view(view), m_xml(xml), m_clipTrack(track), m_clipPos(startpos), m_clipRect(rect), m_clipDuration(duration), m_doIt(doIt) {
-           setText(i18n("Add timeline clip"));
-        }
+#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_clipInfo(info),
+        m_effects(effects),
+        m_clipId(clipId),
+        m_xml(xml),
+        m_doIt(doIt),
+        m_remove(doRemove)
+{
+    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 
+
+// virtual
 void AddTimelineClipCommand::undo()
 {
-// kDebug()<<"----  undoing action";
-  m_doIt = true;
-  if (m_doIt) m_view->deleteClip(m_clipRect);
+    if (!m_remove) m_view->deleteClip(m_clipInfo, m_refresh);
+    else m_view->addClip(m_xml, m_clipId, m_clipInfo, m_effects, m_refresh);
 }
-// virtual 
+// virtual
 void AddTimelineClipCommand::redo()
 {
-  //kDebug()<<"----  redoing action";
-  if (m_doIt) m_view->addClip(m_xml, m_clipTrack, m_clipPos, m_clipRect, m_clipDuration);
-  m_doIt = true;
+    if (m_doIt) {
+        if (!m_remove) m_view->addClip(m_xml, m_clipId, m_clipInfo, m_effects, m_refresh);
+        else m_view->deleteClip(m_clipInfo, m_refresh);
+    }
+    m_doIt = true;
 }
 
-#include "addtimelineclipcommand.moc"
+