#include <QWidget>
#include <QDomElement>
#include <QGraphicsPathItem>
+#include <QGraphicsView>
#include <mlt++/Mlt.h>
#include "ui_geometryval_ui.h"
#include "definitions.h"
#include "keyframehelper.h"
-#include "ui_geometryposition_ui.h"
+#include "timecodedisplay.h"
//class QGraphicsScene;
class GraphicsSceneRectMove;
class QMouseEvent;
-class Geometryval : public QWidget
+class Geometryval : public QWidget, public Ui::Geometryval
{
Q_OBJECT
public:
- explicit Geometryval(const MltVideoProfile profile, QPoint frame_size, QWidget* parent = 0);
+ explicit Geometryval(const MltVideoProfile &profile, Timecode t, QPoint frame_size, int startPoint = 0, QWidget* parent = 0);
+ virtual ~Geometryval();
QDomElement getParamDesc();
+ QString getValue() const;
void setFrameSize(QPoint p);
+ /** @brief Updates the timecode display according to settings (frame number or hh:mm:ss:ff) */
+ void updateTimecodeFormat();
private:
- Ui::Geometryval m_ui;
MltVideoProfile m_profile;
- //QGraphicsScene* scene;
+ int m_realWidth;
GraphicsSceneRectMove *m_scene;
- QDomElement m_param;
QGraphicsRectItem *m_paramRect;
Mlt::Geometry *m_geom;
KeyframeHelper *m_helper;
QGraphicsPathItem *m_path;
- QMenu *m_scaleMenu;
- QMenu *m_alignMenu;
+ QMenu *m_configMenu;
QAction *m_syncAction;
+ QAction *m_editOptions;
+ QAction *m_reset;
bool m_fixedMode;
QPoint m_frameSize;
void updateTransitionPath();
- Ui::GeometryPosition_UI *m_view;
+ double m_dar;
+ int m_startPoint;
+ QGraphicsView *m_sceneview;
+ TimecodeDisplay m_timePos;
+ bool keyframeSelected();
public slots:
- void setupParam(const QDomElement&, int, int);
+ 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, bool seek = true);
- void slotDeleteFrame();
- void slotAddFrame();
+ 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 slotResize50();
- void slotResize100();
- void slotResize200();
void slotResizeCustom();
void slotResizeOriginal();
void slotAlignRight();
void slotAlignLeft();
void slotAlignTop();
void slotAlignBottom();
- void slotAlignCenter();
void slotAlignHCenter();
void slotAlignVCenter();
void slotSyncCursor();
- void slotGeometry();
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();