From 488545ca72b7f2a59401a42c2c264f38916e15d1 Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Wed, 17 Apr 2024 15:18:38 +0200 Subject: [PATCH] QFSFileEngine: de-duplicate some code The only difference is the name of the QFileSystemEngine method each one calls. This makes subsequent commits simpler, since now only one function will need to be changed. Change-Id: I1b7d2ceeab0ad98e2ee87b3a64f100ab906f7df5 Reviewed-by: Thiago Macieira --- src/corelib/io/qfsfileengine.cpp | 22 +++++----------------- src/corelib/io/qfsfileengine_p.h | 12 ++++++++++-- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index c9ea8f94f7b..a4d0cc0e4f0 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -990,26 +990,14 @@ bool QFSFileEngine::remove() return ret; } -/*! - \reimp -*/ -bool QFSFileEngine::rename(const QString &newName) +bool QFSFileEngine::rename_helper(const QString &newName, RenameMode mode) { Q_D(QFSFileEngine); + + auto func = mode == Rename ? QFileSystemEngine::renameFile + : QFileSystemEngine::renameOverwriteFile; QSystemError error; - bool ret = QFileSystemEngine::renameFile(d->fileEntry, QFileSystemEntry(newName), error); - if (!ret) - setError(QFile::RenameError, error.toString()); - return ret; -} -/*! - \reimp -*/ -bool QFSFileEngine::renameOverwrite(const QString &newName) -{ - Q_D(QFSFileEngine); - QSystemError error; - bool ret = QFileSystemEngine::renameOverwriteFile(d->fileEntry, QFileSystemEntry(newName), error); + const bool ret = func(d->fileEntry, QFileSystemEntry(newName), error); if (!ret) setError(QFile::RenameError, error.toString()); return ret; diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h index f70507147ab..231ad9020a5 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 permissions) const override; @@ -110,6 +114,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