Merge lp:~ken-vandine/ubuntu-system-settings/rtm-14.09-20140822 into lp:ubuntu-system-settings/rtm-14.09
- rtm-14.09-20140822
- Merge into rtm-14.09
Status: | Rejected |
---|---|
Rejected by: | Ken VanDine |
Proposed branch: | lp:~ken-vandine/ubuntu-system-settings/rtm-14.09-20140822 |
Merge into: | lp:ubuntu-system-settings/rtm-14.09 |
Diff against target: |
7008 lines (+2952/-1127) 104 files modified
debian/changelog (+74/-0) debian/control (+1/-1) plugins/about/storageabout.cpp (+11/-7) plugins/battery/PageComponent.qml (+1/-2) plugins/battery/SleepValues.qml (+19/-9) plugins/battery/battery.cpp (+4/-6) plugins/bluetooth/PageComponent.qml (+174/-142) plugins/bluetooth/agent.h (+1/-1) plugins/bluetooth/bluetooth.cpp (+1/-3) plugins/bluetooth/bluetooth.h (+5/-5) plugins/bluetooth/device.cpp (+1/-0) plugins/cellular/CMakeLists.txt (+1/-0) plugins/cellular/Components/CMakeLists.txt (+4/-1) plugins/cellular/Components/CellularMultiSim.qml (+18/-20) plugins/cellular/Components/CellularSingleSim.qml (+13/-14) plugins/cellular/Components/DefaultSim.qml (+3/-4) plugins/cellular/Components/MultiSim.qml (+120/-0) plugins/cellular/Components/NoSim.qml (+51/-0) plugins/cellular/Components/Sim.qml (+2/-0) plugins/cellular/Components/SimEditor.qml (+8/-8) plugins/cellular/Components/SingleSim.qml (+76/-0) plugins/cellular/PageChooseCarriers.qml (+9/-10) plugins/cellular/PageComponent.qml (+42/-159) plugins/cellular/sims.js (+34/-0) plugins/notifications/notification_item.cpp (+2/-1) plugins/phone/CMakeLists.txt (+5/-0) plugins/phone/CallForwarding.qml (+17/-13) plugins/phone/CallWaiting.qml (+14/-3) plugins/phone/MultiSim.qml (+135/-0) plugins/phone/NoSims.qml (+46/-0) plugins/phone/Ofono.qml (+50/-0) plugins/phone/PageComponent.qml (+64/-39) plugins/phone/Services.qml (+4/-1) plugins/phone/SingleSim.qml (+57/-0) plugins/phone/sims.js (+34/-0) plugins/security-privacy/LockSecurity.qml (+3/-2) plugins/security-privacy/PageComponent.qml (+57/-37) plugins/security-privacy/PhoneLocking.qml (+27/-4) plugins/security-privacy/trust-store-model.cpp (+1/-1) plugins/system-update/PageComponent.qml (+320/-329) plugins/system-update/update_manager.cpp (+2/-1) plugins/time-date/timezonelocationmodel.cpp (+2/-2) po/am.po (+1/-1) po/en_AU.po (+22/-21) po/en_GB.po (+23/-21) po/es.po (+21/-21) po/fi.po (+43/-41) po/fr.po (+8/-5) po/gl.po (+7/-7) po/he.po (+28/-28) po/hu.po (+21/-20) po/pt.po (+16/-16) po/ro.po (+18/-16) po/ru.po (+21/-19) po/uk.po (+22/-21) src/i18n.cpp (+1/-1) src/plugin-manager.cpp (+1/-1) src/plugin.cpp (+4/-4) tests/autopilot/ubuntu_system_settings/__init__.py (+150/-0) tests/autopilot/ubuntu_system_settings/tests/__init__.py (+60/-6) tests/autopilot/ubuntu_system_settings/tests/ofono.py (+215/-0) tests/autopilot/ubuntu_system_settings/tests/test_cellular.py (+96/-1) tests/autopilot/ubuntu_system_settings/tests/test_phone.py (+111/-0) tests/autopilot/ubuntu_system_settings/tests/test_security.py (+173/-0) tests/autopilot/ubuntu_system_settings/tests/test_system_updates.py (+0/-4) tests/plugins/bluetooth/tst_bluetooth.cpp (+1/-1) tests/plugins/bluetooth/tst_devicemodel.cpp (+1/-1) tests/plugins/system-update/tst_update.cpp (+1/-1) tests/plugins/system-update/tst_updatemanager.cpp (+1/-1) tests/test-plugin2.cpp (+2/-2) tests/tst_arguments.cpp (+1/-1) tests/tst_plugins.cpp (+1/-1) wizard/CMakeLists.txt (+2/-0) wizard/main.cpp (+33/-4) wizard/qml/Components/CheckableSetting.qml (+80/-0) wizard/qml/Components/Page.qml (+4/-1) wizard/qml/Pages/10-welcome.qml (+1/-0) wizard/qml/Pages/30-location.qml (+72/-0) wizard/qml/Pages/40-reporting.qml (+2/-4) wizard/qml/Pages/80-finished.qml (+2/-4) wizard/qml/Pages/data/HEREposconsent_da-DK.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_de-DE.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_en-GB.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_en-US.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_es-ES.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_es-MX.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_fr-FR.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_it-IT.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_ja-JP.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_ko-KR.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_nl-NL.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_pl-PL.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_pt-BR.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_pt-PT.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_ru-RU.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_sv-SE.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_zh-CN.html (+1/-0) wizard/qml/Pages/data/HEREposconsent_zh-TW.html (+1/-0) wizard/qml/Pages/no-sim.qml (+2/-4) wizard/qml/Pages/terms.qml (+119/-0) wizard/qml/main.qml (+4/-1) wizard/ubuntu-system-settings-wizard-cleanup.conf (+0/-17) wizard/ubuntu-system-settings-wizard-set-lang.conf (+30/-0) wizard/ubuntu-system-settings-wizard.conf (+0/-5) |
To merge this branch: | bzr merge lp:~ken-vandine/ubuntu-system-settings/rtm-14.09-20140822 |
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Brendan Donegan (community) | Needs Information | ||
Ubuntu Touch System Settings | Pending | ||
Review via email: mp+231980@code.launchpad.net |
Commit message
[ Charles Kerr ]
* In the welcome wizard, refresh the text in the 'no sim card' and
'all done' pages to match the latest from design.
[ Michael Terry ]
* Add a location page and a terms and conditions page for the HERE
service.
[ Ken VanDine ]
* Settings for idle/lock timeout (LP: #1230345)
* Added flickable to fix scrolling (LP: #1354161)
[ Jussi Pakkanen ]
* Fix a bunch of compiler warnings.
[ jonas-drange ]
* [cellular] displays cellular UIs based on how many SIMs are present.
(LP: #1357393)
Description of the change
[ Charles Kerr ]
* In the welcome wizard, refresh the text in the 'no sim card' and
'all done' pages to match the latest from design.
[ Michael Terry ]
* Add a location page and a terms and conditions page for the HERE
service.
[ Ken VanDine ]
* Settings for idle/lock timeout (LP: #1230345)
* Added flickable to fix scrolling (LP: #1354161)
[ Jussi Pakkanen ]
* Fix a bunch of compiler warnings.
[ jonas-drange ]
* [cellular] displays cellular UIs based on how many SIMs are present.
(LP: #1357393)
- 928. By Ken VanDine
-
* In the welcome wizard, refresh the text in the 'no sim card' and
'all done' pages to match the latest from design.
* Add a location page and a terms and conditions page for the HERE
service.
* Settings for idle/lock timeout (LP: #1230345)
* Added flickable to fix scrolling (LP: #1354161)
* Fix a bunch of compiler warnings.
* [cellular] displays cellular UIs based on how many SIMs are present.
(LP: #1357393) - 929. By Ken VanDine
-
merged phone panel supported for dual sim as well as bug fixes related to dual sim
- 930. By Ken VanDine
-
Added autopilot tests for security-privacy panel
Brendan Donegan (brendan-donegan) wrote : | # |
- 931. By Ken VanDine
-
[ Ken VanDine ]
* Hide sleep locks immediately setting, which isn't implemented yet
(LP: #1361297) (LP: #1361297)
[ Sebastien Bacher ]
* [system-update] rework the ui to use a column rather than anchors,
the layout is quite dynamic and it should be easier to position and
stack widgets this way (LP: #1343172)
[ Michael Terry ]
* After selecting the language, update the session environment
immediately and restart indicators so that their notifications (like
wifi prompt) are translated. (LP: #1354325)
[ Ken VanDine ]
* Added autopilot tests for security-privacy
[ jonas-drange ]
* [phone] adding dual sim functionality to phone panel
Ken VanDine (ken-vandine) wrote : | # |
> Do you want to merge https:/
> settings/
> broken setting?
I've merged that in and will rebuild the silo.
Unmerged revisions
- 931. By Ken VanDine
-
[ Ken VanDine ]
* Hide sleep locks immediately setting, which isn't implemented yet
(LP: #1361297) (LP: #1361297)
[ Sebastien Bacher ]
* [system-update] rework the ui to use a column rather than anchors,
the layout is quite dynamic and it should be easier to position and
stack widgets this way (LP: #1343172)
[ Michael Terry ]
* After selecting the language, update the session environment
immediately and restart indicators so that their notifications (like
wifi prompt) are translated. (LP: #1354325)
[ Ken VanDine ]
* Added autopilot tests for security-privacy
[ jonas-drange ]
* [phone] adding dual sim functionality to phone panel - 930. By Ken VanDine
-
Added autopilot tests for security-privacy panel
- 929. By Ken VanDine
-
merged phone panel supported for dual sim as well as bug fixes related to dual sim
- 928. By Ken VanDine
-
* In the welcome wizard, refresh the text in the 'no sim card' and
'all done' pages to match the latest from design.
* Add a location page and a terms and conditions page for the HERE
service.
* Settings for idle/lock timeout (LP: #1230345)
* Added flickable to fix scrolling (LP: #1354161)
* Fix a bunch of compiler warnings.
* [cellular] displays cellular UIs based on how many SIMs are present.
(LP: #1357393) - 927. By Ken VanDine
-
[ Charles Kerr ]
* In the welcome wizard, refresh the text in the 'no sim card' and
'all done' pages to match the latest from design.
[ Michael Terry ]
* Add a location page and a terms and conditions page for the HERE
service.
[ Ken VanDine ]
* Settings for idle/lock timeout (LP: #1230345)
* Added flickable to fix scrolling (LP: #1354161)
[ Jussi Pakkanen ]
* Fix a bunch of compiler warnings.
[ jonas-drange ]
* [cellular] displays cellular UIs based on how many SIMs are present.
(LP: #1357393)
Preview Diff
1 | === modified file 'debian/changelog' |
2 | --- debian/changelog 2014-08-19 15:26:56 +0000 |
3 | +++ debian/changelog 2014-08-26 11:38:32 +0000 |
4 | @@ -1,3 +1,77 @@ |
5 | +ubuntu-system-settings (0.3+14.10.20140826-0ubuntu1) utopic; urgency=low |
6 | + |
7 | + [ Ken VanDine ] |
8 | + * Hide sleep locks immediately setting, which isn't implemented yet |
9 | + (LP: #1361297) (LP: #1361297) |
10 | + |
11 | + [ Sebastien Bacher ] |
12 | + * [system-update] rework the ui to use a column rather than anchors, |
13 | + the layout is quite dynamic and it should be easier to position and |
14 | + stack widgets this way (LP: #1343172) |
15 | + |
16 | + [ Michael Terry ] |
17 | + * After selecting the language, update the session environment |
18 | + immediately and restart indicators so that their notifications (like |
19 | + wifi prompt) are translated. (LP: #1354325) |
20 | + |
21 | + -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 26 Aug 2014 00:55:20 +0000 |
22 | + |
23 | +ubuntu-system-settings (0.3+14.10.20140825-0ubuntu1) utopic; urgency=low |
24 | + |
25 | + [ Ken VanDine ] |
26 | + * Added autopilot tests for security-privacy |
27 | + |
28 | + [ jonas-drange ] |
29 | + * [phone] adding dual sim functionality to phone panel |
30 | + |
31 | + -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 25 Aug 2014 15:19:31 +0000 |
32 | + |
33 | +ubuntu-system-settings (0.3+14.10.20140822.1-0ubuntu2) UNRELEASED; urgency=medium |
34 | + |
35 | + [ Charles Kerr ] |
36 | + * In the welcome wizard, refresh the text in the 'no sim card' and |
37 | + 'all done' pages to match the latest from design. |
38 | + |
39 | + [ Michael Terry ] |
40 | + * Add a location page and a terms and conditions page for the HERE |
41 | + service. |
42 | + |
43 | + [ Ken VanDine ] |
44 | + * Settings for idle/lock timeout (LP: #1230345) |
45 | + * Added flickable to fix scrolling (LP: #1354161) |
46 | + |
47 | + [ Jussi Pakkanen ] |
48 | + * Fix a bunch of compiler warnings. |
49 | + |
50 | + [ jonas-drange ] |
51 | + * [cellular] displays cellular UIs based on how many SIMs are present. |
52 | + (LP: #1357393) |
53 | + |
54 | + -- Ken VanDine <ken.vandine@canonical.com> Fri, 22 Aug 2014 22:47:14 -0400 |
55 | + |
56 | +ubuntu-system-settings (0.3+14.10.20140822.1-0ubuntu1) utopic; urgency=low |
57 | + |
58 | + [ Charles Kerr ] |
59 | + * In the welcome wizard, refresh the text in the 'no sim card' and |
60 | + 'all done' pages to match the latest from design. |
61 | + |
62 | + [ Michael Terry ] |
63 | + * Add a location page and a terms and conditions page for the HERE |
64 | + service. |
65 | + |
66 | + [ Ken VanDine ] |
67 | + * Settings for idle/lock timeout (LP: #1230345) |
68 | + * Added flickable to fix scrolling (LP: #1354161) |
69 | + |
70 | + [ Jussi Pakkanen ] |
71 | + * Fix a bunch of compiler warnings. |
72 | + |
73 | + [ jonas-drange ] |
74 | + * [cellular] displays cellular UIs based on how many SIMs are present. |
75 | + (LP: #1357393) |
76 | + |
77 | + -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 22 Aug 2014 18:57:00 +0000 |
78 | + |
79 | ubuntu-system-settings (0.3+14.10.20140819.1-0ubuntu1) utopic; urgency=low |
80 | |
81 | [ Sebastien Bacher ] |
82 | |
83 | === modified file 'debian/control' |
84 | --- debian/control 2014-08-19 14:56:31 +0000 |
85 | +++ debian/control 2014-08-26 11:38:32 +0000 |
86 | @@ -56,7 +56,7 @@ |
87 | bluez (>= 4.36), |
88 | dbus-property-service [amd64 armhf i386], |
89 | gsettings-desktop-schemas, |
90 | - gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140813), |
91 | + gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815), |
92 | indicator-bluetooth (>> 0.0.6+13.10.20131010), |
93 | indicator-network (>= 0.5.0+13.10.20130918), |
94 | powerd (>= 0.15) | gnome-settings-daemon, |
95 | |
96 | === modified file 'plugins/about/storageabout.cpp' |
97 | --- plugins/about/storageabout.cpp 2014-07-24 10:57:43 +0000 |
98 | +++ plugins/about/storageabout.cpp 2014-08-26 11:38:32 +0000 |
99 | @@ -60,7 +60,7 @@ |
100 | GAsyncReadyCallback callback, |
101 | gpointer user_data) |
102 | { |
103 | - MeasureData *data = (MeasureData *) user_data; |
104 | + auto *data = static_cast<MeasureData *>(user_data); |
105 | |
106 | GFile *file = g_file_new_for_path (filename); |
107 | |
108 | @@ -103,7 +103,7 @@ |
109 | GError *err = NULL; |
110 | GFile *file = G_FILE (source_object); |
111 | |
112 | - MeasureData *data = (MeasureData *) user_data; |
113 | + auto data = static_cast<MeasureData *>(user_data); |
114 | |
115 | guint64 *size = (guint64 *) data->size; |
116 | |
117 | @@ -137,6 +137,11 @@ |
118 | QObject(parent), |
119 | m_clickModel(), |
120 | m_clickFilterProxy(&m_clickModel), |
121 | + m_moviesSize(0), |
122 | + m_audioSize(0), |
123 | + m_picturesSize(0), |
124 | + m_otherSize(0), |
125 | + m_homeSize(0), |
126 | m_propertyService(new QDBusInterface(PROPERTY_SERVICE_OBJ, |
127 | PROPERTY_SERVICE_PATH, |
128 | PROPERTY_SERVICE_OBJ, |
129 | @@ -147,10 +152,10 @@ |
130 | |
131 | QString StorageAbout::serialNumber() |
132 | { |
133 | - static char serialBuffer[PROP_NAME_MAX]; |
134 | |
135 | if (m_serialNumber.isEmpty() || m_serialNumber.isNull()) |
136 | { |
137 | + char serialBuffer[PROP_VALUE_MAX]; |
138 | property_get("ro.serialno", serialBuffer, ""); |
139 | m_serialNumber = QString(serialBuffer); |
140 | } |
141 | @@ -160,11 +165,10 @@ |
142 | |
143 | QString StorageAbout::vendorString() |
144 | { |
145 | - static char manufacturerBuffer[PROP_NAME_MAX]; |
146 | - static char modelBuffer[PROP_NAME_MAX]; |
147 | - |
148 | if (m_vendorString.isEmpty() || m_vendorString.isNull()) |
149 | { |
150 | + char manufacturerBuffer[PROP_VALUE_MAX]; |
151 | + char modelBuffer[PROP_VALUE_MAX]; |
152 | property_get("ro.product.manufacturer", manufacturerBuffer, ""); |
153 | property_get("ro.product.model", modelBuffer, ""); |
154 | m_vendorString = QString("%1 %2").arg(manufacturerBuffer).arg(modelBuffer); |
155 | @@ -175,10 +179,10 @@ |
156 | |
157 | QString StorageAbout::deviceBuildDisplayID() |
158 | { |
159 | - static char serialBuffer[PROP_NAME_MAX]; |
160 | |
161 | if (m_deviceBuildDisplayID.isEmpty() || m_deviceBuildDisplayID.isNull()) |
162 | { |
163 | + char serialBuffer[PROP_VALUE_MAX]; |
164 | property_get("ro.build.display.id", serialBuffer, ""); |
165 | m_deviceBuildDisplayID = QString(serialBuffer); |
166 | } |
167 | |
168 | === modified file 'plugins/battery/PageComponent.qml' |
169 | --- plugins/battery/PageComponent.qml 2014-08-12 19:22:39 +0000 |
170 | +++ plugins/battery/PageComponent.qml 2014-08-26 11:38:32 +0000 |
171 | @@ -57,7 +57,7 @@ |
172 | |
173 | GSettings { |
174 | id: powerSettings |
175 | - schema.id: batteryBackend.powerdRunning ? "com.canonical.powerd" : "org.gnome.desktop.session" |
176 | + schema.id: batteryBackend.powerdRunning ? "com.ubuntu.touch.system" : "org.gnome.desktop.session" |
177 | } |
178 | |
179 | UbuntuSecurityPrivacyPanel { |
180 | @@ -322,7 +322,6 @@ |
181 | onClicked: pageStack.push( |
182 | Qt.resolvedUrl("SleepValues.qml"), |
183 | { title: text, lockOnSuspend: lockOnSuspend }) |
184 | - visible: showAllUI // TODO: re-enable once bug #1230345 is resolved |
185 | } |
186 | ListItem.Standard { |
187 | text: i18n.tr("Wi-Fi") |
188 | |
189 | === modified file 'plugins/battery/SleepValues.qml' |
190 | --- plugins/battery/SleepValues.qml 2013-09-30 16:48:16 +0000 |
191 | +++ plugins/battery/SleepValues.qml 2014-08-26 11:38:32 +0000 |
192 | @@ -31,11 +31,12 @@ |
193 | |
194 | ItemPage { |
195 | id: root |
196 | - |
197 | + objectName: "sleepValues" |
198 | flickable: scrollWidget |
199 | |
200 | property alias usePowerd: batteryBackend.powerdRunning |
201 | property bool lockOnSuspend |
202 | + property variant idleValues: [60,120,180,240,300,600] |
203 | |
204 | UbuntuBatteryPanel { |
205 | id: batteryBackend |
206 | @@ -43,19 +44,20 @@ |
207 | |
208 | GSettings { |
209 | id: powerSettings |
210 | - schema.id: usePowerd ? "com.canonical.powerd" : "org.gnome.desktop.session" |
211 | + schema.id: usePowerd ? "com.ubuntu.touch.system" : "org.gnome.desktop.session" |
212 | onChanged: { |
213 | if (key == "activityTimeout" || key == "idleDelay") |
214 | - if([60,120,180,240,300].indexOf(value) != -1) |
215 | - sleepSelector.selectedIndex = (value/60)-1 |
216 | + var curIndex = idleValues.indexOf(value) |
217 | + if( curIndex != -1) |
218 | + sleepSelector.selectedIndex = curIndex |
219 | else if(value === 0) |
220 | - sleepSelector.selectedIndex = 5 |
221 | + sleepSelector.selectedIndex = 6 |
222 | } |
223 | Component.onCompleted: { |
224 | if (usePowerd) |
225 | - sleepSelector.selectedIndex = (powerSettings.activityTimeout === 0) ? 5 : powerSettings.activityTimeout/60-1 |
226 | + sleepSelector.selectedIndex = (powerSettings.activityTimeout === 0) ? 6 : idleValues.indexOf(powerSettings.activityTimeout) |
227 | else |
228 | - sleepSelector.selectedIndex = (powerSettings.idleDelay === 0) ? 5 : powerSettings.idleDelay/60-1 |
229 | + sleepSelector.selectedIndex = (powerSettings.idleDelay === 0) ? 6 : idleValues.indexOf(powerSettings.idleDelay) |
230 | } |
231 | } |
232 | |
233 | @@ -71,7 +73,11 @@ |
234 | |
235 | ListItem.ItemSelector { |
236 | id: sleepSelector |
237 | + objectName: "sleepSelector" |
238 | text: lockOnSuspend ? i18n.tr("Lock the phone when it's not in use:") : i18n.tr("Put the phone to sleep when it is not in use:") |
239 | + delegate: OptionSelectorDelegate { |
240 | + text: modelData |
241 | + } |
242 | model: [ |
243 | // TRANSLATORS: %1 is the number of minutes |
244 | i18n.tr("After %1 minute", |
245 | @@ -93,13 +99,17 @@ |
246 | i18n.tr("After %1 minute", |
247 | "After %1 minutes", |
248 | 5).arg(5), |
249 | + // TRANSLATORS: %1 is the number of minutes |
250 | + i18n.tr("After %1 minute", |
251 | + "After %1 minutes", |
252 | + 10).arg(10), |
253 | i18n.tr("Never")] |
254 | expanded: true |
255 | onDelegateClicked: { |
256 | if (usePowerd) |
257 | - powerSettings.activityTimeout = (index == 5) ? 0 : (index+1)*60 |
258 | + powerSettings.activityTimeout = (index == 6) ? 0 : idleValues[index] |
259 | else |
260 | - powerSettings.idleDelay = (index == 5) ? 0 : (index+1)*60 |
261 | + powerSettings.idleDelay = (index == 6) ? 0 : idleValues[index] |
262 | } |
263 | } |
264 | |
265 | |
266 | === modified file 'plugins/battery/battery.cpp' |
267 | --- plugins/battery/battery.cpp 2013-09-30 11:09:29 +0000 |
268 | +++ plugins/battery/battery.cpp 2014-08-26 11:38:32 +0000 |
269 | @@ -28,7 +28,7 @@ |
270 | GParamSpec *pspec G_GNUC_UNUSED, |
271 | gpointer user_data) |
272 | { |
273 | - Battery * object = (Battery *) user_data; |
274 | + auto object = static_cast<Battery *>(user_data); |
275 | |
276 | Q_EMIT (object->wifiEnabledChanged()); |
277 | } |
278 | @@ -65,7 +65,6 @@ |
279 | UpClient *client; |
280 | gboolean returnIsOk; |
281 | GPtrArray *devices; |
282 | - UpDevice *device; |
283 | UpDeviceKind kind; |
284 | |
285 | client = up_client_new(); |
286 | @@ -77,6 +76,7 @@ |
287 | devices = up_client_get_devices(client); |
288 | |
289 | for (uint i=0; i < devices->len; i++) { |
290 | + UpDevice *device; |
291 | device = (UpDevice *)g_ptr_array_index(devices, i); |
292 | g_object_get(device, "kind", &kind, NULL); |
293 | if (kind == UP_DEVICE_KIND_BATTERY) { |
294 | @@ -111,7 +111,6 @@ |
295 | |
296 | void Battery::getLastFullCharge() |
297 | { |
298 | - UpHistoryItem *item; |
299 | GPtrArray *values = NULL; |
300 | gint32 offset = 0; |
301 | GTimeVal timeval; |
302 | @@ -130,7 +129,7 @@ |
303 | g_object_get (m_device, "capacity", &maxCapacity, NULL); |
304 | |
305 | for (uint i=0; i < values->len; i++) { |
306 | - item = (UpHistoryItem *) g_ptr_array_index(values, i); |
307 | + auto item = static_cast<UpHistoryItem *>(g_ptr_array_index(values, i)); |
308 | |
309 | /* Getting the next point after full charge, since upower registers only on state changes, |
310 | typically you get no data while the device is fully charged and plugged and you get a discharging |
311 | @@ -155,7 +154,6 @@ |
312 | if (deviceString.isNull() || deviceString.isEmpty()) |
313 | return QVariantList(); |
314 | |
315 | - UpHistoryItem *item; |
316 | GPtrArray *values = NULL; |
317 | gint32 offset = 0; |
318 | GTimeVal timeval; |
319 | @@ -174,7 +172,7 @@ |
320 | } |
321 | |
322 | for (uint i=values->len-1; i > 0; i--) { |
323 | - item = (UpHistoryItem *) g_ptr_array_index(values, i); |
324 | + auto item = static_cast<UpHistoryItem *>(g_ptr_array_index(values, i)); |
325 | |
326 | if (up_history_item_get_state(item) == UP_DEVICE_STATE_UNKNOWN) |
327 | continue; |
328 | |
329 | === modified file 'plugins/bluetooth/PageComponent.qml' |
330 | --- plugins/bluetooth/PageComponent.qml 2014-07-29 15:09:23 +0000 |
331 | +++ plugins/bluetooth/PageComponent.qml 2014-08-26 11:38:32 +0000 |
332 | @@ -29,6 +29,8 @@ |
333 | |
334 | ItemPage { |
335 | id: root |
336 | + title: i18n.tr("Bluetooth") |
337 | + |
338 | UbuntuBluetoothPanel { id: backend } |
339 | |
340 | Component { |
341 | @@ -112,14 +114,20 @@ |
342 | } |
343 | } |
344 | |
345 | - Page { |
346 | - id: mainPage |
347 | - title: i18n.tr("Bluetooth") |
348 | - visible: true |
349 | + |
350 | + Flickable { |
351 | anchors.fill: parent |
352 | + contentHeight: contentItem.childrenRect.height |
353 | + boundsBehavior: (contentHeight > root.height) ? |
354 | + Flickable.DragAndOvershootBounds : |
355 | + Flickable.StopAtBounds |
356 | + /* Set the direction to workaround https://bugreports.qt-project.org/browse/QTBUG-31905 |
357 | + otherwise the UI might end up in a situation where scrolling doesn't work */ |
358 | + flickableDirection: Flickable.VerticalFlick |
359 | |
360 | Column { |
361 | - anchors.fill: parent |
362 | + anchors.left: parent.left |
363 | + anchors.right: parent.right |
364 | |
365 | QDBusActionGroup { |
366 | id: bluetoothActionGroup |
367 | @@ -205,27 +213,30 @@ |
368 | visible: connectedList.visible |
369 | } |
370 | |
371 | - ListView { |
372 | + Column { |
373 | id: connectedList |
374 | - width: parent.width |
375 | - height: connectedHeader.height * count |
376 | - |
377 | + anchors { |
378 | + left: parent.left |
379 | + right: parent.right |
380 | + } |
381 | visible: bluetoothActionGroup.enabled && (count > 0) |
382 | |
383 | - model: backend.connectedDevices |
384 | - delegate: ListItem.Standard { |
385 | - iconSource: iconPath |
386 | - iconFrame: false |
387 | - text: getDisplayName(type, displayName) |
388 | - control: ActivityIndicator { |
389 | - visible: connection == Device.Connecting |
390 | - running: true |
391 | - } |
392 | - onClicked: { |
393 | - backend.setSelectedDevice(addressName); |
394 | - pageStack.push(connectedDevicePage); |
395 | - } |
396 | - progression: true |
397 | + Repeater { |
398 | + model: backend.connectedDevices |
399 | + delegate: ListItem.Standard { |
400 | + iconSource: iconPath |
401 | + iconFrame: false |
402 | + text: getDisplayName(type, displayName) |
403 | + control: ActivityIndicator { |
404 | + visible: connection == Device.Connecting |
405 | + running: true |
406 | + } |
407 | + onClicked: { |
408 | + backend.setSelectedDevice(addressName); |
409 | + pageStack.push(connectedDevicePage); |
410 | + } |
411 | + progression: true |
412 | + } |
413 | } |
414 | } |
415 | |
416 | @@ -241,24 +252,27 @@ |
417 | } |
418 | } |
419 | |
420 | - ListView { |
421 | + Column { |
422 | id: disconnectedList |
423 | - width: parent.width |
424 | - height: disconnectedHeader.height * count |
425 | - |
426 | + anchors { |
427 | + left: parent.left |
428 | + right: parent.right |
429 | + } |
430 | visible: bluetoothActionGroup.enabled && (count > 0) |
431 | |
432 | - model: backend.disconnectedDevices |
433 | - delegate: ListItem.Standard { |
434 | - iconSource: iconPath |
435 | - iconFrame: false |
436 | - text: getDisplayName(type, displayName) |
437 | - enabled: backend.isSupportedType(type) |
438 | - onClicked: { |
439 | - backend.setSelectedDevice(addressName); |
440 | - pageStack.push(connectedDevicePage); |
441 | + Repeater { |
442 | + model: backend.disconnectedDevices |
443 | + delegate: ListItem.Standard { |
444 | + iconSource: iconPath |
445 | + iconFrame: false |
446 | + text: getDisplayName(type, displayName) |
447 | + enabled: backend.isSupportedType(type) |
448 | + onClicked: { |
449 | + backend.setSelectedDevice(addressName); |
450 | + pageStack.push(connectedDevicePage); |
451 | + } |
452 | + progression: true |
453 | } |
454 | - progression: true |
455 | } |
456 | } |
457 | ListItem.Standard { |
458 | @@ -275,23 +289,27 @@ |
459 | visible: autoconnectList.visible |
460 | enabled: bluetoothActionGroup.enabled |
461 | } |
462 | - ListView { |
463 | + Column { |
464 | id: autoconnectList |
465 | - width: parent.width |
466 | - height: autoconnectHeader.height * count |
467 | + anchors { |
468 | + left: parent.left |
469 | + right: parent.right |
470 | + } |
471 | |
472 | visible: bluetoothActionGroup.enabled && (count > 0) |
473 | |
474 | - model: backend.autoconnectDevices |
475 | - delegate: ListItem.Standard { |
476 | - iconSource: iconPath |
477 | - iconFrame: false |
478 | - text: getDisplayName(type, displayName) |
479 | - onClicked: { |
480 | - backend.setSelectedDevice(addressName); |
481 | - pageStack.push(connectedDevicePage); |
482 | + Repeater { |
483 | + model: backend.autoconnectDevices |
484 | + delegate: ListItem.Standard { |
485 | + iconSource: iconPath |
486 | + iconFrame: false |
487 | + text: getDisplayName(type, displayName) |
488 | + onClicked: { |
489 | + backend.setSelectedDevice(addressName); |
490 | + pageStack.push(connectedDevicePage); |
491 | + } |
492 | + progression: true |
493 | } |
494 | - progression: true |
495 | } |
496 | } |
497 | } |
498 | @@ -302,100 +320,114 @@ |
499 | title: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None") |
500 | visible: false |
501 | |
502 | - Column { |
503 | + Flickable { |
504 | anchors.fill: parent |
505 | - |
506 | - ListItem.SingleValue { |
507 | - text: i18n.tr("Name") |
508 | - value: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None") |
509 | - } |
510 | - ListItem.Standard { |
511 | - Rectangle { |
512 | - color: "transparent" |
513 | - anchors.fill: parent |
514 | - anchors.topMargin: units.gu(1) |
515 | - anchors.leftMargin: units.gu(2) |
516 | - anchors.rightMargin: units.gu(2) |
517 | - |
518 | - Label { |
519 | - anchors { |
520 | - top: parent.top |
521 | - left: parent.left |
522 | - topMargin: units.gu(1) |
523 | - } |
524 | - height: units.gu(3) |
525 | - text: i18n.tr("Type") |
526 | - } |
527 | - Image { |
528 | - anchors { |
529 | - right: deviceType.left |
530 | - rightMargin: units.gu(1) |
531 | - } |
532 | - height: units.gu(4) |
533 | - width: units.gu(4) |
534 | - source: backend.selectedDevice ? backend.selectedDevice.iconName : "" |
535 | - } |
536 | - Label { |
537 | - id: deviceType |
538 | - anchors { |
539 | - top: parent.top |
540 | - right: parent.right |
541 | - topMargin: units.gu(1) |
542 | - } |
543 | - height: units.gu(3) |
544 | - text: getTypeString(backend.selectedDevice ? backend.selectedDevice.type : Device.OTHER) |
545 | - } |
546 | - } |
547 | - } |
548 | - ListItem.SingleValue { |
549 | - text: i18n.tr("Status") |
550 | - value: getStatusString(backend.selectedDevice ? backend.selectedDevice.connection : Device.Disconnected) |
551 | - } |
552 | - ListItem.SingleValue { |
553 | - text: i18n.tr("Signal Strength") |
554 | - value: getSignalString(backend.selectedDevice ? backend.selectedDevice.strength : Device.None) |
555 | - } |
556 | - ListItem.Standard { |
557 | - id: trustedCheck |
558 | - text: i18n.tr("Connect automatically when detected:") |
559 | - control: CheckBox { |
560 | - onClicked: { |
561 | - if (backend.selectedDevice) { |
562 | - backend.selectedDevice.trusted = !backend.selectedDevice.trusted |
563 | - } |
564 | - } |
565 | - checked: backend.selectedDevice ? backend.selectedDevice.trusted : false |
566 | - } |
567 | - Component.onCompleted: |
568 | - clicked.connect(trustedCheck.clicked) |
569 | - } |
570 | - ListItem.SingleControl { |
571 | - control: Button { |
572 | - text: backend.selectedDevice && (backend.selectedDevice.connection == Device.Connected || backend.selectedDevice.connection == Device.Connecting) ? i18n.tr("Disconnect") : i18n.tr("Connect") |
573 | - width: parent.width - units.gu(8) |
574 | - onClicked: { |
575 | - if (backend.selectedDevice |
576 | - && (backend.selectedDevice.connection == Device.Connected |
577 | - || backend.selectedDevice.connection == Device.Connecting)) { |
578 | - backend.disconnectDevice(); |
579 | - } else { |
580 | - backend.stopDiscovery() |
581 | - backend.connectDevice(backend.selectedDevice.address); |
582 | - } |
583 | - pageStack.pop(); |
584 | - } |
585 | - visible: backend.selectedDevice ? true : false |
586 | - } |
587 | - } |
588 | - ListItem.SingleControl { |
589 | - control: Button { |
590 | - text: i18n.tr("Forget this device") |
591 | - width: parent.width - units.gu(8) |
592 | - onClicked: { |
593 | - backend.removeDevice(); |
594 | - pageStack.pop(); |
595 | - } |
596 | - enabled: backend.selectedDevice && backend.selectedDevice.path.length > 0 ? true : false |
597 | + contentHeight: contentItem.childrenRect.height |
598 | + boundsBehavior: (contentHeight > root.height) ? |
599 | + Flickable.DragAndOvershootBounds : |
600 | + Flickable.StopAtBounds |
601 | + /* Set the direction to workaround https://bugreports.qt-project.org/browse/QTBUG-31905 |
602 | + otherwise the UI might end up in a situation where scrolling doesn't work */ |
603 | + flickableDirection: Flickable.VerticalFlick |
604 | + |
605 | + Column { |
606 | + anchors { |
607 | + left: parent.left |
608 | + right: parent.right |
609 | + } |
610 | + |
611 | + ListItem.SingleValue { |
612 | + text: i18n.tr("Name") |
613 | + value: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None") |
614 | + } |
615 | + ListItem.Standard { |
616 | + Rectangle { |
617 | + color: "transparent" |
618 | + anchors.fill: parent |
619 | + anchors.topMargin: units.gu(1) |
620 | + anchors.leftMargin: units.gu(2) |
621 | + anchors.rightMargin: units.gu(2) |
622 | + |
623 | + Label { |
624 | + anchors { |
625 | + top: parent.top |
626 | + left: parent.left |
627 | + topMargin: units.gu(1) |
628 | + } |
629 | + height: units.gu(3) |
630 | + text: i18n.tr("Type") |
631 | + } |
632 | + Image { |
633 | + anchors { |
634 | + right: deviceType.left |
635 | + rightMargin: units.gu(1) |
636 | + } |
637 | + height: units.gu(4) |
638 | + width: units.gu(4) |
639 | + source: backend.selectedDevice ? backend.selectedDevice.iconName : "" |
640 | + } |
641 | + Label { |
642 | + id: deviceType |
643 | + anchors { |
644 | + top: parent.top |
645 | + right: parent.right |
646 | + topMargin: units.gu(1) |
647 | + } |
648 | + height: units.gu(3) |
649 | + text: getTypeString(backend.selectedDevice ? backend.selectedDevice.type : Device.OTHER) |
650 | + } |
651 | + } |
652 | + } |
653 | + ListItem.SingleValue { |
654 | + text: i18n.tr("Status") |
655 | + value: getStatusString(backend.selectedDevice ? backend.selectedDevice.connection : Device.Disconnected) |
656 | + } |
657 | + ListItem.SingleValue { |
658 | + text: i18n.tr("Signal Strength") |
659 | + value: getSignalString(backend.selectedDevice ? backend.selectedDevice.strength : Device.None) |
660 | + } |
661 | + ListItem.Standard { |
662 | + id: trustedCheck |
663 | + text: i18n.tr("Connect automatically when detected:") |
664 | + control: CheckBox { |
665 | + onClicked: { |
666 | + if (backend.selectedDevice) { |
667 | + backend.selectedDevice.trusted = !backend.selectedDevice.trusted |
668 | + } |
669 | + } |
670 | + checked: backend.selectedDevice ? backend.selectedDevice.trusted : false |
671 | + } |
672 | + Component.onCompleted: |
673 | + clicked.connect(trustedCheck.clicked) |
674 | + } |
675 | + ListItem.SingleControl { |
676 | + control: Button { |
677 | + text: backend.selectedDevice && (backend.selectedDevice.connection == Device.Connected || backend.selectedDevice.connection == Device.Connecting) ? i18n.tr("Disconnect") : i18n.tr("Connect") |
678 | + width: parent.width - units.gu(8) |
679 | + onClicked: { |
680 | + if (backend.selectedDevice |
681 | + && (backend.selectedDevice.connection == Device.Connected |
682 | + || backend.selectedDevice.connection == Device.Connecting)) { |
683 | + backend.disconnectDevice(); |
684 | + } else { |
685 | + backend.stopDiscovery() |
686 | + backend.connectDevice(backend.selectedDevice.address); |
687 | + } |
688 | + pageStack.pop(); |
689 | + } |
690 | + visible: backend.selectedDevice ? true : false |
691 | + } |
692 | + } |
693 | + ListItem.SingleControl { |
694 | + control: Button { |
695 | + text: i18n.tr("Forget this device") |
696 | + width: parent.width - units.gu(8) |
697 | + onClicked: { |
698 | + backend.removeDevice(); |
699 | + pageStack.pop(); |
700 | + } |
701 | + enabled: backend.selectedDevice && backend.selectedDevice.path.length > 0 ? true : false |
702 | + } |
703 | } |
704 | } |
705 | } |
706 | |
707 | === modified file 'plugins/bluetooth/agent.h' |
708 | --- plugins/bluetooth/agent.h 2013-09-27 14:55:53 +0000 |
709 | +++ plugins/bluetooth/agent.h 2014-08-26 11:38:32 +0000 |
710 | @@ -57,7 +57,7 @@ |
711 | void onPairingDone(); |
712 | |
713 | private: |
714 | - Q_DISABLE_COPY(Agent); |
715 | + Q_DISABLE_COPY(Agent) |
716 | |
717 | QDBusConnection m_connection; |
718 | DeviceModel &m_devices; |
719 | |
720 | === modified file 'plugins/bluetooth/bluetooth.cpp' |
721 | --- plugins/bluetooth/bluetooth.cpp 2014-07-30 02:25:07 +0000 |
722 | +++ plugins/bluetooth/bluetooth.cpp 2014-08-26 11:38:32 +0000 |
723 | @@ -151,10 +151,8 @@ |
724 | |
725 | void Bluetooth::disconnectDevice() |
726 | { |
727 | - Device::Type type; |
728 | - |
729 | if (m_selectedDevice) { |
730 | - type = m_selectedDevice->getType(); |
731 | + auto type = m_selectedDevice->getType(); |
732 | if (type == Device::Type::Headset) |
733 | m_selectedDevice->disconnect(Device::ConnectionMode::Audio); |
734 | else if (type == Device::Type::Headphones) |
735 | |
736 | === modified file 'plugins/bluetooth/bluetooth.h' |
737 | --- plugins/bluetooth/bluetooth.h 2014-07-29 16:44:03 +0000 |
738 | +++ plugins/bluetooth/bluetooth.h 2014-08-26 11:38:32 +0000 |
739 | @@ -45,22 +45,22 @@ |
740 | |
741 | Q_PROPERTY (QObject * selectedDevice |
742 | READ getSelectedDevice |
743 | - NOTIFY selectedDeviceChanged); |
744 | + NOTIFY selectedDeviceChanged) |
745 | |
746 | Q_PROPERTY (QObject * agent |
747 | - READ getAgent); |
748 | + READ getAgent) |
749 | |
750 | Q_PROPERTY (bool powered |
751 | READ isPowered |
752 | - NOTIFY poweredChanged); |
753 | + NOTIFY poweredChanged) |
754 | |
755 | Q_PROPERTY (bool discovering |
756 | READ isDiscovering |
757 | - NOTIFY discoveringChanged); |
758 | + NOTIFY discoveringChanged) |
759 | |
760 | Q_PROPERTY (bool discoverable |
761 | READ isDiscoverable |
762 | - NOTIFY discoverableChanged); |
763 | + NOTIFY discoverableChanged) |
764 | |
765 | Q_SIGNALS: |
766 | void selectedDeviceChanged(); |
767 | |
768 | === modified file 'plugins/bluetooth/device.cpp' |
769 | --- plugins/bluetooth/device.cpp 2014-07-30 14:51:27 +0000 |
770 | +++ plugins/bluetooth/device.cpp 2014-08-26 11:38:32 +0000 |
771 | @@ -453,6 +453,7 @@ |
772 | default: |
773 | return Type::OtherAudio; |
774 | } |
775 | + break; |
776 | |
777 | case 0x05: |
778 | switch ((c & 0xc0) >> 6) { |
779 | |
780 | === modified file 'plugins/cellular/CMakeLists.txt' |
781 | --- plugins/cellular/CMakeLists.txt 2014-07-17 20:59:15 +0000 |
782 | +++ plugins/cellular/CMakeLists.txt 2014-08-26 11:38:32 +0000 |
783 | @@ -9,6 +9,7 @@ |
784 | PageComponent.qml |
785 | Hotspot.qml |
786 | HotspotSetup.qml |
787 | + sims.js |
788 | ) |
789 | |
790 | |
791 | |
792 | === modified file 'plugins/cellular/Components/CMakeLists.txt' |
793 | --- plugins/cellular/Components/CMakeLists.txt 2014-07-31 20:10:40 +0000 |
794 | +++ plugins/cellular/Components/CMakeLists.txt 2014-08-26 11:38:32 +0000 |
795 | @@ -1,6 +1,9 @@ |
796 | set(QML_SOURCES |
797 | + NoSim.qml |
798 | + SingleSim.qml |
799 | + MultiSim.qml |
800 | CellularSingleSim.qml |
801 | - CellularDualSim.qml |
802 | + CellularMultiSim.qml |
803 | data-helpers.js |
804 | DefaultSim.qml |
805 | Sim.qml |
806 | |
807 | === renamed file 'plugins/cellular/Components/CellularDualSim.qml' => 'plugins/cellular/Components/CellularMultiSim.qml' |
808 | --- plugins/cellular/Components/CellularDualSim.qml 2014-08-14 13:59:57 +0000 |
809 | +++ plugins/cellular/Components/CellularMultiSim.qml 2014-08-26 11:38:32 +0000 |
810 | @@ -24,20 +24,18 @@ |
811 | |
812 | Column { |
813 | id: root |
814 | - property var sim1 |
815 | - property var sim2 |
816 | property var selector: selector |
817 | property var prefMap: ['gsm', 'umts'] |
818 | |
819 | function getNameFromIndex (index) { |
820 | - return [i18n.tr("Off"), sim1.title, sim2.title][index]; |
821 | + return [i18n.tr("Off"), sims[0].title, sims[1].title][index]; |
822 | } |
823 | |
824 | function getUsedSim () { |
825 | if (state === "sim1Online") { |
826 | - return sim1; |
827 | + return sims[0]; |
828 | } else if (state === "sim2Online") { |
829 | - return sim2; |
830 | + return sims[1]; |
831 | } else { |
832 | return null; |
833 | } |
834 | @@ -47,27 +45,27 @@ |
835 | states: [ |
836 | State { |
837 | name: "sim1Online" |
838 | - when: sim1.connMan.powered && !sim2.connMan.powered |
839 | + when: sims[0].connMan.powered && !sims[1].connMan.powered |
840 | StateChangeScript { script: { |
841 | selector.selectedIndex = |
842 | DataHelpers.dualSimKeyToIndex( |
843 | - sim1.radioSettings.technologyPreference) |
844 | + sims[0].radioSettings.technologyPreference) |
845 | }} |
846 | }, |
847 | State { |
848 | name: "sim2Online" |
849 | - when: sim2.connMan.powered && !sim1.connMan.powered |
850 | + when: sims[1].connMan.powered && !sims[0].connMan.powered |
851 | StateChangeScript { script: { |
852 | selector.selectedIndex = |
853 | DataHelpers.dualSimKeyToIndex( |
854 | - sim2.radioSettings.technologyPreference) |
855 | + sims[1].radioSettings.technologyPreference) |
856 | }} |
857 | }, |
858 | State { |
859 | name: "bothOnline" |
860 | - when: sim1.connMan.powered && sim2.connMan.powered |
861 | + when: sims[0].connMan.powered && sims[1].connMan.powered |
862 | StateChangeScript { script: { |
863 | - sim2.connMan.powered = false; |
864 | + sims[1].connMan.powered = false; |
865 | }} |
866 | } |
867 | ] |
868 | @@ -82,16 +80,16 @@ |
869 | objectName: "use" + modelData |
870 | text: getNameFromIndex(index) |
871 | } |
872 | - selectedIndex: [true, sim1.connMan.powered, sim2.connMan.powered] |
873 | + selectedIndex: [true, sims[0].connMan.powered, sims[1].connMan.powered] |
874 | .lastIndexOf(true) |
875 | onDelegateClicked: { |
876 | - sim1.connMan.powered = (index === 1) |
877 | - sim2.connMan.powered = (index === 2) |
878 | + sims[0].connMan.powered = (index === 1) |
879 | + sims[1].connMan.powered = (index === 2) |
880 | } |
881 | } |
882 | |
883 | Connections { |
884 | - target: sim1.connMan |
885 | + target: sims[0].connMan |
886 | onPoweredChanged: { |
887 | if (powered) { |
888 | use.selectedIndex = 1; |
889 | @@ -100,7 +98,7 @@ |
890 | } |
891 | |
892 | Connections { |
893 | - target: sim2.connMan |
894 | + target: sims[1].connMan |
895 | onPoweredChanged: { |
896 | if (powered) { |
897 | use.selectedIndex = 2; |
898 | @@ -124,9 +122,9 @@ |
899 | } |
900 | |
901 | Connections { |
902 | - target: sim1.radioSettings |
903 | + target: sims[0].radioSettings |
904 | onTechnologyPreferenceChanged: { |
905 | - if (sim1.connMan.powered) { |
906 | + if (sims[0].connMan.powered) { |
907 | selector.selectedIndex = |
908 | DataHelpers.dualSimKeyToIndex(preference); |
909 | } |
910 | @@ -134,9 +132,9 @@ |
911 | } |
912 | |
913 | Connections { |
914 | - target: sim2.radioSettings |
915 | + target: sims[1].radioSettings |
916 | onTechnologyPreferenceChanged: { |
917 | - if (sim2.connMan.powered) { |
918 | + if (sims[1].connMan.powered) { |
919 | selector.selectedIndex = |
920 | DataHelpers.dualSimKeyToIndex(preference); |
921 | } |
922 | |
923 | === modified file 'plugins/cellular/Components/CellularSingleSim.qml' |
924 | --- plugins/cellular/Components/CellularSingleSim.qml 2014-08-14 13:59:57 +0000 |
925 | +++ plugins/cellular/Components/CellularSingleSim.qml 2014-08-26 11:38:32 +0000 |
926 | @@ -25,7 +25,6 @@ |
927 | Column { |
928 | height: childrenRect.height |
929 | |
930 | - property var sim1 |
931 | property var selector: selector |
932 | |
933 | ListItem.ItemSelector { |
934 | @@ -33,15 +32,15 @@ |
935 | objectName: "technologyPreferenceSelector" |
936 | text: i18n.tr("Cellular data:") |
937 | expanded: true |
938 | - enabled: sim1.radioSettings.technologyPreference !== "" |
939 | + enabled: sim.radioSettings.technologyPreference !== "" |
940 | model: [ |
941 | i18n.tr("Off"), |
942 | i18n.tr("2G only (saves battery)"), |
943 | i18n.tr("2G/3G/4G (faster)")] |
944 | selectedIndex: { |
945 | - if (sim1.connMan.powered) { |
946 | + if (sim.connMan.powered) { |
947 | return DataHelpers.singleSimKeyToIndex( |
948 | - sim1.radioSettings.technologyPreference); |
949 | + sim.radioSettings.technologyPreference); |
950 | } else { |
951 | return 0; |
952 | } |
953 | @@ -52,20 +51,20 @@ |
954 | id: dataRoamingItem |
955 | objectName: "dataRoamingSwitch" |
956 | text: i18n.tr("Data roaming") |
957 | - enabled: sim1.connMan.powered |
958 | + enabled: sim.connMan.powered |
959 | control: Switch { |
960 | id: dataRoamingControl |
961 | - checked: sim1.connMan.roamingAllowed |
962 | - onClicked: sim1.connMan.roamingAllowed = checked |
963 | + checked: sim.connMan.roamingAllowed |
964 | + onClicked: sim.connMan.roamingAllowed = checked |
965 | } |
966 | } |
967 | |
968 | Connections { |
969 | - target: sim1.connMan |
970 | + target: sim.connMan |
971 | onPoweredChanged: { |
972 | if (powered) { |
973 | selector.selectedIndex = DataHelpers.singleSimKeyToIndex( |
974 | - sim1.radioSettings.technologyPreference); |
975 | + sim.radioSettings.technologyPreference); |
976 | } else { |
977 | selector.selectedIndex = 0; |
978 | } |
979 | @@ -73,24 +72,24 @@ |
980 | } |
981 | |
982 | Connections { |
983 | - target: sim1.radioSettings |
984 | + target: sim.radioSettings |
985 | onTechnologyPreferenceChanged: { |
986 | var selIndex = selector.selectedIndex; |
987 | if (selIndex > 0) { |
988 | - sim1.radioSettings.technologyPreference = |
989 | + sim.radioSettings.technologyPreference = |
990 | DataHelpers.singleSimIndexToKey(selIndex); |
991 | } |
992 | } |
993 | } |
994 | |
995 | Binding { |
996 | - target: sim1.connMan |
997 | + target: sim.connMan |
998 | property: "powered" |
999 | value: selector.selectedIndex !== 0 |
1000 | } |
1001 | |
1002 | Binding { |
1003 | - target: sim1.radioSettings |
1004 | + target: sim.radioSettings |
1005 | property: "technologyPreference" |
1006 | value: { |
1007 | var i = selector.selectedIndex; |
1008 | @@ -99,7 +98,7 @@ |
1009 | } else if (i === 2) { |
1010 | return 'umts'; |
1011 | } else { |
1012 | - return sim1.radioSettings.technologyPreference |
1013 | + return sim.radioSettings.technologyPreference |
1014 | } |
1015 | } |
1016 | } |
1017 | |
1018 | === modified file 'plugins/cellular/Components/DefaultSim.qml' |
1019 | --- plugins/cellular/Components/DefaultSim.qml 2014-08-14 09:59:56 +0000 |
1020 | +++ plugins/cellular/Components/DefaultSim.qml 2014-08-26 11:38:32 +0000 |
1021 | @@ -23,10 +23,10 @@ |
1022 | |
1023 | Column { |
1024 | |
1025 | - property var m: ["ask", sim1.path, sim2.path] |
1026 | + property var m: ["ask", sims[0].path, sims[1].path] |
1027 | |
1028 | function getNameFromIndex (index) { |
1029 | - return [i18n.tr("Ask me each time"), sim1.title, sim2.title][index]; |
1030 | + return [i18n.tr("Ask me each time"), sims[0].title, sims[1].title][index]; |
1031 | } |
1032 | |
1033 | ListItem.ItemSelector { |
1034 | @@ -45,8 +45,7 @@ |
1035 | } |
1036 | |
1037 | ListItem.Caption { |
1038 | - text: i18n.tr("You can change the SIM for individual calls, |
1039 | - or for contacts in the address book.") |
1040 | + text: i18n.tr("You can change the SIM for individual calls, or for contacts in the address book.") |
1041 | } |
1042 | |
1043 | ListItem.Divider {} |
1044 | |
1045 | === added file 'plugins/cellular/Components/MultiSim.qml' |
1046 | --- plugins/cellular/Components/MultiSim.qml 1970-01-01 00:00:00 +0000 |
1047 | +++ plugins/cellular/Components/MultiSim.qml 2014-08-26 11:38:32 +0000 |
1048 | @@ -0,0 +1,120 @@ |
1049 | +/* |
1050 | + * Copyright (C) 2014 Canonical Ltd |
1051 | + * |
1052 | + * This program is free software: you can redistribute it and/or modify |
1053 | + * it under the terms of the GNU General Public License version 3 as |
1054 | + * published by the Free Software Foundation. |
1055 | + * |
1056 | + * This program is distributed in the hope that it will be useful, |
1057 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1058 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1059 | + * GNU General Public License for more details. |
1060 | + * |
1061 | + * You should have received a copy of the GNU General Public License |
1062 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1063 | + * |
1064 | + * Authors: |
1065 | + * Jonas G. Drange <jonas.drange@canonical.com> |
1066 | + * |
1067 | +*/ |
1068 | +import QtQuick 2.0 |
1069 | +import GSettings 1.0 |
1070 | +import Ubuntu.Components 0.1 |
1071 | +import Ubuntu.Components.ListItems 0.1 as ListItem |
1072 | + |
1073 | +Column { |
1074 | + |
1075 | + objectName: "multiSim" |
1076 | + |
1077 | + property var sims |
1078 | + property var modems |
1079 | + |
1080 | + // make settings available to all children of root |
1081 | + property var settings: phoneSettings |
1082 | + |
1083 | + CellularMultiSim { |
1084 | + anchors { left: parent.left; right: parent.right } |
1085 | + } |
1086 | + |
1087 | + ListItem.Divider {} |
1088 | + |
1089 | + ListItem.SingleValue { |
1090 | + text : i18n.tr("Hotspot disabled because Wi-Fi is off.") |
1091 | + visible: showAllUI && !hotspotItem.visible |
1092 | + } |
1093 | + |
1094 | + ListItem.SingleValue { |
1095 | + id: hotspotItem |
1096 | + text: i18n.tr("Wi-Fi hotspot") |
1097 | + progression: true |
1098 | + onClicked: { |
1099 | + pageStack.push(Qt.resolvedUrl("Hotspot.qml")) |
1100 | + } |
1101 | + visible: showAllUI && (actionGroup.actionObject.valid ? actionGroup.actionObject.state : false) |
1102 | + } |
1103 | + |
1104 | + ListItem.Standard { |
1105 | + id: dataUsage |
1106 | + text: i18n.tr("Data usage statistics") |
1107 | + progression: true |
1108 | + visible: showAllUI |
1109 | + } |
1110 | + |
1111 | + ListItem.Divider { |
1112 | + visible: hotspotItem.visible || dataUsage.visible |
1113 | + } |
1114 | + |
1115 | + ListItem.SingleValue { |
1116 | + text: i18n.tr("Carriers") |
1117 | + id: chooseCarrier |
1118 | + objectName: "chooseCarrier" |
1119 | + progression: enabled |
1120 | + onClicked: { |
1121 | + pageStack.push(Qt.resolvedUrl("../PageChooseCarriers.qml"), { |
1122 | + sims: sims |
1123 | + }); |
1124 | + } |
1125 | + } |
1126 | + |
1127 | + ListItem.Divider {} |
1128 | + |
1129 | + SimEditor { |
1130 | + anchors { left: parent.left; right: parent.right } |
1131 | + } |
1132 | + |
1133 | + ListItem.Divider {} |
1134 | + |
1135 | + DefaultSim { |
1136 | + anchors { left: parent.left; right: parent.right } |
1137 | + } |
1138 | + |
1139 | + GSettings { |
1140 | + id: phoneSettings |
1141 | + schema.id: "com.ubuntu.phone" |
1142 | + Component.onCompleted: { |
1143 | + // set default names |
1144 | + var simNames = phoneSettings.simNames; |
1145 | + var m0 = modems[0]; |
1146 | + var m1 = modems[1]; |
1147 | + if (!simNames[m0]) { |
1148 | + simNames[m0] = "SIM 1"; |
1149 | + } |
1150 | + if (!simNames[m1]) { |
1151 | + simNames[m1] = "SIM 2"; |
1152 | + } |
1153 | + phoneSettings.simNames = simNames; |
1154 | + } |
1155 | + } |
1156 | + |
1157 | + Binding { |
1158 | + target: sims[0] |
1159 | + property: "name" |
1160 | + value: phoneSettings.simNames[modems[0]] |
1161 | + } |
1162 | + |
1163 | + Binding { |
1164 | + target: sims[1] |
1165 | + property: "name" |
1166 | + value: phoneSettings.simNames[modems[1]] |
1167 | + } |
1168 | +} |
1169 | |
1170 | === added file 'plugins/cellular/Components/NoSim.qml' |
1171 | --- plugins/cellular/Components/NoSim.qml 1970-01-01 00:00:00 +0000 |
1172 | +++ plugins/cellular/Components/NoSim.qml 2014-08-26 11:38:32 +0000 |
1173 | @@ -0,0 +1,51 @@ |
1174 | +/* |
1175 | + * Copyright (C) 2014 Canonical Ltd |
1176 | + * |
1177 | + * This program is free software: you can redistribute it and/or modify |
1178 | + * it under the terms of the GNU General Public License version 3 as |
1179 | + * published by the Free Software Foundation. |
1180 | + * |
1181 | + * This program is distributed in the hope that it will be useful, |
1182 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1183 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1184 | + * GNU General Public License for more details. |
1185 | + * |
1186 | + * You should have received a copy of the GNU General Public License |
1187 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1188 | + * |
1189 | + * Authors: |
1190 | + * Jonas G. Drange <jonas.drange@canonical.com> |
1191 | + * |
1192 | +*/ |
1193 | +import QtQuick 2.0 |
1194 | +import Ubuntu.Components 0.1 |
1195 | +import Ubuntu.Components.ListItems 0.1 as ListItem |
1196 | + |
1197 | +Column { |
1198 | + |
1199 | + objectName: "noSim" |
1200 | + |
1201 | + ListItem.ItemSelector { |
1202 | + text: i18n.tr("Cellular data:") |
1203 | + expanded: true |
1204 | + enabled: false |
1205 | + model: [i18n.tr("Off"), i18n.tr("2G only (saves battery)"), i18n.tr("2G/3G/4G (faster)")] |
1206 | + selectedIndex: -1 |
1207 | + } |
1208 | + |
1209 | + ListItem.Standard { |
1210 | + text: i18n.tr("Data roaming") |
1211 | + enabled: false |
1212 | + control: Switch { |
1213 | + checked: false |
1214 | + } |
1215 | + } |
1216 | + |
1217 | + ListItem.Divider {} |
1218 | + |
1219 | + ListItem.SingleValue { |
1220 | + text: i18n.tr("Carrier"); |
1221 | + value: i18n.tr("N/A") |
1222 | + enabled: false |
1223 | + } |
1224 | +} |
1225 | |
1226 | === modified file 'plugins/cellular/Components/Sim.qml' |
1227 | --- plugins/cellular/Components/Sim.qml 2014-07-25 13:33:36 +0000 |
1228 | +++ plugins/cellular/Components/Sim.qml 2014-08-26 11:38:32 +0000 |
1229 | @@ -21,12 +21,14 @@ |
1230 | import MeeGo.QOfono 0.2 |
1231 | |
1232 | Item { |
1233 | + id: root |
1234 | property alias modem: modem |
1235 | property alias netReg: netReg |
1236 | property alias radioSettings: radioSettings |
1237 | property alias simMng: simMng |
1238 | property alias connMan: connMan |
1239 | |
1240 | + property alias present: simMng.present |
1241 | property string path |
1242 | property string name |
1243 | property string title: { |
1244 | |
1245 | === modified file 'plugins/cellular/Components/SimEditor.qml' |
1246 | --- plugins/cellular/Components/SimEditor.qml 2014-08-15 19:58:34 +0000 |
1247 | +++ plugins/cellular/Components/SimEditor.qml 2014-08-26 11:38:32 +0000 |
1248 | @@ -44,7 +44,7 @@ |
1249 | name: "editingSim1" |
1250 | PropertyChanges { |
1251 | target: nameField |
1252 | - text: sim1.name |
1253 | + text: sims[0].name |
1254 | } |
1255 | ParentChange { |
1256 | target: editor |
1257 | @@ -60,7 +60,7 @@ |
1258 | name: "editingSim2" |
1259 | PropertyChanges { |
1260 | target: nameField |
1261 | - text: sim2.name |
1262 | + text: sims[1].name |
1263 | } |
1264 | ParentChange { |
1265 | target: editor |
1266 | @@ -108,7 +108,7 @@ |
1267 | right: parent.right |
1268 | verticalCenter: parent.verticalCenter |
1269 | } |
1270 | - text: sim1.title |
1271 | + text: sims[0].title |
1272 | } |
1273 | } |
1274 | Column { |
1275 | @@ -144,7 +144,7 @@ |
1276 | right: parent.right |
1277 | verticalCenter: parent.verticalCenter |
1278 | } |
1279 | - text: sim2.title |
1280 | + text: sims[1].title |
1281 | } |
1282 | } |
1283 | Column { |
1284 | @@ -213,11 +213,11 @@ |
1285 | onTriggered: { |
1286 | var tmpSimNames = {}; |
1287 | if (simList.state === "editingSim1") { |
1288 | - tmpSimNames[sim1.path] = nameField.text; |
1289 | - tmpSimNames[sim2.path] = sim2.name; |
1290 | + tmpSimNames[sims[0].path] = nameField.text; |
1291 | + tmpSimNames[sims[1].path] = sims[1].name; |
1292 | } else if (simList.state === "editingSim2") { |
1293 | - tmpSimNames[sim1.path] = sim1.name; |
1294 | - tmpSimNames[sim2.path] = nameField.text; |
1295 | + tmpSimNames[sims[0].path] = sims[0].name; |
1296 | + tmpSimNames[sims[1].path] = nameField.text; |
1297 | } |
1298 | phoneSettings.simNames = tmpSimNames; |
1299 | simList.state = ""; |
1300 | |
1301 | === added file 'plugins/cellular/Components/SingleSim.qml' |
1302 | --- plugins/cellular/Components/SingleSim.qml 1970-01-01 00:00:00 +0000 |
1303 | +++ plugins/cellular/Components/SingleSim.qml 2014-08-26 11:38:32 +0000 |
1304 | @@ -0,0 +1,76 @@ |
1305 | +/* |
1306 | + * Copyright (C) 2014 Canonical Ltd |
1307 | + * |
1308 | + * This program is free software: you can redistribute it and/or modify |
1309 | + * it under the terms of the GNU General Public License version 3 as |
1310 | + * published by the Free Software Foundation. |
1311 | + * |
1312 | + * This program is distributed in the hope that it will be useful, |
1313 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1314 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1315 | + * GNU General Public License for more details. |
1316 | + * |
1317 | + * You should have received a copy of the GNU General Public License |
1318 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1319 | + * |
1320 | + * Authors: |
1321 | + * Jonas G. Drange <jonas.drange@canonical.com> |
1322 | + * |
1323 | +*/ |
1324 | +import QtQuick 2.0 |
1325 | +import Ubuntu.Components 0.1 |
1326 | +import Ubuntu.Components.ListItems 0.1 as ListItem |
1327 | + |
1328 | +Column { |
1329 | + |
1330 | + objectName: "singleSim" |
1331 | + |
1332 | + property var sim |
1333 | + |
1334 | + CellularSingleSim { |
1335 | + anchors { left: parent.left; right: parent.right } |
1336 | + } |
1337 | + |
1338 | + ListItem.Divider {} |
1339 | + |
1340 | + ListItem.SingleValue { |
1341 | + text : i18n.tr("Hotspot disabled because Wi-Fi is off.") |
1342 | + visible: showAllUI && !hotspotItem.visible |
1343 | + } |
1344 | + |
1345 | + ListItem.SingleValue { |
1346 | + id: hotspotItem |
1347 | + text: i18n.tr("Wi-Fi hotspot") |
1348 | + progression: true |
1349 | + onClicked: { |
1350 | + pageStack.push(Qt.resolvedUrl("Hotspot.qml")) |
1351 | + } |
1352 | + visible: showAllUI && (actionGroup.actionObject.valid ? actionGroup.actionObject.state : false) |
1353 | + } |
1354 | + |
1355 | + ListItem.Standard { |
1356 | + text: i18n.tr("Data usage statistics") |
1357 | + progression: true |
1358 | + visible: showAllUI |
1359 | + } |
1360 | + |
1361 | + ListItem.SingleValue { |
1362 | + text: i18n.tr("Carrier"); |
1363 | + id: chooseCarrier |
1364 | + objectName: "chooseCarrier" |
1365 | + progression: enabled |
1366 | + value: sim.netReg.name || i18n.tr("N/A") |
1367 | + onClicked: { |
1368 | + pageStack.push(Qt.resolvedUrl("../PageChooseCarrier.qml"), { |
1369 | + netReg: sim.netReg, |
1370 | + title: i18n.tr("Carrier") |
1371 | + }) |
1372 | + } |
1373 | + } |
1374 | + |
1375 | + ListItem.Standard { |
1376 | + text: i18n.tr("APN") |
1377 | + progression: true |
1378 | + visible: showAllUI |
1379 | + } |
1380 | +} |
1381 | |
1382 | === modified file 'plugins/cellular/PageChooseCarriers.qml' |
1383 | --- plugins/cellular/PageChooseCarriers.qml 2014-07-24 19:00:45 +0000 |
1384 | +++ plugins/cellular/PageChooseCarriers.qml 2014-08-26 11:38:32 +0000 |
1385 | @@ -28,8 +28,7 @@ |
1386 | title: i18n.tr("Carriers") |
1387 | objectName: "chooseCarriersPage" |
1388 | |
1389 | - property var sim1 |
1390 | - property var sim2 |
1391 | + property var sims |
1392 | |
1393 | Flickable { |
1394 | anchors.fill: parent |
1395 | @@ -42,33 +41,33 @@ |
1396 | anchors.right: parent.right |
1397 | |
1398 | ListItem.Standard { |
1399 | - text: sim1.title |
1400 | + text: sims[0].title |
1401 | } |
1402 | |
1403 | ListItem.SingleValue { |
1404 | objectName: "chooseCarrierSim1" |
1405 | - value: sim1.netReg.name ? sim1.netReg.name : i18n.tr("N/A") |
1406 | + value: sims[0].netReg.name ? sims[0].netReg.name : i18n.tr("N/A") |
1407 | progression: true |
1408 | onClicked: { |
1409 | pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), { |
1410 | - netReg: sim1.netReg, |
1411 | - title: sim1.title |
1412 | + netReg: sims[0].netReg, |
1413 | + title: sims[0].title |
1414 | }) |
1415 | } |
1416 | } |
1417 | |
1418 | ListItem.Standard { |
1419 | - text: sim2.title |
1420 | + text: sims[1].title |
1421 | } |
1422 | |
1423 | ListItem.SingleValue { |
1424 | objectName: "chooseCarrierSim2" |
1425 | - value: sim2.netReg.name ? sim2.netReg.name : i18n.tr("N/A") |
1426 | + value: sims[1].netReg.name ? sims[1].netReg.name : i18n.tr("N/A") |
1427 | progression: true |
1428 | onClicked: { |
1429 | pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), { |
1430 | - netReg: sim2.netReg, |
1431 | - title: sim2.title |
1432 | + netReg: sims[1].netReg, |
1433 | + title: sims[1].title |
1434 | }) |
1435 | } |
1436 | } |
1437 | |
1438 | === modified file 'plugins/cellular/PageComponent.qml' |
1439 | --- plugins/cellular/PageComponent.qml 2014-08-12 16:25:26 +0000 |
1440 | +++ plugins/cellular/PageComponent.qml 2014-08-26 11:38:32 +0000 |
1441 | @@ -19,53 +19,69 @@ |
1442 | */ |
1443 | |
1444 | import QtQuick 2.0 |
1445 | -import GSettings 1.0 |
1446 | import SystemSettings 1.0 |
1447 | import Ubuntu.Components 0.1 |
1448 | import Ubuntu.Components.ListItems 0.1 as ListItem |
1449 | import MeeGo.QOfono 0.2 |
1450 | import QMenuModel 0.1 |
1451 | -import "Components" |
1452 | +import "Components" as LocalComponents |
1453 | +import "sims.js" as Sims |
1454 | |
1455 | ItemPage { |
1456 | id: root |
1457 | title: i18n.tr("Cellular") |
1458 | objectName: "cellularPage" |
1459 | |
1460 | - // pointers to sim 1 and 2, lazy loaded |
1461 | - property alias sim1: simOneLoader.item |
1462 | - property alias sim2: simTwoLoader.item |
1463 | property var modemsSorted: manager.modems.slice(0).sort() |
1464 | + property int simsLoaded: 0 |
1465 | |
1466 | states: [ |
1467 | State { |
1468 | + name: "noSim" |
1469 | + when: (simsLoaded === 0) || (Sims.getPresentCount() === 0) |
1470 | + StateChangeScript { |
1471 | + script: loader.source = "Components/NoSim.qml" |
1472 | + } |
1473 | + }, |
1474 | + State { |
1475 | name: "singleSim" |
1476 | StateChangeScript { |
1477 | - name: "loadSim" |
1478 | - script: { |
1479 | - var p = modemsSorted[0]; |
1480 | - simOneLoader.setSource("Components/Sim.qml", { |
1481 | - path: p |
1482 | - }); |
1483 | - } |
1484 | + script: loader.setSource("Components/SingleSim.qml", { |
1485 | + sim: Sims.get(0) |
1486 | + }) |
1487 | } |
1488 | + when: simsLoaded && (Sims.getPresentCount() === 1) |
1489 | }, |
1490 | State { |
1491 | - name: "dualSim" |
1492 | - extend: "singleSim" |
1493 | + name: "multiSim" |
1494 | StateChangeScript { |
1495 | - name: "loadSecondSim" |
1496 | - script: { |
1497 | - var p = modemsSorted[1]; |
1498 | - simTwoLoader.setSource("Components/Sim.qml", { |
1499 | - path: p |
1500 | - }); |
1501 | - defaultSimLoader.source = "Components/DefaultSim.qml"; |
1502 | - } |
1503 | + script: loader.setSource("Components/MultiSim.qml", { |
1504 | + sims: Sims.getAll(), |
1505 | + modems: modemsSorted |
1506 | + }) |
1507 | } |
1508 | + when: simsLoaded && (Sims.getPresentCount() > 1) |
1509 | } |
1510 | ] |
1511 | |
1512 | + OfonoManager { |
1513 | + id: manager |
1514 | + Component.onCompleted: { |
1515 | + var component = Qt.createComponent("Components/Sim.qml"); |
1516 | + modemsSorted.forEach(function (path) { |
1517 | + console.warn('creating sim object for', path) |
1518 | + var sim = component.createObject(root, { |
1519 | + path: path |
1520 | + }); |
1521 | + if (sim === null) { |
1522 | + console.warn('failed to create sim object'); |
1523 | + } else { |
1524 | + Sims.add(sim); |
1525 | + } |
1526 | + }); |
1527 | + } |
1528 | + } |
1529 | + |
1530 | QDBusActionGroup { |
1531 | id: actionGroup |
1532 | busType: 1 |
1533 | @@ -78,42 +94,6 @@ |
1534 | start() |
1535 | } |
1536 | } |
1537 | - |
1538 | - OfonoManager { |
1539 | - id: manager |
1540 | - Component.onCompleted: { |
1541 | - if (modems.length === 1) { |
1542 | - root.state = "singleSim"; |
1543 | - } else if (modems.length === 2) { |
1544 | - root.state = "dualSim"; |
1545 | - } |
1546 | - } |
1547 | - } |
1548 | - |
1549 | - Loader { |
1550 | - id: simOneLoader |
1551 | - onLoaded: { |
1552 | - if (parent.state === "singleSim") { |
1553 | - cellData.setSource("Components/CellularSingleSim.qml", { |
1554 | - sim1: sim1 |
1555 | - }); |
1556 | - } |
1557 | - } |
1558 | - } |
1559 | - |
1560 | - Loader { |
1561 | - id: simTwoLoader |
1562 | - onLoaded: { |
1563 | - // unload any single sim setup |
1564 | - cellData.source = ""; |
1565 | - cellData.setSource("Components/CellularDualSim.qml", { |
1566 | - sim1: sim1, |
1567 | - sim2: sim2 |
1568 | - }); |
1569 | - simEditorLoader.source = "Components/SimEditor.qml"; |
1570 | - } |
1571 | - } |
1572 | - |
1573 | Flickable { |
1574 | anchors.fill: parent |
1575 | contentWidth: parent.width |
1576 | @@ -124,106 +104,9 @@ |
1577 | anchors { left: parent.left; right: parent.right } |
1578 | |
1579 | Loader { |
1580 | - id: cellData |
1581 | - anchors { left: parent.left; right: parent.right } |
1582 | - } |
1583 | - |
1584 | - ListItem.SingleValue { |
1585 | - text : i18n.tr("Hotspot disabled because Wi-Fi is off.") |
1586 | - visible: showAllUI && !hotspotItem.visible |
1587 | - } |
1588 | - |
1589 | - ListItem.SingleValue { |
1590 | - id: hotspotItem |
1591 | - text: i18n.tr("Wi-Fi hotspot") |
1592 | - progression: true |
1593 | - onClicked: { |
1594 | - pageStack.push(Qt.resolvedUrl("Hotspot.qml")) |
1595 | - } |
1596 | - visible: showAllUI && (actionGroup.actionObject.valid ? actionGroup.actionObject.state : false) |
1597 | - } |
1598 | - |
1599 | - ListItem.Standard { |
1600 | - text: i18n.tr("Data usage statistics") |
1601 | - progression: true |
1602 | - visible: showAllUI |
1603 | - } |
1604 | - |
1605 | - ListItem.SingleValue { |
1606 | - text: i18n.tr("Carrier", "Carriers", manager.modems.length); |
1607 | - id: chooseCarrier |
1608 | - objectName: "chooseCarrier" |
1609 | - progression: enabled |
1610 | - onClicked: { |
1611 | - if (root.state === 'singleSim') { |
1612 | - pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), { |
1613 | - netReg: sim1.netReg, |
1614 | - title: i18n.tr("Carrier") |
1615 | - }) |
1616 | - } else if (root.state === 'dualSim') { |
1617 | - pageStack.push(Qt.resolvedUrl("PageChooseCarriers.qml"), { |
1618 | - sim1: sim1, |
1619 | - sim2: sim2 |
1620 | - }); |
1621 | - } |
1622 | - } |
1623 | - } |
1624 | - |
1625 | - Binding { |
1626 | - target: chooseCarrier |
1627 | - property: "value" |
1628 | - value: sim1.netReg.name || i18n.tr("N/A") |
1629 | - when: (simOneLoader.status === Loader.Ready) && root.state === "singleSim" |
1630 | - } |
1631 | - |
1632 | - ListItem.Standard { |
1633 | - text: i18n.tr("APN") |
1634 | - progression: true |
1635 | - visible: showAllUI |
1636 | - } |
1637 | - |
1638 | - Loader { |
1639 | - id: simEditorLoader |
1640 | - anchors { left: parent.left; right: parent.right } |
1641 | - } |
1642 | - |
1643 | - ListItem.Divider {} |
1644 | - |
1645 | - Loader { |
1646 | - id: defaultSimLoader |
1647 | - anchors.left: parent.left |
1648 | - anchors.right: parent.right |
1649 | - } |
1650 | - } |
1651 | - } |
1652 | - |
1653 | - GSettings { |
1654 | - id: phoneSettings |
1655 | - schema.id: "com.ubuntu.phone" |
1656 | - Component.onCompleted: { |
1657 | - // set default names |
1658 | - var simNames = phoneSettings.simNames; |
1659 | - var m0 = modemsSorted[0]; |
1660 | - var m1 = modemsSorted[1]; |
1661 | - if (!simNames[m0]) { |
1662 | - simNames[m0] = "SIM 1"; |
1663 | - } |
1664 | - if (!simNames[m1]) { |
1665 | - simNames[m1] = "SIM 2"; |
1666 | - } |
1667 | - phoneSettings.simNames = simNames; |
1668 | - } |
1669 | - } |
1670 | - |
1671 | - Binding { |
1672 | - target: sim1 |
1673 | - property: "name" |
1674 | - value: phoneSettings.simNames[modemsSorted[0]] |
1675 | - } |
1676 | - |
1677 | - Binding { |
1678 | - target: sim2 |
1679 | - property: "name" |
1680 | - value: phoneSettings.simNames[modemsSorted[1]] |
1681 | + id: loader |
1682 | + anchors { left: parent.left; right: parent.right } |
1683 | + } |
1684 | + } |
1685 | } |
1686 | } |
1687 | |
1688 | === added file 'plugins/cellular/sims.js' |
1689 | --- plugins/cellular/sims.js 1970-01-01 00:00:00 +0000 |
1690 | +++ plugins/cellular/sims.js 2014-08-26 11:38:32 +0000 |
1691 | @@ -0,0 +1,34 @@ |
1692 | +var sims = []; |
1693 | + |
1694 | +function add (sim) { |
1695 | + sims.push(sim); |
1696 | + root.simsLoaded++; |
1697 | +} |
1698 | + |
1699 | +function getAll () { |
1700 | + return sims; |
1701 | +} |
1702 | + |
1703 | +function get (n) { |
1704 | + return getAll()[n]; |
1705 | +} |
1706 | + |
1707 | +function getCount () { |
1708 | + return getAll().length; |
1709 | +} |
1710 | + |
1711 | +function getPresent () { |
1712 | + var present = []; |
1713 | + getAll().forEach(function (sim) { |
1714 | + if (sim.present) { |
1715 | + present.push(sim); |
1716 | + } else { |
1717 | + return; |
1718 | + } |
1719 | + }); |
1720 | + return present; |
1721 | +} |
1722 | + |
1723 | +function getPresentCount () { |
1724 | + return getPresent().length; |
1725 | +} |
1726 | |
1727 | === modified file 'plugins/notifications/notification_item.cpp' |
1728 | --- plugins/notifications/notification_item.cpp 2014-07-18 15:22:59 +0000 |
1729 | +++ plugins/notifications/notification_item.cpp 2014-08-26 11:38:32 +0000 |
1730 | @@ -20,7 +20,8 @@ |
1731 | namespace NotificationsPlugin { |
1732 | |
1733 | NotificationItem::NotificationItem(QObject *parent) : |
1734 | - QObject(parent) |
1735 | + QObject(parent), |
1736 | + m_status(false) |
1737 | { |
1738 | } |
1739 | |
1740 | |
1741 | === modified file 'plugins/phone/CMakeLists.txt' |
1742 | --- plugins/phone/CMakeLists.txt 2014-07-09 13:17:47 +0000 |
1743 | +++ plugins/phone/CMakeLists.txt 2014-08-26 11:38:32 +0000 |
1744 | @@ -1,10 +1,15 @@ |
1745 | set(QML_SOURCES |
1746 | CallForwarding.qml |
1747 | CallWaiting.qml |
1748 | + MultiSim.qml |
1749 | + NoSims.qml |
1750 | + Ofono.qml |
1751 | PageComponent.qml |
1752 | ServiceInfo.qml |
1753 | Services.qml |
1754 | + SingleSim.qml |
1755 | dateUtils.js |
1756 | + sims.js |
1757 | ) |
1758 | |
1759 | # We need a dummy target so the QML files show up in Qt Creator |
1760 | |
1761 | === modified file 'plugins/phone/CallForwarding.qml' |
1762 | --- plugins/phone/CallForwarding.qml 2014-07-22 20:10:26 +0000 |
1763 | +++ plugins/phone/CallForwarding.qml 2014-08-26 11:38:32 +0000 |
1764 | @@ -22,22 +22,22 @@ |
1765 | import SystemSettings 1.0 |
1766 | import Ubuntu.Components 0.1 |
1767 | import Ubuntu.Components.ListItems 0.1 as ListItem |
1768 | -import MeeGo.QOfono 0.2 |
1769 | |
1770 | ItemPage { |
1771 | - title: i18n.tr("Call forwarding") |
1772 | |
1773 | - property bool forwarding: callForwarding.voiceUnconditional !== "" |
1774 | - property string modem |
1775 | + objectName: "callForwardingPage" |
1776 | + title: headerTitle |
1777 | + property var sim |
1778 | + property bool forwarding: sim.callForwarding.voiceUnconditional !== "" |
1779 | + property string headerTitle: i18n.tr("Call forwarding") |
1780 | |
1781 | onForwardingChanged: { |
1782 | if (callForwardingSwitch.checked !== forwarding) |
1783 | callForwardingSwitch.checked = forwarding; |
1784 | } |
1785 | |
1786 | - OfonoCallForwarding { |
1787 | - id: callForwarding |
1788 | - modemPath: modem |
1789 | + Connections { |
1790 | + target: sim.callForwarding |
1791 | onVoiceUnconditionalChanged: { |
1792 | destNumberField.text = voiceUnconditional; |
1793 | } |
1794 | @@ -50,13 +50,14 @@ |
1795 | |
1796 | Switch { |
1797 | id: callForwardingSwitch |
1798 | + objectName: "callForwardingSwitch" |
1799 | checked: forwarding |
1800 | enabled: (forwarding === checked) |
1801 | visible: callForwardingItem.control === callForwardingSwitch |
1802 | onCheckedChanged: { |
1803 | if (!checked && forwarding) { |
1804 | callForwardingIndicator.running = true; |
1805 | - callForwarding.voiceUnconditional = ""; |
1806 | + sim.callForwarding.voiceUnconditional = ""; |
1807 | } |
1808 | } |
1809 | } |
1810 | @@ -101,17 +102,18 @@ |
1811 | visible: callForwardingSwitch.checked |
1812 | control: TextInput { |
1813 | id: destNumberField |
1814 | + objectName: "destNumberField" |
1815 | horizontalAlignment: TextInput.AlignRight |
1816 | width: forwardToItem.width/2 |
1817 | inputMethodHints: Qt.ImhDialableCharactersOnly |
1818 | - text: callForwarding.voiceUnconditional |
1819 | + text: sim.callForwarding.voiceUnconditional |
1820 | font.pixelSize: units.dp(18) |
1821 | font.weight: Font.Light |
1822 | font.family: "Ubuntu" |
1823 | color: "#AAAAAA" |
1824 | maximumLength: 20 |
1825 | focus: true |
1826 | - cursorVisible: text !== callForwarding.voiceUnconditional || |
1827 | + cursorVisible: text !== sim.callForwarding.voiceUnconditional || |
1828 | text === "" |
1829 | clip: true |
1830 | opacity: 0.9 |
1831 | @@ -133,30 +135,32 @@ |
1832 | spacing: units.gu(2) |
1833 | |
1834 | Button { |
1835 | + objectName: "cancel" |
1836 | text: i18n.tr("Cancel") |
1837 | width: (buttonsRowId.width-units.gu(2)*4)/3 |
1838 | enabled: !callForwardingIndicator.running |
1839 | onClicked: { |
1840 | destNumberField.text = |
1841 | - callForwarding.voiceUnconditional; |
1842 | + sim.callForwarding.voiceUnconditional; |
1843 | if (forwarding !== callForwardingSwitch.checked) |
1844 | callForwardingSwitch.checked = forwarding; |
1845 | } |
1846 | } |
1847 | |
1848 | Button { |
1849 | + objectName: "set" |
1850 | text: i18n.tr("Set") |
1851 | width: (buttonsRowId.width-units.gu(2)*4)/3 |
1852 | enabled: !callForwardingIndicator.running |
1853 | onClicked: { |
1854 | callForwardingIndicator.running = true; |
1855 | - callForwarding.voiceUnconditional = destNumberField.text; |
1856 | + sim.callForwarding.voiceUnconditional = destNumberField.text; |
1857 | } |
1858 | } |
1859 | } |
1860 | visible: callForwardingSwitch.checked && |
1861 | (destNumberField.text !== |
1862 | - callForwarding.voiceUnconditional) |
1863 | + sim.callForwarding.voiceUnconditional) |
1864 | } |
1865 | } |
1866 | } |
1867 | |
1868 | === modified file 'plugins/phone/CallWaiting.qml' |
1869 | --- plugins/phone/CallWaiting.qml 2014-07-16 16:45:25 +0000 |
1870 | +++ plugins/phone/CallWaiting.qml 2014-08-26 11:38:32 +0000 |
1871 | @@ -25,15 +25,24 @@ |
1872 | import MeeGo.QOfono 0.2 |
1873 | |
1874 | ItemPage { |
1875 | - title: i18n.tr("Call waiting") |
1876 | - property string modem |
1877 | + objectName: "callWaitingPage" |
1878 | + title: headerTitle |
1879 | + property var sim |
1880 | + property string headerTitle: i18n.tr("Call waiting") |
1881 | |
1882 | OfonoCallSettings { |
1883 | id: callSettings |
1884 | - modemPath: modem |
1885 | + modemPath: sim.path |
1886 | onVoiceCallWaitingChanged: { |
1887 | callWaitingIndicator.running = false; |
1888 | } |
1889 | + onGetPropertiesFailed: { |
1890 | + console.warn('callSettings, onGetPropertiesFailed'); |
1891 | + callWaitingIndicator.running = false; |
1892 | + } |
1893 | + onVoiceCallWaitingComplete: { |
1894 | + callWaitingIndicator.running = false; |
1895 | + } |
1896 | } |
1897 | |
1898 | ActivityIndicator { |
1899 | @@ -44,7 +53,9 @@ |
1900 | |
1901 | Switch { |
1902 | id: callWaitingSwitch |
1903 | + objectName: "callWaitingSwitch" |
1904 | visible: !callWaitingIndicator.running |
1905 | + enabled: callSettings.ready |
1906 | checked: callSettings.voiceCallWaiting !== "disabled" |
1907 | onClicked: { |
1908 | callWaitingIndicator.running = true; |
1909 | |
1910 | === added file 'plugins/phone/MultiSim.qml' |
1911 | --- plugins/phone/MultiSim.qml 1970-01-01 00:00:00 +0000 |
1912 | +++ plugins/phone/MultiSim.qml 2014-08-26 11:38:32 +0000 |
1913 | @@ -0,0 +1,135 @@ |
1914 | +/* |
1915 | + * Copyright (C) 2014 Canonical Ltd |
1916 | + * |
1917 | + * This program is free software: you can redistribute it and/or modify |
1918 | + * it under the terms of the GNU General Public License version 3 as |
1919 | + * published by the Free Software Foundation. |
1920 | + * |
1921 | + * This program is distributed in the hope that it will be useful, |
1922 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
1923 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1924 | + * GNU General Public License for more details. |
1925 | + * |
1926 | + * You should have received a copy of the GNU General Public License |
1927 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
1928 | + * |
1929 | + * Authors: |
1930 | + * Ken Vandine <ken.vandine@canonical.com> |
1931 | + * Jonas G. Drange <jonas.drange@canonical.com> |
1932 | + * |
1933 | +*/ |
1934 | +import QtQuick 2.0 |
1935 | +import GSettings 1.0 |
1936 | +import Ubuntu.Components 1.1 |
1937 | +import Ubuntu.Components.ListItems 0.1 as ListItem |
1938 | + |
1939 | +Column { |
1940 | + |
1941 | + property var sims |
1942 | + |
1943 | + ListItem.Standard { |
1944 | + text: sims[0].title |
1945 | + } |
1946 | + |
1947 | + ListItem.Standard { |
1948 | + objectName: "callFwdSim1" |
1949 | + text: i18n.tr("Call forwarding") |
1950 | + progression: true |
1951 | + onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), { |
1952 | + sim: sims[0], |
1953 | + headerTitle: sims[0].title |
1954 | + }) |
1955 | + } |
1956 | + |
1957 | + ListItem.Standard { |
1958 | + objectName: "callWaitSim1" |
1959 | + text: i18n.tr("Call waiting") |
1960 | + progression: true |
1961 | + onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), { |
1962 | + sim: sims[0], |
1963 | + headerTitle: sims[0].title |
1964 | + }) |
1965 | + } |
1966 | + |
1967 | + ListItem.Standard { |
1968 | + objectName: "simServicesSim1" |
1969 | + text: i18n.tr("Services") |
1970 | + progression: true |
1971 | + enabled: sims[0].simMng.present |
1972 | + onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"), { |
1973 | + carrierString: sims[0].netReg.name, |
1974 | + sim: sims[0].simMng, |
1975 | + headerTitle: sims[0].title |
1976 | + }) |
1977 | + } |
1978 | + |
1979 | + ListItem.Divider {} |
1980 | + |
1981 | + ListItem.Standard { |
1982 | + text: sims[1].title |
1983 | + } |
1984 | + |
1985 | + ListItem.Standard { |
1986 | + objectName: "callFwdSim2" |
1987 | + text: i18n.tr("Call forwarding") |
1988 | + progression: true |
1989 | + onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), { |
1990 | + sim: sims[1], |
1991 | + headerTitle: sims[1].title |
1992 | + }) |
1993 | + } |
1994 | + |
1995 | + ListItem.Standard { |
1996 | + objectName: "callWaitSim2" |
1997 | + text: i18n.tr("Call waiting") |
1998 | + progression: true |
1999 | + onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), { |
2000 | + sim: sims[1], |
2001 | + headerTitle: sims[1].title |
2002 | + }) |
2003 | + } |
2004 | + |
2005 | + ListItem.Standard { |
2006 | + objectName: "simServicesSim2" |
2007 | + text: i18n.tr("Services") |
2008 | + progression: true |
2009 | + enabled: sims[1].simMng.present |
2010 | + onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"), { |
2011 | + carrierString: sims[1].netReg.name, |
2012 | + sim: sims[1].simMng, |
2013 | + headerTitle: sims[1].title |
2014 | + }) |
2015 | + } |
2016 | + |
2017 | + |
2018 | + GSettings { |
2019 | + id: phoneSettings |
2020 | + schema.id: "com.ubuntu.phone" |
2021 | + Component.onCompleted: { |
2022 | + // set default names |
2023 | + var simNames = phoneSettings.simNames; |
2024 | + var m0 = sims[0].path |
2025 | + var m1 = sims[1].path |
2026 | + if (!simNames[m0]) { |
2027 | + simNames[m0] = "SIM 1"; |
2028 | + } |
2029 | + if (!simNames[m1]) { |
2030 | + simNames[m1] = "SIM 2"; |
2031 | + } |
2032 | + phoneSettings.simNames = simNames; |
2033 | + } |
2034 | + } |
2035 | + |
2036 | + Binding { |
2037 | + target: sims[0] |
2038 | + property: "name" |
2039 | + value: phoneSettings.simNames[modemsSorted[0]] |
2040 | + } |
2041 | + |
2042 | + Binding { |
2043 | + target: sims[1] |
2044 | + property: "name" |
2045 | + value: phoneSettings.simNames[modemsSorted[1]] |
2046 | + } |
2047 | + |
2048 | +} |
2049 | |
2050 | === added file 'plugins/phone/NoSims.qml' |
2051 | --- plugins/phone/NoSims.qml 1970-01-01 00:00:00 +0000 |
2052 | +++ plugins/phone/NoSims.qml 2014-08-26 11:38:32 +0000 |
2053 | @@ -0,0 +1,46 @@ |
2054 | +/* |
2055 | + * Copyright (C) 2014 Canonical Ltd |
2056 | + * |
2057 | + * This program is free software: you can redistribute it and/or modify |
2058 | + * it under the terms of the GNU General Public License version 3 as |
2059 | + * published by the Free Software Foundation. |
2060 | + * |
2061 | + * This program is distributed in the hope that it will be useful, |
2062 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2063 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2064 | + * GNU General Public License for more details. |
2065 | + * |
2066 | + * You should have received a copy of the GNU General Public License |
2067 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2068 | + * |
2069 | + * Authors: |
2070 | + * Ken Vandine <ken.vandine@canonical.com> |
2071 | + * Jonas G. Drange <jonas.drange@canonical.com> |
2072 | + * |
2073 | +*/ |
2074 | +import QtQuick 2.0 |
2075 | +import Ubuntu.Components 1.1 |
2076 | +import Ubuntu.Components.ListItems 0.1 as ListItem |
2077 | + |
2078 | +Column { |
2079 | + |
2080 | + ListItem.Standard { |
2081 | + text: i18n.tr("Call forwarding") |
2082 | + progression: true |
2083 | + enabled: false |
2084 | + } |
2085 | + |
2086 | + ListItem.Standard { |
2087 | + text: i18n.tr("Call waiting") |
2088 | + progression: true |
2089 | + enabled: false |
2090 | + } |
2091 | + |
2092 | + ListItem.Divider {} |
2093 | + |
2094 | + ListItem.Standard { |
2095 | + text: i18n.tr("Services") |
2096 | + progression: true |
2097 | + enabled: false |
2098 | + } |
2099 | +} |
2100 | |
2101 | === added file 'plugins/phone/Ofono.qml' |
2102 | --- plugins/phone/Ofono.qml 1970-01-01 00:00:00 +0000 |
2103 | +++ plugins/phone/Ofono.qml 2014-08-26 11:38:32 +0000 |
2104 | @@ -0,0 +1,50 @@ |
2105 | +/* |
2106 | + * Copyright (C) 2014 Canonical Ltd |
2107 | + * |
2108 | + * This program is free software: you can redistribute it and/or modify |
2109 | + * it under the terms of the GNU General Public License version 3 as |
2110 | + * published by the Free Software Foundation. |
2111 | + * |
2112 | + * This program is distributed in the hope that it will be useful, |
2113 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2114 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2115 | + * GNU General Public License for more details. |
2116 | + * |
2117 | + * You should have received a copy of the GNU General Public License |
2118 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2119 | + * |
2120 | + * Authors: |
2121 | + * Jonas G. Drange <jonas.drange@canonical.com> |
2122 | + * |
2123 | +*/ |
2124 | +import QtQuick 2.0 |
2125 | +import MeeGo.QOfono 0.2 |
2126 | + |
2127 | +Item { |
2128 | + property alias callForwarding: callForwarding |
2129 | + property alias netReg: netReg |
2130 | + property alias simMng: simMng |
2131 | + property alias present: simMng.present |
2132 | + |
2133 | + property string path |
2134 | + property string name |
2135 | + property string title: { |
2136 | + var number = simMng.subscriberNumbers[0] || simMng.subscriberIdentity; |
2137 | + return name + (number ? " (" + number + ")" : ""); |
2138 | + } |
2139 | + |
2140 | + OfonoCallForwarding { |
2141 | + id: callForwarding |
2142 | + modemPath: path |
2143 | + } |
2144 | + |
2145 | + OfonoNetworkRegistration { |
2146 | + id: netReg |
2147 | + modemPath: path |
2148 | + } |
2149 | + |
2150 | + OfonoSimManager { |
2151 | + id: simMng |
2152 | + modemPath: path |
2153 | + } |
2154 | +} |
2155 | |
2156 | === modified file 'plugins/phone/PageComponent.qml' |
2157 | --- plugins/phone/PageComponent.qml 2014-07-18 13:00:36 +0000 |
2158 | +++ plugins/phone/PageComponent.qml 2014-08-26 11:38:32 +0000 |
2159 | @@ -23,52 +23,77 @@ |
2160 | import Ubuntu.Components 0.1 |
2161 | import Ubuntu.Components.ListItems 0.1 as ListItem |
2162 | import MeeGo.QOfono 0.2 |
2163 | +import "sims.js" as Sims |
2164 | |
2165 | ItemPage { |
2166 | + id: root |
2167 | + objectName: "phonePage" |
2168 | title: i18n.tr("Phone") |
2169 | - property string carrierName: netop.name |
2170 | - property string carrierString: carrierName ? carrierName : i18n.tr("SIM") |
2171 | + flickable: flick |
2172 | + |
2173 | + property var modemsSorted: manager.modems.slice(0).sort() |
2174 | + property var simsLoaded: 0 |
2175 | + |
2176 | + states: [ |
2177 | + State { |
2178 | + name: "noSim" |
2179 | + StateChangeScript { |
2180 | + script: loader.setSource("NoSims.qml") |
2181 | + } |
2182 | + when: (simsLoaded === 0) || (Sims.getPresentCount() === 0) |
2183 | + }, |
2184 | + State { |
2185 | + name: "singleSim" |
2186 | + StateChangeScript { |
2187 | + script: loader.setSource("SingleSim.qml", { sim: Sims.get(0) }) |
2188 | + |
2189 | + } |
2190 | + when: simsLoaded && (Sims.getPresentCount() === 1) |
2191 | + }, |
2192 | + State { |
2193 | + name: "multiSim" |
2194 | + StateChangeScript { |
2195 | + script: loader.setSource("MultiSim.qml", { |
2196 | + sims: Sims.getAll() |
2197 | + }) |
2198 | + } |
2199 | + when: simsLoaded && (Sims.getPresentCount() > 1) |
2200 | + } |
2201 | + ] |
2202 | |
2203 | OfonoManager { |
2204 | id: manager |
2205 | - } |
2206 | - |
2207 | - OfonoNetworkRegistration { |
2208 | - id: netop; |
2209 | - modemPath: manager.modems[0] |
2210 | - onNameChanged: carrierName = netop.name |
2211 | - } |
2212 | - |
2213 | - OfonoSimManager { |
2214 | - id: sim |
2215 | - modemPath: manager.modems[0] |
2216 | - } |
2217 | - |
2218 | - Column { |
2219 | + Component.onCompleted: { |
2220 | + // create ofono bindings for all modem paths |
2221 | + var component = Qt.createComponent("Ofono.qml"); |
2222 | + modemsSorted.forEach(function (path) { |
2223 | + var sim = component.createObject(root, { |
2224 | + path: path |
2225 | + }); |
2226 | + if (sim === null) { |
2227 | + console.warn('failed to create sim object'); |
2228 | + } else { |
2229 | + Sims.add(sim); |
2230 | + } |
2231 | + }); |
2232 | + } |
2233 | + } |
2234 | + |
2235 | + Flickable { |
2236 | + id: flick |
2237 | anchors.fill: parent |
2238 | - |
2239 | - ListItem.Standard { |
2240 | - text: i18n.tr("Call forwarding") |
2241 | - progression: true |
2242 | - onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), {modem: manager.modems[0]}) |
2243 | - } |
2244 | - |
2245 | - ListItem.Standard { |
2246 | - text: i18n.tr("Call waiting") |
2247 | - progression: true |
2248 | - onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), {modem: manager.modems[0]}) |
2249 | - showDivider: false |
2250 | - } |
2251 | - |
2252 | - ListItem.Divider {} |
2253 | - |
2254 | - ListItem.Standard { |
2255 | - // TRANSLATORS: %1 is the name of the (network) carrier |
2256 | - text: i18n.tr("%1 Services").arg(carrierString) |
2257 | - progression: true |
2258 | - enabled: sim.present |
2259 | - onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"), |
2260 | - {carrierString: carrierString, sim: sim}) |
2261 | + contentWidth: parent.width |
2262 | + contentHeight: contentItem.childrenRect.height |
2263 | + boundsBehavior: (contentHeight > root.height) ? |
2264 | + Flickable.DragAndOvershootBounds : Flickable.StopAtBounds |
2265 | + |
2266 | + Column { |
2267 | + anchors { left: parent.left; right: parent.right } |
2268 | + |
2269 | + Loader { |
2270 | + id: loader |
2271 | + anchors { left: parent.left; right: parent.right } |
2272 | + } |
2273 | } |
2274 | } |
2275 | } |
2276 | |
2277 | === modified file 'plugins/phone/Services.qml' |
2278 | --- plugins/phone/Services.qml 2014-06-19 03:54:01 +0000 |
2279 | +++ plugins/phone/Services.qml 2014-08-26 11:38:32 +0000 |
2280 | @@ -24,12 +24,15 @@ |
2281 | import Ubuntu.Components.ListItems 0.1 as ListItem |
2282 | |
2283 | ItemPage { |
2284 | + objectName: "servicesPage" |
2285 | + title: headerTitle |
2286 | property string carrierString |
2287 | property variant sim |
2288 | property var names: [] |
2289 | |
2290 | // TRANSLATORS: %1 is the name of the (network) carrier |
2291 | - title: i18n.tr("%1 Services").arg(carrierString) |
2292 | + property string headerTitle: i18n.tr("%1 Services").arg(carrierString) |
2293 | + |
2294 | |
2295 | Component.onCompleted: { |
2296 | var keys = []; |
2297 | |
2298 | === added file 'plugins/phone/SingleSim.qml' |
2299 | --- plugins/phone/SingleSim.qml 1970-01-01 00:00:00 +0000 |
2300 | +++ plugins/phone/SingleSim.qml 2014-08-26 11:38:32 +0000 |
2301 | @@ -0,0 +1,57 @@ |
2302 | +/* |
2303 | + * Copyright (C) 2014 Canonical Ltd |
2304 | + * |
2305 | + * This program is free software: you can redistribute it and/or modify |
2306 | + * it under the terms of the GNU General Public License version 3 as |
2307 | + * published by the Free Software Foundation. |
2308 | + * |
2309 | + * This program is distributed in the hope that it will be useful, |
2310 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
2311 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
2312 | + * GNU General Public License for more details. |
2313 | + * |
2314 | + * You should have received a copy of the GNU General Public License |
2315 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
2316 | + * |
2317 | + * Authors: |
2318 | + * Ken Vandine <ken.vandine@canonical.com> |
2319 | + * Jonas G. Drange <jonas.drange@canonical.com> |
2320 | + * |
2321 | +*/ |
2322 | +import QtQuick 2.0 |
2323 | +import Ubuntu.Components 1.1 |
2324 | +import Ubuntu.Components.ListItems 0.1 as ListItem |
2325 | + |
2326 | +Column { |
2327 | + |
2328 | + property var sim |
2329 | + property string carrierName: sim.netReg.name |
2330 | + property string carrierString: carrierName ? carrierName : i18n.tr("SIM") |
2331 | + |
2332 | + ListItem.Standard { |
2333 | + objectName: "callFwd" |
2334 | + text: i18n.tr("Call forwarding") |
2335 | + progression: true |
2336 | + onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), {sim: sim}) |
2337 | + } |
2338 | + |
2339 | + ListItem.Standard { |
2340 | + objectName: "callWait" |
2341 | + text: i18n.tr("Call waiting") |
2342 | + progression: true |
2343 | + onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), {sim: sim}) |
2344 | + showDivider: false |
2345 | + } |
2346 | + |
2347 | + ListItem.Divider {} |
2348 | + |
2349 | + ListItem.Standard { |
2350 | + objectName: "simServices" |
2351 | + // TRANSLATORS: %1 is the name of the (network) carrier |
2352 | + text: i18n.tr("%1 Services").arg(carrierString) |
2353 | + progression: true |
2354 | + enabled: sim.simMng.present |
2355 | + onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"), |
2356 | + {carrierString: carrierString, sim: sim.simMng}) |
2357 | + } |
2358 | +} |
2359 | |
2360 | === added file 'plugins/phone/sims.js' |
2361 | --- plugins/phone/sims.js 1970-01-01 00:00:00 +0000 |
2362 | +++ plugins/phone/sims.js 2014-08-26 11:38:32 +0000 |
2363 | @@ -0,0 +1,34 @@ |
2364 | +var sims = []; |
2365 | + |
2366 | +function add (sim) { |
2367 | + sims.push(sim); |
2368 | + root.simsLoaded++; |
2369 | +} |
2370 | + |
2371 | +function getAll () { |
2372 | + return sims; |
2373 | +} |
2374 | + |
2375 | +function get (n) { |
2376 | + return getAll()[n]; |
2377 | +} |
2378 | + |
2379 | +function getCount () { |
2380 | + return getAll().length; |
2381 | +} |
2382 | + |
2383 | +function getPresent () { |
2384 | + var present = []; |
2385 | + getAll().forEach(function (sim) { |
2386 | + if (sim.present) { |
2387 | + present.push(sim); |
2388 | + } else { |
2389 | + return; |
2390 | + } |
2391 | + }); |
2392 | + return present; |
2393 | +} |
2394 | + |
2395 | +function getPresentCount () { |
2396 | + return getPresent().length; |
2397 | +} |
2398 | |
2399 | === modified file 'plugins/security-privacy/LockSecurity.qml' |
2400 | --- plugins/security-privacy/LockSecurity.qml 2014-08-12 08:37:44 +0000 |
2401 | +++ plugins/security-privacy/LockSecurity.qml 2014-08-26 11:38:32 +0000 |
2402 | @@ -89,9 +89,9 @@ |
2403 | changeSecurityDialog.oldMethod) { // Changing existing |
2404 | switch (changeSecurityDialog.newMethod) { |
2405 | case UbuntuSecurityPrivacyPanel.Passcode: |
2406 | - return i18n.tr("Change passcode") |
2407 | + return i18n.tr("Change passcode…") |
2408 | case UbuntuSecurityPrivacyPanel.Passphrase: |
2409 | - return i18n.tr("Change passphrase") |
2410 | + return i18n.tr("Change passphrase…") |
2411 | default: // To stop the runtime complaining |
2412 | return "" |
2413 | } |
2414 | @@ -390,6 +390,7 @@ |
2415 | |
2416 | onClicked: openDialog() |
2417 | } |
2418 | + showDivider: false |
2419 | } |
2420 | } |
2421 | } |
2422 | |
2423 | === modified file 'plugins/security-privacy/PageComponent.qml' |
2424 | --- plugins/security-privacy/PageComponent.qml 2014-08-11 11:05:58 +0000 |
2425 | +++ plugins/security-privacy/PageComponent.qml 2014-08-26 11:38:32 +0000 |
2426 | @@ -24,15 +24,20 @@ |
2427 | import Ubuntu.Components 0.1 |
2428 | import Ubuntu.Components.ListItems 0.1 as ListItem |
2429 | import SystemSettings 1.0 |
2430 | +import Ubuntu.SystemSettings.Battery 1.0 |
2431 | import Ubuntu.SystemSettings.Diagnostics 1.0 |
2432 | import Ubuntu.SystemSettings.SecurityPrivacy 1.0 |
2433 | |
2434 | ItemPage { |
2435 | id: root |
2436 | + objectName: "securityPrivacyPage" |
2437 | |
2438 | title: i18n.tr("Security & Privacy") |
2439 | flickable: scrollWidget |
2440 | |
2441 | + property alias usePowerd: batteryBackend.powerdRunning |
2442 | + property bool lockOnSuspend |
2443 | + |
2444 | UbuntuDiagnostics { |
2445 | id: diagnosticsWidget |
2446 | } |
2447 | @@ -41,6 +46,10 @@ |
2448 | id: securityPrivacy |
2449 | } |
2450 | |
2451 | + UbuntuBatteryPanel { |
2452 | + id: batteryBackend |
2453 | + } |
2454 | + |
2455 | GSettings { |
2456 | id: unitySettings |
2457 | schema.id: "com.canonical.Unity.Lenses" |
2458 | @@ -53,6 +62,11 @@ |
2459 | } |
2460 | } |
2461 | |
2462 | + GSettings { |
2463 | + id: powerSettings |
2464 | + schema.id: usePowerd ? "com.ubuntu.touch.system" : "org.gnome.desktop.session" |
2465 | + } |
2466 | + |
2467 | Flickable { |
2468 | id: scrollWidget |
2469 | anchors.fill: parent |
2470 | @@ -68,42 +82,34 @@ |
2471 | |
2472 | ListItem.Standard { |
2473 | id: securityTitle |
2474 | - text: i18n.tr("Security:") |
2475 | - // visible: lockingControl.visible || simControl.visible |
2476 | - } |
2477 | - /* When more of the phone locking page is implemented, we can |
2478 | - * remove the next item below, which is a duplicate of an item in |
2479 | - * PhoneLocking.qml, and uncomment the visible line above. */ |
2480 | + text: i18n.tr("Security") |
2481 | + } |
2482 | ListItem.SingleValue { |
2483 | - property string swipe: i18n.tr("None") |
2484 | - property string passcode: i18n.tr("Passcode") |
2485 | - property string passphrase: i18n.tr("Passphrase") |
2486 | - |
2487 | - text: i18n.tr("Lock security") |
2488 | + id: lockingControl |
2489 | + objectName: "lockingControl" |
2490 | + text: i18n.tr("Lock phone") |
2491 | value: { |
2492 | - switch (securityPrivacy.securityType) { |
2493 | - case UbuntuSecurityPrivacyPanel.Swipe: |
2494 | - return swipe |
2495 | - case UbuntuSecurityPrivacyPanel.Passcode: |
2496 | - return passcode |
2497 | - case UbuntuSecurityPrivacyPanel.Passphrase: |
2498 | - return passphrase |
2499 | + if (batteryBackend.powerdRunning ) { |
2500 | + var timeout = Math.round(powerSettings.activityTimeout/60) |
2501 | + return (powerSettings.activityTimeout != 0) ? |
2502 | + // TRANSLATORS: %1 is the number of minutes |
2503 | + i18n.tr("After %1 minute", |
2504 | + "After %1 minutes", |
2505 | + timeout).arg(timeout) : |
2506 | + i18n.tr("Never") |
2507 | + } |
2508 | + else { |
2509 | + var timeout = Math.round(powerSettings.idleDelay/60) |
2510 | + return (powerSettings.idleDelay != 0) ? |
2511 | + // TRANSLATORS: %1 is the number of minutes |
2512 | + i18n.tr("After %1 minute", |
2513 | + "After %1 minutes", |
2514 | + timeout).arg(timeout) : |
2515 | + i18n.tr("Manually") |
2516 | } |
2517 | } |
2518 | progression: true |
2519 | - onClicked: pageStack.push(Qt.resolvedUrl("LockSecurity.qml")) |
2520 | - visible: !showAllUI |
2521 | - } |
2522 | - ListItem.SingleValue { |
2523 | - id: lockingControl |
2524 | - text: i18n.tr("Phone locking") |
2525 | - // TRANSLATORS: %1 is the number of minutes |
2526 | - value: i18n.tr("%1 minute", |
2527 | - "%1 minutes", |
2528 | - 5).arg(5) |
2529 | - progression: true |
2530 | - onClicked: pageStack.push(Qt.resolvedUrl("PhoneLocking.qml")) |
2531 | - visible: showAllUI |
2532 | + onClicked: pageStack.push(Qt.resolvedUrl("PhoneLocking.qml"), {usePowerd: usePowerd, powerSettings: powerSettings}) |
2533 | } |
2534 | ListItem.SingleValue { |
2535 | id: simControl |
2536 | @@ -111,10 +117,24 @@ |
2537 | value: "Off" |
2538 | progression: true |
2539 | visible: showAllUI |
2540 | - } |
2541 | - ListItem.Standard { |
2542 | - text: i18n.tr("Privacy:") |
2543 | - visible: securityTitle.visible |
2544 | + /* Not implemented yet */ |
2545 | + //onClicked: pageStack.push(Qt.resolvedUrl("SimPin.qml")) |
2546 | + } |
2547 | + ListItem.Standard { |
2548 | + text: i18n.tr("Encryption") |
2549 | + control: Switch { |
2550 | + id: encryptionSwitch |
2551 | + checked: false |
2552 | + } |
2553 | + visible: showAllUI |
2554 | + } |
2555 | + ListItem.Caption { |
2556 | + text: i18n.tr( |
2557 | + "Encryption protects against access to phone data when the phone is connected to a PC or other device.") |
2558 | + visible: showAllUI |
2559 | + } |
2560 | + ListItem.Standard { |
2561 | + text: i18n.tr("Privacy") |
2562 | } |
2563 | ListItem.Standard { |
2564 | text: i18n.tr("Stats on welcome screen") |
2565 | @@ -164,7 +184,8 @@ |
2566 | } |
2567 | ListItem.SingleValue { |
2568 | text: i18n.tr("Location access") |
2569 | - value: "On" |
2570 | + value: locationActionGroup.enabled.state ? |
2571 | + i18n.tr("On") : i18n.tr("Off") |
2572 | progression: true |
2573 | onClicked: pageStack.push(Qt.resolvedUrl("Location.qml")) |
2574 | visible: showAllUI && // Hidden until the indicator works |
2575 | @@ -190,7 +211,6 @@ |
2576 | pageStack.push(Qt.resolvedUrl(path)); |
2577 | } |
2578 | } |
2579 | - |
2580 | } |
2581 | } |
2582 | } |
2583 | |
2584 | === modified file 'plugins/security-privacy/PhoneLocking.qml' |
2585 | --- plugins/security-privacy/PhoneLocking.qml 2014-06-24 18:50:41 +0000 |
2586 | +++ plugins/security-privacy/PhoneLocking.qml 2014-08-26 11:38:32 +0000 |
2587 | @@ -26,8 +26,13 @@ |
2588 | import Ubuntu.SystemSettings.SecurityPrivacy 1.0 |
2589 | |
2590 | ItemPage { |
2591 | + id: root |
2592 | + objectName: "phoneLockingPage" |
2593 | title: i18n.tr("Phone locking") |
2594 | |
2595 | + property bool usePowerd |
2596 | + property variant powerSettings |
2597 | + |
2598 | UbuntuSecurityPrivacyPanel { |
2599 | id: securityPrivacy |
2600 | } |
2601 | @@ -57,14 +62,31 @@ |
2602 | } |
2603 | |
2604 | ListItem.SingleValue { |
2605 | + objectName: "lockTimeout" |
2606 | property bool lockOnSuspend: securityPrivacy.securityType !== |
2607 | UbuntuSecurityPrivacyPanel.Swipe |
2608 | text: lockOnSuspend ? i18n.tr("Lock when idle") |
2609 | : i18n.tr("Sleep when idle") |
2610 | - // TRANSLATORS: %1 is the number of minutes |
2611 | - value: i18n.tr("%1 minute", |
2612 | - "%1 minutes", |
2613 | - 5).arg(5) |
2614 | + value: { |
2615 | + if (usePowerd) { |
2616 | + var timeout = Math.round(powerSettings.activityTimeout/60) |
2617 | + return (powerSettings.activityTimeout != 0) ? |
2618 | + // TRANSLATORS: %1 is the number of minutes |
2619 | + i18n.tr("%1 minute", |
2620 | + "%1 minutes", |
2621 | + timeout).arg(timeout) : |
2622 | + i18n.tr("Never") |
2623 | + } |
2624 | + else { |
2625 | + var timeout = Math.round(powerSettings.idleDelay/60) |
2626 | + return (powerSettings.idleDelay != 0) ? |
2627 | + // TRANSLATORS: %1 is the number of minutes |
2628 | + i18n.tr("%1 minute", |
2629 | + "%1 minutes", |
2630 | + timeout).arg(timeout) : |
2631 | + i18n.tr("Never") |
2632 | + } |
2633 | + } |
2634 | progression: true |
2635 | onClicked: |
2636 | pageStack.push( |
2637 | @@ -77,6 +99,7 @@ |
2638 | checked: true |
2639 | } |
2640 | text: i18n.tr("Sleep locks immediately") |
2641 | + visible: showAllUI |
2642 | } |
2643 | |
2644 | /* TODO: once we know how to do this |
2645 | |
2646 | === modified file 'plugins/security-privacy/trust-store-model.cpp' |
2647 | --- plugins/security-privacy/trust-store-model.cpp 2014-08-19 13:00:15 +0000 |
2648 | +++ plugins/security-privacy/trust-store-model.cpp 2014-08-26 11:38:32 +0000 |
2649 | @@ -179,7 +179,7 @@ |
2650 | Q_Q(TrustStoreModel); |
2651 | |
2652 | Q_ASSERT(trustStore); |
2653 | - Q_ASSERT(row >= 0 && row < d->applications.count()); |
2654 | + Q_ASSERT(row >= 0 && row < applications.count()); |
2655 | |
2656 | Application &app = applications[row]; |
2657 | app.grantedFeatures.clear(); |
2658 | |
2659 | === modified file 'plugins/system-update/PageComponent.qml' |
2660 | --- plugins/system-update/PageComponent.qml 2014-08-15 09:03:46 +0000 |
2661 | +++ plugins/system-update/PageComponent.qml 2014-08-26 11:38:32 +0000 |
2662 | @@ -33,7 +33,7 @@ |
2663 | objectName: "systemUpdatesPage" |
2664 | |
2665 | title: i18n.tr("Updates") |
2666 | - flickable: null |
2667 | + flickable: scrollWidget |
2668 | |
2669 | property bool installAll: false |
2670 | property bool includeSystemUpdate: false |
2671 | @@ -140,9 +140,6 @@ |
2672 | |
2673 | onCredentialsNotFound: { |
2674 | credentialsNotification.visible = true; |
2675 | - notification.text = i18n.tr("Please log into your Ubuntu One account."); |
2676 | - notification.progression = true; |
2677 | - notificationAction = root.open_online_accounts; |
2678 | } |
2679 | |
2680 | onSystemUpdateDownloaded: { |
2681 | @@ -152,320 +149,312 @@ |
2682 | |
2683 | onSystemUpdateFailed: { |
2684 | root.state = "SYSTEMUPDATEFAILED"; |
2685 | - if (lastReason) { |
2686 | - notification.text = lastReason; |
2687 | - } else { |
2688 | - notification.text = i18n.tr("System update has failed."); |
2689 | - } |
2690 | - notification.progression = false; |
2691 | - notificationAction = undefined; |
2692 | } |
2693 | |
2694 | onUpdateProcessFailed: { |
2695 | root.state = "SYSTEMUPDATEFAILED"; |
2696 | - if (message) { |
2697 | - notification.text = message; |
2698 | - } else { |
2699 | - notification.text = i18n.tr("System update failed."); |
2700 | - } |
2701 | - } |
2702 | - } |
2703 | - |
2704 | - Item { |
2705 | - id: checkForUpdatesArea |
2706 | - objectName: "checkForUpdatesArea" |
2707 | - visible: false |
2708 | - anchors { |
2709 | - left: parent.left |
2710 | - right: parent.right |
2711 | - top: parent.top |
2712 | - topMargin: units.gu(2) |
2713 | - leftMargin: units.gu(4) |
2714 | - rightMargin: units.gu(4) |
2715 | - } |
2716 | - height: installAllButton.height |
2717 | - |
2718 | - ActivityIndicator { |
2719 | - id: activity |
2720 | - running: checkForUpdatesArea.visible |
2721 | - visible: activity.running |
2722 | - anchors { |
2723 | - left: parent.left |
2724 | - top: parent.top |
2725 | - topMargin: units.gu(1) |
2726 | - } |
2727 | - } |
2728 | - |
2729 | - Label { |
2730 | - text: i18n.tr("Checking for updates…") |
2731 | - verticalAlignment: Text.AlignVCenter |
2732 | - elide: Text.ElideRight |
2733 | - anchors { |
2734 | - left: activity.right |
2735 | - top: parent.top |
2736 | - right: checkForUpdatesArea.right |
2737 | - bottom: parent.bottom |
2738 | - leftMargin: units.gu(2) |
2739 | - rightMargin: units.gu(2) |
2740 | - } |
2741 | - } |
2742 | - } |
2743 | - |
2744 | - Button { |
2745 | - id: installAllButton |
2746 | - objectName: "installAllButton" |
2747 | - |
2748 | - property string primaryText: includeSystemUpdate ? i18n.tr("Install %1 updates…").arg(root.updatesAvailable) : i18n.tr("Install %1 updates").arg(root.updatesAvailable) |
2749 | - property string secondaryText: i18n.tr("Pause All") |
2750 | - text: root.installAll ? secondaryText : primaryText |
2751 | - anchors { |
2752 | - left: parent.left |
2753 | - right: parent.right |
2754 | - top: parent.top |
2755 | - topMargin: units.gu(2) |
2756 | - leftMargin: units.gu(4) |
2757 | - rightMargin: units.gu(4) |
2758 | - } |
2759 | - visible: false |
2760 | - |
2761 | - color: UbuntuColors.orange |
2762 | - onClicked: { |
2763 | - root.installAll = !root.installAll; |
2764 | - for (var i=0; i < updateList.count; i++) { |
2765 | - updateList.currentIndex = i; |
2766 | - var item = updateList.currentItem; |
2767 | - var modelItem = updateManager.model[i]; |
2768 | - if (modelItem.updateState != root.installAll && !modelItem.updateReady) { |
2769 | - item.actionButton.clicked(); |
2770 | - } |
2771 | - } |
2772 | - } |
2773 | - opacity: root.updatesAvailable > 0 ? 1 : 0 |
2774 | - |
2775 | - Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SlowDuration |
2776 | - easing: UbuntuAnimation.StandardEasing } } |
2777 | - } |
2778 | - |
2779 | - ListView { |
2780 | - id: updateList |
2781 | - objectName: "updateList" |
2782 | - visible: false |
2783 | - anchors { |
2784 | - left: parent.left |
2785 | - right: parent.right |
2786 | - top: installAllButton.visible ? installAllButton.bottom : parent.top |
2787 | - bottom: notification.visible ? notification.top : configuration.top |
2788 | - margins: units.gu(2) |
2789 | - bottomMargin: 0 |
2790 | - } |
2791 | - model: updateManager.model |
2792 | + } |
2793 | + } |
2794 | + Flickable { |
2795 | + id: scrollWidget |
2796 | + |
2797 | + anchors.top: parent.top |
2798 | + anchors.left: parent.left |
2799 | + anchors.right: parent.right |
2800 | + anchors.bottom: configuration.top |
2801 | + |
2802 | + contentHeight: contentItem.childrenRect.height |
2803 | + boundsBehavior: (contentHeight > root.height) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds |
2804 | clip: true |
2805 | - contentHeight: contentItem.childrenRect.height |
2806 | - boundsBehavior: (contentHeight > (root.height - checkForUpdatesArea.height)) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds |
2807 | - |
2808 | - delegate: ListItem.Subtitled { |
2809 | - id: listItem |
2810 | - iconSource: Qt.resolvedUrl(modelData.iconUrl) |
2811 | - height: modelData.selected ? units.gu(14) : units.gu(8) |
2812 | - showDivider: false |
2813 | - |
2814 | - property alias actionButton: buttonAppUpdate |
2815 | - |
2816 | - Rectangle { |
2817 | - id: textArea |
2818 | - objectName: "textArea" |
2819 | - color: "transparent" |
2820 | - anchors.fill: parent |
2821 | - anchors.topMargin: units.gu(1) |
2822 | - |
2823 | - property string message: modelData.error |
2824 | - property bool retry: false |
2825 | - |
2826 | - onMessageChanged: { |
2827 | - if(message.length > 0) { |
2828 | - labelVersion.text = message; |
2829 | - buttonAppUpdate.text = i18n.tr("Retry"); |
2830 | - modelData.updateState = false; |
2831 | - modelData.selected = false; |
2832 | - textArea.retry = true; |
2833 | - } |
2834 | - } |
2835 | - |
2836 | - Button { |
2837 | - id: buttonAppUpdate |
2838 | - objectName: "buttonAppUpdate" |
2839 | - anchors.top: parent.top |
2840 | - anchors.right: parent.right |
2841 | - anchors.topMargin: units.gu(1) |
2842 | - anchors.rightMargin: units.gu(1) |
2843 | - height: labelTitle.height |
2844 | - |
2845 | - property string actionText: modelData.systemUpdate ? i18n.tr("Download") : i18n.tr("Update") |
2846 | - property string primaryText: modelData.selected ? i18n.tr("Resume") : actionText |
2847 | - property string secondaryText: i18n.tr("Pause") |
2848 | - |
2849 | - text: modelData.updateState ? secondaryText : primaryText |
2850 | + /* Set the direction to workaround https://bugreports.qt-project.org/browse/QTBUG-31905 |
2851 | + otherwise the UI might end up in a situation where scrolling doesn't work */ |
2852 | + flickableDirection: Flickable.VerticalFlick |
2853 | + |
2854 | + Column { |
2855 | + id: columnId |
2856 | + |
2857 | + anchors.left: parent.left |
2858 | + anchors.right: parent.right |
2859 | + |
2860 | + ListItem.Base { |
2861 | + id: checkForUpdatesArea |
2862 | + objectName: "checkForUpdatesArea" |
2863 | + showDivider: false |
2864 | + visible: false |
2865 | + |
2866 | + ActivityIndicator { |
2867 | + id: activity |
2868 | + running: checkForUpdatesArea.visible |
2869 | + visible: activity.running |
2870 | + anchors { |
2871 | + left: parent.left |
2872 | + top: parent.top |
2873 | + rightMargin: units.gu(2) |
2874 | + } |
2875 | + height: parent.height |
2876 | + } |
2877 | + |
2878 | + Label { |
2879 | + text: i18n.tr("Checking for updates…") |
2880 | + verticalAlignment: Text.AlignVCenter |
2881 | + elide: Text.ElideRight |
2882 | + anchors { |
2883 | + left: activity.right |
2884 | + top: parent.top |
2885 | + leftMargin: units.gu(2) |
2886 | + } |
2887 | + height: parent.height |
2888 | + } |
2889 | + } |
2890 | + |
2891 | + ListItem.SingleControl { |
2892 | + id: installAllButton |
2893 | + objectName: "installAllButton" |
2894 | + |
2895 | + control: Button { |
2896 | + property string primaryText: includeSystemUpdate ? |
2897 | + i18n.tr("Install %1 update…", "Install %1 updates…", root.updatesAvailable).arg(root.updatesAvailable) : |
2898 | + i18n.tr("Install %1 update", "Install %1 updates", root.updatesAvailable).arg(root.updatesAvailable) |
2899 | + property string secondaryText: i18n.tr("Pause All") |
2900 | + color: UbuntuColors.orange |
2901 | + text: root.installAll ? secondaryText : primaryText |
2902 | + width: parent.width - units.gu(4) |
2903 | |
2904 | onClicked: { |
2905 | - if (textArea.retry) { |
2906 | - textArea.retry = false; |
2907 | - updateManager.retryDownload(modelData.packageName); |
2908 | - } else if (modelData.updateReady) { |
2909 | - updateManager.applySystemUpdate(); |
2910 | - installingImageUpdate.visible = true; |
2911 | - } else if (modelData.updateState) { |
2912 | - if (modelData.systemUpdate) { |
2913 | - updateManager.pauseDownload(modelData.packageName); |
2914 | - } else { |
2915 | + root.installAll = !root.installAll; |
2916 | + for (var i=0; i < updateList.count; i++) { |
2917 | + updateList.currentIndex = i; |
2918 | + var item = updateList.currentItem; |
2919 | + var modelItem = updateManager.model[i]; |
2920 | + if (modelItem.updateState != root.installAll && !modelItem.updateReady) { |
2921 | + item.actionButton.clicked(); |
2922 | + } |
2923 | + } |
2924 | + } |
2925 | + } |
2926 | + } |
2927 | + |
2928 | + ListView { |
2929 | + id: updateList |
2930 | + objectName: "updateList" |
2931 | + anchors { |
2932 | + left: parent.left |
2933 | + right: parent.right |
2934 | + } |
2935 | + model: updateManager.model |
2936 | + height: contentItem.childrenRect.height |
2937 | + interactive: false |
2938 | + |
2939 | + delegate: ListItem.Subtitled { |
2940 | + id: listItem |
2941 | + iconSource: Qt.resolvedUrl(modelData.iconUrl) |
2942 | + height: modelData.selected ? units.gu(14) : units.gu(8) |
2943 | + showDivider: false |
2944 | + |
2945 | + property alias actionButton: buttonAppUpdate |
2946 | + |
2947 | + Rectangle { |
2948 | + id: textArea |
2949 | + objectName: "textArea" |
2950 | + color: "transparent" |
2951 | + anchors.fill: parent |
2952 | + anchors.topMargin: units.gu(1) |
2953 | + |
2954 | + property string message: modelData.error |
2955 | + property bool retry: false |
2956 | + |
2957 | + onMessageChanged: { |
2958 | + if(message.length > 0) { |
2959 | + labelVersion.text = message; |
2960 | + buttonAppUpdate.text = i18n.tr("Retry"); |
2961 | modelData.updateState = false; |
2962 | - tracker.pause(); |
2963 | - } |
2964 | - } else { |
2965 | - if (!modelData.selected || modelData.systemUpdate) { |
2966 | - modelData.selected = true; |
2967 | - updateManager.startDownload(modelData.packageName); |
2968 | - } else { |
2969 | - modelData.updateState = true; |
2970 | - tracker.resume(); |
2971 | - } |
2972 | - } |
2973 | - } |
2974 | - } |
2975 | - |
2976 | - Label { |
2977 | - id: labelSize |
2978 | - objectName: "labelSize" |
2979 | - text: convert_bytes_to_size(modelData.binaryFilesize) |
2980 | - anchors.bottom: labelVersion.bottom |
2981 | - anchors.right: parent.right |
2982 | - anchors.rightMargin: units.gu(1) |
2983 | - visible: !modelData.selected |
2984 | - } |
2985 | - |
2986 | - Label { |
2987 | - id: labelTitle |
2988 | - objectName: "labelTitle" |
2989 | - anchors { |
2990 | - top: parent.top |
2991 | - left: parent.left |
2992 | - right: buttonAppUpdate.left |
2993 | - topMargin: units.gu(1) |
2994 | - rightMargin: units.gu(1) |
2995 | - } |
2996 | - height: units.gu(3) |
2997 | - text: modelData.title |
2998 | - font.bold: true |
2999 | - elide: buttonAppUpdate.visible ? Text.ElideRight : Text.ElideNone |
3000 | - } |
3001 | - |
3002 | - Label { |
3003 | - id: labelUpdateStatus |
3004 | - objectName: "labelUpdateStatus" |
3005 | - text: i18n.tr("Installing") |
3006 | - anchors.top: labelTitle.bottom |
3007 | - anchors.left: parent.left |
3008 | - anchors.right: parent.right |
3009 | - opacity: modelData.selected ? 1 : 0 |
3010 | - anchors.bottomMargin: units.gu(1) |
3011 | - |
3012 | - Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } } |
3013 | - } |
3014 | - |
3015 | - ProgressBar { |
3016 | - id: progress |
3017 | - objectName: "progress" |
3018 | - height: units.gu(2) |
3019 | - anchors.left: parent.left |
3020 | - anchors.top: labelUpdateStatus.bottom |
3021 | - anchors.topMargin: units.gu(1) |
3022 | - anchors.right: parent.right |
3023 | - opacity: modelData.selected ? 1 : 0 |
3024 | - value: modelData.systemUpdate ? modelData.downloadProgress : tracker.progress |
3025 | - minimumValue: 0 |
3026 | - maximumValue: 100 |
3027 | - |
3028 | - DownloadTracker { |
3029 | - id: tracker |
3030 | - objectName: "tracker" |
3031 | - packageName: modelData.packageName |
3032 | - clickToken: modelData.clickToken |
3033 | - download: modelData.downloadUrl |
3034 | - |
3035 | - onFinished: { |
3036 | - progress.visible = false; |
3037 | - buttonAppUpdate.visible = false; |
3038 | - textArea.message = i18n.tr("Installed"); |
3039 | - root.updatesAvailable -= 1; |
3040 | - } |
3041 | - |
3042 | - onErrorFound: { |
3043 | - modelData.updateState = false; |
3044 | - textArea.message = error; |
3045 | - } |
3046 | - } |
3047 | - |
3048 | - Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } } |
3049 | - } |
3050 | - |
3051 | - Label { |
3052 | - id: labelVersion |
3053 | - objectName: "labelVersion" |
3054 | - anchors { |
3055 | - left: parent.left |
3056 | - right: buttonAppUpdate.right |
3057 | - top: (!progress.visible || progress.opacity == 0) ? labelTitle.bottom : progress.bottom |
3058 | - topMargin: (!progress.visible || progress.opacity == 0) ? 0 : units.gu(1) |
3059 | - bottom: parent.bottom |
3060 | - bottomMargin: units.gu(1) |
3061 | - } |
3062 | - text: modelData.remoteVersion ? i18n.tr("Version: ") + modelData.remoteVersion : "" |
3063 | - color: "black" |
3064 | - elide: Text.ElideRight |
3065 | - } |
3066 | - } |
3067 | - } |
3068 | - } |
3069 | - |
3070 | - ListItem.Standard { |
3071 | - id: notification |
3072 | - objectName: "notification" |
3073 | - visible: updateNotification.visible || credentialsNotification.visible ? true : false |
3074 | - anchors.bottom: configuration.top |
3075 | - |
3076 | - onClicked: { |
3077 | - if (notificationAction) { |
3078 | - notificationAction(); |
3079 | - } |
3080 | - } |
3081 | - } |
3082 | - |
3083 | - ListItem.SingleValue { |
3084 | - id: configuration |
3085 | - objectName: "configuration" |
3086 | - anchors.bottom: parent.bottom |
3087 | - text: i18n.tr("Auto download") |
3088 | - value: { |
3089 | - if (updateManager.downloadMode === 0) |
3090 | - return i18n.tr("Never") |
3091 | - else if (updateManager.downloadMode === 1) |
3092 | - return i18n.tr("On wi-fi") |
3093 | - else if (updateManager.downloadMode === 2) |
3094 | - return i18n.tr("Always") |
3095 | - } |
3096 | - progression: true |
3097 | - onClicked: pageStack.push(Qt.resolvedUrl("Configuration.qml"), {updateManager: updateManager}) |
3098 | + modelData.selected = false; |
3099 | + textArea.retry = true; |
3100 | + } |
3101 | + } |
3102 | + |
3103 | + Button { |
3104 | + id: buttonAppUpdate |
3105 | + objectName: "buttonAppUpdate" |
3106 | + anchors.top: parent.top |
3107 | + anchors.right: parent.right |
3108 | + anchors.topMargin: units.gu(1) |
3109 | + anchors.rightMargin: units.gu(1) |
3110 | + height: labelTitle.height |
3111 | + |
3112 | + property string actionText: modelData.systemUpdate ? i18n.tr("Download") : i18n.tr("Update") |
3113 | + property string primaryText: modelData.selected ? i18n.tr("Resume") : actionText |
3114 | + property string secondaryText: i18n.tr("Pause") |
3115 | + |
3116 | + text: modelData.updateState ? secondaryText : primaryText |
3117 | + |
3118 | + onClicked: { |
3119 | + if (textArea.retry) { |
3120 | + textArea.retry = false; |
3121 | + updateManager.retryDownload(modelData.packageName); |
3122 | + } else if (modelData.updateReady) { |
3123 | + updateManager.applySystemUpdate(); |
3124 | + installingImageUpdate.visible = true; |
3125 | + } else if (modelData.updateState) { |
3126 | + if (modelData.systemUpdate) { |
3127 | + updateManager.pauseDownload(modelData.packageName); |
3128 | + } else { |
3129 | + modelData.updateState = false; |
3130 | + tracker.pause(); |
3131 | + } |
3132 | + } else { |
3133 | + if (!modelData.selected || modelData.systemUpdate) { |
3134 | + modelData.selected = true; |
3135 | + updateManager.startDownload(modelData.packageName); |
3136 | + } else { |
3137 | + modelData.updateState = true; |
3138 | + tracker.resume(); |
3139 | + } |
3140 | + } |
3141 | + } |
3142 | + } |
3143 | + |
3144 | + Label { |
3145 | + id: labelSize |
3146 | + objectName: "labelSize" |
3147 | + text: convert_bytes_to_size(modelData.binaryFilesize) |
3148 | + anchors.bottom: labelVersion.bottom |
3149 | + anchors.right: parent.right |
3150 | + anchors.rightMargin: units.gu(1) |
3151 | + visible: !modelData.selected |
3152 | + } |
3153 | + |
3154 | + Label { |
3155 | + id: labelTitle |
3156 | + objectName: "labelTitle" |
3157 | + anchors { |
3158 | + top: parent.top |
3159 | + left: parent.left |
3160 | + right: buttonAppUpdate.left |
3161 | + topMargin: units.gu(1) |
3162 | + rightMargin: units.gu(1) |
3163 | + } |
3164 | + height: units.gu(3) |
3165 | + text: modelData.title |
3166 | + font.bold: true |
3167 | + elide: buttonAppUpdate.visible ? Text.ElideRight : Text.ElideNone |
3168 | + } |
3169 | + |
3170 | + Label { |
3171 | + id: labelUpdateStatus |
3172 | + objectName: "labelUpdateStatus" |
3173 | + text: i18n.tr("Installing") |
3174 | + anchors.top: labelTitle.bottom |
3175 | + anchors.left: parent.left |
3176 | + anchors.right: parent.right |
3177 | + opacity: modelData.selected ? 1 : 0 |
3178 | + anchors.bottomMargin: units.gu(1) |
3179 | + |
3180 | + Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } } |
3181 | + } |
3182 | + |
3183 | + ProgressBar { |
3184 | + id: progress |
3185 | + objectName: "progress" |
3186 | + height: units.gu(2) |
3187 | + anchors.left: parent.left |
3188 | + anchors.top: labelUpdateStatus.bottom |
3189 | + anchors.topMargin: units.gu(1) |
3190 | + anchors.right: parent.right |
3191 | + opacity: modelData.selected ? 1 : 0 |
3192 | + value: modelData.systemUpdate ? modelData.downloadProgress : tracker.progress |
3193 | + minimumValue: 0 |
3194 | + maximumValue: 100 |
3195 | + |
3196 | + DownloadTracker { |
3197 | + id: tracker |
3198 | + objectName: "tracker" |
3199 | + packageName: modelData.packageName |
3200 | + clickToken: modelData.clickToken |
3201 | + download: modelData.downloadUrl |
3202 | + |
3203 | + onFinished: { |
3204 | + progress.visible = false; |
3205 | + buttonAppUpdate.visible = false; |
3206 | + textArea.message = i18n.tr("Installed"); |
3207 | + root.updatesAvailable -= 1; |
3208 | + } |
3209 | + |
3210 | + onErrorFound: { |
3211 | + modelData.updateState = false; |
3212 | + textArea.message = error; |
3213 | + } |
3214 | + } |
3215 | + |
3216 | + Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } } |
3217 | + } |
3218 | + |
3219 | + Label { |
3220 | + id: labelVersion |
3221 | + objectName: "labelVersion" |
3222 | + anchors { |
3223 | + left: parent.left |
3224 | + right: buttonAppUpdate.right |
3225 | + top: (!progress.visible || progress.opacity == 0) ? labelTitle.bottom : progress.bottom |
3226 | + topMargin: (!progress.visible || progress.opacity == 0) ? 0 : units.gu(1) |
3227 | + bottom: parent.bottom |
3228 | + bottomMargin: units.gu(1) |
3229 | + } |
3230 | + text: modelData.remoteVersion ? i18n.tr("Version: ") + modelData.remoteVersion : "" |
3231 | + color: "black" |
3232 | + elide: Text.ElideRight |
3233 | + } |
3234 | + } |
3235 | + } |
3236 | + } |
3237 | + |
3238 | + Column { |
3239 | + id: credentialsNotification |
3240 | + objectName: "credentialsNotification" |
3241 | + |
3242 | + visible: false |
3243 | + |
3244 | + spacing: units.gu(2) |
3245 | + anchors { |
3246 | + left: parent.left |
3247 | + right: parent.right |
3248 | + } |
3249 | + ListItem.ThinDivider {} |
3250 | + |
3251 | + Label { |
3252 | + text: i18n.tr("Sign in to Ubuntu One to receive updates for apps.") |
3253 | + horizontalAlignment: Text.AlignHCenter |
3254 | + wrapMode: Text.Wrap |
3255 | + anchors { |
3256 | + left: parent.left |
3257 | + right: parent.right |
3258 | + } |
3259 | + } |
3260 | + Button { |
3261 | + text: i18n.tr("Sign In…") |
3262 | + anchors { |
3263 | + left: parent.left |
3264 | + right: parent.right |
3265 | + leftMargin: units.gu(2) |
3266 | + rightMargin: units.gu(2) |
3267 | + } |
3268 | + onClicked: open_online_accounts() |
3269 | + } |
3270 | + |
3271 | + } |
3272 | + |
3273 | + |
3274 | + } |
3275 | } |
3276 | |
3277 | Rectangle { |
3278 | id: updateNotification |
3279 | objectName: "updateNotification" |
3280 | anchors { |
3281 | + bottom: configuration.top |
3282 | left: parent.left |
3283 | right: parent.right |
3284 | - top: installAllButton.bottom |
3285 | - bottom: notification.visible ? notification.top : configuration.top |
3286 | - margins: units.gu(2) |
3287 | - bottomMargin: 0 |
3288 | + top: parent.top |
3289 | } |
3290 | visible: false |
3291 | property string text: "" |
3292 | @@ -482,35 +471,14 @@ |
3293 | } |
3294 | |
3295 | Rectangle { |
3296 | - id: credentialsNotification |
3297 | - objectName: "credentialsNotification" |
3298 | - anchors { |
3299 | - left: parent.left |
3300 | - right: parent.right |
3301 | - top: installAllButton.bottom |
3302 | - bottom: notification.visible ? notification.top : configuration.top |
3303 | - margins: units.gu(2) |
3304 | - bottomMargin: 0 |
3305 | - } |
3306 | - visible: false |
3307 | - |
3308 | - color: "transparent" |
3309 | - |
3310 | - Column { |
3311 | - anchors.centerIn: parent |
3312 | - |
3313 | - Label { |
3314 | - text: i18n.tr("Credentials not found") |
3315 | - anchors.horizontalCenter: parent.horizontalCenter |
3316 | - fontSize: "large" |
3317 | - } |
3318 | - } |
3319 | - } |
3320 | - |
3321 | - Rectangle { |
3322 | id: installingImageUpdate |
3323 | objectName: "installingImageUpdate" |
3324 | - anchors.fill: parent |
3325 | + anchors { |
3326 | + bottom: configuration.top |
3327 | + left: parent.left |
3328 | + right: parent.right |
3329 | + top: parent.top |
3330 | + } |
3331 | visible: false |
3332 | |
3333 | color: "#221e1c" |
3334 | @@ -536,6 +504,29 @@ |
3335 | } |
3336 | } |
3337 | |
3338 | + Column { |
3339 | + id: configuration |
3340 | + |
3341 | + anchors.bottom: parent.bottom |
3342 | + anchors.left: parent.left |
3343 | + anchors.right: parent.right |
3344 | + ListItem.ThinDivider {} |
3345 | + ListItem.SingleValue { |
3346 | + objectName: "configuration" |
3347 | + text: i18n.tr("Auto download") |
3348 | + value: { |
3349 | + if (updateManager.downloadMode === 0) |
3350 | + return i18n.tr("Never") |
3351 | + else if (updateManager.downloadMode === 1) |
3352 | + return i18n.tr("On wi-fi") |
3353 | + else if (updateManager.downloadMode === 2) |
3354 | + return i18n.tr("Always") |
3355 | + } |
3356 | + progression: true |
3357 | + onClicked: pageStack.push(Qt.resolvedUrl("Configuration.qml"), {updateManager: updateManager}) |
3358 | + } |
3359 | + } |
3360 | + |
3361 | function convert_bytes_to_size(bytes) { |
3362 | var SIZE_IN_GIB = 1024.0 * 1024.0 * 1024.0; |
3363 | var SIZE_IN_MIB = 1024.0 * 1024.0; |
3364 | |
3365 | === modified file 'plugins/system-update/update_manager.cpp' |
3366 | --- plugins/system-update/update_manager.cpp 2014-05-13 14:30:04 +0000 |
3367 | +++ plugins/system-update/update_manager.cpp 2014-08-26 11:38:32 +0000 |
3368 | @@ -40,7 +40,8 @@ |
3369 | QObject(parent), |
3370 | m_systemCheckingUpdate(false), |
3371 | m_clickCheckingUpdate(false), |
3372 | - m_checkingUpdates(0) |
3373 | + m_checkingUpdates(0), |
3374 | + m_downloadMode(-1) |
3375 | { |
3376 | // SSO SERVICE |
3377 | QObject::connect(&m_service, SIGNAL(credentialsFound(const Token&)), |
3378 | |
3379 | === modified file 'plugins/time-date/timezonelocationmodel.cpp' |
3380 | --- plugins/time-date/timezonelocationmodel.cpp 2014-06-11 13:05:23 +0000 |
3381 | +++ plugins/time-date/timezonelocationmodel.cpp 2014-08-26 11:38:32 +0000 |
3382 | @@ -134,6 +134,7 @@ |
3383 | return QVariant(); |
3384 | break; |
3385 | } |
3386 | + throw "Unreachable code"; |
3387 | } |
3388 | |
3389 | QHash<int, QByteArray> TimeZoneLocationModel::roleNames() const |
3390 | @@ -193,11 +194,10 @@ |
3391 | TzDB *tzdb = tz_load_db(); |
3392 | GPtrArray *tz_locations = tz_get_locations(tzdb); |
3393 | |
3394 | - CcTimezoneLocation *tmp; |
3395 | TimeZoneLocationModel::TzLocation tmpTz; |
3396 | |
3397 | for (guint i = 0; i < tz_locations->len; ++i) { |
3398 | - tmp = (CcTimezoneLocation *) g_ptr_array_index(tz_locations, i); |
3399 | + auto tmp = static_cast<CcTimezoneLocation *>(g_ptr_array_index(tz_locations, i)); |
3400 | gchar *en_name, *country, *zone, *state, *full_country; |
3401 | g_object_get (tmp, "en_name", &en_name, |
3402 | "country", &country, |
3403 | |
3404 | === modified file 'po/am.po' |
3405 | --- po/am.po 2014-08-22 07:38:19 +0000 |
3406 | +++ po/am.po 2014-08-26 11:38:32 +0000 |
3407 | @@ -15,7 +15,7 @@ |
3408 | "Content-Type: text/plain; charset=UTF-8\n" |
3409 | "Content-Transfer-Encoding: 8bit\n" |
3410 | "Plural-Forms: nplurals=2; plural=n > 1;\n" |
3411 | -"X-Launchpad-Export-Date: 2014-08-22 07:37+0000\n" |
3412 | +"X-Launchpad-Export-Date: 2014-08-23 07:14+0000\n" |
3413 | "X-Generator: Launchpad (build 17163)\n" |
3414 | |
3415 | #: ../plugins/language//SpellChecking.qml:27 |
3416 | |
3417 | === modified file 'po/en_AU.po' |
3418 | --- po/en_AU.po 2014-08-20 06:22:04 +0000 |
3419 | +++ po/en_AU.po 2014-08-26 11:38:32 +0000 |
3420 | @@ -8,14 +8,14 @@ |
3421 | "Project-Id-Version: ubuntu-system-settings\n" |
3422 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
3423 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
3424 | -"PO-Revision-Date: 2014-08-13 02:03+0000\n" |
3425 | +"PO-Revision-Date: 2014-08-23 02:38+0000\n" |
3426 | "Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n" |
3427 | "Language-Team: English (Australia) <en_AU@li.org>\n" |
3428 | "MIME-Version: 1.0\n" |
3429 | "Content-Type: text/plain; charset=UTF-8\n" |
3430 | "Content-Transfer-Encoding: 8bit\n" |
3431 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
3432 | -"X-Launchpad-Export-Date: 2014-08-20 06:21+0000\n" |
3433 | +"X-Launchpad-Export-Date: 2014-08-24 06:45+0000\n" |
3434 | "X-Generator: Launchpad (build 17163)\n" |
3435 | |
3436 | #: ../plugins/language//SpellChecking.qml:27 |
3437 | @@ -50,7 +50,7 @@ |
3438 | |
3439 | #: ../plugins/language//PageComponent.qml:128 |
3440 | msgid "Auto correction" |
3441 | -msgstr "" |
3442 | +msgstr "Auto correction" |
3443 | |
3444 | #: ../plugins/language//PageComponent.qml:138 |
3445 | msgid "Word suggestions" |
3446 | @@ -66,12 +66,13 @@ |
3447 | |
3448 | #: ../plugins/language//PageComponent.qml:168 |
3449 | msgid "Auto punctuation" |
3450 | -msgstr "" |
3451 | +msgstr "Auto punctuation" |
3452 | |
3453 | #: ../plugins/language//PageComponent.qml:178 |
3454 | msgid "" |
3455 | "Adds a period, and any missing quotes or brackets, when you tap Space twice." |
3456 | msgstr "" |
3457 | +"Adds a period, and any missing quotes or brackets, when you tap Space twice." |
3458 | |
3459 | #: ../plugins/language//PageComponent.qml:185 |
3460 | #: ../plugins/sound//PageComponent.qml:186 |
3461 | @@ -80,7 +81,7 @@ |
3462 | |
3463 | #: ../plugins/language//PageComponent.qml:195 |
3464 | msgid "Keyboard vibration" |
3465 | -msgstr "" |
3466 | +msgstr "Keyboard vibration" |
3467 | |
3468 | #: ../plugins/language//KeyboardLayouts.qml:39 |
3469 | msgid "Current layouts:" |
3470 | @@ -310,7 +311,7 @@ |
3471 | |
3472 | #: ../plugins/security-privacy//AppAccess.qml:35 |
3473 | msgid "Apps that you have granted and have requested access to:" |
3474 | -msgstr "" |
3475 | +msgstr "Apps that you have granted and have requested access to:" |
3476 | |
3477 | #: ../plugins/security-privacy//AppAccess.qml:41 |
3478 | #: ../plugins/bluetooth//PageComponent.qml:100 |
3479 | @@ -319,24 +320,24 @@ |
3480 | |
3481 | #: ../plugins/security-privacy//AppAccess.qml:42 |
3482 | msgid "Apps that have requested access to your camera" |
3483 | -msgstr "" |
3484 | +msgstr "Apps that have requested access to your camera" |
3485 | |
3486 | #: ../plugins/security-privacy//AppAccess.qml:46 |
3487 | msgid "Mic" |
3488 | -msgstr "" |
3489 | +msgstr "Mic" |
3490 | |
3491 | #: ../plugins/security-privacy//AppAccess.qml:47 |
3492 | msgid "Apps that have requested access to your mic" |
3493 | -msgstr "" |
3494 | +msgstr "Apps that have requested access to your mic" |
3495 | |
3496 | #: ../plugins/security-privacy//AppAccess.qml:59 |
3497 | #, qt-format |
3498 | msgid "%1/%2" |
3499 | -msgstr "" |
3500 | +msgstr "%1/%2" |
3501 | |
3502 | #: ../plugins/security-privacy//AppAccess.qml:60 |
3503 | msgid "0" |
3504 | -msgstr "" |
3505 | +msgstr "0" |
3506 | |
3507 | #: ../plugins/security-privacy//LockSecurity.qml:92 |
3508 | msgid "Change passcode" |
3509 | @@ -1075,7 +1076,7 @@ |
3510 | #: ../plugins/battery//PageComponent.qml:290 |
3511 | #: ../plugins/brightness//BrightnessSlider.qml:51 |
3512 | msgid "Display brightness" |
3513 | -msgstr "" |
3514 | +msgstr "Display brightness" |
3515 | |
3516 | #. TRANSLATORS: %1 is the number of minutes |
3517 | #: ../plugins/battery//PageComponent.qml:306 |
3518 | @@ -1418,7 +1419,7 @@ |
3519 | |
3520 | #: ../plugins/brightness//PageComponent.qml:65 |
3521 | msgid "Brightens and dims the display to suit the surroundings." |
3522 | -msgstr "" |
3523 | +msgstr "Brightens and dims the display to suit the surroundings." |
3524 | |
3525 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
3526 | #: ../plugins/sound//PageComponent.qml:38 |
3527 | @@ -1564,27 +1565,27 @@ |
3528 | |
3529 | #: ../wizard/qml/Pages//15-passwd.qml:37 |
3530 | msgid "Set lock security" |
3531 | -msgstr "" |
3532 | +msgstr "Set lock security" |
3533 | |
3534 | #: ../wizard/qml/Pages//15-passwd.qml:86 |
3535 | msgid "Swipe" |
3536 | -msgstr "" |
3537 | +msgstr "Swipe" |
3538 | |
3539 | #: ../wizard/qml/Pages//15-passwd.qml:136 |
3540 | msgid "Those passcodes don't match." |
3541 | -msgstr "" |
3542 | +msgstr "Those passcodes don't match." |
3543 | |
3544 | #: ../wizard/qml/Pages//15-passwd.qml:138 |
3545 | msgid "Those passphrases don't match." |
3546 | -msgstr "" |
3547 | +msgstr "Those passphrases don't match." |
3548 | |
3549 | #: ../wizard/qml/Pages//15-passwd.qml:146 |
3550 | msgid "Passcode must be at least four digits long." |
3551 | -msgstr "" |
3552 | +msgstr "Passcode must be at least four digits long." |
3553 | |
3554 | #: ../wizard/qml/Pages//15-passwd.qml:148 |
3555 | msgid "Passphrase must be at least four characters long." |
3556 | -msgstr "" |
3557 | +msgstr "Passphrase must be at least four characters long." |
3558 | |
3559 | #: ../wizard/qml/Pages//10-welcome.qml:25 |
3560 | msgid "Hello" |
3561 | @@ -1890,8 +1891,8 @@ |
3562 | |
3563 | #: ../push-helper/software-updates-helper.py:78 |
3564 | msgid "There's an updated system image." |
3565 | -msgstr "" |
3566 | +msgstr "There's an updated system image." |
3567 | |
3568 | #: ../push-helper/software-updates-helper.py:79 |
3569 | msgid "Tap to open the system updater." |
3570 | -msgstr "" |
3571 | +msgstr "Tap to open the system updater." |
3572 | |
3573 | === modified file 'po/en_GB.po' |
3574 | --- po/en_GB.po 2014-08-20 06:22:04 +0000 |
3575 | +++ po/en_GB.po 2014-08-26 11:38:32 +0000 |
3576 | @@ -8,14 +8,14 @@ |
3577 | "Project-Id-Version: ubuntu-system-settings\n" |
3578 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
3579 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
3580 | -"PO-Revision-Date: 2014-08-12 12:45+0000\n" |
3581 | +"PO-Revision-Date: 2014-08-22 11:37+0000\n" |
3582 | "Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n" |
3583 | "Language-Team: English (United Kingdom) <en_GB@li.org>\n" |
3584 | "MIME-Version: 1.0\n" |
3585 | "Content-Type: text/plain; charset=UTF-8\n" |
3586 | "Content-Transfer-Encoding: 8bit\n" |
3587 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
3588 | -"X-Launchpad-Export-Date: 2014-08-20 06:21+0000\n" |
3589 | +"X-Launchpad-Export-Date: 2014-08-23 07:15+0000\n" |
3590 | "X-Generator: Launchpad (build 17163)\n" |
3591 | |
3592 | #: ../plugins/language//SpellChecking.qml:27 |
3593 | @@ -50,7 +50,7 @@ |
3594 | |
3595 | #: ../plugins/language//PageComponent.qml:128 |
3596 | msgid "Auto correction" |
3597 | -msgstr "" |
3598 | +msgstr "Auto correction" |
3599 | |
3600 | #: ../plugins/language//PageComponent.qml:138 |
3601 | msgid "Word suggestions" |
3602 | @@ -66,12 +66,14 @@ |
3603 | |
3604 | #: ../plugins/language//PageComponent.qml:168 |
3605 | msgid "Auto punctuation" |
3606 | -msgstr "" |
3607 | +msgstr "Auto punctuation" |
3608 | |
3609 | #: ../plugins/language//PageComponent.qml:178 |
3610 | msgid "" |
3611 | "Adds a period, and any missing quotes or brackets, when you tap Space twice." |
3612 | msgstr "" |
3613 | +"Adds a full-stop, and any missing quotes or brackets, when you tap Space " |
3614 | +"twice." |
3615 | |
3616 | #: ../plugins/language//PageComponent.qml:185 |
3617 | #: ../plugins/sound//PageComponent.qml:186 |
3618 | @@ -80,7 +82,7 @@ |
3619 | |
3620 | #: ../plugins/language//PageComponent.qml:195 |
3621 | msgid "Keyboard vibration" |
3622 | -msgstr "" |
3623 | +msgstr "Keyboard vibration" |
3624 | |
3625 | #: ../plugins/language//KeyboardLayouts.qml:39 |
3626 | msgid "Current layouts:" |
3627 | @@ -310,7 +312,7 @@ |
3628 | |
3629 | #: ../plugins/security-privacy//AppAccess.qml:35 |
3630 | msgid "Apps that you have granted and have requested access to:" |
3631 | -msgstr "" |
3632 | +msgstr "Apps that you have granted and have requested access to:" |
3633 | |
3634 | #: ../plugins/security-privacy//AppAccess.qml:41 |
3635 | #: ../plugins/bluetooth//PageComponent.qml:100 |
3636 | @@ -319,24 +321,24 @@ |
3637 | |
3638 | #: ../plugins/security-privacy//AppAccess.qml:42 |
3639 | msgid "Apps that have requested access to your camera" |
3640 | -msgstr "" |
3641 | +msgstr "Apps that have requested access to your camera" |
3642 | |
3643 | #: ../plugins/security-privacy//AppAccess.qml:46 |
3644 | msgid "Mic" |
3645 | -msgstr "" |
3646 | +msgstr "Mic" |
3647 | |
3648 | #: ../plugins/security-privacy//AppAccess.qml:47 |
3649 | msgid "Apps that have requested access to your mic" |
3650 | -msgstr "" |
3651 | +msgstr "Apps that have requested access to your mic" |
3652 | |
3653 | #: ../plugins/security-privacy//AppAccess.qml:59 |
3654 | #, qt-format |
3655 | msgid "%1/%2" |
3656 | -msgstr "" |
3657 | +msgstr "%1/%2" |
3658 | |
3659 | #: ../plugins/security-privacy//AppAccess.qml:60 |
3660 | msgid "0" |
3661 | -msgstr "" |
3662 | +msgstr "0" |
3663 | |
3664 | #: ../plugins/security-privacy//LockSecurity.qml:92 |
3665 | msgid "Change passcode" |
3666 | @@ -1075,7 +1077,7 @@ |
3667 | #: ../plugins/battery//PageComponent.qml:290 |
3668 | #: ../plugins/brightness//BrightnessSlider.qml:51 |
3669 | msgid "Display brightness" |
3670 | -msgstr "" |
3671 | +msgstr "Display brightness" |
3672 | |
3673 | #. TRANSLATORS: %1 is the number of minutes |
3674 | #: ../plugins/battery//PageComponent.qml:306 |
3675 | @@ -1418,7 +1420,7 @@ |
3676 | |
3677 | #: ../plugins/brightness//PageComponent.qml:65 |
3678 | msgid "Brightens and dims the display to suit the surroundings." |
3679 | -msgstr "" |
3680 | +msgstr "Brightens and dims the display to suit the surroundings." |
3681 | |
3682 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
3683 | #: ../plugins/sound//PageComponent.qml:38 |
3684 | @@ -1564,27 +1566,27 @@ |
3685 | |
3686 | #: ../wizard/qml/Pages//15-passwd.qml:37 |
3687 | msgid "Set lock security" |
3688 | -msgstr "" |
3689 | +msgstr "Set lock security" |
3690 | |
3691 | #: ../wizard/qml/Pages//15-passwd.qml:86 |
3692 | msgid "Swipe" |
3693 | -msgstr "" |
3694 | +msgstr "Swipe" |
3695 | |
3696 | #: ../wizard/qml/Pages//15-passwd.qml:136 |
3697 | msgid "Those passcodes don't match." |
3698 | -msgstr "" |
3699 | +msgstr "Those passcodes don't match." |
3700 | |
3701 | #: ../wizard/qml/Pages//15-passwd.qml:138 |
3702 | msgid "Those passphrases don't match." |
3703 | -msgstr "" |
3704 | +msgstr "Those passphrases don't match." |
3705 | |
3706 | #: ../wizard/qml/Pages//15-passwd.qml:146 |
3707 | msgid "Passcode must be at least four digits long." |
3708 | -msgstr "" |
3709 | +msgstr "Passcode must be at least four digits long." |
3710 | |
3711 | #: ../wizard/qml/Pages//15-passwd.qml:148 |
3712 | msgid "Passphrase must be at least four characters long." |
3713 | -msgstr "" |
3714 | +msgstr "Passphrase must be at least four characters long." |
3715 | |
3716 | #: ../wizard/qml/Pages//10-welcome.qml:25 |
3717 | msgid "Hello" |
3718 | @@ -1890,8 +1892,8 @@ |
3719 | |
3720 | #: ../push-helper/software-updates-helper.py:78 |
3721 | msgid "There's an updated system image." |
3722 | -msgstr "" |
3723 | +msgstr "There's an updated system image." |
3724 | |
3725 | #: ../push-helper/software-updates-helper.py:79 |
3726 | msgid "Tap to open the system updater." |
3727 | -msgstr "" |
3728 | +msgstr "Tap to open the system updater." |
3729 | |
3730 | === modified file 'po/es.po' |
3731 | --- po/es.po 2014-08-20 06:22:04 +0000 |
3732 | +++ po/es.po 2014-08-26 11:38:32 +0000 |
3733 | @@ -8,14 +8,14 @@ |
3734 | "Project-Id-Version: ubuntu-system-settings\n" |
3735 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
3736 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
3737 | -"PO-Revision-Date: 2014-08-16 13:20+0000\n" |
3738 | -"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n" |
3739 | +"PO-Revision-Date: 2014-08-26 05:19+0000\n" |
3740 | +"Last-Translator: Leo Arias <leo.arias@canonical.com>\n" |
3741 | "Language-Team: Spanish <es@li.org>\n" |
3742 | "MIME-Version: 1.0\n" |
3743 | "Content-Type: text/plain; charset=UTF-8\n" |
3744 | "Content-Transfer-Encoding: 8bit\n" |
3745 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
3746 | -"X-Launchpad-Export-Date: 2014-08-20 06:21+0000\n" |
3747 | +"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n" |
3748 | "X-Generator: Launchpad (build 17163)\n" |
3749 | |
3750 | #: ../plugins/language//SpellChecking.qml:27 |
3751 | @@ -50,7 +50,7 @@ |
3752 | |
3753 | #: ../plugins/language//PageComponent.qml:128 |
3754 | msgid "Auto correction" |
3755 | -msgstr "" |
3756 | +msgstr "Corrección automática" |
3757 | |
3758 | #: ../plugins/language//PageComponent.qml:138 |
3759 | msgid "Word suggestions" |
3760 | @@ -66,7 +66,7 @@ |
3761 | |
3762 | #: ../plugins/language//PageComponent.qml:168 |
3763 | msgid "Auto punctuation" |
3764 | -msgstr "" |
3765 | +msgstr "Puntuación automática" |
3766 | |
3767 | #: ../plugins/language//PageComponent.qml:178 |
3768 | msgid "" |
3769 | @@ -80,7 +80,7 @@ |
3770 | |
3771 | #: ../plugins/language//PageComponent.qml:195 |
3772 | msgid "Keyboard vibration" |
3773 | -msgstr "" |
3774 | +msgstr "Vibración de teclado" |
3775 | |
3776 | #: ../plugins/language//KeyboardLayouts.qml:39 |
3777 | msgid "Current layouts:" |
3778 | @@ -216,13 +216,13 @@ |
3779 | #. reports are to be sent by the system. |
3780 | #: ../plugins/security-privacy//PageComponent.qml:184 |
3781 | msgid "Sent" |
3782 | -msgstr "Enviado" |
3783 | +msgstr "Enviados" |
3784 | |
3785 | #. TRANSLATORS: This string is shown when crash |
3786 | #. reports are not to be sent by the system |
3787 | #: ../plugins/security-privacy//PageComponent.qml:187 |
3788 | msgid "Not sent" |
3789 | -msgstr "No enviado" |
3790 | +msgstr "No enviados" |
3791 | |
3792 | #: ../plugins/security-privacy//PhoneLocking.qml:62 |
3793 | #: ../plugins/battery//PageComponent.qml:300 |
3794 | @@ -321,24 +321,24 @@ |
3795 | |
3796 | #: ../plugins/security-privacy//AppAccess.qml:42 |
3797 | msgid "Apps that have requested access to your camera" |
3798 | -msgstr "" |
3799 | +msgstr "Aplicaciones que solicitaron acceso a la cámara" |
3800 | |
3801 | #: ../plugins/security-privacy//AppAccess.qml:46 |
3802 | msgid "Mic" |
3803 | -msgstr "" |
3804 | +msgstr "Micrófono" |
3805 | |
3806 | #: ../plugins/security-privacy//AppAccess.qml:47 |
3807 | msgid "Apps that have requested access to your mic" |
3808 | -msgstr "" |
3809 | +msgstr "Aplicaciones que solicitaron acceso al micrófono" |
3810 | |
3811 | #: ../plugins/security-privacy//AppAccess.qml:59 |
3812 | #, qt-format |
3813 | msgid "%1/%2" |
3814 | -msgstr "" |
3815 | +msgstr "%1/%2" |
3816 | |
3817 | #: ../plugins/security-privacy//AppAccess.qml:60 |
3818 | msgid "0" |
3819 | -msgstr "" |
3820 | +msgstr "0" |
3821 | |
3822 | #: ../plugins/security-privacy//LockSecurity.qml:92 |
3823 | msgid "Change passcode" |
3824 | @@ -1079,7 +1079,7 @@ |
3825 | #: ../plugins/battery//PageComponent.qml:290 |
3826 | #: ../plugins/brightness//BrightnessSlider.qml:51 |
3827 | msgid "Display brightness" |
3828 | -msgstr "" |
3829 | +msgstr "Brillo de pantalla" |
3830 | |
3831 | #. TRANSLATORS: %1 is the number of minutes |
3832 | #: ../plugins/battery//PageComponent.qml:306 |
3833 | @@ -1212,8 +1212,8 @@ |
3834 | "Selected apps can alert you using notification bubbles, sounds, vibrations, " |
3835 | "and the Notification Center." |
3836 | msgstr "" |
3837 | -"Aplicaciones seleccionadas pueden avisarle usando burbujas de notificación, " |
3838 | -"sonidos, vibraciones y el Centro de notificaciones." |
3839 | +"Las aplicaciones seleccionadas pueden alertarle mediante notificaciones, " |
3840 | +"sonidos, vibración y el Centro de notificaciones." |
3841 | |
3842 | #: ../plugins/phone//ServiceInfo.qml:109 |
3843 | #, qt-format |
3844 | @@ -1397,7 +1397,7 @@ |
3845 | |
3846 | #: ../plugins/system-update//Configuration.qml:35 |
3847 | msgid "Download future updates automatically:" |
3848 | -msgstr "Descargar automáticamente actualizaciones futuras:" |
3849 | +msgstr "Descarga automática de actualizaciones:" |
3850 | |
3851 | #: ../plugins/system-update//Configuration.qml:54 |
3852 | msgid "When on wi-fi" |
3853 | @@ -1423,7 +1423,7 @@ |
3854 | |
3855 | #: ../plugins/brightness//PageComponent.qml:65 |
3856 | msgid "Brightens and dims the display to suit the surroundings." |
3857 | -msgstr "" |
3858 | +msgstr "Aumenta o disminuye el brillo de la pantalla según la luz ambiental." |
3859 | |
3860 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
3861 | #: ../plugins/sound//PageComponent.qml:38 |
3862 | @@ -1569,11 +1569,11 @@ |
3863 | |
3864 | #: ../wizard/qml/Pages//15-passwd.qml:37 |
3865 | msgid "Set lock security" |
3866 | -msgstr "" |
3867 | +msgstr "Establecer la seguridad de bloqueo" |
3868 | |
3869 | #: ../wizard/qml/Pages//15-passwd.qml:86 |
3870 | msgid "Swipe" |
3871 | -msgstr "" |
3872 | +msgstr "Deslizar" |
3873 | |
3874 | #: ../wizard/qml/Pages//15-passwd.qml:136 |
3875 | msgid "Those passcodes don't match." |
3876 | @@ -1895,7 +1895,7 @@ |
3877 | |
3878 | #: ../push-helper/software-updates-helper.py:78 |
3879 | msgid "There's an updated system image." |
3880 | -msgstr "" |
3881 | +msgstr "Hay una actualización de la imagen del sistema disponible." |
3882 | |
3883 | #: ../push-helper/software-updates-helper.py:79 |
3884 | msgid "Tap to open the system updater." |
3885 | |
3886 | === modified file 'po/fi.po' |
3887 | --- po/fi.po 2014-08-20 06:22:04 +0000 |
3888 | +++ po/fi.po 2014-08-26 11:38:32 +0000 |
3889 | @@ -8,14 +8,14 @@ |
3890 | "Project-Id-Version: ubuntu-system-settings\n" |
3891 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
3892 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
3893 | -"PO-Revision-Date: 2014-08-18 07:37+0000\n" |
3894 | +"PO-Revision-Date: 2014-08-22 09:53+0000\n" |
3895 | "Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\n" |
3896 | "Language-Team: Finnish <fi@li.org>\n" |
3897 | "MIME-Version: 1.0\n" |
3898 | "Content-Type: text/plain; charset=UTF-8\n" |
3899 | "Content-Transfer-Encoding: 8bit\n" |
3900 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
3901 | -"X-Launchpad-Export-Date: 2014-08-20 06:19+0000\n" |
3902 | +"X-Launchpad-Export-Date: 2014-08-23 07:15+0000\n" |
3903 | "X-Generator: Launchpad (build 17163)\n" |
3904 | |
3905 | #: ../plugins/language//SpellChecking.qml:27 |
3906 | @@ -50,7 +50,7 @@ |
3907 | |
3908 | #: ../plugins/language//PageComponent.qml:128 |
3909 | msgid "Auto correction" |
3910 | -msgstr "" |
3911 | +msgstr "Automaattinen korjaus" |
3912 | |
3913 | #: ../plugins/language//PageComponent.qml:138 |
3914 | msgid "Word suggestions" |
3915 | @@ -66,12 +66,14 @@ |
3916 | |
3917 | #: ../plugins/language//PageComponent.qml:168 |
3918 | msgid "Auto punctuation" |
3919 | -msgstr "" |
3920 | +msgstr "Automaattiset välimerkit" |
3921 | |
3922 | #: ../plugins/language//PageComponent.qml:178 |
3923 | msgid "" |
3924 | "Adds a period, and any missing quotes or brackets, when you tap Space twice." |
3925 | msgstr "" |
3926 | +"Lisää pisteen sekä puuttuvat lainausmerkit ja sulut, kun painat välilyöntiä " |
3927 | +"kahdesti." |
3928 | |
3929 | #: ../plugins/language//PageComponent.qml:185 |
3930 | #: ../plugins/sound//PageComponent.qml:186 |
3931 | @@ -80,7 +82,7 @@ |
3932 | |
3933 | #: ../plugins/language//PageComponent.qml:195 |
3934 | msgid "Keyboard vibration" |
3935 | -msgstr "" |
3936 | +msgstr "Näppäimistön värinä" |
3937 | |
3938 | #: ../plugins/language//KeyboardLayouts.qml:39 |
3939 | msgid "Current layouts:" |
3940 | @@ -148,14 +150,14 @@ |
3941 | #: ../plugins/security-privacy//PhoneLocking.qml:41 |
3942 | #: ../wizard/qml/Pages//15-passwd.qml:88 |
3943 | msgid "Passcode" |
3944 | -msgstr "Pääsykoodi" |
3945 | +msgstr "Suojakoodi" |
3946 | |
3947 | #: ../plugins/security-privacy//PageComponent.qml:80 |
3948 | #: ../plugins/security-privacy//PhoneLocking.qml:42 |
3949 | #: ../plugins/security-privacy//LockSecurity.qml:346 |
3950 | #: ../wizard/qml/Pages//15-passwd.qml:90 |
3951 | msgid "Passphrase" |
3952 | -msgstr "Avainlause" |
3953 | +msgstr "Salasana" |
3954 | |
3955 | #: ../plugins/security-privacy//PageComponent.qml:82 |
3956 | #: ../plugins/security-privacy//PhoneLocking.qml:44 |
3957 | @@ -312,7 +314,7 @@ |
3958 | |
3959 | #: ../plugins/security-privacy//AppAccess.qml:35 |
3960 | msgid "Apps that you have granted and have requested access to:" |
3961 | -msgstr "" |
3962 | +msgstr "Sovellukset, jotka ovat pyytäneet ja joille on annettu oikeudet:" |
3963 | |
3964 | #: ../plugins/security-privacy//AppAccess.qml:41 |
3965 | #: ../plugins/bluetooth//PageComponent.qml:100 |
3966 | @@ -321,32 +323,32 @@ |
3967 | |
3968 | #: ../plugins/security-privacy//AppAccess.qml:42 |
3969 | msgid "Apps that have requested access to your camera" |
3970 | -msgstr "" |
3971 | +msgstr "Sovellukset jotka ovat pyytäneet pääsyä kameraan" |
3972 | |
3973 | #: ../plugins/security-privacy//AppAccess.qml:46 |
3974 | msgid "Mic" |
3975 | -msgstr "" |
3976 | +msgstr "Mikrofoni" |
3977 | |
3978 | #: ../plugins/security-privacy//AppAccess.qml:47 |
3979 | msgid "Apps that have requested access to your mic" |
3980 | -msgstr "" |
3981 | +msgstr "Sovellukset jotka ovat pyytäneet pääsyä mikrofoniin" |
3982 | |
3983 | #: ../plugins/security-privacy//AppAccess.qml:59 |
3984 | #, qt-format |
3985 | msgid "%1/%2" |
3986 | -msgstr "" |
3987 | +msgstr "%1/%2" |
3988 | |
3989 | #: ../plugins/security-privacy//AppAccess.qml:60 |
3990 | msgid "0" |
3991 | -msgstr "" |
3992 | +msgstr "0" |
3993 | |
3994 | #: ../plugins/security-privacy//LockSecurity.qml:92 |
3995 | msgid "Change passcode" |
3996 | -msgstr "Vaihda pääsykoodi" |
3997 | +msgstr "Vaihda suojakoodi" |
3998 | |
3999 | #: ../plugins/security-privacy//LockSecurity.qml:94 |
4000 | msgid "Change passphrase" |
4001 | -msgstr "Vaihda avainlause" |
4002 | +msgstr "Vaihda salasanaa" |
4003 | |
4004 | #: ../plugins/security-privacy//LockSecurity.qml:101 |
4005 | msgid "Switch to swipe" |
4006 | @@ -354,43 +356,43 @@ |
4007 | |
4008 | #: ../plugins/security-privacy//LockSecurity.qml:103 |
4009 | msgid "Switch to passcode" |
4010 | -msgstr "Vaihda pääsykoodiin" |
4011 | +msgstr "Vaihda suojakoodiin" |
4012 | |
4013 | #: ../plugins/security-privacy//LockSecurity.qml:105 |
4014 | msgid "Switch to passphrase" |
4015 | -msgstr "Vaihda avainlauseeseen" |
4016 | +msgstr "Vaihda salasanaan" |
4017 | |
4018 | #: ../plugins/security-privacy//LockSecurity.qml:114 |
4019 | msgid "Existing passcode" |
4020 | -msgstr "Nykyinen pääsykoodi" |
4021 | +msgstr "Nykyinen suojakoodi" |
4022 | |
4023 | #: ../plugins/security-privacy//LockSecurity.qml:116 |
4024 | msgid "Existing passphrase" |
4025 | -msgstr "Nykyinen avainlause" |
4026 | +msgstr "Nykyinen salasana" |
4027 | |
4028 | #: ../plugins/security-privacy//LockSecurity.qml:170 |
4029 | msgid "Choose passcode" |
4030 | -msgstr "Valitse pääsykoodi" |
4031 | +msgstr "Valitse suojakoodi" |
4032 | |
4033 | #: ../plugins/security-privacy//LockSecurity.qml:172 |
4034 | msgid "Choose passphrase" |
4035 | -msgstr "Valitse avainlause" |
4036 | +msgstr "Valitse salasana" |
4037 | |
4038 | #: ../plugins/security-privacy//LockSecurity.qml:216 |
4039 | msgid "Confirm passcode" |
4040 | -msgstr "Vahvista pääsykoodi" |
4041 | +msgstr "Vahvista suojakoodi" |
4042 | |
4043 | #: ../plugins/security-privacy//LockSecurity.qml:218 |
4044 | msgid "Confirm passphrase" |
4045 | -msgstr "Vahvista avainlause" |
4046 | +msgstr "Vahvista salasana" |
4047 | |
4048 | #: ../plugins/security-privacy//LockSecurity.qml:261 |
4049 | msgid "Those passcodes don't match. Try again." |
4050 | -msgstr "Pääsykoodit eivät vastaa toisiaan. Yritä uudelleen." |
4051 | +msgstr "Suojakoodit eivät vastaa toisiaan. Yritä uudelleen." |
4052 | |
4053 | #: ../plugins/security-privacy//LockSecurity.qml:264 |
4054 | msgid "Those passphrases don't match. Try again." |
4055 | -msgstr "Avainlauseet eivät vastaa toisiaan. Yritä uudelleen." |
4056 | +msgstr "Salasanat eivät vastaa toisiaan. Yritä uudelleen." |
4057 | |
4058 | #: ../plugins/security-privacy//LockSecurity.qml:295 |
4059 | msgid "Unset" |
4060 | @@ -418,7 +420,7 @@ |
4061 | |
4062 | #: ../plugins/security-privacy//LockSecurity.qml:345 |
4063 | msgid "4-digit passcode" |
4064 | -msgstr "4-numeroinen pääsykoodi" |
4065 | +msgstr "4-numeroinen suojakoodi" |
4066 | |
4067 | #: ../plugins/security-privacy//LockSecurity.qml:347 |
4068 | msgid "Swipe (no security)… " |
4069 | @@ -426,19 +428,19 @@ |
4070 | |
4071 | #: ../plugins/security-privacy//LockSecurity.qml:348 |
4072 | msgid "4-digit passcode…" |
4073 | -msgstr "Nelinumeroinen pääsykoodi…" |
4074 | +msgstr "Nelinumeroinen suojakoodi…" |
4075 | |
4076 | #: ../plugins/security-privacy//LockSecurity.qml:349 |
4077 | msgid "Passphrase…" |
4078 | -msgstr "Avainlause…" |
4079 | +msgstr "Salasana…" |
4080 | |
4081 | #: ../plugins/security-privacy//LockSecurity.qml:380 |
4082 | msgid "Change passcode…" |
4083 | -msgstr "Vaihda pääsykoodi…" |
4084 | +msgstr "Vaihda suojakoodi…" |
4085 | |
4086 | #: ../plugins/security-privacy//LockSecurity.qml:381 |
4087 | msgid "Change passphrase…" |
4088 | -msgstr "Vaihda avainlause…" |
4089 | +msgstr "Vaihda salasana…" |
4090 | |
4091 | #: ../plugins/security-privacy//Dash.qml:45 |
4092 | msgid "Return results from:" |
4093 | @@ -841,7 +843,7 @@ |
4094 | |
4095 | #: ../plugins/about//DevMode.qml:98 |
4096 | msgid "You need a passcode or passphrase set to use Developer Mode." |
4097 | -msgstr "Tarvitset kehittäjätilaa varten tunnuskoodin tai salasanan." |
4098 | +msgstr "Tarvitset kehittäjätilaa varten suojakoodin tai salasanan." |
4099 | |
4100 | #: ../plugins/about//Storage.qml:87 |
4101 | msgid "Used by Ubuntu" |
4102 | @@ -1077,7 +1079,7 @@ |
4103 | #: ../plugins/battery//PageComponent.qml:290 |
4104 | #: ../plugins/brightness//BrightnessSlider.qml:51 |
4105 | msgid "Display brightness" |
4106 | -msgstr "" |
4107 | +msgstr "Näytön kirkkaus" |
4108 | |
4109 | #. TRANSLATORS: %1 is the number of minutes |
4110 | #: ../plugins/battery//PageComponent.qml:306 |
4111 | @@ -1421,7 +1423,7 @@ |
4112 | |
4113 | #: ../plugins/brightness//PageComponent.qml:65 |
4114 | msgid "Brightens and dims the display to suit the surroundings." |
4115 | -msgstr "" |
4116 | +msgstr "Näytön kirkkauden säätö ympäristöön sopivaksi" |
4117 | |
4118 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
4119 | #: ../plugins/sound//PageComponent.qml:38 |
4120 | @@ -1567,27 +1569,27 @@ |
4121 | |
4122 | #: ../wizard/qml/Pages//15-passwd.qml:37 |
4123 | msgid "Set lock security" |
4124 | -msgstr "" |
4125 | +msgstr "Aseta lukitustapa" |
4126 | |
4127 | #: ../wizard/qml/Pages//15-passwd.qml:86 |
4128 | msgid "Swipe" |
4129 | -msgstr "" |
4130 | +msgstr "Pyyhkäisy" |
4131 | |
4132 | #: ../wizard/qml/Pages//15-passwd.qml:136 |
4133 | msgid "Those passcodes don't match." |
4134 | -msgstr "" |
4135 | +msgstr "Suojakoodit eivät täsmää." |
4136 | |
4137 | #: ../wizard/qml/Pages//15-passwd.qml:138 |
4138 | msgid "Those passphrases don't match." |
4139 | -msgstr "" |
4140 | +msgstr "Salasanat eivät täsmää." |
4141 | |
4142 | #: ../wizard/qml/Pages//15-passwd.qml:146 |
4143 | msgid "Passcode must be at least four digits long." |
4144 | -msgstr "" |
4145 | +msgstr "Suojakoodin tulee olla vähintään neljä numeroa." |
4146 | |
4147 | #: ../wizard/qml/Pages//15-passwd.qml:148 |
4148 | msgid "Passphrase must be at least four characters long." |
4149 | -msgstr "" |
4150 | +msgstr "Salasanan tulee olla vähintään neljä kirjainta." |
4151 | |
4152 | #: ../wizard/qml/Pages//10-welcome.qml:25 |
4153 | msgid "Hello" |
4154 | @@ -1893,8 +1895,8 @@ |
4155 | |
4156 | #: ../push-helper/software-updates-helper.py:78 |
4157 | msgid "There's an updated system image." |
4158 | -msgstr "" |
4159 | +msgstr "Päivitetty järjestelmäversio saatavilla." |
4160 | |
4161 | #: ../push-helper/software-updates-helper.py:79 |
4162 | msgid "Tap to open the system updater." |
4163 | -msgstr "" |
4164 | +msgstr "Kosketa avataksesi järjestelmän päivityksen." |
4165 | |
4166 | === modified file 'po/fr.po' |
4167 | --- po/fr.po 2014-08-22 07:38:19 +0000 |
4168 | +++ po/fr.po 2014-08-26 11:38:32 +0000 |
4169 | @@ -8,14 +8,15 @@ |
4170 | "Project-Id-Version: ubuntu-system-settings\n" |
4171 | "Report-Msgid-Bugs-To: \n" |
4172 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
4173 | -"PO-Revision-Date: 2014-08-21 19:05+0000\n" |
4174 | -"Last-Translator: Anne <anneonyme017@gmail.com>\n" |
4175 | +"PO-Revision-Date: 2014-08-26 07:42+0000\n" |
4176 | +"Last-Translator: Jean-Baptiste Lallement <jean-" |
4177 | +"baptiste.lallement@ubuntu.com>\n" |
4178 | "Language-Team: LANGUAGE <LL@li.org>\n" |
4179 | "MIME-Version: 1.0\n" |
4180 | "Content-Type: text/plain; charset=UTF-8\n" |
4181 | "Content-Transfer-Encoding: 8bit\n" |
4182 | "Plural-Forms: nplurals=2; plural=n > 1;\n" |
4183 | -"X-Launchpad-Export-Date: 2014-08-22 07:38+0000\n" |
4184 | +"X-Launchpad-Export-Date: 2014-08-26 07:45+0000\n" |
4185 | "X-Generator: Launchpad (build 17163)\n" |
4186 | "Language: \n" |
4187 | |
4188 | @@ -75,6 +76,8 @@ |
4189 | msgid "" |
4190 | "Adds a period, and any missing quotes or brackets, when you tap Space twice." |
4191 | msgstr "" |
4192 | +"Ajoute un point, ainsi que les parenthèses ou les guillemets manquants, " |
4193 | +"lorsque vous appuyez deux fois sur Espace." |
4194 | |
4195 | #: ../plugins/language//PageComponent.qml:185 |
4196 | #: ../plugins/sound//PageComponent.qml:186 |
4197 | @@ -366,7 +369,7 @@ |
4198 | |
4199 | #: ../plugins/security-privacy//LockSecurity.qml:105 |
4200 | msgid "Switch to passphrase" |
4201 | -msgstr "Passer en verrouillage par phrase secrète" |
4202 | +msgstr "Verrouiller par phrase secrète" |
4203 | |
4204 | #: ../plugins/security-privacy//LockSecurity.qml:114 |
4205 | msgid "Existing passcode" |
4206 | @@ -1587,7 +1590,7 @@ |
4207 | |
4208 | #: ../wizard/qml/Pages//15-passwd.qml:86 |
4209 | msgid "Swipe" |
4210 | -msgstr "" |
4211 | +msgstr "Glissement" |
4212 | |
4213 | #: ../wizard/qml/Pages//15-passwd.qml:136 |
4214 | msgid "Those passcodes don't match." |
4215 | |
4216 | === modified file 'po/gl.po' |
4217 | --- po/gl.po 2014-08-22 07:38:19 +0000 |
4218 | +++ po/gl.po 2014-08-26 11:38:32 +0000 |
4219 | @@ -8,14 +8,14 @@ |
4220 | "Project-Id-Version: ubuntu-system-settings\n" |
4221 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
4222 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
4223 | -"PO-Revision-Date: 2014-08-21 14:17+0000\n" |
4224 | +"PO-Revision-Date: 2014-08-23 20:46+0000\n" |
4225 | "Last-Translator: Marcos Lans <Unknown>\n" |
4226 | "Language-Team: Galician <gl@li.org>\n" |
4227 | "MIME-Version: 1.0\n" |
4228 | "Content-Type: text/plain; charset=UTF-8\n" |
4229 | "Content-Transfer-Encoding: 8bit\n" |
4230 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
4231 | -"X-Launchpad-Export-Date: 2014-08-22 07:38+0000\n" |
4232 | +"X-Launchpad-Export-Date: 2014-08-24 06:45+0000\n" |
4233 | "X-Generator: Launchpad (build 17163)\n" |
4234 | "Language: Galician\n" |
4235 | |
4236 | @@ -132,7 +132,7 @@ |
4237 | #: ../plugins/security-privacy//PageComponent.qml:151 |
4238 | #: ../plugins/security-privacy//Dash.qml:46 |
4239 | msgid "Phone only" |
4240 | -msgstr "Existente no teléfono" |
4241 | +msgstr "Só do teléfono" |
4242 | |
4243 | #: ../plugins/security-privacy//PageComponent.qml:71 |
4244 | msgid "Security:" |
4245 | @@ -846,8 +846,8 @@ |
4246 | #: ../plugins/about//DevMode.qml:98 |
4247 | msgid "You need a passcode or passphrase set to use Developer Mode." |
4248 | msgstr "" |
4249 | -"Precisa estabelecer unha clave ou frase secreta para usar o Modo " |
4250 | -"Desenvolvedor" |
4251 | +"Precisa estabelecer unha clave ou unha frase secreta para usar o Modo " |
4252 | +"Desenvolvedor." |
4253 | |
4254 | #: ../plugins/about//Storage.qml:87 |
4255 | msgid "Used by Ubuntu" |
4256 | @@ -1586,7 +1586,7 @@ |
4257 | |
4258 | #: ../wizard/qml/Pages//15-passwd.qml:138 |
4259 | msgid "Those passphrases don't match." |
4260 | -msgstr "As frases de paso non coinciden." |
4261 | +msgstr "As frases secretas non coinciden." |
4262 | |
4263 | #: ../wizard/qml/Pages//15-passwd.qml:146 |
4264 | msgid "Passcode must be at least four digits long." |
4265 | @@ -1594,7 +1594,7 @@ |
4266 | |
4267 | #: ../wizard/qml/Pages//15-passwd.qml:148 |
4268 | msgid "Passphrase must be at least four characters long." |
4269 | -msgstr "A frase de paso debe ter 4 caracteres como mínimo." |
4270 | +msgstr "A frase secreta debe ter 4 caracteres como mínimo." |
4271 | |
4272 | #: ../wizard/qml/Pages//10-welcome.qml:25 |
4273 | msgid "Hello" |
4274 | |
4275 | === modified file 'po/he.po' |
4276 | --- po/he.po 2014-08-20 06:22:04 +0000 |
4277 | +++ po/he.po 2014-08-26 11:38:32 +0000 |
4278 | @@ -8,14 +8,14 @@ |
4279 | "Project-Id-Version: ubuntu-system-settings\n" |
4280 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
4281 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
4282 | -"PO-Revision-Date: 2014-07-30 13:16+0000\n" |
4283 | +"PO-Revision-Date: 2014-08-25 11:33+0000\n" |
4284 | "Last-Translator: Yaron <sh.yaron@gmail.com>\n" |
4285 | "Language-Team: Hebrew <he@li.org>\n" |
4286 | "MIME-Version: 1.0\n" |
4287 | "Content-Type: text/plain; charset=UTF-8\n" |
4288 | "Content-Transfer-Encoding: 8bit\n" |
4289 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
4290 | -"X-Launchpad-Export-Date: 2014-08-20 06:19+0000\n" |
4291 | +"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n" |
4292 | "X-Generator: Launchpad (build 17163)\n" |
4293 | |
4294 | #: ../plugins/language//SpellChecking.qml:27 |
4295 | @@ -50,7 +50,7 @@ |
4296 | |
4297 | #: ../plugins/language//PageComponent.qml:128 |
4298 | msgid "Auto correction" |
4299 | -msgstr "" |
4300 | +msgstr "תיקון אוטומטי" |
4301 | |
4302 | #: ../plugins/language//PageComponent.qml:138 |
4303 | msgid "Word suggestions" |
4304 | @@ -66,12 +66,12 @@ |
4305 | |
4306 | #: ../plugins/language//PageComponent.qml:168 |
4307 | msgid "Auto punctuation" |
4308 | -msgstr "" |
4309 | +msgstr "פיסוק אוטומטי" |
4310 | |
4311 | #: ../plugins/language//PageComponent.qml:178 |
4312 | msgid "" |
4313 | "Adds a period, and any missing quotes or brackets, when you tap Space twice." |
4314 | -msgstr "" |
4315 | +msgstr "הוספת נקודה וכל מרכאות או סוגריים חסרים בעת נגיעה כפולה ברווח." |
4316 | |
4317 | #: ../plugins/language//PageComponent.qml:185 |
4318 | #: ../plugins/sound//PageComponent.qml:186 |
4319 | @@ -80,7 +80,7 @@ |
4320 | |
4321 | #: ../plugins/language//PageComponent.qml:195 |
4322 | msgid "Keyboard vibration" |
4323 | -msgstr "" |
4324 | +msgstr "רטט מקלדת" |
4325 | |
4326 | #: ../plugins/language//KeyboardLayouts.qml:39 |
4327 | msgid "Current layouts:" |
4328 | @@ -310,7 +310,7 @@ |
4329 | |
4330 | #: ../plugins/security-privacy//AppAccess.qml:35 |
4331 | msgid "Apps that you have granted and have requested access to:" |
4332 | -msgstr "" |
4333 | +msgstr "יישומים שאישרת וביקשו לגשת אל:" |
4334 | |
4335 | #: ../plugins/security-privacy//AppAccess.qml:41 |
4336 | #: ../plugins/bluetooth//PageComponent.qml:100 |
4337 | @@ -319,24 +319,24 @@ |
4338 | |
4339 | #: ../plugins/security-privacy//AppAccess.qml:42 |
4340 | msgid "Apps that have requested access to your camera" |
4341 | -msgstr "" |
4342 | +msgstr "יישומים שביקשו לגשת למצלמה שלך" |
4343 | |
4344 | #: ../plugins/security-privacy//AppAccess.qml:46 |
4345 | msgid "Mic" |
4346 | -msgstr "" |
4347 | +msgstr "מיקרופון" |
4348 | |
4349 | #: ../plugins/security-privacy//AppAccess.qml:47 |
4350 | msgid "Apps that have requested access to your mic" |
4351 | -msgstr "" |
4352 | +msgstr "יישומים שביקשו לגשת למצלמה שלך" |
4353 | |
4354 | #: ../plugins/security-privacy//AppAccess.qml:59 |
4355 | #, qt-format |
4356 | msgid "%1/%2" |
4357 | -msgstr "" |
4358 | +msgstr "%1/%2" |
4359 | |
4360 | #: ../plugins/security-privacy//AppAccess.qml:60 |
4361 | msgid "0" |
4362 | -msgstr "" |
4363 | +msgstr "0" |
4364 | |
4365 | #: ../plugins/security-privacy//LockSecurity.qml:92 |
4366 | msgid "Change passcode" |
4367 | @@ -550,19 +550,19 @@ |
4368 | |
4369 | #: ../plugins/bluetooth//PageComponent.qml:78 |
4370 | msgid "Connecting…" |
4371 | -msgstr "" |
4372 | +msgstr "בהתחברות…" |
4373 | |
4374 | #: ../plugins/bluetooth//PageComponent.qml:79 |
4375 | msgid "Disconnecting…" |
4376 | -msgstr "" |
4377 | +msgstr "מתבצע ניתוק…" |
4378 | |
4379 | #: ../plugins/bluetooth//PageComponent.qml:80 |
4380 | msgid "Disconnected" |
4381 | -msgstr "" |
4382 | +msgstr "מנותק" |
4383 | |
4384 | #: ../plugins/bluetooth//PageComponent.qml:81 |
4385 | msgid "Unknown" |
4386 | -msgstr "" |
4387 | +msgstr "לא ידוע" |
4388 | |
4389 | #: ../plugins/bluetooth//PageComponent.qml:87 |
4390 | msgid "Computer" |
4391 | @@ -665,7 +665,7 @@ |
4392 | |
4393 | #: ../plugins/bluetooth//PageComponent.qml:236 |
4394 | msgid "Connect a device:" |
4395 | -msgstr "" |
4396 | +msgstr "חיבור התקן:" |
4397 | |
4398 | #: ../plugins/bluetooth//PageComponent.qml:266 |
4399 | msgid "None detected" |
4400 | @@ -674,7 +674,7 @@ |
4401 | #: ../plugins/bluetooth//PageComponent.qml:274 |
4402 | #: ../plugins/bluetooth//PageComponent.qml:360 |
4403 | msgid "Connect automatically when detected:" |
4404 | -msgstr "" |
4405 | +msgstr "חיבור אוטומטי בעת הזיהוי:" |
4406 | |
4407 | #: ../plugins/bluetooth//PageComponent.qml:309 |
4408 | #: ../plugins/wifi//NetworkDetails.qml:43 |
4409 | @@ -687,7 +687,7 @@ |
4410 | |
4411 | #: ../plugins/bluetooth//PageComponent.qml:351 |
4412 | msgid "Status" |
4413 | -msgstr "" |
4414 | +msgstr "מצב" |
4415 | |
4416 | #: ../plugins/bluetooth//PageComponent.qml:355 |
4417 | msgid "Signal Strength" |
4418 | @@ -704,7 +704,7 @@ |
4419 | |
4420 | #: ../plugins/bluetooth//PageComponent.qml:392 |
4421 | msgid "Forget this device" |
4422 | -msgstr "" |
4423 | +msgstr "התעלמות מהתקן זה" |
4424 | |
4425 | #: ../plugins/bluetooth//ProvidePinCodeDialog.qml:28 |
4426 | #: ../plugins/bluetooth//ConfirmPasskeyDialog.qml:28 |
4427 | @@ -977,7 +977,7 @@ |
4428 | |
4429 | #: ../plugins/reset//ResetLauncherHome.qml:59 |
4430 | msgid "The phone needs to restart for changes to take effect." |
4431 | -msgstr "" |
4432 | +msgstr "על הטלפון להפעיל עצמו מחדש כדי שהשינויים יכנסו לתוקף." |
4433 | |
4434 | #: ../plugins/reset//EraseEverything.qml:41 |
4435 | msgid "" |
4436 | @@ -987,7 +987,7 @@ |
4437 | |
4438 | #: ../plugins/reset//EraseEverything.qml:44 |
4439 | msgid "Erase & Reset Everything" |
4440 | -msgstr "" |
4441 | +msgstr "מחיקה ואיפוס של הכול" |
4442 | |
4443 | #. TRANSLATORS: This is a keyword or name for the battery plugin which is used while searching |
4444 | #: ../plugins/battery//PageComponent.qml:34 |
4445 | @@ -1066,7 +1066,7 @@ |
4446 | #: ../plugins/battery//PageComponent.qml:290 |
4447 | #: ../plugins/brightness//BrightnessSlider.qml:51 |
4448 | msgid "Display brightness" |
4449 | -msgstr "" |
4450 | +msgstr "בהירות התצוגה" |
4451 | |
4452 | #. TRANSLATORS: %1 is the number of minutes |
4453 | #: ../plugins/battery//PageComponent.qml:306 |
4454 | @@ -1192,7 +1192,7 @@ |
4455 | #: ../plugins/notifications//PageComponent.qml:29 |
4456 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:96 |
4457 | msgid "Notifications" |
4458 | -msgstr "" |
4459 | +msgstr "התרעות" |
4460 | |
4461 | #: ../plugins/notifications//PageComponent.qml:40 |
4462 | msgid "" |
4463 | @@ -1549,11 +1549,11 @@ |
4464 | |
4465 | #: ../wizard/qml/Pages//15-passwd.qml:37 |
4466 | msgid "Set lock security" |
4467 | -msgstr "" |
4468 | +msgstr "הגדרת הגנת נעילה" |
4469 | |
4470 | #: ../wizard/qml/Pages//15-passwd.qml:86 |
4471 | msgid "Swipe" |
4472 | -msgstr "" |
4473 | +msgstr "החלקה" |
4474 | |
4475 | #: ../wizard/qml/Pages//15-passwd.qml:136 |
4476 | msgid "Those passcodes don't match." |
4477 | @@ -1781,7 +1781,7 @@ |
4478 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
4479 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:100 |
4480 | msgid "notifications" |
4481 | -msgstr "" |
4482 | +msgstr "התרעות" |
4483 | |
4484 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching |
4485 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:106 |
4486 | @@ -1875,7 +1875,7 @@ |
4487 | |
4488 | #: ../push-helper/software-updates-helper.py:78 |
4489 | msgid "There's an updated system image." |
4490 | -msgstr "" |
4491 | +msgstr "קיימת תמונת מערכת עדכנית יותר." |
4492 | |
4493 | #: ../push-helper/software-updates-helper.py:79 |
4494 | msgid "Tap to open the system updater." |
4495 | |
4496 | === modified file 'po/hu.po' |
4497 | --- po/hu.po 2014-08-22 07:38:19 +0000 |
4498 | +++ po/hu.po 2014-08-26 11:38:32 +0000 |
4499 | @@ -8,14 +8,14 @@ |
4500 | "Project-Id-Version: ubuntu-system-settings\n" |
4501 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
4502 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
4503 | -"PO-Revision-Date: 2014-08-21 19:21+0000\n" |
4504 | +"PO-Revision-Date: 2014-08-25 08:27+0000\n" |
4505 | "Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n" |
4506 | "Language-Team: Hungarian <hu@li.org>\n" |
4507 | "MIME-Version: 1.0\n" |
4508 | "Content-Type: text/plain; charset=UTF-8\n" |
4509 | "Content-Transfer-Encoding: 8bit\n" |
4510 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
4511 | -"X-Launchpad-Export-Date: 2014-08-22 07:38+0000\n" |
4512 | +"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n" |
4513 | "X-Generator: Launchpad (build 17163)\n" |
4514 | |
4515 | #: ../plugins/language//SpellChecking.qml:27 |
4516 | @@ -41,7 +41,7 @@ |
4517 | |
4518 | #: ../plugins/language//PageComponent.qml:79 |
4519 | msgid "Display language…" |
4520 | -msgstr "Megjelenítési nyelv…" |
4521 | +msgstr "Megjelenítés nyelve" |
4522 | |
4523 | #: ../plugins/language//PageComponent.qml:93 |
4524 | #: ../plugins/language//KeyboardLayouts.qml:26 |
4525 | @@ -72,7 +72,7 @@ |
4526 | msgid "" |
4527 | "Adds a period, and any missing quotes or brackets, when you tap Space twice." |
4528 | msgstr "" |
4529 | -"Új mondatot kezd és hozzáad minden hiányzó idézőjelet vagy zárójelet ha " |
4530 | +"Új mondatot kezd és hozzáad minden hiányzó idézőjelet vagy zárójelet, ha " |
4531 | "megérinti kétszer a Szóközt." |
4532 | |
4533 | #: ../plugins/language//PageComponent.qml:185 |
4534 | @@ -208,7 +208,7 @@ |
4535 | #: ../plugins/security-privacy//PageComponent.qml:174 |
4536 | #: ../plugins/security-privacy//AppAccess.qml:28 |
4537 | msgid "Other app access" |
4538 | -msgstr "Egyéb alkalmazás hozzáférés" |
4539 | +msgstr "Egyéb alkalmazás hozzáférések" |
4540 | |
4541 | #: ../plugins/security-privacy//PageComponent.qml:179 |
4542 | msgid "Diagnostics" |
4543 | @@ -408,7 +408,7 @@ |
4544 | #: ../plugins/background//Preview.qml:104 |
4545 | #: ../plugins/phone//CallForwarding.qml:148 |
4546 | msgid "Set" |
4547 | -msgstr "Beállít" |
4548 | +msgstr "Beállítás" |
4549 | |
4550 | #: ../plugins/security-privacy//LockSecurity.qml:340 |
4551 | msgid "Unlock the phone using:" |
4552 | @@ -424,23 +424,23 @@ |
4553 | |
4554 | #: ../plugins/security-privacy//LockSecurity.qml:347 |
4555 | msgid "Swipe (no security)… " |
4556 | -msgstr "Csúsztatás (nincs zárolás)… " |
4557 | +msgstr "Csúsztatás (nincs zárolás) " |
4558 | |
4559 | #: ../plugins/security-privacy//LockSecurity.qml:348 |
4560 | msgid "4-digit passcode…" |
4561 | -msgstr "4 jegyű jelkód…" |
4562 | +msgstr "4 jegyű jelkód" |
4563 | |
4564 | #: ../plugins/security-privacy//LockSecurity.qml:349 |
4565 | msgid "Passphrase…" |
4566 | -msgstr "Jelmondat…" |
4567 | +msgstr "Jelmondat" |
4568 | |
4569 | #: ../plugins/security-privacy//LockSecurity.qml:380 |
4570 | msgid "Change passcode…" |
4571 | -msgstr "Jelkód módosítása…" |
4572 | +msgstr "Jelkód módosítása" |
4573 | |
4574 | #: ../plugins/security-privacy//LockSecurity.qml:381 |
4575 | msgid "Change passphrase…" |
4576 | -msgstr "Jelmondat módosítása…" |
4577 | +msgstr "Jelmondat módosítása" |
4578 | |
4579 | #: ../plugins/security-privacy//Dash.qml:45 |
4580 | msgid "Return results from:" |
4581 | @@ -535,7 +535,7 @@ |
4582 | |
4583 | #: ../plugins/cellular//Hotspot.qml:65 |
4584 | msgid "Set up hotspot" |
4585 | -msgstr "Hotspot felállítása" |
4586 | +msgstr "Hotspot beállítása" |
4587 | |
4588 | #: ../plugins/cellular//HotspotSetup.qml:29 |
4589 | msgid "Change hotspot setup" |
4590 | @@ -846,7 +846,8 @@ |
4591 | #: ../plugins/about//DevMode.qml:98 |
4592 | msgid "You need a passcode or passphrase set to use Developer Mode." |
4593 | msgstr "" |
4594 | -"A Fejlesztői mód használatához egy jelkódra vagy jelmondatra van szüksége." |
4595 | +"A Fejlesztői mód használatához be kell állítani egy jelkódot vagy " |
4596 | +"jelmondatot." |
4597 | |
4598 | #: ../plugins/about//Storage.qml:87 |
4599 | msgid "Used by Ubuntu" |
4600 | @@ -979,11 +980,11 @@ |
4601 | |
4602 | #: ../plugins/reset//PageComponent.qml:87 |
4603 | msgid "Reset all system settings…" |
4604 | -msgstr "Minden rendszerbeállítás visszaállítása…" |
4605 | +msgstr "Minden rendszerbeállítás visszaállítása" |
4606 | |
4607 | #: ../plugins/reset//PageComponent.qml:101 |
4608 | msgid "Erase & Reset Everything…" |
4609 | -msgstr "Minden visszaállítása és törlése…" |
4610 | +msgstr "Minden visszaállítása és törlése" |
4611 | |
4612 | #: ../plugins/reset//ResetLauncherHome.qml:40 |
4613 | msgid "The Launcher will be returned to its original contents." |
4614 | @@ -1115,11 +1116,11 @@ |
4615 | |
4616 | #: ../plugins/battery//SleepValues.qml:74 |
4617 | msgid "Lock the phone when it's not in use:" |
4618 | -msgstr "Telefon zárolása, ha nem aktív:" |
4619 | +msgstr "Telefon zárolása, ha nincs használatban:" |
4620 | |
4621 | #: ../plugins/battery//SleepValues.qml:74 |
4622 | msgid "Put the phone to sleep when it is not in use:" |
4623 | -msgstr "Altassa el a telefont ha nem aktív:" |
4624 | +msgstr "Telefon altatása, ha nincs használatban:" |
4625 | |
4626 | #: ../plugins/battery//SleepValues.qml:107 |
4627 | msgid "" |
4628 | @@ -1140,7 +1141,7 @@ |
4629 | |
4630 | #: ../plugins/wifi//PageComponent.qml:120 ../plugins/wifi//OtherNetwork.qml:27 |
4631 | msgid "Other network" |
4632 | -msgstr "Más hálózat" |
4633 | +msgstr "Egyéb hálózat" |
4634 | |
4635 | #: ../plugins/wifi//NetworkDetails.qml:36 |
4636 | msgid "Network details" |
4637 | @@ -1515,7 +1516,7 @@ |
4638 | |
4639 | #: ../wizard/qml/Pages//no-sim.qml:57 |
4640 | msgid "To use the telephone and SMS features a SIM must be installed." |
4641 | -msgstr "A telefonáláshoz vagy az SMS funkciókhoz szükséges egy SIM kártya." |
4642 | +msgstr "A telefonáláshoz és az SMS funkciókhoz szükséges egy SIM kártya." |
4643 | |
4644 | #: ../wizard/qml/Pages//no-sim.qml:59 |
4645 | msgid "Install a SIM before continuing." |
4646 | @@ -1534,7 +1535,7 @@ |
4647 | "Your phone is set up to automatically report errors to Canonical. This can " |
4648 | "be disabled in system settings." |
4649 | msgstr "" |
4650 | -"A telefonja automatikusan hibajelentéseket küld a Canonical-nak. Ezt a " |
4651 | +"A telefonja automatikusan hibajelentéseket küld a Canonical felé. Ezt a " |
4652 | "rendszerbeállításokban kikapcsolhatja." |
4653 | |
4654 | #: ../wizard/qml/Pages//30-location.qml:41 |
4655 | |
4656 | === modified file 'po/pt.po' |
4657 | --- po/pt.po 2014-08-20 06:22:04 +0000 |
4658 | +++ po/pt.po 2014-08-26 11:38:32 +0000 |
4659 | @@ -8,14 +8,14 @@ |
4660 | "Project-Id-Version: ubuntu-system-settings\n" |
4661 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
4662 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
4663 | -"PO-Revision-Date: 2014-08-13 00:03+0000\n" |
4664 | +"PO-Revision-Date: 2014-08-25 16:45+0000\n" |
4665 | "Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n" |
4666 | "Language-Team: Portuguese <pt@li.org>\n" |
4667 | "MIME-Version: 1.0\n" |
4668 | "Content-Type: text/plain; charset=UTF-8\n" |
4669 | "Content-Transfer-Encoding: 8bit\n" |
4670 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
4671 | -"X-Launchpad-Export-Date: 2014-08-20 06:20+0000\n" |
4672 | +"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n" |
4673 | "X-Generator: Launchpad (build 17163)\n" |
4674 | |
4675 | #: ../plugins/language//SpellChecking.qml:27 |
4676 | @@ -50,7 +50,7 @@ |
4677 | |
4678 | #: ../plugins/language//PageComponent.qml:128 |
4679 | msgid "Auto correction" |
4680 | -msgstr "" |
4681 | +msgstr "Correção automática" |
4682 | |
4683 | #: ../plugins/language//PageComponent.qml:138 |
4684 | msgid "Word suggestions" |
4685 | @@ -66,7 +66,7 @@ |
4686 | |
4687 | #: ../plugins/language//PageComponent.qml:168 |
4688 | msgid "Auto punctuation" |
4689 | -msgstr "" |
4690 | +msgstr "Pontuação automática" |
4691 | |
4692 | #: ../plugins/language//PageComponent.qml:178 |
4693 | msgid "" |
4694 | @@ -80,7 +80,7 @@ |
4695 | |
4696 | #: ../plugins/language//PageComponent.qml:195 |
4697 | msgid "Keyboard vibration" |
4698 | -msgstr "" |
4699 | +msgstr "Vibração do teclado" |
4700 | |
4701 | #: ../plugins/language//KeyboardLayouts.qml:39 |
4702 | msgid "Current layouts:" |
4703 | @@ -311,7 +311,7 @@ |
4704 | |
4705 | #: ../plugins/security-privacy//AppAccess.qml:35 |
4706 | msgid "Apps that you have granted and have requested access to:" |
4707 | -msgstr "" |
4708 | +msgstr "Aplicações que garantiu acesso a:" |
4709 | |
4710 | #: ../plugins/security-privacy//AppAccess.qml:41 |
4711 | #: ../plugins/bluetooth//PageComponent.qml:100 |
4712 | @@ -320,24 +320,24 @@ |
4713 | |
4714 | #: ../plugins/security-privacy//AppAccess.qml:42 |
4715 | msgid "Apps that have requested access to your camera" |
4716 | -msgstr "" |
4717 | +msgstr "Aplicações que requesitaram acesso à câmara" |
4718 | |
4719 | #: ../plugins/security-privacy//AppAccess.qml:46 |
4720 | msgid "Mic" |
4721 | -msgstr "" |
4722 | +msgstr "Mic" |
4723 | |
4724 | #: ../plugins/security-privacy//AppAccess.qml:47 |
4725 | msgid "Apps that have requested access to your mic" |
4726 | -msgstr "" |
4727 | +msgstr "Aplicações que requesitaram acesso ao mic" |
4728 | |
4729 | #: ../plugins/security-privacy//AppAccess.qml:59 |
4730 | #, qt-format |
4731 | msgid "%1/%2" |
4732 | -msgstr "" |
4733 | +msgstr "%1/%2" |
4734 | |
4735 | #: ../plugins/security-privacy//AppAccess.qml:60 |
4736 | msgid "0" |
4737 | -msgstr "" |
4738 | +msgstr "0" |
4739 | |
4740 | #: ../plugins/security-privacy//LockSecurity.qml:92 |
4741 | msgid "Change passcode" |
4742 | @@ -1079,7 +1079,7 @@ |
4743 | #: ../plugins/battery//PageComponent.qml:290 |
4744 | #: ../plugins/brightness//BrightnessSlider.qml:51 |
4745 | msgid "Display brightness" |
4746 | -msgstr "" |
4747 | +msgstr "Brilho do ecrã" |
4748 | |
4749 | #. TRANSLATORS: %1 is the number of minutes |
4750 | #: ../plugins/battery//PageComponent.qml:306 |
4751 | @@ -1575,7 +1575,7 @@ |
4752 | |
4753 | #: ../wizard/qml/Pages//15-passwd.qml:86 |
4754 | msgid "Swipe" |
4755 | -msgstr "" |
4756 | +msgstr "Deslize" |
4757 | |
4758 | #: ../wizard/qml/Pages//15-passwd.qml:136 |
4759 | msgid "Those passcodes don't match." |
4760 | @@ -1587,7 +1587,7 @@ |
4761 | |
4762 | #: ../wizard/qml/Pages//15-passwd.qml:146 |
4763 | msgid "Passcode must be at least four digits long." |
4764 | -msgstr "" |
4765 | +msgstr "A senha deve ter no mínimo 4 dígitos." |
4766 | |
4767 | #: ../wizard/qml/Pages//15-passwd.qml:148 |
4768 | msgid "Passphrase must be at least four characters long." |
4769 | @@ -1897,8 +1897,8 @@ |
4770 | |
4771 | #: ../push-helper/software-updates-helper.py:78 |
4772 | msgid "There's an updated system image." |
4773 | -msgstr "" |
4774 | +msgstr "Há uma nova imagem de sistema." |
4775 | |
4776 | #: ../push-helper/software-updates-helper.py:79 |
4777 | msgid "Tap to open the system updater." |
4778 | -msgstr "" |
4779 | +msgstr "Carregue para abrir o atualizador de sistema." |
4780 | |
4781 | === modified file 'po/ro.po' |
4782 | --- po/ro.po 2014-08-20 06:22:04 +0000 |
4783 | +++ po/ro.po 2014-08-26 11:38:32 +0000 |
4784 | @@ -8,15 +8,15 @@ |
4785 | "Project-Id-Version: ubuntu-system-settings\n" |
4786 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
4787 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
4788 | -"PO-Revision-Date: 2014-08-12 14:39+0000\n" |
4789 | -"Last-Translator: Marian Vasile <marianvasile1972@gmail.com>\n" |
4790 | +"PO-Revision-Date: 2014-08-24 16:50+0000\n" |
4791 | +"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n" |
4792 | "Language-Team: Romanian <ro@li.org>\n" |
4793 | "MIME-Version: 1.0\n" |
4794 | "Content-Type: text/plain; charset=UTF-8\n" |
4795 | "Content-Transfer-Encoding: 8bit\n" |
4796 | "Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 " |
4797 | "== 0) && (n != 0))) ? 2: 1));\n" |
4798 | -"X-Launchpad-Export-Date: 2014-08-20 06:20+0000\n" |
4799 | +"X-Launchpad-Export-Date: 2014-08-25 08:05+0000\n" |
4800 | "X-Generator: Launchpad (build 17163)\n" |
4801 | |
4802 | #: ../plugins/language//SpellChecking.qml:27 |
4803 | @@ -51,7 +51,7 @@ |
4804 | |
4805 | #: ../plugins/language//PageComponent.qml:128 |
4806 | msgid "Auto correction" |
4807 | -msgstr "" |
4808 | +msgstr "Corecție automată" |
4809 | |
4810 | #: ../plugins/language//PageComponent.qml:138 |
4811 | msgid "Word suggestions" |
4812 | @@ -68,12 +68,14 @@ |
4813 | |
4814 | #: ../plugins/language//PageComponent.qml:168 |
4815 | msgid "Auto punctuation" |
4816 | -msgstr "" |
4817 | +msgstr "Punctuație automată" |
4818 | |
4819 | #: ../plugins/language//PageComponent.qml:178 |
4820 | msgid "" |
4821 | "Adds a period, and any missing quotes or brackets, when you tap Space twice." |
4822 | msgstr "" |
4823 | +"Adăugați o perioadă, și orice citate lipsă sau paranteze, atunci când " |
4824 | +"atingeți Spațiu de două ori." |
4825 | |
4826 | #: ../plugins/language//PageComponent.qml:185 |
4827 | #: ../plugins/sound//PageComponent.qml:186 |
4828 | @@ -82,7 +84,7 @@ |
4829 | |
4830 | #: ../plugins/language//PageComponent.qml:195 |
4831 | msgid "Keyboard vibration" |
4832 | -msgstr "" |
4833 | +msgstr "Vibrație tastatură" |
4834 | |
4835 | #: ../plugins/language//KeyboardLayouts.qml:39 |
4836 | msgid "Current layouts:" |
4837 | @@ -326,24 +328,24 @@ |
4838 | |
4839 | #: ../plugins/security-privacy//AppAccess.qml:42 |
4840 | msgid "Apps that have requested access to your camera" |
4841 | -msgstr "" |
4842 | +msgstr "Aplicații care au solicitat accesul la camera dumneavostră" |
4843 | |
4844 | #: ../plugins/security-privacy//AppAccess.qml:46 |
4845 | msgid "Mic" |
4846 | -msgstr "" |
4847 | +msgstr "Microfon" |
4848 | |
4849 | #: ../plugins/security-privacy//AppAccess.qml:47 |
4850 | msgid "Apps that have requested access to your mic" |
4851 | -msgstr "" |
4852 | +msgstr "Aplicații care au solicitat accesul la microfonul dumneavoastră" |
4853 | |
4854 | #: ../plugins/security-privacy//AppAccess.qml:59 |
4855 | #, qt-format |
4856 | msgid "%1/%2" |
4857 | -msgstr "" |
4858 | +msgstr "%1/%2" |
4859 | |
4860 | #: ../plugins/security-privacy//AppAccess.qml:60 |
4861 | msgid "0" |
4862 | -msgstr "" |
4863 | +msgstr "0" |
4864 | |
4865 | #: ../plugins/security-privacy//LockSecurity.qml:92 |
4866 | msgid "Change passcode" |
4867 | @@ -1090,7 +1092,7 @@ |
4868 | #: ../plugins/battery//PageComponent.qml:290 |
4869 | #: ../plugins/brightness//BrightnessSlider.qml:51 |
4870 | msgid "Display brightness" |
4871 | -msgstr "" |
4872 | +msgstr "Luminozitate afișaj" |
4873 | |
4874 | #. TRANSLATORS: %1 is the number of minutes |
4875 | #: ../plugins/battery//PageComponent.qml:306 |
4876 | @@ -1594,11 +1596,11 @@ |
4877 | |
4878 | #: ../wizard/qml/Pages//15-passwd.qml:136 |
4879 | msgid "Those passcodes don't match." |
4880 | -msgstr "" |
4881 | +msgstr "Aceste coduri de acces nu se potrivesc." |
4882 | |
4883 | #: ../wizard/qml/Pages//15-passwd.qml:138 |
4884 | msgid "Those passphrases don't match." |
4885 | -msgstr "" |
4886 | +msgstr "Aceste fraze secrete nu se potrivesc." |
4887 | |
4888 | #: ../wizard/qml/Pages//15-passwd.qml:146 |
4889 | msgid "Passcode must be at least four digits long." |
4890 | @@ -1912,8 +1914,8 @@ |
4891 | |
4892 | #: ../push-helper/software-updates-helper.py:78 |
4893 | msgid "There's an updated system image." |
4894 | -msgstr "" |
4895 | +msgstr "Există o imagine de sistem actualizată." |
4896 | |
4897 | #: ../push-helper/software-updates-helper.py:79 |
4898 | msgid "Tap to open the system updater." |
4899 | -msgstr "" |
4900 | +msgstr "Atingeți pentru a deschide programul de actualizare a sistemului." |
4901 | |
4902 | === modified file 'po/ru.po' |
4903 | --- po/ru.po 2014-08-20 06:22:04 +0000 |
4904 | +++ po/ru.po 2014-08-26 11:38:32 +0000 |
4905 | @@ -8,15 +8,15 @@ |
4906 | "Project-Id-Version: ubuntu-system-settings\n" |
4907 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
4908 | "POT-Creation-Date: 2014-08-15 19:11-0600\n" |
4909 | -"PO-Revision-Date: 2014-08-12 11:23+0000\n" |
4910 | -"Last-Translator: Ilya Barilo <mail@sourcelocalizer.ru>\n" |
4911 | +"PO-Revision-Date: 2014-08-26 07:16+0000\n" |
4912 | +"Last-Translator: Jay ZDLin <Unknown>\n" |
4913 | "Language-Team: Russian <ru@li.org>\n" |
4914 | "MIME-Version: 1.0\n" |
4915 | "Content-Type: text/plain; charset=UTF-8\n" |
4916 | "Content-Transfer-Encoding: 8bit\n" |
4917 | "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " |
4918 | "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" |
4919 | -"X-Launchpad-Export-Date: 2014-08-20 06:21+0000\n" |
4920 | +"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n" |
4921 | "X-Generator: Launchpad (build 17163)\n" |
4922 | |
4923 | #: ../plugins/language//SpellChecking.qml:27 |
4924 | @@ -51,7 +51,7 @@ |
4925 | |
4926 | #: ../plugins/language//PageComponent.qml:128 |
4927 | msgid "Auto correction" |
4928 | -msgstr "" |
4929 | +msgstr "Автоисправление" |
4930 | |
4931 | #: ../plugins/language//PageComponent.qml:138 |
4932 | msgid "Word suggestions" |
4933 | @@ -68,12 +68,14 @@ |
4934 | |
4935 | #: ../plugins/language//PageComponent.qml:168 |
4936 | msgid "Auto punctuation" |
4937 | -msgstr "" |
4938 | +msgstr "Пунктуация (автоматически)" |
4939 | |
4940 | #: ../plugins/language//PageComponent.qml:178 |
4941 | msgid "" |
4942 | "Adds a period, and any missing quotes or brackets, when you tap Space twice." |
4943 | msgstr "" |
4944 | +"Добавление точек и отсутствующих кавычек или скобок при двойном нажатии " |
4945 | +"пробела." |
4946 | |
4947 | #: ../plugins/language//PageComponent.qml:185 |
4948 | #: ../plugins/sound//PageComponent.qml:186 |
4949 | @@ -82,7 +84,7 @@ |
4950 | |
4951 | #: ../plugins/language//PageComponent.qml:195 |
4952 | msgid "Keyboard vibration" |
4953 | -msgstr "" |
4954 | +msgstr "Вибрация клавиатуры" |
4955 | |
4956 | #: ../plugins/language//KeyboardLayouts.qml:39 |
4957 | msgid "Current layouts:" |
4958 | @@ -325,24 +327,24 @@ |
4959 | |
4960 | #: ../plugins/security-privacy//AppAccess.qml:42 |
4961 | msgid "Apps that have requested access to your camera" |
4962 | -msgstr "" |
4963 | +msgstr "Приложения, запросившие доступ к камере" |
4964 | |
4965 | #: ../plugins/security-privacy//AppAccess.qml:46 |
4966 | msgid "Mic" |
4967 | -msgstr "" |
4968 | +msgstr "Микрофон" |
4969 | |
4970 | #: ../plugins/security-privacy//AppAccess.qml:47 |
4971 | msgid "Apps that have requested access to your mic" |
4972 | -msgstr "" |
4973 | +msgstr "Приложения, запросившие доступ к микрофону" |
4974 | |
4975 | #: ../plugins/security-privacy//AppAccess.qml:59 |
4976 | #, qt-format |
4977 | msgid "%1/%2" |
4978 | -msgstr "" |
4979 | +msgstr "%1/%2" |
4980 | |
4981 | #: ../plugins/security-privacy//AppAccess.qml:60 |
4982 | msgid "0" |
4983 | -msgstr "" |
4984 | +msgstr "0" |
4985 | |
4986 | #: ../plugins/security-privacy//LockSecurity.qml:92 |
4987 | msgid "Change passcode" |
4988 | @@ -1083,7 +1085,7 @@ |
4989 | #: ../plugins/battery//PageComponent.qml:290 |
4990 | #: ../plugins/brightness//BrightnessSlider.qml:51 |
4991 | msgid "Display brightness" |
4992 | -msgstr "" |
4993 | +msgstr "Яркость экрана" |
4994 | |
4995 | #. TRANSLATORS: %1 is the number of minutes |
4996 | #: ../plugins/battery//PageComponent.qml:306 |
4997 | @@ -1429,7 +1431,7 @@ |
4998 | |
4999 | #: ../plugins/brightness//PageComponent.qml:65 |
5000 | msgid "Brightens and dims the display to suit the surroundings." |
Do you want to merge https:/ /bugs.launchpad .net/ubuntu/ +source/ ubuntu- system- settings/ +bug/1361297 as well, or do you want to land this even with the broken setting?