diff options
author | Liang Qi <liang.qi@qt.io> | 2019-09-04 07:03:54 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2019-09-04 07:03:54 +0200 |
commit | 6a36fe904c7183aba8e7f1977ff86303d84ff62b (patch) | |
tree | 6034e7bfdf0d14b72512b36f63d35a936b32e0dc /src/corelib/io/qsavefile.cpp | |
parent | 18088d4706bdd2fefafe7dbb44dc467126f2c795 (diff) | |
parent | db57af5a0d7aa0687a19fef1cd385bee0f26f7b6 (diff) |
Merge remote-tracking branch 'origin/5.13' into 5.14
Conflicts:
src/corelib/codecs/qicucodec.cpp
src/dbus/qdbusserver.cpp
src/gui/painting/qbezier.cpp
src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp
src/plugins/printsupport/cups/qppdprintdevice.cpp
Change-Id: I2703128bb64baf5580fbc2c2061b55b0f0611d2a
Diffstat (limited to 'src/corelib/io/qsavefile.cpp')
-rw-r--r-- | src/corelib/io/qsavefile.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/corelib/io/qsavefile.cpp b/src/corelib/io/qsavefile.cpp index f41e6302a2..0a884a7df9 100644 --- a/src/corelib/io/qsavefile.cpp +++ b/src/corelib/io/qsavefile.cpp @@ -243,9 +243,15 @@ bool QSaveFile::open(OpenMode mode) return false; }; + bool requiresDirectWrite = false; #ifdef Q_OS_WIN // check if it is an Alternate Data Stream - if (d->finalFileName == d->fileName && d->fileName.indexOf(QLatin1Char(':'), 2) > 1) { + requiresDirectWrite = d->finalFileName == d->fileName && d->fileName.indexOf(QLatin1Char(':'), 2) > 1; +#elif defined(Q_OS_ANDROID) + // check if it is a content:// URL + requiresDirectWrite = d->fileName.startsWith(QLatin1String("content://")); +#endif + if (requiresDirectWrite) { // yes, we can't rename onto it... if (d->directWriteFallback) { if (openDirectly()) @@ -254,14 +260,12 @@ bool QSaveFile::open(OpenMode mode) d->fileEngine.reset(); } else { QString msg = - QSaveFile::tr("QSaveFile cannot open '%1' without direct write fallback " - "enabled: path contains an Alternate Data Stream specifier") - .arg(QDir::toNativeSeparators(d->fileName)); + QSaveFile::tr("QSaveFile cannot open '%1' without direct write fallback enabled.") + .arg(QDir::toNativeSeparators(d->fileName)); d->setError(QFileDevice::OpenError, msg); } return false; } -#endif d->fileEngine.reset(new QTemporaryFileEngine(&d->finalFileName, QTemporaryFileEngine::Win32NonShared)); // if the target file exists, we'll copy its permissions below, |