diff options
Diffstat (limited to 'src/corelib/io/qfsfileengine_p.h')
-rw-r--r-- | src/corelib/io/qfsfileengine_p.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index 3cc58ea993..dfc40e20b6 100644 --- a/src/corelib/io/qfsfileengine_p.h +++ b/src/corelib/io/qfsfileengine_p.h @@ -60,8 +60,12 @@ public: bool isSequential() const override; bool remove() override; bool copy(const QString &newName) override; - bool rename(const QString &newName) override; - bool renameOverwrite(const QString &newName) override; + + bool rename(const QString &newName) override + { return rename_helper(newName, Rename); } + bool renameOverwrite(const QString &newName) override + { return rename_helper(newName, RenameOverwrite); } + bool link(const QString &newName) override; bool mkdir(const QString &dirName, bool createParentDirectories, std::optional<QFile::Permissions> permissions) const override; @@ -76,14 +80,15 @@ public: QString fileName(FileName file) const override; uint ownerId(FileOwner) const override; QString owner(FileOwner) const override; - bool setFileTime(const QDateTime &newDate, FileTime time) override; - QDateTime fileTime(FileTime time) const override; + bool setFileTime(const QDateTime &newDate, QFile::FileTime time) override; + QDateTime fileTime(QFile::FileTime time) const override; void setFileName(const QString &file) override; + void setFileEntry(QFileSystemEntry &&entry); int handle() const override; #ifndef QT_NO_FILESYSTEMITERATOR - Iterator *beginEntryList(QDir::Filters filters, const QStringList &filterNames) override; - Iterator *endEntryList() override; + IteratorUniquePtr beginEntryList(const QString &path, QDir::Filters filters, + const QStringList &filterNames) override; #endif qint64 read(char *data, qint64 maxlen) override; @@ -110,6 +115,10 @@ public: protected: QFSFileEngine(QFSFileEnginePrivate &dd); + +private: + enum RenameMode : int { Rename, RenameOverwrite }; + bool rename_helper(const QString &newName, RenameMode mode); }; class Q_AUTOTEST_EXPORT QFSFileEnginePrivate : public QAbstractFileEnginePrivate @@ -151,6 +160,9 @@ public: #ifndef Q_OS_WIN bool isSequentialFdFh() const; #endif +#ifdef Q_OS_WIN + bool nativeRenameOverwrite(const QFileSystemEntry &newEntry); +#endif uchar *map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags); bool unmap(uchar *ptr); |