Hi,

I’m creating a new kind of GridView because the one bundled with Qt/Qml doesn’t 
offer 2D high performance scrolling.

GridView layouts items in a flow style, breaking line when it overflows. This 
allows scrolling in just 1D. Two make it 2D, you will be force to draw items 
that you don’t see by extending the grid view width/height and using a 
flickable over it to control GridView scrolling. The second problem is that the 
binding is already made for all items. If you have thousands of items this can 
cost valuable CPU cycles. This is specially important when you are running on 
mobile devices.

I need a high performance 2D scrollable grid that is able to show thousands of 
items without rendering and binding them all at the same time. Therefore, it 
performs a culling operation to show only the visible ones.

I have analysed the source code for GridView but it has a massive amount of 
work not even taking into consideration the fact it extends flickable. I’m 
trying to make things more simple and I have a working prototype for this but 
now I’m facing some problems.

- While I was able to create the delegate concept, modelData and index 
properties are not available on the delegate. How do you make that magic 
happen? Simple way alternatives.

- Considering I’m not able to replicate the modelData and index mechanism. How 
can I pass a QObject extended type to a property var on Qml. The idea is to 
enable/disable the binding for the visible/not visible items at each update

Instead of explaining all I am doing, you will find the source code here -> 
https://pastebin.com/4cgrpbdX <https://pastebin.com/4cgrpbdX>

Right now, I have a really simple Rectangle delegate on my grid. It has a 
property var model property to which I want to assign my custom type LKClipSlot 
which extends QObject, however, doing:

item->setProperty("model", QVariant(static_cast<QObject*>(slot)));

doesn’t seem to be valid... 

Suggestions?

Thanks,

Regards,

Nuno



_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to