add: persist last successful connection config and show connection errors
This commit is contained in:
parent
71def5d8ae
commit
be51020e75
57
auth.cpp
57
auth.cpp
|
|
@ -1,20 +1,35 @@
|
|||
#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 (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);
|
||||
|
|
@ -33,16 +48,24 @@ auth::auth (QWidget *parent)
|
|||
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) {
|
||||
emit dbOpenned(db);
|
||||
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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue