Commit graph

1569 commits

Author SHA1 Message Date
Olivier Goffart
04e03ed197
Rust generator: don't run the init code twice for popups (#6447)
Don't run the `init=>` callback in popup twice

ChangeLog: rust: Fixed `init=>` callback on PopupWindow ran twice.
2024-10-04 17:17:36 +02:00
Olivier Goffart
fd299302ef
TouchArea: send cancel event when disabled while pressed (#6424)
ChangeLog: TouchArea: Send cancel event and update `pressed` and `has-hover`
property when `enabled` is set to false while pressed.

Fixes: #6422
2024-10-01 17:07:47 +02:00
Olivier Goffart
c5954f61c0
SwipeGestureHandler: improve behavior
- Remove the duration threshold
 - Always register the swipe even if the pointer went in another
   direction before
 - set the current position on the release event (in case there was no
   mouve to that position before)

ChangeLog: adjusted threshold in the SwipeGestureHandler

Closes #6344
Probably also helps for #6350
2024-10-01 13:39:01 +02:00
Simon Hausmann
e52ef5cfe1 Calling focus() on a focusable item that's already focused should be a no-op
Fixes #6403
2024-10-01 12:31:32 +02:00
FloVanGH
fd9807515f
TextInput: use selection colors from palette (#6381)
* Update internal/compiler/builtins.slint

Co-authored-by: Olivier Goffart <olivier.goffart@slint.dev>

---------

Co-authored-by: Olivier Goffart <olivier.goffart@slint.dev>
2024-09-30 10:56:22 +00:00
Olivier Goffart
53e79000a4
Layouting: Take in account explicit constraints when generating layout info base on content (#6306)
Fixes #6285

ChangeLog: Fixed geometry constraints when they are partially infered
from the content, and partially infered from the explicit constraints
2024-09-30 10:57:23 +02: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
7eb8c8ed90 Failed attempt at reproducing #6262 2024-09-27 16:08:01 +02:00
Olivier Goffart
61565e1ba9 Visit expressions of changed callback during binding analysis
Fixes #6331  (second part)
2024-09-26 17:54:21 +02:00
Olivier Goffart
87d72a8553 Fix changed callback of an unused property
If the property was not used, it was optimized out and the compiler
would panic
Fixes #6331

ChangeLog: compiler: Fix changed callback of an unused property
2024-09-26 16:51:31 +02:00
Olivier Goffart
850ec63feb Use the updater on the tests/helper_components
Some warning are shown when running test because of them
2024-09-25 15:17:49 +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
cd2b738c7a Rename SwipeGestureRecognizer to SwipeGestureHandler
The origin of this proposal is the name of the `swipe-left`, etc.
directional, boolean properties. They're missing another verb in their
name. In principle the right choice would be "recognize". That is what
the type name suggests, that's the term the documentation uses, so the
code should read `recognize-swipe-left: true;`. However that is a long
word. "Handle" is a verb that's simpler. It's also more generic (that's
a downside), but it's otherwise short enough to make things look
"right":

```
SwipeGestureHandler {
    handle-swipe-left: true;
    swiped => { something.naviate-left(); }
}
```

Therefore this patch proposes to rename the type to SwipeGestureHandler
and prefixes the boolean directional properties with "handle".
2024-09-18 16:37:27 +02:00
crai0
3f3ac7e347
common: add support for back and forward pointing-device buttons (#6149)
Closes #6043

ChangeLog: add support for back and forward pointing-device buttons
2024-09-18 07:48:30 +02:00
Olivier Goffart
c623df62b5 GridLayout: fix panic when rowspan or colspan is 0
Fixes #6181

ChangeLog: Fixed panic when rowspan or colspan is 0. (#6181)
2024-09-17 12:06:06 +02:00
Olivier Goffart
02467bd4cc
Change mod() to always return positive number (#6179)
* Change `mod()` to always return positive number

Closes #6178

ChangeLog: The mod function was changed to always return a positive value (#6178)
2024-09-17 11:37:32 +02:00
Olivier Goffart
3b6cc0f8cf Flickable: size in % bow refer to the Flickable's size instead of the viewport
This is consistant so that `width: 100%` is the same as `width: parent.width`

This basically revert the previous commit that was just working around
the debug_assert to actually fix the behavior

ChangeLog: width and height expressed in `%` unit for an element in a
Flickable now refer to the size of the Flickable instead of that of
the viewport
2024-09-12 09:45:24 +02:00
Olivier Goffart
e98780fafc Fix compiler panic when using % size in a flickable
The viewport of a flickable is of ElementType::Native, and `lookup_property`
don't query the builtin reserved properties in that case.

This commit fix the assert by allowing Type::Invalid as well.

Fixes #4163
2024-09-12 09:45:24 +02:00
Olivier Goffart
3bc758bc3f Janitor: deps update 2024-09-11 17:19:36 +02:00
Olivier Goffart
7d446c98a0
Fix generated setter and getter of public property alias in globals
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
2024-09-11 08:35:38 +02:00
Olivier Goffart
ea3072d696 Path: fix panic when accessing properties on sub commands
We need to keep the ElementRc around with its properties so that
accessing them doesn't panic later
2024-09-10 11:44:13 +02:00
Olivier Goffart
5663ddd9cc
SwipeGestureRecognizer (#6005) 2024-09-09 14:40:55 +02:00
Nigel Breslaw
482308f5da
Add Math.atan2 to the inbuilt math function
Math.atan2(y, x) -> angle
2024-08-30 09:55:10 +02:00
Olivier Goffart
bf1b014840 Timer: fix timer when two timers have the same id
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 #5977
Fixes #5976
2024-08-28 16:21:34 +02:00
FloVanGH
7a0c3dcc50
Do not trigger current-item-changed on StandardListView if current-item is set on the same value (#5958) 2024-08-27 07:22:18 +00:00
Olivier Goffart
4de03fba5b Use f32 for float-to-string conversion
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)
2024-08-23 16:09:53 +02:00
Tobias Hunger
45c24803f2 compiler: Remove version info from SourceFile again
... and fix the fallout of that change.
2024-08-21 16:55:13 +02:00
Olivier Goffart
85063dc4dc Fix rust generated code with struct of percent value
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
2024-08-21 14:48:22 +02:00
Olivier Goffart
89d72d75e8 Add missing test from #5884 2024-08-21 12:04:03 +02:00
Simon Hausmann
c25a03d6f7 C++: Make it possible to split up the C++ code generated for a .slint file
Add a COMPILATION_UNITS argument to slint_target_sources that defines into how many .cpp files to split up a .slint file. The new default is now one.
2024-08-20 15:53:24 +02:00
Olivier Goffart
a69966a296 Fix @children is the root
We were not respting the order (index) at this point.

Fixes #5865
2024-08-19 16:27:11 +02:00
Olivier Goffart
a9f526491a Timer Element
Closes #5724
2024-08-16 16:36:38 +02:00
Olivier Goffart
2643a327e8 Change events: keep unused property with change event 2024-08-16 16:36:38 +02:00
Olivier Goffart
9b71cf1a36 Math postfix member functions on numbers
Closes #5328
2024-08-15 14:52:13 +02:00
ogoffart
4dd7d96a28 Bump version number to 1.8.0 2024-08-15 12:44:46 +00:00
Simon Hausmann
641b833c91 Fix TextEdit not invoking edited callbacks
Fixes #5848
2024-08-15 10:10:08 +02:00
Simon Hausmann
fb6775b386 When the slint scale factor is provided at compile time, propagate it also as initial value to the slint::Window created 2024-08-14 11:00:50 +02:00
Simon Hausmann
834a29f25e Share the font cache across compiler invocations in the screenshots explicitly
... instead of implicitly through thread-local storage.
2024-08-13 16:08:24 +02:00
Olivier Goffart
547e00b6f9 Tab with modifier shouldn't change focus
(eg: alt+tab or control+tab)
Failed attempt at fixing #5823
This doesn't fixes it because the problem is that the key event are
forwareded as syntetic events when we gain focus, and they are not in a
order that allow to detect alt+tab
2024-08-12 13:40:58 +02:00
Olivier Goffart
51481b101c
Make conversion from float to int property truncate
- 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
2024-08-10 14:51:05 +02:00
Olivier Goffart
819e549278 Rust generated code: handle the case if the parent is destroyed in a binding
This can happen if somehow the parent get destroyed while a binding is
running. This is issue #3464

This is enough to fix #5698
2024-08-09 15:05:15 +02:00
ogoffart
bbf7edc5a3 Bump version number to 1.7.2 2024-08-09 09:52:17 +00:00
Olivier Goffart
51adfbdc91 tests: Test that deleting the focussed element in some callback don't panic
More failled attempt at reproducing #5698
2024-08-07 12:50:13 +02:00
Olivier Goffart
f88e5c8ef7 tests: Test deleting the parent for a focus scope from a key event
Attempt at reproducing #5698 although that doesn't panic but the test
is still worth commiting
2024-08-07 12:11:26 +02:00
Simon Hausmann
9a34789070 Revert "Fix conversion to from float to int"
This reverts commit f5d003d1e2.

We decided to postpone this change until a later release, in maybe a
different shape.
2024-07-25 15:25:00 +02:00
Olivier Goffart
f5d003d1e2 Fix conversion to from float to int
Round the value.

The previous behavior is that

 - For the interpreter, we were rounding (same as new behavior)
 - for Rust and C++ we were truncating, unless the properties were
   inlinined and then we were keeping it as float
2024-07-23 17:32:57 +02:00
ogoffart
aa25e3cd44 Bump version number to 1.7.1 2024-07-23 12:05:34 +00:00
Simon Hausmann
2ef01bfd48 Add an animation to the test window
This helps to see if the window freezes when re-showing it.
2024-07-17 11:33:07 +02:00
Olivier Goffart
b96390cd75 Fix double click within a Flicakble
Fixes #5586
2024-07-10 15:22:17 +02:00