1 /***************************************************************************
2 geomeytrval.h - description
5 copyright : (C) 2008 by Marco Gittler
6 email : g.marco@freenet.de
7 ***************************************************************************/
9 /***************************************************************************
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
16 ***************************************************************************/
23 #include <QDomElement>
24 #include <QGraphicsPathItem>
25 #include <QGraphicsView>
27 #include <mlt++/Mlt.h>
29 #include "ui_geometryval_ui.h"
30 #include "definitions.h"
31 #include "keyframehelper.h"
32 #include "timecodedisplay.h"
34 //class QGraphicsScene;
35 class GraphicsSceneRectMove;
36 class QGraphicsRectItem;
39 class Geometryval : public QWidget, public Ui::Geometryval
43 explicit Geometryval(const MltVideoProfile &profile, const Timecode &t, const QPoint &frame_size, int startPoint = 0, QWidget* parent = 0);
44 virtual ~Geometryval();
45 QDomElement getParamDesc();
46 QString getValue() const;
47 void setFrameSize(const QPoint &p);
48 /** @brief Updates the timecode display according to settings (frame number or hh:mm:ss:ff) */
49 void updateTimecodeFormat();
50 void slotUpdateRange(int inPoint, int outPoint);
53 MltVideoProfile m_profile;
55 GraphicsSceneRectMove *m_scene;
56 QGraphicsRectItem *m_paramRect;
57 Mlt::Geometry *m_geom;
58 KeyframeHelper *m_helper;
59 QGraphicsPathItem *m_path;
61 QAction *m_syncAction;
62 QAction *m_editOptions;
66 void updateTransitionPath();
69 QGraphicsView *m_sceneview;
70 TimecodeDisplay m_timePos;
71 bool keyframeSelected();
74 void setupParam(const QDomElement, int minframe, int maxframe);
75 /** @brief Updates position of the local timeline to @param relTimelinePos. */
76 void slotSyncPosition(int relTimelinePos);
80 void slotPreviousFrame();
81 void slotPositionChanged(int pos = -1, bool seek = true);
82 void slotDeleteFrame(int pos = -1);
83 void slotAddFrame(int pos = -1);
84 void slotUpdateTransitionProperties();
85 void slotTransparencyChanged(int transp);
86 void slotResizeCustom();
87 void slotResizeOriginal();
88 void slotAlignRight();
91 void slotAlignBottom();
92 void slotAlignHCenter();
93 void slotAlignVCenter();
94 void slotSyncCursor();
95 void slotResetPosition();
96 void slotKeyframeMoved(int);
97 void slotSwitchOptions();
98 void slotUpdateGeometry();
99 void slotGeometryX(int value);
100 void slotGeometryY(int value);
101 void slotGeometryWidth(int value);
102 void slotGeometryHeight(int value);
105 void parameterChanged();