fix(colorlcd): Show/hide 'Delete All' button on the telemetry page based on sensor count change (#3631)
This commit is contained in:
@@ -827,6 +827,13 @@ void ModelTelemetryPage::buildSensorList(int8_t focusSensorIndex)
|
||||
else
|
||||
lv_group_focus_obj(discover->getLvObj());
|
||||
}
|
||||
|
||||
uint8_t sensorsCount = getTelemetrySensorsCount();
|
||||
if (sensorsCount > 0) {
|
||||
lv_obj_clear_flag(deleteAll->getLvObj(), LV_OBJ_FLAG_HIDDEN);
|
||||
} else {
|
||||
lv_obj_add_flag(deleteAll->getLvObj(), LV_OBJ_FLAG_HIDDEN);
|
||||
}
|
||||
}
|
||||
|
||||
void ModelTelemetryPage::build(FormWindow * window)
|
||||
@@ -873,13 +880,11 @@ void ModelTelemetryPage::build(FormWindow * window)
|
||||
});
|
||||
lv_obj_set_grid_cell(b->getLvObj(), LV_GRID_ALIGN_STRETCH, 1, 1, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
|
||||
uint8_t sensorsCount = getTelemetrySensorsCount();
|
||||
if (sensorsCount > 0) {
|
||||
#if TWOCOLBUTTONS
|
||||
line = window->newLine(&grid4);
|
||||
line = window->newLine(&grid4);
|
||||
#endif
|
||||
// Delete all sensors button
|
||||
b = new TextButton(line, rect_t{}, STR_DELETE_ALL_SENSORS,
|
||||
// Delete all sensors button
|
||||
deleteAll = new TextButton(line, rect_t{}, STR_DELETE_ALL_SENSORS,
|
||||
[=]() -> uint8_t {
|
||||
new ConfirmDialog(window, STR_DELETE_ALL_SENSORS, STR_CONFIRMDELETE, [=]() {
|
||||
for (int i = 0; i < MAX_TELEMETRY_SENSORS; i++) {
|
||||
@@ -889,12 +894,11 @@ void ModelTelemetryPage::build(FormWindow * window)
|
||||
return 0;
|
||||
});
|
||||
#if TWOCOLBUTTONS
|
||||
b->setWidth((LCD_W - 16) / 2);
|
||||
lv_obj_set_grid_cell(b->getLvObj(), LV_GRID_ALIGN_CENTER, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
deleteAll->setWidth((LCD_W - 16) / 2);
|
||||
lv_obj_set_grid_cell(deleteAll->getLvObj(), LV_GRID_ALIGN_CENTER, 0, 2, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
#else
|
||||
lv_obj_set_grid_cell(b->getLvObj(), LV_GRID_ALIGN_STRETCH, 2, 1, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
lv_obj_set_grid_cell(deleteAll->getLvObj(), LV_GRID_ALIGN_STRETCH, 2, 1, LV_GRID_ALIGN_CENTER, 0, 1);
|
||||
#endif
|
||||
}
|
||||
|
||||
FlexGridLayout grid(col_dsc, row_dsc, 2);
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ class ModelTelemetryPage: public PageTab {
|
||||
FormWindow* window = nullptr;
|
||||
FormWindow* sensorWindow = nullptr;
|
||||
TextButton* discover = nullptr;
|
||||
TextButton* deleteAll = nullptr;
|
||||
|
||||
void editSensor(FormWindow * window, uint8_t index);
|
||||
void rebuild(FormWindow * window, int8_t focusSensorIndex=-1);
|
||||
|
||||
Reference in New Issue
Block a user