summaryrefslogtreecommitdiffstats
path: root/installerbuilder
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2011-07-29 11:39:34 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-07-29 11:39:34 +0200
commit68ce78e1ba3f97769fc3736446621c216c03498c (patch)
tree537a001dcc844fba037d3a3acf55a3fa8eea5892 /installerbuilder
parente1762868e0e207dafc118095da4d18e2293be6d5 (diff)
activate auto depend on
Diffstat (limited to 'installerbuilder')
-rw-r--r--installerbuilder/libinstaller/component.cpp1
-rw-r--r--installerbuilder/libinstaller/packagemanagercore_p.cpp13
2 files changed, 14 insertions, 0 deletions
diff --git a/installerbuilder/libinstaller/component.cpp b/installerbuilder/libinstaller/component.cpp
index 56b4f6b66..e58a40af1 100644
--- a/installerbuilder/libinstaller/component.cpp
+++ b/installerbuilder/libinstaller/component.cpp
@@ -137,6 +137,7 @@ void Component::loadDataFromPackage(const Package &package)
setValue(scDisplayName, package.data(scDisplayName).toString());
setValue(scDescription, package.data(scDescription).toString());
setValue(scDefault, package.data(scDefault).toString());
+ setValue(scAutoDependOn, package.data(scAutoDependOn).toString());
setValue(scCompressedSize, QString::number(package.compressedSize()));
setValue(scUncompressedSize, QString::number(package.uncompressedSize()));
setValue(scVersion, package.data(scVersion).toString());
diff --git a/installerbuilder/libinstaller/packagemanagercore_p.cpp b/installerbuilder/libinstaller/packagemanagercore_p.cpp
index cccf0e8c7..34e3f2daf 100644
--- a/installerbuilder/libinstaller/packagemanagercore_p.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore_p.cpp
@@ -332,6 +332,19 @@ bool PackageManagerCorePrivate::appendComponentsToInstall(const QList<Component*
foreach (Component* currentComponent, notAppendedComponents) {
allComponentsAdded &= appendComponentToInstall(currentComponent);
}
+ if (allComponentsAdded) {
+ //this means notAppendedComponents are empty, so all regular dependencies are resolved
+ //now we are looking for auto depend on components
+ foreach (Component* currentComponent, m_core->availableComponents()) {
+ if (!currentComponent->isInstalled()
+ && !m_toInstallComponentIds.contains(currentComponent->name())
+ && currentComponent->isAutoDependOn()) {
+ insertInstallReason(currentComponent, QString(
+ tr("component(s) with activated auto depend on ")));
+ appendComponentToInstall(currentComponent);
+ }
+ }
+ }
return allComponentsAdded;
}