Files
DataStructureProject/logindialog.cpp
T
2017-12-26 10:13:49 +08:00

89 lines
2.3 KiB
C++

#include "logindialog.h"
#include "ui_logindialog.h"
#include "logwindow.h"
#include <QTextStream>
LoginDialog::LoginDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::LoginDialog)
{
ui->setupUi(this);
QFile f("QCore.dll");
if (f.open(QFile::ReadOnly| QIODevice::ReadOnly | QIODevice::Text)) {
QTextStream in(&f);
in >> id;
in >> psd;
if (id.size() != 0 && psd.size() != 0)
first = false;
}
hide();
if (first) {
setWindowTitle("第一次使用,请注册");
ui->repeat->show();
ui->repeat_label->show();
}
else {
setWindowTitle("登陆");
ui->repeat->hide();
ui->repeat_label->hide();
}
QPalette p(QPalette::WindowText,Qt::red);
ui->hint->setPalette(p);
setModal(true);
connect(ui->ok, &QPushButton::clicked, this, &LoginDialog::ok);
connect(ui->cancel, &QPushButton::clicked, this, &LoginDialog::cancel);
}
bool LoginDialog::getPermission()
{
if (login)
return true;
return exec();
}
LoginDialog::~LoginDialog()
{
delete ui;
}
void LoginDialog::ok()
{
if (first) {
if (!(ui->id->text().size() && ui->psd->text().size() && ui->repeat->text().size()))
ui->hint->setText("所有选项均必填");
else if (ui->psd->text() == ui->repeat->text()) {
Log::i("注册登陆成功");
id = ui->id->text();
psd = ui->psd->text();
login = true;
accept();
QFile f("QCore.dll");
if (f.open(QFile::WriteOnly)) {
f.write(id.toStdString().c_str());
f.write("\n");
f.write(psd.toStdString().c_str());
first = false;
}
f.close();
} else {
ui->hint->setText("两次密码不匹配");
}
} else {
if (!(ui->id->text().size() && ui->psd->text().size()))
ui->hint->setText("所有选项均必填");
else if (ui->id->text()!=id || ui->psd->text() != psd)
ui->hint->setText("用户名或密码不匹配");
else {
Log::i("登陆成功");
login = true;
accept();
}
}
}
void LoginDialog::cancel()
{
reject();
}