summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/settings.cpp
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-08-17 18:30:10 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2020-08-25 11:37:30 +0300
commit15cff3e2354f51d702976e704e4202390217c8c6 (patch)
tree0d6c41ff536f8e68eedf9c70315821aeb561e8a7 /src/libs/installer/settings.cpp
parent40c43e4c312c9f1cc4e2e44ac31b4482ccbbc6c0 (diff)
Add support for vendor set image decoration
Add possibility to show an arbitrary number of product related, or other images on PerformInstallationPage. These can be specified in the installer configuration file, using <ProductImages> element with one <Image> child element for each file name. Task-number: QTIFW-1900 Change-Id: I2be727d9189963ef1a79046150111dd8c91153c6 Reviewed-by: Iikka Eklund <iikka.eklund@qt.io> Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer/settings.cpp')
-rw-r--r--src/libs/installer/settings.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp
index 19918c3f9..a8c0eece3 100644
--- a/src/libs/installer/settings.cpp
+++ b/src/libs/installer/settings.cpp
@@ -291,7 +291,7 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix,
<< scAllowSpaceInPath << scAllowNonAsciiCharacters << scDisableAuthorizationFallback
<< scDisableCommandLineInterface
<< scWizardStyle << scStyleSheet << scTitleColor
- << scWizardDefaultWidth << scWizardDefaultHeight << scWizardShowPageList
+ << scWizardDefaultWidth << scWizardDefaultHeight << scWizardShowPageList << scProductImages
<< scRepositorySettingsPageVisible << scTargetConfigurationFile
<< scRemoteRepositories << scTranslations << scUrlQueryString << QLatin1String(scControlScript)
<< scCreateLocalRepository << scInstallActionColumnVisible << scSupportsModify << scAllowUnstableComponents
@@ -316,6 +316,8 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix,
s.setTranslations(readArgumentAttributes(reader, parseMode, QLatin1String("Translation"), true));
} else if (name == scRunProgramArguments) {
s.setRunProgramArguments(readArgumentAttributes(reader, parseMode, QLatin1String("Argument")));
+ } else if (name == scProductImages) {
+ s.setProductImages(readArgumentAttributes(reader, parseMode, QLatin1String("Image")));
} else if (name == scRemoteRepositories) {
s.addDefaultRepositories(readRepositories(reader, true, parseMode));
} else if (name == scRepositoryCategories) {
@@ -471,6 +473,25 @@ bool Settings::wizardShowPageList() const
return d->m_data.value(scWizardShowPageList, true).toBool();
}
+QStringList Settings::productImages() const
+{
+ const QVariant variant = d->m_data.value(scProductImages);
+ QStringList imagePaths;
+ if (variant.canConvert<QStringList>()) {
+ foreach (const QString &imagePath, variant.value<QStringList>()) {
+ QFileInfo(imagePath).isAbsolute()
+ ? imagePaths.append(imagePath)
+ : imagePaths.append(d->m_data.value(scPrefix).toString() + QLatin1Char('/') + imagePath);
+ }
+ }
+ return imagePaths;
+}
+
+void Settings::setProductImages(const QStringList &images)
+{
+ d->m_data.insert(scProductImages, images);
+}
+
QString Settings::installerApplicationIcon() const
{
return d->absolutePathFromKey(scInstallerApplicationIcon, systemIconSuffix());