class KeyframeHelper;
class TimecodeDisplay;
class OnMonitorRectItem;
+class OnMonitorPathItem;
class QGraphicsRectItem;
class DragValue;
* @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;
/** @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;
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. */
/** @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. */
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();