]> git.sesse.net Git - kdenlive/blobdiff - src/abstractclipitem.h
Fix keyframes not editable in timeline if first parameter is not keyframable
[kdenlive] / src / abstractclipitem.h
index e49d0db7e456b95087479611761ec5e2748a2e47..f24e0ab24ac6ab5abac6f600be1a7a8fe1c10eef 100644 (file)
@@ -45,12 +45,20 @@ public:
     AbstractClipItem(const ItemInfo info, const QRectF& rect, double fps);
     virtual ~ AbstractClipItem();
     void updateSelectedKeyFrame();
+
+    /** @brief Move the selected keyframe (does not influence the effect, only the display in timeline).
+    * @param pos new Position
+    * @param value new Value */
     void updateKeyFramePos(const GenTime pos, const double value);
-    void addKeyFrame(const GenTime pos, const double value);
+    int addKeyFrame(const GenTime pos, const double value);
     bool hasKeyFrames() const;
+    int editedKeyFramePos() const;
     int selectedKeyFramePos() const;
     double selectedKeyFrameValue() const;
+    double editedKeyFrameValue() const;
     double keyFrameFactor() const;
+    /** @brief Returns the number of keyframes the selected effect has. */
+    int keyFrameNumber() const;
     ItemInfo info() const;
     CustomTrackScene* projectScene();
     void updateRectGeometry();
@@ -67,7 +75,14 @@ public:
     virtual int track() const ;
     virtual GenTime cropStart() const ;
     virtual GenTime cropDuration() const ;
-    virtual void resizeStart(int posx);
+
+    /** @brief Resizes the clip from the start.
+    * @param posx Absolute position of new in point
+    * @param hasSizeLimit (optional) Whether the clip has a maximum size */
+    virtual void resizeStart(int posx, bool hasSizeLimit = true);
+
+    /** @brief Resizes the clip from the end.
+    * @param posx Absolute position of new out point */
     virtual void resizeEnd(int posx);
     virtual double fps() const;
     virtual void updateFps(double fps);
@@ -77,7 +92,9 @@ public:
 protected:
     ItemInfo m_info;
 //    int m_track;
+    /** The position of the current keyframe when it has moved */
     int m_editedKeyframe;
+    /** The position of the current keyframe before it was moved */
     int m_selectedKeyframe;
     /*    GenTime m_cropStart;
         GenTime m_cropDuration;
@@ -86,6 +103,8 @@ protected:
     QMap <int, int> m_keyframes;
     double m_keyframeFactor;
     double m_keyframeDefault;
+    /** The (keyframe) parameter that is visible and editable in timeline (on the clip) */
+    int m_visibleParam;
     double m_fps;
     //QRect visibleRect();
     void drawKeyFrames(QPainter *painter, QRectF exposedRect);