...similarly, if you order 'items' by row index, and move backwards (from the highest row index), you could try to figure out the optimal signals to emit and turn this into a minimal number of beginRemoveRows/endRemoveRows.. it's tricky, but worth it if you can make it happen. that should then be quite efficient.

I have written code for this before, if you ask me, I can help you with it tomorrow