added basic ghost functionality
This commit is contained in:
@@ -21,12 +21,15 @@
|
||||
#include "timelineviewclipitem.h"
|
||||
|
||||
#include <QBrush>
|
||||
#include <QGraphicsScene>
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
#include <QPainter>
|
||||
#include <QStyleOptionGraphicsItem>
|
||||
|
||||
TimelineViewClipItem::TimelineViewClipItem(QGraphicsItem* parent) :
|
||||
QGraphicsRectItem(parent),
|
||||
clip_(nullptr)
|
||||
clip_(nullptr),
|
||||
ghost_(nullptr)
|
||||
{
|
||||
setBrush(Qt::white);
|
||||
setFlag(QGraphicsItem::ItemIsSelectable, true);
|
||||
@@ -61,3 +64,32 @@ void TimelineViewClipItem::paint(QPainter *painter, const QStyleOptionGraphicsIt
|
||||
painter->drawLine(QPointF(rect().left(), rect().bottom() - 1), QPointF(rect().right(), rect().bottom() - 1));
|
||||
painter->drawLine(QPointF(rect().right(), rect().bottom() - 1), QPointF(rect().right(), rect().top()));
|
||||
}
|
||||
|
||||
void TimelineViewClipItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
QGraphicsRectItem::mousePressEvent(event);
|
||||
|
||||
ghost_ = new TimelineViewGhostItem();
|
||||
ghost_->setRect(rect());
|
||||
scene()->addItem(ghost_);
|
||||
}
|
||||
|
||||
void TimelineViewClipItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
QGraphicsRectItem::mouseMoveEvent(event);
|
||||
|
||||
if (ghost_ != nullptr) {
|
||||
ghost_->setPos(event->scenePos());
|
||||
}
|
||||
}
|
||||
|
||||
void TimelineViewClipItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
|
||||
{
|
||||
QGraphicsRectItem::mouseReleaseEvent(event);
|
||||
|
||||
if (ghost_ != nullptr) {
|
||||
scene()->removeItem(ghost_);
|
||||
delete ghost_;
|
||||
ghost_ = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <QGraphicsRectItem>
|
||||
|
||||
#include "node/block/clip/clip.h"
|
||||
#include "timelineviewghostitem.h"
|
||||
|
||||
class TimelineViewClipItem : public QGraphicsRectItem
|
||||
{
|
||||
@@ -35,8 +36,14 @@ public:
|
||||
protected:
|
||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
|
||||
|
||||
virtual void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
|
||||
|
||||
private:
|
||||
ClipBlock* clip_;
|
||||
|
||||
TimelineViewGhostItem* ghost_;
|
||||
};
|
||||
|
||||
#endif // TIMELINEVIEWCLIPITEM_H
|
||||
|
||||
Reference in New Issue
Block a user