diff options
-rw-r--r-- | src/corelib/io/qfileselector.cpp | 5 | ||||
-rw-r--r-- | tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/corelib/io/qfileselector.cpp b/src/corelib/io/qfileselector.cpp index 1a58da1e18..dd6257a885 100644 --- a/src/corelib/io/qfileselector.cpp +++ b/src/corelib/io/qfileselector.cpp @@ -278,7 +278,10 @@ QString QFileSelectorPrivate::select(const QString &filePath) const Q_Q(const QFileSelector); QFileInfo fi(filePath); - QString ret = selectionHelper(fi.path().isEmpty() ? QString() : fi.path() + QLatin1Char('/'), + QString pathString; + if (auto path = fi.path(); !path.isEmpty()) + pathString = path.endsWith(u'/') ? path : path + u'/'; + QString ret = selectionHelper(pathString, fi.fileName(), q->allSelectors()); if (!ret.isEmpty()) diff --git a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp index d8639b6864..3d79507050 100644 --- a/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp +++ b/tests/auto/corelib/io/qfileselector/tst_qfileselector.cpp @@ -215,6 +215,9 @@ void tst_QFileSelector::urlConvenience_data() strUrlWithFragment = QString("file:") + testWithQueryAndFragment; QTest::newRow("file with query and fragment too") << QUrl(strUrlWithFragment) << (QStringList()) << QUrl(strUrlWithFragment); + // preserve path to root + QTest::newRow("path to root") << QUrl("file:///") << (QStringList()) << QUrl("file:///"); + // http://qt-project.org/images/qtdn/sprites-combined-latest.png is chosen as a representative real world URL // But note that this test is checking that http urls are NOT selected so it shouldn't be checked QUrl testHttpUrl("http://qt-project.org/images/sprites-combined-latest.png"); |