Rendering by line into a line buffer that's in IRAM can be faster than accessing framebuffers in slower PSRAM, so offer this by allowing users
to omit even the initial framebuffer.
They were causing infinite recursion because they were calling
themselves.
Also add the missing MapModel::reset
Yet another motivation for https://github.com/slint-ui/slint/issues/3888
as the code was mixing the `reset` function on the adapter meaning
"please re-apply the adapter filter/map/sort function" with the `reset`
function on Model which means "the subclass has changed and we should
notify listeners".
Fixes#4968
A MSRV update is required to update the image crate to 0.25, otherwise
we get link error that are ficed in newer version.
Also other dependency update such as env_logger needs a newer MSRV.
Update to 1.73 because it has functions like `with_borrow` on thread
storage which we already actually use in some platform.
This is also the last release before the the drop of macOs < 10.12
in Rust 1.74
Add a `raw-window-handle-06` feature to the Rust API crates, which adds support for version 0.6 of rwh to slint::Window, by delegation adding a `window_handle()` function that returns a struct that implements the corresponding traits from rwh.
HasDisplayHandle could also be provided on the backend, but that can be
done separately if needed.
This is only implemented for the winit backend right now.
cc #877
Semi-random selection of clippy topics that were
uncontroversial before:-).
Leaves about 84 deduplicated issues in the code base
according to clippy from nightly.
The energy monitor declares a transition on an animated int property,
for which Property<int>::set_animated_binding_for_transition is called,
which in turn calls slint_property_set_animated_binding_helper. The
latter is overloaded for various property types, such as float, Color,
or Brush, and then calls specialized functions from ffi, such as
slint_property_set_animated_binding_(int|float|etc.).
slint_property_set_animated_binding_int uses i32 in Rust, which cbindgen
maps to int32_t, so the
slint_property_set_animated_binding_helper overload also uses int32_t.
Unfortunately, with esp-idf, int32_t is a distinct type from int, and
the overload resolution fails.
As remedy, this change uses c_int instead of i32 in the Rust ffi, which
maps to int.
This seems easier than changing Property<int> to Property<int32_t> :-)
- Bump esp-backtrace for esp32-p4 support, which removes the uart feature and delegates to esp-println
- Added esp-println dependency
- Add mapping for ESP32P4 and other risc-v esp-idf targets to the corresponding rust target triplet.
Unfortunately there's no generic pattern like for xtensa, as can be seen on
https://github.com/esp-rs/esp-idf-sys?tab=readme-ov-file#examples
It looks like the esp_lcd_rgb_panel.h header file is not unconditionally
available anymore. Guard it with the same #ifdef that's surrounding the
calls to esp_lcd_rgb_panel_* and include the header that provides it.
This provides a Model base class in Python and sub-classes of that
can be set as data models in slint.
The ListModel is provided as basic sub-class operating on a list() and
allowing mutation and notifying the view on the Slint side.
Similarly, an array declared in Slint is exposed as an object to Python
that looks like a Model.
Both support the sequence protocol.
Fixes#4135