Commit graph

2252 commits

Author SHA1 Message Date
Tobias Hunger
2ad9e07225 component_container: Add has-component property
... that returns a bool when a component is set up in the
ComponentContainer.
2023-11-28 10:38:46 +01:00
Florian Blasius
6963aefb7b make fluent scrollbar bigger 2023-11-27 22:21:52 +01:00
Olivier Goffart
017448893a
Fix LineEdit with right alignment (#4016)
* Fix LineEdit with right alignement

 - Align the placeholder the same way
 - Make sure the cursor is visible to the right (it is drawn outside of
   the TextInput, so some size need to be accounted for

(Discussed in https://github.com/slint-ui/slint/discussions/3996 )
2023-11-27 18:52:54 +01:00
Olivier Goffart
6195fc8567 Fix compilation when dividing by zero at compile time
Rust would have panicked and C++ generated wrong code.

CC #3982
2023-11-27 17:09:57 +01:00
Olivier Goffart
8a841405c8 Revert "Fix timers not firing on Windows"
This reverts commit 1f5f07f65a.

Revert the work around that is no longer required with 0.29.4
(also add this version as a dependency)
2023-11-27 16:39:01 +01:00
Florian Blasius
c00a21d651
make use of textinputbase (#4014) 2023-11-27 08:50:29 +01:00
Olivier Goffart
a3e48c4950 Const propagation of min and max
Since we generate a lot of max(min, preferred) in the geometry code,
this allow to simplify some expressions in the generated code
2023-11-24 14:20:27 +01:00
Olivier Goffart
fdfa4b31e4 Visit the geometry property as root from binding_analysis
We need to visit them from there to mark them as used externally,
otherwise the remove_alias passes might remove them.

Fixes #4002
2023-11-24 14:07:42 +01:00
Olivier Goffart
e27a662019 Revert "Clip button texts"
This reverts commit 19e1cd8ac2.

This caused regressions as the button no longer have the proper minimum
size.

Fixes #3985
Reverts #3977
2023-11-23 08:53:12 +01:00
ogoffart
0a5bf6c37b Bump version number to 1.3.1 2023-11-23 07:47:07 +00:00
Olivier Goffart
7008b11e3e Properly send exit events when mouse is outside of a PopupWindow
... for non-native PopupWindow.

We first need to handle the grabbed event regardless of popup window.

Then, if we are outside of the popup window, we should send exit events
so that, for example, the has-hover and mouse cursor get properly
updated.

Fixes #3934
2023-11-23 07:25:46 +01:00
Olivier Goffart
a266e63549 Testing: Add some tests for setting the mouse cursor 2023-11-23 07:25:46 +01:00
Olivier Goffart
84202f6af3 Fix ComponentContainer causing panic when using forward-focus
The ComponentContainer is usually instentiated when trying to evaluate a
property such as the geometry or moving the focus. But the init code of
the ComponentContainer would then tries to change the focus which will
indirectly re-visit items and recurse into some property which are being
evaluated.

We do not need to set the focus on instentiation of the
ComponentContainer anyway, intentiating it shouldn't change the current
focus.

This fixes the LSP preview crashing when trying to preview a component
that has forward-focus

Fixes: #3950
2023-11-22 14:13:27 +01:00
Tobias Hunger
2ad8774a61 Add clamp function to slint language 2023-11-22 12:27:54 +01:00
George Hopkins
19e1cd8ac2 Clip button texts 2023-11-22 06:49:33 +01:00
Florian Blasius
62e5fb43bf
align styling resources (#3973) 2023-11-21 14:45:07 +01:00
Olivier Goffart
678afb3ba0 Throw an error when returning no value when one is expected.
Previously we were likely to get error in the compiled code anyway.
(although the interpreter worked fine)

Fixes #3962
2023-11-20 13:50:57 +01:00
Olivier Goffart
8d91ff7dea
Fix compiler panic when there is a component called "Window"
the ensure_window and popupwindow passes were looking up the "Window"
builtin in the global register instead of in the builtin register,
causing the presence of an user-defined "Window" to cause panic.

The "Clip" and "BoxShadow" calls are not affected because they were
looking up in the builtin reguister, but using the appropriate function
is more future-proof

Fix #3916
2023-11-20 13:10:31 +01:00
George Hopkins
0a56f43ae4 Implement std::error::Error for LoadImageError 2023-11-20 11:43:13 +01:00
Olivier Goffart
277dce6345 swrenderer: Optimize image rendering
Do the match on the format before the loop
2023-11-18 13:21:11 +01:00
Olivier Goffart
1a0e065a54 Speedup SharedPixelBuffer::clone_from_slice in debug mode
Discussed in https://github.com/slint-ui/slint/discussions/3912
2023-11-17 12:06:44 +01:00
Florian Blasius
aeace4c4ed
fluent: fixed scrollbar width / height (#3939) 2023-11-16 06:49:34 +01:00
Florian Blasius
95582e6794
fluent: make scrollbars overlay (#3932) 2023-11-15 19:04:02 +01:00
Simon Hausmann
2c775156f7 janitor: bump metal and foreign-types dependencies 2023-11-14 23:03:30 +08:00
Simon Hausmann
cb51fdfe81 janitor: bump xkbcommon dependency 2023-11-14 16:00:56 +01:00
Simon Hausmann
269b327cff janitor: bump calloop dependency 2023-11-14 15:56:24 +01:00
Simon Hausmann
1d085cb47e janitor: Bump core-text dependency
cc #3922
2023-11-14 22:53:40 +08:00
Simon Hausmann
e054684bb2 Bump femtovg and associated ttf-parser, glow, and rustybuzz dependencies
cc #3922
2023-11-14 19:40:40 +08:00
Simon Hausmann
ba28846dc3 Bump fontdb and resvg version
The memmap and fontconfig features of fontdb are enabled by default.
2023-11-14 19:40:40 +08:00
Simon Hausmann
d68b981a16 Upate cocoa dependency
cc #3922
2023-11-14 19:23:32 +08:00
Simon Hausmann
58f9cf5d36 Port to new vulkano
This might fix the issue with resizing causing swapchain re-creation
errors, because "Swapchain creation no longer returns an error when the
swapchain extent doesn't match the current surface extent."

cc #3850
2023-11-13 12:39:59 +01:00
Simon Hausmann
0118363bec Fix build with only backend-linuxkms
Activate the kms feature of softbuffer correctly, when building without
default features.
2023-11-13 11:14:03 +01:00
Olivier Goffart
0b70cbc9a9 Don't use workspace deps for dev-dependencies
They can't have version otherwise we can't upload to crates.io
2023-11-10 11:03:10 +01:00
Olivier Goffart
b27264934a Fix BorrowMut error showing the preview with the software renderer
We used to called borrow_mut twice in a row, that can never work.
I suspect we never reached this code path before, but the preview does
because the ComponentContainer probably instentiate its contents in
places that can cause the geometry cache to be empty while doing the
rendering (while it is most likely being filled when computing the dirty
regions
2023-11-09 16:58:19 +01:00
Olivier Goffart
1f5f07f65a Fix timers not firing on Windows
On Windows, winit doesn't respect the set_control_flow from the
AboutToWait event.
This is a bug in winit, but we can easily work it around

Fix #3875
2023-11-08 22:10:24 +01:00
Olivier Goffart
8fe1dd9ff8 winit: WindowAdapter::set_visible shouldn't do anything if it is already in that state
calling show() on a visible window or hide() on a hidden window
shouldn't do anything.
Especially currently it would resize to the preferred size.
So that makes the preview UI to alsways resize to the preferred size
because we always call show()
2023-11-08 16:06:12 +01:00
Olivier Goffart
7a04b9a643 Qt Spinner: different design without hardcoded strong colors 2023-11-08 12:04:18 +01:00
Florian Blasius
110689bad1
Added Spinner widget (#3871) 2023-11-07 15:04:24 +01:00
Simon Hausmann
a5c3692fbc Add progress-indicator accessible role 2023-11-07 13:37:12 +01:00
Olivier Goffart
2f6410515c Assign value to ImageInnner enum
To make sure there are no binary incompatibilities when features are missing
2023-11-07 12:01:38 +01:00
Olivier Goffart
34ea148c48 Fluent combobox: always put the first item on top
Currently it's always the second, but that's not great.
Ideally it should be the current active element, but that's hard to
compute

This becomes extra-relevent when our preview UI has a combobox on the
top and that it is clipped to the window by winit

Fixes https://github.com/slint-ui/slint/issues/3345
2023-11-07 11:12:27 +01:00
Simon Hausmann
7b61e455eb Initial implementation of a Slint event loop sitting on top of Node.js
At the moment this is implemented using polling.

cc #2477
2023-11-06 11:37:45 +01:00
Simon Hausmann
ee9f1a52a8 winit: Make it possible to resume the event loop while maintaining state
This way if for example the application quits the event loop while
pressed is true, and then resumes shortly afterwards, we maintain the
pressed state correctly.
2023-11-06 11:37:45 +01:00
Simon Hausmann
3a9288003d
Re-enable accesskit (#3833)
Port to the latest accesskit and accesskit_winit:

- NodeId is now a u64 instead of u128, so trim the component/item encoding.
- Adjust to some enum renamings.
- TreeUpdate now always requires a focus node, which we set to the root.
- Fixed focus handling on macOS: Report FocusIn to the accesskit
  adapter, so that it can update its internal host_is_focused state
  correctly.
2023-11-05 09:04:05 +01:00
Tobias Hunger
fbb6d70ff9 lsp: Improve design mode handling
* Make sure design mode stays enabled when refreshing the preview. This
  stops the strange click-throughs from happening
* Keep highlighting enabled while in Design Mode
2023-11-03 22:14:20 +01:00
Tobias Hunger
5e257e2654 LSP: Fix highlighting of top-level item 2023-11-03 22:14:20 +01:00
Tobias Hunger
d53cebd3e1 lsp: Get signalled by the preview 2023-11-03 22:14:20 +01:00
Tobias Hunger
55d0f5d473 lsp: Make native UI work
The UI is ugly and does not include the Design Mode button yet, but it
is a bit of progress.
2023-11-03 22:14:20 +01:00
Tobias Hunger
87c65ec536 core: Add some small helpers to ItemRc
So that it becomes a bit easier to work on with things that should not
cross certain component boundaries (like `ComponentContainer`)
2023-11-03 22:14:20 +01:00
Olivier Goffart
19954d39ac Call set_resizable before setting the constraints
Not sure why, but it fixes that applying the constraints is otherwise
not working with winit on X11

This is not the first time we do this fix:
723f89d342 and 1891e4489a
2023-11-03 18:51:49 +01:00