From f1aceb18eb75331312e1cbaf0985f59e0c8ee572 Mon Sep 17 00:00:00 2001 From: Alexander Mohr Date: Mon, 26 May 2025 17:36:12 +0200 Subject: [PATCH] fix #68 --- examples/worf-warden/src/main.rs | 8 ++++---- worf/src/lib/modes/emoji.rs | 23 ++++++++++------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/examples/worf-warden/src/main.rs b/examples/worf-warden/src/main.rs index 1300e09..54468a1 100644 --- a/examples/worf-warden/src/main.rs +++ b/examples/worf-warden/src/main.rs @@ -249,11 +249,11 @@ fn key_sync() -> KeyBinding { } /// copies totp to clipboard -fn key_totp() -> KeyBinding { +fn key_totp_to_clipboard() -> KeyBinding { KeyBinding { key: Key::T, modifiers: vec![Modifier::Alt].into_iter().collect(), - label: "Alt+t Totp".to_string(), + label: "Alt+t Copy Totp".to_string(), visible: true, } } @@ -284,7 +284,7 @@ fn show(config: Config, provider: PasswordProvider) -> Result<(), String> { key_type_totp(), key_type_totp_and_enter(), key_sync(), - key_totp(), + key_totp_to_clipboard(), key_lock(), ], hint: Some(CustomKeyHint { @@ -317,7 +317,7 @@ fn show(config: Config, provider: PasswordProvider) -> Result<(), String> { rbw("lock", None)?; } else if key == key_sync() { rbw("sync", None)?; - } else if key == key_totp() { + } else if key == key_totp_to_clipboard() { rbw_get_totp(id, true)?; } diff --git a/worf/src/lib/modes/emoji.rs b/worf/src/lib/modes/emoji.rs index 3f648ae..2ef4e48 100644 --- a/worf/src/lib/modes/emoji.rs +++ b/worf/src/lib/modes/emoji.rs @@ -4,14 +4,12 @@ use crate::gui::{ItemProvider, MenuItem}; use crate::{Error, gui}; #[derive(Clone)] -pub(crate) struct EmojiProvider { - elements: Vec>, - #[allow(dead_code)] // needed for the detection of mode in 'auto' - menu_item_data: T, +pub(crate) struct EmojiProvider { + elements: Vec>, } -impl EmojiProvider { - pub(crate) fn new(data: T, sort_order: &SortOrder, hide_label: bool) -> Self { +impl EmojiProvider { + pub(crate) fn new(sort_order: &SortOrder, hide_label: bool) -> Self { let emoji = emoji::search::search_annotation_all(""); let mut menus = emoji .into_iter() @@ -30,7 +28,7 @@ impl EmojiProvider { vec![], None, 0.0, - Some(data.clone()), + Some(e.glyph.to_string()), ) }) .collect::>(); @@ -38,17 +36,16 @@ impl EmojiProvider { Self { elements: menus, - menu_item_data: data.clone(), } } } -impl ItemProvider for EmojiProvider { - fn get_elements(&mut self, _: Option<&str>) -> (bool, Vec>) { +impl ItemProvider for EmojiProvider { + fn get_elements(&mut self, _: Option<&str>) -> (bool, Vec>) { (false, self.elements.clone()) } - fn get_sub_elements(&mut self, _: &MenuItem) -> (bool, Option>>) { + fn get_sub_elements(&mut self, _: &MenuItem) -> (bool, Option>>) { (false, None) } } @@ -58,9 +55,9 @@ impl ItemProvider for EmojiProvider { /// /// Forwards errors from the gui. See `gui::show` for details. pub fn show(config: &Config) -> Result<(), Error> { - let provider = EmojiProvider::new(0, &config.sort_order(), config.emoji_hide_label()); + let provider = EmojiProvider::new( &config.sort_order(), config.emoji_hide_label()); let selection_result = gui::show(config.clone(), provider, true, None, None)?; - match selection_result.menu.action { + match selection_result.menu.data { None => Err(Error::MissingAction), Some(action) => copy_to_clipboard(action, None), }