ConnectionManager overhaul
- connection settings are now changed by seperate component currently called in a seperate window - old settings pane on the right of the connections had been removed - new edit config button added between new connection and remove connection
This commit is contained in:
parent
78247c7abe
commit
b09e8a6d4b
20 changed files with 836 additions and 733 deletions
181
pglab/ConnectionConfigurationWidget.cpp
Normal file
181
pglab/ConnectionConfigurationWidget.cpp
Normal file
|
|
@ -0,0 +1,181 @@
|
|||
#include "ConnectionConfigurationWidget.h"
|
||||
#include "SslModeModel.h"
|
||||
#include "ConnectionConfig.h"
|
||||
#include "ConnectionController.h"
|
||||
#include "ConnectionListModel.h"
|
||||
#include "util.h"
|
||||
#include <QApplication>
|
||||
#include <QDataWidgetMapper>
|
||||
#include <QDialogButtonBox>
|
||||
#include <QFormLayout>
|
||||
#include <QLabel>
|
||||
#include <QLineEdit>
|
||||
#include <QPushButton>
|
||||
#include <QSpinBox>
|
||||
#include <QComboBox>
|
||||
#include <QDialog>
|
||||
|
||||
#define SET_OBJECT_NAME(var) var->setObjectName(#var)
|
||||
|
||||
void ConnectionConfigurationWidget::editExistingInWindow(ConnectionController *ctrl, const ConnectionConfig &cfg)
|
||||
{
|
||||
auto w = new ConnectionConfigurationWidget;
|
||||
w->setData(cfg);
|
||||
|
||||
|
||||
auto btn_hbox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal);
|
||||
//auto btn_test = btn_hbox->addButton(tr("Test"), QDialogButtonBox::ActionRole);
|
||||
|
||||
auto vbox = new QVBoxLayout;
|
||||
vbox->addWidget(w);
|
||||
vbox->addWidget(btn_hbox);
|
||||
|
||||
auto win = new QDialog;
|
||||
win->setWindowTitle(tr("Edit connection configuration"));
|
||||
win->setLayout(vbox);
|
||||
|
||||
win->connect(btn_hbox, &QDialogButtonBox::accepted, [ctrl, w, win] () {
|
||||
auto cc = w->data();
|
||||
ctrl->getConnectionListModel()->save(cc);
|
||||
win->accept();
|
||||
});
|
||||
win->connect(btn_hbox, &QDialogButtonBox::rejected, [win] () { win->reject(); });
|
||||
|
||||
win->connect(win, &QDialog::finished, [win] (int)
|
||||
{
|
||||
delete win;
|
||||
});
|
||||
|
||||
win->show();
|
||||
}
|
||||
|
||||
ConnectionConfigurationWidget::ConnectionConfigurationWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
lblName = new QLabel;
|
||||
SET_OBJECT_NAME(lblName);
|
||||
edtName = new QLineEdit ;
|
||||
SET_OBJECT_NAME(edtName);
|
||||
lblName->setBuddy(edtName);
|
||||
|
||||
lblHost = new QLabel;
|
||||
SET_OBJECT_NAME(lblHost);
|
||||
edtHost = new QLineEdit;
|
||||
SET_OBJECT_NAME(edtHost);
|
||||
lblHost->setBuddy(edtHost);
|
||||
|
||||
lblPort = new QLabel;
|
||||
SET_OBJECT_NAME(lblPort);
|
||||
spinPort = new QSpinBox;
|
||||
SET_OBJECT_NAME(spinPort);
|
||||
spinPort->setRange(1, std::numeric_limits<uint16_t>::max());
|
||||
lblPort->setBuddy(spinPort);
|
||||
|
||||
lblUser = new QLabel;
|
||||
SET_OBJECT_NAME(lblUser);
|
||||
edtUser = new QLineEdit;
|
||||
SET_OBJECT_NAME(edtUser);
|
||||
lblUser->setBuddy(edtUser);
|
||||
|
||||
lblDbName = new QLabel;
|
||||
SET_OBJECT_NAME(lblDbName);
|
||||
edtDbname = new QLineEdit;
|
||||
SET_OBJECT_NAME(edtDbname);
|
||||
lblDbName->setBuddy(edtDbname);
|
||||
|
||||
lblSsl = new QLabel;
|
||||
SET_OBJECT_NAME(lblSsl);
|
||||
cmbbxSsl = new QComboBox;
|
||||
SET_OBJECT_NAME(cmbbxSsl);
|
||||
cmbbxSsl->setModelColumn(0);
|
||||
auto ssl_model = new SslModeModel(this);
|
||||
cmbbxSsl->setModel(ssl_model);
|
||||
lblSsl->setBuddy(cmbbxSsl);
|
||||
|
||||
lblCert = new QLabel;
|
||||
SET_OBJECT_NAME(lblCert);
|
||||
edtCert = new QLineEdit;
|
||||
SET_OBJECT_NAME(edtCert);
|
||||
lblCert->setBuddy(edtCert);
|
||||
|
||||
lblKey = new QLabel;
|
||||
SET_OBJECT_NAME(lblKey);
|
||||
edtKey = new QLineEdit;
|
||||
SET_OBJECT_NAME(edtKey);
|
||||
lblKey->setBuddy(edtKey);
|
||||
|
||||
lblRootCert = new QLabel;
|
||||
SET_OBJECT_NAME(lblRootCert);
|
||||
edtRootCert = new QLineEdit;
|
||||
SET_OBJECT_NAME(edtRootCert);
|
||||
lblRootCert->setBuddy(edtRootCert);
|
||||
|
||||
lblCrl = new QLabel;
|
||||
SET_OBJECT_NAME(lblCrl);
|
||||
edtCrl = new QLineEdit;
|
||||
SET_OBJECT_NAME(edtCrl);
|
||||
lblCrl->setBuddy(edtCrl);
|
||||
|
||||
formLayout = new QFormLayout;
|
||||
|
||||
setLayout(formLayout);
|
||||
formLayout->addRow(lblName, edtName);
|
||||
formLayout->addRow(lblHost, edtHost);
|
||||
formLayout->addRow(lblPort, spinPort);
|
||||
formLayout->addRow(lblUser, edtUser);
|
||||
formLayout->addRow(lblDbName, edtDbname);
|
||||
formLayout->addRow(lblSsl, cmbbxSsl);
|
||||
formLayout->addRow(lblCert, edtCert);
|
||||
formLayout->addRow(lblKey, edtKey);
|
||||
formLayout->addRow(lblRootCert, edtRootCert);
|
||||
formLayout->addRow(lblCrl, edtCrl);
|
||||
|
||||
retranslateUi();
|
||||
}
|
||||
|
||||
void ConnectionConfigurationWidget::retranslateUi()
|
||||
{
|
||||
lblName->setText(QApplication::translate("ConnectionConfigurationWidget", "&Name", nullptr));
|
||||
lblHost->setText(QApplication::translate("ConnectionConfigurationWidget", "&Host", nullptr));
|
||||
lblPort->setText(QApplication::translate("ConnectionConfigurationWidget", "&Port", nullptr));
|
||||
lblUser->setText(QApplication::translate("ConnectionConfigurationWidget", "&Username", nullptr));
|
||||
lblDbName->setText(QApplication::translate("ConnectionConfigurationWidget", "&Database", nullptr));
|
||||
lblSsl->setText(QApplication::translate("ConnectionConfigurationWidget", "&SSL mode", nullptr));
|
||||
lblCert->setText(QApplication::translate("ConnectionConfigurationWidget", "&Certificate", nullptr));
|
||||
lblKey->setText(QApplication::translate("ConnectionConfigurationWidget", "&Key", nullptr));
|
||||
lblRootCert->setText(QApplication::translate("ConnectionConfigurationWidget", "&Root cert.", nullptr));
|
||||
lblCrl->setText(QApplication::translate("ConnectionConfigurationWidget", "Revocation &list", nullptr));
|
||||
}
|
||||
|
||||
void ConnectionConfigurationWidget::setData(const ConnectionConfig &cfg)
|
||||
{
|
||||
m_uuid = cfg.uuid();
|
||||
edtName->setText(stdStrToQ(cfg.name()));
|
||||
edtHost->setText(stdStrToQ(cfg.host()));
|
||||
spinPort->setValue(cfg.port());
|
||||
edtUser->setText(stdStrToQ(cfg.user()));
|
||||
edtDbname->setText(stdStrToQ(cfg.dbname()));
|
||||
cmbbxSsl->setCurrentIndex(static_cast<int>(cfg.sslMode()));
|
||||
edtCert->setText(stdStrToQ(cfg.sslCert()));
|
||||
edtKey->setText(stdStrToQ(cfg.sslKey()));
|
||||
edtRootCert->setText(stdStrToQ(cfg.sslRootCert()));
|
||||
edtCrl->setText(stdStrToQ(cfg.sslCrl()));
|
||||
}
|
||||
|
||||
ConnectionConfig ConnectionConfigurationWidget::data() const
|
||||
{
|
||||
ConnectionConfig cfg;
|
||||
cfg.setUuid(m_uuid);
|
||||
cfg.setName(qStrToStd(edtName->text()));
|
||||
cfg.setHost(qStrToStd(edtHost->text()));
|
||||
cfg.setPort(static_cast<uint16_t>(spinPort->value()));
|
||||
cfg.setUser(qStrToStd(edtUser->text()));
|
||||
cfg.setDbname(qStrToStd(edtDbname->text()));
|
||||
cfg.setSslMode(static_cast<SslMode>(cmbbxSsl->currentIndex()));
|
||||
cfg.setSslCert(qStrToStd(edtCert->text()));
|
||||
cfg.setSslKey(qStrToStd(edtKey->text()));
|
||||
cfg.setSslRootCert(qStrToStd(edtRootCert->text()));
|
||||
cfg.setSslCrl(qStrToStd(edtCrl->text()));
|
||||
return cfg;
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue