mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2026-09-28 04:54:13 +02:00
687837d7a3
addShape()'s own "polygon" only ever produces the degenerate two-point form -- it shares addShape()'s p1/p2 constructor and nothing else. addPolygon()/setShapePolygon() take an arbitrary point list through QetShapeItem's public setPolygon(), pushed via the existing "polygon" Q_PROPERTY the same way a point-handle drag would. addPath()/setShapePathNodes() add the Path shape type: a polygon's points plus, per node, a kind (corner/smooth/symmetric) and optional bezier in/out handles, the same model the pen tool and node-edit mode build. PathNode holds std::optional<QPointF> members and isn't Q_PROPERTY-friendly, so setShapePathNodes() reuses PromoteShapeCommand's before/after XML snapshot mechanism instead -- the same fallback QetShapeItem::associatedUndoCommand() already uses for the identical reason on a PathAnchor/PathControlIn/PathControlOut handle drag. setShapeClosed() opens or closes a polygon or path through the existing "close" Q_PROPERTY. shapePolygon()/shapePathNodes() read a shape's current geometry back in scene coordinates, refusing (empty) on the wrong shape type. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>