diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-08-17 18:30:10 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-08-25 11:37:30 +0300 |
commit | 15cff3e2354f51d702976e704e4202390217c8c6 (patch) | |
tree | 0d6c41ff536f8e68eedf9c70315821aeb561e8a7 /src/libs/installer/settings.cpp | |
parent | 40c43e4c312c9f1cc4e2e44ac31b4482ccbbc6c0 (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.cpp | 23 |
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()); |