Merge lp:~mzanetti/unity8/spread-visual-updates into lp:unity8
- spread-visual-updates
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Lukáš Tinkl |
Approved revision: | 2086 |
Merged at revision: | 2233 |
Proposed branch: | lp:~mzanetti/unity8/spread-visual-updates |
Merge into: | lp:unity8 |
Prerequisite: | lp:~mzanetti/unity8/launcher-sizing |
Diff against target: |
317 lines (+98/-44) 6 files modified
qml/Components/EdgeBarrier.qml (+1/-1) qml/Launcher/Launcher.qml (+2/-2) qml/Stages/DesktopSpread.qml (+59/-16) qml/Stages/DesktopSpreadDelegate.qml (+15/-1) qml/Stages/DesktopStage.qml (+19/-23) tests/qmltests/Stages/tst_DesktopStage.qml (+2/-1) |
To merge this branch: | bzr merge lp:~mzanetti/unity8/spread-visual-updates |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Lukáš Tinkl (community) | Approve | ||
PS Jenkins bot (community) | continuous-integration | Needs Fixing | |
Unity8 CI Bot | continuous-integration | Approve | |
Review via email: mp+287171@code.launchpad.net |
This proposal supersedes a proposal from 2015-12-09.
Commit message
Visual updates for the windowed spread
Description of the change
* 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?
n/a
* If you changed the UI, has there been a design review?
yes, with Vesa at the Austin Sprint
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 | # |
FAILED: Continuous integration, rev:2082
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
Text conflict in qml/Stages/
1 conflicts encountered.
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
> Text conflict in qml/Stages/
> 1 conflicts encountered.
merged
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2083
http://
Executed test runs:
UNSTABLE: http://
FAILURE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2082
https:/
Executed test runs:
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2083
https:/
Executed test runs:
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2083
https:/
Executed test runs:
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2086
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:2086
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Lukáš Tinkl (lukas-kde) wrote : | # |
* Did you perform an exploratory manual test run of the code change and any related functionality?
Yes
* Did CI run pass? If not, please explain why.
Yes
* Did you make sure that the branch does not contain spurious tags?
Yes
Preview Diff
1 | === modified file 'qml/Components/EdgeBarrier.qml' |
2 | --- qml/Components/EdgeBarrier.qml 2015-11-24 17:44:18 +0000 |
3 | +++ qml/Components/EdgeBarrier.qml 2016-02-25 13:03:25 +0000 |
4 | @@ -105,7 +105,7 @@ |
5 | }, |
6 | Transition { |
7 | from: "resisting"; to: "passed" |
8 | - UbuntuNumberAnimation { target: materialContainer; property: "opacity" } |
9 | + UbuntuNumberAnimation { duration: UbuntuAnimation.BriskDuration; target: materialContainer; property: "opacity" } |
10 | } |
11 | ] |
12 | } |
13 | |
14 | === modified file 'qml/Launcher/Launcher.qml' |
15 | --- qml/Launcher/Launcher.qml 2016-02-25 13:03:24 +0000 |
16 | +++ qml/Launcher/Launcher.qml 2016-02-25 13:03:25 +0000 |
17 | @@ -328,8 +328,8 @@ |
18 | rotation: -90 |
19 | anchors.centerIn: parent |
20 | gradient: Gradient { |
21 | - GradientStop { position: 0.0; color: panel.color} |
22 | - GradientStop { position: 1.0; color: Qt.rgba(panel.r,panel.g,panel.b,0)} |
23 | + GradientStop { position: 0.0; color: Qt.rgba(panel.color.r, panel.color.g, panel.color.b, .5)} |
24 | + GradientStop { position: 1.0; color: Qt.rgba(panel.color.r,panel.color.g,panel.color.b,0)} |
25 | } |
26 | } |
27 | } |
28 | |
29 | === modified file 'qml/Stages/DesktopSpread.qml' |
30 | --- qml/Stages/DesktopSpread.qml 2015-11-24 17:44:18 +0000 |
31 | +++ qml/Stages/DesktopSpread.qml 2016-02-25 13:03:25 +0000 |
32 | @@ -19,6 +19,7 @@ |
33 | import Ubuntu.Components 1.3 |
34 | import Ubuntu.Gestures 0.1 |
35 | import Unity.Application 0.1 |
36 | +import "../Components" |
37 | |
38 | FocusScope { |
39 | id: root |
40 | @@ -26,8 +27,11 @@ |
41 | property bool altTabPressed: false |
42 | property Item workspace: null |
43 | |
44 | + readonly property alias ready: blurLayer.ready |
45 | readonly property alias highlightedIndex: spreadRepeater.highlightedIndex |
46 | |
47 | + signal playFocusAnimation(int index) |
48 | + |
49 | function show() { |
50 | spreadContainer.animateIn = true; |
51 | root.state = "altTab"; |
52 | @@ -91,6 +95,9 @@ |
53 | |
54 | function focusSelected() { |
55 | if (spreadRepeater.highlightedIndex != -1) { |
56 | + if (spreadContainer.visible) { |
57 | + root.playFocusAnimation(spreadRepeater.highlightedIndex) |
58 | + } |
59 | var application = ApplicationManager.get(spreadRepeater.highlightedIndex); |
60 | ApplicationManager.requestFocusApplication(application.appId); |
61 | } |
62 | @@ -101,6 +108,31 @@ |
63 | state = "" |
64 | } |
65 | |
66 | + BlurLayer { |
67 | + id: blurLayer |
68 | + anchors.fill: parent |
69 | + source: root.workspace |
70 | + visible: false |
71 | + } |
72 | + |
73 | + Rectangle { |
74 | + id: spreadBackground |
75 | + anchors.fill: parent |
76 | + color: "#B2000000" |
77 | + visible: false |
78 | + opacity: visible ? 1 : 0 |
79 | + Behavior on opacity { |
80 | + UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } |
81 | + } |
82 | + } |
83 | + |
84 | + MouseArea { |
85 | + id: eventEater |
86 | + anchors.fill: parent |
87 | + visible: spreadBackground.visible |
88 | + enabled: visible |
89 | + } |
90 | + |
91 | Item { |
92 | id: spreadContainer |
93 | objectName: "spreadContainer" |
94 | @@ -226,13 +258,20 @@ |
95 | Transition { |
96 | from: "" |
97 | to: "altTab" |
98 | - PropertyAction { target: spreadDelegate; properties: "y,height,width,angle,z,itemScale,itemScaleOriginY,visible" } |
99 | - PropertyAction { target: clippedSpreadDelegate; properties: "anchors.topMargin" } |
100 | - PropertyAnimation { |
101 | - target: spreadDelegate; properties: "x" |
102 | - from: root.width |
103 | - duration: spreadContainer.animateIn ? UbuntuAnimation.FastDuration :0 |
104 | - easing: UbuntuAnimation.StandardEasing |
105 | + SequentialAnimation { |
106 | + ParallelAnimation { |
107 | + PropertyAction { target: spreadDelegate; properties: "y,height,width,angle,z,itemScale,itemScaleOriginY,visible" } |
108 | + PropertyAction { target: clippedSpreadDelegate; properties: "anchors.topMargin" } |
109 | + PropertyAnimation { |
110 | + target: spreadDelegate; properties: "x" |
111 | + from: root.width |
112 | + duration: spreadContainer.animateIn ? UbuntuAnimation.FastDuration :0 |
113 | + easing: UbuntuAnimation.StandardEasing |
114 | + } |
115 | + UbuntuNumberAnimation { target: clippedSpreadDelegate; property: "shadowOpacity"; from: 0; to: spreadMaths.shadowOpacity; duration: spreadContainer.animateIn ? UbuntuAnimation.FastDuration : 0 } |
116 | + UbuntuNumberAnimation { target: tileInfo; property: "opacity"; from: 0; to: spreadMaths.tileInfoOpacity; duration: spreadContainer.animateIn ? UbuntuAnimation.FastDuration : 0 } |
117 | + } |
118 | + PropertyAction { target: spreadSelectArea; property: "enabled" } |
119 | } |
120 | } |
121 | ] |
122 | @@ -262,12 +301,20 @@ |
123 | anchors { left: parent.left; top: parent.top; right: parent.right } |
124 | spacing: units.gu(1) |
125 | |
126 | - UbuntuShape { |
127 | + UbuntuShapeForItem { |
128 | Layout.preferredHeight: Math.min(units.gu(6), root.height * .05) |
129 | Layout.preferredWidth: height * 8 / 7.6 |
130 | image: Image { |
131 | anchors.fill: parent |
132 | source: model.icon |
133 | + Rectangle { |
134 | + anchors.fill: parent |
135 | + color: "black" |
136 | + opacity: clippedSpreadDelegate.highlightShown ? 0 : .1 |
137 | + Behavior on opacity { |
138 | + UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } |
139 | + } |
140 | + } |
141 | } |
142 | } |
143 | Label { |
144 | @@ -420,7 +467,7 @@ |
145 | |
146 | property var source: ShaderEffectSource { |
147 | id: shaderEffectSource |
148 | - sourceItem: appContainer |
149 | + sourceItem: root.workspace |
150 | } |
151 | |
152 | fragmentShader: " |
153 | @@ -494,20 +541,17 @@ |
154 | from: "*" |
155 | to: "altTab" |
156 | SequentialAnimation { |
157 | - PropertyAction { target: hoverMouseArea; property: "progressiveScrollingEnabled"; value: false } |
158 | PropertyAction { target: spreadRepeater; property: "highlightedIndex"; value: Math.min(ApplicationManager.count - 1, 1) } |
159 | - PauseAnimation { duration: 140 } |
160 | + PauseAnimation { duration: spreadContainer.animateIn ? 0 : 140 } |
161 | PropertyAction { target: workspaceSelector; property: "visible" } |
162 | PropertyAction { target: spreadContainer; property: "visible" } |
163 | ParallelAnimation { |
164 | - UbuntuNumberAnimation { |
165 | - target: blurLayer; properties: "saturation,blurRadius"; |
166 | - duration: spreadContainer.animateIn ? UbuntuAnimation.FastDuration : 0 |
167 | - } |
168 | + UbuntuNumberAnimation { target: blurLayer; properties: "saturation,blurRadius"; duration: UbuntuAnimation.SnapDuration } |
169 | PropertyAction { target: spreadFlickable; property: "visible" } |
170 | PropertyAction { targets: [currentSelectedLabel,spreadBackground]; property: "visible" } |
171 | PropertyAction { target: spreadFlickable; property: "contentX"; value: 0 } |
172 | } |
173 | + PropertyAction { target: hoverMouseArea; properties: "enabled,progressiveScrollingEnabled"; value: false } |
174 | } |
175 | }, |
176 | Transition { |
177 | @@ -518,6 +562,5 @@ |
178 | PropertyAction { target: spreadRepeater; property: "highlightedIndex"; value: -1 } |
179 | PropertyAction { target: spreadContainer; property: "animateIn"; value: false } |
180 | } |
181 | - |
182 | ] |
183 | } |
184 | |
185 | === modified file 'qml/Stages/DesktopSpreadDelegate.qml' |
186 | --- qml/Stages/DesktopSpreadDelegate.qml 2015-12-01 12:17:24 +0000 |
187 | +++ qml/Stages/DesktopSpreadDelegate.qml 2016-02-25 13:03:25 +0000 |
188 | @@ -56,6 +56,11 @@ |
189 | } |
190 | ] |
191 | |
192 | + scale: highlightShown ? 1.025 : 1 |
193 | + Behavior on scale { |
194 | + UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } |
195 | + } |
196 | + |
197 | BorderImage { |
198 | anchors { |
199 | fill: root |
200 | @@ -70,7 +75,7 @@ |
201 | anchors.fill: parent |
202 | anchors.margins: -units.gu(1) |
203 | color: "white" |
204 | - opacity: highlightShown ? 0.15 : 0 |
205 | + opacity: highlightShown ? 0.55 : 0 |
206 | antialiasing: true |
207 | } |
208 | |
209 | @@ -108,4 +113,13 @@ |
210 | ] |
211 | } |
212 | } |
213 | + |
214 | + Rectangle { |
215 | + anchors.fill: parent |
216 | + color: "black" |
217 | + opacity: root.highlightShown ? 0 : .1 |
218 | + Behavior on opacity { |
219 | + UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } |
220 | + } |
221 | + } |
222 | } |
223 | |
224 | === modified file 'qml/Stages/DesktopStage.qml' |
225 | --- qml/Stages/DesktopStage.qml 2016-02-25 13:03:24 +0000 |
226 | +++ qml/Stages/DesktopStage.qml 2016-02-25 13:03:25 +0000 |
227 | @@ -350,6 +350,19 @@ |
228 | ApplicationManager.focusApplication(appId); |
229 | } |
230 | |
231 | + function playFocusAnimation() { |
232 | + focusAnimation.start() |
233 | + } |
234 | + |
235 | + UbuntuNumberAnimation { |
236 | + id: focusAnimation |
237 | + target: appDelegate |
238 | + property: "scale" |
239 | + from: 0.98 |
240 | + to: 1 |
241 | + duration: UbuntuAnimation.SnapDuration |
242 | + } |
243 | + |
244 | states: [ |
245 | State { |
246 | name: "fullscreen"; when: decoratedWindow.fullscreen |
247 | @@ -440,7 +453,7 @@ |
248 | target: appDelegate |
249 | property: "z" |
250 | value: ApplicationManager.count + 1 |
251 | - when: index == spread.highlightedIndex && blurLayer.ready |
252 | + when: index == spread.highlightedIndex && spread.ready |
253 | } |
254 | |
255 | WindowResizeArea { |
256 | @@ -476,27 +489,6 @@ |
257 | } |
258 | } |
259 | |
260 | - BlurLayer { |
261 | - id: blurLayer |
262 | - anchors.fill: appContainer |
263 | - source: appContainer |
264 | - visible: false |
265 | - } |
266 | - |
267 | - Rectangle { |
268 | - id: spreadBackground |
269 | - anchors.fill: parent |
270 | - color: "#55000000" |
271 | - visible: false |
272 | - } |
273 | - |
274 | - MouseArea { |
275 | - id: eventEater |
276 | - anchors.fill: parent |
277 | - visible: spreadBackground.visible |
278 | - enabled: visible |
279 | - } |
280 | - |
281 | EdgeBarrier { |
282 | id: edgeBarrier |
283 | |
284 | @@ -512,7 +504,7 @@ |
285 | rotation: 90 |
286 | anchors.centerIn: parent |
287 | gradient: Gradient { |
288 | - GradientStop { position: 0.0; color: Qt.rgba(0.16,0.16,0.16,0.7)} |
289 | + GradientStop { position: 0.0; color: Qt.rgba(0.16,0.16,0.16,0.5)} |
290 | GradientStop { position: 1.0; color: Qt.rgba(0.16,0.16,0.16,0)} |
291 | } |
292 | } |
293 | @@ -534,5 +526,9 @@ |
294 | workspace: appContainer |
295 | focus: state == "altTab" |
296 | altTabPressed: root.altTabPressed |
297 | + |
298 | + onPlayFocusAnimation: { |
299 | + appRepeater.itemAt(index).playFocusAnimation(); |
300 | + } |
301 | } |
302 | } |
303 | |
304 | === modified file 'tests/qmltests/Stages/tst_DesktopStage.qml' |
305 | --- tests/qmltests/Stages/tst_DesktopStage.qml 2016-02-03 14:00:47 +0000 |
306 | +++ tests/qmltests/Stages/tst_DesktopStage.qml 2016-02-25 13:03:25 +0000 |
307 | @@ -65,8 +65,9 @@ |
308 | property bool itemDestroyed: false |
309 | sourceComponent: Component { |
310 | DesktopStage { |
311 | - color: "darkblue" |
312 | + color: "white" |
313 | anchors.fill: parent |
314 | + background: "../../../qml/graphics/tablet_background.jpg" |
315 | |
316 | Component.onCompleted: { |
317 | edgeBarrierControls.target = testCase.findChild(this, "edgeBarrierController"); |
FAILED: Continuous integration, rev:2081 jenkins. qa.ubuntu. com/job/ unity8- ci/6902/ jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- vivid-touch/ 5672 jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- xenial- touch/317/ console jenkins. qa.ubuntu. com/job/ unity-phablet- qmluitests- vivid/1613 jenkins. qa.ubuntu. com/job/ unity8- qmluitest- xenial- amd64/316 jenkins. qa.ubuntu. com/job/ unity8- vivid-amd64- ci/1508 jenkins. qa.ubuntu. com/job/ unity8- vivid-i386- ci/1508 jenkins. qa.ubuntu. com/job/ unity8- xenial- amd64-ci/ 315 jenkins. qa.ubuntu. com/job/ unity8- xenial- i386-ci/ 314 jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- runner- vivid-touch/ 4408 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- vivid-armhf/ 5686 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- vivid-armhf/ 5686/artifact/ work/output/ *zip*/output. zip s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 25894 jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- runner- xenial- touch/120/ console jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- xenial- armhf/316 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- xenial- armhf/316/ artifact/ work/output/ *zip*/output. zip s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 25896
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/unity8- ci/6902/ rebuild
http://