2017-12-29 08:39:08 +01:00
|
|
|
|
#ifndef NAMESPACEITEMMODEL_H
|
|
|
|
|
|
#define NAMESPACEITEMMODEL_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <QAbstractItemModel>
|
2019-11-20 19:09:22 +01:00
|
|
|
|
#include <QVector>
|
2018-12-16 10:17:59 +01:00
|
|
|
|
#include "catalog/PgNamespace.h"
|
2019-11-20 19:09:22 +01:00
|
|
|
|
//#include <vector>
|
|
|
|
|
|
//#include <iterator>
|
2017-12-29 08:39:08 +01:00
|
|
|
|
|
2017-12-29 10:10:06 +01:00
|
|
|
|
namespace NamespaceItemModel_impl {
|
|
|
|
|
|
|
|
|
|
|
|
class Node;
|
|
|
|
|
|
class LeafNode;
|
|
|
|
|
|
class GroupNode;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-12-29 08:39:08 +01:00
|
|
|
|
class PgNamespaceContainer;
|
|
|
|
|
|
|
|
|
|
|
|
class NamespaceItemModel: public QAbstractItemModel {
|
|
|
|
|
|
public:
|
|
|
|
|
|
NamespaceItemModel(QObject *parent = 0);
|
|
|
|
|
|
|
2019-11-20 19:09:22 +01:00
|
|
|
|
enum Columns {
|
|
|
|
|
|
ColNamespaceName,
|
|
|
|
|
|
ColOwner,
|
|
|
|
|
|
ColAcl,
|
|
|
|
|
|
|
|
|
|
|
|
ColCount
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2017-12-29 08:39:08 +01:00
|
|
|
|
void init(std::shared_ptr<const PgNamespaceContainer> ns);
|
2019-11-20 19:09:22 +01:00
|
|
|
|
void setEnableCheckboxes(bool enable);
|
|
|
|
|
|
bool isEnableCheckboxes() const;
|
2017-12-29 08:39:08 +01:00
|
|
|
|
|
|
|
|
|
|
virtual QModelIndex index(int row, int column,
|
|
|
|
|
|
const QModelIndex &parent = QModelIndex()) const override;
|
|
|
|
|
|
virtual QModelIndex parent(const QModelIndex &index) const override;
|
|
|
|
|
|
|
|
|
|
|
|
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
|
|
|
|
|
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
|
|
|
|
|
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
|
|
|
|
|
virtual bool setData(const QModelIndex &index, const QVariant &value, int role) override;
|
|
|
|
|
|
virtual Qt::ItemFlags flags(const QModelIndex &index) const override;
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
2019-11-20 19:09:22 +01:00
|
|
|
|
using GroupVec = QVector<std::shared_ptr<NamespaceItemModel_impl::GroupNode>>;
|
2017-12-29 08:39:08 +01:00
|
|
|
|
|
|
|
|
|
|
GroupVec groups;
|
2019-11-20 19:09:22 +01:00
|
|
|
|
bool m_enableCheckboxes = true;
|
|
|
|
|
|
|
|
|
|
|
|
// QAbstractItemModel interface
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
2017-12-29 08:39:08 +01:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif // NAMESPACEITEMMODEL_H
|