on xenial help sign in
Added right edge hinting to greeter.

Approved by PS Jenkins bot, Daniel d'Andrada.

commitd9a076c5ca5f1f7ecae513dfeb47b9ef90ece1b7 authorMichael Zanetti <michael.zanetti@canonical.com> dateThu 13 Jun 2013, 20:27 (13 years ago) parentaa1c067acf896e
4 files changed+75−12
Greeter/Greeter.qml+38−1 Greeter/GreeterContent.qml+5−3 tests/qmltests/Greeter/tst_Phone.qml+13−8 tests/qmltests/Greeter/tst_Tablet.qml+19
Greeter/Greeter.qml+38−1
@@ -30,11 +30,20 @@ Showable {
3030 readonly property bool narrowMode: !multiUser && width <= units.gu(60)
3131 readonly property bool multiUser: LightDM.Users.count > 1
3232
33− readonly property bool leftTeaserPressed: greeterContentLoader.status == Loader.Ready && greeterContentLoader.item.leftTeaserPressed
33+ readonly property bool leftTeaserPressed: greeterContentLoader.status == Loader.Ready &&
34+ greeterContentLoader.item.leftTeaserPressed
35+ readonly property bool rightTeaserPressed: greeterContentLoader.status == Loader.Ready &&
36+ greeterContentLoader.item.rightTeaserPressed
3437
3538 signal selected(int uid)
3639 signal unlocked(int uid)
3740
41+ onRightTeaserPressedChanged: {
42+ if (rightTeaserPressed) {
43+ teasingTimer.start();
44+ }
45+ }
46+
3847 Loader {
3948 id: greeterContentLoader
4049 objectName: "greeterContentLoader"
@@ -54,4 +63,32 @@ Showable {
5463 onUnlocked: greeter.unlocked(uid);
5564 }
5665 }
66+
67+ Timer {
68+ id: teasingTimer
69+ interval: 200
70+ }
71+
72+ states: [
73+ State {
74+ name: "teasing"
75+ when: greeter.rightTeaserPressed || teasingTimer.running
76+ PropertyChanges {
77+ target: greeter
78+ x: -units.gu(2)
79+ }
80+ }
81+ ]
82+ transitions: [
83+ Transition {
84+ from: "*"
85+ to: "*"
86+ NumberAnimation {
87+ target: greeter
88+ property: "x"
89+ duration: 300
90+ easing.type: Easing.OutCubic
91+ }
92+ }
93+ ]
5794}
Greeter/GreeterContent.qml+5−3
@@ -25,7 +25,10 @@ MouseArea {
2525
2626 property bool promptless: loginLoader.status == Loader.Ready && LightDM.Greeter.promptless
2727 property bool ready: wallpaper.status == Image.Ready
28− property alias leftTeaserPressed: leftTeaser.pressed
28+ property bool leftTeaserPressed: teasingMouseArea.pressed &&
29+ teasingMouseArea.mouseX < teasingMouseArea.width / 2
30+ property bool rightTeaserPressed: teasingMouseArea.pressed &&
31+ teasingMouseArea.mouseX > teasingMouseArea.width / 2
2932
3033 signal selected(int uid)
3134 signal unlocked(int uid)
@@ -57,9 +60,8 @@ MouseArea {
5760 }
5861
5962 MouseArea {
60− id: leftTeaser
63+ id: teasingMouseArea
6164 anchors.fill: parent
62− anchors.rightMargin: parent.width / 2
6365 }
6466
6567 Loader {
tests/qmltests/Greeter/tst_Phone.qml+13−8
@@ -46,17 +46,22 @@ Item {
4646 compare(greeter.narrowMode, true)
4747 }
4848
49− function test_teasingArea() {
50− tryCompare(greeter, "leftTeaserPressed", false)
51− mousePress(greeter, units.gu(2), greeter.height - units.gu(1))
52− tryCompare(greeter, "leftTeaserPressed", true)
53− mouseRelease(greeter, units.gu(2), greeter.height - units.gu(1))
54− tryCompare(greeter, "leftTeaserPressed", false)
49+ function test_teasingArea_data() {
50+ return [
51+ {tag: "left", posX: units.gu(2), leftPressed: true, rightPressed: false},
52+ {tag: "right", posX: greeter.width - units.gu(2), leftPressed: false, rightPressed: true}
53+ ]
54+ }
5555
56− mousePress(greeter, greeter.width - units.gu(2), greeter.height - units.gu(1))
56+ function test_teasingArea(data) {
5757 tryCompare(greeter, "leftTeaserPressed", false)
58− mouseRelease(greeter, units.gu(2), greeter.height - units.gu(1))
58+ tryCompare(greeter, "rightTeaserPressed", false)
59+ mousePress(greeter, data.posX, greeter.height - units.gu(1))
60+ tryCompare(greeter, "leftTeaserPressed", data.leftPressed)
61+ tryCompare(greeter, "rightTeaserPressed", data.rightPressed)
62+ mouseRelease(greeter, data.posX, greeter.height - units.gu(1))
5963 tryCompare(greeter, "leftTeaserPressed", false)
64+ tryCompare(greeter, "rightTeaserPressed", false)
6065 }
6166 }
6267}
tests/qmltests/Greeter/tst_Tablet.qml+19
@@ -305,5 +305,24 @@ Item {
305305 var index = select_user("no-background")
306306 compare(greeter.model.data(index, LightDM.UserRoles.BackgroundPathRole), "")
307307 }
308+
309+ function test_teasingArea_data() {
310+ return [
311+ {tag: "left", posX: units.gu(2), leftPressed: true, rightPressed: false},
312+ {tag: "right", posX: greeter.width - units.gu(2), leftPressed: false, rightPressed: true}
313+ ]
314+ }
315+
316+ function test_teasingArea(data) {
317+ tryCompare(greeter, "leftTeaserPressed", false)
318+ tryCompare(greeter, "rightTeaserPressed", false)
319+ mousePress(greeter, data.posX, greeter.height - units.gu(1))
320+ tryCompare(greeter, "leftTeaserPressed", data.leftPressed)
321+ tryCompare(greeter, "rightTeaserPressed", data.rightPressed)
322+ mouseRelease(greeter, data.posX, greeter.height - units.gu(1))
323+ tryCompare(greeter, "leftTeaserPressed", false)
324+ tryCompare(greeter, "rightTeaserPressed", false)
325+ }
326+
308327 }
309328}