News about applications built with Slint
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
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.
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
accessibilitybranch this week. They add and make use of a new set of properties starting with
accessible-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.
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
yprop, preventing the optimization. But if the rectangle has an opacity, its
yproperty are stolen by the opacity element, and then it can get optimized anyway
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.
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
### Valuessection header anymore. Also some enum where documented with the full enum value (such as
TextHorizontalAlignment.left) while now this is omitted
The CI should fail if one forget to run
cargo xtask enumdocsafter 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_intoas is, without switching to the
T::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!
42 patches were committed in 18 pull requests by 8 authors.