diff --git a/src/app/pages/settings.rs b/src/app/pages/settings.rs index 420410f..a70211c 100644 --- a/src/app/pages/settings.rs +++ b/src/app/pages/settings.rs @@ -359,7 +359,7 @@ pub fn settings_page(config: Config) -> Element<'static, Message> { bg_clr.into(), settings_hint_text(theme.clone(), "Aliases"), aliases_item(config.aliases, &theme), - settings_hint_text(theme.clone(), "Rustcast modes"), + settings_hint_text(theme.clone(), "Modes"), modes_item(config.modes, &theme), Row::from_iter([ savebutton(theme.clone()), @@ -553,7 +553,7 @@ fn modes_item(modes: HashMap, theme: &Theme) -> Element<'static, let val_clone = value.clone(); let theme_clone_2 = theme.clone(); Row::from_iter([ - text_input_cell(key.to_owned(), &theme_clone, "Shorthand") + text_input_cell(key.to_owned(), &theme_clone, "Mode name") .on_input(move |input| { Message::SetConfig(SetConfigFields::Modes(Editable::Update { old: (key_clone.clone(), val_clone.clone()), diff --git a/src/app/tile/update.rs b/src/app/tile/update.rs index 6fd0ac3..8f1933f 100644 --- a/src/app/tile/update.rs +++ b/src/app/tile/update.rs @@ -382,6 +382,9 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task { } Message::HideWindow(a) => { + if tile.page == Page::Settings { + return Task::none(); + } info!("Hiding RustCast window"); tile.visible = false; tile.focused = false; @@ -555,11 +558,11 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task { std::env::var("HOME").unwrap_or("".to_string()) + "/.config/rustcast/config.toml", ) .pick_file() - .and_then(|x| { - x.to_str().map(|x| { + .and_then(|path| { + path.to_str().map(|path_str| { Task::batch([ Task::done(Message::SetConfig(SetConfigFields::Modes( - Editable::Create((mode_name, x.to_string())), + Editable::Create((mode_name, path_str.to_string())), ))), Task::done(Message::WriteConfig(false)), ]) @@ -573,7 +576,7 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task { SetConfigFields::ToggleHotkey(hk) => final_config.toggle_hotkey = hk, SetConfigFields::ClipboardHotkey(hk) => final_config.toggle_hotkey = hk, SetConfigFields::Modes(Editable::Create((key, value))) => { - final_config.modes.entry(key).or_insert(value); + final_config.modes.insert(key, value); } SetConfigFields::Modes(Editable::Delete((key, _))) => { final_config.modes.remove(&key); @@ -655,6 +658,9 @@ pub fn handle_update(tile: &mut Tile, message: Message) -> Task { let config_file_path = std::env::var("HOME").unwrap_or("".to_string()) + "/.config/rustcast/config.toml"; + tile.config.aliases.remove(""); + tile.config.modes.remove(""); + let config_string = match toml::to_string_pretty(&tile.config) { Ok(a) => a, Err(e) => {