Review Request 114266: Update the "roles" for items that become visible again after filtering

Commit Hook null at kde.org
Sat Dec 14 10:54:14 GMT 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/114266/#review45671
-----------------------------------------------------------


This review has been submitted with commit 2260d70e21ad8ff49dc62bc096c7e5bbce9f0efe by Frank Reininghaus to branch KDE/4.12.

- Commit Hook


On Dec. 2, 2013, 10:49 p.m., Frank Reininghaus wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/114266/
> -----------------------------------------------------------
> 
> (Updated Dec. 2, 2013, 10:49 p.m.)
> 
> 
> Review request for Dolphin.
> 
> 
> Repository: kde-baseapps
> 
> 
> Description
> -------
> 
> Since Dolphin 4.11, we store not only KFileItems, but also the corresponding ItemData struct for filtered items. This is required for keeping track of the parent-child relationships, and has the nice side effect that the ItemData need not be re-determined when the items are shown again.
> 
> However, this can become a problem if the visible roles or the sort role change while some items are filtered:
> 
> 
> Problem A:
> 
> 1. Open a folder in Details View.
> 2. Press Ctrl+I, add a filter that removes some items.
> 3. Enable the "Permissions" column.
> 4. Clear the filter.
> 5. Note that the previously filtered items have an empty "Permissions" field.
> 
> 
> Problem B (more difficult to reproduce in the GUI, but easily unit-testable):
> 
> 1. Open a large folder in Details View.
> 2. Enable the "Permissions" column ("User" and "Group" will also do, but it is important that there are files for which these fields differ).
> 3. Hide some items with the filter bar.
> 4. Switch to "Sort by Permissions/User/Group".
> 5. Clear the filter.
> 6. Note the incorrect sort order.
> 
> 
> I think that there are no bug reports for these problems yet.
> 
> Problem A is fixed simply by clearing the QHash "values" for the filtered items if the visible roles change. The hash will be re-populated with all requested data as soon as the items are shown again and the data(int) method of the model is called.
> 
> Problem B requires a bit more work - before the items are inserted into the model after filtering, we have to make sure that the sort role "Permissions"/"User"/etc. is present in the hash "values". I think the easiest way to ensure that is to factor out the code that currently does this job for new items in createItemDataList() into a new function, and calling this in insertItems(), because the same treatment is required for the previously filtered files.
> 
> 
> Diffs
> -----
> 
>   dolphin/src/kitemviews/kfileitemmodel.h c57329f 
>   dolphin/src/kitemviews/kfileitemmodel.cpp 4c85775 
>   dolphin/src/tests/kfileitemmodeltest.cpp 62ff4fa 
> 
> Diff: http://git.reviewboard.kde.org/r/114266/diff/
> 
> 
> Testing
> -------
> 
> Fixes the problems for me. Old and new tests pass (and the new tests fail with current KDE/4.12 and master). I have not found any regressions yet.
> 
> 
> Thanks,
> 
> Frank Reininghaus
> 
>

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


More information about the kfm-devel mailing list