diff options
author | Tim Jenssen <tim.jenssen@digia.com> | 2013-11-06 12:45:23 +0100 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@digia.com> | 2013-11-06 16:51:35 +0100 |
commit | 016cdad413c878be9c669398cd707ff5d1d98255 (patch) | |
tree | 384a45a3ecd01fe5b071aca445dfca9cff59a731 /src/libs/installer/component.cpp | |
parent | 0e63df370ec23e793c0bfb27c469f2606fbf104a (diff) |
Restart on the wizard needs to cleanup component left-overs
- use two different script engine instances
- one which lives from the beginning -> the controlScriptEngine
- the other one which will be reset if there are some new repositories
loaded
- now the core has a pointer to the gui object, but it should only be
used by the script engine so a QObject type should be enough
- engines are deleted as QObject children from the PackageManagerCore
- registered downloaded archives are removed
Change-Id: I60a4a32fb2e409059839ec11b10c57357454f57a
Reviewed-by: Michal Klocek <michal.klocek@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Diffstat (limited to 'src/libs/installer/component.cpp')
-rw-r--r-- | src/libs/installer/component.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/libs/installer/component.cpp b/src/libs/installer/component.cpp index 472f269fc..4fb390040 100644 --- a/src/libs/installer/component.cpp +++ b/src/libs/installer/component.cpp @@ -486,14 +486,12 @@ void Component::loadComponentScript() */ 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'); component.name;").arg(name())); - d->m_scriptContext = scriptEngine->loadInConext(QLatin1String("Component"), fileName, scriptInjection); + d->m_scriptContext = d->scriptEngine()->loadInConext(QLatin1String("Component"), fileName, scriptInjection); emit loaded(); languageChanged(); @@ -506,7 +504,7 @@ void Component::loadComponentScript(const QString &fileName) */ void Component::languageChanged() { - d->m_core->scriptEngine()->callScriptMethod(d->m_scriptContext, QLatin1String("retranslateUi")); + d->scriptEngine()->callScriptMethod(d->m_scriptContext, QLatin1String("retranslateUi")); } /*! @@ -661,7 +659,7 @@ void Component::createOperationsForPath(const QString &path) return; // the script can override this method - if (d->m_core->scriptEngine()->callScriptMethod(d->m_scriptContext, + if (d->scriptEngine()->callScriptMethod(d->m_scriptContext, QLatin1String("createOperationsForPath"), QScriptValueList() << path).isValid()) { return; } @@ -706,7 +704,7 @@ void Component::createOperationsForArchive(const QString &archive) return; // the script can override this method - if (d->m_core->scriptEngine()->callScriptMethod(d->m_scriptContext, + if (d->scriptEngine()->callScriptMethod(d->m_scriptContext, QLatin1String("createOperationsForArchive"), QScriptValueList() << archive).isValid()) { return; } @@ -740,7 +738,7 @@ void Component::createOperationsForArchive(const QString &archive) void Component::beginInstallation() { // the script can override this method - if (d->m_core->scriptEngine()->callScriptMethod(d->m_scriptContext, + if (d->scriptEngine()->callScriptMethod(d->m_scriptContext, QLatin1String("beginInstallation")).isValid()) { return; } @@ -759,7 +757,7 @@ void Component::beginInstallation() void Component::createOperations() { // the script can override this method - if (d->m_core->scriptEngine()->callScriptMethod(d->m_scriptContext, + if (d->scriptEngine()->callScriptMethod(d->m_scriptContext, QLatin1String("createOperations")).isValid()) { d->m_operationsCreated = true; return; @@ -1120,7 +1118,8 @@ void Component::setValidatorCallbackName(const QString &name) bool Component::validatePage() { if (!validatorCallbackName.isEmpty()) - return d->m_core->scriptEngine()->callScriptMethod(d->m_scriptContext, validatorCallbackName).toBool(); + return d->scriptEngine()->callScriptMethod( + d->m_scriptContext, validatorCallbackName).toBool(); return true; } @@ -1200,7 +1199,7 @@ bool Component::isAutoDependOn(const QSet<QString> &componentsToInstall) const if (autoDependOnList.first().compare(QLatin1String("script"), Qt::CaseInsensitive) == 0) { QScriptValue valueFromScript; try { - valueFromScript = d->m_core->scriptEngine()->callScriptMethod(d->m_scriptContext, + valueFromScript = d->scriptEngine()->callScriptMethod(d->m_scriptContext, QLatin1String("isAutoDependOn")); } catch (const Error &error) { MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), @@ -1250,7 +1249,7 @@ bool Component::isDefault() const if (d->m_vars.value(scDefault).compare(QLatin1String("script"), Qt::CaseInsensitive) == 0) { QScriptValue valueFromScript; try { - valueFromScript = d->m_core->scriptEngine()->callScriptMethod(d->m_scriptContext, + valueFromScript = d->scriptEngine()->callScriptMethod(d->m_scriptContext, QLatin1String("isDefault")); } catch (const Error &error) { MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), |