Commit graph

1442 commits

Author SHA1 Message Date
Simon Hausmann
01d666083f doc: Remove the experimental tag from the Skia renderer
Should've done that for 0.3.1, but better late than never :)
2022-10-31 10:50:28 +01:00
ogoffart
2171773a3e Bump version number to 0.3.2 2022-10-28 09:30:14 +00:00
Olivier Goffart
17aa0d7203 Update version number in docs 2022-10-28 09:42:20 +02:00
Olivier Goffart
f055afd2de New syntax: allow to create component without base 2022-10-26 18:09:57 +02:00
Olivier Goffart
28ae8f7bc4 Refactoring: split ElementType away from the types used as property type
These are two different concept, and it is confusing to keep them in the
same enum

We want to support component without any base element, and Void is
already used for global component, so do this refactoring before
2022-10-26 14:50:44 +02:00
Florian Blasius
a4313c3e32
API changes for SortModel and FilterModel (rust and cpp) (#1768)
* Rust SortModel: Rename parameter `S` to `F`
* Rust SortModel: Rename parameter `apply_sorting` to `reset`
* Rust FilterModel: Rename parameter `apply_filter` to `reset`
* C++ SortModel: Rename parameter `sort_fn` to `comp`
* C++ SortModel: Add pub reset function
* C++ FilterModel: Rename parameter `apply_filter` to `reset`
2022-10-26 11:16:12 +02:00
Tobias Hunger
107c68e35a janitor: Update toml-edit to 0.15 2022-10-26 08:59:36 +02:00
Simon Hausmann
c16253d29f Use Property<LogicalLength> instead of Property<Coord>
This removes the special code for the generated property getters and
ensures type safety in the run-time library for property value setting.

In the Rust generated code we continue to do arithmetic on the scalar
values, that means we immediately extract the scalar, do arithmetic and
rely on the compiler to only allow compatible units.

Danger zone alert: In the interpreter Value::Number can now be converted
to LogicalLength as-is.
2022-10-24 12:49:37 +02:00
Olivier Goffart
1b58ab93f1 Fix documentation of CompilerConfiguration::embed_resources
It was just a copy paste of with_style
2022-10-21 10:33:54 +02:00
Olivier Goffart
6ee932883a Rename stark-style to dark-color-scheme
That's the term used by CSS
2022-10-19 15:23:41 +02:00
Olivier Goffart
0ba468c236 Use a builtin function to access the dark-style
instead of a property on NativeStyleMetrics
2022-10-19 15:23:41 +02:00
Simon Hausmann
38a55f87a4 Change internal MouseEvent to use logical points 2022-10-13 17:02:18 +02:00
Simon Hausmann
c11b4305c1 Change Item::geometry() to return a LogicalRect 2022-10-13 17:02:18 +02:00
Simon Hausmann
3cc524ad1d
Fix broken link to nodejs example 2022-10-12 22:26:23 +02:00
Florian Blasius
129ee0acae
Florian/sort todo (#1721)
Implement `set_row_data` for `SortModel` and `FilterModel` (rust and cpp). Add sort and filter example to the todo example.
2022-10-11 18:58:00 +02:00
Florian Blasius
5fb31ace02
Florian/rust sorting model (#1712)
Add Rust version of SortModel
2022-10-07 16:24:48 +02:00
Simon Hausmann
a8849c1ede Enforce the signature of the file load callback in the wasm build of the interpreter and the lsp 2022-09-30 13:24:04 +02:00
Simon Hausmann
6df60fa723
Add a C++ Sort Model class (#1688)
This allows automatically sorting a model.
2022-09-28 10:03:05 +02:00
Simon Hausmann
cfbdce735f
Add a C++ Map Model class (#1687)
* Add a C++ Map Model class

This matches the MapModel in the Rust API.
2022-09-27 16:03:56 +02:00
Simon Hausmann
388cf32770 C++ FilterModel: Fix mix of unique_ptr and shared_ptr
The inner is sorted in a shared_ptr and should be created using make_shared.
2022-09-27 14:15:38 +02:00
Simon Hausmann
56983482b9 Rename C++'s internal AbstractRepeaterView to ModelChangeListener
For consistency with the Rust model implementation.
2022-09-27 10:26:55 +02:00
Simon Hausmann
5b95466fa6
Add a C++ Filter Model class (#1685)
Add a C++ Filter Model class

This matches the FilterModel in the Rust API.
2022-09-27 10:24:47 +02:00
Simon Hausmann
a7dc0cff45
doc: don't show a preview for the generated component examples 2022-09-26 10:38:52 +02:00
Simon Hausmann
a24c33b8ea Fix Yocto cross build
After renaming the features, the if conditions need to be adjusted.
2022-09-23 14:12:21 +02:00
Simon Hausmann
f54cebf3d6 Don't build Skia with CMake by default
We also don't build it with Cargo by default
2022-09-22 12:56:18 +02:00
Simon Hausmann
5e4abec477 Add a backends section to the CMake docs
That's derived from the backends section of the Slint API crate (Cargo.toml)
2022-09-22 12:56:18 +02:00
Simon Hausmann
2c54628302 Minor grammar fix
Don't "do" a liasion, act as one :)
2022-09-22 12:56:18 +02:00
Olivier Goffart
b7a10dd317 Remove unused wee_alloc dependency
It is not even used, and has security issue.
Fixes https://github.com/slint-ui/slint/security/dependabot/2
2022-09-16 19:24:04 +02:00
ogoffart
261614b914 Bump version number to 0.3.1 2022-09-15 14:39:51 +02:00
Olivier Goffart
419016a356 Rename the compat feature again
crates.io won't let us upload a feature with dots in it:

```
Uploading slint-interpreter v0.3.0 (/home/olivier/slint/internal/interpreter)
error: failed to publish to registry at https://crates.io

Caused by:
  the remote server responded with an error: invalid upload request: invalid value: string "compat-0.3.0", expected a valid feature name at line 1 column 2254
```
2022-09-14 15:55:57 +02:00
Simon Hausmann
8556ad0864 Refer to the release/0.3 branch instead of release/0.2 for the CMake docs 2022-09-14 15:45:16 +02:00
Olivier Goffart
2ada879b05 Update version number in the documentation 2022-09-14 14:47:44 +02:00
Tobias Hunger
e14fae45cd c++: Turn (Logical|Physical)(Size|Position)` into structs
They used to declared by `using` before, so they were too easy to
convert into.
2022-09-13 18:17:56 +02:00
Simon Hausmann
9301fd4bf2 Link to the template and the mcu printer demo 2022-09-13 15:55:53 +02:00
Olivier Goffart
0608c0b0e1 docs: add a picture to illustrate the MCU docs 2022-09-13 15:35:45 +02:00
Simon Hausmann
7dd4e043be janitor: fix typo 2022-09-13 14:16:05 +02:00
Simon Hausmann
0e97cb04a8 Doc fixes
* Avoid abbreviations in headings
* Micro-Controllers -> Microcontrollers
2022-09-13 14:05:34 +02:00
Tobias Hunger
53a3c72b57
api: Change logical/physical position and size on window (#1620)
* Add `RequestedSize` and `RequestedPosition` enum to enable asking for
  logical or physical size/position.
* Rename `Window::size()` to `Window::physical_size()`
* Make `Window::set_size(...)` take an `Into<RequestedSize>`
* Rename `Window::position()` to `Window::physical_position()`
* Make `Window::set_position(...)` take an `Into<RequestedPosition>`
* Change `WindowAdapter` and related classes to be able to handle
  requests being made in the either physical or logical units.

Implement this for C++, Rust and node.
2022-09-13 08:55:31 +02:00
Simon Hausmann
f6001818a8
Second round of changes to the MCU docs (#1624) 2022-09-12 13:48:07 +02:00
Simon Hausmann
012dc34975 Remove the Rust and C++ migration guides from the documentation 2022-09-09 16:53:49 +02:00
Simon Hausmann
8251d60185 Build on docs.rs also with log
The document-features feature will end up with markup that references the log crate.
2022-09-09 11:18:16 +02:00
Simon Hausmann
76aea0c2d4 Remove renderer-winit-software from the docs.rs feature flags
That flag used to enable the software renderer API, but not anymore.
2022-09-09 10:07:20 +02:00
Simon Hausmann
6875e35ec9
Polish the platform module level-docs (#1616)
Various edits and tweaks.
2022-09-09 09:24:59 +02:00
Simon Hausmann
8ee88a53c1
MCU Doc fixes (#1615)
Various edits to the introduction of how to use Slint on MCUs.
2022-09-09 08:35:01 +02:00
Olivier Goffart
1ba4450115 Apply suggestions from code review
Co-authored-by: Simon Hausmann <simon.hausmann@slint-ui.com>
2022-09-07 17:11:57 +02:00
Olivier Goffart
8850959a2c Rename the backend feature flags 2022-09-07 17:11:57 +02:00
Olivier Goffart
15fa69ef55 Rename the compat-0-2-0 feature to compat-0.3.0
But keep a compat-0-2-0 fome compatibility anyway
2022-09-07 14:09:07 +02:00
Simon Hausmann
d9efc95dda Fix console errors in the online editor about GL context losses after some editing
There's a memory leak that causes the created canvas elements not be
deleted.  I've tried a few thing such as explicitly hiding the window
(destroying the canvas element instance refs and gl resources we keep in
Rust), but it's not enough - somewhere there remains a circular
reference. Possibly between some of the closures installed in Rust and
DOM elements they are installed on as event handlers.

I also tried using the wasm-bindgen support for weak refs, but no luck.

So instead, to plug the leak, this patch introduces the re-use of the
HTML canvas element in a way that is similar to how the preview works in
vs code's live preview.

I verified that no GL resources or new canvas elements are leaked in
Chrome's heap profiler via snapshot comparison and filtering for the
corresponding DOM element types.
2022-09-07 12:03:37 +02:00
Olivier Goffart
6ede77436b api: Return an error from invoke_from_event_loop and quit_event_loop 2022-09-07 10:13:58 +02:00
Tobias Hunger
8b66194aca Fix doc for renderer-software feature
Also fix casing in `mcu.md` headline
2022-09-07 10:11:11 +02:00