feat(radio): Show model level setting for 'Enabled Features' when altering radio level setting (#4036)

This commit is contained in:
philmoz
2023-10-13 20:05:16 +10:00
committed by GitHub
parent cb16786a74
commit 614ff284db
4 changed files with 99 additions and 72 deletions
+31 -13
View File
@@ -120,10 +120,16 @@ enum MenuRadioSetupItems {
ITEM_RADIO_SETUP_MAX
};
uint8_t viewOptCheckBox(coord_t y, const char* title, uint8_t value, uint8_t attr, event_t event)
uint8_t viewOptCheckBox(coord_t y, const char* title, uint8_t value, uint8_t attr, event_t event, uint8_t modelOption)
{
lcdDrawText(INDENT_WIDTH*2, y, title);
return !editCheckBox(!value, RADIO_SETUP_2ND_COLUMN, y, nullptr, attr, event );
if (modelOption != OVERRIDE_GLOBAL) {
std::string s(STR_MODEL);
s += " - ";
s += STR_ADCFILTERVALUES[modelOption];
lcdDrawText(RADIO_SETUP_2ND_COLUMN, y, s.c_str());
}
return !editCheckBox(!value, RADIO_SETUP_2ND_COLUMN-10, y, nullptr, attr, event );
}
void menuRadioSetup(event_t event)
@@ -207,7 +213,19 @@ void menuRadioSetup(event_t event)
CASE_ROTARY_ENCODER(0) // Invert rotary encoder
LABEL(TX_MODE),
0, // sticks mode
LABEL(ViewOptions), LABEL(RadioMenuTabs), 0, 0, LABEL(ModelMenuTabs), CASE_HELI(0) CASE_FLIGHT_MODES(0) CASE_GVARS(0) 0, 0, 0, CASE_LUA_MODEL_SCRIPTS(0) 0,
LABEL(ViewOptions),
LABEL(RadioMenuTabs),
0,
0,
LABEL(ModelMenuTabs),
CASE_HELI(0)
CASE_FLIGHT_MODES(0)
0,
CASE_GVARS(0)
0,
0,
CASE_LUA_MODEL_SCRIPTS(0)
0,
1 /*to force edit mode*/
});
@@ -700,45 +718,45 @@ void menuRadioSetup(event_t event)
lcdDrawText(INDENT_WIDTH, y, TR_RADIO_MENU_TABS);
break;
case ITEM_VIEW_OPTIONS_GF:
g_eeGeneral.radioGFDisabled = viewOptCheckBox(y, STR_MENUSPECIALFUNCS, g_eeGeneral.radioGFDisabled, attr, event);
g_eeGeneral.radioGFDisabled = viewOptCheckBox(y, STR_MENUSPECIALFUNCS, g_eeGeneral.radioGFDisabled, attr, event, g_model.radioGFDisabled);
break;
case ITEM_VIEW_OPTIONS_TRAINER:
g_eeGeneral.radioTrainerDisabled = viewOptCheckBox(y, STR_MENUTRAINER, g_eeGeneral.radioTrainerDisabled, attr, event);
g_eeGeneral.radioTrainerDisabled = viewOptCheckBox(y, STR_MENUTRAINER, g_eeGeneral.radioTrainerDisabled, attr, event, g_model.radioTrainerDisabled);
break;
case ITEM_VIEW_OPTIONS_MODEL_TAB:
lcdDrawText(INDENT_WIDTH, y, TR_MODEL_MENU_TABS);
break;
#if defined(HELI)
case ITEM_VIEW_OPTIONS_HELI:
g_eeGeneral.modelHeliDisabled = viewOptCheckBox(y, STR_MENUHELISETUP, g_eeGeneral.modelHeliDisabled, attr, event);
g_eeGeneral.modelHeliDisabled = viewOptCheckBox(y, STR_MENUHELISETUP, g_eeGeneral.modelHeliDisabled, attr, event, g_model.modelHeliDisabled);
break;
#endif
#if defined(FLIGHT_MODES)
case ITEM_VIEW_OPTIONS_FM:
g_eeGeneral.modelFMDisabled = viewOptCheckBox(y, STR_MENUFLIGHTMODES, g_eeGeneral.modelFMDisabled, attr, event);
g_eeGeneral.modelFMDisabled = viewOptCheckBox(y, STR_MENUFLIGHTMODES, g_eeGeneral.modelFMDisabled, attr, event, g_model.modelFMDisabled);
break;
#endif
case ITEM_VIEW_OPTIONS_CURVES:
g_eeGeneral.modelCurvesDisabled = viewOptCheckBox(y, STR_MENUCURVES, g_eeGeneral.modelCurvesDisabled, attr, event);
g_eeGeneral.modelCurvesDisabled = viewOptCheckBox(y, STR_MENUCURVES, g_eeGeneral.modelCurvesDisabled, attr, event, g_model.modelCurvesDisabled);
break;
#if defined(GVARS)
case ITEM_VIEW_OPTIONS_GV:
g_model.modelGVDisabled = viewOptCheckBox(y, STR_MENU_GLOBAL_VARS, g_model.modelGVDisabled, attr, event);
g_model.modelGVDisabled = viewOptCheckBox(y, STR_MENU_GLOBAL_VARS, g_model.modelGVDisabled, attr, event, g_model.modelGVDisabled);
break;
#endif
case ITEM_VIEW_OPTIONS_LS:
g_eeGeneral.modelLSDisabled = viewOptCheckBox(y, STR_MENULOGICALSWITCHES, g_eeGeneral.modelLSDisabled, attr, event);
g_eeGeneral.modelLSDisabled = viewOptCheckBox(y, STR_MENULOGICALSWITCHES, g_eeGeneral.modelLSDisabled, attr, event, g_model.modelLSDisabled);
break;
case ITEM_VIEW_OPTIONS_SF:
g_eeGeneral.modelSFDisabled = viewOptCheckBox(y, STR_MENUCUSTOMFUNC, g_eeGeneral.modelSFDisabled, attr, event);
g_eeGeneral.modelSFDisabled = viewOptCheckBox(y, STR_MENUCUSTOMFUNC, g_eeGeneral.modelSFDisabled, attr, event, g_model.modelSFDisabled);
break;
#if defined(LUA_MODEL_SCRIPTS)
case ITEM_VIEW_OPTIONS_CUSTOM_SCRIPTS:
g_eeGeneral.modelCustomScriptsDisabled = viewOptCheckBox(y, STR_MENUCUSTOMSCRIPTS, g_eeGeneral.modelCustomScriptsDisabled, attr, event);
g_eeGeneral.modelCustomScriptsDisabled = viewOptCheckBox(y, STR_MENUCUSTOMSCRIPTS, g_eeGeneral.modelCustomScriptsDisabled, attr, event, g_model.modelCustomScriptsDisabled);
break;
#endif
case ITEM_VIEW_OPTIONS_TELEMETRY:
g_eeGeneral.modelTelemetryDisabled = viewOptCheckBox(y, STR_MENUTELEMETRY, g_eeGeneral.modelTelemetryDisabled, attr, event);
g_eeGeneral.modelTelemetryDisabled = viewOptCheckBox(y, STR_MENUTELEMETRY, g_eeGeneral.modelTelemetryDisabled, attr, event, g_model.modelTelemetryDisabled);
break;
}
}