#ifndef TABLESPAGE_H #define TABLESPAGE_H #include #include #include #include #include "TablesTableModel.h" #include "plugin_support/PluginContentWidget.h" #include "plugin_support/PluginModule.h" namespace Ui { class TablesPage; } class TablesTableModel; class ColumnPage; class ColumnTableModel; class ConstraintModel; class PgDatabaseCatalog; class NamespaceFilterWidget; class IndexModel; class PropertiesPage; class TriggerPage; class PgClass; class SqlCodePreview; class TablesPage : public PluginContentWidget { Q_OBJECT public: explicit TablesPage(IPluginContentWidgetContext *context, QWidget *parent = nullptr); ~TablesPage(); void setCatalog(std::shared_ptr cat); void setNamespaceFilter(TablesTableModel::NamespaceFilter filter); private: Ui::TablesPage *ui; ColumnPage *m_columnsPage; PropertiesPage *m_propertiesPage; 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; void retranslateUi(bool all = true); 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_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