Fix save dialog logic

This commit is contained in:
pdxlocations
2025-08-24 00:30:53 -07:00
parent 12bc87dd46
commit 3f12eca2ad

View File

@@ -183,6 +183,7 @@ def settings_menu(stdscr: object, interface: object) -> None:
menu_state.need_redraw = True
menu_state.show_save_option = False
new_value_name = None
while True:
if menu_state.need_redraw:
@@ -515,8 +516,16 @@ def settings_menu(stdscr: object, interface: object) -> None:
for key in menu_state.menu_path[3:]: # Skip "Main Menu"
modified_settings = modified_settings.setdefault(key, {})
# Add the new value to the appropriate level
modified_settings[selected_option] = new_value
# For comparison, normalize enum numbers to names
compare_value = new_value
if field and field.enum_type and isinstance(new_value, int):
enum_value_descriptor = field.enum_type.values_by_number.get(new_value)
if enum_value_descriptor:
compare_value = enum_value_descriptor.name
if compare_value != current_value:
# Save the raw protobuf number, not the name
modified_settings[selected_option] = new_value
# Convert enum string to int
if field and field.enum_type: