@@ -98,22 +98,23 @@ Rectangle {
98 // move mouse to center
98 // move mouse to center
99 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
99 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
101+ var oldScale = image.scale;
101 // Test Zoom-in Zoom-out twice.
102 // Test Zoom-in Zoom-out twice.
102 for (var c=0; c<2; c++) {
103 for (var c=0; c<2; c++) {
103 // zoom in
104 // zoom in
104 for (var i=0; i<10; i++) {
105 for (var i=0; i<10; i++) {
105 mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, 10);
106 mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, 10);
106− tryCompare(image, "scale", 1.0 + (i + 1) * 0.1);
107+ tryCompare(image, "scale", oldScale + (i + 1) * 0.1);
107− compare(flickable.contentWidth, lazyImage.width * image.scale);
108+ compare(flickable.contentWidth, Math.max(lazyImage.width * image.scale, flickable.width));
108− compare(flickable.contentHeight, lazyImage.height * image.scale);
109+ compare(flickable.contentHeight, Math.max(lazyImage.height * image.scale, flickable.height));
111 // zoom out
112 // zoom out
112 for (var i=0; i<10; i++) {
113 for (var i=0; i<10; i++) {
113 mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, -10);
114 mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, -10);
114− tryCompare(image, "scale", 2.0 - (i + 1) * 0.1);
115+ tryCompare(image, "scale", oldScale + 1.0 - (i + 1) * 0.1);
115− compare(flickable.contentWidth, lazyImage.width * image.scale);
116+ compare(flickable.contentWidth, Math.max(lazyImage.width * image.scale, flickable.width));
116− compare(flickable.contentHeight, lazyImage.height * image.scale);
117+ compare(flickable.contentHeight, Math.max(lazyImage.height * image.scale, flickable.height));
@@ -123,16 +124,12 @@ Rectangle {
123 zoomable:false,
124 zoomable:false,
124 answer1: true,
125 answer1: true,
125 answer2: false,
126 answer2: false,
126− answer3: true,
127+ answer3: true },
129 { source:widgetData2["source"],
128 { source:widgetData2["source"],
130 zoomable:true,
129 zoomable:true,
131 answer1: false,
130 answer1: false,
132 answer2: true,
131 answer2: true,
133− answer3: false,
132+ answer3: false }
134− answer4: 1.7740461882048026,
@@ -163,7 +160,7 @@ Rectangle {
163 var y2End = zoomableImage.height * 5 / 6;
160 var y2End = zoomableImage.height * 5 / 6;
165 var oldScale = image.scale;
162 var oldScale = image.scale;
166−
163+ var newScale = -1;
167 // move mouse to center
164 // move mouse to center
168 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
165 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
@@ -172,20 +169,25 @@ Rectangle {
172 wait(3000); // have to delay between two consequent pinch event.
169 wait(3000); // have to delay between two consequent pinch event.
173 // pinch zoom-in
170 // pinch zoom-in
174 touchPinch(zoomableImage, x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End);
171 touchPinch(zoomableImage, x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End);
172+ waitForRendering(image);
176− tryCompare(image, "scale", data.answer4);
174+ if (newScale == -1) {
177− var newScale = image.scale;
175+ newScale = image.scale;
177+ tryCompare(image, "scale", newScale);
178 compare(newScale == oldScale, data.answer1, "scale factor not equal: "+ oldScale + "=?" + newScale);
178 compare(newScale == oldScale, data.answer1, "scale factor not equal: "+ oldScale + "=?" + newScale);
179 compare(newScale > oldScale, data.answer2, "scale factor didn't changed");
179 compare(newScale > oldScale, data.answer2, "scale factor didn't changed");
180 compare(signalSpy.count == 0, data.answer3, "scale signal count error");
180 compare(signalSpy.count == 0, data.answer3, "scale signal count error");
181− compare(newScale, data.answer4, "scale factor error");
181+ compare(image.scale, newScale, "scale factor error");
182− compare(flickable.contentWidth, lazyImage.width * image.scale);
182+ compare(flickable.contentWidth, Math.max(lazyImage.width * image.scale, flickable.width));
183− compare(flickable.contentHeight, lazyImage.height * image.scale);
183+ compare(flickable.contentHeight, Math.max(lazyImage.height * image.scale, flickable.height));
185 wait(3000); // have to delay between two consequent pinch event.
185 wait(3000); // have to delay between two consequent pinch event.
186 // pinch zoom-out
186 // pinch zoom-out
187 touchPinch(zoomableImage, x1End, y1End, x1Start, y1Start, x2End, y2End, x2Start, y2Start);
187 touchPinch(zoomableImage, x1End, y1End, x1Start, y1Start, x2End, y2End, x2Start, y2Start);
188− tryCompare(image, "scale", data.answer5);
188+ tryCompare(image, "scale", oldScale);
189+ compare(flickable.contentWidth, Math.max(lazyImage.width * image.scale, flickable.width));
190+ compare(flickable.contentHeight, Math.max(lazyImage.height * image.scale, flickable.height));