on aa2feff help sign in
unity8/qml/Tutorial/TutorialBottom.qml
82 lines 2.5 kB history raw
1/*
2 * Copyright (C) 2014 Canonical, Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
17import QtQuick 2.3
18import Ubuntu.Components 1.1
19import Ubuntu.Gestures 0.1
20import "../Components"
21import "." as LocalComponents
23TutorialPage {
24 id: root
26 property alias edgeSize: dragArea.height
28 title: i18n.tr("Open special menus")
29 text: i18n.tr("Swipe up from the bottom edge.")
30 errorText: i18n.tr("You almost got it!") + "\n" + i18n.tr("Try again.")
31 fullTextWidth: true
33 foreground {
34 children: [
35 LocalComponents.Slider {
36 id: slider
37 anchors {
38 bottom: parent.bottom
39 bottomMargin: width / 2 - height / 2
40 horizontalCenter: parent.horizontalCenter
41 }
42 rotation: -90
43 offset: dragArea.useTouchY ? -dragArea.touchY : 0
44 active: dragArea.dragging
46 Behavior on offset {
47 id: offsetAnimation
48 UbuntuNumberAnimation {}
49 }
50 }
51 ]
52 }
54 EdgeDragArea {
55 id: dragArea
56 direction: Direction.Upwards
57 anchors {
58 bottom: parent.bottom
59 left: parent.left
60 right: parent.right
61 }
63 property bool useTouchY
65 onDraggingChanged: {
66 if (!dragging) {
67 if (slider.percent >= 0.85) {
68 root.hide();
69 } else if (slider.percent >= 0.15) {
70 root.showError();
71 }
72 }
74 // We use a separate vars here rather than just directly looking at
75 // 'dragging' because we want to preserve our 'slider.offset'
76 // value during the above percent check. Now that we made it,
77 // we can have 'slider.offset' go back to zero.
78 offsetAnimation.enabled = !dragging;
79 useTouchY = dragging;
80 }
81 }