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"
|
freedesktop-desktop-entry = "0.6.1"
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
lto = "fat"
|
#lto = "fat"
|
||||||
|
opt-level = 1
|
||||||
|
|
||||||
[workspace.metadata.cargo-machete]
|
[workspace.metadata.cargo-machete]
|
||||||
ignored = ["libcosmic"]
|
ignored = ["libcosmic"]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Cosmic Dock-App-Liste
|
cosmic-app-list = Cosmic Dock-App-Liste
|
||||||
pin = Favorisieren
|
pin = Favorisieren
|
||||||
unpin = Entfavorisieren
|
|
||||||
quit = Beenden
|
quit = Beenden
|
||||||
quit-all = Alle beenden
|
quit-all = Alle beenden
|
||||||
new-window = Neues Fenster
|
new-window = Neues Fenster
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = App Tray
|
cosmic-app-list = App Tray
|
||||||
pin = Pin
|
pin = Pin to app tray
|
||||||
unpin = Unpin
|
|
||||||
quit = Quit
|
quit = Quit
|
||||||
quit-all = Quit All
|
quit-all = Quit All
|
||||||
new-window = New Window
|
new-window = New Window
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Lista de aplicaciones Cosmic
|
cosmic-app-list = Lista de aplicaciones Cosmic
|
||||||
pin = Añadir a favoritos
|
pin = Añadir a favoritos
|
||||||
unpin = Quitar de favoritos
|
|
||||||
quit = Cerrar
|
quit = Cerrar
|
||||||
quit-all = Cerrar todas
|
quit-all = Cerrar todas
|
||||||
new-window = Nueva ventana
|
new-window = Nueva ventana
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = لیست برنامه های داک Cosmic
|
cosmic-app-list = لیست برنامه های داک Cosmic
|
||||||
pin = مورد علاقه
|
pin = مورد علاقه
|
||||||
unpin = برداشتن از مورد علافه
|
|
||||||
quit = ترک
|
quit = ترک
|
||||||
quit-all = ترک همه
|
quit-all = ترک همه
|
||||||
new-window = پنجره جدید
|
new-window = پنجره جدید
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Telakoitu Cosmic sovellusluettelo
|
cosmic-app-list = Telakoitu Cosmic sovellusluettelo
|
||||||
pin = Suosikki
|
pin = Suosikki
|
||||||
unpin = Inhokki
|
|
||||||
quit = Sulje
|
quit = Sulje
|
||||||
quit-all = Sulje Kaikki
|
quit-all = Sulje Kaikki
|
||||||
new-window = Uusi Ikkuna
|
new-window = Uusi Ikkuna
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Liste des applictions COSMIC
|
cosmic-app-list = Liste des applictions COSMIC
|
||||||
pin = Mettre en favori
|
pin = Mettre en favori
|
||||||
unpin = Enlever des favoris
|
|
||||||
quit = Quitter
|
quit = Quitter
|
||||||
quit-all = Tout quitter
|
quit-all = Tout quitter
|
||||||
new-window = Nouvelle fenêtre
|
new-window = Nouvelle fenêtre
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Lista applicazioni - Cosmic dock
|
cosmic-app-list = Lista applicazioni - Cosmic dock
|
||||||
pin = Aggiungi ai preferiti
|
pin = Aggiungi ai preferiti
|
||||||
unpin = Rimuovi dai preferiti
|
|
||||||
quit = Chiudi
|
quit = Chiudi
|
||||||
quit-all = Chiudi Tutto
|
quit-all = Chiudi Tutto
|
||||||
new-window = Nuova finestra
|
new-window = Nuova finestra
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Cosmicドックのアプリ一覧
|
cosmic-app-list = Cosmicドックのアプリ一覧
|
||||||
pin = お気に入りに追加
|
pin = お気に入りに追加
|
||||||
unpin = お気に入りから削除
|
|
||||||
quit = 終了
|
quit = 終了
|
||||||
quit-all = 全てのウィンドウを終了
|
quit-all = 全てのウィンドウを終了
|
||||||
new-window = 新しいウィンドウ
|
new-window = 新しいウィンドウ
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = 코스믹 독 앱 목록
|
cosmic-app-list = 코스믹 독 앱 목록
|
||||||
pin = 즐겨찾기
|
pin = 즐겨찾기
|
||||||
unpin = 즐겨찾기 해제
|
|
||||||
quit = 끝내기
|
quit = 끝내기
|
||||||
quit-all = 모두 끝내기
|
quit-all = 모두 끝내기
|
||||||
new-window = 새 창
|
new-window = 새 창
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Cosmic Dock App Lijst
|
cosmic-app-list = Cosmic Dock App Lijst
|
||||||
pin = Favorieten
|
pin = Favorieten
|
||||||
unpin = Haal uit favorieten
|
|
||||||
quit = Afsluiten
|
quit = Afsluiten
|
||||||
quit-all = Alles afsluiten
|
quit-all = Alles afsluiten
|
||||||
new-window = Nieuw venster
|
new-window = Nieuw venster
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Lista Apek Doku Cosmic
|
cosmic-app-list = Lista Apek Doku Cosmic
|
||||||
pin = Przypnij
|
pin = Przypnij
|
||||||
unpin = Odepnij
|
|
||||||
quit = Zamknij
|
quit = Zamknij
|
||||||
quit-all = Zamknij Wszystkie
|
quit-all = Zamknij Wszystkie
|
||||||
new-window = Nowe Okno
|
new-window = Nowe Okno
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Bandeja de Aplicativo
|
cosmic-app-list = Bandeja de Aplicativo
|
||||||
pin = Fixar
|
pin = Fixar
|
||||||
unpin = Remover
|
|
||||||
quit = Sair
|
quit = Sair
|
||||||
quit-all = Sair de Todos
|
quit-all = Sair de Todos
|
||||||
new-window = Nova Janela
|
new-window = Nova Janela
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Lista de Aplicações Cosmic Dock
|
cosmic-app-list = Lista de Aplicações Cosmic Dock
|
||||||
pin = Adicionar aos favoritos
|
pin = Adicionar aos favoritos
|
||||||
unpin = Remover dos favoritos
|
|
||||||
quit = Sair
|
quit = Sair
|
||||||
quit-all = Sair de todos
|
quit-all = Sair de todos
|
||||||
new-window = Nova janela
|
new-window = Nova janela
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Список приложений
|
cosmic-app-list = Список приложений
|
||||||
pin = В избранные
|
pin = В избранные
|
||||||
unpin = Убрать из избранных
|
|
||||||
quit = Завершить
|
quit = Завершить
|
||||||
quit-all = Завершить все
|
quit-all = Завершить все
|
||||||
new-window = Новое окно
|
new-window = Новое окно
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Листа апликација
|
cosmic-app-list = Трака апликација
|
||||||
pin = Прикачи
|
pin = Закачи за траку апликација
|
||||||
unpin = Откачи
|
|
||||||
quit = Затвори
|
quit = Затвори
|
||||||
quit-all = Затвори све
|
quit-all = Затвори све
|
||||||
new-window = Нови прозор
|
new-window = Нови прозор
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Lista aplikacija
|
cosmic-app-list = Traka aplikacija
|
||||||
pin = Prikači
|
pin = Zakači za traku aplikacija
|
||||||
unpin = Otkači
|
|
||||||
quit = Zatvori
|
quit = Zatvori
|
||||||
quit-all = Zatvori sve
|
quit-all = Zatvori sve
|
||||||
new-window = Novi prozor
|
new-window = Novi prozor
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = Uygulama Çekmecesi
|
cosmic-app-list = Uygulama Çekmecesi
|
||||||
pin = Sabitle
|
pin = Sabitle
|
||||||
unpin = Sabitlemeyi kaldır
|
|
||||||
quit = Çıkış
|
quit = Çıkış
|
||||||
quit-all = Tümünden çık
|
quit-all = Tümünden çık
|
||||||
new-window = Yeni pencere
|
new-window = Yeni pencere
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
cosmic-app-list = 应用托盘
|
cosmic-app-list = 应用托盘
|
||||||
pin = 固定
|
pin = 固定
|
||||||
unpin = 取消固定
|
|
||||||
quit = 退出
|
quit = 退出
|
||||||
quit-all = 全部退出
|
quit-all = 全部退出
|
||||||
new-window = 新窗口
|
new-window = 新窗口
|
||||||
|
|
|
||||||
|
|
@ -42,10 +42,11 @@ use cosmic::{
|
||||||
iced_sctk::commands::data_device::{
|
iced_sctk::commands::data_device::{
|
||||||
accept_mime_type, finish_dnd, request_dnd_data, set_actions, start_drag,
|
accept_mime_type, finish_dnd, request_dnd_data, set_actions, start_drag,
|
||||||
},
|
},
|
||||||
iced_style::application,
|
iced_style::{application, svg},
|
||||||
theme::{Button, Container},
|
theme::{Button, Container},
|
||||||
widget::{
|
widget::{
|
||||||
button, divider, horizontal_space,
|
button, divider, horizontal_space, icon,
|
||||||
|
icon::from_name,
|
||||||
image::Handle,
|
image::Handle,
|
||||||
rectangle_tracker::{rectangle_tracker_subscription, RectangleTracker, RectangleUpdate},
|
rectangle_tracker::{rectangle_tracker_subscription, RectangleTracker, RectangleUpdate},
|
||||||
text, Image,
|
text, Image,
|
||||||
|
|
@ -62,7 +63,7 @@ use futures::future::pending;
|
||||||
use iced::{widget::container, Alignment, Background, Length};
|
use iced::{widget::container, Alignment, Background, Length};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use rand::{thread_rng, Rng};
|
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 switcheroo_control::Gpu;
|
||||||
use tokio::time::sleep;
|
use tokio::time::sleep;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
@ -582,7 +583,7 @@ where
|
||||||
pub fn menu_control_padding() -> Padding {
|
pub fn menu_control_padding() -> Padding {
|
||||||
let theme = cosmic::theme::active();
|
let theme = cosmic::theme::active();
|
||||||
let cosmic = theme.cosmic();
|
let cosmic = theme.cosmic();
|
||||||
[0, cosmic.space_m()].into()
|
[cosmic.space_xxs(), cosmic.space_m()].into()
|
||||||
}
|
}
|
||||||
|
|
||||||
impl cosmic::Application for CosmicAppList {
|
impl cosmic::Application for CosmicAppList {
|
||||||
|
|
@ -1414,11 +1415,11 @@ impl cosmic::Application for CosmicAppList {
|
||||||
|
|
||||||
match popup_type {
|
match popup_type {
|
||||||
PopupType::RightClickMenu => {
|
PopupType::RightClickMenu => {
|
||||||
fn menu_button(label: String) -> cosmic::widget::Button<'static, Message> {
|
fn menu_button<'a, Message>(
|
||||||
text::body(label)
|
content: impl Into<Element<'a, Message>>,
|
||||||
|
) -> cosmic::widget::Button<'a, Message> {
|
||||||
|
cosmic::widget::button(content)
|
||||||
.height(36)
|
.height(36)
|
||||||
.vertical_alignment(iced::alignment::Vertical::Center)
|
|
||||||
.apply(cosmic::widget::button)
|
|
||||||
.style(Button::AppletMenu)
|
.style(Button::AppletMenu)
|
||||||
.padding(menu_control_padding())
|
.padding(menu_control_padding())
|
||||||
.width(Length::Fill)
|
.width(Length::Fill)
|
||||||
|
|
@ -1429,7 +1430,7 @@ impl cosmic::Application for CosmicAppList {
|
||||||
if let Some(exec) = desktop_info.exec() {
|
if let Some(exec) = desktop_info.exec() {
|
||||||
if !toplevels.is_empty() {
|
if !toplevels.is_empty() {
|
||||||
content = content.push(
|
content = content.push(
|
||||||
menu_button(fl!("new-window"))
|
menu_button(text::body(fl!("new-window")))
|
||||||
.on_press(Message::Exec(exec.to_string(), None)),
|
.on_press(Message::Exec(exec.to_string(), None)),
|
||||||
);
|
);
|
||||||
} else if let Some(gpus) = self.gpus.as_ref() {
|
} 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() {
|
for (i, gpu) in gpus.iter().enumerate() {
|
||||||
content = content.push(
|
content = content.push(
|
||||||
menu_button(format!(
|
menu_button(text::body(format!(
|
||||||
"{} {}",
|
"{} {}",
|
||||||
fl!("run-on", gpu = gpu.name.clone()),
|
fl!("run-on", gpu = gpu.name.clone()),
|
||||||
if i == default_idx {
|
if i == default_idx {
|
||||||
|
|
@ -1448,13 +1449,13 @@ impl cosmic::Application for CosmicAppList {
|
||||||
} else {
|
} else {
|
||||||
String::new()
|
String::new()
|
||||||
}
|
}
|
||||||
))
|
)))
|
||||||
.on_press(Message::Exec(exec.to_string(), Some(i))),
|
.on_press(Message::Exec(exec.to_string(), Some(i))),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
content = content.push(
|
content = content.push(
|
||||||
menu_button(fl!("run"))
|
menu_button(text::body(fl!("run")))
|
||||||
.on_press(Message::Exec(exec.to_string(), None)),
|
.on_press(Message::Exec(exec.to_string(), None)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -1472,7 +1473,8 @@ impl cosmic::Application for CosmicAppList {
|
||||||
continue;
|
continue;
|
||||||
};
|
};
|
||||||
content = content.push(
|
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());
|
content = content.push(divider::horizontal::default());
|
||||||
|
|
@ -1487,31 +1489,52 @@ impl cosmic::Application for CosmicAppList {
|
||||||
info.title.clone()
|
info.title.clone()
|
||||||
};
|
};
|
||||||
list_col = list_col.push(
|
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(list_col);
|
||||||
content = content.push(divider::horizontal::default());
|
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() {
|
let svg_accent = Rc::new(|theme: &cosmic::Theme| {
|
||||||
0 => content,
|
let color = theme.cosmic().accent_color().into();
|
||||||
1 => content.push(
|
svg::Appearance { color: Some(color) }
|
||||||
menu_button(fl!("quit"))
|
});
|
||||||
.on_press(Message::Quit(desktop_info.id().to_string())),
|
content = content.push(
|
||||||
),
|
menu_button(
|
||||||
_ => content.push(
|
if is_pinned {
|
||||||
menu_button(fl!("quit-all"))
|
row![
|
||||||
.on_press(Message::Quit(desktop_info.id().to_string())),
|
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()
|
self.core.applet.popup_container(content).into()
|
||||||
}
|
}
|
||||||
PopupType::TopLevelList => match self.core.applet.anchor {
|
PopupType::TopLevelList => match self.core.applet.anchor {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue