From d596cd0f01151a6f23e25d84421961cc590662ac Mon Sep 17 00:00:00 2001 From: Till Theato Date: Tue, 1 Feb 2011 19:22:33 +0000 Subject: [PATCH] rotoscoping: fix point insertion with Qt < 4.6 svn path=/trunk/kdenlive/; revision=5374 --- src/onmonitoritems/rotoscoping/splineitem.cpp | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/onmonitoritems/rotoscoping/splineitem.cpp b/src/onmonitoritems/rotoscoping/splineitem.cpp index 1256a147..dba70d24 100644 --- a/src/onmonitoritems/rotoscoping/splineitem.cpp +++ b/src/onmonitoritems/rotoscoping/splineitem.cpp @@ -111,7 +111,7 @@ void SplineItem::mousePressEvent(QGraphicsSceneMouseEvent* event) QRectF r(event->scenePos() - QPointF(6, 6), QSizeF(12, 12)); if (path().intersects(r) && !path().contains(r)) { double t = 0; - BPointItem *i, *i1, *i2; + BPointItem *i1, *i2; BPoint p, p1, p2; int ix = getClosestPointOnCurve(event->scenePos(), &t); i1 = qgraphicsitem_cast(childItems().at(ix)); @@ -124,11 +124,27 @@ void SplineItem::mousePressEvent(QGraphicsSceneMouseEvent* event) i1->setPoint(p1); i2->setPoint(p2); - i = new BPointItem(p, this); - // TODO: make it work with Qt < 4.6 #if QT_VERSION >= 0x040600 + BPointItem *i = new BPointItem(p, this); i->stackBefore(i2); +#else + QList points; + BPointItem *item; + while (childItems().count()) { + item = qgraphicsitem_cast(childItems().takeFirst()); + points.append(item->getPoint()); + delete item; + } + int j = 0; + for ( ; j < points.count(); ++j) { + if (j == ix + 1) + new BPointItem(p, this); + new BPointItem(points.at(j), this); + } + if (j == ix + 1) + new BPointItem(p, this); #endif + } } } -- 2.39.5