summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qfile.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-04-28 01:00:26 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-04-28 01:00:26 +0200
commit9f1a1e320c118ec84d389aaf83008bf01521ce6f (patch)
treef46cc4c08e8bb3a7ae9125d8bfe0ae7d6cc2e312 /src/corelib/io/qfile.cpp
parentd6e65ecac5852ed09fbf580b3fab5b21125dfd69 (diff)
parentc9002ab7eec1649d700865eac418f1f5d3b0d1a2 (diff)
Merge remote-tracking branch 'origin/5.12' into 5.13
Diffstat (limited to 'src/corelib/io/qfile.cpp')
-rw-r--r--src/corelib/io/qfile.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/corelib/io/qfile.cpp b/src/corelib/io/qfile.cpp
index ef97d67653..37de4450cc 100644
--- a/src/corelib/io/qfile.cpp
+++ b/src/corelib/io/qfile.cpp
@@ -844,10 +844,16 @@ QFile::copy(const QString &newName)
error = true;
}
}
- if (!error && !out.rename(newName)) {
- error = true;
- close();
- d->setError(QFile::CopyError, tr("Cannot create %1 for output").arg(newName));
+
+ if (!error) {
+ // Sync to disk if possible. Ignore errors (e.g. not supported).
+ d->fileEngine->syncToDisk();
+
+ if (!out.rename(newName)) {
+ error = true;
+ close();
+ d->setError(QFile::CopyError, tr("Cannot create %1 for output").arg(newName));
+ }
}
#ifdef QT_NO_TEMPORARYFILE
if (error)