Skip to content

Commit

Permalink
QAbstractFileEngine: remove beginEntryList(QDir::Filters)
Browse files Browse the repository at this point in the history
It was kept so as not to break compilation of user code (overriding a
function that doesn't exist in the base class). But as Marcus Tillmanns
pointed out in a qtcreator code review, it can't work because
QDirListing calls the virutal
engine->beginEntryList(QDirListing::IteratorFlags).

Removing beginEntryList(QDir::Filters) and getting a compile-timer error
is better than the code failing silently in user code (all sub-classes
of QAbstractFileEngine in qtbase have been already ported).

QDir::entryList() isn't affected because it calls
QAbstractFileEngine::entryList() which has an overload that works with
QDir::Filters.

Pick-to: 6.8
Change-Id: I3cb18402f602ac78a6b29be57e59febb2b9db7c0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
  • Loading branch information
ahmadsamir committed Sep 20, 2024
1 parent c593359 commit 4fecfcc
Show file tree
Hide file tree
Showing 7 changed files with 1 addition and 32 deletions.
10 changes: 0 additions & 10 deletions src/corelib/io/qabstractfileengine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1033,16 +1033,6 @@ QFileInfo QAbstractFileEngineIterator::currentFileInfo() const
\sa QDirListing
*/
QAbstractFileEngine::IteratorUniquePtr
QAbstractFileEngine::beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames)
{
Q_UNUSED(path);
Q_UNUSED(filters);
Q_UNUSED(filterNames);
return {};
}

QAbstractFileEngine::IteratorUniquePtr
QAbstractFileEngine::beginEntryList(const QString &path, QDirListing::IteratorFlags filters,
const QStringList &filterNames)
Expand Down
3 changes: 0 additions & 3 deletions src/corelib/io/qabstractfileengine_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,7 @@ class Q_CORE_EXPORT QAbstractFileEngine
typedef QAbstractFileEngineIterator Iterator;
using IteratorUniquePtr = std::unique_ptr<Iterator>;

virtual IteratorUniquePtr
beginEntryList(const QString &path, QDir::Filters filters, const QStringList &filterNames);
virtual IteratorUniquePtr endEntryList() { return {}; }

virtual IteratorUniquePtr
beginEntryList(const QString &path, QDirListing::IteratorFlags filters,
const QStringList &filterNames);
Expand Down
7 changes: 0 additions & 7 deletions src/corelib/io/qfsfileengine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -792,13 +792,6 @@ qint64 QFSFileEnginePrivate::writeFdFh(const char *data, qint64 len)
/*!
\internal
*/
QAbstractFileEngine::IteratorUniquePtr
QFSFileEngine::beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames)
{
return std::make_unique<QFSFileEngineIterator>(path, filters, filterNames);
}

QAbstractFileEngine::IteratorUniquePtr
QFSFileEngine::beginEntryList(const QString &path, QDirListing::IteratorFlags filters,
const QStringList &filterNames)
Expand Down
2 changes: 0 additions & 2 deletions src/corelib/io/qfsfileengine_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,6 @@ class Q_CORE_EXPORT QFSFileEngine : public QAbstractFileEngine
int handle() const override;

#ifndef QT_NO_FILESYSTEMITERATOR
IteratorUniquePtr beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames) override;
IteratorUniquePtr beginEntryList(const QString &path, QDirListing::IteratorFlags filters,
const QStringList &filterNames) override;
#endif
Expand Down
7 changes: 0 additions & 7 deletions src/corelib/io/qresource.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1585,13 +1585,6 @@ QDateTime QResourceFileEngine::fileTime(QFile::FileTime time) const
/*!
\internal
*/
QAbstractFileEngine::IteratorUniquePtr
QResourceFileEngine::beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames)
{
return std::make_unique<QResourceFileEngineIterator>(path, filters, filterNames);
}

QAbstractFileEngine::IteratorUniquePtr
QResourceFileEngine::beginEntryList(const QString &path, QDirListing::IteratorFlags filters,
const QStringList &filterNames)
Expand Down
2 changes: 0 additions & 2 deletions src/corelib/io/qresource_p.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,6 @@ class QResourceFileEngine : public QAbstractFileEngine

QDateTime fileTime(QFile::FileTime time) const override;

IteratorUniquePtr beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames) override;
IteratorUniquePtr beginEntryList(const QString &path, QDirListing::IteratorFlags filters,
const QStringList &filterNames) override;

Expand Down
2 changes: 1 addition & 1 deletion tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ class EngineWithNoIterator : public QFSFileEngine
{ }

IteratorUniquePtr
beginEntryList(const QString &, QDir::Filters, const QStringList &) override
beginEntryList(const QString &, QDirListing::IteratorFlags, const QStringList &) override
{ return nullptr; }
};

Expand Down

0 comments on commit 4fecfcc

Please sign in to comment.