#ifndef CATALOGTABLESPAGE_H #define CATALOGTABLESPAGE_H #include #include #include "TablesTableModel.h" class CatalogConstraintPage; class CatalogIndexPage; class ColumnPage; class ColumnTableModel; class ConstraintModel; class PgClass; class PgDatabaseCatalog; class PgLabTableView; class PropertiesPage; class QTabWidget; class SqlCodePreview; class QSortFilterProxyModel; class TablesTableModel; class TriggerPage; class CatalogTablesPage: public QSplitter { Q_OBJECT public: explicit CatalogTablesPage(QWidget * parent = nullptr); void setCatalog(std::shared_ptr cat); void setNamespaceFilter(TablesTableModel::NamespaceFilter filter); void retranslateUi(bool all = true); private: PgLabTableView *m_tableView = nullptr; TablesTableModel* m_tablesModel = nullptr; QSortFilterProxyModel *m_tablesSortFilter = nullptr; // Details QTabWidget *m_detailsTabs = nullptr; ColumnPage *m_columnsPage = nullptr; CatalogConstraintPage *m_constraintPage = nullptr; CatalogIndexPage *m_indexPage = nullptr; PropertiesPage *m_propertiesPage = nullptr; TriggerPage *m_triggerPage = nullptr; SqlCodePreview *m_tableSql = nullptr; std::shared_ptr m_catalog; void selectedTableChanged(const std::optional &table); void updateSqlTab(const std::optional &table); private slots: void tableListTable_currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); void tableListTable_layoutChanged(const QList &parents, QAbstractItemModel::LayoutChangeHint hint); void on_tableListTable_doubleClicked(const QModelIndex &index); }; #endif // CATALOGTABLESPAGE_H