From 9c6d3bf474bcc89c958e799bc9c4c37af9935862 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 14 Aug 2017 15:19:59 +0200 Subject: Remove more cruft, show error in red --- src/loginform.cpp | 56 +++++++++++++++++++++++++++++++++---------------------- src/loginform.h | 3 +++ 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/src/loginform.cpp b/src/loginform.cpp index 07d4094..ced5f1e 100644 --- a/src/loginform.cpp +++ b/src/loginform.cpp @@ -1,32 +1,23 @@ /* * Copyright (c) 2012-2015 Christian Surlykke +* 2017 bwLehrpool project * -* This file is part of qt-lightdm-greeter +* Based on qt-lightdm-greeter, stripped down to fit +* our specific needs. * It is distributed under the LGPL 2.1 or later license. * Please refer to the LICENSE file for a copy of the license. */ #include -#include #include #include -#include -#include -#include #include #include #include -#include -#include -#include #include "loginform.h" #include "ui_loginform.h" #include "settings.h" -int rows(QAbstractItemModel& model) { - return model.rowCount(QModelIndex()); -} - LoginForm::LoginForm(QWidget *parent) : QWidget(parent), ui(new Ui::LoginForm), @@ -75,6 +66,10 @@ void LoginForm::initialize() cancelLoginTimer.setSingleShot(true); connect(&cancelLoginTimer, SIGNAL(timeout()), this, SLOT(cancelLogin())); + hideMessageTimer.setInterval(10000); + hideMessageTimer.setSingleShot(true); + connect(&hideMessageTimer, SIGNAL(timeout()), this, SLOT(hideMessage())); + //connect(ui->userInput, SIGNAL(editingFinished()), this, SLOT(userChanged())); connect(ui->leaveComboBox, SIGNAL(activated(int)), this, SLOT(leaveDropDownActivated(int))); connect(&m_Greeter, SIGNAL(showPrompt(QString, QLightDM::Greeter::PromptType)), this, SLOT(onPrompt(QString, QLightDM::Greeter::PromptType))); @@ -86,9 +81,6 @@ void LoginForm::initialize() void LoginForm::startAuthentication() { - qDebug() << "Start auth"; - //setCurrentSession(Cache().getLastSession(ui->userInput->text())); - if (m_Greeter.inAuthentication()) { m_Greeter.cancelAuthentication(); } @@ -101,7 +93,7 @@ void LoginForm::startAuthentication() return; } - ui->messageLabel->setText(tr("Logging in...")); + showMessage(tr("Logging in..."), false); clearMsg = false; ui->userInput->setEnabled(false); ui->passwordInput->setEnabled(false); @@ -128,7 +120,7 @@ void LoginForm::leaveDropDownActivated(int index) void LoginForm::onMessage(QString message, QLightDM::Greeter::MessageType type) { qDebug() << "Message: " << message; - ui->messageLabel->setText(message); + showMessage(message, false); clearMsg = true; } @@ -143,16 +135,16 @@ void LoginForm::onAuthenticationComplete() { if (m_Greeter.isAuthenticated()) { qDebug() << "Auth complete, start session"; - ui->messageLabel->setText(tr("Starting session...")); + showMessage(tr("Starting session..."), false); QModelIndex i = sessionsModel.index(0, 0); if (m_Greeter.startSessionSync(sessionsModel.data(i, QLightDM::SessionsModel::KeyRole).toString())) { cancelLoginTimer.stop(); } else { - ui->messageLabel->setText(tr("Cannot open session")); + showMessage(tr("Cannot open session"), true); clearMsg = true; } } else { - qDebug() << "Auth failed, cancelling..."; + qDebug() << "Auth failed, canceling..."; cancelLogin(); } } @@ -169,18 +161,38 @@ void LoginForm::cancelLogin() ui->userInput->setEnabled(true); ui->passwordInput->setEnabled(true); if (!clearMsg) { - ui->messageLabel->setText(tr("Login failed")); + showMessage(tr("Login failed"), true); + } else { + ui->messageLabel->setStyleSheet("color:red"); } ui->userInput->setFocus(); ui->userInput->selectAll(); clearMsg = true; } +void LoginForm::showMessage(QString message, bool error) +{ + hideMessageTimer.stop(); + ui->messageLabel->setText(message); + if (error) { + ui->messageLabel->setStyleSheet("color:red"); + hideMessageTimer.start(); + } else { + ui->messageLabel->setStyleSheet(""); + } +} + +void LoginForm::hideMessage() +{ + hideMessageTimer.stop(); + ui->messageLabel->clear(); +} + void LoginForm::keyPressEvent(QKeyEvent *event) { if (clearMsg) { clearMsg = false; - ui->messageLabel->clear(); + hideMessage(); } if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) { if (!ui->userInput->isEnabled()) { diff --git a/src/loginform.h b/src/loginform.h index 6dfc390..b4dde7c 100644 --- a/src/loginform.h +++ b/src/loginform.h @@ -44,6 +44,7 @@ public slots: void onMessage(QString prompt, QLightDM::Greeter::MessageType messageType); void onAuthenticationComplete(); void cancelLogin(); + void hideMessage(); protected: virtual void keyPressEvent(QKeyEvent *event); @@ -53,6 +54,7 @@ private: void addLeaveEntry(bool canDo, QString iconName, QString text, QString actionName); QString currentSession(); void setCurrentSession(QString session); + void showMessage(QString message, bool error); Ui::LoginForm *ui; @@ -63,6 +65,7 @@ private: QMap powerSlots; QTimer cancelLoginTimer; + QTimer hideMessageTimer; bool clearMsg; }; -- cgit v1.2.3-55-g7522