From 552df6878160287d3fd1984f3ef4d496ebc9e57f Mon Sep 17 00:00:00 2001 From: Claudio Valerio Date: Tue, 22 Apr 2014 17:36:52 +0200 Subject: [PATCH] fixed stroke transformation --- src/domain/UBGraphicsStrokesGroup.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp index 9cae2e20..6dbb0ff2 100644 --- a/src/domain/UBGraphicsStrokesGroup.cpp +++ b/src/domain/UBGraphicsStrokesGroup.cpp @@ -59,6 +59,7 @@ void UBGraphicsStrokesGroup::setUuid(const QUuid &pUuid) UBItem::setUuid(pUuid); setData(UBGraphicsItemData::ItemUuid, QVariant(pUuid)); //store item uuid inside the QGraphicsItem to fast operations with Items on the scene } + void UBGraphicsStrokesGroup::setColor(const QColor &color, colorType pColorType) { //TODO Implement common mechanism of managing groups, drop UBGraphicsStroke if it's obsolete @@ -140,10 +141,16 @@ void UBGraphicsStrokesGroup::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) UBItem* UBGraphicsStrokesGroup::deepCopy() const { + QTransform groupTransform = transform(); + + qDebug() << "Initial original transform " << groupTransform; + UBGraphicsStrokesGroup* copy = new UBGraphicsStrokesGroup(); copyItemParameters(copy); + copy->resetTransform(); + + qDebug() << "Initial copy transform " << copy->transform(); - QTransform groupTransform = transform(); const_cast(this)->resetTransform(); QList chl = childItems(); @@ -159,7 +166,6 @@ UBItem* UBGraphicsStrokesGroup::deepCopy() const if (polygonCopy) { QGraphicsItem* pItem = dynamic_cast(polygonCopy); - polygonCopy->setTransform(groupTransform); copy->addToGroup(pItem); polygonCopy->setStrokesGroup(copy); polygonCopy->setStroke(newStroke); @@ -167,7 +173,16 @@ UBItem* UBGraphicsStrokesGroup::deepCopy() const } } const_cast(this)->setTransform(groupTransform); - + copy->setTransform(groupTransform); + + for(int i = 0 ; i < childItems().count(); i += 1){ + Q_ASSERT(childItems().at(i)->transform().m11() == copy->childItems().at(i)->transform().m11()); + Q_ASSERT(childItems().at(i)->transform().m12() == copy->childItems().at(i)->transform().m12()); + Q_ASSERT(childItems().at(i)->transform().m21() == copy->childItems().at(i)->transform().m21()); + Q_ASSERT(childItems().at(i)->transform().m22() == copy->childItems().at(i)->transform().m22()); + Q_ASSERT(childItems().at(i)->transform().m31() == copy->childItems().at(i)->transform().m31()); + Q_ASSERT(childItems().at(i)->transform().m32() == copy->childItems().at(i)->transform().m32()); + } return copy; }