maybe fix setting enum (#69)

This commit is contained in:
pdxlocations
2025-01-25 11:30:53 -08:00
committed by GitHub
parent e58340fa65
commit 86463f6f84
+10 -2
View File
@@ -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]