From f4c99c16bcf8638ccff7aabe4eff707150f11022 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 1 Oct 2014 18:02:56 +0200 Subject: QSvgGenerator: make use of the element [ChangeLog][][QSvgGenerator] Make use of the element for drawing rectangles instead of generating a number of path strokes. Task-number: QTBUG-1359 Change-Id: I54163a13f66089c7ff3d29953ba3e923e3983517 Reviewed-by: Friedemann Kleint Reviewed-by: Andy Shaw --- src/svg/qsvggenerator.cpp | 16 ++++++++++++++++ .../auto/qsvggenerator/referenceSvgs/fileName_output.svg | 2 +- .../auto/qsvggenerator/referenceSvgs/radial_gradient.svg | 4 ++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/svg/qsvggenerator.cpp b/src/svg/qsvggenerator.cpp index 6a12043..1cb342a 100644 --- a/src/svg/qsvggenerator.cpp +++ b/src/svg/qsvggenerator.cpp @@ -165,6 +165,7 @@ public: void drawPath(const QPainterPath &path); void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr); void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode); + void drawRects(const QRectF *rects, int rectCount) Q_DECL_OVERRIDE; void drawTextItem(const QPointF &pt, const QTextItem &item); void drawImage(const QRectF &r, const QImage &pm, const QRectF &sr, Qt::ImageConversionFlags flags = Qt::AutoColor); @@ -1038,6 +1039,21 @@ void QSvgPaintEngine::drawPolygon(const QPointF *points, int pointCount, } } +void QSvgPaintEngine::drawRects(const QRectF *rects, int rectCount) +{ + Q_D(QSvgPaintEngine); + + for (int i=0; i < rectCount; ++i) { + const QRectF &rect = rects[i]; + *d->stream << "pen().isCosmetic()) + *d->stream << " vector-effect=\"non-scaling-stroke\""; + *d->stream << " x=\"" << rect.x() << "\" y=\"" << rect.y() + << "\" width=\"" << rect.width() << "\" height=\"" << rect.height() + << "\"/>" << endl; + } +} + void QSvgPaintEngine::drawTextItem(const QPointF &pt, const QTextItem &textItem) { Q_D(QSvgPaintEngine); diff --git a/tests/auto/qsvggenerator/referenceSvgs/fileName_output.svg b/tests/auto/qsvggenerator/referenceSvgs/fileName_output.svg index 1e78e17..3519f6a 100644 --- a/tests/auto/qsvggenerator/referenceSvgs/fileName_output.svg +++ b/tests/auto/qsvggenerator/referenceSvgs/fileName_output.svg @@ -9,7 +9,7 @@ - + diff --git a/tests/auto/qsvggenerator/referenceSvgs/radial_gradient.svg b/tests/auto/qsvggenerator/referenceSvgs/radial_gradient.svg index 2c5c03e..a56674c 100644 --- a/tests/auto/qsvggenerator/referenceSvgs/radial_gradient.svg +++ b/tests/auto/qsvggenerator/referenceSvgs/radial_gradient.svg @@ -18,13 +18,13 @@ - + - + -- cgit v1.2.1