I think it is in sync, because signal gets emitted before beginRemoveRows returns. The segfault happens because FileNode* (from mouse-hovered index) is used in setActiveInstallFromFile(..) as if it was still valid pointer. Well technically it is but after endRemoveRows() it is really deleted.Might the selectionChanged() and the actual deletion run asynchronously? If not, that is one runs after another then how could a segfault happen?
I think something like that is what I'm going to have to do in the end. Or somehow disable the signal before beginRemoveRows(). I'm just still wondering the result of view->indexAt(pnt)What about checking somehow at the beginning of your installSelectionChanged() method whether a delete process is going on?![]()
Bookmarks