20 #include "GreeterPrivate.h"
23 GreeterPrivate::GreeterPrivate(Greeter* parent)
24 : m_greeter(new
QLightDM::Greeter(parent)),
32 Greeter::Greeter(QObject* parent)
34 d_ptr(new GreeterPrivate(this))
38 connect(d->m_greeter, &QLightDM::Greeter::showMessage,
39 this, &Greeter::showMessageFilter);
40 connect(d->m_greeter, &QLightDM::Greeter::showPrompt,
41 this, &Greeter::showPromptFilter);
42 connect(d->m_greeter, &QLightDM::Greeter::authenticationComplete,
43 this, &Greeter::authenticationCompleteFilter);
45 d->m_greeter->connectSync();
48 bool Greeter::isActive()
const
54 void Greeter::setIsActive(
bool active)
57 if (d->m_active != active) {
59 Q_EMIT isActiveChanged();
63 bool Greeter::isAuthenticated()
const
66 return d->m_greeter->isAuthenticated();
69 QString Greeter::authenticationUser()
const
72 return d->m_greeter->authenticationUser();
75 bool Greeter::promptless()
const
81 void Greeter::authenticate(
const QString &username)
84 d->wasPrompted =
false;
86 d->promptless =
false;
87 Q_EMIT promptlessChanged();
90 d->m_greeter->authenticate(username);
91 Q_EMIT isAuthenticatedChanged();
92 Q_EMIT authenticationUserChanged(username);
95 void Greeter::respond(
const QString &response)
98 d->m_greeter->respond(response);
101 bool Greeter::startSessionSync(
const QString &session)
104 return d->m_greeter->startSessionSync(session);
107 void Greeter::showPromptFilter(
const QString &text, QLightDM::Greeter::PromptType type)
110 d->wasPrompted =
true;
112 bool isDefaultPrompt = (text == dgettext(
"Linux-PAM",
"Password: "));
115 QString trimmedText = text.trimmed();
116 if (trimmedText.endsWith(
':') || trimmedText.endsWith(QStringLiteral(
":"))) {
120 Q_EMIT showPrompt(trimmedText, type == QLightDM::Greeter::PromptTypeSecret, isDefaultPrompt);
123 void Greeter::showMessageFilter(
const QString &text, QLightDM::Greeter::MessageType type)
125 Q_EMIT showMessage(text, type == QLightDM::Greeter::MessageTypeError);
128 void Greeter::authenticationCompleteFilter()
131 if (!d->wasPrompted) {
132 d->promptless =
true;
133 Q_EMIT promptlessChanged();
136 Q_EMIT isAuthenticatedChanged();
137 Q_EMIT authenticationComplete();