diff options
author | kh1 <karsten.heimrich@nokia.com> | 2011-08-17 14:43:19 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2011-08-17 15:36:38 +0200 |
commit | 9bec2ce6f061f4bb1364da1fcf5fcb4f35f767aa (patch) | |
tree | 29e9bf696d63b2484379924b0c2f8b546b9adcab /installerbuilder/libinstaller/packagemanagercore.cpp | |
parent | fd13e13652f0d1f9b5be59170db5d4f3e08b3fc0 (diff) |
Implement basic dependees function. Update commment.
Change-Id: I81aa563be02a68fa4f7eca8b39bae35e2c9c7377
Reviewed-on: http://codereview.qt.nokia.com/3100
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder/libinstaller/packagemanagercore.cpp')
-rw-r--r-- | installerbuilder/libinstaller/packagemanagercore.cpp | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp index 077510212..2f8572f53 100644 --- a/installerbuilder/libinstaller/packagemanagercore.cpp +++ b/installerbuilder/libinstaller/packagemanagercore.cpp @@ -887,8 +887,34 @@ bool PackageManagerCore::calculateComponentsToInstall() const } /*! + Returns a list of components that dependend on \a component. The list can be empty. Note: Auto + installed dependencies are not resolved. +*/ +QList<Component*> PackageManagerCore::dependees(const Component *_component) const +{ + QList<Component*> dependees; + const QList<Component*> components = availableComponents(); + if (!_component || components.isEmpty()) + return dependees; + + const QLatin1Char dash('-'); + foreach (Component *component, components) { + const QStringList &dependencies = component->dependencies(); + foreach (const QString &dependency, dependencies) { + // the last part is considered to be the version then + const QString name = dependency.contains(dash) ? dependency.section(dash, 0, 0) : dependency; + const QString version = dependency.contains(dash) ? dependency.section(dash, 1) : QString(); + if (componentMatches(_component, name, version)) + dependees.append(component); + } + } + return dependees; +} + +/*! Returns a list of dependencies for \a component. If there's a dependency which cannot be fulfilled, - \a missingComponents will contain the missing components. + \a missingComponents will contain the missing components. Note: Auto installed dependencies are not + resolved. */ QList<Component*> PackageManagerCore::dependencies(const Component *component, QStringList &missingComponents) const { |