That would explain setQuery(), so that the model can load the data again.
But why set the model again? It is the same model, right?
Only setQuery(), the pointer to the model stays the same when its data changes.
Anyway, setting the query means the model will reset and get all data from the database again.
Which might be the cause of the performance issue you are seeing.
If you know which records have been altered, you might be able to achieve partial updates by implementing your own model and handling the update yourself.
But better measure which part is the one that consumes most time.
Take the model without it being shown in any view and measure the time it takes for setQuery() to finish.
Cheers,
_
Bookmarks