Comments (2)
Wow, this is unexpected. Good that you found a workaround - this seems like a bug to me.
from slint.
Thanks for filling a bug.
Here is a smaller testcase:
export component Btn {
in-out property <[int]> model;
width: 30px;
height: 30px;
Rectangle {
background: red;
}
TouchArea {
clicked => {
model[0] += 1;
}
}
}
export component MainWindow inherits Window {
preferred-height: 500px;
preferred-width: 500px;
//in-out //changing the property to in-out fixes it in the viewer
property <[int]> model: [42];
// adding a change in the same component fixes the problem
// TouchArea { enabled: false; clicked => { model[0] += 10; } }
Btn{ model: model; }
Text { text: model[0]; }
}
In that testcase, clicking on the red rectangle doesn't increment the text value.
That's because the const propagation phase thinks this is a const model as it doesn't "see" the change.
Changing the property to be in
fixes it on the viewer but not on the LSP or slintpad because they add an extra layer so the property is still considered constant.
Adding a setter somewhere does workaround the problem though, as then the compiler sees it changes.
The problem is that the const propagation think that the model is const because nothing gets assigned to it. But this analysis is incorrect for model that are assigned to other property and then get modified trough it.
from slint.
Related Issues (20)
- Stabilize full-screen rotation in the renderer HOT 1
- Add wrap anywhere functionality to text wrapping HOT 2
- Placing @children in PopupWindow doesn't work HOT 3
- Tabs in quickstart section don't maintain between links
- LinuxKMS: Add support for mouse cursor rendering with the software renderer HOT 3
- component is deprecated. moving from zenity to slint for all graphical applications. HOT 2
- HorizontalLayout restricting window size HOT 14
- Proposal: Styling capabilities for the std-widgets HOT 10
- !! A panic occured in 'i-slint-core-1.6.0\software_renderer.rs', at line 2460, column 9: not yet implemented HOT 2
- [FEATURE REQUEST] ability to add structs as fields of structs HOT 2
- TextEdit with qt style cannot be selected
- set_fullscreen(false) is invalid HOT 1
- [Bug] Component highlighting in the Slint preview doesn't work in a PopupWindow."
- Wrong transition animation when values indirectly updated right before start HOT 5
- Panic in slint compiler: The remove return pass should have removed all return HOT 2
- Showing two windows at once on Winit/Skia on Wayland/GNOME causes one to be incorrectly painted initially
- When opening multiple windows on Wayland/Winit, it's not possible to close them separately HOT 1
- `LineEdit`: Can not select text with the mouse HOT 1
- Can't bring global to Rust scope HOT 2
- LinuxKMS: Finish linux framebuffer support
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slint.