17 Q_PROPERTY(QHash<
int, QByteArray> roleNames READ roleNames WRITE setRoleNames RESET resetRoleNames
18 NOTIFY roleNamesChanged FINAL)
21 enum class RowCategory {
32 template <
typename Range,
33 QRangeModelDetails::if_table_range<Range> =
true>
34 explicit QRangeModel(Range &&range, QObject *parent =
nullptr)
35 : QRangeModel(
new QGenericTableItemModelImpl<Range>(std::forward<Range>(range),
this), parent)
38 template <
typename Range,
39 QRangeModelDetails::if_tree_range<Range> =
true>
40 explicit QRangeModel(Range &&range, QObject *parent =
nullptr)
41 : QRangeModel(std::forward<Range>(range), QRangeModelDetails::DefaultTreeProtocol<Range>{},
45 template <
typename Range,
typename Protocol,
46 QRangeModelDetails::if_tree_range<Range, Protocol> =
true>
47 explicit QRangeModel(Range &&range, Protocol &&protocol, QObject *parent =
nullptr)
48 : QRangeModel(
new QGenericTreeItemModelImpl<Range, Protocol>(std::forward<Range>(range),
49 std::forward<Protocol>(protocol),
54 ~QRangeModel() override;
56 QModelIndex index(
int row,
int column,
const QModelIndex &parent = {})
const final;
57 QModelIndex parent(
const QModelIndex &child)
const final;
58 QModelIndex sibling(
int row,
int column,
const QModelIndex &index)
const final;
59 int rowCount(
const QModelIndex &parent = {})
const final;
60 int columnCount(
const QModelIndex &parent = {})
const final;
61 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
62 QVariant headerData(
int section, Qt::Orientation orientation,
63 int role = Qt::DisplayRole)
const override;
64 bool setHeaderData(
int section, Qt::Orientation orientation,
const QVariant &data,
65 int role = Qt::EditRole) override;
66 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
67 bool setData(
const QModelIndex &index,
const QVariant &data,
int role = Qt::EditRole) override;
68 QMap<
int, QVariant> itemData(
const QModelIndex &index)
const override;
69 bool setItemData(
const QModelIndex &index,
const QMap<
int, QVariant> &data) override;
70 bool clearItemData(
const QModelIndex &index) override;
71 bool insertColumns(
int column,
int count,
const QModelIndex &parent = {}) final;
72 bool removeColumns(
int column,
int count,
const QModelIndex &parent = {}) final;
73 bool moveColumns(
const QModelIndex &sourceParent,
int sourceColumn,
int count,
74 const QModelIndex &destParent,
int destColumn) final;
75 bool insertRows(
int row,
int count,
const QModelIndex &parent = {}) final;
76 bool removeRows(
int row,
int count,
const QModelIndex &parent = {}) final;
77 bool moveRows(
const QModelIndex &sourceParent,
int sourceRow,
int count,
78 const QModelIndex &destParent,
int destRow) final;
80 QHash<
int, QByteArray> roleNames()
const override;
81 void setRoleNames(
const QHash<
int, QByteArray> &names);
82 void resetRoleNames();
84 bool canFetchMore(
const QModelIndex &parent)
const override;
85 void fetchMore(
const QModelIndex &parent) override;
87 bool hasChildren(
const QModelIndex &parent = QModelIndex())
const final;
88 QModelIndex buddy(
const QModelIndex &index)
const override;
89 bool canDropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
90 const QModelIndex &parent)
const override;
91 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
92 const QModelIndex &parent) override;
93 QMimeData *mimeData(
const QModelIndexList &indexes)
const override;
94 QStringList mimeTypes()
const override;
95 QModelIndexList match(
const QModelIndex &start,
int role,
const QVariant &value,
int hits,
96 Qt::MatchFlags flags)
const override;
97 void multiData(
const QModelIndex &index, QModelRoleDataSpan roleDataSpan)
const override;
98 void sort(
int column, Qt::SortOrder order = Qt::AscendingOrder) override;
99 QSize span(
const QModelIndex &index)
const override;
100 Qt::DropActions supportedDragActions()
const override;
101 Qt::DropActions supportedDropActions()
const override;
104 void roleNamesChanged();
107 void resetInternalData() override;
110 bool event(QEvent *) override;
111 bool eventFilter(QObject *, QEvent *) override;
114 Q_DISABLE_COPY_MOVE(QRangeModel)
115 Q_DECLARE_PRIVATE(QRangeModel)
117 explicit QRangeModel(QRangeModelImplBase *impl, QObject *parent);
118 friend class QRangeModelImplBase;