on xenial help sign in
Use new resettable support in lightdm
7f73158Michael Terry
plugins/LightDM/Greeter.cpp+3
@@ -56,8 +56,11 @@ Greeter::Greeter(QObject* parent)
56 this, SLOT(showPromptFilter(QString, QLightDM::Greeter::PromptType)));
56 this, SLOT(showPromptFilter(QString, QLightDM::Greeter::PromptType)));
57 connect(d->m_greeter, SIGNAL(authenticationComplete()),
57 connect(d->m_greeter, SIGNAL(authenticationComplete()),
58 this, SLOT(authenticationCompleteFilter()));
58 this, SLOT(authenticationCompleteFilter()));
59+ connect(d->m_greeter, SIGNAL(idle()), this, SIGNAL(idle()));
60+ connect(d->m_greeter, SIGNAL(reset()), this, SIGNAL(reset()));
59
61
60 d->m_greeter->connectSync();
62 d->m_greeter->connectSync();
63+ d->m_greeter->setResettable(true);
61}
64}
62
65
63bool Greeter::isAuthenticated() const
66bool Greeter::isAuthenticated() const
plugins/LightDM/Greeter.h+2
@@ -56,6 +56,8 @@ Q_SIGNALS:
56 void authenticationComplete();
56 void authenticationComplete();
57 void authenticationUserChanged(const QString &user);
57 void authenticationUserChanged(const QString &user);
58 void promptlessChanged();
58 void promptlessChanged();
59+ void idle();
60+ void reset();
59
61
60 // This signal is emitted by external agents like indicators, and the UI
62 // This signal is emitted by external agents like indicators, and the UI
61 // should switch to this user if possible.
63 // should switch to this user if possible.
qml/Greeter/GreeterContent.qml+14
@@ -119,10 +119,17 @@ Item {
119 }
119 }
120
120
121 Timer {
121 Timer {
122+ id: infoFadeTimer
122 running: true
123 running: true
123 interval: 200
124 interval: 200
124 onTriggered: infoFadeAnimation.start()
125 onTriggered: infoFadeAnimation.start()
125 }
126 }
127+
128+ Connections {
129+ target: LightDM.Greeter
130+ onIdle: {infoFadeTimer.stop(); infographics.opacity = 0; infographics.scale = 0.9}
131+ onReset: infoFadeTimer.start()
132+ }
126 }
133 }
127
134
128 Clock {
135 Clock {
@@ -154,9 +161,16 @@ Item {
154 }
161 }
155
162
156 Timer {
163 Timer {
164+ id: clockFadeTimer
157 running: narrowMode
165 running: narrowMode
158 interval: 600
166 interval: 600
159 onTriggered: clockFadeAnimation.start()
167 onTriggered: clockFadeAnimation.start()
160 }
168 }
169+
170+ Connections {
171+ target: LightDM.Greeter
172+ onIdle: {clockFadeTimer.stop(); clock.opacity = 0; clock.scale = 0.9}
173+ onReset: clockFadeTimer.start()
174+ }
161 }
175 }
162}
176}
qml/GreeterShell.qml+13−1
@@ -73,6 +73,11 @@ BasicShell {
73 Connections {
73 Connections {
74 target: LightDM.Greeter
74 target: LightDM.Greeter
75
75
76+ onIdle: {
77+ greeter.enabled = true
78+ greeter.showNow()
79+ }
80+
76 onShowPrompt: {
81 onShowPrompt: {
77 if (LightDM.Users.count == 1) {
82 if (LightDM.Users.count == 1) {
78 // TODO: There's no better way for now to determine if its a PIN or a passphrase.
83 // TODO: There's no better way for now to determine if its a PIN or a passphrase.
@@ -190,7 +195,7 @@ BasicShell {
190 hides: [launcher]
195 hides: [launcher]
191 available: !edgeDemo.active
196 available: !edgeDemo.active
192 }
197 }
193− fullscreenMode: initialPanelDelay.running
198+ fullscreenMode: true
194 searchVisible: false
199 searchVisible: false
195 }
200 }
196
201
@@ -198,6 +203,13 @@ BasicShell {
198 id: initialPanelDelay
203 id: initialPanelDelay
199 running: true
204 running: true
200 interval: 300
205 interval: 300
206+ onTriggered: panel.fullscreenMode = false
207+ }
208+
209+ Connections {
210+ target: LightDM.Greeter
211+ onIdle: {initialPanelDelay.stop(); panel.fullscreenMode = true}
212+ onReset: initialPanelDelay.start()
201 }
213 }
202
214
203 Launcher {
215 Launcher {