QFileDialog: strange different behaviour of AnyFile and ExistingFile
Consider this dialog (using Qt 4.8):
If I call such a dialogue, it shows the contents of my home directory (say, '/home/wl').
However, if I replace 'ExistingFile' with 'AnyFile', the dialog shows the contents of '/home', and the directory 'wl' is selected.
Why is this so? I would expect exactly the same behaviour instead, and the documentation of QFileDialog doesn't mention a difference.
Interestingly, the static functions 'getOpenFileName' and 'getSaveFileName' do behave the same w.r.t. 'homePath'.
According to Qt documentation, the two functions aren't the same, read carefully the subtle differentations:
" QFileDialog dialog(this);
In the above example, the mode of the file dialog is set to AnyFile, meaning that the user can select any file, or even specify a file that doesn't exist . This mode is useful for creating a "Save As" file dialog. Use ExistingFile if the user must select an existing file , or Directory if only a directory may be selected . See the QFileDialog::FileMode enum for the complete list of modes."
I'm fully aware of the difference, thanks. However, the Qt documentation doesn't explain why the file dialog starts one level higher (namely in '/home') for AnyFile compared to ExistingFile (which starts in '/home/wl') – with the same start directory argument. This is completely illogical.
BTW, I'm experiencing this on a GNU/Linux box.
I too have the same issue. Qt 4.8.4 Linux Fedora16
Setting the directory is not enough for QFileDialog with AnyFiles flag. It could mean you want to create a new directory or save your data in existing one. If you want to get inside the given directory you must set a file name to give QFIleDialog a hint about what you really want. Thus, the following code will show the contents of the the directory you've specified (i.e. /home/wl)