summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-14 14:07:35 +0200
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-14 14:07:35 +0200
commit9f1c31c8a3cfd0f341987e8011abad172592dd3c (patch)
tree076dde6ec30ddcffd772b816a424a5de8612ef28
parent2f0fabdfc33d7ceed43fe3c543473081f51c4ec3 (diff)
parent3167c1374bb918033b5b4a5b54e0d0608698eeb0 (diff)
downloadqtsvg-9f1c31c8a3cfd0f341987e8011abad172592dd3c.tar.gz
Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: Ideff1b627a310a85d728d74ed25b83e7de5352fe
-rw-r--r--src/svg/qsvgstyle.cpp2
-rw-r--r--tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp9
2 files changed, 10 insertions, 1 deletions
diff --git a/src/svg/qsvgstyle.cpp b/src/svg/qsvgstyle.cpp
index ac36de2..982c168 100644
--- a/src/svg/qsvgstyle.cpp
+++ b/src/svg/qsvgstyle.cpp
@@ -929,7 +929,7 @@ void QSvgGradientStyle::resolveStops()
{
if (!m_link.isEmpty() && m_doc) {
QSvgStyleProperty *prop = m_doc->styleProperty(m_link);
- if (prop) {
+ if (prop && prop != this) {
if (prop->type() == QSvgStyleProperty::GRADIENT) {
QSvgGradientStyle *st =
static_cast<QSvgGradientStyle*>(prop);
diff --git a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
index 9d66b3d..5253a3d 100644
--- a/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
+++ b/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
@@ -612,6 +612,15 @@ void tst_QSvgRenderer::gradientRefs()
"<linearGradient id=\"gradient\" xlink:href=\"#gradient0\">"
"</linearGradient>"
"</defs>"
+ "</svg>",
+ "<svg>"
+ "<defs>"
+ "<linearGradient xlink:href=\"#0\" id=\"0\">"
+ "<stop offset=\"0\" stop-color=\"red\" stop-opacity=\"0\"/>"
+ "<stop offset=\"1\" stop-color=\"blue\"/>"
+ "</linearGradient>"
+ "</defs>"
+ "<rect fill=\"url(#0)\" height=\"8\" width=\"256\" x=\"0\" y=\"0\"/>"
"</svg>"
};
for (size_t i = 0 ; i < sizeof(svgs) / sizeof(svgs[0]) ; ++i)