summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2020-05-13 10:15:33 +0300
committerKatja Marttila <katja.marttila@qt.io>2020-05-15 13:27:31 +0300
commitf1b4b60f3a4a89ece8e5b292077cdcfd09cc2f50 (patch)
treed56dd2e19adeeac74e8305d3de7fb183af0ea8b0
parent329df4d2f2fb51891a60c5df00d1bb7ddd04277b (diff)
Fix interrupt() call from script
Installer can be interrupted with interrupt() call from script. The interrupt was not correctly handled causing the installer to continue install successfully. Change-Id: I6c211ef985cc1a06445249bde27cdff5678a8ed0 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
-rw-r--r--src/libs/installer/packagemanagercore.cpp4
-rw-r--r--src/libs/installer/packagemanagercore_p.cpp11
2 files changed, 10 insertions, 5 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index bb754f568..6dbfd811b 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -1451,7 +1451,9 @@ bool PackageManagerCore::fetchPackagesTree(const PackagesList &packages, const L
bool success = false;
if (!isUpdater()) {
success = fetchAllPackages(packages, installedPackages);
- if (success && !d->statusCanceledOrFailed() && isPackageManager()) {
+ if (d->statusCanceledOrFailed())
+ return false;
+ if (success && isPackageManager()) {
foreach (Package *const update, packages) {
if (update->data(scEssential, scFalse).toString().toLower() == scTrue) {
const QString name = update->data(scName).toString();
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp
index eeca32857..c3fd07ac4 100644
--- a/src/libs/installer/packagemanagercore_p.cpp
+++ b/src/libs/installer/packagemanagercore_p.cpp
@@ -2510,11 +2510,14 @@ bool PackageManagerCorePrivate::calculateComponentsAndRun()
{
QString htmlOutput;
bool componentsOk = m_core->calculateComponents(&htmlOutput);
- qCDebug(QInstaller::lcInstallerInstallLog).noquote() << htmlToString(htmlOutput);
- if (componentsOk && acceptLicenseAgreements()) {
- return m_core->run();
+ bool success = false;
+ if (statusCanceledOrFailed()) {
+ qCDebug(QInstaller::lcInstallerInstallLog) << "Installation canceled.";
+ } else if (componentsOk && acceptLicenseAgreements()) {
+ qCDebug(QInstaller::lcInstallerInstallLog).noquote() << htmlToString(htmlOutput);
+ success = m_core->run();
}
- return false;
+ return success;
}
bool PackageManagerCorePrivate::acceptLicenseAgreements()