Merge lp://staging/~unity-team/qtubuntu/DPR2 into lp://staging/qtubuntu
- DPR2
- Merge into trunk
Status: | Work in progress |
---|---|
Proposed branch: | lp://staging/~unity-team/qtubuntu/DPR2 |
Merge into: | lp://staging/qtubuntu |
Prerequisite: | lp://staging/~dandrader/qtubuntu/loggingCategory |
Diff against target: |
767 lines (+229/-152) 9 files modified
debian/changelog (+6/-0) src/ubuntumirclient/backingstore.cpp (+11/-5) src/ubuntumirclient/input.cpp (+15/-12) src/ubuntumirclient/screen.cpp (+24/-15) src/ubuntumirclient/screen.h (+2/-0) src/ubuntumirclient/ubuntumirclient.pro (+2/-1) src/ubuntumirclient/utils.h (+29/-0) src/ubuntumirclient/window.cpp (+136/-117) src/ubuntumirclient/window.h (+4/-2) |
To merge this branch: | bzr merge lp://staging/~unity-team/qtubuntu/DPR2 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Unity8 CI Bot | continuous-integration | Needs Fixing | |
Daniel d'Andrada (community) | Approve | ||
PS Jenkins bot | continuous-integration | Approve | |
Review via email: mp+281664@code.staging.launchpad.net |
This proposal supersedes a proposal from 2015-12-17.
Commit message
Add device pixel ratio support. Small fix for the panel hack.
Description of the change
To test DPR 2:
stop unity8
initctl set-env --global QT_DEVICE_
start unity8
* Are there any related MPs required for this MP to build/function as expected? Please list.
Nothing depends on this directly, but to do a full test, you'll need:
https:/
* Did you perform an exploratory manual test run of your code change and any related functionality?
Y
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:262
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
In src/ubuntumircl
"""
// Window manager can give us a final size different from what we asked for
// so let's check what we ended up getting
{
}
// Assume that the buffer size matches the surface size at creation time
d->bufferSize = geometry.size();
"""
Here bufferSize will be initialized with a scaled size, but it should have the real size.
So bufferSize initialization should probably moved above the line "// Window manager can give us a final size different[...]".
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:264
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
@Daniel, you were correct, I had mixed up a case where pixel != devicePixel. Since this is far too easy to screw up, I thought it a good idea to append "Px" to any variable that is in pixels, and so any other geometry is in device pixels. I think it helps distinguish them.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
In src/ubuntumircl
"""
DLOG(
"""
bufferSizePx has no x() and y() (as it's a QSize, not a QRect). I think code won't build if you enable debug logging?
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:265
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:266
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:268
http://
Executed test runs:
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:269
http://
Executed test runs:
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:270
http://
Executed test runs:
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:271
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:272
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:273
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:274
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:275
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:276
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:277
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:278
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
Ok, should be good to go
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
Looks good to me (didn't test yet).
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:280
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
And it works fine as well.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
Why is that function in src/ubuntumircl
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:290
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
> Why is that function in src/ubuntumircl
> namespace?
To stop it polluting the global namespace. The header file is private.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
Why did you remove that chunk from UbuntuSurface constructor in src/ubuntumircl
"""
auto geom = mWindow-
if (mWindowState == Qt::WindowFullS
} else {
}
"""
Daniel d'Andrada (dandrader) : Posted in a previous version of this proposal | # |
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 17/12/2015 11:52, Daniel d'Andrada wrote:
> Why did you remove that chunk from UbuntuSurface constructor in src/ubuntumircl
>
> """
> auto geom = mWindow-
> geom.setWidth(
> geom.setHeight(
> if (mWindowState == Qt::WindowFullS
> geom.setY(0);
> } else {
> geom.setY(
> }
> """
And so is the panel hack refactoring you're doing.
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
> Why did you remove that chunk from UbuntuSurface constructor in
> src/ubuntumircl
> work.
>
> """
> auto geom = mWindow-
> geom.setWidth(
> geom.setHeight(
> if (mWindowState == Qt::WindowFullS
> geom.setY(0);
> } else {
> geom.setY(
> }
> """
It was a bit related. I wanted to prevent UbuntuSurface having any knowledge of device-indepedent pixels, I wanted it to be purely pixel based. UbuntuSurface pretty much a wrapper for a MirSurface. So that small refactor allowed me to do that, plus eliminate a small bit of duplicate code.
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
Panel hack refactoring was to ensure the hack was applied at UbuntuWindow creation in a correct fashion.
The issue I found with the old hack was if window was created in fullscreen state, with y=0, then
if (state == Qt::WindowFullS
was not entered, but
} else if (geometry().y() == 0) {
was. So fullscreen surface got the panel hack applied.
I fixed it here as I was testing widget-based apps which did this.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
Code looks ok
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
Works fine.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:306
http://
Executed test runs:
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:307
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild:
http://
Daniel d'Andrada (dandrader) wrote : | # |
Still works fine
Michał Sawicz (saviq) wrote : | # |
Text conflict in src/ubuntumircl
Text conflict in src/ubuntumircl
Text conflict in src/ubuntumircl
3 conflicts encountered.
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:307
https:/
Executed test runs:
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unmerged revisions
- 307. By Gerry Boland
-
Fix compile error from bad merge
- 306. By Gerry Boland
-
Merge DPI branch
- 305. By Gerry Boland
PASSED: Continuous integration, rev:261 jenkins. qa.ubuntu. com/job/ qtubuntu- ci/204/ jenkins. qa.ubuntu. com/job/ qtubuntu- vivid-armhf- ci/30 jenkins. qa.ubuntu. com/job/ qtubuntu- vivid-armhf- ci/30/artifact/ work/output/ *zip*/output. zip
http://
Executed test runs:
SUCCESS: http://
deb: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/qtubuntu- ci/204/ rebuild
http://