Merge lp:~osomon/webbrowser-app/visual-tweaks into lp:webbrowser-app
- visual-tweaks
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Olivier Tilloy |
Approved revision: | 1375 |
Merged at revision: | 1371 |
Proposed branch: | lp:~osomon/webbrowser-app/visual-tweaks |
Merge into: | lp:webbrowser-app |
Diff against target: |
598 lines (+129/-110) 11 files modified
debian/control (+2/-0) src/Ubuntu/Web/ItemSelector02.qml (+7/-5) src/app/webbrowser/Browser.qml (+3/-0) src/app/webbrowser/HistoryViewWide.qml (+3/-13) src/app/webbrowser/NavigationBar.qml (+1/-0) src/app/webbrowser/NewTabViewWide.qml (+12/-1) src/app/webbrowser/SettingsPage.qml (+64/-38) src/app/webbrowser/TabsList.qml (+2/-2) src/app/webbrowser/UrlDelegate.qml (+9/-16) tests/autopilot/webbrowser_app/emulators/browser.py (+7/-12) tests/autopilot/webbrowser_app/tests/test_settings.py (+19/-23) |
To merge this branch: | bzr merge lp:~osomon/webbrowser-app/visual-tweaks |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot | continuous-integration | Needs Fixing | |
Ubuntu Phablet Team | Pending | ||
Review via email: mp+287169@code.launchpad.net |
Commit message
Visual tweaks per designers’ review.
Description of the change
- 1364. By Olivier Tilloy
-
Update tabs list background color, per visual design request.
- 1365. By Olivier Tilloy
-
Make the drawer menu’s inverse mouse area the topmost item to ensure that the tabs list cannot be opened while the drawer menu is displayed.
PS Jenkins bot (ps-jenkins) wrote : | # |
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1365
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 1366. By Olivier Tilloy
-
Merge the latest changes from trunk and resolve a minor conflict.
- 1367. By Olivier Tilloy
-
Fix activating entries in the drawer menu.
- 1368. By Olivier Tilloy
-
Update autopilot tests.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1366
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1368
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 1369. By Olivier Tilloy
-
Fix unit tests.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1369
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
- 1370. By Olivier Tilloy
-
Fix one more flake8 error.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1370
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 1371. By Olivier Tilloy
-
Remove UbuntuShape around favicons in history views, per visual design request.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1371
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 1372. By Olivier Tilloy
-
Fix a crash that seems to result from the interaction of the custom DirectionalDragArea element and a topmost InverseMouseArea.
- 1373. By Olivier Tilloy
-
Simplify code.
- 1374. By Olivier Tilloy
-
Use a RowLayout to make code more readable.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1372
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 1375. By Olivier Tilloy
-
Downgrade module import version to make it compatible with Qt 5.4.1 which is in vivid.
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1374
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild:
http://
PS Jenkins bot (ps-jenkins) wrote : | # |
FAILED: Continuous integration, rev:1375
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Preview Diff
1 | === modified file 'debian/control' | |||
2 | --- debian/control 2016-02-09 21:19:41 +0000 | |||
3 | +++ debian/control 2016-03-01 11:22:46 +0000 | |||
4 | @@ -21,6 +21,7 @@ | |||
5 | 21 | qml-module-qt-labs-folderlistmodel, | 21 | qml-module-qt-labs-folderlistmodel, |
6 | 22 | qml-module-qt-labs-settings, | 22 | qml-module-qt-labs-settings, |
7 | 23 | qml-module-qtquick2 (>= 5.4), | 23 | qml-module-qtquick2 (>= 5.4), |
8 | 24 | qml-module-qtquick-layouts, | ||
9 | 24 | qml-module-qttest, | 25 | qml-module-qttest, |
10 | 25 | qt5-default, | 26 | qt5-default, |
11 | 26 | qt5-qmake, | 27 | qt5-qmake, |
12 | @@ -48,6 +49,7 @@ | |||
13 | 48 | qml-module-qt-labs-folderlistmodel, | 49 | qml-module-qt-labs-folderlistmodel, |
14 | 49 | qml-module-qt-labs-settings, | 50 | qml-module-qt-labs-settings, |
15 | 50 | qml-module-qtquick2 (>= 5.4), | 51 | qml-module-qtquick2 (>= 5.4), |
16 | 52 | qml-module-qtquick-layouts, | ||
17 | 51 | qml-module-qtquick-window2 (>= 5.3), | 53 | qml-module-qtquick-window2 (>= 5.3), |
18 | 52 | qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3), | 54 | qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3), |
19 | 53 | qtdeclarative5-ubuntu-web-plugin (= ${binary:Version}), | 55 | qtdeclarative5-ubuntu-web-plugin (= ${binary:Version}), |
20 | 54 | 56 | ||
21 | === modified file 'src/Ubuntu/Web/ItemSelector02.qml' | |||
22 | --- src/Ubuntu/Web/ItemSelector02.qml 2015-08-10 15:22:00 +0000 | |||
23 | +++ src/Ubuntu/Web/ItemSelector02.qml 2016-03-01 11:22:46 +0000 | |||
24 | @@ -1,5 +1,5 @@ | |||
25 | 1 | /* | 1 | /* |
27 | 2 | * Copyright 2013-2015 Canonical Ltd. | 2 | * Copyright 2013-2016 Canonical Ltd. |
28 | 3 | * | 3 | * |
29 | 4 | * This file is part of webbrowser-app. | 4 | * This file is part of webbrowser-app. |
30 | 5 | * | 5 | * |
31 | @@ -18,7 +18,7 @@ | |||
32 | 18 | 18 | ||
33 | 19 | import QtQuick 2.4 | 19 | import QtQuick 2.4 |
34 | 20 | import Ubuntu.Components 1.3 | 20 | import Ubuntu.Components 1.3 |
36 | 21 | import Ubuntu.Components.ListItems 1.3 as ListItem | 21 | import Ubuntu.Components.ListItems 1.3 as ListItems |
37 | 22 | import Ubuntu.Components.Popups 1.3 | 22 | import Ubuntu.Components.Popups 1.3 |
38 | 23 | 23 | ||
39 | 24 | Popover { | 24 | Popover { |
40 | @@ -38,8 +38,10 @@ | |||
41 | 38 | 38 | ||
42 | 39 | model: selectorModel.items | 39 | model: selectorModel.items |
43 | 40 | 40 | ||
46 | 41 | delegate: ListItem.Standard { | 41 | delegate: ListItem { |
47 | 42 | text: model.text | 42 | ListItemLayout { |
48 | 43 | title.text: model.text | ||
49 | 44 | } | ||
50 | 43 | enabled: model.enabled | 45 | enabled: model.enabled |
51 | 44 | selected: model.selected | 46 | selected: model.selected |
52 | 45 | onClicked: { | 47 | onClicked: { |
53 | @@ -49,7 +51,7 @@ | |||
54 | 49 | } | 51 | } |
55 | 50 | 52 | ||
56 | 51 | section.property: "group" | 53 | section.property: "group" |
58 | 52 | section.delegate: ListItem.Header { | 54 | section.delegate: ListItems.Header { |
59 | 53 | text: section | 55 | text: section |
60 | 54 | } | 56 | } |
61 | 55 | 57 | ||
62 | 56 | 58 | ||
63 | === modified file 'src/app/webbrowser/Browser.qml' | |||
64 | --- src/app/webbrowser/Browser.qml 2016-02-23 11:24:33 +0000 | |||
65 | +++ src/app/webbrowser/Browser.qml 2016-03-01 11:22:46 +0000 | |||
66 | @@ -769,6 +769,9 @@ | |||
67 | 769 | (osk.state == "hidden") && (recentView.state == "") | 769 | (osk.state == "hidden") && (recentView.state == "") |
68 | 770 | visible: enabled | 770 | visible: enabled |
69 | 771 | height: visible ? units.gu(4) : 0 | 771 | height: visible ? units.gu(4) : 0 |
70 | 772 | // Ensure that this ends up below the chrome, so that the | ||
71 | 773 | // drawer menu’s inverse mouse area covers it. | ||
72 | 774 | z: -1 | ||
73 | 772 | 775 | ||
74 | 773 | onClicked: { | 776 | onClicked: { |
75 | 774 | recentView.state = "shown" | 777 | recentView.state = "shown" |
76 | 775 | 778 | ||
77 | === modified file 'src/app/webbrowser/HistoryViewWide.qml' | |||
78 | --- src/app/webbrowser/HistoryViewWide.qml 2016-01-28 18:35:14 +0000 | |||
79 | +++ src/app/webbrowser/HistoryViewWide.qml 2016-03-01 11:22:46 +0000 | |||
80 | @@ -306,19 +306,9 @@ | |||
81 | 306 | title: Highlight.highlightTerms(model.title ? model.title : model.url, searchQuery.terms) | 306 | title: Highlight.highlightTerms(model.title ? model.title : model.url, searchQuery.terms) |
82 | 307 | url: Highlight.highlightTerms(model.url, searchQuery.terms) | 307 | url: Highlight.highlightTerms(model.url, searchQuery.terms) |
83 | 308 | 308 | ||
97 | 309 | headerComponent: Component { | 309 | headerComponent: Label { |
98 | 310 | Item { | 310 | text: Qt.formatTime(model.lastVisit) |
99 | 311 | objectName: "historySectionDelegate" | 311 | fontSize: "xx-small" |
87 | 312 | height: units.gu(3) | ||
88 | 313 | width: timeLabel.width | ||
89 | 314 | |||
90 | 315 | Label { | ||
91 | 316 | id: timeLabel | ||
92 | 317 | anchors.centerIn: parent | ||
93 | 318 | text: Qt.formatTime(model.lastVisit) | ||
94 | 319 | fontSize: "xx-small" | ||
95 | 320 | } | ||
96 | 321 | } | ||
100 | 322 | } | 312 | } |
101 | 323 | 313 | ||
102 | 324 | onClicked: { | 314 | onClicked: { |
103 | 325 | 315 | ||
104 | === modified file 'src/app/webbrowser/NavigationBar.qml' | |||
105 | --- src/app/webbrowser/NavigationBar.qml 2016-02-18 09:29:20 +0000 | |||
106 | +++ src/app/webbrowser/NavigationBar.qml 2016-03-01 11:22:46 +0000 | |||
107 | @@ -256,6 +256,7 @@ | |||
108 | 256 | clip: actionsListView.y != 0 | 256 | clip: actionsListView.y != 0 |
109 | 257 | 257 | ||
110 | 258 | InverseMouseArea { | 258 | InverseMouseArea { |
111 | 259 | anchors.fill: parent | ||
112 | 259 | enabled: drawer.opened | 260 | enabled: drawer.opened |
113 | 260 | onPressed: drawer.opened = false | 261 | onPressed: drawer.opened = false |
114 | 261 | } | 262 | } |
115 | 262 | 263 | ||
116 | === modified file 'src/app/webbrowser/NewTabViewWide.qml' | |||
117 | --- src/app/webbrowser/NewTabViewWide.qml 2016-02-02 11:09:49 +0000 | |||
118 | +++ src/app/webbrowser/NewTabViewWide.qml 2016-03-01 11:22:46 +0000 | |||
119 | @@ -112,7 +112,7 @@ | |||
120 | 112 | left: parent.left | 112 | left: parent.left |
121 | 113 | right: parent.right | 113 | right: parent.right |
122 | 114 | } | 114 | } |
124 | 115 | color: "#f8f8f8" | 115 | color: "#ffffff" |
125 | 116 | height: sections.height | 116 | height: sections.height |
126 | 117 | 117 | ||
127 | 118 | Sections { | 118 | Sections { |
128 | @@ -139,5 +139,16 @@ | |||
129 | 139 | Action { text: i18n.tr("Bookmarks") } | 139 | Action { text: i18n.tr("Bookmarks") } |
130 | 140 | ] | 140 | ] |
131 | 141 | } | 141 | } |
132 | 142 | |||
133 | 143 | Rectangle { | ||
134 | 144 | // Divider, see Ubuntu/Components/Themes/Ambiance/1.3/PageHeaderStyle.qml | ||
135 | 145 | anchors { | ||
136 | 146 | left: parent.left | ||
137 | 147 | right: parent.right | ||
138 | 148 | top: parent.bottom | ||
139 | 149 | } | ||
140 | 150 | height: units.dp(1) | ||
141 | 151 | color: Qt.rgba(0, 0, 0, 0.1) | ||
142 | 152 | } | ||
143 | 142 | } | 153 | } |
144 | 143 | } | 154 | } |
145 | 144 | 155 | ||
146 | === modified file 'src/app/webbrowser/SettingsPage.qml' | |||
147 | --- src/app/webbrowser/SettingsPage.qml 2016-02-05 17:35:24 +0000 | |||
148 | +++ src/app/webbrowser/SettingsPage.qml 2016-03-01 11:22:46 +0000 | |||
149 | @@ -20,7 +20,6 @@ | |||
150 | 20 | import Qt.labs.settings 1.0 | 20 | import Qt.labs.settings 1.0 |
151 | 21 | import Ubuntu.Components 1.3 | 21 | import Ubuntu.Components 1.3 |
152 | 22 | import Ubuntu.Components.Popups 1.3 | 22 | import Ubuntu.Components.Popups 1.3 |
153 | 23 | import Ubuntu.Components.ListItems 1.3 as ListItems | ||
154 | 24 | import Ubuntu.Web 0.2 | 23 | import Ubuntu.Web 0.2 |
155 | 25 | import webbrowserapp.private 0.1 | 24 | import webbrowserapp.private 0.1 |
156 | 26 | 25 | ||
157 | @@ -68,8 +67,10 @@ | |||
158 | 68 | 67 | ||
159 | 69 | width: parent.width | 68 | width: parent.width |
160 | 70 | 69 | ||
162 | 71 | ListItems.Subtitled { | 70 | ListItem { |
163 | 71 | id: searchEngineListItem | ||
164 | 72 | objectName: "searchengine" | 72 | objectName: "searchengine" |
165 | 73 | readonly property string currentSearchEngineDisplayName: currentSearchEngine.name | ||
166 | 73 | 74 | ||
167 | 74 | SearchEngine { | 75 | SearchEngine { |
168 | 75 | id: currentSearchEngine | 76 | id: currentSearchEngine |
169 | @@ -77,32 +78,38 @@ | |||
170 | 77 | filename: settingsObject.searchEngine | 78 | filename: settingsObject.searchEngine |
171 | 78 | } | 79 | } |
172 | 79 | 80 | ||
175 | 80 | text: i18n.tr("Search engine") | 81 | ListItemLayout { |
176 | 81 | subText: currentSearchEngine.name | 82 | title.text: i18n.tr("Search engine") |
177 | 83 | subtitle.text: searchEngineListItem.currentSearchEngineDisplayName | ||
178 | 84 | } | ||
179 | 82 | 85 | ||
180 | 83 | visible: searchEngines.engines.count > 1 | 86 | visible: searchEngines.engines.count > 1 |
181 | 84 | |||
182 | 85 | onClicked: searchEngineComponent.createObject(subpageContainer) | 87 | onClicked: searchEngineComponent.createObject(subpageContainer) |
183 | 86 | } | 88 | } |
184 | 87 | 89 | ||
186 | 88 | ListItems.Subtitled { | 90 | ListItem { |
187 | 91 | id: homepageListItem | ||
188 | 89 | objectName: "homepage" | 92 | objectName: "homepage" |
189 | 93 | readonly property url currentHomepage: settingsObject.homepage | ||
190 | 90 | 94 | ||
193 | 91 | text: i18n.tr("Homepage") | 95 | ListItemLayout { |
194 | 92 | subText: settingsObject.homepage | 96 | title.text: i18n.tr("Homepage") |
195 | 97 | subtitle.text: homepageListItem.currentHomepage | ||
196 | 98 | } | ||
197 | 93 | 99 | ||
198 | 94 | onClicked: PopupUtils.open(homepageDialog) | 100 | onClicked: PopupUtils.open(homepageDialog) |
199 | 95 | } | 101 | } |
200 | 96 | 102 | ||
202 | 97 | ListItems.Standard { | 103 | ListItem { |
203 | 98 | objectName: "restoreSession" | 104 | objectName: "restoreSession" |
204 | 99 | 105 | ||
211 | 100 | text: i18n.tr("Restore previous session at startup") | 106 | ListItemLayout { |
212 | 101 | highlightWhenPressed: false | 107 | title.text: i18n.tr("Restore previous session at startup") |
213 | 102 | 108 | CheckBox { | |
214 | 103 | control: CheckBox { | 109 | id: restoreSessionCheckbox |
215 | 104 | id: restoreSessionCheckbox | 110 | SlotsLayout.position: SlotsLayout.Trailing |
216 | 105 | onTriggered: settingsObject.restoreSession = checked | 111 | onTriggered: settingsObject.restoreSession = checked |
217 | 112 | } | ||
218 | 106 | } | 113 | } |
219 | 107 | 114 | ||
220 | 108 | Binding { | 115 | Binding { |
221 | @@ -112,18 +119,22 @@ | |||
222 | 112 | } | 119 | } |
223 | 113 | } | 120 | } |
224 | 114 | 121 | ||
226 | 115 | ListItems.Standard { | 122 | ListItem { |
227 | 116 | objectName: "privacy" | 123 | objectName: "privacy" |
228 | 117 | 124 | ||
230 | 118 | text: i18n.tr("Privacy & permissions") | 125 | ListItemLayout { |
231 | 126 | title.text: i18n.tr("Privacy & permissions") | ||
232 | 127 | } | ||
233 | 119 | 128 | ||
234 | 120 | onClicked: privacyComponent.createObject(subpageContainer) | 129 | onClicked: privacyComponent.createObject(subpageContainer) |
235 | 121 | } | 130 | } |
236 | 122 | 131 | ||
238 | 123 | ListItems.Standard { | 132 | ListItem { |
239 | 124 | objectName: "reset" | 133 | objectName: "reset" |
240 | 125 | 134 | ||
242 | 126 | text: i18n.tr("Reset browser settings") | 135 | ListItemLayout { |
243 | 136 | title.text: i18n.tr("Reset browser settings") | ||
244 | 137 | } | ||
245 | 127 | 138 | ||
246 | 128 | onClicked: settingsObject.restoreDefaults() | 139 | onClicked: settingsObject.restoreDefaults() |
247 | 129 | } | 140 | } |
248 | @@ -167,20 +178,25 @@ | |||
249 | 167 | 178 | ||
250 | 168 | model: searchEngines.engines | 179 | model: searchEngines.engines |
251 | 169 | 180 | ||
254 | 170 | delegate: ListItems.Standard { | 181 | delegate: ListItem { |
255 | 171 | objectName: "searchEngineDelegate_" + index | 182 | id: searchEngineDelegate |
256 | 183 | objectName: "searchEngineDelegate" | ||
257 | 184 | readonly property string displayName: delegateSearchEngine.name | ||
258 | 172 | SearchEngine { | 185 | SearchEngine { |
260 | 173 | id: searchEngineDelegate | 186 | id: delegateSearchEngine |
261 | 174 | searchPaths: searchEngines.searchPaths | 187 | searchPaths: searchEngines.searchPaths |
262 | 175 | filename: model.filename | 188 | filename: model.filename |
263 | 176 | } | 189 | } |
264 | 177 | text: searchEngineDelegate.name | ||
265 | 178 | 190 | ||
271 | 179 | control: CheckBox { | 191 | ListItemLayout { |
272 | 180 | checked: settingsObject.searchEngine == searchEngineDelegate.filename | 192 | title.text: searchEngineDelegate.displayName |
273 | 181 | onClicked: { | 193 | CheckBox { |
274 | 182 | settingsObject.searchEngine = searchEngineDelegate.filename | 194 | SlotsLayout.position: SlotsLayout.Trailing |
275 | 183 | searchEngineItem.destroy() | 195 | checked: settingsObject.searchEngine == delegateSearchEngine.filename |
276 | 196 | onClicked: { | ||
277 | 197 | settingsObject.searchEngine = delegateSearchEngine.filename | ||
278 | 198 | searchEngineItem.destroy() | ||
279 | 199 | } | ||
280 | 184 | } | 200 | } |
281 | 185 | } | 201 | } |
282 | 186 | } | 202 | } |
283 | @@ -224,15 +240,19 @@ | |||
284 | 224 | id: privacyCol | 240 | id: privacyCol |
285 | 225 | width: parent.width | 241 | width: parent.width |
286 | 226 | 242 | ||
288 | 227 | ListItems.Standard { | 243 | ListItem { |
289 | 228 | objectName: "privacy.mediaAccess" | 244 | objectName: "privacy.mediaAccess" |
291 | 229 | text: i18n.tr("Camera & microphone") | 245 | ListItemLayout { |
292 | 246 | title.text: i18n.tr("Camera & microphone") | ||
293 | 247 | } | ||
294 | 230 | onClicked: mediaAccessComponent.createObject(subpageContainer) | 248 | onClicked: mediaAccessComponent.createObject(subpageContainer) |
295 | 231 | } | 249 | } |
296 | 232 | 250 | ||
298 | 233 | ListItems.Standard { | 251 | ListItem { |
299 | 234 | objectName: "privacy.clearHistory" | 252 | objectName: "privacy.clearHistory" |
301 | 235 | text: i18n.tr("Clear Browsing History") | 253 | ListItemLayout { |
302 | 254 | title.text: i18n.tr("Clear Browsing History") | ||
303 | 255 | } | ||
304 | 236 | enabled: HistoryModel.count > 0 | 256 | enabled: HistoryModel.count > 0 |
305 | 237 | onClicked: { | 257 | onClicked: { |
306 | 238 | var dialog = PopupUtils.open(privacyConfirmDialogComponent, privacyItem, {"title": i18n.tr("Clear Browsing History?")}) | 258 | var dialog = PopupUtils.open(privacyConfirmDialogComponent, privacyItem, {"title": i18n.tr("Clear Browsing History?")}) |
307 | @@ -240,9 +260,11 @@ | |||
308 | 240 | } | 260 | } |
309 | 241 | } | 261 | } |
310 | 242 | 262 | ||
312 | 243 | ListItems.Standard { | 263 | ListItem { |
313 | 244 | objectName: "privacy.clearCache" | 264 | objectName: "privacy.clearCache" |
315 | 245 | text: i18n.tr("Clear Cache") | 265 | ListItemLayout { |
316 | 266 | title.text: i18n.tr("Clear Cache") | ||
317 | 267 | } | ||
318 | 246 | onClicked: { | 268 | onClicked: { |
319 | 247 | var dialog = PopupUtils.open(privacyConfirmDialogComponent, privacyItem, {"title": i18n.tr("Clear Cache?")}) | 269 | var dialog = PopupUtils.open(privacyConfirmDialogComponent, privacyItem, {"title": i18n.tr("Clear Cache?")}) |
320 | 248 | dialog.confirmed.connect(function() { | 270 | dialog.confirmed.connect(function() { |
321 | @@ -383,8 +405,10 @@ | |||
322 | 383 | id: mediaAccessCol | 405 | id: mediaAccessCol |
323 | 384 | width: parent.width | 406 | width: parent.width |
324 | 385 | 407 | ||
327 | 386 | ListItems.Standard { | 408 | ListItem { |
328 | 387 | text: i18n.tr("Microphone") | 409 | ListItemLayout { |
329 | 410 | title.text: i18n.tr("Microphone") | ||
330 | 411 | } | ||
331 | 388 | } | 412 | } |
332 | 389 | 413 | ||
333 | 390 | SettingsDeviceSelector { | 414 | SettingsDeviceSelector { |
334 | @@ -402,8 +426,10 @@ | |||
335 | 402 | } | 426 | } |
336 | 403 | } | 427 | } |
337 | 404 | 428 | ||
340 | 405 | ListItems.Standard { | 429 | ListItem { |
341 | 406 | text: i18n.tr("Camera") | 430 | ListItemLayout { |
342 | 431 | title.text: i18n.tr("Camera") | ||
343 | 432 | } | ||
344 | 407 | } | 433 | } |
345 | 408 | 434 | ||
346 | 409 | SettingsDeviceSelector { | 435 | SettingsDeviceSelector { |
347 | 410 | 436 | ||
348 | === modified file 'src/app/webbrowser/TabsList.qml' | |||
349 | --- src/app/webbrowser/TabsList.qml 2015-11-17 14:50:31 +0000 | |||
350 | +++ src/app/webbrowser/TabsList.qml 2016-03-01 11:22:46 +0000 | |||
351 | @@ -1,5 +1,5 @@ | |||
352 | 1 | /* | 1 | /* |
354 | 2 | * Copyright 2014-2015 Canonical Ltd. | 2 | * Copyright 2014-2016 Canonical Ltd. |
355 | 3 | * | 3 | * |
356 | 4 | * This file is part of webbrowser-app. | 4 | * This file is part of webbrowser-app. |
357 | 5 | * | 5 | * |
358 | @@ -50,7 +50,7 @@ | |||
359 | 50 | right: parent.right | 50 | right: parent.right |
360 | 51 | } | 51 | } |
361 | 52 | height: invisibleTabChrome.height | 52 | height: invisibleTabChrome.height |
363 | 53 | color: "#fbfbfb" | 53 | color: "#111111" |
364 | 54 | } | 54 | } |
365 | 55 | 55 | ||
366 | 56 | Flickable { | 56 | Flickable { |
367 | 57 | 57 | ||
368 | === modified file 'src/app/webbrowser/UrlDelegate.qml' | |||
369 | --- src/app/webbrowser/UrlDelegate.qml 2016-02-01 17:52:43 +0000 | |||
370 | +++ src/app/webbrowser/UrlDelegate.qml 2016-03-01 11:22:46 +0000 | |||
371 | @@ -17,6 +17,7 @@ | |||
372 | 17 | */ | 17 | */ |
373 | 18 | 18 | ||
374 | 19 | import QtQuick 2.4 | 19 | import QtQuick 2.4 |
375 | 20 | import QtQuick.Layouts 1.1 | ||
376 | 20 | import Ubuntu.Components 1.3 | 21 | import Ubuntu.Components 1.3 |
377 | 21 | import ".." | 22 | import ".." |
378 | 22 | 23 | ||
379 | @@ -35,7 +36,7 @@ | |||
380 | 35 | 36 | ||
381 | 36 | signal removed() | 37 | signal removed() |
382 | 37 | 38 | ||
384 | 38 | Row { | 39 | RowLayout { |
385 | 39 | anchors { | 40 | anchors { |
386 | 40 | verticalCenter: parent.verticalCenter | 41 | verticalCenter: parent.verticalCenter |
387 | 41 | left: parent.left | 42 | left: parent.left |
388 | @@ -47,26 +48,18 @@ | |||
389 | 47 | 48 | ||
390 | 48 | Loader { | 49 | Loader { |
391 | 49 | id: headerComponentLoader | 50 | id: headerComponentLoader |
393 | 50 | sourceComponent: undefined | 51 | anchors.verticalCenter: parent.verticalCenter |
394 | 52 | visible: status == Loader.Ready | ||
395 | 51 | } | 53 | } |
396 | 52 | 54 | ||
406 | 53 | UbuntuShape { | 55 | Favicon { |
407 | 54 | id: iconContainer | 56 | id: icon |
408 | 55 | width: units.gu(3) | 57 | anchors.verticalCenter: parent.verticalCenter |
400 | 56 | height: width | ||
401 | 57 | |||
402 | 58 | Favicon { | ||
403 | 59 | id: icon | ||
404 | 60 | anchors.centerIn: parent | ||
405 | 61 | } | ||
409 | 62 | } | 58 | } |
410 | 63 | 59 | ||
411 | 64 | Column { | 60 | Column { |
417 | 65 | width: parent.width - headerComponentLoader.width - iconContainer.width - parent.spacing - (headerComponentLoader.sourceComponent ? parent.spacing : 0) | 61 | Layout.fillWidth: true |
418 | 66 | anchors { | 62 | anchors.verticalCenter: parent.verticalCenter |
414 | 67 | top: parent.top | ||
415 | 68 | bottom: parent.bottom | ||
416 | 69 | } | ||
419 | 70 | 63 | ||
420 | 71 | Label { | 64 | Label { |
421 | 72 | id: title | 65 | id: title |
422 | 73 | 66 | ||
423 | === modified file 'tests/autopilot/webbrowser_app/emulators/browser.py' | |||
424 | --- tests/autopilot/webbrowser_app/emulators/browser.py 2016-02-03 16:22:37 +0000 | |||
425 | +++ tests/autopilot/webbrowser_app/emulators/browser.py 2016-03-01 11:22:46 +0000 | |||
426 | @@ -508,30 +508,25 @@ | |||
427 | 508 | return self.select_single(BrowserPageHeader) | 508 | return self.select_single(BrowserPageHeader) |
428 | 509 | 509 | ||
429 | 510 | def get_searchengine_entry(self): | 510 | def get_searchengine_entry(self): |
431 | 511 | return self.select_single("Subtitled", objectName="searchengine") | 511 | return self.select_single(objectName="searchengine") |
432 | 512 | 512 | ||
433 | 513 | def get_searchengine_page(self): | 513 | def get_searchengine_page(self): |
436 | 514 | return self.wait_select_single("QQuickItem", | 514 | return self.wait_select_single(objectName="searchEnginePage") |
435 | 515 | objectName="searchEnginePage") | ||
437 | 516 | 515 | ||
438 | 517 | def get_homepage_entry(self): | 516 | def get_homepage_entry(self): |
440 | 518 | return self.select_single("Subtitled", objectName="homepage") | 517 | return self.select_single(objectName="homepage") |
441 | 519 | 518 | ||
442 | 520 | def get_restore_session_entry(self): | 519 | def get_restore_session_entry(self): |
447 | 521 | return self.select_single("Standard", objectName="restoreSession") | 520 | return self.select_single(objectName="restoreSession") |
444 | 522 | |||
445 | 523 | def get_background_tabs_entry(self): | ||
446 | 524 | return self.select_single("Standard", objectName="backgroundTabs") | ||
448 | 525 | 521 | ||
449 | 526 | def get_privacy_entry(self): | 522 | def get_privacy_entry(self): |
451 | 527 | return self.select_single("Standard", objectName="privacy") | 523 | return self.select_single(objectName="privacy") |
452 | 528 | 524 | ||
453 | 529 | def get_privacy_page(self): | 525 | def get_privacy_page(self): |
456 | 530 | return self.wait_select_single("QQuickItem", | 526 | return self.wait_select_single(objectName="privacySettings") |
455 | 531 | objectName="privacySettings") | ||
457 | 532 | 527 | ||
458 | 533 | def get_reset_settings_entry(self): | 528 | def get_reset_settings_entry(self): |
460 | 534 | return self.select_single("Standard", objectName="reset") | 529 | return self.select_single(objectName="reset") |
461 | 535 | 530 | ||
462 | 536 | 531 | ||
463 | 537 | class DownloadsPage(uitk.UbuntuUIToolkitCustomProxyObjectBase): | 532 | class DownloadsPage(uitk.UbuntuUIToolkitCustomProxyObjectBase): |
464 | 538 | 533 | ||
465 | === modified file 'tests/autopilot/webbrowser_app/tests/test_settings.py' | |||
466 | --- tests/autopilot/webbrowser_app/tests/test_settings.py 2015-09-03 12:58:26 +0000 | |||
467 | +++ tests/autopilot/webbrowser_app/tests/test_settings.py 2016-03-01 11:22:46 +0000 | |||
468 | @@ -1,6 +1,6 @@ | |||
469 | 1 | # -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*- | 1 | # -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*- |
470 | 2 | # | 2 | # |
472 | 3 | # Copyright 2015 Canonical | 3 | # Copyright 2015-2016 Canonical |
473 | 4 | # | 4 | # |
474 | 5 | # This program is free software: you can redistribute it and/or modify it | 5 | # This program is free software: you can redistribute it and/or modify it |
475 | 6 | # under the terms of the GNU General Public License version 3, as published | 6 | # under the terms of the GNU General Public License version 3, as published |
476 | @@ -20,7 +20,6 @@ | |||
477 | 20 | 20 | ||
478 | 21 | from testtools.matchers import Equals, GreaterThan, NotEquals | 21 | from testtools.matchers import Equals, GreaterThan, NotEquals |
479 | 22 | from autopilot.matchers import Eventually | 22 | from autopilot.matchers import Eventually |
480 | 23 | from autopilot.platform import model | ||
481 | 24 | 23 | ||
482 | 25 | import ubuntuuitoolkit as uitk | 24 | import ubuntuuitoolkit as uitk |
483 | 26 | 25 | ||
484 | @@ -45,7 +44,7 @@ | |||
485 | 45 | def test_open_close_searchengine_page(self): | 44 | def test_open_close_searchengine_page(self): |
486 | 46 | settings = self.open_settings() | 45 | settings = self.open_settings() |
487 | 47 | searchengine = settings.get_searchengine_entry() | 46 | searchengine = settings.get_searchengine_entry() |
489 | 48 | old_engine = searchengine.subText | 47 | old_engine = searchengine.currentSearchEngineDisplayName |
490 | 49 | self.assertThat(old_engine, NotEquals("")) | 48 | self.assertThat(old_engine, NotEquals("")) |
491 | 50 | self.pointing_device.click_object(searchengine) | 49 | self.pointing_device.click_object(searchengine) |
492 | 51 | searchengine_page = settings.get_searchengine_page() | 50 | searchengine_page = settings.get_searchengine_page() |
493 | @@ -53,18 +52,21 @@ | |||
494 | 53 | browser.BrowserPageHeader) | 52 | browser.BrowserPageHeader) |
495 | 54 | searchengine_header.click_back_button() | 53 | searchengine_header.click_back_button() |
496 | 55 | searchengine_page.wait_until_destroyed() | 54 | searchengine_page.wait_until_destroyed() |
498 | 56 | self.assertThat(searchengine.subText, Equals(old_engine)) | 55 | self.assertThat(searchengine.currentSearchEngineDisplayName, |
499 | 56 | Equals(old_engine)) | ||
500 | 57 | 57 | ||
501 | 58 | def test_change_searchengine(self): | 58 | def test_change_searchengine(self): |
502 | 59 | settings = self.open_settings() | 59 | settings = self.open_settings() |
503 | 60 | searchengine = settings.get_searchengine_entry() | 60 | searchengine = settings.get_searchengine_entry() |
505 | 61 | old_engine = searchengine.subText | 61 | old_engine = searchengine.currentSearchEngineDisplayName |
506 | 62 | self.assertThat(old_engine, NotEquals("")) | 62 | self.assertThat(old_engine, NotEquals("")) |
507 | 63 | self.pointing_device.click_object(searchengine) | 63 | self.pointing_device.click_object(searchengine) |
508 | 64 | searchengine_page = settings.get_searchengine_page() | 64 | searchengine_page = settings.get_searchengine_page() |
512 | 65 | self.assertThat(lambda: len(searchengine_page.select_many("Standard")), | 65 | self.assertThat(lambda: len(searchengine_page.select_many( |
513 | 66 | Eventually(GreaterThan(1))) | 66 | objectName="searchEngineDelegate")), |
514 | 67 | delegates = searchengine_page.select_many("Standard") | 67 | Eventually(GreaterThan(1))) |
515 | 68 | delegates = searchengine_page.select_many( | ||
516 | 69 | objectName="searchEngineDelegate") | ||
517 | 68 | delegates.sort(key=lambda delegate: delegate.objectName) | 70 | delegates.sort(key=lambda delegate: delegate.objectName) |
518 | 69 | new_index = -1 | 71 | new_index = -1 |
519 | 70 | for (i, delegate) in enumerate(delegates): | 72 | for (i, delegate) in enumerate(delegates): |
520 | @@ -72,18 +74,19 @@ | |||
521 | 72 | if (new_index == -1) and not checkbox.checked: | 74 | if (new_index == -1) and not checkbox.checked: |
522 | 73 | new_index = i | 75 | new_index = i |
523 | 74 | self.assertThat(checkbox.checked, | 76 | self.assertThat(checkbox.checked, |
526 | 75 | Equals(delegate.text == old_engine)) | 77 | Equals(delegate.displayName == old_engine)) |
527 | 76 | new_engine = delegates[new_index].text | 78 | new_engine = delegates[new_index].displayName |
528 | 77 | self.assertThat(new_engine, NotEquals(old_engine)) | 79 | self.assertThat(new_engine, NotEquals(old_engine)) |
529 | 78 | self.pointing_device.click_object( | 80 | self.pointing_device.click_object( |
530 | 79 | delegates[new_index].select_single(uitk.CheckBox)) | 81 | delegates[new_index].select_single(uitk.CheckBox)) |
531 | 80 | searchengine_page.wait_until_destroyed() | 82 | searchengine_page.wait_until_destroyed() |
533 | 81 | self.assertThat(searchengine.subText, Eventually(Equals(new_engine))) | 83 | self.assertThat(searchengine.currentSearchEngineDisplayName, |
534 | 84 | Eventually(Equals(new_engine))) | ||
535 | 82 | 85 | ||
536 | 83 | def test_change_homepage(self): | 86 | def test_change_homepage(self): |
537 | 84 | settings = self.open_settings() | 87 | settings = self.open_settings() |
538 | 85 | homepage = settings.get_homepage_entry() | 88 | homepage = settings.get_homepage_entry() |
540 | 86 | old = homepage.subText | 89 | old = homepage.currentHomepage |
541 | 87 | self.assertThat(old, NotEquals("")) | 90 | self.assertThat(old, NotEquals("")) |
542 | 88 | 91 | ||
543 | 89 | # First test cancelling the edition | 92 | # First test cancelling the edition |
544 | @@ -97,7 +100,7 @@ | |||
545 | 97 | objectName="homepageDialog.cancelButton") | 100 | objectName="homepageDialog.cancelButton") |
546 | 98 | self.pointing_device.click_object(cancel_button) | 101 | self.pointing_device.click_object(cancel_button) |
547 | 99 | dialog.wait_until_destroyed() | 102 | dialog.wait_until_destroyed() |
549 | 100 | self.assertThat(homepage.subText, Equals(old)) | 103 | self.assertThat(homepage.currentHomepage, Equals(old)) |
550 | 101 | 104 | ||
551 | 102 | # Then test actually changing the homepage | 105 | # Then test actually changing the homepage |
552 | 103 | self.pointing_device.click_object(homepage) | 106 | self.pointing_device.click_object(homepage) |
553 | @@ -113,7 +116,7 @@ | |||
554 | 113 | objectName="homepageDialog.saveButton") | 116 | objectName="homepageDialog.saveButton") |
555 | 114 | self.pointing_device.click_object(save_button) | 117 | self.pointing_device.click_object(save_button) |
556 | 115 | dialog.wait_until_destroyed() | 118 | dialog.wait_until_destroyed() |
558 | 116 | self.assertThat(homepage.subText, Eventually(Equals(new))) | 119 | self.assertThat(homepage.currentHomepage, Eventually(Equals(new))) |
559 | 117 | 120 | ||
560 | 118 | def test_open_close_privacy_settings(self): | 121 | def test_open_close_privacy_settings(self): |
561 | 119 | settings = self.open_settings() | 122 | settings = self.open_settings() |
562 | @@ -130,7 +133,6 @@ | |||
563 | 130 | self.pointing_device.click_object(privacy) | 133 | self.pointing_device.click_object(privacy) |
564 | 131 | privacy_page = settings.get_privacy_page() | 134 | privacy_page = settings.get_privacy_page() |
565 | 132 | clear_history = privacy_page.select_single( | 135 | clear_history = privacy_page.select_single( |
566 | 133 | "Standard", | ||
567 | 134 | objectName="privacy.clearHistory") | 136 | objectName="privacy.clearHistory") |
568 | 135 | self.assertThat(clear_history.enabled, Equals(True)) | 137 | self.assertThat(clear_history.enabled, Equals(True)) |
569 | 136 | 138 | ||
570 | @@ -158,7 +160,6 @@ | |||
571 | 158 | self.pointing_device.click_object(privacy) | 160 | self.pointing_device.click_object(privacy) |
572 | 159 | privacy_page = settings.get_privacy_page() | 161 | privacy_page = settings.get_privacy_page() |
573 | 160 | clear_cache = privacy_page.select_single( | 162 | clear_cache = privacy_page.select_single( |
574 | 161 | "Standard", | ||
575 | 162 | objectName="privacy.clearCache") | 163 | objectName="privacy.clearCache") |
576 | 163 | self.assertThat(clear_cache.enabled, Equals(True)) | 164 | self.assertThat(clear_cache.enabled, Equals(True)) |
577 | 164 | 165 | ||
578 | @@ -186,18 +187,13 @@ | |||
579 | 186 | self.pointing_device.click_object(reset) | 187 | self.pointing_device.click_object(reset) |
580 | 187 | 188 | ||
581 | 188 | searchengine = settings.get_searchengine_entry() | 189 | searchengine = settings.get_searchengine_entry() |
583 | 189 | self.assertThat(searchengine.subText, | 190 | self.assertThat(searchengine.currentSearchEngineDisplayName, |
584 | 190 | Eventually(Equals("Google"))) | 191 | Eventually(Equals("Google"))) |
585 | 191 | 192 | ||
586 | 192 | homepage = settings.get_homepage_entry() | 193 | homepage = settings.get_homepage_entry() |
588 | 193 | self.assertThat(homepage.subText, | 194 | self.assertThat(homepage.currentHomepage, |
589 | 194 | Eventually(Equals("http://start.ubuntu.com"))) | 195 | Eventually(Equals("http://start.ubuntu.com"))) |
590 | 195 | 196 | ||
591 | 196 | restore_session = settings.get_restore_session_entry() | 197 | restore_session = settings.get_restore_session_entry() |
592 | 197 | checkbox = restore_session.select_single(uitk.CheckBox) | 198 | checkbox = restore_session.select_single(uitk.CheckBox) |
593 | 198 | self.assertThat(checkbox.checked, Eventually(Equals(True))) | 199 | self.assertThat(checkbox.checked, Eventually(Equals(True))) |
594 | 199 | |||
595 | 200 | background_tabs = settings.get_background_tabs_entry() | ||
596 | 201 | checkbox = background_tabs.select_single(uitk.CheckBox) | ||
597 | 202 | self.assertThat(checkbox.checked, | ||
598 | 203 | Eventually(Equals(model() == 'Desktop'))) |
FAILED: Continuous integration, rev:1363 jenkins. qa.ubuntu. com/job/ webbrowser- app-ci/ 2632/ jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- vivid-touch/ 6636 jenkins. qa.ubuntu. com/job/ webbrowser- app-vivid- amd64-ci/ 1385 jenkins. qa.ubuntu. com/job/ webbrowser- app-vivid- armhf-ci/ 1385 jenkins. qa.ubuntu. com/job/ webbrowser- app-vivid- armhf-ci/ 1385/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ webbrowser- app-vivid- i386-ci/ 1385 jenkins. qa.ubuntu. com/job/ generic- deb-autopilot- runner- vivid-touch/ 5038 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- vivid-armhf/ 6647 jenkins. qa.ubuntu. com/job/ generic- mediumtests- builder- vivid-armhf/ 6647/artifact/ work/output/ *zip*/output. zip s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 27894
http://
Executed test runs:
UNSTABLE: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
UNSTABLE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/webbrowser- app-ci/ 2632/rebuild
http://