#define GEOMETRYVAL_H
-#include "ui_geometryval_ui.h"
#include <QWidget>
#include <QDomElement>
+#include <QGraphicsPathItem>
+
+#include <mlt++/Mlt.h>
+
+#include "ui_geometryval_ui.h"
+#include "definitions.h"
+#include "keyframehelper.h"
+#include "timecodedisplay.h"
-//class QGraphicsScene;
class GraphicsSceneRectMove;
class QGraphicsRectItem;
-class QMouseEvent;
+class QGraphicsView;
+
-class Geometryval : public QWidget {
+class Geometryval : public QWidget, public Ui::Geometryval
+{
+ Q_OBJECT
public:
- Geometryval(QWidget* parent = 0);
+ explicit Geometryval(const MltVideoProfile &profile, const Timecode &t, const QPoint &frame_size, int startPoint = 0, QWidget* parent = 0);
+ virtual ~Geometryval();
QDomElement getParamDesc();
+ QString getValue() const;
+ void setFrameSize(const QPoint &p);
+ /** @brief Updates the timecode display according to settings (frame number or hh:mm:ss:ff) */
+ void updateTimecodeFormat();
+ void slotUpdateRange(int inPoint, int outPoint);
+
private:
- Ui::Geometryval ui;
- //QGraphicsScene* scene;
- GraphicsSceneRectMove *scene;
- QDomElement param;
- QGraphicsRectItem *paramRect;
+ MltVideoProfile m_profile;
+ int m_realWidth;
+ GraphicsSceneRectMove *m_scene;
+ QGraphicsRectItem *m_paramRect;
+ Mlt::Geometry *m_geom;
+ KeyframeHelper *m_helper;
+ QGraphicsPathItem *m_path;
+ QMenu *m_configMenu;
+ QAction *m_syncAction;
+ QAction *m_editOptions;
+ QAction *m_reset;
+ bool m_fixedMode;
+ QPoint m_frameSize;
+ void updateTransitionPath();
+ double m_dar;
+ int m_startPoint;
+ QGraphicsView *m_sceneview;
+ TimecodeDisplay m_timePos;
+ bool keyframeSelected();
+
public slots:
- void setupParam(const QDomElement&, const QString& paramName, int, int);
-protected:
- virtual void mouseMoveEvent(QMouseEvent *event);
+ void setupParam(const QDomElement, int minframe, int maxframe);
+ /** @brief Updates position of the local timeline to @param relTimelinePos. */
+ void slotSyncPosition(int relTimelinePos);
+
+private slots:
+ void slotNextFrame();
+ void slotPreviousFrame();
+ void slotPositionChanged(int pos = -1, bool seek = true);
+ void slotDeleteFrame(int pos = -1);
+ void slotAddFrame(int pos = -1);
+ void slotUpdateTransitionProperties();
+ void slotTransparencyChanged(int transp);
+ void slotResizeCustom();
+ void slotResizeOriginal();
+ void slotAlignRight();
+ void slotAlignLeft();
+ void slotAlignTop();
+ void slotAlignBottom();
+ void slotAlignHCenter();
+ void slotAlignVCenter();
+ void slotSyncCursor();
+ void slotResetPosition();
+ void slotKeyframeMoved(int);
+ void slotSwitchOptions();
+ void slotUpdateGeometry();
+ void slotGeometryX(int value);
+ void slotGeometryY(int value);
+ void slotGeometryWidth(int value);
+ void slotGeometryHeight(int value);
+
signals:
void parameterChanged();
+ void seekToPos(int);
};
#endif