mirror of
https://gitlab.com/comunic/comunicwatcher
synced 2024-10-22 22:53:24 +00:00
107 lines
2.1 KiB
C++
107 lines
2.1 KiB
C++
#include "accounthelper.h"
|
|
#include "apirequest.h"
|
|
#include "loginsuccessfuldialog.h"
|
|
#include "loginwindow.h"
|
|
#include "refreshservice.h"
|
|
#include "ui_loginwindow.h"
|
|
|
|
#include <QMessageBox>
|
|
|
|
LoginWindow::LoginWindow(QWidget *parent)
|
|
: QDialog(parent)
|
|
, ui(new Ui::LoginWindow)
|
|
{
|
|
ui->setupUi(this);
|
|
setWindowFlag(Qt::FramelessWindowHint);
|
|
setLoading(false);
|
|
}
|
|
|
|
LoginWindow::~LoginWindow()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
|
|
void LoginWindow::on_closeButton_clicked()
|
|
{
|
|
this->close();
|
|
}
|
|
|
|
|
|
void LoginWindow::mousePressEvent(QMouseEvent *evt)
|
|
{
|
|
mOldPos = evt->globalPos();
|
|
}
|
|
|
|
void LoginWindow::mouseMoveEvent(QMouseEvent *evt)
|
|
{
|
|
const QPoint delta = evt->globalPos() - mOldPos;
|
|
move(x()+delta.x(), y()+delta.y());
|
|
mOldPos = evt->globalPos();
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
setLoading(true);
|
|
|
|
AccountHelper::LoginUser(
|
|
ui->emailEdit->text(),
|
|
ui->passwordEdit->text(),
|
|
[&](LoginResult res) {
|
|
this->onResponse(res);
|
|
});
|
|
}
|
|
|
|
void LoginWindow::onResponse(LoginResult res)
|
|
{
|
|
QString msg;
|
|
|
|
switch(res) {
|
|
|
|
case SUCCESS:
|
|
LoginSuccessfulDialog(this).exec();
|
|
|
|
RefreshService::startService();
|
|
|
|
close();
|
|
deleteLater();
|
|
return;
|
|
|
|
case BAD_PASSWORD:
|
|
msg = tr("Invalid credentials!");
|
|
break;
|
|
|
|
case TOO_MANY_REQUEST:
|
|
msg = tr("Too many login attempt, please try again later!");
|
|
break;
|
|
|
|
default:
|
|
msg = tr("An error occured while trying to sign you in!");
|
|
break;
|
|
}
|
|
|
|
setLoading(false);
|
|
QMessageBox::warning(this, tr("Login failed"), msg);
|
|
}
|
|
|
|
void LoginWindow::on_submitButton_clicked()
|
|
{
|
|
submitForm();
|
|
}
|
|
|
|
void LoginWindow::setLoading(bool loading)
|
|
{
|
|
ui->loginProgress->setVisible(loading);
|
|
ui->loginFormContainer->setVisible(!loading);
|
|
}
|