#include "definitions.h"
#include "gentime.h"
#include "effectslist.h"
-#include "docclipbase.h"
-#include "kthumb.h"
+#include "abstractclipitem.h"
+class DocClipBase;
+class Transition;
-class ClipItem : public QObject, public QGraphicsRectItem {
+class ClipItem : public AbstractClipItem {
Q_OBJECT
public:
- ClipItem(DocClipBase *clip, int track, GenTime startpos, const QRectF & rect, GenTime duration, double fps);
+ ClipItem(DocClipBase *clip, ItemInfo info, GenTime cropStart, double scale, double fps);
virtual ~ ClipItem();
virtual void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget);
virtual int type() const;
- void moveTo(int x, double scale, double offset, int newTrack);
void resizeStart(int posx, double scale);
void resizeEnd(int posx, double scale);
OPERATIONTYPE operationMode(QPointF pos, double scale);
int clipType();
DocClipBase *baseClip();
QString clipName();
- GenTime maxDuration() const;
- int track() const;
- void setTrack(int track);
- GenTime startPos() const;
- GenTime cropStart() const;
- GenTime endPos() const;
- GenTime duration() const;
- double fps() const;
QDomElement xml() const;
- int fadeIn() const;
- int fadeOut() const;
+
void setFadeOut(int pos, double scale);
void setFadeIn(int pos, double scale);
/** Give a string list of the clip's effect names */
QStringList effectNames();
/** Add an effect to the clip and return the parameters that will be passed to Mlt */
- QMap <QString, QString> addEffect(QDomElement effect);
+ QMap <QString, QString> addEffect(QDomElement effect, bool animate = true);
/** Get the effect parameters that will be passed to Mlt */
QMap <QString, QString> getEffectArgs(QDomElement effect);
/** Delete effect with id index */
/** Replace effect at pos ix with given value */
void setEffectAt(int ix, QDomElement effect);
void flashClip();
+ void addTransition(Transition*);
+ /** regenerate audio and video thumbnails */
+ void resetThumbs();
+ /** update clip properties from base clip */
+ void refreshClip();
+ /** Returns a list of times for this clip's markers */
+ QList <GenTime> snapMarkers();
+ uint fadeIn() const;
+ uint fadeOut() const;
protected:
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent * event);
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *);
private:
- QDomElement m_xml;
DocClipBase *m_clip;
OPERATIONTYPE m_resizeMode;
int m_grabPoint;
int m_producer;
CLIPTYPE m_clipType;
QString m_clipName;
- GenTime m_maxDuration;
- GenTime m_cropStart;
- GenTime m_cropDuration;
+ QString m_effectNames;
+ uint m_startFade;
+ uint m_endFade;
+
int m_maxTrack;
- int m_track;
- GenTime m_startPos;
+
QPixmap m_startPix;
QPixmap m_endPix;
bool m_hasThumbs;
QTimer *startThumbTimer;
QTimer *endThumbTimer;
- uint m_startFade;
- uint m_endFade;
+
/** counter used to provide a unique id to each effect */
int m_effectsCounter;
double m_opacity;
QTimeLine *m_timeLine;
uint m_thumbsRequested;
- double m_fps;
bool m_hover;
EffectsList m_effectList;
+ QList <Transition*> m_transitionsList;
QMap<int, QPixmap> audioThumbCachePic;
bool audioThumbWasDrawn, audioThumbReady;
double framePixelWidth;