]> git.sesse.net Git - kdenlive/blobdiff - src/abstractclipitem.h
Fix audio thumbs not displayed on project opening and abortion if audio thumbs creation
[kdenlive] / src / abstractclipitem.h
index 09fd98d4209c98d036fba13408ddcb6d6dfe2e68..dde3adfddefd840329edc82fa6444d2129578e9a 100644 (file)
 #define ABSTRACTCLIPITEM
 
 #include <QGraphicsRectItem>
+#include <QGraphicsWidget>
+
+#if QT_VERSION >= 0x040600
+#include <QPropertyAnimation>
+#endif
+
 #include "definitions.h"
 #include "gentime.h"
 
 class CustomTrackScene;
 class QGraphicsSceneMouseEvent;
 
-class AbstractClipItem : public QObject , public QGraphicsRectItem
+class AbstractClipItem : public QObject, public QGraphicsRectItem
 {
     Q_OBJECT
+#if QT_VERSION >= 0x040600
+    Q_PROPERTY(QRectF rect READ rect WRITE setRect)
+#endif
+
 public:
     AbstractClipItem(const ItemInfo info, const QRectF& rect, double fps);
+    virtual ~ AbstractClipItem();
     void updateSelectedKeyFrame();
     void updateKeyFramePos(const GenTime pos, const double value);
-    void addKeyFrame(const GenTime pos, const double value);
+    int addKeyFrame(const GenTime pos, const double value);
     bool hasKeyFrames() const;
+    int editedKeyFramePos() const;
     int selectedKeyFramePos() const;
     double selectedKeyFrameValue() const;
+    double editedKeyFrameValue() const;
     double keyFrameFactor() const;
     ItemInfo info() const;
     CustomTrackScene* projectScene();
@@ -46,6 +59,7 @@ public:
     void updateItem();
     void setItemLocked(bool locked);
     bool isItemLocked() const;
+    void closeAnimation();
 
     virtual  OPERATIONTYPE operationMode(QPointF pos) = 0;
     virtual GenTime startPos() const ;
@@ -55,7 +69,7 @@ public:
     virtual int track() const ;
     virtual GenTime cropStart() const ;
     virtual GenTime cropDuration() const ;
-    virtual void resizeStart(int posx);
+    virtual void resizeStart(int posx, bool hasSizeLimit = true);
     virtual void resizeEnd(int posx);
     virtual double fps() const;
     virtual void updateFps(double fps);
@@ -65,7 +79,9 @@ public:
 protected:
     ItemInfo m_info;
 //    int m_track;
+    /** The position of the current keyframe when it has moved */
     int m_editedKeyframe;
+    /** The position of the current keyframe before it was moved */
     int m_selectedKeyframe;
     /*    GenTime m_cropStart;
         GenTime m_cropDuration;
@@ -79,6 +95,11 @@ protected:
     void drawKeyFrames(QPainter *painter, QRectF exposedRect);
     int mouseOverKeyFrames(QPointF pos, double maxOffset);
     virtual void mousePressEvent(QGraphicsSceneMouseEvent * event);
+
+private:
+#if QT_VERSION >= 0x040600
+    QPropertyAnimation *m_closeAnimation;
+#endif
 };
 
 #endif