// Copyright © SixtyFPS GmbH // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0 export TestCase := Rectangle { property checked; property border; states [ checked when checked: { color: blue; // same as root.color text.color: red; border: 42; } pressed when touch.pressed: { color: green; border: 88; text.foo.bar: 0; /// ^error{'text.foo.bar' is not a valid property} colour: yellow; /// ^error{'colour' is not a valid property} /// ^^error{Unknown unqualified identifier 'yellow'} fox.color: yellow; /// ^error{'fox' is not a valid element id} text.fox: yellow; /// ^error{'fox' not found in 'text'} /// ^^error{Unknown unqualified identifier 'yellow'} } ] transitions [ in pressed: { animate * { duration: 88ms; } animate color { duration: 88ms; } } out pressed: { animate color, foo.x { duration: 300ms; } /// ^error{'foo' is not a valid element id} //pause: 20ms; animate border { duration: 120ms; } animate color, text.text { duration: 300ms; } /// ^error{'text.text' is not a property that can be animated} } ] text := Text {} touch := TouchArea {} } export component NewSyntax { property checked; property border; property color; states [ checked when checked: { color: blue; // same as root.color text.color: red; border: 42; } pressed when touch.pressed: { color: green; border: 88; text.foo.bar: 0; /// ^error{'text.foo.bar' is not a valid property} colour: yellow; /// ^error{'colour' is not a valid property} /// ^^error{Unknown unqualified identifier 'yellow'} fox.color: yellow; /// ^error{'fox' is not a valid element id} text.fox: yellow; /// ^error{'fox' not found in 'text'} /// ^^error{Unknown unqualified identifier 'yellow'} in { animate * { duration: 88ms; } animate color { duration: 88ms; } } out { animate color, foo.x { duration: 300ms; } /// ^error{'foo' is not a valid element id} animate border { duration: 120ms; } animate color, text.text { duration: 300ms; } /// ^error{'text.text' is not a property that can be animated} } } ] text := Text {} touch := TouchArea {} } export component OldInNewSyntax { property checked; property border; property color; states [ checked when checked: { color: blue; // same as root.color text.color: red; border: 42; } pressed when touch.pressed: { color: green; border: 88; text.foo.bar: 0; /// ^error{'text.foo.bar' is not a valid property} colour: yellow; /// ^error{'colour' is not a valid property} /// ^^error{Unknown unqualified identifier 'yellow'} fox.color: yellow; /// ^error{'fox' is not a valid element id} text.fox: yellow; /// ^error{'fox' not found in 'text'} /// ^^error{Unknown unqualified identifier 'yellow'} } ] transitions [ /// ^error{'transitions' block are no longer supported. Use 'in \{...\}' and 'out \{...\}' directly in the state definition} in pressed: { animate * { duration: 88ms; } animate color { duration: 88ms; } } out pressed: { animate color, foo.x { duration: 300ms; } /// ^error{'foo' is not a valid element id} animate border { duration: 120ms; } animate color, text.text { duration: 300ms; } /// ^error{'text.text' is not a property that can be animated} } ] text := Text {} touch := TouchArea {} }