diff --git a/Cargo.lock b/Cargo.lock index 2458c13..826b97d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -49,9 +49,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72832d73be48bac96a5d7944568f305d829ed55b0ce3b483647089dfaf6cf704" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", "getrandom", @@ -360,32 +360,13 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-sys" -version = "0.1.0-beta.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" -dependencies = [ - "objc-sys 0.2.0-beta.2", -] - [[package]] name = "block-sys" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dd7cf50912cddc06dc5ea7c08c5e81c1b2c842a70d19def1848d54c586fed92" dependencies = [ - "objc-sys 0.3.1", -] - -[[package]] -name = "block2" -version = "0.2.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" -dependencies = [ - "block-sys 0.1.0-beta.1", - "objc2-encode 2.0.0-pre.2", + "objc-sys", ] [[package]] @@ -394,8 +375,8 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" dependencies = [ - "block-sys 0.2.0", - "objc2 0.4.1", + "block-sys", + "objc2", ] [[package]] @@ -642,9 +623,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.6" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" +checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" dependencies = [ "clap_builder", "clap_derive", @@ -652,9 +633,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.6" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" +checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" dependencies = [ "anstream", "anstyle", @@ -664,9 +645,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.2" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0862016ff20d69b84ef8247369fabf5c008a7417002411897d40ee1f4532b873" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ "heck", "proc-macro2", @@ -676,9 +657,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" [[package]] name = "clipboard-win" @@ -792,7 +773,7 @@ dependencies = [ [[package]] name = "const-field-offset" version = "0.1.3" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "const-field-offset-macro", "field-offset", @@ -801,7 +782,7 @@ dependencies = [ [[package]] name = "const-field-offset-macro" version = "0.1.3" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "proc-macro2", "quote", @@ -919,9 +900,9 @@ checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636" [[package]] name = "cpufeatures" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fbc60abd742b35f2492f808e1abbb83d45f72db402e14c55057edc9c7b1e9e4" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] @@ -1425,9 +1406,9 @@ dependencies = [ [[package]] name = "exr" -version = "1.71.0" +version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "832a761f35ab3e6664babfbdc6cef35a4860e816ec3916dcfd0882954e98a8a8" +checksum = "279d3efcc55e19917fff7ab3ddd6c14afb6a90881a0078465196fe2f99d08c56" dependencies = [ "bit_field", "flume", @@ -1608,11 +1589,15 @@ dependencies = [ [[package]] name = "flume" -version = "0.11.0" +version = "0.10.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" dependencies = [ - "spin 0.9.8", + "futures-core", + "futures-sink", + "nanorand", + "pin-project", + "spin", ] [[package]] @@ -1742,24 +1727,24 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ "futures-core", ] [[package]] name = "futures-core" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] name = "futures-executor" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ "futures-core", "futures-task", @@ -1768,15 +1753,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] name = "futures-macro" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" dependencies = [ "proc-macro2", "quote", @@ -1784,16 +1769,22 @@ dependencies = [ ] [[package]] -name = "futures-task" -version = "0.3.28" +name = "futures-sink" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" [[package]] name = "futures-util" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" dependencies = [ "futures-core", "futures-macro", @@ -1942,8 +1933,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -2073,29 +2066,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "glutin" -version = "0.30.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc93b03242719b8ad39fb26ed2b01737144ce7bd4bfc7adadcef806596760fe" -dependencies = [ - "bitflags 1.3.2", - "cfg_aliases", - "cgl", - "core-foundation", - "dispatch", - "glutin_egl_sys 0.5.1", - "glutin_glx_sys 0.4.0", - "glutin_wgl_sys 0.4.0", - "libloading 0.7.4", - "objc2 0.3.0-beta.3.patch-leaks.3", - "once_cell", - "raw-window-handle 0.5.2", - "wayland-sys 0.30.1", - "windows-sys 0.45.0", - "x11-dl", -] - [[package]] name = "glutin" version = "0.31.0" @@ -2107,12 +2077,12 @@ dependencies = [ "cgl", "core-foundation", "dispatch", - "glutin_egl_sys 0.6.0", - "glutin_glx_sys 0.5.0", - "glutin_wgl_sys 0.5.0", + "glutin_egl_sys", + "glutin_glx_sys", + "glutin_wgl_sys", "icrate", "libloading 0.8.1", - "objc2 0.4.1", + "objc2", "once_cell", "raw-window-handle 0.5.2", "wayland-sys 0.31.1", @@ -2127,21 +2097,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebcdfba24f73b8412c5181e56f092b5eff16671c514ce896b258a0a64bd7735" dependencies = [ "cfg_aliases", - "glutin 0.31.0", + "glutin", "raw-window-handle 0.5.2", "winit", ] -[[package]] -name = "glutin_egl_sys" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af784eb26c5a68ec85391268e074f0aa618c096eadb5d6330b0911cf34fe57c5" -dependencies = [ - "gl_generator", - "windows-sys 0.45.0", -] - [[package]] name = "glutin_egl_sys" version = "0.6.0" @@ -2152,16 +2112,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "glutin_glx_sys" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b53cb5fe568964aa066a3ba91eac5ecbac869fb0842cd0dc9e412434f1a1494" -dependencies = [ - "gl_generator", - "x11-dl", -] - [[package]] name = "glutin_glx_sys" version = "0.5.0" @@ -2172,15 +2122,6 @@ dependencies = [ "x11-dl", ] -[[package]] -name = "glutin_wgl_sys" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef89398e90033fc6bc65e9bd42fd29bbbfd483bda5b56dc5562f455550618165" -dependencies = [ - "gl_generator", -] - [[package]] name = "glutin_wgl_sys" version = "0.5.0" @@ -2311,11 +2252,12 @@ dependencies = [ [[package]] name = "half" -version = "2.2.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0" +checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" dependencies = [ "bytemuck", + "cfg-if", "crunchy", ] @@ -2400,12 +2342,12 @@ dependencies = [ [[package]] name = "i-slint-backend-linuxkms" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "calloop 0.11.0", "drm", "gbm", - "glutin 0.30.10", + "glutin", "i-slint-common", "i-slint-core", "i-slint-renderer-femtovg", @@ -2421,7 +2363,7 @@ dependencies = [ [[package]] name = "i-slint-backend-selector" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "cfg-if", "i-slint-backend-linuxkms", @@ -2434,7 +2376,7 @@ dependencies = [ [[package]] name = "i-slint-backend-winit" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "accesskit", "bytemuck", @@ -2444,7 +2386,7 @@ dependencies = [ "const-field-offset", "copypasta", "derive_more", - "glutin 0.31.0", + "glutin", "glutin-winit", "i-slint-common", "i-slint-core", @@ -2470,7 +2412,7 @@ dependencies = [ [[package]] name = "i-slint-common" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "cfg-if", "derive_more", @@ -2481,7 +2423,7 @@ dependencies = [ [[package]] name = "i-slint-compiler" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "by_address", "codemap", @@ -2510,7 +2452,7 @@ dependencies = [ [[package]] name = "i-slint-core" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "auto_enums", "bytemuck", @@ -2553,7 +2495,7 @@ dependencies = [ [[package]] name = "i-slint-core-macros" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "quote", "syn 2.0.38", @@ -2562,7 +2504,7 @@ dependencies = [ [[package]] name = "i-slint-renderer-femtovg" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "cfg-if", "const-field-offset", @@ -2594,7 +2536,7 @@ dependencies = [ [[package]] name = "i-slint-renderer-skia" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "ash", "bytemuck", @@ -2607,7 +2549,7 @@ dependencies = [ "derive_more", "foreign-types 0.3.2", "glow", - "glutin 0.30.10", + "glutin", "i-slint-common", "i-slint-core", "i-slint-core-macros", @@ -2624,7 +2566,6 @@ dependencies = [ "vtable", "vulkano", "winapi", - "winit", "wio", ] @@ -2638,7 +2579,7 @@ dependencies = [ "serde", "serde_derive", "thiserror", - "toml 0.8.2", + "toml 0.8.5", "unic-langid", ] @@ -2727,9 +2668,9 @@ version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" dependencies = [ - "block2 0.3.0", + "block2", "dispatch", - "objc2 0.4.1", + "objc2", ] [[package]] @@ -3430,6 +3371,15 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +dependencies = [ + "getrandom", +] + [[package]] name = "ndk" version = "0.8.0" @@ -3616,46 +3566,20 @@ dependencies = [ "objc_id", ] -[[package]] -name = "objc-sys" -version = "0.2.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" - [[package]] name = "objc-sys" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99e1d07c6eab1ce8b6382b8e3c7246fe117ff3f8b34be065f5ebace6749fe845" -[[package]] -name = "objc2" -version = "0.3.0-beta.3.patch-leaks.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" -dependencies = [ - "block2 0.2.0-alpha.6", - "objc-sys 0.2.0-beta.2", - "objc2-encode 2.0.0-pre.2", -] - [[package]] name = "objc2" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" dependencies = [ - "objc-sys 0.3.1", - "objc2-encode 3.0.0", -] - -[[package]] -name = "objc2-encode" -version = "2.0.0-pre.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" -dependencies = [ - "objc-sys 0.2.0-beta.2", + "objc-sys", + "objc2-encode", ] [[package]] @@ -3964,9 +3888,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31114a898e107c51bb1609ffaf55a0e011cf6a4d7f1170d0015a165082c0338b" +checksum = "b559898e0b4931ed2d3b959ab0c2da4d99cc644c4b0b1a35b4d344027f474023" dependencies = [ "critical-section", ] @@ -4271,17 +4195,16 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.20" +version = "0.17.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" dependencies = [ "cc", + "getrandom", "libc", - "once_cell", - "spin 0.5.2", + "spin", "untrusted", - "web-sys", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -4429,9 +4352,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.7" +version = "0.21.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +checksum = "446e14c5cda4f3f30fe71863c34ec70f5ac79d6087097ad0bb433e1be5edf04c" dependencies = [ "log", "ring", @@ -4441,9 +4364,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.6" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ "ring", "untrusted", @@ -4516,9 +4439,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ "ring", "untrusted", @@ -4557,18 +4480,18 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.189" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e422a44e74ad4001bdc8eede9a4570ab52f71190e9c076d14369f38b9200537" +checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.189" +version = "1.0.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e48d1f918009ce3145511378cf68d613e3b3d9137d67272562080d68a2b32d5" +checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" dependencies = [ "proc-macro2", "quote", @@ -4588,9 +4511,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186" +checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" dependencies = [ "serde", ] @@ -4667,9 +4590,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "skia-bindings" -version = "0.66.3" +version = "0.67.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a42e3db408fbe7beafeadcaf5309c59eb99cc80979cab1b49e2a47539adf8ab" +checksum = "534eae89c6ff605e4a5088d8583ba3e1bbce98b0da9fd2eba37ce4698c86138a" dependencies = [ "bindgen", "cc", @@ -4679,15 +4602,15 @@ dependencies = [ "regex", "serde_json", "tar", - "toml 0.7.8", + "toml 0.8.5", "ureq", ] [[package]] name = "skia-safe" -version = "0.66.3" +version = "0.67.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d03680a0ce867756947f2d5fa92078915342f81996c43b61847fed565068f75" +checksum = "fd6be5caec5fbe1426bb06cfb6500ec00194d97e5ccad4573e7f972c9d6bd938" dependencies = [ "bitflags 2.4.1", "lazy_static", @@ -4708,7 +4631,7 @@ dependencies = [ [[package]] name = "slint" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "const-field-offset", "i-slint-backend-selector", @@ -4724,18 +4647,18 @@ dependencies = [ [[package]] name = "slint-build" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "i-slint-compiler", "spin_on", "thiserror", - "toml_edit 0.20.2", + "toml_edit 0.20.5", ] [[package]] name = "slint-macros" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "i-slint-compiler", "proc-macro2", @@ -4872,12 +4795,6 @@ dependencies = [ "x11rb 0.12.0", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -5201,7 +5118,7 @@ dependencies = [ "cfg-expr", "heck", "pkg-config", - "toml 0.8.2", + "toml 0.8.5", "version-compare", ] @@ -5420,33 +5337,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +checksum = "3efaf127c78d5339cc547cce4e4d973bd5e4f56e949a06d091c082ebeef2f800" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.19.15", -] - -[[package]] -name = "toml" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.20.5", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" dependencies = [ "serde", ] @@ -5458,17 +5363,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ "indexmap 2.0.2", - "serde", - "serde_spanned", "toml_datetime", "winnow", ] [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "782bf6c2ddf761c1e7855405e8975472acf76f7f36d0d4328bd3b7a2fae12a85" dependencies = [ "indexmap 2.0.2", "serde", @@ -5511,12 +5414,12 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ - "lazy_static", "log", + "once_cell", "tracing-core", ] @@ -5716,9 +5619,9 @@ checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" [[package]] name = "untrusted" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" @@ -5867,7 +5770,7 @@ dependencies = [ [[package]] name = "vtable" version = "0.1.11" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "const-field-offset", "portable-atomic", @@ -5878,7 +5781,7 @@ dependencies = [ [[package]] name = "vtable-macro" version = "0.1.10" -source = "git+https://github.com/slint-ui/slint.git#49571c8bf2aaac499aaa678829651384fc93fdc9" +source = "git+https://github.com/slint-ui/slint.git#3deb620953f1307de1b9c0b5b757b5d8ed31a3a1" dependencies = [ "proc-macro2", "quote", @@ -6165,18 +6068,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "wayland-sys" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b2a02ac608e07132978689a6f9bf4214949c85998c247abadd4f4129b1aa06" -dependencies = [ - "dlib", - "lazy_static", - "log", - "pkg-config", -] - [[package]] name = "wayland-sys" version = "0.31.1" @@ -6201,9 +6092,9 @@ dependencies = [ [[package]] name = "web-time" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8208e3fdbc243c8fd30805721869242a7f6de3e2e9f3b057652ab36e52ae1e87" +checksum = "57099a701fb3a8043f993e8228dc24229c7b942e2b009a1b962e54489ba1d3bf" dependencies = [ "js-sys", "wasm-bindgen", @@ -6455,7 +6346,7 @@ dependencies = [ "memmap2 0.9.0", "ndk", "ndk-sys", - "objc2 0.4.1", + "objc2", "once_cell", "orbclient", "percent-encoding", @@ -6649,18 +6540,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.11" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c19fae0c8a9efc6a8281f2e623db8af1db9e57852e04cde3e754dd2dc29340f" +checksum = "81ba595b9f2772fbee2312de30eeb80ec773b4cb2f1e8098db024afadda6c06f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.11" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc56589e9ddd1f1c28d4b4b5c773ce232910a6bb67a70133d61c9e347585efe9" +checksum = "772666c41fb6dceaf520b564b962d738a8e1a83b41bd48945f50837aed78bb1d" dependencies = [ "proc-macro2", "quote", diff --git a/czkawka_slint_gui/src/connect_scan.rs b/czkawka_slint_gui/src/connect_scan.rs index 23a89f1..2d9c401 100644 --- a/czkawka_slint_gui/src/connect_scan.rs +++ b/czkawka_slint_gui/src/connect_scan.rs @@ -1,6 +1,6 @@ use crate::{split_path, CurrentTab, MainWindow, ProgressToSend}; use chrono::NaiveDateTime; -use crossbeam_channel::Sender; +use crossbeam_channel::{Receiver, Sender}; use czkawka_core::common_dir_traversal::ProgressData; use czkawka_core::common_tool::CommonData; use czkawka_core::empty_folder::EmptyFolder; @@ -9,12 +9,13 @@ use std::path::PathBuf; use std::rc::Rc; use std::thread; -pub fn connect_scan_button(app: &MainWindow, progress_sender: Sender) { +pub fn connect_scan_button(app: &MainWindow, progress_sender: Sender, stop_receiver: Receiver<()>) { let a = app.as_weak(); - app.on_scanned(move |active_tab| { + app.on_scan_starting(move |active_tab| { let progress_sender = progress_sender.clone(); + let stop_receiver = stop_receiver.clone(); let app = a.upgrade().unwrap(); - app.set_scanning(true); + app.set_progress_datas(ProgressToSend { all_progress: 0, current_progress: 0, @@ -24,18 +25,18 @@ pub fn connect_scan_button(app: &MainWindow, progress_sender: Sender { - scan_empty_folders(a, progress_sender); + scan_empty_folders(a, progress_sender, stop_receiver); } _ => panic!(), } }); } -fn scan_empty_folders(a: Weak, progress_sender: Sender) { +fn scan_empty_folders(a: Weak, progress_sender: Sender, stop_receiver: Receiver<()>) { thread::spawn(move || { let mut ef = EmptyFolder::new(); ef.set_included_directory(vec![PathBuf::from("/home/rafal")]); - ef.find_empty_folders(None, Some(&progress_sender)); + ef.find_empty_folders(Some(&stop_receiver), Some(&progress_sender)); ef.get_empty_folder_list(); @@ -60,7 +61,7 @@ fn scan_empty_folders(a: Weak, progress_sender: Sender items.push((false, false, false, ModelRc::new(data_model))); } app.set_empty_folder_model(items.into()); - app.set_scanning(false); + app.invoke_scan_ended(); }) }); } diff --git a/czkawka_slint_gui/src/connect_stop.rs b/czkawka_slint_gui/src/connect_stop.rs new file mode 100644 index 0000000..8a1c7fd --- /dev/null +++ b/czkawka_slint_gui/src/connect_stop.rs @@ -0,0 +1,8 @@ +use crate::MainWindow; +use crossbeam_channel::Sender; + +pub fn connect_stop_button(app: &MainWindow, stop_sender: Sender<()>) { + app.on_scan_stopping(move || { + stop_sender.send(()).unwrap(); + }); +} diff --git a/czkawka_slint_gui/src/main.rs b/czkawka_slint_gui/src/main.rs index 095094f..0542d92 100644 --- a/czkawka_slint_gui/src/main.rs +++ b/czkawka_slint_gui/src/main.rs @@ -2,6 +2,7 @@ mod connect_delete; mod connect_open; mod connect_progress_receiver; mod connect_scan; +mod connect_stop; use crossbeam_channel::{unbounded, Receiver, Sender}; use std::path::Path; @@ -12,6 +13,7 @@ use crate::connect_open::connect_open_items; use crate::connect_scan::connect_scan_button; use crate::connect_progress_receiver::connect_progress_gathering; +use crate::connect_stop::connect_stop_button; use czkawka_core::common_dir_traversal::ProgressData; use slint::{ModelRc, SharedString, VecModel}; @@ -20,11 +22,13 @@ fn main() { let app = MainWindow::new().unwrap(); //.run().unwrap(); let (progress_sender, progress_receiver): (Sender, Receiver) = unbounded(); + let (stop_sender, stop_receiver): (Sender<()>, Receiver<()>) = unbounded(); // Fills model at start, don't really needed too much after testing to_remove_debug(&app); connect_delete_button(&app); - connect_scan_button(&app, progress_sender); + connect_scan_button(&app, progress_sender, stop_receiver); + connect_stop_button(&app, stop_sender); connect_open_items(&app); connect_progress_gathering(&app, progress_receiver); @@ -36,7 +40,7 @@ type ModelType = VecModel<(bool, bool, bool, ModelRc)>; pub fn to_remove_debug(app: &MainWindow) { let row_data: Rc = Rc::new(VecModel::default()); - for r in 0..1_000_000 { + for r in 0..20_000_000 { let items = VecModel::default(); for c in 0..3 { diff --git a/czkawka_slint_gui/ui/action_buttons.slint b/czkawka_slint_gui/ui/action_buttons.slint index e173b31..6a86379 100644 --- a/czkawka_slint_gui/ui/action_buttons.slint +++ b/czkawka_slint_gui/ui/action_buttons.slint @@ -6,7 +6,10 @@ import {CurrentTab} from "common.slint"; export component ActionButtons { callback deleted; - callback scanned(CurrentTab); + callback scan_stopping; + callback scan_starting(CurrentTab); + + in-out property stop_requested: false; in-out property scanning; in-out property active-tab; @@ -16,7 +19,16 @@ export component ActionButtons { enabled: !scanning; text: "Scan"; clicked => { - root.scanned(active-tab); + root.scanning = true; + root.scan_starting(active-tab); + } + } + stop_button:= Button { + enabled: scanning && !stop_requested; + text: "Stop"; + clicked => { + root.scan_stopping(); + root.stop_requested = true; } } delete_button:= Button { diff --git a/czkawka_slint_gui/ui/main_window.slint b/czkawka_slint_gui/ui/main_window.slint index 2a28e5d..690e2ea 100644 --- a/czkawka_slint_gui/ui/main_window.slint +++ b/czkawka_slint_gui/ui/main_window.slint @@ -1,4 +1,4 @@ -import { Button, VerticalBox , HorizontalBox, TabWidget, ListView, StandardListView, StandardTableView, CheckBox} from "std-widgets.slint"; +import { Button, VerticalBox , HorizontalBox, TabWidget, ListView, StandardListView, StandardTableView, CheckBox, LineEdit} from "std-widgets.slint"; import {SelectableTableView} from "selectable_tree_view.slint"; import {LeftSidePanel} from "left_side_panel.slint"; import {MainList} from "main_lists.slint"; @@ -8,14 +8,18 @@ import { Progress } from "progress.slint"; export component MainWindow inherits Window { callback deleted; - callback scanned(CurrentTab); + callback scan_stopping; + callback scan_starting(CurrentTab); callback item_opened(string); + callback scan_ended(); + min-width: 300px; preferred-width: 1024px; min-height: 300px; preferred-height: 600px; + in-out property stop_requested: false; in-out property scanning: false; in-out property progress_datas : { current_progress: 15, @@ -81,7 +85,7 @@ export component MainWindow inherits Window { item_opened(item) => {item_opened(item)} } - Progress { + if root.scanning: Progress { horizontal-stretch: 0.0; progress_datas <=> root.progress_datas; } @@ -91,8 +95,19 @@ export component MainWindow inherits Window { vertical-stretch: 0.0; scanning <=> root.scanning; active-tab <=> root.active-tab; + stop_requested <=> root.stop-requested; deleted => {root.deleted();} - scanned(item) => {root.scanned(item);} + scan_stopping => {root.scan_stopping();} + scan_starting(item) => {root.scan_starting(item);} + } + LineEdit { + text: root.stop-requested ? "Stopping scan, please wait..." : "Search stopped"; + read-only: true; } } + + scan_ended() => { + root.scanning = false; + root.stop_requested = false; + } } diff --git a/czkawka_slint_gui/ui/selectable_tree_view.slint b/czkawka_slint_gui/ui/selectable_tree_view.slint index 06585f9..2c634cd 100644 --- a/czkawka_slint_gui/ui/selectable_tree_view.slint +++ b/czkawka_slint_gui/ui/selectable_tree_view.slint @@ -20,9 +20,10 @@ export component SelectableTableView inherits Rectangle { forward-focus: focus_item; + // TODO not works focus_item := FocusScope { key-released(event) => { - debug(event); + // debug(event); accept } } @@ -96,7 +97,6 @@ export component SelectableTableView inherits Rectangle { } } pointer-event(event) => { - debug(event); // TODO this should be clicked by double-click if (event.button == PointerEventButton.right && event.kind == PointerEventKind.up) { root.item_opened(r.val[root.parentPathIdx - 1])