Make sure settings are listed in-order

This commit is contained in:
Sofia 2026-07-25 22:12:01 +03:00
parent b6a4cd59bf
commit 0e40fe7f94

View File

@ -10,7 +10,7 @@ use godot::{
use crate::{game_settings::GameSettingsManager, ui::slider::SliderContainer}; 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 { pub enum Setting {
FoV, FoV,
DefaultName, DefaultName,
@ -111,7 +111,12 @@ impl IPanelContainer for SettingsPanel {
); );
if let Some(mut grid) = self.settings_grid.clone() { if let Some(mut grid) = self.settings_grid.clone() {
for (setting, value) in &self.settings { let mut keys = self.settings.keys().collect::<Vec<_>>();
keys.sort();
for setting in keys.into_iter() {
let value = self.settings.get(setting).unwrap().clone();
let mut label = Label::new_alloc(); let mut label = Label::new_alloc();
label.set_text(&setting.to_string()); label.set_text(&setting.to_string());
label.set_h_size_flags(SizeFlags::EXPAND | SizeFlags::SHRINK_BEGIN); label.set_h_size_flags(SizeFlags::EXPAND | SizeFlags::SHRINK_BEGIN);
@ -148,7 +153,7 @@ impl IPanelContainer for SettingsPanel {
SettingValue::String(value) => { SettingValue::String(value) => {
let mut line_edit = LineEdit::new_alloc(); let mut line_edit = LineEdit::new_alloc();
line_edit.set_custom_minimum_size(Vector2::new(100., -1.)); 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); line_edit.set_max_length(20);
let setting_clone = setting.clone(); let setting_clone = setting.clone();