aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/util/qquickpixmapcache.cpp6
-rw-r--r--tests/auto/quick/qquickimage/data/heart.svgzbin0 -> 1505 bytes
-rw-r--r--tests/auto/quick/qquickimage/tst_qquickimage.cpp18
3 files changed, 16 insertions, 8 deletions
diff --git a/src/quick/util/qquickpixmapcache.cpp b/src/quick/util/qquickpixmapcache.cpp
index 2ef95a5959..f9fc755932 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 0000000000..c1cb1109fa
--- /dev/null
+++ b/tests/auto/quick/qquickimage/data/heart.svgz
Binary files differ
diff --git a/tests/auto/quick/qquickimage/tst_qquickimage.cpp b/tests/auto/quick/qquickimage/tst_qquickimage.cpp
index aa64490162..5e55793d36 100644
--- a/tests/auto/quick/qquickimage/tst_qquickimage.cpp
+++ b/tests/auto/quick/qquickimage/tst_qquickimage.cpp
@@ -84,6 +84,7 @@ private slots:
void smooth();
void mirror();
void svg();
+ void svg_data();
void geometry();
void geometry_data();
void big();
@@ -144,7 +145,8 @@ void tst_qquickimage::imageSource_data()
QTest::newRow("remote redirected") << SERVER_ADDR "/oldcolors.png" << 120.0 << 120.0 << true << false << false << "";
if (QImageReader::supportedImageFormats().contains("svg"))
QTest::newRow("remote svg") << SERVER_ADDR "/heart.svg" << 550.0 << 500.0 << true << false << false << "";
-
+ if (QImageReader::supportedImageFormats().contains("svgz"))
+ QTest::newRow("remote svgz") << SERVER_ADDR "/heart.svgz" << 550.0 << 500.0 << true << false << false << "";
QTest::newRow("remote not found") << SERVER_ADDR "/no-such-file.png" << 0.0 << 0.0 << true
<< false << true << "file::2:1: QML Image: Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found";
@@ -359,12 +361,22 @@ void tst_qquickimage::mirror()
}
}
+void tst_qquickimage::svg_data()
+{
+ QTest::addColumn<QString>("src");
+ QTest::addColumn<QByteArray>("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(""));