]> git.sesse.net Git - kdenlive/blobdiff - src/customtrackview.h
More work on timeline widget
[kdenlive] / src / customtrackview.h
index cbea5571dec000851c12548a33ac3708b65a6533..4ee97e3185bc10b2487dfa1ed01edebe26810de4 100644 (file)
@@ -22,6 +22,9 @@
 #define CUSTOMTRACKVIEW_H
 
 #include <QGraphicsView>
+#include <QGraphicsItemAnimation>
+#include <QTimeLine>
+
 #include <KUndoStack>
 
 #include "clipitem.h"
@@ -31,19 +34,23 @@ class CustomTrackView : public QGraphicsView
   Q_OBJECT
   
   public:
-    CustomTrackView(KUndoStack *commandStack, QGraphicsScene * scene, QWidget *parent=0);
+    CustomTrackView(KUndoStack *commandStack, QGraphicsScene * projectscene, QWidget *parent=0);
     virtual void mousePressEvent ( QMouseEvent * event );
     virtual void mouseReleaseEvent ( QMouseEvent * event );
     virtual void mouseMoveEvent ( QMouseEvent * event );
     void addTrack();
     void removeTrack();
-    void setCursorPos(int pos);
     int cursorPos();
     void initView();
     void moveClip ( const QPointF &startPos, const QPointF &endPos );
     void resizeClip ( const QPointF &startPos, const QPointF &endPos, bool resizeClipStart );
-    void addClip ( int clipType, QString clipName, int clipProducer, int maxDuration, const QRectF &rect );
+    void addClip ( QDomElement xml, int track, int startpos, const QRectF &rect, int duration);
     void deleteClip ( const QRectF &rect );
+    void setDuration(int duration);
+    void setScale(double scaleFactor);
+
+  public slots:
+    void setCursorPos(int pos);
 
   protected:
     virtual void drawBackground ( QPainter * painter, const QRectF & rect );
@@ -52,23 +59,34 @@ class CustomTrackView : public QGraphicsView
     virtual void dragMoveEvent(QDragMoveEvent * event);
     virtual void dragLeaveEvent ( QDragLeaveEvent * event );
     virtual void dropEvent ( QDropEvent * event );
+    virtual void wheelEvent ( QWheelEvent * e );
     virtual QStringList mimeTypes() const;
     virtual Qt::DropActions supportedDropActions () const;
     virtual void resizeEvent ( QResizeEvent * event );
 
   private:
     int m_tracksCount;
+    int m_projectDuration;
     int m_cursorPos;
     ClipItem *m_dropItem;
     void addItem(QString producer, QPoint pos);
     QGraphicsLineItem *m_cursorLine;
     QPointF m_startPos;
-    int m_operationMode;
+    OPERATIONTYPE m_operationMode;
+    OPERATIONTYPE m_moveOpMode;
     ClipItem *m_dragItem;
     KUndoStack *m_commandStack;
+    QGraphicsItem *m_visualTip;
+    QGraphicsItemAnimation *m_animation;
+    QTimeLine *m_animationTimer;
+    QColor m_tipColor;
+    double m_scale;
+    int m_clickPoint;
 
   signals:
     void cursorMoved(int);
+    void zoomIn();
+    void zoomOut();
 
 };