mysitenews/auth.cpp

49 lines
1.7 KiB
C++

#include "auth.h"
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 (parent))
{
_nicknameLabel->setAlignment (Qt::AlignHCenter);
_passwordLabel->setAlignment (Qt::AlignHCenter);
_addressLabel->setAlignment (Qt::AlignHCenter);
_portLabel->setAlignment (Qt::AlignHCenter);
_passwordEdit->setEchoMode (QLineEdit::Password);
_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 ()
{
QSqlDatabase *db = new QSqlDatabase(QSqlDatabase::addDatabase("QPSQL"));
db->setHostName(_addressEdit->text());
db->setPort(_portEdit->text().toInt());
db->setDatabaseName("cards");
db->setUserName(_nicknameEdit->text());
db->setPassword(_passwordEdit->text());
bool ok = db->open();
if (!ok) {
// Error to open db
close();
}
emit dbOpenned(db);
}