update libcosmic
This commit is contained in:
parent
fda0850b3b
commit
77be96e1c2
4 changed files with 719 additions and 363 deletions
993
Cargo.lock
generated
993
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
40
src/main.rs
40
src/main.rs
|
|
@ -9,7 +9,7 @@ use cosmic::widget::menu::key_bind::KeyBind;
|
||||||
use cosmic::widget::DndDestination;
|
use cosmic::widget::DndDestination;
|
||||||
use cosmic::Apply;
|
use cosmic::Apply;
|
||||||
use cosmic::{
|
use cosmic::{
|
||||||
app::{command, message, Core, Settings, Task},
|
app::{command, context_drawer, message, Core, Settings, Task},
|
||||||
cosmic_config::{self, ConfigSet, CosmicConfigEntry},
|
cosmic_config::{self, ConfigSet, CosmicConfigEntry},
|
||||||
cosmic_theme, executor,
|
cosmic_theme, executor,
|
||||||
iced::{
|
iced::{
|
||||||
|
|
@ -372,17 +372,6 @@ pub enum ContextPage {
|
||||||
Settings,
|
Settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ContextPage {
|
|
||||||
fn title(&self) -> String {
|
|
||||||
match self {
|
|
||||||
Self::About => String::new(),
|
|
||||||
Self::ColorSchemes(_color_scheme_kind) => fl!("color-schemes"),
|
|
||||||
Self::Profiles => fl!("profiles"),
|
|
||||||
Self::Settings => fl!("settings"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The [`App`] stores application-specific state.
|
/// The [`App`] stores application-specific state.
|
||||||
pub struct App {
|
pub struct App {
|
||||||
core: Core,
|
core: Core,
|
||||||
|
|
@ -2564,8 +2553,6 @@ impl Application for App {
|
||||||
ColorSchemeKind::Light => light_entity,
|
ColorSchemeKind::Light => light_entity,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
self.set_context_title(context_page.title());
|
|
||||||
}
|
}
|
||||||
Message::UpdateDefaultProfile((default, profile_id)) => {
|
Message::UpdateDefaultProfile((default, profile_id)) => {
|
||||||
config_set!(default_profile, default.then_some(profile_id));
|
config_set!(default_profile, default.then_some(profile_id));
|
||||||
|
|
@ -2601,16 +2588,31 @@ impl Application for App {
|
||||||
Task::none()
|
Task::none()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn context_drawer(&self) -> Option<Element<Message>> {
|
fn context_drawer(&self) -> Option<context_drawer::ContextDrawer<Message>> {
|
||||||
if !self.core.window.show_context {
|
if !self.core.window.show_context {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
Some(match self.context_page {
|
Some(match self.context_page {
|
||||||
ContextPage::About => self.about(),
|
ContextPage::About => context_drawer::context_drawer(
|
||||||
ContextPage::ColorSchemes(color_scheme_kind) => self.color_schemes(color_scheme_kind),
|
self.about(),
|
||||||
ContextPage::Profiles => self.profiles(),
|
Message::ToggleContextPage(ContextPage::About),
|
||||||
ContextPage::Settings => self.settings(),
|
),
|
||||||
|
ContextPage::ColorSchemes(color_scheme_kind) => context_drawer::context_drawer(
|
||||||
|
self.color_schemes(color_scheme_kind),
|
||||||
|
Message::ToggleContextPage(ContextPage::ColorSchemes(color_scheme_kind)),
|
||||||
|
)
|
||||||
|
.title(fl!("color-schemes")),
|
||||||
|
ContextPage::Profiles => context_drawer::context_drawer(
|
||||||
|
self.profiles(),
|
||||||
|
Message::ToggleContextPage(ContextPage::Profiles),
|
||||||
|
)
|
||||||
|
.title(fl!("profiles")),
|
||||||
|
ContextPage::Settings => context_drawer::context_drawer(
|
||||||
|
self.settings(),
|
||||||
|
Message::ToggleContextPage(ContextPage::Settings),
|
||||||
|
)
|
||||||
|
.title(fl!("settings")),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
47
src/menu.rs
47
src/menu.rs
|
|
@ -146,7 +146,7 @@ pub fn color_scheme_menu<'a>(
|
||||||
pub fn menu_bar<'a>(config: &Config, key_binds: &HashMap<KeyBind, Action>) -> Element<'a, Message> {
|
pub fn menu_bar<'a>(config: &Config, key_binds: &HashMap<KeyBind, Action>) -> Element<'a, Message> {
|
||||||
let mut profile_items = Vec::with_capacity(config.profiles.len());
|
let mut profile_items = Vec::with_capacity(config.profiles.len());
|
||||||
for (name, id) in config.profile_names() {
|
for (name, id) in config.profile_names() {
|
||||||
profile_items.push(MenuItem::Button(name, Action::ProfileOpen(id)));
|
profile_items.push(MenuItem::Button(name, None, Action::ProfileOpen(id)));
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: what to do if there are no profiles?
|
//TODO: what to do if there are no profiles?
|
||||||
|
|
@ -157,15 +157,15 @@ pub fn menu_bar<'a>(config: &Config, key_binds: &HashMap<KeyBind, Action>) -> El
|
||||||
menu_items(
|
menu_items(
|
||||||
key_binds,
|
key_binds,
|
||||||
vec![
|
vec![
|
||||||
MenuItem::Button(fl!("new-tab"), Action::TabNew),
|
MenuItem::Button(fl!("new-tab"), None, Action::TabNew),
|
||||||
MenuItem::Button(fl!("new-window"), Action::WindowNew),
|
MenuItem::Button(fl!("new-window"), None, Action::WindowNew),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Folder(fl!("profile"), profile_items),
|
MenuItem::Folder(fl!("profile"), profile_items),
|
||||||
MenuItem::Button(fl!("menu-profiles"), Action::Profiles),
|
MenuItem::Button(fl!("menu-profiles"), None, Action::Profiles),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Button(fl!("close-tab"), Action::TabClose),
|
MenuItem::Button(fl!("close-tab"), None, Action::TabClose),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Button(fl!("quit"), Action::WindowClose),
|
MenuItem::Button(fl!("quit"), None, Action::WindowClose),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -174,13 +174,13 @@ pub fn menu_bar<'a>(config: &Config, key_binds: &HashMap<KeyBind, Action>) -> El
|
||||||
menu_items(
|
menu_items(
|
||||||
key_binds,
|
key_binds,
|
||||||
vec![
|
vec![
|
||||||
MenuItem::Button(fl!("copy"), Action::Copy),
|
MenuItem::Button(fl!("copy"), None, Action::Copy),
|
||||||
MenuItem::Button(fl!("paste"), Action::Paste),
|
MenuItem::Button(fl!("paste"), None, Action::Paste),
|
||||||
MenuItem::Button(fl!("select-all"), Action::SelectAll),
|
MenuItem::Button(fl!("select-all"), None, Action::SelectAll),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Button(fl!("clear-scrollback"), Action::ClearScrollback),
|
MenuItem::Button(fl!("clear-scrollback"), None, Action::ClearScrollback),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Button(fl!("find"), Action::Find),
|
MenuItem::Button(fl!("find"), None, Action::Find),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -189,24 +189,29 @@ pub fn menu_bar<'a>(config: &Config, key_binds: &HashMap<KeyBind, Action>) -> El
|
||||||
menu_items(
|
menu_items(
|
||||||
key_binds,
|
key_binds,
|
||||||
vec![
|
vec![
|
||||||
MenuItem::Button(fl!("zoom-in"), Action::ZoomIn),
|
MenuItem::Button(fl!("zoom-in"), None, Action::ZoomIn),
|
||||||
MenuItem::Button(fl!("zoom-reset"), Action::ZoomReset),
|
MenuItem::Button(fl!("zoom-reset"), None, Action::ZoomReset),
|
||||||
MenuItem::Button(fl!("zoom-out"), Action::ZoomOut),
|
MenuItem::Button(fl!("zoom-out"), None, Action::ZoomOut),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Button(fl!("next-tab"), Action::TabNext),
|
MenuItem::Button(fl!("next-tab"), None, Action::TabNext),
|
||||||
MenuItem::Button(fl!("previous-tab"), Action::TabPrev),
|
MenuItem::Button(fl!("previous-tab"), None, Action::TabPrev),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Button(fl!("split-horizontal"), Action::PaneSplitHorizontal),
|
MenuItem::Button(fl!("split-horizontal"), None, Action::PaneSplitHorizontal),
|
||||||
MenuItem::Button(fl!("split-vertical"), Action::PaneSplitVertical),
|
MenuItem::Button(fl!("split-vertical"), None, Action::PaneSplitVertical),
|
||||||
MenuItem::Button(fl!("pane-toggle-maximize"), Action::PaneToggleMaximized),
|
MenuItem::Button(
|
||||||
|
fl!("pane-toggle-maximize"),
|
||||||
|
None,
|
||||||
|
Action::PaneToggleMaximized,
|
||||||
|
),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Button(
|
MenuItem::Button(
|
||||||
fl!("menu-color-schemes"),
|
fl!("menu-color-schemes"),
|
||||||
|
None,
|
||||||
Action::ColorSchemes(config.color_scheme_kind()),
|
Action::ColorSchemes(config.color_scheme_kind()),
|
||||||
),
|
),
|
||||||
MenuItem::Button(fl!("menu-settings"), Action::Settings),
|
MenuItem::Button(fl!("menu-settings"), None, Action::Settings),
|
||||||
MenuItem::Divider,
|
MenuItem::Divider,
|
||||||
MenuItem::Button(fl!("menu-about"), Action::About),
|
MenuItem::Button(fl!("menu-about"), None, Action::About),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -253,7 +253,7 @@ where
|
||||||
let state = tree.state.downcast_ref::<State>();
|
let state = tree.state.downcast_ref::<State>();
|
||||||
|
|
||||||
let cosmic_theme = theme.cosmic();
|
let cosmic_theme = theme.cosmic();
|
||||||
let radius_s = cosmic_theme.corner_radii.radius_s[0];
|
let radius_s = cosmic_theme.corner_radii.radius_s[0] - 1.0;
|
||||||
let scrollbar_w = f32::from(cosmic_theme.spacing.space_xxs);
|
let scrollbar_w = f32::from(cosmic_theme.spacing.space_xxs);
|
||||||
|
|
||||||
let view_position = layout.position() + [self.padding.left, self.padding.top].into();
|
let view_position = layout.position() + [self.padding.left, self.padding.top].into();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue