From f136701bc50b63b90281856c2ab5953a40f4b868 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 21 Feb 2013 00:01:30 +0100 Subject: [PATCH] Use the base implementation of QAbstractItemModel::sibling in QSIM. QStandardItemModel doesn't really benefit from a reimplementation of sibling, and the current implementation is buggy. Task-number: 29540 Change-Id: Icf8dca29b6e1394a378db5bf6abd884f2d7fd9b9 Reviewed-by: Olivier Goffart --- src/gui/itemmodels/qstandarditemmodel.cpp | 2 +- src/gui/itemmodels/qstandarditemmodel.h | 1 + .../itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gui/itemmodels/qstandarditemmodel.cpp b/src/gui/itemmodels/qstandarditemmodel.cpp index d6161671b1..d5d742c9b3 100644 --- a/src/gui/itemmodels/qstandarditemmodel.cpp +++ b/src/gui/itemmodels/qstandarditemmodel.cpp @@ -2714,7 +2714,7 @@ bool QStandardItemModel::hasChildren(const QModelIndex &parent) const */ QModelIndex QStandardItemModel::sibling(int row, int column, const QModelIndex &idx) const { - return createIndex(row, column, idx.internalPointer()); + return QAbstractItemModel::sibling(row, column, idx); } /*! diff --git a/src/gui/itemmodels/qstandarditemmodel.h b/src/gui/itemmodels/qstandarditemmodel.h index b4f03008fd..0d6649039c 100644 --- a/src/gui/itemmodels/qstandarditemmodel.h +++ b/src/gui/itemmodels/qstandarditemmodel.h @@ -332,6 +332,7 @@ public: int rowCount(const QModelIndex &parent = QModelIndex()) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; bool hasChildren(const QModelIndex &parent = QModelIndex()) const; + // Qt 6: Remove QModelIndex sibling(int row, int column, const QModelIndex &idx) const; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; diff --git a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp index 5fb8df3f59..085dfd0461 100644 --- a/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp +++ b/tests/auto/gui/itemmodels/qstandarditemmodel/tst_qstandarditemmodel.cpp @@ -718,6 +718,8 @@ void tst_QStandardItemModel::checkChildren() QVERIFY(!model.hasChildren()); QCOMPARE(model.rowCount(), 0); QCOMPARE(model.columnCount(), 1); + + QVERIFY(!model.index(0,0).sibling(100,100).isValid()); } void tst_QStandardItemModel::data()