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 "auth.h"
|
||||||
|
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QSqlError>
|
||||||
|
|
||||||
auth::auth(QWidget *parent)
|
auth::auth(QWidget *parent)
|
||||||
: QWidget{ parent }, _nicknameLabel (new QLabel ("nickname:")),
|
: QWidget{parent}
|
||||||
_nicknameEdit (new QLineEdit ()),
|
, _nicknameLabel(new QLabel("nickname:"))
|
||||||
_passwordLabel (new QLabel ("passwprd:")),
|
, _nicknameEdit(new QLineEdit())
|
||||||
_passwordEdit (new QLineEdit ()),
|
, _passwordLabel(new QLabel("passwprd:"))
|
||||||
_addressLabel (new QLabel ("address:")), _addressEdit (new QLineEdit ()),
|
, _passwordEdit(new QLineEdit())
|
||||||
_portLabel (new QLabel ("port:")), _portEdit (new QLineEdit ()),
|
, _addressLabel(new QLabel("address:"))
|
||||||
_okButton (new QPushButton ("&OK")),
|
, _addressEdit(new QLineEdit())
|
||||||
_quitButton (new QPushButton ("&QUIT")), _vbox (new QVBoxLayout (parent))
|
, _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);
|
_nicknameLabel->setAlignment (Qt::AlignHCenter);
|
||||||
_passwordLabel->setAlignment (Qt::AlignHCenter);
|
_passwordLabel->setAlignment (Qt::AlignHCenter);
|
||||||
_addressLabel->setAlignment (Qt::AlignHCenter);
|
_addressLabel->setAlignment (Qt::AlignHCenter);
|
||||||
_portLabel->setAlignment (Qt::AlignHCenter);
|
_portLabel->setAlignment (Qt::AlignHCenter);
|
||||||
_passwordEdit->setEchoMode (QLineEdit::Password);
|
_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 (_nicknameLabel);
|
||||||
_vbox->addWidget (_nicknameEdit);
|
_vbox->addWidget (_nicknameEdit);
|
||||||
_vbox->addWidget (_passwordLabel);
|
_vbox->addWidget (_passwordLabel);
|
||||||
|
|
@ -33,16 +48,24 @@ auth::auth (QWidget *parent)
|
||||||
void
|
void
|
||||||
auth::onAuth ()
|
auth::onAuth ()
|
||||||
{
|
{
|
||||||
QSqlDatabase *db = new QSqlDatabase(QSqlDatabase::addDatabase("QPSQL"));
|
QSettings settings ("mysitenews", "mysitenews");
|
||||||
db->setHostName(_addressEdit->text());
|
_db.setHostName(_addressEdit->text());
|
||||||
db->setPort(_portEdit->text().toInt());
|
_db.setPort(_portEdit->text().toInt());
|
||||||
db->setDatabaseName("cards");
|
_db.setDatabaseName(settings.value ("db/database", "cards").toString ());
|
||||||
db->setUserName(_nicknameEdit->text());
|
_db.setUserName(_nicknameEdit->text());
|
||||||
db->setPassword(_passwordEdit->text());
|
_db.setPassword(_passwordEdit->text());
|
||||||
bool ok = db->open();
|
if (!_db.open()) {
|
||||||
if (ok) {
|
QMessageBox::critical(this, tr("Ошибка подключения"),
|
||||||
emit dbOpenned(db);
|
_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();
|
close();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
3
auth.h
3
auth.h
|
|
@ -26,10 +26,11 @@ private:
|
||||||
QPushButton *_okButton = nullptr;
|
QPushButton *_okButton = nullptr;
|
||||||
QPushButton *_quitButton = nullptr;
|
QPushButton *_quitButton = nullptr;
|
||||||
QVBoxLayout *_vbox = nullptr;
|
QVBoxLayout *_vbox = nullptr;
|
||||||
|
QSqlDatabase _db;
|
||||||
public slots:
|
public slots:
|
||||||
void onAuth ();
|
void onAuth ();
|
||||||
signals:
|
signals:
|
||||||
void dbOpenned(QSqlDatabase *);
|
void dbOpenned(const QSqlDatabase &);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AUTH_H
|
#endif // AUTH_H
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue