Merge lp:~nicolas-doffay/unity8/filter-selector into lp:unity8
- filter-selector
- Merge into trunk
Status: | Rejected |
---|---|
Rejected by: | Michael Zanetti |
Proposed branch: | lp:~nicolas-doffay/unity8/filter-selector |
Merge into: | lp:unity8 |
Diff against target: |
564 lines (+295/-24) 9 files modified
Components/PageHeader.qml (+252/-19) Components/Stage.qml (+1/-1) Dash/Dash.qml (+3/-0) Dash/DashContent.qml (+9/-1) Dash/GenericScopeView.qml (+5/-0) Dash/ScopeListView.qml (+3/-0) Shell.qml (+3/-3) plugins/Unity/plugin.cpp (+2/-0) tests/qmltests/Components/tst_PageHeader.qml (+17/-0) |
To merge this branch: | bzr merge lp:~nicolas-doffay/unity8/filter-selector |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Michał Sawicz | Disapprove | ||
PS Jenkins bot (community) | continuous-integration | Needs Fixing | |
Michael Zanetti | Pending | ||
Review via email: mp+191145@code.launchpad.net |
Commit message
Added filters drop down.
Description of the change
PS Jenkins bot (ps-jenkins) wrote : | # |
- 274. By Nicolas d'Offay
-
Attempt to fix bad whitespace.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:274
http://
Executed test runs:
UNSTABLE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Michał Sawicz (saviq) wrote : | # |
Looking at https:/
The first option seems to always be selected, be it "All" or something else.
The filter icon is too close to the right edge.
The filter button doesn't change to orange when active.
I can expand two filters at the same time - please confirm that's the desired behaviour.
There's no way to cancel a selection - shouldn't tapping outside of the expanded selector collapse it - please confirm the desired behaviour.
The expanded height is hardcoded, so when you make the window smaller, you can't scroll the filters any more. We should really look into fixing bug #1169258 first - and use it here.
The overlay is transparent to input at the 2GU margin between the crop line and the filter panel's edge.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
There will most likely have to be another option added to the backend to get past this issue. I don't think it's a good solution changing the design of the SDK component to cater for one use case.
I think it's apparent that an SDK expansion pattern will have to be done if this branch is to land. I'll bring this up with the SDK team.
- 275. By Nicolas d'Offay
-
Fixed transparent input zone and moved drop down to the left.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:275
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 276. By Nicolas d'Offay
-
Added Orange rect to filter icon with Ubuntu shape.
- 277. By Nicolas d'Offay
-
Added black Ubuntu shape to filters.
- 278. By Nicolas d'Offay
-
Added coloured filters icon which changes with expansion of fliters.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:278
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 279. By Nicolas d'Offay
-
Fixed up clipping regions.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:279
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:279
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 280. By Nicolas d'Offay
-
Merged trunk.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:280
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 281. By Nicolas d'Offay
-
Fixed apparently bad whitespace.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:281
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:281
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Michał Sawicz (saviq) wrote : | # |
Still to-fix here:
> The first option seems to always be selected, be it "All" or something else.
> The filter button doesn't change to orange when active.
It does now, but oh it looks bad... it's misaligned and rounded on the left-hand side... Better use a PNG instead?
> I can expand two filters at the same time - please confirm that's the desired behaviour.
> There's no way to cancel a selection - shouldn't tapping outside of the expanded selector collapse it - please confirm the desired behaviour.
> The expanded height is hardcoded, so when you make the window smaller, you can't scroll the filters any more. We should really look into fixing bug #1169258 first - and use it here.
- 282. By Nicolas d'Offay
-
Added search dismal when tapping outside filter selector and disabled other filters when currently selected filter dropdown is expanded.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
I've addressed every comment aside from the PNG and the hardcoded height. I've made design aware of the icon issue and will most likely get an asset to use on Monday.
- 283. By Nicolas d'Offay
-
Removed null assignment.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:283
http://
Executed test runs:
UNSTABLE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:283
http://
Executed test runs:
UNSTABLE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:283
http://
Executed test runs:
UNSTABLE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Michał Sawicz (saviq) wrote : | # |
We've decided this will have to wait for the upcoming new scope backend.
Michał Sawicz (saviq) wrote : | # |
Aand the design changed completely.
Unmerged revisions
- 283. By Nicolas d'Offay
-
Removed null assignment.
- 282. By Nicolas d'Offay
-
Added search dismal when tapping outside filter selector and disabled other filters when currently selected filter dropdown is expanded.
- 281. By Nicolas d'Offay
-
Fixed apparently bad whitespace.
- 280. By Nicolas d'Offay
-
Merged trunk.
- 279. By Nicolas d'Offay
-
Fixed up clipping regions.
- 278. By Nicolas d'Offay
-
Added coloured filters icon which changes with expansion of fliters.
- 277. By Nicolas d'Offay
-
Added black Ubuntu shape to filters.
- 276. By Nicolas d'Offay
-
Added Orange rect to filter icon with Ubuntu shape.
- 275. By Nicolas d'Offay
-
Fixed transparent input zone and moved drop down to the left.
- 274. By Nicolas d'Offay
-
Attempt to fix bad whitespace.
Preview Diff
1 | === modified file 'Components/PageHeader.qml' |
2 | --- Components/PageHeader.qml 2013-10-18 09:12:39 +0000 |
3 | +++ Components/PageHeader.qml 2013-11-15 17:29:44 +0000 |
4 | @@ -31,7 +31,13 @@ |
5 | property bool searchEntryEnabled: false |
6 | property alias searchQuery: searchField.text |
7 | property ListModel searchHistory: SearchHistoryModel {} |
8 | + property bool filterSelectorVisible: filterSelector.state === "expanded" |
9 | property Scope scope |
10 | + property real filterSelectorHeight |
11 | + property real filterBottomSpace |
12 | + property bool launcherShown |
13 | + |
14 | + onLauncherShownChanged: if (launcherShown) filterSelector.state = "collapsed" |
15 | |
16 | height: units.gu(8.5) |
17 | implicitHeight: units.gu(8.5) |
18 | @@ -59,13 +65,16 @@ |
19 | |
20 | Flickable { |
21 | id: header |
22 | + objectName: "searchHeader" |
23 | + |
24 | anchors { |
25 | left: parent.left |
26 | right: parent.right |
27 | top: parent.top |
28 | } |
29 | + |
30 | + z: 2 |
31 | height: units.gu(6.5) |
32 | - |
33 | interactive: false |
34 | contentHeight: headerContainer.height |
35 | clip: true |
36 | @@ -78,8 +87,10 @@ |
37 | Item { |
38 | id: headerContainer |
39 | |
40 | - width: parent.width |
41 | - height: childrenRect.height |
42 | + anchors { |
43 | + left: parent.left |
44 | + right: parent.right |
45 | + } |
46 | |
47 | Item { |
48 | id: textContainer |
49 | @@ -114,7 +125,6 @@ |
50 | visible: searchEntryEnabled |
51 | |
52 | property bool narrowMode: parent.width < label.contentWidth + units.gu(50) |
53 | - |
54 | property bool active: searchField.text != "" || searchField.activeFocus |
55 | property var popover: null |
56 | |
57 | @@ -140,7 +150,8 @@ |
58 | } |
59 | |
60 | function closePopover() { |
61 | - if (searchContainer.popover) PopupUtils.close(searchContainer.popover) |
62 | + if (searchContainer.popover) |
63 | + PopupUtils.close(searchContainer.popover) |
64 | } |
65 | |
66 | onActiveFocusChanged: if (!activeFocus) { searchHistory.addQuery(searchField.text) } |
67 | @@ -148,8 +159,10 @@ |
68 | TextField { |
69 | id: searchField |
70 | |
71 | - anchors.fill: parent |
72 | - anchors.margins: units.gu(1) |
73 | + anchors { |
74 | + fill: parent |
75 | + margins: units.gu(1) |
76 | + } |
77 | |
78 | hasClearButton: false |
79 | |
80 | @@ -198,6 +211,48 @@ |
81 | } |
82 | } |
83 | |
84 | + secondaryItem: UbuntuShapeForItem { |
85 | + id: ubuntuShape |
86 | + width: units.gu(4) |
87 | + |
88 | + anchors { |
89 | + rightMargin: units.dp(-5) |
90 | + right: parent.right |
91 | + top: parent.top |
92 | + } |
93 | + |
94 | + image: Rectangle { |
95 | + width: ubuntuShape.width |
96 | + height: ubuntuShape.height |
97 | + color: filterSelector.state === "expanded" ? "#DD4814" : "white" |
98 | + } |
99 | + |
100 | + Icon { |
101 | + id: filterIcon |
102 | + objectName: "filterIcon" |
103 | + |
104 | + width: units.gu(4) |
105 | + height: units.gu(4) |
106 | + name: "filter" |
107 | + color: filterSelector.state === "expanded" ? "white" : "#AEA79F" |
108 | + |
109 | + anchors.centerIn: parent |
110 | + |
111 | + MouseArea { |
112 | + id: filterClick |
113 | + |
114 | + anchors.fill: parent |
115 | + onPressed: { |
116 | + if (filterSelector.state === "expanded") { |
117 | + filterSelector.state = "collapsed" |
118 | + } else { |
119 | + filterSelector.state = "expanded" |
120 | + } |
121 | + } |
122 | + } |
123 | + } |
124 | + } |
125 | + |
126 | onTextChanged: { |
127 | if (text != "") searchContainer.closePopover() |
128 | else if (text == "" && activeFocus) searchContainer.openPopover() |
129 | @@ -360,26 +415,204 @@ |
130 | } |
131 | } |
132 | } |
133 | - |
134 | - InverseMouseArea { |
135 | - enabled: searchField.activeFocus |
136 | - |
137 | + } |
138 | + } |
139 | + } |
140 | + |
141 | + Rectangle { |
142 | + id: filterSelector |
143 | + objectName: "filterSelector" |
144 | + |
145 | + opacity: 0.9 |
146 | + color: Theme.palette.normal.background |
147 | + clip: true |
148 | + state: "collapsed" |
149 | + z: 1 |
150 | + anchors { |
151 | + left: parent.left |
152 | + right: parent.right |
153 | + } |
154 | + states: [ |
155 | + State { |
156 | + name: "expanded" |
157 | + PropertyChanges { |
158 | + target: selectors |
159 | + opacity: 1 |
160 | + } |
161 | + PropertyChanges { |
162 | + target: filterSelector |
163 | + height: filterSelectorHeight - filterBottomSpace |
164 | + } |
165 | + }, |
166 | + State { |
167 | + name: "collapsed" |
168 | + PropertyChanges { |
169 | + target: selectors |
170 | + opacity: 0 |
171 | + } |
172 | + PropertyChanges { |
173 | + target: filterSelector |
174 | + height: 0 |
175 | + } |
176 | + } |
177 | + ] |
178 | + |
179 | + Behavior on height { |
180 | + UbuntuNumberAnimation { |
181 | + properties: "height" |
182 | + duration: UbuntuAnimation.BriskDuration |
183 | + } |
184 | + } |
185 | + |
186 | + MouseArea { |
187 | + clip: true |
188 | + |
189 | + anchors { |
190 | + fill: parent |
191 | + topMargin: units.gu(9) |
192 | + bottomMargin: units.gu(2) |
193 | + } |
194 | + |
195 | + ListView { |
196 | + id: selectors |
197 | + objectName: "selectors" |
198 | + |
199 | + property QtObject activeSelector: null |
200 | + property bool filterExpanded: false |
201 | + |
202 | + spacing: units.gu(1) |
203 | + model: scope ? scope.filters : null |
204 | + delegate: optionSelector |
205 | + anchors { |
206 | + fill: parent |
207 | + leftMargin: units.gu(2) |
208 | + rightMargin: units.gu(2) |
209 | + bottomMargin: units.gu(2) |
210 | + } |
211 | + |
212 | + Behavior on opacity { |
213 | + UbuntuNumberAnimation { |
214 | + properties: "opacity" |
215 | + duration: UbuntuAnimation.BriskDuration |
216 | + } |
217 | + } |
218 | + |
219 | + Behavior on contentY { |
220 | + UbuntuNumberAnimation { |
221 | + properties: "contentY" |
222 | + duration: UbuntuAnimation.BriskDuration |
223 | + } |
224 | + } |
225 | + } |
226 | + |
227 | + Component { |
228 | + id: optionSelector |
229 | + |
230 | + Column { |
231 | + spacing: units.gu(2) |
232 | anchors { |
233 | - top: parent.top |
234 | left: parent.left |
235 | right: parent.right |
236 | } |
237 | - |
238 | - height: searchContainer.popover ? parent.height + searchContainer.popover.contentHeight + units.gu(2) : parent.height |
239 | - |
240 | - onPressed: searchField.focus = false |
241 | - } |
242 | - } |
243 | - } |
244 | + InverseMouseArea { |
245 | + id: dismissalArea |
246 | + anchors { |
247 | + left: parent.left |
248 | + right: parent.right |
249 | + } |
250 | + height: childrenRect.height |
251 | + enabled: selector.currentlyExpanded |
252 | + |
253 | + onPressed: selector.currentlyExpanded = false; |
254 | + ListItem.ItemSelector { |
255 | + id: selector |
256 | + |
257 | + property real collapsedHeight |
258 | + property real expandedHeight |
259 | + |
260 | + text: name |
261 | + containerHeight: units.gu(38) |
262 | + model: options |
263 | + ubuntuShapeBackground: true |
264 | + delegate: ListItem.ItemSelectorDelegate { text: name } |
265 | + enabled: selectors.activeSelector === selector || !selectors.filterExpanded |
266 | + onCurrentlyExpandedChanged: { |
267 | + if (currentlyExpanded) { |
268 | + selectors.activeSelector = selector; |
269 | + selectors.filterExpanded = true; |
270 | + } else { |
271 | + selectors.filterExpanded = false; |
272 | + } |
273 | + } |
274 | + onDelegateClicked: { |
275 | + options.setActive(selectedIndex, !active); |
276 | + options.setActive(index, active); |
277 | + } |
278 | + |
279 | + onExpandedChanged: { |
280 | + collapsedHeight = height; |
281 | + } |
282 | + |
283 | + onExpansionCompleted: { |
284 | + expandedHeight = height; |
285 | + |
286 | + var delta = expandedHeight - collapsedHeight; |
287 | + |
288 | + if (!selectors.atYBeginning) { |
289 | + selectors.contentY += delta; |
290 | + } |
291 | + } |
292 | + } |
293 | + } |
294 | + ListItem.ThinDivider { |
295 | + visible: index !== selectors.count - 1 |
296 | + anchors { |
297 | + leftMargin: units.gu(-2) |
298 | + rightMargin: units.gu(-2) |
299 | + } |
300 | + } |
301 | + } |
302 | + } |
303 | + } |
304 | + |
305 | + MouseArea { |
306 | + id: bottomDividers |
307 | + |
308 | + height: units.gu(2) |
309 | + anchors { |
310 | + left: parent.left |
311 | + right: parent.right |
312 | + bottom: parent.bottom |
313 | + } |
314 | + ListItem.ThinDivider { |
315 | + anchors { |
316 | + bottom: parent.bottom |
317 | + } |
318 | + } |
319 | + ListItem.ThinDivider { |
320 | + anchors { |
321 | + top: parent.top |
322 | + } |
323 | + } |
324 | + } |
325 | + } |
326 | + |
327 | + MouseArea { |
328 | + objectName: "mouseArea" |
329 | + |
330 | + height: filterBottomSpace |
331 | + anchors { |
332 | + left: parent.left |
333 | + right: parent.right |
334 | + top: filterSelector.bottom |
335 | + } |
336 | + enabled: filterSelector.state === "expanded" |
337 | + onPressed: filterSelector.state = "collapsed" |
338 | } |
339 | |
340 | BorderImage { |
341 | id: bottomBorder |
342 | + |
343 | anchors { |
344 | top: header.bottom |
345 | left: parent.left |
346 | |
347 | === modified file 'Components/Stage.qml' |
348 | --- Components/Stage.qml 2013-10-22 15:56:37 +0000 |
349 | +++ Components/Stage.qml 2013-11-15 17:29:44 +0000 |
350 | @@ -451,7 +451,7 @@ |
351 | enabled: { |
352 | if (status == DirectionalDragArea.WaitingForTouch) { |
353 | return switchToApplicationAnimationController.completed |
354 | - && stage.applications.count > 0 && stage.rightEdgeEnabled |
355 | + && stage.applications.count > 0 || stage.rightEdgeEnabled |
356 | && !delayedHideScreenshots.running |
357 | } else { |
358 | return true |
359 | |
360 | === modified file 'Dash/Dash.qml' |
361 | --- Dash/Dash.qml 2013-10-25 11:24:50 +0000 |
362 | +++ Dash/Dash.qml 2013-11-15 17:29:44 +0000 |
363 | @@ -29,6 +29,8 @@ |
364 | property alias contentProgress: dashContent.contentProgress |
365 | property string showScopeOnLoaded: "home.scope" |
366 | property real contentScale: 1.0 |
367 | + property bool launcherShown |
368 | + property alias filterSelectorShown: dashContent.filterSelectorShown |
369 | |
370 | function setCurrentScope(scopeId, animate, reset) { |
371 | var scopeIndex = filteredScopes.findFirst(Scopes.RoleId, scopeId) |
372 | @@ -63,6 +65,7 @@ |
373 | anchors.fill: parent |
374 | model: filteredScopes |
375 | scopes: scopes |
376 | + launcherShown: dash.launcherShown |
377 | onMovementStarted: dashbar.startNavigation() |
378 | onMovementEnded: dashbar.stopNavigation() |
379 | onContentFlickStarted: dashbar.finishNavigation() |
380 | |
381 | === modified file 'Dash/DashContent.qml' |
382 | --- Dash/DashContent.qml 2013-10-21 08:15:28 +0000 |
383 | +++ Dash/DashContent.qml 2013-11-15 17:29:44 +0000 |
384 | @@ -25,6 +25,8 @@ |
385 | property var scopes: null |
386 | property real contentProgress: Math.max(0, Math.min(dashContentList.contentX / (dashContentList.contentWidth - dashContentList.width), units.dp(1))) |
387 | property alias currentIndex: dashContentList.currentIndex |
388 | + property bool launcherShown |
389 | + property bool filterSelectorShown |
390 | |
391 | property ScopeDelegateMapper scopeMapper : ScopeDelegateMapper {} |
392 | |
393 | @@ -83,7 +85,7 @@ |
394 | id: dashContentList |
395 | objectName: "dashContentList" |
396 | |
397 | - interactive: dashContent.scopes.loaded && !currentItem.previewShown && !currentItem.moving |
398 | + interactive: dashContent.scopes.loaded && !currentItem.previewShown && !currentItem.moving && !filterSelectorShown |
399 | |
400 | anchors.fill: parent |
401 | model: dashContent.model |
402 | @@ -119,6 +121,8 @@ |
403 | readonly property bool previewShown: item ? item.previewShown : false |
404 | readonly property bool moving: item ? item.moving : false |
405 | |
406 | + property bool launcherShown: dashContent.launcherShown |
407 | + |
408 | // these are needed for autopilot tests |
409 | readonly property string scopeId: scope.id |
410 | readonly property bool isCurrent: ListView.isCurrentItem |
411 | @@ -132,10 +136,14 @@ |
412 | dashContent.positionedAtBeginning.connect(item.positionedAtBeginning) |
413 | dashContent.scopeLoaded(item.scope.id) |
414 | } |
415 | + |
416 | + onLauncherShownChanged: item !== null? item.launcherShown = launcherShown : false |
417 | + |
418 | Connections { |
419 | target: item |
420 | ignoreUnknownSignals: true |
421 | onEndReached: contentEndReached() |
422 | + onFilterSelectorVisibleChanged: filterSelectorShown = item.filterSelectorVisible |
423 | onPreviewShownChanged: { |
424 | if (item.previewShown) { |
425 | dashContent.previewShown() |
426 | |
427 | === modified file 'Dash/GenericScopeView.qml' |
428 | --- Dash/GenericScopeView.qml 2013-11-08 03:10:09 +0000 |
429 | +++ Dash/GenericScopeView.qml 2013-11-15 17:29:44 +0000 |
430 | @@ -22,6 +22,8 @@ |
431 | ScopeView { |
432 | id: scopeView |
433 | readonly property alias previewShown: previewListView.onScreen |
434 | + property bool launcherShown |
435 | + property alias filterSelectorVisible: pageHeader.filterSelectorVisible |
436 | property bool enableHeightBehaviorOnNextCreation: false |
437 | |
438 | moving: categoryView.moving |
439 | @@ -248,6 +250,9 @@ |
440 | text: scopeView.scope.name |
441 | searchEntryEnabled: true |
442 | scope: scopeView.scope |
443 | + filterSelectorHeight: scopeView.height |
444 | + filterBottomSpace: units.gu(8) |
445 | + launcherShown: scopeView.launcherShown |
446 | } |
447 | } |
448 | |
449 | |
450 | === modified file 'Dash/ScopeListView.qml' |
451 | --- Dash/ScopeListView.qml 2013-10-11 11:41:27 +0000 |
452 | +++ Dash/ScopeListView.qml 2013-11-15 17:29:44 +0000 |
453 | @@ -18,8 +18,11 @@ |
454 | import ListViewWithPageHeader 0.1 |
455 | |
456 | ListViewWithPageHeader { |
457 | + id: listView |
458 | + |
459 | maximumFlickVelocity: height * 10 |
460 | flickDeceleration: height * 2 |
461 | + interactive: !pageHeader.filterSelectorVisible |
462 | |
463 | Connections { |
464 | target: greeter |
465 | |
466 | === modified file 'Shell.qml' |
467 | --- Shell.qml 2013-11-08 08:48:11 +0000 |
468 | +++ Shell.qml 2013-11-15 17:29:44 +0000 |
469 | @@ -199,6 +199,7 @@ |
470 | hides: [stages, launcher, panel.indicators] |
471 | shown: disappearingAnimationProgress !== 1.0 |
472 | enabled: disappearingAnimationProgress === 0.0 && edgeDemo.dashEnabled |
473 | + launcherShown: launcher.shown |
474 | // FIXME: unfocus all applications when going back to the dash |
475 | onEnabledChanged: { |
476 | if (enabled) { |
477 | @@ -298,8 +299,7 @@ |
478 | fullyShown: stages.fullyShown |
479 | fullyHidden: stages.fullyHidden |
480 | shouldUseScreenshots: !fullyShown |
481 | - rightEdgeEnabled: !sideStage.enabled |
482 | - |
483 | + rightEdgeEnabled: !sideStage.enabled && !dash.filterSelectorShown |
484 | applicationManager: shell.applicationManager |
485 | rightEdgeDraggingAreaWidth: shell.edgeSize |
486 | normalApplicationY: shell.panelHeight |
487 | @@ -389,7 +389,7 @@ |
488 | |
489 | width: shell.edgeSize |
490 | direction: Direction.Leftwards |
491 | - enabled: greeter.showProgress == 0 && edgeDemo.dashEnabled |
492 | + enabled: greeter.showProgress == 0 && edgeDemo.dashEnabled && !dash.filterSelectorShown |
493 | property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0 |
494 | |
495 | maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7 |
496 | |
497 | === modified file 'plugins/Unity/plugin.cpp' |
498 | --- plugins/Unity/plugin.cpp 2013-09-24 12:52:55 +0000 |
499 | +++ plugins/Unity/plugin.cpp 2013-11-15 17:29:44 +0000 |
500 | @@ -25,6 +25,7 @@ |
501 | #include "plugin.h" |
502 | |
503 | // local |
504 | +#include "genericoptionsmodel.h" |
505 | #include "preview.h" |
506 | #include "previewaction.h" |
507 | #include "previewinfohint.h" |
508 | @@ -50,6 +51,7 @@ |
509 | qmlRegisterUncreatableType<PreviewAction>(uri, 0, 1, "PreviewAction", "Can't create PreviewAction object in QML."); |
510 | qmlRegisterUncreatableType<PreviewInfoHint>(uri, 0, 1, "PreviewInfoHint", "Can't create PreviewInfoHint object in QML."); |
511 | qmlRegisterUncreatableType<SocialPreviewComment>(uri, 0, 1, "SocialPreviewComment", "Can't create SocialPreviewComment object in QML."); |
512 | + qmlRegisterUncreatableType<Filters>(uri, 0, 1, "Filters", "Can't create filters object in QML."); |
513 | qmlRegisterUncreatableType<GenericOptionsModel>(uri, 0, 1, "GenericOptionsModel", "Can't create options model in QML."); |
514 | qmlRegisterUncreatableType<Result>(uri, 0, 1, "Result", "Can't create result object in QML."); |
515 | qmlRegisterType<Scope>(uri, 0, 1, "Scope"); |
516 | |
517 | === modified file 'tests/qmltests/Components/tst_PageHeader.qml' |
518 | --- tests/qmltests/Components/tst_PageHeader.qml 2013-10-07 08:24:34 +0000 |
519 | +++ tests/qmltests/Components/tst_PageHeader.qml 2013-11-15 17:29:44 +0000 |
520 | @@ -21,6 +21,7 @@ |
521 | import Ubuntu.Components 0.1 |
522 | import Unity 0.1 |
523 | import Unity.Test 0.1 as UT |
524 | +import Unity 0.1 |
525 | |
526 | Item { |
527 | width: units.gu(110) |
528 | @@ -138,6 +139,20 @@ |
529 | compare(pageHeader.searchHistory.get(0).query, "humppa4") |
530 | } |
531 | |
532 | + function test_filter_overlay() { |
533 | + var filterIcon = findChild(pageHeader, "filterIcon"); |
534 | + var filterSelector = findChild(pageHeader, "filterSelector"); |
535 | + var mouseArea = findChild(pageHeader, "mouseArea"); |
536 | + var searchHeader = findChild(pageHeader, "searchHeader"); |
537 | + |
538 | + pageHeader.triggerSearch(); |
539 | + tryCompare(searchHeader, "contentY", 0); |
540 | + |
541 | + mouseClick(filterIcon, 2, 2); |
542 | + compare(filterSelector.state, "expanded", "Filter selector did not expand."); |
543 | + } |
544 | + |
545 | + |
546 | function test_search_indicator() { |
547 | var searchIndicator = findChild(pageHeader, "searchIndicator") |
548 | var primaryImage = findChild(pageHeader, "primaryImage") |
549 | @@ -158,6 +173,7 @@ |
550 | function cleanup() { |
551 | scopeMock.searchInProgress = false |
552 | } |
553 | + |
554 | } |
555 | |
556 | Column { |
557 | @@ -175,6 +191,7 @@ |
558 | |
559 | searchEntryEnabled: true |
560 | text: "%^$%^%^&%^&%^$%GHR%" |
561 | + filterSelectorHeight: units.gu(30) |
562 | } |
563 | |
564 | Row { |
FAILED: Continuous integration, rev:273 jenkins. qa.ubuntu. com/job/ unity8- ci/1409/ jenkins. qa.ubuntu. com/job/ generic- mediumtests- saucy/5013/ console jenkins. qa.ubuntu. com/job/ generic- mediumtests- touch/2935/ console jenkins. qa.ubuntu. com/job/ unity-phablet- qmluitests- saucy/2276/ console jenkins. qa.ubuntu. com/job/ unity8- saucy-amd64- ci/432/ console jenkins. qa.ubuntu. com/job/ unity8- saucy-armhf- ci/1409/ console jenkins. qa.ubuntu. com/job/ unity8- saucy-i386- ci/1408/ console jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- saucy-amd64/ 888/console jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- saucy-armhf/ 2937/console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: 10.97.0. 26:8080/ job/unity8- ci/1409/ rebuild
http://