Priority: P1: Critical
Affects Version/s: 4.8.0
Component/s: Core: I/O
Environment:symbian, windows, mac, unix flavours that have d_type as a member of DIRENT
Commits:3864ad09d578210b52e5f58fca2ee8a1144f5be2 (4.8), d71ccb9c13f5f15adc09e47dcef22dc1202f9b33 (5.0)
If a custom file engine is used to make an archive file (e.g tar, zip, app specific format) appear as a directory, this may be broken in 4.8
The reason is that cached information from the filesystem is trusted to determine the filesystem object type.
In 4.7 there was no caching and a QFileInfo was constructed each time, which was responsible for poor performance.
As 4.8 is aware of whether custom file engines are in use or not, this can be fixed while only significantly affecting performance for applications that use them
App level workaround may be possible if the custom file engine takes ownership of the directory containing its mount point and overrides the begin/end/entryList functions.
This only covers the use case of archive files in an application owned directory, not the general case of anywhere in the file system.
|For Gerrit Dashboard: QTBUG-23688|
|13448,4||Fix BC break with QAbstractFileEngine "mount points"||4.8||qt/qt||Status: MERGED||+2||0|
|14275,1||Fix BC break with QAbstractFileEngine "mount points"||4.8.0-symbian||qt/qt||Status: MERGED||+2||0|
|14277,2||Fix BC break with QAbstractFileEngine "mount points"||master||qt/qtbase||Status: MERGED||+2||0|