on xenial help sign in
Fix weirdness centering.
47a18f4Ying-Chun Liu
qml/Components/ZoomableImage.qml+2−15
@@ -113,22 +113,9 @@ Item {
113
113
114 pinch.target: image
114 pinch.target: image
115 pinch.minimumScale: minScale
115 pinch.minimumScale: minScale
116− pinch.dragAxis: Pinch.XAndYAxis
116+ pinch.maximumScale: 10
117
117
118− onPinchStarted: {
119− pinch.accepted = true;
120− }
121−
122− onPinchUpdated: {
123− image.scale = pinch.scale;
124− pinch.accepted = true;
125− }
126−
127− onPinchFinished: {
128− image.scale = pinch.scale;
129− flickable.returnToBounds();
118+ onPinchFinished: flickable.returnToBounds()
130− pinch.accepted = true;
131− }
132 }
119 }
133
120
134 MouseArea {
121 MouseArea {
tests/qmltests/Components/tst_ZoomableImage.qml+37−33
@@ -98,20 +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);
100
100
101− // zoom in
101+ // Test Zoom-in Zoom-out twice.
102− for (var i=0; i<10; i++) {
102+ for (var c=0; c<2; c++) {
103+ // zoom in
104+ for (var i=0; i<10; i++) {
103− mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, 10);
105+ mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, 10);
104− tryCompare(image, "scale", 1.0 + (i + 1) * 0.1);
106+ tryCompare(image, "scale", 1.0 + (i + 1) * 0.1);
105− compare(flickable.contentWidth, lazyImage.width * image.scale);
107+ compare(flickable.contentWidth, lazyImage.width * image.scale);
106− compare(flickable.contentHeight, lazyImage.height * image.scale);
108+ compare(flickable.contentHeight, lazyImage.height * image.scale);
107− }
109+ }
108−
110+
109− // zoom out
111+ // zoom out
110− for (var i=0; i<10; i++) {
112+ for (var i=0; i<10; i++) {
111− mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, -10);
113+ mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, -10);
112− tryCompare(image, "scale", 2.0 - (i + 1) * 0.1);
114+ tryCompare(image, "scale", 2.0 - (i + 1) * 0.1);
113− compare(flickable.contentWidth, lazyImage.width * image.scale);
115+ compare(flickable.contentWidth, lazyImage.width * image.scale);
114− compare(flickable.contentHeight, lazyImage.height * image.scale);
116+ compare(flickable.contentHeight, lazyImage.height * image.scale);
117+ }
115 }
118 }
116 }
119 }
117
120
@@ -129,7 +132,7 @@ Rectangle {
129 answer2: true,
132 answer2: true,
130 answer3: false,
133 answer3: false,
131 answer4: 1.7740461882048026,
134 answer4: 1.7740461882048026,
132− answer5: 0.5405058029189072 }
135+ answer5: 1.0 }
133 ]
136 ]
134 }
137 }
135
138
@@ -164,25 +167,26 @@ Rectangle {
164 // move mouse to center
167 // move mouse to center
165 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
168 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
166
169
167− // pinch
170+ // Test Zoom-in Zoom-out twice.
171+ for (var c=0; c<2; c++) {
172+ wait(3000); // have to delay between two consequent pinch event.
173+ // pinch zoom-in
168− touchPinch(zoomableImage, x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End);
174+ touchPinch(zoomableImage, x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End);
169−
175+
170− tryCompare(image, "scale", data.answer4);
176+ tryCompare(image, "scale", data.answer4);
171− var newScale = image.scale;
177+ var newScale = image.scale;
172− compare(newScale == oldScale, data.answer1, "scale factor not equal: "+ oldScale + "=?" + newScale);
178+ compare(newScale == oldScale, data.answer1, "scale factor not equal: "+ oldScale + "=?" + newScale);
173− compare(newScale > oldScale, data.answer2, "scale factor didn't changed");
179+ compare(newScale > oldScale, data.answer2, "scale factor didn't changed");
174− compare(signalSpy.count == 0, data.answer3, "scale signal count error");
180+ compare(signalSpy.count == 0, data.answer3, "scale signal count error");
175− compare(newScale, data.answer4, "scale factor error");
181+ compare(newScale, data.answer4, "scale factor error");
176− compare(flickable.contentWidth, lazyImage.width * image.scale);
182+ compare(flickable.contentWidth, lazyImage.width * image.scale);
177− compare(flickable.contentHeight, lazyImage.height * image.scale);
183+ compare(flickable.contentHeight, lazyImage.height * image.scale);
178−
179− // move mouse to center
180− mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
181− wait(3000); // have to delay between two pinch event.
182
184
185+ wait(3000); // have to delay between two consequent pinch event.
183− // pinch
186+ // pinch zoom-out
184− touchPinch(zoomableImage, x1End, y1End, x1Start, y1Start, x2End, y2End, x2Start, y2Start);
187+ touchPinch(zoomableImage, x1End, y1End, x1Start, y1Start, x2End, y2End, x2Start, y2Start);
185− tryCompare(image, "scale", data.answer5);
188+ tryCompare(image, "scale", data.answer5);
189+ }
186 }
190 }
187 }
191 }
188}
192}