comunicwatcher/loginwindow.cpp

107 lines
2.1 KiB
C++
Raw Permalink Normal View History

2020-06-13 07:49:24 +00:00
#include "accounthelper.h"
2020-06-12 16:20:53 +00:00
#include "apirequest.h"
2020-06-13 08:42:14 +00:00
#include "loginsuccessfuldialog.h"
2020-06-12 12:22:37 +00:00
#include "loginwindow.h"
2020-06-13 08:19:49 +00:00
#include "refreshservice.h"
2020-06-12 12:22:37 +00:00
#include "ui_loginwindow.h"
2020-06-12 13:58:23 +00:00
#include <QMessageBox>
2020-06-12 12:22:37 +00:00
LoginWindow::LoginWindow(QWidget *parent)
2020-06-12 12:36:06 +00:00
: QDialog(parent)
2020-06-12 12:22:37 +00:00
, ui(new Ui::LoginWindow)
{
ui->setupUi(this);
2020-06-12 13:15:06 +00:00
setWindowFlag(Qt::FramelessWindowHint);
2020-06-12 16:20:53 +00:00
setLoading(false);
2020-06-12 12:22:37 +00:00
}
LoginWindow::~LoginWindow()
{
delete ui;
}
2020-06-12 13:15:06 +00:00
void LoginWindow::on_closeButton_clicked()
{
this->close();
}
2020-06-12 13:19:50 +00:00
void LoginWindow::mousePressEvent(QMouseEvent *evt)
{
mOldPos = evt->globalPos();
}
void LoginWindow::mouseMoveEvent(QMouseEvent *evt)
{
const QPoint delta = evt->globalPos() - mOldPos;
2020-06-12 13:58:23 +00:00
move(x()+delta.x(), y()+delta.y());
2020-06-12 13:19:50 +00:00
mOldPos = evt->globalPos();
}
2020-06-12 13:58:23 +00:00
void LoginWindow::submitForm()
{
if(ui->emailEdit->text().isEmpty()) {
QMessageBox::warning(this, tr("Error"), tr("Please specify an email address!"));
return;
}
if(ui->passwordEdit->text().isEmpty()) {
QMessageBox::warning(this, tr("Error"), tr("Please specify your password!"));
return;
}
2020-06-12 16:20:53 +00:00
setLoading(true);
2020-06-13 07:49:24 +00:00
AccountHelper::LoginUser(
ui->emailEdit->text(),
ui->passwordEdit->text(),
[&](LoginResult res) {
this->onResponse(res);
});
2020-06-12 16:20:53 +00:00
}
2020-06-13 07:49:24 +00:00
void LoginWindow::onResponse(LoginResult res)
2020-06-12 16:20:53 +00:00
{
2020-06-13 07:49:24 +00:00
QString msg;
2020-06-12 16:20:53 +00:00
2020-06-13 07:49:24 +00:00
switch(res) {
2020-06-12 16:20:53 +00:00
2020-06-13 07:49:24 +00:00
case SUCCESS:
2020-06-13 08:42:14 +00:00
LoginSuccessfulDialog(this).exec();
2020-06-13 08:19:49 +00:00
RefreshService::startService();
2020-06-13 08:42:14 +00:00
2020-06-13 08:19:49 +00:00
close();
deleteLater();
2020-06-13 07:49:24 +00:00
return;
2020-06-12 16:20:53 +00:00
2020-06-13 07:49:24 +00:00
case BAD_PASSWORD:
msg = tr("Invalid credentials!");
break;
2020-06-12 16:20:53 +00:00
2020-06-13 07:49:24 +00:00
case TOO_MANY_REQUEST:
msg = tr("Too many login attempt, please try again later!");
break;
2020-06-12 16:20:53 +00:00
2020-06-13 07:49:24 +00:00
default:
msg = tr("An error occured while trying to sign you in!");
break;
2020-06-12 16:20:53 +00:00
}
2020-06-13 07:49:24 +00:00
setLoading(false);
QMessageBox::warning(this, tr("Login failed"), msg);
2020-06-12 13:58:23 +00:00
}
void LoginWindow::on_submitButton_clicked()
{
submitForm();
}
2020-06-12 16:20:53 +00:00
void LoginWindow::setLoading(bool loading)
{
ui->loginProgress->setVisible(loading);
ui->loginFormContainer->setVisible(!loading);
}