29th of August 2022 to 4th of September 2022
Slint UI Library
Preparing a release
We intend to make the 0.2.6 release soon. The release adds quite a lot of new API and we need help with the review. See issue #1502. In particular this add the whole slint::platform module use for the MCU support.
Feel free to comment on the issue or on our Mattermost chat. We will also hold an API review meeting on the 6st of September at 10:00 CEST (Berlin time) on Mattermost. (Anyone welcome)
New features
-
Move the built-in defmt debug logging to the platform trait (#1583)
This way we don't have to add defmt, esp32-println and others as features to corelib and the slint API crate (which would also expose them as public dependencies), but instead this can be delegated to the Platform trait.
-
Polish of the rotation feature (#1561)
- Add a check that this applies to Image element without children only - Default the origin to the center of the Image - Add docs and test
cc: #1481
-
Implement std::fmt::Write for SharedString and add a
format!
macro (#1556)
Micro controller support
- Improve MCU documentation (#1585)
- Allow to run the software backend without the femtovg backend (#1581)
-
Support for the esp32-s2-kaluga-1 board (#1579)
As you can see in the picture, there seems to be some problem to position images, for some reason. I have a suspicion that it is because of some bad floating point computation somewhere, with that architecture..
-
API cleanups (#1554, #1551,
#1553,
#1555,
#1573,
#1577,
#1566,
#1560)
-
Replace
PlatformWindow
withWindowAdapter
. -
Replace
create_window
withcreate_window_adapter
. -
Replace remaining
Platform Abstraction
to plainPlatform
. -
Rename
set_platform_abstraction
toset_platform
andPlatformAbstraction
toPlatform
. - swrenderer: Move the DirtyTracking enum into a const generic
-
Rename set_event_loop_quit_on_last_window_closed to remove
EventLoopQuitBehavior
For the winit backend, also make the function work after a call to run()
-
Introduce MinimalSoftwareWindow
This simplifies the implementation of the pico and STM, as they both have the same PlatformWindow implementation, and is likely to be the same for every MCU
-
Remove quit behavior parameter from
run_event_loop
-
API cleanup: Rename
PointerEvent
toWindowEvent
Also rename members and related functions as specified in #1543.
- Rgb565Pixel: remove color accessor, add conversion to Rgb8Pixel (#1576)
- Remove the use of
euclid
from the Window API
-
Replace
Tooling
-
Language server improvements (#1571)
-
Improve initialization responses ()
Make the LS respond with this data:
{ capabilities = { ... server_capabilities ... }, offsetEncoding = "utf-8", serverInfo = { name = "slint-lsp", version = "0.2.6" } }
This forces
characters
in the protocol to be byte-offsets into utf-8 encoded strings and provides some information about this server that's nice to have. - Add some basic tests (#1570)
-
Improve initialization responses ()
-
online_editor: Support custom "slint/load_file" in LSP (#1530)
The LSP running in the web worker needs to access (virtual) files in the editor. So it sends a request to the editor for files.
Handle such requests. Also make sure to provide the editor with the correct URLs of open files so that the base URL to request additional data with is correct.
Also do not error out when LSP and interpreter request the same file concurrently.
-
Fix preview not updating in the online editor (#1564)
We get a panic that we can run the event loop only once. Attempt to fix this by doing the same as in the documentation and run one event loop, using
show()
instead ofrun()
on the window
Fixes
-
API: seal the WindowAdaptor trait (#1568)
And hide most of its functions in the sealed trait.
Closes #1535
-
Software renderer: keep a Weak of the Window (#1549)
Closes #1545
Not that
SoftwareRenderer::new()
takes the Weak by value instead of by reference, because coercing a reference to aWeak
to a&Weak<dyn>
isn't possible, while converting a Weak to aWeak<dyn>
just works. -
Fix some documentation links (#1575)
And add a test in the CI that checks for warnings in the internal crates
(Also changed --exclude in the test to match the one from build, since c++ test are run separately)
-
Remove erroneous mention of SLINT_FEATURE_EVENTLOOP_WINIT_ALL (#1572)
We used to have SLINT_FEATURE_BACKEND_GL_ALL, but when we introduced the renderer and event loop distinction in the features, we removed the "all" suffix from the event loop that includes x11 and wayland support.
-
Box shadow rendering fixes (#1569)
Fix a regression in the appearance of box shadows with the FemtoVG backend and fix the appearance of box shadows with blur with the Skia backend to match FemtoVG.
-
Fix element rotation when the element is translated (#1557)
For example
Image { x: 150px; y: 50px; rotation-angle: 45deg; }
will end up rendering as if x and y are zero. This is because during the injection we "move" x and y to the Rotate element as bindings, but due to the lack of built-in x/y properties, dummy properties are materialized and they are not applied for the regular per-item translation.
Add x/y to the Rotate element and then it works.
-
winit with swrenderer: don't call
window.draw_contents
twice. (#1552)The render function of the swrenderer already call that.
Janitor work
Statistics
56 patches committed in 30 pull requests by 3 authors.
← Next : 5th of September 2022 to 11th of September 2022 | Previous : 22nd of August 2022 to 28th of August 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