Yes, it is wrong, especially because the signal is emitted 1000 times/second ( this means 1000 events posted each second in the GUI event handler ).
I really don't know how to see if an item is visible, but you should take a look at the implementation of QTableView::scrollTo(). This should give you an idea.
Once you solve this, you solve your problem.
BTW: you shouldn't modify the model in the worker thread. Instead emit a signal with a structure with the data that need to be inserted.
Bookmarks