Commit graph

2546 commits

Author SHA1 Message Date
Simon Hausmann
ac256d61d8 winit: replace special private function to spawn event loop with public API in the winit backend builder
This means the event loop spawning goes through the backend, which will permit for state from the Backend struct to be available when spinning the event loop even when spawning it merely.
2025-04-09 08:50:39 +02:00
Simon Hausmann
4e65998016 Clean up wasm-interpreter / winit interface
Use the window attributes hook instead of a private function in the winit backend.
2025-04-09 08:50:39 +02:00
dependabot[bot]
2feb048fa5
build(deps): bump typescript from 5.8.2 to 5.8.3 (#8069)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.2 to 5.8.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/commits)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 5.8.3
  dependency-type: direct:production
  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-08 11:00:19 +03:00
dependabot[bot]
b7467df94a
build(deps-dev): bump typedoc from 0.28.1 to 0.28.2 (#8073) 2025-04-08 08:24:04 +03:00
Simon Hausmann
826ad7a865 Upgrade to PyO3 0.24
The main change is that Rust paths are mapped to pathlib.Path, which changes our API (stricter).
2025-04-03 12:24:02 +02:00
Simon Hausmann
0c51f69b0a Upgrade to PyO3 0.23 2025-04-03 12:24:02 +02:00
Simon Hausmann
ad74c31ed4 Remove dependency on gil-refs feature
(which will be removed in future versions)
2025-04-03 12:24:02 +02:00
Simon Hausmann
9253af05b1 Upgrade to PyO3 0.22 2025-04-03 12:24:02 +02:00
Olivier Goffart
12a2493269
C++: add notify_ prefix to the Model functions and add docs
* C++: add `notify_` prefix to the Model functions and add docs

The `notify_*` function are used by the model to notify the view.
As opposed to the function without the prefix, which are used to get
notified when a source model change

Fixes #3888
CC #3945 (for the docs about thread safety)
2025-04-03 07:59:15 +02:00
Olivier Goffart
4145eafe14 C++: Fix segfault when calling Model::row_changed() after Model::reset()
Fixes #8021
2025-04-02 12:41:57 +02:00
Tobias Hunger
cd6f2e2cf2 ci: Format toml files
... using taplo with default settings

I tried this with 4 spaces indentation, but the patch is almost as
big as this one, so I went with default settings instead as that
is just easier:-)
2025-04-02 11:03:41 +02:00
Olivier Goffart
6f4f5aeefa Replace no_mangle with unsafe(no_mangle) in example and docs
We can't just do `s/#\[no_mangle]/#[unsafe(no_mangle)]/g`
because the version of cbingen we use doesn't understand the unsafe
attribute yet.

Part of #7998
2025-03-31 17:35:22 +02:00
Olivier Goffart
bf3c47f1fa C++: add code sample form model adapters
Fixes #4967
2025-03-31 16:13:45 +02:00
Simon Hausmann
ed878f01ac Python: Add third-party licenses page to the docs
Fixes #6634
2025-03-29 18:04:30 +01:00
Olivier Goffart
aca30901be C++: put the parent in a weak pointer
Right now we always `lock().value()` it which is the equivalent of
`upgrade().unwrap()` in rust, this helps because it keeps the parent
alive when we are calling function in it.

Ideally we should also check that it wasn't deleted, but that's another
issue.

Fixes #7880
2025-03-28 17:24:14 +01:00
Olivier Goffart
a80f14e7d8 Fix re-instentiating if elements when the condition is dirty
Fixes #3953
2025-03-27 15:37:07 +01:00
Olivier Goffart
54a3506f4d C++: move model code to its own file
Most of the slint.h file is used for model code, so before doing some
work on the model i wanted to refactor the code in its own file.
Since the model need access to the ComponentHandle, i also had to move
that in its own file
2025-03-25 10:37:20 +01:00
dependabot[bot]
c5527e3311
build(deps-dev): bump typedoc from 0.28.0 to 0.28.1 (#7928)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.28.0 to 0.28.1.
- [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.0...v0.28.1)

---
updated-dependencies:
- dependency-name: typedoc
  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-03-24 09:30:33 +02:00
Simon Hausmann
ced9ae7b5f
Python: Fix rendering or callback decorator docs 2025-03-23 13:16:45 +01:00
Simon Hausmann
64d446921d Python: Fix pdoc invocation to render index and search module 2025-03-23 10:29:04 +01:00
Simon Hausmann
c7d158afe7
Python: fix doc building (#7921) 2025-03-23 08:31:37 +01:00
Simon Hausmann
a313916ce6 Python: Begin docs for model
This requires use of the pdoc API to work around an issue with the base methods not showing up in the docs.
2025-03-22 17:14:15 +01:00
Simon Hausmann
d420bd8113 Python: docs for ListModel 2025-03-22 17:14:15 +01:00
Simon Hausmann
44336e0e10 Python: docs for callback and set_xdg_app_id 2025-03-22 17:14:15 +01:00
Simon Hausmann
fc18b69a65 Sync python timer docs
Sync with commit 6aff60b38f
2025-03-22 11:58:34 +01:00
Simon Hausmann
e57e155a2d Python: Add some API docs for timer, timermode, and the loader 2025-03-21 09:37:52 +01:00
Tobias Hunger
e5ecb9cf6c infra: Test out mise
I found `mise` a tool to help manage development projects.
https://mise.jdx.dev/

It basically can manage ENV vars based on the directory you are in,
manages tools you need (and makes thoser available based on the
directory you are in), and allows to define simple tasks that can
then be shared between developers.

Tools can be found in npm, pipx, aqua, binaries on github, ...
and it tries to verify signatures and all that (if supported by the
repo the data comes from).

I replaces the entire autofix workflow with mise tooling and tasks,
just to give it a try :-)

To reproduce:

```sh
> cargo install mise # to get the tool itself

# Follow the necessary step
# https://mise.jdx.dev/installing-mise.html#shells
# to intergate into your shell

> cd /your/slint/folder

# Mise will now ask whether or not to trust this dir and prints the
# command needed to do so. Run that.

> mise install # Install all the tools defined in .mise/config.toml

# Add a .mise.local.toml with local overrides. Git will ignore this file.
# Or add tasks into .mise/tasks/local ... Git will also ignore those.

> mise run 'ci:autofix:**:all' # To run all the ci:autofix tasks.
```

It is so much fatser to see these checks fail locally than it is to
bother CI with them :-)
2025-03-20 16:33:00 +01:00
Simon Hausmann
98ad1e3aa4 Python: Incrementally add some more API docs 2025-03-20 09:14:17 +01:00
dependabot[bot]
5c9a737754
build(deps-dev): bump typedoc from 0.27.9 to 0.28.0 (#7871)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.27.9 to 0.28.0.
- [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.27.9...v0.28.0)

---
updated-dependencies:
- dependency-name: typedoc
  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-03-18 14:41:40 +02:00
crai0
4bb7412460 ChangeLog: Add float.to-fixed and float.to-precision
Add two new float to string conversion methods that mimic
JavaScript's Number.toFixed() and Number.toPrecision().

They are implemented as no_mangle functions similar to the already
existing float to shared string conversion.

Closes #5822
2025-03-18 11:44:28 +01:00
ogoffart
178cf21c2e Bump version number to 1.11.0 2025-03-18 09:48:22 +00:00
Simon Hausmann
bc42b30eac Quick pass at some Python API docs
... and fixed library_paths type signature while at it.
2025-03-18 09:03:47 +01:00
Simon Hausmann
154d877d9f CMake: Add support for overriding the translation domain via a target property
This is useful in environments such as esp-idf, where the component name is something awkward like __esp_idf_main or so.
2025-03-14 14:46:29 +01:00
scristall-bennu
be59032ecb
Use find_package to search for Corrosion (#7797)
First try to search for corrosion before fetching it
2025-03-05 19:19:47 +01:00
Olivier Goffart
d40a8b6d23 esp-idf: Be smarter about RGB888 and RGB565
This changes the default if the user has selected
`CONFIG_BSP_LCD_COLOR_FORMAT_RGB888` in their sdkconfig,
(which will result in build error if the buffer were passed as
Rgb565Pixel, or in garbage of the screen if the screen was configured
programatically to use rgb565 without calling `bsp_display_new` which is
unlikely if they set CONFIG_BSP_LCD_COLOR_FORMAT_RGB888)
2025-03-05 12:18:12 +01:00
dependabot[bot]
da33ffa6f5 build(deps-dev): bump typedoc from 0.27.8 to 0.27.9
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.27.8 to 0.27.9.
- [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.27.8...v0.27.9)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-05 08:21:19 +01:00
dependabot[bot]
efb4d23f38
build(deps): bump typescript from 5.7.3 to 5.8.2 (#7780)
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.3 to 5.8.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.8.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:production
  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-03-04 16:39:14 +02:00
Olivier Goffart
5ab791416b Implement Property::set_constant in C++ 2025-03-03 00:50:09 +01:00
Olivier Goffart
c8780ef875 Update version in docs 2025-02-28 08:19:35 +01:00
Olivier Goffart
9571889861 esp-idf: assert that malloc succeeds when allocating line buffer
This allocates quite a lot of memory and is likely to fail.
Make it easier to debug
2025-02-28 07:59:22 +01:00
Simon Hausmann
e1a6cbf8b4 Add links to the slint-build crate 2025-02-26 16:46:36 +01:00
autofix-ci[bot]
eae4f21e24 [autofix.ci] apply automated fixes 2025-02-26 14:39:51 +01:00
Simon Hausmann
28da9bd996 C++: Clean up boolean accessible property getters
Share the code to convert the string to a boolean.
2025-02-26 14:39:51 +01:00
Olivier Goffart
da9fbebf18
esp-idf line by line renderer: use two line buffer
esp_lcd_panel_draw_bitmap is async so we should render in a different
buffer.
2025-02-25 21:37:36 +01:00
Simon Hausmann
beebffe829 C++ cleanup: Move the experimental render() overloads after the stable functions 2025-02-25 17:23:11 +01:00
Simon Hausmann
4d8f99e35d c++: Mark experimental target pixel buffer as experimental in the docs 2025-02-25 17:23:11 +01:00
dependabot[bot]
3486a19a4b
build(deps-dev): bump typedoc from 0.27.7 to 0.27.8 (#7716)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.27.7 to 0.27.8.
- [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.27.7...v0.27.8)

---
updated-dependencies:
- dependency-name: typedoc
  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-02-25 10:45:24 +02:00
Olivier Goffart
278e140147 Fix typo 2025-02-25 09:18:46 +01:00
Olivier Goffart
7390df1b47
ContextMenuArea: Intercept long press on Android 2025-02-24 18:27:25 +01:00
Simon Hausmann
f114ff28dd Rename TargetPixelBuffer::Pixel to ::TargetPixel 2025-02-24 17:02:10 +01:00