X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcustomtrackview.h;h=1c3e33a91a9e27e318b146b0ee2bae49bd5e755a;hb=ffbd98f8303b09f3fd4f7cf2c74c20080c7fd115;hp=298b5a6c762fcacb4f8028eaa7f26f85ee2eecc8;hpb=cdd991d7dbc7b127322a247deafdcaa5e297452f;p=kdenlive diff --git a/src/customtrackview.h b/src/customtrackview.h index 298b5a6c..1c3e33a9 100644 --- a/src/customtrackview.h +++ b/src/customtrackview.h @@ -31,12 +31,12 @@ #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 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); @@ -124,6 +124,12 @@ public: void reloadTransitionLumas(); void updateProjectFps(); double fps() const; + int selectedTrack() const; + void selectClip(bool add, bool group = false); + void selectTransition(bool add, bool group = false); + QStringList extractTransitionsLumas(); + void setEditMode(EDITMODE mode); + void insertClipCut(DocClipBase *clip, int in, int out); public slots: void setCursorPos(int pos, bool seek = true); @@ -159,6 +165,10 @@ public slots: void slotDeleteTrack(int ix); void slotChangeTrack(int ix); void clipNameChanged(const QString id, const QString name); + void slotTrackUp(); + void slotTrackDown(); + void slotSelectTrack(int ix); + void insertZoneOverwrite(QStringList data, int in); protected: virtual void drawBackground(QPainter * painter, const QRectF & rect); @@ -168,6 +178,7 @@ protected: virtual void dragLeaveEvent(QDragLeaveEvent * event); virtual void dropEvent(QDropEvent * event); virtual void wheelEvent(QWheelEvent * e); + virtual void keyPressEvent(QKeyEvent * event); virtual QStringList mimeTypes() const; virtual Qt::DropActions supportedDropActions() const; @@ -232,6 +243,8 @@ private: bool m_blockRefresh; AbstractGroupItem *m_selectionGroup; QList m_waitingThumbs; + int m_selectedTrack; + int m_spacerOffset; /** Get the index of the video track that is just below current track */ int getPreviousVideoTrack(int track); @@ -253,7 +266,12 @@ 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 checkForGroups(const QRectF &rect, bool &ok); + QList checkForGroups(const QRectF &rect, bool *ok); + /** Adjust clips under another one when working in overwrite mode */ + void adjustTimelineClips(EDITMODE mode, ClipItem *item, ItemInfo posinfo, QUndoCommand *command); + void adjustTimelineTransitions(EDITMODE mode, Transition *item, QUndoCommand *command); + /** Adjust keyframes when pasted to another clip */ + void adjustKeyfames(GenTime oldstart, GenTime newstart, GenTime duration, QDomElement xml); private slots: void slotRefreshGuides(); @@ -262,6 +280,7 @@ private slots: void slotEditTimeLineGuide(); void slotDeleteTimeLineGuide(); void slotFetchNextThumbs(); + void checkTrackSequence(int track); signals: void cursorMoved(int, int); @@ -274,9 +293,11 @@ signals: void trackHeightChanged(); void tracksChanged(); void displayMessage(const QString, MessageType); - void showClipFrame(DocClipBase *, const int); + void showClipFrame(DocClipBase *, QPoint, const int); void doTrackLock(int, bool); void updateClipMarkers(DocClipBase *); + void updateTrackHeaders(); + void playMonitor(); }; #endif