Commit graph

6309 commits

Author SHA1 Message Date
Simon Hausmann
e4b6dc5368 WIP: avoid non-rectangular clips unless intersection 2022-04-20 18:20:50 +02:00
Simon Hausmann
eb3ceb54bd janitor: Move the GL renderer into a separate module 2022-04-20 17:41:53 +02:00
Tobias Hunger
09f9dbe371 Do not set focus on click for most FocusScopes 2022-04-20 17:07:02 +02:00
Tobias Hunger
2312954f11 Remove unused property in NativeStyleMetrics 2022-04-20 17:07:02 +02:00
Olivier Goffart
dee7d9c556 Documentation: add a edit link to .slint snippet that open the code editor 2022-04-20 16:49:05 +02:00
Tobias Hunger
9ef1f08163 Take alignment from QStyle infos into account when rendering the TabBar 2022-04-20 15:19:16 +02:00
Tobias Hunger
6c10edc957 Draw focus rect on focused tabs 2022-04-20 15:19:16 +02:00
Tobias Hunger
06749c6469 native: Implement keyboard focus support in Tab widget 2022-04-20 15:19:16 +02:00
Tobias Hunger
416aa42d90 Component: Replace parent_item to parent_node
Remove the `parent_item` function. After the recent changes that did not
return an item anymore and since the item tree is exposed, this function
was only used to find the repeater a component was created by.

So replace the old function with a new one that only returns the parent
node in the parent component.

This saves a few lines of generated code that is not used anymore.

Co-authored-by: Simon Hausmann <hausmann@gmail.com>
2022-04-20 14:29:18 +02:00
Olivier Goffart
ca5bfd3426 Doc recipes: add custom widgets 2022-04-19 17:11:20 +02:00
Simon Hausmann
ebb6dd4449 janitor: Fix typo 2022-04-19 16:58:06 +02:00
Olivier Goffart
af3db79472 Janitor: Update cbindgen 2022-04-19 15:32:42 +02:00
Olivier Goffart
8117e7f03d C++: make Model::track_row_data_changes const 2022-04-19 15:12:15 +02:00
Olivier Goffart
2f67564ea9 C++: add a Model::row_data_tracked function 2022-04-19 15:12:15 +02:00
Olivier Goffart
fd44b2e651 Model: Do not register row data tracker if not needed
Make track_row_data_changes not register a dependency to the row
if there is currently no binding being evaluated.
2022-04-19 15:12:15 +02:00
Olivier Goffart
67e9a59398 Add a Model::row_data_tracked function
Closes #1177
2022-04-19 15:12:15 +02:00
Olivier Goffart
f117cb77cc NativeSpinBox: Handle the key press in native code 2022-04-19 11:27:19 +02:00
Simon Hausmann
77c92c1444
Some minor grammar fixes to the README 2022-04-15 22:28:47 +02:00
Olivier Goffart
c67ec99f25 Update lsp_server and lsp_types 2022-04-14 19:18:05 +02:00
Olivier Goffart
634e4387c6 Update toml_edit and xshell 2022-04-14 19:18:05 +02:00
Olivier Goffart
452bc2a696 Update MSRV to rust 1.59 in the CI and documentation
This is only required for dependencies of slint-build and xtask.
So this is not enforced yet and will still work with 1.56 with
for C++ or when not using slint-build.
2022-04-14 19:18:05 +02:00
Olivier Goffart
e85e69fda0
Declare .slint enum in one place in i-slint-common
This avoid repeating the enums both in the compiler and in
the runtime library, and register them in a bunch of other places.

So it should be easier to add enums and enum values

Since cbindgen doesn't see through the macro, generate the enum
manually
2022-04-14 19:17:48 +02:00
Simon Hausmann
5a270313d2 Improve VecModel::set_vec test
Verify the values reported by `row_count()` in the rows added/remove
callbacks.
2022-04-14 14:20:27 +02:00
Olivier Goffart
f5030cff06
Add a reset function to the model notifier 2022-04-14 14:06:34 +02:00
Simon Hausmann
2b93504b93 Fix MCU build 2022-04-14 11:31:39 +02:00
Olivier Goffart
c8bc5a828b CI: actually check MSRV 2022-04-14 11:05:28 +02:00
Simon Hausmann
cb2a555c90 mcu: fall back to breaking text anywhere if we can't find with given break opportunities
cc #843
2022-04-14 10:58:04 +02:00
Olivier Goffart
6c59cefa9d Property system: setting a binding must mark all dependent property as dirty
When resetting the binding, we need to mark dependent property as dirty.
It just hapenned that the current implementation always set all bindings
before starting to query the properties, so this problem was not seen
before. But there is an exception when setting the two_way bindings,
then we may set the binding after the property was querried because
setting a two way binding actually queries the property
2022-04-13 21:16:32 +02:00
Simon Hausmann
1b656ecb0d Clean up optimization to skip layers for opacity elements 2022-04-13 17:38:56 +02:00
Simon Hausmann
5a90d0dfa5 Rework the global singleton section in the language reference
Move the explanation of using two-way bindings to expose globals further
down.

Before that, provide inline examples with Rust and C++ how to access the
globals directly.
2022-04-13 17:01:03 +02:00
Olivier Goffart
9380ba0406 crater: Remove non-working URL
anno no longer uses slint :-(

matrix doesn't compile because it sets some bad flags in its .cargo/config
2022-04-13 15:39:58 +02:00
Olivier Goffart
6e1714585b CI: more urls for the crater script 2022-04-13 15:17:46 +02:00
Tobias Hunger
df9f86ba4a janitor: cspell fixes 2022-04-13 14:42:32 +02:00
Tobias Hunger
2c82fd7618 Tab: Make tab accept keyboard 2022-04-13 14:42:32 +02:00
Simon Hausmann
a881922dd2 Replace touch point workaround with winit patch
Commit c85e1b6d25 added a workaround for a
winit issue, which has been fixed upstream. Until a new release is
available, let's patch in winit from a branch that has the fix
cherry-picked.

This way we don't have to remember to remove the workaround with the
next update and this has been verified on the device.
2022-04-13 11:43:24 +02:00
Simon Hausmann
9c08fda888 Ensure the C++ test binaries find the right libslint_cpp
Don't rely on `cargo test`  setting the library search path environment for the dynamic linker.

As per https://doc.rust-lang.org/cargo/reference/environment-variables.html#dynamic-library-paths
PATH/LD_LIBRARY_PATH/etc. are set to include `target/debug` and "deps",
but this is documented to be a legacy feature.
2022-04-13 11:37:12 +02:00
Olivier Goffart
dd3d738774 C++ test: use the libslint_cpp.so from the deps folder
For some reason, The cargo test for the cpp driver test puts the
libslint_cpp.so library in the `deps` foilder, in addition to the
cdynlib which is generated in the normal target folder. So we end
up with two .so.

We need to have the cpp lib as a dependency because its metadata give us the
metadata on where to find the headers.
Ideally it should be an artifact dependency but this is not yet existing

Since cargo sets the LD_LIBRARY_PATH or the PATH env variable when
running the test, running the runtime built binaries work by taking
the library that is in the deps folder.
2022-04-13 10:37:37 +02:00
Simon Hausmann
9a8c5fed9f Remove the ugly style
It's ugly ;-)

The combo box for the style is commented out for now, so that we can
easily re-add it in the future once we add a new style.
2022-04-13 10:35:42 +02:00
Olivier Goffart
f5baef4262 MCU: fix drawing of clipped rounded rectangle with border 2022-04-12 16:15:33 +02:00
Olivier Goffart
cc1aad8ce9 MCU: fix panic in the renderer
Sometimes, BorderRectangle clips can get negative if the intersection
of two rectangle leads to a rectangle that is smaller than the previous
rectangle, but because of floating point error while computing the max
position, the resulting clip may still be negative.
Add a small value to compensate that error
2022-04-12 16:12:41 +02:00
Olivier Goffart
8327ab3e52 MCU renderer: query the geometry of items we do not support
So that we can register dependencies and refresh when it moves, even
if we don't draw anything for them
2022-04-12 13:02:58 +02:00
Olivier Goffart
54a6cb22ee Allow .darker and .brighter on Brush 2022-04-12 13:01:53 +02:00
Tobias Hunger
c825eee228 janitor: Update global cspell
Update global cspell words and remove some file-wide words.

Also remove a manual test that is now also run as a proper test case.
2022-04-12 12:03:45 +02:00
Tobias Hunger
49e0a2f32b janitor: cspell fixes 2022-04-12 12:03:45 +02:00
Tobias Hunger
a50d1e7d02 fluent: Make ComboBox accept keyboard input 2022-04-12 10:48:09 +02:00
Tobias Hunger
f883b45a4b Make fluent CheckBox accept keyboard actions 2022-04-12 10:48:09 +02:00
Tobias Hunger
b33c407878 Make fluent Button accept keyboard focus 2022-04-12 10:48:09 +02:00
Tobias Hunger
73e178a840 Add enabled property to FocusScope 2022-04-12 10:48:09 +02:00
Olivier Goffart
c4fcd39e3d CI: MCU: test build with integer coordinate 2022-04-11 17:46:50 +02:00
Olivier Goffart
1b91158b46 corelib: allow to use i32 for coordinate instead of f32 2022-04-11 17:46:50 +02:00