Fix native QFileDialog initial selection for remote URLs
When using QFileDialog::getOpenFileUrl() with dir set to e.g.
"sftp://foo/bar.cpp" we call q->selectDirectoryUrl("sftp://foo")
followed by q->selectFile("bar.cpp").
Inside QFileDialog::selectFile() we unconditionally convert "bar.cpp"
to an absolute URL and then call d->selectFile_sys("$CWD/bar.cpp")
This then calls platform integration that detects that an absolute URL
is being passed to selectFile() and therefore overrides the initial
directory.
Initially reported as https://bugs.kde.org/show_bug.cgi?id=374913
This is a regression that appeared some time between Qt 5.7.0 and 5.7.1.
I have not had time to bisect this but the only commit that may have
change behavior in that time range appears to be
007f92c6ee.
Change-Id: I6968abe9ed5c5b9de067c453a7e9d2c5cdb3a190
Reviewed-by: Christoph Resch
Reviewed-by: David Faure <david.faure@kdab.com>
bb10
parent
4a7771f206
commit
4cd90a3579
|
|
@ -2830,7 +2830,10 @@ void QFileDialogPrivate::init(const QUrl &directory, const QString &nameFilter,
|
|||
if (!nameFilter.isEmpty())
|
||||
q->setNameFilter(nameFilter);
|
||||
q->setDirectoryUrl(workingDirectory(directory));
|
||||
q->selectFile(initialSelection(directory));
|
||||
if (directory.isLocalFile())
|
||||
q->selectFile(initialSelection(directory));
|
||||
else
|
||||
q->selectUrl(directory);
|
||||
|
||||
#ifndef QT_NO_SETTINGS
|
||||
// Try to restore from the FileDialog settings group; if it fails, fall back
|
||||
|
|
|
|||
Loading…
Reference in New Issue