From 0e40fe7f940136741170438e3d9ef21d49b6a3de Mon Sep 17 00:00:00 2001 From: Sofia Date: Sat, 25 Jul 2026 22:12:01 +0300 Subject: [PATCH] Make sure settings are listed in-order --- rust/src/ui/settings.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/rust/src/ui/settings.rs b/rust/src/ui/settings.rs index afc8149..5bdc87c 100644 --- a/rust/src/ui/settings.rs +++ b/rust/src/ui/settings.rs @@ -10,7 +10,7 @@ use godot::{ use crate::{game_settings::GameSettingsManager, ui::slider::SliderContainer}; -#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Eq, Hash)] +#[derive(Debug, Clone, Copy, PartialEq, PartialOrd, Ord, Eq, Hash)] pub enum Setting { FoV, DefaultName, @@ -111,7 +111,12 @@ impl IPanelContainer for SettingsPanel { ); if let Some(mut grid) = self.settings_grid.clone() { - for (setting, value) in &self.settings { + let mut keys = self.settings.keys().collect::>(); + keys.sort(); + + for setting in keys.into_iter() { + let value = self.settings.get(setting).unwrap().clone(); + let mut label = Label::new_alloc(); label.set_text(&setting.to_string()); label.set_h_size_flags(SizeFlags::EXPAND | SizeFlags::SHRINK_BEGIN); @@ -148,7 +153,7 @@ impl IPanelContainer for SettingsPanel { SettingValue::String(value) => { let mut line_edit = LineEdit::new_alloc(); line_edit.set_custom_minimum_size(Vector2::new(100., -1.)); - line_edit.set_text(value); + line_edit.set_text(&value); line_edit.set_max_length(20); let setting_clone = setting.clone();