mirror of
https://github.com/pdxlocations/contact.git
synced 2026-05-10 07:14:26 +02:00
maybe fix setting enum (#69)
This commit is contained in:
+10
-2
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user