on xenial help sign in
add a point of no return
d8f6d1aMichael Zanetti
qml/Stages/PhoneStage.qml+17−7
@@ -224,14 +224,22 @@ Item {
224 flickableDirection: Qt.Horizontal
224 flickableDirection: Qt.Horizontal
225 enabled: coverFlip.visible
225 enabled: coverFlip.visible
226
226
227+ property bool passedFirstStage: false
228+
227 onContentXChanged: {
229 onContentXChanged: {
230+ if (coverFlickable.passedFirstStage && contentX < width * coverFlip.progressMarker1) {
231+ contentX = width * coverFlip.progressMarker1;
232+ return;
233+ }
234+
228 var progress = contentX / width
235 var progress = contentX / width
229 if (progress > coverFlip.progressMarker1) {
236 if (progress > coverFlip.progressMarker1) {
237+ coverFlickable.passedFirstStage = true;
230 progress += progress - coverFlip.progressMarker1
238 progress += progress - coverFlip.progressMarker1
231 }
239 }
232−
233 coverFlip.progress = progress;
240 coverFlip.progress = progress;
234 }
241 }
242+
235 Row {
243 Row {
236 id: coverFlip
244 id: coverFlip
237 height: parent.height
245 height: parent.height
@@ -262,9 +270,9 @@ Item {
262 property real oldProgress: 0
270 property real oldProgress: 0
263 onProgressChanged: {
271 onProgressChanged: {
264 if (coverFlipDragArea.dragging) {
272 if (coverFlipDragArea.dragging) {
265− if (oldProgress <= coverFlip.progressMarker1 && progress > coverFlip.progressMarker1) {
273+ if (oldProgress < coverFlip.progressMarker1 && progress >= coverFlip.progressMarker1) {
266 ApplicationManager.move(0, 1)
274 ApplicationManager.move(0, 1)
267− } else if (oldProgress >= coverFlip.progressMarker1 && progress <= coverFlip.progressMarker1) {
275+ } else if (oldProgress >= coverFlip.progressMarker1 && progress < coverFlip.progressMarker1) {
268 ApplicationManager.move(0, 1)
276 ApplicationManager.move(0, 1)
269 }
277 }
270 }
278 }
@@ -308,12 +316,13 @@ Item {
308 }
316 }
309 ScriptAction {
317 ScriptAction {
310 script: {
318 script: {
311− if (snapAnimation.targetContentX == root.width * coverFlip.progressMarker1) {
312− coverFlickable.contentX = 0;
313− }
314 if (snapAnimation.targetAppId) {
319 if (snapAnimation.targetAppId) {
320+ coverFlickable.passedFirstStage = false;
315 ApplicationManager.focusApplication(snapAnimation.targetAppId);
321 ApplicationManager.focusApplication(snapAnimation.targetAppId);
316 }
322 }
323+ if (snapAnimation.targetContentX == root.width * coverFlip.progressMarker1) {
324+ coverFlickable.contentX = 0;
325+ }
317 }
326 }
318 }
327 }
319 }
328 }
@@ -404,7 +413,7 @@ Item {
404 var newAngle = 0;
413 var newAngle = 0;
405 switch (index) {
414 switch (index) {
406 case 0:
415 case 0:
407− if (appImage.progress <= coverFlip.progressMarker1) {
416+ if (appImage.progress < coverFlip.progressMarker1) {
408 var progress = appImage.progress;
417 var progress = appImage.progress;
409 var angleDiff = coverFlip.endAngle;
418 var angleDiff = coverFlip.endAngle;
410 var progressDiff = coverFlip.progressMarker1;
419 var progressDiff = coverFlip.progressMarker1;
@@ -539,6 +548,7 @@ Item {
539 ApplicationManager.focusApplication(ApplicationManager.get(index).appId);
548 ApplicationManager.focusApplication(ApplicationManager.get(index).appId);
540 appImage.isSelected = false;
549 appImage.isSelected = false;
541 coverFlip.progress = 0;
550 coverFlip.progress = 0;
551+ coverFlickable.passedFirstStage = false;
542 }
552 }
543 }
553 }
544 }
554 }