18 Q_PROPERTY(QHash<
int, QByteArray> roleNames READ roleNames WRITE setRoleNames RESET resetRoleNames
19 NOTIFY roleNamesChanged FINAL)
20 Q_PROPERTY(AutoConnectPolicy autoConnectPolicy READ autoConnectPolicy WRITE setAutoConnectPolicy
21 NOTIFY autoConnectPolicyChanged REVISION(6, 11))
22 Q_PROPERTY(
int sortRole READ sortRole WRITE setSortRole RESET resetSortRole
23 NOTIFY sortRoleChanged REVISION(6, 12))
24 Q_PROPERTY(QCollator sortCollator READ sortCollator WRITE setSortCollator
25 RESET resetSortCollator NOTIFY sortCollatorChanged REVISION(6, 12))
26 Q_PROPERTY(QCollator matchCollator READ matchCollator WRITE setMatchCollator
27 RESET resetMatchCollator NOTIFY matchCollatorChanged REVISION(6, 13))
28 Q_PROPERTY(Qt::DropActions supportedDropActions READ supportedDropActions
29 WRITE setSupportedDropActions
30 RESET resetSupportedDropActions
31 NOTIFY supportedDropActionsChanged REVISION(6, 12))
32 Q_PROPERTY(Qt::DropActions supportedDragActions READ supportedDragActions
33 WRITE setSupportedDragActions
34 RESET resetSupportedDragActions
35 NOTIFY supportedDragActionsChanged REVISION(6, 12))
36 Q_CLASSINFO(
"RegisterEnumClassesUnscoped",
"false")
39 enum class AutoConnectPolicy {
44 Q_ENUM(AutoConnectPolicy)
46 enum class RowCategory {
51 enum class DropOperation {
59 Q_ENUM(DropOperation);
64 static constexpr RowCategory rowCategory;
65 static QVariant headerData(
int section,
int role);
66 static Qt::ItemFlags flags(
const T &row);
68 static QStringList mimeTypes();
69 static QMimeData *mimeData(
const auto &range);
70 static QMimeData *mimeData(
const QModelIndex &range);
71 static bool canDropMimeData(
const QMimeData *mimeData);
72 static bool canDropMimeData(
const QMimeData *mimeData, Qt::DragAction action,
73 int row,
int column,
const QModelIndex &parent);
74 static auto dropMimeData(
const QMimeData *mimeData,
auto inserter);
75 static auto dropMimeData(
const QMimeData *mimeData, Qt::DragAction action,
76 int row,
int column,
const QModelIndex &parent,
84 static QVariant readRole(
const T &item,
int role);
85 static bool writeRole(T &item,
const QVariant &value,
int role);
86 static Qt::ItemFlags flags(
const T &item);
88 static QStringList mimeTypes();
89 static QMimeData *mimeData(
const auto &range);
90 static QMimeData *mimeData(
const QModelIndex &range);
91 static bool canDropMimeData(
const QMimeData *mimeData);
92 static bool canDropMimeData(
const QMimeData *mimeData, Qt::DragAction action,
93 int row,
int column,
const QModelIndex &parent);
94 static auto dropMimeData(
const QMimeData *mimeData,
auto inserter);
95 static auto dropMimeData(
const QMimeData *mimeData, Qt::DragAction action,
96 int row,
int column,
const QModelIndex &parent,
101 template <
typename Range,
102 QRangeModelDetails::if_table_range<Range> =
true>
103 explicit QRangeModel(Range &&range, QObject *parent =
nullptr)
104 : QRangeModel(
new QGenericTableItemModelImpl<Range>(std::forward<Range>(range),
this), parent)
107 template <
typename Range,
108 QRangeModelDetails::if_tree_range<Range> =
true>
109 explicit QRangeModel(Range &&range, QObject *parent =
nullptr)
110 : QRangeModel(std::forward<Range>(range), QRangeModelDetails::DefaultTreeProtocol<Range>{},
114 template <
typename Range,
typename Protocol,
115 QRangeModelDetails::if_tree_range<Range, Protocol> =
true>
116 explicit QRangeModel(Range &&range, Protocol &&protocol, QObject *parent =
nullptr)
117 : QRangeModel(
new QGenericTreeItemModelImpl<Range, Protocol>(std::forward<Range>(range),
118 std::forward<Protocol>(protocol),
123 ~QRangeModel() override;
125 QModelIndex index(
int row,
int column,
const QModelIndex &parent = {})
const final;
126 QModelIndex parent(
const QModelIndex &child)
const final;
127 QModelIndex sibling(
int row,
int column,
const QModelIndex &index)
const final;
128 int rowCount(
const QModelIndex &parent = {})
const final;
129 int columnCount(
const QModelIndex &parent = {})
const final;
130 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
131 QVariant headerData(
int section, Qt::Orientation orientation,
132 int role = Qt::DisplayRole)
const override;
133 bool setHeaderData(
int section, Qt::Orientation orientation,
const QVariant &data,
134 int role = Qt::EditRole) override;
135 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
136 bool setData(
const QModelIndex &index,
const QVariant &data,
int role = Qt::EditRole) override;
137 QMap<
int, QVariant> itemData(
const QModelIndex &index)
const override;
138 bool setItemData(
const QModelIndex &index,
const QMap<
int, QVariant> &data) override;
139 bool clearItemData(
const QModelIndex &index) override;
140 bool insertColumns(
int column,
int count,
const QModelIndex &parent = {}) final;
141 bool removeColumns(
int column,
int count,
const QModelIndex &parent = {}) final;
142 bool moveColumns(
const QModelIndex &sourceParent,
int sourceColumn,
int count,
143 const QModelIndex &destParent,
int destColumn) final;
144 bool insertRows(
int row,
int count,
const QModelIndex &parent = {}) final;
145 bool removeRows(
int row,
int count,
const QModelIndex &parent = {}) final;
146 bool moveRows(
const QModelIndex &sourceParent,
int sourceRow,
int count,
147 const QModelIndex &destParent,
int destRow) final;
149 QHash<
int, QByteArray> roleNames()
const override;
150 void setRoleNames(
const QHash<
int, QByteArray> &names);
151 void resetRoleNames();
153 bool canFetchMore(
const QModelIndex &parent)
const override;
154 void fetchMore(
const QModelIndex &parent) override;
156 bool hasChildren(
const QModelIndex &parent = QModelIndex())
const final;
157 QModelIndex buddy(
const QModelIndex &index)
const override;
158 bool canDropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
159 const QModelIndex &parent)
const override;
160 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
161 const QModelIndex &parent) override;
162 QMimeData *mimeData(
const QModelIndexList &indexes)
const override;
163 QStringList mimeTypes()
const override;
164 QModelIndexList match(
const QModelIndex &start,
int role,
const QVariant &value,
int hits,
165 Qt::MatchFlags flags)
const override;
166 void multiData(
const QModelIndex &index, QModelRoleDataSpan roleDataSpan)
const override;
167 void sort(
int column, Qt::SortOrder order = Qt::AscendingOrder) override;
169 QCollator sortCollator()
const;
170 void setSortCollator(
const QCollator &collator);
171 void resetSortCollator();
173 QCollator matchCollator()
const;
174 void setMatchCollator(
const QCollator &collator);
175 void resetMatchCollator();
177 int sortRole()
const;
178 void setSortRole(
int role);
179 void resetSortRole();
181 QSize span(
const QModelIndex &index)
const override;
183 Qt::DropActions supportedDragActions()
const override;
184 void setSupportedDragActions(Qt::DropActions actions);
185 void resetSupportedDragActions();
186 Qt::DropActions supportedDropActions()
const override;
187 void setSupportedDropActions(Qt::DropActions actions);
188 void resetSupportedDropActions();
190 AutoConnectPolicy autoConnectPolicy()
const;
191 void setAutoConnectPolicy(AutoConnectPolicy policy);
194 void roleNamesChanged();
195 Q_REVISION(6, 11)
void autoConnectPolicyChanged(AutoConnectPolicy policy);
196 Q_REVISION(6, 12)
void sortRoleChanged(
int role);
197 Q_REVISION(6, 12)
void sortCollatorChanged(
const QCollator &collator);
198 Q_REVISION(6, 13)
void matchCollatorChanged(
const QCollator &collator);
199 Q_REVISION(6, 12)
void supportedDragActionsChanged(Qt::DropActions actions);
200 Q_REVISION(6, 12)
void supportedDropActionsChanged(Qt::DropActions actions);
203 void resetInternalData() override;
206 bool event(QEvent *) override;
207 bool eventFilter(QObject *, QEvent *) override;
210 Q_DISABLE_COPY_MOVE(QRangeModel)
211 Q_DECLARE_PRIVATE(QRangeModel)
213 explicit QRangeModel(QRangeModelImplBase *impl, QObject *parent);
214 friend class QRangeModelImplBase;