А ты как добавляешь данные в модель? beginInsertRows/endInsertRows вызываешь? Судя по всему нет, потому что reset используешь, а это неправильно.
Дело в том, что для вставки строки, я не переопределяю isnertRows(), а использую свой собственный метод, в котором я запихиваю данные в источник, коим как я уже писал является QList<QStringList>. И для того, чтобы обновить вью, я вызываю reset(). Я это, кстати, у Бланшета прочитал. Глава 10, Implementing Custom Models, отрывок:
void CurrencyModel::setCurrencyMap(const QMap<QString, double> &map)
{
currencyMap = map;
reset();
}
The caller can change the currency map using setCurrencyMap(). The QAbstractItemModel::reset() call tells any views that are using the model that all their data is invalid; this forces them to request fresh data for the items that are visible.