X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftransition.h;h=cf5ad84b6649ae5cb660c2002dffdc704dcb759d;hb=2b77390fdc4a38d58407cc483430b07b7570f222;hp=1be1086ca772dbc3aa4f0a624b8565b57d18237e;hpb=c39f6eb2d6b5adf561daa70340a31de880f68d01;p=kdenlive diff --git a/src/transition.h b/src/transition.h index 1be1086c..cf5ad84b 100644 --- a/src/transition.h +++ b/src/transition.h @@ -15,6 +15,12 @@ * * ***************************************************************************/ +/** + * @class Transition + * @author Jean-Baptiste Mardelle + * @brief Describes a transition with a name, parameters, keyframes, etc. + */ + #ifndef TRANSITION_H #define TRANSITION_H @@ -28,64 +34,80 @@ #include "definitions.h" #include "abstractclipitem.h" -/**Describes a Transition, with a name, parameters keyframes, etc. - *@author Jean-Baptiste Mardelle - */ - class ClipItem; -class Transition : public AbstractClipItem { +class Transition : public AbstractClipItem +{ Q_OBJECT public: - Transition(const ItemInfo info, int transitiontrack, double scale, double fps, QDomElement params = QDomElement()); + Transition(const ItemInfo info, int transitiontrack, double fps, QDomElement params = QDomElement(), bool automaticTransition = false); virtual ~Transition(); virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); virtual int type() const; - /** Returns an XML representation of this transition. */ + + /** @brief Returns an XML representation of this transition. */ QDomElement toXML(); - /** Return the track number of transition in the playlist*/ + /** @brief Returns the track number of the transition in the playlist. */ int transitionEndTrack() const; - Transition *clone(); bool hasClip(const ClipItem * clip) const; bool belongsToClip(const ClipItem * clip) const; bool invertedTransition() const; - QString transitionName() const; QString transitionTag() const; - OPERATIONTYPE operationMode(QPointF pos, double scale); + QStringList transitionInfo() const; + OPERATIONTYPE operationMode(QPointF pos); //const QMap < QString, QString > transitionParameters() const; void setTransitionParameters(const QDomElement params); void setTransitionDirection(bool inv); void setTransitionTrack(int track); - QPixmap transitionPixmap() const; //Transition *reparent(ClipItem * clip); bool isValid() const; - /** Transition should be linked to another track */ - void updateTransitionEndTrack(int newtrack); + /** @brief Links the transition to another track. + * + * This happens only if the current track is not forced. */ + void updateTransitionEndTrack(int newtrack); + void setForcedTrack(bool force, int track); + bool forcedTrack() const; const ClipItem *referencedClip() const; + Transition *clone(); + bool isAutomatic() const; + void setAutomatic(bool automatic); + bool hasGeometry(); + int defaultZValue() const; + +protected: + virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); private: - bool m_singleClip; - QLinearGradient m_gradient; QString m_name; - /** contains the transition parameters */ + bool m_forceTransitionTrack; + + /** @brief True if the transition is attached to its clip. */ + bool m_automaticTransition; + + /** @brief Contains the transition parameters. */ QDomElement m_parameters; - /** The clip to which the transition is attached */ + + /** @brief The clip to which the transition is attached. */ ClipItem *m_referenceClip; - /** The 2nd clip to which the transition is attached */ + /** @brief The second clip to which the transition is attached. */ ClipItem *m_secondClip; int m_transitionTrack; - /** Return the display name for a transition type */ + /** @brief Returns the display name for a transition type. */ QString getTransitionName(const TRANSITIONTYPE & type); - /** Return the transition type for a given name */ + /** @brief Returns the transition type for a given name. */ TRANSITIONTYPE getTransitionForName(const QString & type); + +#if QT_VERSION >= 0x040600 + QPropertyAnimation *m_startAnimation; +#endif }; #endif