pgLab/pglab/DatabasesTableModel.h
eelke 9c9e78c54b Improvement to the ServerWindow
- sorting of Roles
- resizeColumns voor zowel databases als roles
- boolean columns now display check mark and cross
2021-03-31 16:06:45 +02:00

45 lines
1.3 KiB
C++

#ifndef DATABASESTABLEMODEL_H
#define DATABASESTABLEMODEL_H
#include "BaseTableModel.h"
#include <memory>
class PgDatabaseContainer;
class PgDatabaseCatalog;
/** Class for displaying the list of databases of a server in a QTableView
*
*/
class DatabasesTableModel : public BaseTableModel
{
Q_OBJECT
public:
enum e_Columns : int { NameCol, DbaCol, EncodingCol, CollateCol,
CTypeCol, IsTemplateCol, AllowConnCol, ConnLimitCol,
TablespaceCol, CommentCol, SizeCol, AclCol, COL_COUNT };
explicit DatabasesTableModel(QObject *parent);
void setDatabaseList(std::shared_ptr<const PgDatabaseCatalog> cat);
// Header:
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
// Basic functionality:
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
virtual Oid getType(int column) const override;
virtual QVariant getData(const QModelIndex &index) const override;
protected:
virtual QVariant getDataMeaning(const QModelIndex &index) const override;
private:
std::shared_ptr<const PgDatabaseCatalog> m_catalog;
std::shared_ptr<const PgDatabaseContainer> m_databases;
};
#endif // DATABASESTABLEMODEL_H