--- Comment #9 from David Faure <> ---
Thanks for the backtraces. They don't necessarily indicate "hanging in
More likely, KFilePreviewGenerator::Private::dispatchIconUpdateQueue() is
triggering dataChanged for one item at a time, just like in the bug I fixed.

This confirms my suspicion that it's related to previews. I don't mean the side
panel, I mean the icons themselves turning into a preview of the file (e.g. for
images, you see the image in small instead of the generic "this is an image"
icon). To confirm this, you can try again without previews enabled (although
the actual action of disabling previews will be slow until you get my bugfix --
better do that in a small folder before going back to the big folder).

The way to find out if it's hanging in harfbuzz is simple: once you're in gdb,
break KDirModel::itemChanged
and you should see that it does continue, and it will hit itemChanged again,
and again (once per file).
This goes back to the event loop between files though, i.e. it's supposed to be
happening "in the background" while you can still use the dialog. That's
definitely what I see here.

In /usr/bin the issue is: most files don't have an extension, so mimetype
determination has to happen (by reading the contents of the file), and this too
happens delayed (in the background), from the same KFilePreviewGenerator class
(yes, it does more than the name indicate, it does mimetype determination and
previews). So it's likely the same issue, just triggered slightly differently.
I expect it to make the app more busy in fact, given that previews are
generated by a separate process (kioslave) so in theory the app (kdialog here)
should be waiting for the preview to come in (just a little bit).

Anyhow, I'm a bit puzzled because when previews are generated, then yes it's
expected that the view will re-layout one item at a time. It's what happens
here, it's what happens for you... but somehow the user visible behaviour seems
different? Or my machine is too powerful for me to find it slow....

You are receiving this mail because:
You are watching all bug changes.

Reply via email to