diff options
-rw-r--r-- | doc/installerfw.qdoc | 3 | ||||
-rw-r--r-- | src/libs/installer/settings.cpp | 13 | ||||
-rw-r--r-- | tests/auto/installer/settings/data/minimal_config_tag_defaults.xml | 8 | ||||
-rw-r--r-- | tests/auto/installer/settings/settings.qrc | 1 | ||||
-rw-r--r-- | tests/auto/installer/settings/tst_settings.cpp | 13 |
5 files changed, 32 insertions, 6 deletions
diff --git a/doc/installerfw.qdoc b/doc/installerfw.qdoc index 9b23c171d..025bfb431 100644 --- a/doc/installerfw.qdoc +++ b/doc/installerfw.qdoc @@ -222,7 +222,8 @@ \row \li RunProgramDescription \li Text shown next to the check box for running the program after - the installation. Defaults to \gui {Run <Name>}. + the installation. If \gui <RunProgram> is set but no description provided, + the UI will display \gui {Run <Name> now.} instead. \row \li StartMenuDir \li Name of the default program group for the product in the Windows diff --git a/src/libs/installer/settings.cpp b/src/libs/installer/settings.cpp index 80ffc70e7..401b173b2 100644 --- a/src/libs/installer/settings.cpp +++ b/src/libs/installer/settings.cpp @@ -281,17 +281,20 @@ Settings Settings::fromFileAndPrefix(const QString &path, const QString &prefix, s.d->m_data.insert(scIcon, QLatin1String(":/installer")); if (!s.d->m_data.contains(scInstallerApplicationIcon)) s.d->m_data.insert(scInstallerApplicationIcon, s.d->m_data.value(scIcon)); - if (!s.d->m_data.contains(scInstallerWindowIcon)) + if (!s.d->m_data.contains(scInstallerWindowIcon)) { s.d->m_data.insert(scInstallerWindowIcon, QString(s.d->m_data.value(scIcon).toString() + s.systemIconSuffix())); + } if (!s.d->m_data.contains(scRemoveTargetDir)) s.d->m_data.insert(scRemoveTargetDir, scTrue); - if (!s.d->m_data.contains(scMaintenanceToolName)) + if (s.d->m_data.value(scMaintenanceToolName).toString().isEmpty()) s.d->m_data.insert(scMaintenanceToolName, QLatin1String("maintenancetool")); - if (!s.d->m_data.contains(scTargetConfigurationFile)) + if (s.d->m_data.value(scTargetConfigurationFile).toString().isEmpty()) s.d->m_data.insert(scTargetConfigurationFile, QLatin1String("components.xml")); - if (!s.d->m_data.contains(scMaintenanceToolIniFile)) - s.d->m_data.insert(scMaintenanceToolIniFile, QString(s.maintenanceToolName() + QLatin1String(".ini"))); + if (s.d->m_data.value(scMaintenanceToolIniFile).toString().isEmpty()) { + s.d->m_data.insert(scMaintenanceToolIniFile, QString(s.maintenanceToolName() + + QLatin1String(".ini"))); + } if (!s.d->m_data.contains(scDependsOnLocalInstallerBinary)) s.d->m_data.insert(scDependsOnLocalInstallerBinary, false); if (!s.d->m_data.contains(scRepositorySettingsPageVisible)) diff --git a/tests/auto/installer/settings/data/minimal_config_tag_defaults.xml b/tests/auto/installer/settings/data/minimal_config_tag_defaults.xml new file mode 100644 index 000000000..041ce5062 --- /dev/null +++ b/tests/auto/installer/settings/data/minimal_config_tag_defaults.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Installer> + <Name>Your application</Name> + <Version>1.2.3</Version> + <MaintenanceToolName></MaintenanceToolName> + <MaintenanceToolIniFile></MaintenanceToolIniFile> + <TargetConfigurationFile></TargetConfigurationFile> +</Installer> diff --git a/tests/auto/installer/settings/settings.qrc b/tests/auto/installer/settings/settings.qrc index de130ea10..2dbffd927 100644 --- a/tests/auto/installer/settings/settings.qrc +++ b/tests/auto/installer/settings/settings.qrc @@ -6,5 +6,6 @@ <file>data/minimal_config.xml</file> <file>data/tutorial_config.xml</file> <file>data/unknown_element_config.xml</file> + <file>data/minimal_config_tag_defaults.xml</file> </qresource> </RCC> diff --git a/tests/auto/installer/settings/tst_settings.cpp b/tests/auto/installer/settings/tst_settings.cpp index 438816bdc..6704471a2 100644 --- a/tests/auto/installer/settings/tst_settings.cpp +++ b/tests/auto/installer/settings/tst_settings.cpp @@ -20,6 +20,7 @@ private slots: void loadMalformedConfig(); void loadUnknownElementConfigInStrictParseMode(); void loadUnknownElementConfigInRelaxedParseMode(); + void loadMinimalConfigTagDefaults(); }; void tst_Settings::loadTutorialConfig() @@ -156,6 +157,18 @@ void tst_Settings::loadUnknownElementConfigInRelaxedParseMode() } } +void tst_Settings::loadMinimalConfigTagDefaults() +{ + Settings settings = Settings::fromFileAndPrefix(":///data/minimal_config_tag_defaults.xml", + ":///data"); + + // These tags are not mandatory, though need to be set to default values. + QCOMPARE(settings.configurationFileName(), QLatin1String("components.xml")); + + QCOMPARE(settings.maintenanceToolName(), QLatin1String("maintenancetool")); + QCOMPARE(settings.maintenanceToolIniFile(), QLatin1String("maintenancetool.ini")); +} + QTEST_MAIN(tst_Settings) #include "tst_settings.moc" |