defuze.me  Client
loginview.cpp
00001 #include <QMovie>
00002 #include <QDebug>
00003 #include "loginview.hpp"
00004 #include "ui_loginview.h"
00005 
00006 using namespace Network;
00007 
00008 LoginView::LoginView(const QString& login) : QWidget(0), ui(new Ui::LoginView)
00009 {
00010     ui->setupUi(this);
00011     if (login.length() > 0)
00012     {
00013         ui->login_field->setText(login);
00014         ui->password_field->setFocus();
00015     }
00016     success = false;
00017 }
00018 
00019 LoginView::~LoginView()
00020 {
00021     delete ui;
00022 }
00023 
00024 void LoginView::clear_controls()
00025 {
00026     ui->login_field->setEnabled(true);
00027     ui->password_field->setEnabled(true);
00028     ui->button_connect->setEnabled(true);
00029 }
00030 
00031 void LoginView::on_button_connect_clicked()
00032 {
00033     ui->login_field->setEnabled(false);
00034     ui->password_field->setEnabled(false);
00035     ui->button_connect->setEnabled(false);
00036     emit authenticate(ui->login_field->text(), ui->password_field->text());
00037 }
00038 
00039 void LoginView::on_button_postpone_clicked()
00040 {
00041     // TODO
00042 }
00043 
00044 void LoginView::closeEvent(QCloseEvent *event)
00045 {
00046     if (!success)
00047         emit cancelled();
00048     event->accept();
00049 }
00050 
00051 void LoginView::on_button_cancel_clicked()
00052 {
00053     close();
00054 }
00055 
00056 void LoginView::login_failed(const QString)
00057 {
00058     clear_controls();
00059     ui->description_label->setText(tr("Authentication failed. Please check your credentials and retry."));
00060     ui->icon_label->setPixmap(QPixmap(":/icons/icons/error.png"));
00061 }
00062 
00063 void LoginView::login_sucess()
00064 {
00065     success = true;
00066     close();
00067 }
00068 
00069 void LoginView::on_password_field_textChanged(QString text)
00070 {
00071     ui->button_connect->setEnabled(text.size() > 0 && ui->login_field->text().size() > 0);
00072 }
00073 
00074 void LoginView::on_login_field_textChanged(QString text)
00075 {
00076     ui->button_connect->setEnabled(text.size() > 0 && ui->password_field->text().size() > 0);
00077 }
00078 
00079 void Network::LoginView::on_password_field_returnPressed()
00080 {
00081     on_button_connect_clicked();
00082 }