From b2aeeaf628839d0fc0149db94e0a02c369ad16bc Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 30 Nov 2015 10:58:10 +0100 Subject: [PATCH] QTreeWidget: fix const-incorrectness in indexFromItem() parameters The item to look up isn't modified, so take by pointer-to-const. Can't change the API, so overload and mark the old function for removal in Qt 6. Change-Id: I4671c6b079687ec9d81b1ac0e6745887ef7077cd Reviewed-by: Lars Knoll --- src/widgets/itemviews/qtreewidget.cpp | 13 ++++++++++++- src/widgets/itemviews/qtreewidget.h | 3 ++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp index 748d899dd06..c824b5111f8 100644 --- a/src/widgets/itemviews/qtreewidget.cpp +++ b/src/widgets/itemviews/qtreewidget.cpp @@ -3342,14 +3342,25 @@ QList QTreeWidget::items(const QMimeData *data) const /*! Returns the QModelIndex assocated with the given \a item in the given \a column. + \note In Qt versions prior to 5.7, this function took a non-\c{const} \a item. + \sa itemFromIndex(), topLevelItem() */ -QModelIndex QTreeWidget::indexFromItem(QTreeWidgetItem *item, int column) const +QModelIndex QTreeWidget::indexFromItem(const QTreeWidgetItem *item, int column) const { Q_D(const QTreeWidget); return d->index(item, column); } +/*! + \overload + \internal +*/ +QModelIndex QTreeWidget::indexFromItem(QTreeWidgetItem *item, int column) const +{ + return indexFromItem(const_cast(item), column); +} + /*! Returns a pointer to the QTreeWidgetItem assocated with the given \a index. diff --git a/src/widgets/itemviews/qtreewidget.h b/src/widgets/itemviews/qtreewidget.h index 995528fe375..e39593c6c13 100644 --- a/src/widgets/itemviews/qtreewidget.h +++ b/src/widgets/itemviews/qtreewidget.h @@ -350,7 +350,8 @@ protected: virtual Qt::DropActions supportedDropActions() const; QList items(const QMimeData *data) const; - QModelIndex indexFromItem(QTreeWidgetItem *item, int column = 0) const; + QModelIndex indexFromItem(const QTreeWidgetItem *item, int column = 0) const; + QModelIndex indexFromItem(QTreeWidgetItem *item, int column = 0) const; // ### Qt 6: remove QTreeWidgetItem *itemFromIndex(const QModelIndex &index) const; void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;