summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGunnar Sletta <gunnar.sletta@nokia.com>2010-12-22 12:09:25 +0100
committerGunnar Sletta <gunnar.sletta@nokia.com>2010-12-22 12:09:25 +0100
commit9b8f945858e553a1b13e5b5cfbdfb8d0e05070aa (patch)
tree2b51c6a0b1d9dbd6ce24550ed9dc863b75ac4be9
parent96f72a8f8e5f0bee3ce3bb92cc859e28e59fa45c (diff)
Fixed gradient rectangles
-rw-r--r--src/adaptationlayers/default/default_rectanglenode.cpp13
-rw-r--r--tests/gradients.qml15
2 files changed, 21 insertions, 7 deletions
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" }
+ }
+ }
+}