[Digikam-devel] [Bug 155097] performance problems with recursive view and filtering

Andi Clemens andi.clemens at gmx.net
Wed Sep 3 11:05:39 BST 2008


http://bugs.kde.org/show_bug.cgi?id=155097





--- Comment #8 from Andi Clemens <andi clemens gmx net>  2008-09-03 12:05:36 ---
(In reply to comment #6)
> Well, I do know that deleting the search term in one move is possible,
> and that's what I would normally use! However, if I do so I get the 3000 images
> out of which the "Moon" would only be a few; and it is precisely
> this cutting down from many images to few which takes too long.

Well I tested it, but even your solution "SunMoon" and then remove "Sun" is not
faster, it doesn't seem to filter on the already filtered view but on the whole
image list.

If I create a search (simple or advanced) with the same criteria, it is 10times
faster (sure, we ask the db directly). So maybe this is the only solution here.
We need to do quick-search also with db query. But how?
Since an album is selected, this could be the first search criteria. We already
can do recursive album search in KDE3 and KDE4 in the search dialog, so
defining a SQL query shouldn't be a problem.
And than we need to add the quick-filter categories to it... maybe we can just
adopt the "simple search" algorithm for the quick-filter?
A problem for sure might also be that matchFilter is called for every single
item, not for just the whole imagelist. So we might have 3000 methods calls for
3000 images instead of just one, also we check all the time if any filters are
set, but we really need to do this once, not for every single image. I moved
this portion of code into slotFilterItems now and it is a little bit faster,
but still not satisfying.
Also increasing the timer from 100ms to 500ms helped a little, so it doesn't
filter on nearly every keystroke.
I will try to implement an SQL solution if it is not too time consuming, in
general this should be possible.

Andi


-- 
Configure bugmail: http://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Digikam-devel mailing list