/
authorization.cpp
114 lines (95 loc) · 2.82 KB
/
authorization.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include "authorization.h"
#include "ui_authorization.h"
#include "mainwindow.h"
#include "settings.h"
authorization::authorization(QWidget *parent) :
QDialog(parent),
ui(new Ui::authorization)
{
ui->setupUi(this);
// db = QSqlDatabase::addDatabase("QMYSQL");
// db.setDatabaseName("timetable");
// db.setHostName("localhost");
// db.setPort(3307);
}
authorization::authorization(QSqlDatabase *kept_db, QColor *d_color, QWidget *parent) :
QDialog(parent),
ui(new Ui::authorization)
{
ui->setupUi(this);
db=kept_db;
dinner_color=d_color;
read_properties();
}
authorization::~authorization()
{
delete ui;
}
void authorization::on_pushButton_2_clicked()
{
read_properties();
db->setUserName(ui->lineEdit->text());
db->setPassword(ui->lineEdit_2->text());
if( db->open() ){
QSqlQuery query (*db);
query.prepare ("select count(*) from users where login= :login");
query.bindValue(":login", ui->lineEdit->text());
if ( query.exec()){
query.next();
if (query.value(0).toInt()>0){
this->hide();
}else{
QMessageBox::critical(0, tr("Autorization error"),tr("Autorization failed"), 0,0,0);
}
}else{
QMessageBox::critical(0, tr("Autorization error"),db->lastError().text(), 0,0,0);
}
}else{
QMessageBox::critical(0, tr("Autorization error"),db->lastError().text(), 0,0,0);
}
}
void authorization::on_pushButton_clicked()
{
this->close();
}
void authorization::closeEvent(QCloseEvent *event)
{
exit(0);
}
void authorization::on_pushButton_3_clicked()
{
settings s(db, dinner_color, true);
s.exec();
}
void authorization::on_authorization_rejected()
{
}
void authorization::reject()
{
//Не удалять! Эта функция запрещает закрывать форму авторизации при нажатии на кнопку Escape
}
void authorization::read_properties()
{
QFile file(qApp->applicationDirPath()+"/properties.ini");
if (file.open(QIODevice::ReadOnly)) {
QTextStream stream(&file);
QString temp_text;
int pos;
QString param;
while ( !stream.atEnd() ) {
temp_text=stream.readLine();
pos = temp_text.indexOf("=");
if (pos>-1){
param=temp_text.left(pos).trimmed();
if (param=="database_host"){
db->setHostName(temp_text.mid(pos+1).trimmed());
} else if (param=="database_port") {
db->setPort(temp_text.mid(pos+1).trimmed().toInt());
} else if (param=="dinner_color") {
dinner_color->setNamedColor(temp_text.mid(pos+1).trimmed());
}
}
}
file.close();
}
}