Changelog + mac output
This commit is contained in:
parent
2f192cddca
commit
eb52abf967
4
.github/workflows/mac.yml
vendored
4
.github/workflows/mac.yml
vendored
|
@ -51,7 +51,7 @@ jobs:
|
|||
- name: Store MacOS Krokiet
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: czkawka_gui-${{ runner.os }}-${{ matrix.toolchain }}
|
||||
name: krokiet-${{ runner.os }}-${{ matrix.toolchain }}
|
||||
path: target/release/krokiet
|
||||
if: ${{ matrix.type == 'release' }}
|
||||
|
||||
|
@ -76,6 +76,6 @@ jobs:
|
|||
- name: Store MacOS Krokiet Heif
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: czkawka_gui-${{ runner.os }}-${{ matrix.toolchain }}-heif
|
||||
name: krokiet-${{ runner.os }}-${{ matrix.toolchain }}-heif
|
||||
path: target/release/krokiet
|
||||
if: ${{ matrix.type == 'release' }}
|
|
@ -1,6 +1,7 @@
|
|||
## Version 7.0.0 - ?
|
||||
### GTK GUI
|
||||
- Added drag&drop support for included/excluded folders - [#1106](https://github.com/qarmin/czkawka/pull/1106)
|
||||
- Added information where is saved info about scan results - [#1102](https://github.com/qarmin/czkawka/pull/1102)
|
||||
|
||||
### CLI
|
||||
- Providing full static rust binary with [Eyra](https://github.com/sunfishcode/eyra) - [#1102](https://github.com/qarmin/czkawka/pull/1102)
|
||||
|
|
|
@ -6,11 +6,11 @@ C code.
|
|||
Different toolkit means different look, limitations and features, so you should not expect same features like in Gtk 4
|
||||
frontend(but of course I want implement most of features from other project).
|
||||
|
||||
## Requirements
|
||||
## Usage
|
||||
|
||||
Krokiet 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 device non-antic device.
|
||||
|
||||
Alternatively, it can be run with software rendering on computers that don't have graphics card.
|
||||
Prebuild binaries should work on Windows 10,11, Mac
|
||||
|
||||
## Compilation
|
||||
|
||||
|
@ -23,10 +23,10 @@ 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 Krokiet aims to support the latest slint verions,
|
||||
that should provide best experience(fixed more bugs/new features).
|
||||
that should provide best experience.
|
||||
|
||||
The only exception is building non default skia renderer, that require on windows msvc compiler(not sure how to exactly
|
||||
install it).
|
||||
The only exception is building skia renderer which is non default feature that can be enabled manually if you want to
|
||||
use it, that require on windows msvc compiler(not sure how to exactly install it).
|
||||
|
||||
Also skia renderer is written in C++ and uses on platforms like x86_64 and arm64 prebuild binaries, so if you are using
|
||||
different architecture, this library will be build from source, which can take a lot of time and require additional
|
||||
|
@ -75,14 +75,15 @@ Slint: Build config: debug; Backend: software
|
|||
|
||||
## Different theme
|
||||
|
||||
App was created with fluent theme in mind, but is possible to use dark theme by setting `SLINT_STYLE` environment
|
||||
variable to `fluent-dark` during compilation e.g.
|
||||
App was created with dark fluent theme in mind, but is possible to use light theme by setting `SLINT_STYLE` environment
|
||||
variable to `fluent-light` during compilation e.g.
|
||||
|
||||
```
|
||||
SLINT_STYLE=fluent-light cargo run -- --path .
|
||||
```
|
||||
|
||||
Slint supports also other themes, but they are not officially supported by this app and may be broken.
|
||||
Slint supports also other themes, but they are not officially supported by this app and may be broken(but looks that
|
||||
cupertino looks quite good with current style).
|
||||
|
||||
```
|
||||
SLINT_STYLE=cupertino-light cargo run -- --path .
|
||||
|
@ -121,25 +122,27 @@ SLINT_STYLE=material-dark cargo run -- --path .
|
|||
- logo
|
||||
- about window
|
||||
- reference folders
|
||||
- translations(problem is only with interface, messages like "Checking {x} file" can be easily translated from rust side)
|
||||
- translations(problem is only with interface, messages like "Checking {x} file" can be easily translated from rust
|
||||
side)
|
||||
|
||||
## Why Slint?
|
||||
|
||||
There are multiple reasons why I decided to use Slint as toolkit for Krokiet over other toolkits.
|
||||
|
||||
| Toolkit | Pros | Cons |
|
||||
|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Gtk 4 | - Hard compilation/cross compilation and bundling all required libraries - mostly on windows </br> - Cambalache can be used to create graphically gui </br> - Good gtk4-rs bindings(but sometimes not really intuitive) | - Hard compilation/cross compilation and bundling all required libraries - mostly on windows </br> - Forcing the use of a specific gui creation style </br> - Strange crashes, not working basic features, etc.(again, mostly on windows) </br> - Forcing to use bugged/outdated but dynamically loaded version of libraries on linux (e.g. 4.6 on Ubuntu 22.04) - not all fixes are backported |
|
||||
| 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 <br/> - Popup windows almost not exists <br/> - Internal widgets are almost not customizable and usually quite limited ) |
|
||||
| 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 |
|
||||
| Toolkit | Pros | Cons |
|
||||
|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| Gtk 4 | - Hard compilation/cross compilation and bundling all required libraries - mostly on windows </br> - Cambalache can be used to create graphically gui </br> - Good gtk4-rs bindings(but sometimes not really intuitive) | - Hard compilation/cross compilation and bundling all required libraries - mostly on windows </br> - Forcing the use of a specific gui creation style </br> - Strange crashes, not working basic features, etc.(again, mostly on windows) </br> - Forcing to use bugged/outdated but dynamically loaded version of libraries on linux (e.g. 4.6 on Ubuntu 22.04) - not all fixes are backported |
|
||||
| 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 </br> - Static type checks in slint files | - Internal .slint language is more limited than QML(javascript flexibility is hard to ) <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 <br/> - Popup windows almost not exists <br/> - Internal widgets are almost not customizable and usually quite limited) |
|
||||
| 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) </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 and on Linux e.g. webRTC not working have multiple limitaions in different os</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++ internally.
|
||||
GTK and QT also I throw away due cross compilation problems caused mostly by using C/C++ internally. Using GTK in
|
||||
Czkawka was a reason why I started to find other toolkits.
|
||||
|
||||
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
|
||||
|
@ -148,6 +151,7 @@ errors.
|
|||
So only Slint left with its cons and pros.
|
||||
|
||||
## License
|
||||
|
||||
Code is licensed under MIT license but entire project is licensed under GPL-3.0 license, due Slint license restrictions.
|
||||
|
||||
## Name
|
||||
|
|
Loading…
Reference in a new issue