[Digikam-devel] New icon view

Andi Clemens andi.clemens at gmx.net
Tue Jun 2 19:19:41 BST 2009


Marcel,

I just checked it again: Album A in your example has to be empty.
I have an album "1999" for example (which is empty) and in it are subalbums 
like "Ostern" or something like that.

So I guess it is important to have album A empty.

Andi

On Tuesday 02 June 2009 19:45:52 Marcel Wiesweg wrote:
> > 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 :-)




More information about the Digikam-devel mailing list