summaryrefslogtreecommitdiffstats
path: root/src/corelib/itemmodels
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/itemmodels')
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.cpp27
-rw-r--r--src/corelib/itemmodels/qabstractitemmodel.h8
2 files changed, 31 insertions, 4 deletions
diff --git a/src/corelib/itemmodels/qabstractitemmodel.cpp b/src/corelib/itemmodels/qabstractitemmodel.cpp
index fac7058d29..49b5031559 100644
--- a/src/corelib/itemmodels/qabstractitemmodel.cpp
+++ b/src/corelib/itemmodels/qabstractitemmodel.cpp
@@ -352,6 +352,22 @@ void *QPersistentModelIndex::internalPointer() const
}
/*!
+ \fn const void *QPersistentModelIndex::constInternalPointer() const
+ \since 6.0
+ \internal
+
+ Returns a \c{const void} \c{*} pointer used by the model to
+ associate the index with the internal data structure.
+*/
+
+const void *QPersistentModelIndex::constInternalPointer() const
+{
+ if (d)
+ return d->index.constInternalPointer();
+ return nullptr;
+}
+
+/*!
\fn quintptr QPersistentModelIndex::internalId() const
\internal
@@ -1065,6 +1081,15 @@ void QAbstractItemModel::resetInternalData()
*/
/*!
+ \fn const void *QModelIndex::constInternalPointer() const
+
+ Returns a \c{const void} \c{*} pointer used by the model to associate
+ the index with the internal data structure.
+
+ \sa QAbstractItemModel::createIndex()
+*/
+
+/*!
\fn quintptr QModelIndex::internalId() const
Returns a \c{quintptr} used by the model to associate
@@ -2589,7 +2614,7 @@ bool QAbstractItemModel::setHeaderData(int section, Qt::Orientation orientation,
}
/*!
- \fn QModelIndex QAbstractItemModel::createIndex(int row, int column, void *ptr) const
+ \fn QModelIndex QAbstractItemModel::createIndex(int row, int column, const void *ptr) const
Creates a model index for the given \a row and \a column with the internal
pointer \a ptr.
diff --git a/src/corelib/itemmodels/qabstractitemmodel.h b/src/corelib/itemmodels/qabstractitemmodel.h
index 86ff361ccb..a23b5b8cfc 100644
--- a/src/corelib/itemmodels/qabstractitemmodel.h
+++ b/src/corelib/itemmodels/qabstractitemmodel.h
@@ -63,6 +63,7 @@ public:
Q_DECL_CONSTEXPR inline int column() const noexcept { return c; }
Q_DECL_CONSTEXPR inline quintptr internalId() const noexcept { return i; }
inline void *internalPointer() const noexcept { return reinterpret_cast<void*>(i); }
+ inline const void *constInternalPointer() const noexcept { return reinterpret_cast<const void *>(i); }
inline QModelIndex parent() const;
inline QModelIndex sibling(int row, int column) const;
inline QModelIndex siblingAtColumn(int column) const;
@@ -86,7 +87,7 @@ public:
|| (i == other.i && std::less<const QAbstractItemModel *>()(m, other.m))))));
}
private:
- inline QModelIndex(int arow, int acolumn, void *ptr, const QAbstractItemModel *amodel) noexcept
+ inline QModelIndex(int arow, int acolumn, const void *ptr, const QAbstractItemModel *amodel) noexcept
: r(arow), c(acolumn), i(reinterpret_cast<quintptr>(ptr)), m(amodel) {}
Q_DECL_CONSTEXPR inline QModelIndex(int arow, int acolumn, quintptr id, const QAbstractItemModel *amodel) noexcept
: r(arow), c(acolumn), i(id), m(amodel) {}
@@ -129,6 +130,7 @@ public:
int row() const;
int column() const;
void *internalPointer() const;
+ const void *constInternalPointer() const;
quintptr internalId() const;
QModelIndex parent() const;
QModelIndex sibling(int row, int column) const;
@@ -307,7 +309,7 @@ protected Q_SLOTS:
protected:
QAbstractItemModel(QAbstractItemModelPrivate &dd, QObject *parent = nullptr);
- inline QModelIndex createIndex(int row, int column, void *data = nullptr) const;
+ inline QModelIndex createIndex(int row, int column, const void *data = nullptr) const;
inline QModelIndex createIndex(int row, int column, quintptr id) const;
void encodeData(const QModelIndexList &indexes, QDataStream &stream) const;
@@ -378,7 +380,7 @@ inline bool QAbstractItemModel::moveRow(const QModelIndex &sourceParent, int sou
inline bool QAbstractItemModel::moveColumn(const QModelIndex &sourceParent, int sourceColumn,
const QModelIndex &destinationParent, int destinationChild)
{ return moveColumns(sourceParent, sourceColumn, 1, destinationParent, destinationChild); }
-inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, void *adata) const
+inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, const void *adata) const
{ return QModelIndex(arow, acolumn, adata, this); }
inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, quintptr aid) const
{ return QModelIndex(arow, acolumn, aid, this); }