summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/componentchecker.cpp
diff options
context:
space:
mode:
authorjkobus <jaroslaw.kobus@theqtcompany.com>2014-12-19 16:07:34 +0100
committerJarek Kobus <jaroslaw.kobus@theqtcompany.com>2015-01-15 16:36:04 +0100
commit735b67dd8b788e8f13e866b8d21d60c3c75baff8 (patch)
treebdacf42787792af862b3b1230c82b927a8b62294 /src/libs/installer/componentchecker.cpp
parent91b5f01dfbb56683d5b1acafd45131e1cf19c5d1 (diff)
Warn whenever (auto)dependencies are not leaf nodes.
Whenever any source or destination node of dependency link or any destination node of autodependency link has children, warn about it. Maintenance tool isn't able to handle such cases properly. Change-Id: Ifaf3fbb7903eb960ab8fd977c4f47b7906900115 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
Diffstat (limited to 'src/libs/installer/componentchecker.cpp')
-rw-r--r--src/libs/installer/componentchecker.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/libs/installer/componentchecker.cpp b/src/libs/installer/componentchecker.cpp
index 6b3e0160d..64ce851a0 100644
--- a/src/libs/installer/componentchecker.cpp
+++ b/src/libs/installer/componentchecker.cpp
@@ -88,6 +88,30 @@ QStringList ComponentChecker::checkComponent(Component *component)
.arg(component->name());
}
}
+ if (component->childCount()) {
+ const QStringList autoDependencies = component->autoDependencies();
+ if (!autoDependencies.isEmpty()) {
+ checkResult << QString::fromLatin1("Component %1 auto depends on other components "
+ "while having children components. This will not work properly.")
+ .arg(component->name());
+ }
+
+ // TODO: search also for components which autodepend on "component"
+ // (something like core->autodependees(component))
+
+ if (!component->dependencies().isEmpty()) {
+ checkResult << QString::fromLatin1("Component %1 depends on other components "
+ "while having children components. This will not work properly.")
+ .arg(component->name());
+ }
+
+ PackageManagerCore *core = component->packageManagerCore();
+ if (!core->dependees(component).isEmpty()) {
+ checkResult << QString::fromLatin1("Other components depend on component %1 "
+ "which has children components. This will not work properly.")
+ .arg(component->name());
+ }
+ }
}
return checkResult;
}