summaryrefslogtreecommitdiffstats
path: root/installerbuilder
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2011-11-17 12:30:51 +0100
committerTim Jenssen <tim.jenssen@nokia.com>2011-11-21 12:11:27 +0100
commitf5eedc9e48fe03a804a70c16ab61bc3506e5aaf6 (patch)
tree545fca2d91429a62ba2e971171699ae40d6e92e5 /installerbuilder
parent653bac34d7d03d581657ad781e6bdb89713a8a12 (diff)
fix autodependency behaviour
- remove code that autodependency is a real dependency, it was a hack and totaly wrong - introduce addDependency() to be able to add these operating system depend, for example you need vcredist to register Qt Simulator under Windows but not under the other OSs(the wrong autodependency was only a hack to allow this) Change-Id: Iab6adc28d47b42eac1823afe7fe6a8bbfb2b3361 Reviewed-by: Niels Weber <niels.2.weber@nokia.com> Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder')
-rw-r--r--installerbuilder/libinstaller/component.cpp10
-rw-r--r--installerbuilder/libinstaller/component.h1
-rw-r--r--installerbuilder/libinstaller/packagemanagercore_p.cpp19
-rw-r--r--installerbuilder/libinstaller/packagemanagercore_p.h1
4 files changed, 13 insertions, 18 deletions
diff --git a/installerbuilder/libinstaller/component.cpp b/installerbuilder/libinstaller/component.cpp
index 81a41732c..35128073f 100644
--- a/installerbuilder/libinstaller/component.cpp
+++ b/installerbuilder/libinstaller/component.cpp
@@ -923,6 +923,16 @@ void Component::setSelected(bool selected)
d->m_componentName)) << std::endl;
}
+void Component::addDependency(const QString &newDependency)
+{
+ QString oldDependencies = value(scDependencies);
+ if (oldDependencies.isEmpty())
+ setValue(scDependencies, newDependency);
+ else
+ setValue(scDependencies, oldDependencies + QLatin1String(", ") + newDependency);
+}
+
+
/*!
Contains this component dependencies.
Read \ref componentdependencies for details.
diff --git a/installerbuilder/libinstaller/component.h b/installerbuilder/libinstaller/component.h
index c3d23c4e3..2e0d7f281 100644
--- a/installerbuilder/libinstaller/component.h
+++ b/installerbuilder/libinstaller/component.h
@@ -153,6 +153,7 @@ public:
bool removeBeforeUpdate() const;
void setRemoveBeforeUpdate(bool removeBeforeUpdate);
+ Q_INVOKABLE void addDependency(const QString &newDependency);
QStringList dependencies() const;
QStringList autoDependencies() const;
diff --git a/installerbuilder/libinstaller/packagemanagercore_p.cpp b/installerbuilder/libinstaller/packagemanagercore_p.cpp
index e3c1c7754..bc1e83964 100644
--- a/installerbuilder/libinstaller/packagemanagercore_p.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore_p.cpp
@@ -330,20 +330,6 @@ bool PackageManagerCorePrivate::appendComponentsToInstall(const QList<Component*
relevantComponentForAutoDependOn += component->childComponents(true, AllMode);
}
- //build a data structure to be able to use autodependency as normal dependency
- m_autoDependOnDependencies.clear();
- foreach (Component *component, relevantComponentForAutoDependOn) {
- foreach (const QString componentName, component->autoDependencies()) {
- Component *componentWithAutoDependOnInspector = m_core->componentByName(componentName);
- if (componentWithAutoDependOnInspector != 0) {
- QSet<QString> dependencyStringSet = m_autoDependOnDependencies.value(component);
- dependencyStringSet.insert(componentWithAutoDependOnInspector->name());
- m_autoDependOnDependencies.insert(component, dependencyStringSet);
- }
-
- }
- }
-
QList<Component*> notAppendedComponents; // for example components with unresolved dependencies
foreach (Component *component, components){
if (m_toInstallComponentIds.contains(component->name())) {
@@ -356,7 +342,7 @@ bool PackageManagerCorePrivate::appendComponentsToInstall(const QList<Component*
return false;
}
- if (component->dependencies().isEmpty() && m_autoDependOnDependencies.value(component).isEmpty())
+ if (component->dependencies().isEmpty())
realAppendToInstallComponents(component);
else
notAppendedComponents.append(component);
@@ -390,8 +376,7 @@ bool PackageManagerCorePrivate::appendComponentsToInstall(const QList<Component*
bool PackageManagerCorePrivate::appendComponentToInstall(Component *component)
{
- QSet<QString> allDependencies = component->dependencies().toSet()
- + m_autoDependOnDependencies.value(component);
+ QSet<QString> allDependencies = component->dependencies().toSet();
foreach (const QString &dependencyComponentName, allDependencies) {
//componentByName return 0 if dependencyComponentName contains a version which is not available
diff --git a/installerbuilder/libinstaller/packagemanagercore_p.h b/installerbuilder/libinstaller/packagemanagercore_p.h
index 4792c9153..85a1b6cb6 100644
--- a/installerbuilder/libinstaller/packagemanagercore_p.h
+++ b/installerbuilder/libinstaller/packagemanagercore_p.h
@@ -241,7 +241,6 @@ private:
QSet<Component*> m_componentsToUninstall;
QString m_componentsToInstallError;
- QHash<Component*, QSet<QString> > m_autoDependOnDependencies;
private:
// remove once we deprecate isSelected, setSelected etc...