diff --git a/src/gui/draw.rs b/src/gui/draw.rs index efefe6d..ab46943 100644 --- a/src/gui/draw.rs +++ b/src/gui/draw.rs @@ -196,10 +196,8 @@ impl SoundpadGui { ui.add_space(5.0); let conflicts = self.app_state.hotkey_config.find_conflicts(); - let conflict_slots: std::collections::HashSet = conflicts - .iter() - .flat_map(|(a, b)| vec![a.clone(), b.clone()]) - .collect(); + let conflict_slots: std::collections::HashSet<&str> = + conflicts.into_iter().flat_map(|(a, b)| [a, b]).collect(); let search = self.app_state.hotkey_search_query.to_lowercase(); @@ -266,7 +264,7 @@ impl SoundpadGui { for slot in &slots { ui.horizontal(|ui| { // Conflict badge - if conflict_slots.contains(&slot.slot) { + if conflict_slots.contains(slot.slot.as_str()) { ui.label( RichText::new(ICON_WARNING.codepoint) .color(Color32::from_rgb(255, 165, 0)), diff --git a/src/types/config.rs b/src/types/config.rs index 81127bd..734daa5 100644 --- a/src/types/config.rs +++ b/src/types/config.rs @@ -172,7 +172,7 @@ impl HotkeyConfig { } /// Returns pairs of slot names that share the same key chord. - pub fn find_conflicts(&self) -> Vec<(String, String)> { + pub fn find_conflicts(&self) -> Vec<(&str, &str)> { let mut conflicts = vec![]; let mut chord_map: HashMap<&str, Vec<&str>> = HashMap::new(); @@ -186,7 +186,7 @@ impl HotkeyConfig { if slots.len() > 1 { for i in 0..slots.len() { for j in (i + 1)..slots.len() { - conflicts.push((slots[i].to_string(), slots[j].to_string())); + conflicts.push((slots[i], slots[j])); } } } diff --git a/src/utils/daemon.rs b/src/utils/daemon.rs index 09814d1..5a6ce94 100644 --- a/src/utils/daemon.rs +++ b/src/utils/daemon.rs @@ -1,9 +1,7 @@ -use crate::{ - types::{ - audio_player::AudioPlayer, - config::DaemonConfig, - socket::{MAX_MESSAGE_SIZE, Request, Response}, - }, +use crate::types::{ + audio_player::AudioPlayer, + config::DaemonConfig, + socket::{MAX_MESSAGE_SIZE, Request, Response}, }; use std::os::unix::fs::PermissionsExt;