summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/installer/scriptengine.cpp8
-rw-r--r--src/libs/installer/scriptengine.h7
2 files changed, 12 insertions, 3 deletions
diff --git a/src/libs/installer/scriptengine.cpp b/src/libs/installer/scriptengine.cpp
index 6178f467f..9ff8ae75e 100644
--- a/src/libs/installer/scriptengine.cpp
+++ b/src/libs/installer/scriptengine.cpp
@@ -209,6 +209,8 @@ ScriptEngine::ScriptEngine(PackageManagerCore *core)
globalObject().property(QLatin1String("installer"))
.setProperty(QLatin1String("components"), scriptComponentsObject);
+
+ connect(this, SIGNAL(signalHandlerException(QScriptValue)), SLOT(handleException(QScriptValue)));
}
ScriptEngine::~ScriptEngine()
@@ -279,6 +281,12 @@ QScriptValue ScriptEngine::loadInConext(const QString &context, const QString &f
return scriptContext;
}
+void ScriptEngine::handleException(const QScriptValue &value)
+{
+ if (!value.engine())
+ return;
+ throw Error(uncaughtExceptionString(this, tr("Fatal error while evaluating a script.")));
+}
/*!
Tries to call the method with \a name within the script and returns the result. If the method
diff --git a/src/libs/installer/scriptengine.h b/src/libs/installer/scriptengine.h
index 9c7d84fcf..50c50539b 100644
--- a/src/libs/installer/scriptengine.h
+++ b/src/libs/installer/scriptengine.h
@@ -71,11 +71,12 @@ public:
explicit ScriptEngine(PackageManagerCore *core);
~ScriptEngine();
void setGuiQObject(QObject *guiQObject);
- QScriptValue callScriptMethod(const QScriptValue &scriptContext, const QString &name,
- const QScriptValueList &parameters = QScriptValueList()) const;
+ QScriptValue callScriptMethod(const QScriptValue &scriptContext, const QString &methodName,
+ const QScriptValueList &arguments = QScriptValueList()) const;
QScriptValue loadInConext(const QString &context, const QString &fileName, const QString &scriptInjection = QString());
-
+private slots:
+ void handleException(const QScriptValue &value);
private:
QScriptValue generateMessageBoxObject();
QScriptValue generateDesktopServicesObject();