number edit: install call back regardless of _getValue

This commit is contained in:
Raphael Coeffic
2022-08-01 11:22:00 +02:00
parent eb6f0e56cd
commit 9c4a0d78a9
2 changed files with 7 additions and 4 deletions
+6 -3
View File
@@ -139,7 +139,9 @@ class BaseNumberEdit: public FormField
int32_t getValue() const
{
return (editMode && !instantChange) ? currentValue : _getValue();
return (editMode && !instantChange) ? currentValue
: _getValue != nullptr ? _getValue()
: 0;
}
void setEditMode(bool newEditMode) override
@@ -148,10 +150,10 @@ class BaseNumberEdit: public FormField
FormField::setEditMode(newEditMode);
if (!instantChange) {
if (!previousEditMode && newEditMode) {
currentValue = _getValue();
if (_getValue != nullptr) currentValue = _getValue();
}
else if (previousEditMode && !newEditMode) {
_setValue(currentValue);
if (_setValue != nullptr) _setValue(currentValue);
}
}
}
@@ -164,6 +166,7 @@ class BaseNumberEdit: public FormField
virtual void update()
{
if (_getValue == nullptr) return;
auto newValue = _getValue();
if (newValue != currentValue) {
currentValue = newValue;
+1 -1
View File
@@ -49,11 +49,11 @@ NumberEdit::NumberEdit(Window* parent, const rect_t& rect, int vmin, int vmax,
lv_obj_set_scrollbar_mode(lvobj, LV_SCROLLBAR_MODE_OFF);
lv_textarea_set_password_mode(lvobj, false);
lv_textarea_set_one_line(lvobj, true);
lv_obj_add_event_cb(lvobj, numberedit_cb, LV_EVENT_KEY, this);
if (_getValue) {
auto value = _getValue();
this->setValue(value);
lv_obj_add_event_cb(lvobj, numberedit_cb, LV_EVENT_KEY, this);
}
}