derived classes for timeline objects
This commit is contained in:
@@ -109,7 +109,12 @@ void TimelineView::mousePressEvent(QMouseEvent *event)
|
||||
TimelineViewGhostItem* ghost = new TimelineViewGhostItem();
|
||||
TimelineViewClipItem* clip_item = static_cast<TimelineViewClipItem*>(item);
|
||||
|
||||
ghost->setRect(clip_item->rect());
|
||||
ClipBlock* clip = clip_item->clip();
|
||||
|
||||
ghost->SetIn(clip->in());
|
||||
ghost->SetOut(clip->out());
|
||||
ghost->SetTimebase(timebase_);
|
||||
|
||||
ghost->setPos(clip_item->pos());
|
||||
|
||||
ghost_items_.append(ghost);
|
||||
|
||||
@@ -34,6 +34,11 @@ TimelineViewClipItem::TimelineViewClipItem(QGraphicsItem* parent) :
|
||||
setFlag(QGraphicsItem::ItemIsSelectable, true);
|
||||
}
|
||||
|
||||
ClipBlock *TimelineViewClipItem::clip()
|
||||
{
|
||||
return clip_;
|
||||
}
|
||||
|
||||
void TimelineViewClipItem::SetClip(ClipBlock *clip)
|
||||
{
|
||||
clip_ = clip;
|
||||
|
||||
@@ -30,6 +30,7 @@ class TimelineViewClipItem : public TimelineViewRect
|
||||
public:
|
||||
TimelineViewClipItem(QGraphicsItem* parent = nullptr);
|
||||
|
||||
ClipBlock* clip();
|
||||
void SetClip(ClipBlock* clip);
|
||||
|
||||
protected:
|
||||
|
||||
@@ -23,8 +23,31 @@
|
||||
#include <QPainter>
|
||||
|
||||
TimelineViewGhostItem::TimelineViewGhostItem(QGraphicsItem *parent) :
|
||||
QGraphicsRectItem(parent)
|
||||
TimelineViewRect(parent)
|
||||
{
|
||||
setBrush(Qt::NoBrush);
|
||||
setPen(QPen(Qt::yellow, 2));
|
||||
setPen(QPen(Qt::yellow, 2)); // FIXME: Make customizable via CSS
|
||||
}
|
||||
|
||||
void TimelineViewGhostItem::SetIn(const rational &in)
|
||||
{
|
||||
in_ = in;
|
||||
|
||||
UpdateRect();
|
||||
}
|
||||
|
||||
void TimelineViewGhostItem::SetOut(const rational &out)
|
||||
{
|
||||
out_ = out;
|
||||
|
||||
UpdateRect();
|
||||
}
|
||||
|
||||
void TimelineViewGhostItem::UpdateRect()
|
||||
{
|
||||
rational length = out_ - in_;
|
||||
|
||||
setRect(0, 0, TimeToScreenCoord(length), 100);
|
||||
|
||||
setPos(TimeToScreenCoord(in_), 0);
|
||||
}
|
||||
|
||||
@@ -21,15 +21,24 @@
|
||||
#ifndef TIMELINEVIEWGHOSTITEM_H
|
||||
#define TIMELINEVIEWGHOSTITEM_H
|
||||
|
||||
#include <QGraphicsRectItem>
|
||||
#include "timelineviewrect.h"
|
||||
|
||||
class TimelineViewGhostItem : public QGraphicsRectItem
|
||||
class TimelineViewGhostItem : public TimelineViewRect
|
||||
{
|
||||
public:
|
||||
TimelineViewGhostItem(QGraphicsItem* parent = nullptr);
|
||||
|
||||
void SetIn(const rational& in);
|
||||
void SetOut(const rational& out);
|
||||
|
||||
protected:
|
||||
virtual void UpdateRect() override;
|
||||
|
||||
// virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
|
||||
|
||||
private:
|
||||
rational in_;
|
||||
rational out_;
|
||||
};
|
||||
|
||||
#endif // TIMELINEVIEWGHOSTITEM_H
|
||||
|
||||
Reference in New Issue
Block a user