diff --git a/Cargo.lock b/Cargo.lock index e97e3cc..170a05a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,7 +73,7 @@ dependencies = [ "android-properties", "bitflags 2.11.1", "cc", - "jni 0.22.4", + "jni", "libc", "log", "ndk", @@ -602,9 +602,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.60" +version = "1.2.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" +checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d" dependencies = [ "find-msvc-tools", "jobserver", @@ -612,12 +612,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - [[package]] name = "cfg-if" version = "1.0.4" @@ -854,9 +848,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95d0d11eb38e7642efca359c3cf6eb7b2e528182d09110165de70192b0352775" +checksum = "83cf0d42651b16c6dfe68685716d18480d18a9c39c62d76e8cf3eb6ed5d8bcbf" dependencies = [ "dtor", ] @@ -915,9 +909,9 @@ checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" [[package]] name = "dtor" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f72721db8027a4e96dd6fb50d2a1d32259c9d3da1b63dee612ccd981e14293" +checksum = "edf234dd1594d6dd434a8fb8cada51ddbbc593e40e4a01556a0b31c62da2775b" [[package]] name = "either" @@ -1072,23 +1066,9 @@ checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "fax" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05de7d48f37cd6730705cbca900770cab77a89f413d23e100ad7fad7795a0ab" -dependencies = [ - "fax_derive", -] - -[[package]] -name = "fax_derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0aca10fb742cb43f9e7bb8467c91aa9bcb8e3ffbc6a6f7389bb93ffc920577d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] +checksum = "caf1079563223d5d59d83c85886a56e586cfd5c1a26292e971a0fa266531ac5a" [[package]] name = "fdeflate" @@ -1846,9 +1826,9 @@ dependencies = [ [[package]] name = "imgref" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c5cedc30da3a610cac6b4ba17597bdf7152cf974e8aab3afb3d54455e371c8" +checksum = "40fac9d56ed6437b198fddba683305e8e2d651aa42647f00f5ae542e7f5c94a2" [[package]] name = "indexmap" @@ -1906,22 +1886,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" -[[package]] -name = "jni" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" -dependencies = [ - "cesu8", - "cfg-if", - "combine", - "jni-sys 0.3.1", - "log", - "thiserror 1.0.69", - "walkdir", - "windows-sys 0.45.0", -] - [[package]] name = "jni" version = "0.22.4" @@ -2001,9 +1965,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.95" +version = "0.3.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" +checksum = "a1840c94c045fbcf8ba2812c95db44499f7c64910a912551aaaa541decebcacf" dependencies = [ "cfg-if", "futures-util", @@ -2078,9 +2042,9 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "libc" -version = "0.2.185" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libfuzzer-sys" @@ -2263,9 +2227,9 @@ dependencies = [ [[package]] name = "mundy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523813c9e194ec43693805214eb112551f99382115b67f38600d724a692e7e8b" +checksum = "f32eb0db40f2df2bcfb05c93b8f73938d4c26ce9ac8881f1df0c8d3296921a73" dependencies = [ "android-build", "async-io", @@ -2273,7 +2237,7 @@ dependencies = [ "dispatch", "futures-channel", "futures-lite 2.6.1", - "jni 0.21.1", + "jni", "ndk-context", "objc2 0.6.4", "objc2-app-kit 0.3.2", @@ -2827,9 +2791,9 @@ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "orbclient" -version = "0.3.53" +version = "0.3.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12c6933ddbbd16539a7672e697bb8d41ac3a4e99ac43eeb40c07236bd7fcb2dd" +checksum = "a570f6bca41d29acb2139229a7c873ec99bc9a313bd10804081d89bfac8ff329" dependencies = [ "libc", "libredox", @@ -4274,9 +4238,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.118" +version = "0.2.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" +checksum = "df52b6d9b87e0c74c9edfa1eb2d9bf85e5d63515474513aa50fa181b3c4f5db1" dependencies = [ "cfg-if", "once_cell", @@ -4287,9 +4251,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.68" +version = "0.4.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" +checksum = "af934872acec734c2d80e6617bbb5ff4f12b052dd8e6332b0817bce889516084" dependencies = [ "js-sys", "wasm-bindgen", @@ -4297,9 +4261,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.118" +version = "0.2.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" +checksum = "78b1041f495fb322e64aca85f5756b2172e35cd459376e67f2a6c9dffcedb103" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4307,9 +4271,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.118" +version = "0.2.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" +checksum = "9dcd0ff20416988a18ac686d4d4d0f6aae9ebf08a389ff5d29012b05af2a1b41" dependencies = [ "bumpalo", "proc-macro2", @@ -4320,9 +4284,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.118" +version = "0.2.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" +checksum = "49757b3c82ebf16c57d69365a142940b384176c24df52a087fb748e2085359ea" dependencies = [ "unicode-ident", ] @@ -4512,9 +4476,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.95" +version = "0.3.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" +checksum = "2eadbac71025cd7b0834f20d1fe8472e8495821b4e9801eb0a60bd1f19827602" dependencies = [ "js-sys", "wasm-bindgen", @@ -4717,7 +4681,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ "windows-core 0.58.0", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4751,7 +4715,7 @@ dependencies = [ "windows-interface 0.58.0", "windows-result 0.2.0", "windows-strings 0.1.0", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4844,7 +4808,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4863,7 +4827,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ "windows-result 0.2.0", - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4875,22 +4839,13 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4899,7 +4854,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -4911,35 +4866,20 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -4951,36 +4891,18 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -4993,48 +4915,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -5282,9 +5180,9 @@ checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" [[package]] name = "zbus" -version = "5.14.0" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca82f95dbd3943a40a53cfded6c2d0a2ca26192011846a1810c4256ef92c60bc" +checksum = "c3bcbf15c8708d7fc1be0c993622e0a5cbd5e8b52bfa40afa4c3e0cd8d724ac1" dependencies = [ "async-broadcast", "async-executor", @@ -5309,7 +5207,7 @@ dependencies = [ "uds_windows", "uuid", "windows-sys 0.61.2", - "winnow 0.7.15", + "winnow 1.0.2", "zbus_macros", "zbus_names", "zvariant", @@ -5317,9 +5215,9 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.14.0" +version = "5.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897e79616e84aac4b2c46e9132a4f63b93105d54fe8c0e8f6bffc21fa8d49222" +checksum = "51fa5406ad9175a8c825a931f8cf347116b531b3634fcb0b627c290f1f2516ff" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5332,12 +5230,12 @@ dependencies = [ [[package]] name = "zbus_names" -version = "4.3.1" +version = "4.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffd8af6d5b78619bab301ff3c560a5bd22426150253db278f164d6cf3b72c50f" +checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" dependencies = [ "serde", - "winnow 0.7.15", + "winnow 1.0.2", "zvariant", ] @@ -5399,23 +5297,23 @@ dependencies = [ [[package]] name = "zvariant" -version = "5.10.0" +version = "5.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5708299b21903bbe348e94729f22c49c55d04720a004aa350f1f9c122fd2540b" +checksum = "c4db0ecb8987cf5e92653c57c098f7f0e39a03112edb796f4fe089fb7eaa14ff" dependencies = [ "endi", "enumflags2", "serde", - "winnow 0.7.15", + "winnow 1.0.2", "zvariant_derive", "zvariant_utils", ] [[package]] name = "zvariant_derive" -version = "5.10.0" +version = "5.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b59b012ebe9c46656f9cc08d8da8b4c726510aef12559da3e5f1bf72780752c" +checksum = "5b949b639ab1b4bed763aa7481ba0e368af68d8b55532f8ed4bec86a59f2ca98" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -5426,13 +5324,13 @@ dependencies = [ [[package]] name = "zvariant_utils" -version = "3.3.0" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f75c23a64ef8f40f13a6989991e643554d9bef1d682a281160cf0c1bc389c5e9" +checksum = "6d464f5733ffa07a3164d656f18533caace9d0638596721355d73256a410d691" dependencies = [ "proc-macro2", "quote", "serde", "syn", - "winnow 0.7.15", + "winnow 1.0.2", ] diff --git a/Cargo.toml b/Cargo.toml index 44ec775..90724de 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,6 @@ toml = "1" [profile.release] #lto = true -codegen-units = 8 -opt-level = 3 +codegen-units = 16 +opt-level = 2 strip = true diff --git a/src/locales/en.json b/src/locales/en.json index af03a01..7e915fe 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -8,7 +8,7 @@ "wellcome.text": "Welcome to Kira Installer!", "wellcome.choose_language": "Please select language to use during istalation!", "license.license": "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see .", - "license.accept_text": "By pressing 'Accept' button you agreening to terms described above:", + "license.accept_text": "By pressing 'Accept' button you agreening to terms described below:", "license.button.accept": "Accept", "license.button.decline": "Decline", "network.reuse_checkbox_caption": "Reuse settings?", @@ -21,7 +21,7 @@ "timezone.selected_timezone": "Selected timezone:", "timezone.select_timezone": "Please select preffered time zone", "timezone.init_error": "Error getting time zones data from system!", - "locale.select_language_locale": "Language locale set to", - "locale.select_formats_locale": "Formats locale set to" + "locale.select_language_locale": "The system language will be set to", + "locale.select_formats_locale": "The numbers and dates locale will be set to" } \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index ce6b419..b12ac0b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -252,6 +252,7 @@ pub fn main() -> ExitCode { }) .centered() .theme(kira_theming::main_theme()) + .default_font(iced::Font::MONOSPACE) .run(); match iced_result { diff --git a/src/stages/license/mod.rs b/src/stages/license/mod.rs index 83a94da..6cd223e 100644 --- a/src/stages/license/mod.rs +++ b/src/stages/license/mod.rs @@ -1,25 +1,22 @@ - // - // Copyright (C) <2026> +// +// Copyright (C) <2026> - // This program is free software: you can redistribute it and/or modify - // it under the terms of the GNU General Public License as published by - // the Free Software Foundation, either version 3 of the License, or - // (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. - // This program is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License - // along with this program. If not, see . +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . /* - This is License stage. Used to inform user about program legal status. - */ - - + This is License stage. Used to inform user about program legal status. +*/ use iced::{Alignment, widget}; @@ -74,12 +71,20 @@ impl LicenseStage { widget::button(widget::text(t!("license.button.decline"))).on_press(Message::Decline); widget::column![ - widget::container(widget::column![ - widget::text(t!("license.accept_text")), - widget::container(widget::text(t!("license.license"))) - .padding(10) - .style(widget::container::bordered_box) - ].align_x(Alignment::Center).padding(20).spacing(10)) + widget::container( + widget::column![ + widget::text(t!("license.accept_text")).font(iced::Font { + weight: iced::font::Weight::Bold, + ..iced::Font::DEFAULT + }), + widget::container(widget::text(t!("license.license"))) + .padding(10) + .style(widget::container::bordered_box) + ] + .align_x(Alignment::Center) + .padding(20) + .spacing(15) + ) .height(iced::Length::Fill) .width(iced::Length::Fill) .align_x(Alignment::Center) diff --git a/src/stages/locale/mod.rs b/src/stages/locale/mod.rs index f2e3f37..c0ecd9c 100644 --- a/src/stages/locale/mod.rs +++ b/src/stages/locale/mod.rs @@ -24,14 +24,14 @@ use crate::{ }; use iced::{Alignment, widget}; use rust_i18n::t; -use std::{collections::HashMap, default}; +use std::collections::HashMap; const LOCALES_GEN_FILE_NAME: &str = "/etc/locale.gen"; const LOCALES_GEN_START_LINE: usize = 17; -fn default_locale() -> (String, String) { - ("C.UTF-8".to_string(), "UTF-8".to_string()) -} +// fn default_locale() -> (String, String) { +// ("C.UTF-8".to_string(), "UTF-8".to_string()) +// } #[derive(Debug, Clone, PartialEq, Eq)] pub struct LocaleData { @@ -41,20 +41,21 @@ pub struct LocaleData { impl std::fmt::Display for LocaleData { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "{} ({})", self.description, self.code) + write!(f, "{} ({})", self.code, self.description) } } impl LocaleData { pub fn default() -> Self { - let def = default_locale(); Self { - code: def.0, - description: def.1, + code: "C.UTF-8".into(), + description: "C locale".into(), } } } +/// gets locales list from system "/etc/locale.gen" file +/// Filters out non UTF-8 locales fn get_locales_codes_list_blocking() -> std::io::Result> { use std::fs::File; use std::io::{BufReader, Read}; @@ -86,6 +87,7 @@ fn get_locales_codes_list_blocking() -> std::io::Result> { Ok(res) } +/// Gets locales description from "/usr/share/i18n/locales/" directory. fn get_locales_description_blocking() -> Result, String> { use std::process::Command; @@ -130,7 +132,7 @@ fn get_locales_description_blocking() -> Result, String> #[derive(Debug, Clone)] pub struct LocaleStage { lang_locale: Option, - all_locale: Option, + formats_locale: Option, locales: Vec, lang_locale_text: String, all_locale_text: String, @@ -139,7 +141,7 @@ pub struct LocaleStage { #[derive(Debug, Clone)] pub enum Message { SelectLangLocale(LocaleData), - SelectAllLocale(LocaleData), + SelectFormatsLocale(LocaleData), Next, Back, } @@ -151,13 +153,12 @@ impl LocaleStage { .get_stage("welcome") .and_then(|v| v.config.and_then(|v| v.get("loc_code").cloned())); - let loc_codes = get_locales_codes_list_blocking().unwrap(); - + let raw_loc_codes = get_locales_codes_list_blocking().unwrap(); let raw_loc_descr = get_locales_description_blocking().unwrap(); - // println!("{:?}", raw_loc_descr); + //println!("{:?}", raw_loc_descr); - let locales: Vec = loc_codes + let locales: Vec = raw_loc_codes .iter() .filter_map(|(code, _)| { code.split_once('.') @@ -186,8 +187,8 @@ impl LocaleStage { LocaleData::default() }; - println!("lang_match {:?}", lang_match); - println!("loc_codes {:?}", loc_codes); + //println!("lang_match {:?}", lang_match); + //println!("loc_codes {:?}", raw_loc_codes); // let locale = locales.iter().find(|l| l.code == lang_match.0).cloned(); @@ -203,7 +204,7 @@ impl LocaleStage { ); Self { lang_locale: Some(lang_match.clone()), - all_locale: Some(lang_match), + formats_locale: Some(lang_match), locales: locales, lang_locale_text: lang_locale_text, all_locale_text: all_locale_text, @@ -212,7 +213,7 @@ impl LocaleStage { fn gen_result(&self) -> StageResult { if let Some(lang_locale) = &self.lang_locale - && let Some(all_locale) = &self.all_locale + && let Some(formats_locale) = &self.formats_locale { StageResult { name: "locale".to_string(), @@ -222,25 +223,23 @@ impl LocaleStage { ConfigValue::String(lang_locale.code.clone()), ), ( - "all_locale".to_string(), - ConfigValue::String(all_locale.code.clone()), + "formats_locale".to_string(), + ConfigValue::String(formats_locale.code.clone()), ), ])), resuts: None, error: None, } } else { + let loc = LocaleData::default(); StageResult { name: "locale".to_string(), config: Some(HashMap::from([ ( "lang_locale".to_string(), - ConfigValue::String(default_locale().0), - ), - ( - "all_locale".to_string(), - ConfigValue::String(default_locale().0), + ConfigValue::String(loc.code.clone()), ), + ("formats_locale".to_string(), ConfigValue::String(loc.code)), ])), resuts: None, error: None, @@ -256,10 +255,10 @@ impl LocaleStage { self.lang_locale = Some(loc); StageAction::None } - Message::SelectAllLocale(loc) => { + Message::SelectFormatsLocale(loc) => { self.all_locale_text = format!("{}: {}", t!("locale.select_formats_locale"), loc.code); - self.all_locale = Some(loc); + self.formats_locale = Some(loc); StageAction::None } Message::Back => StageAction::Back, @@ -280,20 +279,32 @@ impl LocaleStage { widget::image(welcome_logo_handle) .width(iced::Pixels(128.0)) .height(iced::Pixels(128.0)), - widget::column![ - widget::text(self.lang_locale_text.as_str()), - widget::pick_list( - self.locales.clone(), - self.lang_locale.clone(), - Message::SelectLangLocale, - ), - widget::text(self.all_locale_text.as_str()), - widget::pick_list( - self.locales.clone(), - self.all_locale.clone(), - Message::SelectAllLocale, - ) - ] + widget::container( + widget::column![ + widget::text(self.lang_locale_text.as_str()), + widget::pick_list( + self.locales.clone(), + self.lang_locale.clone(), + Message::SelectLangLocale, + ) + ] + .spacing(5) + ) + .style(widget::container::bordered_box) + .padding(5), + widget::container( + widget::column![ + widget::text(self.all_locale_text.as_str()), + widget::pick_list( + self.locales.clone(), + self.formats_locale.clone(), + Message::SelectFormatsLocale, + ) + ] + .spacing(5) + ) + .style(widget::container::bordered_box) + .padding(5) ] .padding(10) .spacing(10) diff --git a/src/stages/network/mod.rs b/src/stages/network/mod.rs index 2c18c75..ad3120d 100644 --- a/src/stages/network/mod.rs +++ b/src/stages/network/mod.rs @@ -29,7 +29,6 @@ use crate::stage; use crate::stage::StageResult; #[derive(Debug, Clone)] - #[derive(PartialEq, Eq)] pub enum State { Cheking, @@ -50,6 +49,7 @@ pub struct NetworkStage { use_net_settings: bool, reqire_network: bool, spinner_frames: apng::Frames, + logo_handle: widget::image::Handle, status_message: String, } @@ -113,7 +113,10 @@ impl NetworkStage { let spinner_frames = apng::Frames::from_bytes(crate::kira_theming::get_spiner_bytes()).unwrap(); + let logo_handle = widget::image::Handle::from_bytes(crate::kira_theming::get_logo_bytes()); + Self { + logo_handle: logo_handle, internet_active: false, state: State::Cheking, use_net_settings: false, @@ -178,12 +181,12 @@ impl NetworkStage { } pub fn view(&self) -> iced::Element<'_, Message> { - let next_button = if (self.state == State::Cheking) || (!self.internet_active && self.reqire_network) { - widget::button(widget::text(t!("button.next"))) - } - else { - widget::button(widget::text(t!("button.next"))).on_press(Message::Next) - }; + let next_button = + if (self.state == State::Cheking) || (!self.internet_active && self.reqire_network) { + widget::button(widget::text(t!("button.next"))) + } else { + widget::button(widget::text(t!("button.next"))).on_press(Message::Next) + }; let (back_button, check_button, reuse_checkbox) = match self.state { State::Cheking => ( @@ -202,8 +205,16 @@ impl NetworkStage { }; let spinner_container = match self.state { - State::Cheking => widget::container(apng(&self.spinner_frames)), - State::Normal => widget::container(widget::space().height(128).width(128)), + State::Cheking => widget::container( + apng(&self.spinner_frames) + .width(iced::Pixels(128.0).into()) + .height(iced::Pixels(128.0).into()), + ), + State::Normal => widget::container( + widget::image(&self.logo_handle) + .width(iced::Pixels(128.0)) + .height(iced::Pixels(128.0)), + ), }; let info_column = widget::column![