X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcustomtrackview.h;h=afa0b44912c8de691c94dcca7a81cc23347da628;hb=16e43620d9ff9e432ea91ded529f1e365d03fd52;hp=8c19ac9f20de07406c0564d3bc4e9b69d6b6a002;hpb=21dba8a18e24c2e573a5fac7114c8d28cfd28932;p=kdenlive diff --git a/src/customtrackview.h b/src/customtrackview.h index 8c19ac9f..afa0b449 100644 --- a/src/customtrackview.h +++ b/src/customtrackview.h @@ -22,6 +22,7 @@ #define CUSTOMTRACKVIEW_H #include +#include #include #include @@ -42,6 +43,7 @@ class AbstractClipItem; class AbstractGroupItem; class Transition; + class CustomTrackView : public QGraphicsView { Q_OBJECT @@ -202,9 +204,17 @@ public slots: void slotSwitchTrackVideo(int ix); void slotSwitchTrackLock(int ix); void slotUpdateClip(const QString &clipId, bool reload = true); + + /** @brief Creates a AddClipCommand to add, edit or delete a marker. + * @param id Id of the marker's clip + * @param t Position of the marker + * @param c Comment of the marker */ void slotAddClipMarker(const QString &id, GenTime t, QString c); bool addGuide(const GenTime pos, const QString &comment); - void slotAddGuide(); + + /** @brief Shows a dialog for adding a guide. + * @param dialog (default = true) false = do not show the dialog but use current position as position and comment */ + void slotAddGuide(bool dialog = true); void slotEditGuide(CommentedTime guide); void slotEditGuide(int guidePos = -1); void slotDeleteGuide(int guidePos = -1); @@ -252,6 +262,12 @@ public slots: * @param ix The track index */ void slotAddTrackEffect(const QDomElement effect, int ix); + /** @brief Update the list of snap points (sticky timeline hotspots). + * @param selected The currently selected clip if any + * @param offsetList The list of points that should also snap (for example when movin a clip, start and end points should snap + * @param skipSelectedItems if true, the selected item start and end points will not be added to snap list */ + void updateSnapPoints(AbstractClipItem *selected, QList offsetList = QList (), bool skipSelectedItems = false); + protected: virtual void drawBackground(QPainter * painter, const QRectF & rect); //virtual void drawForeground ( QPainter * painter, const QRectF & rect ); @@ -288,7 +304,7 @@ private: QPoint m_clickEvent; QList m_searchPoints; QList m_guides; - void updateSnapPoints(AbstractClipItem *selected, QList offsetList = QList (), bool skipSelectedItems = false); + ClipItem *getClipItemAt(int pos, int track); ClipItem *getClipItemAt(GenTime pos, int track); ClipItem *getClipItemAtEnd(GenTime pos, int track); @@ -332,6 +348,11 @@ private: QMutex m_mutex; QWaitCondition m_producerNotReady; + KStatefulBrush m_activeTrackBrush; + + /** stores the state of the control modifier during mouse press. + * Will then be used to identify whether we resize a group or only one item of it. */ + bool m_controlModifier; /** Get the index of the video track that is just below current track */ int getPreviousVideoTrack(int track); @@ -392,6 +413,19 @@ private: /** @brief Gets the effect parameters that will be passed to Mlt. */ EffectsParameterList getEffectArgs(const QDomElement effect); + /** @brief Updates @param item's pan and zoom effect after resize or cut. + * @param item clip whose pan and zoom effect should be updated + * @param cutPos (optional) if clip was cut, cut position relative to the original's clip position */ + void updatePanZoom(ClipItem *item, GenTime cutPos = GenTime()); + + /** @brief Update Tracknames to fit again after track was added/deleted. + * @param track Number of track which was added/deleted + * @param added true = track added, false = track deleted + * + * The default track name consists of type + number. If we add/delete a track the number has to be adjusted + * if the name is still the default one. */ + void updateTrackNames(int track, bool added); + private slots: void slotRefreshGuides(); void slotEnableRefresh(); @@ -424,6 +458,8 @@ signals: void documentModified(); void forceClipProcessing(const QString &); void showTrackEffects(int, TrackInfo); + /** @brief Update the track effect button that shows if a track has effects or not.*/ + void updateTrackEffectState(int); }; #endif