diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qfsfileengine.cpp | 22 | ||||
-rw-r--r-- | 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 c9ea8f94f7..a4d0cc0e4f 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) -{ - Q_D(QFSFileEngine); - 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) +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::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 f70507147a..231ad9020a 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; @@ -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 |