Здравствуйте, есть такой код, который добавляет новый элемент:
//Create new item
_sourceModel->insertRow(_sourceModel->rowCount(sourceFolderIndex), sourceFolderIndex);
QModelIndex sourceIndexOfNewItem
= _sourceModel->index(_sourceModel->rowCount(sourceFolderIndex)-1, 0, sourceFolderIndex);
QModelIndex searchIndexOfNewItem = _searchModel->mapFromSource(sourceIndexOfNewItem);
qDebug() << sourceIndexOfNewItem;
qDebug() << searchIndexOfNewItem;
_sourceModel - есть наследник QStandardItemModel.
_seacrhModel - есть наследник QSortFilterProxyModel.
Ни в одном из наследников используемые методы НЕ переопределялись.
sourceFolderIndex - индекс элемента-родителя для создаваемого элемента.
А ошибка вот в чем:
Если мы ничего не ищем(в модель поиска забита пустая строка), то код работает нормально и оба индекса валидны, но если мы что-то ищем, то создается новый элемент, его индекс вычисляется нормально, но вот индекс поисковой модели(_searchModel->mapFromSource(sourceIndexOfNewItem)
вычисляется неправильно(возвращается просто невалидный индекс).