From bdee14297e3e4adc8a3074151d56b2fa7c952bdd Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Fri, 9 Jul 2021 12:42:34 +0200 Subject: [PATCH] [color] Fix vario settings range --- radio/src/gui/colorlcd/model_telemetry.cpp | 31 ++++++++++++++++++---- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/radio/src/gui/colorlcd/model_telemetry.cpp b/radio/src/gui/colorlcd/model_telemetry.cpp index d945293bc..3ae56b644 100644 --- a/radio/src/gui/colorlcd/model_telemetry.cpp +++ b/radio/src/gui/colorlcd/model_telemetry.cpp @@ -552,13 +552,34 @@ void ModelTelemetryPage::build(FormWindow * window, int8_t focusSensorIndex) }); grid.nextLine(); new StaticText(window, grid.getLabelSlot(true), STR_RANGE); - new NumberEdit(window, grid.getFieldSlot(2, 0), -7, 7, GET_SET_WITH_OFFSET(g_model.varioData.min, -10)); - new NumberEdit(window, grid.getFieldSlot(2, 1), -7, 7, GET_SET_WITH_OFFSET(g_model.varioData.max, 10)); + + auto vMin = new NumberEdit(window, grid.getFieldSlot(2, 0), -17, 17, + GET_SET_WITH_OFFSET(g_model.varioData.min, -10)); + vMin->setAvailableHandler( + [](int val) { return val < g_model.varioData.max + 10; }); + + auto vMax = new NumberEdit(window, grid.getFieldSlot(2, 1), -17, 17, + GET_SET_WITH_OFFSET(g_model.varioData.max, 10)); + vMax->setAvailableHandler( + [](int val) { return g_model.varioData.min - 10 < val; }); + grid.nextLine(); new StaticText(window, grid.getLabelSlot(true), STR_CENTER); - new NumberEdit(window, grid.getFieldSlot(3, 0), -7, 7, GET_SET_WITH_OFFSET(g_model.varioData.min, -5), 0, PREC1); - new NumberEdit(window, grid.getFieldSlot(3, 1), -7, 7, GET_SET_WITH_OFFSET(g_model.varioData.max, 5), 0, PREC1); - new Choice(window, grid.getFieldSlot(3, 2), STR_VVARIOCENTER, 0, 1, GET_SET_DEFAULT(g_model.varioData.centerSilent)); + + auto cMin = new NumberEdit( + window, grid.getFieldSlot(3, 0), -15, 15, + GET_SET_WITH_OFFSET(g_model.varioData.centerMin, -5), 0, PREC1); + cMin->setAvailableHandler( + [](int val) { return val < g_model.varioData.centerMax + 5; }); + + auto cMax = new NumberEdit( + window, grid.getFieldSlot(3, 1), -15, 15, + GET_SET_WITH_OFFSET(g_model.varioData.centerMax, 5), 0, PREC1); + cMax->setAvailableHandler( + [](int val) { return g_model.varioData.centerMin - 5 < val; }); + + new Choice(window, grid.getFieldSlot(3, 2), STR_VVARIOCENTER, 0, 1, + GET_SET_DEFAULT(g_model.varioData.centerSilent)); grid.nextLine(); window->setInnerHeight(grid.getWindowHeight());