#ifndef TABLESPAGE_H #define TABLESPAGE_H #include #include #include #include #include "TablesTableModel.h" namespace Ui { class TablesPage; } class TablesTableModel; class ColumnPage; class ColumnTableModel; class ConstraintModel; class PgDatabaseCatalog; class NamespaceFilterWidget; class IndexModel; class DatabaseWindow; class PropertiesPage; class TriggerPage; class PgClass; class SqlCodePreview; class TablesPage : public QWidget { Q_OBJECT public: explicit TablesPage(DatabaseWindow *parent = nullptr); ~TablesPage(); void setCatalog(std::shared_ptr cat); void setNamespaceFilter(TablesTableModel::NamespaceFilter filter); private: Ui::TablesPage *ui; DatabaseWindow *m_window; // QWidget *m_columnsTab; ColumnPage *m_columnsPage; // QWidget *m_propertiesTab; PropertiesPage *m_propertiesPage; // QWidget *m_triggerTab; TriggerPage *m_triggerPage; SqlCodePreview *m_sqlCodePreview; std::shared_ptr m_catalog; TablesTableModel* m_tablesModel = nullptr; ColumnTableModel* m_columnsModel = nullptr; ConstraintModel* m_constraintModel = nullptr; IndexModel* m_indexModel = nullptr; //NamespaceFilterWidget* m_namespaceFilterWidget; void retranslateUi(bool all = true); // QWidget* addDetailTab(QWidget *contents, bool infront = false); 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 constraintsTable_currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous); void constraintsTable_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void constraintsTable_modelReset(); void indexesTable_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void indexesTable_modelReset(); void on_tableListTable_doubleClicked(const QModelIndex &index); }; #endif // TABLESPAGE_H