Details
-
Bug
-
Resolution: Incomplete
-
P2: Important
-
None
-
5.11.1
-
None
Description
If you set a model on a QListView in IconMode that has a somewhat large row count, its paint event will become so slow it is no longer usable. With ListMode this is not an issue.
The attached example has a dummy model which returns a row count of 4000 by default (just an arbitrary number which was found to work fine). By clicking the push button, the model will be updated to report 30000 rows instead, which will halt the application. This can be observed by the indeterminate progress bar at the bottom, which will stop animating when you do this. Every time the list view needs to be repainted, it will block like this.
If you comment out the line that sets the view mode to IconMode, then the application will work fine.
I have set uniform item size to true and movement to Static on the view, so calculations of the viewport intersection should be fast, but I think the staticness is not taken into consideration, and a BSP tree is still used to find the visible set.