summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/itemviews/qitemselectionmodel.cpp22
-rw-r--r--src/gui/itemviews/qitemselectionmodel_p.h2
-rw-r--r--tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp24
3 files changed, 1 insertions, 47 deletions
diff --git a/src/gui/itemviews/qitemselectionmodel.cpp b/src/gui/itemviews/qitemselectionmodel.cpp
index 0f35ac1..9dad95f 100644
--- a/src/gui/itemviews/qitemselectionmodel.cpp
+++ b/src/gui/itemviews/qitemselectionmodel.cpp
@@ -593,30 +593,10 @@ void QItemSelectionModelPrivate::_q_rowsAboutToBeRemoved(const QModelIndex &pare
// update selectionsx
QModelIndex tl = model->index(start, 0, parent);
QModelIndex br = model->index(end, model->columnCount(parent) - 1, parent);
- recursiveDeselect(QItemSelectionRange(tl, br));
+ q->select(QItemSelection(tl, br), QItemSelectionModel::Deselect);
finalize();
}
-void QItemSelectionModelPrivate::recursiveDeselect(const QItemSelectionRange &range)
-{
- Q_Q(QItemSelectionModel);
-
- QItemSelection sel(range.topLeft(), range.bottomRight());
- q->select(sel, QItemSelectionModel::Deselect);
-
- QModelIndexList idxList = range.indexes();
- QModelIndexList::const_iterator it = idxList.begin();
- for (; it != idxList.end(); ++it)
- {
- if (!model->hasChildren(*it))
- continue;
-
- const QModelIndex &firstChild = it->child(0,0);
- const QModelIndex &lastChild = it->child(model->rowCount(*it) - 1, model->columnCount(*it) - 1);
- recursiveDeselect(QItemSelectionRange(firstChild, lastChild));
- }
-}
-
/*!
\internal
*/
diff --git a/src/gui/itemviews/qitemselectionmodel_p.h b/src/gui/itemviews/qitemselectionmodel_p.h
index 8176d4c..18ad506 100644
--- a/src/gui/itemviews/qitemselectionmodel_p.h
+++ b/src/gui/itemviews/qitemselectionmodel_p.h
@@ -77,8 +77,6 @@ public:
void _q_layoutAboutToBeChanged();
void _q_layoutChanged();
- void recursiveDeselect(const QItemSelectionRange &range);
-
inline void remove(QList<QItemSelectionRange> &r)
{
QList<QItemSelectionRange>::const_iterator it = r.constBegin();
diff --git a/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp b/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
index 05e23f1..0541b46 100644
--- a/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
+++ b/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp
@@ -90,7 +90,6 @@ private slots:
void merge();
void task119433_isRowSelected();
void task252069_rowIntersectsSelection();
- void task232634_childrenDeselectionSignal();
private:
QAbstractItemModel *model;
@@ -2188,28 +2187,5 @@ void tst_QItemSelectionModel::task252069_rowIntersectsSelection()
QVERIFY(!selected.columnIntersectsSelection(5, QModelIndex()));
}
-void tst_QItemSelectionModel::task232634_childrenDeselectionSignal()
-{
- QStandardItemModel model;
-
- QStandardItem *parentItem = model.invisibleRootItem();
- for (int i = 0; i < 4; ++i) {
- QStandardItem *item = new QStandardItem(QString("item %0").arg(i));
- parentItem->appendRow(item);
- parentItem = item;
- }
-
- QModelIndex root = model.index(0,0);
- QModelIndex par = root.child(0,0);
- QModelIndex sel = par.child(0,0);
-
- QItemSelectionModel selectionModel(&model);
- selectionModel.select(sel, QItemSelectionModel::SelectCurrent);
-
- QSignalSpy deselectSpy(&selectionModel, SIGNAL(selectionChanged(const QItemSelection& , const QItemSelection&)));
- model.removeRows(0, 1, root);
- QVERIFY(deselectSpy.count() == 1);
-}
-
QTEST_MAIN(tst_QItemSelectionModel)
#include "tst_qitemselectionmodel.moc"