From 57e41766b98c50858f58cf9f4d6f916e1146ae06 Mon Sep 17 00:00:00 2001 From: Eduardo Flores Date: Sun, 17 Mar 2024 14:49:24 -0700 Subject: [PATCH 1/2] improv(menu): update menu declaration. - Updated libcosmic - Updated menu declaration. --- Cargo.lock | 75 +++++++++++++++++++--------------- src/app.rs | 12 ++++-- src/key_bind.rs | 47 ++-------------------- src/menu.rs | 104 ++++++++++++++++++++---------------------------- src/tab.rs | 5 +-- 5 files changed, 99 insertions(+), 144 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 08d33ff..e8ed629 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -848,8 +848,7 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145a7f9e9b89453bc0a5e32d166456405d389cea5b578f57f1274b1397588a95" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" dependencies = [ "objc", "objc-foundation", @@ -859,17 +858,16 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" dependencies = [ + "mime 0.1.0", "smithay-clipboard", ] [[package]] name = "clipboard_x11" version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" dependencies = [ "thiserror", "x11rb", @@ -1040,7 +1038,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1057,7 +1055,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "quote", "syn 1.0.109", @@ -1101,7 +1099,7 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.11.2" -source = "git+https://github.com/pop-os/cosmic-text.git#a53a0b3a8c085143470a9d26ac2c2911cc479033" +source = "git+https://github.com/pop-os/cosmic-text.git#18c3d2acec5e7f64a670c6643ee3ab220bc92a89" dependencies = [ "bitflags 2.4.2", "fontdb", @@ -1123,7 +1121,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "almost", "cosmic-config", @@ -1866,9 +1864,9 @@ dependencies = [ [[package]] name = "freedesktop-desktop-entry" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45157175a725e81f3f594382430b6b78af5f8f72db9bd51b94f0785f80fc6d29" +checksum = "287f89b1a3d88dd04d2b65dfec39f3c381efbcded7b736456039c4ee49d54b17" dependencies = [ "dirs 3.0.2", "gettext-rs", @@ -2470,7 +2468,7 @@ dependencies = [ [[package]] name = "iced" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "iced_accessibility", "iced_core", @@ -2480,12 +2478,13 @@ dependencies = [ "iced_winit", "image", "thiserror", + "window_clipboard", ] [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "accesskit", "accesskit_winit", @@ -2494,7 +2493,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "bitflags 1.3.2", "log", @@ -2505,13 +2504,14 @@ dependencies = [ "smol_str", "thiserror", "web-time", + "window_clipboard", "xxhash-rust", ] [[package]] name = "iced_futures" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "futures", "iced_core", @@ -2524,7 +2524,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2548,7 +2548,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2560,17 +2560,18 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "iced_core", "iced_futures", "thiserror", + "window_clipboard", ] [[package]] name = "iced_style" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "iced_core", "once_cell", @@ -2580,7 +2581,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "bytemuck", "cosmic-text", @@ -2597,7 +2598,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2616,7 +2617,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "iced_renderer", "iced_runtime", @@ -2630,7 +2631,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "iced_graphics", "iced_runtime", @@ -2955,10 +2956,11 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#2b23005fbff5a3d7e218a867e1aadb491abeac55" +source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" dependencies = [ "apply", "ashpd 0.7.0", + "chrono", "cosmic-config", "cosmic-theme", "css-color", @@ -2977,7 +2979,7 @@ dependencies = [ "iced_widget", "iced_winit", "lazy_static", - "mime", + "mime 0.3.17", "nix 0.27.1", "palette", "rfd", @@ -3205,6 +3207,14 @@ dependencies = [ "paste", ] +[[package]] +name = "mime" +version = "0.1.0" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +dependencies = [ + "smithay-clipboard", +] + [[package]] name = "mime" version = "0.3.17" @@ -3217,7 +3227,7 @@ version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" dependencies = [ - "mime", + "mime 0.3.17", "unicase", ] @@ -4538,9 +4548,8 @@ dependencies = [ [[package]] name = "smithay-clipboard" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d" +version = "0.8.0" +source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-mime-types#cc0101c1f9ccc937a413bd3af3c0f6217f27e935" dependencies = [ "libc", "smithay-client-toolkit", @@ -5664,13 +5673,13 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" dependencies = [ "clipboard-win", "clipboard_macos", "clipboard_wayland", "clipboard_x11", + "mime 0.1.0", "raw-window-handle 0.6.0", "thiserror", ] @@ -6061,7 +6070,7 @@ checksum = "87bf7b69bb50588d70a36e467be29d3df3e8c32580276d62eded9738c1a797aa" dependencies = [ "dirs-next", "glob", - "mime", + "mime 0.3.17", "nom 5.1.3", "unicase", ] diff --git a/src/app.rs b/src/app.rs index ee8052e..6d86430 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,6 +1,8 @@ // Copyright 2023 System76 // SPDX-License-Identifier: GPL-3.0-only +use cosmic::widget::menu::action::MenuAction; +use cosmic::widget::menu::key_bind::KeyBind; use cosmic::{ app::{message, Command, Core}, cosmic_config, cosmic_theme, executor, @@ -32,7 +34,7 @@ use std::{ use crate::{ config::{AppTheme, Config, IconSizes, TabConfig, CONFIG_VERSION}, fl, home_dir, - key_bind::{key_binds, KeyBind}, + key_bind::key_binds, menu, mime_app, operation::Operation, spawn_detached::spawn_detached, @@ -83,8 +85,10 @@ pub enum Action { WindowNew, } -impl Action { - pub fn message(self, entity_opt: Option) -> Message { +impl MenuAction for Action { + type Message = Message; + + fn message(&self, entity_opt: Option) -> Message { match self { Action::About => Message::ToggleContextPage(ContextPage::About), Action::Copy => Message::Copy(entity_opt), @@ -121,7 +125,7 @@ impl Action { Message::TabMessage(entity_opt, tab::Message::View(tab::View::List)) } Action::ToggleShowHidden => Message::TabMessage(None, tab::Message::ToggleShowHidden), - Action::ToggleSort(sort) => Message::TabMessage(None, tab::Message::ToggleSort(sort)), + Action::ToggleSort(sort) => Message::TabMessage(None, tab::Message::ToggleSort(*sort)), Action::WindowClose => Message::WindowClose, Action::WindowNew => Message::WindowNew, } diff --git a/src/key_bind.rs b/src/key_bind.rs index 9bc6db6..5653613 100644 --- a/src/key_bind.rs +++ b/src/key_bind.rs @@ -1,48 +1,9 @@ -use cosmic::{ - iced::keyboard::{Key, Modifiers}, - iced_core::keyboard::key::Named, -}; -use serde::{Deserialize, Serialize}; -use std::{collections::HashMap, fmt}; +use cosmic::widget::menu::key_bind::KeyBind; +use cosmic::{iced::keyboard::Key, iced_core::keyboard::key::Named}; +use std::collections::HashMap; use crate::app::Action; - -#[derive(Clone, Copy, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] -pub enum Modifier { - Super, - Ctrl, - Alt, - Shift, -} - -#[derive(Clone, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)] -pub struct KeyBind { - pub modifiers: Vec, - pub key: Key, -} - -impl KeyBind { - pub fn matches(&self, modifiers: Modifiers, key: &Key) -> bool { - key == &self.key - && modifiers.logo() == self.modifiers.contains(&Modifier::Super) - && modifiers.control() == self.modifiers.contains(&Modifier::Ctrl) - && modifiers.alt() == self.modifiers.contains(&Modifier::Alt) - && modifiers.shift() == self.modifiers.contains(&Modifier::Shift) - } -} - -impl fmt::Display for KeyBind { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - for modifier in self.modifiers.iter() { - write!(f, "{:?} + ", modifier)?; - } - match &self.key { - Key::Character(c) => write!(f, "{}", c.to_uppercase()), - Key::Named(named) => write!(f, "{:?}", named), - other => write!(f, "{:?}", other), - } - } -} +use cosmic::widget::menu::key_bind::Modifier; //TODO: load from config pub fn key_binds() -> HashMap { diff --git a/src/menu.rs b/src/menu.rs index e0a4e79..1facb8b 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -1,5 +1,7 @@ // SPDX-License-Identifier: GPL-3.0-only +use cosmic::widget::menu::key_bind::KeyBind; +use cosmic::widget::menu::menu_tree::{menu_items, menu_root, MenuItem}; use cosmic::{ //TODO: export iced::widget::horizontal_rule in cosmic::widget iced::{widget::horizontal_rule, Alignment, Background, Border, Length}, @@ -16,7 +18,6 @@ use crate::{ app::{Action, Message}, config::TabConfig, fl, - key_bind::KeyBind, tab::{self, HeadingOptions, Location, Tab}, }; @@ -171,75 +172,56 @@ pub fn context_menu<'a>( } pub fn menu_bar<'a>(key_binds: &HashMap) -> Element<'a, Message> { - //TODO: port to libcosmic - let menu_root = |label| { - widget::button(widget::text(label)) - .padding([4, 12]) - .style(theme::Button::MenuRoot) - }; - - let find_key = |action: &Action| -> String { - for (key_bind, key_action) in key_binds.iter() { - if action == key_action { - return key_bind.to_string(); - } - } - String::new() - }; - - let menu_item = |label, action| { - let key = find_key(&action); - MenuTree::new( - menu_button!( - widget::text(label), - widget::horizontal_space(Length::Fill), - widget::text(key) - ) - .on_press(action.message(None)), - ) - }; - MenuBar::new(vec![ MenuTree::with_children( menu_root(fl!("file")), - vec![ - menu_item(fl!("new-tab"), Action::TabNew), - menu_item(fl!("new-window"), Action::WindowNew), - menu_item(fl!("new-file"), Action::NewFile), - menu_item(fl!("new-folder"), Action::NewFolder), - menu_item(fl!("open"), Action::Open), - MenuTree::new(horizontal_rule(1)), - menu_item(fl!("rename"), Action::Rename), - //TOOD: add to sidebar, then divider - MenuTree::new(horizontal_rule(1)), - menu_item(fl!("move-to-trash"), Action::MoveToTrash), - MenuTree::new(horizontal_rule(1)), - menu_item(fl!("close-tab"), Action::TabClose), - menu_item(fl!("quit"), Action::WindowClose), - ], + menu_items( + key_binds, + vec![ + MenuItem::Action(fl!("new-tab"), Action::TabNew), + MenuItem::Action(fl!("new-window"), Action::WindowNew), + MenuItem::Action(fl!("new-file"), Action::NewFile), + MenuItem::Action(fl!("new-folder"), Action::NewFolder), + MenuItem::Action(fl!("open"), Action::Open), + MenuItem::Separator, + MenuItem::Action(fl!("rename"), Action::Rename), + //TOOD: add to sidebar, then divider + MenuItem::Separator, + MenuItem::Action(fl!("move-to-trash"), Action::MoveToTrash), + MenuItem::Separator, + MenuItem::Action(fl!("close-tab"), Action::TabClose), + MenuItem::Action(fl!("quit"), Action::WindowClose), + ], + ), ), MenuTree::with_children( menu_root(fl!("edit")), - vec![ - menu_item(fl!("cut"), Action::Cut), - menu_item(fl!("copy"), Action::Copy), - menu_item(fl!("paste"), Action::Paste), - menu_item(fl!("select-all"), Action::SelectAll), - MenuTree::new(horizontal_rule(1)), - //TODO: edit history - menu_item(fl!("operations"), Action::Operations), - ], + menu_items( + key_binds, + vec![ + MenuItem::Action(fl!("cut"), Action::Cut), + MenuItem::Action(fl!("copy"), Action::Copy), + MenuItem::Action(fl!("paste"), Action::Paste), + MenuItem::Action(fl!("select-all"), Action::SelectAll), + MenuItem::Separator, + //TODO: edit history + MenuItem::Action(fl!("operations"), Action::Operations), + ], + ), ), MenuTree::with_children( menu_root(fl!("view")), - vec![ - menu_item(fl!("grid-view"), Action::TabViewGrid), - menu_item(fl!("list-view"), Action::TabViewList), - MenuTree::new(horizontal_rule(1)), - menu_item(fl!("menu-settings"), Action::Settings), - MenuTree::new(horizontal_rule(1)), - menu_item(fl!("menu-about"), Action::About), - ], + menu_items( + key_binds, + vec![ + MenuItem::Action(fl!("grid-view"), Action::TabViewGrid), + MenuItem::Action(fl!("list-view"), Action::TabViewList), + MenuItem::Separator, + MenuItem::Action(fl!("menu-settings"), Action::Settings), + MenuItem::Separator, + MenuItem::Action(fl!("menu-about"), Action::About), + ], + ), ), ]) .item_height(ItemHeight::Dynamic(40)) diff --git a/src/tab.rs b/src/tab.rs index 7052dfd..90e72b6 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -1,3 +1,4 @@ +use cosmic::widget::menu::key_bind::KeyBind; use cosmic::{ cosmic_theme, iced::{ @@ -37,9 +38,7 @@ use crate::{ app::{self, Action}, config::{IconSizes, TabConfig}, dialog::DialogKind, - fl, - key_bind::KeyBind, - menu, + fl, menu, mime_app::{mime_apps, MimeApp}, mime_icon::{mime_for_path, mime_icon}, mouse_area, From 0c39be4b484340129cb9c5a34242daf490497821 Mon Sep 17 00:00:00 2001 From: Eduardo Flores Date: Mon, 18 Mar 2024 19:14:23 -0700 Subject: [PATCH 2/2] refactor(menu): update menu declaration. - Updated libcosmic - Updated menu declaration. --- Cargo.lock | 46 ++++++++++++++++++++++++---------------------- src/menu.rs | 48 ++++++++++++++++++++++++------------------------ 2 files changed, 48 insertions(+), 46 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e8ed629..fd29a3d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -848,7 +848,7 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "objc", "objc-foundation", @@ -858,7 +858,7 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "mime 0.1.0", "smithay-clipboard", @@ -867,7 +867,7 @@ dependencies = [ [[package]] name = "clipboard_x11" version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "thiserror", "x11rb", @@ -1038,7 +1038,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1055,7 +1055,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "quote", "syn 1.0.109", @@ -1099,7 +1099,7 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.11.2" -source = "git+https://github.com/pop-os/cosmic-text.git#18c3d2acec5e7f64a670c6643ee3ab220bc92a89" +source = "git+https://github.com/pop-os/cosmic-text.git#b08676909f882f553ab574601b35b58276a52458" dependencies = [ "bitflags 2.4.2", "fontdb", @@ -1121,15 +1121,17 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "almost", "cosmic-config", "csscolorparser", + "dirs 5.0.1", "lazy_static", "palette", "ron", "serde", + "thiserror", ] [[package]] @@ -2468,7 +2470,7 @@ dependencies = [ [[package]] name = "iced" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_accessibility", "iced_core", @@ -2484,7 +2486,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "accesskit", "accesskit_winit", @@ -2493,7 +2495,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "bitflags 1.3.2", "log", @@ -2511,7 +2513,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "futures", "iced_core", @@ -2524,7 +2526,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2548,7 +2550,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -2560,7 +2562,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_core", "iced_futures", @@ -2571,7 +2573,7 @@ dependencies = [ [[package]] name = "iced_style" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_core", "once_cell", @@ -2581,7 +2583,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "bytemuck", "cosmic-text", @@ -2598,7 +2600,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "bitflags 1.3.2", "bytemuck", @@ -2617,7 +2619,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_renderer", "iced_runtime", @@ -2631,7 +2633,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.12.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "iced_graphics", "iced_runtime", @@ -2956,7 +2958,7 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libcosmic" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#171e697738e75cb1992b6ce9a0a728e89c72e119" +source = "git+https://github.com/pop-os/libcosmic.git#01d7e46feadccf70825c3a822a566fb266d3add6" dependencies = [ "apply", "ashpd 0.7.0", @@ -3210,7 +3212,7 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "smithay-clipboard", ] @@ -5673,7 +5675,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#c3e9e794b94a2e79419517145424dc2035a572da" +source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-mime-types#f65a6c303bbbd6c7bf88f9bc34421ec06d893bea" dependencies = [ "clipboard-win", "clipboard_macos", diff --git a/src/menu.rs b/src/menu.rs index 1facb8b..51a511c 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -178,19 +178,19 @@ pub fn menu_bar<'a>(key_binds: &HashMap) -> Element<'a, Message menu_items( key_binds, vec![ - MenuItem::Action(fl!("new-tab"), Action::TabNew), - MenuItem::Action(fl!("new-window"), Action::WindowNew), - MenuItem::Action(fl!("new-file"), Action::NewFile), - MenuItem::Action(fl!("new-folder"), Action::NewFolder), - MenuItem::Action(fl!("open"), Action::Open), - MenuItem::Separator, - MenuItem::Action(fl!("rename"), Action::Rename), + MenuItem::Button(fl!("new-tab"), Action::TabNew), + MenuItem::Button(fl!("new-window"), Action::WindowNew), + MenuItem::Button(fl!("new-file"), Action::NewFile), + MenuItem::Button(fl!("new-folder"), Action::NewFolder), + MenuItem::Button(fl!("open"), Action::Open), + MenuItem::Divider, + MenuItem::Button(fl!("rename"), Action::Rename), //TOOD: add to sidebar, then divider - MenuItem::Separator, - MenuItem::Action(fl!("move-to-trash"), Action::MoveToTrash), - MenuItem::Separator, - MenuItem::Action(fl!("close-tab"), Action::TabClose), - MenuItem::Action(fl!("quit"), Action::WindowClose), + MenuItem::Divider, + MenuItem::Button(fl!("move-to-trash"), Action::MoveToTrash), + MenuItem::Divider, + MenuItem::Button(fl!("close-tab"), Action::TabClose), + MenuItem::Button(fl!("quit"), Action::WindowClose), ], ), ), @@ -199,13 +199,13 @@ pub fn menu_bar<'a>(key_binds: &HashMap) -> Element<'a, Message menu_items( key_binds, vec![ - MenuItem::Action(fl!("cut"), Action::Cut), - MenuItem::Action(fl!("copy"), Action::Copy), - MenuItem::Action(fl!("paste"), Action::Paste), - MenuItem::Action(fl!("select-all"), Action::SelectAll), - MenuItem::Separator, + MenuItem::Button(fl!("cut"), Action::Cut), + MenuItem::Button(fl!("copy"), Action::Copy), + MenuItem::Button(fl!("paste"), Action::Paste), + MenuItem::Button(fl!("select-all"), Action::SelectAll), + MenuItem::Divider, //TODO: edit history - MenuItem::Action(fl!("operations"), Action::Operations), + MenuItem::Button(fl!("operations"), Action::Operations), ], ), ), @@ -214,12 +214,12 @@ pub fn menu_bar<'a>(key_binds: &HashMap) -> Element<'a, Message menu_items( key_binds, vec![ - MenuItem::Action(fl!("grid-view"), Action::TabViewGrid), - MenuItem::Action(fl!("list-view"), Action::TabViewList), - MenuItem::Separator, - MenuItem::Action(fl!("menu-settings"), Action::Settings), - MenuItem::Separator, - MenuItem::Action(fl!("menu-about"), Action::About), + MenuItem::Button(fl!("grid-view"), Action::TabViewGrid), + MenuItem::Button(fl!("list-view"), Action::TabViewList), + MenuItem::Divider, + MenuItem::Button(fl!("menu-settings"), Action::Settings), + MenuItem::Divider, + MenuItem::Button(fl!("menu-about"), Action::About), ], ), ),