From 05dcab7783788cf9f985f207b1bb79be602e61ad Mon Sep 17 00:00:00 2001 From: wiiznokes <78230769+wiiznokes@users.noreply.github.com> Date: Wed, 27 Nov 2024 20:30:51 +0100 Subject: [PATCH] update libcosmic --- Cargo.lock | 36 +++++++------ Cargo.toml | 4 +- ui/Cargo.toml | 2 +- ui/src/{settings_drawer.rs => drawer.rs} | 5 ++ ui/src/lib.rs | 66 +++++++++++++++--------- ui/src/message.rs | 3 +- 6 files changed, 73 insertions(+), 43 deletions(-) rename ui/src/{settings_drawer.rs => drawer.rs} (98%) diff --git a/Cargo.lock b/Cargo.lock index e8dcf50..d045fc8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1214,7 +1214,6 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1233,7 +1232,6 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "quote", "syn 1.0.109", @@ -1265,7 +1263,6 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "almost", "cosmic-config", @@ -2622,7 +2619,6 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "dnd", "iced_accessibility", @@ -2640,7 +2636,6 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "accesskit", "accesskit_winit", @@ -2649,7 +2644,6 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "bitflags 2.6.0", "bytes", @@ -2672,7 +2666,6 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "futures", "iced_core", @@ -2698,7 +2691,6 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "bitflags 2.6.0", "bytemuck", @@ -2720,7 +2712,6 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2732,7 +2723,6 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "bytes", "dnd", @@ -2746,7 +2736,6 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "bytemuck", "cosmic-text", @@ -2762,7 +2751,6 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "as-raw-xcb-connection", "bitflags 2.6.0", @@ -2793,7 +2781,6 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "dnd", "iced_renderer", @@ -2812,7 +2799,6 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0-dev" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "dnd", "iced_futures", @@ -3279,7 +3265,6 @@ checksum = "c2ccc108bbc0b1331bd061864e7cd823c0cab660bbe6970e66e2c0614decde36" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic?branch=master#a6db807c1bbffc90b68513171348cad0b4469eac" dependencies = [ "apply", "ashpd 0.9.2", @@ -3301,6 +3286,7 @@ dependencies = [ "iced_winit", "lazy_static", "libc", + "license", "mime 0.3.17", "palette", "rfd", @@ -3346,6 +3332,17 @@ dependencies = [ "redox_syscall 0.5.7", ] +[[package]] +name = "license" +version = "3.5.1+3.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8825807237bd9fa571b99ffea06a26901b0e44692208f87e3b040a499f1504a7" +dependencies = [ + "reword", + "serde", + "serde_json", +] + [[package]] name = "light_enum" version = "0.2.2" @@ -4645,6 +4642,15 @@ dependencies = [ "usvg", ] +[[package]] +name = "reword" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe272098dce9ed76b479995953f748d1851261390b08f8a0ff619c885a1f0765" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "rfd" version = "0.14.1" diff --git a/Cargo.toml b/Cargo.toml index 3b22c34..7ccbdd3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,8 +69,8 @@ derive_more = { version = "1", default-features = false, features = [ ] } # strum = { version = "0.25", features = ["derive"] } -# [patch."https://github.com/pop-os/libcosmic"] -# libcosmic = { path = "../libcosmic" } +[patch."https://github.com/pop-os/libcosmic"] +libcosmic = { path = "../libcosmic" } # libcosmic = { git = "https://github.com/wiiznokes/libcosmic", rev = "2dff73b8b2871afca6c65c861954c196818f960f" } # libcosmic = { git = "https://github.com/edfloreshz-ext/libcosmic" } diff --git a/ui/Cargo.toml b/ui/Cargo.toml index 22d6d34..25632db 100644 --- a/ui/Cargo.toml +++ b/ui/Cargo.toml @@ -36,7 +36,7 @@ features = [ "multi-window", "single-instance", "markdown", - "desktop" + "about" # todo: re enable when it works on Flatpak # "dbus-config", #"a11y", diff --git a/ui/src/settings_drawer.rs b/ui/src/drawer.rs similarity index 98% rename from ui/src/settings_drawer.rs rename to ui/src/drawer.rs index 817ba32..1cd36ba 100644 --- a/ui/src/settings_drawer.rs +++ b/ui/src/drawer.rs @@ -14,6 +14,11 @@ use crate::{ message::{AppMsg, SettingsMsg, ToogleMsg}, }; +pub enum Drawer { + Settings, + About, +} + pub fn settings_drawer(dir_manager: &DirManager) -> Element<'_, AppMsg> { widget::settings::view_column(vec![widget::settings::section() .add( diff --git a/ui/src/lib.rs b/ui/src/lib.rs index abf74b6..eeaef74 100644 --- a/ui/src/lib.rs +++ b/ui/src/lib.rs @@ -8,16 +8,20 @@ use data::{ AppState, }; use dialogs::Dialog; +use drawer::{about, Drawer}; use graph::GraphWindow; use hardware::{HardwareBridge, Mode}; use item::items_view; use message::{ConfigMsg, ModifNodeMsg, SettingsMsg, ToogleMsg}; use node_cache::{NodeC, NodesC}; -use crate::{graph::graph_window_view, settings_drawer::settings_drawer}; +use crate::{drawer::settings_drawer, graph::graph_window_view}; use cosmic::{ - app::{Core, CosmicFlags, Task}, + app::{ + context_drawer::{context_drawer, ContextDrawer}, + Core, CosmicFlags, Task, + }, executor, iced::{self, time, window}, iced_core::Length, @@ -42,6 +46,7 @@ pub mod localize; mod add_node; mod dialogs; +mod drawer; mod graph; mod headers; mod icon; @@ -51,7 +56,6 @@ mod message; mod my_widgets; mod node_cache; mod pick_list_utils; -mod settings_drawer; impl CosmicFlags for Flags { type SubCommand = String; @@ -86,7 +90,7 @@ struct Ui { graph_window: Option, toasts: Toasts, dialog: Option, - about: bool, + drawer: Option, } impl cosmic::Application for Ui { @@ -132,7 +136,7 @@ impl cosmic::Application for Ui { graph_window: None, toasts: Toasts::new(AppMsg::RemoveToast), dialog, - about: false, + drawer: None, }; let commands = Task::batch([cosmic::app::command::message(cosmic::app::message::app( @@ -368,11 +372,22 @@ impl cosmic::Application for Ui { } AppMsg::Toggle(ui_msg) => match ui_msg { ToogleMsg::CreateButton(expanded) => self.create_button_expanded = expanded, - ToogleMsg::Settings => { - self.core.window.show_context = !self.core.window.show_context; - self.about = false; - self.set_context_title(fl!("settings")); - } + ToogleMsg::Settings => match &self.drawer { + Some(drawer) => match drawer { + Drawer::Settings => { + self.drawer = None; + self.set_show_context(false); + } + Drawer::About => { + self.drawer = Some(Drawer::Settings); + self.set_show_context(true); + } + }, + None => { + self.drawer = Some(Drawer::Settings); + self.set_show_context(true); + } + }, ToogleMsg::ChooseConfig(expanded) => { self.choose_config_expanded = expanded; } @@ -381,9 +396,12 @@ impl cosmic::Application for Ui { node_c.context_menu_expanded = expanded; } ToogleMsg::About => { - self.set_context_title(fl!("about")); - self.core.window.show_context = true; - self.about = true; + self.drawer = Some(Drawer::About); + self.set_show_context(true) + } + ToogleMsg::CloseDrawer => { + self.set_show_context(false); + self.drawer = None; } }, AppMsg::Config(config_msg) => match config_msg { @@ -589,17 +607,17 @@ impl cosmic::Application for Ui { headers::header_end() } - fn context_drawer(&self) -> Option> { - if self.core.window.show_context { - let drawer = if self.about { - settings_drawer::about() - } else { - settings_drawer(&self.app_state.dir_manager) - }; - Some(drawer) - } else { - None - } + fn context_drawer(&self) -> Option> { + self.drawer.as_ref().map(|drawer| match drawer { + Drawer::Settings => context_drawer( + settings_drawer(&self.app_state.dir_manager), + AppMsg::Toggle(ToogleMsg::CloseDrawer), + ) + .title(fl!("settings")), + Drawer::About => { + context_drawer(about(), AppMsg::Toggle(ToogleMsg::CloseDrawer)).title(fl!("about")) + } + }) } fn subscription(&self) -> iced::Subscription { diff --git a/ui/src/message.rs b/ui/src/message.rs index 167c05a..c6da4f5 100644 --- a/ui/src/message.rs +++ b/ui/src/message.rs @@ -47,10 +47,11 @@ pub enum SettingsMsg { #[derive(Debug, Clone)] pub enum ToogleMsg { CreateButton(bool), - Settings, ChooseConfig(bool), NodeContextMenu(Id, bool), + Settings, About, + CloseDrawer, } #[derive(Debug, Clone)]