Merge lp:~rsalveti/ubuntu-system-settings/agent-rework-rtm into lp:ubuntu-system-settings

Proposed by Ricardo Salveti
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
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://code.launchpad.net/~mathieu-tl/ubuntu-system-settings/agent-rework/+merge/250889

To post a comment you must log in.

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

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

Subscribers

People subscribed via source and target branches