Integrate cosmic-files dialog
This commit is contained in:
parent
c9ebbd59b0
commit
4df5c5882a
3 changed files with 255 additions and 88 deletions
235
Cargo.lock
generated
235
Cargo.lock
generated
|
|
@ -203,6 +203,54 @@ dependencies = [
|
|||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstream"
|
||||
version = "0.6.11"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"anstyle-parse",
|
||||
"anstyle-query",
|
||||
"anstyle-wincon",
|
||||
"colorchoice",
|
||||
"utf8parse",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstyle"
|
||||
version = "1.0.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
|
||||
|
||||
[[package]]
|
||||
name = "anstyle-parse"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
|
||||
dependencies = [
|
||||
"utf8parse",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstyle-query"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
|
||||
dependencies = [
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "anstyle-wincon"
|
||||
version = "3.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
|
||||
dependencies = [
|
||||
"anstyle",
|
||||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "any_ascii"
|
||||
version = "0.1.7"
|
||||
|
|
@ -821,6 +869,7 @@ dependencies = [
|
|||
"iana-time-zone",
|
||||
"js-sys",
|
||||
"num-traits",
|
||||
"pure-rust-locales",
|
||||
"wasm-bindgen",
|
||||
"windows-targets 0.52.0",
|
||||
]
|
||||
|
|
@ -847,18 +896,18 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "clipboard_wayland"
|
||||
version = "0.2.1"
|
||||
version = "0.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8134163bd07c47ae3cc29babc42c255fdb315facc790950ae2d0e561ea6f2ec0"
|
||||
checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8"
|
||||
dependencies = [
|
||||
"smithay-clipboard",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clipboard_x11"
|
||||
version = "0.4.1"
|
||||
version = "0.4.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5cf45b436634fee64c6d3981639b46a87eeea3c64e422643273fcefd1baef56c"
|
||||
checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c"
|
||||
dependencies = [
|
||||
"thiserror",
|
||||
"x11rb",
|
||||
|
|
@ -926,6 +975,12 @@ version = "1.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
|
||||
|
||||
[[package]]
|
||||
name = "colorchoice"
|
||||
version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
|
||||
|
||||
[[package]]
|
||||
name = "com"
|
||||
version = "0.6.0"
|
||||
|
|
@ -1093,7 +1148,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "cosmic-config"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"atomicwrites",
|
||||
"cosmic-config-derive",
|
||||
|
|
@ -1110,7 +1165,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "cosmic-config-derive"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
|
|
@ -1120,9 +1175,10 @@ dependencies = [
|
|||
name = "cosmic-edit"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"cosmic-files",
|
||||
"cosmic-syntax-theme",
|
||||
"cosmic-text",
|
||||
"env_logger",
|
||||
"env_logger 0.10.2",
|
||||
"fork",
|
||||
"grep",
|
||||
"i18n-embed",
|
||||
|
|
@ -1133,7 +1189,6 @@ dependencies = [
|
|||
"log",
|
||||
"notify",
|
||||
"patch",
|
||||
"rfd",
|
||||
"rust-embed",
|
||||
"serde",
|
||||
"smol_str",
|
||||
|
|
@ -1143,6 +1198,31 @@ dependencies = [
|
|||
"two-face",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cosmic-files"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/pop-os/cosmic-files#5dc65515fcdb700095193a32b05dae032f2b4eca"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"dirs",
|
||||
"env_logger 0.11.1",
|
||||
"fork",
|
||||
"i18n-embed",
|
||||
"i18n-embed-fl",
|
||||
"lexical-sort",
|
||||
"libcosmic",
|
||||
"log",
|
||||
"notify",
|
||||
"once_cell",
|
||||
"paste",
|
||||
"rust-embed",
|
||||
"serde",
|
||||
"smol_str",
|
||||
"systemicons",
|
||||
"tokio",
|
||||
"trash",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cosmic-syntax-theme"
|
||||
version = "0.1.0"
|
||||
|
|
@ -1181,7 +1261,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "cosmic-theme"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"almost",
|
||||
"cosmic-config",
|
||||
|
|
@ -1658,6 +1738,16 @@ dependencies = [
|
|||
"syn 2.0.48",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_filter"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
|
||||
dependencies = [
|
||||
"log",
|
||||
"regex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_logger"
|
||||
version = "0.10.2"
|
||||
|
|
@ -1671,6 +1761,19 @@ dependencies = [
|
|||
"termcolor",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "env_logger"
|
||||
version = "0.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "05e7cf40684ae96ade6232ed84582f40ce0a66efcd43a5117aef610534f8e0b8"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"anstyle",
|
||||
"env_filter",
|
||||
"humantime",
|
||||
"log",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "equivalent"
|
||||
version = "1.0.1"
|
||||
|
|
@ -2020,9 +2123,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "freedesktop-icons"
|
||||
version = "0.2.5"
|
||||
version = "0.2.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5339cbd60b2ff6b95ef212ab96bc80bf1a9dff2821b9966c417cdfae2808796"
|
||||
checksum = "a8ef34245e0540c9a3ce7a28340b98d2c12b75da0d446da4e8224923fcaa0c16"
|
||||
dependencies = [
|
||||
"dirs",
|
||||
"once_cell",
|
||||
|
|
@ -2569,9 +2672,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
|||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.3.5"
|
||||
version = "0.3.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
|
||||
checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd"
|
||||
|
||||
[[package]]
|
||||
name = "hex"
|
||||
|
|
@ -2687,7 +2790,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"iced_accessibility",
|
||||
"iced_core",
|
||||
|
|
@ -2702,7 +2805,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_accessibility"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"accesskit",
|
||||
"accesskit_winit",
|
||||
|
|
@ -2711,7 +2814,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_core"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"log",
|
||||
|
|
@ -2728,7 +2831,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_futures"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"futures",
|
||||
"iced_core",
|
||||
|
|
@ -2741,7 +2844,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_graphics"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"bytemuck",
|
||||
|
|
@ -2765,7 +2868,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_renderer"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"iced_graphics",
|
||||
"iced_tiny_skia",
|
||||
|
|
@ -2777,7 +2880,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_runtime"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"iced_core",
|
||||
"iced_futures",
|
||||
|
|
@ -2787,7 +2890,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_style"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"iced_core",
|
||||
"once_cell",
|
||||
|
|
@ -2797,7 +2900,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_tiny_skia"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"bytemuck",
|
||||
"cosmic-text",
|
||||
|
|
@ -2814,7 +2917,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_wgpu"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"bytemuck",
|
||||
|
|
@ -2833,7 +2936,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_widget"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"iced_renderer",
|
||||
"iced_runtime",
|
||||
|
|
@ -2847,7 +2950,7 @@ dependencies = [
|
|||
[[package]]
|
||||
name = "iced_winit"
|
||||
version = "0.12.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"iced_graphics",
|
||||
"iced_runtime",
|
||||
|
|
@ -3208,7 +3311,7 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
|
|||
[[package]]
|
||||
name = "libcosmic"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/pop-os/libcosmic#6adc037f40841b305522daad43b9a37891436c6b"
|
||||
source = "git+https://github.com/pop-os/libcosmic#b430656966a24158270912a2ff827c77aae39de4"
|
||||
dependencies = [
|
||||
"apply",
|
||||
"ashpd",
|
||||
|
|
@ -4421,12 +4524,6 @@ dependencies = [
|
|||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "pollster"
|
||||
version = "0.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2"
|
||||
|
||||
[[package]]
|
||||
name = "powerfmt"
|
||||
version = "0.2.0"
|
||||
|
|
@ -4512,6 +4609,12 @@ version = "1.0.14"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0f0f7f43585c34e4fdd7497d746bc32e14458cf11c69341cc0587b1d825dde42"
|
||||
|
||||
[[package]]
|
||||
name = "pure-rust-locales"
|
||||
version = "0.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a"
|
||||
|
||||
[[package]]
|
||||
name = "qoi"
|
||||
version = "0.4.1"
|
||||
|
|
@ -4754,9 +4857,7 @@ dependencies = [
|
|||
"objc",
|
||||
"objc-foundation",
|
||||
"objc_id",
|
||||
"pollster",
|
||||
"raw-window-handle 0.5.2",
|
||||
"urlencoding",
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-futures",
|
||||
"web-sys",
|
||||
|
|
@ -5603,7 +5704,7 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_spanned",
|
||||
"toml_datetime",
|
||||
"toml_edit 0.22.4",
|
||||
"toml_edit 0.22.5",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -5623,7 +5724,7 @@ checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
|
|||
dependencies = [
|
||||
"indexmap",
|
||||
"toml_datetime",
|
||||
"winnow",
|
||||
"winnow 0.5.40",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -5634,20 +5735,20 @@ checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
|
|||
dependencies = [
|
||||
"indexmap",
|
||||
"toml_datetime",
|
||||
"winnow",
|
||||
"winnow 0.5.40",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "toml_edit"
|
||||
version = "0.22.4"
|
||||
version = "0.22.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
|
||||
checksum = "99e68c159e8f5ba8a28c4eb7b0c0c190d77bb479047ca713270048145a9ad28a"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"serde",
|
||||
"serde_spanned",
|
||||
"toml_datetime",
|
||||
"winnow",
|
||||
"winnow 0.6.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -5681,6 +5782,22 @@ dependencies = [
|
|||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "trash"
|
||||
version = "3.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c658458d46d9d5a153a3b5cdd88d8579ad50d4fb85d53961e4526c8fc7c55a57"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"libc",
|
||||
"log",
|
||||
"objc",
|
||||
"once_cell",
|
||||
"scopeguard",
|
||||
"url",
|
||||
"windows 0.44.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ttf-parser"
|
||||
version = "0.15.2"
|
||||
|
|
@ -5851,12 +5968,6 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "urlencoding"
|
||||
version = "2.1.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
|
||||
|
||||
[[package]]
|
||||
name = "usvg"
|
||||
version = "0.37.0"
|
||||
|
|
@ -5918,6 +6029,12 @@ dependencies = [
|
|||
"tiny-skia-path",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "utf8parse"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
|
||||
|
||||
[[package]]
|
||||
name = "version-compare"
|
||||
version = "0.1.1"
|
||||
|
|
@ -6382,9 +6499,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
|||
|
||||
[[package]]
|
||||
name = "window_clipboard"
|
||||
version = "0.4.0"
|
||||
version = "0.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c6a197337269a469b5b2583d65dd7dfe475fd79a525be0aa647ff6d37ac6612c"
|
||||
checksum = "f6d692d46038c433f9daee7ad8757e002a4248c20b0a3fbc991d99521d3bcb6d"
|
||||
dependencies = [
|
||||
"clipboard-win",
|
||||
"clipboard_macos",
|
||||
|
|
@ -6394,6 +6511,15 @@ dependencies = [
|
|||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows"
|
||||
version = "0.44.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
|
||||
dependencies = [
|
||||
"windows-targets 0.42.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows"
|
||||
version = "0.48.0"
|
||||
|
|
@ -6725,9 +6851,18 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "winnow"
|
||||
version = "0.5.39"
|
||||
version = "0.5.40"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
|
||||
checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "winnow"
|
||||
version = "0.6.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6b1dbce9e90e5404c5a52ed82b1d13fc8cfbdad85033b6f57546ffd1265f8451"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
|
|
|||
16
Cargo.toml
16
Cargo.toml
|
|
@ -24,6 +24,10 @@ i18n-embed = { version = "0.14", features = ["fluent-system", "desktop-requester
|
|||
i18n-embed-fl = "0.7"
|
||||
rust-embed = "8"
|
||||
|
||||
[dependencies.cosmic-files]
|
||||
git = "https://github.com/pop-os/cosmic-files"
|
||||
default-features = false
|
||||
|
||||
[dependencies.cosmic-syntax-theme]
|
||||
git = "https://github.com/pop-os/cosmic-syntax-theme"
|
||||
|
||||
|
|
@ -34,13 +38,7 @@ features = ["syntect", "vi"]
|
|||
[dependencies.libcosmic]
|
||||
git = "https://github.com/pop-os/libcosmic"
|
||||
default-features = false
|
||||
features = ["tokio", "winit"]
|
||||
|
||||
[dependencies.rfd]
|
||||
version = "0.13.0"
|
||||
default-features = false
|
||||
features = ["tokio", "xdg-portal"]
|
||||
optional = true
|
||||
features = ["multi-window", "tokio", "winit"]
|
||||
|
||||
[dependencies.smol_str]
|
||||
version = "0.2.1"
|
||||
|
|
@ -54,8 +52,8 @@ git = "https://github.com/jackpot51/systemicons"
|
|||
fork = "0.1"
|
||||
|
||||
[features]
|
||||
default = ["rfd", "wgpu"]
|
||||
wgpu = ["libcosmic/wgpu"]
|
||||
default = ["wgpu"]
|
||||
wgpu = ["libcosmic/wgpu", "cosmic-files/wgpu"]
|
||||
|
||||
[profile.release-with-debug]
|
||||
inherits = "release"
|
||||
|
|
|
|||
92
src/main.rs
92
src/main.rs
|
|
@ -17,6 +17,7 @@ use cosmic::{
|
|||
widget::{self, button, icon, nav_bar, segmented_button, view_switcher},
|
||||
Application, ApplicationExt, Apply, Element,
|
||||
};
|
||||
use cosmic_files::dialog::{Dialog, DialogMessage, DialogResult};
|
||||
use cosmic_text::{Cursor, Edit, Family, FontSystem, Selection, SwashCache, SyntaxSystem, ViMode};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{
|
||||
|
|
@ -279,6 +280,7 @@ pub enum Message {
|
|||
Cut,
|
||||
DefaultFont(usize),
|
||||
DefaultFontSize(usize),
|
||||
DialogMessage(DialogMessage),
|
||||
Find(Option<bool>),
|
||||
FindNext,
|
||||
FindPrevious,
|
||||
|
|
@ -293,11 +295,12 @@ pub enum Message {
|
|||
NewWindow,
|
||||
NotifyEvent(notify::Event),
|
||||
NotifyWatcher(WatcherWrapper),
|
||||
OpenFileDialog,
|
||||
OpenFile(PathBuf),
|
||||
OpenFileDialog,
|
||||
OpenFileResult(DialogResult),
|
||||
OpenGitDiff(PathBuf, GitDiff),
|
||||
OpenProjectDialog,
|
||||
OpenProject(PathBuf),
|
||||
OpenProjectResult(DialogResult),
|
||||
OpenSearchResult(usize, usize),
|
||||
Paste,
|
||||
PasteValue(String),
|
||||
|
|
@ -371,6 +374,7 @@ pub struct App {
|
|||
theme_names: Vec<String>,
|
||||
context_page: ContextPage,
|
||||
text_box_id: widget::Id,
|
||||
dialog_opt: Option<Dialog<Message>>,
|
||||
find_opt: Option<bool>,
|
||||
find_replace_id: widget::Id,
|
||||
find_replace_value: String,
|
||||
|
|
@ -637,7 +641,10 @@ impl App {
|
|||
|
||||
let window_title = format!("{title} - COSMIC Text Editor");
|
||||
self.set_header_title(title.clone());
|
||||
Command::batch([self.set_window_title(window_title), self.update_focus()])
|
||||
Command::batch([
|
||||
self.set_window_title(window_title, self.main_window_id()),
|
||||
self.update_focus(),
|
||||
])
|
||||
}
|
||||
|
||||
fn document_statistics(&self) -> Element<Message> {
|
||||
|
|
@ -1078,6 +1085,7 @@ impl Application for App {
|
|||
theme_names,
|
||||
context_page: ContextPage::Settings,
|
||||
text_box_id: widget::Id::unique(),
|
||||
dialog_opt: None,
|
||||
find_opt: None,
|
||||
find_replace_id: widget::Id::unique(),
|
||||
find_replace_value: String::new(),
|
||||
|
|
@ -1322,6 +1330,11 @@ impl Application for App {
|
|||
log::warn!("failed to find font with index {}", index);
|
||||
}
|
||||
},
|
||||
Message::DialogMessage(dialog_message) => {
|
||||
if let Some(dialog) = &mut self.dialog_opt {
|
||||
return dialog.update(dialog_message);
|
||||
}
|
||||
}
|
||||
Message::Find(find_opt) => {
|
||||
self.find_opt = find_opt;
|
||||
|
||||
|
|
@ -1454,23 +1467,30 @@ impl Application for App {
|
|||
log::warn!("message did not contain notify watcher");
|
||||
}
|
||||
},
|
||||
Message::OpenFileDialog => {
|
||||
#[cfg(feature = "rfd")]
|
||||
return Command::perform(
|
||||
async {
|
||||
if let Some(handle) = rfd::AsyncFileDialog::new().pick_file().await {
|
||||
message::app(Message::OpenFile(handle.path().to_owned()))
|
||||
} else {
|
||||
message::none()
|
||||
}
|
||||
},
|
||||
|x| x,
|
||||
);
|
||||
}
|
||||
Message::OpenFile(path) => {
|
||||
self.open_tab(Some(path));
|
||||
return self.update_tab();
|
||||
}
|
||||
Message::OpenFileDialog => {
|
||||
if self.dialog_opt.is_none() {
|
||||
let (dialog, command) =
|
||||
Dialog::new(Message::DialogMessage, Message::OpenFileResult);
|
||||
self.dialog_opt = Some(dialog);
|
||||
return command;
|
||||
}
|
||||
}
|
||||
Message::OpenFileResult(result) => {
|
||||
self.dialog_opt = None;
|
||||
match result {
|
||||
DialogResult::Cancel => {}
|
||||
DialogResult::Open(paths) => {
|
||||
for path in paths {
|
||||
self.open_tab(Some(path));
|
||||
}
|
||||
return self.update_tab();
|
||||
}
|
||||
}
|
||||
}
|
||||
Message::OpenGitDiff(project_path, diff) => {
|
||||
let relative_path = match diff.path.strip_prefix(project_path.clone()) {
|
||||
Ok(ok) => ok,
|
||||
|
|
@ -1505,20 +1525,23 @@ impl Application for App {
|
|||
return self.update_tab();
|
||||
}
|
||||
Message::OpenProjectDialog => {
|
||||
#[cfg(feature = "rfd")]
|
||||
return Command::perform(
|
||||
async {
|
||||
if let Some(handle) = rfd::AsyncFileDialog::new().pick_folder().await {
|
||||
message::app(Message::OpenProject(handle.path().to_owned()))
|
||||
} else {
|
||||
message::none()
|
||||
}
|
||||
},
|
||||
|x| x,
|
||||
);
|
||||
if self.dialog_opt.is_none() {
|
||||
let (dialog, command) =
|
||||
Dialog::new(Message::DialogMessage, Message::OpenProjectResult);
|
||||
self.dialog_opt = Some(dialog);
|
||||
return command;
|
||||
}
|
||||
}
|
||||
Message::OpenProject(path) => {
|
||||
self.open_project(path);
|
||||
Message::OpenProjectResult(result) => {
|
||||
self.dialog_opt = None;
|
||||
match result {
|
||||
DialogResult::Cancel => {}
|
||||
DialogResult::Open(paths) => {
|
||||
for path in paths {
|
||||
self.open_project(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Message::OpenSearchResult(file_i, line_i) => {
|
||||
let path_cursor_opt = match &self.project_search_result {
|
||||
|
|
@ -2158,6 +2181,13 @@ impl Application for App {
|
|||
content
|
||||
}
|
||||
|
||||
fn view_window(&self, window_id: window::Id) -> Element<Message> {
|
||||
match &self.dialog_opt {
|
||||
Some(dialog) => dialog.view(window_id),
|
||||
None => widget::text("Unknown window ID").into(),
|
||||
}
|
||||
}
|
||||
|
||||
fn subscription(&self) -> subscription::Subscription<Message> {
|
||||
struct WatcherSubscription;
|
||||
struct ConfigSubscription;
|
||||
|
|
@ -2259,6 +2289,10 @@ impl Application for App {
|
|||
|
||||
Message::SystemThemeModeChange(update.config)
|
||||
}),
|
||||
match &self.dialog_opt {
|
||||
Some(dialog) => dialog.subscription(),
|
||||
None => subscription::Subscription::none(),
|
||||
},
|
||||
])
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue