X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fabstractclipitem.h;h=eb07f21e03d35fcaff04d4a0f0eaf808b8fdf31f;hb=9185a624b1d46d1b4c3a5ac5fe57564e22c3cb1c;hp=6620745b6cdfe4b33193b6fd00c9b2e08cc8d538;hpb=5ed52e8237200fa4c189d7ece3acff774ed8f070;p=kdenlive diff --git a/src/abstractclipitem.h b/src/abstractclipitem.h index 6620745b..eb07f21e 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,36 +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, double 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); + virtual void resizeEnd(int posx); 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; - + //QRect visibleRect(); + void drawKeyFrames(QPainter *painter, QRectF exposedRect); + int mouseOverKeyFrames(QPointF pos, double maxOffset); + virtual void mousePressEvent(QGraphicsSceneMouseEvent * event); }; #endif