Merge lp:~zsombi/ubuntu-ui-toolkit/pickerProblems into lp:ubuntu-ui-toolkit/staging
| Status: | Merged |
|---|---|
| Approved by: | Christian Dywan on 2015-09-25 |
| Approved revision: | 1655 |
| Merged at revision: | 1651 |
| Proposed branch: | lp:~zsombi/ubuntu-ui-toolkit/pickerProblems |
| Merge into: | lp:ubuntu-ui-toolkit/staging |
| Diff against target: |
1328 lines (+1049/-23) 14 files modified
components.api (+83/-0) examples/ubuntu-ui-toolkit-gallery/Pickers.qml (+28/-1) src/Ubuntu/Components/Pickers/1.2/Picker.qml (+5/-4) src/Ubuntu/Components/Pickers/1.2/PickerDelegate.qml (+0/-3) src/Ubuntu/Components/Pickers/1.3/Picker.qml (+11/-5) src/Ubuntu/Components/Pickers/1.3/PickerDelegate.qml (+1/-3) src/Ubuntu/Components/Themes/Ambiance/1.2/PickerDelegateStyle.qml (+3/-0) src/Ubuntu/Components/Themes/Ambiance/1.2/PickerStyle.qml (+3/-1) src/Ubuntu/Components/Themes/Ambiance/1.3/PickerDelegateStyle.qml (+3/-0) src/Ubuntu/Components/Themes/Ambiance/1.3/PickerStyle.qml (+3/-1) tests/qmlapicheck.sh (+1/-1) tests/resources/pickers/PickerTest.qml (+5/-4) tests/unit_x11/tst_components/tst_datepicker13.qml (+569/-0) tests/unit_x11/tst_components/tst_picker13.qml (+334/-0) |
| To merge this branch: | bzr merge lp:~zsombi/ubuntu-ui-toolkit/pickerProblems |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Christian Dywan | 2015-09-23 | Approve on 2015-09-25 | |
| PS Jenkins bot | continuous-integration | Approve on 2015-09-24 | |
| Nekhelesh Ramananthan (community) | Needs Information on 2015-09-23 | ||
|
Review via email:
|
|||
Commit Message
Fix Picker's pathItemCount binding loops in 1.3.
| Nekhelesh Ramananthan (nik90) wrote : | # |
This issue is present even with QtQuick 2.4 and U.C 1.2. Any chance we could see it backported?
| Christian Dywan (kalikiana) wrote : | # |
First off, this does fix Reminders, so far so good.
What's the use case for the new API? It doesn't affect either of the use cases where the binding loops are causing pickers to be empty.
I do second Nekhelesh, the problem seems to be identical on 1.2, including Reminders which only recently switched to 1.3 and did not behave any different wrt this issue.
| Zsombor Egri (zsombi) wrote : | # |
> This issue is present even with QtQuick 2.4 and U.C 1.2. Any chance we could
> see it back ported?
Unfortunately to solve it we would need to change the API. PathView behaviour has changed (no longer loads all the items from the model, only the visible ones) therefore the calculation of the items visible in the view cannot be done using the created delegate size. This is a limitation we must live with in 1.2 :(
| Zsombor Egri (zsombi) wrote : | # |
> First off, this does fix Reminders, so far so good.
>
> What's the use case for the new API? It doesn't affect either of the use cases
> where the binding loops are causing pickers to be empty.
The binding loop doesn't cause DatePicker to be empty, but causes the Picker's current item not being entered sometimes. I managed to reproduce it 2 from 10 runs of the gallery. This MR is mostly there to rule out - and finally get rid of - the binding loops causing DatePicker to be hidden when the page is loaded asynchronously. The API brings the PathView pathItemCount calculation to be binding-loop free (see the comment I had for Nekhelesh why).
> I do second Nekhelesh, the problem seems to be identical on 1.2, including
> Reminders which only recently switched to 1.3 and did not behave any different
> wrt this issue.
Yes, because the binding loop has been brought in by us switching to Qt 5.4. We have this binding loop since then, when PathView no longer loads all the items from the model but creates only the ones which are specified by the pathItemCount. The property value has been calculated based on an item's height, and the number of items created depends on the pathItemCount. Thus the binding loop.
What we could do in 1.2 is to bring the same property as private, then the public API doesn't change and we can get rid of the binding loop. I could live with that :)
| Christian Dywan (kalikiana) wrote : | # |
For the record, Zsombor and I discussed 1.2 and decided we can have it without the public API addition, and for 1.3 we should have at least one example because right now we're not really showing off or testing custom delegates.
- 1651. By Zsombor Egri on 2015-09-24
-
change ported to 1.2
- 1652. By Zsombor Egri on 2015-09-24
-
gallery extended with custom delegate pickers
- 1653. By Zsombor Egri on 2015-09-24
-
staging sync
- 1654. By Zsombor Egri on 2015-09-24
-
adding missing Pickers API
- 1655. By Zsombor Egri on 2015-09-24
-
fixing inheritance in documentation
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:1653
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:1655
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Nekhelesh Ramananthan (nik90) wrote : | # |
Thnx a lot for backporting the fix to 1.2. The binding loop issue didnt cause any visual issues for the clock app, but was filling the clock app logs.
| Christian Dywan (kalikiana) wrote : | # |
Very cute custom delegate examples. Love it!
Also, I couldn't believe my eyes when I saw the .api additions. It didn't even occur to me that the namespace was absent from the script. Nice catch!

PASSED: Continuous integration, rev:1650 jenkins. qa.ubuntu. com/job/ ubuntu- sdk-team- ubuntu- ui-toolkit- staging- ci/2279/ jenkins. qa.ubuntu. com/job/ ubuntu- sdk-team- ubuntu- ui-toolkit- staging- vivid-amd64- ci/1007 jenkins. qa.ubuntu. com/job/ ubuntu- sdk-team- ubuntu- ui-toolkit- staging- vivid-armhf- ci/1009 jenkins. qa.ubuntu. com/job/ ubuntu- sdk-team- ubuntu- ui-toolkit- staging- vivid-armhf- ci/1009/ artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ ubuntu- sdk-team- ubuntu- ui-toolkit- staging- vivid-i386- ci/1006
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/ubuntu- sdk-team- ubuntu- ui-toolkit- staging- ci/2279/ rebuild
http://