diff --git a/Cargo.lock b/Cargo.lock index d272ee6..2868210 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -177,6 +177,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bit_field" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" + [[package]] name = "bitflags" version = "1.3.2" @@ -240,6 +246,12 @@ dependencies = [ "syn 2.0.42", ] +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "calloop" version = "0.10.6" @@ -369,6 +381,12 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + [[package]] name = "colored" version = "1.9.4" @@ -455,16 +473,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - [[package]] name = "crossbeam-deque" version = "0.8.4" @@ -606,6 +614,22 @@ dependencies = [ "num-traits", ] +[[package]] +name = "exr" +version = "1.72.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4" +dependencies = [ + "bit_field", + "flume", + "half", + "lebe", + "miniz_oxide", + "rayon-core", + "smallvec", + "zune-inflate", +] + [[package]] name = "fast-srgb8" version = "1.0.0" @@ -652,15 +676,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "find-crate" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a98bbaacea1c0eb6a0876280051b892eb73594fd90cf3b20e9c817029c57d2" -dependencies = [ - "toml 0.5.11", -] - [[package]] name = "flate2" version = "1.0.28" @@ -671,6 +686,15 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "flume" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181" +dependencies = [ + "spin", +] + [[package]] name = "fontdb" version = "0.14.1" @@ -819,36 +843,28 @@ dependencies = [ "wasi", ] +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + [[package]] name = "gimli" version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" -[[package]] -name = "glam" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815" - [[package]] name = "glam" version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" -[[package]] -name = "glow" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919" -dependencies = [ - "js-sys", - "slotmap", - "wasm-bindgen", - "web-sys", -] - [[package]] name = "glow" version = "0.12.3" @@ -861,56 +877,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "glow_glyph" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4e62c64947b9a24fe20e2bba9ad819ecb506ef5c8df7ffc4737464c6df9510" -dependencies = [ - "bytemuck", - "glow 0.11.2", - "glyph_brush", - "log", -] - -[[package]] -name = "glyph_brush" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3676f482c536a985fca36ce320a5e5b8fafd7b260806742af1963b71c5dc38c" -dependencies = [ - "glyph_brush_draw_cache", - "glyph_brush_layout", - "ordered-float", - "rustc-hash", - "twox-hash", -] - -[[package]] -name = "glyph_brush_draw_cache" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6010675390f6889e09a21e2c8b575b3ee25667ea8237a8d59423f73cb8c28610" -dependencies = [ - "ab_glyph", - "crossbeam-channel", - "crossbeam-deque", - "linked-hash-map", - "rayon", - "rustc-hash", -] - -[[package]] -name = "glyph_brush_layout" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38" -dependencies = [ - "ab_glyph", - "approx", - "xi-unicode", -] - [[package]] name = "glyphon" version = "0.3.0" @@ -1067,25 +1033,15 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c708807ec86f99dd729dc4d42db5239acf118cec14d3c5f57679dcfdbbc472b1" dependencies = [ - "iced_core 0.10.0", - "iced_futures 0.7.0", + "iced_core", + "iced_futures", "iced_renderer", "iced_widget", "iced_winit", + "image", "thiserror", ] -[[package]] -name = "iced_core" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11e1942e28dedee756cc27e67e7a838cdc1e59fb6bf9627ec9f709ab3b135782" -dependencies = [ - "bitflags 1.3.2", - "instant", - "palette 0.6.1", -] - [[package]] name = "iced_core" version = "0.10.0" @@ -1095,23 +1051,11 @@ dependencies = [ "bitflags 1.3.2", "instant", "log", - "palette 0.7.3", + "palette", "thiserror", "twox-hash", ] -[[package]] -name = "iced_futures" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "215d51fa4f70dbb63775d7141243c4d98d4d525d8949695601f8fbac7dcbc04e" -dependencies = [ - "futures", - "log", - "wasm-bindgen-futures", - "wasm-timer", -] - [[package]] name = "iced_futures" version = "0.7.0" @@ -1119,44 +1063,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14dab0054a9c7a1cbce227a8cd9ee4a094497b3d06094551ac6c1488d563802e" dependencies = [ "futures", - "iced_core 0.10.0", + "iced_core", "log", "wasm-bindgen-futures", "wasm-timer", ] -[[package]] -name = "iced_glow" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc5b081015f5c75777c96ad75e2288916e7d444c97396d6d136517877ef9129" -dependencies = [ - "bytemuck", - "euclid", - "glow 0.11.2", - "glow_glyph", - "glyph_brush", - "iced_graphics 0.8.0", - "iced_native", - "log", -] - -[[package]] -name = "iced_graphics" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "338a6aff7db906537074ad0fe8b720cfdb9512cdfea43c628c76bd1cf50fdcc0" -dependencies = [ - "bitflags 1.3.2", - "bytemuck", - "glam 0.21.3", - "iced_native", - "iced_style 0.8.0", - "log", - "raw-window-handle", - "thiserror", -] - [[package]] name = "iced_graphics" version = "0.9.0" @@ -1165,36 +1077,23 @@ checksum = "67ff14447a221e9e9205a13d84d7bbdf0636a3b1daa02cfca690ed09689c4d2b" dependencies = [ "bitflags 1.3.2", "bytemuck", - "glam 0.24.2", + "glam", "half", - "iced_core 0.10.0", + "iced_core", + "image", + "kamadak-exif", "log", "raw-window-handle", "thiserror", ] -[[package]] -name = "iced_native" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d012eb06da490fe46a695b39721c20da9643f35cf2ecb9d30618fdeb96170616" -dependencies = [ - "iced_core 0.9.0", - "iced_futures 0.6.0", - "iced_style 0.8.0", - "num-traits", - "thiserror", - "twox-hash", - "unicode-segmentation", -] - [[package]] name = "iced_renderer" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1033385b0db0099a0d13178c9ff93c1ce11e7d0177522acf578bf79febdb2af8" dependencies = [ - "iced_graphics 0.9.0", + "iced_graphics", "iced_tiny_skia", "iced_wgpu", "log", @@ -1208,31 +1107,20 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c6c89853e1250c6fac82c5015fa2144517be9b33d4b8e456f10e198b23e28bd" dependencies = [ - "iced_core 0.10.0", - "iced_futures 0.7.0", + "iced_core", + "iced_futures", "thiserror", ] -[[package]] -name = "iced_style" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e37333dc2991201140302cd0d4cea051bd37ca3671d5008ec85df86d232ff30" -dependencies = [ - "iced_core 0.9.0", - "once_cell", - "palette 0.6.1", -] - [[package]] name = "iced_style" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d85c47d9d13e2281f75ddf98c865daf2101632bd2b855c401dd0b1c8b81a31a0" dependencies = [ - "iced_core 0.10.0", + "iced_core", "once_cell", - "palette 0.7.3", + "palette", ] [[package]] @@ -1243,7 +1131,7 @@ checksum = "c7715f6222c9470bbbd75a39f70478fa0d1bdfb81a377a34fd1b090ffccc480b" dependencies = [ "bytemuck", "cosmic-text", - "iced_graphics 0.9.0", + "iced_graphics", "kurbo", "log", "raw-window-handle", @@ -1262,10 +1150,10 @@ dependencies = [ "bitflags 1.3.2", "bytemuck", "futures", - "glam 0.24.2", + "glam", "glyphon", "guillotiere", - "iced_graphics 0.9.0", + "iced_graphics", "log", "once_cell", "raw-window-handle", @@ -1282,7 +1170,7 @@ checksum = "a177219ae51c3ba08f228ab932354b360cc669e94aec50c01e7c9b675f074c7c" dependencies = [ "iced_renderer", "iced_runtime", - "iced_style 0.9.0", + "iced_style", "num-traits", "thiserror", "unicode-segmentation", @@ -1294,9 +1182,9 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ad0c884bcb14722a57192b40a5ef6b5e170fa2f01fe2ff28d6cdd9efe37acf70" dependencies = [ - "iced_graphics 0.9.0", + "iced_graphics", "iced_runtime", - "iced_style 0.9.0", + "iced_style", "log", "raw-window-handle", "thiserror", @@ -1316,6 +1204,24 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "image" +version = "0.24.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034bbe799d1909622a74d1193aa50147769440040ff36cb2baa947609b0a4e23" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "exr", + "gif", + "jpeg-decoder", + "num-traits", + "png", + "qoi", + "tiff", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -1391,6 +1297,15 @@ dependencies = [ "libc", ] +[[package]] +name = "jpeg-decoder" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" +dependencies = [ + "rayon", +] + [[package]] name = "js-sys" version = "0.3.66" @@ -1400,6 +1315,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kamadak-exif" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4fc70d0ab7e5b6bafa30216a6b48705ea964cdfc29c050f2412295eba58077" +dependencies = [ + "mutate_once", +] + [[package]] name = "khronos-egl" version = "4.1.0" @@ -1426,6 +1350,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lebe" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" + [[package]] name = "libc" version = "0.2.151" @@ -1480,12 +1410,6 @@ dependencies = [ "redox_syscall 0.4.1", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.4.12" @@ -1604,6 +1528,12 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "mutate_once" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16cf681a23b4d0a43fc35024c176437f9dcd818db34e0f42ab456a0ee5ad497b" + [[package]] name = "naga" version = "0.12.3" @@ -1860,15 +1790,6 @@ dependencies = [ "libredox 0.0.2", ] -[[package]] -name = "ordered-float" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" -dependencies = [ - "num-traits", -] - [[package]] name = "owned_ttf_parser" version = "0.20.0" @@ -1878,18 +1799,6 @@ dependencies = [ "ttf-parser 0.20.0", ] -[[package]] -name = "palette" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f9cd68f7112581033f157e56c77ac4a5538ec5836a2e39284e65bd7d7275e49" -dependencies = [ - "approx", - "num-traits", - "palette_derive 0.6.1", - "phf", -] - [[package]] name = "palette" version = "0.7.3" @@ -1898,22 +1807,10 @@ checksum = "b2e2f34147767aa758aa649415b50a69eeb46a67f9dc7db8011eeb3d84b351dc" dependencies = [ "approx", "fast-srgb8", - "palette_derive 0.7.3", + "palette_derive", "phf", ] -[[package]] -name = "palette_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05eedf46a8e7c27f74af0c9cfcdb004ceca158cb1b918c6f68f8d7a549b3e427" -dependencies = [ - "find-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "palette_derive" version = "0.7.3" @@ -2083,6 +1980,15 @@ version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135ede8821cf6376eb7a64148901e1690b788c11ae94dc297ae917dbc91dc0e" +[[package]] +name = "qoi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001" +dependencies = [ + "bytemuck", +] + [[package]] name = "quick-xml" version = "0.28.2" @@ -2508,6 +2414,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spirv" @@ -2652,6 +2561,17 @@ dependencies = [ "syn 2.0.42", ] +[[package]] +name = "tiff" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + [[package]] name = "tiny-skia" version = "0.8.4" @@ -2718,15 +2638,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml" version = "0.8.8" @@ -2804,7 +2715,6 @@ dependencies = [ "fern", "flate2", "iced", - "iced_glow", "log", "regex", "retry", @@ -2812,7 +2722,7 @@ dependencies = [ "serde_json", "static_init", "tar", - "toml 0.8.8", + "toml", "ureq", ] @@ -3158,6 +3068,12 @@ version = "0.25.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" +[[package]] +name = "weezl" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" + [[package]] name = "wgpu" version = "0.16.3" @@ -3220,7 +3136,7 @@ dependencies = [ "core-graphics-types", "d3d12", "foreign-types", - "glow 0.12.3", + "glow", "gpu-alloc", "gpu-allocator", "gpu-descriptor", @@ -3643,12 +3559,6 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" -[[package]] -name = "xi-unicode" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" - [[package]] name = "xml-rs" version = "0.8.19" @@ -3686,3 +3596,12 @@ dependencies = [ "quote", "syn 2.0.42", ] + +[[package]] +name = "zune-inflate" +version = "0.2.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02" +dependencies = [ + "simd-adler32", +] diff --git a/Cargo.toml b/Cargo.toml index a31d215..da1382a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,7 +29,7 @@ toml = "^0" dirs = "^5.0.0" ureq = { version = "*", features = ["json"] } retry = "^2.0.0" -iced = { version = "^0.10.0", features = ["advanced"] } +iced = { version = "^0.10.0", features = ["advanced", "image"] } [target.'cfg(not(target_os = "windows"))'.dependencies] flate2 = { version = "^1", optional = true } diff --git a/src/gui/mod.rs b/src/gui/mod.rs index 47744ab..873fed3 100644 --- a/src/gui/mod.rs +++ b/src/gui/mod.rs @@ -8,7 +8,9 @@ use crate::core::uad_lists::UadListState; use crate::core::update::{get_latest_release, Release, SelfUpdateState, SelfUpdateStatus}; use crate::core::utils::string_to_theme; +use iced::advanced::graphics::image::image_rs::ImageFormat; use iced::font; +use iced::window::icon; use views::about::{About as AboutView, Message as AboutMessage}; use views::list::{List as AppsView, LoadingState as ListLoadingState, Message as AppsMessage}; use views::settings::{Message as SettingsMessage, Settings as SettingsView}; @@ -363,11 +365,14 @@ impl Application for UadGui { impl UadGui { pub fn start() -> iced::Result { + let logo = include_bytes!("../../resources/assets/logo.png"); + Self::run(Settings { window: Window { size: (820, 640), resizable: true, decorations: true, + icon: icon::from_file_data(logo, Some(ImageFormat::Png)).ok(), ..iced::window::Settings::default() }, default_text_size: 16.0,