1
0
Fork 0
mirror of synced 2024-05-17 19:03:08 +12:00
This commit is contained in:
Rafał Mikrut 2023-11-06 22:03:44 +01:00
parent 8d8abe39a4
commit 727dd4fce8
29 changed files with 74 additions and 261 deletions

4
.gitignore vendored
View file

@ -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

289
Cargo.lock generated
View file

@ -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",

View file

@ -3,7 +3,7 @@ members = [
"czkawka_core",
"czkawka_cli",
"czkawka_gui",
"czkawka_slint_gui"
"krokiet"
]
exclude = [
"ci_tester",

View file

@ -1,10 +1,10 @@
[package]
name = "czkawka_slint"
name = "krokiet"
version = "6.1.0"
authors = ["Rafał Mikrut <mikrutrafal@protonmail.com>"]
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",

View file

@ -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 </br> - Very flexible framework <br/> - Typescript/javascript <=> qml interoperability </br> - Probably the most mature GUI library | - New and limited qt bindings <br/> - Big cross compilation problems and hard to setup on non windows platforms <br/> - Very easy to create and use invalid state in QML(unexpected null/undefined values etc.) <br/> - Commercial license or GPL |
| Slint | - Internal language is compiled to native code <br/> - Live gui preview with Vscode/Vscodium without needing to use rust <br/> - Full rust solution - easy to compile/cross compile, minimal runtime requirements | - Internal .slint language is more limited than QML(javascript flexibility is big pl) <br/> - Out of bounds and similar errors are quietly being corrected instead printing error - this can lead to hard to debug problems <br/> - Commercial license or GPL(is available also different ) |
| Iced | - ~100% rust code - so compilation is simple </br> - Elm architecture - simple to understand | - Mostly maintained by one person - slows down fixing bugs and implementing new features </br> - 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 </br> - Docs are almost non-existent |
| Tauri | - Easy to create ui(at least for web developers) - uses html/css/js</br>- Quite portable | - Webview dependency - it is not really lightweight and can be hard to compile on some platforms</br>- Cannot select directory - file chooser only can choose files - small thing but important for me</br>- 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.
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.

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB