Merge lp:~cimi/unity8/unity8.hud-2_hint-reveal-commit into lp:unity8

Proposed by Andrea Cimitan on 2013-09-25
Status: Merged
Approved by: Michał Sawicz on 2013-10-03
Approved revision: 333
Merged at revision: 383
Proposed branch: lp:~cimi/unity8/unity8.hud-2_hint-reveal-commit
Merge into: lp:unity8
Diff against target: 524 lines (+189/-43)
9 files modified
Bottombar/Bottombar.qml (+81/-16)
Shell.qml (+2/-0)
plugins/Unity/bottombarvisibilitycommunicatorshell.cpp (+15/-1)
plugins/Unity/bottombarvisibilitycommunicatorshell.h (+6/-0)
tests/autopilot/unity8/shell/__init__.py (+14/-0)
tests/autopilot/unity8/shell/emulators/dash.py (+15/-6)
tests/autopilot/unity8/shell/emulators/hud.py (+8/-9)
tests/autopilot/unity8/shell/emulators/main_window.py (+3/-0)
tests/autopilot/unity8/shell/tests/test_hud.py (+45/-11)
To merge this branch: bzr merge lp:~cimi/unity8/unity8.hud-2_hint-reveal-commit
Reviewer Review Type Date Requested Status
PS Jenkins bot (community) continuous-integration Approve on 2013-10-03
Michael Zanetti (community) Approve on 2013-10-02
Michał Sawicz 2013-09-25 Needs Fixing on 2013-09-25
Review via email: mp+187488@code.launchpad.net

Commit message

Add behaviours to the hud reveal.

Description of the change

Add some extra behaviours for the hud button, following design guidelines.
Requires a branch for ubuntu-ui-toolkit to function properly with the toolbar (not required to run, though)

To post a comment you must log in.
Michał Sawicz (saviq) wrote :

tests/autopilot/unity8/shell/tests/test_hud.py: multiple new lines at end of file

review: Needs Fixing
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:324
http://jenkins.qa.ubuntu.com/job/unity8-ci/1122/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4009
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1618
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1869
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/145
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1122
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1122/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1121
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/325
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4101
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4101/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1620
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1620/artifact/work/output/*zip*/output.zip
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1359
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1371

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1122/rebuild

review: Needs Fixing (continuous-integration)
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:325
http://jenkins.qa.ubuntu.com/job/unity8-ci/1148/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4065
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1685
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1900
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/171
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1148
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1148/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1147
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/375
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4168
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4168/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1687
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1687/artifact/work/output/*zip*/output.zip
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1412
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1424

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1148/rebuild

review: Needs Fixing (continuous-integration)
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:326
http://jenkins.qa.ubuntu.com/job/unity8-ci/1167/
Executed test runs:
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4170
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1834
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1928
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/190
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1167
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1167/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1166
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/466
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/37
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/37/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1836
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1836/artifact/work/output/*zip*/output.zip
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1533
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1545

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1167/rebuild

review: Needs Fixing (continuous-integration)
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:325
http://jenkins.qa.ubuntu.com/job/unity8-ci/1169/
Executed test runs:
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4186
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1853
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1930
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/192
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1169
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1169/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1168
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/481
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/53
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/53/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1855
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1855/artifact/work/output/*zip*/output.zip
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1551
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1563

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1169/rebuild

review: Needs Fixing (continuous-integration)
Michael Zanetti (mzanetti) wrote :

Is position really a double? Seems like a pixel value to me.

===

243 bool forceHidden() const;
244 + double position() const;
245 void setForceHidden(bool forceHidden);
246 + void setPosition(double position);

Usually we group them like this:

243 bool forceHidden() const;
245 void setForceHidden(bool forceHidden);

244 + double position() const;
246 + void setPosition(double position);

===

Can you move the _drag() method to some common place? maybe the __init__.py or something like that. I don't think copying that all over the place is a good idea.

review: Needs Fixing
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:327
http://jenkins.qa.ubuntu.com/job/unity8-ci/1193/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy-vm/165
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1968
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1966
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/216
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1193
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1193/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1192
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-vm-saucy/119
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4313
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4313/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1970
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1970/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1660
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1678

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1193/rebuild

review: Needs Fixing (continuous-integration)
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:330
http://jenkins.qa.ubuntu.com/job/unity8-ci/1200/
Executed test runs:
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy-vm/178
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/1989
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1974
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/223
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1200
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1200/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1199
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-vm-saucy/131
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4326
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-i386/4326/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1991
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/1991/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1681
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1698

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1200/rebuild

review: Needs Fixing (continuous-integration)
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:331
http://jenkins.qa.ubuntu.com/job/unity8-ci/1208/
Executed test runs:
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4311
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/2019
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1984
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/231
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1208
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1208/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1207
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/601
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/180
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/180/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2021
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2021/artifact/work/output/*zip*/output.zip
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1709
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1726

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1208/rebuild

review: Needs Fixing (continuous-integration)
PS Jenkins bot (ps-jenkins) wrote :

PASSED: Continuous integration, rev:332
http://jenkins.qa.ubuntu.com/job/unity8-ci/1211/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4356
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/2079
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/1995
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/234
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1211
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1211/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1210
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/642
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/230
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/230/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2081
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2081/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1767
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1784

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1211/rebuild

review: Approve (continuous-integration)
Michael Zanetti (mzanetti) wrote :

lgtm

review: Approve
PS Jenkins bot (ps-jenkins) wrote :

PASSED: Continuous integration, rev:333
http://jenkins.qa.ubuntu.com/job/unity8-ci/1219/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4367
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/2093
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/2005
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-ci/242
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1219
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-ci/1219/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-ci/1218
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/652
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/241
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/241/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2095
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2095/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1779
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1796

Click here to trigger a rebuild:
http://s-jenkins:8080/job/unity8-ci/1219/rebuild

review: Approve (continuous-integration)
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Autolanding.
More details in the following jenkins job:
http://jenkins.qa.ubuntu.com/job/unity8-autolanding/532/
Executed test runs:
    SUCCESS: http://s-jenkins:8080/job/generic-cleanup-mbs/2600
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4377
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/2108
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/2012
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-autolanding/117
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-autolanding/536
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-autolanding/536/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-autolanding/536
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/662
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/251
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/251/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2110
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2110/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1795
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1811

review: Needs Fixing (continuous-integration)
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Autolanding.
More details in the following jenkins job:
http://jenkins.qa.ubuntu.com/job/unity8-autolanding/541/
Executed test runs:
    SUCCESS: http://s-jenkins:8080/job/generic-cleanup-mbs/2622
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-saucy/4434
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-touch/2181
    UNSTABLE: http://jenkins.qa.ubuntu.com/job/unity-phablet-qmluitests-saucy/2037
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-amd64-autolanding/126
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-autolanding/545
        deb: http://jenkins.qa.ubuntu.com/job/unity8-saucy-armhf-autolanding/545/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/unity8-saucy-i386-autolanding/545
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-saucy/717
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/309
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-amd64/309/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2183
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-saucy-armhf/2183/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-maguro/1859
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/1876

review: Needs Fixing (continuous-integration)
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'Bottombar/Bottombar.qml'
--- Bottombar/Bottombar.qml 2013-09-12 04:51:31 +0000
+++ Bottombar/Bottombar.qml 2013-10-02 09:27:24 +0000
@@ -34,15 +34,32 @@
3434
35 state: "hidden"35 state: "hidden"
3636
37 function hide() {
38 dismissTimer.stop()
39 bottombar.state = "hidden"
40 }
41
42 onApplicationIsOnForegroundChanged: {
43 if (!applicationIsOnForeground) {
44 hide()
45 }
46 }
47
37 onStateChanged: {48 onStateChanged: {
38 if (state == "hidden") {49 if (state == "hidden") {
39 dismissTimer.stop()50 dismissTimer.stop()
51 bottomBarVisibilityCommunicatorShell.forceHidden = false
40 } else {52 } else {
41 dismissTimer.restart()53 dismissTimer.restart()
42 }54 }
43 }55 }
4456
45 onPreventHidingChanged: {57 onPreventHidingChanged: {
58 if (!preventHiding) {
59 if (state == "hint" || state == "reveal")
60 hide()
61 }
62
46 if (dismissTimer.running) {63 if (dismissTimer.running) {
47 dismissTimer.restart();64 dismissTimer.restart();
48 }65 }
@@ -50,7 +67,7 @@
5067
51 Timer {68 Timer {
52 id: dismissTimer69 id: dismissTimer
53 interval: 500070 interval: 1000
54 onTriggered: {71 onTriggered: {
55 if (!bottombar.preventHiding) {72 if (!bottombar.preventHiding) {
56 bottombar.state = "hidden"73 bottombar.state = "hidden"
@@ -103,24 +120,29 @@
103120
104 EdgeDragArea {121 EdgeDragArea {
105 id: dragArea122 id: dragArea
123 objectName: "hudDragArea"
106 width: parent.width124 width: parent.width
107 height: distanceThreshold125 height: distanceThreshold
108 anchors.bottom: parent.bottom126 anchors.bottom: parent.bottom
109127
110 distanceThreshold: units.gu(1)128 distanceThreshold: units.gu(8)
111 enabled: !theHud.shown && bottombar.enabled && applicationIsOnForeground129 enabled: !theHud.shown && bottombar.enabled && applicationIsOnForeground
112 direction: Direction.Upwards130 direction: Direction.Upwards
131 maxSilenceTime: 2000
113132
114 property int previousStatus: -1133 property int previousStatus: -1
115 property real touchStartX: -1134 property real touchStartX: -1
116135
136 readonly property real distanceFromThreshold: (-distance) - distanceThreshold // distance is negative
137 readonly property real revealDistance: units.gu(2)
138 readonly property real commitDistance: units.gu(6)
139 readonly property real commitProgress: MathLocal.clamp(distanceFromThreshold / commitDistance, 0, 1)
140
117 onStatusChanged: {141 onStatusChanged: {
118 if (status === DirectionalDragArea.WaitingForTouch) {142 if (status === DirectionalDragArea.WaitingForTouch) {
119 if (previousStatus == DirectionalDragArea.Recognized) {143 if (previousStatus == DirectionalDragArea.Recognized) {
120 if (hudButton.mouseOver) {144 if (hudButton.mouseOver) {
121 hudButton.clicked()145 hudButton.clicked()
122 } else {
123 bottombar.state = "hidden"
124 }146 }
125 }147 }
126 } else if (status === DirectionalDragArea.Undecided) {148 } else if (status === DirectionalDragArea.Undecided) {
@@ -128,35 +150,78 @@
128 touchStartX = touchX150 touchStartX = touchX
129 }151 }
130 } else if (status === DirectionalDragArea.Recognized) {152 } else if (status === DirectionalDragArea.Recognized) {
131 bottombar.state = "shown"153 bottombar.state = "hint"
132 }154 }
133 previousStatus = status155 previousStatus = status
134 }156 }
157
158 onDistanceChanged: {
159 if (status === DirectionalDragArea.Recognized) {
160 if (distanceFromThreshold > commitDistance)
161 bottombar.state = "shown"
162 else if (distanceFromThreshold > revealDistance)
163 bottombar.state = "reveal"
164 }
165 }
166 }
167
168 Item {
169 id: dismissArea
170 anchors {
171 top: parent.top
172 left: parent.left
173 right: parent.right
174 }
175 height: parent.height - bottomBarVisibilityCommunicatorShell.position
176
177 MouseArea {
178 anchors.fill: parent
179 enabled: bottombar.state == "shown"
180 onPressed: {
181 bottomBarVisibilityCommunicatorShell.forceHidden = true
182 bottombar.state = "hidden"
183 }
184 }
185
186 InputFilterArea {
187 anchors.fill: parent
188 blockInput: (hudButton.opacity == 1)
189 }
135 }190 }
136191
137 MouseArea {192 MouseArea {
138 anchors.fill: parent193 anchors {
139 enabled: bottombar.state == "shown"194 top: dismissArea.bottom
195 left: parent.left
196 right: parent.right
197 bottom: parent.bottom
198 }
199 enabled: bottombar.state == "shown" && bottomBarVisibilityCommunicatorShell.position > 0
140 onPressed: {200 onPressed: {
141 bottombar.state = "hidden"201 bottombar.state = "hidden"
142 }202 }
143 }203 }
144204
145 InputFilterArea {
146 anchors.fill: parent
147 blockInput: (hudButton.opacity == 1)
148 }
149
150 states: [205 states: [
151 State {206 State {
152 name: "hidden"207 name: "hidden"
153 PropertyChanges { target: hudButton; opacity: 0}208 PropertyChanges { target: hudButton; opacity: 0 }
154 PropertyChanges { target: hudButton; bottomMargin: units.gu(-1)}209 PropertyChanges { target: hudButton; bottomMargin: units.gu(-2) }
210 },
211 State {
212 name: "hint"
213 extend: "hidden"
214 PropertyChanges { target: hudButton; opacity: 0.5 }
215 },
216 State {
217 name: "reveal"
218 extend: "hint"
219 PropertyChanges { target: hudButton; bottomMargin: units.gu(-2) + units.gu(2) * dragArea.commitProgress }
155 },220 },
156 State {221 State {
157 name: "shown"222 name: "shown"
158 PropertyChanges { target: hudButton; opacity: 1}223 PropertyChanges { target: hudButton; opacity: 1 }
159 PropertyChanges { target: hudButton; bottomMargin: units.gu(0)}224 PropertyChanges { target: hudButton; bottomMargin: units.gu(0) }
160 }225 }
161 ]226 ]
162}227}
163228
=== modified file 'Shell.qml'
--- Shell.qml 2013-09-30 15:47:18 +0000
+++ Shell.qml 2013-10-02 09:27:24 +0000
@@ -623,6 +623,7 @@
623 }623 }
624624
625 Bottombar {625 Bottombar {
626 id: bottombar
626 theHud: hud627 theHud: hud
627 anchors.fill: parent628 anchors.fill: parent
628 enabled: hud.available629 enabled: hud.available
@@ -663,6 +664,7 @@
663 if (shown) {664 if (shown) {
664 panel.indicators.hide()665 panel.indicators.hide()
665 hud.hide()666 hud.hide()
667 bottombar.hide()
666 }668 }
667 }669 }
668 }670 }
669671
=== modified file 'plugins/Unity/bottombarvisibilitycommunicatorshell.cpp'
--- plugins/Unity/bottombarvisibilitycommunicatorshell.cpp 2013-06-05 22:03:08 +0000
+++ plugins/Unity/bottombarvisibilitycommunicatorshell.cpp 2013-10-02 09:27:24 +0000
@@ -17,7 +17,8 @@
17#include "bottombarvisibilitycommunicatorshell.h"17#include "bottombarvisibilitycommunicatorshell.h"
1818
19BottomBarVisibilityCommunicatorShell::BottomBarVisibilityCommunicatorShell()19BottomBarVisibilityCommunicatorShell::BottomBarVisibilityCommunicatorShell()
20 : m_forceHidden(false)20 : m_forceHidden(false),
21 m_position(0)
21{22{
22}23}
2324
@@ -26,6 +27,11 @@
26 return m_forceHidden;27 return m_forceHidden;
27}28}
2829
30double BottomBarVisibilityCommunicatorShell::position() const
31{
32 return m_position;
33}
34
29void BottomBarVisibilityCommunicatorShell::setForceHidden(bool forceHidden)35void BottomBarVisibilityCommunicatorShell::setForceHidden(bool forceHidden)
30{36{
31 if (forceHidden != m_forceHidden) {37 if (forceHidden != m_forceHidden) {
@@ -33,3 +39,11 @@
33 Q_EMIT forceHiddenChanged(forceHidden);39 Q_EMIT forceHiddenChanged(forceHidden);
34 }40 }
35}41}
42
43void BottomBarVisibilityCommunicatorShell::setPosition(double position)
44{
45 if (position != m_position) {
46 m_position = position;
47 Q_EMIT positionChanged(position);
48 }
49}
3650
=== modified file 'plugins/Unity/bottombarvisibilitycommunicatorshell.h'
--- plugins/Unity/bottombarvisibilitycommunicatorshell.h 2013-06-05 22:03:08 +0000
+++ plugins/Unity/bottombarvisibilitycommunicatorshell.h 2013-10-02 09:27:24 +0000
@@ -30,6 +30,7 @@
30{30{
31 Q_OBJECT31 Q_OBJECT
32 Q_PROPERTY(bool forceHidden READ forceHidden WRITE setForceHidden NOTIFY forceHiddenChanged)32 Q_PROPERTY(bool forceHidden READ forceHidden WRITE setForceHidden NOTIFY forceHiddenChanged)
33 Q_PROPERTY(double position READ position WRITE setPosition NOTIFY positionChanged)
3334
34 Q_CLASSINFO("D-Bus Interface", "com.canonical.Shell.BottomBarVisibilityCommunicator")35 Q_CLASSINFO("D-Bus Interface", "com.canonical.Shell.BottomBarVisibilityCommunicator")
35public:36public:
@@ -41,13 +42,18 @@
41 bool forceHidden() const;42 bool forceHidden() const;
42 void setForceHidden(bool forceHidden);43 void setForceHidden(bool forceHidden);
4344
45 double position() const;
46 void setPosition(double position);
47
44Q_SIGNALS:48Q_SIGNALS:
45 void forceHiddenChanged(bool forceHidden);49 void forceHiddenChanged(bool forceHidden);
50 void positionChanged(double position);
4651
47private:52private:
48 BottomBarVisibilityCommunicatorShell();53 BottomBarVisibilityCommunicatorShell();
4954
50 bool m_forceHidden;55 bool m_forceHidden;
56 double m_position;
51};57};
5258
53#endif59#endif
5460
=== modified file 'tests/autopilot/unity8/shell/__init__.py'
--- tests/autopilot/unity8/shell/__init__.py 2013-09-13 18:09:42 +0000
+++ tests/autopilot/unity8/shell/__init__.py 2013-10-02 09:27:24 +0000
@@ -19,6 +19,7 @@
1919
20"""unity shell autopilot tests and emulators - sub level package."""20"""unity shell autopilot tests and emulators - sub level package."""
2121
22from time import sleep
22from functools import wraps23from functools import wraps
23import logging24import logging
2425
@@ -46,3 +47,16 @@
46 tests_self._qml_mock_enabled = False47 tests_self._qml_mock_enabled = False
47 return fn(*args, **kwargs)48 return fn(*args, **kwargs)
48 return wrapper49 return wrapper
50
51class DragMixin(object):
52 def _drag(self, x1, y1, x2, y2):
53 cur_x = x1
54 cur_y = y1
55 dx = 1.0 * (x2 - x1) / 100
56 dy = 1.0 * (y2 - y1) / 100
57 for i in range(0, 100):
58 self.touch._finger_move(int(cur_x), int(cur_y))
59 sleep(0.002)
60 cur_x += dx
61 cur_y += dy
62 self.touch._finger_move(int(x2), int(y2))
4963
=== modified file 'tests/autopilot/unity8/shell/emulators/dash.py'
--- tests/autopilot/unity8/shell/emulators/dash.py 2013-08-11 22:16:33 +0000
+++ tests/autopilot/unity8/shell/emulators/dash.py 2013-10-02 09:27:24 +0000
@@ -18,17 +18,22 @@
18#18#
1919
20from unity8.shell.emulators import UnityEmulatorBase20from unity8.shell.emulators import UnityEmulatorBase
2121from time import sleep
2222
23class Dash(UnityEmulatorBase):23class Dash(UnityEmulatorBase):
2424
25 """An emulator that understands the Dash."""25 """An emulator that understands the Dash."""
2626
27 def get_home_applications_grid(self):27 def get_home_applications_grid(self):
28 return self.get_scope('home').select_single(28 for i in range(1,10):
29 "GenericFilterGrid",29 get_grid = self.get_scope('home').select_single(
30 objectName="applications.scope"30 "GenericFilterGrid",
31 )31 objectName="applications.scope"
32 )
33 if get_grid != None:
34 break
35 sleep(1)
36 return get_grid
3237
33 def get_application_icon(self, text):38 def get_application_icon(self, text):
34 """Returns a 'Tile' icon that has the text 'text' from the application39 """Returns a 'Tile' icon that has the text 'text' from the application
@@ -40,7 +45,11 @@
4045
41 """46 """
42 app_grid = self.get_home_applications_grid()47 app_grid = self.get_home_applications_grid()
43 resp_grid = app_grid.select_single('ResponsiveGridView')48 for i in range(1,10):
49 resp_grid = app_grid.select_single('ResponsiveGridView')
50 if resp_grid != None:
51 break
52 sleep(1)
44 return resp_grid.select_single('Tile', text=text)53 return resp_grid.select_single('Tile', text=text)
4554
46 def get_scope(self, scope_name='home'):55 def get_scope(self, scope_name='home'):
4756
=== modified file 'tests/autopilot/unity8/shell/emulators/hud.py'
--- tests/autopilot/unity8/shell/emulators/hud.py 2013-08-01 16:50:45 +0000
+++ tests/autopilot/unity8/shell/emulators/hud.py 2013-10-02 09:27:24 +0000
@@ -21,36 +21,35 @@
2121
22from unity8 import get_grid_size22from unity8 import get_grid_size
23from unity8.shell.emulators import UnityEmulatorBase23from unity8.shell.emulators import UnityEmulatorBase
24from unity8.shell import DragMixin
24from autopilot.input import Touch25from autopilot.input import Touch
2526
26
27SwipeCoords = namedtuple('SwipeCoords', 'start_x end_x start_y end_y')27SwipeCoords = namedtuple('SwipeCoords', 'start_x end_x start_y end_y')
2828
2929class Hud(UnityEmulatorBase, DragMixin):
30class Hud(UnityEmulatorBase):
3130
32 """An emulator that understands the Hud."""31 """An emulator that understands the Hud."""
3332
34 def show(self):33 def show(self):
35 """Swipes open the Hud."""34 """Swipes open the Hud."""
36 touch = Touch.create()35 self.touch = Touch.create()
3736
38 window = self.get_root_instance().select_single('QQuickView')37 window = self.get_root_instance().select_single('QQuickView')
39 hud_show_button = window.select_single("HudButton")38 hud_show_button = window.select_single("HudButton")
4039
41 swipe_coords = self.get_button_swipe_coords(window, hud_show_button)40 swipe_coords = self.get_button_swipe_coords(window, hud_show_button)
4241
43 touch.press(swipe_coords.start_x, swipe_coords.start_y)42 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
44 touch._finger_move(swipe_coords.end_x, swipe_coords.end_y)43 self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.end_y)
45 try:44 try:
46 hud_show_button.opacity.wait_for(1.0)45 hud_show_button.opacity.wait_for(1.0)
47 touch.release()46 self.touch.release()
48 self.shown.wait_for(True)47 self.shown.wait_for(True)
49 except AssertionError:48 except AssertionError:
50 raise49 raise
51 finally:50 finally:
52 if touch._touch_finger is not None:51 if self.touch._touch_finger is not None:
53 touch.release()52 self.touch.release()
5453
55 def dismiss(self):54 def dismiss(self):
56 """Closes the open Hud."""55 """Closes the open Hud."""
5756
=== modified file 'tests/autopilot/unity8/shell/emulators/main_window.py'
--- tests/autopilot/unity8/shell/emulators/main_window.py 2013-07-30 13:16:50 +0000
+++ tests/autopilot/unity8/shell/emulators/main_window.py 2013-10-02 09:27:24 +0000
@@ -58,6 +58,9 @@
58 def get_hud_show_button(self):58 def get_hud_show_button(self):
59 return self.app.select_single("HudButton")59 return self.app.select_single("HudButton")
6060
61 def get_hud_edge_drag_area(self):
62 return self.app.select_single(objectName="hudDragArea")
63
61 def get_dash(self):64 def get_dash(self):
62 return self.app.select_single(Dash)65 return self.app.select_single(Dash)
6366
6467
=== modified file 'tests/autopilot/unity8/shell/tests/test_hud.py'
--- tests/autopilot/unity8/shell/tests/test_hud.py 2013-09-05 16:31:52 +0000
+++ tests/autopilot/unity8/shell/tests/test_hud.py 2013-10-02 09:27:24 +0000
@@ -19,29 +19,30 @@
1919
20from __future__ import absolute_import20from __future__ import absolute_import
2121
22from unity8.shell import with_lightdm_mock22from unity8.shell import with_lightdm_mock, DragMixin
23from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios23from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
2424
25from testtools.matchers import Equals25from testtools.matchers import Equals
26from autopilot.matchers import Eventually26from autopilot.matchers import Eventually
2727
2828class TestHud(UnityTestCase, DragMixin):
29class TestHud(UnityTestCase):
3029
31 """Tests the Shell HUD."""30 """Tests the Shell HUD."""
3231
33 scenarios = _get_device_emulation_scenarios()32 scenarios = _get_device_emulation_scenarios()
3433
35 def test_show_hud_button_appears(self):34 def test_show_hud_button_appears(self):
36 """Swiping up while an app is active must show the 'show hud' button.35 """Swiping up while an app is active must show the 'show hud' button, following some behaviours.
37 The button must disappear not opening the HUD when releasing the36 The button must disappear not opening the HUD when releasing the
38 mouse again somewhere on the screen except on the button itself.37 mouse again somewhere on the screen except on the button itself following a timeout.
38 The button must disappear when touching somewhere on the screen except the button itself.
3939
40 """40 """
41 self.launch_unity()41 self.launch_unity()
42 self.main_window.get_greeter().swipe()42 self.main_window.get_greeter().swipe()
43 window = self.main_window.get_qml_view()43 window = self.main_window.get_qml_view()
44 hud_show_button = self.main_window.get_hud_show_button()44 hud_show_button = self.main_window.get_hud_show_button()
45 edge_drag_area = self.main_window.get_hud_edge_drag_area()
45 hud = self.main_window.get_hud()46 hud = self.main_window.get_hud()
4647
47 self._launch_test_app_from_app_screen()48 self._launch_test_app_from_app_screen()
@@ -50,16 +51,33 @@
50 window,51 window,
51 hud_show_button52 hud_show_button
52 )53 )
54 initialBottomMargin = int(hud_show_button.bottomMargin)
55
53 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)56 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
54 self.addCleanup(self._maybe_release_finger)57 self.addCleanup(self._maybe_release_finger)
55 self.touch._finger_move(swipe_coords.end_x, swipe_coords.end_y + hud_show_button.height);58 self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.start_y - int(edge_drag_area.distanceThreshold) - 5)
59 self.assertThat(hud_show_button.opacity, Eventually(Equals(0.5)))
60 self.assertThat(hud_show_button.bottomMargin, Eventually(Equals(initialBottomMargin)))
61 self._drag(swipe_coords.start_x, swipe_coords.start_y - int(edge_drag_area.distanceThreshold) - 5, swipe_coords.end_x, swipe_coords.start_y - int(edge_drag_area.distanceThreshold) - int(edge_drag_area.commitDistance) - 5)
56 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))62 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
63 self.assertThat(hud_show_button.bottomMargin, Eventually(Equals(0.0)))
57 self.touch.release();64 self.touch.release();
58 self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))65 self.assertThat(hud.shown, Equals(False))
59 self.assertThat(hud.shown, Equals(False))66 self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))
67
68 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
69 self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.end_y - int(hud_show_button.height))
70 self.assertThat(hud.shown, Equals(False))
71 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
72 self.touch.release()
73 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
74 self.touch.tap(swipe_coords.end_x, swipe_coords.end_y - int(hud_show_button.height))
75 self.assertThat(hud.shown, Equals(False))
76 self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))
6077
61 def test_show_hud_appears(self):78 def test_show_hud_appears(self):
62 """Releasing the touch on the 'show hud' button must display the hud.79 """Releasing the touch on the 'show hud' button must display the hud.
80 Test that the hud button stays on screen and tapping it opens the hud.
6381
64 """82 """
65 self.launch_unity()83 self.launch_unity()
@@ -74,14 +92,28 @@
74 window,92 window,
75 hud_show_button93 hud_show_button
76 )94 )
95
77 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)96 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
78 self.addCleanup(self._maybe_release_finger)97 self.addCleanup(self._maybe_release_finger)
79 self.touch._finger_move(swipe_coords.end_x, swipe_coords.end_y)98 self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.end_y)
99 self.assertThat(hud.shown, Eventually(Equals(False)))
100 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
101 self.touch.release()
102 self.assertThat(hud.shown, Eventually(Equals(True)))
103 self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))
104 x, y = hud.get_close_button_coords()
105 self.touch.tap(x, y)
106 self.assertThat(hud.shown, Eventually(Equals(False)))
80107
81 self.assertThat(hud.shown, Eventually(Equals(False)))108 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
109 self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.end_y - int(hud_show_button.height))
110 self.assertThat(hud.shown, Equals(False))
82 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))111 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
83 self.touch.release()112 self.touch.release()
113 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
114 self.touch.tap(swipe_coords.end_x, swipe_coords.end_y)
84 self.assertThat(hud.shown, Eventually(Equals(True)))115 self.assertThat(hud.shown, Eventually(Equals(True)))
116 self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))
85117
86 def test_hide_hud_click(self):118 def test_hide_hud_click(self):
87 """Tapping the close button of the Hud must dismiss it."""119 """Tapping the close button of the Hud must dismiss it."""
@@ -90,6 +122,7 @@
90 hud = self.main_window.get_hud()122 hud = self.main_window.get_hud()
91123
92 self._launch_test_app_from_app_screen()124 self._launch_test_app_from_app_screen()
125
93 hud.show()126 hud.show()
94127
95 x, y = hud.get_close_button_coords()128 x, y = hud.get_close_button_coords()
@@ -103,10 +136,11 @@
103 """136 """
104 self.launch_unity()137 self.launch_unity()
105 self.main_window.get_greeter().swipe()138 self.main_window.get_greeter().swipe()
139 window = self.main_window.get_qml_view()
106 hud = self.main_window.get_hud()140 hud = self.main_window.get_hud()
107 window = self.main_window.get_qml_view()
108141
109 self._launch_test_app_from_app_screen()142 self._launch_test_app_from_app_screen()
143
110 hud.show()144 hud.show()
111145
112 start_x, start_y = hud.get_close_button_coords()146 start_x, start_y = hud.get_close_button_coords()

Subscribers

People subscribed via source and target branches