diff options
author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2018-05-03 14:37:23 +0200 |
---|---|---|
committer | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2018-06-29 09:04:00 +0000 |
commit | 056809af50752adddb75b1b86b0d810dcc97b73e (patch) | |
tree | 887e7c78f557f85f983204527b6f5bec31de1b0f | |
parent | 3d3544f85a8d0835f9fcc2b62800c278cc42ebfe (diff) | |
download | qtsvg-056809af50752adddb75b1b86b0d810dcc97b73e.tar.gz |
Fix transformation of gradients for svg objectBoundingBox coordinates
QBrush transformations were not applied in the object coordinate
space, even when using Qt's ObjectBoundingMode. Use the new ObjectMode
instead to fix this.
Task-number: QTBUG-59978
Task-number: QTBUG-67995
Change-Id: I79f529853ed8bca86b1811f4edf66244a026a27c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r-- | src/svg/qsvggenerator.cpp | 2 | ||||
-rw-r--r-- | src/svg/qsvghandler.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/svg/qsvggenerator.cpp b/src/svg/qsvggenerator.cpp index 424cc76..07f8d74 100644 --- a/src/svg/qsvggenerator.cpp +++ b/src/svg/qsvggenerator.cpp @@ -334,7 +334,7 @@ public: void saveGradientUnits(QTextStream &str, const QGradient *gradient) { str << QLatin1String("gradientUnits=\""); - if (gradient && gradient->coordinateMode() == QGradient::ObjectBoundingMode) + if (gradient && (gradient->coordinateMode() == QGradient::ObjectBoundingMode || gradient->coordinateMode() == QGradient::ObjectMode)) str << QLatin1String("objectBoundingBox"); else str << QLatin1String("userSpaceOnUse"); diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp index 6d2e279..1d83af2 100644 --- a/src/svg/qsvghandler.cpp +++ b/src/svg/qsvghandler.cpp @@ -2864,7 +2864,7 @@ static void parseBaseGradient(QSvgNode *node, } if (units.isEmpty() || units == QLatin1String("objectBoundingBox")) { - grad->setCoordinateMode(QGradient::ObjectBoundingMode); + grad->setCoordinateMode(QGradient::ObjectMode); } } |