Merge lp:~jonas-drange/ubuntu-system-settings/slotslayouts into lp:ubuntu-system-settings

Proposed by Jonas G. Drange
Status: Merged
Merged at revision: 1678
Proposed branch: lp:~jonas-drange/ubuntu-system-settings/slotslayouts
Merge into: lp:ubuntu-system-settings
Prerequisite: lp:~phablet-team/ubuntu-system-settings/settings-listitems
Diff against target: 4348 lines (+1210/-1134)
60 files modified
plugins/about/EntryComponent.qml (+3/-5)
plugins/about/PageComponent.qml (+50/-54)
plugins/about/settings-about.svg (+136/-35)
plugins/battery/PageComponent.qml (+63/-51)
plugins/bluetooth/DevicePage.qml (+24/-46)
plugins/bluetooth/PageComponent.qml (+55/-93)
plugins/brightness/PageComponent.qml (+10/-10)
plugins/cellular/Components/MultiSim.qml (+8/-12)
plugins/cellular/Components/Sim.qml (+5/-1)
plugins/cellular/Components/SingleSim.qml (+18/-23)
plugins/cellular/PageCarrierAndApn.qml (+6/-6)
plugins/cellular/PageCarriersAndApns.qml (+35/-52)
plugins/cellular/PageChooseApn.qml (+18/-49)
plugins/cellular/PageComponent.qml (+0/-1)
plugins/flight-mode/EntryComponent.qml (+6/-6)
plugins/flight-mode/flight-mode.settings (+1/-1)
plugins/hotspot/HotspotSetup.qml (+18/-43)
plugins/hotspot/PageComponent.qml (+6/-5)
plugins/language/KeyboardLayoutItem.qml (+21/-30)
plugins/language/PageComponent.qml (+42/-51)
plugins/language/SpellChecking.qml (+3/-3)
plugins/language/SubsetView.qml (+5/-4)
plugins/language/settings-language.svg (+112/-75)
plugins/orientation-lock/EntryComponent.qml (+7/-7)
plugins/orientation-lock/orientation-lock.settings (+1/-1)
plugins/phone/CallForwardItem.qml (+10/-8)
plugins/phone/CallForwarding.qml (+1/-2)
plugins/phone/CallWaiting.qml (+30/-43)
plugins/phone/MultiSim.qml (+5/-12)
plugins/phone/NoSims.qml (+5/-11)
plugins/phone/PageComponent.qml (+4/-6)
plugins/phone/ServiceInfo.qml (+6/-5)
plugins/phone/Services.qml (+3/-4)
plugins/phone/SingleSim.qml (+5/-12)
plugins/reset/EntryComponent.qml (+2/-4)
plugins/reset/PageComponent.qml (+54/-19)
plugins/sound/PageComponent.qml (+36/-34)
plugins/time-date/ChooseTimeZone.qml (+3/-2)
plugins/time-date/PageComponent.qml (+8/-8)
plugins/time-date/Scroller.qml (+6/-7)
plugins/time-date/TimePicker.qml (+0/-1)
plugins/time-date/settings-time-date.svg (+139/-55)
plugins/wifi/AccessPoint.qml (+11/-22)
plugins/wifi/DivMenuItem.qml (+3/-3)
plugins/wifi/FramedMenuItem.qml (+7/-3)
plugins/wifi/MenuItemFactory.qml (+5/-5)
plugins/wifi/NetworkDetails.qml (+25/-28)
plugins/wifi/NetworkDetailsBrief.qml (+17/-16)
plugins/wifi/PageComponent.qml (+8/-12)
plugins/wifi/PreviousNetworks.qml (+2/-3)
plugins/wifi/SectionMenuItem.qml (+14/-29)
plugins/wifi/StandardMenuItem.qml (+5/-27)
plugins/wifi/SwitchMenuItem.qml (+1/-1)
src/CMakeLists.txt (+1/-1)
src/SystemSettings/qmldir (+1/-0)
src/qml/CategorySection.qml (+13/-24)
src/qml/EntryComponent.qml (+5/-49)
src/qml/MainWindow.qml (+19/-6)
src/ui.qrc (+1/-1)
tests/autopilot/ubuntu_system_settings/tests/indicatornetwork.py (+102/-7)
To merge this branch: bzr merge lp:~jonas-drange/ubuntu-system-settings/slotslayouts
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Needs Fixing
Ubuntu Touch System Settings Pending
Review via email: mp+278323@code.launchpad.net

This proposal supersedes a proposal from 2015-11-18.

Commit message

migrating to slotslayout and new designs

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
1581. By Jonas G. Drange

merge latest from listitems

1582. By Jonas G. Drange

change to find instead of search icon, and swap FM with orientation lock

1583. By Jonas G. Drange

change icons that we have

1584. By Jonas G. Drange

start working on battery panel

1585. By Jonas G. Drange

undoing drawaxes change

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugins/about/EntryComponent.qml'
2--- plugins/about/EntryComponent.qml 2015-08-10 13:31:45 +0000
3+++ plugins/about/EntryComponent.qml 2015-11-27 13:34:19 +0000
4@@ -1,7 +1,7 @@
5 /*
6 * This file is part of system-settings
7 *
8- * Copyright (C) 2013 Canonical Ltd.
9+ * Copyright (C) 2013-2015 Canonical Ltd.
10 *
11 * Contact: Alberto Mardegan <alberto.mardegan@canonical.com>
12 *
13@@ -19,15 +19,13 @@
14 */
15
16 import QtQuick 2.4
17+import SystemSettings.ListItems 1.0 as SettingsListItems
18 import Ubuntu.Components 1.3
19-import Ubuntu.Components.ListItems 1.3 as ListItem
20
21-ListItem.Standard {
22+SettingsListItems.IconProgression {
23 id: root
24
25 objectName: "entryComponent-about"
26 iconSource: Qt.resolvedUrl(model.icon)
27- iconFrame: false
28 text: i18n.tr(model.displayName)
29- progression: true
30 }
31
32=== modified file 'plugins/about/PageComponent.qml'
33--- plugins/about/PageComponent.qml 2015-10-29 15:48:06 +0000
34+++ plugins/about/PageComponent.qml 2015-11-27 13:34:19 +0000
35@@ -21,8 +21,9 @@
36 import QtQuick 2.4
37 import QtSystemInfo 5.0
38 import SystemSettings 1.0
39+import SystemSettings.ListItems 1.0 as SettingsListItems
40 import Ubuntu.Components 1.3
41-import Ubuntu.Components.ListItems 1.3 as ListItem
42+import Ubuntu.Components.ListItems 1.3 as ListItems
43 import Ubuntu.SystemSettings.StorageAbout 1.0
44 import Ubuntu.SystemSettings.Update 1.0
45 import MeeGo.QOfono 0.2
46@@ -69,31 +70,30 @@
47 anchors.left: parent.left
48 anchors.right: parent.right
49
50- ListItem.Empty {
51- height: ubuntuLabel.height + deviceLabel.height + units.gu(6)
52-
53- Column {
54- anchors.left: parent.left
55- anchors.right: parent.right
56- anchors.centerIn: parent
57- spacing: units.gu(2)
58- Label {
59- id: ubuntuLabel
60- anchors.horizontalCenter: parent.horizontalCenter
61- text: ""
62- fontSize: "x-large"
63- }
64- Label {
65- id: deviceLabel
66- objectName: "deviceLabel"
67- anchors.horizontalCenter: parent.horizontalCenter
68- text: deviceInfos.manufacturer() ? deviceInfos.manufacturer() + " " + deviceInfos.model() : backendInfos.vendorString
69- }
70- }
71- highlightWhenPressed: false
72+ Column {
73+ anchors.left: parent.left
74+ anchors.right: parent.right
75+ Label {
76+ id: ubuntuLabel
77+ anchors {
78+ left: parent.left
79+ right: parent.right
80+ }
81+ height: contentHeight + units.gu(2)
82+ horizontalAlignment: Text.AlignHCenter
83+ verticalAlignment: Text.AlignVCenter
84+ text: ""
85+ fontSize: "x-large"
86+ }
87+ Label {
88+ id: deviceLabel
89+ objectName: "deviceLabel"
90+ anchors.horizontalCenter: parent.horizontalCenter
91+ text: deviceInfos.manufacturer() ? deviceInfos.manufacturer() + " " + deviceInfos.model() : backendInfos.vendorString
92+ }
93 }
94
95- ListItem.SingleValue {
96+ SettingsListItems.SingleValue {
97 id: serialItem
98 objectName: "serialItem"
99 text: i18n.tr("Serial")
100@@ -101,7 +101,7 @@
101 visible: backendInfos.serialNumber
102 }
103
104- ListItem.SingleValue {
105+ SettingsListItems.SingleValue {
106 objectName: "imeiItem"
107 property string imeiNumber
108 imeiNumber: deviceInfos.imei(0)
109@@ -111,21 +111,21 @@
110 visible: modemsSorted.length <= 1
111 }
112
113- ListItem.MultiValue {
114- text: "IMEI"
115- objectName: "imeiItems"
116- values: {
117- var imeis = [];
118- modemsSorted.forEach(function (path, i) {
119- var imei = deviceInfos.imei(i);
120- imei ? imeis.push(imei) : imeis.push(i18n.tr("None"));
121- });
122- return imeis;
123- }
124- visible: modemsSorted.length > 1
125- }
126+ // ListItem.MultiValue {
127+ // text: "IMEI"
128+ // objectName: "imeiItems"
129+ // values: {
130+ // var imeis = [];
131+ // modemsSorted.forEach(function (path, i) {
132+ // var imei = deviceInfos.imei(i);
133+ // imei ? imeis.push(imei) : imeis.push(i18n.tr("None"));
134+ // });
135+ // return imeis;
136+ // }
137+ // visible: modemsSorted.length > 1
138+ // }
139
140- ListItem.SingleValue {
141+ SettingsListItems.SingleValue {
142 property string address: wlinfo.macAddress(NetworkInfo.WlanMode, 0)
143 text: i18n.tr("Wi-Fi address")
144 value: address ? address.toUpperCase() : ""
145@@ -133,7 +133,7 @@
146 showDivider: bthwaddr.visible
147 }
148
149- ListItem.SingleValue {
150+ SettingsListItems.SingleValue {
151 id: bthwaddr
152 text: i18n.tr("Bluetooth address")
153 value: network.bluetoothMacAddress
154@@ -141,15 +141,14 @@
155 showDivider: false
156 }
157
158- ListItem.Divider {}
159+ ListItems.Divider {}
160
161- ListItem.SingleValue {
162+ SettingsListItems.SingleValueProgression {
163 id: storageItem
164 objectName: "storageItem"
165 text: i18n.tr("Storage")
166 /* TRANSLATORS: that's the free disk space, indicated in the most appropriate storage unit */
167 value: i18n.tr("%1 free").arg(Utilities.formatSize(backendInfos.getFreeSpace("/home")))
168- progression: true
169 onClicked: pageStack.push(Qt.resolvedUrl("Storage.qml"))
170 }
171
172@@ -158,7 +157,7 @@
173 text: i18n.tr("Software:")
174 }
175
176- ListItem.SingleValue {
177+ SettingsListItems.SingleValueProgression {
178 property string versionIdentifier: {
179 var num = UpdateManager.currentBuildNumber;
180 var ota = UpdateManager.detailedVersionDetails['tag'];
181@@ -170,21 +169,21 @@
182 value: "Ubuntu %1%2"
183 .arg(deviceInfos.version(DeviceInfo.Os))
184 .arg(versionIdentifier ? " (%1)".arg(versionIdentifier) : "")
185- progression: true
186 onClicked: pageStack.push(Qt.resolvedUrl("Version.qml"), {
187 version: versionIdentifier
188 })
189 }
190
191- ListItem.SingleValue {
192+ SettingsListItems.SingleValueProgression {
193 objectName: "lastUpdatedItem"
194 text: i18n.tr("Last updated")
195 value: UpdateManager.lastUpdateDate && !isNaN(UpdateManager.lastUpdateDate) ?
196 Qt.formatDate(UpdateManager.lastUpdateDate) : i18n.tr("Never")
197 }
198
199- ListItem.SingleControl {
200- control: Button {
201+ SettingsListItems.SingleControl {
202+
203+ Button {
204 objectName: "updateButton"
205 text: i18n.tr("Check for updates")
206 width: parent.width - units.gu(4)
207@@ -209,26 +208,23 @@
208 text: i18n.tr("Legal:")
209 }
210
211- ListItem.Standard {
212+ SettingsListItems.StandardProgression {
213 objectName: "licenseItem"
214 text: i18n.tr("Software licenses")
215- progression: true
216 onClicked: pageStack.push(Qt.resolvedUrl("Software.qml"))
217 }
218
219- ListItem.Standard {
220+ SettingsListItems.StandardProgression {
221 property var regulatoryInfo:
222 pluginManager.getByName("regulatory-information")
223 text: i18n.tr("Regulatory info")
224- progression: true
225 visible: regulatoryInfo
226 onClicked: pageStack.push(regulatoryInfo.pageComponent)
227 }
228
229- ListItem.SingleValue {
230+ SettingsListItems.SingleValueProgression {
231 objectName: "devmodeItem"
232 text: i18n.tr("Developer mode")
233- progression: true
234 onClicked: pageStack.push(Qt.resolvedUrl("DevMode.qml"))
235 }
236 }
237
238=== modified file 'plugins/about/settings-about.svg'
239--- plugins/about/settings-about.svg 2013-06-18 19:17:18 +0000
240+++ plugins/about/settings-about.svg 2015-11-27 13:34:19 +0000
241@@ -9,14 +9,15 @@
242 xmlns="http://www.w3.org/2000/svg"
243 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
244 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
245- width="90"
246- height="90"
247- id="svg3180"
248+ width="96"
249+ height="96"
250+ id="svg4874"
251 version="1.1"
252- inkscape:version="0.48+devel r12322"
253- sodipodi:docname="setting-about.svg">
254+ inkscape:version="0.91+devel r"
255+ viewBox="0 0 96 96.000001"
256+ sodipodi:docname="info.svg">
257 <defs
258- id="defs3182" />
259+ id="defs4876" />
260 <sodipodi:namedview
261 id="base"
262 pagecolor="#ffffff"
263@@ -24,18 +25,94 @@
264 borderopacity="1.0"
265 inkscape:pageopacity="0.0"
266 inkscape:pageshadow="2"
267- inkscape:zoom="7.9580786"
268- inkscape:cx="25.634328"
269- inkscape:cy="36.849347"
270+ inkscape:zoom="8.7812488"
271+ inkscape:cx="5.3352279"
272+ inkscape:cy="44.122411"
273 inkscape:document-units="px"
274- inkscape:current-layer="layer1"
275- showgrid="false"
276+ inkscape:current-layer="g4780"
277+ showgrid="true"
278+ showborder="true"
279 fit-margin-top="0"
280 fit-margin-left="0"
281 fit-margin-right="0"
282- fit-margin-bottom="0" />
283+ fit-margin-bottom="0"
284+ inkscape:snap-bbox="true"
285+ inkscape:bbox-paths="true"
286+ inkscape:bbox-nodes="true"
287+ inkscape:snap-bbox-edge-midpoints="true"
288+ inkscape:snap-bbox-midpoints="true"
289+ inkscape:object-paths="true"
290+ inkscape:snap-intersection-paths="true"
291+ inkscape:object-nodes="true"
292+ inkscape:snap-smooth-nodes="true"
293+ inkscape:snap-midpoints="true"
294+ inkscape:snap-object-midpoints="true"
295+ inkscape:snap-center="true"
296+ showguides="true"
297+ inkscape:guide-bbox="true">
298+ <inkscape:grid
299+ type="xygrid"
300+ id="grid5451"
301+ empspacing="8" />
302+ <sodipodi:guide
303+ orientation="1,0"
304+ position="8,-8.0000001"
305+ id="guide4063" />
306+ <sodipodi:guide
307+ orientation="1,0"
308+ position="4,-8.0000001"
309+ id="guide4065" />
310+ <sodipodi:guide
311+ orientation="0,1"
312+ position="-8,88.000001"
313+ id="guide4067" />
314+ <sodipodi:guide
315+ orientation="0,1"
316+ position="-8,92.000001"
317+ id="guide4069" />
318+ <sodipodi:guide
319+ orientation="0,1"
320+ position="104,4"
321+ id="guide4071" />
322+ <sodipodi:guide
323+ orientation="0,1"
324+ position="-5,8.0000001"
325+ id="guide4073" />
326+ <sodipodi:guide
327+ orientation="1,0"
328+ position="92,-8.0000001"
329+ id="guide4075" />
330+ <sodipodi:guide
331+ orientation="1,0"
332+ position="88,-8.0000001"
333+ id="guide4077" />
334+ <sodipodi:guide
335+ orientation="0,1"
336+ position="-8,84.000001"
337+ id="guide4074" />
338+ <sodipodi:guide
339+ orientation="1,0"
340+ position="12,-8.0000001"
341+ id="guide4076" />
342+ <sodipodi:guide
343+ orientation="0,1"
344+ position="-5,12"
345+ id="guide4078" />
346+ <sodipodi:guide
347+ orientation="1,0"
348+ position="84,-9.0000001"
349+ id="guide4080" />
350+ <sodipodi:guide
351+ position="48,-8.0000001"
352+ orientation="1,0"
353+ id="guide4170" />
354+ <sodipodi:guide
355+ position="-8,48"
356+ orientation="0,1"
357+ id="guide4172" />
358+ </sodipodi:namedview>
359 <metadata
360- id="metadata3185">
361+ id="metadata4879">
362 <rdf:RDF>
363 <cc:Work
364 rdf:about="">
365@@ -50,29 +127,53 @@
366 inkscape:label="Layer 1"
367 inkscape:groupmode="layer"
368 id="layer1"
369- transform="translate(456.42857,-738.79075)">
370+ transform="translate(67.857146,-78.50504)">
371 <g
372- transform="translate(-2219.4286,118.57139)"
373- id="g3270">
374- <rect
375- style="color:#000000;fill:none;stroke:none;stroke-width:7.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
376- id="rect3272"
377- width="90"
378- height="90"
379- x="1763"
380- y="620.21936" />
381- <rect
382- style="color:#000000;fill:none;stroke:none;stroke-width:6;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
383- id="rect3274"
384- width="90"
385- height="90"
386- x="1763"
387- y="620.21936" />
388- <path
389- inkscape:connector-curvature="0"
390- style="fill:#808080;fill-opacity:1"
391- d="m 1808,635.21936 c -16.5688,0 -30,13.4314 -30,30 0,16.5675 13.4311,30 30,30 16.5686,0 30,-13.4325 30,-30 C 1838,648.65076 1824.5688,635.21936 1808,635.21936 z m 9.9375,8.3438 c 0.7694,-0.055 1.5628,0.1167 2.2813,0.5312 1.9159,1.1067 2.5752,3.553 1.4687,5.4688 -1.1053,1.9157 -3.553,2.575 -5.4687,1.4687 -1.9146,-1.1053 -2.5739,-3.554 -1.4688,-5.4687 C 1815.4418,644.36576 1816.6552,643.65406 1817.9375,643.56316 z m -9.9375,4.25 c 1.6106,0 3.176,0.2477 4.6562,0.6562 0.2611,1.6096 1.2269,3.0898 2.75,3.9688 1.5205,0.8764 3.2896,0.9503 4.8126,0.375 2.9615,2.9125 4.8754,6.8692 5.1562,11.2812 l -5.7188,0.094 c -0.5263,-5.9763 -5.5443,-10.6563 -11.6562,-10.6563 -1.7607,0 -3.4091,0.397 -4.9062,1.0937 l -2.7813,-5 C 1802.6368,648.47516 1805.2312,647.81316 1808,647.81316 z m -9.625,2.9374 2.9062,4.9063 c -3.0083,2.1176 -4.9687,5.6043 -4.9687,9.5625 0,3.9583 1.9604,7.4462 4.9687,9.5625 l -2.9062,4.9063 c -3.5057,-2.3425 -6.1366,-5.9003 -7.2188,-10.0938 1.2644,-1.0317 2.0938,-2.6155 2.0938,-4.375 0,-1.7605 -0.8294,-3.312 -2.0938,-4.3438 C 1792.2398,656.68336 1794.8707,653.09306 1798.375,650.75056 z m -10.75,10.4688 c 2.2119,0 4,1.787 4,4 0,2.2119 -1.7881,4 -4,4 -2.2132,0 -4,-1.7881 -4,-4 C 1783.625,663.00636 1785.4118,661.21936 1787.625,661.21936 z m 32.0312,5.0312 5.7188,0.094 c -0.2808,4.412 -2.1947,8.3687 -5.1562,11.2812 -1.523,-0.5753 -3.291,-0.4716 -4.8126,0.4063 -1.5227,0.8805 -2.4889,2.3592 -2.75,3.9687 -1.48,0.4098 -3.0456,0.625 -4.6562,0.625 -2.769,0 -5.3632,-0.6606 -7.6875,-1.8124 l 2.7813,-4.9688 c 1.497,0.6966 3.1455,1.0938 4.9062,1.0938 C 1814.1121,676.93806 1819.1311,672.22846 1819.6562,666.25056 z m -1.9374,12.6563 c 1.5484,-0.1918 3.1398,0.5329 3.9687,1.9687 1.1065,1.916 0.4468,4.3635 -1.4687,5.4688 -1.9158,1.1065 -4.3635,0.447 -5.4688,-1.4688 -1.1067,-1.9147 -0.447,-4.3622 1.4688,-5.4687 C 1816.6973,679.13056 1817.2026,678.97076 1817.7188,678.90686 Z"
392- id="path3" />
393+ transform="matrix(0,-1,-1,0,373.50506,516.50504)"
394+ id="g4845"
395+ style="display:inline">
396+ <g
397+ inkscape:export-ydpi="90"
398+ inkscape:export-xdpi="90"
399+ inkscape:export-filename="next01.png"
400+ transform="matrix(-0.9996045,0,0,1,575.94296,-611.00001)"
401+ id="g4778"
402+ inkscape:label="Layer 1">
403+ <g
404+ transform="matrix(-1,0,0,1,575.99999,611)"
405+ id="g4780"
406+ style="display:inline">
407+ <rect
408+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
409+ id="rect4782"
410+ width="96.037987"
411+ height="96"
412+ x="-438.00244"
413+ y="345.36221"
414+ transform="scale(-1,1)" />
415+ <path
416+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00079107;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
417+ d="m 432,393.36133 c 0,23.17268 -18.83506,42 -42.01562,42 -23.18057,0 -42.01758,-18.82732 -42.01758,-42 0,-23.17268 18.83701,-42 42.01758,-42 23.18056,0 42.01562,18.82732 42.01562,42 z m -4.00195,0 c 0,-21.00964 -16.99444,-37.99805 -38.01367,-37.99805 -21.01924,0 -38.01563,16.98841 -38.01563,37.99805 0,21.00963 16.99639,38 38.01563,38 21.01923,0 38.01367,-16.99037 38.01367,-38 z"
418+ id="path4116"
419+ inkscape:connector-curvature="0" />
420+ <rect
421+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6.00118685;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
422+ id="rect4173"
423+ width="5.9999971"
424+ height="32.012661"
425+ x="-396.36221"
426+ y="-397.98663"
427+ transform="matrix(0,-1,-1,0,0,0)" />
428+ <ellipse
429+ style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
430+ id="path4175"
431+ cx="-393.36221"
432+ cy="-408.99097"
433+ transform="matrix(0,-1,-1,0,0,0)"
434+ rx="5.0000143"
435+ ry="5.0019927" />
436+ </g>
437+ </g>
438 </g>
439 </g>
440 </svg>
441
442=== modified file 'plugins/battery/PageComponent.qml'
443--- plugins/battery/PageComponent.qml 2015-08-13 13:13:57 +0000
444+++ plugins/battery/PageComponent.qml 2015-11-27 13:34:19 +0000
445@@ -1,7 +1,7 @@
446 /*
447 * This file is part of system-settings
448 *
449- * Copyright (C) 2013 Canonical Ltd.
450+ * Copyright (C) 2013-2015 Canonical Ltd.
451 *
452 * Contact: Sebastien Bacher <sebastien.bacher@canonical.com>
453 *
454@@ -23,8 +23,8 @@
455 import QtQuick 2.4
456 import QtSystemInfo 5.0
457 import SystemSettings 1.0
458+import SystemSettings.ListItems 1.0 as SettingsListItems
459 import Ubuntu.Components 1.3
460-import Ubuntu.Components.ListItems 1.3 as ListItem
461 import Ubuntu.SystemSettings.Battery 1.0
462 import Ubuntu.SystemSettings.SecurityPrivacy 1.0
463 import Ubuntu.Settings.Components 0.1 as USC
464@@ -99,7 +99,7 @@
465 anchors.left: parent.left
466 anchors.right: parent.right
467
468- ListItem.SingleValue {
469+ SettingsListItems.SingleValue {
470 id: chargingLevel
471 text: i18n.tr("Charge level")
472 value: {
473@@ -262,7 +262,7 @@
474 }
475 }
476
477- ListItem.SingleValue {
478+ SettingsListItems.SingleValue {
479 id: chargingEntry
480 text: {
481 if (indicatorPower.deviceState === "charging")
482@@ -271,6 +271,8 @@
483 return i18n.tr("Last full charge")
484 else if (indicatorPower.deviceState === "fully-charged")
485 return i18n.tr("Fully charged")
486+ else
487+ return ""
488 }
489
490 value: {
491@@ -290,44 +292,6 @@
492 text: i18n.tr("Ways to reduce battery use:")
493 }
494
495- ListItem.Standard {
496- text: i18n.tr("Display brightness")
497- progression: true
498- onClicked: pageStack.push(
499- pluginManager.getByName("brightness").pageComponent)
500- }
501-
502- ListItem.SingleValue {
503- property bool lockOnSuspend:
504- securityPrivacy.securityType !==
505- UbuntuSecurityPrivacyPanel.Swipe
506- text: lockOnSuspend ? i18n.tr("Lock when idle") : i18n.tr("Sleep when idle")
507- value: {
508- if (batteryBackend.powerdRunning ) {
509- var timeout = Math.round(powerSettings.activityTimeout/60)
510- return (powerSettings.activityTimeout != 0) ?
511- // TRANSLATORS: %1 is the number of minutes
512- i18n.tr("After %1 minute",
513- "After %1 minutes",
514- timeout).arg(timeout) :
515- i18n.tr("Never")
516- }
517- else {
518- var timeout = Math.round(powerSettings.idleDelay/60)
519- return (powerSettings.idleDelay != 0) ?
520- // TRANSLATORS: %1 is the number of minutes
521- i18n.tr("After %1 minute",
522- "After %1 minutes",
523- timeout).arg(timeout) :
524- i18n.tr("Never")
525- }
526- }
527- progression: true
528- onClicked: pageStack.push(
529- Qt.resolvedUrl("SleepValues.qml"),
530- { title: text, lockOnSuspend: lockOnSuspend })
531- }
532-
533 QDBusActionGroup {
534 id: networkActionGroup
535 busType: 1
536@@ -337,10 +301,12 @@
537 Component.onCompleted: start()
538 }
539
540- ListItem.Standard {
541+ SettingsListItems.Icon {
542 // TRANSLATORS: “Wi-Fi used for hotspot” is hidden.
543 text: showAllUI ? i18n.tr("Wi-Fi used for hotspot") : i18n.tr("Wi-Fi")
544- control: Loader {
545+ iconName: "wifi-high"
546+
547+ Loader {
548 active: networkActionGroup.enabled.state != null
549 sourceComponent: Switch {
550 id: wifiSwitch
551@@ -371,10 +337,12 @@
552 Component.onCompleted: start()
553 }
554
555- ListItem.Standard {
556+ SettingsListItems.Icon {
557 id: btListItem
558 text: i18n.tr("Bluetooth")
559- control: Loader {
560+ iconName: "bluetooth-active"
561+
562+ Loader {
563 active: bluetoothActionGroup.enabled.state != null
564 sourceComponent: Switch {
565 id: btSwitch
566@@ -404,10 +372,15 @@
567 Component.onCompleted: start()
568 }
569
570- ListItem.Standard {
571+ SettingsListItems.Icon {
572 id: gpsListItem
573 text: i18n.tr("GPS")
574- control: Loader {
575+ layout.summary.text: i18n.tr(
576+ "Accurate location detection requires GPS and/or Wi-Fi."
577+ )
578+ iconName: "gps"
579+
580+ Loader {
581 active: locationActionGroup.enabled.state != null
582 sourceComponent: Switch {
583 id: gpsSwitch
584@@ -426,9 +399,48 @@
585 visible: locationActionGroup.enabled.state !== undefined
586 }
587
588- ListItem.Caption {
589- text: i18n.tr("Accurate location detection requires GPS and/or Wi-Fi.")
590- visible: gpsListItem.visible
591+ SettingsListItems.SingleValueProgression {
592+ property bool lockOnSuspend:
593+ securityPrivacy.securityType !==
594+ UbuntuSecurityPrivacyPanel.Swipe
595+ text: lockOnSuspend ? i18n.tr("Lock when idle") : i18n.tr("Sleep when idle")
596+ value: {
597+ if (batteryBackend.powerdRunning ) {
598+ var timeout = Math.round(powerSettings.activityTimeout/60)
599+ return (powerSettings.activityTimeout != 0) ?
600+ // TRANSLATORS: %1 is the number of minutes
601+ i18n.tr("After %1 minute",
602+ "After %1 minutes",
603+ timeout).arg(timeout) :
604+ i18n.tr("Never")
605+ }
606+ else {
607+ var timeout = Math.round(powerSettings.idleDelay/60)
608+ return (powerSettings.idleDelay != 0) ?
609+ // TRANSLATORS: %1 is the number of minutes
610+ i18n.tr("After %1 minute",
611+ "After %1 minutes",
612+ timeout).arg(timeout) :
613+ i18n.tr("Never")
614+ }
615+ }
616+
617+ Icon {
618+ width: units.gu(2.5)
619+ height: width
620+ name: "network-secure"
621+ SlotsLayout.position: SlotsLayout.First
622+ }
623+
624+ onClicked: pageStack.push(
625+ Qt.resolvedUrl("SleepValues.qml"),
626+ { title: text, lockOnSuspend: lockOnSuspend })
627+ }
628+
629+ SettingsListItems.StandardProgression {
630+ text: i18n.tr("Display brightness")
631+ onClicked: pageStack.push(
632+ pluginManager.getByName("brightness").pageComponent)
633 }
634 }
635 }
636
637=== modified file 'plugins/bluetooth/DevicePage.qml'
638--- plugins/bluetooth/DevicePage.qml 2015-11-12 09:53:00 +0000
639+++ plugins/bluetooth/DevicePage.qml 2015-11-27 13:34:19 +0000
640@@ -21,9 +21,9 @@
641 import QMenuModel 0.1
642 import QtQuick 2.0
643 import SystemSettings 1.0
644+import SystemSettings.ListItems 1.0 as SettingsListItems
645 import Ubuntu.Components 1.3
646 import Ubuntu.Components.Popups 1.3
647-import Ubuntu.Components.ListItems 1.3 as ListItem
648 import Ubuntu.SystemSettings.Bluetooth 1.0
649
650 Page {
651@@ -96,63 +96,37 @@
652 right: parent.right
653 }
654
655- ListItem.SingleValue {
656+ SettingsListItems.SingleValue {
657 text: i18n.tr("Name")
658 value: backend.selectedDevice &&
659 backend.selectedDevice.name.length > 0 ?
660 backend.selectedDevice.name :
661 i18n.tr("None")
662 }
663- ListItem.Standard {
664- Rectangle {
665- color: "transparent"
666- anchors.fill: parent
667- anchors.topMargin: units.gu(1)
668- anchors.leftMargin: units.gu(2)
669- anchors.rightMargin: units.gu(2)
670-
671- Label {
672- anchors {
673- top: parent.top
674- left: parent.left
675- topMargin: units.gu(1)
676- }
677- height: units.gu(3)
678- text: i18n.tr("Type")
679- }
680- Image {
681- anchors {
682- right: deviceType.left
683- rightMargin: units.gu(1)
684- }
685- height: units.gu(4)
686- width: units.gu(4)
687- source: backend.selectedDevice ? backend.selectedDevice.iconName : ""
688- }
689- Label {
690- id: deviceType
691- anchors {
692- top: parent.top
693- right: parent.right
694- topMargin: units.gu(1)
695- }
696- height: units.gu(3)
697- text: getTypeString(backend.selectedDevice ? backend.selectedDevice.type : Device.OTHER)
698- }
699+ SettingsListItems.SingleValue {
700+ text: i18n.tr("Type")
701+ value: getTypeString(backend.selectedDevice ? backend.selectedDevice.type : Device.OTHER)
702+ Image {
703+ height: units.gu(4)
704+ width: units.gu(4)
705+ source: backend.selectedDevice ? backend.selectedDevice.iconName : ""
706+ visible: source
707+ SlotsLayout.position: SlotsLayout.Trailing-1
708 }
709 }
710- ListItem.SingleValue {
711+ SettingsListItems.SingleValue {
712 text: i18n.tr("Status")
713 value: getStatusString(backend.selectedDevice ? backend.selectedDevice.connection : Device.Disconnected)
714 }
715- ListItem.SingleValue {
716+ SettingsListItems.SingleValue {
717 text: i18n.tr("Signal Strength")
718 value: getSignalString(backend.selectedDevice ? backend.selectedDevice.strength : Device.None)
719 }
720- ListItem.Standard {
721+ SettingsListItems.Standard {
722 id: trustedCheck
723 text: i18n.tr("Connect automatically when detected:")
724- control: CheckBox {
725+
726+ CheckBox {
727 property bool serverChecked: backend.selectedDevice ? backend.selectedDevice.trusted : false
728 onServerCheckedChanged: checked = serverChecked
729 Component.onCompleted: checked = serverChecked
730@@ -163,8 +137,10 @@
731 }
732 }
733 }
734- ListItem.SingleControl {
735- control: Button {
736+
737+ SettingsListItems.SingleControl {
738+
739+ Button {
740 text: backend.selectedDevice && (backend.selectedDevice.connection == Device.Connected || backend.selectedDevice.connection == Device.Connecting) ? i18n.tr("Disconnect") : i18n.tr("Connect")
741 width: parent.width - units.gu(8)
742 onClicked: {
743@@ -184,8 +160,10 @@
744 enabled: backend.selectedDevice && backend.powered ? (backend.isSupportedType(backend.selectedDevice.type) || backend.selectedDevice.connection != Device.Disconnected) : false
745 }
746 }
747- ListItem.SingleControl {
748- control: Button {
749+
750+ SettingsListItems.SingleControl {
751+
752+ Button {
753 text: i18n.tr("Forget this device")
754 width: parent.width - units.gu(8)
755 onClicked: {
756
757=== modified file 'plugins/bluetooth/PageComponent.qml'
758--- plugins/bluetooth/PageComponent.qml 2015-11-20 08:47:27 +0000
759+++ plugins/bluetooth/PageComponent.qml 2015-11-27 13:34:19 +0000
760@@ -21,9 +21,9 @@
761 import QMenuModel 0.1
762 import QtQuick 2.4
763 import SystemSettings 1.0
764+import SystemSettings.ListItems 1.0 as SettingsListItems
765 import Ubuntu.Components 1.3
766 import Ubuntu.Components.Popups 1.3
767-import Ubuntu.Components.ListItems 1.3 as ListItem
768 import Ubuntu.SystemSettings.Bluetooth 1.0
769 import Ubuntu.Settings.Components 0.1 as USC
770
771@@ -215,9 +215,10 @@
772 Component.onCompleted: start()
773 }
774
775- ListItem.Standard {
776+ SettingsListItems.Standard {
777 text: i18n.tr("Bluetooth")
778- control: Switch {
779+
780+ Switch {
781 id: btSwitch
782 property bool serverChecked: bluetoothActionGroup.enabled.state != undefined ? bluetoothActionGroup.enabled.state : false
783 USC.ServerPropertySynchroniser {
784@@ -232,77 +233,59 @@
785 }
786
787 // Discoverability
788- ListItem.Standard {
789+ SettingsListItems.SingleValue {
790+ text: backend.discoverable ? i18n.tr("Discoverable") : i18n.tr("Not discoverable")
791+ value: backend.discoverable ? backend.adapterName() : ""
792 enabled: bluetoothActionGroup.enabled
793 showDivider: false
794
795- Rectangle {
796- color: "transparent"
797- anchors.fill: parent
798- anchors.topMargin: units.gu(1)
799- anchors.leftMargin: units.gu(2)
800- anchors.rightMargin: units.gu(2)
801-
802- Label {
803- anchors {
804- top: parent.top
805- left: parent.left
806- topMargin: units.gu(1)
807- }
808- height: units.gu(3)
809- text: backend.discoverable ? i18n.tr("Discoverable") : i18n.tr("Not discoverable")
810- }
811-
812- Label {
813- anchors {
814- top: parent.top
815- right: parent.right
816- topMargin: units.gu(1)
817- }
818- height: units.gu(3)
819- text: backend.discoverable ? backend.adapterName() : ""
820- color: "darkgrey"
821- visible: backend.discoverable
822- enabled: false
823- }
824-
825- ActivityIndicator {
826- anchors {
827- top: parent.top
828- right: parent.right
829- topMargin: units.gu(1)
830- }
831- visible: backend.powered && !backend.discoverable
832- running: visible
833- }
834+ ActivityIndicator {
835+ visible: backend.powered && !backend.discoverable
836+ running: visible
837 }
838 }
839
840- ListItem.Standard {
841+ SettingsItemTitle {
842 id: connectedHeader
843- text: i18n.tr("Connected devices:")
844-
845+ text: i18n.tr("Connect a device")
846 enabled: bluetoothActionGroup.enabled
847- visible: connectedList.visible
848+ visible: connectList.visible
849+
850+ ActivityIndicator {
851+ anchors {
852+ right: parent.right
853+ top: parent.top
854+ margins: units.gu(1.5)
855+ }
856+ visible: backend.powered && backend.discovering
857+ running: visible
858+ }
859 }
860
861 Column {
862- id: connectedList
863+
864 anchors {
865 left: parent.left
866 right: parent.right
867 }
868- visible: (bluetoothActionGroup.enabled.state != undefined && bluetoothActionGroup.enabled.state) && (connectedRepeater.count > 0)
869- objectName: "connectedList"
870
871- Repeater {
872- id: connectedRepeater
873+ ListView {
874+ id: connectList
875+ height: contentItem.height
876+ anchors {
877+ left: parent.left
878+ right: parent.right
879+ }
880+ visible: (bluetoothActionGroup.enabled.state != undefined && bluetoothActionGroup.enabled.state)
881+ objectName: "connectedList"
882 model: backend.connectedDevices
883- delegate: ListItem.Standard {
884+ delegate: SettingsListItems.IconProgression {
885 iconSource: iconPath
886- iconFrame: false
887 text: getDisplayName(type, displayName)
888- control: ActivityIndicator {
889+ layout.subtitle.text: connection == Device.Connecting ? i18n.tr("Connecting…") : i18n.tr("Connected")
890+ layout.subtitle.color: UbuntuColors.green
891+
892+ ActivityIndicator {
893 visible: connection == Device.Connecting
894 running: visible
895 }
896@@ -310,50 +293,31 @@
897 backend.setSelectedDevice(addressName);
898 pageStack.push(Qt.resolvedUrl("DevicePage.qml"), {backend: backend, root: root});
899 }
900- progression: true
901- }
902- }
903- }
904-
905- SettingsItemTitle {
906- id: disconnectedHeader
907- text: connectedList.visible ? i18n.tr("Connect another device:") : i18n.tr("Connect a device:")
908- enabled: bluetoothActionGroup.enabled.state != undefined ? bluetoothActionGroup.enabled.state : false
909- control: ActivityIndicator {
910- visible: backend.powered && backend.discovering
911- running: visible
912- }
913- }
914-
915- Column {
916- id: disconnectedList
917- anchors {
918- left: parent.left
919- right: parent.right
920- }
921- visible: (bluetoothActionGroup.enabled.state != undefined && bluetoothActionGroup.enabled.state) && (disconnectedRepeater.count > 0)
922- objectName: "disconnectedList"
923-
924- Repeater {
925- id: disconnectedRepeater
926+ }
927+ }
928+
929+ ListView {
930+ id: disconnectedList
931+ height: contentItem.height
932+ anchors {
933+ left: parent.left
934+ right: parent.right
935+ }
936 model: backend.disconnectedDevices
937- delegate: ListItem.Standard {
938+ delegate: SettingsListItems.IconProgression {
939 iconSource: iconPath
940- iconFrame: false
941 text: getDisplayName(type, displayName)
942 onClicked: {
943 backend.setSelectedDevice(addressName);
944 pageStack.push(Qt.resolvedUrl("DevicePage.qml"), {backend: backend, root: root});
945 }
946- progression: true
947 }
948 }
949- }
950- ListItem.Standard {
951- id: disconnectedNone
952- text: i18n.tr("None detected")
953- visible: !disconnectedList.visible && disconnectedHeader.visible
954- enabled: false
955+
956+ SettingsListItems.Standard {
957+ text: i18n.tr("None detected")
958+ visible: connectList.count === 0 && disconnectedList.count === 0
959+ }
960 }
961
962 SettingsItemTitle {
963@@ -374,15 +338,13 @@
964 Repeater {
965 id: autoconnectRepeater
966 model: backend.autoconnectDevices
967- delegate: ListItem.Standard {
968+ delegate: SettingsListItems.IconProgression {
969 iconSource: iconPath
970- iconFrame: false
971 text: getDisplayName(type, displayName)
972 onClicked: {
973 backend.setSelectedDevice(addressName);
974 pageStack.push(Qt.resolvedUrl("DevicePage.qml"), {backend: backend, root: root});
975 }
976- progression: true
977 }
978 }
979 }
980
981=== modified file 'plugins/brightness/PageComponent.qml'
982--- plugins/brightness/PageComponent.qml 2015-08-10 13:31:45 +0000
983+++ plugins/brightness/PageComponent.qml 2015-11-27 13:34:19 +0000
984@@ -1,7 +1,7 @@
985 /*
986 * This file is part of system-settings
987 *
988- * Copyright (C) 2013-14 Canonical Ltd.
989+ * Copyright (C) 2013-2015 Canonical Ltd.
990 *
991 * Contact: Iain Lane <iain.lane@canonical.com>
992 *
993@@ -21,8 +21,8 @@
994 import GSettings 1.0
995 import QtQuick 2.4
996 import SystemSettings 1.0
997+import SystemSettings.ListItems 1.0 as SettingsListItems
998 import Ubuntu.Components 1.3
999-import Ubuntu.Components.ListItems 1.3 as ListItem
1000 import Ubuntu.SystemSettings.Brightness 1.0
1001 import Ubuntu.Settings.Menus 0.1 as Menus
1002 import Ubuntu.Settings.Components 0.1 as USC
1003@@ -53,7 +53,7 @@
1004 Component.onCompleted: start()
1005 }
1006
1007- ListItem.Standard {
1008+ SettingsListItems.Standard {
1009 text: i18n.tr("Display brightness")
1010 showDivider: false
1011 }
1012@@ -84,12 +84,17 @@
1013 }
1014 }
1015
1016- ListItem.Standard {
1017+ SettingsListItems.Standard {
1018 id: adjust
1019 text: i18n.tr("Adjust automatically")
1020 visible: brightnessPanel.powerdRunning &&
1021 brightnessPanel.autoBrightnessAvailable
1022- control: CheckBox {
1023+
1024+ layout.summary.text: i18n.tr(
1025+ "Brightens and dims the display to suit the surroundings."
1026+ )
1027+
1028+ CheckBox {
1029 id: autoAdjustCheck
1030 property bool serverChecked: gsettings.autoBrightness
1031 onServerCheckedChanged: checked = serverChecked
1032@@ -98,11 +103,6 @@
1033 }
1034 showDivider: false
1035 }
1036- ListItem.Caption {
1037- text: i18n.tr(
1038- "Brightens and dims the display to suit the surroundings.")
1039- visible: adjust.visible
1040- }
1041 }
1042
1043 GSettings {
1044
1045=== modified file 'plugins/cellular/Components/MultiSim.qml'
1046--- plugins/cellular/Components/MultiSim.qml 2015-09-18 14:18:11 +0000
1047+++ plugins/cellular/Components/MultiSim.qml 2015-11-27 13:34:19 +0000
1048@@ -20,8 +20,9 @@
1049 import QtQuick 2.4
1050 import GSettings 1.0
1051 import SystemSettings 1.0
1052+import SystemSettings.ListItems 1.0 as SettingsListItems
1053 import Ubuntu.Components 1.3
1054-import Ubuntu.Components.ListItems 1.3 as ListItem
1055+import Ubuntu.Components.ListItems 1.3 as ListItems
1056
1057 /* This is a temporary solution to the issue of Hotspots failing on mako. If
1058 the device is mako, we hide the hotspot entry. Will be removed once lp:1434591
1059@@ -53,20 +54,17 @@
1060 anchors { left: parent.left; right: parent.right }
1061 }
1062
1063- ListItem.Standard {
1064+ SettingsListItems.StandardProgression {
1065 id: dataUsage
1066 text: i18n.tr("Data usage statistics")
1067- progression: true
1068 visible: showAllUI
1069 }
1070
1071- ListItem.Divider {}
1072-
1073- ListItem.SingleValue {
1074+ SettingsListItems.SingleValueProgression {
1075 text: i18n.tr("Carriers")
1076 id: chooseCarrier
1077 objectName: "carrierApnEntry"
1078- progression: enabled
1079+ progressionVisible: enabled
1080 showDivider: false
1081 onClicked: {
1082 pageStack.push(Qt.resolvedUrl("../PageCarriersAndApns.qml"), {
1083@@ -75,26 +73,24 @@
1084 }
1085 }
1086
1087- ListItem.Divider {}
1088-
1089 SimEditor {
1090 anchors { left: parent.left; right: parent.right }
1091 }
1092
1093- ListItem.Divider {}
1094+ ListItems.Divider {}
1095
1096 DefaultSim {
1097 anchors { left: parent.left; right: parent.right }
1098 }
1099
1100- ListItem.Divider {}
1101+ ListItems.Divider {}
1102
1103 SettingsItemTitle { text: i18n.tr("Connection type:") }
1104
1105 Repeater {
1106 model: sims
1107
1108- ListItem.ItemSelector {
1109+ ListItems.ItemSelector {
1110 id: radio
1111 property var sim: modelData
1112
1113
1114=== modified file 'plugins/cellular/Components/Sim.qml'
1115--- plugins/cellular/Components/Sim.qml 2015-08-10 13:31:45 +0000
1116+++ plugins/cellular/Components/Sim.qml 2015-11-27 13:34:19 +0000
1117@@ -37,6 +37,10 @@
1118 return name + (number ? " (" + number + ")" : "");
1119 }
1120
1121+ function getTechString () {
1122+ return techToString(radioSettings.technologyPreference);
1123+ }
1124+
1125 function techToString (tech) {
1126 var strings = {
1127 'gsm': i18n.tr("2G only (saves battery)"),
1128@@ -44,7 +48,7 @@
1129 'lte': i18n.tr("2G/3G/4G (faster)")
1130 };
1131 strings['umts_enable'] = strings['umts'];
1132- return strings[tech];
1133+ return strings[tech] || "";
1134 }
1135
1136 // adds umts_enable to an copy of model
1137
1138=== modified file 'plugins/cellular/Components/SingleSim.qml'
1139--- plugins/cellular/Components/SingleSim.qml 2015-08-21 14:03:29 +0000
1140+++ plugins/cellular/Components/SingleSim.qml 2015-11-27 13:34:19 +0000
1141@@ -18,9 +18,9 @@
1142 *
1143 */
1144 import QtQuick 2.4
1145-import SystemSettings 1.0
1146+import SystemSettings.ListItems 1.0 as SettingsListItems
1147+import Ubuntu.SystemSettings.Cellular 1.0
1148 import Ubuntu.Components 1.3
1149-import Ubuntu.Components.ListItems 1.3 as ListItem
1150
1151 Column {
1152
1153@@ -32,10 +32,11 @@
1154 @prevOnlineModem path to modem that was online before this event */
1155 signal umtsModemChanged (var sim, string prevOnlineModem);
1156
1157- ListItem.Standard {
1158+ SettingsListItems.Standard {
1159 id: selector
1160 text: i18n.tr("Cellular data:")
1161- control: Switch {
1162+
1163+ Switch {
1164 id: dataControl
1165 objectName: 'data'
1166 property bool serverChecked: sim.connMan.powered
1167@@ -45,11 +46,12 @@
1168 }
1169 }
1170
1171- ListItem.Standard {
1172+ SettingsListItems.Standard {
1173 id: dataRoamingItem
1174 text: i18n.tr("Data roaming")
1175 enabled: sim.connMan.powered
1176- control: Switch {
1177+
1178+ Switch {
1179 id: dataRoamingControl
1180 objectName: "roaming"
1181 property bool serverChecked: sim.connMan.roamingAllowed
1182@@ -59,31 +61,24 @@
1183 }
1184 }
1185
1186- ListItem.Standard {
1187+ SettingsListItems.StandardProgression{
1188 text: i18n.tr("Data usage statistics")
1189- progression: true
1190 visible: showAllUI
1191 }
1192
1193- ListItem.Divider {
1194- visible: radio.visible
1195- }
1196-
1197- RadioSingleSim {
1198- id: radio
1199- anchors { left: parent.left; right: parent.right }
1200- visible: radio.enabled
1201- }
1202-
1203- ListItem.Divider {}
1204-
1205- ListItem.SingleValue {
1206- text: i18n.tr("Carrier");
1207+ SettingsListItems.SingleValueProgression {
1208+ text: i18n.tr("Carrier & APN");
1209 id: chooseCarrier
1210 objectName: "carrierApnEntry"
1211- progression: enabled
1212+ value: sim.netReg.name || ""
1213 onClicked: pageStack.push(Qt.resolvedUrl("../PageCarrierAndApn.qml"), {
1214 sim: sim
1215 })
1216 }
1217+
1218+ RadioSingleSim {
1219+ id: radio
1220+ anchors { left: parent.left; right: parent.right }
1221+ visible: radio.enabled
1222+ }
1223 }
1224
1225=== modified file 'plugins/cellular/PageCarrierAndApn.qml'
1226--- plugins/cellular/PageCarrierAndApn.qml 2015-08-10 13:31:45 +0000
1227+++ plugins/cellular/PageCarrierAndApn.qml 2015-11-27 13:34:19 +0000
1228@@ -19,12 +19,12 @@
1229 */
1230 import QtQuick 2.4
1231 import SystemSettings 1.0
1232+import SystemSettings.ListItems 1.0 as SettingsListItems
1233 import Ubuntu.Components 1.3
1234-import Ubuntu.Components.ListItems 1.3 as ListItem
1235
1236 ItemPage {
1237 id: root
1238- title: i18n.tr("Carrier")
1239+ title: i18n.tr("Carrier & APN")
1240 objectName: "carrierApnPage"
1241 flickable: null
1242
1243@@ -40,23 +40,23 @@
1244 anchors.left: parent.left
1245 anchors.right: parent.right
1246
1247- ListItem.SingleValue {
1248+ SettingsListItems.SingleValueProgression {
1249 text: i18n.tr("Carrier")
1250 objectName: "carrier"
1251 value: sim.netReg.name ? sim.netReg.name : i18n.tr("None")
1252 enabled: (sim.netReg.status !== "") &&
1253 (sim.netReg.mode !== "auto-only")
1254- progression: enabled
1255+ progressionVisible: enabled
1256 onClicked: pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {
1257 sim: sim,
1258 title: i18n.tr("Carrier")
1259 })
1260 }
1261
1262- ListItem.Standard {
1263+ SettingsListItems.SingleValueProgression {
1264 text: i18n.tr("APN")
1265 objectName: "apn"
1266- progression: enabled
1267+ progressionVisible: enabled
1268 onClicked: pageStack.push(Qt.resolvedUrl("PageChooseApn.qml"), {
1269 sim: sim
1270 })
1271
1272=== modified file 'plugins/cellular/PageCarriersAndApns.qml'
1273--- plugins/cellular/PageCarriersAndApns.qml 2015-08-10 13:31:45 +0000
1274+++ plugins/cellular/PageCarriersAndApns.qml 2015-11-27 13:34:19 +0000
1275@@ -19,12 +19,12 @@
1276 */
1277 import QtQuick 2.4
1278 import SystemSettings 1.0
1279+import SystemSettings.ListItems 1.0 as SettingsListItems
1280 import Ubuntu.Components 1.3
1281-import Ubuntu.Components.ListItems 1.3 as ListItem
1282
1283 ItemPage {
1284 id: root
1285- title: i18n.tr("Carriers")
1286+ title: i18n.tr("Carriers & APNs")
1287 objectName: "carrierApnPage"
1288 flickable: null
1289
1290@@ -40,56 +40,39 @@
1291 anchors.left: parent.left
1292 anchors.right: parent.right
1293
1294- SettingsItemTitle {
1295- text: sims[0].title
1296- }
1297-
1298- ListItem.SingleValue {
1299- text: i18n.tr("Carrier")
1300- objectName: sims[0].path + "_carriers"
1301- value: sims[0].netReg.name ? sims[0].netReg.name :
1302- i18n.tr("None")
1303- enabled: (sims[0].netReg.status !== "") &&
1304- (sims[0].netReg.mode !== "auto-only")
1305- progression: enabled
1306- onClicked: pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {
1307- sim: sims[0],
1308- title: sims[0].title
1309- })
1310- }
1311-
1312- ListItem.Standard {
1313- text: i18n.tr("APN")
1314- progression: enabled
1315- onClicked: pageStack.push(Qt.resolvedUrl("PageChooseApn.qml"), {
1316- sim: sims[0]
1317- })
1318- }
1319-
1320- SettingsItemTitle {
1321- text: sims[1].title
1322- }
1323-
1324- ListItem.SingleValue {
1325- text: i18n.tr("Carrier")
1326- objectName: sims[1].path + "_carriers"
1327- value: sims[1].netReg.name ? sims[1].netReg.name :
1328- i18n.tr("None")
1329- enabled: (sims[1].netReg.status !== "") &&
1330- (sims[1].netReg.mode !== "auto-only")
1331- progression: enabled
1332- onClicked: pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {
1333- sim: sims[1],
1334- title: sims[1].title
1335- })
1336- }
1337-
1338- ListItem.Standard {
1339- text: i18n.tr("APN")
1340- progression: enabled
1341- onClicked: pageStack.push(Qt.resolvedUrl("PageChooseApn.qml"), {
1342- sim: sims[1]
1343- })
1344+ Repeater {
1345+ model: sims
1346+
1347+ Column {
1348+ anchors.left: parent.left
1349+ anchors.right: parent.right
1350+
1351+ SettingsItemTitle {
1352+ text: sims[index].title
1353+ }
1354+
1355+ SettingsListItems.SingleValueProgression {
1356+ text: i18n.tr("Carrier")
1357+ objectName: sims[index].path + "_carriers"
1358+ value: sims[index].netReg.name ? sims[index].netReg.name :
1359+ i18n.tr("None")
1360+ enabled: (sims[index].netReg.status !== "") &&
1361+ (sims[index].netReg.mode !== "auto-only")
1362+ progressionVisible: enabled
1363+ onClicked: pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {
1364+ sim: sims[index],
1365+ title: sims[index].title
1366+ })
1367+ }
1368+
1369+ SettingsListItems.StandardProgression {
1370+ text: i18n.tr("APN")
1371+ progressionVisible: enabled
1372+ onClicked: pageStack.push(Qt.resolvedUrl("PageChooseApn.qml"), {
1373+ sim: sims[index]
1374+ })
1375+ }
1376+ }
1377 }
1378 }
1379 }
1380
1381=== modified file 'plugins/cellular/PageChooseApn.qml'
1382--- plugins/cellular/PageChooseApn.qml 2015-08-10 13:31:45 +0000
1383+++ plugins/cellular/PageChooseApn.qml 2015-11-27 13:34:19 +0000
1384@@ -25,9 +25,9 @@
1385
1386 import QtQuick 2.4
1387 import SystemSettings 1.0
1388+import SystemSettings.ListItems 1.0 as SettingsListItems
1389 import Ubuntu.Components 1.3
1390 import Ubuntu.Components.Popups 1.3
1391-import Ubuntu.Components.ListItems 1.3 as ListItem
1392 import MeeGo.QOfono 0.2
1393 import Ubuntu.SystemSettings.Cellular 1.0
1394 import "apn_manager.js" as Manager
1395@@ -283,16 +283,24 @@
1396 Component {
1397 id: apnDelegate
1398
1399- ListItem.Standard {
1400+
1401+
1402+ SettingsListItems.StandardProgression {
1403 id: apnListItem
1404- property alias text: apnItemName.text
1405+ text: qml.name
1406+ layout.subtitle.text: qml.typeString
1407 objectName: "edit_" + qml.name
1408- height: units.gu(6)
1409- removable: true
1410- confirmRemoval: true
1411- progression: true
1412-
1413- onItemRemoved: Manager.removeContext(path);
1414+
1415+ leadingActions: ListItemActions {
1416+ actions: [
1417+ Action {
1418+ iconName: "delete"
1419+ name: i18n.tr("Delete")
1420+ onTriggered: Manager.removeContext(path)
1421+ }
1422+ ]
1423+ }
1424+
1425 onClicked: {
1426 editor = pageStack.push(Qt.resolvedUrl("PageApnEditor.qml"), {
1427 manager: Manager,
1428@@ -303,7 +311,7 @@
1429 });
1430 }
1431
1432- control: CheckBox {
1433+ CheckBox {
1434 id: check
1435 objectName: qml.name + "_preferred"
1436 property bool serverChecked: qml && qml.preferred
1437@@ -311,45 +319,6 @@
1438 Component.onCompleted: checked = serverChecked
1439 onTriggered: Manager.setPreferred.call(this, qml, checked)
1440 }
1441-
1442- Item {
1443- anchors {
1444- top: parent.top
1445- bottom: parent.bottom
1446- left: parent.left
1447- leftMargin: units.gu(2)
1448- right: parent.right
1449- }
1450-
1451- Label {
1452- id: apnItemName
1453- anchors {
1454- topMargin: units.gu(1)
1455- top: parent.top
1456- left: parent.left
1457- right: parent.right
1458- }
1459-
1460- text: qml.name
1461- elide: Text.ElideRight
1462- opacity: apnListItem.enabled ? 1.0 : 0.5
1463- }
1464-
1465- Label {
1466- id: apnItemType
1467- anchors {
1468- left: parent.left
1469- right: parent.right
1470- top: apnItemName.bottom
1471- }
1472-
1473- text: qml.typeString
1474- color: Theme.palette.normal.backgroundText
1475- fontSize: "small"
1476- wrapMode: Text.Wrap
1477- maximumLineCount: 5
1478- }
1479- }
1480 }
1481 }
1482
1483
1484=== modified file 'plugins/cellular/PageComponent.qml'
1485--- plugins/cellular/PageComponent.qml 2015-08-13 13:13:57 +0000
1486+++ plugins/cellular/PageComponent.qml 2015-11-27 13:34:19 +0000
1487@@ -22,7 +22,6 @@
1488 import SystemSettings 1.0
1489 import Ubuntu.SystemSettings.Cellular 1.0
1490 import Ubuntu.Components 1.3
1491-import Ubuntu.Components.ListItems 1.3 as ListItem
1492 import MeeGo.QOfono 0.2
1493 import QMenuModel 0.1
1494 import "Components" as LocalComponents
1495
1496=== modified file 'plugins/flight-mode/EntryComponent.qml'
1497--- plugins/flight-mode/EntryComponent.qml 2015-08-10 13:31:45 +0000
1498+++ plugins/flight-mode/EntryComponent.qml 2015-11-27 13:34:19 +0000
1499@@ -1,7 +1,7 @@
1500 /*
1501 * This file is part of system-settings
1502 *
1503- * Copyright (C) 2013 Canonical Ltd.
1504+ * Copyright (C) 2013-2015 Canonical Ltd.
1505 *
1506 * Contact: Alberto Mardegan <alberto.mardegan@canonical.com>
1507 *
1508@@ -19,17 +19,17 @@
1509 */
1510
1511 import QtQuick 2.4
1512+import SystemSettings.ListItems 1.0 as SettingsListItems
1513 import Ubuntu.Components 1.3
1514-import Ubuntu.Components.ListItems 1.3 as ListItem
1515 import Ubuntu.SystemSettings.FlightMode 1.0 as FlightMode
1516 import Ubuntu.Settings.Components 0.1 as USC
1517
1518-ListItem.Standard {
1519+SettingsListItems.Icon {
1520 id: root
1521 iconSource: model.icon
1522- iconFrame: false
1523 text: i18n.tr(model.displayName)
1524- control: Switch {
1525+
1526+ Switch {
1527 id: switchItem
1528
1529 USC.ServerPropertySynchroniser {
1530@@ -42,7 +42,7 @@
1531 }
1532 }
1533
1534- FlightMode.Helper {
1535+ resources: FlightMode.Helper {
1536 id: helper
1537 }
1538 }
1539
1540=== modified file 'plugins/flight-mode/flight-mode.settings'
1541--- plugins/flight-mode/flight-mode.settings 2014-09-24 17:10:03 +0000
1542+++ plugins/flight-mode/flight-mode.settings 2015-11-27 13:34:19 +0000
1543@@ -3,7 +3,7 @@
1544 "icon": "airplane-mode",
1545 "translations": "ubuntu-system-settings",
1546 "category": "uncategorized-top",
1547- "priority": 1,
1548+ "priority": 0,
1549 "keywords": [
1550 "flight",
1551 "plane",
1552
1553=== modified file 'plugins/hotspot/HotspotSetup.qml'
1554--- plugins/hotspot/HotspotSetup.qml 2015-09-18 14:18:11 +0000
1555+++ plugins/hotspot/HotspotSetup.qml 2015-11-27 13:34:19 +0000
1556@@ -19,8 +19,9 @@
1557 import QtQuick 2.4
1558 import QtQuick.Layouts 1.1
1559 import SystemSettings 1.0
1560+import SystemSettings.ListItems 1.0 as SettingsListItems
1561 import Ubuntu.Components 1.3
1562-import Ubuntu.Components.ListItems 1.3 as ListItem
1563+import Ubuntu.Components.ListItems 1.3 as ListItems
1564 import Ubuntu.Components.Popups 1.3
1565 import Ubuntu.Connectivity 1.0
1566 import Ubuntu.SystemSettings.Cellular 1.0
1567@@ -187,35 +188,23 @@
1568 width: parent.width
1569 }
1570
1571- ListItem.Empty {
1572+ SettingsListItems.Standard {
1573 id: passwordRequired
1574- onClicked: passwordRequiredToggle.trigger()
1575+ text: i18n.tr("Require a password (recommended):")
1576+ showDivider: false
1577+ layout.padding.leading: 0
1578+ SlotsLayout.padding.leading: 0
1579
1580 CheckBox {
1581 id: passwordRequiredToggle
1582 objectName: "passwordRequiredToggle"
1583 checked: Connectivity.hotspotAuth === "wpa-psk"
1584- anchors {
1585- left: parent.left
1586- verticalCenter: parent.verticalCenter
1587- }
1588+ SlotsLayout.position: SlotsLayout.First
1589+ SlotsLayout.padding.leading: 0
1590 // FIXME: Workaround for lp:1415023
1591 activeFocusOnPress: false
1592 }
1593-
1594- Label {
1595- id: passwordRequiredLabel
1596- anchors {
1597- left: passwordRequiredToggle.right
1598- leftMargin: units.gu(1)
1599- right: parent.right
1600- verticalCenter: parent.verticalCenter
1601- }
1602-
1603- // FIXME: Workaround for label not wrapping (lp:1442851)
1604- wrapMode: Text.Wrap
1605- text: i18n.tr("Require a password (recommended):")
1606- }
1607+ onClicked: passwordRequiredToggle.trigger()
1608 }
1609
1610 TextField {
1611@@ -229,39 +218,25 @@
1612 width: parent.width
1613 }
1614
1615- ListItem.Empty {
1616+ SettingsListItems.Standard {
1617 id: passwordVisible
1618 enabled: passwordRequiredToggle.checked
1619- onClicked: passwordVisibleToggle.trigger()
1620+ text: i18n.tr("Show password")
1621+ layout.padding.leading: 0
1622+ SlotsLayout.padding.leading: 0
1623
1624 CheckBox {
1625 id: passwordVisibleToggle
1626 enabled: parent.enabled
1627- anchors {
1628- left: parent.left
1629- verticalCenter: parent.verticalCenter
1630- }
1631-
1632+ SlotsLayout.position: SlotsLayout.First
1633+ SlotsLayout.padding.leading: 0
1634 // FIXME: Workaround for lp:1415023
1635 activeFocusOnPress: false
1636 }
1637-
1638- Label {
1639- id: passwordVisibleLabel
1640-
1641- /* FIXME: use enabled when lp:1491802 is fixed, or use
1642- CheckBox.text once lp:1323238 is fixed. */
1643- opacity: passwordRequiredToggle.checked ? 1 : 0.5
1644- anchors {
1645- left: passwordVisibleToggle.right
1646- leftMargin: units.gu(1)
1647- verticalCenter: parent.verticalCenter
1648- }
1649- text: i18n.tr("Show password")
1650- }
1651+ onClicked: passwordVisibleToggle.trigger()
1652 }
1653
1654- ListItem.Caption {
1655+ ListItems.Caption {
1656 id: enableWifiCaption
1657 anchors {
1658 left: parent.left
1659
1660=== modified file 'plugins/hotspot/PageComponent.qml'
1661--- plugins/hotspot/PageComponent.qml 2015-09-18 14:18:11 +0000
1662+++ plugins/hotspot/PageComponent.qml 2015-11-27 13:34:19 +0000
1663@@ -20,8 +20,9 @@
1664
1665 import QtQuick 2.4
1666 import SystemSettings 1.0
1667+import SystemSettings.ListItems 1.0 as SettingsListItems
1668+import Ubuntu.Components.ListItems 1.3 as ListItems
1669 import Ubuntu.Components 1.3
1670-import Ubuntu.Components.ListItems 1.3 as ListItem
1671 import Ubuntu.Components.Popups 1.3
1672 import Ubuntu.Connectivity 1.0
1673
1674@@ -77,15 +78,15 @@
1675 }
1676 spacing: units.gu(1)
1677
1678- ListItem.Standard {
1679+ SettingsListItems.Standard {
1680 id: hotspotItem
1681 text: i18n.tr("Hotspot")
1682 enabled: Connectivity.hotspotStored
1683 onClicked: hotspotSwitch.trigger()
1684- control: Switch {
1685+
1686+ Switch {
1687 id: hotspotSwitch
1688 objectName: "hotspotSwitch"
1689- enabled: parent.enabled
1690 checked: Connectivity.hotspotEnabled
1691 onTriggered: Connectivity.hotspotEnabled = checked
1692
1693@@ -101,7 +102,7 @@
1694 }
1695 }
1696
1697- ListItem.Caption {
1698+ ListItems.Caption {
1699 anchors {
1700 left: parent.left
1701 right: parent.right
1702
1703=== modified file 'plugins/language/KeyboardLayoutItem.qml'
1704--- plugins/language/KeyboardLayoutItem.qml 2015-08-10 13:31:45 +0000
1705+++ plugins/language/KeyboardLayoutItem.qml 2015-11-27 13:34:19 +0000
1706@@ -20,18 +20,18 @@
1707
1708 import QtQuick 2.4
1709 import Ubuntu.Components 1.3
1710-import Ubuntu.Components.ListItems 1.3 as ListItem
1711-
1712-ListItem.Base {
1713- property alias name: name.text
1714- property alias checked: checkBox.checked
1715- property alias shortName: shortName.text
1716-
1717- Row {
1718- anchors.top: parent.top
1719- anchors.left: parent.left
1720- anchors.bottom: parent.bottom
1721- spacing: units.gu(1)
1722+
1723+ListItem {
1724+ property string name
1725+ property alias checked: checkBox.checked
1726+ property alias shortName: shortName.text
1727+
1728+ height: layout.height + divider.height
1729+
1730+ ListItemLayout {
1731+ id: layout
1732+
1733+ title.text: name
1734
1735 Rectangle {
1736 width: units.gu(3.0)
1737@@ -40,8 +40,6 @@
1738
1739 color: Theme.palette.normal.backgroundText
1740
1741- anchors.verticalCenter: parent.verticalCenter
1742-
1743 Label {
1744 id: shortName
1745
1746@@ -50,21 +48,14 @@
1747
1748 anchors.centerIn: parent
1749 }
1750- }
1751-
1752- Label {
1753- id: name
1754-
1755- anchors.verticalCenter: parent.verticalCenter
1756- }
1757- }
1758-
1759- CheckBox {
1760- id: checkBox
1761-
1762- anchors.right: parent.right
1763- anchors.verticalCenter: parent.verticalCenter
1764- }
1765-
1766+
1767+ SlotsLayout.position: SlotsLayout.First
1768+ }
1769+
1770+ CheckBox {
1771+ id: checkBox
1772+ SlotsLayout.position: SlotsLayout.Trailing
1773+ }
1774+ }
1775 onClicked: checked = !checked
1776 }
1777
1778=== modified file 'plugins/language/PageComponent.qml'
1779--- plugins/language/PageComponent.qml 2015-08-10 13:31:45 +0000
1780+++ plugins/language/PageComponent.qml 2015-11-27 13:34:19 +0000
1781@@ -21,9 +21,9 @@
1782 import QtQuick 2.4
1783 import GSettings 1.0
1784 import SystemSettings 1.0
1785+import SystemSettings.ListItems 1.0 as SettingsListItems
1786 import Ubuntu.Components 1.3
1787 import Ubuntu.Components.Popups 1.3
1788-import Ubuntu.Components.ListItems 1.3 as ListItem
1789 import Ubuntu.Settings.Menus 0.1 as Menus
1790 import Ubuntu.SystemSettings.LanguagePlugin 1.0
1791
1792@@ -96,53 +96,56 @@
1793 anchors.left: parent.left
1794 anchors.right: parent.right
1795
1796- Menus.StandardMenu {
1797- iconSource: "image://theme/language-chooser"
1798+ SettingsItemTitle {
1799+ text: i18n.tr("Language")
1800+ }
1801+
1802+ SettingsListItems.Standard {
1803+ id: base
1804+ height: layout.height + divider.height
1805+ objectName: "displayLanguage"
1806+ property int currentLanguage: plugin.currentLanguage
1807 text: i18n.tr("Display language…")
1808- objectName: "displayLanguage"
1809- component: Label {
1810- property int currentLanguage: plugin.currentLanguage
1811- objectName: "currentLanguage"
1812- text: plugin.languageNames[plugin.currentLanguage]
1813- elide: Text.ElideRight
1814- opacity: enabled ? 1.0 : 0.5
1815+ layout.subtitle.text: plugin.languageNames[plugin.currentLanguage]
1816+ layout.subtitle.objectName: "currentLanguage"
1817+
1818+ Icon {
1819+ source: "image://theme/language-chooser"
1820+ height: units.gu(2.5)
1821+ width: height
1822+ SlotsLayout.position: SlotsLayout.First
1823 }
1824-
1825 onClicked: PopupUtils.open(displayLanguage)
1826 }
1827
1828- ListItem.Divider {
1829- }
1830-
1831- ListItem.SingleValue {
1832+ SettingsListItems.SingleValueProgression {
1833 text: i18n.tr("Keyboard layouts")
1834 value: plugin.keyboardLayoutsModel.subset.length == 1 ?
1835 plugin.keyboardLayoutsModel.superset[plugin.keyboardLayoutsModel.subset[0]][0] :
1836 plugin.keyboardLayoutsModel.subset.length
1837- progression: true
1838
1839 onClicked: pageStack.push(keyboardLayouts)
1840 }
1841
1842- ListItem.Divider {
1843+ SettingsItemTitle {
1844+ text: i18n.tr("Correction")
1845 }
1846
1847- ListItem.SingleValue {
1848+ SettingsListItems.SingleValueProgression {
1849 visible: showAllUI
1850
1851 text: i18n.tr("Spell checking")
1852 value: plugin.spellCheckingModel.subset.length == 1 ?
1853 plugin.spellCheckingModel.superset[plugin.spellCheckingModel.subset[0]][0] :
1854 plugin.spellCheckingModel.subset.length
1855- progression: true
1856
1857 onClicked: pageStack.push(spellChecking)
1858 }
1859
1860- ListItem.Standard {
1861+ SettingsListItems.Standard {
1862 text: i18n.tr("Spell checking")
1863
1864- control: Switch {
1865+ Switch {
1866 property bool serverChecked: settings.spellChecking
1867 onServerCheckedChanged: checked = serverChecked
1868 Component.onCompleted: checked = serverChecked
1869@@ -150,10 +153,10 @@
1870 }
1871 }
1872
1873- ListItem.Standard {
1874+ SettingsListItems.Standard {
1875 text: i18n.tr("Auto correction")
1876
1877- control: Switch {
1878+ Switch {
1879 property bool serverChecked: settings.autoCompletion
1880 onServerCheckedChanged: checked = serverChecked
1881 Component.onCompleted: checked = serverChecked
1882@@ -161,10 +164,10 @@
1883 }
1884 }
1885
1886- ListItem.Standard {
1887+ SettingsListItems.Standard {
1888 text: i18n.tr("Word suggestions")
1889
1890- control: Switch {
1891+ Switch {
1892 property bool serverChecked: settings.predictiveText
1893 onServerCheckedChanged: checked = serverChecked
1894 Component.onCompleted: checked = serverChecked
1895@@ -172,13 +175,13 @@
1896 }
1897 }
1898
1899- ListItem.Divider {
1900- }
1901-
1902- ListItem.Standard {
1903+ SettingsListItems.Standard {
1904 text: i18n.tr("Auto capitalization")
1905+ layout.summary.text: i18n.tr(
1906+ "Turns on Shift to capitalize the first letter of each sentence."
1907+ )
1908
1909- control: Switch {
1910+ Switch {
1911 property bool serverChecked: settings.autoCapitalization
1912 onServerCheckedChanged: checked = serverChecked
1913 Component.onCompleted: checked = serverChecked
1914@@ -186,17 +189,13 @@
1915 }
1916 }
1917
1918- ListItem.Caption {
1919- text: i18n.tr("Turns on Shift to capitalize the first letter of each sentence.")
1920- }
1921-
1922- ListItem.ThinDivider {
1923- }
1924-
1925- ListItem.Standard {
1926+ SettingsListItems.Standard {
1927 text: i18n.tr("Auto punctuation")
1928
1929- control: Switch {
1930+ /* TODO: update the string to mention quotes/brackets once the osk does that */
1931+ layout.summary.text: i18n.tr("Inserts a period when you tap Space twice.")
1932+
1933+ Switch {
1934 property bool serverChecked: settings.doubleSpaceFullStop
1935 onServerCheckedChanged: checked = serverChecked
1936 Component.onCompleted: checked = serverChecked
1937@@ -204,18 +203,10 @@
1938 }
1939 }
1940
1941- ListItem.Caption {
1942- /* TODO: update the string to mention quotes/brackets once the osk does that */
1943- text: i18n.tr("Inserts a period when you tap Space twice.")
1944- }
1945-
1946- ListItem.ThinDivider {
1947- }
1948-
1949- ListItem.Standard {
1950+ SettingsListItems.Standard {
1951 text: i18n.tr("Keyboard sound")
1952
1953- control: Switch {
1954+ Switch {
1955 property bool serverChecked: settings.keyPressFeedback
1956 onServerCheckedChanged: checked = serverChecked
1957 Component.onCompleted: checked = serverChecked
1958@@ -223,10 +214,10 @@
1959 }
1960 }
1961
1962- ListItem.Standard {
1963+ SettingsListItems.Standard {
1964 text: i18n.tr("Keyboard vibration")
1965
1966- control: Switch {
1967+ Switch {
1968 property bool serverChecked: settings.keyPressHapticFeedback
1969 onServerCheckedChanged: checked = serverChecked
1970 Component.onCompleted: checked = serverChecked
1971
1972=== modified file 'plugins/language/SpellChecking.qml'
1973--- plugins/language/SpellChecking.qml 2015-08-10 13:31:45 +0000
1974+++ plugins/language/SpellChecking.qml 2015-11-27 13:34:19 +0000
1975@@ -21,8 +21,8 @@
1976 import QtQuick 2.4
1977 import GSettings 1.0
1978 import SystemSettings 1.0
1979+import SystemSettings.ListItems 1.0 as SettingsListItems
1980 import Ubuntu.Components 1.3
1981-import Ubuntu.Components.ListItems 1.3 as ListItem
1982 import Ubuntu.SystemSettings.LanguagePlugin 1.0
1983
1984 ItemPage {
1985@@ -38,12 +38,12 @@
1986 schema.id: "com.canonical.keyboard.maliit"
1987 }
1988
1989- ListItem.Standard {
1990+ SettingsListItems.Standard {
1991 id: item
1992
1993 text: i18n.tr("Spell checking")
1994
1995- control: Switch {
1996+ Switch {
1997 property bool serverChecked: settings.spellChecking
1998 onServerCheckedChanged: checked = serverChecked
1999 Component.onCompleted: checked = serverChecked
2000
2001=== modified file 'plugins/language/SubsetView.qml'
2002--- plugins/language/SubsetView.qml 2015-08-10 13:31:45 +0000
2003+++ plugins/language/SubsetView.qml 2015-11-27 13:34:19 +0000
2004@@ -20,8 +20,8 @@
2005
2006 import QtQuick 2.4
2007 import SystemSettings 1.0
2008+import SystemSettings.ListItems 1.0 as SettingsListItems
2009 import Ubuntu.Components 1.3
2010-import Ubuntu.Components.ListItems 1.3 as ListItem
2011
2012 ListView {
2013 id: root
2014@@ -41,13 +41,14 @@
2015 flickableDirection: Flickable.VerticalFlick
2016
2017 section.property: "subset"
2018- section.delegate: ListItem.Standard {
2019+ section.delegate: SettingsItemTitle {
2020 text: section == "true" ? subsetLabel : supersetLabel
2021 }
2022
2023- delegate: ListItem.Standard {
2024+ delegate: SettingsListItems.Standard {
2025 text: model.display
2026- control: CheckBox {
2027+
2028+ CheckBox {
2029 checked: model.checked
2030 onCheckedChanged: {
2031 var element = model.index < root.model.subset.length ?
2032
2033=== modified file 'plugins/language/settings-language.svg'
2034--- plugins/language/settings-language.svg 2013-06-28 14:53:07 +0000
2035+++ plugins/language/settings-language.svg 2015-11-27 13:34:19 +0000
2036@@ -9,14 +9,15 @@
2037 xmlns="http://www.w3.org/2000/svg"
2038 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
2039 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
2040- width="90"
2041- height="90"
2042- id="svg4230"
2043+ width="96"
2044+ height="96"
2045+ id="svg4874"
2046 version="1.1"
2047- inkscape:version="0.48+devel r12277"
2048- sodipodi:docname="setting-language-text.svg">
2049+ inkscape:version="0.91+devel r"
2050+ viewBox="0 0 96 96.000001"
2051+ sodipodi:docname="language-chooser.svg">
2052 <defs
2053- id="defs4232" />
2054+ id="defs4876" />
2055 <sodipodi:namedview
2056 id="base"
2057 pagecolor="#ffffff"
2058@@ -24,18 +25,91 @@
2059 borderopacity="1.0"
2060 inkscape:pageopacity="0.0"
2061 inkscape:pageshadow="2"
2062- inkscape:zoom="5.0931703"
2063- inkscape:cx="21.204866"
2064- inkscape:cy="6.4792647"
2065+ inkscape:zoom="3.5967995"
2066+ inkscape:cx="-41.870567"
2067+ inkscape:cy="69.839831"
2068 inkscape:document-units="px"
2069- inkscape:current-layer="layer1-57"
2070- showgrid="false"
2071+ inkscape:current-layer="g4780"
2072+ showgrid="true"
2073+ showborder="true"
2074 fit-margin-top="0"
2075 fit-margin-left="0"
2076 fit-margin-right="0"
2077- fit-margin-bottom="0" />
2078+ fit-margin-bottom="0"
2079+ inkscape:snap-bbox="true"
2080+ inkscape:bbox-paths="true"
2081+ inkscape:bbox-nodes="true"
2082+ inkscape:snap-bbox-edge-midpoints="true"
2083+ inkscape:snap-bbox-midpoints="true"
2084+ inkscape:object-paths="true"
2085+ inkscape:snap-intersection-paths="true"
2086+ inkscape:object-nodes="true"
2087+ inkscape:snap-smooth-nodes="true"
2088+ inkscape:snap-midpoints="true"
2089+ inkscape:snap-object-midpoints="true"
2090+ inkscape:snap-center="true"
2091+ showguides="true"
2092+ inkscape:guide-bbox="true"
2093+ inkscape:snap-global="true">
2094+ <inkscape:grid
2095+ type="xygrid"
2096+ id="grid5451"
2097+ empspacing="8" />
2098+ <sodipodi:guide
2099+ orientation="1,0"
2100+ position="8,-8.0000001"
2101+ id="guide4063" />
2102+ <sodipodi:guide
2103+ orientation="1,0"
2104+ position="4,-8.0000001"
2105+ id="guide4065" />
2106+ <sodipodi:guide
2107+ orientation="0,1"
2108+ position="-8,88.000001"
2109+ id="guide4067" />
2110+ <sodipodi:guide
2111+ orientation="0,1"
2112+ position="-8,92.000001"
2113+ id="guide4069" />
2114+ <sodipodi:guide
2115+ orientation="0,1"
2116+ position="104,4"
2117+ id="guide4071" />
2118+ <sodipodi:guide
2119+ orientation="0,1"
2120+ position="-5,8.0000001"
2121+ id="guide4073" />
2122+ <sodipodi:guide
2123+ orientation="1,0"
2124+ position="88,-8.0000001"
2125+ id="guide4077" />
2126+ <sodipodi:guide
2127+ orientation="0,1"
2128+ position="-8,84.000001"
2129+ id="guide4074" />
2130+ <sodipodi:guide
2131+ orientation="1,0"
2132+ position="12,-8.0000001"
2133+ id="guide4076" />
2134+ <sodipodi:guide
2135+ orientation="1,0"
2136+ position="84,-8.0000001"
2137+ id="guide4080" />
2138+ <sodipodi:guide
2139+ position="48,-8.0000001"
2140+ orientation="1,0"
2141+ id="guide4170" />
2142+ <sodipodi:guide
2143+ position="-8,48"
2144+ orientation="0,1"
2145+ id="guide4172" />
2146+ <sodipodi:guide
2147+ position="92,-8.0000001"
2148+ orientation="1,0"
2149+ id="guide4760" />
2150+ </sodipodi:namedview>
2151 <metadata
2152- id="metadata4235">
2153+ id="metadata4879">
2154 <rdf:RDF>
2155 <cc:Work
2156 rdf:about="">
2157@@ -50,72 +124,35 @@
2158 inkscape:label="Layer 1"
2159 inkscape:groupmode="layer"
2160 id="layer1"
2161- transform="translate(-0.7143,-261.64789)">
2162+ transform="translate(67.857146,-78.50504)">
2163 <g
2164- transform="translate(0.7143,-700.42863)"
2165- id="g4081"
2166- inkscape:label="Layer 1">
2167+ transform="matrix(0,-1,-1,0,373.50506,516.50504)"
2168+ id="g4845"
2169+ style="display:inline">
2170 <g
2171- transform="translate(0,-1.1427923)"
2172- id="layer1-57"
2173+ inkscape:export-ydpi="90"
2174+ inkscape:export-xdpi="90"
2175+ inkscape:export-filename="next01.png"
2176+ transform="matrix(-0.9996045,0,0,1,575.94296,-611.00001)"
2177+ id="g4778"
2178 inkscape:label="Layer 1">
2179 <g
2180- id="g4136"
2181- transform="matrix(1.875,0,0,1.875,-990,-829.95977)">
2182- <rect
2183- style="color:#000000;fill:none;stroke:none;stroke-width:7.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2184- id="rect4134"
2185- width="48"
2186- height="48"
2187- x="528"
2188- y="544"
2189- transform="translate(0,412.36217)" />
2190- </g>
2191- <g
2192- transform="translate(-528,48.000013)"
2193- id="g3466">
2194- <rect
2195- y="915.2193"
2196- x="528"
2197- height="90"
2198- width="90"
2199- id="rect3474"
2200- style="color:#000000;fill:none;stroke:none;stroke-width:7.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
2201- <path
2202- style="fill:#808080;fill-opacity:1;display:inline"
2203- d="M 28.96875 16 C 16.52725 16.1641 15 17.5 15 28 L 15 46 C 15 55.9093 16.3891 57.60545 27 57.90625 L 27 70 L 39 58 L 55 58 C 73 58 75 58 75 46 L 75 28 C 75 16 73 16 55 16 L 35 16 C 32.75 16 30.74605 15.9766 28.96875 16 z M 42.78125 24.21875 L 47.1875 24.21875 C 48.04962 26.041523 48.87464 27.877967 49.6875 29.75 C 50.50036 31.622033 51.312147 33.587157 52.125 35.65625 C 52.962493 37.725343 53.82538 39.934587 54.6875 42.25 C 55.574253 44.565407 56.476853 47.07834 57.4375 49.8125 L 52.4375 49.8125 C 52.092647 48.802587 51.71323 47.79778 51.34375 46.8125 C 50.97427 45.827213 50.626097 44.815797 50.28125 43.78125 L 39.5 43.78125 C 39.155153 44.815797 38.80698 45.833837 38.4375 46.84375 L 37.375 49.8125 L 32.5625 49.8125 C 33.523147 47.07834 34.419123 44.565407 35.28125 42.25 C 36.14337 39.934587 36.968397 37.725343 37.78125 35.65625 C 38.618743 33.587157 39.468397 31.622033 40.28125 29.75 C 41.09411 27.877967 41.91913 26.041523 42.78125 24.21875 z M 44.875 29.15625 C 44.308467 30.46175 43.676467 32.065467 42.9375 33.9375 C 42.223173 35.80954 41.475727 37.839003 40.6875 40.03125 L 49.09375 40.03125 C 48.305523 37.839003 47.55146 35.771673 46.8125 33.875 C 46.07354 31.978333 45.416907 30.412483 44.875 29.15625 z "
2204- transform="translate(528,915.2193)"
2205- id="path3962" />
2206- <path
2207- sodipodi:type="arc"
2208- style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2209- id="path3965"
2210- sodipodi:cx="1731"
2211- sodipodi:cy="1545"
2212- sodipodi:rx="3"
2213- sodipodi:ry="3"
2214- d="m 1734,1545 c 0,1.6569 -1.3431,3 -3,3 -1.6569,0 -3,-1.3431 -3,-3 0,-1.6569 1.3431,-3 3,-3 C 1732.6569,1542 1734,1543.3431 1734,1545 Z"
2215- transform="matrix(1.3333333,0,0,1.3333333,-1708.9999,-1072.7807)" />
2216- <path
2217- transform="matrix(1.3333333,0,0,1.3333333,-1720.9999,-1072.7807)"
2218- d="m 1734,1545 c 0,1.6569 -1.3431,3 -3,3 -1.6569,0 -3,-1.3431 -3,-3 0,-1.6569 1.3431,-3 3,-3 C 1732.6569,1542 1734,1543.3431 1734,1545 Z"
2219- sodipodi:ry="3"
2220- sodipodi:rx="3"
2221- sodipodi:cy="1545"
2222- sodipodi:cx="1731"
2223- id="path3976"
2224- style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2225- sodipodi:type="arc" />
2226- <path
2227- sodipodi:type="arc"
2228- style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
2229- id="path3978"
2230- sodipodi:cx="1731"
2231- sodipodi:cy="1545"
2232- sodipodi:rx="3"
2233- sodipodi:ry="3"
2234- d="m 1734,1545 c 0,1.6569 -1.3431,3 -3,3 -1.6569,0 -3,-1.3431 -3,-3 0,-1.6569 1.3431,-3 3,-3 C 1732.6569,1542 1734,1543.3431 1734,1545 Z"
2235- transform="matrix(1.3333333,0,0,1.3333333,-1732.9999,-1072.7807)" />
2236+ transform="matrix(-1,0,0,1,575.99999,611)"
2237+ id="g4780"
2238+ style="display:inline">
2239+ <rect
2240+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
2241+ id="rect4782"
2242+ width="96.037987"
2243+ height="96"
2244+ x="-438.00244"
2245+ y="345.36221"
2246+ transform="scale(-1,1)" />
2247+ <path
2248+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.99960446;marker:none;enable-background:accumulate"
2249+ d="M 48 6.0019531 C 24.82764 6.0019531 6 24.828928 6 48 C 6 71.171082 24.82764 89.998047 48 89.998047 C 71.17237 89.998047 90 71.171082 90 48 C 90 24.828928 71.17237 6.0019531 48 6.0019531 z M 42.53125 10.396484 C 33.296711 20.093908 28.462948 32.967067 28.013672 46 L 10.056641 46 C 10.99887 27.755915 24.765744 12.950862 42.53125 10.396484 z M 53.46875 10.396484 C 71.235181 12.950074 85.003049 27.75526 85.945312 46 L 67.986328 46 C 67.537031 32.967051 62.70334 20.093716 53.46875 10.396484 z M 48 10.671875 C 58.121521 19.777207 63.428064 32.787817 63.914062 46 L 32.085938 46 C 32.571943 32.787634 37.878206 19.777225 48 10.671875 z M 10.056641 50 L 28.013672 50 C 28.462948 63.032933 33.296711 75.906092 42.53125 85.603516 C 24.766398 83.048936 10.999752 68.243289 10.056641 50 z M 32.085938 50 L 63.914062 50 C 63.428064 63.212183 58.121521 76.222793 48 85.328125 C 37.878206 76.222775 32.571943 63.212366 32.085938 50 z M 67.986328 50 L 85.945312 50 C 85.002167 68.243944 71.234526 83.049724 53.46875 85.603516 C 62.703024 75.906274 67.536746 63.032634 67.986328 50 z "
2250+ transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
2251+ id="rect3011" />
2252 </g>
2253 </g>
2254 </g>
2255
2256=== modified file 'plugins/orientation-lock/EntryComponent.qml'
2257--- plugins/orientation-lock/EntryComponent.qml 2015-08-10 13:31:45 +0000
2258+++ plugins/orientation-lock/EntryComponent.qml 2015-11-27 13:34:19 +0000
2259@@ -1,7 +1,7 @@
2260 /*
2261 * This file is part of system-settings
2262 *
2263- * Copyright (C) 2013 Canonical Ltd.
2264+ * Copyright (C) 2013-2015 Canonical Ltd.
2265 *
2266 * Contact: Alberto Mardegan <alberto.mardegan@canonical.com>
2267 *
2268@@ -21,16 +21,16 @@
2269 import GSettings 1.0
2270 import QtQuick 2.4
2271 import QtQuick.Window 2.1
2272+import SystemSettings.ListItems 1.0 as SettingsListItems
2273 import Ubuntu.Components 1.3
2274-import Ubuntu.Components.ListItems 1.3 as ListItem
2275-
2276-
2277-ListItem.Standard {
2278+
2279+
2280+SettingsListItems.Icon {
2281 id: root
2282 iconSource: model.icon
2283- iconFrame: false
2284 text: i18n.tr(model.displayName)
2285- control: Switch {
2286+
2287+ Switch {
2288 id: control
2289 objectName: "orientationLockSwitch"
2290
2291
2292=== modified file 'plugins/orientation-lock/orientation-lock.settings'
2293--- plugins/orientation-lock/orientation-lock.settings 2014-11-03 22:01:37 +0000
2294+++ plugins/orientation-lock/orientation-lock.settings 2015-11-27 13:34:19 +0000
2295@@ -3,7 +3,7 @@
2296 "name": "Rotation Lock",
2297 "translations": "ubuntu-system-settings",
2298 "category": "uncategorized-top",
2299- "priority": 0,
2300+ "priority": 1,
2301 "form-factors": [
2302 "phone",
2303 "tablet"
2304
2305=== modified file 'plugins/phone/CallForwardItem.qml'
2306--- plugins/phone/CallForwardItem.qml 2015-11-06 12:22:09 +0000
2307+++ plugins/phone/CallForwardItem.qml 2015-11-27 13:34:19 +0000
2308@@ -19,8 +19,9 @@
2309 */
2310
2311 import QtQuick 2.4
2312+import SystemSettings.ListItems 1.0 as SettingsListItems
2313 import Ubuntu.Components 1.3
2314-import Ubuntu.Components.ListItems 1.3 as ListItem
2315+import Ubuntu.Components.ListItems 1.0 as ListItems
2316 import Ubuntu.Components.Themes.Ambiance 0.1
2317 import MeeGo.QOfono 0.2
2318 import "callForwardingUtils.js" as Utils
2319@@ -135,12 +136,13 @@
2320 }
2321 ]
2322
2323- ListItem.ThinDivider { anchors { left: parent.left; right: parent.right }}
2324+ ListItems.ThinDivider { anchors { left: parent.left; right: parent.right }}
2325
2326- ListItem.Standard {
2327+ SettingsListItems.Standard {
2328 id: control
2329 onClicked: check.trigger(!check.checked)
2330- control: CheckBox {
2331+
2332+ CheckBox {
2333 id: check
2334 objectName: "check_" + rule
2335 checked: callForwarding[rule] !== ""
2336@@ -149,13 +151,13 @@
2337 }
2338 }
2339
2340- ListItem.Standard {
2341+ SettingsListItems.Standard {
2342 id: input
2343 visible: false
2344- height: visible ? units.gu(6) : 0
2345 /* TRANSLATORS: This string will be truncated on smaller displays. */
2346 text: i18n.tr("Forward to")
2347- control: TextField {
2348+
2349+ TextField {
2350 id: field
2351 objectName: "field_" + rule
2352 horizontalAlignment: TextInput.AlignRight
2353@@ -198,7 +200,7 @@
2354 }
2355 }
2356
2357- ListItem.SingleValue {
2358+ SettingsListItems.SingleValue {
2359 id: current
2360 objectName: "current_" + rule
2361 visible: value
2362
2363=== modified file 'plugins/phone/CallForwarding.qml'
2364--- plugins/phone/CallForwarding.qml 2015-11-05 16:40:24 +0000
2365+++ plugins/phone/CallForwarding.qml 2015-11-27 13:34:19 +0000
2366@@ -1,7 +1,7 @@
2367 /*
2368 * This file is part of system-settings
2369 *
2370- * Copyright (C) 2013 Canonical Ltd.
2371+ * Copyright (C) 2013-2015 Canonical Ltd.
2372 *
2373 * Contact:
2374 * Sebastien Bacher <sebastien.bacher@canonical.com>
2375@@ -164,7 +164,6 @@
2376 SettingsItemTitle {
2377 id: fwdSomeTitle
2378 text: i18n.tr("Forward incoming calls when:")
2379- showDivider: false
2380 }
2381
2382 CallForwardItem {
2383
2384=== modified file 'plugins/phone/CallWaiting.qml'
2385--- plugins/phone/CallWaiting.qml 2015-08-10 13:31:45 +0000
2386+++ plugins/phone/CallWaiting.qml 2015-11-27 13:34:19 +0000
2387@@ -20,8 +20,9 @@
2388
2389 import QtQuick 2.4
2390 import SystemSettings 1.0
2391+import SystemSettings.ListItems 1.0 as SettingsListItems
2392 import Ubuntu.Components 1.3
2393-import Ubuntu.Components.ListItems 1.3 as ListItem
2394+import Ubuntu.Components.ListItems 1.3 as ListItems
2395 import MeeGo.QOfono 0.2
2396
2397 ItemPage {
2398@@ -42,7 +43,7 @@
2399 callWaitingIndicator.running = false;
2400 }
2401 onVoiceCallWaitingComplete: {
2402- //When the property change is complete, the value of checked should always be in sync with serverChecked
2403+ //When the property change is complete, the value of checked should always be in sync with serverChecked
2404 callWaitingSwitch.checked = callWaitingSwitch.serverChecked
2405 /* Log some additional output to help debug when things don't work */
2406 console.warn('callSettings, onVoiceCallWaitingComplete modem: ' + modemPath + ' success: ' + success + ' ' + voiceCallWaiting);
2407@@ -50,54 +51,40 @@
2408 }
2409 }
2410
2411- ActivityIndicator {
2412- id: callWaitingIndicator
2413- running: true
2414- visible: running && attached
2415- }
2416-
2417- Switch {
2418- id: callWaitingSwitch
2419- objectName: "callWaitingSwitch"
2420- visible: !callWaitingIndicator.running
2421- enabled: callSettings.ready && attached
2422- property bool serverChecked: callSettings.voiceCallWaiting !== "disabled"
2423- onServerCheckedChanged: checked = serverChecked
2424- Component.onCompleted: checked = serverChecked
2425- onTriggered: {
2426- callWaitingIndicator.running = true;
2427- if (checked)
2428- callSettings.voiceCallWaiting = "enabled";
2429- else
2430- callSettings.voiceCallWaiting = "disabled";
2431- }
2432- }
2433-
2434 Column {
2435 anchors.fill: parent
2436
2437- ListItem.Standard {
2438+ SettingsListItems.Standard {
2439 id: callWaitingItem
2440 text: i18n.tr("Call waiting")
2441- control: callWaitingIndicator.running ?
2442- callWaitingIndicator : callWaitingSwitch
2443- }
2444
2445- ListItem.Base {
2446- height: textItem.height + units.gu(2)
2447- Label {
2448- id: textItem
2449- anchors {
2450- left: parent.left
2451- right: parent.right
2452- verticalCenter: parent.verticalCenter
2453+ Switch {
2454+ id: callWaitingSwitch
2455+ objectName: "callWaitingSwitch"
2456+ visible: !callWaitingIndicator.running
2457+ enabled: callSettings.ready && attached
2458+ property bool serverChecked: callSettings.voiceCallWaiting !== "disabled"
2459+ onServerCheckedChanged: checked = serverChecked
2460+ Component.onCompleted: checked = serverChecked
2461+ onTriggered: {
2462+ callWaitingIndicator.running = true;
2463+ if (checked)
2464+ callSettings.voiceCallWaiting = "enabled";
2465+ else
2466+ callSettings.voiceCallWaiting = "disabled";
2467 }
2468-
2469- text: i18n.tr("Lets you answer or start a new call while on another call, and switch between them")
2470- horizontalAlignment: Text.AlignHCenter
2471- wrapMode: Text.WordWrap
2472- }
2473- showDivider: false
2474+ }
2475+
2476+ ActivityIndicator {
2477+ id: callWaitingIndicator
2478+ running: callWaitingIndicator.running
2479+ visible: running && attached
2480+ }
2481+
2482+ }
2483+
2484+ ListItems.Caption {
2485+ text: i18n.tr("Lets you answer or start a new call while on another call, and switch between them")
2486 }
2487 }
2488 }
2489
2490=== modified file 'plugins/phone/MultiSim.qml'
2491--- plugins/phone/MultiSim.qml 2015-11-05 16:40:24 +0000
2492+++ plugins/phone/MultiSim.qml 2015-11-27 13:34:19 +0000
2493@@ -1,5 +1,5 @@
2494 /*
2495- * Copyright (C) 2014 Canonical Ltd
2496+ * Copyright (C) 2014-2015 Canonical Ltd
2497 *
2498 * This program is free software: you can redistribute it and/or modify
2499 * it under the terms of the GNU General Public License version 3 as
2500@@ -21,8 +21,8 @@
2501 import QtQuick 2.4
2502 import GSettings 1.0
2503 import SystemSettings 1.0
2504+import SystemSettings.ListItems 1.0 as SettingsListItems
2505 import Ubuntu.Components 1.3
2506-import Ubuntu.Components.ListItems 1.3 as ListItem
2507
2508 Column {
2509
2510@@ -37,20 +37,18 @@
2511
2512 SettingsItemTitle { text: sims[index].title }
2513
2514- ListItem.Standard {
2515+ SettingsListItems.StandardProgression {
2516 objectName: "callWaitSim" + index
2517 text: i18n.tr("Call waiting")
2518- progression: true
2519 onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), {
2520 sim: sims[index],
2521 headerTitle: sims[index].title
2522 })
2523 }
2524
2525- ListItem.SingleValue {
2526+ SettingsListItems.SingleValueProgression {
2527 objectName: "callFwdSim" + index
2528 text: i18n.tr("Call forwarding")
2529- progression: true
2530 value: sims[index].getCallForwardingSummary()
2531 onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), {
2532 sim: sims[index],
2533@@ -58,10 +56,9 @@
2534 })
2535 }
2536
2537- ListItem.Standard {
2538+ SettingsListItems.StandardProgression {
2539 objectName: "simServicesSim" + index
2540 text: i18n.tr("Services")
2541- progression: true
2542 enabled: {
2543 var num;
2544 var map = sims[index].simMng.serviceNumbers;
2545@@ -82,10 +79,6 @@
2546 })
2547 }
2548
2549- ListItem.Divider {
2550- visible: index !== (sims.length - 1)
2551- }
2552-
2553 Binding {
2554 target: sims[index]
2555 property: "name"
2556
2557=== modified file 'plugins/phone/NoSims.qml'
2558--- plugins/phone/NoSims.qml 2015-08-10 13:31:45 +0000
2559+++ plugins/phone/NoSims.qml 2015-11-27 13:34:19 +0000
2560@@ -1,5 +1,5 @@
2561 /*
2562- * Copyright (C) 2014 Canonical Ltd
2563+ * Copyright (C) 2014-2015 Canonical Ltd
2564 *
2565 * This program is free software: you can redistribute it and/or modify
2566 * it under the terms of the GNU General Public License version 3 as
2567@@ -19,28 +19,22 @@
2568 *
2569 */
2570 import QtQuick 2.4
2571-import Ubuntu.Components 1.3
2572-import Ubuntu.Components.ListItems 1.3 as ListItem
2573+import SystemSettings.ListItems 1.0 as SettingsListItems
2574
2575 Column {
2576
2577- ListItem.Standard {
2578+ SettingsListItems.StandardProgression {
2579 text: i18n.tr("Call forwarding")
2580- progression: true
2581 enabled: false
2582 }
2583
2584- ListItem.Standard {
2585+ SettingsListItems.StandardProgression {
2586 text: i18n.tr("Call waiting")
2587- progression: true
2588 enabled: false
2589 }
2590
2591- ListItem.Divider {}
2592-
2593- ListItem.Standard {
2594+ SettingsListItems.StandardProgression {
2595 text: i18n.tr("Services")
2596- progression: true
2597 enabled: false
2598 }
2599 }
2600
2601=== modified file 'plugins/phone/PageComponent.qml'
2602--- plugins/phone/PageComponent.qml 2015-08-10 13:31:45 +0000
2603+++ plugins/phone/PageComponent.qml 2015-11-27 13:34:19 +0000
2604@@ -1,7 +1,7 @@
2605 /*
2606 * This file is part of system-settings
2607 *
2608- * Copyright (C) 2013 Canonical Ltd.
2609+ * Copyright (C) 2013-2015 Canonical Ltd.
2610 *
2611 * Contact: Iain Lane <iain.lane@canonical.com>
2612 *
2613@@ -20,8 +20,8 @@
2614
2615 import QtQuick 2.4
2616 import SystemSettings 1.0
2617+import SystemSettings.ListItems 1.0 as SettingsListItems
2618 import Ubuntu.Components 1.3
2619-import Ubuntu.Components.ListItems 1.3 as ListItem
2620 import Ubuntu.SystemSettings.Sound 1.0
2621 import MeeGo.QOfono 0.2
2622 import "sims.js" as Sims
2623@@ -89,10 +89,8 @@
2624 anchors { left: parent.left; right: parent.right }
2625 }
2626
2627- ListItem.Divider {}
2628-
2629- ListItem.Standard {
2630- control: Switch {
2631+ SettingsListItems.Standard {
2632+ Switch {
2633 objectName: "dialpadSounds"
2634 property bool serverChecked: soundPlugin.dialpadSoundsEnabled
2635 onServerCheckedChanged: checked = serverChecked
2636
2637=== modified file 'plugins/phone/ServiceInfo.qml'
2638--- plugins/phone/ServiceInfo.qml 2015-10-16 13:42:50 +0000
2639+++ plugins/phone/ServiceInfo.qml 2015-11-27 13:34:19 +0000
2640@@ -1,7 +1,7 @@
2641 /*
2642 * This file is part of system-settings
2643 *
2644- * Copyright (C) 2013 Canonical Ltd.
2645+ * Copyright (C) 2013-2015 Canonical Ltd.
2646 *
2647 * Contact: Sebastien Bacher <sebastien.bacher@canonical.com>
2648 *
2649@@ -20,8 +20,8 @@
2650
2651 import QtQuick 2.4
2652 import SystemSettings 1.0
2653+import SystemSettings.ListItems 1.0 as SettingsListItems
2654 import Ubuntu.Components 1.3
2655-import Ubuntu.Components.ListItems 1.3 as ListItem
2656 import Ubuntu.History 0.1
2657 import "dateUtils.js" as DateUtils
2658
2659@@ -83,7 +83,7 @@
2660 verticalCenter: parent.verticalCenter
2661 }
2662
2663- ListItem.Base {
2664+ Item {
2665 anchors.left: parent.left
2666 anchors.right: parent.right
2667 height: lastCalledCol.height + units.gu(6)
2668@@ -112,9 +112,10 @@
2669 }
2670 }
2671
2672- ListItem.SingleControl {
2673+ SettingsListItems.SingleControl {
2674 anchors.bottom: parent.bottom
2675- control: Button {
2676+
2677+ Button {
2678 width: parent.width - units.gu(4)
2679 text: i18n.tr("Call")
2680 onClicked: Qt.openUrlExternally("tel:///" + encodeURIComponent(
2681
2682=== modified file 'plugins/phone/Services.qml'
2683--- plugins/phone/Services.qml 2015-08-10 13:31:45 +0000
2684+++ plugins/phone/Services.qml 2015-11-27 13:34:19 +0000
2685@@ -1,7 +1,7 @@
2686 /*
2687 * This file is part of system-settings
2688 *
2689- * Copyright (C) 2013 Canonical Ltd.
2690+ * Copyright (C) 2013-2015 Canonical Ltd.
2691 *
2692 * Contact: Sebastien Bacher <sebastien.bacher@canonical.com>
2693 *
2694@@ -20,8 +20,8 @@
2695
2696 import QtQuick 2.4
2697 import SystemSettings 1.0
2698+import SystemSettings.ListItems 1.0 as SettingsListItems
2699 import Ubuntu.Components 1.3
2700-import Ubuntu.Components.ListItems 1.3 as ListItem
2701
2702 ItemPage {
2703 id: root
2704@@ -60,8 +60,7 @@
2705 Repeater {
2706 model: names
2707
2708- ListItem.Standard {
2709- progression: true
2710+ SettingsListItems.StandardProgression {
2711 text: modelData
2712 onClicked: pageStack.push(Qt.resolvedUrl("ServiceInfo.qml"), {serviceName: modelData, serviceNumber: sim.serviceNumbers[modelData]})
2713 }
2714
2715=== modified file 'plugins/phone/SingleSim.qml'
2716--- plugins/phone/SingleSim.qml 2015-11-05 16:40:24 +0000
2717+++ plugins/phone/SingleSim.qml 2015-11-27 13:34:19 +0000
2718@@ -1,5 +1,5 @@
2719 /*
2720- * Copyright (C) 2014 Canonical Ltd
2721+ * Copyright (C) 2014-2015 Canonical Ltd
2722 *
2723 * This program is free software: you can redistribute it and/or modify
2724 * it under the terms of the GNU General Public License version 3 as
2725@@ -19,8 +19,8 @@
2726 *
2727 */
2728 import QtQuick 2.4
2729+import SystemSettings.ListItems 1.0 as SettingsListItems
2730 import Ubuntu.Components 1.3
2731-import Ubuntu.Components.ListItems 1.3 as ListItem
2732
2733 Column {
2734
2735@@ -29,30 +29,23 @@
2736 property string carrierString: carrierName ? carrierName : i18n.tr("SIM")
2737
2738
2739- ListItem.Standard {
2740+ SettingsListItems.StandardProgression {
2741 objectName: "callWait"
2742 text: i18n.tr("Call waiting")
2743- progression: true
2744 onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), {sim: sim})
2745 }
2746
2747- ListItem.SingleValue {
2748+ SettingsListItems.SingleValueProgression {
2749 objectName: "callFwd"
2750 text: i18n.tr("Call forwarding")
2751- showDivider: false
2752- progression: true
2753 value: sim.getCallForwardingSummary()
2754 onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), {sim: sim})
2755 }
2756
2757- ListItem.Divider {}
2758-
2759- ListItem.Standard {
2760+ SettingsListItems.StandardProgression {
2761 objectName: "simServices"
2762 // TRANSLATORS: %1 is the name of the (network) carrier
2763 text: i18n.tr("%1 Services").arg(carrierString)
2764- progression: true
2765- showDivider: false
2766 enabled: {
2767 var num;
2768 var map = sim.simMng.serviceNumbers;
2769
2770=== modified file 'plugins/reset/EntryComponent.qml'
2771--- plugins/reset/EntryComponent.qml 2015-08-10 13:31:45 +0000
2772+++ plugins/reset/EntryComponent.qml 2015-11-27 13:34:19 +0000
2773@@ -19,14 +19,12 @@
2774 */
2775
2776 import QtQuick 2.4
2777+import SystemSettings.ListItems 1.0 as SettingsListItems
2778 import Ubuntu.Components 1.3
2779-import Ubuntu.Components.ListItems 1.3 as ListItem
2780
2781-ListItem.Standard {
2782+SettingsListItems.IconProgression {
2783 id: root
2784 objectName: "entryComponent-reset"
2785 iconSource: model.icon
2786- iconFrame: false
2787 text: i18n.tr(model.displayName)
2788- progression: true
2789 }
2790
2791=== modified file 'plugins/reset/PageComponent.qml'
2792--- plugins/reset/PageComponent.qml 2015-08-10 13:31:45 +0000
2793+++ plugins/reset/PageComponent.qml 2015-11-27 13:34:19 +0000
2794@@ -21,8 +21,8 @@
2795 import GSettings 1.0
2796 import QtQuick 2.4
2797 import SystemSettings 1.0
2798+import SystemSettings.ListItems 1.0 as SettingsListItems
2799 import Ubuntu.Components 1.3
2800-import Ubuntu.Components.ListItems 1.3 as ListItem
2801 import Ubuntu.Components.Popups 1.3
2802 import Ubuntu.SystemSettings.Reset 1.0
2803
2804@@ -66,46 +66,81 @@
2805 anchors.left: parent.left
2806 anchors.right: parent.right
2807
2808- ListItem.SingleControl {
2809- control: Button {
2810+ Label {
2811+ anchors {
2812+ left: parent.left
2813+ right: parent.right
2814+ margins: units.gu(2)
2815+ }
2816+ text: i18n.tr("Reset Launcher")
2817+ color: UbuntuColors.orange
2818+ height: units.gu(6)
2819+ verticalAlignment: Text.AlignVCenter
2820+ }
2821+
2822+ SettingsListItems.Standard {
2823+
2824+ Button {
2825 id: resetLauncherHomeButton
2826 objectName: "resetLauncher"
2827 text: i18n.tr("Reset Launcher")
2828- width: parent.width - units.gu(4)
2829 onClicked: {
2830 buttonActions.source = "ResetLauncherHome.qml";
2831 root.popup = PopupUtils.open(buttonActions.item);
2832 }
2833 }
2834- showDivider: false
2835- }
2836-
2837- ListItem.SingleControl {
2838- visible: false // enabled when backend is ready/useful
2839- control: Button {
2840+ }
2841+
2842+ Label {
2843+ anchors {
2844+ left: parent.left
2845+ right: parent.right
2846+ margins: units.gu(2)
2847+ }
2848+ visible: showAllUI
2849+ text: i18n.tr("Reset all system settings…")
2850+ color: UbuntuColors.orange
2851+ height: units.gu(6)
2852+ verticalAlignment: Text.AlignVCenter
2853+ }
2854+
2855+ SettingsListItems.Standard {
2856+ visible: showAllUI
2857+
2858+ Button {
2859 id: resetAllSettingsButton
2860 text: i18n.tr("Reset all system settings…")
2861- width: parent.width - units.gu(4)
2862 onClicked: {
2863 buttonActions.source = "ResetAllSettings.qml";
2864 root.popup = PopupUtils.open(buttonActions.item);
2865 }
2866 }
2867- showDivider: false
2868- }
2869-
2870- ListItem.SingleControl {
2871- control: Button {
2872+ }
2873+
2874+ Label {
2875+ anchors {
2876+ left: parent.left
2877+ right: parent.right
2878+ margins: units.gu(2)
2879+ }
2880+ text: i18n.tr("Erase & Reset All")
2881+ color: UbuntuColors.orange
2882+ height: units.gu(6)
2883+ verticalAlignment: Text.AlignVCenter
2884+ }
2885+
2886+ SettingsListItems.Standard {
2887+
2888+ Button {
2889 id: eraseEverythingButton
2890 objectName: "factoryReset"
2891- text: i18n.tr("Erase & Reset Everything…")
2892- width: parent.width - units.gu(4)
2893+
2894+ text: i18n.tr("Erase & Reset All")
2895 onClicked: {
2896 buttonActions.source = "EraseEverything.qml";
2897 root.popup = PopupUtils.open(buttonActions.item);
2898 }
2899 }
2900- showDivider: false
2901 }
2902 }
2903 }
2904
2905=== modified file 'plugins/sound/PageComponent.qml'
2906--- plugins/sound/PageComponent.qml 2015-10-23 14:57:26 +0000
2907+++ plugins/sound/PageComponent.qml 2015-11-27 13:34:19 +0000
2908@@ -21,8 +21,8 @@
2909 import GSettings 1.0
2910 import QtQuick 2.4
2911 import Ubuntu.Components 1.3
2912-import Ubuntu.Components.ListItems 1.3 as ListItem
2913 import SystemSettings 1.0
2914+import SystemSettings.ListItems 1.0 as SettingsListItems
2915 import Ubuntu.SystemSettings.Sound 1.0
2916 import Ubuntu.Settings.Menus 0.1 as Menus
2917 import Ubuntu.Settings.Components 0.1 as USC
2918@@ -66,8 +66,10 @@
2919 anchors.left: parent.left
2920 anchors.right: parent.right
2921
2922- ListItem.Standard {
2923- control: Switch {
2924+ SettingsListItems.Standard {
2925+ text: i18n.tr("Silent Mode")
2926+
2927+ Switch {
2928 id: silentModeSwitch
2929 objectName: "silentMode"
2930 property bool serverChecked: soundActionGroup.silentMode.state
2931@@ -81,7 +83,6 @@
2932 onSyncTriggered: soundActionGroup.silentMode.activate()
2933 }
2934 }
2935- text: i18n.tr("Silent Mode")
2936 }
2937
2938 SettingsItemTitle {
2939@@ -123,7 +124,7 @@
2940 }
2941 }
2942
2943- ListItem.Standard {
2944+ SettingsListItems.Standard {
2945 id: highVolumeWarning
2946 visible: soundActionGroup.highVolume.state == true
2947 text: i18n.tr("High volume can damage your hearing.")
2948@@ -133,22 +134,22 @@
2949 text: i18n.tr("Phone calls:")
2950 }
2951
2952- ListItem.SingleValue {
2953+ SettingsListItems.SingleValueProgression {
2954 text: i18n.tr("Ringtone")
2955- value: Utilities.buildDisplayName(
2956- backendInfo.incomingCallSound)
2957- progression: true
2958+ value: Utilities.buildDisplayName(backendInfo.incomingCallSound)
2959+
2960 onClicked: pageStack.push(
2961- Qt.resolvedUrl("SoundsList.qml"),
2962- { title: i18n.tr("Ringtone"),
2963- showStopButton: true,
2964- soundType: 0,
2965- soundsDir:
2966- "/usr/share/sounds/ubuntu/ringtones/" })
2967+ Qt.resolvedUrl("SoundsList.qml"), {
2968+ title: i18n.tr("Ringtone"),
2969+ showStopButton: true,
2970+ soundType: 0,
2971+ soundsDir: "/usr/share/sounds/ubuntu/ringtones/"
2972+ }
2973+ )
2974 }
2975
2976- ListItem.Standard {
2977- control: CheckBox {
2978+ SettingsListItems.Standard {
2979+ CheckBox {
2980 objectName: "callVibrate"
2981 property bool serverChecked: backendInfo.incomingCallVibrate
2982 onServerCheckedChanged: checked = serverChecked
2983@@ -158,8 +159,8 @@
2984 text: i18n.tr("Vibrate on ring")
2985 }
2986
2987- ListItem.Standard {
2988- control: CheckBox {
2989+ SettingsListItems.Standard {
2990+ CheckBox {
2991 objectName: "callVibrateSilentMode"
2992 property bool serverChecked: backendInfo.incomingCallVibrateSilentMode
2993 onServerCheckedChanged: checked = serverChecked
2994@@ -169,8 +170,8 @@
2995 text: i18n.tr("Vibrate in Silent Mode")
2996 }
2997
2998- ListItem.Standard {
2999- control: Switch {
3000+ SettingsListItems.Standard {
3001+ Switch {
3002 objectName: "dialpadSounds"
3003 property bool serverChecked: backendInfo.dialpadSoundsEnabled
3004 onServerCheckedChanged: checked = serverChecked
3005@@ -184,11 +185,10 @@
3006 text: i18n.tr("Messages:")
3007 }
3008
3009- ListItem.SingleValue {
3010+ SettingsListItems.SingleValueProgression {
3011 text: i18n.tr("Message received")
3012 value:Utilities.buildDisplayName(
3013 backendInfo.incomingMessageSound)
3014- progression: true
3015 onClicked: pageStack.push(
3016 Qt.resolvedUrl("SoundsList.qml"),
3017 { title: i18n.tr("Message received"),
3018@@ -197,8 +197,8 @@
3019 "/usr/share/sounds/ubuntu/notifications/" })
3020 }
3021
3022- ListItem.Standard {
3023- control: CheckBox {
3024+ SettingsListItems.Standard {
3025+ CheckBox {
3026 objectName: "messageVibrate"
3027 property bool serverChecked: backendInfo.incomingMessageVibrate
3028 onServerCheckedChanged: checked = serverChecked
3029@@ -208,8 +208,8 @@
3030 text: i18n.tr("Vibrate with message sound")
3031 }
3032
3033- ListItem.Standard {
3034- control: CheckBox {
3035+ SettingsListItems.Standard {
3036+ CheckBox {
3037 objectName: "messageVibrateSilentMode"
3038 property bool serverChecked: backendInfo.incomingMessageVibrateSilentMode
3039 onServerCheckedChanged: checked = serverChecked
3040@@ -223,10 +223,10 @@
3041 text: i18n.tr("Other sounds:")
3042 }
3043
3044- ListItem.Standard {
3045+ SettingsListItems.Standard {
3046 text: i18n.tr("Keyboard sound")
3047
3048- control: Switch {
3049+ Switch {
3050 objectName: "keyboardSoundSwitch"
3051 property bool serverChecked: keyboardSettings.keyPressFeedback
3052 onServerCheckedChanged: checked = serverChecked
3053@@ -235,20 +235,22 @@
3054 }
3055 }
3056
3057- ListItem.Standard {
3058+ SettingsListItems.Standard {
3059 id: lockSound
3060- control: Switch {
3061+
3062+ Switch {
3063 checked: false
3064 }
3065 text: i18n.tr("Lock sound")
3066 visible: showAllUI
3067 }
3068
3069- ListItem.Divider {}
3070+ // FIXME: Add spacing here.
3071
3072- ListItem.Standard {
3073+ SettingsListItems.Standard {
3074 text: i18n.tr("Other vibrations")
3075- control: Switch {
3076+
3077+ Switch {
3078 objectName: "otherVibrateSwitch"
3079 property bool serverChecked: backendInfo.otherVibrate
3080 onServerCheckedChanged: checked = serverChecked
3081
3082=== modified file 'plugins/time-date/ChooseTimeZone.qml'
3083--- plugins/time-date/ChooseTimeZone.qml 2015-10-16 13:42:50 +0000
3084+++ plugins/time-date/ChooseTimeZone.qml 2015-11-27 13:34:19 +0000
3085@@ -20,6 +20,7 @@
3086
3087 import QtQuick 2.4
3088 import SystemSettings 1.0
3089+import SystemSettings.ListItems 1.0 as SettingsListItems
3090 import Ubuntu.Components 1.3
3091 import Ubuntu.Components.ListItems 1.3 as ListItem
3092 import Ubuntu.SystemSettings.TimeDate 1.0
3093@@ -52,7 +53,7 @@
3094 visible: showAllUI
3095 }
3096
3097- ListItem.Standard {
3098+ SettingsListItems.Standard {
3099 anchors.top: setTimeZoneSelector.bottom
3100 text: timeDatePanel.timeZone
3101 enabled: false
3102@@ -96,7 +97,7 @@
3103
3104 model: timeDatePanel.timeZoneModel
3105 visible: setTimeZoneSelector.selectedIndex == 1 && count > 0
3106- delegate: ListItem.Standard {
3107+ delegate: SettingsListItems.Standard {
3108 text: displayName
3109 // If a timezone is manually selected, record which one so that
3110 // we highlight that one only. Usually all cities in that timezone
3111
3112=== modified file 'plugins/time-date/PageComponent.qml'
3113--- plugins/time-date/PageComponent.qml 2015-10-16 13:42:50 +0000
3114+++ plugins/time-date/PageComponent.qml 2015-11-27 13:34:19 +0000
3115@@ -1,7 +1,7 @@
3116 /*
3117 * This file is part of system-settings
3118 *
3119- * Copyright (C) 2013 Canonical Ltd.
3120+ * Copyright (C) 2013-2015 Canonical Ltd.
3121 *
3122 * Contact: Iain Lane <iain.lane@canonical.com>
3123 *
3124@@ -20,8 +20,9 @@
3125
3126 import QtQuick 2.4
3127 import SystemSettings 1.0
3128+import SystemSettings.ListItems 1.0 as SettingsListItems
3129 import Ubuntu.Components 1.3
3130-import Ubuntu.Components.ListItems 1.3 as ListItem
3131+import Ubuntu.Components.ListItems 1.3 as ListItems
3132 import Ubuntu.Components.Popups 1.3
3133 import Ubuntu.SystemSettings.TimeDate 1.0
3134
3135@@ -62,13 +63,12 @@
3136
3137 SettingsItemTitle { text: i18n.tr ("Time zone:") }
3138
3139- ListItem.SingleValue {
3140+ SettingsListItems.SingleValueProgression {
3141 objectName: "timeZone"
3142 id: timeZone
3143 //e.g. America/New_York -> America/New York
3144 text: timeDatePanel.timeZone.replace("_", " ")
3145 value: getUTCOffset()
3146- progression: true
3147 onClicked: pageStack.push(Qt.resolvedUrl("ChooseTimeZone.qml"), {
3148 timeDatePanel: timeDatePanel
3149 })
3150@@ -78,7 +78,7 @@
3151 text: i18n.tr ("Set the time and date:")
3152 }
3153
3154- ListItem.ItemSelector {
3155+ ListItems.ItemSelector {
3156 id: setTimeAutomatically
3157 objectName: "timeItemSelector"
3158 model: [ i18n.tr("Automatically") , i18n.tr("Manually")]
3159@@ -109,11 +109,11 @@
3160 TimePicker {}
3161 }
3162
3163- ListItem.Standard {
3164+ SettingsListItems.StandardProgression {
3165 id: currentTime
3166 objectName: "currentTime"
3167- progression: setTimeAutomatically.selectedIndex === 1 // Manually
3168- enabled: progression
3169+ progressionVisible: setTimeAutomatically.selectedIndex === 1 // Manually
3170+ enabled: progressionVisible
3171 onClicked: {
3172 Qt.inputMethod.hide()
3173 var popupObj = PopupUtils.open(timePicker);
3174
3175=== modified file 'plugins/time-date/Scroller.qml'
3176--- plugins/time-date/Scroller.qml 2015-08-10 13:31:45 +0000
3177+++ plugins/time-date/Scroller.qml 2015-11-27 13:34:19 +0000
3178@@ -1,7 +1,8 @@
3179 /*
3180 * Copyright (C) 2013 Michael Zanetti <michael_zanetti@gmx.net>
3181- * (C) 2013 Canonical Ltd
3182- * Canonical modifications by Iain Lane <iain.lane@canonical.com>
3183+ * (C) 2013-2015 Canonical Ltd
3184+ * Canonical modifications by Iain Lane <iain.lane@canonical.com>,
3185+ * Jonas G. Drange <jonas.drange@canonical.com>
3186 *
3187 * This program is free software; you can redistribute it and/or modify
3188 * it under the terms of the GNU General Public License as published by
3189@@ -17,6 +18,7 @@
3190 */
3191
3192 import QtQuick 2.4
3193+import SystemSettings.ListItems 1.0 as SettingsListItems
3194 import Ubuntu.Components 1.3
3195 import Ubuntu.Components.ListItems 1.3 as ListItems
3196
3197@@ -106,13 +108,10 @@
3198 preferredHighlightEnd: 0.5
3199 clip: true
3200
3201- delegate: ListItems.Standard {
3202+ delegate: SettingsListItems.Standard {
3203 width: parent.width
3204 highlightWhenPressed: false
3205- Label {
3206- anchors.centerIn: parent
3207- text: modelData
3208- }
3209+ text: modelData
3210 showDivider: false
3211 onClicked: listView.currentIndex = index
3212 }
3213
3214=== modified file 'plugins/time-date/TimePicker.qml'
3215--- plugins/time-date/TimePicker.qml 2015-08-10 13:31:45 +0000
3216+++ plugins/time-date/TimePicker.qml 2015-11-27 13:34:19 +0000
3217@@ -18,7 +18,6 @@
3218
3219 import QtQuick 2.4
3220 import Ubuntu.Components 1.3
3221-import Ubuntu.Components.ListItems 1.3 as ListItem
3222 import Ubuntu.Components.Popups 1.3
3223
3224 Dialog {
3225
3226=== modified file 'plugins/time-date/settings-time-date.svg'
3227--- plugins/time-date/settings-time-date.svg 2013-06-28 15:20:36 +0000
3228+++ plugins/time-date/settings-time-date.svg 2015-11-27 13:34:19 +0000
3229@@ -9,14 +9,15 @@
3230 xmlns="http://www.w3.org/2000/svg"
3231 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
3232 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
3233- width="90"
3234- height="90"
3235- id="svg3180"
3236+ width="96"
3237+ height="96"
3238+ id="svg4874"
3239 version="1.1"
3240- inkscape:version="0.48+devel r12322"
3241- sodipodi:docname="setting-time-date.svg">
3242+ inkscape:version="0.91+devel r"
3243+ viewBox="0 0 96 96.000001"
3244+ sodipodi:docname="calendar.svg">
3245 <defs
3246- id="defs3182" />
3247+ id="defs4876" />
3248 <sodipodi:namedview
3249 id="base"
3250 pagecolor="#ffffff"
3251@@ -24,18 +25,95 @@
3252 borderopacity="1.0"
3253 inkscape:pageopacity="0.0"
3254 inkscape:pageshadow="2"
3255- inkscape:zoom="5.0931703"
3256- inkscape:cx="45.796623"
3257- inkscape:cy="25.966145"
3258+ inkscape:zoom="7.0249991"
3259+ inkscape:cx="-11.409258"
3260+ inkscape:cy="72.576504"
3261 inkscape:document-units="px"
3262- inkscape:current-layer="g3855"
3263- showgrid="false"
3264+ inkscape:current-layer="g4780"
3265+ showgrid="true"
3266+ showborder="true"
3267 fit-margin-top="0"
3268 fit-margin-left="0"
3269 fit-margin-right="0"
3270- fit-margin-bottom="0" />
3271+ fit-margin-bottom="0"
3272+ inkscape:snap-bbox="true"
3273+ inkscape:bbox-paths="true"
3274+ inkscape:bbox-nodes="true"
3275+ inkscape:snap-bbox-edge-midpoints="true"
3276+ inkscape:snap-bbox-midpoints="true"
3277+ inkscape:object-paths="true"
3278+ inkscape:snap-intersection-paths="true"
3279+ inkscape:object-nodes="true"
3280+ inkscape:snap-smooth-nodes="true"
3281+ inkscape:snap-midpoints="true"
3282+ inkscape:snap-object-midpoints="true"
3283+ inkscape:snap-center="true"
3284+ showguides="true"
3285+ inkscape:guide-bbox="true"
3286+ inkscape:snap-global="true">
3287+ <inkscape:grid
3288+ type="xygrid"
3289+ id="grid5451"
3290+ empspacing="8" />
3291+ <sodipodi:guide
3292+ orientation="1,0"
3293+ position="8,-8.0000001"
3294+ id="guide4063" />
3295+ <sodipodi:guide
3296+ orientation="1,0"
3297+ position="4,-8.0000001"
3298+ id="guide4065" />
3299+ <sodipodi:guide
3300+ orientation="0,1"
3301+ position="-8,88.000001"
3302+ id="guide4067" />
3303+ <sodipodi:guide
3304+ orientation="0,1"
3305+ position="-8,92.000001"
3306+ id="guide4069" />
3307+ <sodipodi:guide
3308+ orientation="0,1"
3309+ position="104,4"
3310+ id="guide4071" />
3311+ <sodipodi:guide
3312+ orientation="0,1"
3313+ position="-5,8.0000001"
3314+ id="guide4073" />
3315+ <sodipodi:guide
3316+ orientation="1,0"
3317+ position="92,-8.0000001"
3318+ id="guide4075" />
3319+ <sodipodi:guide
3320+ orientation="1,0"
3321+ position="88,-8.0000001"
3322+ id="guide4077" />
3323+ <sodipodi:guide
3324+ orientation="0,1"
3325+ position="-8,84.000001"
3326+ id="guide4074" />
3327+ <sodipodi:guide
3328+ orientation="1,0"
3329+ position="12,-8.0000001"
3330+ id="guide4076" />
3331+ <sodipodi:guide
3332+ orientation="0,1"
3333+ position="-5,12"
3334+ id="guide4078" />
3335+ <sodipodi:guide
3336+ orientation="1,0"
3337+ position="84,-9.0000001"
3338+ id="guide4080" />
3339+ <sodipodi:guide
3340+ position="48,-8.0000001"
3341+ orientation="1,0"
3342+ id="guide4170" />
3343+ <sodipodi:guide
3344+ position="-8,48"
3345+ orientation="0,1"
3346+ id="guide4172" />
3347+ </sodipodi:namedview>
3348 <metadata
3349- id="metadata3185">
3350+ id="metadata4879">
3351 <rdf:RDF>
3352 <cc:Work
3353 rdf:about="">
3354@@ -50,49 +128,55 @@
3355 inkscape:label="Layer 1"
3356 inkscape:groupmode="layer"
3357 id="layer1"
3358- transform="translate(456.42857,-738.79075)">
3359+ transform="translate(67.857146,-78.50504)">
3360 <g
3361- transform="translate(-2258.4286,438.42854)"
3362- id="g3855">
3363- <rect
3364- style="opacity:0.00100002;color:#000000;fill:#000000;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
3365- id="rect3508"
3366- width="90"
3367- height="90"
3368- x="1802"
3369- y="300.36221" />
3370- <path
3371- style="opacity:0.25;color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
3372- d="M 42.03125 17.90625 C 28.696483 17.90625 17.90625 28.696483 17.90625 42.03125 C 17.90625 55.366017 28.696483 66.1875 42.03125 66.1875 C 42.375083 66.1875 42.722167 66.170482 43.0625 66.15625 L 43.0625 57.03125 C 43.0623 57.01015 43.0623 56.9587 43.0625 56.9375 C 43.0754 55.34598 43.14325 53.93091 43.59375 52.4375 C 44.10005 50.75898 45.19045 49.17944 46.90625 48.28125 C 48.739875 47.321381 50.599515 47.104599 52.875 47.0625 C 54.240291 47.037241 55.760413 47.0625 57.5 47.0625 L 64.5 47.0625 C 64.920635 47.0625 65.261076 47.066095 65.65625 47.0625 C 65.999321 45.441705 66.1875 43.75422 66.1875 42.03125 C 66.1875 28.696483 55.366017 17.90625 42.03125 17.90625 z "
3373- transform="translate(1802,300.36221)"
3374- id="path3510" />
3375- <path
3376- style="font-size:xx-small;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#808080;fill-opacity:1;stroke:none;stroke-width:3.3547709;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
3377- d="M 42.03125 15 C 27.12175 15 15 27.12173 15 42.03125 C 15 56.94077 27.12175 69.09375 42.03125 69.09375 C 42.372987 69.09375 42.723784 69.075144 43.0625 69.0625 C 43.062407 69.05177 43.062588 69.041996 43.0625 69.03125 C 43.0624 69.01715 43.0625 68.98285 43.0625 68.96875 L 43.0625 65.03125 C 42.720305 65.046238 42.377238 65.0625 42.03125 65.0625 C 29.28355 65.0625 19 54.779 19 42.03125 C 19 29.28349 29.28355 19 42.03125 19 C 54.77905 19 65.0625 29.28349 65.0625 42.03125 C 65.0625 43.758289 64.857909 45.445501 64.5 47.0625 C 66.037863 47.0625 67.386959 47.021872 68.625 47.03125 C 68.929484 45.410259 69.09375 43.738953 69.09375 42.03125 C 69.09375 27.12173 56.94075 15 42.03125 15 z "
3378- transform="translate(1802,300.36221)"
3379- id="path3512" />
3380- <path
3381- style="font-size:xx-small;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#808080;fill-opacity:1;stroke:none;stroke-width:3.99999976;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
3382- d="m 1846,323.34375 -4,0.0312 0,2 0.031,16.0625 0,2 4,-0.0312 0,-2 L 1846,325.34375 1846,323.34375 Z"
3383- id="path3516"
3384- inkscape:connector-curvature="0" />
3385- <path
3386- style="font-size:xx-small;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill:#808080;fill-opacity:1;stroke:none;stroke-width:3.99999976;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;font-family:sans-serif;-inkscape-font-specification:sans-serif"
3387- d="m 1831,340.375 0,4 2,0 11,0 2,0 0,-4 -2,0 -11,0 L 1831,340.375 Z"
3388- id="path3518"
3389- inkscape:connector-curvature="0" />
3390- <path
3391- style="color:#000000;fill:#808080;fill-opacity:1;stroke:none;stroke-width:3.99999976;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
3392- d="M 54.34375 51 C 47.853339 51.092144 47.042087 51.799787 47 57 L 47 69 C 47.048 74.94321 48.1185 75 57.5 75 L 64.5 75 C 73.8815 75 74.952 74.94309 75 69 L 75 57 C 74.9519 51.05662 73.8815 51 64.5 51 L 57.5 51 C 56.327312 51 55.270952 50.986837 54.34375 51 z M 55.375 57 C 55.800753 56.993511 56.274025 57 56.8125 57 L 57.1875 57 C 61.4953 57 61.9779 57.02469 62 60 L 62 66 C 61.9779 68.9752 61.4953 69 57.1875 69 L 56.8125 69 C 52.5047 69 52.022 68.97523 52 66 L 52 60 C 52.019338 57.3967 52.394732 57.045423 55.375 57 z M 66 57 L 69 57 L 69 69 L 66 69 L 66 61 L 64 61 L 64 59 L 66 57 z "
3393- transform="translate(1802,300.36221)"
3394- id="path3520" />
3395- <rect
3396- style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
3397- id="rect3544"
3398- width="4"
3399- height="6"
3400- x="1857"
3401- y="360.36221" />
3402+ transform="matrix(0,-1,-1,0,373.50506,516.50504)"
3403+ id="g4845"
3404+ style="display:inline">
3405+ <g
3406+ inkscape:export-ydpi="90"
3407+ inkscape:export-xdpi="90"
3408+ inkscape:export-filename="next01.png"
3409+ transform="matrix(-0.9996045,0,0,1,575.94296,-611.00001)"
3410+ id="g4778"
3411+ inkscape:label="Layer 1">
3412+ <g
3413+ transform="matrix(-1,0,0,1,575.99999,611)"
3414+ id="g4780"
3415+ style="display:inline">
3416+ <rect
3417+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:none;stroke-width:4;marker:none;enable-background:accumulate"
3418+ id="rect4782"
3419+ width="96.037987"
3420+ height="96"
3421+ x="-438.00244"
3422+ y="345.36221"
3423+ transform="scale(-1,1)" />
3424+ <g
3425+ transform="matrix(0,-0.99980223,-1.0001978,0,0,0)"
3426+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:48.03580475px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
3427+ id="text4416">
3428+ <path
3429+ d="m -397.70209,-392.6432 q 0,1.72929 -0.72054,3.36251 -0.6725,1.58518 -1.82536,3.17036 -1.15286,1.53715 -2.59393,3.0743 -1.44108,1.48911 -2.88215,2.93018 -0.81661,0.81661 -1.92143,1.92143 -1.05679,1.10483 -2.01751,2.30572 -0.96071,1.2009 -1.63321,2.30572 -0.62447,1.10482 -0.62447,1.92143 l 15.32342,0 0,3.79483 -20.17503,0 q -0.048,-0.28821 -0.048,-0.57643 0,-0.28821 0,-0.52839 0,-2.25769 0.72054,-4.17912 0.76857,-1.96947 1.96946,-3.69876 1.2009,-1.72928 2.69001,-3.26643 1.48911,-1.53715 2.93018,-2.97822 1.2009,-1.15286 2.25769,-2.25768 1.10482,-1.15286 1.92143,-2.25769 0.86464,-1.15286 1.345,-2.35375 0.5284,-1.2009 0.5284,-2.5459 0,-1.44107 -0.48036,-2.44982 -0.43233,-1.00876 -1.2009,-1.68126 -0.76857,-0.6725 -1.82536,-0.96071 -1.00875,-0.33625 -2.16161,-0.33625 -1.39304,0 -2.5459,0.38428 -1.15286,0.38429 -2.06554,0.91268 -0.91268,0.48036 -1.53714,1.05679 -0.62447,0.52839 -0.96072,0.81661 l -2.20965,-3.17036 q 0.43233,-0.48036 1.29697,-1.15286 0.86465,-0.72054 2.06554,-1.34501 1.2009,-0.62446 2.69001,-1.05678 1.48911,-0.43233 3.21839,-0.43233 5.23591,0 7.82984,2.44983 2.64197,2.40179 2.64197,6.82108 z"
3430+ style=""
3431+ id="path4162" />
3432+ <path
3433+ d="m -383.46173,-388.31997 q 7.25341,0.28821 10.61592,3.17036 3.41054,2.88215 3.41054,7.82984 0,2.20964 -0.76857,4.08304 -0.72054,1.8734 -2.25769,3.2184 -1.48911,1.345 -3.79482,2.11357 -2.30572,0.76858 -5.47609,0.76858 -1.24893,0 -2.54589,-0.19215 -1.29697,-0.19214 -2.40179,-0.48035 -1.10483,-0.28822 -1.96947,-0.57643 -0.86465,-0.28822 -1.24893,-0.48036 l 0.86464,-3.8909 q 0.81661,0.38428 2.64197,1.00875 1.8734,0.62447 4.5634,0.62447 2.16161,0 3.60269,-0.48036 1.48911,-0.48036 2.40179,-1.29697 0.91268,-0.81661 1.29696,-1.8734 0.43233,-1.10482 0.43233,-2.30571 0,-1.82537 -0.62447,-3.2184 -0.62446,-1.44108 -2.20965,-2.40179 -1.58518,-0.96072 -4.22715,-1.44108 -2.64197,-0.52839 -6.67697,-0.52839 0.28821,-2.35376 0.43232,-4.4193 0.19214,-2.06554 0.33625,-4.035 0.14411,-1.96947 0.24018,-3.8909 0.0961,-1.96947 0.19214,-4.13108 l 16.04396,0 0,3.79483 -12.15306,0 q -0.048,0.72053 -0.14411,1.96946 -0.0961,1.2009 -0.19214,2.5459 -0.0961,1.29697 -0.19214,2.5459 -0.0961,1.24893 -0.19215,1.96947 z"
3434+ style=""
3435+ id="path4164" />
3436+ </g>
3437+ <path
3438+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.00079155;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
3439+ d="M 23.976562 8.0019531 C 18.943803 8.0601401 15.26124 7.881546 12.25 9.5429688 C 10.74438 10.37368 9.5531414 11.778707 8.8945312 13.533203 C 8.2359314 15.287699 7.9980469 17.369641 7.9980469 20 L 7.9980469 48.001953 L 7.9980469 76 C 7.9980469 78.630359 8.2359314 80.714254 8.8945312 82.46875 C 9.5531414 84.223246 10.74438 85.62632 12.25 86.457031 C 15.26124 88.118454 18.943803 87.941823 23.976562 88 L 23.988281 88 L 47.998047 88 L 72.009766 88 L 72.021484 88 C 77.054244 87.94182 80.736807 88.118454 83.748047 86.457031 C 85.253667 85.62632 86.444916 84.223246 87.103516 82.46875 C 87.762113 80.714254 88 78.630359 88 76 L 88 48.001953 L 83.998047 48.001953 L 83.998047 76 C 83.998047 78.369642 83.747742 80.022711 83.357422 81.0625 C 82.967112 82.102279 82.547973 82.550368 81.814453 82.955078 C 80.350163 83.762988 77.036307 83.941223 71.998047 84 L 71.974609 84 L 47.998047 84 L 24.021484 84 L 24 84 C 18.96042 83.941263 15.648104 83.763108 14.183594 82.955078 C 13.450074 82.550368 13.030935 82.102279 12.640625 81.0625 C 12.250305 80.022711 12 78.369642 12 76 L 12 48.001953 L 12 32 C 12 29.630358 12.250305 27.977279 12.640625 26.9375 C 13.030935 25.897711 13.450074 25.449632 14.183594 25.044922 C 15.650624 24.235492 18.967304 24.058477 24.021484 24 L 47.998047 24 L 71.998047 24 C 77.036307 24.05877 80.350163 24.237002 81.814453 25.044922 C 82.547973 25.449632 82.967112 25.897711 83.357422 26.9375 C 83.747742 27.977279 83.998047 29.630358 83.998047 32 L 83.998047 48 L 88 48 L 88 20 C 88 17.369641 87.762116 15.287699 87.103516 13.533203 C 86.444916 11.778707 85.253667 10.37368 83.748047 9.5429688 C 80.736807 7.881546 77.054244 8.0601301 72.021484 8.0019531 L 72.009766 8.0019531 L 72 8.0019531 L 72 16 L 66 16 L 66 8.0019531 L 30 8.0019531 L 30 16 L 24 16 L 24 8.0019531 L 23.988281 8.0019531 L 23.976562 8.0019531 z "
3440+ transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
3441+ id="path4410" />
3442+ <path
3443+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:10;marker:none;enable-background:accumulate"
3444+ d="M 30 0 L 24 1 L 24 8 L 30 8 L 30 0 z M 72 0 L 66 1 L 66 8 L 72 8 L 72 0 z "
3445+ transform="matrix(0,-1,-1.0003957,0,438.00245,441.36222)"
3446+ id="path4430" />
3447+ </g>
3448+ </g>
3449 </g>
3450 </g>
3451 </svg>
3452
3453=== modified file 'plugins/wifi/AccessPoint.qml'
3454--- plugins/wifi/AccessPoint.qml 2015-08-10 13:31:45 +0000
3455+++ plugins/wifi/AccessPoint.qml 2015-11-27 13:34:19 +0000
3456@@ -1,5 +1,5 @@
3457 /*
3458- * Copyright 2013 Canonical Ltd.
3459+ * Copyright 2013-2015 Canonical Ltd.
3460 *
3461 * This program is free software; you can redistribute it and/or modify
3462 * it under the terms of the GNU General Public License as published by
3463@@ -28,19 +28,6 @@
3464 property bool secure: false
3465 property bool adHoc: false
3466 property int signalStrength: 0
3467-
3468- signal activate()
3469-
3470- onCheckedChanged: {
3471- // Can't rely on binding. Checked is assigned on click.
3472- checkBoxActive.checked = checked;
3473-
3474- // if stack has NetworkDetailsBrief, pop it
3475- if (pageStack.depth === 3) {
3476- pageStack.pop();
3477- }
3478- }
3479-
3480 iconName: {
3481 var imageName = "nm-signal-100"
3482
3483@@ -61,16 +48,18 @@
3484 }
3485 return imageName;
3486 }
3487-
3488- iconFrame: false
3489- control: CheckBox {
3490- id: checkBoxActive
3491-
3492- onClicked: {
3493- accessPoint.activate();
3494+ layout.subtitle.text: checked ? i18n.tr("Connected") : ""
3495+
3496+ signal activate()
3497+
3498+ onCheckedChanged: {
3499+ // if stack has NetworkDetailsBrief, pop it
3500+ if (pageStack.depth === 3) {
3501+ pageStack.pop();
3502 }
3503 }
3504- progression: checked
3505+
3506+ progressionVisible: checked
3507 onClicked: {
3508 if (checked) {
3509 pageStack.push(Qt.resolvedUrl("NetworkDetailsBrief.qml"),
3510
3511=== modified file 'plugins/wifi/DivMenuItem.qml'
3512--- plugins/wifi/DivMenuItem.qml 2015-08-10 13:31:45 +0000
3513+++ plugins/wifi/DivMenuItem.qml 2015-11-27 13:34:19 +0000
3514@@ -1,5 +1,5 @@
3515 /*
3516- * Copyright 2013 Canonical Ltd.
3517+ * Copyright 2013-2015 Canonical Ltd.
3518 *
3519 * This program is free software; you can redistribute it and/or modify
3520 * it under the terms of the GNU General Public License as published by
3521@@ -18,8 +18,8 @@
3522 */
3523
3524 import QtQuick 2.4
3525-import Ubuntu.Components.ListItems 1.3 as ListItem
3526+import Ubuntu.Components 1.3
3527
3528-ListItem.Empty {
3529+ListItemLayout {
3530 height: units.gu(3)
3531 }
3532
3533=== modified file 'plugins/wifi/FramedMenuItem.qml'
3534--- plugins/wifi/FramedMenuItem.qml 2015-08-10 13:31:45 +0000
3535+++ plugins/wifi/FramedMenuItem.qml 2015-11-27 13:34:19 +0000
3536@@ -1,5 +1,5 @@
3537 /*
3538- * Copyright 2013 Canonical Ltd.
3539+ * Copyright 2013-2015 Canonical Ltd.
3540 *
3541 * This program is free software; you can redistribute it and/or modify
3542 * it under the terms of the GNU General Public License as published by
3543@@ -19,7 +19,11 @@
3544 */
3545
3546 import QtQuick 2.4
3547+import SystemSettings.ListItems 1.0 as SettingsListItems
3548 import Ubuntu.Components 1.3
3549-import Ubuntu.Components.ListItems 1.3 as ListItem
3550
3551-ListItem.Standard {}
3552+SettingsListItems.IconProgression {
3553+ // FIXME: use padding + padding + icon width
3554+ divider.anchors.leftMargin: units.gu(6)
3555+ layout.subtitle.color: UbuntuColors.green
3556+}
3557
3558=== modified file 'plugins/wifi/MenuItemFactory.qml'
3559--- plugins/wifi/MenuItemFactory.qml 2015-08-10 13:31:45 +0000
3560+++ plugins/wifi/MenuItemFactory.qml 2015-11-27 13:34:19 +0000
3561@@ -1,5 +1,5 @@
3562 /*
3563- * Copyright 2013 Canonical Ltd.
3564+ * Copyright 2013-2015 Canonical Ltd.
3565 *
3566 * This program is free software; you can redistribute it and/or modify
3567 * it under the terms of the GNU General Public License as published by
3568@@ -15,7 +15,7 @@
3569 *
3570 * Authors:
3571 * Nick Dedekind <nick.dedekind@canonical.com>
3572- */
3573+ */
3574
3575 import QtQuick 2.4
3576 import QMenuModel 0.1 as QMenuModel
3577@@ -65,7 +65,7 @@
3578 property int menuIndex: -1
3579
3580 text: menu && menu.label ? menu.label : ""
3581- icon: menu ? menu.icon : ""
3582+ iconName: menu ? menu.icon : ""
3583 checkable: menu ? (menu.isCheck || menu.isRadio) : false
3584 checked: checkable ? menu.isToggled : false
3585 enabled: menu ? menu.sensitive : false
3586@@ -106,7 +106,7 @@
3587 property int menuIndex: -1
3588 property var extendedData: menu && menu.ext || undefined
3589 text: menu && menu.label ? menu.label : ""
3590- busy: getExtendedProperty(extendedData, "xCanonicalBusyAction", false)
3591+ busy: getExtendedProperty(extendedData, "xCanonicalBusyAction", false) || true
3592
3593 onMenuModelChanged: {
3594 loadAttributes();
3595@@ -150,7 +150,7 @@
3596 loadAttributes();
3597 }
3598
3599- USC.ServerPropertySynchroniser {
3600+ resources: USC.ServerPropertySynchroniser {
3601 userTarget: apItem
3602 userProperty: "active"
3603 userTrigger: "onActivate"
3604
3605=== modified file 'plugins/wifi/NetworkDetails.qml'
3606--- plugins/wifi/NetworkDetails.qml 2015-08-10 13:31:45 +0000
3607+++ plugins/wifi/NetworkDetails.qml 2015-11-27 13:34:19 +0000
3608@@ -21,8 +21,8 @@
3609 import QtQuick 2.4
3610 import QtQuick.Layouts 1.1
3611 import SystemSettings 1.0
3612+import SystemSettings.ListItems 1.0 as SettingsListItems
3613 import Ubuntu.Components 1.3
3614-import Ubuntu.Components.ListItems 1.3 as ListItem
3615 import Ubuntu.SystemSettings.Wifi 1.0
3616
3617 ItemPage {
3618@@ -53,29 +53,24 @@
3619 anchors.left: parent.left
3620 anchors.right: parent.right
3621
3622- ListItem.Standard {
3623+ SettingsListItems.SingleValue {
3624 text: i18n.tr("Name")
3625- control: Label {
3626- text: networkName
3627- }
3628+ value: networkName
3629 }
3630
3631- ListItem.Standard {
3632+ SettingsListItems.SingleValue {
3633 id: lastLabel
3634 text: i18n.tr("Last connected")
3635- control: Label {
3636- id: lastField
3637-
3638- text: networkDetails.lastUsed.length !== 0 ?
3639- networkDetails.lastUsed : i18n.tr("Never")
3640- }
3641+ value: networkDetails.lastUsed.length !== 0 ?
3642+ networkDetails.lastUsed : i18n.tr("Never")
3643 }
3644
3645- ListItem.Standard {
3646+ SettingsListItems.Standard {
3647 id: passwordLabel
3648 text: i18n.tr("Password")
3649 visible: networkDetails.password.length !== 0
3650- control: TextInput {
3651+
3652+ TextInput {
3653 id: passwordField
3654 readOnly: true
3655 text: networkDetails.password
3656@@ -84,28 +79,30 @@
3657 }
3658 }
3659
3660- ListItem.Standard {
3661+ SettingsListItems.Standard {
3662 id: passwordVisible
3663 text: i18n.tr("Show password")
3664 visible: networkDetails.password.length !== 0
3665- control: Switch {
3666+
3667+ Switch {
3668 id: passwordVisibleSwitch
3669 }
3670 }
3671
3672- ListItem.Divider {}
3673+ SettingsListItems.SingleControl {
3674
3675- Button {
3676- objectName: "forgetNetwork"
3677- text : i18n.tr("Forget this network")
3678- anchors {
3679- left: parent.left
3680- right: parent.right
3681- margins: units.gu(2)
3682- }
3683- onClicked : {
3684- DbusHelper.forgetConnection(dbusPath);
3685- pageStack.pop();
3686+ Button {
3687+ objectName: "forgetNetwork"
3688+ text : i18n.tr("Forget this network")
3689+ anchors {
3690+ left: parent.left
3691+ right: parent.right
3692+ margins: units.gu(2)
3693+ }
3694+ onClicked : {
3695+ DbusHelper.forgetConnection(dbusPath);
3696+ pageStack.pop();
3697+ }
3698 }
3699 }
3700 }
3701
3702=== modified file 'plugins/wifi/NetworkDetailsBrief.qml'
3703--- plugins/wifi/NetworkDetailsBrief.qml 2015-08-10 13:31:45 +0000
3704+++ plugins/wifi/NetworkDetailsBrief.qml 2015-11-27 13:34:19 +0000
3705@@ -21,8 +21,8 @@
3706 import QtQuick 2.4
3707 import QtQuick.Layouts 1.1
3708 import SystemSettings 1.0
3709+import SystemSettings.ListItems 1.0 as SettingsListItems
3710 import Ubuntu.Components 1.3
3711-import Ubuntu.Components.ListItems 1.3 as ListItem
3712 import Ubuntu.SystemSettings.Wifi 1.0
3713
3714 ItemPage {
3715@@ -48,27 +48,28 @@
3716 anchors.left: parent.left
3717 anchors.right: parent.right
3718
3719- ListItem.Divider {}
3720-
3721- Button {
3722- text : i18n.tr("Forget this network")
3723- anchors {
3724- left: parent.left
3725- right: parent.right
3726- margins: units.gu(2)
3727- }
3728- onClicked: {
3729- if (DbusHelper.forgetActiveDevice()) {
3730- accessPoint.checked = false;
3731- accessPoint.checkedChanged(false)
3732+ SettingsListItems.SingleControl {
3733+ Button {
3734+ text : i18n.tr("Forget this network")
3735+ anchors {
3736+ left: parent.left
3737+ right: parent.right
3738+ margins: units.gu(2)
3739+ }
3740+ onClicked: {
3741+ if (DbusHelper.forgetActiveDevice()) {
3742+ accessPoint.checked = false;
3743+ accessPoint.checkedChanged(false)
3744+ }
3745 }
3746 }
3747 }
3748
3749- ListItem.Standard {
3750+ SettingsListItems.Standard {
3751 text: i18n.tr("IP address")
3752 id: addressItem
3753- control: TextField {
3754+
3755+ TextField {
3756 text: DbusHelper.wifiIp4Address
3757 readOnly: true
3758 horizontalAlignment: TextInput.AlignRight
3759
3760=== modified file 'plugins/wifi/PageComponent.qml'
3761--- plugins/wifi/PageComponent.qml 2015-08-10 13:31:45 +0000
3762+++ plugins/wifi/PageComponent.qml 2015-11-27 13:34:19 +0000
3763@@ -16,8 +16,8 @@
3764
3765 import QtQuick 2.4
3766 import SystemSettings 1.0
3767+import SystemSettings.ListItems 1.0 as SettingsListItems
3768 import Ubuntu.Components 1.3
3769-import Ubuntu.Components.ListItems 1.3 as ListItem
3770 import Ubuntu.Components.Popups 1.3
3771 import Ubuntu.SystemSettings.Wifi 1.0
3772 import QMenuModel 0.1
3773@@ -81,7 +81,6 @@
3774 right: parent.right
3775 }
3776 height: loader.height
3777- visible: height > 0
3778
3779 Loader {
3780 id: loader
3781@@ -124,16 +123,7 @@
3782 }
3783 }
3784
3785- ListItem.Divider {}
3786-
3787- ListItem.SingleValue {
3788- objectName: "previousNetwork"
3789- text: i18n.tr("Previous networks")
3790- progression: true
3791- onClicked: pageStack.push(Qt.resolvedUrl("PreviousNetworks.qml"))
3792- }
3793-
3794- ListItem.SingleValue {
3795+ SettingsListItems.Standard {
3796 objectName: "connectToHiddenNetwork"
3797 text: i18n.tr("Connect to hidden network…")
3798 visible : wifibase.wifiEnabled
3799@@ -143,6 +133,12 @@
3800 }
3801 }
3802
3803+ SettingsListItems.StandardProgression {
3804+ objectName: "previousNetwork"
3805+ text: i18n.tr("Previous networks")
3806+ onClicked: pageStack.push(Qt.resolvedUrl("PreviousNetworks.qml"))
3807+ }
3808+
3809 Loader {
3810 id: otherNetworLoader
3811 asynchronous: false
3812
3813=== modified file 'plugins/wifi/PreviousNetworks.qml'
3814--- plugins/wifi/PreviousNetworks.qml 2015-08-10 13:31:45 +0000
3815+++ plugins/wifi/PreviousNetworks.qml 2015-11-27 13:34:19 +0000
3816@@ -16,8 +16,8 @@
3817
3818 import QtQuick 2.4
3819 import SystemSettings 1.0
3820+import SystemSettings.ListItems 1.0 as SettingsListItems
3821 import Ubuntu.Components 1.3
3822-import Ubuntu.Components.ListItems 1.3 as ListItem
3823 import Ubuntu.SystemSettings.Wifi 1.0
3824 import QMenuModel 0.1
3825
3826@@ -54,9 +54,8 @@
3827 duration: UbuntuAnimation.SnapDuration
3828 }
3829 }
3830- delegate: ListItem.Standard {
3831+ delegate: SettingsListItems.StandardProgression {
3832 text: name
3833- progression: true
3834 onClicked: {
3835 pageStack.push(Qt.resolvedUrl("NetworkDetails.qml"),
3836 {networkName : name, password : password, lastUsed : lastUsed,
3837
3838=== modified file 'plugins/wifi/SectionMenuItem.qml'
3839--- plugins/wifi/SectionMenuItem.qml 2015-08-10 13:31:45 +0000
3840+++ plugins/wifi/SectionMenuItem.qml 2015-11-27 13:34:19 +0000
3841@@ -18,37 +18,22 @@
3842 */
3843
3844 import QtQuick 2.4
3845+import SystemSettings 1.0
3846 import Ubuntu.Components 1.3
3847-import Ubuntu.Components.ListItems 1.3 as ListItem
3848-
3849-BaseMenuItem {
3850- id: menuItem
3851- property alias text: header.text
3852- property bool busy: false
3853-
3854- implicitHeight: text !== "" ? header.height : 0
3855-
3856- ListItem.Header {
3857- id: header
3858-
3859- height: units.gu(4)
3860+
3861+SettingsItemTitle {
3862+ property alias busy: indicator.running
3863+
3864+ ActivityIndicator {
3865+ id: indicator
3866 anchors {
3867- left: parent.left
3868+ top: parent.top
3869+ topMargin: units.gu(3)
3870 right: parent.right
3871- top: parent.top
3872- }
3873- visible: text != ""
3874-
3875- ActivityIndicator {
3876- id: indicator
3877- running: busy
3878- anchors {
3879- margins: units.gu(0.5)
3880- right: parent.right
3881- }
3882- height: parent.height - (anchors.margins * 2)
3883- width: height
3884- anchors.verticalCenter: parent.verticalCenter
3885- }
3886+ rightMargin: units.gu(2)
3887+ }
3888+ height: parent.height - (anchors.topMargin * 1.25)
3889+ width: height
3890+ visible: running
3891 }
3892 }
3893
3894=== modified file 'plugins/wifi/StandardMenuItem.qml'
3895--- plugins/wifi/StandardMenuItem.qml 2015-08-10 13:31:45 +0000
3896+++ plugins/wifi/StandardMenuItem.qml 2015-11-27 13:34:19 +0000
3897@@ -28,34 +28,12 @@
3898
3899 signal activate()
3900
3901- onCheckedChanged: {
3902- // Can't rely on binding. Checked is assigned on click.
3903- if (checkable) {
3904- checkbox.checked = checked;
3905- }
3906- }
3907+ layout.subtitle.text: checked ? i18n.tr("Connected") : ""
3908
3909+ progressionVisible: checked
3910 onClicked: {
3911- if (checkable) {
3912- checkbox.clicked();
3913- } else {
3914- menuItem.activate();
3915- }
3916- }
3917-
3918- control: CheckBox {
3919- id: checkbox
3920-
3921- Component.onCompleted: {
3922- checked = menuItem.checked;
3923- }
3924-
3925- // FIXME : should use Checkbox.toggled signal
3926- // lp:~nick-dedekind/ubuntu-ui-toolkit/checkbox.toggled
3927- onClicked: {
3928- menuItem.activate();
3929- }
3930-
3931- visible: checkable
3932+ if (!checked) {
3933+ menuItem.activate();
3934+ }
3935 }
3936 }
3937
3938=== modified file 'plugins/wifi/SwitchMenuItem.qml'
3939--- plugins/wifi/SwitchMenuItem.qml 2015-08-10 13:31:45 +0000
3940+++ plugins/wifi/SwitchMenuItem.qml 2015-11-27 13:34:19 +0000
3941@@ -33,7 +33,7 @@
3942 switcher.checked = checked;
3943 }
3944
3945- control: Switch {
3946+ Switch {
3947 id: switcher
3948
3949 Component.onCompleted: {
3950
3951=== modified file 'src/CMakeLists.txt'
3952--- src/CMakeLists.txt 2014-10-31 14:53:32 +0000
3953+++ src/CMakeLists.txt 2015-11-27 13:34:19 +0000
3954@@ -20,7 +20,7 @@
3955 )
3956
3957 set(QML_SOURCES
3958- qml/CategoryGrid.qml
3959+ qml/CategorySection.qml
3960 qml/EntryComponent.qml
3961 qml/MainWindow.qml
3962 qml/UncategorizedItemsView.qml
3963
3964=== modified file 'src/SystemSettings/qmldir'
3965--- src/SystemSettings/qmldir 2014-10-31 08:45:10 +0000
3966+++ src/SystemSettings/qmldir 2015-11-27 13:34:19 +0000
3967@@ -1,3 +1,4 @@
3968 module SystemSettings
3969+
3970 ItemPage 1.0 ItemPage.qml
3971 SettingsItemTitle 1.0 SettingsItemTitle.qml
3972
3973=== renamed file 'src/qml/CategoryGrid.qml' => 'src/qml/CategorySection.qml'
3974--- src/qml/CategoryGrid.qml 2015-08-10 13:31:45 +0000
3975+++ src/qml/CategorySection.qml 2015-11-27 13:34:19 +0000
3976@@ -1,6 +1,8 @@
3977 import QtQuick 2.4
3978+import SystemSettings 1.0
3979+import SystemSettings.ListItems 1.0 as SettingsListItems
3980 import Ubuntu.Components 1.3
3981-import Ubuntu.Components.ListItems 1.3 as ListItem
3982+
3983
3984 Column {
3985 anchors {
3986@@ -14,32 +16,17 @@
3987
3988 objectName: "categoryGrid-" + category
3989
3990- ListItem.Standard {
3991+ SettingsItemTitle {
3992 id: header
3993-
3994- highlightWhenPressed: false
3995- showDivider: false
3996 text: categoryName
3997 visible: repeater.count > 0
3998 }
3999
4000- Grid {
4001- property int itemWidth: units.gu(12)
4002-
4003- // The amount of whitespace, including column spacing
4004- property int space: parent.width - columns * itemWidth
4005-
4006- // The column spacing is 1/n of the left/right margins
4007- property int n: 4
4008-
4009- columnSpacing: space / ((2 * n) + (columns - 1))
4010- rowSpacing: units.gu(3)
4011- width: (columns * itemWidth) + columnSpacing * (columns - 1)
4012- anchors.horizontalCenter: parent.horizontalCenter
4013- columns: {
4014- var items = Math.floor(parent.width / itemWidth)
4015- var count = repeater.count
4016- return count < items ? count : items
4017+ Column {
4018+ id: col
4019+ anchors {
4020+ left: parent.left
4021+ right: parent.right
4022 }
4023
4024 Repeater {
4025@@ -49,7 +36,10 @@
4026
4027 delegate: Loader {
4028 id: loader
4029- width: parent.itemWidth
4030+ anchors {
4031+ left: col.left
4032+ right: col.right
4033+ }
4034 sourceComponent: model.item.entryComponent
4035 active: model.item.visible
4036 Connections {
4037@@ -66,5 +56,4 @@
4038 }
4039 }
4040 }
4041- ListItem.ThinDivider { visible: header.visible }
4042 }
4043
4044=== modified file 'src/qml/EntryComponent.qml'
4045--- src/qml/EntryComponent.qml 2015-08-10 13:31:45 +0000
4046+++ src/qml/EntryComponent.qml 2015-11-27 13:34:19 +0000
4047@@ -1,7 +1,7 @@
4048 /*
4049 * This file is part of system-settings
4050 *
4051- * Copyright (C) 2013 Canonical Ltd.
4052+ * Copyright (C) 2013-2015 Canonical Ltd.
4053 *
4054 * Contact: Alberto Mardegan <alberto.mardegan@canonical.com>
4055 *
4056@@ -19,58 +19,14 @@
4057 */
4058
4059 import QtQuick 2.4
4060+import SystemSettings.ListItems 1.0 as SettingsListItems
4061 import Ubuntu.Components 1.3
4062-import Ubuntu.Settings.Components 0.1
4063
4064-Item {
4065+SettingsListItems.IconProgression {
4066 id: root
4067
4068- signal clicked
4069-
4070- height: button.height
4071-
4072 objectName: "entryComponent-" + model.item.baseName
4073
4074- AbstractButton {
4075- id: button
4076- anchors.left: parent.left
4077- anchors.right: parent.right
4078- onClicked: root.clicked()
4079-
4080- height: col.height
4081-
4082- Column {
4083- id: col
4084- anchors.left: parent.left
4085- anchors.right: parent.right
4086-
4087- Icon {
4088- id: icon
4089- anchors.horizontalCenter: parent.horizontalCenter
4090- width: height
4091- height: units.gu(4)
4092- source: model.icon
4093- }
4094-
4095- Label {
4096- anchors.horizontalCenter: parent.horizontalCenter
4097- text: i18n.dtr(model.item.translations, model.displayName)
4098- width: col.width
4099- horizontalAlignment: Text.AlignHCenter
4100- fontSize: "small"
4101- wrapMode: Text.WrapAtWordBoundaryOrAnywhere
4102- }
4103- }
4104- }
4105-
4106- UbuntuShape {
4107- z: -1
4108- visible: button.pressed
4109- anchors{
4110- fill: root
4111- margins: -units.gu(0.25)
4112- }
4113- backgroundColor: UbuntuColors.darkGrey
4114- opacity: 0.15
4115- }
4116+ text: i18n.dtr(model.item.translations, model.displayName)
4117+ iconSource: model.icon
4118 }
4119
4120=== modified file 'src/qml/MainWindow.qml'
4121--- src/qml/MainWindow.qml 2015-08-10 13:31:45 +0000
4122+++ src/qml/MainWindow.qml 2015-11-27 13:34:19 +0000
4123@@ -19,8 +19,8 @@
4124 */
4125
4126 import QtQuick 2.4
4127+import SystemSettings.ListItems 1.0 as SettingsListItems
4128 import Ubuntu.Components 1.3
4129-import Ubuntu.Components.ListItems 1.3 as ListItem
4130 import SystemSettings 1.0
4131
4132 MainView {
4133@@ -112,6 +112,16 @@
4134 visible: false
4135 flickable: mainFlickable
4136
4137+ head.actions: [
4138+ Action {
4139+ iconName: "find"
4140+ onTriggered: {
4141+ pluginManager.filter = "";
4142+ search.visible = !search.visible;
4143+ }
4144+ }
4145+ ]
4146+
4147 Flickable {
4148 id: mainFlickable
4149 anchors.fill: parent
4150@@ -125,9 +135,11 @@
4151 anchors.left: parent.left
4152 anchors.right: parent.right
4153
4154- ListItem.SingleControl {
4155+ SettingsListItems.SingleControl {
4156 id: search
4157- control: TextField {
4158+ visible: false
4159+ TextField {
4160+ id: searchField
4161 width: parent.width - units.gu(4)
4162 placeholderText: i18n.tr("Search")
4163 objectName: "searchTextField"
4164@@ -135,23 +147,24 @@
4165 onDisplayTextChanged:
4166 pluginManager.filter = displayText
4167 }
4168+ onVisibleChanged: if (visible) searchField.forceActiveFocus()
4169 }
4170
4171 UncategorizedItemsView {
4172 model: pluginManager.itemModel("uncategorized-top")
4173 }
4174
4175- CategoryGrid {
4176+ CategorySection {
4177 category: "network"
4178 categoryName: i18n.tr("Network")
4179 }
4180
4181- CategoryGrid {
4182+ CategorySection {
4183 category: "personal"
4184 categoryName: i18n.tr("Personal")
4185 }
4186
4187- CategoryGrid {
4188+ CategorySection {
4189 category: "system"
4190 categoryName: i18n.tr("System")
4191 }
4192
4193=== modified file 'src/ui.qrc'
4194--- src/ui.qrc 2014-01-31 15:07:01 +0000
4195+++ src/ui.qrc 2015-11-27 13:34:19 +0000
4196@@ -1,6 +1,6 @@
4197 <!DOCTYPE RCC><RCC version="1.0">
4198 <qresource>
4199- <file>qml/CategoryGrid.qml</file>
4200+ <file>qml/CategorySection.qml</file>
4201 <file>qml/EntryComponent.qml</file>
4202 <file>qml/MainWindow.qml</file>
4203 <file>qml/UncategorizedItemsView.qml</file>
4204
4205=== modified file 'tests/autopilot/ubuntu_system_settings/tests/indicatornetwork.py'
4206--- tests/autopilot/ubuntu_system_settings/tests/indicatornetwork.py 2015-08-17 15:39:14 +0000
4207+++ tests/autopilot/ubuntu_system_settings/tests/indicatornetwork.py 2015-11-27 13:34:19 +0000
4208@@ -17,6 +17,8 @@
4209 BUS_NAME = 'com.canonical.indicator.network'
4210 MAIN_IFACE = 'org.gtk.Actions'
4211 MAIN_OBJ = '/com/canonical/indicator/network'
4212+MENU_IFACE = 'org.gtk.Menus'
4213+PHONE_WIFI_OBJ = '/com/canonical/indicator/network/phone_wifi_settings'
4214 SYSTEM_BUS = False
4215
4216 NOT_IMPLEMENTED = '''raise dbus.exceptions.DBusException(
4217@@ -41,8 +43,12 @@
4218 return list(self.actions)
4219
4220
4221-def set_state(self, action_name, parameters, platform_data):
4222- eval(NOT_IMPLEMENTED)
4223+def start(self, groups):
4224+ return dbusmock.get_object(MAIN_OBJ).menus
4225+
4226+
4227+def end(self, groups):
4228+ pass
4229
4230
4231 @dbus.service.method(dbusmock.MOCK_IFACE,
4232@@ -62,12 +68,87 @@
4233 mock.describe = describe
4234 mock.describe_all = describe_all
4235 mock.list_actions = list_actions
4236- mock.set_state = set_state
4237
4238 mock.actions = parameters.get('actions', {
4239 'wifi.enable': (True, '', [True]),
4240+ 'accesspoint.0': (True, '', [True]),
4241+ 'accesspoint.0::strength': (True, '', [44]),
4242+ 'accesspoint.1': (True, '', [False]),
4243+ 'accesspoint.1::strength': (True, '', [100]),
4244+ 'accesspoint.2': (True, '', [False]),
4245+ 'accesspoint.2::strength': (True, '', [74]),
4246+ 'accesspoint.3': (False, '', [False]),
4247 })
4248
4249+ mock.menus = parameters.get('menus', dbus.Array([
4250+ (
4251+ dbus.UInt32(0), dbus.UInt32(0),
4252+ [
4253+ {
4254+ 'action': 'indicator.wifi.enable',
4255+ 'x-canonical-type': 'com.canonical.indicator.switch',
4256+ 'label': 'Wi-Fi'
4257+ },
4258+ {
4259+ 'x-canonical-type': 'com.canonical.indicator.section',
4260+ 'label': 'Available Wi-Fi networks'
4261+ },
4262+ {
4263+ ':section': dbus.Struct(
4264+ (dbus.UInt32(0), dbus.UInt32(1)), signature='(uu)'
4265+ )
4266+ }
4267+ ]
4268+ ),
4269+ (
4270+ dbus.UInt32(0), dbus.UInt32(1),
4271+ [
4272+ {
4273+ 'x-canonical-wifi-ap-is-secure': True,
4274+ 'x-canonical-wifi-ap-is-enterprise': False,
4275+ 'label': 'Secure',
4276+ 'x-canonical-type':
4277+ 'unity.widgets.systemsettings.tablet.accesspoint',
4278+ 'x-canonical-wifi-ap-strength-action':
4279+ 'indicator.accesspoint.0::strength',
4280+ 'action': 'indicator.accesspoint.0',
4281+ 'x-canonical-wifi-ap-is-adhoc': False
4282+ },
4283+ {
4284+ 'x-canonical-wifi-ap-is-secure': False,
4285+ 'x-canonical-wifi-ap-is-enterprise': False,
4286+ 'label': 'Insecure',
4287+ 'x-canonical-type':
4288+ 'unity.widgets.systemsettings.tablet.accesspoint',
4289+ 'x-canonical-wifi-ap-strength-action':
4290+ 'indicator.accesspoint.1::strength',
4291+ 'action': 'indicator.accesspoint.1',
4292+ 'x-canonical-wifi-ap-is-adhoc': False
4293+ },
4294+ {
4295+ 'x-canonical-wifi-ap-is-secure': True,
4296+ 'x-canonical-wifi-ap-is-enterprise': True,
4297+ 'label': 'Enterprise',
4298+ 'x-canonical-type':
4299+ 'unity.widgets.systemsettings.tablet.accesspoint',
4300+ 'x-canonical-wifi-ap-strength-action':
4301+ 'indicator.accesspoint.2::strength',
4302+ 'action': 'indicator.accesspoint.2',
4303+ 'x-canonical-wifi-ap-is-adhoc': False
4304+ },
4305+ {
4306+ 'x-canonical-wifi-ap-is-secure': False,
4307+ 'x-canonical-wifi-ap-is-enterprise': False,
4308+ 'label': 'Unknown',
4309+ 'x-canonical-type':
4310+ 'unknown-type',
4311+ 'action': 'indicator.accesspoint.3',
4312+ 'x-canonical-wifi-ap-is-adhoc': False
4313+ }
4314+ ]
4315+ )
4316+ ], signature='a(uuaa{sv})'))
4317+
4318 mock.AddMethods(
4319 MAIN_IFACE,
4320 [
4321@@ -85,9 +166,23 @@
4322 (
4323 'List', '', 'as',
4324 'ret = self.list_actions(self)'
4325- ),
4326- (
4327- 'SetState', 'sva{sv}', '',
4328- 'self.set_state(self, args[0], args[1], args[2])'
4329 )
4330 ])
4331+
4332+ mock.AddObject(
4333+ PHONE_WIFI_OBJ,
4334+ MENU_IFACE, {}, [
4335+ (
4336+ 'Start', 'au', 'a(uuaa{sv})',
4337+ 'ret = self.start(self, args[0])'
4338+ ),
4339+ (
4340+ 'End', 'au', '',
4341+ 'ret = self.end(self, args[0])'
4342+ )
4343+ ]
4344+ )
4345+
4346+ phone_wifi_obj = dbusmock.get_object(PHONE_WIFI_OBJ)
4347+ phone_wifi_obj.start = start
4348+ phone_wifi_obj.end = end

Subscribers

People subscribed via source and target branches