From d10f1e27accf6b488e90b5965d96f153c115d4c7 Mon Sep 17 00:00:00 2001 From: git-f0x <150025636+git-f0x@users.noreply.github.com> Date: Thu, 18 Jul 2024 15:18:43 +0200 Subject: [PATCH] improv: change Pin/Unpin to "Pin to app tray" --- Cargo.toml | 3 +- cosmic-app-list/i18n/de/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/en/cosmic_app_list.ftl | 3 +- .../i18n/es-ES/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/fa/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/fi/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/fr/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/it/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/ja/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/ko/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/nl/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/pl/cosmic_app_list.ftl | 1 - .../i18n/pt-BR/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/pt/cosmic_app_list.ftl | 1 - cosmic-app-list/i18n/ru/cosmic_app_list.ftl | 1 - .../i18n/sr-Cyrl/cosmic_app_list.ftl | 5 +- .../i18n/sr-Latn/cosmic_app_list.ftl | 5 +- cosmic-app-list/i18n/tr/cosmic_app_list.ftl | 1 - .../i18n/zh-CN/cosmic_app_list.ftl | 1 - cosmic-app-list/src/app.rs | 87 ++++++++++++------- 20 files changed, 62 insertions(+), 56 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 40321a5d..19318638 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,7 +58,8 @@ serde = { version = "1.0.152", features = ["derive"] } freedesktop-desktop-entry = "0.6.1" [profile.release] -lto = "fat" +#lto = "fat" +opt-level = 1 [workspace.metadata.cargo-machete] ignored = ["libcosmic"] diff --git a/cosmic-app-list/i18n/de/cosmic_app_list.ftl b/cosmic-app-list/i18n/de/cosmic_app_list.ftl index 5fad28ef..74f414a0 100644 --- a/cosmic-app-list/i18n/de/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/de/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Cosmic Dock-App-Liste pin = Favorisieren -unpin = Entfavorisieren quit = Beenden quit-all = Alle beenden new-window = Neues Fenster diff --git a/cosmic-app-list/i18n/en/cosmic_app_list.ftl b/cosmic-app-list/i18n/en/cosmic_app_list.ftl index 45becdb6..c412cd51 100644 --- a/cosmic-app-list/i18n/en/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/en/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = App Tray -pin = Pin -unpin = Unpin +pin = Pin to app tray quit = Quit quit-all = Quit All new-window = New Window diff --git a/cosmic-app-list/i18n/es-ES/cosmic_app_list.ftl b/cosmic-app-list/i18n/es-ES/cosmic_app_list.ftl index c2efdea6..05197533 100644 --- a/cosmic-app-list/i18n/es-ES/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/es-ES/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Lista de aplicaciones Cosmic pin = Añadir a favoritos -unpin = Quitar de favoritos quit = Cerrar quit-all = Cerrar todas new-window = Nueva ventana diff --git a/cosmic-app-list/i18n/fa/cosmic_app_list.ftl b/cosmic-app-list/i18n/fa/cosmic_app_list.ftl index 51dcf169..2fe65856 100644 --- a/cosmic-app-list/i18n/fa/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/fa/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = لیست برنامه های داک Cosmic pin = مورد علاقه -unpin = برداشتن از مورد علافه quit = ترک quit-all = ترک همه new-window = پنجره جدید diff --git a/cosmic-app-list/i18n/fi/cosmic_app_list.ftl b/cosmic-app-list/i18n/fi/cosmic_app_list.ftl index 191a2f61..7db50514 100644 --- a/cosmic-app-list/i18n/fi/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/fi/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Telakoitu Cosmic sovellusluettelo pin = Suosikki -unpin = Inhokki quit = Sulje quit-all = Sulje Kaikki new-window = Uusi Ikkuna diff --git a/cosmic-app-list/i18n/fr/cosmic_app_list.ftl b/cosmic-app-list/i18n/fr/cosmic_app_list.ftl index 2fdf9962..7132527a 100644 --- a/cosmic-app-list/i18n/fr/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/fr/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Liste des applictions COSMIC pin = Mettre en favori -unpin = Enlever des favoris quit = Quitter quit-all = Tout quitter new-window = Nouvelle fenêtre diff --git a/cosmic-app-list/i18n/it/cosmic_app_list.ftl b/cosmic-app-list/i18n/it/cosmic_app_list.ftl index 8f7db72a..8ba86cf3 100644 --- a/cosmic-app-list/i18n/it/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/it/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Lista applicazioni - Cosmic dock pin = Aggiungi ai preferiti -unpin = Rimuovi dai preferiti quit = Chiudi quit-all = Chiudi Tutto new-window = Nuova finestra diff --git a/cosmic-app-list/i18n/ja/cosmic_app_list.ftl b/cosmic-app-list/i18n/ja/cosmic_app_list.ftl index d3ea3b35..44e03ab1 100644 --- a/cosmic-app-list/i18n/ja/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/ja/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Cosmicドックのアプリ一覧 pin = お気に入りに追加 -unpin = お気に入りから削除 quit = 終了 quit-all = 全てのウィンドウを終了 new-window = 新しいウィンドウ diff --git a/cosmic-app-list/i18n/ko/cosmic_app_list.ftl b/cosmic-app-list/i18n/ko/cosmic_app_list.ftl index 3cdf76da..4f95ab6c 100644 --- a/cosmic-app-list/i18n/ko/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/ko/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = 코스믹 독 앱 목록 pin = 즐겨찾기 -unpin = 즐겨찾기 해제 quit = 끝내기 quit-all = 모두 끝내기 new-window = 새 창 diff --git a/cosmic-app-list/i18n/nl/cosmic_app_list.ftl b/cosmic-app-list/i18n/nl/cosmic_app_list.ftl index 65cd07ff..5b0c2f95 100644 --- a/cosmic-app-list/i18n/nl/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/nl/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Cosmic Dock App Lijst pin = Favorieten -unpin = Haal uit favorieten quit = Afsluiten quit-all = Alles afsluiten new-window = Nieuw venster \ No newline at end of file diff --git a/cosmic-app-list/i18n/pl/cosmic_app_list.ftl b/cosmic-app-list/i18n/pl/cosmic_app_list.ftl index ea322a2e..94ad3c10 100644 --- a/cosmic-app-list/i18n/pl/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/pl/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Lista Apek Doku Cosmic pin = Przypnij -unpin = Odepnij quit = Zamknij quit-all = Zamknij Wszystkie new-window = Nowe Okno diff --git a/cosmic-app-list/i18n/pt-BR/cosmic_app_list.ftl b/cosmic-app-list/i18n/pt-BR/cosmic_app_list.ftl index bba5f85e..5b2cd03c 100644 --- a/cosmic-app-list/i18n/pt-BR/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/pt-BR/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Bandeja de Aplicativo pin = Fixar -unpin = Remover quit = Sair quit-all = Sair de Todos new-window = Nova Janela diff --git a/cosmic-app-list/i18n/pt/cosmic_app_list.ftl b/cosmic-app-list/i18n/pt/cosmic_app_list.ftl index 16a2991a..aa2c76fc 100644 --- a/cosmic-app-list/i18n/pt/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/pt/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Lista de Aplicações Cosmic Dock pin = Adicionar aos favoritos -unpin = Remover dos favoritos quit = Sair quit-all = Sair de todos new-window = Nova janela diff --git a/cosmic-app-list/i18n/ru/cosmic_app_list.ftl b/cosmic-app-list/i18n/ru/cosmic_app_list.ftl index 12163ff4..bb8ed0b0 100644 --- a/cosmic-app-list/i18n/ru/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/ru/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Список приложений pin = В избранные -unpin = Убрать из избранных quit = Завершить quit-all = Завершить все new-window = Новое окно diff --git a/cosmic-app-list/i18n/sr-Cyrl/cosmic_app_list.ftl b/cosmic-app-list/i18n/sr-Cyrl/cosmic_app_list.ftl index 16869dba..0162559a 100644 --- a/cosmic-app-list/i18n/sr-Cyrl/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/sr-Cyrl/cosmic_app_list.ftl @@ -1,6 +1,5 @@ -cosmic-app-list = Листа апликација -pin = Прикачи -unpin = Откачи +cosmic-app-list = Трака апликација +pin = Закачи за траку апликација quit = Затвори quit-all = Затвори све new-window = Нови прозор diff --git a/cosmic-app-list/i18n/sr-Latn/cosmic_app_list.ftl b/cosmic-app-list/i18n/sr-Latn/cosmic_app_list.ftl index f640179b..0626e101 100644 --- a/cosmic-app-list/i18n/sr-Latn/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/sr-Latn/cosmic_app_list.ftl @@ -1,6 +1,5 @@ -cosmic-app-list = Lista aplikacija -pin = Prikači -unpin = Otkači +cosmic-app-list = Traka aplikacija +pin = Zakači za traku aplikacija quit = Zatvori quit-all = Zatvori sve new-window = Novi prozor diff --git a/cosmic-app-list/i18n/tr/cosmic_app_list.ftl b/cosmic-app-list/i18n/tr/cosmic_app_list.ftl index dcd3ae0f..88f90c08 100644 --- a/cosmic-app-list/i18n/tr/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/tr/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = Uygulama Çekmecesi pin = Sabitle -unpin = Sabitlemeyi kaldır quit = Çıkış quit-all = Tümünden çık new-window = Yeni pencere diff --git a/cosmic-app-list/i18n/zh-CN/cosmic_app_list.ftl b/cosmic-app-list/i18n/zh-CN/cosmic_app_list.ftl index eb1086e9..d8cd683d 100644 --- a/cosmic-app-list/i18n/zh-CN/cosmic_app_list.ftl +++ b/cosmic-app-list/i18n/zh-CN/cosmic_app_list.ftl @@ -1,6 +1,5 @@ cosmic-app-list = 应用托盘 pin = 固定 -unpin = 取消固定 quit = 退出 quit-all = 全部退出 new-window = 新窗口 diff --git a/cosmic-app-list/src/app.rs b/cosmic-app-list/src/app.rs index 9d7f3e1c..f0d5fc3d 100755 --- a/cosmic-app-list/src/app.rs +++ b/cosmic-app-list/src/app.rs @@ -42,10 +42,11 @@ use cosmic::{ iced_sctk::commands::data_device::{ accept_mime_type, finish_dnd, request_dnd_data, set_actions, start_drag, }, - iced_style::application, + iced_style::{application, svg}, theme::{Button, Container}, widget::{ - button, divider, horizontal_space, + button, divider, horizontal_space, icon, + icon::from_name, image::Handle, rectangle_tracker::{rectangle_tracker_subscription, RectangleTracker, RectangleUpdate}, text, Image, @@ -62,7 +63,7 @@ use futures::future::pending; use iced::{widget::container, Alignment, Background, Length}; use itertools::Itertools; use rand::{thread_rng, Rng}; -use std::{collections::HashMap, fs, path::PathBuf, str::FromStr, time::Duration}; +use std::{collections::HashMap, fs, path::PathBuf, rc::Rc, str::FromStr, time::Duration}; use switcheroo_control::Gpu; use tokio::time::sleep; use url::Url; @@ -582,7 +583,7 @@ where pub fn menu_control_padding() -> Padding { let theme = cosmic::theme::active(); let cosmic = theme.cosmic(); - [0, cosmic.space_m()].into() + [cosmic.space_xxs(), cosmic.space_m()].into() } impl cosmic::Application for CosmicAppList { @@ -1414,11 +1415,11 @@ impl cosmic::Application for CosmicAppList { match popup_type { PopupType::RightClickMenu => { - fn menu_button(label: String) -> cosmic::widget::Button<'static, Message> { - text::body(label) + fn menu_button<'a, Message>( + content: impl Into>, + ) -> cosmic::widget::Button<'a, Message> { + cosmic::widget::button(content) .height(36) - .vertical_alignment(iced::alignment::Vertical::Center) - .apply(cosmic::widget::button) .style(Button::AppletMenu) .padding(menu_control_padding()) .width(Length::Fill) @@ -1429,7 +1430,7 @@ impl cosmic::Application for CosmicAppList { if let Some(exec) = desktop_info.exec() { if !toplevels.is_empty() { content = content.push( - menu_button(fl!("new-window")) + menu_button(text::body(fl!("new-window"))) .on_press(Message::Exec(exec.to_string(), None)), ); } else if let Some(gpus) = self.gpus.as_ref() { @@ -1440,7 +1441,7 @@ impl cosmic::Application for CosmicAppList { }; for (i, gpu) in gpus.iter().enumerate() { content = content.push( - menu_button(format!( + menu_button(text::body(format!( "{} {}", fl!("run-on", gpu = gpu.name.clone()), if i == default_idx { @@ -1448,13 +1449,13 @@ impl cosmic::Application for CosmicAppList { } else { String::new() } - )) + ))) .on_press(Message::Exec(exec.to_string(), Some(i))), ); } } else { content = content.push( - menu_button(fl!("run")) + menu_button(text::body(fl!("run"))) .on_press(Message::Exec(exec.to_string(), None)), ); } @@ -1472,7 +1473,8 @@ impl cosmic::Application for CosmicAppList { continue; }; content = content.push( - menu_button(name.into()).on_press(Message::Exec(exec.into(), None)), + menu_button(text::body(name)) + .on_press(Message::Exec(exec.into(), None)), ); } content = content.push(divider::horizontal::default()); @@ -1487,31 +1489,52 @@ impl cosmic::Application for CosmicAppList { info.title.clone() }; list_col = list_col.push( - menu_button(title).on_press(Message::Activate(handle.clone())), + menu_button(text::body(title)) + .on_press(Message::Activate(handle.clone())), ); } content = content.push(list_col); content = content.push(divider::horizontal::default()); } - if is_pinned { - content = - content.push(menu_button(fl!("unpin")).on_press(Message::UnpinApp(*id))) - } else if desktop_info.exec().is_some() { - content = - content.push(menu_button(fl!("pin")).on_press(Message::PinApp(*id))) - } - content = match toplevels.len() { - 0 => content, - 1 => content.push( - menu_button(fl!("quit")) - .on_press(Message::Quit(desktop_info.id().to_string())), - ), - _ => content.push( - menu_button(fl!("quit-all")) - .on_press(Message::Quit(desktop_info.id().to_string())), - ), - }; + let svg_accent = Rc::new(|theme: &cosmic::Theme| { + let color = theme.cosmic().accent_color().into(); + svg::Appearance { color: Some(color) } + }); + content = content.push( + menu_button( + if is_pinned { + row![ + icon(from_name("checkbox-checked-symbolic").into()) + .size(16) + .style(cosmic::theme::Svg::Custom(svg_accent.clone())), + text::body(fl!("pin")) + ] + } else { + row![text::body(fl!("pin"))] + } + .spacing(8), + ) + .on_press(if is_pinned { + Message::UnpinApp(*id) + } else { + Message::PinApp(*id) + }), + ); + + if toplevels.len() > 0 { + content = content.push(divider::horizontal::default()); + content = match toplevels.len() { + 1 => content.push( + menu_button(text::body(fl!("quit"))) + .on_press(Message::Quit(desktop_info.id().to_string())), + ), + _ => content.push( + menu_button(text::body(fl!("quit-all"))) + .on_press(Message::Quit(desktop_info.id().to_string())), + ), + }; + } self.core.applet.popup_container(content).into() } PopupType::TopLevelList => match self.core.applet.anchor {