feat: add context menus to nav bar

This commit is contained in:
Michael Aaron Murphy 2024-04-22 23:14:44 +02:00 committed by Jeremy Soller
parent d80c358ca5
commit 8c3af501ca
6 changed files with 314 additions and 193 deletions

275
Cargo.lock generated
View file

@ -4,9 +4,9 @@ version = 3
[[package]]
name = "ab_glyph"
version = "0.2.24"
version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e08104bebc65a46f8bc7aa733d39ea6874bfa7156f41a46b805785e3af1587d"
checksum = "6f90148830dac590fac7ccfe78ec4a8ea404c60f75a24e16407a71f0f40de775"
dependencies = [
"ab_glyph_rasterizer",
"owned_ttf_parser",
@ -38,8 +38,8 @@ source = "git+https://github.com/wash2/accesskit.git?branch=winit-0.29#5f9b61c82
dependencies = [
"accesskit",
"accesskit_consumer",
"icrate 0.1.0",
"objc2 0.5.0",
"icrate 0.1.2",
"objc2 0.5.1",
"once_cell",
]
@ -83,7 +83,7 @@ dependencies = [
"accesskit_macos",
"accesskit_unix",
"accesskit_windows",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"winit",
]
@ -345,9 +345,9 @@ dependencies = [
[[package]]
name = "async-channel"
version = "2.2.0"
version = "2.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928"
dependencies = [
"concurrent-queue",
"event-listener 5.3.0",
@ -358,11 +358,10 @@ dependencies = [
[[package]]
name = "async-executor"
version = "1.10.0"
version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f98c37cf288e302c16ef6c8472aad1e034c6c84ce5ea7b8101c98eb4a802fee"
checksum = "b10202063978b3351199d68f8b22c4e47e4b1b822f8d43fd862d5ea8c006b29a"
dependencies = [
"async-lock 3.3.0",
"async-task",
"concurrent-queue",
"fastrand 2.0.2",
@ -414,8 +413,8 @@ dependencies = [
"futures-io",
"futures-lite 2.3.0",
"parking",
"polling 3.6.0",
"rustix 0.38.32",
"polling 3.7.0",
"rustix 0.38.34",
"slab",
"tracing",
"windows-sys 0.52.0",
@ -454,7 +453,7 @@ dependencies = [
"cfg-if",
"event-listener 3.1.0",
"futures-lite 1.13.0",
"rustix 0.38.32",
"rustix 0.38.34",
"windows-sys 0.48.0",
]
@ -466,25 +465,25 @@ checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
name = "async-signal"
version = "0.2.5"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5"
checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda"
dependencies = [
"async-io 2.3.2",
"async-lock 2.8.0",
"async-lock 3.3.0",
"atomic-waker",
"cfg-if",
"futures-core",
"futures-io",
"rustix 0.38.32",
"rustix 0.38.34",
"signal-hook-registry",
"slab",
"windows-sys 0.48.0",
"windows-sys 0.52.0",
]
[[package]]
@ -501,7 +500,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -527,7 +526,7 @@ name = "atomicwrites"
version = "0.4.2"
source = "git+https://github.com/jackpot51/rust-atomicwrites#043ab4859d53ffd3d55334685303d8df39c9f768"
dependencies = [
"rustix 0.38.32",
"rustix 0.38.34",
"tempfile",
"windows-sys 0.48.0",
]
@ -684,7 +683,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e58aa60e59d8dbfcc36138f5f18be5f24394d33b38b24f7fd0b1caa33095f22f"
dependencies = [
"block-sys",
"objc2 0.5.0",
"objc2 0.5.1",
]
[[package]]
@ -726,7 +725,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -759,8 +758,8 @@ checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
dependencies = [
"bitflags 2.5.0",
"log",
"polling 3.6.0",
"rustix 0.38.32",
"polling 3.7.0",
"rustix 0.38.34",
"slab",
"thiserror",
]
@ -773,8 +772,8 @@ checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
dependencies = [
"bitflags 2.5.0",
"log",
"polling 3.6.0",
"rustix 0.38.32",
"polling 3.7.0",
"rustix 0.38.34",
"slab",
"thiserror",
]
@ -786,7 +785,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
dependencies = [
"calloop 0.12.4",
"rustix 0.38.32",
"rustix 0.38.34",
"wayland-backend",
"wayland-client",
]
@ -798,19 +797,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20"
dependencies = [
"calloop 0.13.0",
"rustix 0.38.32",
"rustix 0.38.34",
"wayland-backend",
"wayland-client",
]
[[package]]
name = "cc"
version = "1.0.92"
version = "1.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41"
checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b"
dependencies = [
"jobserver",
"libc",
"once_cell",
]
[[package]]
@ -849,9 +849,9 @@ checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f"
[[package]]
name = "chrono"
version = "0.4.37"
version = "0.4.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
dependencies = [
"android-tzdata",
"iana-time-zone",
@ -864,9 +864,9 @@ dependencies = [
[[package]]
name = "clipboard-win"
version = "5.3.0"
version = "5.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d517d4b86184dbb111d3556a10f1c8a04da7428d2987bf1081602bf11c3aa9ee"
checksum = "79f4473f5144e20d9aceaf2972478f06ddf687831eafeeb434fbaf0acc4144ad"
dependencies = [
"error-code",
]
@ -1065,7 +1065,7 @@ dependencies = [
[[package]]
name = "cosmic-config"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"atomicwrites",
"cosmic-config-derive",
@ -1082,7 +1082,7 @@ dependencies = [
[[package]]
name = "cosmic-config-derive"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"quote",
"syn 1.0.109",
@ -1115,6 +1115,7 @@ dependencies = [
"rust-embed",
"serde",
"shlex",
"slotmap",
"smol_str",
"tempfile",
"test-log",
@ -1151,7 +1152,7 @@ dependencies = [
[[package]]
name = "cosmic-theme"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"almost",
"cosmic-config",
@ -1250,12 +1251,12 @@ dependencies = [
[[package]]
name = "ctor"
version = "0.2.7"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad291aa74992b9b7a7e88c38acbbf6ad7e107f1d90ee8775b7bc1fc3394f485c"
checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f"
dependencies = [
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -1295,7 +1296,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -1306,7 +1307,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
dependencies = [
"darling_core",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -1357,7 +1358,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -1446,7 +1447,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -1474,7 +1475,7 @@ source = "git+https://github.com/pop-os/window_clipboard.git?tag=pop-dnd-4#6ca3c
dependencies = [
"bitflags 2.5.0",
"mime 0.1.0",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"smithay-client-toolkit 0.18.0",
"smithay-clipboard",
]
@ -1495,7 +1496,7 @@ dependencies = [
"bytemuck",
"drm-ffi",
"drm-fourcc",
"rustix 0.38.32",
"rustix 0.38.34",
]
[[package]]
@ -1505,7 +1506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6"
dependencies = [
"drm-sys",
"rustix 0.38.32",
"rustix 0.38.34",
]
[[package]]
@ -1548,7 +1549,7 @@ checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -1881,7 +1882,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -2054,7 +2055,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -2287,7 +2288,7 @@ dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -2580,7 +2581,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
"syn 2.0.58",
"syn 2.0.60",
"unic-langid",
]
@ -2594,7 +2595,7 @@ dependencies = [
"i18n-config",
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -2623,7 +2624,7 @@ dependencies = [
[[package]]
name = "iced"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"dnd",
"iced_accessibility",
@ -2641,7 +2642,7 @@ dependencies = [
[[package]]
name = "iced_accessibility"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"accesskit",
"accesskit_winit",
@ -2650,7 +2651,7 @@ dependencies = [
[[package]]
name = "iced_core"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"bitflags 2.5.0",
"dnd",
@ -2658,7 +2659,7 @@ dependencies = [
"mime 0.1.0",
"num-traits",
"palette",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"serde",
"smol_str",
"thiserror",
@ -2670,7 +2671,7 @@ dependencies = [
[[package]]
name = "iced_futures"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"futures",
"iced_core",
@ -2683,7 +2684,7 @@ dependencies = [
[[package]]
name = "iced_graphics"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"bitflags 2.5.0",
"bytemuck",
@ -2697,7 +2698,7 @@ dependencies = [
"log",
"lyon_path",
"once_cell",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"rustc-hash",
"thiserror",
"unicode-segmentation",
@ -2707,7 +2708,7 @@ dependencies = [
[[package]]
name = "iced_renderer"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"iced_graphics",
"iced_tiny_skia",
@ -2719,7 +2720,7 @@ dependencies = [
[[package]]
name = "iced_runtime"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"dnd",
"iced_core",
@ -2731,7 +2732,7 @@ dependencies = [
[[package]]
name = "iced_style"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"iced_core",
"once_cell",
@ -2741,7 +2742,7 @@ dependencies = [
[[package]]
name = "iced_tiny_skia"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"bytemuck",
"cosmic-text",
@ -2758,7 +2759,7 @@ dependencies = [
[[package]]
name = "iced_wgpu"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"bitflags 2.5.0",
"bytemuck",
@ -2777,7 +2778,7 @@ dependencies = [
[[package]]
name = "iced_widget"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"dnd",
"iced_renderer",
@ -2793,7 +2794,7 @@ dependencies = [
[[package]]
name = "iced_winit"
version = "0.12.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"dnd",
"iced_graphics",
@ -2821,12 +2822,12 @@ dependencies = [
[[package]]
name = "icrate"
version = "0.1.0"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e286f4b975ac6c054971a0600a9b76438b332edace54bff79c71c9d3adfc9772"
checksum = "3fb69199826926eb864697bddd27f73d9fddcffc004f5733131e15b465e30642"
dependencies = [
"block2 0.4.0",
"objc2 0.5.0",
"objc2 0.5.1",
]
[[package]]
@ -2987,9 +2988,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
[[package]]
name = "jobserver"
version = "0.1.30"
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "685a7d121ee3f65ae4fddd72b25a04bb36b6af81bc0828f7d5434c0fe60fa3a2"
checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
dependencies = [
"libc",
]
@ -3119,7 +3120,7 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
[[package]]
name = "libcosmic"
version = "0.1.0"
source = "git+https://github.com/pop-os/libcosmic.git#c5bd7cf28a67a6c0ce791e9d27f1593cf04c492c"
source = "git+https://github.com/pop-os/libcosmic.git#1adeadacf60c7f7381ec270710fcdab706d4175e"
dependencies = [
"apply",
"ashpd 0.7.0",
@ -3303,9 +3304,9 @@ dependencies = [
[[package]]
name = "lyon_tessellation"
version = "1.0.13"
version = "1.0.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c7c67b5bc8123b352b2e7e742b47d1f236a13fe77619433be9568fbd888e9c0"
checksum = "4470bd0b1f29eda66068ab1fd47719facda0a136b829bcca69287ed0ac40a134"
dependencies = [
"float_next_after",
"lyon_path",
@ -3458,7 +3459,7 @@ dependencies = [
"log",
"ndk-sys",
"num_enum",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"thiserror",
]
@ -3664,7 +3665,7 @@ dependencies = [
"proc-macro-crate 3.1.0",
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -3699,9 +3700,9 @@ dependencies = [
[[package]]
name = "objc-sys"
version = "0.3.2"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459"
checksum = "da284c198fb9b7b0603f8635185e85fbd5b64ee154b1ed406d489077de2d6d60"
[[package]]
name = "objc2"
@ -3715,12 +3716,12 @@ dependencies = [
[[package]]
name = "objc2"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9a9c7f0d511a4ce26b078183179dca908171cfc69f88986fe36c5138e1834476"
checksum = "b4b25e1034d0e636cd84707ccdaa9f81243d399196b8a773946dcffec0401659"
dependencies = [
"objc-sys",
"objc2-encode 4.0.0",
"objc2-encode 4.0.1",
]
[[package]]
@ -3731,9 +3732,9 @@ checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666"
[[package]]
name = "objc2-encode"
version = "4.0.0"
version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2ff06a6505cde0766484f38d8479ac8e6d31c66fbc2d5492f65ca8c091456379"
checksum = "88658da63e4cc2c8adb1262902cd6af51094df0488b760d6fd27194269c0950a"
[[package]]
name = "objc_exception"
@ -3835,7 +3836,7 @@ dependencies = [
"proc-macro-error",
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -3868,7 +3869,7 @@ checksum = "e8890702dbec0bad9116041ae586f84805b13eecd1d8b1df27c29998a9969d6d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -3985,7 +3986,7 @@ dependencies = [
"phf_shared",
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -4063,15 +4064,15 @@ dependencies = [
[[package]]
name = "polling"
version = "3.6.0"
version = "3.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3"
dependencies = [
"cfg-if",
"concurrent-queue",
"hermit-abi",
"pin-project-lite",
"rustix 0.38.32",
"rustix 0.38.34",
"tracing",
"windows-sys 0.52.0",
]
@ -4139,9 +4140,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.79"
version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
dependencies = [
"unicode-ident",
]
@ -4235,9 +4236,9 @@ checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
[[package]]
name = "raw-window-handle"
version = "0.6.0"
version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544"
checksum = "8cc3bcbdb1ddfc11e700e62968e6b4cc9c75bb466464ad28fb61c5b2c964418b"
[[package]]
name = "rayon"
@ -4436,7 +4437,7 @@ dependencies = [
"proc-macro2",
"quote",
"rust-embed-utils",
"syn 2.0.58",
"syn 2.0.60",
"walkdir",
]
@ -4488,9 +4489,9 @@ dependencies = [
[[package]]
name = "rustix"
version = "0.38.32"
version = "0.38.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
dependencies = [
"bitflags 2.5.0",
"errno",
@ -4579,22 +4580,22 @@ checksum = "58bf37232d3bb9a2c4e641ca2a11d83b5062066f88df7fed36c28772046d65ba"
[[package]]
name = "serde"
version = "1.0.197"
version = "1.0.198"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.197"
version = "1.0.198"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -4605,7 +4606,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -4647,9 +4648,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "signal-hook-registry"
version = "1.4.1"
version = "1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
dependencies = [
"libc",
]
@ -4711,7 +4712,7 @@ dependencies = [
"libc",
"log",
"memmap2",
"rustix 0.38.32",
"rustix 0.38.34",
"thiserror",
"wayland-backend",
"wayland-client",
@ -4736,7 +4737,7 @@ dependencies = [
"libc",
"log",
"memmap2",
"rustix 0.38.32",
"rustix 0.38.34",
"thiserror",
"wayland-backend",
"wayland-client",
@ -4754,7 +4755,7 @@ version = "0.8.0"
source = "git+https://github.com/pop-os/smithay-clipboard?tag=pop-dnd-3#2f2430bec35f0adb9cb93e85e648ff8449d44dad"
dependencies = [
"libc",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"smithay-client-toolkit 0.18.0",
"wayland-backend",
]
@ -4805,9 +4806,9 @@ dependencies = [
"log",
"memmap2",
"objc",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"redox_syscall 0.4.1",
"rustix 0.38.32",
"rustix 0.38.34",
"tiny-xlib",
"wasm-bindgen",
"wayland-backend",
@ -4897,9 +4898,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.58"
version = "2.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
dependencies = [
"proc-macro2",
"quote",
@ -4959,7 +4960,7 @@ checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
dependencies = [
"cfg-if",
"fastrand 2.0.2",
"rustix 0.38.32",
"rustix 0.38.34",
"windows-sys 0.52.0",
]
@ -4990,27 +4991,27 @@ checksum = "c8f546451eaa38373f549093fe9fd05e7d2bade739e2ddf834b9968621d60107"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
name = "thiserror"
version = "1.0.58"
version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.58"
version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -5164,7 +5165,7 @@ dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"toml_edit 0.22.9",
"toml_edit 0.22.12",
]
[[package]]
@ -5200,9 +5201,9 @@ dependencies = [
[[package]]
name = "toml_edit"
version = "0.22.9"
version = "0.22.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
dependencies = [
"indexmap",
"serde",
@ -5230,7 +5231,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]
@ -5539,7 +5540,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
"wasm-bindgen-shared",
]
@ -5573,7 +5574,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@ -5607,7 +5608,7 @@ checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
dependencies = [
"cc",
"downcast-rs",
"rustix 0.38.32",
"rustix 0.38.34",
"scoped-tls",
"smallvec",
"wayland-sys",
@ -5620,7 +5621,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
dependencies = [
"bitflags 2.5.0",
"rustix 0.38.32",
"rustix 0.38.34",
"wayland-backend",
"wayland-scanner",
]
@ -5642,7 +5643,7 @@ version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba"
dependencies = [
"rustix 0.38.32",
"rustix 0.38.34",
"wayland-client",
"xcursor",
]
@ -5747,7 +5748,7 @@ dependencies = [
"naga",
"parking_lot 0.12.1",
"profiling",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"smallvec",
"static_assertions",
"wasm-bindgen",
@ -5774,7 +5775,7 @@ dependencies = [
"once_cell",
"parking_lot 0.12.1",
"profiling",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"rustc-hash",
"smallvec",
"thiserror",
@ -5815,7 +5816,7 @@ dependencies = [
"parking_lot 0.12.1",
"profiling",
"range-alloc",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"renderdoc-sys",
"rustc-hash",
"smallvec",
@ -5884,7 +5885,7 @@ dependencies = [
"clipboard_x11",
"dnd",
"mime 0.1.0",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"thiserror",
]
@ -6180,9 +6181,9 @@ dependencies = [
"once_cell",
"orbclient",
"percent-encoding",
"raw-window-handle 0.6.0",
"raw-window-handle 0.6.1",
"redox_syscall 0.3.5",
"rustix 0.38.32",
"rustix 0.38.34",
"sctk-adwaita",
"smithay-client-toolkit 0.18.1",
"smol_str",
@ -6241,7 +6242,7 @@ dependencies = [
"libc",
"libloading 0.8.3",
"once_cell",
"rustix 0.38.32",
"rustix 0.38.34",
"x11rb-protocol",
]
@ -6419,7 +6420,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.58",
"syn 2.0.60",
]
[[package]]

View file

@ -39,6 +39,7 @@ i18n-embed = { version = "0.14", features = [
] }
i18n-embed-fl = "0.7"
rust-embed = "8"
slotmap = "1.0.7"
[dependencies.libcosmic]
git = "https://github.com/pop-os/libcosmic.git"

View file

@ -21,6 +21,8 @@ cancel = Cancel
open = Open
open-file = Open file
open-folder = Open folder
open-in-new-tab = Open in new tab
open-in-new-window = Open in new window
open-multiple-files = Open multiple files
open-multiple-folders = Open multiple folders
save = Save

View file

@ -29,6 +29,7 @@ use notify_debouncer_full::{
notify::{self, RecommendedWatcher, Watcher},
DebouncedEvent, Debouncer, FileIdMap,
};
use slotmap::Key as SlotMapKey;
use std::{
any::TypeId,
collections::{BTreeMap, HashMap, HashSet, VecDeque},
@ -121,7 +122,7 @@ impl MenuAction for Action {
Action::OpenWith => Message::ToggleContextPage(ContextPage::OpenWith),
Action::Operations => Message::ToggleContextPage(ContextPage::Operations),
Action::Paste => Message::Paste(entity_opt),
Action::Properties => Message::ToggleContextPage(ContextPage::Properties),
Action::Properties => Message::ToggleContextPage(ContextPage::Properties(None)),
Action::Rename => Message::Rename(entity_opt),
Action::RestoreFromTrash => Message::RestoreFromTrash(entity_opt),
Action::SelectAll => Message::TabMessage(entity_opt, tab::Message::SelectAll),
@ -144,6 +145,27 @@ impl MenuAction for Action {
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
enum ContextItem {
NavBar(segmented_button::Entity),
TabBar(segmented_button::Entity),
}
#[derive(Copy, Clone, Debug, Eq, PartialEq)]
pub enum NavMenuAction {
OpenInNewTab(segmented_button::Entity),
OpenInNewWindow(segmented_button::Entity),
Properties(segmented_button::Entity),
}
impl MenuAction for NavMenuAction {
type Message = cosmic::app::Message<Message>;
fn message(&self, _entity: Option<Entity>) -> Self::Message {
cosmic::app::Message::App(Message::NavMenuAction(*self))
}
}
/// Messages that are used specifically by our [`App`].
#[derive(Clone, Debug)]
pub enum Message {
@ -160,6 +182,8 @@ pub enum Message {
Modifiers(Modifiers),
MoveToTrash(Option<Entity>),
MounterItems(MounterKey, MounterItems),
NavBarContext(Entity),
NavMenuAction(NavMenuAction),
NewItem(Option<Entity>, bool),
NotifyEvents(Vec<DebouncedEvent>),
NotifyWatcher(WatcherWrapper),
@ -200,7 +224,7 @@ pub enum ContextPage {
About,
OpenWith,
Operations,
Properties,
Properties(Option<ContextItem>),
Settings,
}
@ -210,7 +234,7 @@ impl ContextPage {
Self::About => String::new(),
Self::OpenWith => fl!("open-with"),
Self::Operations => fl!("operations"),
Self::Properties => fl!("properties"),
Self::Properties(..) => fl!("properties"),
Self::Settings => fl!("settings"),
}
}
@ -259,6 +283,7 @@ impl PartialEq for WatcherWrapper {
/// The [`App`] stores application-specific state.
pub struct App {
core: Core,
nav_bar_context_id: segmented_button::Entity,
nav_model: segmented_button::SingleSelectModel,
tab_model: segmented_button::Model<segmented_button::SingleSelect>,
config_handler: Option<cosmic_config::Config>,
@ -511,9 +536,35 @@ impl App {
widget::settings::view_column(children).into()
}
fn properties(&self) -> Element<Message> {
fn properties(&self, entity: Option<ContextItem>) -> Element<Message> {
match entity {
None => self.tab_properties(self.tab_model.active()),
Some(ContextItem::TabBar(entity)) => self.tab_properties(entity),
Some(ContextItem::NavBar(item)) => {
let mut children = Vec::new();
if let Some(location) = self.nav_model.data::<Location>(item) {
if let Location::Path(path) = location {
let parent = path.parent().unwrap_or(path);
for item in Location::Path(parent.to_owned()).scan(IconSizes::default()) {
if item.path_opt.as_deref() == Some(path) {
children.push(item.property_view(IconSizes::default()));
}
}
};
}
widget::settings::view_column(children).into()
}
}
}
fn tab_properties(&self, entity: segmented_button::Entity) -> Element<Message> {
let mut children = Vec::new();
let entity = self.tab_model.active();
if let Some(tab) = self.tab_model.data::<Tab>(entity) {
if let Some(items) = tab.items_opt() {
for item in items.iter() {
@ -526,6 +577,7 @@ impl App {
}
}
}
widget::settings::view_column(children).into()
}
@ -672,16 +724,18 @@ impl Application for App {
let nav_model = self.nav_model()?;
let mut nav = cosmic::widget::nav_bar_dnd(
nav_model,
|entity| cosmic::app::Message::Cosmic(cosmic::app::cosmic::Message::NavBar(entity)),
|entity, _| cosmic::app::Message::App(Message::DndEnterNav(entity)),
|_| cosmic::app::Message::App(Message::DndExitNav),
|entity, data, action| {
cosmic::app::Message::App(Message::DndDropNav(entity, data, action))
},
self.nav_drag_id,
);
let mut nav = cosmic::widget::nav_bar(nav_model, |entity| {
cosmic::app::Message::Cosmic(cosmic::app::cosmic::Message::NavBar(entity))
})
.drag_id(self.nav_drag_id)
.on_dnd_enter(|entity, _| cosmic::app::Message::App(Message::DndEnterNav(entity)))
.on_dnd_leave(|_| cosmic::app::Message::App(Message::DndExitNav))
.on_dnd_drop(|entity, data, action| {
cosmic::app::Message::App(Message::DndDropNav(entity, data, action))
})
.on_context(|entity| cosmic::app::Message::App(Message::NavBarContext(entity)))
.context_menu(self.nav_context_menu(self.nav_bar_context_id))
.into_container();
if !self.core().is_condensed() {
nav = nav.max_width(280);
@ -734,6 +788,7 @@ impl Application for App {
let mut app = App {
core,
nav_bar_context_id: segmented_button::Entity::null(),
nav_model: nav_model.build(),
tab_model: segmented_button::ModelBuilder::default().build(),
config_handler: flags.config_handler,
@ -787,6 +842,30 @@ impl Application for App {
(app, Command::batch(commands))
}
fn nav_context_menu(
&self,
id: widget::nav_bar::Id,
) -> Option<Vec<widget::menu::Tree<cosmic::app::Message<Self::Message>>>> {
Some(cosmic::widget::menu::items(
&HashMap::new(),
vec![
cosmic::widget::menu::Item::Button(
fl!("open-in-new-tab"),
NavMenuAction::OpenInNewTab(id),
),
cosmic::widget::menu::Item::Button(
fl!("open-in-new-window"),
NavMenuAction::OpenInNewWindow(id),
),
cosmic::widget::menu::Item::Divider,
cosmic::widget::menu::Item::Button(
fl!("properties"),
NavMenuAction::Properties(id),
),
],
))
}
fn nav_model(&self) -> Option<&segmented_button::SingleSelectModel> {
Some(&self.nav_model)
}
@ -1570,6 +1649,47 @@ impl Application for App {
return self.update(Message::TabActivate(entity));
}
}
// Tracks which nav bar item to show a context menu for.
Message::NavBarContext(entity) => {
self.nav_bar_context_id = entity;
}
// Applies selected nav bar context menu operation.
Message::NavMenuAction(action) => match action {
NavMenuAction::OpenInNewTab(entity) => {
match self.nav_model.data::<Location>(entity) {
Some(Location::Path(ref path)) => {
return self.open_tab(Location::Path(path.clone()));
}
_ => {}
}
}
// Open the selected path in a new cosmic-files window.
NavMenuAction::OpenInNewWindow(entity) => {
if let Some(&Location::Path(ref path)) = self.nav_model.data::<Location>(entity)
{
match env::current_exe() {
Ok(exe) => match process::Command::new(&exe).arg(path).spawn() {
Ok(_child) => {}
Err(err) => {
log::error!("failed to execute {:?}: {}", exe, err);
}
},
Err(err) => {
log::error!("failed to get current executable path: {}", err);
}
}
}
}
NavMenuAction::Properties(entity) => {
self.context_page = ContextPage::Properties(Some(ContextItem::NavBar(entity)));
self.core.window.show_context = true;
self.set_context_title(self.context_page.title());
}
},
}
Command::none()
@ -1584,7 +1704,7 @@ impl Application for App {
ContextPage::About => self.about(),
ContextPage::OpenWith => self.open_with(),
ContextPage::Operations => self.operations(),
ContextPage::Properties => self.properties(),
ContextPage::Properties(entity) => self.properties(entity),
ContextPage::Settings => self.settings(),
})
}

View file

@ -1,15 +1,12 @@
// 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::widget::menu::{self, ItemHeight, ItemWidth, MenuBar};
use cosmic::{
//TODO: export iced::widget::horizontal_rule in cosmic::widget
iced::{widget::horizontal_rule, Alignment, Background, Border, Length},
theme,
widget::{
self,
menu::{ItemHeight, ItemWidth, MenuBar, MenuTree},
},
widget,
Element,
};
use std::collections::HashMap;
@ -173,53 +170,53 @@ pub fn context_menu<'a>(
pub fn menu_bar<'a>(key_binds: &HashMap<KeyBind, Action>) -> Element<'a, Message> {
MenuBar::new(vec![
MenuTree::with_children(
menu_root(fl!("file")),
menu_items(
menu::Tree::with_children(
menu::root(fl!("file")),
menu::items(
key_binds,
vec![
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),
menu::Item::Button(fl!("new-tab"), Action::TabNew),
menu::Item::Button(fl!("new-window"), Action::WindowNew),
menu::Item::Button(fl!("new-file"), Action::NewFile),
menu::Item::Button(fl!("new-folder"), Action::NewFolder),
menu::Item::Button(fl!("open"), Action::Open),
menu::Item::Divider,
menu::Item::Button(fl!("rename"), Action::Rename),
//TOOD: add to sidebar, then divider
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),
menu::Item::Divider,
menu::Item::Button(fl!("move-to-trash"), Action::MoveToTrash),
menu::Item::Divider,
menu::Item::Button(fl!("close-tab"), Action::TabClose),
menu::Item::Button(fl!("quit"), Action::WindowClose),
],
),
),
MenuTree::with_children(
menu_root(fl!("edit")),
menu_items(
menu::Tree::with_children(
menu::root(fl!("edit")),
menu::items(
key_binds,
vec![
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,
menu::Item::Button(fl!("cut"), Action::Cut),
menu::Item::Button(fl!("copy"), Action::Copy),
menu::Item::Button(fl!("paste"), Action::Paste),
menu::Item::Button(fl!("select-all"), Action::SelectAll),
menu::Item::Divider,
//TODO: edit history
MenuItem::Button(fl!("operations"), Action::Operations),
menu::Item::Button(fl!("operations"), Action::Operations),
],
),
),
MenuTree::with_children(
menu_root(fl!("view")),
menu_items(
menu::Tree::with_children(
menu::root(fl!("view")),
menu::items(
key_binds,
vec![
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),
menu::Item::Button(fl!("grid-view"), Action::TabViewGrid),
menu::Item::Button(fl!("list-view"), Action::TabViewList),
menu::Item::Divider,
menu::Item::Button(fl!("menu-settings"), Action::Settings),
menu::Item::Divider,
menu::Item::Button(fl!("menu-about"), Action::About),
],
),
),

View file

@ -523,7 +523,7 @@ pub struct Item {
}
impl Item {
fn preview(&self, sizes: IconSizes) -> Element<app::Message> {
fn preview(&self, sizes: IconSizes) -> Element<'static, app::Message> {
// This loads the image only if thumbnailing worked
let icon = widget::icon::icon(self.icon_handle_grid.clone())
.content_fit(ContentFit::Contain)
@ -598,7 +598,7 @@ impl Item {
column.into()
}
pub fn property_view(&self, sizes: IconSizes) -> Element<app::Message> {
pub fn property_view(&self, sizes: IconSizes) -> Element<'static, app::Message> {
let cosmic_theme::Spacing { space_xxxs, .. } = theme::active().cosmic().spacing;
let mut column = widget::column().spacing(space_xxxs);