Merge lp:~alan-griffiths/mir/MVC-introduce-default-controller-object into lp:mir
| Status: | Merged |
|---|---|
| Approved by: | Alexandros Frantzis on 2015-01-22 |
| Approved revision: | 2240 |
| Merged at revision: | 2250 |
| Proposed branch: | lp:~alan-griffiths/mir/MVC-introduce-default-controller-object |
| Merge into: | lp:mir |
| Prerequisite: | lp:~alan-griffiths/mir/MVC-cleanup-of-frontend |
| Diff against target: |
1401 lines (+542/-338) 19 files modified
include/server/mir/scene/session_coordinator.h (+40/-4) include/server/mir/shell/session_coordinator_wrapper.h (+13/-29) server-ABI-sha1sums (+2/-2) src/include/server/mir/default_server_configuration.h (+5/-0) src/server/scene/default_configuration.cpp (+0/-13) src/server/scene/session_manager.cpp (+22/-120) src/server/scene/session_manager.h (+11/-40) src/server/shell/CMakeLists.txt (+1/-0) src/server/shell/default_configuration.cpp (+25/-1) src/server/shell/default_shell.cpp (+178/-0) src/server/shell/default_shell.h (+94/-0) src/server/shell/session_coordinator_wrapper.cpp (+13/-45) src/server/symbols.map (+2/-0) tests/acceptance-tests/server_configuration_wrapping.cpp (+3/-3) tests/acceptance-tests/test_client_focus_notification.cpp (+1/-0) tests/acceptance-tests/test_prompt_session_client_api.cpp (+1/-1) tests/integration-tests/CMakeLists.txt (+1/-1) tests/integration-tests/test_default_shell.cpp (+27/-30) tests/unit-tests/scene/test_session_manager.cpp (+103/-49) |
| To merge this branch: | bzr merge lp:~alan-griffiths/mir/MVC-introduce-default-controller-object |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| PS Jenkins bot | continuous-integration | Approve on 2015-01-22 | |
| Robert Carr (community) | Approve on 2015-01-21 | ||
| Alexandros Frantzis (community) | Approve on 2015-01-21 | ||
| Daniel van Vugt | Needs Information on 2015-01-21 | ||
| Alberto Aguirre | 2015-01-19 | Approve on 2015-01-20 | |
|
Review via email:
|
|||
Commit Message
shell, scene: introduce a "Controller" into shell and shift window management logic there from scene
Description of the Change
shell, scene: introduce a "Controller" into shell and shift window management logic there from scene
I hope thins to start simplifying after this - my next target is the removal of FocusSetter/
This doesn't make the "DefaultShell" controller customizable - that, and other cleanup is for a future MP
| Alan Griffiths (alan-griffiths) wrote : | # |
mako-08 AWOL again - retriggering
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2239
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
ABORTED: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:2239
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2239
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2239
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Daniel van Vugt (vanvugt) wrote : | # |
That's a bit disappointing. It's this ugliness by previous branch was designed to avoid:
13 + auto const surface = std::dynamic_
And yet we've landed it already.
On a different note; are there plans to move Shell out of frontend? Why is it there?
| Alan Griffiths (alan-griffiths) wrote : | # |
> That's a bit disappointing. It's this ugliness by previous branch was designed
> to avoid:
> 13 + auto const surface =
> std::dynamic_
> And yet we've landed it already.
Agreed, the ugliness hasn't been addressed (yet). But the point of this MP is to separate the window management logic from the model code. I'm trying to keep other (needed) refactoring out of the MP until the consolidation of "controller" functionality is in place.
> On a different note; are there plans to move Shell out of frontend? Why is it
> there?
I'm sure you've asked this question before. The answer is still the same:
No, the frontend::Shell interface defines the needs of frontend and hence belongs there.
| Alan Griffiths (alan-griffiths) wrote : | # |
>
W: Failed to fetch http://
unrelated CI error
- 2240. By Alan Griffiths on 2015-01-21
-
merge lp:mir
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2240
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Alan Griffiths (alan-griffiths) wrote : | # |
> Building remotely on cloud-worker-11 in workspace /var/lib/
...
> [ 51%] Building CXX object tests/acceptanc
> Build timed out (after 120 minutes). Marking the build as failed.
> Build was aborted
cloud-worker-11 timing out again
Retriggering
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2240
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Alberto Aguirre (albaguirre) wrote : | # |
"FATAL: Unable to delete script file /tmp/hudson3556
hudson.
Re-triggering
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2240
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
| Daniel van Vugt (vanvugt) wrote : | # |
> No, the frontend::Shell interface defines the needs of frontend and hence
> belongs there.
I don't think that's a good answer. A "shell" is something that will be implemented by other people. And those other people should not know or care what the internal term "frontend" means to the Mir source code.
| Alan Griffiths (alan-griffiths) wrote : | # |
>
Building remotely on cloud-worker-11 in workspace /var/lib/
...
> [ 51%] Building CXX object tests/mir_
> FATAL: Unable to delete script file /tmp/hudson6153
> hudson.
Our old friend cloud-worker-11 :(
| Alan Griffiths (alan-griffiths) wrote : | # |
> > No, the frontend::Shell interface defines the needs of frontend and hence
> > belongs there.
>
> I don't think that's a good answer. A "shell" is something that will be
> implemented by other people. And those other people should not know or care
> what the internal term "frontend" means to the Mir source code.
1. I don't see how any of this tired discussion is relevant to landing this MP
2. Putting the interface with the code that uses it is policy (although not followed very strictly - but we are fixing that)
3. frontend::Shell is not a definition of "something that will be implemented by other people" it is a definition of what that would need to do to support frontend.
4. "something that will be implemented by other people" will have to support other components too - e.g. to handle changes to outputs it needs to support graphics:
There is nothing that prevents us having:
shell::Shell : public graphics:
| Alexandros Frantzis (afrantzis) wrote : | # |
All parts of the request for information have been either addressed adequately (we agree that std::dynamic_cast<> is not ideal and will be fixed in a future MP), or are tangential to this MP (frontend::Shell discussion) and therefore not blockers anyway, so I am going to top approve.

FAILED: Continuous integration, rev:2239 jenkins. qa.ubuntu. com/job/ mir-ci/ 2717/ jenkins. qa.ubuntu. com/job/ mir-android- vivid-i386- build/938 jenkins. qa.ubuntu. com/job/ mir-clang- vivid-amd64- build/938 jenkins. qa.ubuntu. com/job/ mir-mediumtests -vivid- touch/900/ console jenkins. qa.ubuntu. com/job/ mir-vivid- amd64-ci/ 714 jenkins. qa.ubuntu. com/job/ mir-vivid- amd64-ci/ 714/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 900 jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 900/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -runner- mako/4003/ console s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 17231
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- ci/2717/ rebuild
http://