9th of May 2022 to 15th of May 2022 - 0.2.4 Release
Applications
News about applications built with Slint
cargo-ui
Cargo-UI has seen a new release: Version 0.3.2.
Highlights include better completion of crate names in the text field used to add crates to a project as well as a updated slint dependency -- which enables keyboard navigation.
Slint UI Library
News
We did a small bug fix release at version 0.2.4 this week. It just fixes a bug that was reported after last weeks release.
Tobias Hunger did an interview for the Rustacean Station back in early March, which was published this week! If you want to listen to about 40 minutes of chat covering topics ranging from Slint, open source development, accessibility and licensing, check out episode 68.
New Features
-
Model Adapters (#1249)
Provide some adaptors to help with common tasks on the models like sorting and filtering.
-
Accessibility support (accessibility branch).
We consider accessibility to be a crucial topic for any UI toolkit, so we wanted to verify that we can support the needs of a wide range of users early on.
We have designed Slint with accessibility in mind from the get-go, but we have not validated and demonstrated how we want to have accessibility support work in Slint yet.
PRs #1264, #1254, #1253 and #1251 were merged into the
accessibility
branch this week. They add and make use of a new set of properties starting withaccessible-
to mark up widgets for use with OS-specific accessibility frameworks.These PRs make us of Qt to provide a platform-independent API to accessibility functions at this time, mostly so that we can test out the capabilities of different OS platforms with our proposed solution.
Together these patches enable rudimentary support for screen readers.
More work is needed before we can merge the accessibility branch into master.
Fixes
-
ScrollBar background is now Palette.white (#1275)
Thank you to Florian Fetz for this pull request!
-
Fix compiler panic when optimizing child of layout (#1268)
Normally, child of layout don't get optimized anyway because the layout sets their
x
andy
prop, preventing the optimization. But if the rectangle has an opacity, itsx
andy
property are stolen by the opacity element, and then it can get optimized anywayFixes #1267
-
GL backend: process timing event before processing input events (#1256)
Otherwise the timing code might think at the time of an event (eg key press) that the starting point of an animation that starts in this event is earlier in time than it really is. Causing the animation to appear as it had started earlier or literally be finished before it starts.
Fixes #1255
-
Native style: Fix crash when opening a combobox (#1248)
Bug introduced by https://github.com/slint-ui/slint/pull/1231
-
Fix focus of next item with empty components (#1247)
Empty components were not properly handled when looking for the next item to focus on. This caused e.g. the "Install" page to never get focus in cargo-ui.
This PR adds a test based on the cargo-ui interface and fixes that issue.
- Fix priority of aliases when default values are involved (#1244)
Documentation and Demos
-
Add CLion instructions to README (#1272)
Thank you to Simon Kämpe for this pull request!
-
Generate the enum documentation based of the common/enums.rs (#1265)
So that makes it harder to forget to update the docs
Note that the new builtin_enums.md does not contain a
### Values
section header anymore. Also some enum where documented with the full enum value (such asTextHorizontalAlignment.left
) while now this is omittedThe CI should fail if one forget to run
cargo xtask enumdocs
after adding an enum or changing the docs -
Replaced TryInto with TryFrom in slint_interpreter::Value (#1262)
Converted TryInto into TryFrom as discussed in #1258.
I also left the examples using
try_into
as is, without switching to theT::try_from()
syntax, since they are still valid.I used a container (podman) to build and test this, just for reference here's the commands:
$ podman run -it --rm -w/workspace -v$PWD:/workspace docker.io/rust:1.60.0-bullseye # apt update && apt install libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libfontconfig-dev # cargo test
Thank you to Alessandro Re for this pull request!
-
7guis examples (#1260, #1259, )
7GUIs is a set of UI framework benchmarks. It defines 7 tasks and shows how those can be implemented using different UI frameworks.
We had implementations for the 7 GUI tasks before, but they saw significant improvements thanks to new features we added into Slint over the last couple of weeks.
Editors and Tooling Support
-
Add tree-sitter tests (#1239)
This should make it much easier to fix some bugs that the parser has had. And make updating the parser easier when the language changes without creating regressions.
Thank you to Jared Moulton for this pull request!
Statistics
42 patches were committed in 18 pull requests by 8 authors.
← Next : 16th of May 2022 to 22nd of May 2022 | Previous : 2nd of May 2022 to 8th of May 2022 - Release 0.2.2 →
Slint is a declarative GUI toolkit to build native user interfaces for desktop and embedded applications written in Rust, C++, JavaScript, and Python. Find more information at https://slint.dev/ or check out the source code at https://github.com/slint-ui/slint