List of databases and roles moved to a "Server tab" within the database window.
Opened by selecting "Inspect Server" from the menu.
This commit is contained in:
parent
50cd865b1a
commit
f0e5488ce0
12 changed files with 271 additions and 2 deletions
32
pglab/serverinspector/DatabasesPage.cpp
Normal file
32
pglab/serverinspector/DatabasesPage.cpp
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#include "DatabasesPage.h"
|
||||
|
||||
#include "DatabasesTableModel.h"
|
||||
#include "catalog/PgDatabaseCatalog.h"
|
||||
#include "PgLabTableView.h"
|
||||
|
||||
|
||||
DatabasesPage::DatabasesPage(QWidget * parent)
|
||||
: QSplitter(Qt::Horizontal, parent)
|
||||
, m_databasesTableView(this)
|
||||
{
|
||||
auto tv = m_databasesTableView.tableView();
|
||||
tv->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
|
||||
m_detailsTabs = new QTabWidget(this);
|
||||
|
||||
addWidget(tv);
|
||||
addWidget(m_detailsTabs);
|
||||
}
|
||||
|
||||
void DatabasesPage::setCatalog(std::shared_ptr<PgDatabaseCatalog> cat)
|
||||
{
|
||||
m_catalog = cat;
|
||||
m_databasesTableView.dataModel()->setDatabaseList(cat);
|
||||
m_databasesTableView.tableView()->resizeColumnsToContents();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
28
pglab/serverinspector/DatabasesPage.h
Normal file
28
pglab/serverinspector/DatabasesPage.h
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#pragma once
|
||||
|
||||
#include <QSplitter>
|
||||
#include <QWidget>
|
||||
|
||||
#include "PgLabTableViewHelper.h"
|
||||
|
||||
class DatabasesTableModel;
|
||||
class PgDatabaseCatalog;
|
||||
class PgLabTableView;
|
||||
class QSortFilterProxyModel;
|
||||
|
||||
class DatabasesPage: public QSplitter {
|
||||
public:
|
||||
explicit DatabasesPage(QWidget * parent = nullptr);
|
||||
|
||||
void setCatalog(std::shared_ptr<PgDatabaseCatalog> cat);
|
||||
|
||||
void retranslateUi(bool all = true);
|
||||
|
||||
private:
|
||||
PgLabTableViewHelper<DatabasesTableModel> m_databasesTableView;
|
||||
QTabWidget *m_detailsTabs = nullptr;
|
||||
|
||||
std::shared_ptr<PgDatabaseCatalog> m_catalog;
|
||||
|
||||
};
|
||||
|
||||
23
pglab/serverinspector/RolesPage.cpp
Normal file
23
pglab/serverinspector/RolesPage.cpp
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#include "RolesPage.h"
|
||||
#include "catalog/PgDatabaseCatalog.h"
|
||||
#include "RolesTableModel.h"
|
||||
|
||||
RolesPage::RolesPage(QWidget * parent)
|
||||
: QSplitter(Qt::Horizontal, parent)
|
||||
, m_rolesTableView(this)
|
||||
{
|
||||
auto tv = m_rolesTableView.tableView();
|
||||
tv->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
|
||||
m_detailsTabs = new QTabWidget(this);
|
||||
|
||||
addWidget(tv);
|
||||
addWidget(m_detailsTabs);
|
||||
}
|
||||
|
||||
void RolesPage::setCatalog(std::shared_ptr<PgDatabaseCatalog> cat)
|
||||
{
|
||||
m_catalog = cat;
|
||||
m_rolesTableView.dataModel()->setRoleList(cat->authIds());
|
||||
m_rolesTableView.tableView()->resizeColumnsToContents();
|
||||
}
|
||||
26
pglab/serverinspector/RolesPage.h
Normal file
26
pglab/serverinspector/RolesPage.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#pragma once
|
||||
|
||||
#include <QSplitter>
|
||||
#include <QWidget>
|
||||
|
||||
#include "PgLabTableViewHelper.h"
|
||||
|
||||
class RolesTableModel;
|
||||
class PgDatabaseCatalog;
|
||||
class PgLabTableView;
|
||||
class QSortFilterProxyModel;
|
||||
|
||||
|
||||
class RolesPage: public QSplitter {
|
||||
public:
|
||||
RolesPage(QWidget * parent = nullptr);
|
||||
|
||||
void setCatalog(std::shared_ptr<PgDatabaseCatalog> cat);
|
||||
private:
|
||||
PgLabTableViewHelper<RolesTableModel> m_rolesTableView;
|
||||
QTabWidget *m_detailsTabs = nullptr;
|
||||
|
||||
std::shared_ptr<PgDatabaseCatalog> m_catalog;
|
||||
|
||||
};
|
||||
|
||||
44
pglab/serverinspector/ServerInspector.cpp
Normal file
44
pglab/serverinspector/ServerInspector.cpp
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#include "ServerInspector.h"
|
||||
#include "DatabasesPage.h"
|
||||
#include "OpenDatabase.h"
|
||||
#include "RolesPage.h"
|
||||
|
||||
#include <QTabWidget>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
ServerInspector::ServerInspector(std::shared_ptr<OpenDatabase> open_database, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
m_databasesPage = new DatabasesPage(this);
|
||||
m_rolesPage = new RolesPage(this);
|
||||
|
||||
m_tabWidget = new QTabWidget(this);
|
||||
m_tabWidget->addTab(m_databasesPage, tr("Databases"));
|
||||
m_tabWidget->addTab(m_rolesPage, tr("Roles"));
|
||||
|
||||
auto layout = new QVBoxLayout(this);
|
||||
setLayout(layout);
|
||||
layout->addWidget(m_tabWidget);
|
||||
|
||||
setCatalog(open_database->catalog());
|
||||
retranslateUi(false);
|
||||
}
|
||||
|
||||
|
||||
void ServerInspector::setCatalog(std::shared_ptr<PgDatabaseCatalog> cat)
|
||||
{
|
||||
m_catalog = cat;
|
||||
m_databasesPage->setCatalog(cat);
|
||||
m_rolesPage->setCatalog(cat);
|
||||
// m_tablesPage->setCatalog(cat);
|
||||
// m_functionsPage->setCatalog(cat);
|
||||
// m_sequencesPage->setCatalog(cat);
|
||||
// m_typesPage->setCatalog(cat);
|
||||
}
|
||||
|
||||
void ServerInspector::retranslateUi(bool )
|
||||
{
|
||||
// m_tabWidget->setTabText(m_tabWidget->indexOf(m_namespacePage),
|
||||
// QApplication::translate("CatalogInspector", "Schemas", nullptr));
|
||||
|
||||
}
|
||||
29
pglab/serverinspector/ServerInspector.h
Normal file
29
pglab/serverinspector/ServerInspector.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#pragma once
|
||||
|
||||
#include <QWidget>
|
||||
#include <memory>
|
||||
|
||||
class DatabasesPage;
|
||||
class OpenDatabase;
|
||||
class PgDatabaseCatalog;
|
||||
class QTabWidget;
|
||||
class RolesPage;
|
||||
|
||||
|
||||
class ServerInspector : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ServerInspector(std::shared_ptr<OpenDatabase> open_database, QWidget *parent = nullptr);
|
||||
|
||||
void setCatalog(std::shared_ptr<PgDatabaseCatalog> cat);
|
||||
private:
|
||||
QTabWidget *m_tabWidget = nullptr;
|
||||
|
||||
DatabasesPage *m_databasesPage = nullptr;
|
||||
RolesPage *m_rolesPage = nullptr;
|
||||
|
||||
std::shared_ptr<PgDatabaseCatalog> m_catalog;
|
||||
|
||||
void retranslateUi(bool all = true);
|
||||
};
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue