From a5a1f338aa0077b5e29bdf774ad4183f1c8c59d9 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Fri, 26 Oct 2018 21:27:04 +0200 Subject: QTableWidget: mark isItemSelected/setItemSelected() as deprecated QTableWidget::isItemSelected/setItemSelected() are deprecated for a long time but not marked as such. Therefore explicitly mark them as deprecated so they can get removed with Qt6. Change-Id: I77fffe2786751306115c3f5da0ef98ff84e35b1a Reviewed-by: Richard Moe Gustavsen --- src/widgets/itemviews/qtablewidget.cpp | 67 ++++++++++++++-------- src/widgets/itemviews/qtablewidget.h | 14 ++--- .../itemviews/qtablewidget/tst_qtablewidget.cpp | 6 +- 3 files changed, 52 insertions(+), 35 deletions(-) diff --git a/src/widgets/itemviews/qtablewidget.cpp b/src/widgets/itemviews/qtablewidget.cpp index bf4d5d46ff..26006fc6c5 100644 --- a/src/widgets/itemviews/qtablewidget.cpp +++ b/src/widgets/itemviews/qtablewidget.cpp @@ -1054,24 +1054,6 @@ QTableWidgetSelectionRange::~QTableWidgetSelectionRange() \sa row() */ -/*! - \fn void QTableWidgetItem::setSelected(bool select) - \since 4.2 - - Sets the selected state of the item to \a select. - - \sa isSelected() -*/ - -/*! - \fn bool QTableWidgetItem::isSelected() const - \since 4.2 - - Returns \c true if the item is selected, otherwise returns \c false. - - \sa setSelected() -*/ - /*! \fn QSize QTableWidgetItem::sizeHint() const \since 4.1 @@ -1108,6 +1090,44 @@ QTableWidgetSelectionRange::~QTableWidgetSelectionRange() Returns the table widget that contains the item. */ +/*! + \fn bool QTableWidgetItem::isSelected() const + \since 4.2 + + Returns \c true if the item is selected, otherwise returns \c false. + + \sa setSelected() +*/ +bool QTableWidgetItem::isSelected() const +{ + if (!view || !view->selectionModel()) + return false; + const QTableModel *model = qobject_cast(view->model()); + if (!model) + return false; + const QModelIndex index = model->index(this); + return view->selectionModel()->isSelected(index); +} + +/*! + \fn void QTableWidgetItem::setSelected(bool select) + \since 4.2 + + Sets the selected state of the item to \a select. + + \sa isSelected() +*/ +void QTableWidgetItem::setSelected(bool select) +{ + if (!view || !view->selectionModel()) + return; + const QTableModel *model = qobject_cast(view->model()); + if (!model) + return; + const QModelIndex index = model->index(this); + view->selectionModel()->select(index, select ? QItemSelectionModel::Select : QItemSelectionModel::Deselect); +} + /*! \fn Qt::ItemFlags QTableWidgetItem::flags() const @@ -2323,6 +2343,7 @@ void QTableWidget::setCellWidget(int row, int column, QWidget *widget) QAbstractItemView::setIndexWidget(index, widget); } +#if QT_DEPRECATED_SINCE(5, 13) /*! Returns \c true if the \a item is selected, otherwise returns \c false. @@ -2333,9 +2354,7 @@ void QTableWidget::setCellWidget(int row, int column, QWidget *widget) bool QTableWidget::isItemSelected(const QTableWidgetItem *item) const { - Q_D(const QTableWidget); - QModelIndex index = d->tableModel()->index(item); - return selectionModel()->isSelected(index); + return ((item && item->tableWidget() == this) ? item->isSelected() : false); } /*! @@ -2347,10 +2366,10 @@ bool QTableWidget::isItemSelected(const QTableWidgetItem *item) const */ void QTableWidget::setItemSelected(const QTableWidgetItem *item, bool select) { - Q_D(QTableWidget); - QModelIndex index = d->tableModel()->index(item); - selectionModel()->select(index, select ? QItemSelectionModel::Select : QItemSelectionModel::Deselect); + if (item && item->tableWidget() == this) + const_cast(item)->setSelected(select); } +#endif /*! Selects or deselects the \a range depending on \a select. diff --git a/src/widgets/itemviews/qtablewidget.h b/src/widgets/itemviews/qtablewidget.h index be629264f8..2ddc24d30b 100644 --- a/src/widgets/itemviews/qtablewidget.h +++ b/src/widgets/itemviews/qtablewidget.h @@ -92,8 +92,8 @@ public: inline int row() const; inline int column() const; - inline void setSelected(bool select); - inline bool isSelected() const; + void setSelected(bool select); + bool isSelected() const; inline Qt::ItemFlags flags() const { return itemFlags; } void setFlags(Qt::ItemFlags flags); @@ -276,8 +276,12 @@ public: void setCellWidget(int row, int column, QWidget *widget); inline void removeCellWidget(int row, int column); +#if QT_DEPRECATED_SINCE(5, 13) + QT_DEPRECATED_X ("Use QTableWidgetItem::isSelected() instead") bool isItemSelected(const QTableWidgetItem *item) const; + QT_DEPRECATED_X ("Use QTableWidgetItem::setSelected() instead") void setItemSelected(const QTableWidgetItem *item, bool select); +#endif void setRangeSelected(const QTableWidgetSelectionRange &range, bool select); QList selectedRanges() const; @@ -383,12 +387,6 @@ inline int QTableWidgetItem::row() const inline int QTableWidgetItem::column() const { return (view ? view->column(this) : -1); } -inline void QTableWidgetItem::setSelected(bool aselect) -{ if (view) view->setItemSelected(this, aselect); } - -inline bool QTableWidgetItem::isSelected() const -{ return (view ? view->isItemSelected(this) : false); } - QT_END_NAMESPACE #endif // QTABLEWIDGET_H diff --git a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp index 5f013a28d0..2e8f262c85 100644 --- a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp +++ b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp @@ -196,10 +196,10 @@ void tst_QTableWidget::clear() { QTableWidgetItem *item = new QTableWidgetItem("foo"); testWidget->setItem(0, 0, item); - testWidget->setItemSelected(item, true); + item->setSelected(true); QVERIFY(testWidget->item(0, 0) == item); - QVERIFY(testWidget->isItemSelected(item)); + QVERIFY(item->isSelected()); QPointer bla = new QObjectTableItem(); @@ -583,7 +583,7 @@ void tst_QTableWidget::selectedItems() continue; QTableWidgetItem *item = testWidget->item(row, column); - if (item && testWidget->isItemSelected(item)) + if (item && item->isSelected()) QVERIFY(selectedItems.contains(item)); } } -- cgit v1.2.3