61 lines
1.7 KiB
C++
61 lines
1.7 KiB
C++
#ifndef CATALOGTABLESPAGE_H
|
|
#define CATALOGTABLESPAGE_H
|
|
|
|
#include "NamespaceFilter.h"
|
|
#include <QSplitter>
|
|
#include <memory>
|
|
#include <optional>
|
|
#include <QAbstractItemModel>
|
|
|
|
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<PgDatabaseCatalog> cat);
|
|
void setNamespaceFilter(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<PgDatabaseCatalog> m_catalog;
|
|
|
|
void selectedTableChanged(const std::optional<PgClass> &table);
|
|
void updateSqlTab(const std::optional<PgClass> &table);
|
|
private slots:
|
|
|
|
void tableListTable_currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous);
|
|
void tableListTable_layoutChanged(const QList<QPersistentModelIndex> &parents, QAbstractItemModel::LayoutChangeHint hint);
|
|
void on_tableListTable_doubleClicked(const QModelIndex &index);
|
|
|
|
};
|
|
|
|
#endif // CATALOGTABLESPAGE_H
|