diff options
-rw-r--r-- | src/quick/util/qquickimageprovider.cpp | 2 | ||||
-rw-r--r-- | tests/auto/quick/qquickimage/tst_qquickimage.cpp | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/quick/util/qquickimageprovider.cpp b/src/quick/util/qquickimageprovider.cpp index a1513336a5..4003b88d09 100644 --- a/src/quick/util/qquickimageprovider.cpp +++ b/src/quick/util/qquickimageprovider.cpp @@ -684,7 +684,7 @@ QSize QQuickImageProviderWithOptions::loadSize(const QSize &originalSize, const const bool preserveAspectCropOrFit = options.preserveAspectRatioCrop() || options.preserveAspectRatioFit(); - if (!preserveAspectCropOrFit && (format == "svg" || format == "svgz")) + if (!preserveAspectCropOrFit && (format == "svg" || format == "svgz") && !requestedSize.isEmpty()) return requestedSize; qreal ratio = 0.0; diff --git a/tests/auto/quick/qquickimage/tst_qquickimage.cpp b/tests/auto/quick/qquickimage/tst_qquickimage.cpp index 783e4aab4c..ec0ec6c2b6 100644 --- a/tests/auto/quick/qquickimage/tst_qquickimage.cpp +++ b/tests/auto/quick/qquickimage/tst_qquickimage.cpp @@ -418,6 +418,11 @@ void tst_qquickimage::svg() QCOMPARE(obj->width(), 200.0); QCOMPARE(obj->height(), 200.0); + obj->setSourceSize(QSize(100,0)); + QCOMPARE(obj->width(), 100.0); + // Due to aspect ratio calculations we can't get a precise + // check for all setups, so we allow a small margin of error + QVERIFY(qAbs(obj->height() - 141) < 1); delete obj; } |