2017-08-23 13:27:23 +02:00
|
|
|
|
#include "ConnectionManagerWindow.h"
|
2022-09-03 12:44:32 +02:00
|
|
|
|
#include "About.h"
|
2017-08-23 13:27:23 +02:00
|
|
|
|
#include "ui_ConnectionManagerWindow.h"
|
2017-02-01 18:01:02 +01:00
|
|
|
|
#include "MasterController.h"
|
2019-08-24 20:47:32 +02:00
|
|
|
|
#include "ConnectionController.h"
|
2017-08-23 13:27:23 +02:00
|
|
|
|
#include "ConnectionListModel.h"
|
2022-09-04 12:43:09 +02:00
|
|
|
|
#include <QDesktopServices>
|
2018-11-04 11:26:20 +01:00
|
|
|
|
#include <QDir>
|
2022-09-04 12:43:09 +02:00
|
|
|
|
#include <QMessageBox>
|
|
|
|
|
|
#include <QStandardItemModel>
|
2018-11-04 11:26:20 +01:00
|
|
|
|
#include <QStandardPaths>
|
2022-09-04 12:43:09 +02:00
|
|
|
|
#include <QUrl>
|
2018-11-04 11:26:20 +01:00
|
|
|
|
|
2017-02-01 18:01:02 +01:00
|
|
|
|
ConnectionManagerWindow::ConnectionManagerWindow(MasterController *master, QWidget *parent)
|
2017-01-14 20:07:12 +01:00
|
|
|
|
: QMainWindow(parent)
|
|
|
|
|
|
, ui(new Ui::ConnectionManagerWindow)
|
2017-02-01 18:01:02 +01:00
|
|
|
|
, m_masterController(master)
|
2019-08-19 10:05:05 +02:00
|
|
|
|
, m_connectionController(master->connectionController())
|
2017-01-14 20:07:12 +01:00
|
|
|
|
{
|
|
|
|
|
|
ui->setupUi(this);
|
2019-08-25 15:33:51 +02:00
|
|
|
|
ui->treeView->setModel(m_connectionController->getConnectionTreeModel());
|
2019-09-16 19:24:39 +02:00
|
|
|
|
ui->treeView->setDragDropMode(QAbstractItemView::InternalMove);
|
|
|
|
|
|
|
2019-08-29 16:10:28 +02:00
|
|
|
|
connect(ui->treeView, &QTreeView::activated, this,
|
|
|
|
|
|
&ConnectionManagerWindow::connectionActivated);
|
2017-01-14 20:07:12 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
2017-01-14 22:03:58 +01:00
|
|
|
|
|
2017-01-14 20:07:12 +01:00
|
|
|
|
ConnectionManagerWindow::~ConnectionManagerWindow()
|
|
|
|
|
|
{
|
|
|
|
|
|
delete ui;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionAdd_Connection_triggered()
|
|
|
|
|
|
{
|
2019-08-24 20:47:32 +02:00
|
|
|
|
m_connectionController->createConnection();
|
2017-01-14 20:07:12 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionDelete_connection_triggered()
|
|
|
|
|
|
{
|
2019-08-27 20:12:00 +02:00
|
|
|
|
auto ci = ui->treeView->selectionModel()->currentIndex();
|
2017-01-14 20:07:12 +01:00
|
|
|
|
if (ci.isValid()) {
|
2019-08-27 20:12:00 +02:00
|
|
|
|
auto node = static_cast<ConnectionNode*>(ci.internalPointer());
|
|
|
|
|
|
auto cc = dynamic_cast<ConnectionConfig*>(node);
|
|
|
|
|
|
if (cc) {
|
|
|
|
|
|
auto res = QMessageBox::question(this, "pglab",
|
|
|
|
|
|
tr("Are you sure you want to remove this connection?"), QMessageBox::Yes, QMessageBox::No);
|
|
|
|
|
|
if (res == QMessageBox::Yes) {
|
|
|
|
|
|
auto cm = m_connectionController->getConnectionTreeModel();
|
|
|
|
|
|
cm->removeRow(ci.row(), ci.parent());
|
|
|
|
|
|
}
|
2018-04-30 20:17:44 +02:00
|
|
|
|
}
|
2017-01-14 20:07:12 +01:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2017-01-14 22:03:58 +01:00
|
|
|
|
|
2017-01-15 21:01:40 +01:00
|
|
|
|
void ConnectionManagerWindow::on_actionConnect_triggered()
|
|
|
|
|
|
{
|
2019-08-27 20:12:00 +02:00
|
|
|
|
auto ci = ui->treeView->selectionModel()->currentIndex();
|
|
|
|
|
|
m_connectionController->openSqlWindowForConnection(ci);
|
2017-01-15 21:01:40 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionQuit_application_triggered()
|
|
|
|
|
|
{
|
|
|
|
|
|
auto res = QMessageBox::question(this, "pglab",
|
2019-08-24 20:47:32 +02:00
|
|
|
|
tr("Close all windows?"), QMessageBox::Yes, QMessageBox::No);
|
2017-01-15 21:01:40 +01:00
|
|
|
|
if (res == QMessageBox::Yes) {
|
|
|
|
|
|
QApplication::quit();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2017-02-01 18:01:02 +01:00
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionBackup_database_triggered()
|
|
|
|
|
|
{
|
2019-08-27 20:12:00 +02:00
|
|
|
|
auto ci = ui->treeView->selectionModel()->currentIndex();
|
|
|
|
|
|
m_connectionController->openBackupDlgForConnection(ci);
|
2017-02-01 18:01:02 +01:00
|
|
|
|
}
|
2017-02-12 08:13:38 +01:00
|
|
|
|
|
2019-08-29 16:10:28 +02:00
|
|
|
|
void ConnectionManagerWindow::connectionActivated(const QModelIndex &index)
|
2019-08-19 19:32:40 +02:00
|
|
|
|
{
|
|
|
|
|
|
if (index.isValid()) {
|
2019-08-27 20:12:00 +02:00
|
|
|
|
m_connectionController->openSqlWindowForConnection(index);
|
2019-08-19 19:32:40 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2019-08-24 20:47:32 +02:00
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionConfigure_connection_triggered()
|
|
|
|
|
|
{
|
2019-08-27 20:12:00 +02:00
|
|
|
|
auto ci = ui->treeView->selectionModel()->currentIndex();
|
|
|
|
|
|
m_connectionController->editConnection(ci);
|
2019-08-24 20:47:32 +02:00
|
|
|
|
}
|
2019-09-01 06:42:21 +02:00
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionAdd_group_triggered()
|
|
|
|
|
|
{
|
|
|
|
|
|
m_connectionController->addGroup();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionRemove_group_triggered()
|
|
|
|
|
|
{
|
|
|
|
|
|
auto ci = ui->treeView->selectionModel()->currentIndex();
|
|
|
|
|
|
m_connectionController->removeGroup(ci);
|
|
|
|
|
|
}
|
2021-03-31 16:03:34 +02:00
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionConfigureCopy_triggered()
|
|
|
|
|
|
{
|
|
|
|
|
|
auto ci = ui->treeView->selectionModel()->currentIndex();
|
|
|
|
|
|
m_connectionController->editCopy(ci);
|
|
|
|
|
|
}
|
2022-09-03 12:44:32 +02:00
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionAbout_triggered()
|
|
|
|
|
|
{
|
|
|
|
|
|
ShowAboutDialog(this);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-09-04 12:43:09 +02:00
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionManual_triggered()
|
|
|
|
|
|
{
|
|
|
|
|
|
QDesktopServices::openUrl(QString("https://eelke.gitlab.io/pgLab/#pglab-user-manual"));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2022-09-05 07:33:08 +02:00
|
|
|
|
|
|
|
|
|
|
void ConnectionManagerWindow::on_actionReset_password_manager_triggered()
|
|
|
|
|
|
{
|
|
|
|
|
|
auto warning_response = QMessageBox::warning(this, "pgLab", tr(
|
|
|
|
|
|
"Warning you are about to reset the password manager master passwords "
|
|
|
|
|
|
"all stored passwords will be lost! Are you shure you wish to continue?"),
|
|
|
|
|
|
QMessageBox::Yes | QMessageBox::No);
|
|
|
|
|
|
|
|
|
|
|
|
if (warning_response == QMessageBox::Yes)
|
|
|
|
|
|
m_connectionController->resetPasswordManager();
|
|
|
|
|
|
}
|
|
|
|
|
|
|