Так вот, у меня есть модель и есть treeview. Когда treeview нужно перерисоваться, он вызывает в свою очередь model::data().
В data() я проверяю, все ли элементы модели прошли нужную обработку. Если обработка не пройдена (например, нужно что-то распарсить), то её нужно сделать перед отображением. Так вот если в результате обработки возникает какая-либо ошибка, то её нужно отобразить в MessageBox'e. Тут и возникает ситуация, которую я описал выше.
Что лучше сделать в этом случае? Переделать архитектуру приложения или есть другие пути?
Прерывать процесс рисования нельзя. Варианты
1) Рисовать ошибку - напр. красное ERROR в ячейке
2) Испустить сигнал паренту, connect должен быть создан с флагом Qt::QueuedConnection (т.е. послать в очередь событий а не переться сразу с MessageBox)
А лучше 1 и 2 вместе
OT: ну почему UVV, а не UVW или просто UV?