on xenial help sign in
Ensure that the selected() signal is emitted by the greeter on startup, fixing the background on startup for the first user in tablet mode.
commit4afa8d154e4ba24f01f84879bc492ee724308758 authorMichael Terry <michael.terry@canonical.com> dateTue 4 Mar 2014, 11:42 (13 years ago) parente02da4b7ce0beb
6 files changed+43−4
qml/Greeter/Greeter.qml+4 qml/Greeter/GreeterContent.qml−1 qml/Shell.qml−2 tests/mocks/AccountsService/AccountsService.cpp+1−1 tests/qmltests/Greeter/tst_Phone.qml+19 tests/qmltests/Greeter/tst_Tablet.qml+19
qml/Greeter/Greeter.qml+4
@@ -67,6 +67,10 @@ Showable {
6767
6868 source: required ? "GreeterContent.qml" : ""
6969
70+ onLoaded: {
71+ selected(currentIndex);
72+ }
73+
7074 Connections {
7175 target: greeterContentLoader.item
7276
qml/Greeter/GreeterContent.qml−1
@@ -96,7 +96,6 @@ MouseArea {
9696
9797 onLoaded: {
9898 item.currentIndex = greeterContentLoader.currentIndex;
99− selected(item.currentIndex);
10099 item.resetAuthentication();
101100 }
102101
qml/Shell.qml−2
@@ -421,7 +421,6 @@ FocusScope {
421421 Component.onCompleted: {
422422 if (LightDM.Users.count == 1) {
423423 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole))
424− greeter.selected(0)
425424 }
426425 }
427426 }
@@ -497,7 +496,6 @@ FocusScope {
497496 // If there are more users, the Greeter will handle that
498497 if (LightDM.Users.count == 1) {
499498 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
500− greeter.selected(0);
501499 }
502500 greeter.forceActiveFocus();
503501 removeApplicationFocus();
tests/mocks/AccountsService/AccountsService.cpp+1−1
@@ -20,7 +20,7 @@
2020
2121AccountsService::AccountsService(QObject* parent)
2222 : QObject(parent),
23− m_backgroundFile(TOP_SRCDIR "/graphics/phone_background.jpg"),
23+ m_backgroundFile(TOP_SRCDIR "/qml/graphics/phone_background.jpg"),
2424 m_statsWelcomeScreen(true)
2525{
2626}
tests/qmltests/Greeter/tst_Phone.qml+19
@@ -44,6 +44,17 @@ Item {
4444 }
4545 }
4646
47+ Component {
48+ id: greeterComponent
49+ Greeter {
50+ SignalSpy {
51+ objectName: "selectedSpy"
52+ target: parent
53+ signalName: "selected"
54+ }
55+ }
56+ }
57+
4758 SignalSpy {
4859 id: unlockSpy
4960 target: greeter
@@ -148,5 +159,13 @@ Item {
148159 tryCompareFunction(function() { return background.source.toString().indexOf(data.expected) !== -1; }, true)
149160 tryCompare(background, "status", Image.Ready)
150161 }
162+
163+ function test_initial_selected_signal() {
164+ var greeterObj = greeterComponent.createObject(this)
165+ var spy = findChild(greeterObj, "selectedSpy")
166+ spy.wait()
167+ tryCompare(spy, "count", 1)
168+ greeterObj.destroy()
169+ }
151170 }
152171}
tests/qmltests/Greeter/tst_Tablet.qml+19
@@ -31,6 +31,17 @@ Item {
3131 anchors.fill: parent
3232 }
3333
34+ Component {
35+ id: greeterComponent
36+ Greeter {
37+ SignalSpy {
38+ objectName: "selectedSpy"
39+ target: parent
40+ signalName: "selected"
41+ }
42+ }
43+ }
44+
3445 SignalSpy {
3546 id: unlockSpy
3647 target: greeter
@@ -335,5 +346,13 @@ Item {
335346 var userlist = findChild(greeter, "userList")
336347 compare(greeter.model.data(userlist.currentIndex, LightDM.UserRoles.NameRole), "has-password")
337348 }
349+
350+ function test_initial_selected_signal() {
351+ var greeterObj = greeterComponent.createObject(this)
352+ var spy = findChild(greeterObj, "selectedSpy")
353+ spy.wait()
354+ tryCompare(spy, "count", 1)
355+ greeterObj.destroy()
356+ }
338357 }
339358}