Я пытаюсь отладить мою модель (QAbstractItemModel) с помощью ModelTest. И я не могу понять одно утверждение.
В ModelTest есть два слота, которые перехватывают сигналы, генерируемые моей моделью.
- ModelTest :: rowsAboutToBeInserted
- ModelTest :: rowsInserted
Слот / функция 1 выглядит так
void ModelTest::rowsAboutToBeInserted ( const QModelIndex &parent, int start, int end )
{
Changing c;
// ...
c.last = model->data ( model->index ( start - 1, 0, parent ) );
c.next = model->data ( model->index ( start, 0, parent ) );
insert.push ( c );
}
И слот 2 выглядит так
void ModelTest::rowsInserted ( const QModelIndex & parent, int start, int end )
{
Changing c = insert.pop();
// other asserts ...
(*) Q_ASSERT ( c.next == model->data ( model->index ( end + 1, 0, c.parent ) ) );
}
Я не понимаю последнее утверждение (*). Предположим, что в моем приложении я добавляю 1 строку.
Эта строка является единственной строкой, которая хранится в моей модели. Таким образом, номер строки будет 0.
В моей модели перед добавлением строки я звоню
beginInsertRows(parentIndex, 0, 0);
Так почему же для тестирования модели требуется
модель-> данные (модель-> индекс (начало, 0, родитель))
будет равно
модель-> данные (модель-> индекс (конец + 1, 0, c.parent))
Что мне здесь не хватает? Пожалуйста, помогите:)