-
Notifications
You must be signed in to change notification settings - Fork 3
/
logindialog.cpp
88 lines (82 loc) · 2.25 KB
/
logindialog.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#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();
}