]> git.sesse.net Git - kdenlive/blobdiff - src/beziercurve/beziersplineeditor.h
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / beziercurve / beziersplineeditor.h
index 819ac4f50c66f3943cb314217919bfc5151295e5..d0f267ca9c66fc7cc8527b645d0c97c5325d9c78 100644 (file)
@@ -29,20 +29,21 @@ class BezierSplineEditor : public QWidget
     Q_OBJECT
 
 public:
-    BezierSplineEditor(QWidget* parent = 0);
-    virtual ~BezierSplineEditor();
+    explicit BezierSplineEditor(QWidget* parent = 0);
+    ~BezierSplineEditor();
 
-    CubicBezierSpline spline();
+    CubicBezierSpline spline() const;
     void setSpline(const CubicBezierSpline &spline);
 
     /** @brief Returns the selected point or else BPoint. */
     BPoint getCurrentPoint();
 
-    /** @brief Replaces current point with @param p (index stays the same). */
-    void updateCurrentPoint(const BPoint &p);
+    /** @brief Replaces current point with @param p (index stays the same).
+     * @param final (default = true) emit signal modified? */
+    void updateCurrentPoint(const BPoint &p, bool final = true);
 
     /** @brief Number of lines used in grid. */
-    int gridLines();
+    int gridLines() const;
 
     /** @brief Sets the number of grid lines to draw (in one direction) to @param lines. */
     void setGridLines(int lines);
@@ -64,6 +65,7 @@ protected:
     void mousePressEvent(QMouseEvent *event);
     void mouseReleaseEvent(QMouseEvent * event);
     void mouseMoveEvent(QMouseEvent * event);
+    void mouseDoubleClickEvent(QMouseEvent *event);
     void leaveEvent(QEvent *event);
     void resizeEvent(QResizeEvent *event);
 
@@ -74,25 +76,31 @@ private:
     modes m_mode;
     int m_zoomLevel;
     int m_gridLines;
-    /** Whether to show only handles for the selected point for all points. */
+    /** Whether to show handles for all points or only for the selected one. */
     bool m_showAllHandles;
+    /** Background */
     QPixmap m_pixmap;
+    /** A copy of m_pixmap but scaled to fit the size of the edit region */
     QPixmap *m_pixmapCache;
+    /** Whether we have to regenerate the pixmap cache because the pixmap or the size of the edit region changed. */
     bool m_pixmapIsDirty;
 
     int m_currentPointIndex;
     point_types m_currentPointType;
     double m_grabOffsetX;
     double m_grabOffsetY;
+    /** selected point before it was modified by dragging (at the time of the mouse press) */
     BPoint m_grabPOriginal;
+    /** point with the index currentPointIndex + 1 at the time of the mouse press */
     BPoint m_grabPNext;
+    /** point with the index currentPointIndex - 1 at the time of the mouse press */
     BPoint m_grabPPrevious;
 
     /** @brief Finds the point nearest to @param p and returns it's index.
      * @param sel Is filled with the type of the closest point (h1, p, h2)
      *
      * If no point is near enough -1 is returned. */
-    int nearestPointInRange(QPointF p, int wWidth, int wHeight, point_types *sel);
+    int nearestPointInRange(const QPointF &p, int wWidth, int wHeight, point_types *sel);
 
 signals:
     void modified();