diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index 3e1c63eba..791e698f6 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -345,7 +345,7 @@ class ModelCategoryPageBody : public FormWindow #endif #if defined(HARDWARE_TOUCH) - bool onTouchEnd(coord_t x, coord_t y) + bool onTouchEnd(coord_t x, coord_t y) override { if(category->size() == 0) addFirstModel(); diff --git a/radio/src/gui/colorlcd/sourcechoice.cpp b/radio/src/gui/colorlcd/sourcechoice.cpp index 2a898af4f..cd0f11d8e 100644 --- a/radio/src/gui/colorlcd/sourcechoice.cpp +++ b/radio/src/gui/colorlcd/sourcechoice.cpp @@ -70,10 +70,7 @@ SourceChoice::SourceChoice(FormGroup *parent, const rect_t &rect, int16_t vmin, menu->setWaitHandler([=]() { int16_t val = getMovedSource(vmin); if (val) { - if (setValue) { - setValue(val); - } - this->fillMenu(menu); + fillMenu(menu, val); } #if defined(AUTOSWITCH) else { @@ -81,8 +78,7 @@ SourceChoice::SourceChoice(FormGroup *parent, const rect_t &rect, int16_t vmin, if (swtch && !IS_SWITCH_MULTIPOS(swtch)) { val = switchToMix(swtch); if (val && (val >= vmin) && (val <= vmax)) { - if (setValue) setValue(val); - this->fillMenu(menu); + fillMenu(menu, val); } } } @@ -101,10 +97,8 @@ SourceChoice::SourceChoice(FormGroup *parent, const rect_t &rect, int16_t vmin, setAvailableHandler([](int v){ return isSourceAvailable(v); }); } -void SourceChoice::fillMenu(Menu *menu, - const std::function &filter) +void SourceChoice::fillMenu(Menu *menu, int16_t value, const FilterFct& filter) { - auto value = getValue(); int count = 0; int current = 0; diff --git a/radio/src/gui/colorlcd/sourcechoice.h b/radio/src/gui/colorlcd/sourcechoice.h index fcd29f9cc..6a964921e 100644 --- a/radio/src/gui/colorlcd/sourcechoice.h +++ b/radio/src/gui/colorlcd/sourcechoice.h @@ -42,8 +42,8 @@ class SourceChoice : public ChoiceEx #endif protected: - void fillMenu(Menu* menu, - const std::function& condition = nullptr); + typedef std::function FilterFct; + void fillMenu(Menu* menu, int16_t value, const FilterFct& condition = nullptr); }; #endif // _SOURCECHOICE_H_ diff --git a/radio/src/gui/colorlcd/switchchoice.cpp b/radio/src/gui/colorlcd/switchchoice.cpp index 4656bac57..c19956817 100644 --- a/radio/src/gui/colorlcd/switchchoice.cpp +++ b/radio/src/gui/colorlcd/switchchoice.cpp @@ -62,8 +62,7 @@ SwitchChoice::SwitchChoice(FormGroup* parent, const rect_t& rect, int vmin, val = swtch; } if (val && (!isValueAvailable || isValueAvailable(val))) { - if (setValue) setValue(val); - this->fillMenu(menu); + fillMenu(menu, val); } } }); @@ -88,9 +87,8 @@ SwitchChoice::SwitchChoice(FormGroup* parent, const rect_t& rect, int vmin, setAvailableHandler(isSwitchAvailableInMixes); } -void SwitchChoice::fillMenu(Menu* menu, std::function filter) +void SwitchChoice::fillMenu(Menu* menu, int16_t value, const FilterFct& filter) { - auto value = getValue(); int count = 0; int current = 0; diff --git a/radio/src/gui/colorlcd/switchchoice.h b/radio/src/gui/colorlcd/switchchoice.h index 7093f4a12..67832bd27 100644 --- a/radio/src/gui/colorlcd/switchchoice.h +++ b/radio/src/gui/colorlcd/switchchoice.h @@ -38,7 +38,8 @@ class SwitchChoice : public ChoiceEx #endif protected: - void fillMenu(Menu* menu, std::function condition = nullptr); + typedef std::function FilterFct; + void fillMenu(Menu* menu, int16_t value, const FilterFct& filter = nullptr); }; #endif // _SWITCHCHOICE_H_ diff --git a/radio/src/thirdparty/libopenui b/radio/src/thirdparty/libopenui index 253bc6a89..a0e72dc0c 160000 --- a/radio/src/thirdparty/libopenui +++ b/radio/src/thirdparty/libopenui @@ -1 +1 @@ -Subproject commit 253bc6a897a21495cd6e722467ff55535a2d8190 +Subproject commit a0e72dc0c28e7a23965d7fb38c93028f9ef721b5