summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjkobus <jaroslaw.kobus@digia.com>2014-11-04 14:43:13 +0100
committerJarek Kobus <jaroslaw.kobus@theqtcompany.com>2014-11-07 13:34:55 +0100
commita767606df4d16b034c7b42202bad7e7effddab2a (patch)
tree638bc658e5c4a8c89933b377b64349696264d785
parent4fb18d6b48950bf192e0001b9a99196b623c92e5 (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.cpp15
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*>());