У тебя в функцию:
C++ (Qt)
BDSMModel::parent
Передается удаленный QModelIndex. Вот только откуда не могу понять.
А стек вызовов посмотреть не судьба?
Конечно смотрел из QAbstractItemView вызывается, а как туда индекс попал без понятия. Мне разбираться даже не охота. Тут явно автор что-то не то делает, либо забывает откуда-то удалить, либо неправильно реализовал логику.
Там конечно патч на пару строк решает проблему падения при удалении. Но это бред, надо искать причину а не устранять последствия.
добавлено:Короче ошибка появляется только при первом добавлении после удаления. Наверно перед вставкой нового объекта вызываются функции которые пытаются достать этот еще не добавленный объект. Пока что можно временно пофиксить вот так:
C++ (Qt)
TreeItemBase *BSBDModel::getItem(const QModelIndex &index) const{
if (index.isValid()) {
TreeItemBase *item = static_cast<TreeItemBase*>(index.internalPointer());
if (!root->isContains(item)) {
qDebug() << "ERROR!!!";
return root;
}
if (item) return item;
}
return root;
}
C++ (Qt)
bool TreeItemBase::isContains(TreeItemBase *item)
{
return child_items.contains(item);
}