]> git.sesse.net Git - kdenlive/blobdiff - src/transition.h
Add subclips (dragging a zone from clip monitor to project tree)
[kdenlive] / src / transition.h
index baea8c82e75a7f1ff63e112972e0e079a61b48ab..8960519bfd1d63d558c761f65044ef6eb8d8924f 100644 (file)
 #include <QString>
 #include <QGraphicsRectItem>
 #include <QPixmap>
-#include <qdom.h>
+#include <QDomElement>
 #include <QMap>
 
 #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