Merge lp:~larryprice/libertine/adaptive-page-layout into lp:libertine
- adaptive-page-layout
- Merge into devel
Status: | Merged |
---|---|
Approved by: | Christopher Townsend |
Approved revision: | 398 |
Merged at revision: | 402 |
Proposed branch: | lp:~larryprice/libertine/adaptive-page-layout |
Merge into: | lp:libertine |
Diff against target: |
587 lines (+131/-147) 10 files modified
qml/common/ContainerEditView.qml (+25/-15) qml/common/ContainersList.qml (+45/-5) qml/common/ExtraArchivesView.qml (+3/-2) qml/common/ManageContainer.qml (+1/-1) qml/common/SearchPackagesDialog.qml (+5/-7) qml/common/SearchResultsView.qml (+11/-14) qml/gui/ContainersView.qml (+1/-0) qml/gui/WelcomeView.qml (+0/-80) qml/gui/libertine.qml (+35/-19) qml/plugin/MainSettingsPage.qml (+5/-4) |
To merge this branch: | bzr merge lp:~larryprice/libertine/adaptive-page-layout |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Christopher Townsend (community) | Approve | ||
Libertine CI Bot | continuous-integration | Approve | |
Review via email:
|
Commit message
Use AdaptivePageLayout instead of PageStack for app navigation.
Description of the change
Use AdaptivePageLayout instead of PageStack for app navigation.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Libertine CI Bot (libertine-ci-bot) wrote : | # |
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Christopher Townsend (townsend) wrote : | # |
I'm not sure if this is a deficiency in AdaptivePageLayout or not, but left and right actions on list entries do not look correct. I am running this on Xenial+Overlay, but will try it on Zesty as well.
For example, in "My Containers", either slide an entry to the left or right, and you'll see what I mean. I see this on both the standalone UI and in the System Settings plugin.
If this is indeed a deficiency in the AdaptivePageLayout, we should probably think about getting rid of the left and right actions and figure out another way to present those actions.
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Larry Price (larryprice) wrote : | # |
I think that's related to this bug: https:/
I may try the listed workaround (clip: true) and see if that fixes it for us.
- 395. By Larry Price
-
add clip: true to fix AdaptivePageLayout
- 396. By Larry Price
-
merge
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Libertine CI Bot (libertine-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:396
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
- 397. By Larry Price
-
merge
- 398. By Larry Price
-
remove switch container button
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Libertine CI Bot (libertine-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:398
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Christopher Townsend (townsend) wrote : | # |
Ok, very cool. Thanks!
Preview Diff
1 | === modified file 'qml/common/ContainerEditView.qml' |
2 | --- qml/common/ContainerEditView.qml 2016-09-27 14:20:23 +0000 |
3 | +++ qml/common/ContainerEditView.qml 2017-02-14 20:04:13 +0000 |
4 | @@ -3,7 +3,7 @@ |
5 | * @brief Libertine container apps view |
6 | */ |
7 | /* |
8 | - * Copyright 2015-2016 Canonical Ltd |
9 | + * Copyright 2015-2017 Canonical Ltd |
10 | * |
11 | * Libertine is free software: you can redistribute it and/or modify it under |
12 | * the terms of the GNU General Public License, version 3, as published by the |
13 | @@ -24,6 +24,7 @@ |
14 | |
15 | Page { |
16 | id: homeView |
17 | + clip: true |
18 | header: PageHeader { |
19 | id: pageHeader |
20 | title: i18n.tr("%1 - All Apps").arg(containerConfigList.getContainerName(currentContainer)) |
21 | @@ -77,7 +78,7 @@ |
22 | else { |
23 | appExistsWarning.text = i18n.tr("The %1 package is already installed. Please try a different package name.").arg(enterPackageInput.text) |
24 | appExistsWarning.visible = true |
25 | - enterPackageInput.text = "" |
26 | + enterPackageInput.text = "" |
27 | } |
28 | } |
29 | } |
30 | @@ -105,21 +106,14 @@ |
31 | text: i18n.tr("Manage Container") |
32 | onTriggered: { |
33 | PopupUtils.close(settingsDialog) |
34 | - pageStack.push(Qt.resolvedUrl("ManageContainer.qml"), {currentContainer: currentContainer}) |
35 | + pageStack.addPageToNextColumn(homeView, Qt.resolvedUrl("ManageContainer.qml"), {currentContainer: currentContainer}) |
36 | } |
37 | } |
38 | Button { |
39 | text: i18n.tr("Container Information") |
40 | onTriggered: { |
41 | PopupUtils.close(settingsDialog) |
42 | - pageStack.push(Qt.resolvedUrl("ContainerInfoView.qml"), {currentContainer: currentContainer}) |
43 | - } |
44 | - } |
45 | - Button { |
46 | - text: i18n.tr("Switch Container") |
47 | - onTriggered: { |
48 | - PopupUtils.close(settingsDialog) |
49 | - pageStack.pop() |
50 | + pageStack.addPageToNextColumn(homeView, Qt.resolvedUrl("ContainerInfoView.qml"), {currentContainer: currentContainer}) |
51 | } |
52 | } |
53 | } |
54 | @@ -145,7 +139,7 @@ |
55 | onClicked: { |
56 | PopupUtils.close(addAppsDialog) |
57 | var packages = containerConfigList.getDebianPackageFiles() |
58 | - pageStack.push(Qt.resolvedUrl("DebianPackagePicker.qml"), {packageList: packages}) |
59 | + pageStack.addPageToNextColumn(homeView, Qt.resolvedUrl("DebianPackagePicker.qml"), {packageList: packages}) |
60 | } |
61 | } |
62 | Button { |
63 | @@ -153,12 +147,28 @@ |
64 | width: parent.width |
65 | onClicked: { |
66 | PopupUtils.close(addAppsDialog) |
67 | - PopupUtils.open(Qt.resolvedUrl("SearchPackagesDialog.qml"), {currentContainer: currentContainer}) |
68 | + openSearchDialog(currentContainer) |
69 | } |
70 | } |
71 | } |
72 | } |
73 | |
74 | + property var searchResultsView: null |
75 | + function openSearchDialog(container) { |
76 | + var dialog = PopupUtils.open(Qt.resolvedUrl("SearchPackagesDialog.qml"), null, {currentContainer: container}) |
77 | + dialog.initializeSearch.connect(function(query, container) { |
78 | + if (searchResultsView) { |
79 | + pageStack.removePages(searchResultsView) |
80 | + searchResultsView.destroy() |
81 | + } |
82 | + |
83 | + searchResultsView = Qt.createComponent("SearchResultsView.qml").createObject(homeView, {currentContainer: container, query: query}) |
84 | + searchResultsView.newSearch.connect(openSearchDialog) |
85 | + |
86 | + pageStack.addPageToNextColumn(homeView, searchResultsView) |
87 | + }) |
88 | + } |
89 | + |
90 | Component.onCompleted: { |
91 | containerConfigList.configChanged.connect(reloadAppList) |
92 | } |
93 | @@ -180,10 +190,10 @@ |
94 | fill: parent |
95 | } |
96 | model: containerAppsList |
97 | - visible: !containerAppsList.empty() ? true : false |
98 | + visible: !containerAppsList.empty() |
99 | |
100 | function info(packageName) { |
101 | - pageStack.push(Qt.resolvedUrl("PackageInfoView.qml"), {"currentPackage": packageName, "currentContainer": currentContainer}) |
102 | + pageStack.addPageToNextColumn(homeView, Qt.resolvedUrl("PackageInfoView.qml"), {"currentPackage": packageName, "currentContainer": currentContainer}) |
103 | } |
104 | |
105 | delegate: ListItem { |
106 | |
107 | === modified file 'qml/common/ContainersList.qml' |
108 | --- qml/common/ContainersList.qml 2016-10-11 17:10:49 +0000 |
109 | +++ qml/common/ContainersList.qml 2017-02-14 20:04:13 +0000 |
110 | @@ -3,7 +3,7 @@ |
111 | * @brief Libertine containers view |
112 | */ |
113 | /* |
114 | - * Copyright 2016 Canonical Ltd |
115 | + * Copyright 2016-2017 Canonical Ltd |
116 | * |
117 | * Libertine is free software: you can redistribute it and/or modify it under |
118 | * the terms of the GNU General Public License, version 3, as published by the |
119 | @@ -18,6 +18,7 @@ |
120 | */ |
121 | import Libertine 1.0 |
122 | import QtQuick 2.4 |
123 | +import QtQuick.Layouts 1.0 |
124 | import Ubuntu.Components 1.3 |
125 | import Ubuntu.Components.Popups 1.3 |
126 | |
127 | @@ -35,6 +36,7 @@ |
128 | fill: parent |
129 | } |
130 | model: containerConfigList |
131 | + visible: !containerConfigList.empty() |
132 | |
133 | function edit(id, status) { |
134 | if (status === "removing") { |
135 | @@ -43,7 +45,7 @@ |
136 | } |
137 | currentContainer = id |
138 | containerAppsList.setContainerApps(currentContainer) |
139 | - pageStack.push(Qt.resolvedUrl("../common/ContainerEditView.qml"), {currentContainer: currentContainer}) |
140 | + pageStack.addPageToNextColumn(containersView, Qt.resolvedUrl("../common/ContainerEditView.qml"), {currentContainer: currentContainer}) |
141 | } |
142 | |
143 | delegate: ListItem { |
144 | @@ -92,7 +94,7 @@ |
145 | description: i18n.tr("Container Info") |
146 | onTriggered: { |
147 | currentContainer = containerId |
148 | - pageStack.push(Qt.resolvedUrl("../common/ContainerInfoView.qml"), {currentContainer: containerId}) |
149 | + pageStack.addPageToNextColumn(containersView, Qt.resolvedUrl("../common/ContainerInfoView.qml"), {currentContainer: containerId}) |
150 | } |
151 | }, |
152 | Action { |
153 | @@ -110,6 +112,44 @@ |
154 | } |
155 | } |
156 | |
157 | + ColumnLayout { |
158 | + visible: !containersList.visible |
159 | + spacing: units.gu(2) |
160 | + anchors { |
161 | + fill: parent |
162 | + margins: units.gu(4) |
163 | + } |
164 | + |
165 | + Label { |
166 | + Layout.fillWidth: true |
167 | + wrapMode: Text.Wrap |
168 | + horizontalAlignment: Text.AlignHCenter |
169 | + |
170 | + text: i18n.tr("Welcome to the Ubuntu Classic Application Manager.") |
171 | + } |
172 | + |
173 | + Label { |
174 | + Layout.fillWidth: true |
175 | + wrapMode: Text.Wrap |
176 | + horizontalAlignment: Text.AlignHCenter |
177 | + |
178 | + text: i18n.tr("You do not have Classic Application Support configured at this time. Downloading and setting up the required environment may take some time and network bandwidth.") |
179 | + } |
180 | + |
181 | + Button { |
182 | + Layout.alignment: Qt.AlignCenter |
183 | + Layout.maximumWidth: units.gu(12) |
184 | + |
185 | + text: i18n.tr("Get started") |
186 | + color: UbuntuColors.green |
187 | + |
188 | + onClicked: { |
189 | + var dialog = PopupUtils.open(Qt.resolvedUrl("../common/ContainerOptionsDialog.qml")) |
190 | + dialog.onCreateInitialized.connect(updateContainerList) |
191 | + } |
192 | + } |
193 | + } |
194 | + |
195 | Component.onCompleted: { |
196 | containerConfigList.configChanged.connect(updateContainerList) |
197 | } |
198 | @@ -120,9 +160,9 @@ |
199 | |
200 | function updateContainerList() { |
201 | containerConfigList.reloadContainerList() |
202 | + containersList.visible = !containerConfigList.empty() // forces visibility refresh |
203 | |
204 | - if (currentContainer && !containerConfigList.getContainerStatus(currentContainer) && pageStack.currentPage !== containersView) { |
205 | - pageStack.pop() |
206 | + if (currentContainer && !containerConfigList.getContainerStatus(currentContainer)) { |
207 | currentContainer = "" |
208 | packageOperationDetails.error(i18n.tr("Container Unavailable"), |
209 | i18n.tr("This container has been destroyed and is no longer valid. You have been returned to the containers overview.")) |
210 | |
211 | === modified file 'qml/common/ExtraArchivesView.qml' |
212 | --- qml/common/ExtraArchivesView.qml 2016-10-03 20:30:29 +0000 |
213 | +++ qml/common/ExtraArchivesView.qml 2017-02-14 20:04:13 +0000 |
214 | @@ -3,7 +3,7 @@ |
215 | * @brief Libertine container extra archive view |
216 | */ |
217 | /* |
218 | - * Copyright 2016 Canonical Ltd |
219 | + * Copyright 2016-2017 Canonical Ltd |
220 | * |
221 | * Libertine is free software: you can redistribute it and/or modify it under |
222 | * the terms of the GNU General Public License, version 3, as published by the |
223 | @@ -22,6 +22,7 @@ |
224 | |
225 | Page { |
226 | id: extraArchiveView |
227 | + clip: true |
228 | header: PageHeader { |
229 | id: pageHeader |
230 | title: i18n.tr("Additional Archives") |
231 | @@ -30,7 +31,7 @@ |
232 | iconName: "add" |
233 | text: i18n.tr("add") |
234 | description: i18n.tr("Add a new archive") |
235 | - onTriggered: pageStack.push(Qt.resolvedUrl("AddExtraArchiveView.qml"), {currentContainer: currentContainer}) |
236 | + onTriggered: pageStack.addPageToNextColumn(extraArchiveView, Qt.resolvedUrl("AddExtraArchiveView.qml"), {currentContainer: currentContainer}) |
237 | } |
238 | ] |
239 | } |
240 | |
241 | === modified file 'qml/common/ManageContainer.qml' |
242 | --- qml/common/ManageContainer.qml 2016-09-27 14:20:23 +0000 |
243 | +++ qml/common/ManageContainer.qml 2017-02-14 20:04:13 +0000 |
244 | @@ -74,7 +74,7 @@ |
245 | progression: true |
246 | onClicked: { |
247 | containerArchivesList.setContainerArchives(currentContainer) |
248 | - pageStack.push(Qt.resolvedUrl("ExtraArchivesView.qml"), {currentContainer: currentContainer}) |
249 | + pageStack.addPageToNextColumn(manageView, Qt.resolvedUrl("ExtraArchivesView.qml"), {currentContainer: currentContainer}) |
250 | } |
251 | } |
252 | |
253 | |
254 | === modified file 'qml/common/SearchPackagesDialog.qml' |
255 | --- qml/common/SearchPackagesDialog.qml 2016-09-27 14:20:23 +0000 |
256 | +++ qml/common/SearchPackagesDialog.qml 2017-02-14 20:04:13 +0000 |
257 | @@ -3,7 +3,7 @@ |
258 | * @brief Libertine search packages dialog |
259 | */ |
260 | /* |
261 | - * Copyright 2016 Canonical Ltd |
262 | + * Copyright 2016-2017 Canonical Ltd |
263 | * |
264 | * Libertine is free software: you can redistribute it and/or modify it under |
265 | * the terms of the GNU General Public License, version 3, as published by the |
266 | @@ -25,8 +25,11 @@ |
267 | id: searchPackageDialog |
268 | title: i18n.tr("Search for packages") |
269 | text: i18n.tr("Search archives for packages") |
270 | + property bool calledFromSearch: null |
271 | property string currentContainer: null |
272 | |
273 | + signal initializeSearch(string query, string container) |
274 | + |
275 | TextField { |
276 | id: searchPackageInput |
277 | placeholderText: i18n.tr("search") |
278 | @@ -43,12 +46,7 @@ |
279 | onClicked: { |
280 | if (searchPackageInput.text != "") { |
281 | PopupUtils.close(searchPackageDialog) |
282 | - if (pageStack.currentPage.objectName === "searchResultsView") { |
283 | - pageStack.currentPage.searchForPackages(searchPackageInput.text) |
284 | - } |
285 | - else { |
286 | - pageStack.push(Qt.resolvedUrl("SearchResultsView.qml"), {search_string : searchPackageInput.text, currentContainer: currentContainer}) |
287 | - } |
288 | + initializeSearch(searchPackageInput.text, currentContainer) |
289 | } |
290 | } |
291 | } |
292 | |
293 | === modified file 'qml/common/SearchResultsView.qml' |
294 | --- qml/common/SearchResultsView.qml 2016-09-27 14:20:23 +0000 |
295 | +++ qml/common/SearchResultsView.qml 2017-02-14 20:04:13 +0000 |
296 | @@ -3,7 +3,7 @@ |
297 | * @brief Libertine search packages results view |
298 | */ |
299 | /* |
300 | - * Copyright 2016 Canonical Ltd |
301 | + * Copyright 2016-2017 Canonical Ltd |
302 | * |
303 | * Libertine is free software: you can redistribute it and/or modify it under |
304 | * the terms of the GNU General Public License, version 3, as published by the |
305 | @@ -35,17 +35,17 @@ |
306 | text: i18n.tr("Search") |
307 | description: i18n.tr("Search for packages") |
308 | |
309 | - onTriggered: doSearch() |
310 | + onTriggered: newSearch(currentContainer) |
311 | } |
312 | ] |
313 | } |
314 | objectName: "searchResultsView" |
315 | - property var search_string: null |
316 | + property var query: null |
317 | property var search_comp: null |
318 | property var search_obj: null |
319 | property var currentContainer: null |
320 | |
321 | - signal doSearch |
322 | + signal newSearch(string container) |
323 | |
324 | Component { |
325 | id: noResultsPopup |
326 | @@ -60,7 +60,7 @@ |
327 | color: UbuntuColors.green |
328 | onClicked: { |
329 | PopupUtils.close(noResultsDialog) |
330 | - PopupUtils.open(Qt.resolvedUrl("SearchPackagesDialog.qml"), {currentContainer: currentContainer}) |
331 | + newSearch(currentContainer) |
332 | } |
333 | } |
334 | |
335 | @@ -109,10 +109,10 @@ |
336 | } |
337 | |
338 | Component.onCompleted: { |
339 | - searchForPackages(search_string) |
340 | + searchForPackages(query) |
341 | } |
342 | |
343 | - function searchForPackages(search_string) { |
344 | + function searchForPackages(query) { |
345 | searchActivity.visible = true |
346 | |
347 | if (search_obj) { |
348 | @@ -124,25 +124,22 @@ |
349 | worker.finishedSearch.connect(finishedSearch) |
350 | worker.error.connect(packageOperationDetails.error) |
351 | |
352 | - worker.searchPackageCache(currentContainer, search_string) |
353 | + worker.searchPackageCache(currentContainer, query) |
354 | } |
355 | |
356 | function finishedSearch(packageList) { |
357 | searchActivity.visible = false |
358 | if (packageList.length > 0) { |
359 | - for (var i = 0; i < packageList.length; ++i) |
360 | - { |
361 | + for (var i = 0; i < packageList.length; ++i) { |
362 | packageListModel.append({"package_desc": packageList[i], "package_name": packageList[i].split(' ')[0]}) |
363 | } |
364 | if (!search_comp) { |
365 | - search_comp = Qt.createComponent("SearchResults.qml", {currentContainer: currentContainer}) |
366 | + search_comp = Qt.createComponent("SearchResults.qml") |
367 | } |
368 | - search_obj = search_comp.createObject(parent, {"model": packageListModel}) |
369 | + search_obj = search_comp.createObject(parent, {"model": packageListModel, currentContainer: currentContainer}) |
370 | } |
371 | else { |
372 | PopupUtils.open(noResultsPopup) |
373 | } |
374 | } |
375 | - |
376 | - onDoSearch: PopupUtils.open(Qt.resolvedUrl("SearchPackagesDialog.qml"), {currentContainer: currentContainer}) |
377 | } |
378 | |
379 | === modified file 'qml/gui/ContainersView.qml' |
380 | --- qml/gui/ContainersView.qml 2016-10-11 17:10:49 +0000 |
381 | +++ qml/gui/ContainersView.qml 2017-02-14 20:04:13 +0000 |
382 | @@ -29,6 +29,7 @@ |
383 | */ |
384 | Page { |
385 | id: containersView |
386 | + clip: true |
387 | header: PageHeader { |
388 | id: pageHeader |
389 | title: i18n.tr("My Containers") |
390 | |
391 | === removed file 'qml/gui/WelcomeView.qml' |
392 | --- qml/gui/WelcomeView.qml 2016-10-11 17:10:49 +0000 |
393 | +++ qml/gui/WelcomeView.qml 1970-01-01 00:00:00 +0000 |
394 | @@ -1,80 +0,0 @@ |
395 | -/** |
396 | - * @file WelcomeView.qml |
397 | - * @brief Libertine default welcome view |
398 | - */ |
399 | -/* |
400 | - * Copyright 2015-2016 Canonical Ltd |
401 | - * |
402 | - * Libertine is free software: you can redistribute it and/or modify it under |
403 | - * the terms of the GNU General Public License, version 3, as published by the |
404 | - * Free Software Foundation. |
405 | - * |
406 | - * Libertine is distributed in the hope that it will be useful, but WITHOUT ANY |
407 | - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR |
408 | - * A PARTICULAR PURPOSE. See the GNU General Public License for more details. |
409 | - * |
410 | - * You should have received a copy of the GNU General Public License |
411 | - * along with this program. If not, see <http://www.gnu.org/licenses/>. |
412 | - */ |
413 | -import QtQuick 2.4 |
414 | -import QtQuick.Layouts 1.0 |
415 | -import Ubuntu.Components 1.3 |
416 | -import Ubuntu.Components.Popups 1.3 |
417 | - |
418 | - |
419 | -Page { |
420 | - id: welcomeView |
421 | - header: PageHeader { |
422 | - title: i18n.tr("Welcome") |
423 | - leadingActionBar.actions: [ |
424 | - Action { |
425 | - iconName: "back" |
426 | - visible: false |
427 | - } |
428 | - ] |
429 | - } |
430 | - |
431 | - ColumnLayout { |
432 | - spacing: units.gu(2) |
433 | - anchors { |
434 | - fill: parent |
435 | - margins: units.gu(4) |
436 | - } |
437 | - |
438 | - Label { |
439 | - id: welcomeMessage |
440 | - Layout.fillWidth: true |
441 | - wrapMode: Text.Wrap |
442 | - horizontalAlignment: Text.AlignHCenter |
443 | - |
444 | - text: i18n.tr("Welcome to the Ubuntu Legacy Application Support Manager.") |
445 | - } |
446 | - |
447 | - Label { |
448 | - id: warningMessage |
449 | - Layout.fillWidth: true |
450 | - wrapMode: Text.Wrap |
451 | - horizontalAlignment: Text.AlignHCenter |
452 | - |
453 | - text: i18n.tr("You do not have Legacy Application Support configured at this time. Downloading and setting up the required environment takes some time and network bandwidth.") |
454 | - } |
455 | - |
456 | - Button { |
457 | - id: installButton |
458 | - Layout.alignment: Qt.AlignCenter |
459 | - Layout.maximumWidth: units.gu(12) |
460 | - |
461 | - text: i18n.tr("Install") |
462 | - color: UbuntuColors.green |
463 | - |
464 | - onClicked: { |
465 | - var dialog = PopupUtils.open(Qt.resolvedUrl("../common/ContainerOptionsDialog.qml")) |
466 | - dialog.onCreateInitialized.connect(createInitialized) |
467 | - } |
468 | - } |
469 | - } |
470 | - |
471 | - function createInitialized() { |
472 | - pageStack.push(Qt.resolvedUrl("ContainersView.qml"), {currentContainer: ""}) |
473 | - } |
474 | -} |
475 | |
476 | === modified file 'qml/gui/libertine.qml' |
477 | --- qml/gui/libertine.qml 2016-11-01 14:30:34 +0000 |
478 | +++ qml/gui/libertine.qml 2017-02-14 20:04:13 +0000 |
479 | @@ -3,7 +3,7 @@ |
480 | * @brief Libertine app main view. |
481 | */ |
482 | /* |
483 | - * Copyright 2015-2016 Canonical Ltd |
484 | + * Copyright 2015-2017 Canonical Ltd |
485 | * |
486 | * Libertine is free software: you can redistribute it and/or modify it under |
487 | * the terms of the GNU General Public License, version 3, as published by the |
488 | @@ -31,31 +31,47 @@ |
489 | |
490 | signal error(string short_description, string details) |
491 | |
492 | - PageStack { |
493 | - id: pageStack |
494 | - } |
495 | - |
496 | Component.onCompleted: { |
497 | packageOperationDetails.error.connect(error) |
498 | - |
499 | Qt.createComponent("../common/ContainerManager.qml").createObject(mainView).fixIntegrity() |
500 | - |
501 | - var currentContainer = containerConfigList.defaultContainerId |
502 | - |
503 | - if (!containerConfigList.empty()) { |
504 | - pageStack.push(Qt.resolvedUrl("ContainersView.qml"), {currentContainer: currentContainer}) |
505 | - if (currentContainer) { |
506 | - containerAppsList.setContainerApps(currentContainer) |
507 | - pageStack.push(Qt.resolvedUrl("../common/ContainerEditView.qml"), {currentContainer: currentContainer}) |
508 | - } |
509 | - } |
510 | - else { |
511 | - pageStack.push(Qt.resolvedUrl("WelcomeView.qml")) |
512 | - } |
513 | } |
514 | |
515 | onError: { |
516 | PopupUtils.open(Qt.resolvedUrl("../common/GenericErrorDialog.qml"), null, |
517 | {"short_description": short_description, "details": details}) |
518 | } |
519 | + |
520 | + AdaptivePageLayout { |
521 | + anchors.fill: parent |
522 | + primaryPageSource: Qt.resolvedUrl("ContainersView.qml") |
523 | + layouts: [ |
524 | + PageColumnsLayout { |
525 | + when: width > units.gu(120) |
526 | + PageColumn { |
527 | + minimumWidth: units.gu(30) |
528 | + maximumWidth: units.gu(60) |
529 | + preferredWidth: units.gu(40) |
530 | + } |
531 | + PageColumn { |
532 | + minimumWidth: units.gu(30) |
533 | + maximumWidth: units.gu(60) |
534 | + preferredWidth: units.gu(40) |
535 | + } |
536 | + PageColumn { |
537 | + fillWidth: true |
538 | + } |
539 | + }, |
540 | + PageColumnsLayout { |
541 | + when: width > units.gu(80) |
542 | + PageColumn { |
543 | + minimumWidth: units.gu(30) |
544 | + maximumWidth: units.gu(60) |
545 | + preferredWidth: units.gu(40) |
546 | + } |
547 | + PageColumn { |
548 | + fillWidth: true |
549 | + } |
550 | + } |
551 | + ] |
552 | + } |
553 | } |
554 | |
555 | === modified file 'qml/plugin/MainSettingsPage.qml' |
556 | --- qml/plugin/MainSettingsPage.qml 2016-11-01 14:30:34 +0000 |
557 | +++ qml/plugin/MainSettingsPage.qml 2017-02-14 20:04:13 +0000 |
558 | @@ -1,5 +1,5 @@ |
559 | /* |
560 | - * Copyright (C) 2016 Canonical Ltd. |
561 | + * Copyright (C) 2016-2017 Canonical Ltd. |
562 | * |
563 | * This program is free software: you can redistribute it and/or modify it |
564 | * under the terms of the GNU General Public License version 3, as published |
565 | @@ -22,7 +22,8 @@ |
566 | import "../common" |
567 | |
568 | ItemPage { |
569 | - id: mainView |
570 | + id: containersView |
571 | + clip: true |
572 | |
573 | header: PageHeader { |
574 | id: pageHeader |
575 | @@ -45,10 +46,10 @@ |
576 | ContainersList { |
577 | anchors { |
578 | topMargin: pageHeader.height |
579 | - fill: mainView |
580 | + fill: containersView |
581 | } |
582 | |
583 | - currentContainer: mainView.currentContainer |
584 | + currentContainer: containersView.currentContainer |
585 | } |
586 | |
587 | onError: { |
PASSED: Continuous integration, rev:394 /jenkins. canonical. com/libertine/ job/lp- libertine- ci/367/ /jenkins. canonical. com/libertine/ job/build/ 706 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=amd64, release= xenial+ overlay, testname= default/ 579 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=amd64, release= zesty,testname= default/ 579 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=i386, release= xenial+ overlay, testname= default/ 579 /jenkins. canonical. com/libertine/ job/test- 0-autopkgtest/ label=i386, release= zesty,testname= default/ 579 /jenkins. canonical. com/libertine/ job/build- 0-fetch/ 716 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= xenial+ overlay/ 697 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= xenial+ overlay/ 697/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= zesty/697 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=amd64, release= zesty/697/ artifact/ output/ *zip*/output. zip /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= xenial+ overlay/ 697 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= xenial+ overlay/ 697/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= zesty/697 /jenkins. canonical. com/libertine/ job/build- 2-binpkg/ arch=i386, release= zesty/697/ artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /jenkins. canonical. com/libertine/ job/lp- libertine- ci/367/ rebuild
https:/