mirror of
https://invent.kde.org/system/dolphin
synced 2024-07-07 10:51:45 +00:00
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
This commit is contained in:
parent
30691235c5
commit
b1f9c2e5c9
|
@ -1306,8 +1306,6 @@ void KFileItemModelRolesUpdater::startDirectorySizeCounting(const KFileItem &ite
|
||||||
url = QUrl::fromLocalFile(item.localPath());
|
url = QUrl::fromLocalFile(item.localPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
data.insert("isExpandable", false);
|
|
||||||
data.insert("count", 0);
|
|
||||||
data.insert("size", -2); // invalid size, -1 means size unknown
|
data.insert("size", -2); // invalid size, -1 means size unknown
|
||||||
|
|
||||||
disconnect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged);
|
disconnect(m_model, &KFileItemModel::itemsChanged, this, &KFileItemModelRolesUpdater::slotItemsChanged);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user