From d89c32140a0f9b0bd5de113762c28d7861d4a928 Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Wed, 28 Feb 2024 22:53:19 +0200 Subject: [PATCH] QAbstractFileEngineIterator: ensure `m_path` ends with '/' ... when it's first assigned, instead of in currentFilePath(), muck like what QFileSystemIterator does. Change-Id: Id58ddcd6df5ad911fd5a62f1ca386e25626cb781 Reviewed-by: Thiago Macieira --- src/corelib/io/qabstractfileengine.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp index 08692c394cb..1ab51949135 100644 --- a/src/corelib/io/qabstractfileengine.cpp +++ b/src/corelib/io/qabstractfileengine.cpp @@ -19,6 +19,13 @@ QT_BEGIN_NAMESPACE +static QString appendSlashIfNeeded(const QString &path) +{ + if (!path.isEmpty() && !path.endsWith(u'/')) + return QString{path + u'/'}; + return path; +} + /*! \class QAbstractFileEngineHandler \inmodule QtCore @@ -919,7 +926,7 @@ QString QAbstractFileEngineIterator::path() const */ void QAbstractFileEngineIterator::setPath(const QString &path) { - m_path = path; + m_path = appendSlashIfNeeded(path); } /*! @@ -960,15 +967,10 @@ QDir::Filters QAbstractFileEngineIterator::filters() const QString QAbstractFileEngineIterator::currentFilePath() const { QString name = currentFileName(); - if (!name.isNull()) { - QString tmp = path(); - if (!tmp.isEmpty()) { - if (!tmp.endsWith(u'/')) - tmp.append(u'/'); - name.prepend(tmp); - } - } - return name; + if (name.isNull()) + return name; + + return path() + name; } /*!