X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fgeometrywidget.h;h=3f7414408c63f7191a30457ff4cb800fb345c25f;hb=c3302003093710ee247ad84c0fe2ef3c579d417f;hp=df26b9c47259c4c653bb631a30de67a69735e1d0;hpb=17a4a5bf6c8ab0cb1554a010a002a2e208d988c9;p=kdenlive diff --git a/src/geometrywidget.h b/src/geometrywidget.h index df26b9c4..3f741440 100644 --- a/src/geometrywidget.h +++ b/src/geometrywidget.h @@ -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); + explicit 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; @@ -55,18 +56,23 @@ public: /** @brief Updates the timecode display according to settings (frame number or hh:mm:ss:ff) */ void updateTimecodeFormat(); /** @brief Sets the size of the original clip. */ - void setFrameSize(QPoint size); - void addParameter(const QDomElement elem); - void importKeyframes(const QString &data); + void setFrameSize(const QPoint &size); + 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. * @param elem DomElement representing this effect parameter * @param minframe In point of the clip * @param maxframe Out point of the clip */ - void setupParam(const QDomElement elem, int minframe, int maxframe); + 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,6 +177,8 @@ 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();