diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-10-07 16:07:01 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-10-21 12:38:44 +0300 |
commit | 270c5dfd9b6c86bec8eaf34d0a2c3d3b945ed5e5 (patch) | |
tree | ee886562d363ea9285aa58361137f600a61c3889 /src/libs/installer/fileutils.cpp | |
parent | 5f038419fb927490328706d1ef73dfbbb6741124 (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/fileutils.cpp')
-rw-r--r-- | src/libs/installer/fileutils.cpp | 32 |
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(); } |