Opened 7 years ago

Closed 7 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:


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 Changed 7 years ago by Dmitry A. Kuminov

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.

comment:2 Changed 7 years ago by Dmitry A. Kuminov

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 Changed 7 years ago by Dmitry A. Kuminov

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 Changed 7 years ago by Dmitry A. Kuminov

Resolution: fixed
Status: newclosed

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.

Note: See TracTickets for help on using tickets.