[packagechooser] Add configuration setting for selection mode

- Add a *mode* key to the configuration file
 - Change some names around to be more consistent (not user-visible)
main
Adriaan de Groot 5 years ago
parent fb3204262c
commit 76077743af

@ -150,6 +150,16 @@ void
PackageChooserViewStep::setConfigurationMap( const QVariantMap& configurationMap )
{
// TODO: use the configurationMap
QString mode = CalamaresUtils::getString( configurationMap, "mode" );
bool ok = false;
if ( !mode.isEmpty() )
{
m_mode = roleNames().find( mode, ok );
}
if ( !ok )
{
m_mode = PackageChooserMode::Required;
}
if ( !m_model )
{

@ -25,17 +25,16 @@ roleNames()
{
static const NamedEnumTable< PackageChooserMode > names {
{ "optional", PackageChooserMode::Optional },
{ "exclusive", PackageChooserMode::Exclusive },
{ "multiple", PackageChooserMode::Multiple },
{ "requiredmultiple",
PackageChooserMode::RequiredMultiple },
{ "required", PackageChooserMode::Required },
{ "optionalmultiple", PackageChooserMode::OptionalMultiple },
{ "requiredmultiple", PackageChooserMode::RequiredMultiple },
// and a bunch of aliases
{ "zero-or-one", PackageChooserMode::Optional },
{ "radio", PackageChooserMode::Exclusive },
{ "one", PackageChooserMode::Exclusive },
{ "set", PackageChooserMode::Multiple },
{ "zero-or-more", PackageChooserMode::Multiple },
{ "required", PackageChooserMode::RequiredMultiple },
{ "radio", PackageChooserMode::Required },
{ "one", PackageChooserMode::Required },
{ "set", PackageChooserMode::OptionalMultiple },
{ "zero-or-more", PackageChooserMode::OptionalMultiple },
{ "multiple", PackageChooserMode::RequiredMultiple },
{ "one-or-more", PackageChooserMode::RequiredMultiple } };
return names;
}

@ -29,8 +29,8 @@
enum class PackageChooserMode
{
Optional, // zero or one
Exclusive, // exactly one
Multiple, // zero or more
Required, // exactly one
OptionalMultiple, // zero or more
RequiredMultiple // one or more
};

@ -0,0 +1,9 @@
# Configuration for the low-density software chooser
---
# Software selection mode, to set whether the software packages
# can be chosen singly, or multiply.
#
# Possible modes are "optional", "required" (for zero or one)
# or "optionalmultiple", "requiredmultiple" (for zero-or-more
# or one-or-more).
mode: required
Loading…
Cancel
Save