#ifndef TABLESTABLEMODEL_H #define TABLESTABLEMODEL_H #include "BaseTableModel.h" #include "PgClass.h" #include #include class PgClass; class PgDatabaseCatalog; class TablesTableModel: public BaseTableModel { public: enum e_Columns : int { NameCol, ///< either table, ns.table or table (ns) depending on settings/filters NamespaceCol, OwnerCol, TablespaceCol, OptionsCol, //AclCol, colCount }; TablesTableModel(QObject *parent); void setCatalog(std::shared_ptr cat); virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override; void setSortOrder(int so); // Header: QVariant headerData(int section, Qt::Orientation orientation, int role) const override; // Basic functionality: int rowCount(const QModelIndex &parent) const override; int columnCount(const QModelIndex &parent) const override; virtual QVariant data(const QModelIndex &index, int role) const override; PgClass getTable(int row) const; Oid getTableOid(int row) const; protected: virtual Oid getType(int column) const override; virtual QVariant getData(const QModelIndex &index) const override; private: using t_Tables = std::vector; std::shared_ptr m_catalog; t_Tables m_tables; QString formatTableName(const PgClass &cls) const; void doSort(int so); }; #endif // TABLESTABLEMODEL_H