72 lines
2.5 KiB
C++
72 lines
2.5 KiB
C++
#include "auth.h"
|
|
|
|
#include <QMessageBox>
|
|
#include <QSettings>
|
|
#include <QSqlError>
|
|
|
|
auth::auth(QWidget *parent)
|
|
: QWidget{parent}
|
|
, _nicknameLabel(new QLabel("nickname:"))
|
|
, _nicknameEdit(new QLineEdit())
|
|
, _passwordLabel(new QLabel("passwprd:"))
|
|
, _passwordEdit(new QLineEdit())
|
|
, _addressLabel(new QLabel("address:"))
|
|
, _addressEdit(new QLineEdit())
|
|
, _portLabel(new QLabel("port:"))
|
|
, _portEdit(new QLineEdit())
|
|
, _okButton(new QPushButton("&OK"))
|
|
, _quitButton(new QPushButton("&QUIT"))
|
|
, _vbox(new QVBoxLayout(this))
|
|
, _db(QSqlDatabase::addDatabase("QPSQL"))
|
|
{
|
|
_nicknameLabel->setAlignment (Qt::AlignHCenter);
|
|
_passwordLabel->setAlignment (Qt::AlignHCenter);
|
|
_addressLabel->setAlignment (Qt::AlignHCenter);
|
|
_portLabel->setAlignment (Qt::AlignHCenter);
|
|
_passwordEdit->setEchoMode (QLineEdit::Password);
|
|
|
|
QSettings settings ("mysitenews", "mysitenews");
|
|
_nicknameEdit->setText (settings.value ("db/user").toString ());
|
|
_passwordEdit->setText (settings.value ("db/password").toString ());
|
|
_addressEdit->setText (settings.value ("db/host").toString ());
|
|
_portEdit->setText (settings.value ("db/port", "5432").toString ());
|
|
_vbox->addWidget (_nicknameLabel);
|
|
_vbox->addWidget (_nicknameEdit);
|
|
_vbox->addWidget (_passwordLabel);
|
|
_vbox->addWidget (_passwordEdit);
|
|
_vbox->addWidget (_addressLabel);
|
|
_vbox->addWidget (_addressEdit);
|
|
_vbox->addWidget (_portLabel);
|
|
_vbox->addWidget (_portEdit);
|
|
_vbox->addWidget (_okButton);
|
|
_vbox->addWidget (_quitButton);
|
|
connect (_okButton, &QPushButton::clicked, this, &auth::onAuth);
|
|
connect (_quitButton, &QPushButton::clicked, this, &auth::close);
|
|
setLayout (_vbox);
|
|
}
|
|
|
|
void
|
|
auth::onAuth ()
|
|
{
|
|
QSettings settings ("mysitenews", "mysitenews");
|
|
_db.setHostName(_addressEdit->text());
|
|
_db.setPort(_portEdit->text().toInt());
|
|
_db.setDatabaseName(settings.value ("db/database", "cards").toString ());
|
|
_db.setUserName(_nicknameEdit->text());
|
|
_db.setPassword(_passwordEdit->text());
|
|
if (!_db.open()) {
|
|
QMessageBox::critical(this, tr("Ошибка подключения"),
|
|
_db.lastError().text());
|
|
return;
|
|
}
|
|
|
|
settings.setValue ("db/host", _db.hostName ());
|
|
settings.setValue ("db/port", _db.port ());
|
|
settings.setValue ("db/database", _db.databaseName ());
|
|
settings.setValue ("db/user", _db.userName ());
|
|
settings.setValue ("db/password", _db.password ());
|
|
|
|
emit dbOpenned(_db);
|
|
close();
|
|
}
|