The table inheritance works mostly
This commit is contained in:
parent
ccd88d0578
commit
2ff9577d41
22 changed files with 473 additions and 145 deletions
|
|
@ -8,7 +8,7 @@
|
|||
#include "catalog/widgets/TriggerPage.h"
|
||||
#include "catalog/models/ColumnTableModel.h"
|
||||
#include "catalog/models/ConstraintModel.h"
|
||||
#include "catalog/models/TablesTableModel.h"
|
||||
#include "catalog/tables/TablesTableModel.h"
|
||||
#include "util/PgLabTableView.h"
|
||||
#include "ResultTableModelUtil.h"
|
||||
#include "widgets/SqlCodePreview.h"
|
||||
|
|
@ -27,7 +27,7 @@ CatalogTablesPage::CatalogTablesPage(std::shared_ptr<OpenDatabase> opendatabase,
|
|||
: QSplitter(Qt::Horizontal, parent)
|
||||
, m_tablesTableView(this, new TablesTableModel(opendatabase, this))
|
||||
{
|
||||
auto tv = m_tablesTableView.tableView();
|
||||
auto tv = m_tablesTableView.itemView();
|
||||
tv->setSelectionMode(QAbstractItemView::SingleSelection);
|
||||
m_detailsTabs = new QTabWidget(this);
|
||||
|
||||
|
|
@ -106,7 +106,7 @@ void CatalogTablesPage::setCatalog(std::shared_ptr<PgDatabaseCatalog> cat)
|
|||
void CatalogTablesPage::setNamespaceFilter(NamespaceFilter filter)
|
||||
{
|
||||
m_tablesTableView.dataModel()->setNamespaceFilter(filter);
|
||||
m_tablesTableView.tableView()->resizeColumnsToContents();
|
||||
//m_tablesTableView.tableView()->resizeColumnsToContents();
|
||||
}
|
||||
|
||||
void CatalogTablesPage::tableListTable_currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous)
|
||||
|
|
@ -114,8 +114,8 @@ void CatalogTablesPage::tableListTable_currentRowChanged(const QModelIndex &curr
|
|||
if (current.row() == previous.row())
|
||||
return;
|
||||
|
||||
auto table = m_tablesTableView.rowItemForProxyIndex(current);
|
||||
selectedTableChanged(table);
|
||||
auto tableNode = TablesTableModel::nodeFromIndex(m_tablesTableView.sortFilter()->mapToSource(current)); // m_tablesTableView.rowItemForProxyIndex(current);
|
||||
selectedTableChanged(tableNode->_class);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -127,11 +127,15 @@ void CatalogTablesPage::tableListTable_layoutChanged(const QList<QPersistentMode
|
|||
|
||||
void CatalogTablesPage::on_tableListTable_doubleClicked(const QModelIndex &index)
|
||||
{
|
||||
auto row = m_tablesTableView.sortFilter()->mapToSource(index).row();
|
||||
PgClass table = m_tablesTableView.dataModel()->getTable(row);
|
||||
if (table.oid() != InvalidOid) {
|
||||
tableSelected(table.oid());
|
||||
}
|
||||
auto sourceIndex = m_tablesTableView.sortFilter()->mapToSource(index);
|
||||
auto tableNode = TablesTableModel::nodeFromIndex(sourceIndex);
|
||||
if (tableNode)
|
||||
{
|
||||
Oid oid = tableNode->_class.oid();
|
||||
if (oid != InvalidOid) {
|
||||
tableSelected(oid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CatalogTablesPage::selectedTableChanged(const std::optional<PgClass> &table)
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@
|
|||
#define CATALOGTABLESPAGE_H
|
||||
|
||||
#include "NamespaceFilter.h"
|
||||
#include "catalog/models/TablesTableModel.h"
|
||||
#include "catalog/tables/TablesTableModel.h"
|
||||
#include "util/PgLabTableViewHelper.h"
|
||||
#include <QSplitter>
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
#include <QAbstractItemModel>
|
||||
#include "Pgsql_oids.h"
|
||||
|
||||
|
||||
class CatalogConstraintPage;
|
||||
class CatalogIndexPage;
|
||||
|
|
@ -39,7 +39,7 @@ public:
|
|||
signals:
|
||||
void tableSelected(Oid tableoid);
|
||||
private:
|
||||
PgLabTableViewHelper<TablesTableModel> m_tablesTableView;
|
||||
PgLabTableViewHelper<TablesTableModel, QTreeView> m_tablesTableView;
|
||||
|
||||
// Details
|
||||
QTabWidget *m_detailsTabs = nullptr;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue