summaryrefslogtreecommitdiffstats
path: root/src/libs/installer
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-10-07 16:07:01 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-10-21 12:38:44 +0300
commit270c5dfd9b6c86bec8eaf34d0a2c3d3b945ed5e5 (patch)
treeee886562d363ea9285aa58361137f600a61c3889 /src/libs/installer
parent5f038419fb927490328706d1ef73dfbbb6741124 (diff)
Simplify QInstaller::generateTemporaryFileName()
No need to have our own logic for generating unique file name when used with a name template as this is also possible with QTemporaryFile. Change-Id: Ia43e6d7f33e7612cd70851319fbc49fbf373b2db Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer')
-rw-r--r--src/libs/installer/fileutils.cpp32
1 files changed, 11 insertions, 21 deletions
diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp
index 3c9f2ad1c..8c015a1c2 100644
--- a/src/libs/installer/fileutils.cpp
+++ b/src/libs/installer/fileutils.cpp
@@ -454,31 +454,21 @@ void QInstaller::mkpath(const QString &path)
*/
QString QInstaller::generateTemporaryFileName(const QString &templ)
{
- if (templ.isEmpty()) {
- QTemporaryFile f;
- if (!f.open()) {
+ static const QLatin1String staticPart("%1.tmp.XXXXXX");
+
+ QTemporaryFile f;
+ if (!templ.isEmpty())
+ f.setFileTemplate(QString(staticPart).arg(templ));
+
+ if (!f.open()) {
+ if (!templ.isEmpty()) {
+ throw Error(QCoreApplication::translate("QInstaller",
+ "Cannot open temporary file for template %1: %2").arg(templ, f.errorString()));
+ } else {
throw Error(QCoreApplication::translate("QInstaller",
"Cannot open temporary file: %1").arg(f.errorString()));
}
- return f.fileName();
- }
-
- static const QString characters = QLatin1String("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");
- QString suffix;
- for (int i = 0; i < 5; ++i)
- suffix += characters[QRandomGenerator::global()->generate() % characters.length()];
-
- const QString tmp = QLatin1String("%1.tmp.%2.%3");
- int count = 1;
- while (QFile::exists(tmp.arg(templ, suffix).arg(count)))
- ++count;
-
- QFile f(tmp.arg(templ, suffix).arg(count));
- if (!f.open(QIODevice::WriteOnly)) {
- throw Error(QCoreApplication::translate("QInstaller",
- "Cannot open temporary file for template %1: %2").arg(templ, f.errorString()));
}
- f.remove();
return f.fileName();
}