Merge lp:~nicolas-doffay/unity8/filter-selector into lp:unity8
- filter-selector
- Merge into trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~nicolas-doffay/unity8/filter-selector |
Merge into: | lp:unity8 |
Diff against target: |
540 lines (+269/-24) 9 files modified
Components/PageHeader.qml (+224/-19) Components/Stage.qml (+1/-1) Dash/Dash.qml (+3/-0) Dash/DashContent.qml (+9/-1) Dash/GenericScopeView.qml (+6/-0) Dash/ScopeListView.qml (+4/-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 | Needs Fixing | ||
PS Jenkins bot (community) | continuous-integration | Needs Fixing | |
Michael Zanetti (community) | Needs Fixing | ||
Review via email: mp+183503@code.launchpad.net |
Commit message
Added filters to PageHeader.
Added indicator to search bar.
Dismiss keyboard upon outside tap.
Reliant upon: ~nicolas-
Description of the change
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Michael Zanetti (mzanetti) wrote : | # |
Before I do the code review, please fix/clarify those things:
* The search lens icon is too big and shouldn't actually be that search lens but the filter icon.
* The filter icon should be inside the text field, as secondaryItem.
* Should the bottomDividers be a drag handle? I would assume you can drag this up again to dismiss
* tapping in the empty space at the bottom should dismiss it
* when filters opened, swiping the dash should not work until dismissed.
* the animation feels weird. It covers everything except the searchfield. Please check with design.
* it breaks the narrowMode decision. Try opening the search field and drag it smaller/bigger and compare that to trunk
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:225
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 229. By Nicolas d'Offay
-
Changed signal to onClicked.
- 230. By Nicolas d'Offay
-
Merged trunk.
- 231. By Nicolas d'Offay
-
Fixed swiping of dash while filters are visible.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:231
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 232. By Nicolas d'Offay
-
Moved filter button into search field.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:232
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Design is fine with it appearing beneath the search bar.
A drag handle isn't required, however it should be dismissed when selecting the background.
Still not quite sure how the narrow mode is broken. Mind making a video addressing this issue? I've tried experimenting.
Michael Zanetti (mzanetti) wrote : | # |
> Still not quite sure how the narrow mode is broken. Mind making a video
> addressing this issue? I've tried experimenting.
http://
Ignore the yellow bar at the bottom. I was just debugging some stuff in the first branch I could find on my hard drive.
- 233. By Nicolas d'Offay
-
Added inverse mouse area to dismiss filter selector.
- 234. By Nicolas d'Offay
-
Moved header z ordering up.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:233
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:234
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 235. By Nicolas d'Offay
-
Set filter height based on scopeView.
- 236. By Nicolas d'Offay
-
Removed unused narrowMode variable.
- 237. By Nicolas d'Offay
-
Changed visible to enabled in InverseMouseArea.
- 238. By Nicolas d'Offay
-
Merged trunk.
- 239. By Nicolas d'Offay
-
Reverted narrowMode in PageHeader.
- 240. By Nicolas d'Offay
-
Fixed whitespace in CMakeLists.
Michael Zanetti (mzanetti) wrote : | # |
narrowMode is still broken: http://
Why did you move the property narrowMode anyways? I don't see why that change is needed.
Michael Zanetti (mzanetti) wrote : | # |
* I can still swipe the dash left/right when the overlay is open.
Michael Zanetti (mzanetti) wrote : | # |
There is some weirdness in the OptionSelector (not sure if it's related to this branch or to the OptionSelector in the SDK):
-> open the search field
-> click on the filter icon to open the overlay
-> click on categories to expand the optionselector
-> select the any entry but the first one
-> open the optionselector again => you will notice that after expanding it flicks up a little bit
This small movement seems to break the state:
* If you start dragging around now, you'll notice a weird jump of the whole list
* If you just collapse it again by clicking at the same item you had selected before, you'll notice that the item will be left half outside the view or even disappear completely (depending on which item you choose)
Michael Zanetti (mzanetti) wrote : | # |
200 + visible: index !== selectors.count - 1 ? true : false
You don't really need the "? true : false" here...
Why is the change to ScopeListView.qml needed at all? I can't see any reason for this.
Can we have tests for this please?
- 241. By Nicolas d'Offay
-
Removed old useless code.
- 242. By Nicolas d'Offay
-
Reverted narrowMode.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Unfortunately the issue with the jumping on selection is due to code in the Ubuntu UI Toolkit. Will go ahead and make the fixes there.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Fix for the scrolling issues lies here:
Nicolas d'Offay (nicolas-doffay) wrote : | # |
It appears swiping issue with the dash was actually related to the filters "interactive" property not being set correctly. This is fixed on my machine, but would like a second opinion.
Tests are next on the agenda to ensure that the filters activate correctly. Feel free to suggest other potential tests, but I feel that the most important testable feature is that the backend works correctly with the UI.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:242
http://
Executed test runs:
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 243. By Nicolas d'Offay
-
Added broken test.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:243
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
UNSTABLE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 244. By Nicolas d'Offay
-
Added wait to test expansion of filters drop down.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Unfortunately with regards to testing the OptionSelectors in the PageHeader it becomes slightly complicated unless a mock Scope is passed which I doubt is feasible. The custom delegates present which are coded specifically for the Scopes mean that setting models on these selectors from within the PageHeader would require exposing properties I feel should remain private in the PageHeader.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:244
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
None: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
Michael Zanetti (mzanetti) wrote : | # |
370 + wait(100);
there is a no-wait() policy in tests for my reviews ;) Use tryCompare()
Michael Zanetti (mzanetti) wrote : | # |
The icon is not used as secondaryItem in the TextField. This way, the text field has no idea where the input field should actually end and we things like this:
http://
===
128 + states: [ State {
138 + }, State {
line break missing
===
18 + property real scopeViewHeight
136 + height: scopeViewHeight - units.gu(8)
It's not certain that the PageHeader will only be used inside a ScopeView forever. Could be anything. Better name it filterSelectorH
===
172 + boundsBehavior: Flickable.
I don't think we're using StopAtBounds anywhere else. Feels different. Did you set this intentionally or is this just supposed to disable flicking when it is not required? In that case, try setting "interactive: contentHeight > height"
===
210 + text: i18n.tr(name)
I don't think this works... well, maybe... but still not the way to go. the translation should happen where the real string is defined, not around a variable that can change.
===
211 + containerHeight: units.gu(38)
can you explain why 38? Seems unflexible to me. shouldn't this be relative to the total available height?
===
259 + enabled: filterSelector.
don't really need the " ? true : false"
===
311 +import Ubuntu.
unused import
===
316 + anchors.fill: parent
This is a component. size should be set where this is used, not where it is defined. drop this line again.
===
314 + id: listView
...
321 + Connections {
322 + target: listView.
323 + onFilterSelecto
324 + }
Is this really needed? seems to me you could just do:
interactive: !pageHeader.
===
370 + wait(100);
as noted before, this should be replaced by a tryCompare() to wait for the according things to happen
===
373 + compare(
...
376 + compare(
This test is not really good. While it tests if internally the state really changes, it doesn't really test that the user actually can see that. It would be better to grab the Rectangle for the overlay, and tryCompare() that it eventually reaches the size which you have set in scopeViewHeight (or filterSelectorH
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Valid points, thanks for the in depth review! Regarding some of the topics:
===
211 + containerHeight: units.gu(38)
can you explain why 38? Seems unflexible to me. shouldn't this be relative to the total available height?
* At the request of design, they specifically requested it be 38 grid units and not relative.
===
370 + wait(100);
as noted before, this should be replaced by a tryCompare() to wait for the according things to happen
* This was why I used wait: https:/
===
373 + compare(
...
376 + compare(
This test is not really good. While it tests if internally the state really changes, it doesn't really test that the user actually can see that. It would be better to grab the Rectangle for the overlay, and tryCompare() that it eventually reaches the size which you have set in scopeViewHeight (or filterSelectorH
* Fair enough, but as mentioned before setting custom models on this specialised delegate requires a lot more variables to be exposed as aliases (including in the SDK) which I feel should be kept private. This is the reason I'm loathe to write more tests for the individual selectors.
Michael Zanetti (mzanetti) wrote : | # |
> Valid points, thanks for the in depth review! Regarding some of the topics:
>
> ===
> 211 + containerHeight: units.gu(38)
> can you explain why 38? Seems unflexible to me. shouldn't this be relative to
> the total available height?
>
> * At the request of design, they specifically requested it be 38 grid units
> and not relative.
Ok. fine with me then. But I have to be skeptical when seeing such inflexible values.
> ===
> 370 + wait(100);
>
> as noted before, this should be replaced by a tryCompare() to wait for the
> according things to happen
>
> * This was why I used wait: https:/
you need to use tryCompare to check if the TextField has become visible or if it has the activeFocus, or both... but just checking the state is not enough as that will change before the animation finishes (actually before it even starts)
>
> ===
>
> 373 + compare(
> expand.");
> ...
> 376 + compare(
> collapse");
>
> This test is not really good. While it tests if internally the state really
> changes, it doesn't really test that the user actually can see that. It would
> be better to grab the Rectangle for the overlay, and tryCompare() that it
> eventually reaches the size which you have set in scopeViewHeight (or
> filterSelectorH
> the selectors actually become visible and hide again when collapsing.
>
> * Fair enough, but as mentioned before setting custom models on this
> specialised delegate requires a lot more variables to be exposed as aliases
> (including in the SDK) which I feel should be kept private. This is the reason
> I'm loathe to write more tests for the individual selectors.
No. that's ok... no need to test the optionselector itself in here (assuming they are in the SDK already - or about to land)... but please fix the opening of the overlay in a way I described above.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
"you need to use tryCompare to check if the TextField has become visible or if it has the activeFocus, or both... but just checking the state is not enough as that will change before the animation finishes (actually before it even starts)"
The issue with this is regardless of what variable I test with tryCompare I always get the same error when running the test:
https:/
No idea what's causing this.
- 245. By Nicolas d'Offay
-
Worked through MP comments and applied relevant changes.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:245
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 246. By Nicolas d'Offay
-
Removed anchor.fill from ListView.
- 247. By Nicolas d'Offay
-
Merged trunk.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:247
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
- 248. By Nicolas d'Offay
-
Fixed MP bugs.
- 249. By Nicolas d'Offay
-
Renamed variable in test.
MichaĆ Sawicz (saviq) wrote : | # |
Functional issues (some of those might not be bugs or directly related to this MR):
* the filter icon in PageHeader is stretched
* the selectors scroll half-item up when opening (but only when a second or further option is selected - is this really as designed?)
* selecting filters doesn't actually apply them on the result set
* as per the expansion pattern design, the selectors should expand and the view should scroll to show as much content as possible (up to almost the full height) - currently you have to scroll the view manually to see all of the options in the second or further selector
* there is no overshoot in the option selector - no feedback when you reach beginning or end of the option list
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Functional issues (some of those might not be bugs or directly related to this MR):
* the filter icon in PageHeader is stretched
* the selectors scroll half-item up when opening (but only when a second or further option is selected - is this really as designed?)
* selecting filters doesn't actually apply them on the result set
* as per the expansion pattern design, the selectors should expand and the view should scroll to show as much content as possible (up to almost the full height) - currently you have to scroll the view manually to see all of the options in the second or further selector
* there is no overshoot in the option selector - no feedback when you reach beginning or end of the option list
-------
* I'll bring up the filter icon size with design.
* Yes it is.
* Looking into this with Pawel.
* The overshoot has been fixed in another branch in the SDK which is waiting to land currently.
- 250. By Nicolas d'Offay
-
Changed index name.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:249
http://
Executed test runs:
FAILURE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
- 251. By Nicolas d'Offay
-
Set prior index active to false.
- 252. By Nicolas d'Offay
-
Changed cdimensions of filter icon.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Applying filters issue has been solved in revision 251. Confirmed by Pawel.
Confirmed with design that the filter's icon is 3x3 grid units. Set accordingly. If it looks stretched then the asset is incorrect and should be seen to.
Ideally I'd like to shed more light on the expansion pattern and have scheduled a hangout session tomorrow with Jouni.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
After setting the icon to 3x3 it looks really bad. The asset in the icon pack must be a different size. Sending a screen to design to get it seen to.
- 253. By Nicolas d'Offay
-
Made changes to filter icon and colour.
- 254. By Nicolas d'Offay
-
Fixed up test for Filter selector.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:250
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:254
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 255. By Nicolas d'Offay
-
Added broken positionViewAtI
ndex.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:255
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Michael Zanetti (mzanetti) wrote : | # |
As stated before, remove the color from the filter icon, set it as secondaryItem and remove the anchors. it'll fix the scaling issue
- 256. By Nicolas d'Offay
-
First pass of scrolling.
- 257. By Nicolas d'Offay
-
Added behaviour on contentY to filters.
- 258. By Nicolas d'Offay
-
Fixed icon.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:257
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:258
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
Michael Zanetti (mzanetti) wrote : | # |
doesn't compile and conflicts with trunk
Michael Zanetti (mzanetti) wrote : | # |
* icon still too small
* test still goes under the icon when typing into the text field
* clipping missing when expanding a optionselector that doesn't fit into the screen
* like the other items (for example HUD) it should disappear the the launcher is opened
* right edge gesture should be disabled when opened.
Michael Zanetti (mzanetti) wrote : | # |
Should have been:
* text still goes under the icon when typing into the text field
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Icon size was decided upon by design.
Not sure what you mean about the OptionSelector that doesn't fit onto the screen not being clipped. The triangle is clipped correctly, however there was an issue that the clipping was happening too late at the bottom of the rectangle. I've fixed this now. I'll be looking what else you mentioned too.
- 259. By Nicolas d'Offay
-
Fixed a bug that didn't disable the rightEdge when set, fixed most recent MP comments.
Michael Zanetti (mzanetti) wrote : | # |
The right edge now collapses the filters. But in all the other overlays, the right edge is disabled while the overlay is opened.
Michael Zanetti (mzanetti) wrote : | # |
22 + property bool launcherShown
I don't think this should be called "launcherShown". It could be used for other stuff too. Actually I think this should not exist at all. You already have the property filterSelectorV
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:259
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
MichaĆ Sawicz (saviq) wrote : | # |
Components/
- 260. By Nicolas d'Offay
-
Fixed filter dismissal issue with inverse mouse area by changing it to mouse area.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Components/
-----------
This is present in the branch which this MP is reliant upon. It's linked here.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
Reliant branch:
~nicolas-
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:260
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
Michael Zanetti (mzanetti) wrote : | # |
another one... clicking at the edges actually makes the click go through the filters overlay.
- 261. By Nicolas d'Offay
-
Removed launcher show variable and attempted to hide filters on launcher shown.
- 262. By Nicolas d'Offay
-
Removed filter close for search popup.
Nicolas d'Offay (nicolas-doffay) wrote : | # |
My reason for keeping this launcherShown way of doing things was line 399 in the diff. I'm unsure of how to alias the variable which is contained on item and since the assignment is done "one way" I figured passing in a separate variable would be the only option.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:261
http://
Executed test runs:
FAILURE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
ABORTED: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
Francis Ginther (fginther) wrote : | # |
Test was aborted, but has been re-triggered.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:261
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:262
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
- 263. By Nicolas d'Offay
-
Added dismisal area for search to PageHeader.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:263
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://
- 264. By Nicolas d'Offay
-
Merged trunk.
- 265. By Nicolas d'Offay
-
Updated PageHeader test.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:264
http://
Executed test runs:
FAILURE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
Francis Ginther (fginther) wrote : | # |
The autopilot-
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:265
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
ABORTED: http://
ABORTED: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:265
http://
Executed test runs:
FAILURE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:265
http://
Executed test runs:
UNSTABLE: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:265
http://
Executed test runs:
SUCCESS: http://
UNSTABLE: http://
FAILURE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:265
http://
Executed test runs:
SUCCESS: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
MichaĆ Sawicz (saviq) wrote : | # |
4 QML tests failing
- 266. By Nicolas d'Offay
-
Merged trunk.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:266
http://
Executed test runs:
SUCCESS: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
- 267. By Nicolas d'Offay
-
Merged search in progress branch.
- 268. By Nicolas d'Offay
-
Added indicator for searching.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:268
http://
Executed test runs:
SUCCESS: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
- 269. By Nicolas d'Offay
-
Removed indicator being displayed when clearing search.
- 270. By Nicolas d'Offay
-
Disabled button while indicator is active.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:269
http://
Executed test runs:
SUCCESS: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:270
http://
Executed test runs:
SUCCESS: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
- 271. By Nicolas d'Offay
-
Removed indicator and keyboard dismissal code.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:271
http://
Executed test runs:
SUCCESS: http://
UNSTABLE: http://
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
UNSTABLE: http://
UNSTABLE: http://
Click here to trigger a rebuild:
http://
MichaĆ Sawicz (saviq) wrote : | # |
Is this ready for re-review?
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:271
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://
MichaĆ Sawicz (saviq) wrote : | # |
There's a conflict, please merge trunk.
- 272. By Nicolas d'Offay
-
Removed search indicator.
- 273. By Nicolas d'Offay
-
Merged trunk.
- 274. By Nicolas d'Offay
-
Attempt to fix bad whitespace.
- 275. By Nicolas d'Offay
-
Fixed transparent input zone and moved drop down to the left.
- 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.
- 279. By Nicolas d'Offay
-
Fixed up clipping regions.
- 280. By Nicolas d'Offay
-
Merged trunk.
- 281. By Nicolas d'Offay
-
Fixed apparently bad whitespace.
- 282. By Nicolas d'Offay
-
Added search dismal when tapping outside filter selector and disabled other filters when currently selected filter dropdown is expanded.
- 283. By Nicolas d'Offay
-
Removed null assignment.
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-07 08:36:52 +0000 |
3 | +++ Components/PageHeader.qml 2013-10-15 10:28:49 +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 | @@ -55,13 +61,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 | @@ -74,8 +83,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 | @@ -110,7 +121,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 | @@ -136,7 +146,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 | @@ -144,8 +155,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 | @@ -194,6 +207,44 @@ |
81 | } |
82 | } |
83 | |
84 | + secondaryItem: Item { |
85 | + width: childrenRect.width |
86 | + height: units.gu(3) |
87 | + |
88 | + anchors { |
89 | + right: parent.right |
90 | + verticalCenter: parent.verticalCenter |
91 | + } |
92 | + |
93 | + Icon { |
94 | + id: filterIcon |
95 | + objectName: "filterIcon" |
96 | + |
97 | + width: units.gu(3) |
98 | + |
99 | + name: "filter" |
100 | + |
101 | + anchors { |
102 | + right: parent.right |
103 | + top: parent.top |
104 | + bottom: parent.bottom |
105 | + } |
106 | + |
107 | + MouseArea { |
108 | + id: filterClick |
109 | + |
110 | + anchors.fill: parent |
111 | + onPressed: { |
112 | + if (filterSelector.state === "expanded") { |
113 | + filterSelector.state = "collapsed" |
114 | + } else { |
115 | + filterSelector.state = "expanded" |
116 | + } |
117 | + } |
118 | + } |
119 | + } |
120 | + } |
121 | + |
122 | onTextChanged: { |
123 | if (text != "") searchContainer.closePopover() |
124 | else if (text == "" && activeFocus) searchContainer.openPopover() |
125 | @@ -356,26 +407,180 @@ |
126 | } |
127 | } |
128 | } |
129 | - |
130 | - InverseMouseArea { |
131 | - enabled: searchField.activeFocus |
132 | - |
133 | + } |
134 | + } |
135 | + } |
136 | + |
137 | + Rectangle { |
138 | + id: filterSelector |
139 | + objectName: "filterSelector" |
140 | + |
141 | + opacity: 0.9 |
142 | + color: Theme.palette.normal.background |
143 | + clip: true |
144 | + state: "collapsed" |
145 | + z: 1 |
146 | + anchors { |
147 | + left: parent.left |
148 | + right: parent.right |
149 | + } |
150 | + states: [ |
151 | + State { |
152 | + name: "expanded" |
153 | + PropertyChanges { |
154 | + target: selectors |
155 | + opacity: 1 |
156 | + } |
157 | + PropertyChanges { |
158 | + target: filterSelector |
159 | + height: filterSelectorHeight - filterBottomSpace |
160 | + } |
161 | + }, |
162 | + State { |
163 | + name: "collapsed" |
164 | + PropertyChanges { |
165 | + target: selectors |
166 | + opacity: 0 |
167 | + } |
168 | + PropertyChanges { |
169 | + target: filterSelector |
170 | + height: 0 |
171 | + } |
172 | + } |
173 | + ] |
174 | + |
175 | + Behavior on height { |
176 | + UbuntuNumberAnimation { |
177 | + properties: "height" |
178 | + duration: UbuntuAnimation.BriskDuration |
179 | + } |
180 | + } |
181 | + |
182 | + MouseArea { |
183 | + clip: true |
184 | + |
185 | + anchors { |
186 | + fill: parent |
187 | + topMargin: units.gu(9) |
188 | + bottomMargin: units.gu(2) |
189 | + } |
190 | + |
191 | + ListView { |
192 | + id: selectors |
193 | + objectName: "selectors" |
194 | + |
195 | + spacing: units.gu(1) |
196 | + model: scope ? scope.filters : null |
197 | + delegate: optionSelector |
198 | + anchors { |
199 | + fill: parent |
200 | + leftMargin: units.gu(2) |
201 | + rightMargin: units.gu(2) |
202 | + bottomMargin: units.gu(2) |
203 | + } |
204 | + |
205 | + Behavior on opacity { |
206 | + UbuntuNumberAnimation { |
207 | + properties: "opacity" |
208 | + duration: UbuntuAnimation.BriskDuration |
209 | + } |
210 | + } |
211 | + |
212 | + Behavior on contentY { |
213 | + UbuntuNumberAnimation { |
214 | + properties: "contentY" |
215 | + duration: UbuntuAnimation.BriskDuration |
216 | + } |
217 | + } |
218 | + } |
219 | + |
220 | + Component { |
221 | + id: optionSelector |
222 | + |
223 | + Column { |
224 | + spacing: units.gu(2) |
225 | anchors { |
226 | - top: parent.top |
227 | left: parent.left |
228 | right: parent.right |
229 | } |
230 | - |
231 | - height: searchContainer.popover ? parent.height + searchContainer.popover.contentHeight + units.gu(2) : parent.height |
232 | - |
233 | - onPressed: searchField.focus = false |
234 | - } |
235 | - } |
236 | - } |
237 | + OptionSelector { |
238 | + id: selector |
239 | + |
240 | + property real collapsedHeight |
241 | + property real expandedHeight |
242 | + |
243 | + text: name |
244 | + containerHeight: units.gu(38) |
245 | + model: options |
246 | + delegate: OptionSelectorDelegate { text: name } |
247 | + onDelegateClicked: { |
248 | + options.setActive(selectedIndex, !active); |
249 | + options.setActive(index, active); |
250 | + } |
251 | + |
252 | + onExpandedChanged: { |
253 | + collapsedHeight = height; |
254 | + } |
255 | + |
256 | + onExpansionCompleted: { |
257 | + expandedHeight = height; |
258 | + |
259 | + var delta = expandedHeight - collapsedHeight; |
260 | + |
261 | + if (!selectors.atYBeginning) { |
262 | + selectors.contentY += delta; |
263 | + } |
264 | + } |
265 | + } |
266 | + ListItem.ThinDivider { |
267 | + visible: index !== selectors.count - 1 |
268 | + anchors { |
269 | + leftMargin: units.gu(-2) |
270 | + rightMargin: units.gu(-2) |
271 | + } |
272 | + } |
273 | + } |
274 | + } |
275 | + } |
276 | + |
277 | + Item { |
278 | + id: bottomDividers |
279 | + |
280 | + height: units.gu(2) |
281 | + anchors { |
282 | + left: parent.left |
283 | + right: parent.right |
284 | + bottom: parent.bottom |
285 | + } |
286 | + ListItem.ThinDivider { |
287 | + anchors { |
288 | + bottom: parent.bottom |
289 | + } |
290 | + } |
291 | + ListItem.ThinDivider { |
292 | + anchors { |
293 | + top: parent.top |
294 | + } |
295 | + } |
296 | + } |
297 | + } |
298 | + |
299 | + MouseArea { |
300 | + objectName: "mouseArea" |
301 | + |
302 | + height: filterBottomSpace |
303 | + anchors { |
304 | + left: parent.left |
305 | + right: parent.right |
306 | + top: filterSelector.bottom |
307 | + } |
308 | + enabled: filterSelector.state === "expanded" |
309 | + onPressed: filterSelector.state = "collapsed" |
310 | } |
311 | |
312 | BorderImage { |
313 | id: bottomBorder |
314 | + |
315 | anchors { |
316 | top: header.bottom |
317 | left: parent.left |
318 | |
319 | === modified file 'Components/Stage.qml' |
320 | --- Components/Stage.qml 2013-10-11 10:24:30 +0000 |
321 | +++ Components/Stage.qml 2013-10-15 10:28:49 +0000 |
322 | @@ -451,7 +451,7 @@ |
323 | enabled: { |
324 | if (status == DirectionalDragArea.WaitingForTouch) { |
325 | return switchToApplicationAnimationController.completed |
326 | - && stage.applications.count > 0 && stage.rightEdgeEnabled |
327 | + && stage.applications.count > 0 || stage.rightEdgeEnabled |
328 | && !delayedHideScreenshots.running |
329 | } else { |
330 | return true |
331 | |
332 | === modified file 'Dash/Dash.qml' |
333 | --- Dash/Dash.qml 2013-09-24 09:52:37 +0000 |
334 | +++ Dash/Dash.qml 2013-10-15 10:28:49 +0000 |
335 | @@ -29,6 +29,8 @@ |
336 | property alias contentProgress: dashContent.contentProgress |
337 | property string showScopeOnLoaded: "home.scope" |
338 | property real contentScale: 1.0 |
339 | + property bool launcherShown |
340 | + property alias filterSelectorShown: dashContent.filterSelectorShown |
341 | |
342 | function setCurrentScope(scopeId, animate, reset) { |
343 | var scopeIndex = filteredScopes.findFirst(Scopes.RoleId, scopeId) |
344 | @@ -63,6 +65,7 @@ |
345 | anchors.fill: parent |
346 | model: filteredScopes |
347 | scopes: scopes |
348 | + launcherShown: dash.launcherShown |
349 | onMovementStarted: dashbar.startNavigation() |
350 | onMovementEnded: dashbar.stopNavigation() |
351 | onContentFlickStarted: dashbar.finishNavigation() |
352 | |
353 | === modified file 'Dash/DashContent.qml' |
354 | --- Dash/DashContent.qml 2013-10-11 10:07:25 +0000 |
355 | +++ Dash/DashContent.qml 2013-10-15 10:28:49 +0000 |
356 | @@ -25,6 +25,8 @@ |
357 | property var scopes: null |
358 | property real contentProgress: Math.max(0, Math.min(dashContentList.contentX / (dashContentList.contentWidth - dashContentList.width), units.dp(1))) |
359 | property alias currentIndex: dashContentList.currentIndex |
360 | + property bool launcherShown |
361 | + property bool filterSelectorShown |
362 | |
363 | property ScopeDelegateMapper scopeMapper : ScopeDelegateMapper {} |
364 | |
365 | @@ -83,7 +85,7 @@ |
366 | id: dashContentList |
367 | objectName: "dashContentList" |
368 | |
369 | - interactive: dashContent.scopes.loaded && !currentItem.previewShown && !currentItem.moving |
370 | + interactive: dashContent.scopes.loaded && !currentItem.previewShown && !currentItem.moving && !filterSelectorShown |
371 | |
372 | anchors.fill: parent |
373 | model: dashContent.model |
374 | @@ -119,6 +121,8 @@ |
375 | readonly property bool previewShown: item.previewShown |
376 | readonly property bool moving: item.moving |
377 | |
378 | + property bool launcherShown: dashContent.launcherShown |
379 | + |
380 | // these are needed for autopilot tests |
381 | readonly property string scopeId: scope.id |
382 | readonly property bool isCurrent: ListView.isCurrentItem |
383 | @@ -132,10 +136,14 @@ |
384 | dashContent.positionedAtBeginning.connect(item.positionedAtBeginning) |
385 | dashContent.scopeLoaded(item.scope.id) |
386 | } |
387 | + |
388 | + onLauncherShownChanged: item !== null? item.launcherShown = launcherShown : false |
389 | + |
390 | Connections { |
391 | target: item |
392 | ignoreUnknownSignals: true |
393 | onEndReached: contentEndReached() |
394 | + onFilterSelectorVisibleChanged: filterSelectorShown = item.filterSelectorVisible |
395 | onPreviewShownChanged: { |
396 | if (item.previewShown) { |
397 | dashContent.previewShown() |
398 | |
399 | === modified file 'Dash/GenericScopeView.qml' |
400 | --- Dash/GenericScopeView.qml 2013-10-11 10:45:36 +0000 |
401 | +++ Dash/GenericScopeView.qml 2013-10-15 10:28:49 +0000 |
402 | @@ -21,7 +21,10 @@ |
403 | |
404 | ScopeView { |
405 | id: scopeView |
406 | + |
407 | readonly property alias previewShown: previewLoader.onScreen |
408 | + property bool launcherShown |
409 | + property alias filterSelectorVisible: pageHeader.filterSelectorVisible |
410 | property bool enableHeightBehaviorOnNextCreation: false |
411 | |
412 | moving: categoryView.moving |
413 | @@ -223,6 +226,9 @@ |
414 | text: scopeView.scope.name |
415 | searchEntryEnabled: true |
416 | scope: scopeView.scope |
417 | + filterSelectorHeight: scopeView.height |
418 | + filterBottomSpace: units.gu(8) |
419 | + launcherShown: scopeView.launcherShown |
420 | } |
421 | } |
422 | |
423 | |
424 | === modified file 'Dash/ScopeListView.qml' |
425 | --- Dash/ScopeListView.qml 2013-10-11 11:41:27 +0000 |
426 | +++ Dash/ScopeListView.qml 2013-10-15 10:28:49 +0000 |
427 | @@ -18,9 +18,13 @@ |
428 | import ListViewWithPageHeader 0.1 |
429 | |
430 | ListViewWithPageHeader { |
431 | + id: listView |
432 | + |
433 | maximumFlickVelocity: height * 10 |
434 | flickDeceleration: height * 2 |
435 | |
436 | + interactive: !pageHeader.filterSelectorVisible |
437 | + |
438 | Connections { |
439 | target: greeter |
440 | onShownChanged: if (greeter.shown) showHeader() |
441 | |
442 | === modified file 'Shell.qml' |
443 | --- Shell.qml 2013-10-14 20:20:18 +0000 |
444 | +++ Shell.qml 2013-10-15 10:28:49 +0000 |
445 | @@ -200,6 +200,7 @@ |
446 | hides: [stages, launcher, panel.indicators] |
447 | shown: disappearingAnimationProgress !== 1.0 |
448 | enabled: disappearingAnimationProgress === 0.0 && edgeDemo.dashEnabled |
449 | + launcherShown: launcher.shown |
450 | // FIXME: unfocus all applications when going back to the dash |
451 | onEnabledChanged: { |
452 | if (enabled) { |
453 | @@ -299,8 +300,7 @@ |
454 | fullyShown: stages.fullyShown |
455 | fullyHidden: stages.fullyHidden |
456 | shouldUseScreenshots: !fullyShown |
457 | - rightEdgeEnabled: !sideStage.enabled |
458 | - |
459 | + rightEdgeEnabled: !sideStage.enabled && !dash.filterSelectorShown |
460 | applicationManager: shell.applicationManager |
461 | rightEdgeDraggingAreaWidth: shell.edgeSize |
462 | normalApplicationY: shell.panelHeight |
463 | @@ -390,7 +390,7 @@ |
464 | |
465 | width: shell.edgeSize |
466 | direction: Direction.Leftwards |
467 | - enabled: greeter.showProgress == 0 && edgeDemo.dashEnabled |
468 | + enabled: greeter.showProgress == 0 && edgeDemo.dashEnabled && !dash.filterSelectorShown |
469 | property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0 |
470 | |
471 | maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7 |
472 | |
473 | === modified file 'plugins/Unity/plugin.cpp' |
474 | --- plugins/Unity/plugin.cpp 2013-09-24 12:52:55 +0000 |
475 | +++ plugins/Unity/plugin.cpp 2013-10-15 10:28:49 +0000 |
476 | @@ -25,6 +25,7 @@ |
477 | #include "plugin.h" |
478 | |
479 | // local |
480 | +#include "genericoptionsmodel.h" |
481 | #include "preview.h" |
482 | #include "previewaction.h" |
483 | #include "previewinfohint.h" |
484 | @@ -50,6 +51,7 @@ |
485 | qmlRegisterUncreatableType<PreviewAction>(uri, 0, 1, "PreviewAction", "Can't create PreviewAction object in QML."); |
486 | qmlRegisterUncreatableType<PreviewInfoHint>(uri, 0, 1, "PreviewInfoHint", "Can't create PreviewInfoHint object in QML."); |
487 | qmlRegisterUncreatableType<SocialPreviewComment>(uri, 0, 1, "SocialPreviewComment", "Can't create SocialPreviewComment object in QML."); |
488 | + qmlRegisterUncreatableType<Filters>(uri, 0, 1, "Filters", "Can't create filters object in QML."); |
489 | qmlRegisterUncreatableType<GenericOptionsModel>(uri, 0, 1, "GenericOptionsModel", "Can't create options model in QML."); |
490 | qmlRegisterUncreatableType<Result>(uri, 0, 1, "Result", "Can't create result object in QML."); |
491 | qmlRegisterType<Scope>(uri, 0, 1, "Scope"); |
492 | |
493 | === modified file 'tests/qmltests/Components/tst_PageHeader.qml' |
494 | --- tests/qmltests/Components/tst_PageHeader.qml 2013-10-07 08:24:34 +0000 |
495 | +++ tests/qmltests/Components/tst_PageHeader.qml 2013-10-15 10:28:49 +0000 |
496 | @@ -21,6 +21,7 @@ |
497 | import Ubuntu.Components 0.1 |
498 | import Unity 0.1 |
499 | import Unity.Test 0.1 as UT |
500 | +import Unity 0.1 |
501 | |
502 | Item { |
503 | width: units.gu(110) |
504 | @@ -138,6 +139,20 @@ |
505 | compare(pageHeader.searchHistory.get(0).query, "humppa4") |
506 | } |
507 | |
508 | + function test_filter_overlay() { |
509 | + var filterIcon = findChild(pageHeader, "filterIcon"); |
510 | + var filterSelector = findChild(pageHeader, "filterSelector"); |
511 | + var mouseArea = findChild(pageHeader, "mouseArea"); |
512 | + var searchHeader = findChild(pageHeader, "searchHeader"); |
513 | + |
514 | + pageHeader.triggerSearch(); |
515 | + tryCompare(searchHeader, "contentY", 0); |
516 | + |
517 | + mouseClick(filterIcon, 2, 2); |
518 | + compare(filterSelector.state, "expanded", "Filter selector did not expand."); |
519 | + } |
520 | + |
521 | + |
522 | function test_search_indicator() { |
523 | var searchIndicator = findChild(pageHeader, "searchIndicator") |
524 | var primaryImage = findChild(pageHeader, "primaryImage") |
525 | @@ -158,6 +173,7 @@ |
526 | function cleanup() { |
527 | scopeMock.searchInProgress = false |
528 | } |
529 | + |
530 | } |
531 | |
532 | Column { |
533 | @@ -175,6 +191,7 @@ |
534 | |
535 | searchEntryEnabled: true |
536 | text: "%^$%^%^&%^&%^$%GHR%" |
537 | + filterSelectorHeight: units.gu(30) |
538 | } |
539 | |
540 | Row { |
The duration of the scrolling when opening and closing the filters will be longer and less "snap like", this is due to a bug in the SDK component (a fix has been prepared).