diff options
author | Katja Marttila <katja.marttila@qt.io> | 2020-05-13 10:15:33 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2020-05-15 13:27:31 +0300 |
commit | f1b4b60f3a4a89ece8e5b292077cdcfd09cc2f50 (patch) | |
tree | d56dd2e19adeeac74e8305d3de7fb183af0ea8b0 | |
parent | 329df4d2f2fb51891a60c5df00d1bb7ddd04277b (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.cpp | 4 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 11 |
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() |