]> git.sesse.net Git - kdenlive/blobdiff - src/customtrackview.h
Copy effects when cutting or pasting a clip
[kdenlive] / src / customtrackview.h
index 2b85e14ce708ddfb187301fb573e99fceab23e9d..991936f3ca16d670a018af1127089f57ef8e3289 100644 (file)
@@ -31,6 +31,7 @@
 #include "kdenlivedoc.h"
 #include "docclipbase.h"
 #include "guide.h"
+#include "effectslist.h"
 
 class ClipItem;
 class AbstractClipItem;
@@ -54,11 +55,12 @@ public:
     /** move transition, startPos = (old start, old end), endPos = (new start, new end) */
     void moveTransition(const ItemInfo start, const ItemInfo end);
     void resizeClip(const ItemInfo start, const ItemInfo end);
-    void addClip(QDomElement xml, int clipId, ItemInfo info);
+    void addClip(QDomElement xml, int clipId, ItemInfo info, EffectsList list = EffectsList());
     void deleteClip(ItemInfo info);
     void slotAddClipMarker();
     void slotEditClipMarker();
     void slotDeleteClipMarker();
+    void slotDeleteAllClipMarkers();
     void addMarker(const int id, const GenTime &pos, const QString comment);
     void setScale(double scaleFactor);
     void deleteClip(int clipId);
@@ -83,12 +85,13 @@ public:
     void slotSeekToPreviousSnap();
     void slotSeekToNextSnap();
     double getSnapPointForPos(double pos);
-    QDomElement xmlInfo();
     void editKeyFrame(const GenTime pos, const int track, const int index, const QString keyframes);
     bool findString(const QString &text);
     bool findNextString(const QString &text);
     void initSearchStrings();
     void clearSearchStrings();
+    void clipStart();
+    void clipEnd();
 
 public slots:
     void setCursorPos(int pos, bool seek = true);
@@ -109,8 +112,13 @@ public slots:
     void slotAddClipMarker(int id, GenTime t, QString c);
     bool addGuide(const GenTime pos, const QString &comment);
     void slotAddGuide();
+    void slotEditGuide(CommentedTime guide);
+    void slotEditGuide();
     void slotDeleteGuide();
+    void slotDeleteAllGuides();
     void editGuide(const GenTime oldPos, const GenTime pos, const QString &comment);
+    void copyClip();
+    void pasteClip();
 
 protected:
     virtual void drawBackground(QPainter * painter, const QRectF & rect);
@@ -166,9 +174,21 @@ private:
     int m_findIndex;
     PROJECTTOOL m_tool;
     QCursor m_razorCursor;
+    /** list containing items currently copied in the timeline */
+    QList<AbstractClipItem *> m_copiedItems;
+    QList<AbstractClipItem *> m_selectedClipList;
+    /** Used to get the point in timeline where a context menu was opened */
+    QPoint m_menuPosition;
+
     /** Get the index of the video track that is just below current track */
     int getPreviousVideoTrack(int track);
     void updateClipFade(ClipItem * item, bool updateFadeOut = false);
+    bool canBePastedTo(ItemInfo info, int type) const;
+    bool canBePasted(QList<AbstractClipItem *> items, GenTime offset, int trackOffset) const;
+    bool canBeMoved(QList<AbstractClipItem *> items, GenTime offset, int trackOffset) const;
+
+private slots:
+    void slotRefreshGuides();
 
 signals:
     void cursorMoved(int, int);