From: Till Theato Date: Tue, 1 Feb 2011 21:52:18 +0000 (+0000) Subject: rotoscoping: allow deleting spline vertices using the right mouse button X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=e7071148605d0eef1a710a6fae1a8daa8a476846;p=kdenlive rotoscoping: allow deleting spline vertices using the right mouse button svn path=/trunk/kdenlive/; revision=5375 --- diff --git a/src/onmonitoritems/rotoscoping/bpointitem.cpp b/src/onmonitoritems/rotoscoping/bpointitem.cpp index 60e90028..4129a17d 100644 --- a/src/onmonitoritems/rotoscoping/bpointitem.cpp +++ b/src/onmonitoritems/rotoscoping/bpointitem.cpp @@ -123,6 +123,13 @@ void BPointItem::mousePressEvent(QGraphicsSceneMouseEvent* event) event->ignore(); setSelected(false); } else { + if (event->button() == Qt::RightButton && m_selection == 1) { + SplineItem *parent = qgraphicsitem_cast(parentItem()); + if (parent) { + parent->removeChild(this); + return; + } + } setSelected(true); } } diff --git a/src/onmonitoritems/rotoscoping/splineitem.cpp b/src/onmonitoritems/rotoscoping/splineitem.cpp index dba70d24..06228b02 100644 --- a/src/onmonitoritems/rotoscoping/splineitem.cpp +++ b/src/onmonitoritems/rotoscoping/splineitem.cpp @@ -103,6 +103,15 @@ QList SplineItem::getPoints() return points; } +void SplineItem::removeChild(QGraphicsItem* child) +{ + if (childItems().count() > 2) { + scene()->removeItem(child); + delete child; + updateSpline(); + } +} + void SplineItem::mousePressEvent(QGraphicsSceneMouseEvent* event) { QGraphicsItem::mousePressEvent(event); diff --git a/src/onmonitoritems/rotoscoping/splineitem.h b/src/onmonitoritems/rotoscoping/splineitem.h index 1f3dac1d..a6d53387 100644 --- a/src/onmonitoritems/rotoscoping/splineitem.h +++ b/src/onmonitoritems/rotoscoping/splineitem.h @@ -38,6 +38,8 @@ public: void updateSpline(); QList getPoints(); + void removeChild(QGraphicsItem *child); + protected: virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);