From 9b8f945858e553a1b13e5b5cfbdfb8d0e05070aa Mon Sep 17 00:00:00 2001 From: Gunnar Sletta Date: Wed, 22 Dec 2010 12:09:25 +0100 Subject: Fixed gradient rectangles --- src/adaptationlayers/default/default_rectanglenode.cpp | 13 ++++++------- tests/gradients.qml | 15 +++++++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 tests/gradients.qml diff --git a/src/adaptationlayers/default/default_rectanglenode.cpp b/src/adaptationlayers/default/default_rectanglenode.cpp index b6d5f26..a36433f 100644 --- a/src/adaptationlayers/default/default_rectanglenode.cpp +++ b/src/adaptationlayers/default/default_rectanglenode.cpp @@ -282,13 +282,12 @@ void DefaultRectangleNode::updateGeometry() // Calculate from where in the texture to sample gradient colours. qreal gradientSourceX0 = 0, gradientSourceDX = 0, gradientSourceY = 0; - // ### gunnar: port properly... -// if (m_gradient_texture) { -// QRectF src = m_gradient_texture->sourceRect(); -// gradientSourceY = qreal(0.5) * (src.top() + src.bottom()); -// gradientSourceDX = src.width() / stops.size(); -// gradientSourceX0 = src.left() + qreal(0.5) * gradientSourceDX; -// } + if (m_gradient_texture.isReady()) { + QRectF src = m_gradient_texture.subRect(); + gradientSourceY = qreal(0.5) * (src.top() + src.bottom()); + gradientSourceDX = src.width() / stops.size(); + gradientSourceX0 = src.left() + qreal(0.5) * gradientSourceDX; + } if (m_radius > 0) { // Rounded corners. diff --git a/tests/gradients.qml b/tests/gradients.qml new file mode 100644 index 0000000..71a6d0b --- /dev/null +++ b/tests/gradients.qml @@ -0,0 +1,15 @@ +import QtQuick 1.0 + +Item { + width: 600 + height: 400 + + Rectangle { + width: 100 + height: 100 + gradient: Gradient { + GradientStop { position: 0; color: "red" } + GradientStop { position: 1; color: "blue" } + } + } +} -- cgit v1.2.3