Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.15.9, 6.3.0
-
2664b1988f (qt/qtdeclarative/dev) 2664b1988f (qt/tqtc-qtdeclarative/dev) 49e28a122b (qt/qtdeclarative/6.3) 49e28a122b (qt/tqtc-qtdeclarative/6.3) 49e28a122b (qt/tqtc-qtdeclarative/6.3.1) e4cd376599 (qt/tqtc-qtdeclarative/5.15)
Description
If model or delegate is changed, bindings in delegate are now triggering twice. If both are changed at once, bindings will trigger 3 times.
This can cause big performance issues especially on embedded devices because this will also cause Text to emit size changes (even though it didn't change) every time.
To reproduce, run attached example and click the toggle button to switch model and delegate. That causes binding for text in the new delegate to be evaluated 3 times (per item) and each time onTextChanged is triggered which prints a message. Additionally widthChanged is also triggered.
In Qt 5.13 and older this didn't happen.
Attachments
Issue Links
- is duplicated by
-
QTBUG-107732 Tumbler sometimes ignores specified index
-
- Closed
-
For Gerrit Dashboard: QTBUG-102793 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
409315,3 | Avoid double applyDelegateChange in QQIV::setDelegate | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
409720,2 | Avoid double applyDelegateChange in QQIV::setDelegate | 6.3 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
409729,3 | Avoid double applyDelegateChange in QQIV::setDelegate | tqtc/lts-5.15 | qt/tqtc-qtdeclarative | Status: MERGED | +2 | 0 |
409730,2 | Avoid double applyDelegateChange in QQIV::setDelegate | tqtc/lts-6.2 | qt/tqtc-qtdeclarative | Status: MERGED | +2 | 0 |