diff --git a/.gitignore b/.gitignore index 298e00b..1a09545 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,6 @@ flatpak/ /report ci_tester/target ci_tester/Cargo.lock -czkawka_slint_gui/Cargo.lock -czkawka_slint_gui/target +krokiet/Cargo.lock +krokiet/target *.json \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index b636f5e..6d9cc42 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -18,77 +18,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" -[[package]] -name = "accesskit" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2" - -[[package]] -name = "accesskit_consumer" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6" -dependencies = [ - "accesskit", -] - -[[package]] -name = "accesskit_macos" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3b6ae1eabbfbced10e840fd3fce8a93ae84f174b3e4ba892ab7bcb42e477a7" -dependencies = [ - "accesskit", - "accesskit_consumer", - "objc2 0.3.0-beta.3.patch-leaks.3", - "once_cell", -] - -[[package]] -name = "accesskit_unix" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8c9b4467d77cacfbc93cee9aa8e7822f6d527c774efdca5f8b3a5280c34847" -dependencies = [ - "accesskit", - "accesskit_consumer", - "async-channel 1.9.0", - "async-once-cell", - "atspi", - "futures-lite 1.13.0", - "once_cell", - "serde", - "zbus", -] - -[[package]] -name = "accesskit_windows" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcae27ec0974fc7c3b0b318783be89fd1b2e66dd702179fe600166a38ff4a0b" -dependencies = [ - "accesskit", - "accesskit_consumer", - "once_cell", - "paste", - "static_assertions", - "windows 0.48.0", -] - -[[package]] -name = "accesskit_winit" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5284218aca17d9e150164428a0ebc7b955f70e3a9a78b4c20894513aabf98a67" -dependencies = [ - "accesskit", - "accesskit_macos", - "accesskit_unix", - "accesskit_windows", - "winit", -] - [[package]] name = "adler" version = "1.0.2" @@ -416,12 +345,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "async-once-cell" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9338790e78aa95a416786ec8389546c4b6a1dfc3dc36071ed9518a9413a542eb" - [[package]] name = "async-process" version = "1.8.1" @@ -526,54 +449,6 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atspi" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6059f350ab6f593ea00727b334265c4dfc7fd442ee32d264794bd9bdc68e87ca" -dependencies = [ - "atspi-common", - "atspi-connection", - "atspi-proxies", -] - -[[package]] -name = "atspi-common" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92af95f966d2431f962bc632c2e68eda7777330158bf640c4af4249349b2cdf5" -dependencies = [ - "enumflags2", - "serde", - "static_assertions", - "zbus", - "zbus_names", - "zvariant", -] - -[[package]] -name = "atspi-connection" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c65e7d70f86d4c0e3b2d585d9bf3f979f0b19d635a336725a88d279f76b939" -dependencies = [ - "atspi-common", - "atspi-proxies", - "futures-lite 1.13.0", - "zbus", -] - -[[package]] -name = "atspi-proxies" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6495661273703e7a229356dcbe8c8f38223d697aacfaf0e13590a9ac9977bb52" -dependencies = [ - "atspi-common", - "serde", - "zbus", -] - [[package]] name = "audio_checker" version = "0.1.0" @@ -710,32 +585,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]] @@ -744,8 +600,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]] @@ -1158,7 +1014,7 @@ dependencies = [ [[package]] name = "const-field-offset" version = "0.1.3" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "const-field-offset-macro", "field-offset", @@ -1167,7 +1023,7 @@ dependencies = [ [[package]] name = "const-field-offset-macro" version = "0.1.3" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "proc-macro2", "quote", @@ -1486,23 +1342,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "czkawka_slint" -version = "6.1.0" -dependencies = [ - "chrono", - "crossbeam-channel", - "czkawka_core", - "handsome_logger", - "home", - "log", - "open", - "rand", - "rfd", - "slint", - "slint-build", -] - [[package]] name = "darling" version = "0.14.4" @@ -2568,7 +2407,7 @@ dependencies = [ "glutin_wgl_sys", "icrate", "libloading 0.8.1", - "objc2 0.4.1", + "objc2", "once_cell", "raw-window-handle 0.5.2", "wayland-sys", @@ -2834,7 +2673,7 @@ dependencies = [ [[package]] name = "i-slint-backend-linuxkms" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "calloop 0.11.0", "drm", @@ -2855,7 +2694,7 @@ dependencies = [ [[package]] name = "i-slint-backend-selector" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "cfg-if", "i-slint-backend-linuxkms", @@ -2868,10 +2707,8 @@ dependencies = [ [[package]] name = "i-slint-backend-winit" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ - "accesskit", - "accesskit_winit", "bytemuck", "cfg-if", "cfg_aliases", @@ -2905,7 +2742,7 @@ dependencies = [ [[package]] name = "i-slint-common" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "cfg-if", "derive_more", @@ -2916,7 +2753,7 @@ dependencies = [ [[package]] name = "i-slint-compiler" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "by_address", "codemap", @@ -2945,7 +2782,7 @@ dependencies = [ [[package]] name = "i-slint-core" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "auto_enums", "bytemuck", @@ -2988,7 +2825,7 @@ dependencies = [ [[package]] name = "i-slint-core-macros" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "quote", "syn 2.0.39", @@ -2997,7 +2834,7 @@ dependencies = [ [[package]] name = "i-slint-renderer-femtovg" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "cfg-if", "const-field-offset", @@ -3029,7 +2866,7 @@ dependencies = [ [[package]] name = "i-slint-renderer-skia" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "ash", "bytemuck", @@ -3161,9 +2998,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]] @@ -3472,6 +3309,23 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" +[[package]] +name = "krokiet" +version = "6.1.0" +dependencies = [ + "chrono", + "crossbeam-channel", + "czkawka_core", + "handsome_logger", + "home", + "log", + "open", + "rand", + "rfd", + "slint", + "slint-build", +] + [[package]] name = "kurbo" version = "0.9.5" @@ -4078,46 +3932,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]] @@ -5090,18 +4918,18 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.190" +version = "1.0.191" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "a834c4821019838224821468552240d4d95d14e751986442c816572d39a080c9" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.190" +version = "1.0.191" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "46fa52d5646bce91b680189fe5b1c049d2ea38dabb4e2e7c8d00ca12cfbfbcfd" dependencies = [ "proc-macro2", "quote", @@ -5261,7 +5089,7 @@ dependencies = [ [[package]] name = "slint" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "const-field-offset", "i-slint-backend-selector", @@ -5277,7 +5105,7 @@ dependencies = [ [[package]] name = "slint-build" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "i-slint-compiler", "spin_on", @@ -5288,7 +5116,7 @@ dependencies = [ [[package]] name = "slint-macros" version = "1.3.0" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "i-slint-compiler", "proc-macro2", @@ -6422,7 +6250,7 @@ dependencies = [ [[package]] name = "vtable" version = "0.1.11" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "const-field-offset", "portable-atomic", @@ -6433,7 +6261,7 @@ dependencies = [ [[package]] name = "vtable-macro" version = "0.1.10" -source = "git+https://github.com/slint-ui/slint.git#849b583b774a7d62176bf10aa11c383207b44d95" +source = "git+https://github.com/slint-ui/slint.git#2acaa222d0aa8c3787f6cd700d0c76768b9612ed" dependencies = [ "proc-macro2", "quote", @@ -6764,8 +6592,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-implement", - "windows-interface", "windows-targets 0.48.5", ] @@ -6778,28 +6604,6 @@ dependencies = [ "windows-targets 0.48.5", ] -[[package]] -name = "windows-implement" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "windows-interface" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "windows-sys" version = "0.45.0" @@ -6955,12 +6759,11 @@ dependencies = [ "memmap2 0.9.0", "ndk", "ndk-sys", - "objc2 0.4.1", + "objc2", "once_cell", "orbclient", "percent-encoding", "raw-window-handle 0.5.2", - "raw-window-handle 0.6.0", "redox_syscall 0.3.5", "rustix 0.38.21", "sctk-adwaita", diff --git a/Cargo.toml b/Cargo.toml index 6a485d6..c8806cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = [ "czkawka_core", "czkawka_cli", "czkawka_gui", - "czkawka_slint_gui" + "krokiet" ] exclude = [ "ci_tester", diff --git a/czkawka_slint_gui/.clippy.toml b/krokiet/.clippy.toml similarity index 100% rename from czkawka_slint_gui/.clippy.toml rename to krokiet/.clippy.toml diff --git a/czkawka_slint_gui/Cargo.toml b/krokiet/Cargo.toml similarity index 95% rename from czkawka_slint_gui/Cargo.toml rename to krokiet/Cargo.toml index 91866f3..68780d2 100644 --- a/czkawka_slint_gui/Cargo.toml +++ b/krokiet/Cargo.toml @@ -1,10 +1,10 @@ [package] -name = "czkawka_slint" +name = "krokiet" version = "6.1.0" authors = ["RafaƂ Mikrut "] edition = "2021" rust-version = "1.72.1" -description = "Slint frontend of Czkawka" +description = "Slint frontend of Czkawka Core" license = "GPL-3" homepage = "https://github.com/qarmin/czkawka" repository = "https://github.com/qarmin/czkawka" @@ -17,7 +17,7 @@ build = "build.rs" # Try to use only needed features from https://github.com/slint-ui/slint/blob/master/api/rs/slint/Cargo.toml#L23-L31 slint = { git = "https://github.com/slint-ui/slint.git", default-features = false, features = ["std", "backend-winit", - "accessibility", +# "accessibility", "compat-1-2" ] } #slint = { path = "/home/rafal/test/slint/api/rs/slint/", default-features = false, features = ["std", diff --git a/czkawka_slint_gui/LICENSE b/krokiet/LICENSE similarity index 100% rename from czkawka_slint_gui/LICENSE rename to krokiet/LICENSE diff --git a/czkawka_slint_gui/README.md b/krokiet/README.md similarity index 79% rename from czkawka_slint_gui/README.md rename to krokiet/README.md index 136b3f2..b8ef78d 100644 --- a/czkawka_slint_gui/README.md +++ b/krokiet/README.md @@ -1,23 +1,23 @@ -# NAME_TODO +# Krokiet -NAME_TODO is new Czkawka frontend written in Slint(written mostly in Rust) in opposite to Gtk 4 frontend which uses mostly C code. +Krokiet is new Czkawka frontend written in Slint(written mostly in Rust) in opposite to Gtk 4 frontend which uses mostly C code. Different toolkit means different look, limitations and features, so you should not expect same features like in Gtk 4 frontend. ## Requirements -Slint version of app should not have any special runtime requirements - it should work on almost any OpenGL ES 2 capable device. +Krokiet should not have any special runtime requirements - it should work on almost any OpenGL ES 2 capable device. Alternatively, it can be run with software rendering. ## Compilation -Ubuntu +On Ubuntu you need to install this dependencies: ``` sudo apt install libfontconfig-dev libfreetype-dev ``` Default compilation is done by `cargo build --release` and should work on most systems. -You need the latest available version of Rust to compile it, because NAME_TODO aims to support the latest slint verions, +You need the latest available version of Rust to compile it, because Krokiet aims to support the latest slint verions, that should provide best experience(fixed more bugs/new features). The only exception is building non default skia renderer, that require on windows msvc compiler(not sure how to exactly install it). @@ -37,9 +37,9 @@ cargo build --release --features "winit_software" to run app with different renderers you need to use it, by adding `SLINT_BACKEND` environment ``` -SLINT_BACKEND=winit-femtovg ./target/release/czkawka_slint_gui -SLINT_BACKEND=software ./target/release/czkawka_slint_gui -SLINT_BACKEND=skia ./target/release/czkawka_slint_gui # This uses now opengl - https://github.com/slint-ui/slint/discussions/3799 +SLINT_BACKEND=winit-femtovg ./target/release/krokiet +SLINT_BACKEND=software ./target/release/krokiet +SLINT_BACKEND=skia ./target/release/krokiet # This uses now opengl - https://github.com/slint-ui/slint/discussions/3799 ``` when you will use invalid/non-existing backend, app will show warning ``` @@ -54,7 +54,7 @@ should print something like Slint: Build config: debug; Backend: software ``` -## Dark theme +## Dark/Different theme App was created with white fluent theme by default, but is easily possible to use dark theme by setting `SLINT_STYLE` environment variable to `fluent-dark` during compilation e.g. ``` @@ -72,11 +72,11 @@ SLINT_STYLE=material-dark cargo run -- --path . ## How to help? - Suggesting possible design changes in the gui - of course, they should be possible to be simply implemented in the slint keeping in mind the performance aspect as well - Modifying user interface - gui is written in simple language similar to qml - [slint live preview example](https://slint.dev/releases/1.2.2/editor/?load_demo=examples/printerdemo/ui/printerdemo.slint) -- Improving libraries used by NAME_TODO e.g. czkawka_core, image-rs etc. +- Improving libraries used by Krokiet e.g. czkawka_core, image-rs etc. - Improving app rust code ## Why Slint? -There are multiple reasons why I decided to use Slint as toolkit for NAME_TODO over other toolkits. +There are multiple reasons why I decided to use Slint as toolkit for Krokiet over other toolkits. | Toolkit | Pros | Cons | |---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -84,6 +84,16 @@ There are multiple reasons why I decided to use Slint as toolkit for NAME_TODO o | Qt | - QML support - simplify creating of gui from code it is easy to use and powerful
- Very flexible framework
- Typescript/javascript <=> qml interoperability
- Probably the most mature GUI library | - New and limited qt bindings
- Big cross compilation problems and hard to setup on non windows platforms
- Very easy to create and use invalid state in QML(unexpected null/undefined values etc.)
- Commercial license or GPL | | Slint | - Internal language is compiled to native code
- Live gui preview with Vscode/Vscodium without needing to use rust
- Full rust solution - easy to compile/cross compile, minimal runtime requirements | - Internal .slint language is more limited than QML(javascript flexibility is big pl)
- Out of bounds and similar errors are quietly being corrected instead printing error - this can lead to hard to debug problems
- Commercial license or GPL(is available also different ) | | Iced | - ~100% rust code - so compilation is simple
- Elm architecture - simple to understand | - Mostly maintained by one person - slows down fixing bugs and implementing new features
- GUI can be created only from rust code, which really is bad for creating complex GUIs(mostly due rust compile times) and this is also
- Docs are almost non-existent | +| Tauri | - Easy to create ui(at least for web developers) - uses html/css/js
- Quite portable | - Webview dependency - it is not really lightweight and can be hard to compile on some platforms
- Cannot select directory - file chooser only can choose files - small thing but important for me
- Not very performant Rust <=> Javascript communication | + Since I don't have time to create really complex and good looking GUI, I needed a helper tool to create GUI not from Rust(I don't want to use different language, because this will make communication with czkawka_core harder) so I decided to not look at Iced which only allows to create GUI from Rust. -GTK and QT also I throw away due cross compilation problems caused mostly by using C/C++, so only Slint left. \ No newline at end of file +GTK and QT also I throw away due cross compilation problems caused mostly by using C/C++ internally. + +Tauri - I don't really like to use Javascript because I already used it with Qt(C++) + QML + Typescript combination and I found that creating ui in such language may be simple at start but later any bigger changes cause a lot of runtime errors. + +So only Slint left. + +## Name +Why Krokiet(eng. Croquette)? +Because I like croquettes, the ones with meat, mushrooms wrapped in breadcrumbs... it makes my mouth water. \ No newline at end of file diff --git a/czkawka_slint_gui/build.rs b/krokiet/build.rs similarity index 100% rename from czkawka_slint_gui/build.rs rename to krokiet/build.rs diff --git a/czkawka_slint_gui/icons/logo.png b/krokiet/icons/logo.png similarity index 100% rename from czkawka_slint_gui/icons/logo.png rename to krokiet/icons/logo.png diff --git a/czkawka_slint_gui/icons/settings.png b/krokiet/icons/settings.png similarity index 100% rename from czkawka_slint_gui/icons/settings.png rename to krokiet/icons/settings.png diff --git a/czkawka_slint_gui/src/common.rs b/krokiet/src/common.rs similarity index 100% rename from czkawka_slint_gui/src/common.rs rename to krokiet/src/common.rs diff --git a/czkawka_slint_gui/src/connect_delete.rs b/krokiet/src/connect_delete.rs similarity index 100% rename from czkawka_slint_gui/src/connect_delete.rs rename to krokiet/src/connect_delete.rs diff --git a/czkawka_slint_gui/src/connect_directories_changes.rs b/krokiet/src/connect_directories_changes.rs similarity index 100% rename from czkawka_slint_gui/src/connect_directories_changes.rs rename to krokiet/src/connect_directories_changes.rs diff --git a/czkawka_slint_gui/src/connect_open.rs b/krokiet/src/connect_open.rs similarity index 100% rename from czkawka_slint_gui/src/connect_open.rs rename to krokiet/src/connect_open.rs diff --git a/czkawka_slint_gui/src/connect_progress_receiver.rs b/krokiet/src/connect_progress_receiver.rs similarity index 100% rename from czkawka_slint_gui/src/connect_progress_receiver.rs rename to krokiet/src/connect_progress_receiver.rs diff --git a/czkawka_slint_gui/src/connect_scan.rs b/krokiet/src/connect_scan.rs similarity index 100% rename from czkawka_slint_gui/src/connect_scan.rs rename to krokiet/src/connect_scan.rs diff --git a/czkawka_slint_gui/src/connect_stop.rs b/krokiet/src/connect_stop.rs similarity index 100% rename from czkawka_slint_gui/src/connect_stop.rs rename to krokiet/src/connect_stop.rs diff --git a/czkawka_slint_gui/src/main.rs b/krokiet/src/main.rs similarity index 100% rename from czkawka_slint_gui/src/main.rs rename to krokiet/src/main.rs diff --git a/czkawka_slint_gui/src/settings.rs b/krokiet/src/settings.rs similarity index 100% rename from czkawka_slint_gui/src/settings.rs rename to krokiet/src/settings.rs diff --git a/czkawka_slint_gui/ui/action_buttons.slint b/krokiet/ui/action_buttons.slint similarity index 100% rename from czkawka_slint_gui/ui/action_buttons.slint rename to krokiet/ui/action_buttons.slint diff --git a/czkawka_slint_gui/ui/bottom_panel.slint b/krokiet/ui/bottom_panel.slint similarity index 100% rename from czkawka_slint_gui/ui/bottom_panel.slint rename to krokiet/ui/bottom_panel.slint diff --git a/czkawka_slint_gui/ui/color_palette.slint b/krokiet/ui/color_palette.slint similarity index 100% rename from czkawka_slint_gui/ui/color_palette.slint rename to krokiet/ui/color_palette.slint diff --git a/czkawka_slint_gui/ui/common.slint b/krokiet/ui/common.slint similarity index 100% rename from czkawka_slint_gui/ui/common.slint rename to krokiet/ui/common.slint diff --git a/czkawka_slint_gui/ui/left_side_panel.slint b/krokiet/ui/left_side_panel.slint similarity index 100% rename from czkawka_slint_gui/ui/left_side_panel.slint rename to krokiet/ui/left_side_panel.slint diff --git a/czkawka_slint_gui/ui/main_lists.slint b/krokiet/ui/main_lists.slint similarity index 100% rename from czkawka_slint_gui/ui/main_lists.slint rename to krokiet/ui/main_lists.slint diff --git a/czkawka_slint_gui/ui/main_window.slint b/krokiet/ui/main_window.slint similarity index 100% rename from czkawka_slint_gui/ui/main_window.slint rename to krokiet/ui/main_window.slint diff --git a/czkawka_slint_gui/ui/progress.slint b/krokiet/ui/progress.slint similarity index 100% rename from czkawka_slint_gui/ui/progress.slint rename to krokiet/ui/progress.slint diff --git a/czkawka_slint_gui/ui/selectable_tree_view.slint b/krokiet/ui/selectable_tree_view.slint similarity index 100% rename from czkawka_slint_gui/ui/selectable_tree_view.slint rename to krokiet/ui/selectable_tree_view.slint diff --git a/czkawka_slint_gui/ui/settings.slint b/krokiet/ui/settings.slint similarity index 100% rename from czkawka_slint_gui/ui/settings.slint rename to krokiet/ui/settings.slint