diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 30305e608..adfc9bd4a 100755 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -52,7 +52,7 @@ serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } serde_yaml_ng = { workspace = true } smartstring = { workspace = true, features = ["serde"] } -indexmap = { workspace = true, features = ["serde"] } #TODO 迁移完成后移除 +indexmap = { workspace = true, features = ["serde"] } warp = { version = "0.4.2", features = ["server"] } open = "5.3.3" dunce = "1.0.5" diff --git a/src-tauri/src/config/profiles.rs b/src-tauri/src/config/profiles.rs index ae5c93169..e27c3e69f 100644 --- a/src-tauri/src/config/profiles.rs +++ b/src-tauri/src/config/profiles.rs @@ -209,8 +209,10 @@ impl IProfiles { _ => return Ok(()), }; - if let Some(item) = items.swap_remove(&old_key) { - items.insert(new_key, item); + let old_index = items.get_index_of(&old_key); + let new_index = items.get_index_of(&new_key); + if let (Some(old_idx), Some(new_idx)) = (old_index, new_index) { + items.move_index(old_idx, new_idx); } self.items = Some(items);