From 89810d2ec883d1037120b10df4b019dfa942c6af Mon Sep 17 00:00:00 2001 From: philmoz Date: Fri, 12 Jun 2026 12:56:50 +1000 Subject: [PATCH] fix(color): outputs widget may crash when upgrading to 3.0 (#7395) Co-authored-by: Peter Feerick <5500713+pfeerick@users.noreply.github.com> --- radio/src/gui/colorlcd/widgets/outputs.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/radio/src/gui/colorlcd/widgets/outputs.cpp b/radio/src/gui/colorlcd/widgets/outputs.cpp index b9ed51bd3..d0c977a55 100644 --- a/radio/src/gui/colorlcd/widgets/outputs.cpp +++ b/radio/src/gui/colorlcd/widgets/outputs.cpp @@ -283,16 +283,14 @@ class OutputsWidgetFactory : public WidgetFactory const void checkOptions(int screenNum, int zoneNum) const override { auto widgetData = g_model.getWidgetData(screenNum, zoneNum); - if (widgetData && widgetData->options.size() >= 4) { - if (widgetData->options[1].type == WOV_Bool) { - widgetData->options[5] = widgetData->options[4]; - widgetData->options[4] = widgetData->options[3]; - widgetData->options[3] = widgetData->options[2]; - widgetData->options[2] = widgetData->options[1]; - widgetData->options[1].type = WOV_Signed; - widgetData->options[1].value.signedValue = MAX_OUTPUT_CHANNELS; - storageDirty(EE_MODEL); - } + if (widgetData && widgetData->options.size() >= 2 && + widgetData->options.size() < 6 && + widgetData->options[1].type == WOV_Bool) { + WidgetOptionValueTyped v; + v.type = WOV_Signed; + v.value.signedValue = MAX_OUTPUT_CHANNELS; + widgetData->options.insert(widgetData->options.begin() + 1, v); + storageDirty(EE_MODEL); } } };