]> git.sesse.net Git - kdenlive/blobdiff - src/customtrackview.h
First steps to implement 3 points editing (Using v to insert-overwrite)
[kdenlive] / src / customtrackview.h
index d2e85b61606a9bfe961184ca0a0d3695514fa5c8..e878e5959c1d50f1cf4e6cf16c1194de06ba4423 100644 (file)
 #include "docclipbase.h"
 #include "guide.h"
 #include "effectslist.h"
+#include "customtrackscene.h"
 
 class ClipItem;
 class AbstractClipItem;
 class AbstractGroupItem;
 class Transition;
-class CustomTrackScene;
 
 class CustomTrackView : public QGraphicsView
 {
@@ -59,7 +59,7 @@ public:
     /** move transition, startPos = (old start, old end), endPos = (new start, new end) */
     void moveTransition(const ItemInfo start, const ItemInfo end, bool m_refresh);
     void resizeClip(const ItemInfo start, const ItemInfo end, bool dontWorry = false);
-    void addClip(QDomElement xml, const QString &clipId, ItemInfo info, EffectsList list = EffectsList(), bool refresh = true);
+    void addClip(QDomElement xml, const QString &clipId, ItemInfo info, EffectsList list = EffectsList(), bool overwrite = false, bool push = false, bool refresh = true);
     void deleteClip(ItemInfo info, bool refresh = true);
     void slotDeleteClipMarker(const QString &comment, const QString &id, const GenTime &position);
     void slotDeleteAllClipMarkers(const QString &id);
@@ -84,7 +84,7 @@ public:
     void checkTrackHeight();
     //QList <TrackInfo> tracksList() const;
     void setTool(PROJECTTOOL tool);
-    void cutClip(ItemInfo info, GenTime cutTime, bool cut);
+    ClipItem *cutClip(ItemInfo info, GenTime cutTime, bool cut, bool execute = true);
     void slotSeekToPreviousSnap();
     void slotSeekToNextSnap();
     double getSnapPointForPos(double pos);
@@ -127,6 +127,9 @@ public:
     int selectedTrack() const;
     void selectClip(bool add, bool group = false);
     void selectTransition(bool add, bool group = false);
+    QStringList extractTransitionsLumas();
+    void setEditMode(EDITMODE mode);
+
 
 public slots:
     void setCursorPos(int pos, bool seek = true);
@@ -165,6 +168,7 @@ public slots:
     void slotTrackUp();
     void slotTrackDown();
     void slotSelectTrack(int ix);
+    void insertZoneOverwrite(QStringList data, int in);
 
 protected:
     virtual void drawBackground(QPainter * painter, const QRectF & rect);
@@ -261,7 +265,10 @@ private:
     /** Whether an item can be moved to a new position without colliding with similar items */
     bool itemCollision(AbstractClipItem *item, ItemInfo newPos);
     /** Selects all items in the scene rect, and sets ok to false if a group going over several tracks is found in it */
-    QList<QGraphicsItem *> checkForGroups(const QRectF &rect, bool &ok);
+    QList<QGraphicsItem *> checkForGroups(const QRectF &rect, bool *ok);
+    /** Adjust clips under another one when working in overwrite mode */
+    void adjustTimelineClips(EDITMODE mode, ClipItem *item, QUndoCommand *command);
+    void adjustTimelineTransitions(EDITMODE mode, Transition *item, QUndoCommand *command);
 
 private slots:
     void slotRefreshGuides();
@@ -270,6 +277,7 @@ private slots:
     void slotEditTimeLineGuide();
     void slotDeleteTimeLineGuide();
     void slotFetchNextThumbs();
+    void checkTrackSequence(int track);
 
 signals:
     void cursorMoved(int, int);