#ifndef INDEXMODEL_H #define INDEXMODEL_H #include "BaseTableModel.h" #include "PgClass.h" #include "PgIndex.h" #include #include class PgDatabaseCatalog; class IndexModel: public BaseTableModel { Q_OBJECT public: using BaseTableModel::BaseTableModel; enum e_Columns : int { TypeCol, /// primary/unique/normal NameCol, /// ColumnsCol, /// ConditionCol, colCount }; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; void setData(std::shared_ptr cat, const PgClass &table); // Basic functionality: int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; protected: virtual Oid getType(int column) const override; virtual QVariant getData(const QModelIndex &index) const override; private: std::shared_ptr m_catalog; PgClass m_table; using t_Indexes = std::vector; t_Indexes m_indexes; }; #endif // INDEXMODEL_H