From 750cd299b29c523cd125d87109876d852cf2543e Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 29 Aug 2023 14:57:19 -0700 Subject: [PATCH] input: Use existing message to open keyboard shortcuts --- app/src/app.rs | 5 ----- app/src/pages/input/keyboard/mod.rs | 23 ++++++++++++++--------- app/src/pages/input/mod.rs | 2 -- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/app/src/app.rs b/app/src/app.rs index 9ee713b..0fa900d 100644 --- a/app/src/app.rs +++ b/app/src/app.rs @@ -272,11 +272,6 @@ impl Application for SettingsApp { page::update!(self.pages, message, desktop::wallpaper::Page); } crate::pages::Message::Input(message) => { - if matches!(message, input::Message::OpenKeyboardShortcuts) { - if let Some(id) = self.pages.page_id::() { - return self.activate_page(id); - } - } if let Some(page) = self.pages.page_mut::() { return page.update(message); } diff --git a/app/src/pages/input/keyboard/mod.rs b/app/src/pages/input/keyboard/mod.rs index 91e9803..6ffd5bb 100644 --- a/app/src/pages/input/keyboard/mod.rs +++ b/app/src/pages/input/keyboard/mod.rs @@ -291,20 +291,25 @@ fn keyboard_shortcuts() -> Section { Section::default() .title(fl!("keyboard-shortcuts")) .descriptions(vec![fl!("keyboard-shortcuts", "desc")]) - .view::(|_binder, _page, section| { + .view::(|binder, _page, section| { let descriptions = §ion.descriptions; - settings::view_section(§ion.title) - .add(go_next_item( + let mut section = settings::view_section(§ion.title); + if let Some((shortcuts_entity, _)) = binder + .info + .iter() + .find(|(_, v)| v.id == "keyboard-shortcuts") + { + section = section.add(go_next_item( &descriptions[0], - Message::OpenKeyboardShortcuts, - )) - .apply(cosmic::Element::from) - .map(crate::pages::Message::Input) + crate::pages::Message::Page(shortcuts_entity), + )); + } + section.apply(cosmic::Element::from) }) } -fn go_next_control() -> cosmic::Element<'static, Message> { +fn go_next_control() -> cosmic::Element<'static, Msg> { widget::row!( horizontal_space(Length::Fill), cosmic::widget::icon("go-next-symbolic", 20).style(cosmic::theme::Svg::Symbolic) @@ -312,7 +317,7 @@ fn go_next_control() -> cosmic::Element<'static, Message> { .into() } -fn go_next_item(description: &str, msg: Message) -> cosmic::Element<'_, Message> { +fn go_next_item(description: &str, msg: Msg) -> cosmic::Element<'_, Msg> { settings::item(description, go_next_control()) .apply(widget::container) .style(cosmic::theme::Container::custom( diff --git a/app/src/pages/input/mod.rs b/app/src/pages/input/mod.rs index e8653ad..c2b66a2 100644 --- a/app/src/pages/input/mod.rs +++ b/app/src/pages/input/mod.rs @@ -23,7 +23,6 @@ pub enum Message { PrimaryButtonSelected(cosmic::widget::segmented_button::Entity), // seperate close message, to make sure another isn't closed? ExpandInputSourcePopover(Option), - OpenKeyboardShortcuts, OpenSpecialCharacterDialog(keyboard::SpecialKey), CloseSpecialCharacterDialog, SpecialCharacterSelect(Option<&'static str>), @@ -146,7 +145,6 @@ impl Page { } } } - Message::OpenKeyboardShortcuts => {} } iced::Command::none() }