summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/installerfw.qdoc3
-rw-r--r--src/libs/installer/settings.cpp13
-rw-r--r--tests/auto/installer/settings/data/minimal_config_tag_defaults.xml8
-rw-r--r--tests/auto/installer/settings/settings.qrc1
-rw-r--r--tests/auto/installer/settings/tst_settings.cpp13
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"