X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fgeometryval.h;h=a1557fc03f5bb6b05cb7340cf2f2848e253eff4a;hb=56aee6aedeeed3efd10ada8fe3c229eddc01ef05;hp=240d7b5128173a52e7853453e076765c2942ccb9;hpb=ec7f086706bb9affca105e8c2a1bd5e2371f131e;p=kdenlive diff --git a/src/geometryval.h b/src/geometryval.h index 240d7b51..a1557fc0 100644 --- a/src/geometryval.h +++ b/src/geometryval.h @@ -19,31 +19,90 @@ #define GEOMETRYVAL_H -#include "ui_geometryval_ui.h" #include #include +#include + +#include + +#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); - void moveEvent(); + 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