Review Request 114460: Remove even more redundant data from KItemListViewLayouter

Frank Reininghaus frank78ac at googlemail.com
Sun Dec 29 08:49:27 GMT 2013



> On Dec. 22, 2013, 2:32 p.m., Emmanuel Pescosta wrote:
> > dolphin/src/kitemviews/private/kitemlistviewlayouter.cpp, line 623
> > <https://git.reviewboard.kde.org/r/114460/diff/1/?file=224915#file224915line623>
> >
> >     m_itemInfos[mid] -> m_itemInfos.at(mid)

Thanks for your comments!

I will make the "[index] -> .at(index)" change in the new lines in itemRect(int index). In the other places, operator[] was used also before my patch, so the change should better be made in a separate commit (I prefer not to mix different changes in one patch if they can also be made separately).

However, I think that we might be able to remove the ItemInfo struct completely, because its remaining members 'row' and 'column' can be calculated on demand from the index, the number of columns, and (optionally) the "first group indexes".


- Frank


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/114460/#review46043
-----------------------------------------------------------


On Dec. 14, 2013, 6:37 p.m., Frank Reininghaus wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/114460/
> -----------------------------------------------------------
> 
> (Updated Dec. 14, 2013, 6:37 p.m.)
> 
> 
> Review request for Dolphin.
> 
> 
> Repository: kde-baseapps
> 
> 
> Description
> -------
> 
> 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.
> 
> 
> Diffs
> -----
> 
>   dolphin/src/kitemviews/private/kitemlistviewlayouter.h a3b0893 
>   dolphin/src/kitemviews/private/kitemlistviewlayouter.cpp f5f63d5 
> 
> Diff: https://git.reviewboard.kde.org/r/114460/diff/
> 
> 
> Testing
> -------
> 
> Verfified with KSysGuard that the memory consumption is reduced as expected. View layout and scrolling still seem to work OK in all view modes and with grouping enabled or disabled.
> 
> 
> Thanks,
> 
> Frank Reininghaus
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20131229/0ce7e714/attachment.htm>


More information about the kfm-devel mailing list