From 7b24018336bb2228b22d70db58a6a6183a3ec8c1 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Mon, 19 Jul 2021 09:29:27 +0200 Subject: [PATCH] [color] Fix MPM option title==nullptr --- radio/src/gui/colorlcd/model_setup.cpp | 105 ++++++++++++++----------- 1 file changed, 58 insertions(+), 47 deletions(-) diff --git a/radio/src/gui/colorlcd/model_setup.cpp b/radio/src/gui/colorlcd/model_setup.cpp index 3eb1b2286..c46aae3e3 100644 --- a/radio/src/gui/colorlcd/model_setup.cpp +++ b/radio/src/gui/colorlcd/model_setup.cpp @@ -688,57 +688,68 @@ class ModuleWindow : public FormGroup { if (MULTIMODULE_PROTOCOL_KNOWN(moduleIdx)) { // Multi optional feature row const char *title = getMultiOptionTitle(moduleIdx); - grid.nextLine(); - new StaticText(this, grid.getLabelSlot(true), title); + if (title != nullptr) { + grid.nextLine(); + new StaticText(this, grid.getLabelSlot(true), title); - //int optionValue = g_model.moduleData[moduleIdx].multi.optionValue; - int8_t min, max; - getMultiOptionValues(multi_proto, min, max); + // int optionValue = + // g_model.moduleData[moduleIdx].multi.optionValue; + int8_t min, max; + getMultiOptionValues(multi_proto, min, max); - - if (title == STR_MULTI_RFPOWER) { - new Choice(this, grid.getFieldSlot(2, 0), STR_MULTI_POWER, 0, 15, - GET_SET_DEFAULT(g_model.moduleData[moduleIdx].multi.optionValue)); - } else if (title == STR_MULTI_TELEMETRY) { - new Choice(this, grid.getFieldSlot(2, 0), STR_MULTI_TELEMETRY_MODE, min, max, - GET_SET_DEFAULT(g_model.moduleData[moduleIdx].multi.optionValue)); - } else if (title == STR_MULTI_WBUS) { - new Choice(this, grid.getFieldSlot(2, 0), STR_MULTI_WBUS_MODE, 0, 1, - GET_SET_DEFAULT(g_model.moduleData[moduleIdx].multi.optionValue)); - } else if (multi_proto == MODULE_SUBTYPE_MULTI_FS_AFHDS2A) { - auto edit = new NumberEdit( - this, grid.getFieldSlot(2, 0), 50, 400, - GET_DEFAULT( - 50 + 5 * g_model.moduleData[moduleIdx].multi.optionValue), - SET_VALUE(g_model.moduleData[moduleIdx].multi.optionValue, - (newValue - 50) / 5)); - edit->setStep(5); - } else if (multi_proto == MODULE_SUBTYPE_MULTI_DSM2) { - new CheckBox( - this, grid.getFieldSlot(2, 0), - [=]() { - return g_model.moduleData[moduleIdx].multi.optionValue & 0x01; - }, - [=](int16_t newValue) { - g_model.moduleData[moduleIdx].multi.optionValue = - (g_model.moduleData[moduleIdx].multi.optionValue & 0xFE) + - newValue; - }); - } else { - if (min == 0 && max == 1) { - new CheckBox(this, grid.getFieldSlot(2, 0), - GET_SET_DEFAULT(g_model.moduleData[moduleIdx].multi.optionValue)); + if (title == STR_MULTI_RFPOWER) { + new Choice(this, grid.getFieldSlot(2, 0), STR_MULTI_POWER, 0, 15, + GET_SET_DEFAULT( + g_model.moduleData[moduleIdx].multi.optionValue)); + } else if (title == STR_MULTI_TELEMETRY) { + new Choice(this, grid.getFieldSlot(2, 0), + STR_MULTI_TELEMETRY_MODE, min, max, + GET_SET_DEFAULT( + g_model.moduleData[moduleIdx].multi.optionValue)); + } else if (title == STR_MULTI_WBUS) { + new Choice(this, grid.getFieldSlot(2, 0), STR_MULTI_WBUS_MODE, 0, + 1, + GET_SET_DEFAULT( + g_model.moduleData[moduleIdx].multi.optionValue)); + } else if (multi_proto == MODULE_SUBTYPE_MULTI_FS_AFHDS2A) { + auto edit = new NumberEdit( + this, grid.getFieldSlot(2, 0), 50, 400, + GET_DEFAULT( + 50 + 5 * g_model.moduleData[moduleIdx].multi.optionValue), + SET_VALUE(g_model.moduleData[moduleIdx].multi.optionValue, + (newValue - 50) / 5)); + edit->setStep(5); + } else if (multi_proto == MODULE_SUBTYPE_MULTI_DSM2) { + new CheckBox( + this, grid.getFieldSlot(2, 0), + [=]() { + return g_model.moduleData[moduleIdx].multi.optionValue & + 0x01; + }, + [=](int16_t newValue) { + g_model.moduleData[moduleIdx].multi.optionValue = + (g_model.moduleData[moduleIdx].multi.optionValue & + 0xFE) + + newValue; + }); } else { - new NumberEdit( - this, grid.getFieldSlot(2, 0), -128, 127, - GET_SET_DEFAULT( - g_model.moduleData[moduleIdx].multi.optionValue)); + if (min == 0 && max == 1) { + new CheckBox( + this, grid.getFieldSlot(2, 0), + GET_SET_DEFAULT( + g_model.moduleData[moduleIdx].multi.optionValue)); + } else { + new NumberEdit( + this, grid.getFieldSlot(2, 0), -128, 127, + GET_SET_DEFAULT( + g_model.moduleData[moduleIdx].multi.optionValue)); - // Show RSSI next to RF Freq Fine Tune - if (getMultiOptionTitle(moduleIdx) == STR_MULTI_RFTUNE) { - new DynamicNumber( - this, grid.getFieldSlot(2, 1), - [] { return (int)TELEMETRY_RSSI(); }, 0, "RSSI: ", " db"); + // Show RSSI next to RF Freq Fine Tune + if (title == STR_MULTI_RFTUNE) { + new DynamicNumber( + this, grid.getFieldSlot(2, 1), + [] { return (int)TELEMETRY_RSSI(); }, 0, "RSSI: ", " db"); + } } } }