X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fclipitem.h;h=c5323905b182dc98a4dcaa76506a1c5de938f7a9;hb=79a58d4bd2faf4d6ee6576acc70219e95efb2865;hp=77708af77071dc66203ec3a5a86caaee30eb8443;hpb=df68f0f59c160e3b33d6aca6cddd5ecceafbeb1a;p=kdenlive diff --git a/src/clipitem.h b/src/clipitem.h index 77708af7..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,17 +160,11 @@ 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); - bool updateNormalKeyframes(QDomElement parameter, const int previous, const int current, bool fromStart); - QMap adjustEffectsToDuration(int width, int height, int previous, int current, bool fromStart); + void updateGeometryKeyframes(QDomElement effect, int paramIndex, int width, int height, ItemInfo oldInfo); + bool updateNormalKeyframes(QDomElement parameter); + + /** @brief Adjusts effects after a clip duration change. */ + QMap adjustEffectsToDuration(int width, int height, ItemInfo oldInfo); /** Returns the necessary (audio, video, general) producer. * @param track Track of the requested producer @@ -177,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); @@ -223,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(); @@ -234,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();