From 9064de5692c83139aa3730ac6f8684c9402ae5db Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Mon, 28 May 2012 16:38:35 +1000 Subject: [PATCH] Fix scaling of svgz images. Force scaling of svgz images to source size as is done for svg. This also removes a work around for QTBUG-9053 which has now been resolved. Task-number: QTBUG-9053 Change-Id: I3aa898f74960ceb2e515bdb3aa44aa5a1a7a64d2 Reviewed-by: Yann Bodson --- src/quick/util/qquickpixmapcache.cpp | 6 +----- tests/auto/quick/qquickimage/data/heart.svgz | Bin 0 -> 1505 bytes tests/auto/quick/qquickimage/tst_qquickimage.cpp | 18 +++++++++++++++--- 3 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 tests/auto/quick/qquickimage/data/heart.svgz diff --git a/src/quick/util/qquickpixmapcache.cpp b/src/quick/util/qquickpixmapcache.cpp index 2ef95a5..f9fc755 100644 --- a/src/quick/util/qquickpixmapcache.cpp +++ b/src/quick/util/qquickpixmapcache.cpp @@ -321,11 +321,7 @@ static bool readImage(const QUrl& url, QIODevice *dev, QImage *image, QString *e { QImageReader imgio(dev); - bool force_scale = false; - if (url.path().endsWith(QLatin1String(".svg"),Qt::CaseInsensitive)) { - imgio.setFormat("svg"); // QSvgPlugin::capabilities bug QTBUG-9053 - force_scale = true; - } + const bool force_scale = imgio.format() == "svg" || imgio.format() == "svgz"; if (requestSize.width() > 0 || requestSize.height() > 0) { QSize s = imgio.size(); diff --git a/tests/auto/quick/qquickimage/data/heart.svgz b/tests/auto/quick/qquickimage/data/heart.svgz new file mode 100644 index 0000000000000000000000000000000000000000..c1cb1109fa524ce3f50b03f2f0c07ceb89e0d9d8 GIT binary patch literal 1505 zcmV<71s?hziwFoLm9$R)188Moa&#_pc4q*!S6h$MI23;8S9mioAR5PZ;>0P_qJ*7%Pz}qW;zp}`{lEJdj0%vTcW*ebfKz+LosoX ztWuQ~)n?)R{^^w~9HiT%%92u5a^Y0UdA@vf{fq0OmyJwXnW00`=IBlJMW;zE(c`>r z>$&G04hLKeM68;P_XN4_@>=gVXkW;~3v~zX2tf=!oWqBJ>s%I_yj?gVpje1F3hUNE zMYeE2jl$btZ$1S~a6q1>dksNC%r$)GnMzlQhEQM5Z*Nq(+sdld2r@t)W!pkt`t~hka%qH1xo+JYQYcLt z7=pHBt(bl0K-ID~UpPGGm_?k&CR6A|rNP*#f(O5=9TbUpow-hAo~9=$xx$UqYS*NF zozv7C#j=xFy=%&jou!^EWtXi-F`Z<`+Mc;TYoN(g*GVe1H_}JtCR<+$o5peM5#}-G zf`qG&Rh!(omA)GF#^OxMlfyotHCU0jlC5|1>BbwSU4pYVn{4bi-z^!Sbt~H>OWFip zA&&Wnn^*r|9e=nK5LBAZ|4_{rWP(dpY6m;Okh65&7Huh)uMN7;TZ69GBf74=iQP$N zQm0K(w*ax_r@YVzeiKxwW}CnUPf7^1sH8?&azq_kac99+>+Ar~4d91Ty+}60TUjh~ zRTiLr?G5XRaWemq_Z{hntUS^AV{#`F64R7C`MyAyUJ%g5rqZ8bw|~~h?MjswBC>6) zFF85S(L2?_JF5>Y>fNd=bS|5|iN9_jF}sTv4pa^2YJaF0K%Dj0K9A1&>WxMR=e9ps zrsf1zw)1~w^<)MXjRBYbS(B3$12MQImOa?aTSr?PT(-+%n{1@nrB7k=bRq+z_j!c- z#8h+Kmlt3wV=us6n{5bYZMb#OBD9WVT?7-+! zR$YYCy3g8d+}_(;%iF#F|DCJeKrI_cMgQ|~KS;QqvR!I+@0jxs8@VZT+Z3za&l!`77h8JVXT>sXvknWlWkm;7mQG$B+&mJaHm_&FG!z2+#flWV}>p8@PP##x~r8LZ`x*O$58`lreH}Itj*GSlBvVOVHW*RR6ujbu_&bc zA#)fcgsI4V9t0u8L$WCrwZ*?Gwe1EIn8M8CAQRD8?{)XUD3hy0m!BSTGu_&BC4W%V zO`~@8R%LSFS*$Wy$#UVmHDp8$_Ui;DNU-t_vCzi>~7R~3D_CyUt43gB35sPB%!;;K6g8|IJRlHHAUNi6>@$mI`#w>}C~q+d{qqb?8udlaug;b|g6CA=$WZA>h7(9O zWdZ-@!95EPO?Ozdam0JhjB&_4_9G4zVI;yNAii%=X-Ec1A9@w~&;*+XNEo$G)F28m zCr~rM5ph}YL*S+xA?Pp>idjg33e5s-cCrYFi+mDWG(S4| zwy123l7&+?(U=VcFy("src"); + QTest::addColumn("format"); + + QTest::newRow("svg") << testFileUrl("heart.svg").toString() << QByteArray("svg"); + QTest::newRow("svgz") << testFileUrl("heart.svgz").toString() << QByteArray("svgz"); +} + void tst_qquickimage::svg() { - if (!QImageReader::supportedImageFormats().contains("svg")) + QFETCH(QString, src); + QFETCH(QByteArray, format); + if (!QImageReader::supportedImageFormats().contains(format)) QSKIP("svg support not available"); - QString src = testFileUrl("heart.svg").toString(); QString componentStr = "import QtQuick 2.0\nImage { source: \"" + src + "\"; sourceSize.width: 300; sourceSize.height: 300 }"; QQmlComponent component(&engine); component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); -- 1.7.2.5