From 86463f6f84fd8a9f7daee658dfee542389bde0d4 Mon Sep 17 00:00:00 2001 From: pdxlocations <117498748+pdxlocations@users.noreply.github.com> Date: Sat, 25 Jan 2025 11:30:53 -0800 Subject: [PATCH] maybe fix setting enum (#69) --- settings.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/settings.py b/settings.py index 2114279..595579f 100644 --- a/settings.py +++ b/settings.py @@ -192,8 +192,12 @@ def settings_menu(stdscr, interface): new_value = current_value if new_value is None else [int(item) for item in new_value] elif field.enum_type: # Enum field - enum_options = [v.name for v in field.enum_type.values] - new_value = get_enum_input(enum_options, current_value) + # enum_options = [v.name for v in field.enum_type.values] + # new_value = get_enum_input(enum_options, current_value) + + enum_options = {v.name: v.number for v in field.enum_type.values} + new_value_name = get_enum_input(list(enum_options.keys()), current_value) + new_value = enum_options.get(new_value_name, current_value) elif field.type == 7: # Field type 7 corresponds to FIXED32 new_value = get_fixed32_input(current_value) @@ -216,6 +220,10 @@ def settings_menu(stdscr, interface): # Add the new value to the appropriate level modified_settings[selected_option] = new_value + if field.enum_type: + enum_value_descriptor = field.enum_type.values_by_number.get(new_value) + new_value = enum_value_descriptor.name if enum_value_descriptor else new_value + current_menu[selected_option] = (field, new_value) else: current_menu = current_menu[selected_option]