Merge lp:~unity-team/unity8/externalMonitor into lp:unity8
| Status: | Merged |
|---|---|
| Approved by: | Gerry Boland on 2015-10-21 |
| Approved revision: | 2007 |
| Merged at revision: | 2008 |
| Proposed branch: | lp:~unity-team/unity8/externalMonitor |
| Merge into: | lp:unity8 |
| Prerequisite: | lp:~unity-team/unity8/mousePointer |
| Diff against target: |
1322 lines (+748/-169) 29 files modified
debian/unity8.install (+1/-0) qml/Components/WallpaperResolver.qml (+63/-0) qml/DeviceConfiguration.qml (+1/-0) qml/DisabledScreenNotice.qml (+49/-0) qml/Notifications/Notification.qml (+2/-0) qml/Notifications/NotificationMenuItemFactory.qml (+2/-1) qml/Notifications/Notifications.qml (+2/-0) qml/OrientedShell.qml (+10/-1) qml/Rotation/RotationStates.qml (+2/-2) qml/Shell.qml (+9/-32) src/ApplicationArguments.h (+10/-2) src/CMakeLists.txt (+3/-0) src/SecondaryWindow.cpp (+31/-0) src/SecondaryWindow.h (+30/-0) src/ShellApplication.cpp (+197/-0) src/ShellApplication.h (+55/-0) src/ShellView.cpp (+59/-0) src/ShellView.h (+34/-0) src/main.cpp (+4/-101) tests/autopilot/unity8/fixture_setup.py (+1/-1) tests/autopilot/unity8/greeter/tests/__init__.py (+1/-1) tests/autopilot/unity8/launcher.py (+1/-1) tests/autopilot/unity8/shell/__init__.py (+1/-1) tests/autopilot/unity8/shell/tests/__init__.py (+1/-1) tests/qmltests/CMakeLists.txt (+2/-0) tests/qmltests/Components/tst_WallpaperResolver.qml (+89/-0) tests/qmltests/tst_DisabledScreenNotice.qml (+37/-0) tests/qmltests/tst_OrientedShell.qml (+51/-1) tests/qmltests/tst_Shell.qml (+0/-24) |
| To merge this branch: | bzr merge lp:~unity-team/unity8/externalMonitor |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Gerry Boland | 2015-10-08 | Approve on 2015-10-21 | |
| PS Jenkins bot | continuous-integration | 2015-10-08 | Needs Fixing on 2015-10-20 |
| Michał Sawicz | Pending | ||
| Lukáš Tinkl | 2015-10-08 | Pending | |
|
Review via email:
|
|||
This proposal supersedes a proposal from 2015-10-05.
Commit Message
Initial multi-monitor support
When an external screen appears, move the shell to it
Description of the Change
Works best on a laptop.
Known issues:
- Input events come at very irregular intervals (if at all) when an external monitor is connected to a phone or tablet. Works fine on a laptop connected to an external monitor.
* Are there any related MPs required for this MP to build/function as expected? Please list.
https:/
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes. Works fine on laptops/desktops. On phones you can get mixed results due to known Mir bugs.
* 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?
N/A
* If you changed the UI, has there been a design review?
N/A
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1990
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Michał Sawicz (saviq) wrote : | # |
I tried this on a Nexus 7, here's my results:
- with my monitor it takes a significant amount of time to switch (like 30-40s) when the device seems locked up, the external screen switches modes back and forth
- only settled down with my TV cold-plugged, hotplugging worked after that, too
- external and internal screens are swapped (I get the splash screen over HDMI)
- touch doesn't work on the internal screen, where the UI is displayed
- splash screen doesn't fill the whole screen (resolution is reported correctly)
- if I can see correctly, the whole shell is reinitialized when switching, that might explain some of the delay
Trying on Nexus 4 now, will report back soon.
| Daniel d'Andrada (dandrader) wrote : | # |
> I tried this on a Nexus 7, here's my results:
> - with my monitor it takes a significant amount of time to switch (like
> 30-40s) when the device seems locked up, the external screen switches modes
> back and forth
> - only settled down with my TV cold-plugged, hotplugging worked after that,
> too
> - external and internal screens are swapped (I get the splash screen over
> HDMI)
> - touch doesn't work on the internal screen, where the UI is displayed
> - splash screen doesn't fill the whole screen (resolution is reported
> correctly)
> - if I can see correctly, the whole shell is reinitialized when switching,
> that might explain some of the delay
>
> Trying on Nexus 4 now, will report back soon.
You likely missing https:/
| Gerry Boland (gerboland) wrote : | # |
Note also, current Mir has multimonitor stability & functionality issues. USC is crashy on hot plug, and brings down unity8 with it. Touch input broken is also Mir issue.
| Gerry Boland (gerboland) wrote : | # |
"SecondaryDisplay" not a name I like. Qt uses the term: "Screen", never "Display". Also it's more than a secondary screen, it has actual purpose. How about "DisabledScreen
"BackgroundReso
Did design really want the user's personal wallpaper to be used as background on the 'secondary' screen?
+++ qml/Components/
+ /*
+ Users should set their UI width here.
+ */
+ property real width
Shell.qml prefers using "//" for multiline comments. Dunno if there's a standard.
What uses "width" in here?
+++ src/SecondaryWi
+ setTitle(
typo
Am surprised you not inheriting QQuickWindow, but if that's all you need, great!
| Daniel d'Andrada (dandrader) wrote : | # |
On 05/10/2015 11:46, Gerry Boland wrote:
> Review: Needs Fixing
>
> "SecondaryDisplay" not a name I like. Qt uses the term: "Screen", never "Display". Also it's more than a secondary screen, it has actual purpose. How about "DisabledScreen
Renamed to DisabledScreenN
> "BackgroundReso
Renamed to WallpaperResolver
> Did design really want the user's personal wallpaper to be used as background on the 'secondary' screen?
This didn't go through design at all. I don't see what's the problem
with using the background image there. This is just a placeholder for
the first iteration of multimonitor support anyway.
>
> +++ qml/Components/
> + /*
> + Users should set their UI width here.
> + */
> + property real width
> Shell.qml prefers using "//" for multiline comments. Dunno if there's a standard.
> What uses "width" in here?
Done.
>
>
> +++ src/SecondaryWi
> + setTitle(
> typo
> Am surprised you not inheriting QQuickWindow, but if that's all you need, great!
>
QQuickView inherits QQuickWindow.
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1995
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
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:1996
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Lukáš Tinkl (lukas-kde) wrote : | # |
+ property var _asImageTester: Image {
49 + id: asImageTester
50 + source: "Adas"/
Looks like a typo here
| Daniel d'Andrada (dandrader) wrote : | # |
On 07/10/2015 07:46, Lukáš Tinkl wrote:
> Review: Needs Fixing
>
> + property var _asImageTester: Image {
> 49 + id: asImageTester
> 50 + source: "Adas"/
>
> Looks like a typo here
Fixed. Thanks.
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1997
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Gerry Boland (gerboland) wrote : | # |
> > Did design really want the user's personal wallpaper to be used as
> background on the 'secondary' screen?
>
> This didn't go through design at all. I don't see what's the problem
> with using the background image there. This is just a placeholder for
> the first iteration of multimonitor support anyway.
Fair enough
> >
> > +++ src/SecondaryWi
> > + setTitle(
> > typo
> > Am surprised you not inheriting QQuickWindow, but if that's all you need,
> great!
> >
> QQuickView inherits QQuickWindow.
Ah, I always think it is the other way around.
| Michał Sawicz (saviq) wrote : | # |
W dniu 08.10.2015 o 14:38, Lukáš Tinkl pisze:
> Text conflict in CMakeLists.txt
Fixed (resubmitted on top of the right branch and merged).
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1998
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Gerry Boland (gerboland) wrote : | # |
No further code complaints. Testing in silo22, this is working as well as it can.
| Gerry Boland (gerboland) wrote : | # |
m_qmlEngine is not being deleted anywhere, I think is reason for hang.
Found a bug on desktop - for single monitor case, keyboard events not being delivered to any QWindow. You need to call
m_shellView-
for it.
- 2007. By Daniel d'Andrada on 2015-10-20
-
Some more deletions
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2006
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Daniel d'Andrada (dandrader) wrote : | # |
On 20/10/2015 14:02, Gerry Boland wrote:
> Review: Needs Fixing
>
> m_qmlEngine is not being deleted anywhere, I think is reason for hang.
Done.
>
> Found a bug on desktop - for single monitor case, keyboard events not being delivered to any QWindow. You need to call
> m_shellView-
> for it.
Can't reproduce it on my laptop. m_shellView-
internally calls m_shellView-
connecting and disconnecting a monitor? Need more info...
| PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2007
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
| Daniel d'Andrada (dandrader) wrote : | # |
> On 20/10/2015 14:02, Gerry Boland wrote:
> > Review: Needs Fixing
> >
> > m_qmlEngine is not being deleted anywhere, I think is reason for hang.
>
> Done.
>
> >
> > Found a bug on desktop - for single monitor case, keyboard events not being
> delivered to any QWindow. You need to call
> > m_shellView-
> > for it.
>
> Can't reproduce it on my laptop. m_shellView-
> internally calls m_shellView-
> connecting and disconnecting a monitor? Need more info...
Used lp:~unity-team/unity8/req-445 and lp:~unity-team/qtmir/req-445 and still can't reproduce it on my laptop.
| Michał Sawicz (saviq) wrote : | # |
> > On 20/10/2015 14:02, Gerry Boland wrote:
> > > Found a bug on desktop - for single monitor case, keyboard events not
> being
> > delivered to any QWindow. You need to call
> > > m_shellView-
> > > for it.
> >
> > Can't reproduce it on my laptop. m_shellView-
> > internally calls m_shellView-
> > connecting and disconnecting a monitor? Need more info...
>
> Used lp:~unity-team/unity8/req-445 and lp:~unity-team/qtmir/req-445 and still
> can't reproduce it on my laptop.
Me either, silo 22 works quite fine here.
| Gerry Boland (gerboland) wrote : | # |
Yep, I must have had old package or something. All good for me now.

FAILED: Continuous integration, rev:1989 jenkins. qa.ubuntu. com/job/ unity8- ci/6414/ jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- vivid-touch/ 4487/console jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- wily-touch/ 793/console jenkins. qa.ubuntu. com/job/ unity-phablet- qmluitests- vivid/1126/ console jenkins. qa.ubuntu. com/job/ unity-phablet- qmluitests- wily/445/ console jenkins. qa.ubuntu. com/job/ unity8- vivid-amd64- ci/1021/ console jenkins. qa.ubuntu. com/job/ unity8- vivid-i386- ci/1022/ console jenkins. qa.ubuntu. com/job/ unity8- wily-amd64- ci/653/ console jenkins. qa.ubuntu. com/job/ unity8- wily-i386- ci/654/ console jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- vivid-armhf/ 4484/console jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- wily-armhf/ 793/console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/unity8- ci/6414/ rebuild
http://