From 38c3bbeec95cf18683cba7744aa6997401b5c747 Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Wed, 7 Dec 2022 16:40:43 +0200 Subject: [PATCH] Return the QFileInfo::baseName/QDir::dirName() from fileEngine impl Get those values from the file engine instead, this is relevant especially on Android for content uris. Task-number: QTBUG-98974 Change-Id: I65fe4c59e5f1feed0dcf14cc8988b4a40d9d979e Reviewed-by: Volker Hilsheimer (cherry picked from commit f77668ffec48d8aaad7c74069c6f3e770a305ae1) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/io/qdir.cpp | 4 +++- src/corelib/io/qfileinfo.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index f2ed537d982..3e42ad0979c 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -661,7 +661,9 @@ QString QDir::canonicalPath() const QString QDir::dirName() const { Q_D(const QDir); - return d->dirEntry.fileName(); + if (!d_ptr->fileEngine) + return d->dirEntry.fileName(); + return d->fileEngine->fileName(QAbstractFileEngine::BaseName); } diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 963a936d3a2..351fbc3d861 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -783,7 +783,9 @@ QString QFileInfo::baseName() const Q_D(const QFileInfo); if (d->isDefaultConstructed) return ""_L1; - return d->fileEntry.baseName(); + if (!d_ptr->fileEngine) + return d->fileEntry.baseName(); + return QFileSystemEntry(d->fileEngine->fileName(QAbstractFileEngine::BaseName)).baseName(); } /*!