27th of June 2022 to 3rd of July 2022

Today we want to welcome our new co-worker Aurindam Jana, who will help on the business side of things:-) Welcome aboard, Auri!

We updated our home page to add him to the team.

Slint UI Library

Extension for Visual Studio Code for the Web

WebIDE for the Slint language
  • VSCode web extension: Load assets by fetching everything from webview-capable URL (#1381)
  • VSCode web extension: preserve the slint preview across restart (#1378)

    This also enables the use of retainContextWhenHidden, which makes sure the state of the preview (e.g, the currently visible tab) is kept when the preview tab is hidden.

  • VSCode web preview: bundle the slint_wasm_interpreter in the extension (#1376)

Fixes

  • Fix resize jitter bug on macOS with GL backend (#1295)

    This fixes #1269. It introduces a size property to WinitWindow, that in contrast to winit::Window::inner_size() represents the sizes that is actually already processed by slint's event handling. The problem occurred since the inner_size() value returned the latest window size even when a Resize event (resizing to an earlier size) was processing. This discrepancy caused the jittering.

  • Fix per-item pixmap/texture caching in the Qt and GL renderer (#1382)

    The borrow logic in ItemCache<T>::get_or_update_cache_entry requires to take the per-item cache dirty tracker out of the cache entry, so that we can drop the ref and allow the update_fn to access the cache for other items during evaluation.

    In order for the cache to work by not re-evaluating the >update_fn next time if nothing rendering related changed, the tracker must be put back after the check/evaluation, otherwise take() will always return none.

  • Update the tree of objects exposed to accessibility backend (#1380)

    Update the tree of accessibility items exposed to the OS to reflect any possible changes to the tree of visible items. The item tree is static, but changing the data in models does invalidate a part of the tree. Slint now makes sure these changes are reflected in the accessibility layer.

  • Don't optimize const state property (#1373)

    state info properties are special and cannot simply be inlined or set (because we need to record the time it was changed and stuff) So disable the optimization for now.

    In fact, what could be done is to remove the state entirely if the state property is constant. But that change is a bit more involved

    This patch does: - Don't inline const state property - Don't generate a call to .set in the generated code - Also allowed to debug the expression with a context from the generator (added T generic parameter to the pretty printer)

    Fix panic reported in https://github.com/slint-ui/slint/issues/1327#issuecomment-1151244049

Janitor work

PRs:

  • Clean up texture caching in the GL renderer (#1375)

    In preparation for moving the image decoding and caching of decoded image data into the core library, change the texture cache to be really a cache of textures. Previously it cached Rc<CachedImage>, which could have also been just a CPU side image. However this was "run-time" asserted. Instead, with this patch it's an Rc<Texture> and that will always be GPU side.

  • Rename the editor folder to editors (#1374)

Slint on MCU

We made new videos showing Slint on micro controllers, and updated the homepage with one of them.

Slint on STM32H7
Slint on RP2040 with 264K of RAM

The amazing support Rust has for these small devices enables us to run such fluid interfaces on devices with such little RAM and CPU power!

Statistics

19 patches committed in 10 pull requests by 4 authors.

← Next : 4th of July 2022 to 10th of July 2022 | Previous : 20th of June 2022 to 26th of June 2022


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