improv: change Pin/Unpin to "Pin to app tray"
This commit is contained in:
parent
ca0e99268c
commit
d10f1e27ac
20 changed files with 62 additions and 56 deletions
|
|
@ -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"]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
cosmic-app-list = لیست برنامه های داک Cosmic
|
||||
pin = مورد علاقه
|
||||
unpin = برداشتن از مورد علافه
|
||||
quit = ترک
|
||||
quit-all = ترک همه
|
||||
new-window = پنجره جدید
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
cosmic-app-list = Telakoitu Cosmic sovellusluettelo
|
||||
pin = Suosikki
|
||||
unpin = Inhokki
|
||||
quit = Sulje
|
||||
quit-all = Sulje Kaikki
|
||||
new-window = Uusi Ikkuna
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
cosmic-app-list = Cosmicドックのアプリ一覧
|
||||
pin = お気に入りに追加
|
||||
unpin = お気に入りから削除
|
||||
quit = 終了
|
||||
quit-all = 全てのウィンドウを終了
|
||||
new-window = 新しいウィンドウ
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
cosmic-app-list = 코스믹 독 앱 목록
|
||||
pin = 즐겨찾기
|
||||
unpin = 즐겨찾기 해제
|
||||
quit = 끝내기
|
||||
quit-all = 모두 끝내기
|
||||
new-window = 새 창
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
cosmic-app-list = Список приложений
|
||||
pin = В избранные
|
||||
unpin = Убрать из избранных
|
||||
quit = Завершить
|
||||
quit-all = Завершить все
|
||||
new-window = Новое окно
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
cosmic-app-list = Листа апликација
|
||||
pin = Прикачи
|
||||
unpin = Откачи
|
||||
cosmic-app-list = Трака апликација
|
||||
pin = Закачи за траку апликација
|
||||
quit = Затвори
|
||||
quit-all = Затвори све
|
||||
new-window = Нови прозор
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
cosmic-app-list = 应用托盘
|
||||
pin = 固定
|
||||
unpin = 取消固定
|
||||
quit = 退出
|
||||
quit-all = 全部退出
|
||||
new-window = 新窗口
|
||||
|
|
|
|||
|
|
@ -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<Element<'a, Message>>,
|
||||
) -> 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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue