After https://git.reviewboard.kde.org/r/113487/, KItemListViewLayouter still stores quite a bit of redundant data.
For every item, we store the coordinates of its top-left corner in a QPointF 'pos' in the ItemInfo struct. This requires
2 * "number of items" doubles.
However, pos.x is the same for all items in one column, and pos.y is the same for all items in a row. Therefore, some memory can be saved by removing the 'pos' member, and adding two QVector<qreal>
m_rowOffsets and m_columnOffsets
instead. This reduces the memory requirement to
"number of rows + number of columns" doubles, which is at least 50% less.
|