Commit graph

996 commits

Author SHA1 Message Date
Olivier Goffart
f0a1ef7194 Fix getting type of more complex expressions in model
Fixes #2977

The problem is that expressions such as "foo * foo" can be optimized by
optimization pass to only query the property once, and this is
transformed in a Expression::CodeBlock and is no longer a
Expression::Cast(Model)
So we need to introspect the expression more.
2023-06-27 10:06:20 +02:00
ogoffart
c8c9496722 Bump version number to 1.1.1 2023-06-26 12:50:02 +00:00
Olivier Goffart
8cf57badbf swrenderer: basic text selection 2023-06-22 23:20:49 +02:00
Olivier Goffart
c260210d6d Janitor: update itertools 2023-06-22 15:03:10 +02:00
Simon Hausmann
ab0e38c76d
Merge absolute-x and absolute-y "virtual" properties into absolute-position (#2942)
The type of thep property is `Point`, which existed before. It was
mapped to `slint::private_unstable_api::re_exports::Point` (euclid) and
is now mapped to slint::LogicalPosition (also in C++).
2023-06-21 08:17:57 +02:00
Olivier Goffart
08e20c8586 Don't emit clicked when the pointer did not press the area
eg: releasing the pointer over a button that wasn't pressed shouldn't
click it

Fixes #2918
2023-06-20 16:06:12 +02:00
Florian Blasius
7784e37928
Fluent widgets refresh (#2928) 2023-06-19 17:04:56 +02:00
Olivier Goffart
11dea135f7 Domain: slint-ui.com -> slint.dev 2023-06-16 10:55:08 +02:00
Tobias Hunger
04d1229685 Fix licnese information using xtask 2023-06-16 09:14:20 +02:00
ogoffart
641cab0e75 Bump version number to 1.1.0 2023-06-15 16:01:28 +00:00
Aurindam Jana
81d45ed530 Add LicenseRef-Slint-Royalty-free-1.0 to tests/doctests/Cargo.toml 2023-06-15 11:45:39 +02:00
Aurindam Jana
42ea9494d8 Update tests/doctests/Cargo.toml 2023-06-15 11:35:11 +02:00
Aurindam Jana
039e54a5de
Add royalty free license to files except examples and docs (#2888) 2023-06-15 11:20:50 +02:00
Olivier Goffart
4dd10f4a78 Make WindowAdaptor::request_redraw public 2023-06-13 20:29:52 +02:00
Olivier Goffart
23b910725f Rename WindowAdapterSealed to WindowAdapterInternal 2023-06-13 17:44:04 +02:00
Olivier Goffart
f4dba7bcfd Seal the Renderer trait
Because we need to make the Render trait public so one can re-implement
the WindowAdapter trait
2023-06-13 17:44:04 +02:00
Simon Hausmann
cd9994306e Create the window adapter lazily in C++ 2023-06-13 15:13:42 +02:00
Olivier Goffart
d989aebdaa Exports of enum between files 2023-06-12 13:02:14 +02:00
Olivier Goffart
18ba3c2ae2 Slint enums in Rust and C++ 2023-06-12 13:02:14 +02:00
Olivier Goffart
ac6f473a64 WIP: support for enum in slint
Parser and interpreter part
2023-06-12 13:02:14 +02:00
Simon Hausmann
fd2bb7fe73 Fix running nodejs tests with winit backend
Several tests rely on the testing backend being in place, as it starts
out with a scale factor of 1. The nodejs crate can't depend on the
unpublished testing backend to achieve that, so instead the selector's
backend is used. If that's Qt, then the scale factor is one. If it's
winit, it might be different. To override that, set
`SLINT_SCALE_FACTOR=1` for the nodejs process.
2023-06-10 11:41:04 +02:00
Olivier Goffart
12e6b34e2d Translations: support for plurals 2023-06-07 10:34:34 +02:00
Olivier Goffart
e97a2e8229 Translations: support context 2023-06-06 14:48:48 +02:00
Simon Hausmann
1bf05eae7c
Add support for absolute-x and absolute-y properties on any element (#2823)
Fixes #1691
2023-06-06 14:37:53 +02:00
Olivier Goffart
cf746ddf8d WIP: formatting implementation of translate in rust and C++ 2023-06-05 16:34:59 +02:00
Olivier Goffart
bef2e3617d Fix ListView panic when setting a new model
.. that has less items and the ListView is scrolled.

We should not have an offset that is higher than the current count
otherwise we're going to access invalid item in the model

Fix #2780
2023-06-05 15:52:06 +02:00
Simon Hausmann
f9ba8023d4 Fix read-only TextInput reporting input method access
When the TextInput item is read-only, it should not report availability
or any other status to the input method via the window adapter.

This also fixes the order of events when clicking on a TextInput: We
would send the ime position update request before enabling the ime,
because we set the focus _after_ setting the cursor pos.

Fixes #2812
2023-06-05 14:55:22 +02:00
Simon Hausmann
6a01240934 Disable the popupwindow close test for nodejs
Unfortunately in the CI the test runs with Qt, where send_mouse_click in
the test will send the event to the main QWindow not the popup.

We can't select the testing backend because it's not published and
we can't make the nodejs crate depend on it for initialization.
2023-06-02 18:07:49 +02:00
Simon Hausmann
0f54b9599b Add support for manually closing PopupWindows
This patch adds a `close()` function that can be called to close a popup
window, and a `close-to-click` boolean that can be set to false to
disable the default behavior.
2023-06-02 18:07:49 +02:00
Simon Hausmann
a0a5294e49 Fix init callbacks not being invoked for PopupWindow 2023-06-02 18:07:49 +02:00
Olivier Goffart
f7e61fdd37 Fix transparentize to multiply by 1-factor
Also add `[[nodicard]]` in C++
2023-06-02 17:02:08 +02:00
Olivier Goffart
5599bd44e0 Remove Color::opaque
It is not a right name and i don't think it is a so common operation
2023-06-02 17:02:08 +02:00
Olivier Goffart
cb4ef70d33 Fixup tests and and compilation with no_std
The interpolation now rounds the value, so the test needs to be adjusted
by one unit
2023-06-02 17:02:08 +02:00
Olivier Goffart
4845241ebf Rename translucent to transparentize and mixed to mix 2023-06-02 17:02:08 +02:00
Arthur Araruna
64ad1ce357 Add some color and brush manipulation funcs (#2565)
The added functions enable mixing colors and manipulating the opacity
of colors and brushes.

They enable the behavior of some of the available functions from SASS and are
added for future use for adding the Adwaita style (future PR).
2023-06-02 17:02:08 +02:00
Simon Hausmann
c428601370
Add support for select-all(), cut(), copy() and paste() functions on text input elements (#2804)
In the compiler this is still very primitive, but an attempt to start a
generic interface. The basic assumption is that all item functions will
eventually need access to the window adapter and itemrc. Support for
additional arguments is still missing.

Also missing is support for the function access via rtti in the
interpreter, hence the hardcoding at the moment.
2023-06-01 16:04:53 +02:00
Simon Hausmann
6b8214c3f9 Add support for italic and bold text in the software renderer's bitmap font path
In the screenshot tests this works by setting SLINT_DEFAULT_FONT to
pointer to a directory, instead of a file. We then load all fonts in
that directory and consider their families the default unless a family
is specified. This way for "Noto Sans" a regular as well as an italic
version is registered in fontdb and returned in the list of font
fallback ids. embed_glyphs in the compiler then embeds those variants
and we find them at run-time.
2023-05-31 18:47:39 +02:00
Olivier Goffart
24d37751e8
Properly send exit event when two TouchArea are on top of eachother (#2745)
Fixes #2716

This also fix the elements/flickable test
But change the behavior that when flicking, the has-hover is not set
2023-05-17 19:38:03 +02:00
Florian Blasius
757a744123
Add screenshot test for TextInput (#2746)
* add screenshot test for text input

* Update tests/screenshots/cases/software/basic/text_input.slint

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>

* swr: fix clipping of text cursor

---------

Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
2023-05-17 15:43:43 +02:00
Olivier Goffart
864e23aa5f Fix panic n the interpreter when using an easing as a property
Closes #2666

Thanks to @colelawrence for the initial patch
2023-05-16 15:25:26 +02:00
Olivier Goffart
fb8965d497 Test for animations restarting while running
CC #2726
2023-05-15 17:10:48 +02:00
Olivier Goffart
76356c181b Tests: look at _all_ markdown files for slint snippets
We were missing some which had errors

Fixes #2689
(Although the error for 2689 was in C++ and would not have been
discovered by the test, better to have it parsed anyway)
2023-05-05 08:50:37 +02:00
Olivier Goffart
6441968a43 Janitor: Remove trailing spaces in most files 2023-05-04 08:14:28 +02:00
Cole Lawrence
95e00c5621 Support negative numbers in cubic-bezier(...) function 2023-05-02 09:48:32 +02:00
Cole Lawrence
26fbef9cc0 collect_structs: visit function args and returns
Prevent compilation error in the generated code when dealing with
structs only referenced by public functions.

Fixes #2655
2023-04-29 08:24:17 +02:00
ogoffart
dfd5fc38b3 Bump version number to 1.0.3 2023-04-26 14:04:08 +00:00
ogoffart
53cce5bf44 Bump version number to 1.0.2 2023-04-26 11:33:16 +02:00
Olivier Goffart
b9d139fd6e Fix focussing element whose base is focusable
Fixes #2622
2023-04-24 18:03:33 +02:00
Simon Hausmann
6c8fa5f215
Fix duplicated loading/embedding of images (#2612)
For .slint files that are included, we canonicalize the path before
adding it into the import stack, to avoid duplicates. We didn't do that
for images in the global_embedded_resources.

Ensure this by canonicalizing as early as possible.

Fixes #2608
2023-04-21 13:15:22 +02:00
ogoffart
bd63218412 Bump version number to 1.0.1 2023-04-18 14:56:40 +00:00