diff options
author | jkobus <jaroslaw.kobus@digia.com> | 2014-11-04 14:43:13 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@theqtcompany.com> | 2014-11-07 13:34:55 +0100 |
commit | a767606df4d16b034c7b42202bad7e7effddab2a (patch) | |
tree | 638bc658e5c4a8c89933b377b64349696264d785 | |
parent | 4fb18d6b48950bf192e0001b9a99196b623c92e5 (diff) |
Check if all dependencies are met just after downloading packages
Change-Id: I4435f7f21987cb9783825f5e6affc72edf33fae2
Reviewed-by: Karsten Heimrich <karsten.heimrich@theqtcompany.com>
Reviewed-by: Niels Weber <niels.weber@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 47016dad5..0f5fb3e2c 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -386,6 +386,21 @@ bool PackageManagerCorePrivate::buildComponentTree(QHash<QString, Component*> &c } std::sort(m_rootComponents.begin(), m_rootComponents.end(), Component::SortingPriorityGreaterThan()); + + storeCheckState(); + + foreach (QInstaller::Component *component, components) + component->setCheckState(Qt::Checked); + + clearInstallerCalculator(); + if (installerCalculator()->appendComponentsToInstall(components.values()) == false) { + MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), QLatin1String("Error"), + tr("Unresolved dependencies"), installerCalculator()->componentsToInstallError()); + return false; + } + + restoreCheckState(); + } catch (const Error &error) { clearAllComponentLists(); emit m_core->finishAllComponentsReset(QList<QInstaller::Component*>()); |