From 147f290bb3cf9907872d216833ab1ac83f3c407f Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Mon, 19 Feb 2024 15:57:10 +0100 Subject: [PATCH] feat(input): add swiping section to touchpad page --- app/src/pages/input/touchpad.rs | 71 ++++++++++++++++++++++----------- i18n/en/cosmic_settings.ftl | 24 +++++++---- 2 files changed, 64 insertions(+), 31 deletions(-) diff --git a/app/src/pages/input/touchpad.rs b/app/src/pages/input/touchpad.rs index d40dbf2..c448550 100644 --- a/app/src/pages/input/touchpad.rs +++ b/app/src/pages/input/touchpad.rs @@ -1,5 +1,5 @@ use cosmic::iced::Length; -use cosmic::widget::{self, settings}; +use cosmic::widget::{self, settings, text}; use cosmic::{Apply, Element}; use cosmic_comp_config::input::{AccelProfile, ScrollMethod}; use cosmic_settings_page::Section; @@ -14,22 +14,22 @@ crate::cache_dynamic_lazy! { static TWO_FINGER_SCROLLING: String = fl!("two-finger-scrolling"); static PINCH_TO_ZOOM_DESC: String = fl!("pinch-to-zoom", "desc"); static PINCH_TO_ZOOM: String = fl!("pinch-to-zoom"); - // static SWIPING_FOUR_FINGER_DOWN: String = fl!("swiping", "four-finger-down"); - // static SWIPING_FOUR_FINGER_LEFT: String = fl!("swiping", "four-finger-left"); - // static SWIPING_FOUR_FINGER_RIGHT: String = fl!("swiping", "four-finger-right"); - // static SWIPING_FOUR_FINGER_UP: String = fl!("swiping", "four-finger-up"); - // static SWIPING_THREE_FINGER_ANY: String = fl!("swiping", "three-finger-any"); - // static SWIPING: String = fl!("swiping"); static TAP_TO_CLICK_DESC: String = fl!("tap-to-click", "desc"); static TAP_TO_CLICK: String = fl!("tap-to-click"); static TAPPING_AND_PINCHING: String = fl!("tapping-and-pinching"); static TOUCHPAD_ACCELERAION: String = fl!("touchpad", "acceleration"); static TOUCHPAD_SPEED: String = fl!("touchpad", "speed"); - // static SWITCH_BETWEEN_WINDOWS: String = fl!("switch-between-windows"); - // static SWITCH_TO_NEXT_WORKSPACE: String = fl!("switch-to-next-workspace"); - // static SWITCH_TO_PREV_WORKSPACE: String = fl!("switch-to-prev-workspace"); - // static OPEN_APPLICATION_LIBRARY: String = fl!("open-application-library"); + static OPEN_APPLICATION_LIBRARY: String = fl!("open-application-library"); + static OPEN_WORKSPACES_VIEW: String = fl!("open-workspaces-view"); + static SWIPING_FOUR_FINGER_DOWN: String = fl!("swiping", "four-finger-down"); + static SWIPING_FOUR_FINGER_LEFT: String = fl!("swiping", "four-finger-left"); + static SWIPING_FOUR_FINGER_RIGHT: String = fl!("swiping", "four-finger-right"); + static SWIPING_FOUR_FINGER_UP: String = fl!("swiping", "four-finger-up"); + static SWIPING_THREE_FINGER_ANY: String = fl!("swiping", "three-finger-any"); + static SWITCH_BETWEEN_WINDOWS: String = fl!("switch-between-windows"); + static SWITCH_TO_NEXT_WORKSPACE: String = fl!("switch-to-next-workspace"); + static SWITCH_TO_PREV_WORKSPACE: String = fl!("switch-to-prev-workspace"); } #[derive(Default)] @@ -44,7 +44,7 @@ impl page::Page for Page { sections.insert(touchpad()), sections.insert(tapping_and_pinching()), sections.insert(scrolling()), - // sections.insert(swiping()), + sections.insert(swiping()), ]) } @@ -235,14 +235,39 @@ fn scrolling() -> Section { }) } -// fn swiping() -> Section { -// Section::default() -// .title(&*SWIPING) -// .descriptions(vec![ -// SWIPING_FOUR_FINGER_DOWN.as_str().into(), -// SWIPING_FOUR_FINGER_LEFT.as_str().into(), -// SWIPING_FOUR_FINGER_RIGHT.as_str().into(), -// SWIPING_FOUR_FINGER_UP.as_str().into(), -// SWIPING_THREE_FINGER_ANY.as_str().into(), -// ]) -// } +fn swiping() -> Section { + Section::default() + .title(fl!("swiping")) + .descriptions(vec![ + SWIPING_FOUR_FINGER_DOWN.as_str().into(), + SWIPING_FOUR_FINGER_LEFT.as_str().into(), + SWIPING_FOUR_FINGER_RIGHT.as_str().into(), + SWIPING_FOUR_FINGER_UP.as_str().into(), + SWIPING_THREE_FINGER_ANY.as_str().into(), + ]) + .view::(|_binder, _page, section| { + settings::view_section(&*section.title) + .add( + settings::item::builder(&*SWIPING_THREE_FINGER_ANY) + .control(text(&*SWITCH_BETWEEN_WINDOWS)), + ) + .add( + settings::item::builder(&*SWIPING_FOUR_FINGER_UP) + .control(text(&*SWITCH_TO_PREV_WORKSPACE)), + ) + .add( + settings::item::builder(&*SWIPING_FOUR_FINGER_DOWN) + .control(text(&*SWITCH_TO_NEXT_WORKSPACE)), + ) + .add( + settings::item::builder(&*SWIPING_FOUR_FINGER_LEFT) + .control(text(&*OPEN_WORKSPACES_VIEW)), + ) + .add( + settings::item::builder(&*SWIPING_FOUR_FINGER_RIGHT) + .control(text(&*OPEN_APPLICATION_LIBRARY)), + ) + .apply(Element::from) + .map(crate::pages::Message::Input) + }) +} diff --git a/i18n/en/cosmic_settings.ftl b/i18n/en/cosmic_settings.ftl index 268b74f..f56161c 100644 --- a/i18n/en/cosmic_settings.ftl +++ b/i18n/en/cosmic_settings.ftl @@ -412,13 +412,6 @@ edge-scrolling = Edge scrolling pinch-to-zoom = Pinch to zoom .desc = Use two fingers to zoom into content, for applications that support zoom. -swiping = Swiping - .four-finger-down = Four-finger swipe down - .four-finger-left = Four-finger swipe left - .four-finger-right = Four-finger swipe right - .four-finger-up = Four-finger swipe up - .three-finger-any = Three-finger swip any direction - tap-to-click = Tap to click .desc = Enables single-finger tap for primary click, two-finger tap for secondary click, and three-finger tap for middle click. @@ -429,4 +422,19 @@ touchpad = Touchpad .desc = Touchpad speed, click options, gestures. .speed = Touchpad speed -two-finger-scrolling = Two-finger scrolling \ No newline at end of file +two-finger-scrolling = Two-finger scrolling + +## Input: Gestures + +swiping = Swiping + .four-finger-down = Four-finger swipe down + .four-finger-left = Four-finger swipe left + .four-finger-right = Four-finger swipe right + .four-finger-up = Four-finger swipe up + .three-finger-any = Three-finger swip any direction + +switch-between-windows = Switch between windows +switch-to-next-workspace = Switch to next workspace +switch-to-prev-workspace = Switch to prev workspace +open-application-library = Open Application Library +open-workspaces-view = Open Workspaces Overview \ No newline at end of file