]> cloud.milkyroute.net Git - dolphin.git/commit
Do not reset expandability when loading previews
authorAkseli Lahtinen <akselmo@akselmo.dev>
Fri, 8 Dec 2023 10:59:19 +0000 (10:59 +0000)
committerAkseli Lahtinen <akselmo@akselmo.dev>
Fri, 8 Dec 2023 10:59:19 +0000 (10:59 +0000)
commitb1f9c2e5c90548f391477fa17889ff8d1abf8f53
tree4797b1b0f1d9afaea69f1fb4551e6dea4455fd50
parent30691235c5acc4c5b30ffc8820d2ef7c55fc632e
Do not reset expandability when loading previews

Fixes a weird bug with the treeview if one has
```
[PreviewSettings]
Plugins=audiothumbnail
```
in their `dolphinrc`. It can be any PreviewSettings plugin, as long as there it at least one.

Check the bug report for more, but in short, the bug is reproducible like this:

```
create folder tree inside a test folder with

mkdir -p 1/A/B/C/D/E/F/G/H/I
mkdir -p 2/A/B/C/D/E/F/G/H/I
mkdir -p 3/A/B/C/D/E/F/G/H/I

make sure you see the test folder, and expand it

expand folder 1, no need to expand all sub folders
expand folder 2
collapse and expand test folder
3 loses its expansion arrow

if all folders are expanded, only 3 keeps its order

if 1 and all its subfolders are expanded, then test is toggled,
folder 2 also loses its expansion arrow
```

Video of the bug:

![Screencast_20231207_112700](/uploads/4fad2a62a5a9a67760fa7faa8e3bec40/Screencast_20231207_112700.webm)

The path to the bug is: `KFileItemModelRolesUpdater::slotPreviewFailed` -> `KFileItemModelRolesUpdater::applyResolvedRoles` -> `KFileItemModelRolesUpdater::rolesData` -> `KFileItemModelRolesUpdater::startDirectorySizeCounting`.

This causes Dolphin with preview plugins enabled trying to count the directories again, and the data gets reset even if there is something there. This then resets the `isExpandable` flag and that breaks the treeview, causing all kinds of issues, like being able to expand non-directories and makes things out of sync.

BUG:477607
src/kitemviews/kfileitemmodelrolesupdater.cpp