X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fabstractclipitem.h;h=79072ea5f6ada2dad26879464e40ffb3f4e757e3;hb=9d899241b114a54ac9a72fd2f31db0e12a07d32a;hp=621cedb0ba4cf658c88889c9444c6c1fc71616ad;hpb=d5b037c856ac9d3c86c117771c6d43f2f0b6baab;p=kdenlive diff --git a/src/abstractclipitem.h b/src/abstractclipitem.h index 621cedb0..79072ea5 100644 --- a/src/abstractclipitem.h +++ b/src/abstractclipitem.h @@ -1,3 +1,23 @@ +/*************************************************************************** + * Copyright (C) 2008 by Marco Gittler (g.marco@freenet.de) * + * Copyright (C) 2008 by Jean-Baptiste Mardelle (jb@kdenlive.org) * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * + ***************************************************************************/ + #ifndef ABSTRACTCLIPITEM #define ABSTRACTCLIPITEM @@ -5,38 +25,59 @@ #include "definitions.h" #include "gentime.h" -class AbstractClipItem : public QObject , public QGraphicsRectItem { +class CustomTrackScene; +class QGraphicsSceneMouseEvent; + +class AbstractClipItem : public QObject , public QGraphicsRectItem +{ Q_OBJECT public: - AbstractClipItem(const QRectF& rect); - virtual OPERATIONTYPE operationMode(QPointF pos, double scale) = 0; + AbstractClipItem(const ItemInfo info, const QRectF& rect, double fps); + void updateSelectedKeyFrame(); + void updateKeyFramePos(const GenTime pos, const double value); + void addKeyFrame(const GenTime pos, const double value); + bool hasKeyFrames() const; + int selectedKeyFramePos() const; + double selectedKeyFrameValue() const; + double keyFrameFactor() const; + ItemInfo info() const; + CustomTrackScene* projectScene(); + void updateRectGeometry(); + void updateItem(); + void setItemLocked(bool locked); + bool isItemLocked() const; + + virtual OPERATIONTYPE operationMode(QPointF pos) = 0; virtual GenTime startPos() const ; virtual void setTrack(int track); virtual GenTime endPos() const ; virtual int track() const ; - virtual void moveTo(int x, double scale, int offset, int newTrack); virtual GenTime cropStart() const ; - virtual void resizeStart(int posx, double scale); - virtual void resizeEnd(int posx, double scale); - virtual void setFadeOut(int pos, double scale); - virtual void setFadeIn(int pos, double scale); - virtual GenTime duration() const; + virtual GenTime cropDuration() const ; + virtual void resizeStart(int posx, double speed = 1.0); + virtual void resizeEnd(int posx, double speed = 1.0); virtual double fps() const; - virtual int fadeIn() const; - virtual int fadeOut() const; + virtual void updateFps(double fps); virtual GenTime maxDuration() const; + virtual void setCropStart(GenTime pos); + protected: - int m_track; - GenTime m_cropStart; - GenTime m_cropDuration; - GenTime m_startPos; + ItemInfo m_info; +// int m_track; + int m_editedKeyframe; + int m_selectedKeyframe; + /* GenTime m_cropStart; + GenTime m_cropDuration; + GenTime m_startPos;*/ GenTime m_maxDuration; + QMap m_keyframes; + double m_keyframeFactor; + double m_keyframeDefault; double m_fps; - uint m_startFade; - uint m_endFade; - QPainterPath upperRectPart(QRectF); - QPainterPath lowerRectPart(QRectF); - QRect visibleRect(); + //QRect visibleRect(); + void drawKeyFrames(QPainter *painter, QRectF exposedRect); + int mouseOverKeyFrames(QPointF pos, double maxOffset); + virtual void mousePressEvent(QGraphicsSceneMouseEvent * event); }; #endif