]> cloud.milkyroute.net Git - dolphin.git/commit
Update the roles for filtered items if necessary
authorFrank Reininghaus <frank78ac@googlemail.com>
Sat, 14 Dec 2013 10:51:07 +0000 (11:51 +0100)
committerFrank Reininghaus <frank78ac@googlemail.com>
Sat, 14 Dec 2013 10:51:07 +0000 (11:51 +0100)
commit8210d5e472a2bff9f1a1f16b0740df25822b5362
tree30cb7478f6e88a36e03c70faadcb7e77d3f181db
parentf3537f5b5fb0fd107a2e299aaeca3524cf1dd792
Update the roles for filtered items if necessary

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.

This is fixed by is fixed 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.

Moreover, 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". This is achieved by factoring 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.

BUG: 328791
FIXED-IN: 4.12.1
REVIEW: 114266
src/kitemviews/kfileitemmodel.cpp
src/kitemviews/kfileitemmodel.h
src/tests/kfileitemmodeltest.cpp