X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fabstractclipitem.h;h=5aad8941cb76bd321aca1114efc62cb0542e995f;hb=ecfe8631487750b49e1c80ead30664971cfdcbf9;hp=129011a6b300eedbb43aef677443e17088344385;hpb=2b1c40908368fff4b20912551c266e45c89f6607;p=kdenlive diff --git a/src/abstractclipitem.h b/src/abstractclipitem.h index 129011a6..5aad8941 100644 --- a/src/abstractclipitem.h +++ b/src/abstractclipitem.h @@ -22,23 +22,40 @@ #define ABSTRACTCLIPITEM #include +#include + +#if QT_VERSION >= 0x040600 +#include +#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(); + + /** @brief Move the selected keyframe (does not influence the effect, only the display in timeline). + * @param pos new Position + * @param value new Value */ 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,29 +63,40 @@ public: void updateItem(); void setItemLocked(bool locked); bool isItemLocked() const; + void closeAnimation(); virtual OPERATIONTYPE operationMode(QPointF pos) = 0; virtual GenTime startPos() const ; virtual void setTrack(int track); virtual GenTime endPos() const ; + virtual int defaultZValue() const ; virtual int track() const ; virtual GenTime cropStart() const ; virtual GenTime cropDuration() const ; - virtual void resizeStart(int posx, double speed = 1.0); - virtual void resizeEnd(int posx, double speed = 1.0); + + /** @brief Resizes the clip from the start. + * @param posx Absolute position of new in point + * @param hasSizeLimit (optional) Whether the clip has a maximum size */ + virtual void resizeStart(int posx, bool hasSizeLimit = true); + + /** @brief Resizes the clip from the end. + * @param posx Absolute position of new out point */ + virtual void resizeEnd(int posx); virtual double fps() const; virtual void updateFps(double fps); virtual GenTime maxDuration() const; virtual void setCropStart(GenTime pos); -protected: +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; - GenTime m_startPos;*/ + /* GenTime m_cropStart; + GenTime m_cropDuration; + GenTime m_startPos;*/ GenTime m_maxDuration; QMap m_keyframes; double m_keyframeFactor; @@ -78,6 +106,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