]> git.sesse.net Git - kdenlive/blobdiff - src/geometryval.h
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / geometryval.h
index c254d054c26af2080081631d2bc8454ba2497847..a1557fc03f5bb6b05cb7340cf2f2848e253eff4a 100644 (file)
 #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