diff options
author | Tim Jenssen <tim.jenssen@digia.com> | 2013-05-17 15:57:24 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@digia.com> | 2013-05-21 12:18:17 +0200 |
commit | db47e1e10b2a09de7656b668bd482781e50f8c38 (patch) | |
tree | 4841f78ccaa7602f27ca2a042893170a58c2a7e0 | |
parent | 8fa4e80bfea4934d196db83dc83e4cdeb91915fc (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.cpp | 4 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 8 |
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 |