]> git.sesse.net Git - kdenlive/blobdiff - src/geometrywidget.h
Use a real dialogbox so we understand how to cancel/accept unicode characters (ok...
[kdenlive] / src / geometrywidget.h
index 64cb02aaab0e799344a8d47df0534b866dba62ae..fc5e245abe73b38d322b00b2ed4650d4359da96f 100644 (file)
@@ -33,6 +33,7 @@ class MonitorScene;
 class KeyframeHelper;
 class TimecodeDisplay;
 class OnMonitorRectItem;
+class OnMonitorPathItem;
 class QGraphicsRectItem;
 class DragValue;
 
@@ -47,7 +48,7 @@ public:
     * @param isEffect true if used in an effect, false if used in a transition
     * @param showRotation Should we show or hide the rotation sliders
     * @param parent (optional) Parent widget */
-    GeometryWidget(Monitor *monitor, Timecode timecode, int clipPos, bool isEffect, bool showRotation, QWidget* parent = 0);
+    GeometryWidget(Monitor *monitor, const Timecode &timecode, int clipPos, bool isEffect, bool showRotation, QWidget* parent = 0);
     virtual ~GeometryWidget();
     /** @brief Gets the geometry as a serialized string. */
     QString getValue() const;
@@ -56,8 +57,9 @@ public:
     void updateTimecodeFormat();
     /** @brief Sets the size of the original clip. */
     void setFrameSize(QPoint size);
-
-    void addParameter(const QDomElement elem);
+    void addParameter(const QDomElement &elem);
+    void importKeyframes(const QString &data, int maximum);
+    int currentPosition() const;
 
 public slots:
     /** @brief Sets up the rect and the geometry object.
@@ -67,6 +69,10 @@ public slots:
     void setupParam(const QDomElement elem, int minframe, int maxframe);
     /** @brief Updates position of the local timeline to @param relTimelinePos.  */
     void slotSyncPosition(int relTimelinePos);
+    void slotResetKeyframes();
+    void slotResetNextKeyframes();
+    void slotResetPreviousKeyframes();
+    void slotUpdateRange(int inPoint, int outPoint);
 
 private:
     Ui::GeometryWidget_UI m_ui;
@@ -81,6 +87,7 @@ private:
     bool m_isEffect;
     MonitorScene *m_scene;
     OnMonitorRectItem *m_rect;
+    OnMonitorPathItem *m_geomPath;
     QGraphicsRectItem *m_previous;
     KeyframeHelper *m_timeline;
     /** Stores the different settings in the MLT geometry format. */
@@ -128,6 +135,8 @@ private slots:
     /** @brief Adds or deletes a keyframe depending on whether there is already a keyframe at the current position. */
     void slotAddDeleteKeyframe();
 
+    /** @brief Updates the Mlt::Geometry path object. */
+    void slotUpdatePath();
     /** @brief Updates the Mlt::Geometry object. */
     void slotUpdateGeometry();
     /** @brief Updates the spinBoxes according to the rect. */
@@ -168,10 +177,13 @@ private slots:
     void slotFitToHeight();
     /** @brief Show / hide previous keyframe in monitor scene. */
     void slotShowPreviousKeyFrame(bool show);
+    /** @brief Show / hide keyframe path in monitor scene. */
+    void slotShowPath(bool show);
 
 signals:
     void parameterChanged();
     void seekToPos(int);
+    void importClipKeyframes();
 };
 
 #endif