Opened 12 years ago
Closed 12 years ago
#284 closed defect (fixed)
Add support for symlinks in QFileDialog
Reported by: | Dmitry A. Kuminov | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Qt 4.7.3 GA2 |
Component: | General | Version: | 4.7.3 |
Severity: | low | Keywords: | |
Cc: |
Description
A bunch of recent checkins (e.g. r1113 and r1114) added support for kLIBC-provided symlinks. However QFileDialog doesn't actually seem to support them on OS/2.
In particluar, you can enter a directory which is a symlink but it will not show you its contents. And the icon for this directory will be wrong (shown like a file, no symlink arrow). Files which are symlinks also don't have proper icons.
Change History (4)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
The above bug is somehow related to the changes I made since the release of 4.7.3 as the release version shows nothing like that.
comment:3 by , 12 years ago
The above problem is fixed in r1116, it was a small bug ("C:/*" would get passed as "C://*" to DosFindFirst which would confuse it).
comment:4 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
The main task is done in r1117 and r1118 (see commit messages for details).
Now QFileDIalog properly shows symlinks to directories as directories and allows to enter them. Symlinks to files are shown with the attributes of the target file rather than the symlink itself (size/timestamp/icon etc).
Given the other fixes, I can say that Qt is now more or less kLIBC-style symlink ready.
Someone following this, please check your Qt apps with the current SVN. I'm almost ready for the release.
While playing with QFileDialog, I found that it doesn't work properly. I.e. if you select a drive from the Computer tree, it only lists the directories that have been already visited during this Qt session.
This is weird. I definitely saw this behavior before and somehow fixed it. The code in QFileDialog is quite complex because it is asynchronous - enumeration of files is done by a separate thread which posts the results to the main thread for displaying. I guess something is broken there.
I wonder what broke it.