summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2021-06-15 12:31:29 +0300
committerKatja Marttila <katja.marttila@qt.io>2021-06-16 14:05:09 +0300
commitbd10266110689199ad86d9d314b342f836c5cade (patch)
tree2935893eda3813da92a82409999fd6eb7ea2ca01
parentb43f06e569a983ae273560f769ec8e6893515750 (diff)
Load control script also when using CLI
Task-number: QTIFW-2268 Change-Id: I61e5f7963a55dcdc25aff171523fe078af309785 Reviewed-by: Arttu Tarkiainen <arttu.tarkiainen@qt.io>
-rw-r--r--src/sdk/commandlineinterface.cpp7
-rw-r--r--src/sdk/installerbase.cpp13
-rw-r--r--src/sdk/sdkapp.h16
3 files changed, 24 insertions, 12 deletions
diff --git a/src/sdk/commandlineinterface.cpp b/src/sdk/commandlineinterface.cpp
index 69aa36c43..165a86c83 100644
--- a/src/sdk/commandlineinterface.cpp
+++ b/src/sdk/commandlineinterface.cpp
@@ -78,6 +78,13 @@ bool CommandLineInterface::initialize()
// quite safe to assume that command is the first positional argument.
m_positionalArguments.removeFirst();
}
+
+ QString ctrlScript = controlScript();
+ if (!ctrlScript.isEmpty()) {
+ m_core->controlScriptEngine()->loadInContext(
+ QLatin1String("Controller"), ctrlScript);
+ qCDebug(QInstaller::lcInstallerInstallLog) << "Loaded control script" << ctrlScript;
+ }
return true;
}
diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp
index 821eb907b..78da6fb3a 100644
--- a/src/sdk/installerbase.cpp
+++ b/src/sdk/installerbase.cpp
@@ -71,18 +71,7 @@ int InstallerBase::run()
f.setItalic(true);
QInstaller::PackageManagerCore::setVirtualComponentsFont(f);
}
- QString controlScript;
- if (m_parser.isSet(CommandLineOptions::scScriptLong)) {
- controlScript = m_parser.value(CommandLineOptions::scScriptLong);
- if (!QFileInfo(controlScript).exists()) {
- qCDebug(QInstaller::lcInstallerInstallLog) << "Script file does not exist.";
- return false;
- }
- } else if (!m_core->settings().controlScript().isEmpty()) {
- controlScript = QLatin1String(":/metadata/installer-config/")
- + m_core->settings().controlScript();
- }
qCDebug(QInstaller::lcInstallerInstallLog) << "Language:" << QLocale().uiLanguages()
.value(0, QLatin1String("No UI language set")).toUtf8().constData();
#ifndef IFW_DISABLE_TRANSLATIONS
@@ -140,7 +129,7 @@ int InstallerBase::run()
//create the wizard GUI
TabController controller(nullptr);
controller.setManager(m_core);
- controller.setControlScript(controlScript);
+ controller.setControlScript(controlScript());
if (m_core->isInstaller())
controller.setGui(new InstallerGui(m_core));
else
diff --git a/src/sdk/sdkapp.h b/src/sdk/sdkapp.h
index 0c6c362bc..7778effbc 100644
--- a/src/sdk/sdkapp.h
+++ b/src/sdk/sdkapp.h
@@ -47,6 +47,7 @@
#include <globals.h>
#include <errors.h>
#include <loggingutils.h>
+#include <scriptengine.h>
#include <QApplication>
#include <QDir>
@@ -492,6 +493,21 @@ public:
}
}
+ QString controlScript()
+ {
+ QString controlScript = QString();
+ if (m_parser.isSet(CommandLineOptions::scScriptLong)) {
+ controlScript = m_parser.value(CommandLineOptions::scScriptLong);
+ if (!QFileInfo(controlScript).exists())
+ qCDebug(QInstaller::lcInstallerInstallLog) << "Script file does not exist.";
+
+ } else if (!m_core->settings().controlScript().isEmpty()) {
+ controlScript = QLatin1String(":/metadata/installer-config/")
+ + m_core->settings().controlScript();
+ }
+ return controlScript;
+ }
+
private:
QList<QByteArray> m_resourceMappings;