mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-20 15:22:13 +00:00

When an item in a grid layout specifies row or col, this property is no longer removed by the compiler. That's the one liner that changes removes() with get(), but the side effect of that is that the code that checks that no row/col/etc. property is still there afterwards (to give compile-time errors) had to be improved to check if this is an item inside of a grid layout, since the property stays now.
57 lines
2.2 KiB
Text
57 lines
2.2 KiB
Text
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0
|
|
|
|
export X := Rectangle {
|
|
// ^warning{':=' to declare a component is deprecated. The new syntax declare components with 'component MyComponent {'. Read the documentation for more info}
|
|
|
|
lay := GridLayout {
|
|
property<string> foo: "hello";
|
|
Row {
|
|
Text {
|
|
text: lay.foo + parent.width;
|
|
// ^error{Element 'Row' does not have a property 'width'}
|
|
colspan: 1 + 1;
|
|
// ^error{'colspan' must be an integer literal}
|
|
rowspan: 2;
|
|
}
|
|
Text {
|
|
row: 3;
|
|
col: -2;
|
|
// ^error{'col' must be an integer literal}
|
|
rowspan: 2.2;
|
|
// ^error{'rowspan' must be a positive integer}
|
|
y: 0;
|
|
// ^error{The property 'y' cannot be set for elements placed in this layout, because the layout is already setting it}
|
|
|
|
animate x { duration: 100ms; }
|
|
// ^error{The property 'x' cannot be set for elements placed in this layout, because the layout is already setting it}
|
|
|
|
init => {
|
|
self.colspan = 45;
|
|
// ^error{The property must be known at compile time and cannot be changed at runtime}
|
|
}
|
|
}
|
|
}
|
|
Row {
|
|
Text {
|
|
x: 12px;
|
|
// ^error{The property 'x' cannot be set for elements placed in this layout, because the layout is already setting it}
|
|
}}
|
|
Text{
|
|
row: 200000; // that's actually bigger than 65535
|
|
// ^error{'row' must be a positive integer}
|
|
Rectangle { row: 3; }
|
|
// ^error{row used outside of a GridLayout}
|
|
}
|
|
}
|
|
|
|
Text { colspan: 3; }
|
|
// ^error{colspan used outside of a GridLayout}
|
|
col: 3;
|
|
// ^error{col used outside of a GridLayout}
|
|
|
|
HorizontalLayout {
|
|
col: 3;
|
|
// ^error{col used outside of a GridLayout}
|
|
}
|
|
}
|