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

Review request for kdelibs and Christian Mollekopf.


Repository: kdelibs


Description
-------

by using an internal cache of the filtering state.

The tricky part is that filterAcceptsRow() must not use the cache
(too bad, it would be faster), because of the setFilterFixedString()
feature which can change the filtering status of indexes without
KRFPM even being informed (QSFPM has no virtual method, no event...)
So it only ever writes to the cache, but when dataChanged()
or row insertion/removal comes in, we can look into the cache
to find the old state and compare.


Diffs
-----

  kdeui/itemviews/krecursivefilterproxymodel.h 
c16b62186fb9203ff297bd9fd28d9c13a1c8bdc4 
  kdeui/itemviews/krecursivefilterproxymodel.cpp 
efa286ad87ded962b20c8a581b659d1b154ebf3a 
  kdeui/tests/krecursivefilterproxymodeltest.cpp 
3bcb72980730cb22f887ae8fa5fbd91b5609aeb6 

Diff: https://git.reviewboard.kde.org/r/122252/diff/


Testing
-------

Unit tests.

Using kmail (and especially testing the substring filtering in the "move 
dialog", which an earlier version of this patch broke).
Looking at the number of calls to 
Akonadi::FavoriteCollectionsModel::Private::reload() for a single dataChanged() 
signal from the ETM, which went from 10 to 4 (still too many, but the remaining 
problem is elsewhere).


Thanks,

David Faure

Reply via email to