Improve handling when writing to temporary files

Let QTemporaryFile remove incomplete written file when error occurs.
"XXXXXX" template is not strictly required according to Qt doc.
This commit is contained in:
Chocobo1 2021-09-15 23:17:24 +08:00
parent fa8786e230
commit 9673be17cb
No known key found for this signature in database
GPG key ID: 210D9C873253A68C

View file

@ -46,14 +46,13 @@ namespace
if (!filePath.isEmpty())
return Utils::IO::saveToFile(filePath, replyData).has_value();
QTemporaryFile tmpfile {Utils::Fs::tempPath() + "XXXXXX"};
tmpfile.setAutoRemove(false);
if (!tmpfile.open())
QTemporaryFile file {Utils::Fs::tempPath()};
if (!file.open() || (file.write(replyData) != replyData.length()) || !file.flush())
return false;
filePath = tmpfile.fileName();
return (tmpfile.write(replyData) == replyData.length());
file.setAutoRemove(false);
filePath = file.fileName();
return true;
}
}