summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qtemporaryfile.cpp
diff options
context:
space:
mode:
authorDavid Faure <faure+bluesystems@kde.org>2013-01-14 09:34:08 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-01-14 23:44:15 +0100
commit7e7b65c370207fa849ac0ec69fe9209f08d8f2e3 (patch)
treec3e45fa2fcfe34eb5eefdfe6a70aa32eeaa27851 /src/corelib/io/qtemporaryfile.cpp
parent18c916517f3004d34482c20ed66bf09ec274d385 (diff)
Add renameOverwrite() to QAbstractFileEngine.
QFSFileEngine::rename() on Windows doesn't overwrite the existing destination. Keep that unchanged (it's the desired behavior in QFile::rename), and provide cross-platform rename-overwrite behavior in the new method. This is needed by QSaveFile. Change-Id: I5e753d289d8a53692530a48a1783d62e26169cdc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io/qtemporaryfile.cpp')
-rw-r--r--src/corelib/io/qtemporaryfile.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/corelib/io/qtemporaryfile.cpp b/src/corelib/io/qtemporaryfile.cpp
index a647d21f40..161c64a73b 100644
--- a/src/corelib/io/qtemporaryfile.cpp
+++ b/src/corelib/io/qtemporaryfile.cpp
@@ -242,6 +242,7 @@ public:
bool open(QIODevice::OpenMode flags);
bool remove();
bool rename(const QString &newName);
+ bool renameOverwrite(const QString &newName);
bool close();
bool filePathIsTemplate;
@@ -398,6 +399,12 @@ bool QTemporaryFileEngine::rename(const QString &newName)
return QFSFileEngine::rename(newName);
}
+bool QTemporaryFileEngine::renameOverwrite(const QString &newName)
+{
+ QFSFileEngine::close();
+ return QFSFileEngine::renameOverwrite(newName);
+}
+
bool QTemporaryFileEngine::close()
{
// Don't close the file, just seek to the front.