[Digikam-devel] New icon view

Marcel Wiesweg marcel.wiesweg at gmx.de
Tue Jun 2 18:45:52 BST 2009


> Another regression:
>
> FilterLED is not working correctly in recursive album mode.
> Lets say I have an album with 5 subalbums.
> There are images with 5-star ratings in 4 of the 5 subalbums. When I set a
> quickfilter for 5-stars and click on the parent album, the LED is red,
> although filter results are shown.

Guess what, I can't reproduce.
Trying to simplify the testcase:
Album A (2)
	- Album B (4)

Album B contains two images with rating and two without. Album A contains two 
images without rating.
Selecting Album B. Set rating filter -> two images left, LED green.
Selecting Album A. -> Same images left, LED green.


>
> ImageFilterModelFilterer::process() seems to be called in a random way
> (have not quite figured out what is causing this). If I filter one single
> album (no subalbums), process() is called twice, sometimes three times,
> sometimes only once, although there should be just one package?
> Or do I misunderstand this?
>
> Well anyone process() runs, then hasOneMatch is set to true, then a second
> process() call comes which sets hasOneMatch to false again (although we are
> still filtering the same images / album).

hasOneMatch is only set to false if filter settings are changed, a refiltering 
is done, or the model is reset.
ImageFilterModelFilterer::process() does not touch hasOneMatch if it is 
already true. It only cares for settings hasOneMatch to true at all, if it is 
still false.
filterMatches is emitted only if the current filtering is completed, that is 
all packages sent out have been received again.

>
> So there is either a race-condition or I don't understand how process() is
> called :-)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/digikam-devel/attachments/20090602/dad20b6a/attachment.html>


More information about the Digikam-devel mailing list