Olivier Goffart
4c8f7a4103
C++: generate a .zip for the package
...
For #8665
(untested)
2025-06-11 08:10:51 +02:00
Olivier Goffart
73d6095535
winit: Rename some function and add docs cross reference
...
CC https://github.com/slint-ui/slint/issues/8631#issuecomment-2957986384
2025-06-10 16:21:58 +02:00
Olivier Goffart
2930d90bf0
Update C++ MSRV
...
Because some crate in our examples are using the edition2024 resolver
with no way to remove them without removing the exmaples from the
workspace, this means that effectively the C++ build which needs to run
the cargo metadata on the workspace, doens't build anymore with the
rust MSRV
ChangeLog: C++: requires Rust 1.85
2025-06-10 12:15:30 +02:00
dependabot[bot]
faef7c8b65
build(deps-dev): bump ava from 6.3.0 to 6.4.0 ( #8655 )
...
* build(deps-dev): bump ava from 6.3.0 to 6.4.0
Bumps [ava](https://github.com/avajs/ava ) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/avajs/ava/releases )
- [Commits](https://github.com/avajs/ava/compare/v6.3.0...v6.4.0 )
---
updated-dependencies:
- dependency-name: ava
dependency-version: 6.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* [autofix.ci] apply automated fixes
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-06-09 16:54:32 +03:00
Simon Hausmann
3e26e4ef7a
Python: Bump stub-gen version
CI / docs (push) Blocked by required conditions
CI / wasm (push) Blocked by required conditions
CI / wasm_demo (push) Blocked by required conditions
CI / tree-sitter (push) Blocked by required conditions
CI / files-changed (push) Waiting to run
CI / build_and_test (--exclude bevy-example, ubuntu-22.04, 1.82) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, --exclude bevy-example, windows-2022, 1.82) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, macos-14, stable) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, beta) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, stable) (push) Blocked by required conditions
CI / build_and_test (ubuntu-22.04, nightly) (push) Blocked by required conditions
CI / node_test (macos-14) (push) Blocked by required conditions
CI / node_test (ubuntu-22.04) (push) Blocked by required conditions
CI / node_test (windows-2022) (push) Blocked by required conditions
CI / python_test (macos-14) (push) Blocked by required conditions
CI / python_test (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (macos-13) (push) Blocked by required conditions
CI / cpp_test_driver (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (windows-2022) (push) Blocked by required conditions
CI / cpp_cmake (macos-14, 1.82) (push) Blocked by required conditions
CI / cpp_cmake (ubuntu-22.04, stable) (push) Blocked by required conditions
CI / cpp_cmake (windows-2022, nightly) (push) Blocked by required conditions
CI / cpp_package_test (push) Blocked by required conditions
CI / vsce_build_test (push) Blocked by required conditions
CI / updater_test (0.3.0) (push) Blocked by required conditions
CI / fmt_test (push) Blocked by required conditions
CI / esp-idf-quick (push) Blocked by required conditions
CI / android (push) Blocked by required conditions
CI / miri (push) Blocked by required conditions
CI / test-figma-inspector (push) Blocked by required conditions
2025-06-08 09:24:44 +00:00
Olivier Goffart
c0cac46009
Add --generate-link-to-definition
in the docs of all our published crate
...
This is a nice nightly rustdoc feature and we should make use of it
2025-06-06 21:47:36 +02:00
Olivier Goffart
55eaa3c1e2
docs: document relative path in the translation bundle dir
2025-06-06 12:30:45 +02:00
Avery Townsend
8c4ccabf7d
Expose FocusReason
to .slint as an argument in focus-event-changed
and add focus-gained
and focus-lost
callbacks ( #8569 )
...
This exposes FocusReason to .slint, and adds it as an argument to focus-event-changed callback on FocusScope to close #8387 . It also adds two new callbacks, focus-gained and focus-lost, which are identical to focus-event-changed but are only invoked on focus gain or loss respectively.
In addition to this, it removes the FocusEventReason::AccessKit variant, replacing it with the mouse variant to hopefully make AccessKit more compatible with any Slint code that will use FocusEventReason.
Finally, I added two tests based on focus_change_event.slint, one for testing the FocusEventReason argument and another for testing the new callbacks.
close #8387
ChangeLog: Added `focus-gained` and `focus-lost` callback to FocusScope. Pass an `FocusReason` enum to the FocusScope callbacks
2025-06-04 09:51:26 +02:00
dependabot[bot]
cc285a5de6
build(deps-dev): bump typedoc from 0.28.4 to 0.28.5 ( #8587 )
...
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc ) from 0.28.4 to 0.28.5.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases )
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md )
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.28.4...v0.28.5 )
---
updated-dependencies:
- dependency-name: typedoc
dependency-version: 0.28.5
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 10:34:51 +03:00
Olivier Goffart
5030431caa
C++: make sure we do not crash if a Model::row_data
returns nullopt
...
Rust had a test for it, but C++ not yet
Reported on https://chat.slint.dev/public/pl/pcqefc3fbff3xfuio3uhp58ate
2025-05-30 15:47:13 +02:00
Olivier Goffart
dc915b1af3
C++: add asserts that we are in the main thread
...
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, beta) (push) Blocked by required conditions
CI / build_and_test (--exclude ffmpeg --exclude gstreamer-player, windows-2022, stable) (push) Blocked by required conditions
CI / build_and_test (ubuntu-22.04, nightly) (push) Blocked by required conditions
CI / node_test (macos-14) (push) Blocked by required conditions
CI / node_test (ubuntu-22.04) (push) Blocked by required conditions
CI / node_test (windows-2022) (push) Blocked by required conditions
CI / python_test (macos-14) (push) Blocked by required conditions
CI / python_test (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (macos-13) (push) Blocked by required conditions
CI / cpp_test_driver (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (windows-2022) (push) Blocked by required conditions
CI / cpp_cmake (macos-14, 1.82) (push) Blocked by required conditions
CI / cpp_cmake (windows-2022, nightly) (push) Blocked by required conditions
CI / cpp_cmake (ubuntu-22.04, stable) (push) Blocked by required conditions
CI / cpp_package_test (push) Blocked by required conditions
CI / vsce_build_test (push) Blocked by required conditions
CI / mcu (pico2-st7789, thumbv8m.main-none-eabihf) (push) Blocked by required conditions
CI / mcu (stm32h735g, thumbv7em-none-eabihf) (push) Blocked by required conditions
CI / mcu-embassy (push) Blocked by required conditions
CI / ffi_32bit_build (push) Blocked by required conditions
CI / docs (push) Blocked by required conditions
CI / wasm (push) Blocked by required conditions
CI / wasm_demo (push) Blocked by required conditions
CI / tree-sitter (push) Blocked by required conditions
CI / updater_test (0.3.0) (push) Blocked by required conditions
CI / fmt_test (push) Blocked by required conditions
CI / esp-idf-quick (push) Blocked by required conditions
CI / android (push) Blocked by required conditions
CI / miri (push) Blocked by required conditions
CI / test-figma-inspector (push) Blocked by required conditions
- In the timer functions
- in the generated getter/setters and callback invocation
2025-05-28 11:29:48 +02:00
Avery Townsend
c41d4a4df3
Add FocusEventReason to FocusEvent and add a select all on keyboard focus for TextInput ( #8523 )
...
Closes #5992
Adds the enum FocusEventReason and makes it an argument for FocusEvent. This reason could eventually be exposed in Slint to solve #8387 .
Using the focus reason tracking, I also added a select all on keyboard focus for TextInputs (except on macOS), which should close #5992 .
ChangeLog: TextInput selects its content when focused with the keyboard on Windows and Linux
2025-05-27 07:56:13 +02:00
Olivier Goffart
2f2116686f
C++: forward declare explicitly to make the code more robust
...
We currently forward declare classes as we use them in functions.
But this breaks if classes with the same name were declared in the
parent namespace. As shown with this example
```C++
// Uncomment that line to make the code break
//struct SharedGlobals;
namespace ns {
// Is that a forward declaration in `ns`?
// Depends if it was declared before in the parent namespace
void foo(struct SharedGlobals *x) {}
// Actualy define ns::SharedGlobal
struct SharedGlobals { int x; };
int xyz() {
SharedGlobals globals;
foo(&globals);
}
}
```
So make sure we forward-declare the classes properly to be more robust
and be able to include generated file with namespace after a file
without namespace
CC #2909
2025-05-26 18:32:09 +02:00
Olivier Goffart
23962b3e25
Upgrade cbindgen and use unsafe(no_mangle)
attributes ( #8539 )
...
To be compatible with the 2024 edition, we need to wrap the
`no_mangle` attribute in `unsafe()`.
The parsing for that in cbindgen was only added in the version 0.28,
but we couldn't upgrade cbindgen before because of a regression in
cbindgen 0.27 that prevented us from upgrading.
Now that cbindgen 0.29 is released with a fix, we can prepare for the
2024 edition
2025-05-26 11:21:33 +02:00
Olivier Goffart
08aa021166
C++: expose the DrawRectangleArgs and DrawTextureArgs
...
This is still experimental API, but just have a copy of all arguments in
a plain struct that the C++ code can operate on.
(Because previous refactor of the interface had made it hidden from C++)
2025-05-23 17:10:26 +02:00
MusicalNinjaDad
7afd5dfc4a
Make CompilerConfiguration
Clone
( #8492 )
CI / mcu-embassy (push) Blocked by required conditions
CI / wasm_demo (push) Blocked by required conditions
CI / tree-sitter (push) Blocked by required conditions
CI / updater_test (0.3.0) (push) Blocked by required conditions
CI / fmt_test (push) Blocked by required conditions
CI / esp-idf-quick (push) Blocked by required conditions
CI / android (push) Blocked by required conditions
CI / miri (push) Blocked by required conditions
CI / test-figma-inspector (push) Blocked by required conditions
CI / build_and_test (ubuntu-22.04, nightly) (push) Blocked by required conditions
CI / node_test (macos-14) (push) Blocked by required conditions
CI / node_test (ubuntu-22.04) (push) Blocked by required conditions
CI / node_test (windows-2022) (push) Blocked by required conditions
CI / python_test (macos-14) (push) Blocked by required conditions
CI / python_test (ubuntu-22.04) (push) Blocked by required conditions
CI / python_test (windows-2022) (push) Blocked by required conditions
CI / cpp_test_driver (macos-13) (push) Blocked by required conditions
CI / cpp_test_driver (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (windows-2022) (push) Blocked by required conditions
CI / cpp_cmake (macos-14, 1.82) (push) Blocked by required conditions
CI / cpp_cmake (ubuntu-22.04, stable) (push) Blocked by required conditions
CI / cpp_cmake (windows-2022, nightly) (push) Blocked by required conditions
CI / cpp_package_test (push) Blocked by required conditions
CI / vsce_build_test (push) Blocked by required conditions
CI / mcu (pico-st7789, thumbv6m-none-eabi) (push) Blocked by required conditions
CI / mcu (pico2-st7789, thumbv8m.main-none-eabihf) (push) Blocked by required conditions
CI / mcu (stm32h735g, thumbv7em-none-eabihf) (push) Blocked by required conditions
CI / ffi_32bit_build (push) Blocked by required conditions
CI / docs (push) Blocked by required conditions
CI / wasm (push) Blocked by required conditions
2025-05-21 18:05:29 +02:00
Tobias Hunger
63f7533dc9
compiler: Fix identifier normalization function
...
`__1` is a valid identifier, which we normalized to
`--1`, which is invalid.
This changes the nromalization function to leave a `_` in the first position.
2025-05-21 12:21:20 +02:00
Simon Hausmann
6e4e98af4e
Python: Fix device architecture
2025-05-21 10:57:33 +02:00
MusicalNinjaDad
2a81357c03
slint-build: Add option to create CompilerConfiguration with_debug_info ( #8489 )
CI / build_and_test (ubuntu-22.04, nightly) (push) Blocked by required conditions
CI / node_test (macos-14) (push) Blocked by required conditions
CI / node_test (ubuntu-22.04) (push) Blocked by required conditions
CI / node_test (windows-2022) (push) Blocked by required conditions
CI / python_test (macos-14) (push) Blocked by required conditions
CI / python_test (ubuntu-22.04) (push) Blocked by required conditions
CI / python_test (windows-2022) (push) Blocked by required conditions
CI / cpp_test_driver (macos-13) (push) Blocked by required conditions
CI / cpp_test_driver (ubuntu-22.04) (push) Blocked by required conditions
CI / cpp_test_driver (windows-2022) (push) Blocked by required conditions
CI / cpp_cmake (macos-14, 1.82) (push) Blocked by required conditions
CI / cpp_cmake (ubuntu-22.04, stable) (push) Blocked by required conditions
CI / cpp_cmake (windows-2022, nightly) (push) Blocked by required conditions
CI / cpp_package_test (push) Blocked by required conditions
CI / vsce_build_test (push) Blocked by required conditions
CI / mcu (pico-st7789, thumbv6m-none-eabi) (push) Blocked by required conditions
CI / mcu (pico2-st7789, thumbv8m.main-none-eabihf) (push) Blocked by required conditions
CI / mcu (stm32h735g, thumbv7em-none-eabihf) (push) Blocked by required conditions
CI / mcu-embassy (push) Blocked by required conditions
CI / ffi_32bit_build (push) Blocked by required conditions
CI / docs (push) Blocked by required conditions
CI / wasm (push) Blocked by required conditions
CI / wasm_demo (push) Blocked by required conditions
CI / tree-sitter (push) Blocked by required conditions
CI / updater_test (0.3.0) (push) Blocked by required conditions
CI / fmt_test (push) Blocked by required conditions
CI / esp-idf-quick (push) Blocked by required conditions
CI / android (push) Blocked by required conditions
CI / miri (push) Blocked by required conditions
CI / test-figma-inspector (push) Blocked by required conditions
2025-05-21 08:17:09 +02:00
Simon Hausmann
5046d02ae8
Python: Remove unnecessary maturin run-time dependency
2025-05-20 19:59:04 +02:00
Simon Hausmann
97a8ff66c1
Python: Fix ios wheel tags to match what warehouse accepts
2025-05-20 17:39:32 +02:00
Olivier Goffart
6d8ea50f40
Janitor: fix missing period in docs
...
As reported in #8448
2025-05-19 15:53:53 +02:00
Giona Imperatori
14483a6e32
feat: raise compiler error if musl is used ( #8450 )
2025-05-19 13:10:34 +02:00
Simon Hausmann
1d533641b4
Python: Fix name of helper method
2025-05-16 17:15:57 +02:00
Simon Hausmann
b1f0e5fe81
Python: Remove unused PyValueRef type
2025-05-16 17:15:57 +02:00
Simon Hausmann
d4439231eb
Python: Upgrade to Pyo3 0.25
2025-05-16 17:15:57 +02:00
omahs
74232eae8d
Fix typos ( #8421 )
2025-05-12 13:03:59 +02:00
Tobias Hunger
d0b58760d3
chore: A few clippy fixes
...
Nothing systeamatic, just a bunch of fixes I stumbled over
during unrelated work.
No behavior change is intended in here...
2025-05-09 13:25:38 +02:00
Olivier Goffart
3a9ae8af0e
Remove CompositionMode enum
...
It was used in the previous TargetPixelBuffer interface, but this is no
longer the case
2025-05-07 15:49:58 +02:00
Olivier Goffart
e42c4b18c2
swrenderer: interface for hw rendering of rectangle with border or gradients ( #8384 )
2025-05-06 15:53:53 +02:00
Simon Hausmann
f983cf0b19
Add Platform.os as well as a rudimentary test
2025-05-06 13:06:27 +02:00
Olivier Goffart
6e316a9929
docs: Fix missing paragraphs in the slint crate docs
...
Regression in e1a6cbf8b4
2025-05-05 12:56:32 +02:00
dependabot[bot]
558aaedd89
build(deps-dev): bump ava from 6.2.0 to 6.3.0 ( #8352 )
...
Bumps [ava](https://github.com/avajs/ava ) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/avajs/ava/releases )
- [Commits](https://github.com/avajs/ava/compare/v6.2.0...v6.3.0 )
---
updated-dependencies:
- dependency-name: ava
dependency-version: 6.3.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 11:53:26 +03:00
dependabot[bot]
9ed60ed543
build(deps-dev): bump typedoc from 0.28.3 to 0.28.4 ( #8348 )
...
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc ) from 0.28.3 to 0.28.4.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases )
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md )
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.28.3...v0.28.4 )
---
updated-dependencies:
- dependency-name: typedoc
dependency-version: 0.28.4
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-05 11:53:03 +03:00
Simon Hausmann
0002df2520
slint crate: Expose parts of the winit backend's previously private API ( #8315 )
...
Similar to the wgpu access, the `unstable-winit-030` feature exposes a
`slint::winit_030` module, which in turn re-exports `winit` but also
provides access to the `WinitWindowAccessor` trait. The
`BackendSelector` is extended to provide a way to hook into window
attribute creation as well as providing a custom event loop builder,
similar to what `i_slint_backend_winit::BackendBuilder` provides.
2025-05-02 09:21:13 +02:00
Simon Hausmann
0151ac4902
slint crate: Replace early return with no_run
tag on code fence
2025-04-30 18:20:16 +02:00
Simon Hausmann
2f2478d1ea
WGPU: Clean up public API
...
- Create a `slint::wgpu_24` module
- Re-export `wgpu` in it
- Place the WGPU config types used by the `BackendSelector::require_wgpu_24` function in it, and remove the 24 infix.
As an upside, this also adds the feature guard to the docs at least for the `wgpu_24` module.
2025-04-30 15:54:06 +02:00
ogoffart
e0099ea500
Bump version number to 1.12.0
2025-04-30 13:27:50 +00:00
Olivier Goffart
c8138ff1db
swrenderer: rewrite TargetPixelBuffer::draw_texture interface
...
Instead of using datastructure that are tailored to our line by line
renderer and draw functions, use more generic and future proof data that
are easier to handle by hardware accelerator, and may be easier to
stabilize.
The screenshots from the screenshots test have to be re-done
because the rounding is different
Note: the C++ API DrawTextureArgs is not exposed yet
2025-04-29 23:26:02 +02:00
Simon Hausmann
302926edfa
Skia: Improve multi-window rendering resource consumption ( #8304 )
...
Share Vulkan instance as well as Metal device and command queue across windows.
2025-04-29 18:58:09 +02:00
Simon Hausmann
da5e7d5b22
WGPU: Add support for using WGPU textures in Slint
...
This adds a `unstable-wgpu-24` feature that exposes WGPU types in the
GraphicsAPI enum, adds `require_wgpu_24()` to the backend selector,
and adds a conversion from `wgpu::Texture` to `slint::Image`.
The `require_wgpu_24()` function in the selector will be extended in the
future (before the next release) to permit specifying additional aspects
of the WGPU configuration.
Co-Authored-By: Olivier Goffart <olivier.goffart@slint.dev>
2025-04-29 17:46:57 +02:00
Simon Hausmann
dbe4a684c6
biome: Enable lint to check for missing await statements ( #8305 )
2025-04-29 14:57:52 +02:00
Simon Hausmann
a50b8f8793
FemtoVG: Add support for WGPU based rendering ( #8268 )
...
Enable via the `renderer-femtovg-wgpu` feature flag.
cc #171
2025-04-25 14:37:32 +02:00
Simon Hausmann
98dc4a8657
FemtoVG: Abstract the rest of the FemtoVGRenderer type to be independent from OpenGL
...
The main visible external change is that FemtoVGRenderer is now a generic type, but in the public Slint API the type alias that uses the OpenGL backend is re-exported under the old name. This looks a little different in rustdoc
but appears to be source compatible.
2025-04-25 10:08:38 +02:00
Olivier Goffart
7d3cf6a451
Janitor: Bump corrosion version
2025-04-25 08:47:45 +02:00
Simon Hausmann
6595aee73c
Replace use of Rc<winit: 🪟 :Window> with Arc ( #8257 )
...
In preparation for wgpu usage, where the wgpu API requires the window
handle to be send, i.e. Arc<dyn HasWindowHandle>.
2025-04-24 13:28:51 +02:00
dependabot[bot]
aadd9e9e78
build(deps-dev): bump typedoc from 0.28.2 to 0.28.3 ( #8214 )
...
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc ) from 0.28.2 to 0.28.3.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases )
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md )
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.28.2...v0.28.3 )
---
updated-dependencies:
- dependency-name: typedoc
dependency-version: 0.28.3
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-24 11:35:09 +03:00
Simon Hausmann
eb825f2e95
Support default-font-* properties in Live-Preview
...
... by changing the resolution for the `WindowItem` to traverse the
item tree from the current item, instead of going to the window.
This doesn't quite fix #4298 because `rem` resolution is still missing.
That requires the built-in default font size function to be fixed as
well, which is non-trivial.
cc #4298
2025-04-24 09:18:45 +02:00
Simon Hausmann
7c02bbd833
Python: Fix doc link
2025-04-23 21:40:48 +02:00
autofix-ci[bot]
8fcc320bdd
[autofix.ci] apply automated fixes
2025-04-22 22:30:32 +02:00