summaryrefslogtreecommitdiffstats
path: root/installerbuilder/libinstaller/packagemanagercore.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2011-08-17 14:43:19 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-08-17 15:36:38 +0200
commit9bec2ce6f061f4bb1364da1fcf5fcb4f35f767aa (patch)
tree29e9bf696d63b2484379924b0c2f8b546b9adcab /installerbuilder/libinstaller/packagemanagercore.cpp
parentfd13e13652f0d1f9b5be59170db5d4f3e08b3fc0 (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.cpp28
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
{