From 7ce58ac01ce9f67c13bce15ff0db7b15872a7657 Mon Sep 17 00:00:00 2001 From: Manuel Nickschas Date: Wed, 16 Jun 2010 16:21:52 +0200 Subject: [PATCH] Set QSS-parsed gradients' coordinate system to ObjectBoundingMode MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In this mode, gradient coordinates are relative to the bounding rect of the object to be drawn. Thus, gradients can be specified between (0,0) and (1,1) in stylesheets and will do The Right Thing™ regardless of the object's size. This is also what Qt uses for its widgets. --- src/uisupport/qssparser.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/uisupport/qssparser.cpp b/src/uisupport/qssparser.cpp index b91aef43..06e4db2d 100644 --- a/src/uisupport/qssparser.cpp +++ b/src/uisupport/qssparser.cpp @@ -466,6 +466,7 @@ QBrush QssParser::parseBrush(const QString &str, bool *ok) { return QBrush(); } QLinearGradient gradient(x1, y1, x2, y2); + gradient.setCoordinateMode(QGradient::ObjectBoundingMode); gradient.setStops(stops); if(ok) *ok = true; @@ -487,6 +488,7 @@ QBrush QssParser::parseBrush(const QString &str, bool *ok) { return QBrush(); } QConicalGradient gradient(cx, cy, angle); + gradient.setCoordinateMode(QGradient::ObjectBoundingMode); gradient.setStops(stops); if(ok) *ok = true; @@ -510,6 +512,7 @@ QBrush QssParser::parseBrush(const QString &str, bool *ok) { return QBrush(); } QRadialGradient gradient(cx, cy, radius, fx, fy); + gradient.setCoordinateMode(QGradient::ObjectBoundingMode); gradient.setStops(stops); if(ok) *ok = true; -- 2.20.1