From fd4852c6a43724f8083558da678437ec26b8d68f Mon Sep 17 00:00:00 2001 From: thomas_lucky13 Date: Mon, 12 Sep 2022 11:44:31 +0400 Subject: [PATCH] fix Delegate item --- src/domain/UBGraphicsScene.cpp | 4 ++-- src/domain/UBGraphicsVectorItem.cpp | 9 +++++++++ src/domain/UBGraphicsVectorItem.h | 8 ++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index f6d6c5df..70776e30 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1043,10 +1043,10 @@ void UBGraphicsScene::addVectorItemToCurrentStroke(UBGraphicsVectorItem* vectorI vectorItem->SetDelegate(); mpLastVector = vectorItem; - mAddedItems.insert(vectorItem); + mAddedItems.insert(vectorItem->StrokeGroup()); // Here we add the item to the scene - addItem(vectorItem); + addItem(vectorItem->StrokeGroup()); } diff --git a/src/domain/UBGraphicsVectorItem.cpp b/src/domain/UBGraphicsVectorItem.cpp index 7f4b1419..72cd1dea 100644 --- a/src/domain/UBGraphicsVectorItem.cpp +++ b/src/domain/UBGraphicsVectorItem.cpp @@ -59,6 +59,15 @@ void UBGraphicsVectorItem::initialize() setFlag(QGraphicsItem::ItemIsSelectable, true); setFlag(QGraphicsItem::ItemIsMovable, true); setSublines(); + + mStrokeGroup = new UBGraphicsStrokesGroup(); + mStrokeGroup->setTransform(this->transform()); + UBGraphicsItem::assignZValue(mStrokeGroup, this->zValue()); + + if(this->transform().isIdentity()) + this->setTransform(mStrokeGroup->transform()); + + mStrokeGroup->addToGroup(this); } void UBGraphicsVectorItem::setSublines() diff --git a/src/domain/UBGraphicsVectorItem.h b/src/domain/UBGraphicsVectorItem.h index 96734521..0241ceb6 100644 --- a/src/domain/UBGraphicsVectorItem.h +++ b/src/domain/UBGraphicsVectorItem.h @@ -3,6 +3,7 @@ #include #include "core/UB.h" +#include "domain/UBGraphicsStrokesGroup.h" #include "UBItem.h" class UBItem; @@ -89,6 +90,11 @@ public: return sublines; } + UBGraphicsStrokesGroup* StrokeGroup() + { + return mStrokeGroup; + } + protected: void paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget); virtual QVariant itemChange(GraphicsItemChange change, const QVariant &value); @@ -106,6 +112,8 @@ public: QColor mColorOnLightBackground; QList sublines; UBVectorStyle::Enum style; + + UBGraphicsStrokesGroup* mStrokeGroup; }; #endif // UBGRAPHICSVECTORITEM_H