diff options
author | Ivan Solovev <ivan.solovev@qt.io> | 2023-04-20 14:14:37 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-04-21 16:40:30 +0000 |
commit | 96a59f576c0451d4b0c916098bcfd070f8293252 (patch) | |
tree | 08238ff26448672f70407d10db61d90f9f41ad4c | |
parent | 80dea4da8765ce3a728c23159226e08a8cccb5cd (diff) |
ScatterChartItem: do not use item's position when resizing marker
The existing code was using current marker's coordinates when updating
its size, but that actually resulted in double offset, because later
we are explicitly calling setPos() on the marker.
Fix it by always using (0, 0) as an offset when calculating the
marker's rectangle.
Fixes: QTBUG-112904
Change-Id: I427cbd502f1637a7da71a7f2b23ccb0228ac3f01
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
(cherry picked from commit edfcf8b309434e81eb602e2ca3e0d6c935f2c2eb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r-- | src/charts/scatterchart/scatterchartitem.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/charts/scatterchart/scatterchartitem.cpp b/src/charts/scatterchart/scatterchartitem.cpp index 6b0db764..ca6bae51 100644 --- a/src/charts/scatterchart/scatterchartitem.cpp +++ b/src/charts/scatterchart/scatterchartitem.cpp @@ -127,32 +127,32 @@ void ScatterChartItem::resizeMarker(QGraphicsItem *marker, const int size) switch (m_markerShape) { case QScatterSeries::MarkerShapeCircle: { QGraphicsEllipseItem *item = static_cast<QGraphicsEllipseItem *>(marker); - item->setRect(item->x(), item->y(), size, size); + item->setRect(0, 0, size, size); break; } case QScatterSeries::MarkerShapeRectangle: { QGraphicsRectItem *item = static_cast<QGraphicsRectItem *>(marker); - item->setRect(item->x(), item->y(), size, size); + item->setRect(0, 0, size, size); break; } case QScatterSeries::MarkerShapeRotatedRectangle: { QGraphicsPolygonItem *item = static_cast<QGraphicsPolygonItem *>(marker); - item->setPolygon(RotatedRectangleMarker::polygon(item->x(), item->y(), size, size)); + item->setPolygon(RotatedRectangleMarker::polygon(0, 0, size, size)); break; } case QScatterSeries::MarkerShapeTriangle: { QGraphicsPolygonItem *item = static_cast<QGraphicsPolygonItem *>(marker); - item->setPolygon(TriangleMarker::polygon(item->x(), item->y(), size, size)); + item->setPolygon(TriangleMarker::polygon(0, 0, size, size)); break; } case QScatterSeries::MarkerShapeStar: { QGraphicsPolygonItem *item = static_cast<QGraphicsPolygonItem *>(marker); - item->setPolygon(StarMarker::polygon(item->x(), item->y(), size, size)); + item->setPolygon(StarMarker::polygon(0, 0, size, size)); break; } case QScatterSeries::MarkerShapePentagon: { QGraphicsPolygonItem *item = static_cast<QGraphicsPolygonItem *>(marker); - item->setPolygon(PentagonMarker::polygon(item->x(), item->y(), size, size)); + item->setPolygon(PentagonMarker::polygon(0, 0, size, size)); break; } default: |