#include "ServerWindow.h" #include "ui_ServerWindow.h" #include "OpenDatabase.h" #include "DatabasesTableModel.h" #include "RolesTableModel.h" #include "catalog/PgDatabaseCatalog.h" #include #include ServerWindow::ServerWindow(MasterController *master, QWidget *parent) : QMainWindow(parent) , ui(new Ui::ServerWindow) , m_masterController(master) { ui->setupUi(this); m_databasesModel = new DatabasesTableModel(this); auto databasesSortFilter = new QSortFilterProxyModel(this); databasesSortFilter->setSourceModel(m_databasesModel); ui->databasesTableView->setModel(databasesSortFilter); ui->databasesTableView->setSortingEnabled(true); m_rolesModel = new RolesTableModel(this); auto rolesSortFilter = new QSortFilterProxyModel(this); rolesSortFilter->setSourceModel(m_rolesModel); ui->rolesTableView->setModel(rolesSortFilter); ui->rolesTableView->setSortingEnabled(true); } ServerWindow::~ServerWindow() { delete ui; } void ServerWindow::setConfig(const ConnectionConfig &config) { m_config = config; try { m_database = OpenDatabase::createOpenDatabase(config); auto cat = m_database->catalog(); if (cat) { m_databasesModel->setDatabaseList(cat); ui->databasesTableView->resizeColumnsToContents(); m_rolesModel->setRoleList(cat->authIds()); ui->rolesTableView->resizeColumnsToContents(); } } catch (const OpenDatabaseException &ex) { qWarning() << ex.text(); } QString title = "pglab - "; title += m_config.name(); setWindowTitle(title); }