]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blob - liblightdm-qt/greeter.cpp
Revert the bogus .deps file changes and fix the clean rules
[sojka/lightdm.git] / liblightdm-qt / greeter.cpp
1 /*
2  * Copyright (C) 2010-2011 David Edmundson
3  * Copyright (C) 2010-2011 Robert Ancell
4  * Author: David Edmundson <kde@davidedmundson.co.uk>
5  *
6  * This library is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Lesser General Public License as published by the Free
8  * Software Foundation; either version 2 or version 3 of the License.
9  * See http://www.gnu.org/copyleft/lgpl.html the full text of the license.
10  */
11
12
13 #include "QLightDM/greeter.h"
14
15 #include <QtCore/QDebug>
16 #include <QtCore/QDir>
17 #include <QtCore/QVariant>
18 #include <QtCore/QSettings>
19
20 #include <lightdm.h>
21
22 using namespace QLightDM;
23
24 class QLightDM::GreeterPrivate
25 {
26 public:
27     GreeterPrivate(Greeter *parent);
28     LightDMGreeter *ldmGreeter;
29 protected:
30     Greeter* q_ptr;
31
32     static void cb_showPrompt(LightDMGreeter *greeter, const gchar *text, LightDMPromptType type, gpointer data);
33     static void cb_showMessage(LightDMGreeter *greeter, const gchar *text, LightDMMessageType type, gpointer data);
34     static void cb_authenticationComplete(LightDMGreeter *greeter, gpointer data);
35     static void cb_autoLoginExpired(LightDMGreeter *greeter, gpointer data);
36     static void cb_idle(LightDMGreeter *greeter, gpointer data);
37     static void cb_reset(LightDMGreeter *greeter, gpointer data);
38
39 private:
40     Q_DECLARE_PUBLIC(Greeter)
41 };
42
43 GreeterPrivate::GreeterPrivate(Greeter *parent) :
44     q_ptr(parent)
45 {
46 #if !defined(GLIB_VERSION_2_36)
47     g_type_init();
48 #endif
49     ldmGreeter = lightdm_greeter_new();
50
51     g_signal_connect (ldmGreeter, LIGHTDM_GREETER_SIGNAL_SHOW_PROMPT, G_CALLBACK (cb_showPrompt), this);
52     g_signal_connect (ldmGreeter, LIGHTDM_GREETER_SIGNAL_SHOW_MESSAGE, G_CALLBACK (cb_showMessage), this);
53     g_signal_connect (ldmGreeter, LIGHTDM_GREETER_SIGNAL_AUTHENTICATION_COMPLETE, G_CALLBACK (cb_authenticationComplete), this);
54     g_signal_connect (ldmGreeter, LIGHTDM_GREETER_SIGNAL_AUTOLOGIN_TIMER_EXPIRED, G_CALLBACK (cb_autoLoginExpired), this);
55     g_signal_connect (ldmGreeter, LIGHTDM_GREETER_SIGNAL_IDLE, G_CALLBACK (cb_idle), this);
56     g_signal_connect (ldmGreeter, LIGHTDM_GREETER_SIGNAL_RESET, G_CALLBACK (cb_reset), this);
57 }
58
59 void GreeterPrivate::cb_showPrompt(LightDMGreeter *greeter, const gchar *text, LightDMPromptType type, gpointer data)
60 {
61     Q_UNUSED(greeter);
62
63     GreeterPrivate *that = static_cast<GreeterPrivate*>(data);
64     QString message = QString::fromUtf8(text);
65
66     Q_EMIT that->q_func()->showPrompt(message, type == LIGHTDM_PROMPT_TYPE_QUESTION ?
67                                                Greeter::PromptTypeQuestion : Greeter::PromptTypeSecret);
68 }
69
70 void GreeterPrivate::cb_showMessage(LightDMGreeter *greeter, const gchar *text, LightDMMessageType type, gpointer data)
71 {
72     Q_UNUSED(greeter);
73
74     GreeterPrivate *that = static_cast<GreeterPrivate*>(data);
75     QString message = QString::fromUtf8(text);
76
77     Q_EMIT that->q_func()->showMessage(message, type == LIGHTDM_MESSAGE_TYPE_INFO ?
78                                                 Greeter::MessageTypeInfo : Greeter::MessageTypeError);
79 }
80
81 void GreeterPrivate::cb_authenticationComplete(LightDMGreeter *greeter, gpointer data)
82 {
83     Q_UNUSED(greeter);
84     GreeterPrivate *that = static_cast<GreeterPrivate*>(data);
85     Q_EMIT that->q_func()->authenticationComplete();
86 }
87
88 void GreeterPrivate::cb_autoLoginExpired(LightDMGreeter *greeter, gpointer data)
89 {
90     Q_UNUSED(greeter);
91     GreeterPrivate *that = static_cast<GreeterPrivate*>(data);
92     Q_EMIT that->q_func()->autologinTimerExpired();
93 }
94
95 void GreeterPrivate::cb_idle(LightDMGreeter *greeter, gpointer data)
96 {
97     Q_UNUSED(greeter);
98     GreeterPrivate *that = static_cast<GreeterPrivate*>(data);
99     Q_EMIT that->q_func()->idle();
100 }
101
102 void GreeterPrivate::cb_reset(LightDMGreeter *greeter, gpointer data)
103 {
104     Q_UNUSED(greeter);
105     GreeterPrivate *that = static_cast<GreeterPrivate*>(data);
106     Q_EMIT that->q_func()->reset();
107 }
108
109 Greeter::Greeter(QObject *parent) :
110     QObject(parent),
111     d_ptr(new GreeterPrivate(this))
112 {
113 }
114
115 Greeter::~Greeter()
116 {
117     delete d_ptr;
118 }
119
120
121 bool Greeter::connectToDaemonSync()
122 {
123     Q_D(Greeter);
124     return lightdm_greeter_connect_to_daemon_sync(d->ldmGreeter, NULL);
125 }
126
127 bool Greeter::connectSync()
128 {
129     Q_D(Greeter);
130     return lightdm_greeter_connect_to_daemon_sync(d->ldmGreeter, NULL);
131 }
132
133 void Greeter::authenticate(const QString &username)
134 {
135     Q_D(Greeter);
136     lightdm_greeter_authenticate(d->ldmGreeter, username.toLocal8Bit().data(), NULL);
137 }
138
139 void Greeter::authenticateAsGuest()
140 {
141     Q_D(Greeter);
142     lightdm_greeter_authenticate_as_guest(d->ldmGreeter, NULL);
143 }
144
145 void Greeter::authenticateAutologin()
146 {
147     Q_D(Greeter);
148     lightdm_greeter_authenticate_autologin(d->ldmGreeter, NULL);
149 }
150
151 void Greeter::authenticateRemote(const QString &session, const QString &username)
152 {
153     Q_D(Greeter);
154     lightdm_greeter_authenticate_remote(d->ldmGreeter, session.toLocal8Bit().data(), username.toLocal8Bit().data(), NULL);
155 }
156
157 void Greeter::respond(const QString &response)
158 {
159     Q_D(Greeter);
160     lightdm_greeter_respond(d->ldmGreeter, response.toLocal8Bit().data(), NULL);
161 }
162
163 void Greeter::cancelAuthentication()
164 {
165     Q_D(Greeter);
166     lightdm_greeter_cancel_authentication(d->ldmGreeter, NULL);
167 }
168
169 void Greeter::cancelAutologin()
170 {
171     Q_D(Greeter);
172     lightdm_greeter_cancel_autologin(d->ldmGreeter);
173 }
174
175 bool Greeter::inAuthentication() const
176 {
177     Q_D(const Greeter);
178     return lightdm_greeter_get_in_authentication(d->ldmGreeter);
179 }
180
181 bool Greeter::isAuthenticated() const
182 {
183     Q_D(const Greeter);
184     return lightdm_greeter_get_is_authenticated(d->ldmGreeter);
185 }
186
187 QString Greeter::authenticationUser() const
188 {
189     Q_D(const Greeter);
190     return QString::fromUtf8(lightdm_greeter_get_authentication_user(d->ldmGreeter));
191 }
192
193 void Greeter::setLanguage (const QString &language)
194 {
195     Q_D(Greeter);
196     lightdm_greeter_set_language(d->ldmGreeter, language.toLocal8Bit().constData(), NULL);
197 }
198
199 void Greeter::setResettable (bool resettable)
200 {
201     Q_D(Greeter);
202     lightdm_greeter_set_resettable(d->ldmGreeter, resettable);
203 }
204
205 bool Greeter::startSessionSync(const QString &session)
206 {
207     Q_D(Greeter);
208     return lightdm_greeter_start_session_sync(d->ldmGreeter, session.toLocal8Bit().constData(), NULL);
209 }
210
211 QString Greeter::ensureSharedDataDirSync(const QString &username)
212 {
213     Q_D(Greeter);
214     return QString::fromUtf8(lightdm_greeter_ensure_shared_data_dir_sync(d->ldmGreeter, username.toLocal8Bit().constData(), NULL));
215 }
216
217
218 QString Greeter::getHint(const QString &name) const
219 {
220     Q_D(const Greeter);
221     return lightdm_greeter_get_hint(d->ldmGreeter, name.toLocal8Bit().constData());
222 }
223
224 QString Greeter::defaultSessionHint() const
225 {
226     Q_D(const Greeter);
227     return QString::fromUtf8(lightdm_greeter_get_default_session_hint(d->ldmGreeter));
228 }
229
230 bool Greeter::hideUsersHint() const
231 {
232     Q_D(const Greeter);
233     return lightdm_greeter_get_hide_users_hint(d->ldmGreeter);
234 }
235
236 bool Greeter::showManualLoginHint() const
237 {
238     Q_D(const Greeter);
239     return lightdm_greeter_get_show_manual_login_hint(d->ldmGreeter);
240 }
241
242 bool Greeter::showRemoteLoginHint() const
243 {
244     Q_D(const Greeter);
245     return lightdm_greeter_get_show_remote_login_hint(d->ldmGreeter);
246 }
247
248 bool Greeter::lockHint() const
249 {
250     Q_D(const Greeter);
251     return lightdm_greeter_get_lock_hint(d->ldmGreeter);
252 }
253
254 bool Greeter::hasGuestAccountHint() const
255 {
256     Q_D(const Greeter);
257     return lightdm_greeter_get_has_guest_account_hint(d->ldmGreeter);
258 }
259
260 QString Greeter::selectUserHint() const
261 {
262     Q_D(const Greeter);
263     return QString::fromUtf8(lightdm_greeter_get_select_user_hint(d->ldmGreeter));
264 }
265
266 bool Greeter::selectGuestHint() const
267 {
268     Q_D(const Greeter);
269     return lightdm_greeter_get_select_guest_hint(d->ldmGreeter);
270 }
271
272 QString Greeter::autologinUserHint() const
273 {
274     Q_D(const Greeter);
275     return QString::fromUtf8(lightdm_greeter_get_autologin_user_hint(d->ldmGreeter));
276 }
277
278 bool Greeter::autologinGuestHint() const
279 {
280     Q_D(const Greeter);
281     return lightdm_greeter_get_autologin_guest_hint(d->ldmGreeter);
282 }
283
284 int Greeter::autologinTimeoutHint() const
285 {
286     Q_D(const Greeter);
287     return lightdm_greeter_get_autologin_timeout_hint(d->ldmGreeter);
288 }
289
290 QString Greeter::hostname() const
291 {
292     return QString::fromUtf8(lightdm_get_hostname());
293 }
294
295 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
296 #include "greeter_moc5.cpp"
297 #else
298 #include "greeter_moc4.cpp"
299 #endif