summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@digia.com>2013-05-17 15:57:24 +0200
committerTim Jenssen <tim.jenssen@digia.com>2013-05-21 12:18:17 +0200
commitdb47e1e10b2a09de7656b668bd482781e50f8c38 (patch)
tree4841f78ccaa7602f27ca2a042893170a58c2a7e0
parent8fa4e80bfea4934d196db83dc83e4cdeb91915fc (diff)
fix unknown component value in scripts while updating
- the order of initializing the updatercomponents list was different then the packagemanagercomponents list - now every updatercomponents are inside the list before the scripts are called Change-Id: I2cfa8edb48326071f6976aa9f772afc477088719 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com> Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
-rw-r--r--src/libs/installer/component.cpp4
-rw-r--r--src/libs/installer/packagemanagercore.cpp8
2 files changed, 9 insertions, 3 deletions
diff --git a/src/libs/installer/component.cpp b/src/libs/installer/component.cpp
index a4a16eb44..0ff4d07d6 100644
--- a/src/libs/installer/component.cpp
+++ b/src/libs/installer/component.cpp
@@ -487,8 +487,10 @@ void Component::loadComponentScript(const QString &fileName)
{
ScriptEngine *scriptEngine = d->m_core->scriptEngine();
+ // introduce the component object as javascript value and call the name to check that it
+ // was successful
QString scriptInjection(QString::fromLatin1(
- "var component = installer.componentByName('%1');").arg(name()));
+ "var component = installer.componentByName('%1'); component.name;").arg(name()));
d->m_scriptContext = scriptEngine->loadInConext(QLatin1String("Component"), fileName, scriptInjection);
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 1ab7d0909..99e3087e7 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -2222,14 +2222,18 @@ bool PackageManagerCore::fetchUpdaterPackages(const PackagesList &remotes, const
try {
if (!components.isEmpty()) {
- // load the scripts and append all components w/o parent to the direct list
+ // append all components w/o parent to the direct list
+ foreach (QInstaller::Component *component, components) {
+ appendUpdaterComponent(component);
+ }
+
+ // after everything is set up, load the scripts
foreach (QInstaller::Component *component, components) {
if (d->statusCanceledOrFailed())
return false;
component->loadComponentScript();
component->setCheckState(Qt::Checked);
- appendUpdaterComponent(component);
}
// after everything is set up, check installed components