diff --git a/pglab/ConnectionController.cpp b/pglab/ConnectionController.cpp index 388c00b..4e05cc3 100644 --- a/pglab/ConnectionController.cpp +++ b/pglab/ConnectionController.cpp @@ -92,7 +92,17 @@ void ConnectionController::editConnection(QModelIndex index) auto config = ConnectionTreeModel::getConfigFromModelIndex(index); if (config) { ConnectionConfigurationWidget::editExistingInWindow(this, *config); - } + } +} + +void ConnectionController::editCopy(QModelIndex index) +{ + auto config = ConnectionTreeModel::getConfigFromModelIndex(index); + if (config) { + auto cc = *config; + cc.setUuid(QUuid::createUuid()); + ConnectionConfigurationWidget::editExistingInWindow(this, cc); + } } void ConnectionController::addGroup() diff --git a/pglab/ConnectionController.h b/pglab/ConnectionController.h index 9e1def3..35e4e88 100644 --- a/pglab/ConnectionController.h +++ b/pglab/ConnectionController.h @@ -36,7 +36,8 @@ public: /// Starts the form for editing a conncetion. /// This function returns immidiatly! void editConnection(QModelIndex index); - void addGroup(); + void editCopy(QModelIndex index); + void addGroup(); void removeGroup(QModelIndex index); std::shared_ptr passwordManager(); diff --git a/pglab/ConnectionManagerWindow.cpp b/pglab/ConnectionManagerWindow.cpp index e40ea6b..d7fb587 100644 --- a/pglab/ConnectionManagerWindow.cpp +++ b/pglab/ConnectionManagerWindow.cpp @@ -102,3 +102,9 @@ void ConnectionManagerWindow::on_actionRemove_group_triggered() auto ci = ui->treeView->selectionModel()->currentIndex(); m_connectionController->removeGroup(ci); } + +void ConnectionManagerWindow::on_actionConfigureCopy_triggered() +{ + auto ci = ui->treeView->selectionModel()->currentIndex(); + m_connectionController->editCopy(ci); +} diff --git a/pglab/ConnectionManagerWindow.h b/pglab/ConnectionManagerWindow.h index 29fedf0..5112163 100644 --- a/pglab/ConnectionManagerWindow.h +++ b/pglab/ConnectionManagerWindow.h @@ -38,6 +38,8 @@ private slots: void on_actionRemove_group_triggered(); + void on_actionConfigureCopy_triggered(); + private: Ui::ConnectionManagerWindow *ui; MasterController *m_masterController; diff --git a/pglab/ConnectionManagerWindow.ui b/pglab/ConnectionManagerWindow.ui index 79b6c2a..ec23549 100644 --- a/pglab/ConnectionManagerWindow.ui +++ b/pglab/ConnectionManagerWindow.ui @@ -26,7 +26,7 @@ 0 0 413 - 20 + 30 @@ -74,12 +74,13 @@ QToolButton { + - + :/icons/add_connection.png:/icons/add_connection.png @@ -88,7 +89,7 @@ QToolButton { - + :/icons/delete_connection.png :/icons/delete_connection.png:/icons/delete_connection.png @@ -116,7 +117,7 @@ QToolButton { - + :/icons/backup_database.png :/icons/backups.png:/icons/backup_database.png @@ -164,9 +165,17 @@ QToolButton { Remove group + + + + :/icons/server_configuration.png + + + + Configure copy + + - - - +