summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/installer/scriptengine.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libs/installer/scriptengine.cpp b/src/libs/installer/scriptengine.cpp
index 28f91a394..77245784c 100644
--- a/src/libs/installer/scriptengine.cpp
+++ b/src/libs/installer/scriptengine.cpp
@@ -396,7 +396,16 @@ QJSValue ScriptEngine::loadInContext(const QString &context, const QString &file
" else"
" throw \"Missing Component constructor. Please check your script.\";"
"})();").arg(context);
- QJSValue scriptContext = evaluate(scriptContent, fileName);
+ QString copiedFileName = fileName;
+#ifdef Q_OS_WIN
+ // Workaround bug reported in QTBUG-70425 by appending "file://" when passing a filename to
+ // QJSEngine::evaluate() to ensure it sees it as a valid URL when qsTr() is used.
+ if (!copiedFileName.startsWith(QLatin1String("qrc:/")) &&
+ !copiedFileName.startsWith(QLatin1String(":/"))) {
+ copiedFileName = QLatin1String("file://") + fileName;
+ }
+#endif
+ QJSValue scriptContext = evaluate(scriptContent, copiedFileName);
scriptContext.setProperty(QLatin1String("Uuid"), QUuid::createUuid().toString());
if (scriptContext.isError()) {
throw Error(tr("Exception while loading the component script \"%1\": %2").arg(