#include "connectionmanagerwindow.h" #include "ui_connectionmanagerwindow.h" //#include "mainwindow.h" #include "MasterController.h" #include #include #include #include "connectionlistmodel.h" ConnectionManagerWindow::ConnectionManagerWindow(MasterController *master, QWidget *parent) : QMainWindow(parent) , ui(new Ui::ConnectionManagerWindow) // , m_listModel(new ConnectionListModel(this)) , m_masterController(master) { ui->setupUi(this); ui->listView->setModel(m_masterController->getConnectionListModel()); setupWidgetMappings(); connect(ui->listView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(on_currentChanged(QModelIndex,QModelIndex))); } ConnectionManagerWindow::~ConnectionManagerWindow() { // m_listModel->save(); delete ui; // delete m_listModel; delete m_mapper; } void ConnectionManagerWindow::on_actionAdd_Connection_triggered() { ConnectionConfig c; c.setName("new"); //m_listModel->add(c); auto clm = m_masterController->getConnectionListModel(); clm->add(c); // Select the new row auto idx = clm->index(clm->rowCount() - 1, 0); ui->listView->selectionModel()->setCurrentIndex(idx, QItemSelectionModel::Select); } void ConnectionManagerWindow::on_currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { int currow = current.row(); auto clm = m_masterController->getConnectionListModel(); clm->save(prevSelection); m_mapper->setCurrentIndex(currow); prevSelection = currow; } void ConnectionManagerWindow::on_actionDelete_connection_triggered() { auto ci = ui->listView->selectionModel()->currentIndex(); if (ci.isValid()) { auto clm = m_masterController->getConnectionListModel(); clm->removeRow(ci.row()); } } void ConnectionManagerWindow::setupWidgetMappings() { auto clm = m_masterController->getConnectionListModel(); m_mapper = new QDataWidgetMapper(this); m_mapper->setModel(clm); m_mapper->addMapping(ui->edtName, 1); m_mapper->addMapping(ui->edtHost, 2); m_mapper->addMapping(ui->spinPort, 3); m_mapper->addMapping(ui->edtUser, 4); m_mapper->addMapping(ui->edtPassword, 5); m_mapper->addMapping(ui->edtDbname, 6); m_mapper->toFirst(); } void ConnectionManagerWindow::on_actionConnect_triggered() { auto ci = ui->listView->selectionModel()->currentIndex(); m_masterController->openWindowForConnection(ci.row()); } void ConnectionManagerWindow::on_actionQuit_application_triggered() { auto res = QMessageBox::question(this, "pglab", tr("Close ALL windows?"), QMessageBox::Yes, QMessageBox::No); if (res == QMessageBox::Yes) { QApplication::quit(); } //closeAllWindows(); } void ConnectionManagerWindow::on_actionBackup_database_triggered() { // BACKUP }