Can someone verify this? Massive folders only show about 1000 entries in KF/Qt 5.2.

Mark markg85 at gmail.com
Sat Oct 19 15:37:41 UTC 2013


Hi,

I think i've found a nasty issue in Qt's views. I can reproduce it,
but i can't pinpoint the exact issue other then explaining the
symptoms.

If someone could follow the steps below and report the findings, that
would be a great help!
You need to have the kdelibs frameworks branch along with Qt 5.2 from
the stable branch. I didn't try this with a Qt 5.1 since frameworks
doesn't compile with that.

Step 1: Create a folder with a lot of filed. Here is the command to do so.
touch {1..50000}.txt
^^ Execute that command in a separate folder please :)

Step 2: Create a Qt 5.2 project. CMake or QMake, doesn't matter. it
needs kdelibs, kio and qt widgets and whatever the extra dependencies
are at this moment. You can use this cmake file for reference
http://pastebin.kde.org/ptq5kgkqx. Change the absolute paths. The code
for you main file: http://pastebin.kde.org/pyjpytxui

Step 3: change the "file:///path/to/massive/folder/" to whatever
folder you used in step 1.

Step 4: Run the code :)

Now you should see a QTreeView with a bunch of entries. However, not
50.000 entries! You get to scroll somewhat and you see about 800 -
1000 entries in total. But certainly nowhere near 50.000!

Now if i print a message every time the entries() signal is emitted
from KIO i only get 4 lines (thus 4 batches, each containing ~200 in
my case). If i remove the view and only have the model enabled in code
then i get hundreds of entries batches till i received them all. Just
as i would expect.

So the observed behavior is when you attach the model to a view, it
somehow kills the entry signals after the fourth. Why, i don't know.
Do you?

I'm expecting this to be an issue in Qt itself, but first posting here
to verify that it isn't something in kdelibs and to make sure that
it's not just my side..

Cheers,
Mark


More information about the Kde-frameworks-devel mailing list