slint/internal/compiler
Thorbjørn Lindeijer 74b37df4db
Optimize StandardTableView in Fluent, Material and Native styles (#3425)
* Optimize StandardTableView in Fluent and Material styles

By using a ListView instead of a ScrollView + VerticalLayout, we trigger
the optimization where only visible children are being instantiated.

For the Fluent style, this was making the rows more compact, so I've
added additional padding to the TableViewCell to compensate. I don't
know where the padding used to come from.

I didn't touch Cupertino style since it's currently work-in-progress.
This optimization can be done there as well.

For the Native style, this optimization isn't as straight-forward
because it uses a NativeScrollView + Flickable directly rather than a
the ScrollView.

* Optimize StandardTableView for Native style

Using the ListView makes it possible to only instantiate the visible
items, which makes the StandardTableView a lot faster for larger models
(already very noticeably in the gallery example).

When using a ListView, StandardTableView lost access to the
NativeScrollView.native-padding-top/left properties, which are now
exposed through the ScrollView item.

It could also no longer position the Flickable below the header (or in
doing so, would take the scrollbar along with it), so a property was
added to ScrollView for that purpose as well.

* Introduced InternalScrollView

This avoids exposing additional properties on the ScrollView for just
the native style.

* Fix missing default values for Native style ScrollView

Added minimum size, preferred size and stretch factors (they were not
present before introducing InternalScrollView either, but are added now
for consistency with the other styles).
2023-09-08 08:23:03 +02:00
..
generator Make a pass to remove the Expression::Return instruction 2023-09-06 14:10:26 +02:00
LICENSES Update license symlinks 2023-08-16 11:46:15 +02:00
llr Make a pass to remove the Expression::Return instruction 2023-09-06 14:10:26 +02:00
parser Better error when using ';' instead of ',' when declaring struct 2023-07-24 12:31:41 +02:00
parser-test-macro Bump version number to 1.3.0 2023-09-05 15:46:36 +02:00
passes Make a pass to remove the Expression::Return instruction 2023-09-06 14:10:26 +02:00
tests Fix panic when parsing invalid gradiant 2023-08-09 21:20:54 +02:00
widgets Optimize StandardTableView in Fluent, Material and Native styles (#3425) 2023-09-08 08:23:03 +02:00
build.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
builtin_macros.rs Add component-factory type to Slint language 2023-07-27 12:04:16 +02:00
builtins.slint Rename Slider::vertical to Slider::orientation 2023-08-30 13:43:59 +02:00
Cargo.toml Bump version number to 1.3.0 2023-09-05 15:46:36 +02:00
diagnostics.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
embedded_resources.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
expression_tree.rs Compiler: fix conversion from unnamed to named struct 2023-09-07 14:57:05 +02:00
fileaccess.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
generator.rs Debug: use pretty-print to dump the LLR 2023-08-22 16:20:13 +02:00
langtype.rs Add component-factory type to Slint language 2023-07-27 12:04:16 +02:00
layout.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
lexer.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
lib.rs Make ComponentContainer a compiler configuration feature 2023-07-27 12:04:16 +02:00
literals.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
llr.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
load_builtins.rs Refactoring: define macro rules to group builtin structs 2023-08-03 11:01:18 +02:00
lookup.rs linuxkms: Implement keyboard input and clamp mouse 2023-07-31 17:27:53 +02:00
namedreference.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
object_tree.rs Implement LLR code lowering for ComponentContainer 2023-07-27 12:04:16 +02:00
parser.rs Update royalty free license to 1.1 (#2994) 2023-07-10 10:12:11 +02:00
passes.rs Make a pass to remove the Expression::Return instruction 2023-09-06 14:10:26 +02:00
README.md reuse: remove glob for markdown files 2023-08-17 08:55:28 +02:00
typeloader.rs Fix let-else formatting 2023-07-28 13:43:21 +02:00
typeregister.rs Refactoring: define macro rules to group builtin structs 2023-08-03 11:01:18 +02:00

The Slint Compiler Library

NOTE: This library is an internal crate of the Slint project. This crate should not be used directly by applications using Slint. You should use the slint crate instead.

WARNING: This crate does not follow the semver convention for versioning and can only be used with version = "=x.y.z" in Cargo.toml.