pgLab/pglab/ServerWindow.cpp
eelke 2724586f4e Server window database tab tweaks
- Encoding as string instead of id
- Tablespace name instead of id
- Database list sorting enabled
- Database size
2021-03-10 20:49:03 +01:00

51 lines
1.3 KiB
C++

#include "ServerWindow.h"
#include "ui_ServerWindow.h"
#include "OpenDatabase.h"
#include "DatabasesTableModel.h"
#include "RolesTableModel.h"
#include "catalog/PgDatabaseCatalog.h"
#include <QSortFilterProxyModel>
#include <QDebug>
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);
ui->rolesTableView->setModel(m_rolesModel);
}
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);
m_rolesModel->setRoleList(cat->authIds());
}
}
catch (const OpenDatabaseException &ex) {
qWarning() << ex.text();
}
QString title = "pglab - ";
title += m_config.name();
setWindowTitle(title);
}