diff --git a/src/domain/UBGraphicsItemUndoCommand.cpp b/src/domain/UBGraphicsItemUndoCommand.cpp index 794b718b..93bedf2a 100644 --- a/src/domain/UBGraphicsItemUndoCommand.cpp +++ b/src/domain/UBGraphicsItemUndoCommand.cpp @@ -120,7 +120,11 @@ void UBGraphicsItemUndoCommand::undo() { UBGraphicsPolygonItem *polygonItem = qgraphicsitem_cast(item); if (polygonItem) + { + mScene->removeItem(polygonItem); + mScene->removeItemFromDeletion(polygonItem); polygonItem->strokesGroup()->addToGroup(polygonItem); + } } UBApplication::boardController->freezeW3CWidget(item, false); @@ -225,7 +229,11 @@ void UBGraphicsItemUndoCommand::redo() UBGraphicsPolygonItem *polygonItem = qgraphicsitem_cast(item); if (polygonItem) + { + mScene->removeItem(polygonItem); + mScene->removeItemFromDeletion(polygonItem); polygonItem->strokesGroup()->addToGroup(polygonItem); + } } } diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 41054984..52df42a8 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -843,6 +843,7 @@ void UBGraphicsScene::eraseLineTo(const QPointF &pEndPoint, const qreal &pWidth) //remove full polygon item for replace it by couple of polygons who creates the same stroke without a part which intersects with eraser mRemovedItems << intersectedPolygonItem; + intersectedPolygonItem->strokesGroup()->removeFromGroup(intersectedPolygonItem); removeItem(intersectedPolygonItem); }