void ModelTest::layoutChanged() { for ( int i = 0; i < changing.count(); ++i ) { QPersistentModelIndex p = changing[i]; Q_ASSERT ( p == model->index ( p.row(), p.column(), p.parent() ) ); } changing.clear(); }
void Helper::layoutChanged() { for ( int i = 0; i < changing.count(); ++i ) { QPersistentModelIndex p = changing[i]; QVERIFY( p == model->index ( p.row(), p.column(), p.parent() ) ); } changing.clear(); }
void tst_QAbstractItemModel::movePersistentIndex() { QtTestModel model(3, 3); QPersistentModelIndex a = model.index(1, 1); QVERIFY(a.isValid()); QCOMPARE(a.row(), 1); QCOMPARE(a.column(), 1); model.insertRow(0); QCOMPARE(a.row(), 2); model.insertRow(1); QCOMPARE(a.row(), 3); model.insertColumn(0); QCOMPARE(a.column(), 2); }
//----------------------------------------------------------------------------- void ctkModelTester::testPersistentModelIndex(const QPersistentModelIndex& index)const { CTK_D(const ctkModelTester); //qDebug() << "Test persistent Index: " << index ; this->test(index.isValid(), "Persistent model index can't be invalid"); // did you forget to call QAbstractItemModel::changePersistentIndex() between // beginLayoutChanged() and changePersistentIndex() ? QModelIndex modelIndex = d->Model->index(index.row(), index.column(), index.parent()); this->test(modelIndex == index, QString("Persistent index (%1, %2) can't be invalid").arg(index.row()).arg(index.column())); }
//----------------------------------------------------------------------------- void ctkModelTester::onItemsAboutToBeRemoved(const QModelIndex &vparent, Qt::Orientation orientation, int start, int end) { CTK_D(ctkModelTester); this->test(start <= end, "Start can't be higher than end"); //Not sure about that this->test(d->AboutToBeInserted.size() == 0, "While inserting items, you can't remove other items."); //Not sure about that this->test(d->AboutToBeRemoved.size() == 0, "While removing items, you can't remove other items."); int count = (orientation == Qt::Vertical ? d->Model->rowCount(vparent) :d->Model->columnCount(vparent) ); this->test(start < count, "Item to remove can't be invalid"); this->test(end < count, "Item to remove can't be invalid"); ctkModelTesterPrivate::Change change; change.Parent = vparent; change.Orientation = orientation; change.Start = start; change.End = end; change.Count = count; for (int i = 0 ; i < count; ++i) { QPersistentModelIndex index; index = (orientation == Qt::Vertical ? d->Model->index(i, 0, vparent) : d->Model->index(0, i, vparent)); this->test(index.isValid(), "Index invalid"); if (orientation == Qt::Vertical && (index.row() < start || index.row() > end)) { change.Items.append(index); } if (orientation == Qt::Horizontal && (index.column() < start || index.column() > end)) { change.Items.append(index); } } d->AboutToBeRemoved.push(change); this->testModel(); //qDebug() << "About to be removed: " << start << " " << end <<vparent << count << change.Items.count(); }
inline int currentIdx() const { return orientation == Qt::Horizontal ? currentTopLeft.row() : currentTopLeft.column(); }