From 76077743afdd838739cdf80cacf4c2ce26c3f54c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 3 Aug 2019 15:45:00 +0200 Subject: [PATCH] [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) --- .../packagechooser/PackageChooserViewStep.cpp | 10 ++++++++++ src/modules/packagechooser/PackageModel.cpp | 17 ++++++++--------- src/modules/packagechooser/PackageModel.h | 4 ++-- src/modules/packagechooser/packagechooser.conf | 9 +++++++++ 4 files changed, 29 insertions(+), 11 deletions(-) create mode 100644 src/modules/packagechooser/packagechooser.conf diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp index 9b3c174da..09fa488aa 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.cpp +++ b/src/modules/packagechooser/PackageChooserViewStep.cpp @@ -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 ) { diff --git a/src/modules/packagechooser/PackageModel.cpp b/src/modules/packagechooser/PackageModel.cpp index 3546d9e42..484b4de3b 100644 --- a/src/modules/packagechooser/PackageModel.cpp +++ b/src/modules/packagechooser/PackageModel.cpp @@ -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; } diff --git a/src/modules/packagechooser/PackageModel.h b/src/modules/packagechooser/PackageModel.h index ed5ac4b24..76e43ef44 100644 --- a/src/modules/packagechooser/PackageModel.h +++ b/src/modules/packagechooser/PackageModel.h @@ -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 }; diff --git a/src/modules/packagechooser/packagechooser.conf b/src/modules/packagechooser/packagechooser.conf new file mode 100644 index 000000000..f08d07895 --- /dev/null +++ b/src/modules/packagechooser/packagechooser.conf @@ -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