diff --git a/pglab/MainWindow.cpp b/pglab/MainWindow.cpp index 75b6720..d11c66d 100644 --- a/pglab/MainWindow.cpp +++ b/pglab/MainWindow.cpp @@ -1,5 +1,6 @@ #include "MainWindow.h" #include "ui_MainWindow.h" +#include "TablesPage.h" #include #include @@ -39,9 +40,17 @@ QueryTab* MainWindow::newSqlPage() ui->tabWidget->addTab(qt, "Tab"); ui->tabWidget->setCurrentWidget(qt); qt->newdoc(); + + auto tt = new TablesPage(this); + tt->setCatalog(m_database->catalogue()); + ui->tabWidget->addTab(tt, "Tables"); + ui->tabWidget->setCurrentWidget(tt); + return qt; } + + QueryTab *MainWindow::GetActiveQueryTab() { QWidget *widget = ui->tabWidget->currentWidget(); @@ -213,7 +222,7 @@ void MainWindow::showEvent(QShowEvent *event) void MainWindow::on_actionNew_SQL_triggered() { - newSqlPage()->newdoc(); + newSqlPage(); } void MainWindow::on_tabWidget_tabCloseRequested(int index) diff --git a/pglab/PgClassContainer.cpp b/pglab/PgClassContainer.cpp index bc21080..ff9d24e 100644 --- a/pglab/PgClassContainer.cpp +++ b/pglab/PgClassContainer.cpp @@ -7,7 +7,7 @@ std::string PgClassContainer::getLoadQuery() const return "SELECT oid, relname, relnamespace, reltype, reloftype, " " relowner, relam, relfilenode, reltablespace, relpages, " " reltuples, reltoastrelid, relisshared, relpersistence, " - " relkind, relhasoids, relispopulated, relfrozenxid, relrelminmxid " + " relkind, relhasoids, relispopulated, relfrozenxid, relminmxid " " relacl, reloptions \n" "FROM pg_catalog.pg_class"; } diff --git a/pglab/PgDatabaseCatalog.cpp b/pglab/PgDatabaseCatalog.cpp index 339e30e..5c179bf 100644 --- a/pglab/PgDatabaseCatalog.cpp +++ b/pglab/PgDatabaseCatalog.cpp @@ -58,6 +58,7 @@ PgDatabaseCatalog::~PgDatabaseCatalog() void PgDatabaseCatalog::loadAll(Pgsql::Connection &conn) { + loadInfo(conn); loadTypes(conn); loadDatabases(conn); loadAuthIds(conn); diff --git a/pglab/TablesPage.cpp b/pglab/TablesPage.cpp index 2dbc71b..c32bfa2 100644 --- a/pglab/TablesPage.cpp +++ b/pglab/TablesPage.cpp @@ -1,11 +1,23 @@ -#include "TablesPage.h" +#include "TablesPage.h" #include "ui_TablesPage.h" +#include "TablesTableModel.h" + TablesPage::TablesPage(QWidget *parent) : QWidget(parent), ui(new Ui::TablesPage) { ui->setupUi(this); + + m_tablesModel = new TablesTableModel(this); + ui->tableListTable->setModel(m_tablesModel); + +} + +void TablesPage::setCatalog(std::shared_ptr cat) +{ + m_catalog = cat; + m_tablesModel->setCatalog(cat); } TablesPage::~TablesPage() diff --git a/pglab/TablesPage.h b/pglab/TablesPage.h index bf4de62..7678cbd 100644 --- a/pglab/TablesPage.h +++ b/pglab/TablesPage.h @@ -1,12 +1,16 @@ -#ifndef TABLESPAGE_H +#ifndef TABLESPAGE_H #define TABLESPAGE_H #include +#include namespace Ui { class TablesPage; } +class TablesTableModel; +class PgDatabaseCatalog; + class TablesPage : public QWidget { Q_OBJECT @@ -15,8 +19,11 @@ public: explicit TablesPage(QWidget *parent = 0); ~TablesPage(); + void setCatalog(std::shared_ptr cat); private: Ui::TablesPage *ui; + std::shared_ptr m_catalog; + TablesTableModel* m_tablesModel = nullptr; }; #endif // TABLESPAGE_H