Milian Wolff
0f6c3a4fd7
Use SmolStr in more places of the compiler infrastructure
...
This removes a lot of allocations and speeds up the compiler step
a bit. Sadly, this patch is very invasive as it touches a lot of
files. That said, each individual hunk is pretty trivial.
For a non-trivial real-world example, the impact is significant,
we get rid of ~29% of all allocations and improve the runtime by
about 4.8% (measured until the viewer loop would start).
Before:
```
Benchmark 1: ./target/release/slint-viewer ../slint-perf/app.slint
Time (mean ± σ): 664.2 ms ± 6.7 ms [User: 589.2 ms, System: 74.0 ms]
Range (min … max): 659.0 ms … 682.4 ms 10 runs
allocations: 4886888
temporary allocations: 857508
```
After:
```
Benchmark 1: ./target/release/slint-viewer ../slint-perf/app.slint
Time (mean ± σ): 639.5 ms ± 17.8 ms [User: 556.9 ms, System: 76.2 ms]
Range (min … max): 621.4 ms … 666.5 ms 10 runs
allocations: 3544318
temporary allocations: 495685
```
2024-10-17 18:04:58 +02:00
Simon Hausmann
40faf0e1c4
Fix CMake package version compatibility checking
...
We're compatible across minor versions, only the major version change
would mean incompatibility. This way for example find_package(Slint 1.6.0)
will work with newer versions and makes it a minimum version specifier.
2024-10-16 16:02:43 +02:00
Arnold Loubriat
19f09950c2
Changelog: Add accessible-selectable
and accessible-selected
properties
2024-10-16 15:38:46 +02:00
Tobias Hunger
df4f9b38ee
femtovg: Fix warning about deprecated web_sys::set_fill_style
...
Use set_fill_style_str insterad, it avoids constructing a JSValue
from a str.
2024-10-16 13:25:00 +02:00
Simon Hausmann
11128809fb
Fix compilation on ARM host systems
...
The file was renamed before the release. However the install is useless, since the api_headers global covers it already.
2024-10-15 20:08:53 +02:00
Simon Hausmann
9eef4c9a96
Use approx_eq() also for comparing float point numbers in the Rust generated code
...
The parent commit does that for C++, and the interpreter's `PartialEq` impl for `Value` uses `approx_eq`, too.
2024-10-15 13:49:40 +02:00
Simon Hausmann
feee9aa056
Clean up file loader callback
...
This will have to be async in the future in its entirety, not just smaller parts.
2024-10-14 14:31:52 +02:00
FloVanGH
fe596179da
node: added fileloader to LoadData. ( #6530 )
2024-10-14 07:33:42 +02:00
FloVanGH
300c66fef3
node: added getting started (bun) to cover.md ( #6516 )
...
* Update api/node/cover.md
Co-authored-by: Simon Hausmann <simon.hausmann@slint.dev>
---------
Co-authored-by: Simon Hausmann <simon.hausmann@slint.dev>
2024-10-11 06:12:50 +00:00
FloVanGH
ccf5f04087
node: added initTranslations function ( #6504 )
2024-10-10 16:37:33 +02:00
FloVanGH
f01ac8fc39
node: added url support to loadFile ( #6507 )
2024-10-10 11:43:32 +00:00
Florian Blasius
610a23b487
removed slint tags from cover.md
2024-10-10 07:32:24 +02:00
Florian Blasius
99702779a6
node: added structs and enums doc to cover.md
2024-10-10 07:13:42 +02:00
FloVanGH
499a522f99
node: better ergonomics for structs and enums ( #6500 )
2024-10-10 04:12:32 +00:00
Nigel Breslaw
6beb0c3f02
chore: Update npm dependencies
...
Update biome
Update typescript
Update esbuild
2024-10-08 13:13:49 +03:00
Nigel Breslaw
a97b7c7d92
Replace npm with pnpm
...
Replaces the use of NPM with PNPM. This should make it quick and easy to update any of the dependencies as dependabot will now see everything in one go.
2024-10-07 15:38:26 +03:00
Enyium
b3c9dfc6dc
Docs: Clarify that components' invoke_...()
calls through synchronously.
2024-10-07 10:11:57 +02:00
Olivier Goffart
df88ac422d
Update documentation of slint_buid::compile_with_output
...
CC: #6340
2024-10-04 15:26:20 +02:00
Willem Vanhulle
595221f928
Remove dependency on Cargo variables in a helper function for the Slint to Rust compiler ( #6430 )
...
Co-authored-by: Willem Vanhulle <willemvanhulle@gmail.com>
2024-10-04 15:18:37 +02:00
Olivier Goffart
1c3eb46752
Fixup dead links to the old tutorial
2024-10-03 10:15:52 +02:00
ArcticLampyrid
132e09130e
feat(cpp): evaluate generator expression in the context of target
...
Link: https://cmake.org/cmake/help/latest/manual/cmake-generator-expressions.7.html#genex:TARGET_GENEX_EVAL
2024-10-02 11:41:09 +02:00
ArcticLampyrid
c145345827
feat(cpp): support generator expression for SLINT_EMBED_RESOURCES
& SLINT_SCALE_FACTOR
2024-10-02 11:41:09 +02:00
FloVanGH
9d3a8c9dd2
node: added support for enums ( #6421 )
2024-10-01 16:49:39 +02:00
U. Bruhin
40811193aa
C++: Add size() method to SharedString ( #6417 )
...
The length is an important property of a string and should be available
as a getter. The new size() method is consistent with std::string.
ChangeLog: [C++] Added `SharedString::size()`
2024-10-01 14:51:56 +02:00
Simon Hausmann
51a241edd6
Node.js: If a JS callback throws an exception, report the exception t… ( #6416 )
...
As a drive-by, this introduces a macro that allows for explicit logging to console.error (which goes to stderr). This is something we should gradually start using, as it allows for capturing on the Node.js side (by the user or our tests).
2024-10-01 13:57:50 +02:00
Simon Hausmann
fdec55cd47
Node.js: Fix tense in error messages produced when exceptions are throw
...
At this point the exception _was_ thrown.
2024-10-01 13:28:48 +02:00
Simon Hausmann
5c612cda61
Fix biome invocations after re-organizing the files
...
After commit 25ae55b5dd
, ignore dist/ as
well as the .cjs file that `npm run format` would complain about.
2024-10-01 13:27:00 +02:00
Simon Hausmann
7db5024c52
Generate bindings of Image::to_rgb8/to_rgba8/to_rgba8_premultiplied f… ( #6405 )
...
ChangeLog: [C++] Add `Image::to_rgb8/to_rgba8/to_rgba8_premultiplied` pixel buffer accessors.
Fixes #6399
2024-10-01 10:55:11 +02:00
FloVanGH
4b880a7b49
node: less unwraps ( #6388 )
...
* Update api/node/rust/interpreter/value.rs
Co-authored-by: Simon Hausmann <simon.hausmann@slint.dev>
---------
Co-authored-by: Simon Hausmann <simon.hausmann@slint.dev>
2024-10-01 08:47:53 +00:00
FloVanGH
25ae55b5dd
Improve source structure in the node api ( #6164 )
...
* Update api/node/typescript/models.ts
Co-authored-by: Simon Hausmann <simon.hausmann@slint.dev>
* Code review feedback
---------
Co-authored-by: Simon Hausmann <simon.hausmann@slint.dev>
2024-09-30 08:49:35 +00:00
Olivier Goffart
ad1614bb10
Rust: attempt to gracefully handle situation where the property depends on a binding from a destroyed component
...
Prospective fix for #6262
2024-09-27 16:08:01 +02:00
Simon Hausmann
43d3cdb6c4
Fix esp-idf nightly builds
...
After commit 3139171d77
, the way of using the nightly is to omit the version.
We just need to add it again for the release.
2024-09-26 10:12:10 +02:00
Olivier Goffart
fc324a4db2
Update MSRV to 1.77
2024-09-26 09:14:58 +02:00
ogoffart
eb273a63ee
Bump version number to 1.9.0
2024-09-25 11:49:15 +00:00
Josh Wood
6a131e2648
Added PropertyAnimation.direction
property for controlling animation direction ( #6261 )
...
Closes #6260
ChangeLog: Added property for controlling animation direction
2024-09-24 19:55:24 +02:00
Simon Hausmann
bb28018c50
doc: fix esp-idf hello world list numbering
2024-09-23 18:10:05 +02:00
Simon Hausmann
fb7472fff8
doc: Remove rust toolchain from esp-idf steps
...
This is slightly confusing as it's not needed anymore.
2024-09-23 18:08:08 +02:00
Simon Hausmann
b0db6d78fd
Prospective fix for downloadling slint-compiler for Slint releases
...
The GitHub release name has the git tag name, so a v prefix.
2024-09-23 17:23:02 +02:00
Simon Hausmann
3139171d77
Sync FindSlint.cmake
...
This pulls in
7e6a6a3e2d
to fix build against the release.
2024-09-23 17:23:02 +02:00
Olivier Goffart
ea9f5d58a5
Update version number in docs and readme
2024-09-23 11:14:22 +02:00
Simon Hausmann
0dcbaff886
Generic stm32 docs: Merge the app-window.slint addition to CMakeLists into the common CMakeLists.txt edit
...
... and introduce the .slint file first then, so that its existence is known when reading the CMakeLists.txt snippet.
2024-09-20 10:30:25 +02:00
Simon Hausmann
bb7355878f
Improve comment about SLINT_EMBED_RESOURCES target property use
2024-09-20 10:30:25 +02:00
Simon Hausmann
9534aaa155
stm32 docs: Set SLINT_EMBED_RESOURCES target property instead of DEFAULT_SLINT_EMBED_RESOURCES as global variable
2024-09-20 10:30:25 +02:00
Simon Hausmann
ec4a95f031
Polish the generic STM32 instructions
...
This includes removal of the SLINT_STYLE setting, as a default is set there for FEATURE_FREESTANDING.
2024-09-20 10:30:25 +02:00
Enyium
9894eca229
Fixed kebab casing of previous appwindow.slint
.
2024-09-20 10:26:49 +02:00
Simon Hausmann
844590cac8
Python: Add support for snake case imports ( #6229 )
...
When using slint.loader.app_window.XXX look for "app_window.slint" followed by "app-window.slint".
Fixes #6216
2024-09-20 10:25:14 +02:00
Simon Hausmann
024a31bba4
Add "generic" STM32 setup instructions
...
... these really need screenshots, but it's a start.
2024-09-19 23:36:41 +02:00
Simon Hausmann
00411f622e
Remove one outdated section from the esp-idf troubleshooting
2024-09-19 23:36:41 +02:00
Simon Hausmann
f4406f7583
Add missing license tags
2024-09-19 23:36:41 +02:00
Simon Hausmann
7ad2dbbaba
Integrating the MCU docs into the C++ docs
...
- Getting Started is now "Getting Started on Desktop"
- A new "Getting Started on MCU" section combines:
- ESP-IDF
- STM32 (for the board templates we provide)
- Generic (instructions from cmake.md moved here)
The ESP-IDF README is now shortened and links to the C++ esp-idf
section (careful! This might become a dead link if we re-organize
in the future...)
2024-09-19 23:36:41 +02:00