summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--greeters/qt/lightdm-qt-greeter.cpp37
-rw-r--r--greeters/qt/lightdm-qt-greeter.h6
2 files changed, 27 insertions, 16 deletions
diff --git a/greeters/qt/lightdm-qt-greeter.cpp b/greeters/qt/lightdm-qt-greeter.cpp
index ea2a5f0b..e88aa7d1 100644
--- a/greeters/qt/lightdm-qt-greeter.cpp
+++ b/greeters/qt/lightdm-qt-greeter.cpp
@@ -1,23 +1,29 @@
-#include <QApplication>
-#include <QtGui>
-
#include "lightdm-qt-greeter.h"
+#include <QtGui/QApplication>
+#include <QtGui/QLabel>
+#include <QtGui/QLineEdit>
+#include <QtGui/QPushButton>
+#include <QtGui/QGridLayout>
+
+#include "ldmgreeter.h"
+
LoginDialog::LoginDialog() : QDialog()
{
- label = new QLabel("Username:");
- entry = new QLineEdit;
+ label = new QLabel("Username:", this);
+ entry = new QLineEdit(this);
connect(entry, SIGNAL(returnPressed()), this, SLOT(onLogin()));
- QPushButton *button = new QPushButton("Login");
+
+ QPushButton *button = new QPushButton("Login", this);
connect(button, SIGNAL(clicked()), this, SLOT(onLogin()));
- QGridLayout *layout = new QGridLayout;
+ QGridLayout *layout = new QGridLayout(this);
layout->addWidget(label, 0, 0, 1, 1);
layout->addWidget(entry, 1, 0, 2, 1);
layout->addWidget(button, 2, 0, 3, 1);
setLayout(layout);
- greeter = new LdmGreeter;
+ greeter = new LdmGreeter; //FIXME this LEAKS! Either finish the QWidget subclass plan, or add parent arg to LdmGreeter.
connect(greeter, SIGNAL(showPrompt(QString)), this, SLOT(showPrompt(QString)));
connect(greeter, SIGNAL(showMessage(QString)), this, SLOT(showMessage(QString)));
connect(greeter, SIGNAL(showError(QString)), this, SLOT(showError(QString)));
@@ -28,16 +34,17 @@ LoginDialog::LoginDialog() : QDialog()
void LoginDialog::onLogin()
{
- if(greeter->inAuthentication())
- {
- if(inPrompt)
+ if(greeter->inAuthentication()) {
+ if(inPrompt) {
greeter->provideSecret(entry->text());
+ }
inPrompt = false;
entry->setText("");
entry->setEchoMode(QLineEdit::Normal);
}
- else
+ else {
greeter->startAuthentication(entry->text());
+ }
}
void LoginDialog::showPrompt(QString text)
@@ -61,10 +68,12 @@ void LoginDialog::showError(QString text)
void LoginDialog::authenticationComplete()
{
entry->setText("");
- if(greeter->isAuthenticated())
+ if(greeter->isAuthenticated()) {
greeter->login(greeter->authenticationUser(), greeter->defaultSession(), greeter->defaultLanguage());
- else
+ }
+ else {
label->setText("Failed to authenticate");
+ }
}
void LoginDialog::quit()
diff --git a/greeters/qt/lightdm-qt-greeter.h b/greeters/qt/lightdm-qt-greeter.h
index 832964f8..639d0c92 100644
--- a/greeters/qt/lightdm-qt-greeter.h
+++ b/greeters/qt/lightdm-qt-greeter.h
@@ -1,6 +1,8 @@
-#include <QtGui>
+#include <QtGui/QDialog>
-#include "ldmgreeter.h"
+class QLabel;
+class QLineEdit;
+class LdmGreeter;
class LoginDialog : public QDialog
{