@@ -82,22 +82,6 @@ Rectangle {
8282 return filenameA;
8383 }
8484
85− function test_pinch_data() {
86− return [ { source:widgetData2["source"],
87− zoomable:false,
88− answer1: true,
89− answer2: false,
90− answer3: true,
91− answer4: 1.0 },
92− { source:widgetData2["source"],
93− zoomable:true,
94− answer1: false,
95− answer2: true,
96− answer3: false,
97− answer4: 1.7740461882048026 }
98− ]
99− }
100−
10185 function test_mousewheel() {
10286 var image = findChild(zoomableImage, "image");
10387 var lazyImage = findChild(zoomableImage, "lazyImage");
@@ -131,6 +115,45 @@ Rectangle {
131115 }
132116 }
133117
118+ function touchPinch(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End) {
119+ var event1 = touchEvent();
120+ // first finger
121+ event1.press(0, x1Start, y1Start);
122+ event1.commit();
123+ // second finger
124+ event1.stationary(0);
125+ event1.press(1, x2Start, y2Start);
126+ event1.commit();
127+
128+ // pinch
129+ for (var i = 0.0; i < 1.0; i += 0.02) {
130+ event1.move(0, x1Start + (x1End - x1Start) * i, y1Start + (y1End - y1Start) * i);
131+ event1.move(1, x2Start + (x2End - x2Start) * i, y2Start + (y2End - y2Start) * i);
132+ event1.commit();
133+ }
134+
135+ // release
136+ event1.release(0, x1End, y1End);
137+ event1.release(1, x2End, y2End);
138+ event1.commit();
139+ }
140+
141+ function test_pinch_data() {
142+ return [ { source:widgetData2["source"],
143+ zoomable:false,
144+ answer1: true,
145+ answer2: false,
146+ answer3: true,
147+ answer4: 1.0 },
148+ { source:widgetData2["source"],
149+ zoomable:true,
150+ answer1: false,
151+ answer2: true,
152+ answer3: false,
153+ answer4: 1.7740461882048026 }
154+ ]
155+ }
156+
134157 function test_pinch(data) {
135158 var image = findChild(zoomableImage, "image");
136159 var lazyImage = findChild(zoomableImage, "lazyImage");
@@ -162,26 +185,8 @@ Rectangle {
162185 // move mouse to center
163186 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
164187
165− var event1 = touchEvent();
166− // first finger
167− event1.press(0, x1Start, y1Start);
168− event1.commit();
169− // second finger
170− event1.stationary(0);
171− event1.press(1, x2Start, y2Start);
172− event1.commit();
173−
174188 // pinch
175− for (var i = 0.0; i < 1.0; i += 0.02) {
176− event1.move(0, x1Start + (x1End - x1Start) * i, y1Start + (y1End - y1Start) * i);
177− event1.move(1, x2Start + (x2End - x2Start) * i, y2Start + (y2End - y2Start) * i);
178− event1.commit();
179− }
180−
181− // release
182− event1.release(0, x1End, y1End);
183− event1.release(1, x2End, y2End);
184− event1.commit();
189+ touchPinch(x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End);
185190
186191 tryCompare(image, "scale", data.answer4);
187192 var newScale = image.scale;
@@ -191,6 +196,13 @@ Rectangle {
191196 compare(newScale, data.answer4, "scale factor error");
192197 compare(flickable.contentWidth, lazyImage.width * image.scale);
193198 compare(flickable.contentHeight, lazyImage.height * image.scale);
199+
200+ // move mouse to center
201+ mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
202+
203+ // pinch
204+ touchPinch(x1End, y1End, x1Start, y1Start, x2End, y2End, x2Start, y2Start);
205+ tryCompare(image, "scale", oldScale);
194206 }
195207 }
196208}