Merge lp:~rsalveti/ubuntu-system-settings/agent-rework-rtm into lp:ubuntu-system-settings
- agent-rework-rtm
- Merge into trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~rsalveti/ubuntu-system-settings/agent-rework-rtm |
Merge into: | lp:ubuntu-system-settings |
Diff against target: |
77116 lines (+62962/-597) (has conflicts) 93 files modified
CMakeLists.txt (+24/-10) debian/changelog (+949/-0) debian/control (+32/-0) plugins/about/PageComponent.qml (+9/-0) plugins/about/Storage.qml (+11/-0) plugins/about/click.cpp (+56/-0) plugins/about/click.h (+6/-0) plugins/about/storageabout.cpp (+10/-1) plugins/about/storageabout.h (+7/-0) plugins/bluetooth/PageComponent.qml (+170/-0) plugins/bluetooth/agent.cpp (+4/-0) plugins/bluetooth/agentadaptor.h (+1/-1) plugins/bluetooth/bluetooth.cpp (+37/-1) plugins/bluetooth/bluetooth.h (+4/-0) plugins/bluetooth/dbus-shared.h (+1/-0) plugins/bluetooth/devicemodel.cpp (+28/-2) plugins/bluetooth/devicemodel.h (+1/-1) plugins/cellular/Components/DataMultiSim.qml (+9/-1) plugins/cellular/Components/NoSim.qml (+47/-0) plugins/cellular/Components/RadioSingleSim.qml (+90/-0) plugins/cellular/Components/SimEditor.qml (+24/-0) plugins/cellular/CustomApnEditor.qml (+328/-0) plugins/language/PageComponent.qml (+17/-0) plugins/phone/MultiSim.qml (+138/-0) plugins/phone/PageComponent.qml (+28/-0) plugins/security-privacy/LockSecurity.qml (+61/-0) plugins/security-privacy/PhoneLocking.qml (+4/-0) plugins/security-privacy/SimPin.qml (+392/-0) plugins/sound/PageComponent.qml (+31/-0) plugins/system-update/PageComponent.qml (+482/-2) plugins/system-update/download_tracker.cpp (+23/-4) plugins/system-update/download_tracker.h (+9/-0) plugins/system-update/network/network.cpp (+39/-0) plugins/wifi/NetworkDetails.qml (+5/-0) plugins/wifi/NetworkDetailsBrief.qml (+82/-0) plugins/wifi/OtherNetwork.qml (+387/-116) plugins/wifi/PageComponent.qml (+17/-0) po/CMakeLists.txt (+4/-0) po/am.po (+2790/-1) po/be.po (+2702/-6) po/ca.po (+2794/-13) po/ca@valencia.po (+3029/-0) po/de.po (+2916/-8) po/el.po (+2780/-3) po/en_AU.po (+2764/-6) po/es.po (+328/-57) po/fa.po (+196/-56) po/fr.po (+927/-57) po/gl.po (+2709/-14) po/he.po (+2700/-49) po/hu.po (+2682/-17) po/is.po (+1012/-54) po/it.po (+2876/-6) po/pa.po (+2747/-2) po/pl.po (+2872/-3) po/pt.po (+2798/-1) po/ro.po (+1285/-0) po/ru.po (+2781/-17) po/tr.po (+2858/-1) po/ubuntu-system-settings.pot (+2897/-32) po/zh_CN.po (+2752/-0) po/zh_TW.po (+2160/-54) push-helper/software_updates_helper.py (+154/-0) src/qml/CategoryGrid.qml (+4/-0) tests/autopilot/ubuntu_system_settings/__init__.py (+557/-0) tests/autopilot/ubuntu_system_settings/tests/__init__.py (+45/-1) tests/autopilot/ubuntu_system_settings/tests/test_datetime.py (+5/-0) tests/autopilot/ubuntu_system_settings/tests/test_wifi.py (+162/-0) wizard/CMakeLists.txt.OTHER (+51/-0) wizard/PageList.cpp.OTHER (+111/-0) wizard/Utils/CMakeLists.txt.OTHER (+27/-0) wizard/Utils/plugin.cpp.OTHER (+41/-0) wizard/Utils/system.cpp (+114/-0) wizard/Utils/system.h (+57/-0) wizard/main.cpp.OTHER (+93/-0) wizard/qml/Components/CheckableSetting.qml (+80/-0) wizard/qml/Components/Page.qml.OTHER (+107/-0) wizard/qml/Components/StackButton.qml.OTHER (+54/-0) wizard/qml/Pages/10-welcome.qml.OTHER (+93/-0) wizard/qml/Pages/20-sim.qml.OTHER (+75/-0) wizard/qml/Pages/30-passwd-type.qml.OTHER (+119/-0) wizard/qml/Pages/40-wifi.qml.OTHER (+216/-0) wizard/qml/Pages/50-location.qml (+96/-0) wizard/qml/Pages/60-reporting.qml.OTHER (+52/-0) wizard/qml/Pages/80-finished.qml.OTHER (+55/-0) wizard/qml/Pages/here-terms.qml (+117/-0) wizard/qml/Pages/passwd-confirm.qml (+79/-0) wizard/qml/Pages/passwd-set.qml (+87/-0) wizard/qml/main.qml.OTHER (+246/-0) wizard/test.sh.OTHER (+18/-0) wizard/ubuntu-system-settings-wizard-cleanup.conf.OTHER (+20/-0) wizard/ubuntu-system-settings-wizard-set-lang.conf (+30/-0) wizard/ubuntu-system-settings-wizard.conf.OTHER (+75/-0) Text conflict in CMakeLists.txt Text conflict in debian/changelog Text conflict in debian/control Text conflict in plugins/about/PageComponent.qml Text conflict in plugins/about/Storage.qml Text conflict in plugins/about/click.cpp Text conflict in plugins/about/click.h Text conflict in plugins/about/storageabout.cpp Text conflict in plugins/about/storageabout.h Text conflict in plugins/bluetooth/PageComponent.qml Text conflict in plugins/bluetooth/agent.cpp Text conflict in plugins/bluetooth/bluetooth.cpp Text conflict in plugins/bluetooth/bluetooth.h Text conflict in plugins/bluetooth/devicemodel.cpp Text conflict in plugins/cellular/Components/DataMultiSim.qml Text conflict in plugins/cellular/Components/NoSim.qml Text conflict in plugins/cellular/Components/RadioSingleSim.qml Text conflict in plugins/cellular/Components/SimEditor.qml Text conflict in plugins/cellular/CustomApnEditor.qml Text conflict in plugins/language/PageComponent.qml Text conflict in plugins/phone/MultiSim.qml Text conflict in plugins/phone/PageComponent.qml Text conflict in plugins/security-privacy/LockSecurity.qml Text conflict in plugins/security-privacy/PhoneLocking.qml Text conflict in plugins/security-privacy/SimPin.qml Text conflict in plugins/sound/PageComponent.qml Text conflict in plugins/system-update/PageComponent.qml Text conflict in plugins/system-update/download_tracker.cpp Text conflict in plugins/system-update/download_tracker.h Text conflict in plugins/system-update/network/network.cpp Text conflict in plugins/wifi/NetworkDetails.qml Text conflict in plugins/wifi/NetworkDetailsBrief.qml Text conflict in plugins/wifi/OtherNetwork.qml Text conflict in plugins/wifi/PageComponent.qml Text conflict in po/CMakeLists.txt Text conflict in po/am.po Text conflict in po/be.po Text conflict in po/ca.po Text conflict in po/ca@valencia.po Text conflict in po/de.po Text conflict in po/el.po Text conflict in po/en_AU.po Text conflict in po/es.po Text conflict in po/fa.po Text conflict in po/fr.po Text conflict in po/gl.po Text conflict in po/he.po Text conflict in po/hu.po Text conflict in po/is.po Text conflict in po/it.po Text conflict in po/pa.po Text conflict in po/pl.po Text conflict in po/pt.po Text conflict in po/ro.po Text conflict in po/ru.po Text conflict in po/tr.po Text conflict in po/ubuntu-system-settings.pot Text conflict in po/zh_CN.po Text conflict in po/zh_TW.po Text conflict in push-helper/software_updates_helper.py Text conflict in src/qml/CategoryGrid.qml Text conflict in tests/autopilot/ubuntu_system_settings/__init__.py Text conflict in tests/autopilot/ubuntu_system_settings/tests/__init__.py Text conflict in tests/autopilot/ubuntu_system_settings/tests/test_datetime.py Text conflict in tests/autopilot/ubuntu_system_settings/tests/test_wifi.py Conflict adding files to wizard. Created directory. Conflict because wizard is not versioned, but has versioned children. Versioned directory. Contents conflict in wizard/CMakeLists.txt Contents conflict in wizard/PageList.cpp Conflict adding files to wizard/Utils. Created directory. Conflict because wizard/Utils is not versioned, but has versioned children. Versioned directory. Contents conflict in wizard/Utils/CMakeLists.txt Contents conflict in wizard/Utils/plugin.cpp Contents conflict in wizard/main.cpp Conflict adding files to wizard/qml. Created directory. Conflict because wizard/qml is not versioned, but has versioned children. Versioned directory. Conflict adding files to wizard/qml/Components. Created directory. Conflict because wizard/qml/Components is not versioned, but has versioned children. Versioned directory. Contents conflict in wizard/qml/Components/Page.qml Contents conflict in wizard/qml/Components/StackButton.qml Conflict adding files to wizard/qml/Pages. Created directory. Conflict because wizard/qml/Pages is not versioned, but has versioned children. Versioned directory. Contents conflict in wizard/qml/Pages/10-welcome.qml Contents conflict in wizard/qml/Pages/20-sim.qml Contents conflict in wizard/qml/Pages/30-passwd-type.qml Contents conflict in wizard/qml/Pages/40-wifi.qml Contents conflict in wizard/qml/Pages/60-reporting.qml Contents conflict in wizard/qml/Pages/80-finished.qml Contents conflict in wizard/qml/main.qml Contents conflict in wizard/test.sh Contents conflict in wizard/ubuntu-system-settings-wizard-cleanup.conf Contents conflict in wizard/ubuntu-system-settings-wizard.conf |
To merge this branch: | bzr merge lp:~rsalveti/ubuntu-system-settings/agent-rework-rtm |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu Touch System Settings | Pending | ||
Review via email: mp+251208@code.launchpad.net |
Commit message
Make an adapter-wide agent available for pairing requests initiated from a remote device. (LP: #1366061)
Description of the change
Make an adapter-wide agent available for pairing requests initiated from a remote device. (LP: #1366061)
Backport of: https:/
Unmerged revisions
- 998. By Ricardo Salveti
-
Register an agent on the adapter as well
- 997. By CI Train Bot Account
-
Releasing 0.3+15.
04.20150219~ rtm-0ubuntu1 - 996. By Michael Terry
-
Wait for libqofono to finish initializing before we decide whether to skip the wizard's SIM page or not.
libqofono recently became asynchronous, which the wizard was not prepared for. Fixes: #1423565
Approved by: Jonas G. Drange - 995. By CI Train Bot Account
-
Releasing 0.3+15.
04.20150218. 1~rtm-0ubuntu1 - 994. By Ken VanDine
-
Removed conflicting ConnectivityMixin to fix smoke testing
Fixes: #1423205
Approved by: Jonas G. Drange - 993. By CI Train Bot Account
-
Releasing 0.3+15.
04.20150218~ rtm-0ubuntu1 - 992. By Mathieu Trudel-Lapierre
-
Use the address instead of name in main device list if name isn't available.
Approved by: Ken VanDine - 991. By CI Train Bot Account
-
Releasing 0.3+15.
04.20150217~ rtm-0ubuntu1 - 990. By Jonas G. Drange
-
[cellular] makes the apn editor somewhat compatible to libqofono 0.7 Fixes: #1379850
- 989. By Jonas G. Drange
-
[cellular] using libqofono-0.7 and including functionality for enabling users to change what modem has 3G Fixes: #1379850
Preview Diff
1 | === modified file 'CMakeLists.txt' | |||
2 | --- CMakeLists.txt 2014-11-19 18:05:48 +0000 | |||
3 | +++ CMakeLists.txt 2015-02-27 05:54:50 +0000 | |||
4 | @@ -77,16 +77,30 @@ | |||
5 | 77 | add_subdirectory(plugins) | 77 | add_subdirectory(plugins) |
6 | 78 | add_subdirectory(src) | 78 | add_subdirectory(src) |
7 | 79 | add_subdirectory(tests) | 79 | add_subdirectory(tests) |
18 | 80 | 80 | <<<<<<< TREE | |
19 | 81 | configure_file(${DESKTOP_FILE}.in.in ${DESKTOP_FILE}.in @ONLY) | 81 | |
20 | 82 | add_custom_target(${DESKTOP_FILE} ALL | 82 | configure_file(${DESKTOP_FILE}.in.in ${DESKTOP_FILE}.in @ONLY) |
21 | 83 | COMMENT "Merging translations into ${DESKTOP_FILE}" | 83 | add_custom_target(${DESKTOP_FILE} ALL |
22 | 84 | COMMAND ${INTLTOOL_MERGE} -d -u ${CMAKE_SOURCE_DIR}/po | 84 | COMMENT "Merging translations into ${DESKTOP_FILE}" |
23 | 85 | ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE}.in ${DESKTOP_FILE}) | 85 | COMMAND ${INTLTOOL_MERGE} -d -u ${CMAKE_SOURCE_DIR}/po |
24 | 86 | 86 | ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE}.in ${DESKTOP_FILE}) | |
25 | 87 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE} | 87 | |
26 | 88 | DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) | 88 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE} |
27 | 89 | 89 | DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) | |
28 | 90 | |||
29 | 91 | ======= | ||
30 | 92 | add_subdirectory(wizard) | ||
31 | 93 | |||
32 | 94 | configure_file(${DESKTOP_FILE}.in.in ${DESKTOP_FILE}.in @ONLY) | ||
33 | 95 | add_custom_target(${DESKTOP_FILE} ALL | ||
34 | 96 | COMMENT "Merging translations into ${DESKTOP_FILE}" | ||
35 | 97 | COMMAND ${INTLTOOL_MERGE} -d -u ${CMAKE_SOURCE_DIR}/po | ||
36 | 98 | ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE}.in ${DESKTOP_FILE}) | ||
37 | 99 | |||
38 | 100 | install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_FILE} | ||
39 | 101 | DESTINATION ${CMAKE_INSTALL_DATADIR}/applications) | ||
40 | 102 | |||
41 | 103 | >>>>>>> MERGE-SOURCE | ||
42 | 90 | install(FILES ubuntu-system-settings.url-dispatcher DESTINATION share/url-dispatcher/urls) | 104 | install(FILES ubuntu-system-settings.url-dispatcher DESTINATION share/url-dispatcher/urls) |
43 | 91 | install(FILES screenshot.png DESTINATION ${SETTINGS_SHARE_DIR}) | 105 | install(FILES screenshot.png DESTINATION ${SETTINGS_SHARE_DIR}) |
44 | 92 | install(FILES system-settings.png DESTINATION ${SETTINGS_SHARE_DIR}) | 106 | install(FILES system-settings.png DESTINATION ${SETTINGS_SHARE_DIR}) |
45 | 93 | 107 | ||
46 | === modified file 'debian/changelog' | |||
47 | --- debian/changelog 2015-02-23 19:58:56 +0000 | |||
48 | +++ debian/changelog 2015-02-27 05:54:50 +0000 | |||
49 | @@ -1,3 +1,4 @@ | |||
50 | 1 | <<<<<<< TREE | ||
51 | 1 | ubuntu-system-settings (0.3+15.04.20150223-0ubuntu1) vivid; urgency=medium | 2 | ubuntu-system-settings (0.3+15.04.20150223-0ubuntu1) vivid; urgency=medium |
52 | 2 | 3 | ||
53 | 3 | [ Leo Arias ] | 4 | [ Leo Arias ] |
54 | @@ -1178,6 +1179,954 @@ | |||
55 | 1178 | 1179 | ||
56 | 1179 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 15 Aug 2014 16:45:51 +0000 | 1180 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 15 Aug 2014 16:45:51 +0000 |
57 | 1180 | 1181 | ||
58 | 1182 | ======= | ||
59 | 1183 | ubuntu-system-settings (0.3+15.04.20150219~rtm-0ubuntu1) 14.09; urgency=medium | ||
60 | 1184 | |||
61 | 1185 | [ Michael Terry ] | ||
62 | 1186 | * Wait for libqofono to finish initializing before we decide whether | ||
63 | 1187 | to skip the wizard's SIM page or not. | ||
64 | 1188 | |||
65 | 1189 | -- CI Train Bot <ci-train-bot@canonical.com> Thu, 19 Feb 2015 17:21:09 +0000 | ||
66 | 1190 | |||
67 | 1191 | ubuntu-system-settings (0.3+15.04.20150218.1~rtm-0ubuntu1) 14.09; urgency=medium | ||
68 | 1192 | |||
69 | 1193 | [ Ken VanDine ] | ||
70 | 1194 | * Removed conflicting ConnectivityMixin to fix smoke testing (LP: | ||
71 | 1195 | #1423205) | ||
72 | 1196 | |||
73 | 1197 | -- CI Train Bot <ci-train-bot@canonical.com> Wed, 18 Feb 2015 18:07:18 +0000 | ||
74 | 1198 | |||
75 | 1199 | ubuntu-system-settings (0.3+15.04.20150218~rtm-0ubuntu1) 14.09; urgency=medium | ||
76 | 1200 | |||
77 | 1201 | [ CI Train Bot ] | ||
78 | 1202 | * New rebuild forced. | ||
79 | 1203 | |||
80 | 1204 | [ Mathieu Trudel-Lapierre ] | ||
81 | 1205 | * Use the address instead of name in main device list if name isn't | ||
82 | 1206 | available. | ||
83 | 1207 | |||
84 | 1208 | -- CI Train Bot <ci-train-bot@canonical.com> Wed, 18 Feb 2015 15:12:33 +0000 | ||
85 | 1209 | |||
86 | 1210 | ubuntu-system-settings (0.3+15.04.20150217~rtm-0ubuntu1) 14.09; urgency=medium | ||
87 | 1211 | |||
88 | 1212 | [ CI Train Bot ] | ||
89 | 1213 | * Resync trunk | ||
90 | 1214 | * Resync trunk | ||
91 | 1215 | * Resync trunk | ||
92 | 1216 | * Resync trunk | ||
93 | 1217 | * Resync trunk | ||
94 | 1218 | * Resync trunk | ||
95 | 1219 | * Resync trunk | ||
96 | 1220 | * Resync trunk | ||
97 | 1221 | * Resync trunk | ||
98 | 1222 | |||
99 | 1223 | [ jonas-drange ] | ||
100 | 1224 | * [cellular] using libqofono-0.7 and including functionality for | ||
101 | 1225 | enabling users to change what modem has 3G (LP: #1379850) | ||
102 | 1226 | * [cellular] makes the apn editor somewhat compatible to libqofono 0.7 | ||
103 | 1227 | (LP: #1379850) | ||
104 | 1228 | |||
105 | 1229 | -- CI Train Bot <ci-train-bot@canonical.com> Tue, 17 Feb 2015 12:55:31 +0000 | ||
106 | 1230 | |||
107 | 1231 | ubuntu-system-settings (0.3+15.04.20150204.1~rtm-0ubuntu1) 14.09; urgency=medium | ||
108 | 1232 | |||
109 | 1233 | [ jonas-drange ] | ||
110 | 1234 | * [sound] let user toggle other vibrate setting | ||
111 | 1235 | |||
112 | 1236 | [ Ubuntu daily release ] | ||
113 | 1237 | * New rebuild forced | ||
114 | 1238 | |||
115 | 1239 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 04 Feb 2015 15:19:16 +0000 | ||
116 | 1240 | |||
117 | 1241 | ubuntu-system-settings (0.3+15.04.20150204~rtm-0ubuntu1) 14.09; urgency=medium | ||
118 | 1242 | |||
119 | 1243 | [ Ken VanDine ] | ||
120 | 1244 | * Revoke any cached authorizations before trying to change password | ||
121 | 1245 | mode. This makes sure that we authenticate the user again even if we | ||
122 | 1246 | just did so (for UX consistency). | ||
123 | 1247 | * [about] properly display IMEI values for no devices ("None"), one | ||
124 | 1248 | device and multiple devices. Remove test now redundant. (LP: | ||
125 | 1249 | #1205294) | ||
126 | 1250 | * [security/privacy] add connectivity binding and let user unlock a | ||
127 | 1251 | given SIM (LP: #1378883) | ||
128 | 1252 | |||
129 | 1253 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 04 Feb 2015 17:38:10 +0000 | ||
130 | 1254 | |||
131 | 1255 | ubuntu-system-settings (0.3+15.04.20150203.1~rtm-0ubuntu1) 14.09; urgency=medium | ||
132 | 1256 | |||
133 | 1257 | [ Ken VanDine ] | ||
134 | 1258 | * initialize m_lastFullCharge as NULL | ||
135 | 1259 | * Use device-state from indicator-power to determine charging status. | ||
136 | 1260 | QtSystemsInfo doesn't support UPower 0.99. (LP: #1416096) | ||
137 | 1261 | |||
138 | 1262 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 03 Feb 2015 16:08:56 +0000 | ||
139 | 1263 | |||
140 | 1264 | ubuntu-system-settings (0.3+15.04.20150128.1~rtm-0ubuntu1) 14.09; urgency=low | ||
141 | 1265 | |||
142 | 1266 | [ Ubuntu daily release ] | ||
143 | 1267 | * New rebuild forced | ||
144 | 1268 | |||
145 | 1269 | [ Alberto Mardegan ] | ||
146 | 1270 | * Security: ignore older requests when building the applications' | ||
147 | 1271 | grants | ||
148 | 1272 | |||
149 | 1273 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 28 Jan 2015 09:56:05 +0000 | ||
150 | 1274 | |||
151 | 1275 | ubuntu-system-settings (0.3+15.04.20150123.1~rtm-0ubuntu1) 14.09; urgency=low | ||
152 | 1276 | |||
153 | 1277 | [ Andrea Cimitan ] | ||
154 | 1278 | * Fix continue button in wifi wizard page, adds qml-module- | ||
155 | 1279 | qtsysteminfo as ubuntu-system-settings-wizard dep (LP: #1363400) | ||
156 | 1280 | |||
157 | 1281 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 23 Jan 2015 18:19:35 +0000 | ||
158 | 1282 | |||
159 | 1283 | ubuntu-system-settings (0.3+15.04.20150123~rtm-0ubuntu1) 14.09; urgency=low | ||
160 | 1284 | |||
161 | 1285 | [ Ken VanDine ] | ||
162 | 1286 | * [brightness] ensure properties are not use undefined (LP: #1385467) | ||
163 | 1287 | |||
164 | 1288 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 23 Jan 2015 14:54:16 +0000 | ||
165 | 1289 | |||
166 | 1290 | ubuntu-system-settings (0.3+15.04.20150122~rtm-0ubuntu1) 14.09; urgency=low | ||
167 | 1291 | |||
168 | 1292 | [ Ken VanDine ] | ||
169 | 1293 | * [cellular/carriers] new Carrier & APN entry, as well as a major | ||
170 | 1294 | refactor of carrier selection code warranted by the design change. | ||
171 | 1295 | (LP: #1388044) | ||
172 | 1296 | * [bluetooth] Show bluetooth address instead of name while it's not | ||
173 | 1297 | detected; to be updated once available. (LP: #1382767) | ||
174 | 1298 | |||
175 | 1299 | [ jonas-drange ] | ||
176 | 1300 | * Make currently active connection forgettable. | ||
177 | 1301 | |||
178 | 1302 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 22 Jan 2015 01:39:48 +0000 | ||
179 | 1303 | |||
180 | 1304 | ubuntu-system-settings (0.3+15.04.20150120~rtm-0ubuntu1) 14.09; urgency=low | ||
181 | 1305 | |||
182 | 1306 | [ Manuel de la Peña ] | ||
183 | 1307 | * Fix click downloads pause by ensuring that the settings works | ||
184 | 1308 | accordingly. (LP: #1398310) | ||
185 | 1309 | |||
186 | 1310 | [ Ubuntu daily release ] | ||
187 | 1311 | * New rebuild forced | ||
188 | 1312 | |||
189 | 1313 | [ Manuel de la Pena ] | ||
190 | 1314 | * Fix click downloads pause by ensuring that the settings works | ||
191 | 1315 | accordingly. (LP: #1398310) | ||
192 | 1316 | |||
193 | 1317 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 20 Jan 2015 15:04:46 +0000 | ||
194 | 1318 | |||
195 | 1319 | ubuntu-system-settings (0.3+15.04.20150114.1~rtm-0ubuntu1) 14.09; urgency=low | ||
196 | 1320 | |||
197 | 1321 | [ Ken VanDine ] | ||
198 | 1322 | * Added missing depends for qml-module-ubuntu-connectivity (LP: | ||
199 | 1323 | #1410968) | ||
200 | 1324 | |||
201 | 1325 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 14 Jan 2015 21:01:31 +0000 | ||
202 | 1326 | |||
203 | 1327 | ubuntu-system-settings (0.3+15.04.20150114~rtm-0ubuntu1) 14.09; urgency=low | ||
204 | 1328 | |||
205 | 1329 | [ Ken VanDine ] | ||
206 | 1330 | * Tiny step towards improved use of the preferred page-object model, | ||
207 | 1331 | hopefully making some tests more reliable. (LP: #1409809) | ||
208 | 1332 | |||
209 | 1333 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 14 Jan 2015 02:51:38 +0000 | ||
210 | 1334 | |||
211 | 1335 | ubuntu-system-settings (0.3+15.04.20150112~rtm-0ubuntu1) 14.09; urgency=low | ||
212 | 1336 | |||
213 | 1337 | [ Ken VanDine ] | ||
214 | 1338 | * [security] replace inputmask for validator and maximum length (LP: | ||
215 | 1339 | #1357548) | ||
216 | 1340 | |||
217 | 1341 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 12 Jan 2015 21:51:55 +0000 | ||
218 | 1342 | |||
219 | 1343 | ubuntu-system-settings (0.3+15.04.20150109~rtm-0ubuntu1) 14.09; urgency=low | ||
220 | 1344 | |||
221 | 1345 | [ jonas-drange ] | ||
222 | 1346 | * [about] use networkinfo to pull the wifi device MAC (LP: #1399723) | ||
223 | 1347 | |||
224 | 1348 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 09 Jan 2015 14:45:20 +0000 | ||
225 | 1349 | |||
226 | 1350 | ubuntu-system-settings (0.3+15.04.20150107~rtm-0ubuntu1) 14.09; urgency=low | ||
227 | 1351 | |||
228 | 1352 | [ Ken VanDine ] | ||
229 | 1353 | * [about] use SingleValueStacked for all information bits in the | ||
230 | 1354 | version panel | ||
231 | 1355 | |||
232 | 1356 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 07 Jan 2015 15:07:19 +0000 | ||
233 | 1357 | |||
234 | 1358 | ubuntu-system-settings (0.3+15.04.20150106~rtm-0ubuntu1) 14.09; urgency=low | ||
235 | 1359 | |||
236 | 1360 | [ Ken VanDine ] | ||
237 | 1361 | * [system-update] remember the latest SystemUpdate downloaded and | ||
238 | 1362 | compare the version when checking again and set updateReady | ||
239 | 1363 | appropriately. This fixes the handling of downloaded updates when | ||
240 | 1364 | auto-download is false. (LP: #1392051) | ||
241 | 1365 | * [orientation] String change to Rotation Lock | ||
242 | 1366 | |||
243 | 1367 | [ Ted Gould ] | ||
244 | 1368 | * Make silent mode use the action state in the sound user service (LP: | ||
245 | 1369 | #1382089, #1388804, #1395709) | ||
246 | 1370 | |||
247 | 1371 | [ Ubuntu daily release ] | ||
248 | 1372 | * New rebuild forced | ||
249 | 1373 | |||
250 | 1374 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 06 Jan 2015 21:41:04 +0000 | ||
251 | 1375 | |||
252 | 1376 | ubuntu-system-settings (0.3+15.04.20141211~rtm-0ubuntu1) 14.09; urgency=low | ||
253 | 1377 | |||
254 | 1378 | [ Ken VanDine ] | ||
255 | 1379 | * [cellular] split "Cellular Data" and "Connection type" into two | ||
256 | 1380 | separate pieces in the UI for both single and multi SIM (LP: | ||
257 | 1381 | #1378812, #1377455) | ||
258 | 1382 | |||
259 | 1383 | [ jonas-drange ] | ||
260 | 1384 | * [cellular] Use a repeater to lay out two separate ItemSelectors for | ||
261 | 1385 | modems, making sure it works well between connMan power cycles (LP: | ||
262 | 1386 | #1377455) | ||
263 | 1387 | |||
264 | 1388 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 11 Dec 2014 14:24:35 +0000 | ||
265 | 1389 | |||
266 | 1390 | ubuntu-system-settings (0.3+15.04.20141210~rtm-0ubuntu1) 14.09; urgency=low | ||
267 | 1391 | |||
268 | 1392 | [ Ken VanDine ] | ||
269 | 1393 | * Support UPower 0.99 (LP: #1337200, #1390629) | ||
270 | 1394 | |||
271 | 1395 | [ Ubuntu daily release ] | ||
272 | 1396 | * New rebuild forced | ||
273 | 1397 | |||
274 | 1398 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 10 Dec 2014 23:53:31 +0000 | ||
275 | 1399 | |||
276 | 1400 | ubuntu-system-settings (0.3+15.04.20141209~rtm-0ubuntu1) 14.09; urgency=low | ||
277 | 1401 | |||
278 | 1402 | [ Ken VanDine ] | ||
279 | 1403 | * [battery] don't control wifi state with libnm, use the | ||
280 | 1404 | QDBusActionGroup from indicator-network (LP: #1391940) | ||
281 | 1405 | * Update the translations template during the build (LP: #1399212) | ||
282 | 1406 | * Use the SliderMenu component instead of the Slider component to | ||
283 | 1407 | fixed value binding issues | ||
284 | 1408 | |||
285 | 1409 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 09 Dec 2014 14:16:59 +0000 | ||
286 | 1410 | |||
287 | 1411 | ubuntu-system-settings (0.3+15.04.20141202~rtm-0ubuntu1) 14.09; urgency=low | ||
288 | 1412 | |||
289 | 1413 | [ Ken VanDine ] | ||
290 | 1414 | * Refreshed ubuntu-system-settings.pot | ||
291 | 1415 | |||
292 | 1416 | [ Michael Terry ] | ||
293 | 1417 | * When the power button is held down, show the shutdown dialog like we | ||
294 | 1418 | do in the unity8 shell. (LP: #1381731) | ||
295 | 1419 | |||
296 | 1420 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 02 Dec 2014 19:41:37 +0000 | ||
297 | 1421 | |||
298 | 1422 | ubuntu-system-settings (0.3+15.04.20141112.1~rtm-0ubuntu1) 14.09; urgency=low | ||
299 | 1423 | |||
300 | 1424 | [ Ken VanDine ] | ||
301 | 1425 | * Backport fix for Switch/Check binding (LP: #1336715) (LP: #1336715) | ||
302 | 1426 | |||
303 | 1427 | [ Sebastien Bacher ] | ||
304 | 1428 | * Tweaks to try to make the section headers and titles closer to the | ||
305 | 1429 | design. Use a custom component, with tweaked margins and disabled | ||
306 | 1430 | tap effects, for that. | ||
307 | 1431 | |||
308 | 1432 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 12 Nov 2014 16:28:25 +0000 | ||
309 | 1433 | |||
310 | 1434 | ubuntu-system-settings (0.3+14.10.20141104~rtm-0ubuntu1) 14.09; urgency=low | ||
311 | 1435 | |||
312 | 1436 | [ Ken VanDine ] | ||
313 | 1437 | * [battery] don't use a colored icon (LP: #1351383) | ||
314 | 1438 | |||
315 | 1439 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 04 Nov 2014 14:38:52 +0000 | ||
316 | 1440 | |||
317 | 1441 | ubuntu-system-settings (0.3+14.10.20141103~rtm-0ubuntu1) 14.09; urgency=low | ||
318 | 1442 | |||
319 | 1443 | [ Michael Terry ] | ||
320 | 1444 | * Add a Continue button when choosing a passphrase. And fix a few | ||
321 | 1445 | other design nits with choosing a password. | ||
322 | 1446 | |||
323 | 1447 | [ Ubuntu daily release ] | ||
324 | 1448 | * New rebuild forced | ||
325 | 1449 | |||
326 | 1450 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 03 Nov 2014 19:58:15 +0000 | ||
327 | 1451 | |||
328 | 1452 | ubuntu-system-settings (0.3+14.10.20141029~rtm-0ubuntu1) 14.09; urgency=low | ||
329 | 1453 | |||
330 | 1454 | [ Ken VanDine ] | ||
331 | 1455 | * Refactored to use a singleton for UpdateManager shared in both QML | ||
332 | 1456 | and CPP. Don't load the dynamic visibility items while creating the | ||
333 | 1457 | item model, defer that to the loader. (LP: #1317007) | ||
334 | 1458 | |||
335 | 1459 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 29 Oct 2014 13:31:03 +0000 | ||
336 | 1460 | |||
337 | 1461 | ubuntu-system-settings (0.3+14.10.20141028~rtm-0ubuntu1) 14.09; urgency=low | ||
338 | 1462 | |||
339 | 1463 | [ Ken VanDine ] | ||
340 | 1464 | * Fix a typo in the HERE terms link. | ||
341 | 1465 | |||
342 | 1466 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 28 Oct 2014 14:50:00 +0000 | ||
343 | 1467 | |||
344 | 1468 | ubuntu-system-settings (0.3+14.10.20141022-0ubuntu1) utopic; urgency=low | ||
345 | 1469 | |||
346 | 1470 | [ CI bot ] | ||
347 | 1471 | * Resync trunk | ||
348 | 1472 | |||
349 | 1473 | [ Michael Zanetti ] | ||
350 | 1474 | * update code to reset launcher after launcher backend implementation | ||
351 | 1475 | was reworked (LP: #1376707) | ||
352 | 1476 | |||
353 | 1477 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 22 Oct 2014 21:34:27 +0000 | ||
354 | 1478 | |||
355 | 1479 | ubuntu-system-settings (0.3+14.10.20141021.1-0ubuntu1) utopic; urgency=low | ||
356 | 1480 | |||
357 | 1481 | [ Sebastien Bacher ] | ||
358 | 1482 | * [storage] translator comment for the string "%1 free" (LP: #1377929) | ||
359 | 1483 | * [system-update] ellipsize labels if needed (LP: #1376286) | ||
360 | 1484 | * [sound] Use the correct low icon (LP: #1376286) | ||
361 | 1485 | |||
362 | 1486 | [ Lars Uebernickel ] | ||
363 | 1487 | * notification-manager: fix issues with GVariant API usage | ||
364 | 1488 | |||
365 | 1489 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 21 Oct 2014 15:24:55 +0000 | ||
366 | 1490 | |||
367 | 1491 | ubuntu-system-settings (0.3+14.10.20141021-0ubuntu1) utopic; urgency=low | ||
368 | 1492 | |||
369 | 1493 | [ jonas-drange ] | ||
370 | 1494 | * [security/privacy] allow user to change HERE and location detection | ||
371 | 1495 | settings. (LP: #1375322) | ||
372 | 1496 | |||
373 | 1497 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 21 Oct 2014 13:23:03 +0000 | ||
374 | 1498 | |||
375 | 1499 | ubuntu-system-settings (0.3+14.10.20141017~rtm-0ubuntu1) 14.09; urgency=low | ||
376 | 1500 | |||
377 | 1501 | [ Ken VanDine ] | ||
378 | 1502 | * Updated the pot file. | ||
379 | 1503 | |||
380 | 1504 | [ jonas-drange ] | ||
381 | 1505 | * [cellular] indirectly recreate ConnectionManager interface's dbus | ||
382 | 1506 | proxy so it reports the true value of 'Powered' after flight mode | ||
383 | 1507 | (LP: #1376957) | ||
384 | 1508 | |||
385 | 1509 | [ Iain Lane ] | ||
386 | 1510 | * [sound] Make listSounds take a list of directories and list all of | ||
387 | 1511 | the files in them, instead of assuming "/custom" all the time. | ||
388 | 1512 | |||
389 | 1513 | [ Ubuntu daily release ] | ||
390 | 1514 | * New rebuild forced | ||
391 | 1515 | |||
392 | 1516 | [ Sebastien Bacher ] | ||
393 | 1517 | * [sound] list custom ringtones as well (LP: #1381528) | ||
394 | 1518 | |||
395 | 1519 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 17 Oct 2014 14:57:51 +0000 | ||
396 | 1520 | |||
397 | 1521 | ubuntu-system-settings (0.3+14.10.20141014-0ubuntu1) utopic; urgency=low | ||
398 | 1522 | |||
399 | 1523 | [ Ken VanDine ] | ||
400 | 1524 | * Add an APN editor. (LP: #1225174) | ||
401 | 1525 | |||
402 | 1526 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 14 Oct 2014 07:52:12 +0000 | ||
403 | 1527 | |||
404 | 1528 | ubuntu-system-settings (0.3+14.10.20141010-0ubuntu1) utopic; urgency=low | ||
405 | 1529 | |||
406 | 1530 | [ Michael Terry ] | ||
407 | 1531 | * Complete the unlock security screens and update a host of other | ||
408 | 1532 | small design issues. (LP: #1365034, LP: #1348362) (LP: #1365034, | ||
409 | 1533 | #1348362) | ||
410 | 1534 | |||
411 | 1535 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 10 Oct 2014 18:02:19 +0000 | ||
412 | 1536 | |||
413 | 1537 | ubuntu-system-settings (0.3+14.10.20141009-0ubuntu1) utopic; urgency=low | ||
414 | 1538 | |||
415 | 1539 | [ Diego Sarmentero ] | ||
416 | 1540 | * Improves in network backend. Detect network connection and show | ||
417 | 1541 | "Connect to the internet..." message or retry on netword detected. . | ||
418 | 1542 | * Detect account added on online accounts (LP: #1362149) | ||
419 | 1543 | |||
420 | 1544 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 09 Oct 2014 15:09:57 +0000 | ||
421 | 1545 | |||
422 | 1546 | ubuntu-system-settings (0.3+14.10.20141007-0ubuntu1) utopic; urgency=low | ||
423 | 1547 | |||
424 | 1548 | [ jonas-drange ] | ||
425 | 1549 | * [wifi/phone] dynamically chooses what SIM to use when there's only | ||
426 | 1550 | one present. (LP: #1375832) | ||
427 | 1551 | |||
428 | 1552 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 07 Oct 2014 18:21:03 +0000 | ||
429 | 1553 | |||
430 | 1554 | ubuntu-system-settings (0.3+14.10.20141003-0ubuntu1) utopic; urgency=low | ||
431 | 1555 | |||
432 | 1556 | [ Iain Lane ] | ||
433 | 1557 | * [storage/about] Use a QSharedPointer to manage freeing of the | ||
434 | 1558 | counter which we use to display all of the collected sizes at once. | ||
435 | 1559 | If the measuring process was cancelled, we were freeing it multiple | ||
436 | 1560 | times - once for each outstanding size measurement. This led to a | ||
437 | 1561 | crash. (LP: #1375988) | ||
438 | 1562 | * [security-privacy] Link with gobject, uses symbols from this | ||
439 | 1563 | library. Prevents "[…]libUbuntuSecurityPrivacyPanel.so contains an | ||
440 | 1564 | unresolvable reference to symbol | ||
441 | 1565 | g_signal_handlers_disconnect_matched: it's probably a plugin" | ||
442 | 1566 | warnings. | ||
443 | 1567 | |||
444 | 1568 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 03 Oct 2014 13:52:42 +0000 | ||
445 | 1569 | |||
446 | 1570 | ubuntu-system-settings (0.3+14.10.20141002-0ubuntu1) utopic; urgency=low | ||
447 | 1571 | |||
448 | 1572 | [ jonas-drange ] | ||
449 | 1573 | * [cellular] react to application.state changes and update potential | ||
450 | 1574 | out-of-date default SIM settings (LP: #1364103) | ||
451 | 1575 | * [wifi] let removed networks update the previous network model so | ||
452 | 1576 | that we can reuse the model (and not pop the pagestack twice, | ||
453 | 1577 | causing this ux issue) (LP: #1370389) | ||
454 | 1578 | |||
455 | 1579 | [ Sebastien Bacher ] | ||
456 | 1580 | * [location] use a flickable so the list can be scrolled (LP: | ||
457 | 1581 | #1374017) | ||
458 | 1582 | * [security] get localized application names from the trust-store (LP: | ||
459 | 1583 | #1374018) | ||
460 | 1584 | |||
461 | 1585 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 02 Oct 2014 14:05:35 +0000 | ||
462 | 1586 | |||
463 | 1587 | ubuntu-system-settings (0.3+14.10.20141001-0ubuntu1) utopic; urgency=low | ||
464 | 1588 | |||
465 | 1589 | [ Ken VanDine ] | ||
466 | 1590 | * Fixed handling of the Downloading/Installing label based on actual | ||
467 | 1591 | state. . Forward updateProgress signals for system updates. Layout | ||
468 | 1592 | fixes (LP: #1312587) | ||
469 | 1593 | * Use new splash screen (LP: #1376242) | ||
470 | 1594 | * Improved tracking download states | ||
471 | 1595 | * Use new target_build_number from system-image-dbus to determine | ||
472 | 1596 | visibility of the update notification (LP: #1355803) | ||
473 | 1597 | |||
474 | 1598 | [ CI bot ] | ||
475 | 1599 | * Resync trunk | ||
476 | 1600 | |||
477 | 1601 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 01 Oct 2014 16:01:54 +0000 | ||
478 | 1602 | |||
479 | 1603 | ubuntu-system-settings (0.3+14.10.20140926-0ubuntu1) utopic; urgency=low | ||
480 | 1604 | |||
481 | 1605 | [ Sebastien Bacher ] | ||
482 | 1606 | * [storage] use libclick rather than calling the command line (LP: | ||
483 | 1607 | #1368967) | ||
484 | 1608 | * [storage] tweaks to the disk informations, limit the free space to | ||
485 | 1609 | the user available one (excluding the system partitions), don't list | ||
486 | 1610 | the external mounts, that's described in the design and is going to | ||
487 | 1611 | require work on the categories computation to give correct values | ||
488 | 1612 | (LP: #1284247) | ||
489 | 1613 | * [about] display the free space value next to the storage label (LP: | ||
490 | 1614 | #1335144) | ||
491 | 1615 | |||
492 | 1616 | [ Albert Astals ] | ||
493 | 1617 | * Add i18n.tr | ||
494 | 1618 | |||
495 | 1619 | [ jonas-drange ] | ||
496 | 1620 | * [wifi] connect to hidden network is now a dialog (LP: #1366005) | ||
497 | 1621 | |||
498 | 1622 | [ Ken VanDine ] | ||
499 | 1623 | * Provide more keywords to make search useful (LP: #1370219) (LP: | ||
500 | 1624 | #1370219) | ||
501 | 1625 | * [background] set sourceSize in the image preview to work around an | ||
502 | 1626 | issue loading large images (LP: #1373462) | ||
503 | 1627 | |||
504 | 1628 | [ CI bot ] | ||
505 | 1629 | * Resync trunk | ||
506 | 1630 | |||
507 | 1631 | [ Mathieu Trudel-Lapierre ] | ||
508 | 1632 | * [bluetooth] Properly handle device types for connection and | ||
509 | 1633 | disconnection. (LP: #1369964) | ||
510 | 1634 | |||
511 | 1635 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 26 Sep 2014 15:32:57 +0000 | ||
512 | 1636 | |||
513 | 1637 | ubuntu-system-settings (0.3+14.10.20140925-0ubuntu1) utopic; urgency=low | ||
514 | 1638 | |||
515 | 1639 | [ Michael Terry ] | ||
516 | 1640 | * Add a translator comment for what HERE means. (LP: #1368838) (LP: | ||
517 | 1641 | #1368838) | ||
518 | 1642 | * Prevent a crash in unity8 when the wizard also crashes or stops | ||
519 | 1643 | early. (LP: #1355892) (LP: #1355892) | ||
520 | 1644 | |||
521 | 1645 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 25 Sep 2014 00:22:52 +0000 | ||
522 | 1646 | |||
523 | 1647 | ubuntu-system-settings (0.3+14.10.20140924.1-0ubuntu1) utopic; urgency=low | ||
524 | 1648 | |||
525 | 1649 | [ Michael Terry ] | ||
526 | 1650 | * Prevent the buttons of the wizard's password page from overlapping | ||
527 | 1651 | its content when the OSK appears. (LP: #1368346) (LP: #1368346) | ||
528 | 1652 | |||
529 | 1653 | [ Ken VanDine ] | ||
530 | 1654 | * Set the version information in the SystemUpdate constructor (LP: | ||
531 | 1655 | #1371810) (LP: #1371810) | ||
532 | 1656 | * [reset] Don't bail out on an isValid() check on the SystemImage | ||
533 | 1657 | QDBusInterface, the docs say isValid() may not be reliable for | ||
534 | 1658 | remote interfaces (LP: #1370815) (LP: #1370815) | ||
535 | 1659 | * Fixed reference error for count on the various device models (LP: | ||
536 | 1660 | #1362517) (LP: #1362517) | ||
537 | 1661 | * [background] Use the ContentPeerPicker to select sources for | ||
538 | 1662 | backgrounds (LP: #1356542) (LP: #1356542) | ||
539 | 1663 | |||
540 | 1664 | [ Iain Lane ] | ||
541 | 1665 | * Don't check if the timedated interface is valid before calling | ||
542 | 1666 | SetTime on it, it might have timed out and we should reactivate it | ||
543 | 1667 | in that case. | ||
544 | 1668 | * [about] Fix developerMode property to be QMLish - read & write | ||
545 | 1669 | instead of separate "read" and "toggle" properties. | ||
546 | 1670 | * [about] Don't display a frame for icons that can't be found, | ||
547 | 1671 | improving the visual appearance. Also return the correct path for | ||
548 | 1672 | click packages which use the icon theme. | ||
549 | 1673 | |||
550 | 1674 | [ Sebastien Bacher ] | ||
551 | 1675 | * [storage] handle the scope click .ini and get the correct icons (LP: | ||
552 | 1676 | #1368920) | ||
553 | 1677 | |||
554 | 1678 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 24 Sep 2014 16:47:25 +0000 | ||
555 | 1679 | |||
556 | 1680 | ubuntu-system-settings (0.3+14.10.20140924-0ubuntu1) utopic; urgency=low | ||
557 | 1681 | |||
558 | 1682 | [ Albert Astals ] | ||
559 | 1683 | * make pot | ||
560 | 1684 | |||
561 | 1685 | [ Oliver Grawert ] | ||
562 | 1686 | * fix LP: #1365903, add a watch to Developer Mode page so the page | ||
563 | 1687 | gets refreshed when going back through the page stack, also fix the | ||
564 | 1688 | page id and bounds (LP: #1365903) | ||
565 | 1689 | |||
566 | 1690 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 24 Sep 2014 11:10:54 +0000 | ||
567 | 1691 | |||
568 | 1692 | ubuntu-system-settings (0.3+14.10.20140917.1-0ubuntu2) UNRELEASED; urgency=medium | ||
569 | 1693 | |||
570 | 1694 | * Some packaging fixes | ||
571 | 1695 | - > is not a valid relationship. It should be >> | ||
572 | 1696 | - Don't recommend suru-icon-theme since we also depend on it | ||
573 | 1697 | - Bump S-V to 3.9.6 which for example allows the images we ship in | ||
574 | 1698 | /usr/lib/ | ||
575 | 1699 | - Override binary-no-manpage lintian warnings. We're not going to get man | ||
576 | 1700 | pages for u-s-s any time soon | ||
577 | 1701 | |||
578 | 1702 | -- Iain Lane <iain.lane@canonical.com> Wed, 24 Sep 2014 12:12:26 +0100 | ||
579 | 1703 | |||
580 | 1704 | ubuntu-system-settings (0.3+14.10.20140917.1-0ubuntu1) utopic; urgency=low | ||
581 | 1705 | |||
582 | 1706 | [ Ken VanDine ] | ||
583 | 1707 | * Make UpdateManager a singleton and refresh the availableUpdates | ||
584 | 1708 | count when the model updates (LP: #1325629) (LP: #1325629) | ||
585 | 1709 | |||
586 | 1710 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 17 Sep 2014 14:04:04 +0000 | ||
587 | 1711 | |||
588 | 1712 | ubuntu-system-settings (0.3+14.10.20140917-0ubuntu1) utopic; urgency=low | ||
589 | 1713 | |||
590 | 1714 | [ Ken VanDine ] | ||
591 | 1715 | * Include an icon instead of using the themed icon (LP: #1365408) (LP: | ||
592 | 1716 | #1365408) | ||
593 | 1717 | |||
594 | 1718 | [ Mathieu Trudel-Lapierre ] | ||
595 | 1719 | * [bluetooth] don't try to enable Discoverable if the device isn't | ||
596 | 1720 | powered yet. (LP: #1355904) | ||
597 | 1721 | |||
598 | 1722 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 17 Sep 2014 02:19:38 +0000 | ||
599 | 1723 | |||
600 | 1724 | ubuntu-system-settings (0.3+14.10.20140915.1-0ubuntu1) utopic; urgency=low | ||
601 | 1725 | |||
602 | 1726 | [ Ken VanDine ] | ||
603 | 1727 | * When activated by a url request for a specific panel, clear the | ||
604 | 1728 | pageStack to maintain the natural navigation instead of pushing a | ||
605 | 1729 | new page on top of a page from a the previous panel (LP: #1362025) | ||
606 | 1730 | (LP: #1362025, #1359953) | ||
607 | 1731 | |||
608 | 1732 | [ Lars Uebernickel ] | ||
609 | 1733 | * Use Icon instead of StatusIcon | ||
610 | 1734 | |||
611 | 1735 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 15 Sep 2014 23:26:16 +0000 | ||
612 | 1736 | |||
613 | 1737 | ubuntu-system-settings (0.3+14.10.20140915-0ubuntu1) utopic; urgency=low | ||
614 | 1738 | |||
615 | 1739 | [ CI bot ] | ||
616 | 1740 | * Resync trunk | ||
617 | 1741 | |||
618 | 1742 | [ John R. Lenton ] | ||
619 | 1743 | * Take the system settings push helper closer to implementing the spec | ||
620 | 1744 | at https://wiki.ubuntu.com/SoftwareUpdates#Prompting (LP: #1363972) | ||
621 | 1745 | |||
622 | 1746 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 15 Sep 2014 13:54:48 +0000 | ||
623 | 1747 | |||
624 | 1748 | ubuntu-system-settings (0.3+14.10.20140913-0ubuntu1) utopic; urgency=low | ||
625 | 1749 | |||
626 | 1750 | [ Ken VanDine ] | ||
627 | 1751 | * Don't try to tweak the bottomMargin for the OSK, it was trying to | ||
628 | 1752 | calculate it based on an undefined component so failing. It | ||
629 | 1753 | shouldn't be needed anyway. | ||
630 | 1754 | |||
631 | 1755 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Sat, 13 Sep 2014 02:46:25 +0000 | ||
632 | 1756 | |||
633 | 1757 | ubuntu-system-settings (0.3+14.10.20140912-0ubuntu1) utopic; urgency=low | ||
634 | 1758 | |||
635 | 1759 | [ jonas-drange ] | ||
636 | 1760 | * [wifi] "Other Network" -> "Connect to hidden network" (LP: #1365984) | ||
637 | 1761 | * [wifi] fix bad looking buttons in "Other Networks" panel (LP: | ||
638 | 1762 | #1362127) | ||
639 | 1763 | |||
640 | 1764 | [ Jussi Pakkanen ] | ||
641 | 1765 | * Hide entry to connect to hidden network when wifi is off. (LP: | ||
642 | 1766 | #1365960) | ||
643 | 1767 | |||
644 | 1768 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 12 Sep 2014 20:43:55 +0000 | ||
645 | 1769 | |||
646 | 1770 | ubuntu-system-settings (0.3+14.10.20140911.3-0ubuntu1) utopic; urgency=low | ||
647 | 1771 | |||
648 | 1772 | [ Ken VanDine ] | ||
649 | 1773 | * Fixed tests for the dialpad settings failing on mako | ||
650 | 1774 | * Don't call downloadUpdate when we see a system update ready, the | ||
651 | 1775 | service does that for us (LP: #1368294) (LP: #1368294) | ||
652 | 1776 | * Translate desktop file (LP: #1318008) (LP: #1318008) | ||
653 | 1777 | |||
654 | 1778 | [ Martin Pitt ] | ||
655 | 1779 | * update POT | ||
656 | 1780 | |||
657 | 1781 | [ Sebastien Bacher ] | ||
658 | 1782 | * [system-update] open the ubuntuone subpanel rather than the list | ||
659 | 1783 | (LP: #1348580) | ||
660 | 1784 | * [security-privacy] use ngettext strings when needed (LP: #1368159) | ||
661 | 1785 | * Increase vertical spacing in the settings grid (LP: #1348579) | ||
662 | 1786 | |||
663 | 1787 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 11 Sep 2014 21:08:06 +0000 | ||
664 | 1788 | |||
665 | 1789 | ubuntu-system-settings (0.3+14.10.20140911.1-0ubuntu1) utopic; urgency=low | ||
666 | 1790 | |||
667 | 1791 | [ jonas-drange ] | ||
668 | 1792 | * [background] always keep custom images, and remove press-and-hold | ||
669 | 1793 | action. (LP: #1365167) | ||
670 | 1794 | * [wifi] do not use predictive text for network name input (LP: | ||
671 | 1795 | #1365992) | ||
672 | 1796 | * [language] workaround for transition bug in keyboard layout menu | ||
673 | 1797 | (LP: #1350809) | ||
674 | 1798 | * [wifi] factory was setting the icon property, which was causing the | ||
675 | 1799 | icon to not render (LP: #1364366) | ||
676 | 1800 | |||
677 | 1801 | [ Alejandro J. Cura ] | ||
678 | 1802 | * Fixing the refreshing of the apps scope (LP: #1360369) | ||
679 | 1803 | |||
680 | 1804 | [ Sebastien Bacher ] | ||
681 | 1805 | * [sound] use the correct backend to control the keyboard sound toggle | ||
682 | 1806 | (LP: #1366208) | ||
683 | 1807 | |||
684 | 1808 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 11 Sep 2014 04:15:10 +0000 | ||
685 | 1809 | |||
686 | 1810 | ubuntu-system-settings (0.3+14.10.20140911-0ubuntu1) utopic; urgency=low | ||
687 | 1811 | |||
688 | 1812 | [ Ken VanDine ] | ||
689 | 1813 | * Don't call downloadUpdate for system updates that are already | ||
690 | 1814 | downloading (LP: #1365646) (LP: #1311219, #1365646) | ||
691 | 1815 | |||
692 | 1816 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 11 Sep 2014 00:42:18 +0000 | ||
693 | 1817 | |||
694 | 1818 | ubuntu-system-settings (0.3+14.10.20140909-0ubuntu1) utopic; urgency=low | ||
695 | 1819 | |||
696 | 1820 | [ Ken VanDine ] | ||
697 | 1821 | * Notify the user if the phone needs to be plug to power for update. | ||
698 | 1822 | |||
699 | 1823 | [ Sebastien Bacher ] | ||
700 | 1824 | * [system-update] don't draw a frame around ubuntu updates (LP: | ||
701 | 1825 | #1367136) | ||
702 | 1826 | |||
703 | 1827 | [ Mathieu Trudel-Lapierre ] | ||
704 | 1828 | * Also allow Speakers and Carkits as valid audio devices to pair. | ||
705 | 1829 | |||
706 | 1830 | [ Michael Terry ] | ||
707 | 1831 | * Allow switch from PIN code to passphrase and back using the same | ||
708 | 1832 | password. (LP: #1357043) (LP: #1357043) | ||
709 | 1833 | * Fix false-negatives from AccountsService when switching from swipe | ||
710 | 1834 | to password (LP: #1363405) (LP: #1363405) | ||
711 | 1835 | |||
712 | 1836 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 09 Sep 2014 16:40:09 +0000 | ||
713 | 1837 | |||
714 | 1838 | ubuntu-system-settings (0.3+14.10.20140908.1-0ubuntu1) utopic; urgency=low | ||
715 | 1839 | |||
716 | 1840 | [ Ricardo Salveti de Araujo ] | ||
717 | 1841 | * sound: setting default audio role for ringtone and messages | ||
718 | 1842 | |||
719 | 1843 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 08 Sep 2014 21:41:34 +0000 | ||
720 | 1844 | |||
721 | 1845 | ubuntu-system-settings (0.3+14.10.20140908-0ubuntu1) utopic; urgency=low | ||
722 | 1846 | |||
723 | 1847 | [ Michael Terry ] | ||
724 | 1848 | * Don't crash when destructing the Wizard.Utils.System plugin. This | ||
725 | 1849 | fixes the crash on wizard exit and the crash when pressing back on | ||
726 | 1850 | the HERE license. | ||
727 | 1851 | |||
728 | 1852 | [ CI bot ] | ||
729 | 1853 | * Resync trunk | ||
730 | 1854 | |||
731 | 1855 | [ Sebastien Bacher ] | ||
732 | 1856 | * [developer-mode] working scrolling and correct spacing | ||
733 | 1857 | * Use standard items for the categories and don't display dividers | ||
734 | 1858 | (LP: #1365563) | ||
735 | 1859 | * [orientation-lock] don't display a frame around the icon (LP: | ||
736 | 1860 | #1365450) | ||
737 | 1861 | |||
738 | 1862 | [ jonas-drange ] | ||
739 | 1863 | * [about/versions] create reusable component of singlevalue items that | ||
740 | 1864 | have long values (LP: #1363927) | ||
741 | 1865 | |||
742 | 1866 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 08 Sep 2014 14:58:34 +0000 | ||
743 | 1867 | |||
744 | 1868 | ubuntu-system-settings (0.3+14.10.20140905.1-0ubuntu1) utopic; urgency=low | ||
745 | 1869 | |||
746 | 1870 | [ David Barth ] | ||
747 | 1871 | * Enable location panel, display contols for authorized applications. | ||
748 | 1872 | |||
749 | 1873 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 05 Sep 2014 09:01:36 +0000 | ||
750 | 1874 | |||
751 | 1875 | ubuntu-system-settings (0.3+14.10.20140904.2-0ubuntu1) utopic; urgency=low | ||
752 | 1876 | |||
753 | 1877 | [ Ken VanDine ] | ||
754 | 1878 | * Tweak the depends for accountsservice-ubuntu-schemas to handle a "~" | ||
755 | 1879 | version | ||
756 | 1880 | |||
757 | 1881 | [ CI bot ] | ||
758 | 1882 | * Resync trunk | ||
759 | 1883 | |||
760 | 1884 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 04 Sep 2014 21:04:28 +0000 | ||
761 | 1885 | |||
762 | 1886 | ubuntu-system-settings (0.3+14.10.20140904.1-0ubuntu1) utopic; urgency=low | ||
763 | 1887 | |||
764 | 1888 | [ Guillermo Gonzalez ] | ||
765 | 1889 | * Basic unittest for the push-helper script | ||
766 | 1890 | |||
767 | 1891 | [ Mathieu Trudel-Lapierre ] | ||
768 | 1892 | * Downgrade qFatal failure to register bluetooth agent to a qCritical. | ||
769 | 1893 | |||
770 | 1894 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 04 Sep 2014 04:39:47 +0000 | ||
771 | 1895 | |||
772 | 1896 | ubuntu-system-settings (0.3+14.10.20140904-0ubuntu1) utopic; urgency=low | ||
773 | 1897 | |||
774 | 1898 | [ Andrea Cimitan ] | ||
775 | 1899 | * Various fixes for wifi wizard page (LP: #1362296) | ||
776 | 1900 | |||
777 | 1901 | [ Sebastien Bacher ] | ||
778 | 1902 | * [security] don't mark "%1" string as translatable | ||
779 | 1903 | * [security] give a translation context to the 'None' string (LP: | ||
780 | 1904 | #1362143) | ||
781 | 1905 | * [licenses] display an error when the copyright can't be read (LP: | ||
782 | 1906 | #1206150) | ||
783 | 1907 | |||
784 | 1908 | [ Michael Terry ] | ||
785 | 1909 | * Avoid another race condition when switching password types by | ||
786 | 1910 | completing all DBus operations synchronously as we exit the | ||
787 | 1911 | policykit agent. LP: 1361137 (LP: #1361137) | ||
788 | 1912 | * Fix the OSK not working on first boot. When the wizard closes, shut | ||
789 | 1913 | down maliit-server and the indicators so that unity8 can start them | ||
790 | 1914 | itself. LP: 1362679 (LP: #1362679) | ||
791 | 1915 | |||
792 | 1916 | [ jonas-drange ] | ||
793 | 1917 | * [about] print out phone numbers for dual sims as well | ||
794 | 1918 | * [about/wifi] adding mac addresses for bt and wifi, and ip for wifi | ||
795 | 1919 | (LP: #1356239) | ||
796 | 1920 | * [language] explain to the user that a reboot is necessary for the | ||
797 | 1921 | change to take effect (LP: #1240875) | ||
798 | 1922 | |||
799 | 1923 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 04 Sep 2014 00:59:05 +0000 | ||
800 | 1924 | |||
801 | 1925 | ubuntu-system-settings (0.3+14.10.20140902.2-0ubuntu1) utopic; urgency=low | ||
802 | 1926 | |||
803 | 1927 | [ Michael Terry ] | ||
804 | 1928 | * Make the HERE license optional, clearly mark it as a HERE license | ||
805 | 1929 | instead of an Ubuntu license, and connect it to the HERE backend. | ||
806 | 1930 | |||
807 | 1931 | [ CI bot ] | ||
808 | 1932 | * Resync trunk | ||
809 | 1933 | |||
810 | 1934 | [ Martin Pitt ] | ||
811 | 1935 | * POT update | ||
812 | 1936 | |||
813 | 1937 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 02 Sep 2014 23:27:15 +0000 | ||
814 | 1938 | |||
815 | 1939 | ubuntu-system-settings (0.3+14.10.20140829.2-0ubuntu1) utopic; urgency=low | ||
816 | 1940 | |||
817 | 1941 | [ Ken VanDine ] | ||
818 | 1942 | * Added setting for dialpad sounds to both the sound and phone panels. | ||
819 | 1943 | |||
820 | 1944 | [ CI bot ] | ||
821 | 1945 | * Resync trunk | ||
822 | 1946 | |||
823 | 1947 | [ Diego Sarmentero ] | ||
824 | 1948 | * Fix out of sync image download. Refresh scope after installation | ||
825 | 1949 | (LP: #1324923) | ||
826 | 1950 | |||
827 | 1951 | [ Sebastien Bacher ] | ||
828 | 1952 | * [battery] refresh the graph on a minute basis | ||
829 | 1953 | * [notifications] use normal text style and ubuntushaped icons | ||
830 | 1954 | |||
831 | 1955 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 29 Aug 2014 20:48:28 +0000 | ||
832 | 1956 | |||
833 | 1957 | ubuntu-system-settings (0.3+14.10.20140829.1-0ubuntu1) utopic; urgency=low | ||
834 | 1958 | |||
835 | 1959 | [ Michael Terry ] | ||
836 | 1960 | * When changing to swipe mode, it was possible that our policykit | ||
837 | 1961 | agent would not unregister itself, making the next attempt to change | ||
838 | 1962 | modes appear to work, but in truth fail. Also, no longer ask for a | ||
839 | 1963 | password to switch to swipe mode if policykit has a cached | ||
840 | 1964 | authentication for us. (LP: #1350381) | ||
841 | 1965 | |||
842 | 1966 | [ Sebastien Bacher ] | ||
843 | 1967 | * [security] tweak some pin locking details to match the design better | ||
844 | 1968 | |||
845 | 1969 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 29 Aug 2014 05:19:18 +0000 | ||
846 | 1970 | |||
847 | 1971 | ubuntu-system-settings (0.3+14.10.20140828.3-0ubuntu1) utopic; urgency=low | ||
848 | 1972 | |||
849 | 1973 | [ Michael Terry ] | ||
850 | 1974 | * Implement the "When locked, allow:" portion of the Security & | ||
851 | 1975 | Privacy panel, so now the user can control whether the launcher | ||
852 | 1976 | and/or indicators are available while locked. (LP: #1358340) (LP: | ||
853 | 1977 | #1358340) | ||
854 | 1978 | |||
855 | 1979 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 28 Aug 2014 18:11:51 +0000 | ||
856 | 1980 | |||
857 | 1981 | ubuntu-system-settings (0.3+14.10.20140828.2-0ubuntu1) utopic; urgency=low | ||
858 | 1982 | |||
859 | 1983 | [ Michael Terry ] | ||
860 | 1984 | * Update look and feel of wizard to more closely match the visual | ||
861 | 1985 | design. | ||
862 | 1986 | |||
863 | 1987 | [ Jussi Pakkanen ] | ||
864 | 1988 | * Minor cleanups. | ||
865 | 1989 | |||
866 | 1990 | [ Roberto Alsina ] | ||
867 | 1991 | * Don't crash the push helper in locales that have no .mo file (LP: | ||
868 | 1992 | #1357506) | ||
869 | 1993 | |||
870 | 1994 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 28 Aug 2014 13:55:40 +0000 | ||
871 | 1995 | |||
872 | 1996 | ubuntu-system-settings (0.3+14.10.20140827.3-0ubuntu1) utopic; urgency=low | ||
873 | 1997 | |||
874 | 1998 | [ Ken VanDine ] | ||
875 | 1999 | * SIM PIN lock implementation | ||
876 | 2000 | |||
877 | 2001 | [ jonas-drange ] | ||
878 | 2002 | * [main panel] add visual feedback on press | ||
879 | 2003 | * [cellular] uses modemtechnologies property from ofono to populate | ||
880 | 2004 | technology preference options (LP: #1346790) | ||
881 | 2005 | |||
882 | 2006 | [ Sebastien Bacher ] | ||
883 | 2007 | * [language] workaround inconsistent languages casing (LP: #1362123) | ||
884 | 2008 | * [background] Display the default background selected (LP: #1349329) | ||
885 | 2009 | * [storage] display translated names (LP: #1360207) | ||
886 | 2010 | * [updates] don't display animations when clicking on update rows (LP: | ||
887 | 2011 | #1360364) | ||
888 | 2012 | * [background] don't use an icon in the headerbar (LP: #1362122) | ||
889 | 2013 | |||
890 | 2014 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 27 Aug 2014 22:19:17 +0000 | ||
891 | 2015 | |||
892 | 2016 | ubuntu-system-settings (0.3+14.10.20140827.1-0ubuntu1) utopic; urgency=low | ||
893 | 2017 | |||
894 | 2018 | [ Mathieu Trudel-Lapierre ] | ||
895 | 2019 | * Fix PIN code or passcode requests by properly matching the tag for | ||
896 | 2020 | the original request. (LP: #1355152) | ||
897 | 2021 | |||
898 | 2022 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 27 Aug 2014 15:27:50 +0000 | ||
899 | 2023 | |||
900 | 2024 | ubuntu-system-settings (0.3+14.10.20140826.1-0ubuntu1) utopic; urgency=low | ||
901 | 2025 | |||
902 | 2026 | [ Martin Pitt ] | ||
903 | 2027 | * Update PO template | ||
904 | 2028 | |||
905 | 2029 | [ Sebastien Bacher ] | ||
906 | 2030 | * Include extra files for translations (LP: #1359267) | ||
907 | 2031 | |||
908 | 2032 | [ jonas-drange ] | ||
909 | 2033 | * [main panel] show rotation lock, point to correct setting | ||
910 | 2034 | |||
911 | 2035 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 26 Aug 2014 15:48:48 +0000 | ||
912 | 2036 | |||
913 | 2037 | ubuntu-system-settings (0.3+14.10.20140826-0ubuntu1) utopic; urgency=low | ||
914 | 2038 | |||
915 | 2039 | [ Ken VanDine ] | ||
916 | 2040 | * Hide sleep locks immediately setting, which isn't implemented yet | ||
917 | 2041 | (LP: #1361297) (LP: #1361297) | ||
918 | 2042 | |||
919 | 2043 | [ Sebastien Bacher ] | ||
920 | 2044 | * [system-update] rework the ui to use a column rather than anchors, | ||
921 | 2045 | the layout is quite dynamic and it should be easier to position and | ||
922 | 2046 | stack widgets this way (LP: #1343172) | ||
923 | 2047 | |||
924 | 2048 | [ Michael Terry ] | ||
925 | 2049 | * After selecting the language, update the session environment | ||
926 | 2050 | immediately and restart indicators so that their notifications (like | ||
927 | 2051 | wifi prompt) are translated. (LP: #1354325) | ||
928 | 2052 | |||
929 | 2053 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 26 Aug 2014 00:55:20 +0000 | ||
930 | 2054 | |||
931 | 2055 | ubuntu-system-settings (0.3+14.10.20140825-0ubuntu1) utopic; urgency=low | ||
932 | 2056 | |||
933 | 2057 | [ Ken VanDine ] | ||
934 | 2058 | * Added autopilot tests for security-privacy | ||
935 | 2059 | |||
936 | 2060 | [ jonas-drange ] | ||
937 | 2061 | * [phone] adding dual sim functionality to phone panel | ||
938 | 2062 | |||
939 | 2063 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 25 Aug 2014 15:19:31 +0000 | ||
940 | 2064 | |||
941 | 2065 | ubuntu-system-settings (0.3+14.10.20140822.1-0ubuntu1) utopic; urgency=low | ||
942 | 2066 | |||
943 | 2067 | [ Charles Kerr ] | ||
944 | 2068 | * In the welcome wizard, refresh the text in the 'no sim card' and | ||
945 | 2069 | 'all done' pages to match the latest from design. | ||
946 | 2070 | |||
947 | 2071 | [ Michael Terry ] | ||
948 | 2072 | * Add a location page and a terms and conditions page for the HERE | ||
949 | 2073 | service. | ||
950 | 2074 | |||
951 | 2075 | [ Ken VanDine ] | ||
952 | 2076 | * Settings for idle/lock timeout (LP: #1230345) | ||
953 | 2077 | * Added flickable to fix scrolling (LP: #1354161) | ||
954 | 2078 | |||
955 | 2079 | [ Jussi Pakkanen ] | ||
956 | 2080 | * Fix a bunch of compiler warnings. | ||
957 | 2081 | |||
958 | 2082 | [ jonas-drange ] | ||
959 | 2083 | * [cellular] displays cellular UIs based on how many SIMs are present. | ||
960 | 2084 | (LP: #1357393) | ||
961 | 2085 | |||
962 | 2086 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 22 Aug 2014 18:57:00 +0000 | ||
963 | 2087 | |||
964 | 2088 | ubuntu-system-settings (0.3+14.10.20140819.1-0ubuntu1) utopic; urgency=low | ||
965 | 2089 | |||
966 | 2090 | [ Sebastien Bacher ] | ||
967 | 2091 | * [system-updates] set flickable to null, workaround an issue with the | ||
968 | 2092 | page widget (the panel opens with a listview on top, which the page | ||
969 | 2093 | use, but then a button is added between those and that's not well | ||
970 | 2094 | handled) (LP: #1356292) | ||
971 | 2095 | |||
972 | 2096 | [ Leo Arias ] | ||
973 | 2097 | * Made the wizard security options translatable. (LP: #1357605) | ||
974 | 2098 | |||
975 | 2099 | [ jonas-drange ] | ||
976 | 2100 | * [cellular] fix bug where the ui reverts tech pref to 2G and where | ||
977 | 2101 | ofono rejects 'any' (LP: #1355053) | ||
978 | 2102 | |||
979 | 2103 | [ Ken VanDine ] | ||
980 | 2104 | * Disable predictive text for the SIM name editor, it isn't terribly | ||
981 | 2105 | useful there and currently causes the field to get blocked when the | ||
982 | 2106 | keyboard is raised. | ||
983 | 2107 | |||
984 | 2108 | [ Martin Pitt ] | ||
985 | 2109 | * Mark for using language packs. | ||
986 | 2110 | |||
987 | 2111 | [ Alberto Mardegan ] | ||
988 | 2112 | * Other App Access: get icon from click package Improve the logic for | ||
989 | 2113 | retrieving the icon. (LP: #1356938) | ||
990 | 2114 | |||
991 | 2115 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 19 Aug 2014 15:26:55 +0000 | ||
992 | 2116 | |||
993 | 2117 | ubuntu-system-settings (0.3+14.10.20140815-0ubuntu1) utopic; urgency=low | ||
994 | 2118 | |||
995 | 2119 | [ Michael Terry ] | ||
996 | 2120 | * Make the wizard properly handle devices with zero, one, or two SIM | ||
997 | 2121 | modem slots. Previously it assumed exactly one slot. (LP: #1332583) | ||
998 | 2122 | |||
999 | 2123 | [ jonas-drange ] | ||
1000 | 2124 | * [main panel] point rotation lock at new backend and add (skipped) | ||
1001 | 2125 | tests (LP: #1288332) | ||
1002 | 2126 | |||
1003 | 2127 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 15 Aug 2014 16:45:51 +0000 | ||
1004 | 2128 | |||
1005 | 2129 | >>>>>>> MERGE-SOURCE | ||
1006 | 1181 | ubuntu-system-settings (0.3+14.10.20140814.1-0ubuntu1) utopic; urgency=low | 2130 | ubuntu-system-settings (0.3+14.10.20140814.1-0ubuntu1) utopic; urgency=low |
1007 | 1182 | 2131 | ||
1008 | 1183 | [ CI bot ] | 2132 | [ CI bot ] |
1009 | 1184 | 2133 | ||
1010 | === modified file 'debian/control' | |||
1011 | --- debian/control 2015-02-17 15:32:54 +0000 | |||
1012 | +++ debian/control 2015-02-27 05:54:50 +0000 | |||
1013 | @@ -40,12 +40,16 @@ | |||
1014 | 40 | pep8, | 40 | pep8, |
1015 | 41 | python3-pep8, | 41 | python3-pep8, |
1016 | 42 | pyflakes, | 42 | pyflakes, |
1017 | 43 | <<<<<<< TREE | ||
1018 | 43 | python3, | 44 | python3, |
1019 | 44 | python3-gi, | 45 | python3-gi, |
1020 | 45 | python3-dbus, | 46 | python3-dbus, |
1021 | 46 | python3-xdg, | 47 | python3-xdg, |
1022 | 47 | gir1.2-glib-2.0 | 48 | gir1.2-glib-2.0 |
1023 | 48 | Standards-Version: 3.9.6 | 49 | Standards-Version: 3.9.6 |
1024 | 50 | ======= | ||
1025 | 51 | Standards-Version: 3.9.6 | ||
1026 | 52 | >>>>>>> MERGE-SOURCE | ||
1027 | 49 | Homepage: https://launchpad.net/ubuntu-system-settings | 53 | Homepage: https://launchpad.net/ubuntu-system-settings |
1028 | 50 | # If you aren't a member of ~system-settings-touch but need to upload packaging | 54 | # If you aren't a member of ~system-settings-touch but need to upload packaging |
1029 | 51 | # changes, just go ahead. ~system-settings-touch will notice and sync up the | 55 | # changes, just go ahead. ~system-settings-touch will notice and sync up the |
1030 | @@ -71,12 +75,18 @@ | |||
1031 | 71 | qmenumodel-qml, | 75 | qmenumodel-qml, |
1032 | 72 | qtdeclarative5-folderlistmodel-plugin, | 76 | qtdeclarative5-folderlistmodel-plugin, |
1033 | 73 | qml-module-qtmultimedia | qml-module-qtmultimedia-gles, | 77 | qml-module-qtmultimedia | qml-module-qtmultimedia-gles, |
1034 | 78 | qml-module-ubuntu-connectivity, | ||
1035 | 74 | qtdeclarative5-gsettings1.0 (>=0.1+14.10.20140801.1), | 79 | qtdeclarative5-gsettings1.0 (>=0.1+14.10.20140801.1), |
1036 | 75 | qtdeclarative5-ofono0.2 (>=0.70~), | 80 | qtdeclarative5-ofono0.2 (>=0.70~), |
1037 | 76 | qtdeclarative5-systeminfo-plugin, | 81 | qtdeclarative5-systeminfo-plugin, |
1038 | 77 | qtdeclarative5-ubuntu-content1, | 82 | qtdeclarative5-ubuntu-content1, |
1039 | 83 | <<<<<<< TREE | ||
1040 | 78 | qtdeclarative5-ubuntu-settings-components (>> 0.2), | 84 | qtdeclarative5-ubuntu-settings-components (>> 0.2), |
1041 | 79 | qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1.1347) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1.1347), | 85 | qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1.1347) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1.1347), |
1042 | 86 | ======= | ||
1043 | 87 | qtdeclarative5-ubuntu-settings-components (>> 0.2), | ||
1044 | 88 | qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1.1239) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1.1239), | ||
1045 | 89 | >>>>>>> MERGE-SOURCE | ||
1046 | 80 | suru-icon-theme, | 90 | suru-icon-theme, |
1047 | 81 | whoopsie-preferences (>= 0.9), | 91 | whoopsie-preferences (>= 0.9), |
1048 | 82 | libsystemsettings1 (= ${binary:Version}), | 92 | libsystemsettings1 (= ${binary:Version}), |
1049 | @@ -88,10 +98,15 @@ | |||
1050 | 88 | python3, | 98 | python3, |
1051 | 89 | python3-gi, | 99 | python3-gi, |
1052 | 90 | python3-dbus, | 100 | python3-dbus, |
1053 | 101 | <<<<<<< TREE | ||
1054 | 91 | python3-xdg, | 102 | python3-xdg, |
1055 | 92 | gir1.2-glib-2.0, | 103 | gir1.2-glib-2.0, |
1056 | 93 | qml-module-ubuntu-connectivity | 104 | qml-module-ubuntu-connectivity |
1057 | 94 | Recommends: ubuntu-system-settings-online-accounts, | 105 | Recommends: ubuntu-system-settings-online-accounts, |
1058 | 106 | ======= | ||
1059 | 107 | gir1.2-glib-2.0 | ||
1060 | 108 | Recommends: ubuntu-system-settings-online-accounts, | ||
1061 | 109 | >>>>>>> MERGE-SOURCE | ||
1062 | 95 | ubuntu-touch-sounds, | 110 | ubuntu-touch-sounds, |
1063 | 96 | Conflicts: ubuntu-system-settings-example | 111 | Conflicts: ubuntu-system-settings-example |
1064 | 97 | # ubuntu-push-client shipped the system settings push helper until 0.60: | 112 | # ubuntu-push-client shipped the system settings push helper until 0.60: |
1065 | @@ -102,6 +117,23 @@ | |||
1066 | 102 | Ubuntu Touch images, it's designed for phones, tablets and convergent | 117 | Ubuntu Touch images, it's designed for phones, tablets and convergent |
1067 | 103 | devices. | 118 | devices. |
1068 | 104 | 119 | ||
1069 | 120 | <<<<<<< TREE | ||
1070 | 121 | ======= | ||
1071 | 122 | Package: ubuntu-system-settings-wizard | ||
1072 | 123 | Architecture: any | ||
1073 | 124 | Depends: ${misc:Depends}, | ||
1074 | 125 | ${shlibs:Depends}, | ||
1075 | 126 | qml-module-qtsysteminfo, | ||
1076 | 127 | ubuntu-system-settings (= ${binary:Version}), | ||
1077 | 128 | unity8 (>= 8.01), | ||
1078 | 129 | Recommends: qtdeclarative5-qtmir-plugin (>= 0.4) | ||
1079 | 130 | Conflicts: ubuntu-system-settings (<< 0.3) | ||
1080 | 131 | Breaks: ubuntu-system-settings (<< 0.3) | ||
1081 | 132 | Description: Welcome Wizard for Ubuntu Touch | ||
1082 | 133 | This package contains the Welcome Wizard used on the Ubuntu Touch images, | ||
1083 | 134 | it's designed for phones, tablets and convergent devices. | ||
1084 | 135 | |||
1085 | 136 | >>>>>>> MERGE-SOURCE | ||
1086 | 105 | Package: libsystemsettings1 | 137 | Package: libsystemsettings1 |
1087 | 106 | Section: libs | 138 | Section: libs |
1088 | 107 | Architecture: any | 139 | Architecture: any |
1089 | 108 | 140 | ||
1090 | === modified file 'plugins/about/PageComponent.qml' | |||
1091 | --- plugins/about/PageComponent.qml 2015-02-23 10:08:30 +0000 | |||
1092 | +++ plugins/about/PageComponent.qml 2015-02-27 05:54:50 +0000 | |||
1093 | @@ -39,6 +39,10 @@ | |||
1094 | 39 | id: backendInfos | 39 | id: backendInfos |
1095 | 40 | } | 40 | } |
1096 | 41 | 41 | ||
1097 | 42 | StorageInfo { | ||
1098 | 43 | id: storageInfo | ||
1099 | 44 | } | ||
1100 | 45 | |||
1101 | 42 | DeviceInfo { | 46 | DeviceInfo { |
1102 | 43 | id: deviceInfos | 47 | id: deviceInfos |
1103 | 44 | } | 48 | } |
1104 | @@ -164,8 +168,13 @@ | |||
1105 | 164 | id: storageItem | 168 | id: storageItem |
1106 | 165 | objectName: "storageItem" | 169 | objectName: "storageItem" |
1107 | 166 | text: i18n.tr("Storage") | 170 | text: i18n.tr("Storage") |
1108 | 171 | <<<<<<< TREE | ||
1109 | 167 | /* TRANSLATORS: that's the free disk space, indicated in the most appropriate storage unit */ | 172 | /* TRANSLATORS: that's the free disk space, indicated in the most appropriate storage unit */ |
1110 | 168 | value: i18n.tr("%1 free").arg(Utilities.formatSize(backendInfos.getFreeSpace("/home"))) | 173 | value: i18n.tr("%1 free").arg(Utilities.formatSize(backendInfos.getFreeSpace("/home"))) |
1111 | 174 | ======= | ||
1112 | 175 | /* TRANSLATORS: that's the free disk space, indicated in the most appropriate storage unit */ | ||
1113 | 176 | value: i18n.tr("%1 free").arg(backendInfos.formatSize(storageInfo.availableDiskSpace("/home"))) | ||
1114 | 177 | >>>>>>> MERGE-SOURCE | ||
1115 | 169 | progression: true | 178 | progression: true |
1116 | 170 | onClicked: pageStack.push(Qt.resolvedUrl("Storage.qml")) | 179 | onClicked: pageStack.push(Qt.resolvedUrl("Storage.qml")) |
1117 | 171 | } | 180 | } |
1118 | 172 | 181 | ||
1119 | === modified file 'plugins/about/Storage.qml' | |||
1120 | --- plugins/about/Storage.qml 2015-02-18 15:35:11 +0000 | |||
1121 | +++ plugins/about/Storage.qml 2015-02-27 05:54:50 +0000 | |||
1122 | @@ -40,10 +40,17 @@ | |||
1123 | 40 | for (var i = 0; i < systemDrives.length; i++) { | 40 | for (var i = 0; i < systemDrives.length; i++) { |
1124 | 41 | var drive = systemDrives[i] | 41 | var drive = systemDrives[i] |
1125 | 42 | var path = backendInfo.getDevicePath(drive) | 42 | var path = backendInfo.getDevicePath(drive) |
1126 | 43 | <<<<<<< TREE | ||
1127 | 43 | /* only deal with the device's storage for now, external mounts | 44 | /* only deal with the device's storage for now, external mounts |
1128 | 44 | handling would require being smarter on the categories | 45 | handling would require being smarter on the categories |
1129 | 45 | computation as well and is not in the current design */ | 46 | computation as well and is not in the current design */ |
1130 | 46 | if (backendInfo.isInternal(drive) && | 47 | if (backendInfo.isInternal(drive) && |
1131 | 48 | ======= | ||
1132 | 49 | /* only deal with the device's storage for now, external mounts | ||
1133 | 50 | handling would require being smarter on the categories | ||
1134 | 51 | computation as well and is not in the current design */ | ||
1135 | 52 | if ((type === StorageInfo.InternalDrive) && | ||
1136 | 53 | >>>>>>> MERGE-SOURCE | ||
1137 | 47 | paths.indexOf(path) == -1 && // Haven't seen this device before | 54 | paths.indexOf(path) == -1 && // Haven't seen this device before |
1138 | 48 | path.charAt(0) === "/") { // Has a real mount point | 55 | path.charAt(0) === "/") { // Has a real mount point |
1139 | 49 | drives.push(drive) | 56 | drives.push(drive) |
1140 | @@ -61,7 +68,11 @@ | |||
1141 | 61 | } | 68 | } |
1142 | 62 | /* Limit the free space to the user available one (see bug #1374134) */ | 69 | /* Limit the free space to the user available one (see bug #1374134) */ |
1143 | 63 | property real freediskSpace: { | 70 | property real freediskSpace: { |
1144 | 71 | <<<<<<< TREE | ||
1145 | 64 | return backendInfo.getFreeSpace("/home") | 72 | return backendInfo.getFreeSpace("/home") |
1146 | 73 | ======= | ||
1147 | 74 | return storageInfo.availableDiskSpace("/home") | ||
1148 | 75 | >>>>>>> MERGE-SOURCE | ||
1149 | 65 | } | 76 | } |
1150 | 66 | 77 | ||
1151 | 67 | property real usedByUbuntu: diskSpace - | 78 | property real usedByUbuntu: diskSpace - |
1152 | 68 | 79 | ||
1153 | === modified file 'plugins/about/click.cpp' | |||
1154 | --- plugins/about/click.cpp 2014-10-31 08:34:19 +0000 | |||
1155 | +++ plugins/about/click.cpp 2015-02-27 05:54:50 +0000 | |||
1156 | @@ -43,10 +43,16 @@ | |||
1157 | 43 | * | 43 | * |
1158 | 44 | * Will set with information from the first desktop or ini file found and parsed. | 44 | * Will set with information from the first desktop or ini file found and parsed. |
1159 | 45 | */ | 45 | */ |
1160 | 46 | <<<<<<< TREE | ||
1161 | 46 | void ClickModel::populateFromDesktopOrIniFile (Click *newClick, | 47 | void ClickModel::populateFromDesktopOrIniFile (Click *newClick, |
1162 | 47 | QVariantMap hooks, | 48 | QVariantMap hooks, |
1163 | 48 | QDir directory, | 49 | QDir directory, |
1164 | 49 | QString name) | 50 | QString name) |
1165 | 51 | ======= | ||
1166 | 52 | void ClickModel::populateFromDesktopOrIniFile (Click *newClick, | ||
1167 | 53 | QVariantMap hooks, | ||
1168 | 54 | QDir directory) | ||
1169 | 55 | >>>>>>> MERGE-SOURCE | ||
1170 | 50 | { | 56 | { |
1171 | 51 | QVariantMap appHooks; | 57 | QVariantMap appHooks; |
1172 | 52 | GKeyFile *appinfo = g_key_file_new(); | 58 | GKeyFile *appinfo = g_key_file_new(); |
1173 | @@ -65,6 +71,7 @@ | |||
1174 | 65 | if (!appHooks.isEmpty() && | 71 | if (!appHooks.isEmpty() && |
1175 | 66 | (appHooks.contains("desktop") || appHooks.contains("scope")) && | 72 | (appHooks.contains("desktop") || appHooks.contains("scope")) && |
1176 | 67 | directory.exists()) { | 73 | directory.exists()) { |
1177 | 74 | <<<<<<< TREE | ||
1178 | 68 | 75 | ||
1179 | 69 | if (appHooks.contains("scope")) | 76 | if (appHooks.contains("scope")) |
1180 | 70 | { | 77 | { |
1181 | @@ -103,6 +110,50 @@ | |||
1182 | 103 | g_debug ("Desktop or ini file: %s", desktopOrIniFileName); | 110 | g_debug ("Desktop or ini file: %s", desktopOrIniFileName); |
1183 | 104 | 111 | ||
1184 | 105 | 112 | ||
1185 | 113 | ======= | ||
1186 | 114 | |||
1187 | 115 | if (appHooks.contains("scope")) | ||
1188 | 116 | { | ||
1189 | 117 | keyGroup = "ScopeConfig"; | ||
1190 | 118 | keyName = "DisplayName"; | ||
1191 | 119 | |||
1192 | 120 | QDir scopeDirectory( | ||
1193 | 121 | directory.absoluteFilePath(appHooks.value("scope", "").toString())); | ||
1194 | 122 | scopeDirectory.setNameFilters(QStringList()<<"*.ini"); | ||
1195 | 123 | |||
1196 | 124 | QStringList iniEntry(scopeDirectory.entryList()); | ||
1197 | 125 | |||
1198 | 126 | if (iniEntry.isEmpty()) | ||
1199 | 127 | goto out; | ||
1200 | 128 | |||
1201 | 129 | QFile desktopOrIniFile(scopeDirectory.absoluteFilePath(iniEntry[0])); | ||
1202 | 130 | desktopOrIniFileName = | ||
1203 | 131 | g_strdup(desktopOrIniFile.fileName().toLocal8Bit().constData()); | ||
1204 | 132 | if (!desktopOrIniFile.exists()) | ||
1205 | 133 | goto out; | ||
1206 | 134 | |||
1207 | 135 | /* replace directory so the icon is correctly loaded */ | ||
1208 | 136 | directory = scopeDirectory; | ||
1209 | 137 | } | ||
1210 | 138 | else | ||
1211 | 139 | { | ||
1212 | 140 | keyGroup = G_KEY_FILE_DESKTOP_GROUP; | ||
1213 | 141 | keyName = G_KEY_FILE_DESKTOP_KEY_NAME; | ||
1214 | 142 | |||
1215 | 143 | QFile desktopOrIniFile(directory.absoluteFilePath( | ||
1216 | 144 | appHooks.value("desktop", "undefined").toString())); | ||
1217 | 145 | |||
1218 | 146 | desktopOrIniFileName = | ||
1219 | 147 | g_strdup(desktopOrIniFile.fileName().toLocal8Bit().constData()); | ||
1220 | 148 | |||
1221 | 149 | if (!desktopOrIniFile.exists()) | ||
1222 | 150 | goto out; | ||
1223 | 151 | } | ||
1224 | 152 | |||
1225 | 153 | g_debug ("Desktop or ini file: %s", desktopOrIniFileName); | ||
1226 | 154 | |||
1227 | 155 | |||
1228 | 156 | >>>>>>> MERGE-SOURCE | ||
1229 | 106 | 157 | ||
1230 | 107 | gboolean loaded = g_key_file_load_from_file(appinfo, | 158 | gboolean loaded = g_key_file_load_from_file(appinfo, |
1231 | 108 | desktopOrIniFileName, | 159 | desktopOrIniFileName, |
1232 | @@ -189,9 +240,14 @@ | |||
1233 | 189 | 240 | ||
1234 | 190 | if (hooks.isValid()) { | 241 | if (hooks.isValid()) { |
1235 | 191 | QVariantMap allHooks(hooks.toMap()); | 242 | QVariantMap allHooks(hooks.toMap()); |
1236 | 243 | <<<<<<< TREE | ||
1237 | 192 | // The desktop or ini file contains an icon and the display name | 244 | // The desktop or ini file contains an icon and the display name |
1238 | 193 | populateFromDesktopOrIniFile(&newClick, allHooks, directory, | 245 | populateFromDesktopOrIniFile(&newClick, allHooks, directory, |
1239 | 194 | manifest.value("name", "").toString()); | 246 | manifest.value("name", "").toString()); |
1240 | 247 | ======= | ||
1241 | 248 | // The desktop or ini file contains an icon and the display name | ||
1242 | 249 | populateFromDesktopOrIniFile(&newClick, allHooks, directory); | ||
1243 | 250 | >>>>>>> MERGE-SOURCE | ||
1244 | 195 | } | 251 | } |
1245 | 196 | 252 | ||
1246 | 197 | newClick.installSize = manifest.value("installed-size", | 253 | newClick.installSize = manifest.value("installed-size", |
1247 | 198 | 254 | ||
1248 | === modified file 'plugins/about/click.h' | |||
1249 | --- plugins/about/click.h 2014-10-31 08:34:19 +0000 | |||
1250 | +++ plugins/about/click.h 2015-02-27 05:54:50 +0000 | |||
1251 | @@ -56,10 +56,16 @@ | |||
1252 | 56 | quint64 getClickSize() const; | 56 | quint64 getClickSize() const; |
1253 | 57 | 57 | ||
1254 | 58 | private: | 58 | private: |
1255 | 59 | <<<<<<< TREE | ||
1256 | 59 | void populateFromDesktopOrIniFile(Click *newClick, | 60 | void populateFromDesktopOrIniFile(Click *newClick, |
1257 | 60 | QVariantMap hooks, | 61 | QVariantMap hooks, |
1258 | 61 | QDir directory, | 62 | QDir directory, |
1259 | 62 | QString name); | 63 | QString name); |
1260 | 64 | ======= | ||
1261 | 65 | void populateFromDesktopOrIniFile(Click *newClick, | ||
1262 | 66 | QVariantMap hooks, | ||
1263 | 67 | QDir directory); | ||
1264 | 68 | >>>>>>> MERGE-SOURCE | ||
1265 | 63 | Click buildClick(QVariantMap manifest); | 69 | Click buildClick(QVariantMap manifest); |
1266 | 64 | QList<Click> buildClickList(); | 70 | QList<Click> buildClickList(); |
1267 | 65 | 71 | ||
1268 | 66 | 72 | ||
1269 | === modified file 'plugins/about/storageabout.cpp' | |||
1270 | --- plugins/about/storageabout.cpp 2015-02-18 12:06:06 +0000 | |||
1271 | +++ plugins/about/storageabout.cpp 2015-02-27 05:54:50 +0000 | |||
1272 | @@ -344,10 +344,19 @@ | |||
1273 | 344 | QString StorageAbout::getDevicePath(const QString mount_point) | 344 | QString StorageAbout::getDevicePath(const QString mount_point) |
1274 | 345 | { | 345 | { |
1275 | 346 | QString s_mount_point; | 346 | QString s_mount_point; |
1277 | 347 | GUnixMountEntry * g_mount_point = nullptr; | 347 | <<<<<<< TREE |
1278 | 348 | GUnixMountEntry * g_mount_point = nullptr; | ||
1279 | 349 | ======= | ||
1280 | 350 | |||
1281 | 351 | GUnixMountEntry * g_mount_point = nullptr; | ||
1282 | 352 | >>>>>>> MERGE-SOURCE | ||
1283 | 348 | 353 | ||
1284 | 349 | if (!mount_point.isNull() && !mount_point.isEmpty()) { | 354 | if (!mount_point.isNull() && !mount_point.isEmpty()) { |
1285 | 355 | <<<<<<< TREE | ||
1286 | 350 | g_mount_point = g_unix_mount_at(mount_point.toLocal8Bit(), nullptr); | 356 | g_mount_point = g_unix_mount_at(mount_point.toLocal8Bit(), nullptr); |
1287 | 357 | ======= | ||
1288 | 358 | g_mount_point = g_unix_mount_at(mount_point.toLocal8Bit(), nullptr); | ||
1289 | 359 | >>>>>>> MERGE-SOURCE | ||
1290 | 351 | } | 360 | } |
1291 | 352 | 361 | ||
1292 | 353 | if (g_mount_point) { | 362 | if (g_mount_point) { |
1293 | 354 | 363 | ||
1294 | === modified file 'plugins/about/storageabout.h' | |||
1295 | --- plugins/about/storageabout.h 2015-02-19 02:08:15 +0000 | |||
1296 | +++ plugins/about/storageabout.h 2015-02-27 05:54:50 +0000 | |||
1297 | @@ -91,9 +91,16 @@ | |||
1298 | 91 | READ ubuntuBuildID | 91 | READ ubuntuBuildID |
1299 | 92 | CONSTANT) | 92 | CONSTANT) |
1300 | 93 | 93 | ||
1301 | 94 | <<<<<<< TREE | ||
1302 | 94 | Q_PROPERTY(bool developerMode | 95 | Q_PROPERTY(bool developerMode |
1303 | 95 | READ getDeveloperMode | 96 | READ getDeveloperMode |
1304 | 96 | WRITE setDeveloperMode) | 97 | WRITE setDeveloperMode) |
1305 | 98 | ======= | ||
1306 | 99 | Q_PROPERTY(bool developerMode | ||
1307 | 100 | READ getDeveloperMode | ||
1308 | 101 | WRITE setDeveloperMode | ||
1309 | 102 | CONSTANT) | ||
1310 | 103 | >>>>>>> MERGE-SOURCE | ||
1311 | 97 | 104 | ||
1312 | 98 | public: | 105 | public: |
1313 | 99 | explicit StorageAbout(QObject *parent = 0); | 106 | explicit StorageAbout(QObject *parent = 0); |
1314 | 100 | 107 | ||
1315 | === modified file 'plugins/bluetooth/PageComponent.qml' | |||
1316 | --- plugins/bluetooth/PageComponent.qml 2015-02-10 11:19:53 +0000 | |||
1317 | +++ plugins/bluetooth/PageComponent.qml 2015-02-27 05:54:50 +0000 | |||
1318 | @@ -29,11 +29,16 @@ | |||
1319 | 29 | 29 | ||
1320 | 30 | ItemPage { | 30 | ItemPage { |
1321 | 31 | id: root | 31 | id: root |
1322 | 32 | <<<<<<< TREE | ||
1323 | 32 | title: i18n.tr("Bluetooth") | 33 | title: i18n.tr("Bluetooth") |
1324 | 33 | objectName: "bluetoothPage" | 34 | objectName: "bluetoothPage" |
1325 | 34 | 35 | ||
1326 | 35 | property var dialogPopupId | 36 | property var dialogPopupId |
1327 | 36 | 37 | ||
1328 | 38 | ======= | ||
1329 | 39 | title: i18n.tr("Bluetooth") | ||
1330 | 40 | |||
1331 | 41 | >>>>>>> MERGE-SOURCE | ||
1332 | 37 | UbuntuBluetoothPanel { id: backend } | 42 | UbuntuBluetoothPanel { id: backend } |
1333 | 38 | 43 | ||
1334 | 39 | Component { | 44 | Component { |
1335 | @@ -73,6 +78,7 @@ | |||
1336 | 73 | onPinCodeNeeded: { | 78 | onPinCodeNeeded: { |
1337 | 74 | var request_tag = tag | 79 | var request_tag = tag |
1338 | 75 | var popup = PopupUtils.open(providePinCodeDialog, root, {name: device.name}) | 80 | var popup = PopupUtils.open(providePinCodeDialog, root, {name: device.name}) |
1339 | 81 | <<<<<<< TREE | ||
1340 | 76 | popup.canceled.connect(function() {target.providePinCode(request_tag, false, "")}) | 82 | popup.canceled.connect(function() {target.providePinCode(request_tag, false, "")}) |
1341 | 77 | popup.provided.connect(function(pinCode) {target.providePinCode(request_tag, true, pinCode)}) | 83 | popup.provided.connect(function(pinCode) {target.providePinCode(request_tag, true, pinCode)}) |
1342 | 78 | } | 84 | } |
1343 | @@ -93,6 +99,10 @@ | |||
1344 | 93 | onPairingDone: { | 99 | onPairingDone: { |
1345 | 94 | if (root.dialogPopupId) | 100 | if (root.dialogPopupId) |
1346 | 95 | PopupUtils.close(root.dialogPopupId) | 101 | PopupUtils.close(root.dialogPopupId) |
1347 | 102 | ======= | ||
1348 | 103 | popup.canceled.connect(function() {target.providePinCode(request_tag, false, "")}) | ||
1349 | 104 | popup.provided.connect(function(pinCode) {target.providePinCode(request_tag, true, pinCode)}) | ||
1350 | 105 | >>>>>>> MERGE-SOURCE | ||
1351 | 96 | } | 106 | } |
1352 | 97 | } | 107 | } |
1353 | 98 | 108 | ||
1354 | @@ -238,6 +248,7 @@ | |||
1355 | 238 | 248 | ||
1356 | 239 | Column { | 249 | Column { |
1357 | 240 | id: connectedList | 250 | id: connectedList |
1358 | 251 | <<<<<<< TREE | ||
1359 | 241 | anchors { | 252 | anchors { |
1360 | 242 | left: parent.left | 253 | left: parent.left |
1361 | 243 | right: parent.right | 254 | right: parent.right |
1362 | @@ -262,6 +273,31 @@ | |||
1363 | 262 | } | 273 | } |
1364 | 263 | progression: true | 274 | progression: true |
1365 | 264 | } | 275 | } |
1366 | 276 | ======= | ||
1367 | 277 | anchors { | ||
1368 | 278 | left: parent.left | ||
1369 | 279 | right: parent.right | ||
1370 | 280 | } | ||
1371 | 281 | visible: bluetoothActionGroup.enabled && (connectedRepeater.count > 0) | ||
1372 | 282 | |||
1373 | 283 | Repeater { | ||
1374 | 284 | id: connectedRepeater | ||
1375 | 285 | model: backend.connectedDevices | ||
1376 | 286 | delegate: ListItem.Standard { | ||
1377 | 287 | iconSource: iconPath | ||
1378 | 288 | iconFrame: false | ||
1379 | 289 | text: getDisplayName(type, displayName) | ||
1380 | 290 | control: ActivityIndicator { | ||
1381 | 291 | visible: connection == Device.Connecting | ||
1382 | 292 | running: true | ||
1383 | 293 | } | ||
1384 | 294 | onClicked: { | ||
1385 | 295 | backend.setSelectedDevice(addressName); | ||
1386 | 296 | pageStack.push(connectedDevicePage); | ||
1387 | 297 | } | ||
1388 | 298 | progression: true | ||
1389 | 299 | } | ||
1390 | 300 | >>>>>>> MERGE-SOURCE | ||
1391 | 265 | } | 301 | } |
1392 | 266 | } | 302 | } |
1393 | 267 | 303 | ||
1394 | @@ -279,6 +315,7 @@ | |||
1395 | 279 | 315 | ||
1396 | 280 | Column { | 316 | Column { |
1397 | 281 | id: disconnectedList | 317 | id: disconnectedList |
1398 | 318 | <<<<<<< TREE | ||
1399 | 282 | anchors { | 319 | anchors { |
1400 | 283 | left: parent.left | 320 | left: parent.left |
1401 | 284 | right: parent.right | 321 | right: parent.right |
1402 | @@ -298,6 +335,27 @@ | |||
1403 | 298 | pageStack.push(connectedDevicePage); | 335 | pageStack.push(connectedDevicePage); |
1404 | 299 | } | 336 | } |
1405 | 300 | progression: true | 337 | progression: true |
1406 | 338 | ======= | ||
1407 | 339 | anchors { | ||
1408 | 340 | left: parent.left | ||
1409 | 341 | right: parent.right | ||
1410 | 342 | } | ||
1411 | 343 | visible: bluetoothActionGroup.enabled && (disconnectedRepeater.count > 0) | ||
1412 | 344 | |||
1413 | 345 | Repeater { | ||
1414 | 346 | id: disconnectedRepeater | ||
1415 | 347 | model: backend.disconnectedDevices | ||
1416 | 348 | delegate: ListItem.Standard { | ||
1417 | 349 | iconSource: iconPath | ||
1418 | 350 | iconFrame: false | ||
1419 | 351 | text: getDisplayName(type, displayName) | ||
1420 | 352 | enabled: backend.isSupportedType(type) | ||
1421 | 353 | onClicked: { | ||
1422 | 354 | backend.setSelectedDevice(addressName); | ||
1423 | 355 | pageStack.push(connectedDevicePage); | ||
1424 | 356 | } | ||
1425 | 357 | progression: true | ||
1426 | 358 | >>>>>>> MERGE-SOURCE | ||
1427 | 301 | } | 359 | } |
1428 | 302 | } | 360 | } |
1429 | 303 | } | 361 | } |
1430 | @@ -353,6 +411,7 @@ | |||
1431 | 353 | 411 | ||
1432 | 354 | Flickable { | 412 | Flickable { |
1433 | 355 | anchors.fill: parent | 413 | anchors.fill: parent |
1434 | 414 | <<<<<<< TREE | ||
1435 | 356 | contentHeight: contentItem.childrenRect.height | 415 | contentHeight: contentItem.childrenRect.height |
1436 | 357 | boundsBehavior: (contentHeight > root.height) ? | 416 | boundsBehavior: (contentHeight > root.height) ? |
1437 | 358 | Flickable.DragAndOvershootBounds : | 417 | Flickable.DragAndOvershootBounds : |
1438 | @@ -463,6 +522,117 @@ | |||
1439 | 463 | } | 522 | } |
1440 | 464 | enabled: backend.selectedDevice && backend.selectedDevice.path.length > 0 ? true : false | 523 | enabled: backend.selectedDevice && backend.selectedDevice.path.length > 0 ? true : false |
1441 | 465 | } | 524 | } |
1442 | 525 | ======= | ||
1443 | 526 | contentHeight: contentItem.childrenRect.height | ||
1444 | 527 | boundsBehavior: (contentHeight > root.height) ? | ||
1445 | 528 | Flickable.DragAndOvershootBounds : | ||
1446 | 529 | Flickable.StopAtBounds | ||
1447 | 530 | /* Set the direction to workaround https://bugreports.qt-project.org/browse/QTBUG-31905 | ||
1448 | 531 | otherwise the UI might end up in a situation where scrolling doesn't work */ | ||
1449 | 532 | flickableDirection: Flickable.VerticalFlick | ||
1450 | 533 | |||
1451 | 534 | Column { | ||
1452 | 535 | anchors { | ||
1453 | 536 | left: parent.left | ||
1454 | 537 | right: parent.right | ||
1455 | 538 | } | ||
1456 | 539 | |||
1457 | 540 | ListItem.SingleValue { | ||
1458 | 541 | text: i18n.tr("Name") | ||
1459 | 542 | value: backend.selectedDevice && | ||
1460 | 543 | backend.selectedDevice.name.length > 0 ? | ||
1461 | 544 | backend.selectedDevice.name : | ||
1462 | 545 | i18n.tr("None") | ||
1463 | 546 | } | ||
1464 | 547 | ListItem.Standard { | ||
1465 | 548 | Rectangle { | ||
1466 | 549 | color: "transparent" | ||
1467 | 550 | anchors.fill: parent | ||
1468 | 551 | anchors.topMargin: units.gu(1) | ||
1469 | 552 | anchors.leftMargin: units.gu(2) | ||
1470 | 553 | anchors.rightMargin: units.gu(2) | ||
1471 | 554 | |||
1472 | 555 | Label { | ||
1473 | 556 | anchors { | ||
1474 | 557 | top: parent.top | ||
1475 | 558 | left: parent.left | ||
1476 | 559 | topMargin: units.gu(1) | ||
1477 | 560 | } | ||
1478 | 561 | height: units.gu(3) | ||
1479 | 562 | text: i18n.tr("Type") | ||
1480 | 563 | } | ||
1481 | 564 | Image { | ||
1482 | 565 | anchors { | ||
1483 | 566 | right: deviceType.left | ||
1484 | 567 | rightMargin: units.gu(1) | ||
1485 | 568 | } | ||
1486 | 569 | height: units.gu(4) | ||
1487 | 570 | width: units.gu(4) | ||
1488 | 571 | source: backend.selectedDevice ? backend.selectedDevice.iconName : "" | ||
1489 | 572 | } | ||
1490 | 573 | Label { | ||
1491 | 574 | id: deviceType | ||
1492 | 575 | anchors { | ||
1493 | 576 | top: parent.top | ||
1494 | 577 | right: parent.right | ||
1495 | 578 | topMargin: units.gu(1) | ||
1496 | 579 | } | ||
1497 | 580 | height: units.gu(3) | ||
1498 | 581 | text: getTypeString(backend.selectedDevice ? backend.selectedDevice.type : Device.OTHER) | ||
1499 | 582 | } | ||
1500 | 583 | } | ||
1501 | 584 | } | ||
1502 | 585 | ListItem.SingleValue { | ||
1503 | 586 | text: i18n.tr("Status") | ||
1504 | 587 | value: getStatusString(backend.selectedDevice ? backend.selectedDevice.connection : Device.Disconnected) | ||
1505 | 588 | } | ||
1506 | 589 | ListItem.SingleValue { | ||
1507 | 590 | text: i18n.tr("Signal Strength") | ||
1508 | 591 | value: getSignalString(backend.selectedDevice ? backend.selectedDevice.strength : Device.None) | ||
1509 | 592 | } | ||
1510 | 593 | ListItem.Standard { | ||
1511 | 594 | id: trustedCheck | ||
1512 | 595 | text: i18n.tr("Connect automatically when detected:") | ||
1513 | 596 | control: CheckBox { | ||
1514 | 597 | property bool serverChecked: backend.selectedDevice ? backend.selectedDevice.trusted : false | ||
1515 | 598 | onServerCheckedChanged: checked = serverChecked | ||
1516 | 599 | Component.onCompleted: checked = serverChecked | ||
1517 | 600 | onTriggered: { | ||
1518 | 601 | if (backend.selectedDevice) { | ||
1519 | 602 | backend.selectedDevice.trusted = checked; | ||
1520 | 603 | } | ||
1521 | 604 | } | ||
1522 | 605 | } | ||
1523 | 606 | } | ||
1524 | 607 | ListItem.SingleControl { | ||
1525 | 608 | control: Button { | ||
1526 | 609 | text: backend.selectedDevice && (backend.selectedDevice.connection == Device.Connected || backend.selectedDevice.connection == Device.Connecting) ? i18n.tr("Disconnect") : i18n.tr("Connect") | ||
1527 | 610 | width: parent.width - units.gu(8) | ||
1528 | 611 | onClicked: { | ||
1529 | 612 | if (backend.selectedDevice | ||
1530 | 613 | && (backend.selectedDevice.connection == Device.Connected | ||
1531 | 614 | || backend.selectedDevice.connection == Device.Connecting)) { | ||
1532 | 615 | backend.disconnectDevice(); | ||
1533 | 616 | } else { | ||
1534 | 617 | backend.stopDiscovery() | ||
1535 | 618 | backend.connectDevice(backend.selectedDevice.address); | ||
1536 | 619 | } | ||
1537 | 620 | pageStack.pop(); | ||
1538 | 621 | } | ||
1539 | 622 | visible: backend.selectedDevice ? true : false | ||
1540 | 623 | } | ||
1541 | 624 | } | ||
1542 | 625 | ListItem.SingleControl { | ||
1543 | 626 | control: Button { | ||
1544 | 627 | text: i18n.tr("Forget this device") | ||
1545 | 628 | width: parent.width - units.gu(8) | ||
1546 | 629 | onClicked: { | ||
1547 | 630 | backend.removeDevice(); | ||
1548 | 631 | pageStack.pop(); | ||
1549 | 632 | } | ||
1550 | 633 | enabled: backend.selectedDevice && backend.selectedDevice.path.length > 0 ? true : false | ||
1551 | 634 | } | ||
1552 | 635 | >>>>>>> MERGE-SOURCE | ||
1553 | 466 | } | 636 | } |
1554 | 467 | } | 637 | } |
1555 | 468 | } | 638 | } |
1556 | 469 | 639 | ||
1557 | === modified file 'plugins/bluetooth/agent.cpp' | |||
1558 | --- plugins/bluetooth/agent.cpp 2015-02-04 16:32:54 +0000 | |||
1559 | +++ plugins/bluetooth/agent.cpp 2015-02-27 05:54:50 +0000 | |||
1560 | @@ -22,6 +22,10 @@ | |||
1561 | 22 | 22 | ||
1562 | 23 | #include <cassert> | 23 | #include <cassert> |
1563 | 24 | 24 | ||
1564 | 25 | <<<<<<< TREE | ||
1565 | 26 | ======= | ||
1566 | 27 | |||
1567 | 28 | >>>>>>> MERGE-SOURCE | ||
1568 | 25 | /*** | 29 | /*** |
1569 | 26 | **** | 30 | **** |
1570 | 27 | ***/ | 31 | ***/ |
1571 | 28 | 32 | ||
1572 | === modified file 'plugins/bluetooth/agent.h' | |||
1573 | === modified file 'plugins/bluetooth/agentadaptor.h' | |||
1574 | --- plugins/bluetooth/agentadaptor.h 2015-02-04 10:48:47 +0000 | |||
1575 | +++ plugins/bluetooth/agentadaptor.h 2015-02-27 05:54:50 +0000 | |||
1576 | @@ -62,7 +62,7 @@ | |||
1577 | 62 | " </interface>\n" | 62 | " </interface>\n" |
1578 | 63 | "") | 63 | "") |
1579 | 64 | public: | 64 | public: |
1581 | 65 | AgentAdaptor(QObject *parent); | 65 | explicit AgentAdaptor(QObject *parent); |
1582 | 66 | virtual ~AgentAdaptor(); | 66 | virtual ~AgentAdaptor(); |
1583 | 67 | 67 | ||
1584 | 68 | public: // PROPERTIES | 68 | public: // PROPERTIES |
1585 | 69 | 69 | ||
1586 | === modified file 'plugins/bluetooth/bluetooth.cpp' | |||
1587 | --- plugins/bluetooth/bluetooth.cpp 2015-02-10 11:19:53 +0000 | |||
1588 | +++ plugins/bluetooth/bluetooth.cpp 2015-02-27 05:54:50 +0000 | |||
1589 | @@ -39,8 +39,13 @@ | |||
1590 | 39 | { | 39 | { |
1591 | 40 | // export our Agent to handle pairing requests | 40 | // export our Agent to handle pairing requests |
1592 | 41 | new AgentAdaptor(&m_agent); | 41 | new AgentAdaptor(&m_agent); |
1593 | 42 | <<<<<<< TREE | ||
1594 | 42 | if(!m_dbus.registerObject(DBUS_AGENT_PATH, &m_agent)) | 43 | if(!m_dbus.registerObject(DBUS_AGENT_PATH, &m_agent)) |
1595 | 43 | qCritical() << "Couldn't register agent at" << DBUS_AGENT_PATH; | 44 | qCritical() << "Couldn't register agent at" << DBUS_AGENT_PATH; |
1596 | 45 | ======= | ||
1597 | 46 | if(!m_dbus.registerObject(DBUS_ADAPTER_AGENT_PATH, &m_agent)) | ||
1598 | 47 | qCritical() << "Couldn't register agent at" << DBUS_ADAPTER_AGENT_PATH; | ||
1599 | 48 | >>>>>>> MERGE-SOURCE | ||
1600 | 44 | 49 | ||
1601 | 45 | m_connectedDevices.filterOnConnections(Device::Connection::Connected | | 50 | m_connectedDevices.filterOnConnections(Device::Connection::Connected | |
1602 | 46 | Device::Connection::Connecting | | 51 | Device::Connection::Connecting | |
1603 | @@ -157,6 +162,7 @@ | |||
1604 | 157 | void Bluetooth::disconnectDevice() | 162 | void Bluetooth::disconnectDevice() |
1605 | 158 | { | 163 | { |
1606 | 159 | if (m_selectedDevice) { | 164 | if (m_selectedDevice) { |
1607 | 165 | <<<<<<< TREE | ||
1608 | 160 | auto type = m_selectedDevice->getType(); | 166 | auto type = m_selectedDevice->getType(); |
1609 | 161 | switch ((Device::Type)type) { | 167 | switch ((Device::Type)type) { |
1610 | 162 | case Device::Type::Headset: | 168 | case Device::Type::Headset: |
1611 | @@ -174,6 +180,21 @@ | |||
1612 | 174 | qWarning() << "Nothing to disconnect: Unsupported device type."; | 180 | qWarning() << "Nothing to disconnect: Unsupported device type."; |
1613 | 175 | break; | 181 | break; |
1614 | 176 | } | 182 | } |
1615 | 183 | ======= | ||
1616 | 184 | auto type = m_selectedDevice->getType(); | ||
1617 | 185 | switch ((Device::Type)type) { | ||
1618 | 186 | case Device::Type::Headset: | ||
1619 | 187 | case Device::Type::Headphones: | ||
1620 | 188 | case Device::Type::OtherAudio: | ||
1621 | 189 | case Device::Type::Speakers: | ||
1622 | 190 | case Device::Type::Carkit: | ||
1623 | 191 | m_selectedDevice->disconnect(Device::ConnectionMode::Audio); | ||
1624 | 192 | break; | ||
1625 | 193 | default: | ||
1626 | 194 | qWarning() << "Nothing to disconnect: Unsupported device type."; | ||
1627 | 195 | break; | ||
1628 | 196 | } | ||
1629 | 197 | >>>>>>> MERGE-SOURCE | ||
1630 | 177 | } else { | 198 | } else { |
1631 | 178 | qWarning() << "No selected device to disconnect"; | 199 | qWarning() << "No selected device to disconnect"; |
1632 | 179 | } | 200 | } |
1633 | @@ -191,6 +212,7 @@ | |||
1634 | 191 | } | 212 | } |
1635 | 192 | 213 | ||
1636 | 193 | type = device->getType(); | 214 | type = device->getType(); |
1637 | 215 | <<<<<<< TREE | ||
1638 | 194 | switch (type) { | 216 | switch (type) { |
1639 | 195 | case Device::Type::Headset: | 217 | case Device::Type::Headset: |
1640 | 196 | case Device::Type::Headphones: | 218 | case Device::Type::Headphones: |
1641 | @@ -207,12 +229,26 @@ | |||
1642 | 207 | qWarning() << "Nothing to connect: Unsupported device type."; | 229 | qWarning() << "Nothing to connect: Unsupported device type."; |
1643 | 208 | return; | 230 | return; |
1644 | 209 | } | 231 | } |
1645 | 232 | ======= | ||
1646 | 233 | switch (type) { | ||
1647 | 234 | case Device::Type::Headset: | ||
1648 | 235 | case Device::Type::Headphones: | ||
1649 | 236 | case Device::Type::OtherAudio: | ||
1650 | 237 | case Device::Type::Speakers: | ||
1651 | 238 | case Device::Type::Carkit: | ||
1652 | 239 | connMode = Device::ConnectionMode::Audio; | ||
1653 | 240 | break; | ||
1654 | 241 | default: | ||
1655 | 242 | qWarning() << "Nothing to connect: Unsupported device type."; | ||
1656 | 243 | return; | ||
1657 | 244 | } | ||
1658 | 245 | >>>>>>> MERGE-SOURCE | ||
1659 | 210 | 246 | ||
1660 | 211 | if (device->isTrusted()) { | 247 | if (device->isTrusted()) { |
1661 | 212 | device->connect(connMode); | 248 | device->connect(connMode); |
1662 | 213 | } else { | 249 | } else { |
1663 | 214 | m_devices.addConnectAfterPairing(address, connMode); | 250 | m_devices.addConnectAfterPairing(address, connMode); |
1665 | 215 | m_devices.createDevice(address); | 251 | m_devices.createDevice(address, &m_agent); |
1666 | 216 | } | 252 | } |
1667 | 217 | } | 253 | } |
1668 | 218 | 254 | ||
1669 | 219 | 255 | ||
1670 | === modified file 'plugins/bluetooth/bluetooth.h' | |||
1671 | --- plugins/bluetooth/bluetooth.h 2015-02-10 11:19:53 +0000 | |||
1672 | +++ plugins/bluetooth/bluetooth.h 2015-02-27 05:54:50 +0000 | |||
1673 | @@ -48,8 +48,12 @@ | |||
1674 | 48 | NOTIFY selectedDeviceChanged) | 48 | NOTIFY selectedDeviceChanged) |
1675 | 49 | 49 | ||
1676 | 50 | Q_PROPERTY (QObject * agent | 50 | Q_PROPERTY (QObject * agent |
1677 | 51 | <<<<<<< TREE | ||
1678 | 51 | READ getAgent | 52 | READ getAgent |
1679 | 52 | CONSTANT) | 53 | CONSTANT) |
1680 | 54 | ======= | ||
1681 | 55 | READ getAgent) | ||
1682 | 56 | >>>>>>> MERGE-SOURCE | ||
1683 | 53 | 57 | ||
1684 | 54 | Q_PROPERTY (bool powered | 58 | Q_PROPERTY (bool powered |
1685 | 55 | READ isPowered | 59 | READ isPowered |
1686 | 56 | 60 | ||
1687 | === modified file 'plugins/bluetooth/dbus-shared.h' | |||
1688 | --- plugins/bluetooth/dbus-shared.h 2013-09-23 02:55:58 +0000 | |||
1689 | +++ plugins/bluetooth/dbus-shared.h 2015-02-27 05:54:50 +0000 | |||
1690 | @@ -21,6 +21,7 @@ | |||
1691 | 21 | #define USS_DBUS_SHARED_H | 21 | #define USS_DBUS_SHARED_H |
1692 | 22 | 22 | ||
1693 | 23 | #define DBUS_AGENT_PATH "/com/canonical/SettingsBluetoothAgent" | 23 | #define DBUS_AGENT_PATH "/com/canonical/SettingsBluetoothAgent" |
1694 | 24 | #define DBUS_ADAPTER_AGENT_PATH "/com/canonical/SettingsBluetoothAgent/adapteragent" | ||
1695 | 24 | #define DBUS_AGENT_CAPABILITY "DisplayYesNo" | 25 | #define DBUS_AGENT_CAPABILITY "DisplayYesNo" |
1696 | 25 | 26 | ||
1697 | 26 | #endif // USS_DBUS_SHARED_H | 27 | #endif // USS_DBUS_SHARED_H |
1698 | 27 | 28 | ||
1699 | === modified file 'plugins/bluetooth/device.cpp' | |||
1700 | === modified file 'plugins/bluetooth/device.h' | |||
1701 | === modified file 'plugins/bluetooth/devicemodel.cpp' | |||
1702 | --- plugins/bluetooth/devicemodel.cpp 2015-02-18 15:13:40 +0000 | |||
1703 | +++ plugins/bluetooth/devicemodel.cpp 2015-02-27 05:54:50 +0000 | |||
1704 | @@ -194,6 +194,12 @@ | |||
1705 | 194 | connect(&m_discoverableTimer, SIGNAL(timeout()), this, SLOT(slotEnableDiscoverable())); | 194 | connect(&m_discoverableTimer, SIGNAL(timeout()), this, SLOT(slotEnableDiscoverable())); |
1706 | 195 | m_discoverableTimer.start(1000); | 195 | m_discoverableTimer.start(1000); |
1707 | 196 | 196 | ||
1708 | 197 | // With the agent registered on the bus, make it known by the adapter | ||
1709 | 198 | QDBusReply<void > reply = m_bluezAdapter->call("RegisterAgent", | ||
1710 | 199 | qVariantFromValue(QDBusObjectPath(DBUS_ADAPTER_AGENT_PATH)), | ||
1711 | 200 | QString(DBUS_AGENT_CAPABILITY)); | ||
1712 | 201 | if (!reply.isValid()) | ||
1713 | 202 | qWarning() << "Error registering agent for the default adapter:" << reply.error(); | ||
1714 | 197 | } | 203 | } |
1715 | 198 | } | 204 | } |
1716 | 199 | 205 | ||
1717 | @@ -462,12 +468,20 @@ | |||
1718 | 462 | call->deleteLater(); | 468 | call->deleteLater(); |
1719 | 463 | } | 469 | } |
1720 | 464 | 470 | ||
1722 | 465 | void DeviceModel::createDevice (const QString &address) | 471 | void DeviceModel::createDevice (const QString &address, QObject *agent) |
1723 | 466 | { | 472 | { |
1724 | 467 | if (m_bluezAdapter) { | 473 | if (m_bluezAdapter) { |
1725 | 474 | QString agent_path(DBUS_AGENT_PATH); | ||
1726 | 475 | agent_path.append("/"); | ||
1727 | 476 | agent_path.append(address); | ||
1728 | 477 | agent_path.replace(":", "_"); | ||
1729 | 478 | |||
1730 | 479 | if(!m_dbus.registerObject(agent_path, agent)) | ||
1731 | 480 | qCritical() << "Couldn't register agent at" << agent_path; | ||
1732 | 481 | |||
1733 | 468 | QDBusPendingCall pcall = m_bluezAdapter->asyncCall("CreatePairedDevice", | 482 | QDBusPendingCall pcall = m_bluezAdapter->asyncCall("CreatePairedDevice", |
1734 | 469 | address, | 483 | address, |
1736 | 470 | qVariantFromValue(QDBusObjectPath(DBUS_AGENT_PATH)), | 484 | qVariantFromValue(QDBusObjectPath(agent_path)), |
1737 | 471 | QString(DBUS_AGENT_CAPABILITY)); | 485 | QString(DBUS_AGENT_CAPABILITY)); |
1738 | 472 | 486 | ||
1739 | 473 | QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall, this); | 487 | QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall, this); |
1740 | @@ -541,6 +555,7 @@ | |||
1741 | 541 | 555 | ||
1742 | 542 | switch (role) { | 556 | switch (role) { |
1743 | 543 | case Qt::DisplayRole: | 557 | case Qt::DisplayRole: |
1744 | 558 | <<<<<<< TREE | ||
1745 | 544 | displayName = device->getName(); | 559 | displayName = device->getName(); |
1746 | 545 | 560 | ||
1747 | 546 | if (displayName.isEmpty()) | 561 | if (displayName.isEmpty()) |
1748 | @@ -550,6 +565,17 @@ | |||
1749 | 550 | displayName.append("…"); | 565 | displayName.append("…"); |
1750 | 551 | 566 | ||
1751 | 552 | ret = displayName; | 567 | ret = displayName; |
1752 | 568 | ======= | ||
1753 | 569 | displayName = device->getName(); | ||
1754 | 570 | |||
1755 | 571 | if (displayName.isEmpty()) | ||
1756 | 572 | displayName = device->getAddress(); | ||
1757 | 573 | |||
1758 | 574 | if (!device->isPaired()) | ||
1759 | 575 | displayName.append("…"); | ||
1760 | 576 | |||
1761 | 577 | ret = displayName; | ||
1762 | 578 | >>>>>>> MERGE-SOURCE | ||
1763 | 553 | break; | 579 | break; |
1764 | 554 | 580 | ||
1765 | 555 | case IconRole: | 581 | case IconRole: |
1766 | 556 | 582 | ||
1767 | === modified file 'plugins/bluetooth/devicemodel.h' | |||
1768 | --- plugins/bluetooth/devicemodel.h 2014-08-11 09:18:12 +0000 | |||
1769 | +++ plugins/bluetooth/devicemodel.h 2015-02-27 05:54:50 +0000 | |||
1770 | @@ -69,7 +69,7 @@ | |||
1771 | 69 | bool isDiscovering() const { return m_isDiscovering; } | 69 | bool isDiscovering() const { return m_isDiscovering; } |
1772 | 70 | bool isDiscoverable() const { return m_isDiscoverable; } | 70 | bool isDiscoverable() const { return m_isDiscoverable; } |
1773 | 71 | void addConnectAfterPairing(const QString &address, Device::ConnectionMode mode); | 71 | void addConnectAfterPairing(const QString &address, Device::ConnectionMode mode); |
1775 | 72 | void createDevice(const QString &address); | 72 | void createDevice(const QString &address, QObject *agent); |
1776 | 73 | void removeDevice(const QString &path); | 73 | void removeDevice(const QString &path); |
1777 | 74 | void stopDiscovery(); | 74 | void stopDiscovery(); |
1778 | 75 | void startDiscovery(); | 75 | void startDiscovery(); |
1779 | 76 | 76 | ||
1780 | === modified file 'plugins/cellular/Components/DataMultiSim.qml' | |||
1781 | --- plugins/cellular/Components/DataMultiSim.qml 2015-01-20 12:23:34 +0000 | |||
1782 | +++ plugins/cellular/Components/DataMultiSim.qml 2015-02-27 05:54:50 +0000 | |||
1783 | @@ -35,12 +35,20 @@ | |||
1784 | 35 | } | 35 | } |
1785 | 36 | 36 | ||
1786 | 37 | height: childrenRect.height | 37 | height: childrenRect.height |
1787 | 38 | <<<<<<< TREE | ||
1788 | 38 | 39 | ||
1789 | 39 | SettingsItemTitle { text: i18n.tr("Cellular data:") } | 40 | SettingsItemTitle { text: i18n.tr("Cellular data:") } |
1790 | 41 | ======= | ||
1791 | 42 | >>>>>>> MERGE-SOURCE | ||
1792 | 40 | 43 | ||
1793 | 41 | ListItem.ItemSelector { | 44 | ListItem.ItemSelector { |
1794 | 42 | id: use | 45 | id: use |
1796 | 43 | objectName: "data" | 46 | <<<<<<< TREE |
1797 | 47 | objectName: "data" | ||
1798 | 48 | ======= | ||
1799 | 49 | objectName: "data" | ||
1800 | 50 | text: i18n.tr("Cellular data:") | ||
1801 | 51 | >>>>>>> MERGE-SOURCE | ||
1802 | 44 | expanded: true | 52 | expanded: true |
1803 | 45 | model: { | 53 | model: { |
1804 | 46 | // create a model of 'off' and all sim paths | 54 | // create a model of 'off' and all sim paths |
1805 | 47 | 55 | ||
1806 | === modified file 'plugins/cellular/Components/DefaultSim.qml' | |||
1807 | === modified file 'plugins/cellular/Components/NoSim.qml' | |||
1808 | --- plugins/cellular/Components/NoSim.qml 2015-02-13 09:50:19 +0000 | |||
1809 | +++ plugins/cellular/Components/NoSim.qml 2015-02-27 05:54:50 +0000 | |||
1810 | @@ -1,3 +1,4 @@ | |||
1811 | 1 | <<<<<<< TREE | ||
1812 | 1 | /* | 2 | /* |
1813 | 2 | * Copyright (C) 2014 Canonical Ltd | 3 | * Copyright (C) 2014 Canonical Ltd |
1814 | 3 | * | 4 | * |
1815 | @@ -48,3 +49,49 @@ | |||
1816 | 48 | wrapMode: Text.WordWrap | 49 | wrapMode: Text.WordWrap |
1817 | 49 | } | 50 | } |
1818 | 50 | } | 51 | } |
1819 | 52 | ======= | ||
1820 | 53 | /* | ||
1821 | 54 | * Copyright (C) 2014 Canonical Ltd | ||
1822 | 55 | * | ||
1823 | 56 | * This program is free software: you can redistribute it and/or modify | ||
1824 | 57 | * it under the terms of the GNU General Public License version 3 as | ||
1825 | 58 | * published by the Free Software Foundation. | ||
1826 | 59 | * | ||
1827 | 60 | * This program is distributed in the hope that it will be useful, | ||
1828 | 61 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1829 | 62 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
1830 | 63 | * GNU General Public License for more details. | ||
1831 | 64 | * | ||
1832 | 65 | * You should have received a copy of the GNU General Public License | ||
1833 | 66 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
1834 | 67 | * | ||
1835 | 68 | * Authors: | ||
1836 | 69 | * Jonas G. Drange <jonas.drange@canonical.com> | ||
1837 | 70 | * | ||
1838 | 71 | */ | ||
1839 | 72 | import QtQuick 2.0 | ||
1840 | 73 | import Ubuntu.Components 0.1 | ||
1841 | 74 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
1842 | 75 | |||
1843 | 76 | Column { | ||
1844 | 77 | |||
1845 | 78 | objectName: "noSim" | ||
1846 | 79 | |||
1847 | 80 | ListItem.Standard { | ||
1848 | 81 | text: i18n.tr("Cellular data:") | ||
1849 | 82 | enabled: false | ||
1850 | 83 | control: Switch { | ||
1851 | 84 | checked: false | ||
1852 | 85 | } | ||
1853 | 86 | } | ||
1854 | 87 | |||
1855 | 88 | ListItem.Standard { | ||
1856 | 89 | text: i18n.tr("Data roaming") | ||
1857 | 90 | enabled: false | ||
1858 | 91 | showDivider: false | ||
1859 | 92 | control: Switch { | ||
1860 | 93 | checked: false | ||
1861 | 94 | } | ||
1862 | 95 | } | ||
1863 | 96 | } | ||
1864 | 97 | >>>>>>> MERGE-SOURCE | ||
1865 | 51 | 98 | ||
1866 | === modified file 'plugins/cellular/Components/RadioSingleSim.qml' | |||
1867 | --- plugins/cellular/Components/RadioSingleSim.qml 2015-01-21 20:44:20 +0000 | |||
1868 | +++ plugins/cellular/Components/RadioSingleSim.qml 2015-02-27 05:54:50 +0000 | |||
1869 | @@ -1,3 +1,4 @@ | |||
1870 | 1 | <<<<<<< TREE | ||
1871 | 1 | /* | 2 | /* |
1872 | 2 | * Copyright (C) 2014 Canonical Ltd | 3 | * Copyright (C) 2014 Canonical Ltd |
1873 | 3 | * | 4 | * |
1874 | @@ -89,3 +90,92 @@ | |||
1875 | 89 | } | 90 | } |
1876 | 90 | } | 91 | } |
1877 | 91 | } | 92 | } |
1878 | 93 | ======= | ||
1879 | 94 | /* | ||
1880 | 95 | * Copyright (C) 2014 Canonical Ltd | ||
1881 | 96 | * | ||
1882 | 97 | * This program is free software: you can redistribute it and/or modify | ||
1883 | 98 | * it under the terms of the GNU General Public License version 3 as | ||
1884 | 99 | * published by the Free Software Foundation. | ||
1885 | 100 | * | ||
1886 | 101 | * This program is distributed in the hope that it will be useful, | ||
1887 | 102 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1888 | 103 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
1889 | 104 | * GNU General Public License for more details. | ||
1890 | 105 | * | ||
1891 | 106 | * You should have received a copy of the GNU General Public License | ||
1892 | 107 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
1893 | 108 | * | ||
1894 | 109 | * Authors: | ||
1895 | 110 | * Jonas G. Drange <jonas.drange@canonical.com> | ||
1896 | 111 | * | ||
1897 | 112 | */ | ||
1898 | 113 | import QtQuick 2.0 | ||
1899 | 114 | import Ubuntu.Components 0.1 | ||
1900 | 115 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
1901 | 116 | |||
1902 | 117 | Column { | ||
1903 | 118 | id: radioSingleSim | ||
1904 | 119 | height: childrenRect.height | ||
1905 | 120 | |||
1906 | 121 | property bool enabled: sim.radioSettings.technologyPreference !== "" | ||
1907 | 122 | |||
1908 | 123 | ListItem.ItemSelector { | ||
1909 | 124 | id: selector | ||
1910 | 125 | showDivider: false | ||
1911 | 126 | expanded: true | ||
1912 | 127 | |||
1913 | 128 | // an empty string is not a valid preference, which means | ||
1914 | 129 | // we disregard the interace and disable the selector | ||
1915 | 130 | enabled: parent.enabled | ||
1916 | 131 | model: sim.radioSettings.modemTechnologies | ||
1917 | 132 | delegate: OptionSelectorDelegate { | ||
1918 | 133 | objectName: sim.path + "_radio_" + modelData | ||
1919 | 134 | text: sim.techToString(modelData) | ||
1920 | 135 | showDivider: false | ||
1921 | 136 | } | ||
1922 | 137 | selectedIndex: | ||
1923 | 138 | sim.radioSettings.technologyPreference !== "" ? | ||
1924 | 139 | model.indexOf(sim.radioSettings.technologyPreference) : -1 | ||
1925 | 140 | |||
1926 | 141 | onDelegateClicked: { | ||
1927 | 142 | if (model[index] === 'umts_enable') { | ||
1928 | 143 | sim.radioSettings.technologyPreference = 'umts'; | ||
1929 | 144 | radioSingleSim.parent.umtsModemChanged(sim, sim.connMan.powered ? sim.path : ""); | ||
1930 | 145 | sim.mtkSettings.has3G = true; | ||
1931 | 146 | } else { | ||
1932 | 147 | sim.radioSettings.technologyPreference = model[index]; | ||
1933 | 148 | } | ||
1934 | 149 | } | ||
1935 | 150 | |||
1936 | 151 | Connections { | ||
1937 | 152 | target: sim.radioSettings | ||
1938 | 153 | |||
1939 | 154 | onTechnologyPreferenceChanged: selector.selectedIndex = | ||
1940 | 155 | sim.radioSettings.modemTechnologies.indexOf(preference) | ||
1941 | 156 | |||
1942 | 157 | onModemTechnologiesChanged: { | ||
1943 | 158 | if ((technologies.indexOf('umts') === -1) | ||
1944 | 159 | && (sim.mtkSettings.has3G === false)) { | ||
1945 | 160 | selector.model = sim.addUmtsEnableToModel(technologies); | ||
1946 | 161 | } else { | ||
1947 | 162 | selector.model = technologies; | ||
1948 | 163 | } | ||
1949 | 164 | selector.selectedIndex = sim.radioSettings.technologyPreference !== "" ? | ||
1950 | 165 | selector.model.indexOf(sim.radioSettings.technologyPreference) : -1 | ||
1951 | 166 | } | ||
1952 | 167 | ignoreUnknownSignals: true | ||
1953 | 168 | } | ||
1954 | 169 | |||
1955 | 170 | Component.onCompleted: { | ||
1956 | 171 | if ((sim.radioSettings.modemTechnologies.indexOf('umts') === -1) | ||
1957 | 172 | && (sim.mtkSettings.has3G === false)) { | ||
1958 | 173 | selector.model = sim.addUmtsEnableToModel( | ||
1959 | 174 | sim.radioSettings.modemTechnologies); | ||
1960 | 175 | } else { | ||
1961 | 176 | selector.model = sim.radioSettings.modemTechnologies; | ||
1962 | 177 | } | ||
1963 | 178 | } | ||
1964 | 179 | } | ||
1965 | 180 | } | ||
1966 | 181 | >>>>>>> MERGE-SOURCE | ||
1967 | 92 | 182 | ||
1968 | === modified file 'plugins/cellular/Components/SimEditor.qml' | |||
1969 | --- plugins/cellular/Components/SimEditor.qml 2014-10-31 18:14:35 +0000 | |||
1970 | +++ plugins/cellular/Components/SimEditor.qml 2015-02-27 05:54:50 +0000 | |||
1971 | @@ -68,6 +68,7 @@ | |||
1972 | 68 | } | 68 | } |
1973 | 69 | ] | 69 | ] |
1974 | 70 | 70 | ||
1975 | 71 | <<<<<<< TREE | ||
1976 | 71 | NumberAnimation { | 72 | NumberAnimation { |
1977 | 72 | id: scrollerAnimation | 73 | id: scrollerAnimation |
1978 | 73 | duration: UbuntuAnimation.SnapDuration | 74 | duration: UbuntuAnimation.SnapDuration |
1979 | @@ -86,6 +87,29 @@ | |||
1980 | 86 | } | 87 | } |
1981 | 87 | 88 | ||
1982 | 88 | SettingsItemTitle { text: i18n.tr("Edit SIM Name") } | 89 | SettingsItemTitle { text: i18n.tr("Edit SIM Name") } |
1983 | 90 | ======= | ||
1984 | 91 | NumberAnimation { | ||
1985 | 92 | id: scrollerAnimation | ||
1986 | 93 | duration: UbuntuAnimation.SnapDuration | ||
1987 | 94 | easing: UbuntuAnimation.StandardEasing | ||
1988 | 95 | target: root.flickable | ||
1989 | 96 | property: "contentY" | ||
1990 | 97 | } | ||
1991 | 98 | |||
1992 | 99 | function openedEditor () { | ||
1993 | 100 | var flickable = scrollerAnimation.target; | ||
1994 | 101 | var maxFlick = Math.max(0, flickable.contentHeight - root.height); | ||
1995 | 102 | scrollerAnimation.from = flickable.contentY; | ||
1996 | 103 | scrollerAnimation.to = Math.min(y, maxFlick) - units.gu(9); // header | ||
1997 | 104 | scrollerAnimation.start(); | ||
1998 | 105 | nameField.forceActiveFocus(); | ||
1999 | 106 | } | ||
2000 | 107 | |||
2001 | 108 | ListItem.Standard { | ||
2002 | 109 | id: std | ||
2003 | 110 | text: i18n.tr("Edit SIM Name") | ||
2004 | 111 | } | ||
2005 | 112 | >>>>>>> MERGE-SOURCE | ||
2006 | 89 | 113 | ||
2007 | 90 | ListItem.ExpandablesColumn { | 114 | ListItem.ExpandablesColumn { |
2008 | 91 | anchors { | 115 | anchors { |
2009 | 92 | 116 | ||
2010 | === modified file 'plugins/cellular/CustomApnEditor.qml' | |||
2011 | --- plugins/cellular/CustomApnEditor.qml 2015-02-16 14:02:22 +0000 | |||
2012 | +++ plugins/cellular/CustomApnEditor.qml 2015-02-27 05:54:50 +0000 | |||
2013 | @@ -1,3 +1,4 @@ | |||
2014 | 1 | <<<<<<< TREE | ||
2015 | 1 | /* | 2 | /* |
2016 | 2 | * This file is part of system-settings | 3 | * This file is part of system-settings |
2017 | 3 | * | 4 | * |
2018 | @@ -323,3 +324,330 @@ | |||
2019 | 323 | } // the contents | 324 | } // the contents |
2020 | 324 | } // the flickable | 325 | } // the flickable |
2021 | 325 | } | 326 | } |
2022 | 327 | ======= | ||
2023 | 328 | /* | ||
2024 | 329 | * This file is part of system-settings | ||
2025 | 330 | * | ||
2026 | 331 | * Copyright (C) 2014 Canonical Ltd. | ||
2027 | 332 | * | ||
2028 | 333 | * Contact: Pat McGowan <pat.mcgowan@canonical.com> | ||
2029 | 334 | * | ||
2030 | 335 | * This program is free software: you can redistribute it and/or modify it | ||
2031 | 336 | * under the terms of the GNU General Public License version 3, as published | ||
2032 | 337 | * by the Free Software Foundation. | ||
2033 | 338 | * | ||
2034 | 339 | * This program is distributed in the hope that it will be useful, but | ||
2035 | 340 | * WITHOUT ANY WARRANTY; without even the implied warranties of | ||
2036 | 341 | * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR | ||
2037 | 342 | * PURPOSE. See the GNU General Public License for more details. | ||
2038 | 343 | * | ||
2039 | 344 | * You should have received a copy of the GNU General Public License along | ||
2040 | 345 | * with this program. If not, see <http://www.gnu.org/licenses/>. | ||
2041 | 346 | */ | ||
2042 | 347 | |||
2043 | 348 | import QtQuick 2.0 | ||
2044 | 349 | import QtQuick.Layouts 1.1 | ||
2045 | 350 | import SystemSettings 1.0 | ||
2046 | 351 | import Ubuntu.Components 1.1 | ||
2047 | 352 | import Ubuntu.Components.ListItems 1.0 as ListItem | ||
2048 | 353 | |||
2049 | 354 | ItemPage { | ||
2050 | 355 | objectName: "customapnPage" | ||
2051 | 356 | id: root | ||
2052 | 357 | |||
2053 | 358 | // "internet" or "mms" | ||
2054 | 359 | property var type | ||
2055 | 360 | |||
2056 | 361 | // dict of "type" : ctx | ||
2057 | 362 | property var contexts; | ||
2058 | 363 | |||
2059 | 364 | /// work around LP(#1361919) | ||
2060 | 365 | property var activateCb; | ||
2061 | 366 | |||
2062 | 367 | QtObject { | ||
2063 | 368 | id: d | ||
2064 | 369 | property var typeText : type === "internet" ? i18n.tr("Internet") : i18n.tr("MMS") | ||
2065 | 370 | property bool isMms : type === "mms" | ||
2066 | 371 | |||
2067 | 372 | property bool isValid : false | ||
2068 | 373 | |||
2069 | 374 | function validateFields() { | ||
2070 | 375 | if (apnName.text === "") { | ||
2071 | 376 | isValid = false; | ||
2072 | 377 | return | ||
2073 | 378 | } | ||
2074 | 379 | if (isMms) { | ||
2075 | 380 | if (mmsc.text === "") { | ||
2076 | 381 | isValid = false; | ||
2077 | 382 | return; | ||
2078 | 383 | } | ||
2079 | 384 | /// @todo validate proxy | ||
2080 | 385 | /// @todo force port to be integer and validate it's value | ||
2081 | 386 | } | ||
2082 | 387 | |||
2083 | 388 | // @todo the rest | ||
2084 | 389 | isValid = true; | ||
2085 | 390 | } | ||
2086 | 391 | } | ||
2087 | 392 | |||
2088 | 393 | //TRANSLATORS: %1 is either i18n.tr("Internet") or i18n.tr("MMS") | ||
2089 | 394 | title: i18n.tr("Custom %1 APN").arg(d.typeText) | ||
2090 | 395 | |||
2091 | 396 | // workaround of getting the following error on startup: | ||
2092 | 397 | // WARNING - ... : QML Page: Binding loop detected for property "flickable" | ||
2093 | 398 | flickable: null | ||
2094 | 399 | Component.onCompleted: { | ||
2095 | 400 | flickable: scrollWidget | ||
2096 | 401 | |||
2097 | 402 | var ctx; | ||
2098 | 403 | if (d.isMms) { | ||
2099 | 404 | ctx = contexts["mms"]; | ||
2100 | 405 | if (ctx === undefined) { | ||
2101 | 406 | // @bug LP(:#1362795) | ||
2102 | 407 | return; | ||
2103 | 408 | } | ||
2104 | 409 | } else { | ||
2105 | 410 | ctx = contexts["internet"] | ||
2106 | 411 | } | ||
2107 | 412 | |||
2108 | 413 | apnName.text = ctx.accessPointName; | ||
2109 | 414 | userName.text = ctx.username; | ||
2110 | 415 | pword.text = ctx.password; | ||
2111 | 416 | mmsc.text = ctx.messageCenter; | ||
2112 | 417 | var proxyText = ctx.messageProxy.split(":"); | ||
2113 | 418 | proxy.text = proxyText[0] !== undefined ? proxyText[0] : ""; | ||
2114 | 419 | port.text = proxyText[1] !== undefined ? proxyText[1] : ""; | ||
2115 | 420 | /// @todo protocol values | ||
2116 | 421 | |||
2117 | 422 | if (d.isMms) { | ||
2118 | 423 | /// @todo disabled for now | ||
2119 | 424 | doBoth.checked = false; | ||
2120 | 425 | return; | ||
2121 | 426 | var internetApn = contexts["internet"] | ||
2122 | 427 | if (ctx.accessPointName === internetApn.accessPointName && | ||
2123 | 428 | ctx.username == internetApn.username && | ||
2124 | 429 | ctx.password == internetApn.password | ||
2125 | 430 | /* auth + procol */) { | ||
2126 | 431 | doBoth.checked = true; | ||
2127 | 432 | } | ||
2128 | 433 | else | ||
2129 | 434 | doBoth.checked = false; | ||
2130 | 435 | } | ||
2131 | 436 | } | ||
2132 | 437 | |||
2133 | 438 | Flickable { | ||
2134 | 439 | id: scrollWidget | ||
2135 | 440 | anchors { | ||
2136 | 441 | top: parent.top | ||
2137 | 442 | left: parent.left | ||
2138 | 443 | right: parent.right | ||
2139 | 444 | bottom: parent.bottom | ||
2140 | 445 | margins: units.gu(2) | ||
2141 | 446 | } | ||
2142 | 447 | contentWidth: parent.width | ||
2143 | 448 | clip: true | ||
2144 | 449 | contentHeight: theContents.height | ||
2145 | 450 | boundsBehavior: (contentHeight > height) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds | ||
2146 | 451 | flickableDirection: Flickable.VerticalFlick | ||
2147 | 452 | |||
2148 | 453 | ColumnLayout { | ||
2149 | 454 | id: theContents | ||
2150 | 455 | anchors { | ||
2151 | 456 | left: parent.left | ||
2152 | 457 | right: parent.right | ||
2153 | 458 | } | ||
2154 | 459 | spacing: units.gu(2) | ||
2155 | 460 | |||
2156 | 461 | ListItem.Standard { | ||
2157 | 462 | id: sameSwitch | ||
2158 | 463 | anchors { | ||
2159 | 464 | left: parent.left | ||
2160 | 465 | right: parent.right | ||
2161 | 466 | } | ||
2162 | 467 | /// @todo disable for now | ||
2163 | 468 | //visible: d.isMms | ||
2164 | 469 | visible: false | ||
2165 | 470 | text: i18n.tr("Same APN as for Internet") | ||
2166 | 471 | control: Switch { | ||
2167 | 472 | id: doBoth | ||
2168 | 473 | checked: false | ||
2169 | 474 | anchors.verticalCenter: parent.verticalCenter | ||
2170 | 475 | onClicked: { | ||
2171 | 476 | if (checked) { | ||
2172 | 477 | var internetApn = contexts["internet"] | ||
2173 | 478 | apnName.text = internetApn.accessPointName; | ||
2174 | 479 | userName.text = internetApn.username; | ||
2175 | 480 | pword.text = internetApn.password; | ||
2176 | 481 | } | ||
2177 | 482 | } | ||
2178 | 483 | } | ||
2179 | 484 | } | ||
2180 | 485 | |||
2181 | 486 | GridLayout { | ||
2182 | 487 | id: theGrid | ||
2183 | 488 | columns: 2 | ||
2184 | 489 | columnSpacing: units.gu(1) | ||
2185 | 490 | rowSpacing: units.gu(1) | ||
2186 | 491 | anchors{ | ||
2187 | 492 | right: parent.right | ||
2188 | 493 | left:parent.left | ||
2189 | 494 | } | ||
2190 | 495 | |||
2191 | 496 | Label { | ||
2192 | 497 | //TRANSLATORS: %1 is either i18n.tr("Internet") or i18n.tr("MMS") | ||
2193 | 498 | text: i18n.tr("%1 APN").arg(d.typeText) | ||
2194 | 499 | } | ||
2195 | 500 | TextField { | ||
2196 | 501 | id: apnName | ||
2197 | 502 | enabled: !doBoth.checked | ||
2198 | 503 | onTextChanged: d.validateFields() | ||
2199 | 504 | inputMethodHints: Qt.ImhUrlCharactersOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | ||
2200 | 505 | } | ||
2201 | 506 | |||
2202 | 507 | Label { | ||
2203 | 508 | text: i18n.tr("MMSC") | ||
2204 | 509 | visible: d.isMms | ||
2205 | 510 | } | ||
2206 | 511 | TextField { | ||
2207 | 512 | id: mmsc | ||
2208 | 513 | visible: d.isMms | ||
2209 | 514 | onTextChanged: d.validateFields() | ||
2210 | 515 | inputMethodHints: Qt.ImhUrlCharactersOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | ||
2211 | 516 | } | ||
2212 | 517 | Label { | ||
2213 | 518 | text: i18n.tr("Proxy") | ||
2214 | 519 | visible: d.isMms | ||
2215 | 520 | } | ||
2216 | 521 | TextField { | ||
2217 | 522 | id: proxy | ||
2218 | 523 | visible: d.isMms | ||
2219 | 524 | onTextChanged: d.validateFields() | ||
2220 | 525 | inputMethodHints: Qt.ImhUrlCharactersOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | ||
2221 | 526 | } | ||
2222 | 527 | Label { | ||
2223 | 528 | text: "Port" | ||
2224 | 529 | visible: d.isMms | ||
2225 | 530 | } | ||
2226 | 531 | TextField { | ||
2227 | 532 | id: port | ||
2228 | 533 | visible: d.isMms | ||
2229 | 534 | maximumLength: 4 | ||
2230 | 535 | onTextChanged: d.validateFields() | ||
2231 | 536 | inputMethodHints: Qt.ImhDigitsOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | ||
2232 | 537 | } | ||
2233 | 538 | |||
2234 | 539 | Label { | ||
2235 | 540 | text: i18n.tr("Username") | ||
2236 | 541 | } | ||
2237 | 542 | TextField { | ||
2238 | 543 | id: userName | ||
2239 | 544 | enabled: !doBoth.checked | ||
2240 | 545 | inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | ||
2241 | 546 | } | ||
2242 | 547 | |||
2243 | 548 | Label { | ||
2244 | 549 | text: i18n.tr("Password") | ||
2245 | 550 | } | ||
2246 | 551 | TextField { | ||
2247 | 552 | id: pword | ||
2248 | 553 | enabled: !doBoth.checked | ||
2249 | 554 | inputMethodHints: Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | ||
2250 | 555 | } | ||
2251 | 556 | /// @todo support for ipv6 will be added after RTM | ||
2252 | 557 | } | ||
2253 | 558 | |||
2254 | 559 | Item { | ||
2255 | 560 | id: buttonRectangle | ||
2256 | 561 | |||
2257 | 562 | height: cancelButton.height + units.gu(2) | ||
2258 | 563 | |||
2259 | 564 | anchors { | ||
2260 | 565 | left: parent.left | ||
2261 | 566 | right: parent.right | ||
2262 | 567 | } | ||
2263 | 568 | |||
2264 | 569 | Button { | ||
2265 | 570 | id: cancelButton | ||
2266 | 571 | |||
2267 | 572 | text: i18n.tr("Cancel") | ||
2268 | 573 | |||
2269 | 574 | anchors { | ||
2270 | 575 | left: parent.left | ||
2271 | 576 | right: parent.horizontalCenter | ||
2272 | 577 | bottom: parent.bottom | ||
2273 | 578 | topMargin: units.gu(1) | ||
2274 | 579 | rightMargin: units.gu(1) | ||
2275 | 580 | bottomMargin: units.gu(1) | ||
2276 | 581 | } | ||
2277 | 582 | |||
2278 | 583 | onClicked: { | ||
2279 | 584 | pageStack.pop() | ||
2280 | 585 | } | ||
2281 | 586 | } | ||
2282 | 587 | |||
2283 | 588 | Button { | ||
2284 | 589 | id: confirmButton | ||
2285 | 590 | |||
2286 | 591 | text: d.isMms ? i18n.tr("Save") : i18n.tr("Activate") | ||
2287 | 592 | |||
2288 | 593 | anchors { | ||
2289 | 594 | left: parent.horizontalCenter | ||
2290 | 595 | right: parent.right | ||
2291 | 596 | bottom: parent.bottom | ||
2292 | 597 | topMargin: units.gu(1) | ||
2293 | 598 | leftMargin: units.gu(1) | ||
2294 | 599 | rightMargin: units.gu(4) | ||
2295 | 600 | bottomMargin: units.gu(1) | ||
2296 | 601 | } | ||
2297 | 602 | |||
2298 | 603 | enabled: d.isValid; | ||
2299 | 604 | |||
2300 | 605 | onClicked: { | ||
2301 | 606 | var ctx; | ||
2302 | 607 | if (d.isMms) | ||
2303 | 608 | ctx = contexts["mms"]; | ||
2304 | 609 | else | ||
2305 | 610 | ctx = contexts["internet"]; | ||
2306 | 611 | |||
2307 | 612 | /// @bug LP(:#1362795) | ||
2308 | 613 | if (d.isMms && ctx === undefined) { | ||
2309 | 614 | var mmsData = ({}) | ||
2310 | 615 | mmsData["accessPointName"] = apnName.text; | ||
2311 | 616 | mmsData["username"] = userName.text; | ||
2312 | 617 | mmsData["password"] = pword.text; | ||
2313 | 618 | mmsData["messageCenter"] = mmsc.text | ||
2314 | 619 | var proxyValue = ""; | ||
2315 | 620 | if (proxy.text !== "") { | ||
2316 | 621 | proxyValue = proxy.text; | ||
2317 | 622 | if (port.text !== "") | ||
2318 | 623 | proxyValue = proxyValue + ":" + port.text; | ||
2319 | 624 | } | ||
2320 | 625 | mmsData["messageProxy"] = proxyValue; | ||
2321 | 626 | activateCb("mms", undefined, mmsData); | ||
2322 | 627 | pageStack.pop(); | ||
2323 | 628 | return; | ||
2324 | 629 | } | ||
2325 | 630 | ctx.accessPointName = apnName.text; | ||
2326 | 631 | ctx.username = userName.text; | ||
2327 | 632 | ctx.password = pword.text; | ||
2328 | 633 | if (d.isMms) { | ||
2329 | 634 | ctx.messageCenter = mmsc.text; | ||
2330 | 635 | var proxyValue = ""; | ||
2331 | 636 | if (proxy.text !== "") { | ||
2332 | 637 | proxyValue = proxy.text; | ||
2333 | 638 | if (port.text !== "") | ||
2334 | 639 | proxyValue = proxyValue + ":" + port.text; | ||
2335 | 640 | } | ||
2336 | 641 | ctx.messageProxy = proxyValue | ||
2337 | 642 | } | ||
2338 | 643 | /// @todo map protocol values | ||
2339 | 644 | |||
2340 | 645 | activateCb(ctx.type, ctx.contextPath); | ||
2341 | 646 | pageStack.pop(); | ||
2342 | 647 | } | ||
2343 | 648 | } | ||
2344 | 649 | } // item for buttons | ||
2345 | 650 | } // the contents | ||
2346 | 651 | } // the flickable | ||
2347 | 652 | } | ||
2348 | 653 | >>>>>>> MERGE-SOURCE | ||
2349 | 326 | 654 | ||
2350 | === modified file 'plugins/language/DisplayLanguage.qml' | |||
2351 | === modified file 'plugins/language/PageComponent.qml' | |||
2352 | --- plugins/language/PageComponent.qml 2014-11-04 12:08:12 +0000 | |||
2353 | +++ plugins/language/PageComponent.qml 2015-02-27 05:54:50 +0000 | |||
2354 | @@ -61,6 +61,7 @@ | |||
2355 | 61 | SpellChecking {} | 61 | SpellChecking {} |
2356 | 62 | } | 62 | } |
2357 | 63 | 63 | ||
2358 | 64 | <<<<<<< TREE | ||
2359 | 64 | Component { | 65 | Component { |
2360 | 65 | id: rebootNecessaryNotification | 66 | id: rebootNecessaryNotification |
2361 | 66 | 67 | ||
2362 | @@ -76,6 +77,22 @@ | |||
2363 | 76 | } | 77 | } |
2364 | 77 | } | 78 | } |
2365 | 78 | 79 | ||
2366 | 80 | ======= | ||
2367 | 81 | Component { | ||
2368 | 82 | id: rebootNecessaryNotification | ||
2369 | 83 | |||
2370 | 84 | RebootNecessary { | ||
2371 | 85 | |||
2372 | 86 | onReboot: { | ||
2373 | 87 | plugin.reboot(); | ||
2374 | 88 | } | ||
2375 | 89 | onRevert: { | ||
2376 | 90 | plugin.currentLanguage = to; | ||
2377 | 91 | } | ||
2378 | 92 | } | ||
2379 | 93 | } | ||
2380 | 94 | |||
2381 | 95 | >>>>>>> MERGE-SOURCE | ||
2382 | 79 | GSettings { | 96 | GSettings { |
2383 | 80 | id: settings | 97 | id: settings |
2384 | 81 | 98 | ||
2385 | 82 | 99 | ||
2386 | === modified file 'plugins/notifications/PageComponent.qml' | |||
2387 | === modified file 'plugins/phone/MultiSim.qml' | |||
2388 | --- plugins/phone/MultiSim.qml 2014-10-31 18:16:35 +0000 | |||
2389 | +++ plugins/phone/MultiSim.qml 2015-02-27 05:54:50 +0000 | |||
2390 | @@ -1,3 +1,4 @@ | |||
2391 | 1 | <<<<<<< TREE | ||
2392 | 1 | /* | 2 | /* |
2393 | 2 | * Copyright (C) 2014 Canonical Ltd | 3 | * Copyright (C) 2014 Canonical Ltd |
2394 | 3 | * | 4 | * |
2395 | @@ -130,3 +131,140 @@ | |||
2396 | 130 | } | 131 | } |
2397 | 131 | 132 | ||
2398 | 132 | } | 133 | } |
2399 | 134 | ======= | ||
2400 | 135 | /* | ||
2401 | 136 | * Copyright (C) 2014 Canonical Ltd | ||
2402 | 137 | * | ||
2403 | 138 | * This program is free software: you can redistribute it and/or modify | ||
2404 | 139 | * it under the terms of the GNU General Public License version 3 as | ||
2405 | 140 | * published by the Free Software Foundation. | ||
2406 | 141 | * | ||
2407 | 142 | * This program is distributed in the hope that it will be useful, | ||
2408 | 143 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
2409 | 144 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
2410 | 145 | * GNU General Public License for more details. | ||
2411 | 146 | * | ||
2412 | 147 | * You should have received a copy of the GNU General Public License | ||
2413 | 148 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
2414 | 149 | * | ||
2415 | 150 | * Authors: | ||
2416 | 151 | * Ken Vandine <ken.vandine@canonical.com> | ||
2417 | 152 | * Jonas G. Drange <jonas.drange@canonical.com> | ||
2418 | 153 | * | ||
2419 | 154 | */ | ||
2420 | 155 | import QtQuick 2.0 | ||
2421 | 156 | import GSettings 1.0 | ||
2422 | 157 | import Ubuntu.Components 1.1 | ||
2423 | 158 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
2424 | 159 | |||
2425 | 160 | Column { | ||
2426 | 161 | |||
2427 | 162 | property var sims | ||
2428 | 163 | |||
2429 | 164 | ListItem.Standard { | ||
2430 | 165 | text: sims[0].title | ||
2431 | 166 | } | ||
2432 | 167 | |||
2433 | 168 | ListItem.Standard { | ||
2434 | 169 | objectName: "callFwdSim1" | ||
2435 | 170 | text: i18n.tr("Call forwarding") | ||
2436 | 171 | progression: true | ||
2437 | 172 | onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), { | ||
2438 | 173 | sim: sims[0], | ||
2439 | 174 | headerTitle: sims[0].title | ||
2440 | 175 | }) | ||
2441 | 176 | } | ||
2442 | 177 | |||
2443 | 178 | ListItem.Standard { | ||
2444 | 179 | objectName: "callWaitSim1" | ||
2445 | 180 | text: i18n.tr("Call waiting") | ||
2446 | 181 | progression: true | ||
2447 | 182 | onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), { | ||
2448 | 183 | sim: sims[0], | ||
2449 | 184 | headerTitle: sims[0].title | ||
2450 | 185 | }) | ||
2451 | 186 | } | ||
2452 | 187 | |||
2453 | 188 | ListItem.Standard { | ||
2454 | 189 | objectName: "simServicesSim1" | ||
2455 | 190 | text: i18n.tr("Services") | ||
2456 | 191 | progression: true | ||
2457 | 192 | enabled: sims[0].simMng.present | ||
2458 | 193 | onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"), { | ||
2459 | 194 | carrierString: sims[0].netReg.name, | ||
2460 | 195 | sim: sims[0].simMng, | ||
2461 | 196 | headerTitle: sims[0].title | ||
2462 | 197 | }) | ||
2463 | 198 | } | ||
2464 | 199 | |||
2465 | 200 | ListItem.Divider {} | ||
2466 | 201 | |||
2467 | 202 | ListItem.Standard { | ||
2468 | 203 | text: sims[1].title | ||
2469 | 204 | } | ||
2470 | 205 | |||
2471 | 206 | ListItem.Standard { | ||
2472 | 207 | objectName: "callFwdSim2" | ||
2473 | 208 | text: i18n.tr("Call forwarding") | ||
2474 | 209 | progression: true | ||
2475 | 210 | onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), { | ||
2476 | 211 | sim: sims[1], | ||
2477 | 212 | headerTitle: sims[1].title | ||
2478 | 213 | }) | ||
2479 | 214 | } | ||
2480 | 215 | |||
2481 | 216 | ListItem.Standard { | ||
2482 | 217 | objectName: "callWaitSim2" | ||
2483 | 218 | text: i18n.tr("Call waiting") | ||
2484 | 219 | progression: true | ||
2485 | 220 | onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), { | ||
2486 | 221 | sim: sims[1], | ||
2487 | 222 | headerTitle: sims[1].title | ||
2488 | 223 | }) | ||
2489 | 224 | } | ||
2490 | 225 | |||
2491 | 226 | ListItem.Standard { | ||
2492 | 227 | objectName: "simServicesSim2" | ||
2493 | 228 | text: i18n.tr("Services") | ||
2494 | 229 | progression: true | ||
2495 | 230 | enabled: sims[1].simMng.present | ||
2496 | 231 | onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"), { | ||
2497 | 232 | carrierString: sims[1].netReg.name, | ||
2498 | 233 | sim: sims[1].simMng, | ||
2499 | 234 | headerTitle: sims[1].title | ||
2500 | 235 | }) | ||
2501 | 236 | } | ||
2502 | 237 | |||
2503 | 238 | |||
2504 | 239 | GSettings { | ||
2505 | 240 | id: phoneSettings | ||
2506 | 241 | schema.id: "com.ubuntu.phone" | ||
2507 | 242 | Component.onCompleted: { | ||
2508 | 243 | // set default names | ||
2509 | 244 | var simNames = phoneSettings.simNames; | ||
2510 | 245 | var m0 = sims[0].path | ||
2511 | 246 | var m1 = sims[1].path | ||
2512 | 247 | if (!simNames[m0]) { | ||
2513 | 248 | simNames[m0] = "SIM 1"; | ||
2514 | 249 | } | ||
2515 | 250 | if (!simNames[m1]) { | ||
2516 | 251 | simNames[m1] = "SIM 2"; | ||
2517 | 252 | } | ||
2518 | 253 | phoneSettings.simNames = simNames; | ||
2519 | 254 | } | ||
2520 | 255 | } | ||
2521 | 256 | |||
2522 | 257 | Binding { | ||
2523 | 258 | target: sims[0] | ||
2524 | 259 | property: "name" | ||
2525 | 260 | value: phoneSettings.simNames[modemsSorted[0]] | ||
2526 | 261 | } | ||
2527 | 262 | |||
2528 | 263 | Binding { | ||
2529 | 264 | target: sims[1] | ||
2530 | 265 | property: "name" | ||
2531 | 266 | value: phoneSettings.simNames[modemsSorted[1]] | ||
2532 | 267 | } | ||
2533 | 268 | |||
2534 | 269 | } | ||
2535 | 270 | >>>>>>> MERGE-SOURCE | ||
2536 | 133 | 271 | ||
2537 | === modified file 'plugins/phone/PageComponent.qml' | |||
2538 | --- plugins/phone/PageComponent.qml 2015-01-29 18:26:44 +0000 | |||
2539 | +++ plugins/phone/PageComponent.qml 2015-02-27 05:54:50 +0000 | |||
2540 | @@ -76,6 +76,7 @@ | |||
2541 | 76 | Flickable { | 76 | Flickable { |
2542 | 77 | id: flick | 77 | id: flick |
2543 | 78 | anchors.fill: parent | 78 | anchors.fill: parent |
2544 | 79 | <<<<<<< TREE | ||
2545 | 79 | contentWidth: parent.width | 80 | contentWidth: parent.width |
2546 | 80 | contentHeight: contentItem.childrenRect.height | 81 | contentHeight: contentItem.childrenRect.height |
2547 | 81 | boundsBehavior: (contentHeight > root.height) ? | 82 | boundsBehavior: (contentHeight > root.height) ? |
2548 | @@ -101,6 +102,33 @@ | |||
2549 | 101 | } | 102 | } |
2550 | 102 | text: i18n.tr("Dialpad tones") | 103 | text: i18n.tr("Dialpad tones") |
2551 | 103 | } | 104 | } |
2552 | 105 | ======= | ||
2553 | 106 | contentWidth: parent.width | ||
2554 | 107 | contentHeight: contentItem.childrenRect.height | ||
2555 | 108 | boundsBehavior: (contentHeight > root.height) ? | ||
2556 | 109 | Flickable.DragAndOvershootBounds : Flickable.StopAtBounds | ||
2557 | 110 | |||
2558 | 111 | Column { | ||
2559 | 112 | anchors { left: parent.left; right: parent.right } | ||
2560 | 113 | |||
2561 | 114 | Loader { | ||
2562 | 115 | id: loader | ||
2563 | 116 | anchors { left: parent.left; right: parent.right } | ||
2564 | 117 | } | ||
2565 | 118 | |||
2566 | 119 | ListItem.Divider {} | ||
2567 | 120 | |||
2568 | 121 | ListItem.Standard { | ||
2569 | 122 | control: Switch { | ||
2570 | 123 | objectName: "dialpadSounds" | ||
2571 | 124 | property bool serverChecked: soundPlugin.dialpadSoundsEnabled | ||
2572 | 125 | onServerCheckedChanged: checked = serverChecked | ||
2573 | 126 | Component.onCompleted: checked = serverChecked | ||
2574 | 127 | onTriggered: soundPlugin.dialpadSoundsEnabled = checked | ||
2575 | 128 | } | ||
2576 | 129 | text: i18n.tr("Dialpad sounds") | ||
2577 | 130 | } | ||
2578 | 131 | >>>>>>> MERGE-SOURCE | ||
2579 | 104 | } | 132 | } |
2580 | 105 | } | 133 | } |
2581 | 106 | } | 134 | } |
2582 | 107 | 135 | ||
2583 | === modified file 'plugins/reset/ResetLauncherHome.qml' | |||
2584 | === modified file 'plugins/security-privacy/LockSecurity.qml' | |||
2585 | --- plugins/security-privacy/LockSecurity.qml 2015-02-09 15:46:27 +0000 | |||
2586 | +++ plugins/security-privacy/LockSecurity.qml 2015-02-27 05:54:50 +0000 | |||
2587 | @@ -202,6 +202,24 @@ | |||
2588 | 202 | UbuntuSecurityPrivacyPanel.Passcode | 202 | UbuntuSecurityPrivacyPanel.Passcode |
2589 | 203 | } | 203 | } |
2590 | 204 | 204 | ||
2591 | 205 | /* Using bindings since it is, according to documentation, | ||
2592 | 206 | impossible to unset both validator and maximumLength properties */ | ||
2593 | 207 | Binding { | ||
2594 | 208 | target: currentInput | ||
2595 | 209 | property: "validator" | ||
2596 | 210 | value: passcodeValidator | ||
2597 | 211 | when: changeSecurityDialog.oldMethod === | ||
2598 | 212 | UbuntuSecurityPrivacyPanel.Passcode | ||
2599 | 213 | } | ||
2600 | 214 | |||
2601 | 215 | Binding { | ||
2602 | 216 | target: currentInput | ||
2603 | 217 | property: "maximumLength" | ||
2604 | 218 | value: 4 | ||
2605 | 219 | when: changeSecurityDialog.oldMethod === | ||
2606 | 220 | UbuntuSecurityPrivacyPanel.Passcode | ||
2607 | 221 | } | ||
2608 | 222 | |||
2609 | 205 | Label { | 223 | Label { |
2610 | 206 | id: incorrect | 224 | id: incorrect |
2611 | 207 | text: "" | 225 | text: "" |
2612 | @@ -243,6 +261,7 @@ | |||
2613 | 243 | UbuntuSecurityPrivacyPanel.Passcode || | 261 | UbuntuSecurityPrivacyPanel.Passcode || |
2614 | 244 | changeSecurityDialog.newMethod === | 262 | changeSecurityDialog.newMethod === |
2615 | 245 | UbuntuSecurityPrivacyPanel.Passphrase | 263 | UbuntuSecurityPrivacyPanel.Passphrase |
2616 | 264 | <<<<<<< TREE | ||
2617 | 246 | onTextChanged: { displayMismatchWarning() } | 265 | onTextChanged: { displayMismatchWarning() } |
2618 | 247 | } | 266 | } |
2619 | 248 | 267 | ||
2620 | @@ -262,6 +281,26 @@ | |||
2621 | 262 | value: 4 | 281 | value: 4 |
2622 | 263 | when: changeSecurityDialog.newMethod === | 282 | when: changeSecurityDialog.newMethod === |
2623 | 264 | UbuntuSecurityPrivacyPanel.Passcode | 283 | UbuntuSecurityPrivacyPanel.Passcode |
2624 | 284 | ======= | ||
2625 | 285 | } | ||
2626 | 286 | |||
2627 | 287 | /* Using bindings since it is, according to documentation, | ||
2628 | 288 | impossible to unset both validator and maximumLength properties */ | ||
2629 | 289 | Binding { | ||
2630 | 290 | target: newInput | ||
2631 | 291 | property: "validator" | ||
2632 | 292 | value: passcodeValidator | ||
2633 | 293 | when: changeSecurityDialog.newMethod === | ||
2634 | 294 | UbuntuSecurityPrivacyPanel.Passcode | ||
2635 | 295 | } | ||
2636 | 296 | |||
2637 | 297 | Binding { | ||
2638 | 298 | target: newInput | ||
2639 | 299 | property: "maximumLength" | ||
2640 | 300 | value: 4 | ||
2641 | 301 | when: changeSecurityDialog.newMethod === | ||
2642 | 302 | UbuntuSecurityPrivacyPanel.Passcode | ||
2643 | 303 | >>>>>>> MERGE-SOURCE | ||
2644 | 265 | } | 304 | } |
2645 | 266 | 305 | ||
2646 | 267 | Label { | 306 | Label { |
2647 | @@ -319,6 +358,24 @@ | |||
2648 | 319 | UbuntuSecurityPrivacyPanel.Passcode | 358 | UbuntuSecurityPrivacyPanel.Passcode |
2649 | 320 | } | 359 | } |
2650 | 321 | 360 | ||
2651 | 361 | /* Using bindings since it is, according to documentation, | ||
2652 | 362 | impossible to unset both validator and maximumLength properties */ | ||
2653 | 363 | Binding { | ||
2654 | 364 | target: confirmInput | ||
2655 | 365 | property: "validator" | ||
2656 | 366 | value: passcodeValidator | ||
2657 | 367 | when: changeSecurityDialog.newMethod === | ||
2658 | 368 | UbuntuSecurityPrivacyPanel.Passcode | ||
2659 | 369 | } | ||
2660 | 370 | |||
2661 | 371 | Binding { | ||
2662 | 372 | target: confirmInput | ||
2663 | 373 | property: "maximumLength" | ||
2664 | 374 | value: 4 | ||
2665 | 375 | when: changeSecurityDialog.newMethod === | ||
2666 | 376 | UbuntuSecurityPrivacyPanel.Passcode | ||
2667 | 377 | } | ||
2668 | 378 | |||
2669 | 322 | Label { | 379 | Label { |
2670 | 323 | id: notMatching | 380 | id: notMatching |
2671 | 324 | wrapMode: Text.Wrap | 381 | wrapMode: Text.Wrap |
2672 | @@ -366,6 +423,7 @@ | |||
2673 | 366 | else | 423 | else |
2674 | 367 | return i18n.tr("Set") | 424 | return i18n.tr("Set") |
2675 | 368 | } | 425 | } |
2676 | 426 | <<<<<<< TREE | ||
2677 | 369 | /* see https://wiki.ubuntu.com/SecurityAndPrivacySettings#Phone for details */ | 427 | /* see https://wiki.ubuntu.com/SecurityAndPrivacySettings#Phone for details */ |
2678 | 370 | enabled: /* Validate the old method, it's either swipe or a secret which needs | 428 | enabled: /* Validate the old method, it's either swipe or a secret which needs |
2679 | 371 | to be valid, 4 digits for the passcode or > 0 for a passphrase */ | 429 | to be valid, 4 digits for the passcode or > 0 for a passphrase */ |
2680 | @@ -383,6 +441,9 @@ | |||
2681 | 383 | /* or to be swipe */ | 441 | /* or to be swipe */ |
2682 | 384 | changeSecurityDialog.newMethod === UbuntuSecurityPrivacyPanel.Swipe) | 442 | changeSecurityDialog.newMethod === UbuntuSecurityPrivacyPanel.Swipe) |
2683 | 385 | 443 | ||
2684 | 444 | ======= | ||
2685 | 445 | enabled: newInput.acceptableInput | ||
2686 | 446 | >>>>>>> MERGE-SOURCE | ||
2687 | 386 | onClicked: { | 447 | onClicked: { |
2688 | 387 | changeSecurityDialog.enabled = false | 448 | changeSecurityDialog.enabled = false |
2689 | 388 | incorrect.text = "" | 449 | incorrect.text = "" |
2690 | 389 | 450 | ||
2691 | === modified file 'plugins/security-privacy/PhoneLocking.qml' | |||
2692 | --- plugins/security-privacy/PhoneLocking.qml 2015-02-09 15:42:47 +0000 | |||
2693 | +++ plugins/security-privacy/PhoneLocking.qml 2015-02-27 05:54:50 +0000 | |||
2694 | @@ -42,7 +42,11 @@ | |||
2695 | 42 | anchors.right: parent.right | 42 | anchors.right: parent.right |
2696 | 43 | 43 | ||
2697 | 44 | ListItem.SingleValue { | 44 | ListItem.SingleValue { |
2698 | 45 | <<<<<<< TREE | ||
2699 | 45 | property string swipe: i18n.ctr("Unlock with swipe", "None") | 46 | property string swipe: i18n.ctr("Unlock with swipe", "None") |
2700 | 47 | ======= | ||
2701 | 48 | property string swipe: qsTr("None", "Unlock with swipe") | ||
2702 | 49 | >>>>>>> MERGE-SOURCE | ||
2703 | 46 | property string passcode: i18n.tr("Passcode") | 50 | property string passcode: i18n.tr("Passcode") |
2704 | 47 | property string passphrase: i18n.tr("Passphrase") | 51 | property string passphrase: i18n.tr("Passphrase") |
2705 | 48 | 52 | ||
2706 | 49 | 53 | ||
2707 | === modified file 'plugins/security-privacy/SimPin.qml' | |||
2708 | --- plugins/security-privacy/SimPin.qml 2015-01-28 15:17:09 +0000 | |||
2709 | +++ plugins/security-privacy/SimPin.qml 2015-02-27 05:54:50 +0000 | |||
2710 | @@ -1,3 +1,4 @@ | |||
2711 | 1 | <<<<<<< TREE | ||
2712 | 1 | /* | 2 | /* |
2713 | 2 | * Copyright (C) 2014 Canonical Ltd. | 3 | * Copyright (C) 2014 Canonical Ltd. |
2714 | 3 | * | 4 | * |
2715 | @@ -388,3 +389,394 @@ | |||
2716 | 388 | } | 389 | } |
2717 | 389 | } | 390 | } |
2718 | 390 | } | 391 | } |
2719 | 392 | ======= | ||
2720 | 393 | /* | ||
2721 | 394 | * Copyright (C) 2014 Canonical Ltd. | ||
2722 | 395 | * | ||
2723 | 396 | * This program is free software: you can redistribute it and/or modify it | ||
2724 | 397 | * under the terms of the GNU General Public License version 3, as published | ||
2725 | 398 | * by the Free Software Foundation. | ||
2726 | 399 | * | ||
2727 | 400 | * This program is distributed in the hope that it will be useful, but | ||
2728 | 401 | * WITHOUT ANY WARRANTY; without even the implied warranties of | ||
2729 | 402 | * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR | ||
2730 | 403 | * PURPOSE. See the GNU General Public License for more details. | ||
2731 | 404 | * | ||
2732 | 405 | * You should have received a copy of the GNU General Public License along | ||
2733 | 406 | * with this program. If not, see <http://www.gnu.org/licenses/>. | ||
2734 | 407 | * | ||
2735 | 408 | * Authors: | ||
2736 | 409 | * Ken VanDine <ken.vandine@canonical.com> | ||
2737 | 410 | * | ||
2738 | 411 | */ | ||
2739 | 412 | |||
2740 | 413 | import GSettings 1.0 | ||
2741 | 414 | import QtQuick 2.0 | ||
2742 | 415 | import QtQuick.Layouts 1.1 | ||
2743 | 416 | import Ubuntu.Components 1.1 | ||
2744 | 417 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
2745 | 418 | import Ubuntu.Components.Popups 0.1 | ||
2746 | 419 | import SystemSettings 1.0 | ||
2747 | 420 | import Ubuntu.SystemSettings.SecurityPrivacy 1.0 | ||
2748 | 421 | import MeeGo.QOfono 0.2 | ||
2749 | 422 | import "sims.js" as Sims | ||
2750 | 423 | |||
2751 | 424 | |||
2752 | 425 | ItemPage { | ||
2753 | 426 | id: root | ||
2754 | 427 | title: i18n.tr("SIM PIN") | ||
2755 | 428 | |||
2756 | 429 | property var sims | ||
2757 | 430 | property var curSim | ||
2758 | 431 | |||
2759 | 432 | Component { | ||
2760 | 433 | id: dialogComponent | ||
2761 | 434 | |||
2762 | 435 | Dialog { | ||
2763 | 436 | id: changePinDialog | ||
2764 | 437 | title: i18n.tr("Change SIM PIN") | ||
2765 | 438 | |||
2766 | 439 | property string errorText: i18n.tr( | ||
2767 | 440 | "Incorrect PIN. %1 attempt remaining.", | ||
2768 | 441 | "Incorrect PIN. %1 attempts remaining.", | ||
2769 | 442 | curSim.pinRetries[OfonoSimManager.SimPin] || 3 | ||
2770 | 443 | ).arg(curSim.pinRetries[OfonoSimManager.SimPin] || 3) | ||
2771 | 444 | property int simMin: curSim.minimumPinLength(OfonoSimManager.SimPin) | ||
2772 | 445 | property int simMax: curSim.maximumPinLength(OfonoSimManager.SimPin) | ||
2773 | 446 | |||
2774 | 447 | // This is a bit hacky, but the contents of this dialog get so tall | ||
2775 | 448 | // that on a mako device, they don't fit with the OSK also visible. | ||
2776 | 449 | // So we scrunch up spacing. | ||
2777 | 450 | Binding { | ||
2778 | 451 | target: __foreground | ||
2779 | 452 | property: "itemSpacing" | ||
2780 | 453 | value: units.gu(1) | ||
2781 | 454 | } | ||
2782 | 455 | |||
2783 | 456 | Connections { | ||
2784 | 457 | target: curSim | ||
2785 | 458 | onChangePinComplete: { | ||
2786 | 459 | if (error === OfonoSimManager.FailedError) { | ||
2787 | 460 | console.warn("Change PIN failed with: " + error); | ||
2788 | 461 | incorrect.visible = true; | ||
2789 | 462 | changePinDialog.enabled = true; | ||
2790 | 463 | currentInput.forceActiveFocus(); | ||
2791 | 464 | currentInput.selectAll(); | ||
2792 | 465 | return; | ||
2793 | 466 | } | ||
2794 | 467 | incorrect.visible = false; | ||
2795 | 468 | changePinDialog.enabled = true; | ||
2796 | 469 | PopupUtils.close(changePinDialog); | ||
2797 | 470 | } | ||
2798 | 471 | } | ||
2799 | 472 | |||
2800 | 473 | Label { | ||
2801 | 474 | text: i18n.tr("Current PIN:") | ||
2802 | 475 | } | ||
2803 | 476 | |||
2804 | 477 | TextField { | ||
2805 | 478 | id: currentInput | ||
2806 | 479 | echoMode: TextInput.Password | ||
2807 | 480 | inputMethodHints: Qt.ImhDialableCharactersOnly | ||
2808 | 481 | maximumLength: simMax | ||
2809 | 482 | } | ||
2810 | 483 | |||
2811 | 484 | Label { | ||
2812 | 485 | id: retries | ||
2813 | 486 | text: i18n.tr("%1 attempt allowed.", "%1 attempts allowed.", | ||
2814 | 487 | curSim.pinRetries[OfonoSimManager.SimPin] || 3).arg( | ||
2815 | 488 | curSim.pinRetries[OfonoSimManager.SimPin] || 3) | ||
2816 | 489 | visible: !incorrect.visible | ||
2817 | 490 | } | ||
2818 | 491 | |||
2819 | 492 | Label { | ||
2820 | 493 | id: incorrect | ||
2821 | 494 | text: errorText | ||
2822 | 495 | visible: false | ||
2823 | 496 | color: "darkred" | ||
2824 | 497 | } | ||
2825 | 498 | |||
2826 | 499 | Label { | ||
2827 | 500 | text: i18n.tr("Choose new PIN:") | ||
2828 | 501 | } | ||
2829 | 502 | |||
2830 | 503 | TextField { | ||
2831 | 504 | id: newInput | ||
2832 | 505 | echoMode: TextInput.Password | ||
2833 | 506 | inputMethodHints: Qt.ImhDialableCharactersOnly | ||
2834 | 507 | maximumLength: simMax | ||
2835 | 508 | } | ||
2836 | 509 | |||
2837 | 510 | Label { | ||
2838 | 511 | text: i18n.tr("Confirm new PIN:") | ||
2839 | 512 | } | ||
2840 | 513 | |||
2841 | 514 | TextField { | ||
2842 | 515 | id: confirmInput | ||
2843 | 516 | echoMode: TextInput.Password | ||
2844 | 517 | inputMethodHints: Qt.ImhDialableCharactersOnly | ||
2845 | 518 | maximumLength: simMax | ||
2846 | 519 | |||
2847 | 520 | // Doesn't get updated if you set this in enabled of confirmButton | ||
2848 | 521 | onTextChanged: confirmButton.enabled = | ||
2849 | 522 | (acceptableInput && | ||
2850 | 523 | text.length >= simMin && | ||
2851 | 524 | (text === newInput.text)) | ||
2852 | 525 | } | ||
2853 | 526 | |||
2854 | 527 | Label { | ||
2855 | 528 | id: notMatching | ||
2856 | 529 | wrapMode: Text.Wrap | ||
2857 | 530 | text: i18n.tr("PINs don't match. Try again.") | ||
2858 | 531 | visible: (newInput.length === confirmInput.length) && | ||
2859 | 532 | (newInput.text != confirmInput.text) | ||
2860 | 533 | color: "darkred" | ||
2861 | 534 | } | ||
2862 | 535 | |||
2863 | 536 | RowLayout { | ||
2864 | 537 | spacing: units.gu(1) | ||
2865 | 538 | |||
2866 | 539 | Button { | ||
2867 | 540 | Layout.fillWidth: true | ||
2868 | 541 | color: UbuntuColors.lightGrey | ||
2869 | 542 | text: i18n.tr("Cancel") | ||
2870 | 543 | onClicked: PopupUtils.close(changePinDialog) | ||
2871 | 544 | } | ||
2872 | 545 | |||
2873 | 546 | Button { | ||
2874 | 547 | id: confirmButton | ||
2875 | 548 | Layout.fillWidth: true | ||
2876 | 549 | color: UbuntuColors.green | ||
2877 | 550 | text: i18n.tr("Change") | ||
2878 | 551 | enabled: false | ||
2879 | 552 | onClicked: { | ||
2880 | 553 | changePinDialog.enabled = false | ||
2881 | 554 | var match = (newInput.text === confirmInput.text) | ||
2882 | 555 | notMatching.visible = !match | ||
2883 | 556 | if (!match) { | ||
2884 | 557 | changePinDialog.enabled = true | ||
2885 | 558 | newInput.forceActiveFocus() | ||
2886 | 559 | newInput.selectAll() | ||
2887 | 560 | return | ||
2888 | 561 | } | ||
2889 | 562 | curSim.changePin(OfonoSimManager.SimPin, currentInput.text, newInput.text); | ||
2890 | 563 | } | ||
2891 | 564 | } | ||
2892 | 565 | } | ||
2893 | 566 | } | ||
2894 | 567 | } | ||
2895 | 568 | |||
2896 | 569 | Component { | ||
2897 | 570 | id: lockDialogComponent | ||
2898 | 571 | |||
2899 | 572 | Dialog { | ||
2900 | 573 | id: lockPinDialog | ||
2901 | 574 | objectName: "lockDialogComponent" | ||
2902 | 575 | title: curSim.lockedPins.length > 0 ? | ||
2903 | 576 | i18n.tr("Enter SIM PIN") : | ||
2904 | 577 | i18n.tr("Enter Previous SIM PIN") | ||
2905 | 578 | |||
2906 | 579 | property string errorText: i18n.tr( | ||
2907 | 580 | "Incorrect PIN. %1 attempts remaining." | ||
2908 | 581 | ).arg(curSim.pinRetries[OfonoSimManager.SimPin] || 3) | ||
2909 | 582 | |||
2910 | 583 | property int simMin: curSim.minimumPinLength(OfonoSimManager.SimPin) | ||
2911 | 584 | property int simMax: curSim.maximumPinLength(OfonoSimManager.SimPin) | ||
2912 | 585 | |||
2913 | 586 | // This is a bit hacky, but the contents of this dialog get so tall | ||
2914 | 587 | // that on a mako device, they don't fit with the OSK also visible. | ||
2915 | 588 | // So we scrunch up spacing. | ||
2916 | 589 | Binding { | ||
2917 | 590 | target: __foreground | ||
2918 | 591 | property: "itemSpacing" | ||
2919 | 592 | value: units.gu(1) | ||
2920 | 593 | } | ||
2921 | 594 | |||
2922 | 595 | Connections { | ||
2923 | 596 | target: curSim | ||
2924 | 597 | onLockPinComplete: { | ||
2925 | 598 | if (error === OfonoSimManager.FailedError) { | ||
2926 | 599 | console.warn("Lock PIN failed with: " + error); | ||
2927 | 600 | incorrect.visible = true; | ||
2928 | 601 | lockPinDialog.enabled = true; | ||
2929 | 602 | prevInput.forceActiveFocus(); | ||
2930 | 603 | prevInput.selectAll(); | ||
2931 | 604 | return; | ||
2932 | 605 | } | ||
2933 | 606 | incorrect.visible = false; | ||
2934 | 607 | lockPinDialog.enabled = true; | ||
2935 | 608 | PopupUtils.close(lockPinDialog); | ||
2936 | 609 | } | ||
2937 | 610 | onUnlockPinComplete: { | ||
2938 | 611 | if (error === OfonoSimManager.FailedError) { | ||
2939 | 612 | console.warn("Unlock PIN failed with: " + error); | ||
2940 | 613 | incorrect.visible = true; | ||
2941 | 614 | lockPinDialog.enabled = true; | ||
2942 | 615 | prevInput.forceActiveFocus(); | ||
2943 | 616 | prevInput.selectAll(); | ||
2944 | 617 | return; | ||
2945 | 618 | } | ||
2946 | 619 | incorrect.visible = false; | ||
2947 | 620 | lockPinDialog.enabled = true; | ||
2948 | 621 | PopupUtils.close(lockPinDialog); | ||
2949 | 622 | } | ||
2950 | 623 | } | ||
2951 | 624 | |||
2952 | 625 | TextField { | ||
2953 | 626 | id: prevInput | ||
2954 | 627 | objectName: "prevInput" | ||
2955 | 628 | echoMode: TextInput.Password | ||
2956 | 629 | inputMethodHints: Qt.ImhDialableCharactersOnly | ||
2957 | 630 | maximumLength: simMax | ||
2958 | 631 | |||
2959 | 632 | // Doesn't get updated if you set this in enabled of confirmButton | ||
2960 | 633 | onTextChanged: lockButton.enabled = | ||
2961 | 634 | (acceptableInput && text.length >= simMin) | ||
2962 | 635 | } | ||
2963 | 636 | |||
2964 | 637 | Label { | ||
2965 | 638 | horizontalAlignment: Text.AlignHCenter | ||
2966 | 639 | text: i18n.tr("%1 attempts allowed.").arg( | ||
2967 | 640 | curSim.pinRetries[OfonoSimManager.SimPin] || 3) | ||
2968 | 641 | visible: !incorrect.visible | ||
2969 | 642 | width: parent.width | ||
2970 | 643 | } | ||
2971 | 644 | |||
2972 | 645 | Label { | ||
2973 | 646 | id: incorrect | ||
2974 | 647 | text: errorText | ||
2975 | 648 | visible: false | ||
2976 | 649 | color: "darkred" | ||
2977 | 650 | } | ||
2978 | 651 | |||
2979 | 652 | RowLayout { | ||
2980 | 653 | spacing: units.gu(1) | ||
2981 | 654 | |||
2982 | 655 | Button { | ||
2983 | 656 | objectName: "cancelButton" | ||
2984 | 657 | Layout.fillWidth: true | ||
2985 | 658 | color: UbuntuColors.lightGrey | ||
2986 | 659 | text: i18n.tr("Cancel") | ||
2987 | 660 | onClicked: { | ||
2988 | 661 | if (curSim.lockedPins.length < 1) | ||
2989 | 662 | caller.checked = false; | ||
2990 | 663 | else | ||
2991 | 664 | caller.checked = true; | ||
2992 | 665 | PopupUtils.close(lockPinDialog); | ||
2993 | 666 | } | ||
2994 | 667 | } | ||
2995 | 668 | |||
2996 | 669 | Button { | ||
2997 | 670 | id: lockButton | ||
2998 | 671 | objectName: "lockButton" | ||
2999 | 672 | Layout.fillWidth: true | ||
3000 | 673 | color: UbuntuColors.green | ||
3001 | 674 | |||
3002 | 675 | text: curSim.lockedPins.length > 0 ? i18n.tr("Unlock") : i18n.tr("Lock") | ||
3003 | 676 | enabled: false | ||
3004 | 677 | onClicked: { | ||
3005 | 678 | lockPinDialog.enabled = false; | ||
3006 | 679 | if (curSim.lockedPins.length > 0) | ||
3007 | 680 | curSim.unlockPin(OfonoSimManager.SimPin, prevInput.text); | ||
3008 | 681 | else | ||
3009 | 682 | curSim.lockPin(OfonoSimManager.SimPin, prevInput.text); | ||
3010 | 683 | } | ||
3011 | 684 | } | ||
3012 | 685 | } | ||
3013 | 686 | } | ||
3014 | 687 | } | ||
3015 | 688 | |||
3016 | 689 | Column { | ||
3017 | 690 | anchors.left: parent.left | ||
3018 | 691 | anchors.right: parent.right | ||
3019 | 692 | |||
3020 | 693 | Repeater { | ||
3021 | 694 | model: sims.length | ||
3022 | 695 | Column { | ||
3023 | 696 | id: sim | ||
3024 | 697 | anchors { | ||
3025 | 698 | left: parent.left | ||
3026 | 699 | right: parent.right | ||
3027 | 700 | } | ||
3028 | 701 | |||
3029 | 702 | states: [ | ||
3030 | 703 | State { | ||
3031 | 704 | name: "locked" | ||
3032 | 705 | when: sims[index].simMng.pinRequired !== OfonoSimManager.NoPin | ||
3033 | 706 | }, | ||
3034 | 707 | State { | ||
3035 | 708 | name: "unlocked" | ||
3036 | 709 | when: sims[index].simMng.pinRequired === OfonoSimManager.NoPin | ||
3037 | 710 | } | ||
3038 | 711 | ] | ||
3039 | 712 | |||
3040 | 713 | Connections { | ||
3041 | 714 | target: sims[index].simMng | ||
3042 | 715 | onLockedPinsChanged: { | ||
3043 | 716 | simPinSwitch.checked = | ||
3044 | 717 | sims[index].simMng.lockedPins.length > 0; | ||
3045 | 718 | } | ||
3046 | 719 | } | ||
3047 | 720 | |||
3048 | 721 | ListItem.Standard { | ||
3049 | 722 | text: sims[index].title | ||
3050 | 723 | visible: sims.length > 1 | ||
3051 | 724 | } | ||
3052 | 725 | |||
3053 | 726 | ListItem.Standard { | ||
3054 | 727 | text: i18n.tr("SIM PIN") | ||
3055 | 728 | control: Switch { | ||
3056 | 729 | id: simPinSwitch | ||
3057 | 730 | objectName: "simPinSwitch" | ||
3058 | 731 | checked: sims[index].simMng.lockedPins.length > 0 | ||
3059 | 732 | onClicked: { | ||
3060 | 733 | curSim = sims[index].simMng; | ||
3061 | 734 | PopupUtils.open(lockDialogComponent, simPinSwitch); | ||
3062 | 735 | } | ||
3063 | 736 | } | ||
3064 | 737 | } | ||
3065 | 738 | |||
3066 | 739 | ListItem.Standard { | ||
3067 | 740 | id: changeControl | ||
3068 | 741 | visible: sim.state === "unlocked" | ||
3069 | 742 | text: i18n.tr("Unlocked") | ||
3070 | 743 | control: Button { | ||
3071 | 744 | enabled: parent.visible | ||
3072 | 745 | text: i18n.tr("Change PIN…") | ||
3073 | 746 | onClicked: { | ||
3074 | 747 | curSim = sims[index].simMng; | ||
3075 | 748 | PopupUtils.open(dialogComponent); | ||
3076 | 749 | } | ||
3077 | 750 | } | ||
3078 | 751 | } | ||
3079 | 752 | |||
3080 | 753 | ListItem.Standard { | ||
3081 | 754 | id: lockControl | ||
3082 | 755 | visible: sim.state === "locked" | ||
3083 | 756 | text: i18n.tr("Locked") | ||
3084 | 757 | control: Button { | ||
3085 | 758 | objectName: "unlock" | ||
3086 | 759 | enabled: sims[index].simMng.pinRequired !== 'none' | ||
3087 | 760 | text: i18n.tr("Unlock…") | ||
3088 | 761 | color: UbuntuColors.green | ||
3089 | 762 | onClicked: Connectivity.unlockModem(sims[index].path) | ||
3090 | 763 | } | ||
3091 | 764 | } | ||
3092 | 765 | |||
3093 | 766 | ListItem.Divider { | ||
3094 | 767 | visible: index < (sims.length - 1) | ||
3095 | 768 | } | ||
3096 | 769 | |||
3097 | 770 | } | ||
3098 | 771 | } | ||
3099 | 772 | |||
3100 | 773 | ListItem.Caption { | ||
3101 | 774 | text: i18n.tr("When a SIM PIN is set, it must be entered to access cellular services after restarting the phone or swapping the SIM.") | ||
3102 | 775 | } | ||
3103 | 776 | |||
3104 | 777 | ListItem.Caption { | ||
3105 | 778 | text: i18n.tr("Entering an incorrect PIN repeatedly may lock the SIM permanently.") | ||
3106 | 779 | } | ||
3107 | 780 | } | ||
3108 | 781 | } | ||
3109 | 782 | >>>>>>> MERGE-SOURCE | ||
3110 | 391 | 783 | ||
3111 | === modified file 'plugins/sound/PageComponent.qml' | |||
3112 | --- plugins/sound/PageComponent.qml 2015-02-11 17:33:51 +0000 | |||
3113 | +++ plugins/sound/PageComponent.qml 2015-02-27 05:54:50 +0000 | |||
3114 | @@ -158,6 +158,7 @@ | |||
3115 | 158 | } | 158 | } |
3116 | 159 | 159 | ||
3117 | 160 | ListItem.Standard { | 160 | ListItem.Standard { |
3118 | 161 | <<<<<<< TREE | ||
3119 | 161 | control: Switch { | 162 | control: Switch { |
3120 | 162 | objectName: "dialpadSounds" | 163 | objectName: "dialpadSounds" |
3121 | 163 | property bool serverChecked: backendInfo.dialpadSoundsEnabled | 164 | property bool serverChecked: backendInfo.dialpadSoundsEnabled |
3122 | @@ -169,6 +170,19 @@ | |||
3123 | 169 | } | 170 | } |
3124 | 170 | 171 | ||
3125 | 171 | SettingsItemTitle { | 172 | SettingsItemTitle { |
3126 | 173 | ======= | ||
3127 | 174 | control: Switch { | ||
3128 | 175 | objectName: "dialpadSounds" | ||
3129 | 176 | property bool serverChecked: backendInfo.dialpadSoundsEnabled | ||
3130 | 177 | onServerCheckedChanged: checked = serverChecked | ||
3131 | 178 | Component.onCompleted: checked = serverChecked | ||
3132 | 179 | onTriggered: backendInfo.dialpadSoundsEnabled = checked | ||
3133 | 180 | } | ||
3134 | 181 | text: i18n.tr("Dialpad sounds") | ||
3135 | 182 | } | ||
3136 | 183 | |||
3137 | 184 | SettingsItemTitle { | ||
3138 | 185 | >>>>>>> MERGE-SOURCE | ||
3139 | 172 | text: i18n.tr("Messages:") | 186 | text: i18n.tr("Messages:") |
3140 | 173 | } | 187 | } |
3141 | 174 | 188 | ||
3142 | @@ -213,6 +227,7 @@ | |||
3143 | 213 | 227 | ||
3144 | 214 | ListItem.Standard { | 228 | ListItem.Standard { |
3145 | 215 | text: i18n.tr("Keyboard sound") | 229 | text: i18n.tr("Keyboard sound") |
3146 | 230 | showDivider: false | ||
3147 | 216 | 231 | ||
3148 | 217 | control: Switch { | 232 | control: Switch { |
3149 | 218 | objectName: "keyboardSoundSwitch" | 233 | objectName: "keyboardSoundSwitch" |
3150 | @@ -231,6 +246,7 @@ | |||
3151 | 231 | text: i18n.tr("Lock sound") | 246 | text: i18n.tr("Lock sound") |
3152 | 232 | visible: showAllUI | 247 | visible: showAllUI |
3153 | 233 | } | 248 | } |
3154 | 249 | <<<<<<< TREE | ||
3155 | 234 | 250 | ||
3156 | 235 | ListItem.Divider { | 251 | ListItem.Divider { |
3157 | 236 | visible: showAllUI | 252 | visible: showAllUI |
3158 | @@ -247,6 +263,21 @@ | |||
3159 | 247 | } | 263 | } |
3160 | 248 | visible: showAllUI | 264 | visible: showAllUI |
3161 | 249 | } | 265 | } |
3162 | 266 | ======= | ||
3163 | 267 | |||
3164 | 268 | ListItem.Divider {} | ||
3165 | 269 | |||
3166 | 270 | ListItem.Standard { | ||
3167 | 271 | text: i18n.tr("Other vibrations") | ||
3168 | 272 | control: Switch { | ||
3169 | 273 | objectName: "otherVibrateSwitch" | ||
3170 | 274 | property bool serverChecked: backendInfo.otherVibrate | ||
3171 | 275 | onServerCheckedChanged: checked = serverChecked | ||
3172 | 276 | Component.onCompleted: checked = serverChecked | ||
3173 | 277 | onTriggered: backendInfo.otherVibrate = checked | ||
3174 | 278 | } | ||
3175 | 279 | } | ||
3176 | 280 | >>>>>>> MERGE-SOURCE | ||
3177 | 250 | } | 281 | } |
3178 | 251 | } | 282 | } |
3179 | 252 | } | 283 | } |
3180 | 253 | 284 | ||
3181 | === modified file 'plugins/system-update/PageComponent.qml' | |||
3182 | --- plugins/system-update/PageComponent.qml 2015-02-20 14:40:34 +0000 | |||
3183 | +++ plugins/system-update/PageComponent.qml 2015-02-27 05:54:50 +0000 | |||
3184 | @@ -45,6 +45,7 @@ | |||
3185 | 45 | property bool batterySafeForUpdate: isCharging || chargeLevel > 25 | 45 | property bool batterySafeForUpdate: isCharging || chargeLevel > 25 |
3186 | 46 | property var chargeLevel: indicatorPower.batteryLevel || 0 | 46 | property var chargeLevel: indicatorPower.batteryLevel || 0 |
3187 | 47 | property var notificationAction; | 47 | property var notificationAction; |
3188 | 48 | <<<<<<< TREE | ||
3189 | 48 | property string errorDialogText: "" | 49 | property string errorDialogText: "" |
3190 | 49 | 50 | ||
3191 | 50 | onUpdatesAvailableChanged: { | 51 | onUpdatesAvailableChanged: { |
3192 | @@ -86,6 +87,44 @@ | |||
3193 | 86 | root.state = "SEARCHING"; | 87 | root.state = "SEARCHING"; |
3194 | 87 | UpdateManager.checkUpdates(); | 88 | UpdateManager.checkUpdates(); |
3195 | 88 | } | 89 | } |
3196 | 90 | ======= | ||
3197 | 91 | property string errorDialogText: "" | ||
3198 | 92 | |||
3199 | 93 | QDBusActionGroup { | ||
3200 | 94 | id: indicatorPower | ||
3201 | 95 | busType: 1 | ||
3202 | 96 | busName: "com.canonical.indicator.power" | ||
3203 | 97 | objectPath: "/com/canonical/indicator/power" | ||
3204 | 98 | property variant batteryLevel: action("battery-level").state | ||
3205 | 99 | property variant deviceState: action("device-state").state | ||
3206 | 100 | Component.onCompleted: start() | ||
3207 | 101 | } | ||
3208 | 102 | |||
3209 | 103 | Connections { | ||
3210 | 104 | id: networkingStatus | ||
3211 | 105 | target: NetworkingStatus | ||
3212 | 106 | onOnlineChanged: { | ||
3213 | 107 | if (NetworkingStatus.online) { | ||
3214 | 108 | activity.running = true; | ||
3215 | 109 | root.state = "SEARCHING"; | ||
3216 | 110 | UpdateManager.checkUpdates(); | ||
3217 | 111 | } else { | ||
3218 | 112 | activity.running = false; | ||
3219 | 113 | } | ||
3220 | 114 | } | ||
3221 | 115 | } | ||
3222 | 116 | |||
3223 | 117 | Setup { | ||
3224 | 118 | id: uoaConfig | ||
3225 | 119 | applicationId: "ubuntu-system-settings" | ||
3226 | 120 | providerId: "ubuntuone" | ||
3227 | 121 | |||
3228 | 122 | onFinished: { | ||
3229 | 123 | credentialsNotification.visible = false; | ||
3230 | 124 | root.state = "SEARCHING"; | ||
3231 | 125 | UpdateManager.checkUpdates(); | ||
3232 | 126 | } | ||
3233 | 127 | >>>>>>> MERGE-SOURCE | ||
3234 | 89 | } | 128 | } |
3235 | 90 | 129 | ||
3236 | 91 | Component { | 130 | Component { |
3237 | @@ -202,11 +241,14 @@ | |||
3238 | 202 | 241 | ||
3239 | 203 | onCredentialsNotFound: { | 242 | onCredentialsNotFound: { |
3240 | 204 | credentialsNotification.visible = true; | 243 | credentialsNotification.visible = true; |
3241 | 244 | <<<<<<< TREE | ||
3242 | 205 | } | 245 | } |
3243 | 206 | 246 | ||
3244 | 207 | onCredentialsDeleted: { | 247 | onCredentialsDeleted: { |
3245 | 208 | credentialsNotification.visible = false; | 248 | credentialsNotification.visible = false; |
3246 | 209 | uoaConfig.exec(); | 249 | uoaConfig.exec(); |
3247 | 250 | ======= | ||
3248 | 251 | >>>>>>> MERGE-SOURCE | ||
3249 | 210 | } | 252 | } |
3250 | 211 | 253 | ||
3251 | 212 | onSystemUpdateDownloaded: { | 254 | onSystemUpdateDownloaded: { |
3252 | @@ -256,6 +298,7 @@ | |||
3253 | 256 | id: columnId | 298 | id: columnId |
3254 | 257 | anchors { | 299 | anchors { |
3255 | 258 | left: parent.left | 300 | left: parent.left |
3256 | 301 | <<<<<<< TREE | ||
3257 | 259 | right: parent.right | 302 | right: parent.right |
3258 | 260 | } | 303 | } |
3259 | 261 | height: childrenRect.height | 304 | height: childrenRect.height |
3260 | @@ -397,7 +440,151 @@ | |||
3261 | 397 | console.warn("PAUSE: " + modelData.packageName); | 440 | console.warn("PAUSE: " + modelData.packageName); |
3262 | 398 | if (modelData.systemUpdate) | 441 | if (modelData.systemUpdate) |
3263 | 399 | return UpdateManager.pauseDownload(modelData.packageName); | 442 | return UpdateManager.pauseDownload(modelData.packageName); |
3264 | 443 | ======= | ||
3265 | 444 | right: parent.right | ||
3266 | 445 | } | ||
3267 | 446 | height: childrenRect.height | ||
3268 | 447 | |||
3269 | 448 | ListItem.Base { | ||
3270 | 449 | id: checkForUpdatesArea | ||
3271 | 450 | objectName: "checkForUpdatesArea" | ||
3272 | 451 | showDivider: false | ||
3273 | 452 | visible: false | ||
3274 | 453 | |||
3275 | 454 | ActivityIndicator { | ||
3276 | 455 | id: activity | ||
3277 | 456 | running: checkForUpdatesArea.visible | ||
3278 | 457 | visible: activity.running | ||
3279 | 458 | anchors { | ||
3280 | 459 | left: parent.left | ||
3281 | 460 | top: parent.top | ||
3282 | 461 | } | ||
3283 | 462 | height: parent.height | ||
3284 | 463 | } | ||
3285 | 464 | |||
3286 | 465 | Label { | ||
3287 | 466 | text: activity.running ? i18n.tr("Checking for updates…") : i18n.tr("Connect to the Internet to check for updates") | ||
3288 | 467 | verticalAlignment: Text.AlignVCenter | ||
3289 | 468 | elide: Text.ElideRight | ||
3290 | 469 | anchors { | ||
3291 | 470 | left: activity.running ? activity.right : parent.left | ||
3292 | 471 | top: parent.top | ||
3293 | 472 | right: btnRetry.left | ||
3294 | 473 | rightMargin: units.gu(2) | ||
3295 | 474 | leftMargin: units.gu(2) | ||
3296 | 475 | } | ||
3297 | 476 | height: parent.height | ||
3298 | 477 | } | ||
3299 | 478 | |||
3300 | 479 | Button { | ||
3301 | 480 | id: btnRetry | ||
3302 | 481 | text: i18n.tr("Retry") | ||
3303 | 482 | color: UbuntuColors.orange | ||
3304 | 483 | anchors { | ||
3305 | 484 | right: parent.right | ||
3306 | 485 | top: parent.top | ||
3307 | 486 | bottom: parent.bottom | ||
3308 | 487 | margins: units.gu(1) | ||
3309 | 488 | } | ||
3310 | 489 | visible: !activity.visible | ||
3311 | 490 | |||
3312 | 491 | onClicked: { | ||
3313 | 492 | activity.running = true; | ||
3314 | 493 | root.state = "SEARCHING"; | ||
3315 | 494 | UpdateManager.checkUpdates(); | ||
3316 | 495 | } | ||
3317 | 496 | } | ||
3318 | 497 | } | ||
3319 | 498 | |||
3320 | 499 | ListItem.SingleControl { | ||
3321 | 500 | height: installAllButton.visible ? units.gu(8) : units.gu(2) | ||
3322 | 501 | highlightWhenPressed: false | ||
3323 | 502 | control: Button { | ||
3324 | 503 | id: installAllButton | ||
3325 | 504 | objectName: "installAllButton" | ||
3326 | 505 | property string primaryText: includeSystemUpdate ? | ||
3327 | 506 | i18n.tr("Install %1 update…", "Install %1 updates…", root.updatesAvailable).arg(root.updatesAvailable) : | ||
3328 | 507 | i18n.tr("Install %1 update", "Install %1 updates", root.updatesAvailable).arg(root.updatesAvailable) | ||
3329 | 508 | property string secondaryText: i18n.tr("Pause All") | ||
3330 | 509 | color: UbuntuColors.orange | ||
3331 | 510 | text: root.installAll ? secondaryText : primaryText | ||
3332 | 511 | width: parent.width - units.gu(4) | ||
3333 | 512 | |||
3334 | 513 | onClicked: { | ||
3335 | 514 | for (var i=0; i < updateList.count; i++) { | ||
3336 | 515 | updateList.currentIndex = i; | ||
3337 | 516 | var item = updateList.currentItem; | ||
3338 | 517 | var modelItem = UpdateManager.model[i]; | ||
3339 | 518 | if (item.installing || item.installed) | ||
3340 | 519 | continue; | ||
3341 | 520 | console.warn("AllClicked: " + modelItem.updateState + " " + modelItem.updateReady + " " + modelItem.selected); | ||
3342 | 521 | if (item.retry) { | ||
3343 | 522 | item.retry = false; | ||
3344 | 523 | UpdateManager.retryDownload(modelItem.packageName); | ||
3345 | 524 | continue; | ||
3346 | 525 | } | ||
3347 | 526 | if (root.installAll && !modelItem.updateReady && modelItem.selected) { | ||
3348 | 527 | item.pause(); | ||
3349 | 528 | continue; | ||
3350 | 529 | } | ||
3351 | 530 | console.warn("Past pause"); | ||
3352 | 531 | if (!root.installAll && !modelItem.updateReady && modelItem.selected) { | ||
3353 | 532 | item.resume(); | ||
3354 | 533 | continue; | ||
3355 | 534 | } | ||
3356 | 535 | console.warn("Past resume"); | ||
3357 | 536 | if (!root.installAll && !modelItem.updateState && !modelItem.updateReady && !modelItem.selected) { | ||
3358 | 537 | item.start(); | ||
3359 | 538 | continue; | ||
3360 | 539 | } | ||
3361 | 540 | console.warn("Past start"); | ||
3362 | 541 | } | ||
3363 | 542 | root.installAll = !root.installAll; | ||
3364 | 543 | } | ||
3365 | 544 | } | ||
3366 | 545 | showDivider: false | ||
3367 | 546 | } | ||
3368 | 547 | |||
3369 | 548 | ListView { | ||
3370 | 549 | id: updateList | ||
3371 | 550 | objectName: "updateList" | ||
3372 | 551 | anchors { | ||
3373 | 552 | left: parent.left | ||
3374 | 553 | right: parent.right | ||
3375 | 554 | } | ||
3376 | 555 | model: UpdateManager.model | ||
3377 | 556 | height: childrenRect.height | ||
3378 | 557 | interactive: false | ||
3379 | 558 | spacing: units.gu(2) | ||
3380 | 559 | |||
3381 | 560 | delegate: ListItem.Subtitled { | ||
3382 | 561 | id: listItem | ||
3383 | 562 | anchors { | ||
3384 | 563 | left: parent.left | ||
3385 | 564 | right: parent.right | ||
3386 | 565 | } | ||
3387 | 566 | iconSource: Qt.resolvedUrl(modelData.iconUrl) | ||
3388 | 567 | iconFrame: modelData.systemUpdate ? false : true | ||
3389 | 568 | height: visible ? textArea.height : 0 | ||
3390 | 569 | highlightWhenPressed: false | ||
3391 | 570 | showDivider: false | ||
3392 | 571 | visible: opacity > 0 | ||
3393 | 572 | opacity: installed ? 0 : 1 | ||
3394 | 573 | Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } } | ||
3395 | 574 | |||
3396 | 575 | property alias actionButton: buttonAppUpdate | ||
3397 | 576 | property alias progressBar: progress | ||
3398 | 577 | property bool installing: !modelData.systemUpdate && (modelData.updateReady || (progressBar.value === progressBar.maximumValue)) | ||
3399 | 578 | property bool installed: false | ||
3400 | 579 | property bool retry: false | ||
3401 | 580 | |||
3402 | 581 | function pause () { | ||
3403 | 582 | console.warn("PAUSE: " + modelData.packageName); | ||
3404 | 583 | if (modelData.systemUpdate) | ||
3405 | 584 | return UpdateManager.pauseDownload(modelData.packageName); | ||
3406 | 585 | >>>>>>> MERGE-SOURCE | ||
3407 | 400 | modelData.updateState = false; | 586 | modelData.updateState = false; |
3408 | 587 | <<<<<<< TREE | ||
3409 | 401 | tracker.pause(); | 588 | tracker.pause(); |
3410 | 402 | } | 589 | } |
3411 | 403 | 590 | ||
3412 | @@ -660,6 +847,269 @@ | |||
3413 | 660 | right: parent.right | 847 | right: parent.right |
3414 | 661 | } | 848 | } |
3415 | 662 | } | 849 | } |
3416 | 850 | ======= | ||
3417 | 851 | tracker.pause(); | ||
3418 | 852 | } | ||
3419 | 853 | |||
3420 | 854 | function resume () { | ||
3421 | 855 | console.warn("RESUME: " + modelData.packageName); | ||
3422 | 856 | if (modelData.systemUpdate) | ||
3423 | 857 | return UpdateManager.startDownload(modelData.packageName); | ||
3424 | 858 | modelData.updateState = true; | ||
3425 | 859 | tracker.resume(); | ||
3426 | 860 | } | ||
3427 | 861 | |||
3428 | 862 | function start () { | ||
3429 | 863 | console.warn("START: " + modelData.packageName); | ||
3430 | 864 | modelData.selected = true; | ||
3431 | 865 | modelData.updateState = true; | ||
3432 | 866 | UpdateManager.startDownload(modelData.packageName); | ||
3433 | 867 | } | ||
3434 | 868 | Column { | ||
3435 | 869 | id: textArea | ||
3436 | 870 | objectName: "textArea" | ||
3437 | 871 | anchors { | ||
3438 | 872 | left: parent.left | ||
3439 | 873 | right: parent.right | ||
3440 | 874 | } | ||
3441 | 875 | spacing: units.gu(0.5) | ||
3442 | 876 | |||
3443 | 877 | Item { | ||
3444 | 878 | anchors { | ||
3445 | 879 | left: parent.left | ||
3446 | 880 | right: parent.right | ||
3447 | 881 | } | ||
3448 | 882 | height: buttonAppUpdate.height | ||
3449 | 883 | |||
3450 | 884 | Label { | ||
3451 | 885 | id: labelTitle | ||
3452 | 886 | objectName: "labelTitle" | ||
3453 | 887 | anchors { | ||
3454 | 888 | left: parent.left | ||
3455 | 889 | right: buttonAppUpdate.visible ? buttonAppUpdate.left : parent.right | ||
3456 | 890 | verticalCenter: parent.verticalCenter | ||
3457 | 891 | } | ||
3458 | 892 | text: modelData.title | ||
3459 | 893 | font.bold: true | ||
3460 | 894 | elide: Text.ElideMiddle | ||
3461 | 895 | } | ||
3462 | 896 | |||
3463 | 897 | Button { | ||
3464 | 898 | id: buttonAppUpdate | ||
3465 | 899 | objectName: "buttonAppUpdate" | ||
3466 | 900 | anchors.right: parent.right | ||
3467 | 901 | height: labelTitle.height + units.gu(1) | ||
3468 | 902 | enabled: !installing | ||
3469 | 903 | text: { | ||
3470 | 904 | if (retry) | ||
3471 | 905 | return i18n.tr("Retry"); | ||
3472 | 906 | if (modelData.systemUpdate) { | ||
3473 | 907 | if (modelData.updateReady) { | ||
3474 | 908 | return i18n.tr("Install…"); | ||
3475 | 909 | } else if (!modelData.updateState && !modelData.selected) { | ||
3476 | 910 | return i18n.tr("Download"); | ||
3477 | 911 | } | ||
3478 | 912 | } | ||
3479 | 913 | if (modelData.updateState) { | ||
3480 | 914 | return i18n.tr("Pause"); | ||
3481 | 915 | } else if (modelData.selected) { | ||
3482 | 916 | return i18n.tr("Resume"); | ||
3483 | 917 | } | ||
3484 | 918 | return i18n.tr("Update"); | ||
3485 | 919 | } | ||
3486 | 920 | |||
3487 | 921 | onClicked: { | ||
3488 | 922 | if (retry) { | ||
3489 | 923 | retry = false; | ||
3490 | 924 | return UpdateManager.retryDownload(modelData.packageName); | ||
3491 | 925 | } | ||
3492 | 926 | if (modelData.updateState) | ||
3493 | 927 | return pause(); | ||
3494 | 928 | if (!modelData.updateState && modelData.selected) | ||
3495 | 929 | return resume(); | ||
3496 | 930 | if (!modelData.updateState && !modelData.selected && !modelData.updateReady) | ||
3497 | 931 | return start(); | ||
3498 | 932 | if (modelData.updateReady) | ||
3499 | 933 | PopupUtils.open(dialogInstallComponent); | ||
3500 | 934 | } | ||
3501 | 935 | } | ||
3502 | 936 | } | ||
3503 | 937 | |||
3504 | 938 | Item { | ||
3505 | 939 | id: labelUpdateStatus | ||
3506 | 940 | anchors { | ||
3507 | 941 | left: parent.left | ||
3508 | 942 | right: parent.right | ||
3509 | 943 | } | ||
3510 | 944 | height: childrenRect.height | ||
3511 | 945 | visible: opacity > 0 | ||
3512 | 946 | opacity: (modelData.updateState && modelData.selected && !modelData.updateReady) || (installing || installed) ? 1 : 0 | ||
3513 | 947 | Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } } | ||
3514 | 948 | Label { | ||
3515 | 949 | objectName: "labelUpdateStatus" | ||
3516 | 950 | anchors.left: parent.left | ||
3517 | 951 | anchors.right: updateStatusLabel.left | ||
3518 | 952 | elide: Text.ElideMiddle | ||
3519 | 953 | fontSize: "small" | ||
3520 | 954 | text: { | ||
3521 | 955 | if (retry) | ||
3522 | 956 | return modelData.error; | ||
3523 | 957 | if (installing) | ||
3524 | 958 | return i18n.tr("Installing"); | ||
3525 | 959 | if (installed) | ||
3526 | 960 | return i18n.tr("Installed"); | ||
3527 | 961 | return i18n.tr("Downloading"); | ||
3528 | 962 | } | ||
3529 | 963 | } | ||
3530 | 964 | Label { | ||
3531 | 965 | id: updateStatusLabel | ||
3532 | 966 | anchors.right: parent.right | ||
3533 | 967 | visible: !labelSize.visible && !installing && !installed | ||
3534 | 968 | fontSize: "small" | ||
3535 | 969 | text: { | ||
3536 | 970 | if (!labelUpdateStatus.visible) | ||
3537 | 971 | return convert_bytes_to_size(modelData.binaryFilesize); | ||
3538 | 972 | |||
3539 | 973 | return i18n.tr("%1 of %2").arg( | ||
3540 | 974 | convert_bytes_to_size(modelData.binaryFilesize * (progress.value * 0.01))).arg( | ||
3541 | 975 | convert_bytes_to_size(modelData.binaryFilesize) | ||
3542 | 976 | ); | ||
3543 | 977 | } | ||
3544 | 978 | } | ||
3545 | 979 | } | ||
3546 | 980 | |||
3547 | 981 | ProgressBar { | ||
3548 | 982 | id: progress | ||
3549 | 983 | objectName: "progress" | ||
3550 | 984 | height: units.gu(2) | ||
3551 | 985 | anchors { | ||
3552 | 986 | left: parent.left | ||
3553 | 987 | right: parent.right | ||
3554 | 988 | } | ||
3555 | 989 | visible: opacity > 0 | ||
3556 | 990 | opacity: modelData.selected && !modelData.updateReady && !installed ? 1 : 0 | ||
3557 | 991 | value: modelData.systemUpdate ? modelData.downloadProgress : tracker.progress | ||
3558 | 992 | minimumValue: 0 | ||
3559 | 993 | maximumValue: 100 | ||
3560 | 994 | |||
3561 | 995 | DownloadTracker { | ||
3562 | 996 | id: tracker | ||
3563 | 997 | objectName: "tracker" | ||
3564 | 998 | packageName: modelData.packageName | ||
3565 | 999 | clickToken: modelData.clickToken | ||
3566 | 1000 | download: modelData.downloadUrl | ||
3567 | 1001 | |||
3568 | 1002 | onFinished: { | ||
3569 | 1003 | progress.visible = false; | ||
3570 | 1004 | buttonAppUpdate.visible = false; | ||
3571 | 1005 | installed = true; | ||
3572 | 1006 | installing = false; | ||
3573 | 1007 | root.updatesAvailable -= 1; | ||
3574 | 1008 | modelData.updateRequired = false; | ||
3575 | 1009 | UpdateManager.updateClickScope(); | ||
3576 | 1010 | } | ||
3577 | 1011 | |||
3578 | 1012 | onProcessing: { | ||
3579 | 1013 | console.warn("onProcessing: " + modelData.packageName + " " + path); | ||
3580 | 1014 | buttonAppUpdate.enabled = false; | ||
3581 | 1015 | installing = true; | ||
3582 | 1016 | modelData.updateState = false; | ||
3583 | 1017 | } | ||
3584 | 1018 | |||
3585 | 1019 | onStarted: { | ||
3586 | 1020 | console.warn("onStarted: " + modelData.packageName + " " + success); | ||
3587 | 1021 | if (success) | ||
3588 | 1022 | modelData.updateState = true; | ||
3589 | 1023 | else | ||
3590 | 1024 | modelData.updateState = false; | ||
3591 | 1025 | } | ||
3592 | 1026 | |||
3593 | 1027 | onPaused: { | ||
3594 | 1028 | console.warn("onPaused: " + modelData.packageName + " " + success); | ||
3595 | 1029 | if (success) | ||
3596 | 1030 | modelData.updateState = false; | ||
3597 | 1031 | else | ||
3598 | 1032 | modelData.updateState = true; | ||
3599 | 1033 | } | ||
3600 | 1034 | |||
3601 | 1035 | onResumed: { | ||
3602 | 1036 | console.warn("onResumed: " + modelData.packageName + " " + success); | ||
3603 | 1037 | if (success) | ||
3604 | 1038 | modelData.updateState = true; | ||
3605 | 1039 | else | ||
3606 | 1040 | modelData.updateState = false; | ||
3607 | 1041 | } | ||
3608 | 1042 | |||
3609 | 1043 | onCanceled: { | ||
3610 | 1044 | console.warn("onCanceled: " + modelData.packageName + " " + success); | ||
3611 | 1045 | if (success) { | ||
3612 | 1046 | modelData.updateState = false; | ||
3613 | 1047 | modelData.selected = false; | ||
3614 | 1048 | } | ||
3615 | 1049 | } | ||
3616 | 1050 | |||
3617 | 1051 | onErrorFound: { | ||
3618 | 1052 | console.warn("onErrorFound: " + modelData.packageName + " " + error); | ||
3619 | 1053 | modelData.updateState = false; | ||
3620 | 1054 | retry = true; | ||
3621 | 1055 | installing = false; | ||
3622 | 1056 | } | ||
3623 | 1057 | } | ||
3624 | 1058 | |||
3625 | 1059 | Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } } | ||
3626 | 1060 | } | ||
3627 | 1061 | |||
3628 | 1062 | Item { | ||
3629 | 1063 | anchors { | ||
3630 | 1064 | left: parent.left | ||
3631 | 1065 | right: parent.right | ||
3632 | 1066 | } | ||
3633 | 1067 | height: childrenRect.height | ||
3634 | 1068 | Label { | ||
3635 | 1069 | id: labelVersion | ||
3636 | 1070 | objectName: "labelVersion" | ||
3637 | 1071 | anchors.left: parent.left | ||
3638 | 1072 | text: modelData.remoteVersion ? i18n.tr("Version: ") + modelData.remoteVersion : "" | ||
3639 | 1073 | elide: Text.ElideRight | ||
3640 | 1074 | fontSize: "small" | ||
3641 | 1075 | } | ||
3642 | 1076 | |||
3643 | 1077 | Label { | ||
3644 | 1078 | id: labelSize | ||
3645 | 1079 | objectName: "labelSize" | ||
3646 | 1080 | anchors.right: parent.right | ||
3647 | 1081 | text: convert_bytes_to_size(modelData.binaryFilesize) | ||
3648 | 1082 | fontSize: "small" | ||
3649 | 1083 | visible: !labelUpdateStatus.visible && !installing && !installed | ||
3650 | 1084 | } | ||
3651 | 1085 | } | ||
3652 | 1086 | } | ||
3653 | 1087 | } | ||
3654 | 1088 | } | ||
3655 | 1089 | |||
3656 | 1090 | Column { | ||
3657 | 1091 | id: credentialsNotification | ||
3658 | 1092 | objectName: "credentialsNotification" | ||
3659 | 1093 | |||
3660 | 1094 | visible: false | ||
3661 | 1095 | |||
3662 | 1096 | spacing: units.gu(2) | ||
3663 | 1097 | anchors { | ||
3664 | 1098 | left: parent.left | ||
3665 | 1099 | right: parent.right | ||
3666 | 1100 | } | ||
3667 | 1101 | ListItem.ThinDivider {} | ||
3668 | 1102 | |||
3669 | 1103 | Label { | ||
3670 | 1104 | text: i18n.tr("Sign in to Ubuntu One to receive updates for apps.") | ||
3671 | 1105 | horizontalAlignment: Text.AlignHCenter | ||
3672 | 1106 | wrapMode: Text.Wrap | ||
3673 | 1107 | anchors { | ||
3674 | 1108 | left: parent.left | ||
3675 | 1109 | right: parent.right | ||
3676 | 1110 | } | ||
3677 | 1111 | } | ||
3678 | 1112 | >>>>>>> MERGE-SOURCE | ||
3679 | 663 | Button { | 1113 | Button { |
3680 | 664 | text: i18n.tr("Sign In…") | 1114 | text: i18n.tr("Sign In…") |
3681 | 665 | anchors { | 1115 | anchors { |
3682 | @@ -735,8 +1185,38 @@ | |||
3683 | 735 | } | 1185 | } |
3684 | 736 | } | 1186 | } |
3685 | 737 | 1187 | ||
3688 | 738 | Column { | 1188 | <<<<<<< TREE |
3689 | 739 | id: configuration | 1189 | Column { |
3690 | 1190 | id: configuration | ||
3691 | 1191 | ======= | ||
3692 | 1192 | Column { | ||
3693 | 1193 | id: configuration | ||
3694 | 1194 | |||
3695 | 1195 | anchors.bottom: parent.bottom | ||
3696 | 1196 | anchors.left: parent.left | ||
3697 | 1197 | anchors.right: parent.right | ||
3698 | 1198 | ListItem.ThinDivider {} | ||
3699 | 1199 | ListItem.SingleValue { | ||
3700 | 1200 | objectName: "configuration" | ||
3701 | 1201 | text: i18n.tr("Auto download") | ||
3702 | 1202 | value: { | ||
3703 | 1203 | if (UpdateManager.downloadMode === 0) | ||
3704 | 1204 | return i18n.tr("Never") | ||
3705 | 1205 | else if (UpdateManager.downloadMode === 1) | ||
3706 | 1206 | return i18n.tr("On wi-fi") | ||
3707 | 1207 | else if (UpdateManager.downloadMode === 2) | ||
3708 | 1208 | return i18n.tr("Always") | ||
3709 | 1209 | } | ||
3710 | 1210 | progression: true | ||
3711 | 1211 | onClicked: pageStack.push(Qt.resolvedUrl("Configuration.qml")) | ||
3712 | 1212 | } | ||
3713 | 1213 | } | ||
3714 | 1214 | |||
3715 | 1215 | function convert_bytes_to_size(bytes) { | ||
3716 | 1216 | var SIZE_IN_GIB = 1024.0 * 1024.0 * 1024.0; | ||
3717 | 1217 | var SIZE_IN_MIB = 1024.0 * 1024.0; | ||
3718 | 1218 | var SIZE_IN_KIB = 1024.0; | ||
3719 | 1219 | >>>>>>> MERGE-SOURCE | ||
3720 | 740 | 1220 | ||
3721 | 741 | anchors.bottom: parent.bottom | 1221 | anchors.bottom: parent.bottom |
3722 | 742 | anchors.left: parent.left | 1222 | anchors.left: parent.left |
3723 | 743 | 1223 | ||
3724 | === modified file 'plugins/system-update/download_tracker.cpp' | |||
3725 | --- plugins/system-update/download_tracker.cpp 2015-01-23 10:01:34 +0000 | |||
3726 | +++ plugins/system-update/download_tracker.cpp 2015-02-27 05:54:50 +0000 | |||
3727 | @@ -18,10 +18,22 @@ | |||
3728 | 18 | * Authored by: Diego Sarmentero <diego.sarmentero@canonical.com> | 18 | * Authored by: Diego Sarmentero <diego.sarmentero@canonical.com> |
3729 | 19 | */ | 19 | */ |
3730 | 20 | 20 | ||
3735 | 21 | #include <ubuntu/download_manager/download_struct.h> | 21 | <<<<<<< TREE |
3736 | 22 | #include <ubuntu/download_manager/error.h> | 22 | #include <ubuntu/download_manager/download_struct.h> |
3737 | 23 | #include <QProcessEnvironment> | 23 | #include <ubuntu/download_manager/error.h> |
3738 | 24 | 24 | #include <QProcessEnvironment> | |
3739 | 25 | ======= | ||
3740 | 26 | #include <QDebug> | ||
3741 | 27 | #include <QProcessEnvironment> | ||
3742 | 28 | |||
3743 | 29 | #include <ubuntu/download_manager/download_struct.h> | ||
3744 | 30 | #include <ubuntu/download_manager/error.h> | ||
3745 | 31 | |||
3746 | 32 | #include "download_tracker.h" | ||
3747 | 33 | #include "network/network.h" | ||
3748 | 34 | >>>>>>> MERGE-SOURCE | ||
3749 | 35 | |||
3750 | 36 | <<<<<<< TREE | ||
3751 | 25 | #include "download_tracker.h" | 37 | #include "download_tracker.h" |
3752 | 26 | #include "network/network.h" | 38 | #include "network/network.h" |
3753 | 27 | 39 | ||
3754 | @@ -32,6 +44,13 @@ | |||
3755 | 32 | const QString PKCON_COMMAND = "pkcon"; | 44 | const QString PKCON_COMMAND = "pkcon"; |
3756 | 33 | const QString DOWNLOAD_MANAGER_SHA512 = "sha512"; | 45 | const QString DOWNLOAD_MANAGER_SHA512 = "sha512"; |
3757 | 34 | } | 46 | } |
3758 | 47 | ======= | ||
3759 | 48 | namespace { | ||
3760 | 49 | const QString DOWNLOAD_COMMAND = "post-download-command"; | ||
3761 | 50 | const QString APP_ID = "app_id"; | ||
3762 | 51 | const QString PKCON_COMMAND = "pkcon"; | ||
3763 | 52 | } | ||
3764 | 53 | >>>>>>> MERGE-SOURCE | ||
3765 | 35 | 54 | ||
3766 | 36 | namespace UpdatePlugin { | 55 | namespace UpdatePlugin { |
3767 | 37 | 56 | ||
3768 | 38 | 57 | ||
3769 | === modified file 'plugins/system-update/download_tracker.h' | |||
3770 | --- plugins/system-update/download_tracker.h 2015-01-23 09:47:18 +0000 | |||
3771 | +++ plugins/system-update/download_tracker.h 2015-02-27 05:54:50 +0000 | |||
3772 | @@ -81,6 +81,7 @@ | |||
3773 | 81 | void errorFound(const QString &error); | 81 | void errorFound(const QString &error); |
3774 | 82 | 82 | ||
3775 | 83 | private: | 83 | private: |
3776 | 84 | <<<<<<< TREE | ||
3777 | 84 | QString m_clickToken = QString::null; | 85 | QString m_clickToken = QString::null; |
3778 | 85 | QString m_downloadUrl = QString::null; | 86 | QString m_downloadUrl = QString::null; |
3779 | 86 | QString m_packageName = QString::null; | 87 | QString m_packageName = QString::null; |
3780 | @@ -88,6 +89,14 @@ | |||
3781 | 88 | Manager* m_manager = nullptr; | 89 | Manager* m_manager = nullptr; |
3782 | 89 | int m_progress = 0; | 90 | int m_progress = 0; |
3783 | 90 | QString m_download_sha512 = QString::null; | 91 | QString m_download_sha512 = QString::null; |
3784 | 92 | ======= | ||
3785 | 93 | QString m_clickToken = QString::null; | ||
3786 | 94 | QString m_downloadUrl = QString::null; | ||
3787 | 95 | QString m_packageName = QString::null; | ||
3788 | 96 | Download* m_download = nullptr; | ||
3789 | 97 | Manager* m_manager = nullptr; | ||
3790 | 98 | int m_progress = 0; | ||
3791 | 99 | >>>>>>> MERGE-SOURCE | ||
3792 | 91 | 100 | ||
3793 | 92 | void startService(); | 101 | void startService(); |
3794 | 93 | QString getPkconCommand(); | 102 | QString getPkconCommand(); |
3795 | 94 | 103 | ||
3796 | === modified file 'plugins/system-update/network/network.cpp' | |||
3797 | --- plugins/system-update/network/network.cpp 2014-09-30 14:40:53 +0000 | |||
3798 | +++ plugins/system-update/network/network.cpp 2015-02-27 05:54:50 +0000 | |||
3799 | @@ -80,6 +80,7 @@ | |||
3800 | 80 | return; | 80 | return; |
3801 | 81 | } | 81 | } |
3802 | 82 | 82 | ||
3803 | 83 | <<<<<<< TREE | ||
3804 | 83 | int httpStatus = statusAttr.toInt(); | 84 | int httpStatus = statusAttr.toInt(); |
3805 | 84 | 85 | ||
3806 | 85 | if (httpStatus == 200 || httpStatus == 201) { | 86 | if (httpStatus == 200 || httpStatus == 201) { |
3807 | @@ -118,6 +119,44 @@ | |||
3808 | 118 | m_apps[name]->setDownloadSha512(download_sha512); | 119 | m_apps[name]->setDownloadSha512(download_sha512); |
3809 | 119 | updates = true; | 120 | updates = true; |
3810 | 120 | } | 121 | } |
3811 | 122 | ======= | ||
3812 | 123 | int httpStatus = statusAttr.toInt(); | ||
3813 | 124 | |||
3814 | 125 | if (httpStatus == 200 || httpStatus == 201) { | ||
3815 | 126 | if (reply->hasRawHeader(X_CLICK_TOKEN)) { | ||
3816 | 127 | Update* app = qobject_cast<Update*>( | ||
3817 | 128 | reply->request().originatingObject()); | ||
3818 | 129 | if (app != nullptr) { | ||
3819 | 130 | QString header(reply->rawHeader(X_CLICK_TOKEN)); | ||
3820 | 131 | Q_EMIT clickTokenObtained(app, header); | ||
3821 | 132 | } | ||
3822 | 133 | reply->deleteLater(); | ||
3823 | 134 | return; | ||
3824 | 135 | } | ||
3825 | 136 | |||
3826 | 137 | QByteArray payload = reply->readAll(); | ||
3827 | 138 | QJsonDocument document = QJsonDocument::fromJson(payload); | ||
3828 | 139 | |||
3829 | 140 | RequestObject* state = qobject_cast<RequestObject*>(reply->request().originatingObject()); | ||
3830 | 141 | if (state != nullptr && state->operation.contains(APPS_DATA) && document.isArray()) { | ||
3831 | 142 | QJsonArray array = document.array(); | ||
3832 | 143 | bool updates = false; | ||
3833 | 144 | for (int i = 0; i < array.size(); i++) { | ||
3834 | 145 | QJsonObject object = array.at(i).toObject(); | ||
3835 | 146 | QString name = object.value("name").toString(); | ||
3836 | 147 | QString version = object.value("version").toString(); | ||
3837 | 148 | QString icon_url = object.value("icon_url").toString(); | ||
3838 | 149 | QString url = object.value("download_url").toString(); | ||
3839 | 150 | int size = object.value("binary_filesize").toVariant().toInt(); | ||
3840 | 151 | if (m_apps.contains(name)) { | ||
3841 | 152 | m_apps[name]->setRemoteVersion(version); | ||
3842 | 153 | if (m_apps[name]->updateRequired()) { | ||
3843 | 154 | m_apps[name]->setIconUrl(icon_url); | ||
3844 | 155 | m_apps[name]->setDownloadUrl(url); | ||
3845 | 156 | m_apps[name]->setBinaryFilesize(size); | ||
3846 | 157 | updates = true; | ||
3847 | 158 | } | ||
3848 | 159 | >>>>>>> MERGE-SOURCE | ||
3849 | 121 | } | 160 | } |
3850 | 122 | } | 161 | } |
3851 | 123 | if (updates) { | 162 | if (updates) { |
3852 | 124 | 163 | ||
3853 | === modified file 'plugins/system-update/update.cpp' | |||
3854 | === modified file 'plugins/system-update/update.h' | |||
3855 | === modified file 'plugins/system-update/update_manager.cpp' | |||
3856 | === modified file 'plugins/system-update/update_manager.h' | |||
3857 | === modified file 'plugins/time-date/timedate.cpp' | |||
3858 | === modified file 'plugins/wifi/NetworkDetails.qml' | |||
3859 | --- plugins/wifi/NetworkDetails.qml 2015-01-20 14:11:24 +0000 | |||
3860 | +++ plugins/wifi/NetworkDetails.qml 2015-02-27 05:54:50 +0000 | |||
3861 | @@ -84,8 +84,13 @@ | |||
3862 | 84 | ListItem.Divider {} | 84 | ListItem.Divider {} |
3863 | 85 | 85 | ||
3864 | 86 | Button { | 86 | Button { |
3865 | 87 | <<<<<<< TREE | ||
3866 | 87 | objectName: "forgetNetwork" | 88 | objectName: "forgetNetwork" |
3867 | 88 | text : i18n.tr("Forget this network") | 89 | text : i18n.tr("Forget this network") |
3868 | 90 | ======= | ||
3869 | 91 | objectName: "forgetNetwork" | ||
3870 | 92 | text : i18n.tr("Forget network") | ||
3871 | 93 | >>>>>>> MERGE-SOURCE | ||
3872 | 89 | anchors { | 94 | anchors { |
3873 | 90 | left: parent.left | 95 | left: parent.left |
3874 | 91 | right: parent.right | 96 | right: parent.right |
3875 | 92 | 97 | ||
3876 | === modified file 'plugins/wifi/NetworkDetailsBrief.qml' | |||
3877 | --- plugins/wifi/NetworkDetailsBrief.qml 2015-01-20 14:11:24 +0000 | |||
3878 | +++ plugins/wifi/NetworkDetailsBrief.qml 2015-02-27 05:54:50 +0000 | |||
3879 | @@ -1,3 +1,4 @@ | |||
3880 | 1 | <<<<<<< TREE | ||
3881 | 1 | /* | 2 | /* |
3882 | 2 | * This file is part of system-settings | 3 | * This file is part of system-settings |
3883 | 3 | * | 4 | * |
3884 | @@ -77,3 +78,84 @@ | |||
3885 | 77 | } | 78 | } |
3886 | 78 | } | 79 | } |
3887 | 79 | } | 80 | } |
3888 | 81 | ======= | ||
3889 | 82 | /* | ||
3890 | 83 | * This file is part of system-settings | ||
3891 | 84 | * | ||
3892 | 85 | * Copyright (C) 2014 Canonical Ltd. | ||
3893 | 86 | * | ||
3894 | 87 | * Contact: Jonas G. Drange <jonas.drange@canonical.com> | ||
3895 | 88 | * | ||
3896 | 89 | * This program is free software: you can redistribute it and/or modify it | ||
3897 | 90 | * under the terms of the GNU General Public License version 3, as published | ||
3898 | 91 | * by the Free Software Foundation. | ||
3899 | 92 | * | ||
3900 | 93 | * This program is distributed in the hope that it will be useful, but | ||
3901 | 94 | * WITHOUT ANY WARRANTY; without even the implied warranties of | ||
3902 | 95 | * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR | ||
3903 | 96 | * PURPOSE. See the GNU General Public License for more details. | ||
3904 | 97 | * | ||
3905 | 98 | * You should have received a copy of the GNU General Public License along | ||
3906 | 99 | * with this program. If not, see <http://www.gnu.org/licenses/>. | ||
3907 | 100 | */ | ||
3908 | 101 | |||
3909 | 102 | import QtQuick 2.0 | ||
3910 | 103 | import QtQuick.Layouts 1.1 | ||
3911 | 104 | import SystemSettings 1.0 | ||
3912 | 105 | import Ubuntu.Components 0.1 | ||
3913 | 106 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
3914 | 107 | import Ubuntu.SystemSettings.Wifi 1.0 | ||
3915 | 108 | |||
3916 | 109 | ItemPage { | ||
3917 | 110 | |||
3918 | 111 | property string networkName | ||
3919 | 112 | property var accessPoint | ||
3920 | 113 | |||
3921 | 114 | title: networkName | ||
3922 | 115 | |||
3923 | 116 | Column { | ||
3924 | 117 | |||
3925 | 118 | anchors.fill: parent | ||
3926 | 119 | |||
3927 | 120 | ListItem.Divider {} | ||
3928 | 121 | |||
3929 | 122 | Button { | ||
3930 | 123 | text : i18n.tr("Forget network") | ||
3931 | 124 | anchors { | ||
3932 | 125 | left: parent.left | ||
3933 | 126 | right: parent.right | ||
3934 | 127 | margins: units.gu(2) | ||
3935 | 128 | } | ||
3936 | 129 | onClicked: { | ||
3937 | 130 | if (DbusHelper.forgetActiveDevice()) { | ||
3938 | 131 | accessPoint.checked = false; | ||
3939 | 132 | accessPoint.checkedChanged(false) | ||
3940 | 133 | } | ||
3941 | 134 | |||
3942 | 135 | } | ||
3943 | 136 | } | ||
3944 | 137 | |||
3945 | 138 | ListItem.Standard { | ||
3946 | 139 | text: i18n.tr("IP address") | ||
3947 | 140 | id: addressItem | ||
3948 | 141 | control: TextField { | ||
3949 | 142 | text: DbusHelper.wifiIp4Address | ||
3950 | 143 | readOnly: true | ||
3951 | 144 | horizontalAlignment: TextInput.AlignRight | ||
3952 | 145 | width: addressItem.width/2 | ||
3953 | 146 | persistentSelection: true | ||
3954 | 147 | font.pixelSize: units.dp(16) | ||
3955 | 148 | font.weight: Font.Light | ||
3956 | 149 | font.family: "Ubuntu" | ||
3957 | 150 | color: "#AAAAAA" | ||
3958 | 151 | maximumLength: 20 | ||
3959 | 152 | focus: true | ||
3960 | 153 | clip: true | ||
3961 | 154 | opacity: 0.9 | ||
3962 | 155 | cursorVisible: false | ||
3963 | 156 | hasClearButton: false | ||
3964 | 157 | } | ||
3965 | 158 | } | ||
3966 | 159 | } | ||
3967 | 160 | } | ||
3968 | 161 | >>>>>>> MERGE-SOURCE | ||
3969 | 80 | 162 | ||
3970 | === modified file 'plugins/wifi/OtherNetwork.qml' | |||
3971 | --- plugins/wifi/OtherNetwork.qml 2015-01-09 08:47:53 +0000 | |||
3972 | +++ plugins/wifi/OtherNetwork.qml 2015-02-27 05:54:50 +0000 | |||
3973 | @@ -23,122 +23,286 @@ | |||
3974 | 23 | import Ubuntu.SystemSettings.Wifi 1.0 | 23 | import Ubuntu.SystemSettings.Wifi 1.0 |
3975 | 24 | import QMenuModel 0.1 | 24 | import QMenuModel 0.1 |
3976 | 25 | 25 | ||
4093 | 26 | Component { | 26 | <<<<<<< TREE |
4094 | 27 | 27 | Component { | |
4095 | 28 | Dialog { | 28 | |
4096 | 29 | 29 | Dialog { | |
4097 | 30 | id: otherNetworkDialog | 30 | |
4098 | 31 | objectName: "otherNetworkDialog" | 31 | id: otherNetworkDialog |
4099 | 32 | anchorToKeyboard: true | 32 | objectName: "otherNetworkDialog" |
4100 | 33 | 33 | anchorToKeyboard: true | |
4101 | 34 | function settingsValid() { | 34 | |
4102 | 35 | if(networkname.length == 0) { | 35 | function settingsValid() { |
4103 | 36 | return false; | 36 | if(networkname.length == 0) { |
4104 | 37 | } | 37 | return false; |
4105 | 38 | if(securityList.selectedIndex == 0) { | 38 | } |
4106 | 39 | return true | 39 | if(securityList.selectedIndex == 0) { |
4107 | 40 | } | 40 | return true |
4108 | 41 | if(securityList.selectedIndex == 1) { | 41 | } |
4109 | 42 | return password.length >= 8 | 42 | if(securityList.selectedIndex == 1) { |
4110 | 43 | } | 43 | return password.length >= 8 |
4111 | 44 | // WEP | 44 | } |
4112 | 45 | return password.length === 5 || | 45 | // WEP |
4113 | 46 | password.length === 10 || | 46 | return password.length === 5 || |
4114 | 47 | password.length === 13 || | 47 | password.length === 10 || |
4115 | 48 | password.length === 26; | 48 | password.length === 13 || |
4116 | 49 | } | 49 | password.length === 26; |
4117 | 50 | 50 | } | |
4118 | 51 | title: i18n.tr("Connect to Hidden Network") | 51 | |
4119 | 52 | text: feedback.enabled ? feedback.text : ""; | 52 | title: i18n.tr("Connect to Hidden Network") |
4120 | 53 | 53 | text: feedback.enabled ? feedback.text : ""; | |
4121 | 54 | Common { | 54 | |
4122 | 55 | id: common | 55 | Common { |
4123 | 56 | } | 56 | id: common |
4124 | 57 | 57 | } | |
4125 | 58 | states: [ | 58 | |
4126 | 59 | State { | 59 | states: [ |
4127 | 60 | name: "CONNECTING" | 60 | State { |
4128 | 61 | PropertyChanges { | 61 | name: "CONNECTING" |
4129 | 62 | target: connectAction | 62 | PropertyChanges { |
4130 | 63 | enabled: false | 63 | target: connectAction |
4131 | 64 | } | 64 | enabled: false |
4132 | 65 | PropertyChanges { | 65 | } |
4133 | 66 | target: connectButtonIndicator | 66 | PropertyChanges { |
4134 | 67 | running: true | 67 | target: connectButtonIndicator |
4135 | 68 | } | 68 | running: true |
4136 | 69 | PropertyChanges { | 69 | } |
4137 | 70 | target: passwordVisibleSwitch | 70 | PropertyChanges { |
4138 | 71 | enabled: false | 71 | target: passwordVisibleSwitch |
4139 | 72 | } | 72 | enabled: false |
4140 | 73 | PropertyChanges { | 73 | } |
4141 | 74 | target: passwordVisibleLabel | 74 | PropertyChanges { |
4142 | 75 | opacity: 0.5 | 75 | target: passwordVisibleLabel |
4143 | 76 | } | 76 | opacity: 0.5 |
4144 | 77 | PropertyChanges { | 77 | } |
4145 | 78 | target: password | 78 | PropertyChanges { |
4146 | 79 | enabled: false | 79 | target: password |
4147 | 80 | } | 80 | enabled: false |
4148 | 81 | PropertyChanges { | 81 | } |
4149 | 82 | target: passwordListLabel | 82 | PropertyChanges { |
4150 | 83 | opacity: 0.5 | 83 | target: passwordListLabel |
4151 | 84 | } | 84 | opacity: 0.5 |
4152 | 85 | PropertyChanges { | 85 | } |
4153 | 86 | target: securityList | 86 | PropertyChanges { |
4154 | 87 | enabled: false | 87 | target: securityList |
4155 | 88 | opacity: 0.5 | 88 | enabled: false |
4156 | 89 | } | 89 | opacity: 0.5 |
4157 | 90 | PropertyChanges { | 90 | } |
4158 | 91 | target: securityListLabel | 91 | PropertyChanges { |
4159 | 92 | opacity: 0.5 | 92 | target: securityListLabel |
4160 | 93 | } | 93 | opacity: 0.5 |
4161 | 94 | PropertyChanges { | 94 | } |
4162 | 95 | target: networkname | 95 | PropertyChanges { |
4163 | 96 | enabled: false | 96 | target: networkname |
4164 | 97 | } | 97 | enabled: false |
4165 | 98 | PropertyChanges { | 98 | } |
4166 | 99 | target: networknameLabel | 99 | PropertyChanges { |
4167 | 100 | opacity: 0.5 | 100 | target: networknameLabel |
4168 | 101 | } | 101 | opacity: 0.5 |
4169 | 102 | PropertyChanges { | 102 | } |
4170 | 103 | target: feedback | 103 | PropertyChanges { |
4171 | 104 | enabled: true | 104 | target: feedback |
4172 | 105 | } | 105 | enabled: true |
4173 | 106 | }, | 106 | } |
4174 | 107 | State { | 107 | }, |
4175 | 108 | name: "FAILED" | 108 | State { |
4176 | 109 | PropertyChanges { | 109 | name: "FAILED" |
4177 | 110 | target: feedback | 110 | PropertyChanges { |
4178 | 111 | enabled: true | 111 | target: feedback |
4179 | 112 | } | 112 | enabled: true |
4180 | 113 | }, | 113 | } |
4181 | 114 | State { | 114 | }, |
4182 | 115 | name: "SUCCEEDED" | 115 | State { |
4183 | 116 | PropertyChanges { | 116 | name: "SUCCEEDED" |
4184 | 117 | target: successIndicator | 117 | PropertyChanges { |
4185 | 118 | running: true | 118 | target: successIndicator |
4186 | 119 | } | 119 | running: true |
4187 | 120 | PropertyChanges { | 120 | } |
4188 | 121 | target: cancelButton | 121 | PropertyChanges { |
4189 | 122 | enabled: false | 122 | target: cancelButton |
4190 | 123 | } | 123 | enabled: false |
4191 | 124 | PropertyChanges { | 124 | } |
4192 | 125 | target: connectAction | 125 | PropertyChanges { |
4193 | 126 | enabled: false | 126 | target: connectAction |
4194 | 127 | } | 127 | enabled: false |
4195 | 128 | } | 128 | } |
4196 | 129 | ] | 129 | } |
4197 | 130 | 130 | ] | |
4198 | 131 | Label { | 131 | |
4199 | 132 | property bool enabled: false | 132 | Label { |
4200 | 133 | id: feedback | 133 | property bool enabled: false |
4201 | 134 | horizontalAlignment: Text.AlignHCenter | 134 | id: feedback |
4202 | 135 | height: contentHeight | 135 | horizontalAlignment: Text.AlignHCenter |
4203 | 136 | wrapMode: Text.Wrap | 136 | height: contentHeight |
4204 | 137 | visible: false | 137 | wrapMode: Text.Wrap |
4205 | 138 | } | 138 | visible: false |
4206 | 139 | 139 | } | |
4207 | 140 | Label { | 140 | |
4208 | 141 | id: networknameLabel | 141 | Label { |
4209 | 142 | id: networknameLabel | ||
4210 | 143 | ======= | ||
4211 | 144 | Component { | ||
4212 | 145 | |||
4213 | 146 | Dialog { | ||
4214 | 147 | |||
4215 | 148 | id: otherNetworkDialog | ||
4216 | 149 | objectName: "otherNetworkDialog" | ||
4217 | 150 | anchorToKeyboard: true | ||
4218 | 151 | |||
4219 | 152 | /* The following is a (bad) workaround for bugs | ||
4220 | 153 | #1337556 | ||
4221 | 154 | #1337555 | ||
4222 | 155 | |||
4223 | 156 | If the Dialog does not shrink after a user chooses e.g. WPA, | ||
4224 | 157 | the anchorToKeyboard setting of OrientationHelper have no effect, | ||
4225 | 158 | since the dialog never shrinks in size. | ||
4226 | 159 | |||
4227 | 160 | This workaround resizes the Dialog. | ||
4228 | 161 | */ | ||
4229 | 162 | |||
4230 | 163 | property int dialogVisualsHeight | ||
4231 | 164 | function getVisibleChildren () { | ||
4232 | 165 | var children = [feedback, networknameLabel, networkname, | ||
4233 | 166 | securityListLabel, securityList, passwordListLabel, | ||
4234 | 167 | password, passwordVisiblityRow, buttonRow]; | ||
4235 | 168 | var ret = []; | ||
4236 | 169 | children.forEach(function (child) { | ||
4237 | 170 | if (child.visible) { | ||
4238 | 171 | ret.push(child); | ||
4239 | 172 | } | ||
4240 | 173 | }); | ||
4241 | 174 | return ret; | ||
4242 | 175 | } | ||
4243 | 176 | |||
4244 | 177 | function getVisibleChildrenHeight () { | ||
4245 | 178 | var h = 0; | ||
4246 | 179 | getVisibleChildren().forEach(function (child) { | ||
4247 | 180 | h = h + child.height; | ||
4248 | 181 | }); | ||
4249 | 182 | return h; | ||
4250 | 183 | } | ||
4251 | 184 | |||
4252 | 185 | Component.onCompleted: { | ||
4253 | 186 | dialogVisualsHeight = | ||
4254 | 187 | __foreground.height - getVisibleChildrenHeight(); | ||
4255 | 188 | } | ||
4256 | 189 | |||
4257 | 190 | Binding { | ||
4258 | 191 | target: __foreground | ||
4259 | 192 | property: "height" | ||
4260 | 193 | value: dialogVisualsHeight + getVisibleChildrenHeight() | ||
4261 | 194 | when: dialogVisualsHeight | ||
4262 | 195 | } | ||
4263 | 196 | |||
4264 | 197 | function settingsValid() { | ||
4265 | 198 | if(networkname.length == 0) { | ||
4266 | 199 | return false; | ||
4267 | 200 | } | ||
4268 | 201 | if(securityList.selectedIndex == 0) { | ||
4269 | 202 | return true | ||
4270 | 203 | } | ||
4271 | 204 | if(securityList.selectedIndex == 1) { | ||
4272 | 205 | return password.length >= 8 | ||
4273 | 206 | } | ||
4274 | 207 | // WEP | ||
4275 | 208 | return password.length === 5 || | ||
4276 | 209 | password.length === 10 || | ||
4277 | 210 | password.length === 13 || | ||
4278 | 211 | password.length === 26; | ||
4279 | 212 | } | ||
4280 | 213 | |||
4281 | 214 | title: i18n.tr("Connect to Hidden Network") | ||
4282 | 215 | text: feedback.enabled ? feedback.text : ""; | ||
4283 | 216 | |||
4284 | 217 | Common { | ||
4285 | 218 | id: common | ||
4286 | 219 | } | ||
4287 | 220 | |||
4288 | 221 | states: [ | ||
4289 | 222 | State { | ||
4290 | 223 | name: "CONNECTING" | ||
4291 | 224 | PropertyChanges { | ||
4292 | 225 | target: connectAction | ||
4293 | 226 | enabled: false | ||
4294 | 227 | } | ||
4295 | 228 | PropertyChanges { | ||
4296 | 229 | target: connectButtonIndicator | ||
4297 | 230 | running: true | ||
4298 | 231 | } | ||
4299 | 232 | PropertyChanges { | ||
4300 | 233 | target: passwordVisibleSwitch | ||
4301 | 234 | enabled: false | ||
4302 | 235 | } | ||
4303 | 236 | PropertyChanges { | ||
4304 | 237 | target: passwordVisibleLabel | ||
4305 | 238 | opacity: 0.5 | ||
4306 | 239 | } | ||
4307 | 240 | PropertyChanges { | ||
4308 | 241 | target: password | ||
4309 | 242 | enabled: false | ||
4310 | 243 | } | ||
4311 | 244 | PropertyChanges { | ||
4312 | 245 | target: passwordListLabel | ||
4313 | 246 | opacity: 0.5 | ||
4314 | 247 | } | ||
4315 | 248 | PropertyChanges { | ||
4316 | 249 | target: securityList | ||
4317 | 250 | enabled: false | ||
4318 | 251 | opacity: 0.5 | ||
4319 | 252 | } | ||
4320 | 253 | PropertyChanges { | ||
4321 | 254 | target: securityListLabel | ||
4322 | 255 | opacity: 0.5 | ||
4323 | 256 | } | ||
4324 | 257 | PropertyChanges { | ||
4325 | 258 | target: networkname | ||
4326 | 259 | enabled: false | ||
4327 | 260 | } | ||
4328 | 261 | PropertyChanges { | ||
4329 | 262 | target: networknameLabel | ||
4330 | 263 | opacity: 0.5 | ||
4331 | 264 | } | ||
4332 | 265 | PropertyChanges { | ||
4333 | 266 | target: feedback | ||
4334 | 267 | enabled: true | ||
4335 | 268 | } | ||
4336 | 269 | }, | ||
4337 | 270 | State { | ||
4338 | 271 | name: "FAILED" | ||
4339 | 272 | PropertyChanges { | ||
4340 | 273 | target: feedback | ||
4341 | 274 | enabled: true | ||
4342 | 275 | } | ||
4343 | 276 | }, | ||
4344 | 277 | State { | ||
4345 | 278 | name: "SUCCEEDED" | ||
4346 | 279 | PropertyChanges { | ||
4347 | 280 | target: successIndicator | ||
4348 | 281 | running: true | ||
4349 | 282 | } | ||
4350 | 283 | PropertyChanges { | ||
4351 | 284 | target: cancelButton | ||
4352 | 285 | enabled: false | ||
4353 | 286 | } | ||
4354 | 287 | PropertyChanges { | ||
4355 | 288 | target: connectAction | ||
4356 | 289 | enabled: false | ||
4357 | 290 | } | ||
4358 | 291 | } | ||
4359 | 292 | ] | ||
4360 | 293 | |||
4361 | 294 | Label { | ||
4362 | 295 | property bool enabled: false | ||
4363 | 296 | id: feedback | ||
4364 | 297 | horizontalAlignment: Text.AlignHCenter | ||
4365 | 298 | height: contentHeight | ||
4366 | 299 | wrapMode: Text.Wrap | ||
4367 | 300 | visible: false | ||
4368 | 301 | } | ||
4369 | 302 | |||
4370 | 303 | Label { | ||
4371 | 304 | id: networknameLabel | ||
4372 | 305 | >>>>>>> MERGE-SOURCE | ||
4373 | 142 | text : i18n.tr("Network name") | 306 | text : i18n.tr("Network name") |
4374 | 143 | objectName: "networknameLabel" | 307 | objectName: "networknameLabel" |
4375 | 144 | fontSize: "medium" | 308 | fontSize: "medium" |
4376 | @@ -149,6 +313,7 @@ | |||
4377 | 149 | 313 | ||
4378 | 150 | TextField { | 314 | TextField { |
4379 | 151 | id : networkname | 315 | id : networkname |
4380 | 316 | <<<<<<< TREE | ||
4381 | 152 | objectName: "networkname" | 317 | objectName: "networkname" |
4382 | 153 | inputMethodHints: Qt.ImhNoPredictiveText | 318 | inputMethodHints: Qt.ImhNoPredictiveText |
4383 | 154 | Component.onCompleted: forceActiveFocus() | 319 | Component.onCompleted: forceActiveFocus() |
4384 | @@ -162,6 +327,20 @@ | |||
4385 | 162 | font.bold: true | 327 | font.bold: true |
4386 | 163 | color: Theme.palette.selected.backgroundText | 328 | color: Theme.palette.selected.backgroundText |
4387 | 164 | elide: Text.ElideRight | 329 | elide: Text.ElideRight |
4388 | 330 | ======= | ||
4389 | 331 | objectName: "networkname" | ||
4390 | 332 | inputMethodHints: Qt.ImhNoPredictiveText | ||
4391 | 333 | } | ||
4392 | 334 | |||
4393 | 335 | Label { | ||
4394 | 336 | id: securityListLabel | ||
4395 | 337 | text : i18n.tr("Security") | ||
4396 | 338 | objectName: "securityListLabel" | ||
4397 | 339 | fontSize: "medium" | ||
4398 | 340 | font.bold: true | ||
4399 | 341 | color: Theme.palette.selected.backgroundText | ||
4400 | 342 | elide: Text.ElideRight | ||
4401 | 343 | >>>>>>> MERGE-SOURCE | ||
4402 | 165 | } | 344 | } |
4403 | 166 | 345 | ||
4404 | 167 | ListItem.ItemSelector { | 346 | ListItem.ItemSelector { |
4405 | @@ -188,12 +367,22 @@ | |||
4406 | 188 | id : password | 367 | id : password |
4407 | 189 | objectName: "password" | 368 | objectName: "password" |
4408 | 190 | visible: securityList.selectedIndex !== 0 | 369 | visible: securityList.selectedIndex !== 0 |
4409 | 370 | <<<<<<< TREE | ||
4410 | 191 | echoMode: passwordVisibleSwitch.checked ? | 371 | echoMode: passwordVisibleSwitch.checked ? |
4411 | 192 | TextInput.Normal : TextInput.Password | 372 | TextInput.Normal : TextInput.Password |
4412 | 193 | inputMethodHints: Qt.ImhNoPredictiveText | 373 | inputMethodHints: Qt.ImhNoPredictiveText |
4413 | 194 | onAccepted: { | 374 | onAccepted: { |
4414 | 195 | connectAction.trigger(); | 375 | connectAction.trigger(); |
4415 | 196 | } | 376 | } |
4416 | 377 | ======= | ||
4417 | 378 | echoMode: passwordVisibleSwitch.checked ? | ||
4418 | 379 | TextInput.Normal : TextInput.Password | ||
4419 | 380 | inputMethodHints: passwordVisibleSwitch.checked ? | ||
4420 | 381 | Qt.ImhHiddenText : Qt.ImhNoPredictiveText; | ||
4421 | 382 | onAccepted: { | ||
4422 | 383 | connectAction.trigger(); | ||
4423 | 384 | } | ||
4424 | 385 | >>>>>>> MERGE-SOURCE | ||
4425 | 197 | } | 386 | } |
4426 | 198 | 387 | ||
4427 | 199 | Row { | 388 | Row { |
4428 | @@ -204,6 +393,7 @@ | |||
4429 | 204 | 393 | ||
4430 | 205 | CheckBox { | 394 | CheckBox { |
4431 | 206 | id: passwordVisibleSwitch | 395 | id: passwordVisibleSwitch |
4432 | 396 | <<<<<<< TREE | ||
4433 | 207 | activeFocusOnPress: false | 397 | activeFocusOnPress: false |
4434 | 208 | } | 398 | } |
4435 | 209 | 399 | ||
4436 | @@ -284,6 +474,87 @@ | |||
4437 | 284 | 474 | ||
4438 | 285 | Action { | 475 | Action { |
4439 | 286 | id: connectAction | 476 | id: connectAction |
4440 | 477 | ======= | ||
4441 | 478 | } | ||
4442 | 479 | |||
4443 | 480 | Label { | ||
4444 | 481 | id: passwordVisibleLabel | ||
4445 | 482 | text : i18n.tr("Show password") | ||
4446 | 483 | objectName: "passwordVisibleLabel" | ||
4447 | 484 | fontSize: "medium" | ||
4448 | 485 | color: Theme.palette.selected.backgroundText | ||
4449 | 486 | elide: Text.ElideRight | ||
4450 | 487 | height: passwordVisibleSwitch.height | ||
4451 | 488 | verticalAlignment: Text.AlignVCenter | ||
4452 | 489 | MouseArea { | ||
4453 | 490 | anchors { | ||
4454 | 491 | fill: parent | ||
4455 | 492 | } | ||
4456 | 493 | onClicked: { | ||
4457 | 494 | passwordVisibleSwitch.checked = | ||
4458 | 495 | !passwordVisibleSwitch.checked | ||
4459 | 496 | } | ||
4460 | 497 | } | ||
4461 | 498 | } | ||
4462 | 499 | } | ||
4463 | 500 | |||
4464 | 501 | RowLayout { | ||
4465 | 502 | id: buttonRow | ||
4466 | 503 | anchors { | ||
4467 | 504 | left: parent.left | ||
4468 | 505 | right: parent.right | ||
4469 | 506 | } | ||
4470 | 507 | spacing: units.gu(2) | ||
4471 | 508 | height: cancelButton.height | ||
4472 | 509 | |||
4473 | 510 | Button { | ||
4474 | 511 | id: cancelButton | ||
4475 | 512 | objectName: "cancel" | ||
4476 | 513 | Layout.fillWidth: true | ||
4477 | 514 | text: i18n.tr("Cancel") | ||
4478 | 515 | onClicked: { | ||
4479 | 516 | PopupUtils.close(otherNetworkDialog); | ||
4480 | 517 | |||
4481 | 518 | // If this dialog created the connection, | ||
4482 | 519 | // disconnect the device | ||
4483 | 520 | if (otherNetworkDialog.state === "CONNECTING") { | ||
4484 | 521 | DbusHelper.forgetActiveDevice(); | ||
4485 | 522 | } | ||
4486 | 523 | } | ||
4487 | 524 | } | ||
4488 | 525 | |||
4489 | 526 | Button { | ||
4490 | 527 | id: connectButton | ||
4491 | 528 | objectName: "connect" | ||
4492 | 529 | Layout.fillWidth: true | ||
4493 | 530 | text: i18n.tr("Connect") | ||
4494 | 531 | enabled: connectAction.enabled | ||
4495 | 532 | action: connectAction | ||
4496 | 533 | Icon { | ||
4497 | 534 | height: parent.height - units.gu(1.5) | ||
4498 | 535 | width: parent.height - units.gu(1.5) | ||
4499 | 536 | anchors { | ||
4500 | 537 | centerIn: parent | ||
4501 | 538 | } | ||
4502 | 539 | name: "tick" | ||
4503 | 540 | color: "green" | ||
4504 | 541 | visible: successIndicator.running | ||
4505 | 542 | } | ||
4506 | 543 | ActivityIndicator { | ||
4507 | 544 | id: connectButtonIndicator | ||
4508 | 545 | running: false | ||
4509 | 546 | visible: running | ||
4510 | 547 | height: parent.height - units.gu(1.5) | ||
4511 | 548 | anchors { | ||
4512 | 549 | centerIn: parent | ||
4513 | 550 | } | ||
4514 | 551 | } | ||
4515 | 552 | } | ||
4516 | 553 | } | ||
4517 | 554 | |||
4518 | 555 | Action { | ||
4519 | 556 | id: connectAction | ||
4520 | 557 | >>>>>>> MERGE-SOURCE | ||
4521 | 287 | enabled: settingsValid() | 558 | enabled: settingsValid() |
4522 | 288 | onTriggered: { | 559 | onTriggered: { |
4523 | 289 | DbusHelper.connect( | 560 | DbusHelper.connect( |
4524 | 290 | 561 | ||
4525 | === modified file 'plugins/wifi/PageComponent.qml' | |||
4526 | --- plugins/wifi/PageComponent.qml 2014-11-06 13:59:50 +0000 | |||
4527 | +++ plugins/wifi/PageComponent.qml 2015-02-27 05:54:50 +0000 | |||
4528 | @@ -135,6 +135,7 @@ | |||
4529 | 135 | } | 135 | } |
4530 | 136 | 136 | ||
4531 | 137 | ListItem.SingleValue { | 137 | ListItem.SingleValue { |
4532 | 138 | <<<<<<< TREE | ||
4533 | 138 | objectName: "connectToHiddenNetwork" | 139 | objectName: "connectToHiddenNetwork" |
4534 | 139 | text: i18n.tr("Connect to hidden network…") | 140 | text: i18n.tr("Connect to hidden network…") |
4535 | 140 | visible : (actionGroup.actionObject.valid ? | 141 | visible : (actionGroup.actionObject.valid ? |
4536 | @@ -149,6 +150,21 @@ | |||
4537 | 149 | id: otherNetworLoader | 150 | id: otherNetworLoader |
4538 | 150 | asynchronous: false | 151 | asynchronous: false |
4539 | 151 | } | 152 | } |
4540 | 153 | ======= | ||
4541 | 154 | objectName: "connectToHiddenNetwork" | ||
4542 | 155 | text: i18n.tr("Connect to hidden network…") | ||
4543 | 156 | progression: true | ||
4544 | 157 | onClicked: { | ||
4545 | 158 | otherNetworLoader.source = "OtherNetwork.qml"; | ||
4546 | 159 | PopupUtils.open(otherNetworLoader.item); | ||
4547 | 160 | } | ||
4548 | 161 | } | ||
4549 | 162 | |||
4550 | 163 | Loader { | ||
4551 | 164 | id: otherNetworLoader | ||
4552 | 165 | asynchronous: false | ||
4553 | 166 | } | ||
4554 | 167 | >>>>>>> MERGE-SOURCE | ||
4555 | 152 | } | 168 | } |
4556 | 153 | 169 | ||
4557 | 154 | // Only allow flicking if the content doesn't fit on the page | 170 | // Only allow flicking if the content doesn't fit on the page |
4558 | @@ -156,4 +172,5 @@ | |||
4559 | 156 | Flickable.DragAndOvershootBounds : | 172 | Flickable.DragAndOvershootBounds : |
4560 | 157 | Flickable.StopAtBounds | 173 | Flickable.StopAtBounds |
4561 | 158 | } | 174 | } |
4562 | 175 | |||
4563 | 159 | } | 176 | } |
4564 | 160 | 177 | ||
4565 | === modified file 'po/CMakeLists.txt' | |||
4566 | --- po/CMakeLists.txt 2015-02-09 15:43:08 +0000 | |||
4567 | +++ po/CMakeLists.txt 2015-02-27 05:54:50 +0000 | |||
4568 | @@ -42,7 +42,11 @@ | |||
4569 | 42 | --copyright=\"Canonical Ltd.\" | 42 | --copyright=\"Canonical Ltd.\" |
4570 | 43 | --package-name ubuntu-system-settings | 43 | --package-name ubuntu-system-settings |
4571 | 44 | --qt --c++ --add-comments=TRANSLATORS | 44 | --qt --c++ --add-comments=TRANSLATORS |
4572 | 45 | <<<<<<< TREE | ||
4573 | 45 | --keyword=QT_TR_NOOP --keyword=ctr:1c,2 | 46 | --keyword=QT_TR_NOOP --keyword=ctr:1c,2 |
4574 | 47 | ======= | ||
4575 | 48 | --keyword=QT_TR_NOOP --keyword=qsTr:1,2c | ||
4576 | 49 | >>>>>>> MERGE-SOURCE | ||
4577 | 46 | --keyword=tr --keyword=tr:1,2 --from-code=UTF-8 | 50 | --keyword=tr --keyword=tr:1,2 --from-code=UTF-8 |
4578 | 47 | ${QMLFILES} "${CMAKE_CURRENT_BINARY_DIR}/settings.js" | 51 | ${QMLFILES} "${CMAKE_CURRENT_BINARY_DIR}/settings.js" |
4579 | 48 | WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" | 52 | WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" |
4580 | 49 | 53 | ||
4581 | === modified file 'po/am.po' | |||
4582 | --- po/am.po 2015-02-03 08:00:24 +0000 | |||
4583 | +++ po/am.po 2015-02-27 05:54:50 +0000 | |||
4584 | @@ -7,14 +7,20 @@ | |||
4585 | 7 | msgstr "" | 7 | msgstr "" |
4586 | 8 | "Project-Id-Version: ubuntu-system-settings\n" | 8 | "Project-Id-Version: ubuntu-system-settings\n" |
4587 | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
4588 | 10 | <<<<<<< TREE | ||
4589 | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" | 11 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" |
4590 | 11 | "PO-Revision-Date: 2015-02-01 01:19+0000\n" | 12 | "PO-Revision-Date: 2015-02-01 01:19+0000\n" |
4591 | 13 | ======= | ||
4592 | 14 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" | ||
4593 | 15 | "PO-Revision-Date: 2014-10-22 23:31+0000\n" | ||
4594 | 16 | >>>>>>> MERGE-SOURCE | ||
4595 | 12 | "Last-Translator: samson <Unknown>\n" | 17 | "Last-Translator: samson <Unknown>\n" |
4596 | 13 | "Language-Team: Amharic <am@li.org>\n" | 18 | "Language-Team: Amharic <am@li.org>\n" |
4597 | 14 | "MIME-Version: 1.0\n" | 19 | "MIME-Version: 1.0\n" |
4598 | 15 | "Content-Type: text/plain; charset=UTF-8\n" | 20 | "Content-Type: text/plain; charset=UTF-8\n" |
4599 | 16 | "Content-Transfer-Encoding: 8bit\n" | 21 | "Content-Transfer-Encoding: 8bit\n" |
4600 | 17 | "Plural-Forms: nplurals=2; plural=n > 1;\n" | 22 | "Plural-Forms: nplurals=2; plural=n > 1;\n" |
4601 | 23 | <<<<<<< TREE | ||
4602 | 18 | "X-Launchpad-Export-Date: 2015-02-03 08:00+0000\n" | 24 | "X-Launchpad-Export-Date: 2015-02-03 08:00+0000\n" |
4603 | 19 | "X-Generator: Launchpad (build 17330)\n" | 25 | "X-Generator: Launchpad (build 17330)\n" |
4604 | 20 | 26 | ||
4605 | @@ -31,9 +37,28 @@ | |||
4606 | 31 | msgstr "ምርጫዎች: ማሰናጃዎች:" | 37 | msgstr "ምርጫዎች: ማሰናጃዎች:" |
4607 | 32 | 38 | ||
4608 | 33 | #: ../plugins/background//Preview.qml:70 | 39 | #: ../plugins/background//Preview.qml:70 |
4609 | 40 | ======= | ||
4610 | 41 | "X-Launchpad-Export-Date: 2014-10-24 06:38+0000\n" | ||
4611 | 42 | "X-Generator: Launchpad (build 17203)\n" | ||
4612 | 43 | |||
4613 | 44 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 | ||
4614 | 45 | msgid "System Settings" | ||
4615 | 46 | msgstr "ስርአት ማሰናጃ" | ||
4616 | 47 | |||
4617 | 48 | #: ubuntu-system-settings.desktop.in.in.h:2 | ||
4618 | 49 | msgid "System;" | ||
4619 | 50 | msgstr "ስርአት:" | ||
4620 | 51 | |||
4621 | 52 | #: ubuntu-system-settings.desktop.in.in.h:3 | ||
4622 | 53 | msgid "Preferences;Settings;" | ||
4623 | 54 | msgstr "ምርጫዎች: ማሰናጃዎች:" | ||
4624 | 55 | |||
4625 | 56 | #: ../plugins/background//Preview.qml:70 | ||
4626 | 57 | >>>>>>> MERGE-SOURCE | ||
4627 | 34 | msgid "Preview" | 58 | msgid "Preview" |
4628 | 35 | msgstr "ቅድመ እይታ" | 59 | msgstr "ቅድመ እይታ" |
4629 | 36 | 60 | ||
4630 | 61 | <<<<<<< TREE | ||
4631 | 37 | #: ../plugins/background//Preview.qml:102 | 62 | #: ../plugins/background//Preview.qml:102 |
4632 | 38 | msgid "Remove image" | 63 | msgid "Remove image" |
4633 | 39 | msgstr "ምስል ማስወገጃ" | 64 | msgstr "ምስል ማስወገጃ" |
4634 | @@ -58,19 +83,59 @@ | |||
4635 | 58 | #: ../plugins/security-privacy//SimPin.qml:268 | 83 | #: ../plugins/security-privacy//SimPin.qml:268 |
4636 | 59 | #: ../plugins/background//Components//AddRemove.qml:42 | 84 | #: ../plugins/background//Components//AddRemove.qml:42 |
4637 | 60 | #: ../plugins/cellular//Components//SimEditor.qml:204 | 85 | #: ../plugins/cellular//Components//SimEditor.qml:204 |
4638 | 86 | ======= | ||
4639 | 87 | #: ../plugins/background//Preview.qml:102 | ||
4640 | 88 | msgid "Remove image" | ||
4641 | 89 | msgstr "ምስል ማስወገጃ" | ||
4642 | 90 | |||
4643 | 91 | #: ../plugins/background//Preview.qml:102 | ||
4644 | 92 | #: ../plugins/wifi//OtherNetwork.qml:288 | ||
4645 | 93 | #: ../plugins/reset//ResetAllSettings.qml:38 | ||
4646 | 94 | #: ../plugins/reset//ResetLauncherHome.qml:55 | ||
4647 | 95 | #: ../plugins/reset//EraseEverything.qml:54 | ||
4648 | 96 | #: ../plugins/language//RebootNecessary.qml:47 | ||
4649 | 97 | #: ../plugins/language//DisplayLanguage.qml:98 | ||
4650 | 98 | #: ../plugins/phone//CallForwarding.qml:139 | ||
4651 | 99 | #: ../plugins/cellular//PageChooseApn.qml:594 | ||
4652 | 100 | #: ../plugins/cellular//CustomApnEditor.qml:245 | ||
4653 | 101 | #: ../plugins/cellular//HotspotSetup.qml:85 | ||
4654 | 102 | #: ../plugins/security-privacy//LockSecurity.qml:283 | ||
4655 | 103 | #: ../plugins/security-privacy//SimPin.qml:149 | ||
4656 | 104 | #: ../plugins/security-privacy//SimPin.qml:266 | ||
4657 | 105 | #: ../plugins/bluetooth//ProvidePasskeyDialog.qml:54 | ||
4658 | 106 | #: ../plugins/bluetooth//ConfirmPasskeyDialog.qml:49 | ||
4659 | 107 | #: ../plugins/bluetooth//ProvidePinCodeDialog.qml:55 | ||
4660 | 108 | #: ../plugins/time-date//TimePicker.qml:173 | ||
4661 | 109 | #: ../plugins/background//Components//AddRemove.qml:42 | ||
4662 | 110 | #: ../plugins/cellular//Components//SimEditor.qml:189 | ||
4663 | 111 | >>>>>>> MERGE-SOURCE | ||
4664 | 61 | msgid "Cancel" | 112 | msgid "Cancel" |
4665 | 62 | msgstr "መሰረዣ" | 113 | msgstr "መሰረዣ" |
4666 | 63 | 114 | ||
4668 | 64 | #: ../plugins/background//Preview.qml:109 | 115 | <<<<<<< TREE |
4669 | 116 | #: ../plugins/background//Preview.qml:109 | ||
4670 | 117 | ======= | ||
4671 | 118 | #: ../plugins/background//Preview.qml:109 | ||
4672 | 119 | #: ../plugins/phone//CallForwarding.qml:152 | ||
4673 | 120 | #: ../plugins/security-privacy//LockSecurity.qml:304 | ||
4674 | 121 | >>>>>>> MERGE-SOURCE | ||
4675 | 65 | #: ../plugins/time-date//TimePicker.qml:182 | 122 | #: ../plugins/time-date//TimePicker.qml:182 |
4676 | 123 | <<<<<<< TREE | ||
4677 | 66 | #: ../plugins/phone//CallForwarding.qml:152 | 124 | #: ../plugins/phone//CallForwarding.qml:152 |
4678 | 67 | #: ../plugins/security-privacy//LockSecurity.qml:354 | 125 | #: ../plugins/security-privacy//LockSecurity.qml:354 |
4679 | 126 | ======= | ||
4680 | 127 | >>>>>>> MERGE-SOURCE | ||
4681 | 68 | msgid "Set" | 128 | msgid "Set" |
4682 | 69 | msgstr "ማሰናጃ" | 129 | msgstr "ማሰናጃ" |
4683 | 70 | 130 | ||
4684 | 71 | #. TRANSLATORS: This is a keyword or name for the background plugin which is used while searching | 131 | #. TRANSLATORS: This is a keyword or name for the background plugin which is used while searching |
4685 | 132 | <<<<<<< TREE | ||
4686 | 72 | #: ../plugins/background//MainPage.qml:35 | 133 | #: ../plugins/background//MainPage.qml:35 |
4687 | 73 | #: /build/buildd/ubuntu-system-settings-0.3+15.04.20150129.2/obj-i686-linux-gnu/po/settings.js:8 | 134 | #: /build/buildd/ubuntu-system-settings-0.3+15.04.20150129.2/obj-i686-linux-gnu/po/settings.js:8 |
4688 | 135 | ======= | ||
4689 | 136 | #: ../plugins/background//MainPage.qml:35 | ||
4690 | 137 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:2 | ||
4691 | 138 | >>>>>>> MERGE-SOURCE | ||
4692 | 74 | msgid "Background" | 139 | msgid "Background" |
4693 | 75 | msgstr "መደቡ" | 140 | msgstr "መደቡ" |
4694 | 76 | 141 | ||
4695 | @@ -83,6 +148,7 @@ | |||
4696 | 83 | #: ../plugins/cellular//PageChooseApn.qml:488 | 148 | #: ../plugins/cellular//PageChooseApn.qml:488 |
4697 | 84 | #: ../plugins/cellular//PageChooseApn.qml:496 | 149 | #: ../plugins/cellular//PageChooseApn.qml:496 |
4698 | 85 | msgid "Custom" | 150 | msgid "Custom" |
4699 | 151 | <<<<<<< TREE | ||
4700 | 86 | msgstr "የተለመደ" | 152 | msgstr "የተለመደ" |
4701 | 87 | 153 | ||
4702 | 88 | #: ../plugins/wifi//RemoveBackground.qml:28 | 154 | #: ../plugins/wifi//RemoveBackground.qml:28 |
4703 | @@ -224,9 +290,154 @@ | |||
4704 | 224 | msgstr "" | 290 | msgstr "" |
4705 | 225 | 291 | ||
4706 | 226 | #: ../plugins/bluetooth//PageComponent.qml:87 ../plugins/wifi//Common.qml:96 | 292 | #: ../plugins/bluetooth//PageComponent.qml:87 ../plugins/wifi//Common.qml:96 |
4707 | 293 | ======= | ||
4708 | 294 | msgstr "" | ||
4709 | 295 | |||
4710 | 296 | #: ../plugins/wifi//RemoveBackground.qml:28 | ||
4711 | 297 | msgid "Clear" | ||
4712 | 298 | msgstr "ማጽጃ" | ||
4713 | 299 | |||
4714 | 300 | #: ../plugins/wifi//NetworkDetailsBrief.qml:42 | ||
4715 | 301 | #: ../plugins/bluetooth//PageComponent.qml:411 | ||
4716 | 302 | msgid "Disconnect" | ||
4717 | 303 | msgstr "ማቋረጫ" | ||
4718 | 304 | |||
4719 | 305 | #: ../plugins/wifi//NetworkDetailsBrief.qml:58 | ||
4720 | 306 | msgid "IP address" | ||
4721 | 307 | msgstr "IP አድራሻ" | ||
4722 | 308 | |||
4723 | 309 | #: ../plugins/wifi//PreviousNetworks.qml:27 | ||
4724 | 310 | #: ../plugins/wifi//PageComponent.qml:132 | ||
4725 | 311 | msgid "Previous networks" | ||
4726 | 312 | msgstr "ቀደም ያሉ ኔትዎርኮች" | ||
4727 | 313 | |||
4728 | 314 | #: ../plugins/wifi//Common.qml:36 | ||
4729 | 315 | msgid "Unknown error" | ||
4730 | 316 | msgstr "ያልታወቀ ስህተት" | ||
4731 | 317 | |||
4732 | 318 | #: ../plugins/wifi//Common.qml:38 | ||
4733 | 319 | msgid "No reason given" | ||
4734 | 320 | msgstr "ምንም ምክንያት አልተሰጠም" | ||
4735 | 321 | |||
4736 | 322 | #: ../plugins/wifi//Common.qml:40 | ||
4737 | 323 | msgid "Device is now managed" | ||
4738 | 324 | msgstr "አካሉ አሁን በ አስተዳዳሪው ቁጥጥር ውስጥ ነው" | ||
4739 | 325 | |||
4740 | 326 | #: ../plugins/wifi//Common.qml:42 | ||
4741 | 327 | msgid "Device is now unmanaged" | ||
4742 | 328 | msgstr "አካሉ አሁን በ አስተዳዳሪው ቁጥጥር ውስጥ አይደለም" | ||
4743 | 329 | |||
4744 | 330 | #: ../plugins/wifi//Common.qml:44 | ||
4745 | 331 | msgid "The device could not be readied for configuration" | ||
4746 | 332 | msgstr "ለማዋቀር አካሉን ማዘጋጀት አልተቻለም" | ||
4747 | 333 | |||
4748 | 334 | #: ../plugins/wifi//Common.qml:46 | ||
4749 | 335 | msgid "" | ||
4750 | 336 | "IP configuration could not be reserved (no available address, timeout, etc.)" | ||
4751 | 337 | msgstr "" | ||
4752 | 338 | |||
4753 | 339 | #: ../plugins/wifi//Common.qml:48 | ||
4754 | 340 | msgid "The IP configuration is no longer valid" | ||
4755 | 341 | msgstr "" | ||
4756 | 342 | |||
4757 | 343 | #: ../plugins/wifi//Common.qml:50 | ||
4758 | 344 | msgid "Your authentication details were incorrect" | ||
4759 | 345 | msgstr "የ እርስዎ ማረጋገጫ ዝርዝር ትክክል አይደለም" | ||
4760 | 346 | |||
4761 | 347 | #: ../plugins/wifi//Common.qml:52 | ||
4762 | 348 | msgid "802.1X supplicant disconnected" | ||
4763 | 349 | msgstr "" | ||
4764 | 350 | |||
4765 | 351 | #: ../plugins/wifi//Common.qml:54 | ||
4766 | 352 | msgid "802.1X supplicant configuration failed" | ||
4767 | 353 | msgstr "" | ||
4768 | 354 | |||
4769 | 355 | #: ../plugins/wifi//Common.qml:56 | ||
4770 | 356 | msgid "802.1X supplicant failed" | ||
4771 | 357 | msgstr "" | ||
4772 | 358 | |||
4773 | 359 | #: ../plugins/wifi//Common.qml:58 | ||
4774 | 360 | msgid "802.1X supplicant took too long to authenticate" | ||
4775 | 361 | msgstr "" | ||
4776 | 362 | |||
4777 | 363 | #: ../plugins/wifi//Common.qml:60 | ||
4778 | 364 | msgid "DHCP client failed to start" | ||
4779 | 365 | msgstr "የ DHCP ደንበኛ ማስጀመር አልተቻለም" | ||
4780 | 366 | |||
4781 | 367 | #: ../plugins/wifi//Common.qml:62 | ||
4782 | 368 | msgid "DHCP client error" | ||
4783 | 369 | msgstr "የ DHCP ደንበኛ ስህተት" | ||
4784 | 370 | |||
4785 | 371 | #: ../plugins/wifi//Common.qml:64 | ||
4786 | 372 | msgid "DHCP client failed" | ||
4787 | 373 | msgstr "የ DHCP ደንበኛ ወድቋል" | ||
4788 | 374 | |||
4789 | 375 | #: ../plugins/wifi//Common.qml:66 | ||
4790 | 376 | msgid "Shared connection service failed to start" | ||
4791 | 377 | msgstr "የሚጋሩትን የ ግንኙነት ግልጋሎት ማስጀመር አልተቻለም" | ||
4792 | 378 | |||
4793 | 379 | #: ../plugins/wifi//Common.qml:68 | ||
4794 | 380 | msgid "Shared connection service failed" | ||
4795 | 381 | msgstr "የሚጋሩት የ ግንኙነት ግልጋሎት ወድቋል" | ||
4796 | 382 | |||
4797 | 383 | #: ../plugins/wifi//Common.qml:70 | ||
4798 | 384 | msgid "Necessary firmware for the device may be missing" | ||
4799 | 385 | msgstr "" | ||
4800 | 386 | |||
4801 | 387 | #: ../plugins/wifi//Common.qml:72 | ||
4802 | 388 | msgid "The device was removed" | ||
4803 | 389 | msgstr "አካሉ ተወግዷል" | ||
4804 | 390 | |||
4805 | 391 | #: ../plugins/wifi//Common.qml:74 | ||
4806 | 392 | msgid "NetworkManager went to sleep" | ||
4807 | 393 | msgstr "የ ኔትዎርክ አስተዳዳሪ ተኝቷል" | ||
4808 | 394 | |||
4809 | 395 | #: ../plugins/wifi//Common.qml:76 | ||
4810 | 396 | msgid "The device's active connection disappeared" | ||
4811 | 397 | msgstr "የ አካሉ ንቁ ግንኙነት ጠፍቷል" | ||
4812 | 398 | |||
4813 | 399 | #: ../plugins/wifi//Common.qml:78 | ||
4814 | 400 | msgid "Device disconnected by user or client" | ||
4815 | 401 | msgstr "አካሉ በ ተጠቃሚው ወይንም በ ደንበኛው ተለያይቷል" | ||
4816 | 402 | |||
4817 | 403 | #: ../plugins/wifi//Common.qml:80 | ||
4818 | 404 | msgid "The device's existing connection was assumed" | ||
4819 | 405 | msgstr "" | ||
4820 | 406 | |||
4821 | 407 | #: ../plugins/wifi//Common.qml:82 | ||
4822 | 408 | msgid "The supplicant is now available" | ||
4823 | 409 | msgstr "" | ||
4824 | 410 | |||
4825 | 411 | #: ../plugins/wifi//Common.qml:84 | ||
4826 | 412 | msgid "The modem could not be found" | ||
4827 | 413 | msgstr "ሞደም ማግኘት አልተቻለም" | ||
4828 | 414 | |||
4829 | 415 | #: ../plugins/wifi//Common.qml:86 | ||
4830 | 416 | msgid "The Bluetooth connection failed or timed out" | ||
4831 | 417 | msgstr "የ ብሉቱዝ ግንኙነት ወድቋል ወይንም ጊዜው አልፏል" | ||
4832 | 418 | |||
4833 | 419 | #: ../plugins/wifi//Common.qml:88 | ||
4834 | 420 | msgid "A dependency of the connection failed" | ||
4835 | 421 | msgstr "" | ||
4836 | 422 | |||
4837 | 423 | #: ../plugins/wifi//Common.qml:90 | ||
4838 | 424 | msgid "ModemManager is unavailable" | ||
4839 | 425 | msgstr "የ ሞደም አስተዳዳሪ አልተገኘም" | ||
4840 | 426 | |||
4841 | 427 | #: ../plugins/wifi//Common.qml:92 | ||
4842 | 428 | msgid "The Wi-Fi network could not be found" | ||
4843 | 429 | msgstr "የ ዋይ-ፋይ ኔትዎርክ አልተገኘም" | ||
4844 | 430 | |||
4845 | 431 | #: ../plugins/wifi//Common.qml:94 | ||
4846 | 432 | msgid "A secondary connection of the base connection failed" | ||
4847 | 433 | msgstr "" | ||
4848 | 434 | |||
4849 | 435 | #: ../plugins/wifi//Common.qml:96 ../plugins/bluetooth//PageComponent.qml:86 | ||
4850 | 436 | >>>>>>> MERGE-SOURCE | ||
4851 | 227 | msgid "Unknown" | 437 | msgid "Unknown" |
4852 | 228 | msgstr "ያልታወቀ" | 438 | msgstr "ያልታወቀ" |
4853 | 229 | 439 | ||
4854 | 440 | <<<<<<< TREE | ||
4855 | 230 | #: ../plugins/wifi//OtherNetwork.qml:51 | 441 | #: ../plugins/wifi//OtherNetwork.qml:51 |
4856 | 231 | msgid "Connect to Hidden Network" | 442 | msgid "Connect to Hidden Network" |
4857 | 232 | msgstr "ከ ተደበቀ ኔትዎርክ ጋር መገናኛ" | 443 | msgstr "ከ ተደበቀ ኔትዎርክ ጋር መገናኛ" |
4858 | @@ -294,9 +505,73 @@ | |||
4859 | 294 | 505 | ||
4860 | 295 | #: ../plugins/bluetooth//PageComponent.qml:346 | 506 | #: ../plugins/bluetooth//PageComponent.qml:346 |
4861 | 296 | #: ../plugins/wifi//NetworkDetails.qml:45 | 507 | #: ../plugins/wifi//NetworkDetails.qml:45 |
4862 | 508 | ======= | ||
4863 | 509 | #: ../plugins/wifi//OtherNetwork.qml:96 | ||
4864 | 510 | msgid "Connect to Hidden Network" | ||
4865 | 511 | msgstr "ከ ተደበቀ ኔትዎርክ ጋር መገናኛ" | ||
4866 | 512 | |||
4867 | 513 | #: ../plugins/wifi//OtherNetwork.qml:187 | ||
4868 | 514 | msgid "Network name" | ||
4869 | 515 | msgstr "የ ኔትዎርክ ስም" | ||
4870 | 516 | |||
4871 | 517 | #: ../plugins/wifi//OtherNetwork.qml:203 | ||
4872 | 518 | #: ../plugins/security-privacy//PageComponent.qml:126 | ||
4873 | 519 | msgid "Security" | ||
4874 | 520 | msgstr "ደህንነት" | ||
4875 | 521 | |||
4876 | 522 | #: ../plugins/wifi//OtherNetwork.qml:214 | ||
4877 | 523 | #: ../plugins/bluetooth//PageComponent.qml:116 | ||
4878 | 524 | #: ../plugins/bluetooth//PageComponent.qml:326 | ||
4879 | 525 | #: ../plugins/bluetooth//PageComponent.qml:347 | ||
4880 | 526 | msgid "None" | ||
4881 | 527 | msgstr "ምንም" | ||
4882 | 528 | |||
4883 | 529 | #: ../plugins/wifi//OtherNetwork.qml:215 | ||
4884 | 530 | msgid "WPA & WPA2 Personal" | ||
4885 | 531 | msgstr "WPA & WPA2 የግል" | ||
4886 | 532 | |||
4887 | 533 | #: ../plugins/wifi//OtherNetwork.qml:216 | ||
4888 | 534 | msgid "WEP" | ||
4889 | 535 | msgstr "WEP" | ||
4890 | 536 | |||
4891 | 537 | #: ../plugins/wifi//OtherNetwork.qml:222 | ||
4892 | 538 | #: ../plugins/wifi//NetworkDetails.qml:64 | ||
4893 | 539 | #: ../plugins/cellular//CustomApnEditor.qml:222 | ||
4894 | 540 | msgid "Password" | ||
4895 | 541 | msgstr "የመግቢያ ቃል" | ||
4896 | 542 | |||
4897 | 543 | #: ../plugins/wifi//OtherNetwork.qml:256 | ||
4898 | 544 | #: ../plugins/wifi//NetworkDetails.qml:77 | ||
4899 | 545 | msgid "Show password" | ||
4900 | 546 | msgstr "የመግቢያ ቃል ማሳያ" | ||
4901 | 547 | |||
4902 | 548 | #: ../plugins/wifi//OtherNetwork.qml:304 | ||
4903 | 549 | #: ../plugins/bluetooth//PageComponent.qml:411 | ||
4904 | 550 | msgid "Connect" | ||
4905 | 551 | msgstr "መገናኛ" | ||
4906 | 552 | |||
4907 | 553 | #. TRANSLATORS: This is a keyword or name for the wifi plugin which is used while searching | ||
4908 | 554 | #: ../plugins/wifi//PageComponent.qml:28 | ||
4909 | 555 | #: ../plugins/battery//PageComponent.qml:333 | ||
4910 | 556 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:24 | ||
4911 | 557 | msgid "Wi-Fi" | ||
4912 | 558 | msgstr "ዋይ-ፋይ" | ||
4913 | 559 | |||
4914 | 560 | #: ../plugins/wifi//PageComponent.qml:139 | ||
4915 | 561 | msgid "Connect to hidden network…" | ||
4916 | 562 | msgstr "ከ ተደበቀ ኔትዎርክ ጋር መገናኛ…" | ||
4917 | 563 | |||
4918 | 564 | #: ../plugins/wifi//NetworkDetails.qml:38 | ||
4919 | 565 | msgid "Network details" | ||
4920 | 566 | msgstr "የ ኔትዎርክ ዝርዝር" | ||
4921 | 567 | |||
4922 | 568 | #: ../plugins/wifi//NetworkDetails.qml:45 | ||
4923 | 569 | #: ../plugins/bluetooth//PageComponent.qml:346 | ||
4924 | 570 | >>>>>>> MERGE-SOURCE | ||
4925 | 297 | msgid "Name" | 571 | msgid "Name" |
4926 | 298 | msgstr "ስም" | 572 | msgstr "ስም" |
4927 | 299 | 573 | ||
4928 | 574 | <<<<<<< TREE | ||
4929 | 300 | #: ../plugins/wifi//NetworkDetails.qml:53 | 575 | #: ../plugins/wifi//NetworkDetails.qml:53 |
4930 | 301 | msgid "Last connected" | 576 | msgid "Last connected" |
4931 | 302 | msgstr "መጨረሻ የተገናኘው" | 577 | msgstr "መጨረሻ የተገናኘው" |
4932 | @@ -318,10 +593,36 @@ | |||
4933 | 318 | #: ../plugins/wifi//NetworkDetailsBrief.qml:42 | 593 | #: ../plugins/wifi//NetworkDetailsBrief.qml:42 |
4934 | 319 | msgid "Forget network" | 594 | msgid "Forget network" |
4935 | 320 | msgstr "ኔትዎርክን መተው" | 595 | msgstr "ኔትዎርክን መተው" |
4936 | 596 | ======= | ||
4937 | 597 | #: ../plugins/wifi//NetworkDetails.qml:53 | ||
4938 | 598 | msgid "Last connected" | ||
4939 | 599 | msgstr "መጨረሻ የተገናኘው" | ||
4940 | 600 | |||
4941 | 601 | #: ../plugins/wifi//NetworkDetails.qml:58 | ||
4942 | 602 | #: ../plugins/battery//PageComponent.qml:315 | ||
4943 | 603 | #: ../plugins/battery//PageComponent.qml:324 | ||
4944 | 604 | #: ../plugins/battery//SleepValues.qml:106 | ||
4945 | 605 | #: ../plugins/security-privacy//PhoneLocking.qml:78 | ||
4946 | 606 | #: ../plugins/security-privacy//PhoneLocking.qml:87 | ||
4947 | 607 | #: ../plugins/security-privacy//PageComponent.qml:140 | ||
4948 | 608 | #: ../plugins/about//PageComponent.qml:167 | ||
4949 | 609 | #: ../plugins/system-update//PageComponent.qml:762 | ||
4950 | 610 | #: ../plugins/system-update//Configuration.qml:52 | ||
4951 | 611 | msgid "Never" | ||
4952 | 612 | msgstr "በፍጹም" | ||
4953 | 613 | |||
4954 | 614 | #: ../plugins/wifi//NetworkDetails.qml:88 | ||
4955 | 615 | msgid "Forget network" | ||
4956 | 616 | msgstr "ኔትዎርክን መተው" | ||
4957 | 617 | >>>>>>> MERGE-SOURCE | ||
4958 | 321 | 618 | ||
4959 | 322 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching | 619 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
4960 | 323 | #: ../plugins/notifications//PageComponent.qml:29 | 620 | #: ../plugins/notifications//PageComponent.qml:29 |
4961 | 621 | <<<<<<< TREE | ||
4962 | 324 | #: /build/buildd/ubuntu-system-settings-0.3+15.04.20150129.2/obj-i686-linux-gnu/po/settings.js:296 | 622 | #: /build/buildd/ubuntu-system-settings-0.3+15.04.20150129.2/obj-i686-linux-gnu/po/settings.js:296 |
4963 | 623 | ======= | ||
4964 | 624 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:44 | ||
4965 | 625 | >>>>>>> MERGE-SOURCE | ||
4966 | 325 | msgid "Notifications" | 626 | msgid "Notifications" |
4967 | 326 | msgstr "ማስታወቂያዎች" | 627 | msgstr "ማስታወቂያዎች" |
4968 | 327 | 628 | ||
4969 | @@ -331,73 +632,142 @@ | |||
4970 | 331 | "and the Notification Center." | 632 | "and the Notification Center." |
4971 | 332 | msgstr "" | 633 | msgstr "" |
4972 | 333 | 634 | ||
4973 | 635 | <<<<<<< TREE | ||
4974 | 334 | #: ../plugins/sound//SoundsList.qml:70 | 636 | #: ../plugins/sound//SoundsList.qml:70 |
4975 | 335 | msgid "Stop playing" | 637 | msgid "Stop playing" |
4976 | 336 | msgstr "ጨዋታውን ማስቆሚያ" | 638 | msgstr "ጨዋታውን ማስቆሚያ" |
4977 | 639 | ======= | ||
4978 | 640 | #: ../plugins/sound//SoundsList.qml:60 | ||
4979 | 641 | msgid "Stop playing" | ||
4980 | 642 | msgstr "ጨዋታውን ማስቆሚያ" | ||
4981 | 643 | >>>>>>> MERGE-SOURCE | ||
4982 | 337 | 644 | ||
4983 | 338 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching | 645 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
4984 | 646 | <<<<<<< TREE | ||
4985 | 339 | #: ../plugins/sound//PageComponent.qml:37 | 647 | #: ../plugins/sound//PageComponent.qml:37 |
4986 | 340 | #: /build/buildd/ubuntu-system-settings-0.3+15.04.20150129.2/obj-i686-linux-gnu/po/settings.js:132 | 648 | #: /build/buildd/ubuntu-system-settings-0.3+15.04.20150129.2/obj-i686-linux-gnu/po/settings.js:132 |
4987 | 649 | ======= | ||
4988 | 650 | #: ../plugins/sound//PageComponent.qml:37 | ||
4989 | 651 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:68 | ||
4990 | 652 | >>>>>>> MERGE-SOURCE | ||
4991 | 341 | msgid "Sound" | 653 | msgid "Sound" |
4992 | 342 | msgstr "ድምፅ" | 654 | msgstr "ድምፅ" |
4993 | 343 | 655 | ||
4994 | 656 | <<<<<<< TREE | ||
4995 | 344 | #: ../plugins/sound//PageComponent.qml:77 | 657 | #: ../plugins/sound//PageComponent.qml:77 |
4996 | 658 | ======= | ||
4997 | 659 | #: ../plugins/sound//PageComponent.qml:76 | ||
4998 | 660 | >>>>>>> MERGE-SOURCE | ||
4999 | 345 | msgid "Silent Mode" | 661 | msgid "Silent Mode" |
5000 | 346 | msgstr "በ ዝምታ ዘዴ" | 662 | msgstr "በ ዝምታ ዘዴ" |