Есть кастомный виджет типа QTreeView. В качестве основной модели задаю родную QSortFilterProxyModel модель, а также кастомная модель QAbstractItemModel.
Добавляю корневые элементы таким образом
beginInsertRows(QModelIndex(),getRowsCount(), getRowsCount());
listItems<<block;
endInsertRows();
Все замечательно, так как для у них отсутствует родительский индекс и его достаточно обозначить как QModelIndex(). К слову говоря отладчик показал, что обработкой beginInsertRow занимается именно модель QSortFilterProxyModel.
Затем я хочу добавеить каждому элементу несколько дочерних таким же образом, но тут возникает вопрос, а каким же образом задавать родительский индекс.
Если я его задам как createIndex(row,0,&block), то результата не никакого. Модель видимо просто не понимает такой индекс.
Если я его задаю как sortModel->index(row,0,QModelIndex()), все проходит замечательно но выдает ругательства в виде "QSortFilterProxyModel: index from wrong model passed to mapFromSource". Т.е. он не может привести индекс к своему виду, так как он уже к нему приведен.
Собсно, вопрос. А как же задавать в такой ситуации индексы? emit layoutChanged() не предлагать.
Спасибо.