From 5c496ad9527487a0d9d33ac0882fab439c993b02 Mon Sep 17 00:00:00 2001 From: Vladimir Belyavsky Date: Sat, 10 Dec 2022 18:20:46 +0300 Subject: AnimatedImage: Add ability to configure sourceSize This allows to reduce memory consumption and improve performance when you need to load and play hi-res GIF files or animated SVG. [ChangeLog][QtQuick][AnimatedImage] It's now possible to configure sourceSize property for AnimatedImage. This might be useful when you need e.g. to play hi-res GIF files in some smaller size. Fixes: QTBUG-57501 Change-Id: I26d464855bbc20e155a8fb589a48842986a3dea4 Reviewed-by: Shawn Rutledge --- .../qquickanimatedimage/tst_qquickanimatedimage.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp') diff --git a/tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp b/tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp index 1a01a8aca5..cb81ec8a07 100644 --- a/tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp +++ b/tests/auto/quick/qquickanimatedimage/tst_qquickanimatedimage.cpp @@ -52,9 +52,9 @@ private slots: void remote(); void remote_data(); void sourceSize(); + void setSourceSize(); void sourceSizeChanges(); void sourceSizeChanges_intermediate(); - void sourceSizeReadOnly(); void invalidSource(); void qtbug_16520(); void progressAndStatusChanges(); @@ -287,12 +287,19 @@ void tst_qquickanimatedimage::sourceSize() delete anim; } -void tst_qquickanimatedimage::sourceSizeReadOnly() +void tst_qquickanimatedimage::setSourceSize() { QQmlEngine engine; - QQmlComponent component(&engine, testFileUrl("stickmanerror1.qml")); - QVERIFY(component.isError()); - QCOMPARE(component.errors().at(0).description(), QString("Invalid property assignment: \"sourceSize\" is a read-only property")); + QQmlComponent component(&engine, testFileUrl("stickmansourcesized.qml")); + QScopedPointer anim(qobject_cast(component.create())); + QVERIFY(anim); + QCOMPARE(anim->sourceSize(), QSize(80, 60)); + + anim->setSourceSize(QSize(40, 30)); + QCOMPARE(anim->sourceSize(), QSize(40, 30)); + + anim->setSourceSize(QSize()); + QCOMPARE(anim->sourceSize(), QSize(160, 120)); } void tst_qquickanimatedimage::invalidSource() -- cgit v1.2.3