Details
-
Bug
-
Resolution: Incomplete
-
Not Evaluated
-
None
-
5.10.1
-
None
Description
I have this rather complex set of models of models and proxy models that get updated from messages over the network. (say about 30 data sources)
There can be many views showing these models
Each time a message arrives, it gets inserted at the end of the model which causes a redraw in the views.
Problem is that after the data set becomes large (say about 200 K rows in total) updating the listviews becomes terribly slow.
Interrupting using GDB shows that the listview is constantly updating (repaint is too slow and is not done before a next line needs to be show)
Using uniformItemSizes speeds up enormously but it does not show the complete row (as the with of a row is determined upon the first row appearing from any source.
I could use suggestions on how to speed up but I have a workaround that I am unable to implement (hence the bug).
In my case the height of the rows is uniform, and the width can be considered uniform if i would be able to specify the longest row. So If I could calculate upon arrival of a new row if the width of that row is wider than the current widest and tell the listview to use that new width for uniformsize I would get the benefit of uniformitemsizes but with a width that is calculated on the fly.
How can I do that ? Is there a way to force reupdate of the uniformItemSize ?