Merge lp:~unity-team/qtmir/multiSurfaceApp into lp:qtmir
| Status: | Merged |
|---|---|
| Approved by: | Gerry Boland on 2015-12-09 |
| Approved revision: | 426 |
| Merged at revision: | 426 |
| Proposed branch: | lp:~unity-team/qtmir/multiSurfaceApp |
| Merge into: | lp:qtmir |
| Prerequisite: | lp:~unity-team/qtmir/surfaceItemFillMode |
| Diff against target: |
586 lines (+135/-99) 10 files modified
src/modules/Unity/Application/mirsurface.cpp (+15/-19) src/modules/Unity/Application/mirsurfaceitem.cpp (+1/-2) src/modules/Unity/Application/mirsurfacemanager.cpp (+1/-1) src/modules/Unity/Application/session.cpp (+78/-57) src/modules/Unity/Application/session.h (+8/-4) src/modules/Unity/Application/session_interface.h (+16/-4) tests/modules/ApplicationManager/application_manager_test.cpp (+1/-1) tests/modules/SessionManager/session_test.cpp (+3/-3) tests/modules/common/fake_session.h (+4/-2) tests/modules/common/mock_session.h (+8/-6) |
| To merge this branch: | bzr merge lp:~unity-team/qtmir/multiSurfaceApp |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Gerry Boland | 2015-12-07 | Approve on 2015-12-09 | |
| PS Jenkins bot | continuous-integration | 2015-12-07 | Needs Fixing on 2015-12-07 |
| Michael Zanetti | 2015-12-07 | Pending | |
|
Review via email:
|
|||
This proposal supersedes a proposal from 2015-12-01.
Commit Message
Make Session hold multiple surfaces
+ Standardize MirSurface debug messages and account for multiple surfaces per app
Description of the Change
* Are there any related MPs required for this MP to build/function as expected? Please list.
https:/
Because of prereq:
https:/
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes.
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:354
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Gerry Boland (gerboland) wrote : | # |
Please merge trunk, many conflicts have appeared.
+void Session:
+void Session:
these names confuse me. Perhaps rename to something like:
appendSurface -> registerSurface
reallyAppendSurface -> appendSurface
qDebug() << "Application:
I think we can move this to category logging
+ return const_cast<
const_cast needed here? Can't the pointer be a pointer to a const object?
=== modified file 'src/modules/
+ QList<MirSurfac
What use is this? I only see you append to and remove from this list, but never use it for anything.
+ Q_PROPERTY(
Can you add a "REMOVEME" comment to this, this is not an API I want to keep. It also not very correct, as what if the surface pointed to is removed, but other surfaces exist - should it not be updated?
| PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:372
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
| Daniel d'Andrada (dandrader) wrote : | # |
> Please merge trunk, many conflicts have appeared.
Done.
> +void Session:
> +void Session:
> these names confuse me. Perhaps rename to something like:
> appendSurface -> registerSurface
> reallyAppendSurface -> appendSurface
Done.
> qDebug() << "Application:
> on!";
> I think we can move this to category logging
Done.
> + return const_cast<
> const_cast needed here? Can't the pointer be a pointer to a const object?
Right. I was just blindly following the signature of childSessions. Fixed.
> === modified file 'src/modules/
> + QList<MirSurfac
> What use is this? I only see you append to and remove from this list, but
> never use it for anything.
Originally it was meant to keep track of the surfaces that were registered but not yet appended. But later it turned out that this wasn't needed after all. Removed.
> + Q_PROPERTY(
> lastSurfaceChanged CONSTANT);
> Can you add a "REMOVEME" comment to this, this is not an API I want to keep.
> It also not very correct, as what if the surface pointed to is removed, but
> other surfaces exist - should it not be updated?
This will be removed once unity8 starts using Session.surfaces. Ie, once it actually starts supporting multiple surfaces per application. It was just way too awkward to have untiy8 fetching the last surface from Session.surfaces in QML. Hence this property.
Added the FIXME comment to the property declaration.
lastSurface is being updated correctly as the surfaces model changes.
| Gerry Boland (gerboland) wrote : | # |
Code looks ok to me. There's a unity8 change needed to enable this fully though. Could you please link that MP here.
| Daniel d'Andrada (dandrader) wrote : | # |
> Code looks ok to me. There's a unity8 change needed to enable this fully
> though. Could you please link that MP here.
Done
| Michael Zanetti (mzanetti) wrote : | # |
I've tested it and it works.
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:419
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:424
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:424
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:425
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Michael Zanetti (mzanetti) wrote : | # |
have a bunch of build failures here
tests/framework
trying with -DNO_TESTS:
In file included from /home/micha/
/home/micha/
void setCursorName(const QString &cursorName) override;
^
/home/micha/
QString cursorName() const override;
^
/home/micha/
/home/micha/
Q_EMIT cursorNameChang
Also got this when trying to build on the phone
/home/phablet/
qCDebug(
/home/phablet/
if (m_surface) {
^
Not sure if the last one is just masked by the other on my desktop build or if you fixed that in the meantime.
| Daniel d'Andrada (dandrader) wrote : | # |
On 04/12/2015 14:12, Michael Zanetti wrote:
> Review: Needs Fixing
>
> have a bunch of build failures here
>
> tests/framework
>
> trying with -DNO_TESTS:
>
> In file included from /home/micha/
> /home/micha/
> void setCursorName(const QString &cursorName) override;
> ^
> /home/micha/
> QString cursorName() const override;
> ^
> /home/micha/
> /home/micha/
> Q_EMIT cursorNameChang
>
>
>
> Also got this when trying to build on the phone
>
> /home/phablet/
> qCDebug(
> ^
> /home/phablet/
> if (m_surface) {
> ^
>
> Not sure if the last one is just masked by the other on my desktop build or if you fixed that in the meantime.
Just built it here. You sure you had
lp:~dandrader/unity-api/surfaceItemFillMode2 installed?
| Daniel d'Andrada (dandrader) wrote : | # |
> On 04/12/2015 14:12, Michael Zanetti wrote:
> > Review: Needs Fixing
> >
> > have a bunch of build failures here
> >
> > tests/framework
> >
> > trying with -DNO_TESTS:
> >
> > In file included from /home/micha/
> rms/mirserver/
> > /home/micha/
> eton.h:33:10: error: ‘void qtmir::
> ‘override’, but does not override
> > void setCursorName(const QString &cursorName) override;
> > ^
> > /home/micha/
> eton.h:34:13: error: ‘QString qtmir::
> ‘override’, but does not override
> > QString cursorName() const override;
> > ^
> > /home/micha/
> eton.cpp: In member function ‘void qtmir::
> > /home/micha/
> eton.cpp:26:46: error: ‘cursorNameChanged’ was not declared in this scope
> > Q_EMIT cursorNameChang
> >
> >
> >
> > Also got this when trying to build on the phone
> >
> > /home/phablet/
> multiSurfaceApp
> 'm_surface' was not declared in this scope
> > qCDebug(
> > ^
> > /home/phablet/
> multiSurfaceApp
> 'm_surface' was not declared in this scope
> > if (m_surface) {
> > ^
> >
> > Not sure if the last one is just masked by the other on my desktop build or
> if you fixed that in the meantime.
>
>
>
> Just built it here. You sure you had
> lp:~dandrader/unity-api/surfaceItemFillMode2 installed?
sorry, I was building unity8 instead.
Fixed. It was due to a bad merge with polite-close.
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:427
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:426
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Gerry Boland (gerboland) wrote : | # |
Will approve on the grounds it has been tested in silo, and code looks reasonable. Code has changed a bit since I approved it before, and lost history makes it hard to see what changed.

FAILED: Continuous integration, rev:353 jenkins. qa.ubuntu. com/job/ qtmir-ci/ 353/ jenkins. qa.ubuntu. com/job/ qtmir-wily- amd64-ci/ 86/console jenkins. qa.ubuntu. com/job/ qtmir-wily- armhf-ci/ 86/console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/qtmir- ci/353/ rebuild
http://