X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fclipitem.h;h=c5323905b182dc98a4dcaa76506a1c5de938f7a9;hb=e906fc902420019ba9414ae4fffb232cfe1cf71b;hp=710a031f836c4752804c8d4c2e80c35525eff15e;hpb=c61a7e8c4518bbb3762384d5ed15ab3343682976;p=kdenlive diff --git a/src/clipitem.h b/src/clipitem.h index 710a031f..c5323905 100644 --- a/src/clipitem.h +++ b/src/clipitem.h @@ -46,7 +46,7 @@ class ClipItem : public AbstractClipItem Q_OBJECT public: - ClipItem(DocClipBase *clip, ItemInfo info, double fps, double speed, int strobe, bool generateThumbs = true); + ClipItem(DocClipBase *clip, ItemInfo info, double fps, double speed, int strobe, int frame_width, bool generateThumbs = true); virtual ~ ClipItem(); virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, @@ -55,6 +55,7 @@ public: void resizeStart(int posx, bool size = true); void resizeEnd(int posx); OPERATIONTYPE operationMode(QPointF pos); + static int itemHeight(); const QString clipProducer() const; int clipType() const; DocClipBase *baseClip() const; @@ -159,15 +160,7 @@ public: void insertKeyframe(QDomElement effect, int pos, int val); void movedKeyframe(QDomElement effect, int oldpos, int newpos, double value); void updateKeyframes(QDomElement effect); - /** @brief Updates the keyframes in the pan and zoom effect to fit the clips cropDuration. - * @param width Render width - * @param height Render height - * @param cut (optional) if clip was cut, cut position relative to the original's clip position - * @return List of the pan and zoom effects indexes - * - * Can be used for all effects using mlt_geometry with keyframes, but at the moment Pan & Zoom is the only one. */ - QList updatePanZoom(int width, int height, int cut = 0); - void updateGeometryKeyframes(QDomElement effect, int paramIndex, int width, int height, int cut = 0); + void updateGeometryKeyframes(QDomElement effect, int paramIndex, int width, int height, ItemInfo oldInfo); bool updateNormalKeyframes(QDomElement parameter); /** @brief Adjusts effects after a clip duration change. */ @@ -179,6 +172,7 @@ public: * @return Fitting producer * Which producer is returned depends on the type of this clip (audioonly, videoonly, normal) */ Mlt::Producer *getProducer(int track, bool trackSpecific = true); + void resetFrameWidth(int width); protected: //virtual void mouseMoveEvent(QGraphicsSceneMouseEvent * event); @@ -225,7 +219,9 @@ private: QPixmap m_videoPix; QPixmap m_audioPix; - void doGetIntraThumbs(QPainter *painter, const QPointF startPos, int offset, int start, int end); + /** @brief Keyframes type can be "keyframe" or "simplekeyframe" which have to be painted differently. + * True if keyframe type is "keyframe" */ + bool m_limitedKeyFrames; private slots: void slotGetStartThumb(); @@ -236,6 +232,8 @@ private slots: void slotSetStartThumb(QImage img); void slotSetEndThumb(QImage img); void slotThumbReady(int frame, QImage img); + /** @brief The thumbnailer has finished to cache all required thumbs. */ + void slotGotThumbsCache(); public slots: void slotFetchThumbs();