diff options
author | Katja Marttila <katja.marttila@qt.io> | 2019-11-08 08:03:57 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2019-11-13 05:31:52 +0000 |
commit | 8053f11af1462f848d1b004500435d6af38827e7 (patch) | |
tree | f0c0e19c9119abe25007f8cb9c399aff11a2dde9 | |
parent | f667bf73d0e38b4970d6b643b93109f7b318563d (diff) |
Fix file deletion when canceling installation
Task-number: QTIFW-1466
Change-Id: I2b9f000cddc63e9eccefb3d86f93ab05a5631581
Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
-rw-r--r-- | src/libs/installer/extractarchiveoperation.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/libs/installer/extractarchiveoperation.cpp b/src/libs/installer/extractarchiveoperation.cpp index 1c3e1b78a..e790920d1 100644 --- a/src/libs/installer/extractarchiveoperation.cpp +++ b/src/libs/installer/extractarchiveoperation.cpp @@ -150,18 +150,18 @@ bool ExtractArchiveOperation::undoOperation() startUndoProcess(files); } else { const QString filePath = value(QLatin1String("files")).toString(); - QString target = QCoreApplication::applicationDirPath(); + QString targetDir = arguments().at(1); // Does not change target on non macOS platforms. - if (QInstaller::isInBundle(target, &target)) - target = QDir::cleanPath(target + QLatin1String("/..")); - QString fileName = replacePath(filePath, QLatin1String(scRelocatable), target); + if (QInstaller::isInBundle(targetDir, &targetDir)) + targetDir = QDir::cleanPath(targetDir + QLatin1String("/..")); + QString fileName = replacePath(filePath, QLatin1String(scRelocatable), targetDir); QFile file(fileName); if (file.open(QIODevice::ReadOnly)) { QDataStream in(&file); in >> files; for (int i = 0; i < files.count(); ++i) - files[i] = replacePath(files.at(i), QLatin1String(scRelocatable), target); + files[i] = replacePath(files.at(i), QLatin1String(scRelocatable), targetDir); startUndoProcess(files); QFileInfo fileInfo(file); file.remove(); |