~lightdm-team/lightdm/1.4

« back to all changes in this revision

Viewing changes to greeters/qt/loginprompt.cpp

  • Committer: David Edmundson
  • Date: 2011-05-21 00:53:56 UTC
  • mto: This revision was merged to the branch mainline in revision 456.
  • Revision ID: david@davidedmundson.co.uk-20110521005356-stabgjwhvgxzb4lp
Replaced Qt Demo greeter with something more extensive

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "loginprompt.h"
 
2
#include "ui_loginprompt.h"
 
3
 
 
4
#include <lightdm-qt-0/lightdm/LdmGreeter>
 
5
#include <lightdm-qt-0/lightdm/LdmUser>
 
6
#include <lightdm-qt-0/lightdm/LdmSession>
 
7
#include <lightdm-qt-0/lightdm/LdmLanguage>
 
8
 
 
9
#include <QListWidgetItem>
 
10
 
 
11
LoginPrompt::LoginPrompt(LdmGreeter *greeter, QWidget *parent) :
 
12
    QWidget(parent),
 
13
    m_greeter(greeter),
 
14
    ui(new Ui::Widget)
 
15
{
 
16
    ui->setupUi(this);
 
17
    ui->feedbackLabel->setText(QString());
 
18
 
 
19
    m_greeter->connectToServer();
 
20
 
 
21
    ui->hostnameLabel->setText(m_greeter->hostname());
 
22
 
 
23
    QList<LdmUser*> users = m_greeter->users();
 
24
    foreach(LdmUser *user, users) {
 
25
        QListWidgetItem* item = new QListWidgetItem(user->displayName(), ui->userList);
 
26
        item->setData(Qt::UserRole, user->name());
 
27
        if(user->image().isEmpty())         {
 
28
            item->setIcon(QIcon::fromTheme("user-identity"));
 
29
        } else {
 
30
            item->setIcon(QIcon(user->image()));
 
31
        }
 
32
 
 
33
    }
 
34
 
 
35
    connect(ui->loginButton, SIGNAL(released()), SLOT(onLoginButtonClicked()));
 
36
    connect(m_greeter, SIGNAL(authenticationComplete(bool)), SLOT(onAuthenticationComplete(bool)));
 
37
    connect(m_greeter, SIGNAL(showPrompt(QString)), SLOT(prompt(QString)));
 
38
}
 
39
 
 
40
LoginPrompt::~LoginPrompt()
 
41
{
 
42
    delete ui;
 
43
}
 
44
 
 
45
void LoginPrompt::onLoginButtonClicked()
 
46
{
 
47
    ui->feedbackLabel->setText(QString());
 
48
    if (ui->userList->currentItem()) {
 
49
        m_greeter->startAuthentication(ui->userList->currentItem()->data(Qt::UserRole).toString());
 
50
    }
 
51
}
 
52
 
 
53
void LoginPrompt::onAuthenticationComplete(bool success)
 
54
{
 
55
    if (success) {
 
56
        ui->feedbackLabel->setText("YAY - log in");
 
57
        //        m_greeter->login(ui->userList->currentItem()->text(), "kde", "en-UK");
 
58
    } else {
 
59
        ui->feedbackLabel->setText("Sorry, you suck. Try again.");
 
60
    }
 
61
}
 
62
 
 
63
void LoginPrompt::prompt(const QString &message)
 
64
{
 
65
    qDebug() << message;
 
66
    m_greeter->provideSecret(ui->password->text());
 
67
}