diff --git a/pglab/ConnectionConfigurationWidget.cpp b/pglab/ConnectionConfigurationWidget.cpp index 979b909..6bf5d18 100644 --- a/pglab/ConnectionConfigurationWidget.cpp +++ b/pglab/ConnectionConfigurationWidget.cpp @@ -14,38 +14,43 @@ #include #include #include +#include #define SET_OBJECT_NAME(var) var->setObjectName(#var) void ConnectionConfigurationWidget::editExistingInWindow(ConnectionController *ctrl, const ConnectionConfig &cfg) { - auto w = new ConnectionConfigurationWidget(ctrl->getConnectionTreeModel()); - w->setData(cfg); + try { + auto w = new ConnectionConfigurationWidget(ctrl->getConnectionTreeModel()); + 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 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 vbox = new QVBoxLayout; - vbox->addWidget(w); - vbox->addWidget(btn_hbox); + auto win = new QDialog; + win->setWindowTitle(tr("Edit connection configuration")); + win->setLayout(vbox); + win->setAttribute( Qt::WA_DeleteOnClose, true ); - auto win = new QDialog; - win->setWindowTitle(tr("Edit connection configuration")); - win->setLayout(vbox); - win->setAttribute( Qt::WA_DeleteOnClose, true ); - - win->connect(btn_hbox, &QDialogButtonBox::accepted, [ctrl, w, win] () { - auto [grp, cc] = w->data(); - ctrl->getConnectionTreeModel()->save(grp, cc); - win->accept(); - }); - win->connect(btn_hbox, &QDialogButtonBox::rejected, [win] () - { - win->reject(); + QObject::connect(btn_hbox, &QDialogButtonBox::accepted, [ctrl, w, win] () { + auto [grp, cc] = w->data(); + ctrl->getConnectionTreeModel()->save(grp, cc); + win->accept(); }); + QObject::connect(btn_hbox, &QDialogButtonBox::rejected, [win] () + { + win->reject(); + }); - win->show(); + win->show(); + } + catch (const std::exception &ex) { + qDebug() << "exception: " << QString::fromUtf8(ex.what()); + } } ConnectionConfigurationWidget::ConnectionConfigurationWidget(ConnectionTreeModel *connection_model, QWidget *parent) diff --git a/pglab/ConnectionListModel.cpp b/pglab/ConnectionListModel.cpp index ede4713..8864165 100644 --- a/pglab/ConnectionListModel.cpp +++ b/pglab/ConnectionListModel.cpp @@ -366,7 +366,7 @@ std::tuple ConnectionTreeModel::findConfig(const QUuid uuid) const return { group_idx, connection_idx }; } -int ConnectionTreeModel::findGroup(QString name) const +int ConnectionTreeModel::findGroup(const QString &name) const { for (int idx = 0; idx < m_groups.size(); ++idx) { if (m_groups[idx]->name == name) return idx; @@ -374,7 +374,7 @@ int ConnectionTreeModel::findGroup(QString name) const return -1; } -std::variant ConnectionTreeModel::addGroup(QString group_name) +std::variant ConnectionTreeModel::addGroup(const QString &group_name) { QSqlQuery q(m_db); q.prepare("INSERT INTO conngroup (gname) VALUES (:name)"); diff --git a/pglab/ConnectionListModel.h b/pglab/ConnectionListModel.h index 515add6..8a21db8 100644 --- a/pglab/ConnectionListModel.h +++ b/pglab/ConnectionListModel.h @@ -61,7 +61,7 @@ public: */ void save(const ConnectionConfig &cc); /// Create a new group in the DB and place in the tree - std::variant addGroup(QString group_name); + std::variant addGroup(const QString &group_name); std::optional removeGroup(int row); int findGroup(int conngroup_id) const; @@ -77,7 +77,7 @@ private: /// Finds the connection with the specified uuid and returns /// { group_index, connection_index } std::tuple findConfig(const QUuid uuid) const; - int findGroup(QString name) const; + int findGroup(const QString &name) const; std::optional saveToDb(const ConnectionConfig &cc); }; diff --git a/pglab/ConnectionManagerWindow.h b/pglab/ConnectionManagerWindow.h index c72b9cb..29fedf0 100644 --- a/pglab/ConnectionManagerWindow.h +++ b/pglab/ConnectionManagerWindow.h @@ -20,7 +20,7 @@ class ConnectionManagerWindow : public QMainWindow { Q_OBJECT public: explicit ConnectionManagerWindow(MasterController *master, QWidget *parent = nullptr); - ~ConnectionManagerWindow(); + ~ConnectionManagerWindow() override; private slots: void on_actionAdd_Connection_triggered(); diff --git a/pglablib/ConnectionConfig.h b/pglablib/ConnectionConfig.h index d08b6ca..452e723 100644 --- a/pglablib/ConnectionConfig.h +++ b/pglablib/ConnectionConfig.h @@ -139,7 +139,7 @@ private: std::string m_encodedPassword; bool m_dirty = false; - ConnectionGroup* m_group; + ConnectionGroup* m_group = nullptr; static void strToEnv(QProcessEnvironment &env, const QString &var, const std::string &val);