X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftransition.h;h=8960519bfd1d63d558c761f65044ef6eb8d8924f;hb=880efc8572a7df65453dfb5736de6455fe129a86;hp=baea8c82e75a7f1ff63e112972e0e079a61b48ab;hpb=f4e1c8d9edc107f6f0cb65b3d9cd9d9f35acd135;p=kdenlive diff --git a/src/transition.h b/src/transition.h index baea8c82..8960519b 100644 --- a/src/transition.h +++ b/src/transition.h @@ -21,25 +21,26 @@ #include #include #include -#include +#include #include #include "gentime.h" #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 QRectF&, ClipItem * clipa, const TRANSITIONTYPE & type, const GenTime &startTime, const GenTime &endTime, double fps, bool inverted = false); - Transition(const QRectF&, ClipItem * clip, QDomElement transitionElement, double fps, GenTime offset = GenTime()); + Transition(const ItemInfo info, int transitiontrack, double fps, QDomElement params = QDomElement(), bool automaticTransition = false); virtual ~Transition(); virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, @@ -48,54 +49,42 @@ public: /** Returns an XML representation of this transition. */ QDomElement toXML(); - GenTime transitionStartTime() const; - GenTime transitionEndTime() const; /** Return the track number of transition in the playlist*/ - int transitionStartTrack() const; int transitionEndTrack() const; - Transition *clone(); bool hasClip(const ClipItem * clip) const; bool belongsToClip(const ClipItem * clip) const; - void resizeTransitionEnd(GenTime time); - void resizeTransitionStart(GenTime time); - void moveTransition(GenTime time); - bool invertTransition() const; - TRANSITIONTYPE transitionType() const; - OPERATIONTYPE operationMode(QPointF pos, double scale); - QString transitionTag() const; + bool invertedTransition() const; QString transitionName() const; - void setTransitionType(TRANSITIONTYPE newType); - const QMap < QString, QString > transitionParameters() const; - void setTransitionParameters(const QMap < QString, QString > parameters); + QString transitionTag() const; + OPERATIONTYPE operationMode(QPointF pos); + //const QMap < QString, QString > transitionParameters() const; + void setTransitionParameters(const QDomElement params); void setTransitionDirection(bool inv); - int transitionTrack() const; void setTransitionTrack(int track); - QPixmap transitionPixmap() const; - Transition *reparent(ClipItem * clip); + //Transition *reparent(ClipItem * clip); bool isValid() const; - GenTime transitionDuration() const; + /** Transition should be linked to another track */ + 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; -private: - - GenTime m_transitionStart; - GenTime m_transitionDuration; - QMap < QString, QString > m_transitionParameters; - - /** The name of the transition used by mlt (composite, luma,...)*/ - TRANSITIONTYPE m_transitionType; - - /** The name of the transition to be displayed to user */ - QString m_transitionName; - - /** Should the transition be reversed */ - bool m_invertTransition; - - bool m_singleClip; +protected: + virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); - /** The track to which the transition is attached*/ - int m_track; +private: + QString m_name; + bool m_forceTransitionTrack; + /** true if the transition was added automatically and should be moved with its clip */ + bool m_automaticTransition; + /** contains the transition parameters */ + QDomElement m_parameters; /** The clip to which the transition is attached */ ClipItem *m_referenceClip; @@ -108,6 +97,10 @@ private: /** Return the transition type for a given name */ TRANSITIONTYPE getTransitionForName(const QString & type); + +#if QT_VERSION >= 0x040600 + QPropertyAnimation *m_startAnimation; +#endif }; #endif