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_CLASSINFO(
"RegisterEnumClassesUnscoped",
"false")
29 enum class AutoConnectPolicy {
34 Q_ENUM(AutoConnectPolicy)
36 enum class RowCategory {
47 template <
typename Range,
48 QRangeModelDetails::if_table_range<Range> =
true>
49 explicit QRangeModel(Range &&range, QObject *parent =
nullptr)
50 : QRangeModel(
new QGenericTableItemModelImpl<Range>(std::forward<Range>(range),
this), parent)
53 template <
typename Range,
54 QRangeModelDetails::if_tree_range<Range> =
true>
55 explicit QRangeModel(Range &&range, QObject *parent =
nullptr)
56 : QRangeModel(std::forward<Range>(range), QRangeModelDetails::DefaultTreeProtocol<Range>{},
60 template <
typename Range,
typename Protocol,
61 QRangeModelDetails::if_tree_range<Range, Protocol> =
true>
62 explicit QRangeModel(Range &&range, Protocol &&protocol, QObject *parent =
nullptr)
63 : QRangeModel(
new QGenericTreeItemModelImpl<Range, Protocol>(std::forward<Range>(range),
64 std::forward<Protocol>(protocol),
69 ~QRangeModel() override;
71 QModelIndex index(
int row,
int column,
const QModelIndex &parent = {})
const final;
72 QModelIndex parent(
const QModelIndex &child)
const final;
73 QModelIndex sibling(
int row,
int column,
const QModelIndex &index)
const final;
74 int rowCount(
const QModelIndex &parent = {})
const final;
75 int columnCount(
const QModelIndex &parent = {})
const final;
76 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
77 QVariant headerData(
int section, Qt::Orientation orientation,
78 int role = Qt::DisplayRole)
const override;
79 bool setHeaderData(
int section, Qt::Orientation orientation,
const QVariant &data,
80 int role = Qt::EditRole) override;
81 QVariant data(
const QModelIndex &index,
int role = Qt::DisplayRole)
const override;
82 bool setData(
const QModelIndex &index,
const QVariant &data,
int role = Qt::EditRole) override;
83 QMap<
int, QVariant> itemData(
const QModelIndex &index)
const override;
84 bool setItemData(
const QModelIndex &index,
const QMap<
int, QVariant> &data) override;
85 bool clearItemData(
const QModelIndex &index) override;
86 bool insertColumns(
int column,
int count,
const QModelIndex &parent = {}) final;
87 bool removeColumns(
int column,
int count,
const QModelIndex &parent = {}) final;
88 bool moveColumns(
const QModelIndex &sourceParent,
int sourceColumn,
int count,
89 const QModelIndex &destParent,
int destColumn) final;
90 bool insertRows(
int row,
int count,
const QModelIndex &parent = {}) final;
91 bool removeRows(
int row,
int count,
const QModelIndex &parent = {}) final;
92 bool moveRows(
const QModelIndex &sourceParent,
int sourceRow,
int count,
93 const QModelIndex &destParent,
int destRow) final;
95 QHash<
int, QByteArray> roleNames()
const override;
96 void setRoleNames(
const QHash<
int, QByteArray> &names);
97 void resetRoleNames();
99 bool canFetchMore(
const QModelIndex &parent)
const override;
100 void fetchMore(
const QModelIndex &parent) override;
102 bool hasChildren(
const QModelIndex &parent = QModelIndex())
const final;
103 QModelIndex buddy(
const QModelIndex &index)
const override;
104 bool canDropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
105 const QModelIndex &parent)
const override;
106 bool dropMimeData(
const QMimeData *data, Qt::DropAction action,
int row,
int column,
107 const QModelIndex &parent) override;
108 QMimeData *mimeData(
const QModelIndexList &indexes)
const override;
109 QStringList mimeTypes()
const override;
110 QModelIndexList match(
const QModelIndex &start,
int role,
const QVariant &value,
int hits,
111 Qt::MatchFlags flags)
const override;
112 void multiData(
const QModelIndex &index, QModelRoleDataSpan roleDataSpan)
const override;
113 void sort(
int column, Qt::SortOrder order = Qt::AscendingOrder) override;
115 QCollator sortCollator()
const;
116 void setSortCollator(
const QCollator &collator);
117 void resetSortCollator();
119 int sortRole()
const;
120 void setSortRole(
int role);
121 void resetSortRole();
123 QSize span(
const QModelIndex &index)
const override;
124 Qt::DropActions supportedDragActions()
const override;
125 Qt::DropActions supportedDropActions()
const override;
127 AutoConnectPolicy autoConnectPolicy()
const;
128 void setAutoConnectPolicy(AutoConnectPolicy policy);
131 void roleNamesChanged();
132 Q_REVISION(6, 11)
void autoConnectPolicyChanged(AutoConnectPolicy policy);
133 Q_REVISION(6, 12)
void sortRoleChanged(
int role);
134 Q_REVISION(6, 12)
void sortCollatorChanged(
const QCollator &collator);
137 void resetInternalData() override;
140 bool event(QEvent *) override;
141 bool eventFilter(QObject *, QEvent *) override;
144 Q_DISABLE_COPY_MOVE(QRangeModel)
145 Q_DECLARE_PRIVATE(QRangeModel)
147 explicit QRangeModel(QRangeModelImplBase *impl, QObject *parent);
148 friend class QRangeModelImplBase;