From: Manuel Nickschas Date: Wed, 16 Jun 2010 14:21:52 +0000 (+0200) Subject: Set QSS-parsed gradients' coordinate system to ObjectBoundingMode X-Git-Tag: 0.7-beta1~51 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=7ce58ac01ce9f67c13bce15ff0db7b15872a7657 Set QSS-parsed gradients' coordinate system to ObjectBoundingMode 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. --- 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;