Merge lp:~mterry/unity8/tutorial-reappears into lp:unity8
| Status: | Superseded | ||||
|---|---|---|---|---|---|
| Proposed branch: | lp:~mterry/unity8/tutorial-reappears | ||||
| Merge into: | lp:unity8 | ||||
| Diff against target: |
501 lines (+151/-87) 8 files modified
qml/Shell.qml (+25/-17) qml/Tutorial/Tutorial.qml (+7/-14) qml/Tutorial/TutorialContent.qml (+9/-8) tests/mocks/GSettings.1.0/fake_gsettings.cpp (+64/-28) tests/mocks/GSettings.1.0/fake_gsettings.h (+16/-6) tests/mocks/GSettings.1.0/plugin.cpp (+0/-6) tests/qmltests/Tutorial/tst_Tutorial.qml (+22/-5) tests/qmltests/tst_Shell.qml (+8/-3) |
||||
| To merge this branch: | bzr merge lp:~mterry/unity8/tutorial-reappears | ||||
| Related bugs: |
|
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Albert Astals Cid (community) | 2015-03-26 | Approve on 2015-04-01 | |
| PS Jenkins bot | continuous-integration | Needs Fixing on 2015-03-26 | |
|
Review via email:
|
|||
This proposal has been superseded by a proposal from 2015-04-03.
Commit Message
Make sure the edge tutorial is destroyed when we receive a call during the wizard.
Description of the Change
Make sure the edge tutorial is destroyed when we receive a call during the wizard.
Now... This bug doesn't make sense to me. What's happening is that the Tutorial.qml Loader is correctly marked as "active=false". But the loaded object is not actually released/destroyed.
I couldn't figure why this was happening. And I couldn't reproduce it via qmltests. In all cases I saw, the object was correctly destroyed. But I could reproduce the bug on the device. And adding log printfs indicated that yup, the object was staying around after Loader.active was false.
But on a hunch, cleaning up the object hierarchy helped. Before, each tutorial page would have a visual parent of "shell.stages" but a QtObject parent of the tutorial loader item. This is a leftover from before the latest tutorial redesign. Now visual parents *shouldn't* affect object lifecycle, I think...? But it seems like it does.
Because when I made the tutorial page's visual parents be the same as their QtObject parents (and just moved the whole Tutorial object underneath shell.stages), it worked fine. The tutorial objects were destroyed when the loader went inactive.
Do any Qml-heads know why this happens? I would guess some refcounting somewhere, but I don't know why I couldn't reproduce in qmltests.
I added some sanity checks at the end of the current test for wizard/tutorial early exit, which don't hurt. But even without my qml changes, they still pass (because I could never reproduce this bug in laboratory conditions).
== Checklist ==
* Are there any related MPs required for this MP to build/function as expected? Please list.
No
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes
* Did you make sure that your branch does not contain spurious tags?
Yes
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
NA
* If you changed the UI, has there been a design review?
NA
| Michael Terry (mterry) wrote : | # |
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1699
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Albert Astals Cid (aacid) wrote : | # |
* Did you perform an exploratory manual test run of the code change and any related functionality?
Yes
* Did CI run pass?
It passed up to the expected passing standards
* Did you make sure that the branch does not contain spurious tags?
Yes
- 1700. By Michael Terry on 2015-04-03

(Oh yeah, and I cleared out a couple unused vestigial properties: stages and overlay)