on xenial help sign in
Use LazyImage instead of AnimatedImage
commit3b3788125f9f46f3ccf9fb19595ff0ebe6aa7bf2 authorYing-Chun Liu <paul.liu@canonical.com> dateWed 12 Mar 2014, 00:31 (13 years ago) parent038eabe
2 files changed+20−11
qml/Dash/Previews/PreviewZoomableImage.qml+8−7 tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+12−4
qml/Dash/Previews/PreviewZoomableImage.qml+8−7
@@ -44,7 +44,7 @@ PreviewWidget {
4444 width: Math.max(image.width * image.scale, flickable.width)
4545 height: Math.max(image.height * image.scale, flickable.height)
4646
47− AnimatedImage {
47+ LazyImage {
4848 id: image
4949 objectName: "image"
5050 property real prevScale
@@ -54,9 +54,9 @@ PreviewWidget {
5454 source: widgetData["source"]
5555
5656 function calculateSize() {
57− scale = Math.min(flickable.width / width, flickable.height / height) * 0.98;
58− pinchArea.minScale = scale;
59− prevScale = Math.min(scale, 1);
57+ image.scale = Math.min(flickable.width / image.width, flickable.height / image.height) * 0.98;
58+ pinchArea.minScale = image.scale;
59+ prevScale = Math.min(image.scale, 1);
6060 }
6161
6262 onScaleChanged: {
@@ -72,10 +72,11 @@ PreviewWidget {
7272 prevScale = scale;
7373 }
7474
75− onStatusChanged: {
76− if (status == Image.Ready) {
75+ onStateChanged: {
76+ if (state == "ready") {
77+ image.width = flickable.width;
78+ image.height = flickable.height;
7779 calculateSize();
78− playing = true;
7980 }
8081 }
8182 }
tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+12−4
@@ -54,10 +54,14 @@ Rectangle {
5454 var image = findChild(zoomableImage, "image");
5555
5656 zoomableImage.widgetData = widgetData0;
57− tryCompare(image.state, "default");
57+ waitForRendering(zoomableImage);
58+ tryCompare(image, "state", "default");
59+
60+ wait(3000);
5861
5962 zoomableImage.widgetData = widgetData1;
60− tryCompare(image.state, "ready");
63+ waitForRendering(zoomableImage);
64+ tryCompare(image, "state", "ready");
6165 }
6266
6367 function test_zoomable() {
@@ -65,11 +69,10 @@ Rectangle {
6569
6670 zoomableImage.widgetData = widgetData2;
6771 waitForRendering(zoomableImage);
68− tryCompare(image.state, "ready");
6972
73+ tryCompare(image, "state", "ready");
7074 waitForRendering(image);
7175
72− var oldScale = image.scale;
7376 var event1 = touchEvent();
7477 var event2 = touchEvent();
7578 var x1Start = zoomableImage.width * 2 / 6;
@@ -81,9 +84,13 @@ Rectangle {
8184 var x2End = zoomableImage.width * 5 / 6;
8285 var y2End = zoomableImage.height * 5 / 6;
8386
87+ var oldScale = image.scale;
88+
8489 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
8590 mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, 10);
8691
92+ wait(300);
93+
8794 event1.press(0, x1Start, y1Start);
8895 event1.commit();
8996 event1.press(1, x2Start, y2Start);
@@ -102,6 +109,7 @@ Rectangle {
102109 event1.commit();
103110
104111 var newScale = image.scale;
112+
105113 compare(newScale > oldScale, true, "the image should be larger than before");
106114
107115 }