From 86d7637160b4ec77f568ebc34da40b3866957ae9 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sun, 8 Aug 2021 15:22:53 -0700 Subject: [PATCH] Handle GncOptionMultichoiceValue::set_value parameters that don't match the get_value return type. --- libgnucash/app-utils/gnc-option.cpp | 32 ++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/libgnucash/app-utils/gnc-option.cpp b/libgnucash/app-utils/gnc-option.cpp index cebd526ed1..a1051aa6b3 100644 --- a/libgnucash/app-utils/gnc-option.cpp +++ b/libgnucash/app-utils/gnc-option.cpp @@ -117,13 +117,19 @@ GncOption::set_value(ValueType value) (std::is_same_v, RelativeDatePeriod> || std::is_same_v, size_t>))) - option.set_value(value); + option.set_value(value); if constexpr (std::is_same_v, - GncOptionMultichoiceValue> && - std::is_same_v, - GncMultichoiceOptionIndexVec>) - option.set_multiple(value); + GncOptionMultichoiceValue>) + { + if constexpr (std::is_same_v, + GncMultichoiceOptionIndexVec>) + option.set_multiple(value); + else if constexpr (std::is_same_v || + std::is_same_v, std::string> || + std::is_same_v, char*>) + option.set_value(value); + } }, *m_option); } @@ -139,13 +145,19 @@ GncOption::set_default_value(ValueType value) (std::is_same_v, RelativeDatePeriod> || std::is_same_v, size_t>))) - option.set_default_value(value); + option.set_default_value(value); if constexpr (std::is_same_v, - GncOptionMultichoiceValue> && - std::is_same_v, - GncMultichoiceOptionIndexVec>) - option.set_multiple(value); + GncOptionMultichoiceValue>) + { + if constexpr (std::is_same_v, + GncMultichoiceOptionIndexVec>) + option.set_multiple(value); + else if constexpr (std::is_same_v || + std::is_same_v, std::string> || + std::is_same_v, char*>) + option.set_default_value(value); + } }, *m_option); } void