We need to skip the generation of the local property so it directly
forward to the alias in the public property
Fixes#5855
ChangeLog: Fixed generated getter and setter of alias properties in globals
eg, don't report an error for each callback or animation or changed
event that the the property doesn't exist or such.
Also reword the message when an element doesn't exist. Use "element"
rather than "type" as it is more accurate.
We need to give unique name to optimized item as well, otherwise the
properties ends up the same.
Also fix the optimized element and timer when inlining
Fixes#5977Fixes#5976
If a property is only used once, we can inline it with a bigger
threshold.
But this require to first compute the use, and then do the inlining
while adjusting the usages
Because f64 has too much precision, so limit to f32 so that we don't
have extra precision we don't need and would be wrong as all our float
as in f32
(Also avoid double allocation in rust generated code)
We wouldn't detect percent as a unit product in
43c7f57b0f/internal/compiler/generator/rust.rs (L2418-L2422)
Percent is not strictly of percent unit because that unit doesn't
combine with other unit (as per the comment in `default_unit`)
But since it converts to number, it is then an unitless value. (scalar)
Fixes#5887
code like so:
```slint
callback foo();
if true : Button {
clicked => {
true ? foo() : foo();
}
}
```
the code like foo() use the `option.map()` to get to the parent, but then it
needs to still be wrapped in a `{...}` to convert that to a `()` expression
Fixes#5883
Instead of having all style duplicated and re-using a base, we just hack
into the funciton that queries the dark/light theme based on the style
suffix known at compile time.
This removes one of the problem that happens when trying to work on the
widget style with the extension, as it relies on include path hacks
Last commit uncovered some bug in which the second phase of inlining
tries to inline children in the wrong place
(This usually inlines zero children as it was already done in the first
phase, but we still assert that the location is right)
And use that in the lsp/ui implementation instead of comments.
This is only a parser support for now, the name is otherwise unused.
Hence I rather keep that experimental.
The test's build.rs invokes the compiler repeatedly with a configuration that enables font embedding. Instead of loading the same font with fontdue repeatedly (slow), store the loaded fonts in a hash table for re-use.
This should not have any impact on single file compilations, but it helps with the screenshot driver test dramatically, bringing down the time of
touch tests/screenshots/build.rs
cargo build -p test-driver-screenshots
on my xps13 linux from 1m26s to 15s.
Enable the use of parallel glyph outline extraction in fontdue.
Brings down the time of
touch tests/screenshots/build.rs
cargo build -p test-driver-screenshots
on my xps13 linux from 3m30s to 1m26s.
- Make sure that in Rust and C++ we also truncate if the properties are
inlined
- Change the interpreter to truncate
This is a redo of commit f5d003d but truncate instead of round
fixes#5689