Merge lp:~josharenson/unity8/dash-refactor into lp:unity8

Proposed by Josh Arenson
Status: Superseded
Proposed branch: lp:~josharenson/unity8/dash-refactor
Merge into: lp:unity8
Diff against target: 1561 lines (+572/-418)
11 files modified
qml/Dash/Dash.qml (+3/-2)
qml/Dash/DashBackground.qml (+2/-11)
qml/Dash/DashContent.qml (+6/-5)
qml/Dash/DashPageHeader.qml (+121/-246)
qml/Dash/GenericScopeView.qml (+9/-57)
qml/Dash/PageHeaderExtraPanel.qml (+3/-3)
qml/Dash/SearchHeaderContents.qml (+293/-0)
tests/qmltests/Dash/tst_Dash.qml (+12/-2)
tests/qmltests/Dash/tst_DashContent.qml (+109/-51)
tests/qmltests/Dash/tst_DashPageHeader.qml (+13/-40)
tests/qmltests/Dash/tst_GenericScopeView.qml (+1/-1)
To merge this branch: bzr merge lp:~josharenson/unity8/dash-refactor
Reviewer Review Type Date Requested Status
Unity8 CI Bot continuous-integration Needs Fixing
Albert Astals Cid (community) Needs Information
Andrea Cimitan (community) Needs Fixing
Review via email: mp+305792@code.launchpad.net

This proposal has been superseded by a proposal from 2016-10-21.

Commit message

Refactor the dash to make implementing a wide view dash easier in the future.

Description of the change

* Are there any related MPs required for this MP to build/function as expected? Please list.
lp:~cimi/unity8/dash-visual-tweaks_pageHeader-bottomEdge/

 * Did you perform an exploratory manual test run of your code change and any related functionality?
Yes, extensively. However given the nature of the dash and the nature of this branch, I probably didn't test everything.

* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A

* If you changed the UI, has there been a design review?
N/A (UI should appear identical)

To post a comment you must log in.
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2087
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2187/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2872
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1584
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1584
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1584
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2900
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2758/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2758/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2758/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2758/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2758/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2758/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2758/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2758/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2758
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2758/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2187/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2091
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2188/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2873
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1585
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1585
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1585
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2901
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2759/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2759/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2759/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2759/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2759/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2759/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2759/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2759/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2759
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2759/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2188/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2092
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2202/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2891
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1587
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1587
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1587
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2919
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2777/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2777/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2777/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2777/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2777/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2777/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2777/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2777/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2777
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2777/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2202/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2095
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2208/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2897
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1589
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1589
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1589
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2925
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2783/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2783/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2783/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2783/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2783/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2783/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2783/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2783/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2783
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2783/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2208/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2096
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2275/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2996
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1657
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1657
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1657
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3024
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2881/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2881/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2881/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2881/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2881/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2881/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2881/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2881/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2881
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2881/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2275/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2653
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2276/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2997
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1658
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1658
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1658
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3025
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2882/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2882/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2882/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2882/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2882/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2882/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2882/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2882/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2882
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2882/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2276/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Andrea Cimitan (cimi) wrote :

looks good, mostly cosmetic changes for now (need to dive fully and test this first in a silo), I'd like you to see if we can add more tests if you think we should, just to make sure nothing breaks

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2656
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2294/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3020
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1671
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1671
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1671
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3048
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2905/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2905/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2905/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2905/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2905/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2905/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2905/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2905/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2905
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2905/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2294/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Albert Astals Cid (aacid) wrote :

testDashPageHeader doesn't compile

When doing tryDash and then search icon on the header and click on rootChild3 i get

dash-refactor/qml/Dash/SearchHeaderContents.qml:91: TypeError: Property 'unfocus' of object DashPageHeader_QMLTYPE_76(0x55b1346c0ab0, "scopePageHeader") is not a function

review: Needs Fixing
Revision history for this message
Josh Arenson (josharenson) wrote :

Changing to WIP until I get the test albert mentioned passing. I missed it somehow.

Revision history for this message
Josh Arenson (josharenson) wrote :

> testDashPageHeader doesn't compile
>
> When doing tryDash and then search icon on the header and click on rootChild3
> i get
>
> dash-refactor/qml/Dash/SearchHeaderContents.qml:91: TypeError: Property
> 'unfocus' of object DashPageHeader_QMLTYPE_76(0x55b1346c0ab0,
> "scopePageHeader") is not a function

Should work and pass now.

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2661
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2323/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3062
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1708
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1708
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1708
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3090
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2947/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2947/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2947/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2947/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2947/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2947/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2947/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2947/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2947
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2947/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2323/rebuild

review: Needs Fixing (continuous-integration)
lp:~josharenson/unity8/dash-refactor updated
2662. By Josh Arenson

All tests pass, for real.

2663. By Josh Arenson

Remove debug code

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2662
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2337/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3077
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1723
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1723
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1723
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3105
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2962/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2962/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2962/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2962/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2962/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2962/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2962/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2962/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2962
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2962/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2337/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2663
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2338/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3078
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1724
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1724
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1724
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3106
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2963/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2963/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2963/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2963/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2963/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2963/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2963/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2963/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2963
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2963/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2338/rebuild

review: Needs Fixing (continuous-integration)
lp:~josharenson/unity8/dash-refactor updated
2664. By Josh Arenson

Fix search placeholder

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2664
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2348/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3090
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1736
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1736
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1736
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3118
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2975/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2975/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2975/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2975/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2975/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2975/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2975/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2975/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2975
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2975/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2348/rebuild

review: Needs Fixing (continuous-integration)
lp:~josharenson/unity8/dash-refactor updated
2665. By Josh Arenson

[PROROTYPE] Ditch the popover

2666. By Josh Arenson

Fix bugs and tests

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Michał Sawicz (saviq) wrote :

qml/Dash/SearchHeaderContents.qml: bad whitespace in line 148

lp:~josharenson/unity8/dash-refactor updated
2667. By Josh Arenson

Remove bad tab

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2667
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2389/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3141
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1785
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1785
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1785
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3169
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/3026/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3026/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/3026/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/3026/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3026/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/3026/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/3026/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3026/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/3026
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/3026/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2389/rebuild

review: Needs Fixing (continuous-integration)
lp:~josharenson/unity8/dash-refactor updated
2668. By Josh Arenson

Add better placeholder hint test

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2668
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2391/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3144
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1787
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1787
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1787
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3172
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/3028/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3028/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/3028/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/3028/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3028/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/3028/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/3028/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3028/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/3028
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/3028/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2391/rebuild

review: Approve (continuous-integration)
lp:~josharenson/unity8/dash-refactor updated
2669. By Josh Arenson

Fix signature line mess

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2669
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2406/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3159
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1798
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1798
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1798
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3187
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/3043/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3043/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/3043/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/3043/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3043/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/3043/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/3043/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3043/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/3043
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/3043/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2406/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Andrea Cimitan (cimi) wrote :

you want to merge https://code.launchpad.net/~cimi/unity8/dash-visual-tweaks_pageHeader-bottomEdge since it will conflict with the new pagination dots style

review: Needs Fixing
Revision history for this message
Albert Astals Cid (aacid) wrote :

currentCategoryView property added but not used?

Do we have duplicate-ish code in showFiltersPopup and onShowFiltersPopup ?

review: Needs Information
Revision history for this message
Albert Astals Cid (aacid) wrote :

Can you fix
qml/Dash/SearchHeaderContents.qml:148: TypeError: Cannot read property 'pageHeader' of undefined
qml/Dash/SearchHeaderContents.qml:176: TypeError: Cannot read property 'searchHint' of undefined
qml/Dash/SearchHeaderContents.qml:176: TypeError: Cannot read property 'searchHint' of null

When starting tryDash?

lp:~josharenson/unity8/dash-refactor updated
2670. By Josh Arenson

Merge (new) prereq

2671. By Josh Arenson

Relocate pagination dots

2672. By Josh Arenson

Remove unused code

2673. By Josh Arenson

Clean warnings

Revision history for this message
Josh Arenson (josharenson) wrote :

Addressed concerns.

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :
review: Needs Fixing (continuous-integration)
lp:~josharenson/unity8/dash-refactor updated
2674. By Josh Arenson

Remove tab

2675. By Josh Arenson

Readd missing search reset

2676. By Josh Arenson

Merge trunk

2677. By Josh Arenson

Fix pagination dots

2678. By Josh Arenson

Fix focus issue

2679. By Josh Arenson

Fix tests

Unmerged revisions

2679. By Josh Arenson

Fix tests

2678. By Josh Arenson

Fix focus issue

2677. By Josh Arenson

Fix pagination dots

2676. By Josh Arenson

Merge trunk

2675. By Josh Arenson

Readd missing search reset

2674. By Josh Arenson

Remove tab

2673. By Josh Arenson

Clean warnings

2672. By Josh Arenson

Remove unused code

2671. By Josh Arenson

Relocate pagination dots

2670. By Josh Arenson

Merge (new) prereq

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'qml/Dash/Dash.qml'
2--- qml/Dash/Dash.qml 2016-05-02 07:57:07 +0000
3+++ qml/Dash/Dash.qml 2016-10-21 10:07:36 +0000
4@@ -262,7 +262,8 @@
5 bottomMargin: Qt.inputMethod.keyboardRectangle.height
6 }
7 height: units.dp(3)
8- color: scopeStyle.backgroundLuminance > 0.7 ? "#50000000" : "#50ffffff"
9+ color: typeof(scopeStyle) !== "undefined" &&
10+ scopeStyle.backgroundLuminance > 0.7 ? "#50000000" : "#50ffffff"
11 opacity: 0
12 visible: opacity > 0
13
14@@ -329,7 +330,7 @@
15 enabled: bottomEdgeController.progress == 0
16 UbuntuNumberAnimation {}
17 }
18- y: parent.height - height * (1 - bottomEdgeController.progress * 4)
19+ y: parent.height - height * (1 - bottomEdgeController.progress * 4) - units.gu(1)
20 MouseArea {
21 // Eat direct presses on the overview hint so that they do not end up in the card below
22 anchors.fill: parent
23
24=== modified file 'qml/Dash/DashBackground.qml'
25--- qml/Dash/DashBackground.qml 2016-08-30 14:06:47 +0000
26+++ qml/Dash/DashBackground.qml 2016-10-21 10:07:36 +0000
27@@ -15,16 +15,7 @@
28 */
29
30 import QtQuick 2.4
31-import QtQuick.Window 2.2
32-import ImageCache 0.1
33
34-Image {
35- source: "image://unity8imagecache/" + Qt.resolvedUrl("graphics/paper.png")
36- fillMode: Image.PreserveAspectCrop
37- horizontalAlignment: Image.AlignRight
38- verticalAlignment: Image.AlignTop
39- // avoid CPU scaling when window size changes
40- readonly property int maxSize: Math.max(Screen.width, Screen.height)
41- sourceSize.width: maxSize
42- sourceSize.height: 0
43+Rectangle {
44+ color: "white"
45 }
46
47=== modified file 'qml/Dash/DashContent.qml'
48--- qml/Dash/DashContent.qml 2016-07-27 16:23:18 +0000
49+++ qml/Dash/DashContent.qml 2016-10-21 10:07:36 +0000
50@@ -30,11 +30,12 @@
51 readonly property string currentScopeId: dashContentList.currentItem ? dashContentList.currentItem.scopeId : ""
52 readonly property var currentScope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
53 readonly property bool subPageShown: dashContentList.currentItem && dashContentList.currentItem.item ?
54- dashContentList.currentItem.item.subPageShown : false
55- readonly property bool processing: dashContentList.currentItem && dashContentList.currentItem.item
56+ dashContentList.currentItem.item.subPageShown : false
57+ readonly property bool processing: dashContentList.currentItem
58+ && dashContentList.currentItem.item
59 && dashContentList.currentItem.item.processing || false
60 readonly property bool pageHeaderTotallyVisible: dashContentList.currentItem && dashContentList.currentItem.item
61- && dashContentList.currentItem.item.pageHeaderTotallyVisible || false
62+ && dashContentList.currentItem.item.pageHeaderTotallyVisible || false
63
64 signal scopeLoaded(string scopeId)
65 signal gotoScope(string scopeId)
66@@ -84,7 +85,6 @@
67
68 if (reset) {
69 dashContentList.currentItem.item.positionAtBeginning()
70- dashContentList.currentItem.item.resetSearch()
71 }
72 }
73
74@@ -168,7 +168,7 @@
75 objectName: "scopeLoader" + index
76
77 readonly property bool moving: item ? item.moving : false
78- readonly property bool extraPanelShown: item ? item.extraPanelShown : false
79+ readonly property bool extraPanelShown: item ? item.searchContents.extraPanelVisible : false
80 readonly property bool subPageShown: item ? item.subPageShown : false
81 readonly property var categoryView: item ? item.categoryView : null
82 readonly property var theScope: scope
83@@ -189,6 +189,7 @@
84 item.holdingList = dashContentList;
85 item.forceNonInteractive = Qt.binding(function() { return dashContent.forceNonInteractive } )
86 }
87+
88 Connections {
89 target: isCurrent ? scope : null
90 onGotoScope: {
91
92=== modified file 'qml/Dash/DashPageHeader.qml'
93--- qml/Dash/DashPageHeader.qml 2016-08-16 14:06:26 +0000
94+++ qml/Dash/DashPageHeader.qml 2016-10-21 10:07:36 +0000
95@@ -25,39 +25,45 @@
96 id: root
97 objectName: "pageHeader"
98 implicitHeight: headerContainer.height + signatureLineHeight
99- readonly property real signatureLineHeight: showSignatureLine ? units.gu(2) : 0
100+ readonly property real signatureLineHeight: showSignatureLine ? units.gu(2.5) : headerBottomLine.height
101 readonly property real headerDividerLuminance: Style.luminance(bottomBorder.color)
102
103- property int activeFiltersCount: 0
104- property bool scopeHasFilters: false
105- property bool showBackButton: false
106+ property alias extraPanelHeight: searchHeaderContents.extraPanelHeight
107+ property alias searchContents: searchHeaderContents
108+ property alias searchTextField: searchHeaderContents.searchTextField
109+
110 property bool backIsClose: false
111- property string title
112- property var extraPanel
113- property string navigationTag
114-
115- property bool storeEntryEnabled: false
116+ property bool favorite: false
117+ property bool favoriteEnabled: false
118 property bool searchEntryEnabled: false
119 property bool settingsEnabled: false
120- property bool favoriteEnabled: false
121- property bool favorite: false
122- property ListModel searchHistory
123- property alias searchQuery: searchTextField.text
124- property alias searchHint: searchTextField.placeholderText
125+ property bool showBackButton: false
126 property bool showSignatureLine: true
127+ property bool storeEntryEnabled: false
128
129+ property int activeFiltersCount: 0
130 property int paginationCount: 0
131 property int paginationIndex: -1
132
133+ property ListModel searchHistory
134+
135+ property string navigationTag
136+ property string searchQuery
137+ property string title
138+
139+ property var categoryView
140+ property var scope
141 property var scopeStyle: null
142+ property var scopeView
143+ property var searchHint: searchTextField.placeholderText
144
145+ signal backClicked()
146 signal clearSearch(bool keepPanelOpen)
147- signal backClicked()
148- signal storeClicked()
149- signal settingsClicked()
150 signal favoriteClicked()
151 signal searchTextFieldFocused()
152+ signal settingsClicked()
153 signal showFiltersPopup(var item)
154+ signal storeClicked()
155
156 onScopeStyleChanged: refreshLogo()
157 onSearchQueryChanged: {
158@@ -80,40 +86,8 @@
159 }
160 }
161
162- function closePopup(keepFocus, keepSearch) {
163- if (extraPanel.visible) {
164- extraPanel.visible = false;
165- }
166- if (!keepFocus) {
167- unfocus(keepSearch);
168- }
169- if (!keepSearch && !searchTextField.text && !root.navigationTag && searchHistory.count == 0) {
170- headerContainer.showSearch = false;
171- }
172- }
173-
174- function resetSearch(keepFocus) {
175- if (searchHistory) {
176- searchHistory.addQuery(searchTextField.text);
177- }
178- searchTextField.text = "";
179- closePopup(keepFocus);
180- }
181-
182- function unfocus(keepSearch) {
183- searchTextField.focus = false;
184- if (!keepSearch && !searchTextField.text && !root.navigationTag) {
185- headerContainer.showSearch = false;
186- }
187- }
188-
189- function openPopup() {
190- if (openSearchAnimation.running) {
191- openSearchAnimation.openPopup = true;
192- } else if (extraPanel.hasContents) {
193- // Show extraPanel
194- extraPanel.visible = true;
195- }
196+ function resetSearch() {
197+ searchHeaderContents.resetSearch();
198 }
199
200 function refreshLogo() {
201@@ -125,20 +99,93 @@
202 }
203 }
204
205+ function unfocus(keepSearch) {
206+ searchHeaderContents.unfocus(keepSearch);
207+ }
208+
209+ Binding {
210+ target: searchHeaderContents.searchTextField
211+ property: "text"
212+ value: root.searchQuery
213+ }
214+
215 Connections {
216 target: root.scopeStyle
217 onHeaderLogoChanged: root.refreshLogo()
218 }
219
220 InverseMouseArea {
221- anchors { fill: parent; margins: units.gu(1); bottomMargin: units.gu(3) + (extraPanel ? extraPanel.height : 0) }
222+ anchors {
223+ fill: parent
224+ margins: units.gu(1)
225+ bottomMargin: units.gu(3) + extraPanelHeight
226+ }
227+
228 visible: headerContainer.showSearch
229 onPressed: {
230- closePopup(/* keepFocus */false);
231+ searchHeaderContents.closePopup(/* keepFocus */false);
232 mouse.accepted = false;
233 }
234 }
235
236+ Rectangle {
237+ id: bottomBorder
238+ visible: showSignatureLine
239+ anchors {
240+ top: headerContainer.bottom
241+ left: parent.left
242+ right: parent.right
243+ bottom: parent.bottom
244+ }
245+
246+ color: root.scopeStyle ? root.scopeStyle.headerDividerColor : "#e0e0e0"
247+
248+ Rectangle {
249+ anchors {
250+ top: parent.top
251+ left: parent.left
252+ right: parent.right
253+ }
254+ height: units.dp(1)
255+ color: Qt.darker(parent.color, 1.1)
256+ }
257+ }
258+
259+
260+ Rectangle {
261+ id: headerBottomLine
262+ anchors {
263+ top: headerContainer.bottom
264+ left: parent.left
265+ right: parent.right
266+ }
267+ height: units.dp(1)
268+ color: theme.palette.normal.base
269+ }
270+
271+ Row {
272+ anchors {
273+ top: headerContainer.bottom
274+ horizontalCenter: headerContainer.horizontalCenter
275+ topMargin: units.gu(1)
276+ }
277+ visible: showSignatureLine
278+ spacing: units.gu(.5)
279+ Repeater {
280+ objectName: "paginationRepeater"
281+ model: root.paginationCount
282+ Rectangle {
283+ objectName: "paginationDots_" + index
284+ height: units.gu(1)
285+ width: height
286+ radius: height / 2
287+ color: index == root.paginationIndex ? UbuntuColors.blue : "transparent"
288+ border.width: index == root.paginationIndex ? 0 : 1 // yes, one pixel and not 1dp
289+ border.color: theme.palette.normal.baseText
290+ }
291+ }
292+ }
293+
294 Item {
295 id: headerContainer
296 objectName: "headerContainer"
297@@ -202,135 +249,29 @@
298 dividerColor: "transparent"
299 }
300
301- contents: Item {
302+ contents: SearchHeaderContents {
303+ id: searchHeaderContents
304+ objectName: "searchHeaderContents"
305+
306 anchors.fill: parent
307
308- Keys.onEscapePressed: { // clear the search text, dismiss the search in the second step
309- if (searchTextField.text != "") {
310- root.clearSearch(true);
311- } else {
312- root.clearSearch(false);
313- headerContainer.showSearch = false;
314- }
315- }
316-
317- TextField {
318- id: searchTextField
319- objectName: "searchTextField"
320- inputMethodHints: Qt.ImhNoPredictiveText
321- hasClearButton: false
322- anchors {
323- top: parent.top
324- topMargin: units.gu(1)
325- left: parent.left
326- bottom: parent.bottom
327- bottomMargin: units.gu(1)
328- right: settingsButton.left
329- rightMargin: settingsButton.visible ? 0 : units.gu(2)
330- }
331-
332- primaryItem: Rectangle {
333- color: "#F5F4F5"
334- width: root.navigationTag != "" ? tagLabel.width + units.gu(2) : 0
335- height: root.navigationTag != "" ? tagLabel.height + units.gu(1) : 0
336- radius: units.gu(0.5)
337- Label {
338- id: tagLabel
339- text: root.navigationTag
340- anchors.centerIn: parent
341- color: "#333333"
342- }
343- }
344-
345- secondaryItem: AbstractButton {
346- id: clearButton
347- height: searchTextField.height
348- width: height
349- enabled: searchTextField.text.length > 0 || root.navigationTag != ""
350-
351- Image {
352- objectName: "clearIcon"
353- anchors.fill: parent
354- anchors.margins: units.gu(1)
355- source: "image://theme/clear"
356- sourceSize.width: width
357- sourceSize.height: height
358- opacity: parent.enabled
359- visible: opacity > 0
360- Behavior on opacity {
361- UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
362- }
363- }
364-
365- onClicked: {
366- root.clearSearch(true);
367- }
368- }
369-
370- onActiveFocusChanged: {
371- if (activeFocus) {
372- root.searchTextFieldFocused();
373- root.openPopup();
374- }
375- }
376-
377- onTextChanged: {
378- if (text != "") {
379- closePopup(/* keepFocus */true);
380- }
381- }
382- }
383-
384- AbstractButton {
385- id: settingsButton
386- objectName: "settingsButton"
387-
388- width: root.scopeHasFilters ? height : 0
389- visible: width > 0
390- anchors {
391- top: parent.top
392- right: cancelButton.left
393- bottom: parent.bottom
394- rightMargin: units.gu(-1)
395- }
396-
397- Icon {
398- anchors.fill: parent
399- anchors.margins: units.gu(2)
400- name: "filters"
401- color: root.activeFiltersCount > 0 ? theme.palette.normal.positive : header.__styleInstance.foregroundColor
402- }
403-
404- onClicked: {
405- root.showFiltersPopup(settingsButton);
406- }
407- }
408-
409- AbstractButton {
410- id: cancelButton
411- objectName: "cancelButton"
412- width: cancelLabel.width + cancelLabel.anchors.rightMargin + cancelLabel.anchors.leftMargin
413- anchors {
414- top: parent.top
415- right: parent.right
416- bottom: parent.bottom
417- }
418- onClicked: {
419- root.clearSearch(false);
420- headerContainer.showSearch = false;
421- }
422- Label {
423- id: cancelLabel
424- text: i18n.tr("Cancel")
425- color: header.__styleInstance.foregroundColor
426- verticalAlignment: Text.AlignVCenter
427- anchors {
428- verticalCenter: parent.verticalCenter
429- right: parent.right
430- rightMargin: units.gu(2)
431- leftMargin: units.gu(1)
432- }
433- }
434+ activeFiltersCount: root.activeFiltersCount
435+ categoryView: root.categoryView
436+ extraPanelYOffset: root.signatureLineHeight
437+ navigationTag: root.navigationTag
438+ scope: root.scope
439+ scopeView: root.scopeView
440+ searchHistory: root.searchHistory
441+
442+ // PageHeader adds margins and that throws off the width
443+ parentWidth: root.width
444+ onCancelSearch: headerContainer.showSearch = showSearch;
445+ onSearchTextFieldFocused: root.searchTextFieldFocused();
446+
447+ Binding {
448+ target: root
449+ property: "searchQuery"
450+ value: searchTextField.text
451 }
452 }
453 }
454@@ -412,70 +353,4 @@
455 }
456 }
457 }
458-
459- Rectangle {
460- id: bottomBorder
461- visible: showSignatureLine
462- anchors {
463- top: headerContainer.bottom
464- left: parent.left
465- right: parent.right
466- bottom: parent.bottom
467- }
468-
469- color: root.scopeStyle ? root.scopeStyle.headerDividerColor : "#e0e0e0"
470-
471- Rectangle {
472- anchors {
473- top: parent.top
474- left: parent.left
475- right: parent.right
476- }
477- height: units.dp(1)
478- color: Qt.darker(parent.color, 1.1)
479- }
480- }
481-
482- Row {
483- visible: bottomBorder.visible
484- spacing: units.gu(.5)
485- Repeater {
486- objectName: "paginationRepeater"
487- model: root.paginationCount
488- Image {
489- objectName: "paginationDots_" + index
490- height: units.gu(1)
491- width: height
492- source: (index == root.paginationIndex) ? "graphics/pagination_dot_on.png" : "graphics/pagination_dot_off.png"
493- }
494- }
495- anchors {
496- top: headerContainer.bottom
497- horizontalCenter: headerContainer.horizontalCenter
498- topMargin: units.gu(.5)
499- }
500- }
501-
502- // FIXME this doesn't work with solid scope backgrounds due to z-ordering
503- Item {
504- id: bottomHighlight
505- visible: bottomBorder.visible
506- anchors {
507- top: parent.bottom
508- left: parent.left
509- right: parent.right
510- }
511- z: 1
512- height: units.dp(1)
513- opacity: 0.6
514-
515- Rectangle {
516- anchors.fill: parent
517- color: if (root.scopeStyle) {
518- Qt.lighter(Qt.rgba(root.scopeStyle.background.r,
519- root.scopeStyle.background.g,
520- root.scopeStyle.background.b, 1.0), 1.2);
521- } else "#CCFFFFFF"
522- }
523- }
524 }
525
526=== modified file 'qml/Dash/GenericScopeView.qml'
527--- qml/Dash/GenericScopeView.qml 2016-09-22 07:37:21 +0000
528+++ qml/Dash/GenericScopeView.qml 2016-10-21 10:07:36 +0000
529@@ -37,7 +37,7 @@
530 property bool enableHeightBehaviorOnNextCreation: false
531 property var categoryView: categoryView
532 readonly property alias subPageShown: subPageLoader.subPageShown
533- readonly property alias extraPanelShown: peExtraPanel.visible
534+ property var searchHeader
535 property int paginationCount: 0
536 property int paginationIndex: 0
537 property bool visibleToParent: false
538@@ -45,6 +45,7 @@
539 property var holdingList: null
540 property bool wasCurrentOnMoveStart: false
541 property var filtersPopover: null
542+ property alias searchContents: scopePageHeader.searchContents
543
544 property var scopeStyle: ScopeStyle {
545 style: scope ? scope.customizations : {}
546@@ -70,10 +71,6 @@
547 subPageLoader.closeSubPage()
548 }
549
550- function resetSearch() {
551- categoryView.pageHeader.resetSearch()
552- }
553-
554 property var maybePreviewResult;
555 property string maybePreviewCategoryId;
556
557@@ -635,14 +632,18 @@
558 }
559
560 pageHeader: DashPageHeader {
561+ id: scopePageHeader
562 objectName: "scopePageHeader"
563 width: parent.width
564 title: scopeView.scope ? scopeView.scope.name : ""
565- extraPanel: peExtraPanel
566+
567+ categoryView: scopeView.categoryView
568+ scope: scopeView.scope
569+ scopeView: scopeView
570+
571 searchHistory: SearchHistoryModel
572 searchHint: scopeView.scope && scopeView.scope.searchHint || i18n.ctr("Label: Hint for dash search line edit", "Search")
573- scopeHasFilters: scopeView.scope.filters != null
574- activeFiltersCount: scopeView.scope.activeFiltersCount
575+ activeFiltersCount: scopeView.scope ? scopeView.scope.activeFiltersCount : 0
576 showBackButton: scopeView.hasBackAction
577 searchEntryEnabled: true
578 settingsEnabled: scopeView.scope && scopeView.scope.settings && scopeView.scope.settings.count > 0 || false
579@@ -657,55 +658,6 @@
580 onSettingsClicked: subPageLoader.openSubPage("settings")
581 onFavoriteClicked: scopeView.scope.favorite = !scopeView.scope.favorite
582 onSearchTextFieldFocused: scopeView.showHeader()
583- onClearSearch: { // keepPanelOpen
584- var panelOpen = peExtraPanel.visible;
585- resetSearch(keepPanelOpen);
586- scopeView.scope.resetPrimaryNavigationTag();
587- peExtraPanel.resetNavigation();
588- if ((panelOpen || searchHistory.count > 0) && keepPanelOpen) {
589- openPopup();
590- }
591- }
592- onShowFiltersPopup: { // item
593- extraPanel.visible = false;
594- scopeView.filtersPopover = PopupUtils.open(Qt.resolvedUrl("FiltersPopover.qml"), item, { "contentWidth": Qt.binding(function() { return scopeView.width - units.gu(2); } ) } );
595- scopeView.filtersPopover.Component.onDestruction.connect(function () {
596- categoryView.pageHeader.closePopup(false, true);
597- categoryView.pageHeader.unfocus(true); // remove the focus from the search field
598- })
599- }
600- }
601-
602- PageHeaderExtraPanel {
603- id: peExtraPanel
604- objectName: "peExtraPanel"
605- width: parent.width >= units.gu(60) ? units.gu(40) : parent.width
606- anchors {
607- top: categoryView.pageHeader.bottom
608- topMargin: -categoryView.pageHeader.signatureLineHeight
609- }
610- z: 1
611- visible: false
612-
613- searchHistory: SearchHistoryModel
614- scope: scopeView.scope
615- windowHeight: scopeView.height
616-
617- onHistoryItemClicked: {
618- SearchHistoryModel.addQuery(text);
619- categoryView.pageHeader.searchQuery = text;
620- categoryView.pageHeader.unfocus();
621- }
622-
623- onDashNavigationLeafClicked: {
624- categoryView.pageHeader.closePopup();
625- categoryView.pageHeader.unfocus();
626- }
627-
628- onExtraPanelOptionSelected: {
629- categoryView.pageHeader.closePopup();
630- categoryView.pageHeader.unfocus();
631- }
632 }
633 }
634
635
636=== modified file 'qml/Dash/PageHeaderExtraPanel.qml'
637--- qml/Dash/PageHeaderExtraPanel.qml 2016-09-22 07:31:49 +0000
638+++ qml/Dash/PageHeaderExtraPanel.qml 2016-10-21 10:07:36 +0000
639@@ -33,7 +33,7 @@
640 property real windowHeight
641
642 // Used by PageHeader
643- readonly property bool hasContents: searchHistory.count > 0 || scope && scope.hasNavigation || scope && scope.primaryNavigationFilter
644+ readonly property bool hasContents: searchHistory ? searchHistory.count > 0 || scope && scope.hasNavigation || scope && scope.primaryNavigationFilter : false
645
646 signal historyItemClicked(string text)
647 signal dashNavigationLeafClicked()
648@@ -176,10 +176,10 @@
649 id: primaryFilter
650 objectName: "primaryFilter"
651
652- active: scope && !scope.hasNavigation
653+ active: scope && !scope.hasNavigation ? true : false // Prevent warning
654
655 anchors.fill: parent
656- property var filter: active ? scope.primaryNavigationFilter : null
657+ property var filter: active && scope ? scope.primaryNavigationFilter : null
658
659 widgetId: filter ? filter.filterId : ""
660 widgetType: filter ? filter.filterType : -1
661
662=== added file 'qml/Dash/SearchHeaderContents.qml'
663--- qml/Dash/SearchHeaderContents.qml 1970-01-01 00:00:00 +0000
664+++ qml/Dash/SearchHeaderContents.qml 2016-10-21 10:07:36 +0000
665@@ -0,0 +1,293 @@
666+/*
667+ * Copyright (C) 2016 Canonical, Ltd.
668+ *
669+ * This program is free software; you can redistribute it and/or modify
670+ * it under the terms of the GNU General Public License as published by
671+ * the Free Software Foundation; version 3.
672+ *
673+ * This program is distributed in the hope that it will be useful,
674+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
675+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
676+ * GNU General Public License for more details.
677+ *
678+ * You should have received a copy of the GNU General Public License
679+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
680+ */
681+
682+import QtQuick 2.4
683+import Ubuntu.Components 1.3
684+import Ubuntu.Components.Popups 1.3
685+
686+Item {
687+ id: root
688+
689+ property int activeFiltersCount
690+ property real parentWidth
691+ property string navigationTag
692+
693+ property ListModel searchHistory
694+ property real extraPanelYOffset
695+ property var categoryView: null
696+ property var scope: null
697+ property var scopeView: null
698+
699+ readonly property alias searchTextField: searchTextField
700+ readonly property bool extraPanelVisible: pageHeaderExtraPanel.visible
701+ readonly property bool scopeHasFilters: scope && scope.filters != null ? true : false // Prevent warning
702+ readonly property real extraPanelHeight: extraPanelVisible ?
703+ pageHeaderExtraPanel.height : 0
704+
705+ signal cancelSearch(bool showSearch);
706+ signal searchTextFieldFocused();
707+
708+ state: "noExtraPanel"
709+ states: [
710+ State {
711+ name: "noExtraPanel"
712+ },
713+
714+ State {
715+ name: "yesExtraPanel"
716+
717+ PropertyChanges {
718+ target: pageHeaderExtraPanel
719+ visible: true
720+ }
721+ }
722+ ]
723+
724+ function clearSearch(keepPanelOpen) {
725+ resetSearch(keepPanelOpen);
726+ if (scope) scope.resetPrimaryNavigationTag();
727+ if (root.pageHeaderExtraPanel) {
728+ root.pageHeaderExtraPanel.resetNavigation();
729+ }
730+
731+ if ((root.extraPanelVisible || searchHistory.count > 0) && keepPanelOpen) {
732+ root.showExtraPanel();
733+ } else {
734+ root.hideExtraPanel();
735+ }
736+ }
737+
738+ function closePopup(keepFocus, keepSearch) {
739+ root.hideExtraPanel();
740+ if (!keepFocus) {
741+ unfocus(keepSearch);
742+ }
743+
744+ if (!keepSearch && !searchTextField.text &&
745+ !root.navigationTag && searchHistory.count === 0) {
746+ root.cancelSearch(false);
747+ }
748+ }
749+
750+ function dashNavigationLeafClicked() {
751+ root.closePopup();
752+ root.unfocus();
753+ }
754+
755+ function resetSearch(keepPanelOpen) {
756+ if (root.searchHistory) {
757+ root.searchHistory.addQuery(searchTextField.text);
758+ }
759+ searchTextField.text = "";
760+ cancelSearch(keepPanelOpen);
761+ closePopup(true);
762+ }
763+
764+ function unfocus(keepSearch) {
765+ searchTextField.focus = false;
766+ if (!keepSearch && !searchTextField.text && !root.navigationTag) {
767+ root.cancelSearch(false);
768+ }
769+ }
770+
771+ function showFiltersPopup(popupParent) {
772+ var url = Qt.resolvedUrl("FiltersPopover.qml");
773+
774+ root.hideExtraPanel();
775+ scopeView.filtersPopover = PopupUtils.open(url, popupParent, {
776+ "contentWidth" : Qt.binding(function() {
777+ return scopeView.width - units.gu(2);
778+ })}
779+ );
780+
781+ scopeView.filtersPopover.Component.onDestruction.connect(
782+ function() {
783+ root.closePopup(false);
784+ }
785+ );
786+ }
787+
788+ function hideExtraPanel() {
789+ state = "noExtraPanel"
790+ }
791+
792+ function showExtraPanel() {
793+ state = "yesExtraPanel"
794+ }
795+
796+ Keys.onEscapePressed: { // clear the search text, dismiss the search in the second step
797+ if (searchTextField.text != "") {
798+ root.clearSearch(true);
799+ root.cancelSearch(false);
800+ forceActiveFocus(); // Focus is lost, but still needed.
801+ } else {
802+ root.clearSearch(false);
803+ }
804+ }
805+
806+ PageHeaderExtraPanel {
807+ id: pageHeaderExtraPanel
808+ objectName: "extraPanel"
809+
810+ anchors.horizontalCenter: root.horizontalCenter
811+ width: parent.width >= units.gu(60) ? units.gu(40) : root.parentWidth
812+ height: implicitHeight
813+ y: categoryView ? categoryView.pageHeader.height - root.extraPanelYOffset : 0
814+
815+ windowHeight: scopeView ? scopeView.height : 0
816+ visible: false
817+
818+ scope: root.scope
819+ searchHistory: root.searchHistory
820+
821+ onDashNavigationLeafClicked: root.dashNavigationLeafClicked();
822+
823+ onExtraPanelOptionSelected: {
824+ root.closePopup();
825+ categoryView.pageHeader.unfocus();
826+ }
827+
828+ onHistoryItemClicked: {
829+ searchHistory.addQuery(text);
830+ searchTextField.text = text;
831+ root.unfocus(false);
832+ }
833+ }
834+
835+ TextField {
836+ id: searchTextField
837+
838+ objectName: "searchTextField"
839+ inputMethodHints: Qt.ImhNoPredictiveText
840+ hasClearButton: false
841+ placeholderText: scope ? root.scope.searchHint : ""
842+ anchors {
843+ top: root.top
844+ topMargin: units.gu(1)
845+ left: parent.left
846+ bottom: parent.bottom
847+ bottomMargin: units.gu(1)
848+ right: settingsButton.left
849+ rightMargin: settingsButton.visible ? 0 : units.gu(2)
850+ }
851+
852+ primaryItem: Rectangle {
853+ color: "#F5F4F5"
854+ width: root.navigationTag != "" ? tagLabel.width + units.gu(2) : 0
855+ height: root.navigationTag != "" ? tagLabel.height + units.gu(1) : 0
856+ radius: units.gu(0.5)
857+ Label {
858+ id: tagLabel
859+ text: root.navigationTag
860+ anchors.centerIn: parent
861+ color: "#333333"
862+ }
863+ }
864+
865+ secondaryItem: AbstractButton {
866+ id: clearButton
867+ height: searchTextField.height
868+ width: height
869+ enabled: searchTextField.text.length > 0 || root.navigationTag != ""
870+
871+ Image {
872+ objectName: "clearIcon"
873+ anchors.fill: parent
874+ anchors.margins: units.gu(1)
875+ source: "image://theme/clear"
876+ opacity: parent.enabled
877+ visible: opacity > 0
878+ Behavior on opacity {
879+ UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
880+ }
881+ }
882+
883+ onClicked: {
884+ root.clearSearch(true);
885+ }
886+ }
887+
888+ onActiveFocusChanged: {
889+ if (activeFocus) {
890+ root.searchTextFieldFocused();
891+ root.showExtraPanel();
892+ }
893+ }
894+
895+ onTextChanged: {
896+ if (text != "") {
897+ root.closePopup(/* keepFocus */true);
898+ }
899+ }
900+ }
901+
902+ AbstractButton {
903+ id: settingsButton
904+ objectName: "settingsButton"
905+
906+ width: root.scopeHasFilters ? height : 0
907+ visible: width > 0
908+
909+ anchors {
910+ top: parent.top
911+ right: cancelButton.left
912+ bottom: parent.bottom
913+ rightMargin: units.gu(-1)
914+ }
915+
916+ Icon {
917+ anchors.fill: parent
918+ anchors.margins: units.gu(2)
919+ name: "filters"
920+ color: root.activeFiltersCount > 0 ? theme.palette.normal.positive : header.__styleInstance.foregroundColor
921+ }
922+
923+ onClicked: {
924+ root.showFiltersPopup(settingsButton);
925+ }
926+ }
927+
928+ AbstractButton {
929+ id: cancelButton
930+ objectName: "cancelButton"
931+ width: cancelLabel.width + cancelLabel.anchors.rightMargin + cancelLabel.anchors.leftMargin
932+
933+ anchors {
934+ top: parent.top
935+ right: parent.right
936+ bottom: parent.bottom
937+ }
938+
939+ onClicked: {
940+ root.clearSearch(false);
941+ cancelSearch(false);
942+ root.unfocus(false);
943+ }
944+
945+ Label {
946+ id: cancelLabel
947+ text: i18n.tr("Cancel")
948+ color: header.__styleInstance.foregroundColor
949+ verticalAlignment: Text.AlignVCenter
950+ anchors {
951+ verticalCenter: parent.verticalCenter
952+ right: parent.right
953+ rightMargin: units.gu(2)
954+ leftMargin: units.gu(1)
955+ }
956+ }
957+ }
958+}
959
960=== removed file 'qml/Dash/graphics/overview_hint@27.png'
961Binary files qml/Dash/graphics/overview_hint@27.png 2016-06-03 23:00:28 +0000 and qml/Dash/graphics/overview_hint@27.png 1970-01-01 00:00:00 +0000 differ
962=== added file 'qml/Dash/graphics/overview_hint@30.png'
963Binary files qml/Dash/graphics/overview_hint@30.png 1970-01-01 00:00:00 +0000 and qml/Dash/graphics/overview_hint@30.png 2016-10-21 10:07:36 +0000 differ
964=== removed file 'qml/Dash/graphics/pagination_dot_off@30.png'
965Binary files qml/Dash/graphics/pagination_dot_off@30.png 2016-06-03 23:00:28 +0000 and qml/Dash/graphics/pagination_dot_off@30.png 1970-01-01 00:00:00 +0000 differ
966=== removed file 'qml/Dash/graphics/pagination_dot_on@30.png'
967Binary files qml/Dash/graphics/pagination_dot_on@30.png 2016-06-03 23:00:28 +0000 and qml/Dash/graphics/pagination_dot_on@30.png 1970-01-01 00:00:00 +0000 differ
968=== removed file 'qml/Dash/graphics/paper.png'
969Binary files qml/Dash/graphics/paper.png 2016-06-03 23:00:28 +0000 and qml/Dash/graphics/paper.png 1970-01-01 00:00:00 +0000 differ
970=== modified file 'tests/qmltests/Dash/tst_Dash.qml'
971--- tests/qmltests/Dash/tst_Dash.qml 2016-09-22 07:41:49 +0000
972+++ tests/qmltests/Dash/tst_Dash.qml 2016-10-21 10:07:36 +0000
973@@ -88,6 +88,14 @@
974 return findChild(genericScopeView, categoryName);
975 }
976
977+ function getExtraPanel(searchHeaderContents) {
978+ if (searchHeaderContents.extraPanelVisible) {
979+ return findChild(searchHeaderContents.thePopover, "extraPanel");
980+ } else {
981+ return findChild(searchHeaderContents, "extraPanel");
982+ }
983+ }
984+
985 function getCategoryDelegate(category, delegate) {
986 var dashContentList = findChild(dash, "dashContentList");
987 var genericScopeView = dashContentList.currentItem;
988@@ -133,7 +141,8 @@
989
990 var dashContentList = findChild(dashContent, "dashContentList")
991 var searchButton = findChild(dashContentList.currentItem, "search_button")
992- var extraPanel = findChild(dashContentList.currentItem, "peExtraPanel")
993+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
994+ var extraPanel = getExtraPanel(searchHeaderContents);
995 waitForRendering(extraPanel);
996 tryCompare(extraPanel, "visible", false)
997
998@@ -171,7 +180,8 @@
999 var dashContentList = findChild(dashContent, "dashContentList")
1000 var searchButton = findChild(dashContentList.currentItem, "search_button")
1001 verify(searchButton)
1002- var extraPanel = findChild(dashContentList.currentItem, "peExtraPanel")
1003+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1004+ var extraPanel = getExtraPanel(searchHeaderContents);
1005 verify(extraPanel)
1006
1007 var primaryFilter = findChild(extraPanel, "primaryFilter")
1008
1009=== modified file 'tests/qmltests/Dash/tst_DashContent.qml'
1010--- tests/qmltests/Dash/tst_DashContent.qml 2016-08-30 09:33:01 +0000
1011+++ tests/qmltests/Dash/tst_DashContent.qml 2016-10-21 10:07:36 +0000
1012@@ -100,6 +100,21 @@
1013 tryCompare(dashContentList, "count", 0);
1014 }
1015
1016+ function test_escape_clears_search() {
1017+ var dashContentList = findChild(dashContent, "dashContentList");
1018+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1019+ var searchButton = findChild(dashContentList.currentItem, "search_button");
1020+ var headerContainer = findChild(dashContentList.currentItem, "headerContainer");
1021+ var query = "This is a fun search query!";
1022+ mouseClick(searchButton);
1023+ typeString(query);
1024+ compare(searchHeaderContents.searchTextField.text, query);
1025+
1026+ keyClick(Qt.Key_Escape);
1027+ compare(searchHeaderContents.searchTextField.text, "");
1028+ tryCompare(headerContainer, "showSearch", false);
1029+ }
1030+
1031 function test_current_index() {
1032 var dashContentList = findChild(dashContent, "dashContentList");
1033 verify(dashContentList != undefined)
1034@@ -282,15 +297,18 @@
1035
1036 function test_mainNavigation() {
1037 var dashContentList = findChild(dashContent, "dashContentList");
1038- var dashNavigation = findChild(dashContentList.currentItem, "dashNavigation");
1039- var peExtraPanel = findChild(dashContentList.currentItem, "peExtraPanel");
1040+ tryCompareFunction(function() { return findChild(dashContentList.currentItem, "dashNavigation") != null; }, true);
1041+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1042+ var peExtraPanel = findChild(searchHeaderContents, "extraPanel");
1043+ var dashNavigation = findChild(peExtraPanel, "dashNavigation");
1044 var searchButton = findChild(dashContentList.currentItem, "search_button");
1045 var searchTextField = findChild(dashContentList.currentItem, "searchTextField");
1046 compare(peExtraPanel.visible, false);
1047 mouseClick(searchButton);
1048 tryCompare(peExtraPanel, "visible", true);
1049- peExtraPanel.searchHistory.clear();
1050+ searchHeaderContents.searchHistory.clear();
1051
1052+ tryCompareFunction(function() { return dashNavigation != null; }, true);
1053 var navigationListView = findChild(dashNavigation, "navigationListView");
1054 tryCompareFunction(function() {
1055 return navigationListView.currentItem &&
1056@@ -300,9 +318,11 @@
1057 waitForRendering(navigationListView);
1058 waitForRendering(navigationListView.currentItem);
1059
1060+ tryCompareFunction(function() { return dashNavigation != null; }, true);
1061+
1062 var navigation = findChild(dashNavigation, "navigation0child3");
1063 mouseClick(navigation);
1064- compare(peExtraPanel.visible, false);
1065+ tryCompare(peExtraPanel, "visible", false);
1066 tryCompare(dashNavigation.currentNavigation, "navigationId", "middle3");
1067 tryCompare(navigationListView.currentItem.navigation, "navigationId", "root");
1068
1069@@ -314,19 +334,23 @@
1070 var header0 = findChild(dashNavigation, "dashNavigationHeader0");
1071 compare(header0.backVisible, false);
1072 mouseClick(header0);
1073- compare(peExtraPanel.visible, false);
1074+ tryCompare(peExtraPanel, "visible", false);
1075 tryCompare(dashNavigation.currentNavigation, "navigationId", "root");
1076 tryCompare(navigationListView.currentItem.navigation, "navigationId", "root");
1077
1078 var headerContainer = findChild(dashContentList.currentItem, "headerContainer");
1079+
1080 tryCompare(headerContainer, "clip", false);
1081 verify(headerContainer.state !== "search");
1082 mouseClick(searchButton);
1083+
1084 tryCompare(peExtraPanel, "visible", true);
1085 waitForRendering(navigationListView);
1086 waitForRendering(navigationListView.currentItem);
1087
1088 navigation = findChild(dashNavigation, "navigation0child2");
1089+
1090+ getSettledButtons();
1091 mouseClick(navigation);
1092 compare(peExtraPanel.visible, true);
1093 tryCompare(dashNavigation.currentNavigation, "navigationId", "middle2");
1094@@ -340,7 +364,7 @@
1095 tryCompare(navigationListView, "contentX", navigationList1.x);
1096 waitForRendering(navigationListView);
1097 mouseClick(header1);
1098- compare(peExtraPanel.visible, false);
1099+ tryCompare(peExtraPanel, "visible", false);
1100 tryCompare(dashNavigation.currentNavigation, "navigationId", "middle2");
1101 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle2");
1102
1103@@ -356,7 +380,7 @@
1104 tryCompare(navigationList1, "height", navigationList1.implicitHeight);
1105 navigation = findChild(dashNavigation, "navigation1child2");
1106 mouseClick(navigation);
1107- compare(peExtraPanel.visible, false);
1108+ tryCompare(peExtraPanel, "visible", false);
1109 tryCompare(dashNavigation.currentNavigation, "navigationId", "childmiddle22");
1110 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle2");
1111
1112@@ -368,7 +392,7 @@
1113 tryCompare(navigationList1.navigation, "loaded", true);
1114 navigation = findChild(dashNavigation, "navigation1child3");
1115 mouseClick(navigation);
1116- compare(peExtraPanel.visible, false);
1117+ tryCompare(peExtraPanel, "visible", false);
1118 tryCompare(dashNavigation.currentNavigation, "navigationId", "childmiddle23");
1119 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle2");
1120
1121@@ -380,9 +404,9 @@
1122
1123 tryCompare(dashNavigation.currentNavigation, "navigationId", "root");
1124 tryCompare(navigationListView.currentItem.navigation, "navigationId", "root");
1125- compare(peExtraPanel.visible, true);
1126+ tryCompare(peExtraPanel, "visible", true);
1127 mouseClick(header0);
1128- compare(peExtraPanel.visible, false);
1129+ tryCompare(peExtraPanel, "visible", false);
1130
1131 tryCompare(headerContainer, "clip", false);
1132 verify(headerContainer.state !== "search");
1133@@ -394,7 +418,7 @@
1134 tryCompare(navigationList0, "height", navigationList0.implicitHeight);
1135 navigation = findChild(dashNavigation, "navigation0child2");
1136 mouseClick(navigation);
1137- compare(peExtraPanel.visible, true);
1138+ tryCompare(peExtraPanel, "visible", true);
1139 navigationList1 = findChild(dashNavigation, "navigation1");
1140 compare(navigationList1.navigation.loaded, false);
1141 tryCompare(dashNavigation.currentNavigation, "navigationId", "middle2");
1142@@ -404,13 +428,16 @@
1143
1144 function goToSecondLevel() {
1145 var dashContentList = findChild(dashContent, "dashContentList");
1146- var dashNavigation = findChild(dashContentList.currentItem, "dashNavigation");
1147- var peExtraPanel = findChild(dashContentList.currentItem, "peExtraPanel");
1148+ var searchHeaderContents = findChild(dashContentList.currentItem,
1149+ "searchHeaderContents");
1150+ var extraPanel = findChild(searchHeaderContents, "extraPanel");
1151+ var dashNavigation = findChild(extraPanel, "dashNavigation");
1152 var searchButton = findChild(dashContentList.currentItem, "search_button");
1153 var searchTextField = findChild(dashContentList.currentItem, "searchTextField");
1154- compare(peExtraPanel.visible, false);
1155+ compare(extraPanel.visible, false);
1156 mouseClick(searchButton);
1157- tryCompare(peExtraPanel, "visible", true);
1158+ tryCompareFunction(function() { return findChild(extraPanel, "dashNavigation") != null; }, true);
1159+ tryCompare(extraPanel, "visible", true);
1160
1161 var navigationListView = findChild(dashNavigation, "navigationListView");
1162 tryCompareFunction(function() {
1163@@ -421,7 +448,10 @@
1164 waitForRendering(navigationListView.currentItem);
1165
1166 var navigation4 = findChild(dashNavigation, "navigation0child4");
1167+ waitForRendering(navigation4);
1168+ getSettledButtons();
1169 mouseClick(navigation4);
1170+
1171 tryCompare(dashNavigation.currentNavigation, "navigationId", "middle4");
1172 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle4");
1173 tryCompare(dashNavigation.currentNavigation, "loaded", true);
1174@@ -447,9 +477,17 @@
1175 goToSecondLevel();
1176
1177 var dashContentList = findChild(dashContent, "dashContentList");
1178- var dashNavigation = findChild(dashContentList.currentItem, "dashNavigation");
1179+
1180+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1181+ var pageHeader = findChild(dashContentList.currentItem, "scopePageHeader")
1182+ var searchTextField = findChild(pageHeader, "searchTextField");
1183+ var extraPanel = findChild(searchHeaderContents, "extraPanel");
1184+ var dashNavigation = findChild(extraPanel, "dashNavigation");
1185+
1186+ mouseClick(searchTextField);
1187+ tryCompare(searchHeaderContents, "extraPanelVisible", true);
1188+
1189 var navigationListView = findChild(dashNavigation, "navigationListView");
1190- var peExtraPanel = findChild(dashContentList.currentItem, "peExtraPanel");
1191
1192 // Go directly to the root pressing the back button of header1
1193 var header1 = findChild(dashNavigation, "dashNavigationHeader1");
1194@@ -458,16 +496,22 @@
1195
1196 tryCompare(dashNavigation.currentNavigation, "navigationId", "root");
1197 tryCompare(navigationListView.currentItem.navigation, "navigationId", "root");
1198- compare(peExtraPanel.visible, true);
1199+ tryCompare(searchHeaderContents, "extraPanelVisible", true);
1200 }
1201
1202 function test_navigationSecondLevelToFirstName() {
1203 goToSecondLevel();
1204
1205 var dashContentList = findChild(dashContent, "dashContentList");
1206- var dashNavigation = findChild(dashContentList.currentItem, "dashNavigation");
1207+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1208+ var extraPanel = findChild(searchHeaderContents, "extraPanel");
1209+ var dashNavigation = findChild(extraPanel, "dashNavigation");
1210+ var pageHeader = findChild(dashContentList.currentItem, "scopePageHeader")
1211+ var searchTextField = findChild(pageHeader, "searchTextField");
1212 var navigationListView = findChild(dashNavigation, "navigationListView");
1213- var peExtraPanel = findChild(dashContentList.currentItem, "peExtraPanel");
1214+
1215+ mouseClick(searchTextField);
1216+ tryCompare(searchHeaderContents, "extraPanelVisible", true);
1217
1218 // Go directly to the first pressing the header1
1219 var header1 = findChild(dashNavigation, "dashNavigationHeader1");
1220@@ -475,57 +519,60 @@
1221
1222 tryCompare(dashNavigation.currentNavigation, "navigationId", "middle4");
1223 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle4");
1224- compare(peExtraPanel.visible, false);
1225+ tryCompare(searchHeaderContents, "extraPanelVisible", false);
1226 }
1227
1228- function test_navigationSecondLevelToFirstBack() {
1229+
1230+ function test_navigationSecondLevelToFirstBack() {
1231 goToSecondLevel();
1232
1233 var dashContentList = findChild(dashContent, "dashContentList");
1234- var dashNavigation = findChild(dashContentList.currentItem, "dashNavigation");
1235- var navigationListView = findChild(dashNavigation, "navigationListView");
1236- var peExtraPanel = findChild(dashContentList.currentItem, "peExtraPanel");
1237+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1238+ var extraPanel = findChild(searchHeaderContents, "extraPanel")
1239+ var dashNavigation = findChild(extraPanel, "dashNavigation");
1240
1241 // Go back to the first level pressing the back button of header2
1242 var header2 = findChild(dashNavigation, "dashNavigationHeader2");
1243 compare(header2.backVisible, true);
1244 mouseClick(findChild(header2, "backButton"));
1245
1246+ var navigationListView = findChild(dashNavigation, "navigationListView");
1247 tryCompare(dashNavigation.currentNavigation, "navigationId", "middle4");
1248 tryCompare(navigationListView.currentItem.navigation, "navigationId", "middle4");
1249- compare(peExtraPanel.visible, true);
1250+ tryCompare(searchHeaderContents, "extraPanelVisible", true);
1251 }
1252
1253 function test_clearSearchWithNavigationClosed() {
1254 var dashContentList = findChild(dashContent, "dashContentList");
1255+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1256 var searchButton = findChild(dashContentList.currentItem, "search_button");
1257- var peExtraPanel = findChild(dashContentList.currentItem, "peExtraPanel");
1258 var searchTextField = findChild(dashContentList.currentItem, "searchTextField");
1259
1260- compare(peExtraPanel.visible, false);
1261+ tryCompare(searchHeaderContents, "extraPanelVisible", false);
1262 mouseClick(searchButton);
1263- tryCompare(peExtraPanel, "visible", true);
1264+ tryCompare(searchHeaderContents, "extraPanelVisible", true);
1265
1266 typeString("A");
1267- compare(peExtraPanel.visible, false);
1268+ tryCompare(searchHeaderContents, "extraPanelVisible", false);
1269
1270 var clearIcon = findChild(searchTextField, "clearIcon");
1271 mouseClick(clearIcon);
1272- tryCompare(peExtraPanel, "visible", true);
1273+ tryCompare(searchHeaderContents, "extraPanelVisible", true);
1274 }
1275
1276 function test_navigationShowFilterPopup() {
1277 var dashContentList = findChild(dashContent, "dashContentList");
1278 var pageHeader = findChild(dashContentList.currentItem, "scopePageHeader")
1279 var settingsButton = findChild(dashContentList.currentItem, "settingsButton");
1280+ var searchHeaderContents = findChild(dashContentList.currentItem,
1281+ "searchHeaderContents");
1282 var searchButton = findChild(dashContentList.currentItem, "search_button");
1283- var cancelButton = findChild(dashContentList.currentItem, "cancelButton");
1284+ var cancelButton = findChild(searchHeaderContents, "cancelButton");
1285 var searchTextField = findChild(pageHeader, "searchTextField");
1286- var peExtraPanel = findChild(dashContentList.currentItem, "peExtraPanel");
1287 var headerContainer = findChild(pageHeader, "headerContainer");
1288
1289 mouseClick(searchButton);
1290- tryCompare(peExtraPanel, "visible", true);
1291+ tryCompare(searchHeaderContents, "extraPanelVisible", true);
1292
1293 var filtersPopover = findChild(shell, "filtersPopover")
1294 verify(!filtersPopover);
1295@@ -550,10 +597,11 @@
1296 // test that closing the filters popover without a search unfocuses and removes the navigation
1297 mouseClick(shell, shell.width - 1, shell.height - 1);
1298
1299- tryCompare(pageHeader.extraPanel, "visible", false);
1300+ tryCompare(searchHeaderContents, "extraPanelVisible", false);
1301 tryCompare(headerContainer, "showSearch", true);
1302 tryCompare(searchTextField, "focus", false);
1303
1304+ getSettledButtons();
1305 mouseClick(cancelButton);
1306 tryCompare(headerContainer, "showSearch", false);
1307 tryCompare(headerContainer, "clip", false);
1308@@ -572,34 +620,38 @@
1309
1310 mouseClick(shell, shell.width - 1, shell.height - 1);
1311
1312- tryCompare(pageHeader.extraPanel, "visible", false);
1313+ tryCompare(searchHeaderContents, "extraPanelVisible", false);
1314 tryCompare(headerContainer, "showSearch", true);
1315 }
1316
1317 function test_primaryFilter() {
1318 var dashContentList = findChild(dashContent, "dashContentList");
1319- tryCompareFunction(function() { return findChild(dashContentList.currentItem, "dashNavigation", 0 /* timeout */) != null; }, true);
1320 dashContentList.currentItem.item.scope.setHasNavigation(false);
1321- var peExtraPanel = findChild(dashContentList.currentItem, "peExtraPanel");
1322+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1323 var searchButton = findChild(dashContentList.currentItem, "search_button");
1324+ var extraPanel = findChild(searchHeaderContents, "extraPanel");
1325+ var dashNavigation = findChild(extraPanel, "dashNavigation");
1326
1327- compare(peExtraPanel.visible, false);
1328+ tryCompare(searchHeaderContents, "extraPanelVisible", false);
1329 mouseClick(searchButton);
1330- tryCompare(peExtraPanel, "visible", true);
1331-
1332- tryCompareFunction(function() { return findChild(peExtraPanel, "OSF3", 0 /* timeout */) != null; }, true);
1333+ tryCompare(searchHeaderContents, "extraPanelVisible", true);
1334+ tryCompareFunction(function() { return dashNavigation != null; }, true);
1335+ tryCompareFunction(function() { return findChild(extraPanel, "OSF3") != null; }, true);
1336 }
1337
1338 function test_searchHint() {
1339 var dashContentList = findChild(dashContent, "dashContentList");
1340 verify(dashContentList !== null);
1341 var scope = findChild(dashContent, "scopeLoader0");
1342+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents")
1343+ var searchTextField = findChild(searchHeaderContents, "searchTextField")
1344 waitForRendering(scope);
1345
1346 var categoryListView = findChild(scope, "categoryListView");
1347 waitForRendering(categoryListView);
1348
1349 compare(categoryListView.pageHeader.searchHint, "Search People");
1350+ compare(searchTextField.placeholderText, "Search People")
1351 }
1352
1353 function compareArrays(a, b) {
1354@@ -681,6 +733,9 @@
1355 function test_extraPanel() {
1356 var dashContentList = findChild(dashContent, "dashContentList");
1357 var pageHeader = findChild(dashContentList.currentItem, "scopePageHeader")
1358+ var searchHeaderContents = findChild(pageHeader, "searchHeaderContents");
1359+ var extraPanel = findChild(searchHeaderContents, "extraPanel")
1360+
1361 pageHeader.searchEntryEnabled = true;
1362 pageHeader.searchHistory.clear();
1363
1364@@ -688,25 +743,28 @@
1365 pageHeader.searchHistory.addQuery("Search2");
1366
1367 pageHeader.triggerSearch();
1368- tryCompare(pageHeader.extraPanel, "visible", true);
1369+ tryCompare(extraPanel, "visible", true);
1370
1371 var searchTextField = findChild(pageHeader, "searchTextField");
1372 compare(searchTextField.focus, true);
1373
1374- var recentSearches = findChild(pageHeader.extraPanel, "recentSearchesRepeater");
1375+ var recentSearches = findChild(extraPanel, "recentSearchesRepeater");
1376 verify(recentSearches, "Could not find recent searches");
1377-
1378 waitForRendering(recentSearches);
1379
1380+ tryCompare(recentSearches.itemAt(0), "visible", true);
1381+
1382+ getSettledButtons();
1383 mouseClick(recentSearches.itemAt(0));
1384- compare(pageHeader.searchQuery, "Search2");
1385- tryCompare(pageHeader.extraPanel, "visible", false);
1386+ tryCompare(pageHeader, "searchQuery", "Search2");
1387+ tryCompare(extraPanel, "visible", false);
1388 compare(searchTextField.focus, false);
1389 }
1390
1391 function test_cancelSearch() {
1392 var dashContentList = findChild(dashContent, "dashContentList");
1393 var pageHeader = findChild(dashContentList.currentItem, "scopePageHeader")
1394+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents");
1395 pageHeader.searchEntryEnabled = true;
1396 pageHeader.searchHistory.clear();
1397
1398@@ -714,15 +772,15 @@
1399 pageHeader.searchHistory.addQuery("Search2");
1400
1401 pageHeader.triggerSearch();
1402- tryCompare(pageHeader.extraPanel, "visible", true);
1403
1404 var searchTextField = findChild(pageHeader, "searchTextField");
1405 compare(searchTextField.focus, true);
1406
1407- var cancelButton = findChild(dashContentList.currentItem, "cancelButton")
1408-
1409+ var searchHeaderContents = findChild(dashContentList.currentItem, "searchHeaderContents")
1410+ var cancelButton = findChild(searchHeaderContents, "cancelButton");
1411+ waitForRendering(cancelButton)
1412 mouseClick(cancelButton);
1413- tryCompare(pageHeader.extraPanel, "visible", false);
1414+ tryCompare(searchHeaderContents, "extraPanelVisible", false);
1415 compare(searchTextField.focus, false);
1416 }
1417 }
1418
1419=== modified file 'tests/qmltests/Dash/tst_DashPageHeader.qml'
1420--- tests/qmltests/Dash/tst_DashPageHeader.qml 2016-08-03 15:51:32 +0000
1421+++ tests/qmltests/Dash/tst_DashPageHeader.qml 2016-10-21 10:07:36 +0000
1422@@ -28,12 +28,6 @@
1423 width: units.gu(110)
1424 height: units.gu(50)
1425
1426- SignalSpy {
1427- id: escapeSpy
1428- target: pageHeader
1429- signalName: "clearSearch"
1430- }
1431-
1432 UT.UnityTestCase {
1433 name: "PageHeaderLabelTest"
1434 when: windowShown
1435@@ -58,13 +52,13 @@
1436 searchEnabled = true;
1437
1438 // Reset to initial state
1439- pageHeader.searchQuery = "";
1440- pageHeader.closePopup();
1441- pageHeader.searchHistory.clear();
1442+ pageHeader.searchContents.searchTextField.text = "";
1443+ pageHeader.searchContents.closePopup();
1444+ pageHeader.searchContents.searchHistory.clear();
1445
1446 // Check initial state
1447- tryCompare(pageHeader.extraPanel, "visible", false);
1448- compare(pageHeader.searchHistory.count, 0);
1449+ tryCompare(pageHeader.searchContents, "extraPanelVisible", false);
1450+ compare(pageHeader.searchContents.searchHistory.count, 0);
1451 }
1452
1453 function test_search_disabled() {
1454@@ -153,7 +147,6 @@
1455
1456 function cleanup() {
1457 doResetSearch();
1458- escapeSpy.clear();
1459 }
1460
1461 function test_popup_closing_data() {
1462@@ -173,9 +166,9 @@
1463 for (var j=0; j<paginationRepeater.count; j++) {
1464 var paginationDot = findChild(pageHeader, "paginationDots_"+j);
1465 if (i==j) {
1466- compare(paginationDot.source.toString().indexOf("pagination_dot_on") > -1, true);
1467+ compare(paginationDot.color, UbuntuColors.blue);
1468 } else {
1469- compare(paginationDot.source.toString().indexOf("pagination_dot_off") > -1, true);
1470+ compare(paginationDot.color.a, 0);
1471 }
1472 }
1473 }
1474@@ -194,7 +187,7 @@
1475 pageHeader.triggerSearch();
1476
1477 var headerContainer = findChild(pageHeader, "headerContainer");
1478- tryCompare(pageHeader.extraPanel, "visible", true);
1479+ tryCompare(pageHeader.searchContents, "extraPanelVisible", true);
1480
1481 pageHeader.searchQuery = data.searchText;
1482
1483@@ -205,7 +198,7 @@
1484 }
1485
1486 tryCompare(headerContainer, "showSearch", !data.hideSearch);
1487- tryCompare(pageHeader.extraPanel, "visible", false);
1488+ tryCompare(pageHeader.searchContents, "extraPanelVisible", false);
1489
1490 doResetSearch();
1491 }
1492@@ -220,26 +213,19 @@
1493 pageHeader.triggerSearch();
1494
1495 var headerContainer = findChild(pageHeader, "headerContainer");
1496- tryCompare(pageHeader.extraPanel, "visible", true);
1497+ tryCompare(pageHeader.searchContents, "extraPanelVisible", true);
1498
1499 pageHeader.searchQuery = "foobar";
1500
1501 // press Esc once, the search should be cleared
1502 keyClick(Qt.Key_Escape);
1503- pageHeader.searchQuery = ""; // simulate clearing the text field, the clear button doesn't do anything on its own
1504- compare(escapeSpy.count, 1);
1505- compare(escapeSpy.signalArguments[0][0], true);
1506-
1507- escapeSpy.clear();
1508+ verify(pageHeader.searchQuery.length === 0)
1509
1510 // press Escape a second time, the whole search should be hidden
1511 keyClick(Qt.Key_Escape);
1512 tryCompare(headerContainer, "showSearch", false);
1513- compare(escapeSpy.count, 1);
1514- compare(escapeSpy.signalArguments[0][0], false);
1515- tryCompare(pageHeader.extraPanel, "visible", false);
1516-
1517- doResetSearch();
1518+ verify(pageHeader.searchQuery === "")
1519+ tryCompare(pageHeader.searchContents, "extraPanelVisible", false);
1520 }
1521
1522 function test_search_change_shows_search() {
1523@@ -266,7 +252,6 @@
1524 searchHistory: SearchHistoryModel
1525 searchEntryEnabled: true
1526 title: "%^$%^%^&%^&%^$%GHR%"
1527- extraPanel: peExtraPanel
1528 scopeStyle: QtObject {
1529 readonly property color foreground: theme.palette.normal.baseText
1530 readonly property url headerLogo: showImageCheckBox.checked ? pageHeader.titleImageSource : ""
1531@@ -278,18 +263,6 @@
1532 onBackClicked: lastBackClicked = new Date()
1533 }
1534
1535- PageHeaderExtraPanel {
1536- id: peExtraPanel
1537- width: parent.width
1538- z: 1
1539- visible: false
1540- searchHistory: SearchHistoryModel
1541- onHistoryItemClicked: {
1542- SearchHistoryModel.addQuery(text);
1543- pageHeader.searchQuery = text;
1544- }
1545- }
1546-
1547 Row {
1548 spacing: units.gu(1)
1549 anchors {
1550
1551=== modified file 'tests/qmltests/Dash/tst_GenericScopeView.qml'
1552--- tests/qmltests/Dash/tst_GenericScopeView.qml 2016-09-22 07:41:49 +0000
1553+++ tests/qmltests/Dash/tst_GenericScopeView.qml 2016-10-21 10:07:36 +0000
1554@@ -485,7 +485,7 @@
1555 mouseClick(seeAll0);
1556 verify(category0.expanded);
1557 tryCompare(category0, "height", category0.item.expandedHeight + seeAll0.height);
1558- tryCompare(genericScopeView.categoryView, "contentY", units.gu(8));
1559+ tryCompare(genericScopeView.categoryView, "contentY", units.gu(8.5));
1560
1561 scrollToEnd();
1562

Subscribers

People subscribed via source and target branches