19 #include "GreeterPrivate.h" 22 GreeterPrivate::GreeterPrivate(Greeter* parent)
23 : m_greeter(new
QLightDM::Greeter(parent)),
31 Greeter::Greeter(QObject* parent)
33 d_ptr(new GreeterPrivate(this))
37 connect(d->m_greeter, &QLightDM::Greeter::showMessage,
38 this, &Greeter::showMessageFilter);
39 connect(d->m_greeter, &QLightDM::Greeter::showPrompt,
40 this, &Greeter::showPromptFilter);
41 connect(d->m_greeter, &QLightDM::Greeter::authenticationComplete,
42 this, &Greeter::authenticationCompleteFilter);
44 d->m_greeter->connectSync();
47 bool Greeter::isActive()
const 53 void Greeter::setIsActive(
bool active)
56 if (d->m_active != active) {
58 Q_EMIT isActiveChanged();
62 bool Greeter::isAuthenticated()
const 65 return d->m_greeter->isAuthenticated();
68 QString Greeter::authenticationUser()
const 71 return d->m_greeter->authenticationUser();
74 QString Greeter::defaultSessionHint()
const 77 return d->m_greeter->defaultSessionHint();
80 bool Greeter::promptless()
const 86 QString Greeter::selectUser()
const 89 return d->m_greeter->selectUserHint();
92 void Greeter::authenticate(
const QString &username)
95 d->wasPrompted =
false;
97 d->promptless =
false;
98 Q_EMIT promptlessChanged();
101 d->m_greeter->authenticate(username);
102 Q_EMIT isAuthenticatedChanged();
103 Q_EMIT authenticationUserChanged(username);
106 void Greeter::respond(
const QString &response)
109 d->m_greeter->respond(response);
112 bool Greeter::startSessionSync(
const QString &session)
115 return d->m_greeter->startSessionSync(session);
118 void Greeter::showPromptFilter(
const QString &text, QLightDM::Greeter::PromptType type)
121 d->wasPrompted =
true;
123 bool isDefaultPrompt = (text == dgettext(
"Linux-PAM",
"Password: "));
126 QString trimmedText = text.trimmed();
127 if (trimmedText.endsWith(
':') || trimmedText.endsWith(QStringLiteral(
":"))) {
131 Q_EMIT showPrompt(trimmedText, type == QLightDM::Greeter::PromptTypeSecret, isDefaultPrompt);
134 void Greeter::showMessageFilter(
const QString &text, QLightDM::Greeter::MessageType type)
136 Q_EMIT showMessage(text, type == QLightDM::Greeter::MessageTypeError);
139 void Greeter::authenticationCompleteFilter()
142 if (!d->wasPrompted) {
143 d->promptless =
true;
144 Q_EMIT promptlessChanged();
147 Q_EMIT isAuthenticatedChanged();
148 Q_EMIT authenticationComplete();