]> 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 445b53b42149c7fe03eb932dcb5fa20eae51c645..8960519bfd1d63d558c761f65044ef6eb8d8924f 100644 (file)
@@ -23,7 +23,6 @@
 #include <QPixmap>
 #include <QDomElement>
 #include <QMap>
-#include <QLinearGradient>
 
 #include "gentime.h"
 #include "definitions.h"
 
 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,
@@ -51,29 +51,38 @@ public:
 
     /** Return the track number of 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);
+    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);
-
+    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;
+    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 */
@@ -88,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