Merge lp:~ken-vandine/ubuntu-system-settings/rtm-14.09-20140822 into lp:ubuntu-system-settings/rtm-14.09

Proposed by Ken VanDine
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
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)

To post a comment you must log in.
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

Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

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?

review: Needs Information
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

Revision history for this message
Ken VanDine (ken-vandine) wrote :

> 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?

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

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2014-08-19 15:26:56 +0000
+++ debian/changelog 2014-08-26 11:38:32 +0000
@@ -1,3 +1,77 @@
1ubuntu-system-settings (0.3+14.10.20140826-0ubuntu1) utopic; urgency=low
2
3 [ Ken VanDine ]
4 * Hide sleep locks immediately setting, which isn't implemented yet
5 (LP: #1361297) (LP: #1361297)
6
7 [ Sebastien Bacher ]
8 * [system-update] rework the ui to use a column rather than anchors,
9 the layout is quite dynamic and it should be easier to position and
10 stack widgets this way (LP: #1343172)
11
12 [ Michael Terry ]
13 * After selecting the language, update the session environment
14 immediately and restart indicators so that their notifications (like
15 wifi prompt) are translated. (LP: #1354325)
16
17 -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 26 Aug 2014 00:55:20 +0000
18
19ubuntu-system-settings (0.3+14.10.20140825-0ubuntu1) utopic; urgency=low
20
21 [ Ken VanDine ]
22 * Added autopilot tests for security-privacy
23
24 [ jonas-drange ]
25 * [phone] adding dual sim functionality to phone panel
26
27 -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 25 Aug 2014 15:19:31 +0000
28
29ubuntu-system-settings (0.3+14.10.20140822.1-0ubuntu2) UNRELEASED; urgency=medium
30
31 [ Charles Kerr ]
32 * In the welcome wizard, refresh the text in the 'no sim card' and
33 'all done' pages to match the latest from design.
34
35 [ Michael Terry ]
36 * Add a location page and a terms and conditions page for the HERE
37 service.
38
39 [ Ken VanDine ]
40 * Settings for idle/lock timeout (LP: #1230345)
41 * Added flickable to fix scrolling (LP: #1354161)
42
43 [ Jussi Pakkanen ]
44 * Fix a bunch of compiler warnings.
45
46 [ jonas-drange ]
47 * [cellular] displays cellular UIs based on how many SIMs are present.
48 (LP: #1357393)
49
50 -- Ken VanDine <ken.vandine@canonical.com> Fri, 22 Aug 2014 22:47:14 -0400
51
52ubuntu-system-settings (0.3+14.10.20140822.1-0ubuntu1) utopic; urgency=low
53
54 [ Charles Kerr ]
55 * In the welcome wizard, refresh the text in the 'no sim card' and
56 'all done' pages to match the latest from design.
57
58 [ Michael Terry ]
59 * Add a location page and a terms and conditions page for the HERE
60 service.
61
62 [ Ken VanDine ]
63 * Settings for idle/lock timeout (LP: #1230345)
64 * Added flickable to fix scrolling (LP: #1354161)
65
66 [ Jussi Pakkanen ]
67 * Fix a bunch of compiler warnings.
68
69 [ jonas-drange ]
70 * [cellular] displays cellular UIs based on how many SIMs are present.
71 (LP: #1357393)
72
73 -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 22 Aug 2014 18:57:00 +0000
74
1ubuntu-system-settings (0.3+14.10.20140819.1-0ubuntu1) utopic; urgency=low75ubuntu-system-settings (0.3+14.10.20140819.1-0ubuntu1) utopic; urgency=low
276
3 [ Sebastien Bacher ]77 [ Sebastien Bacher ]
478
=== modified file 'debian/control'
--- debian/control 2014-08-19 14:56:31 +0000
+++ debian/control 2014-08-26 11:38:32 +0000
@@ -56,7 +56,7 @@
56 bluez (>= 4.36),56 bluez (>= 4.36),
57 dbus-property-service [amd64 armhf i386],57 dbus-property-service [amd64 armhf i386],
58 gsettings-desktop-schemas,58 gsettings-desktop-schemas,
59 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140813),59 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
60 indicator-bluetooth (>> 0.0.6+13.10.20131010),60 indicator-bluetooth (>> 0.0.6+13.10.20131010),
61 indicator-network (>= 0.5.0+13.10.20130918),61 indicator-network (>= 0.5.0+13.10.20130918),
62 powerd (>= 0.15) | gnome-settings-daemon,62 powerd (>= 0.15) | gnome-settings-daemon,
6363
=== modified file 'plugins/about/storageabout.cpp'
--- plugins/about/storageabout.cpp 2014-07-24 10:57:43 +0000
+++ plugins/about/storageabout.cpp 2014-08-26 11:38:32 +0000
@@ -60,7 +60,7 @@
60 GAsyncReadyCallback callback,60 GAsyncReadyCallback callback,
61 gpointer user_data)61 gpointer user_data)
62{62{
63 MeasureData *data = (MeasureData *) user_data;63 auto *data = static_cast<MeasureData *>(user_data);
6464
65 GFile *file = g_file_new_for_path (filename);65 GFile *file = g_file_new_for_path (filename);
6666
@@ -103,7 +103,7 @@
103 GError *err = NULL;103 GError *err = NULL;
104 GFile *file = G_FILE (source_object);104 GFile *file = G_FILE (source_object);
105105
106 MeasureData *data = (MeasureData *) user_data;106 auto data = static_cast<MeasureData *>(user_data);
107107
108 guint64 *size = (guint64 *) data->size;108 guint64 *size = (guint64 *) data->size;
109109
@@ -137,6 +137,11 @@
137 QObject(parent),137 QObject(parent),
138 m_clickModel(),138 m_clickModel(),
139 m_clickFilterProxy(&m_clickModel),139 m_clickFilterProxy(&m_clickModel),
140 m_moviesSize(0),
141 m_audioSize(0),
142 m_picturesSize(0),
143 m_otherSize(0),
144 m_homeSize(0),
140 m_propertyService(new QDBusInterface(PROPERTY_SERVICE_OBJ,145 m_propertyService(new QDBusInterface(PROPERTY_SERVICE_OBJ,
141 PROPERTY_SERVICE_PATH,146 PROPERTY_SERVICE_PATH,
142 PROPERTY_SERVICE_OBJ,147 PROPERTY_SERVICE_OBJ,
@@ -147,10 +152,10 @@
147152
148QString StorageAbout::serialNumber()153QString StorageAbout::serialNumber()
149{154{
150 static char serialBuffer[PROP_NAME_MAX];
151155
152 if (m_serialNumber.isEmpty() || m_serialNumber.isNull())156 if (m_serialNumber.isEmpty() || m_serialNumber.isNull())
153 {157 {
158 char serialBuffer[PROP_VALUE_MAX];
154 property_get("ro.serialno", serialBuffer, "");159 property_get("ro.serialno", serialBuffer, "");
155 m_serialNumber = QString(serialBuffer);160 m_serialNumber = QString(serialBuffer);
156 }161 }
@@ -160,11 +165,10 @@
160165
161QString StorageAbout::vendorString()166QString StorageAbout::vendorString()
162{167{
163 static char manufacturerBuffer[PROP_NAME_MAX];
164 static char modelBuffer[PROP_NAME_MAX];
165
166 if (m_vendorString.isEmpty() || m_vendorString.isNull())168 if (m_vendorString.isEmpty() || m_vendorString.isNull())
167 {169 {
170 char manufacturerBuffer[PROP_VALUE_MAX];
171 char modelBuffer[PROP_VALUE_MAX];
168 property_get("ro.product.manufacturer", manufacturerBuffer, "");172 property_get("ro.product.manufacturer", manufacturerBuffer, "");
169 property_get("ro.product.model", modelBuffer, "");173 property_get("ro.product.model", modelBuffer, "");
170 m_vendorString = QString("%1 %2").arg(manufacturerBuffer).arg(modelBuffer);174 m_vendorString = QString("%1 %2").arg(manufacturerBuffer).arg(modelBuffer);
@@ -175,10 +179,10 @@
175179
176QString StorageAbout::deviceBuildDisplayID()180QString StorageAbout::deviceBuildDisplayID()
177{181{
178 static char serialBuffer[PROP_NAME_MAX];
179182
180 if (m_deviceBuildDisplayID.isEmpty() || m_deviceBuildDisplayID.isNull())183 if (m_deviceBuildDisplayID.isEmpty() || m_deviceBuildDisplayID.isNull())
181 {184 {
185 char serialBuffer[PROP_VALUE_MAX];
182 property_get("ro.build.display.id", serialBuffer, "");186 property_get("ro.build.display.id", serialBuffer, "");
183 m_deviceBuildDisplayID = QString(serialBuffer);187 m_deviceBuildDisplayID = QString(serialBuffer);
184 }188 }
185189
=== modified file 'plugins/battery/PageComponent.qml'
--- plugins/battery/PageComponent.qml 2014-08-12 19:22:39 +0000
+++ plugins/battery/PageComponent.qml 2014-08-26 11:38:32 +0000
@@ -57,7 +57,7 @@
5757
58 GSettings {58 GSettings {
59 id: powerSettings59 id: powerSettings
60 schema.id: batteryBackend.powerdRunning ? "com.canonical.powerd" : "org.gnome.desktop.session"60 schema.id: batteryBackend.powerdRunning ? "com.ubuntu.touch.system" : "org.gnome.desktop.session"
61 }61 }
6262
63 UbuntuSecurityPrivacyPanel {63 UbuntuSecurityPrivacyPanel {
@@ -322,7 +322,6 @@
322 onClicked: pageStack.push(322 onClicked: pageStack.push(
323 Qt.resolvedUrl("SleepValues.qml"),323 Qt.resolvedUrl("SleepValues.qml"),
324 { title: text, lockOnSuspend: lockOnSuspend })324 { title: text, lockOnSuspend: lockOnSuspend })
325 visible: showAllUI // TODO: re-enable once bug #1230345 is resolved
326 }325 }
327 ListItem.Standard {326 ListItem.Standard {
328 text: i18n.tr("Wi-Fi")327 text: i18n.tr("Wi-Fi")
329328
=== modified file 'plugins/battery/SleepValues.qml'
--- plugins/battery/SleepValues.qml 2013-09-30 16:48:16 +0000
+++ plugins/battery/SleepValues.qml 2014-08-26 11:38:32 +0000
@@ -31,11 +31,12 @@
3131
32ItemPage {32ItemPage {
33 id: root33 id: root
3434 objectName: "sleepValues"
35 flickable: scrollWidget35 flickable: scrollWidget
3636
37 property alias usePowerd: batteryBackend.powerdRunning37 property alias usePowerd: batteryBackend.powerdRunning
38 property bool lockOnSuspend38 property bool lockOnSuspend
39 property variant idleValues: [60,120,180,240,300,600]
3940
40 UbuntuBatteryPanel {41 UbuntuBatteryPanel {
41 id: batteryBackend42 id: batteryBackend
@@ -43,19 +44,20 @@
4344
44 GSettings {45 GSettings {
45 id: powerSettings46 id: powerSettings
46 schema.id: usePowerd ? "com.canonical.powerd" : "org.gnome.desktop.session"47 schema.id: usePowerd ? "com.ubuntu.touch.system" : "org.gnome.desktop.session"
47 onChanged: {48 onChanged: {
48 if (key == "activityTimeout" || key == "idleDelay")49 if (key == "activityTimeout" || key == "idleDelay")
49 if([60,120,180,240,300].indexOf(value) != -1)50 var curIndex = idleValues.indexOf(value)
50 sleepSelector.selectedIndex = (value/60)-151 if( curIndex != -1)
52 sleepSelector.selectedIndex = curIndex
51 else if(value === 0)53 else if(value === 0)
52 sleepSelector.selectedIndex = 554 sleepSelector.selectedIndex = 6
53 }55 }
54 Component.onCompleted: {56 Component.onCompleted: {
55 if (usePowerd)57 if (usePowerd)
56 sleepSelector.selectedIndex = (powerSettings.activityTimeout === 0) ? 5 : powerSettings.activityTimeout/60-158 sleepSelector.selectedIndex = (powerSettings.activityTimeout === 0) ? 6 : idleValues.indexOf(powerSettings.activityTimeout)
57 else59 else
58 sleepSelector.selectedIndex = (powerSettings.idleDelay === 0) ? 5 : powerSettings.idleDelay/60-160 sleepSelector.selectedIndex = (powerSettings.idleDelay === 0) ? 6 : idleValues.indexOf(powerSettings.idleDelay)
59 }61 }
60 }62 }
6163
@@ -71,7 +73,11 @@
7173
72 ListItem.ItemSelector {74 ListItem.ItemSelector {
73 id: sleepSelector75 id: sleepSelector
76 objectName: "sleepSelector"
74 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:")77 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:")
78 delegate: OptionSelectorDelegate {
79 text: modelData
80 }
75 model: [81 model: [
76 // TRANSLATORS: %1 is the number of minutes82 // TRANSLATORS: %1 is the number of minutes
77 i18n.tr("After %1 minute",83 i18n.tr("After %1 minute",
@@ -93,13 +99,17 @@
93 i18n.tr("After %1 minute",99 i18n.tr("After %1 minute",
94 "After %1 minutes",100 "After %1 minutes",
95 5).arg(5),101 5).arg(5),
102 // TRANSLATORS: %1 is the number of minutes
103 i18n.tr("After %1 minute",
104 "After %1 minutes",
105 10).arg(10),
96 i18n.tr("Never")]106 i18n.tr("Never")]
97 expanded: true107 expanded: true
98 onDelegateClicked: {108 onDelegateClicked: {
99 if (usePowerd)109 if (usePowerd)
100 powerSettings.activityTimeout = (index == 5) ? 0 : (index+1)*60110 powerSettings.activityTimeout = (index == 6) ? 0 : idleValues[index]
101 else111 else
102 powerSettings.idleDelay = (index == 5) ? 0 : (index+1)*60112 powerSettings.idleDelay = (index == 6) ? 0 : idleValues[index]
103 }113 }
104 }114 }
105115
106116
=== modified file 'plugins/battery/battery.cpp'
--- plugins/battery/battery.cpp 2013-09-30 11:09:29 +0000
+++ plugins/battery/battery.cpp 2014-08-26 11:38:32 +0000
@@ -28,7 +28,7 @@
28 GParamSpec *pspec G_GNUC_UNUSED,28 GParamSpec *pspec G_GNUC_UNUSED,
29 gpointer user_data)29 gpointer user_data)
30{30{
31 Battery * object = (Battery *) user_data;31 auto object = static_cast<Battery *>(user_data);
3232
33 Q_EMIT (object->wifiEnabledChanged());33 Q_EMIT (object->wifiEnabledChanged());
34}34}
@@ -65,7 +65,6 @@
65 UpClient *client;65 UpClient *client;
66 gboolean returnIsOk;66 gboolean returnIsOk;
67 GPtrArray *devices;67 GPtrArray *devices;
68 UpDevice *device;
69 UpDeviceKind kind;68 UpDeviceKind kind;
7069
71 client = up_client_new();70 client = up_client_new();
@@ -77,6 +76,7 @@
77 devices = up_client_get_devices(client);76 devices = up_client_get_devices(client);
7877
79 for (uint i=0; i < devices->len; i++) {78 for (uint i=0; i < devices->len; i++) {
79 UpDevice *device;
80 device = (UpDevice *)g_ptr_array_index(devices, i);80 device = (UpDevice *)g_ptr_array_index(devices, i);
81 g_object_get(device, "kind", &kind, NULL);81 g_object_get(device, "kind", &kind, NULL);
82 if (kind == UP_DEVICE_KIND_BATTERY) {82 if (kind == UP_DEVICE_KIND_BATTERY) {
@@ -111,7 +111,6 @@
111111
112void Battery::getLastFullCharge()112void Battery::getLastFullCharge()
113{113{
114 UpHistoryItem *item;
115 GPtrArray *values = NULL;114 GPtrArray *values = NULL;
116 gint32 offset = 0;115 gint32 offset = 0;
117 GTimeVal timeval;116 GTimeVal timeval;
@@ -130,7 +129,7 @@
130 g_object_get (m_device, "capacity", &maxCapacity, NULL);129 g_object_get (m_device, "capacity", &maxCapacity, NULL);
131130
132 for (uint i=0; i < values->len; i++) {131 for (uint i=0; i < values->len; i++) {
133 item = (UpHistoryItem *) g_ptr_array_index(values, i);132 auto item = static_cast<UpHistoryItem *>(g_ptr_array_index(values, i));
134133
135 /* Getting the next point after full charge, since upower registers only on state changes,134 /* Getting the next point after full charge, since upower registers only on state changes,
136 typically you get no data while the device is fully charged and plugged and you get a discharging135 typically you get no data while the device is fully charged and plugged and you get a discharging
@@ -155,7 +154,6 @@
155 if (deviceString.isNull() || deviceString.isEmpty())154 if (deviceString.isNull() || deviceString.isEmpty())
156 return QVariantList();155 return QVariantList();
157156
158 UpHistoryItem *item;
159 GPtrArray *values = NULL;157 GPtrArray *values = NULL;
160 gint32 offset = 0;158 gint32 offset = 0;
161 GTimeVal timeval;159 GTimeVal timeval;
@@ -174,7 +172,7 @@
174 }172 }
175173
176 for (uint i=values->len-1; i > 0; i--) {174 for (uint i=values->len-1; i > 0; i--) {
177 item = (UpHistoryItem *) g_ptr_array_index(values, i);175 auto item = static_cast<UpHistoryItem *>(g_ptr_array_index(values, i));
178176
179 if (up_history_item_get_state(item) == UP_DEVICE_STATE_UNKNOWN)177 if (up_history_item_get_state(item) == UP_DEVICE_STATE_UNKNOWN)
180 continue;178 continue;
181179
=== modified file 'plugins/bluetooth/PageComponent.qml'
--- plugins/bluetooth/PageComponent.qml 2014-07-29 15:09:23 +0000
+++ plugins/bluetooth/PageComponent.qml 2014-08-26 11:38:32 +0000
@@ -29,6 +29,8 @@
2929
30ItemPage {30ItemPage {
31 id: root31 id: root
32 title: i18n.tr("Bluetooth")
33
32 UbuntuBluetoothPanel { id: backend }34 UbuntuBluetoothPanel { id: backend }
3335
34 Component {36 Component {
@@ -112,14 +114,20 @@
112 }114 }
113 }115 }
114116
115 Page {117
116 id: mainPage118 Flickable {
117 title: i18n.tr("Bluetooth")
118 visible: true
119 anchors.fill: parent119 anchors.fill: parent
120 contentHeight: contentItem.childrenRect.height
121 boundsBehavior: (contentHeight > root.height) ?
122 Flickable.DragAndOvershootBounds :
123 Flickable.StopAtBounds
124 /* Set the direction to workaround https://bugreports.qt-project.org/browse/QTBUG-31905
125 otherwise the UI might end up in a situation where scrolling doesn't work */
126 flickableDirection: Flickable.VerticalFlick
120127
121 Column {128 Column {
122 anchors.fill: parent129 anchors.left: parent.left
130 anchors.right: parent.right
123131
124 QDBusActionGroup {132 QDBusActionGroup {
125 id: bluetoothActionGroup133 id: bluetoothActionGroup
@@ -205,27 +213,30 @@
205 visible: connectedList.visible213 visible: connectedList.visible
206 }214 }
207215
208 ListView {216 Column {
209 id: connectedList217 id: connectedList
210 width: parent.width218 anchors {
211 height: connectedHeader.height * count219 left: parent.left
212220 right: parent.right
221 }
213 visible: bluetoothActionGroup.enabled && (count > 0)222 visible: bluetoothActionGroup.enabled && (count > 0)
214223
215 model: backend.connectedDevices224 Repeater {
216 delegate: ListItem.Standard {225 model: backend.connectedDevices
217 iconSource: iconPath226 delegate: ListItem.Standard {
218 iconFrame: false227 iconSource: iconPath
219 text: getDisplayName(type, displayName)228 iconFrame: false
220 control: ActivityIndicator {229 text: getDisplayName(type, displayName)
221 visible: connection == Device.Connecting230 control: ActivityIndicator {
222 running: true231 visible: connection == Device.Connecting
223 }232 running: true
224 onClicked: {233 }
225 backend.setSelectedDevice(addressName);234 onClicked: {
226 pageStack.push(connectedDevicePage);235 backend.setSelectedDevice(addressName);
227 }236 pageStack.push(connectedDevicePage);
228 progression: true237 }
238 progression: true
239 }
229 }240 }
230 }241 }
231242
@@ -241,24 +252,27 @@
241 }252 }
242 }253 }
243254
244 ListView {255 Column {
245 id: disconnectedList256 id: disconnectedList
246 width: parent.width257 anchors {
247 height: disconnectedHeader.height * count258 left: parent.left
248259 right: parent.right
260 }
249 visible: bluetoothActionGroup.enabled && (count > 0)261 visible: bluetoothActionGroup.enabled && (count > 0)
250262
251 model: backend.disconnectedDevices263 Repeater {
252 delegate: ListItem.Standard {264 model: backend.disconnectedDevices
253 iconSource: iconPath265 delegate: ListItem.Standard {
254 iconFrame: false266 iconSource: iconPath
255 text: getDisplayName(type, displayName)267 iconFrame: false
256 enabled: backend.isSupportedType(type)268 text: getDisplayName(type, displayName)
257 onClicked: {269 enabled: backend.isSupportedType(type)
258 backend.setSelectedDevice(addressName);270 onClicked: {
259 pageStack.push(connectedDevicePage);271 backend.setSelectedDevice(addressName);
272 pageStack.push(connectedDevicePage);
273 }
274 progression: true
260 }275 }
261 progression: true
262 }276 }
263 }277 }
264 ListItem.Standard {278 ListItem.Standard {
@@ -275,23 +289,27 @@
275 visible: autoconnectList.visible289 visible: autoconnectList.visible
276 enabled: bluetoothActionGroup.enabled290 enabled: bluetoothActionGroup.enabled
277 }291 }
278 ListView {292 Column {
279 id: autoconnectList293 id: autoconnectList
280 width: parent.width294 anchors {
281 height: autoconnectHeader.height * count295 left: parent.left
296 right: parent.right
297 }
282298
283 visible: bluetoothActionGroup.enabled && (count > 0)299 visible: bluetoothActionGroup.enabled && (count > 0)
284300
285 model: backend.autoconnectDevices301 Repeater {
286 delegate: ListItem.Standard {302 model: backend.autoconnectDevices
287 iconSource: iconPath303 delegate: ListItem.Standard {
288 iconFrame: false304 iconSource: iconPath
289 text: getDisplayName(type, displayName)305 iconFrame: false
290 onClicked: {306 text: getDisplayName(type, displayName)
291 backend.setSelectedDevice(addressName);307 onClicked: {
292 pageStack.push(connectedDevicePage);308 backend.setSelectedDevice(addressName);
309 pageStack.push(connectedDevicePage);
310 }
311 progression: true
293 }312 }
294 progression: true
295 }313 }
296 }314 }
297 }315 }
@@ -302,100 +320,114 @@
302 title: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None")320 title: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None")
303 visible: false321 visible: false
304322
305 Column {323 Flickable {
306 anchors.fill: parent324 anchors.fill: parent
307325 contentHeight: contentItem.childrenRect.height
308 ListItem.SingleValue {326 boundsBehavior: (contentHeight > root.height) ?
309 text: i18n.tr("Name")327 Flickable.DragAndOvershootBounds :
310 value: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None")328 Flickable.StopAtBounds
311 }329 /* Set the direction to workaround https://bugreports.qt-project.org/browse/QTBUG-31905
312 ListItem.Standard {330 otherwise the UI might end up in a situation where scrolling doesn't work */
313 Rectangle {331 flickableDirection: Flickable.VerticalFlick
314 color: "transparent"332
315 anchors.fill: parent333 Column {
316 anchors.topMargin: units.gu(1)334 anchors {
317 anchors.leftMargin: units.gu(2)335 left: parent.left
318 anchors.rightMargin: units.gu(2)336 right: parent.right
319337 }
320 Label {338
321 anchors {339 ListItem.SingleValue {
322 top: parent.top340 text: i18n.tr("Name")
323 left: parent.left341 value: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None")
324 topMargin: units.gu(1)342 }
325 }343 ListItem.Standard {
326 height: units.gu(3)344 Rectangle {
327 text: i18n.tr("Type")345 color: "transparent"
328 }346 anchors.fill: parent
329 Image {347 anchors.topMargin: units.gu(1)
330 anchors {348 anchors.leftMargin: units.gu(2)
331 right: deviceType.left349 anchors.rightMargin: units.gu(2)
332 rightMargin: units.gu(1)350
333 }351 Label {
334 height: units.gu(4)352 anchors {
335 width: units.gu(4)353 top: parent.top
336 source: backend.selectedDevice ? backend.selectedDevice.iconName : ""354 left: parent.left
337 }355 topMargin: units.gu(1)
338 Label {356 }
339 id: deviceType357 height: units.gu(3)
340 anchors {358 text: i18n.tr("Type")
341 top: parent.top359 }
342 right: parent.right360 Image {
343 topMargin: units.gu(1)361 anchors {
344 }362 right: deviceType.left
345 height: units.gu(3)363 rightMargin: units.gu(1)
346 text: getTypeString(backend.selectedDevice ? backend.selectedDevice.type : Device.OTHER)364 }
347 }365 height: units.gu(4)
348 }366 width: units.gu(4)
349 }367 source: backend.selectedDevice ? backend.selectedDevice.iconName : ""
350 ListItem.SingleValue {368 }
351 text: i18n.tr("Status")369 Label {
352 value: getStatusString(backend.selectedDevice ? backend.selectedDevice.connection : Device.Disconnected)370 id: deviceType
353 }371 anchors {
354 ListItem.SingleValue {372 top: parent.top
355 text: i18n.tr("Signal Strength")373 right: parent.right
356 value: getSignalString(backend.selectedDevice ? backend.selectedDevice.strength : Device.None)374 topMargin: units.gu(1)
357 }375 }
358 ListItem.Standard {376 height: units.gu(3)
359 id: trustedCheck377 text: getTypeString(backend.selectedDevice ? backend.selectedDevice.type : Device.OTHER)
360 text: i18n.tr("Connect automatically when detected:")378 }
361 control: CheckBox {379 }
362 onClicked: {380 }
363 if (backend.selectedDevice) {381 ListItem.SingleValue {
364 backend.selectedDevice.trusted = !backend.selectedDevice.trusted382 text: i18n.tr("Status")
365 }383 value: getStatusString(backend.selectedDevice ? backend.selectedDevice.connection : Device.Disconnected)
366 }384 }
367 checked: backend.selectedDevice ? backend.selectedDevice.trusted : false385 ListItem.SingleValue {
368 }386 text: i18n.tr("Signal Strength")
369 Component.onCompleted:387 value: getSignalString(backend.selectedDevice ? backend.selectedDevice.strength : Device.None)
370 clicked.connect(trustedCheck.clicked)388 }
371 }389 ListItem.Standard {
372 ListItem.SingleControl {390 id: trustedCheck
373 control: Button {391 text: i18n.tr("Connect automatically when detected:")
374 text: backend.selectedDevice && (backend.selectedDevice.connection == Device.Connected || backend.selectedDevice.connection == Device.Connecting) ? i18n.tr("Disconnect") : i18n.tr("Connect")392 control: CheckBox {
375 width: parent.width - units.gu(8)393 onClicked: {
376 onClicked: {394 if (backend.selectedDevice) {
377 if (backend.selectedDevice395 backend.selectedDevice.trusted = !backend.selectedDevice.trusted
378 && (backend.selectedDevice.connection == Device.Connected396 }
379 || backend.selectedDevice.connection == Device.Connecting)) {397 }
380 backend.disconnectDevice();398 checked: backend.selectedDevice ? backend.selectedDevice.trusted : false
381 } else {399 }
382 backend.stopDiscovery()400 Component.onCompleted:
383 backend.connectDevice(backend.selectedDevice.address);401 clicked.connect(trustedCheck.clicked)
384 }402 }
385 pageStack.pop();403 ListItem.SingleControl {
386 }404 control: Button {
387 visible: backend.selectedDevice ? true : false405 text: backend.selectedDevice && (backend.selectedDevice.connection == Device.Connected || backend.selectedDevice.connection == Device.Connecting) ? i18n.tr("Disconnect") : i18n.tr("Connect")
388 }406 width: parent.width - units.gu(8)
389 }407 onClicked: {
390 ListItem.SingleControl {408 if (backend.selectedDevice
391 control: Button {409 && (backend.selectedDevice.connection == Device.Connected
392 text: i18n.tr("Forget this device")410 || backend.selectedDevice.connection == Device.Connecting)) {
393 width: parent.width - units.gu(8)411 backend.disconnectDevice();
394 onClicked: {412 } else {
395 backend.removeDevice();413 backend.stopDiscovery()
396 pageStack.pop();414 backend.connectDevice(backend.selectedDevice.address);
397 }415 }
398 enabled: backend.selectedDevice && backend.selectedDevice.path.length > 0 ? true : false416 pageStack.pop();
417 }
418 visible: backend.selectedDevice ? true : false
419 }
420 }
421 ListItem.SingleControl {
422 control: Button {
423 text: i18n.tr("Forget this device")
424 width: parent.width - units.gu(8)
425 onClicked: {
426 backend.removeDevice();
427 pageStack.pop();
428 }
429 enabled: backend.selectedDevice && backend.selectedDevice.path.length > 0 ? true : false
430 }
399 }431 }
400 }432 }
401 }433 }
402434
=== modified file 'plugins/bluetooth/agent.h'
--- plugins/bluetooth/agent.h 2013-09-27 14:55:53 +0000
+++ plugins/bluetooth/agent.h 2014-08-26 11:38:32 +0000
@@ -57,7 +57,7 @@
57 void onPairingDone();57 void onPairingDone();
5858
59private:59private:
60 Q_DISABLE_COPY(Agent);60 Q_DISABLE_COPY(Agent)
6161
62 QDBusConnection m_connection;62 QDBusConnection m_connection;
63 DeviceModel &m_devices;63 DeviceModel &m_devices;
6464
=== modified file 'plugins/bluetooth/bluetooth.cpp'
--- plugins/bluetooth/bluetooth.cpp 2014-07-30 02:25:07 +0000
+++ plugins/bluetooth/bluetooth.cpp 2014-08-26 11:38:32 +0000
@@ -151,10 +151,8 @@
151151
152void Bluetooth::disconnectDevice()152void Bluetooth::disconnectDevice()
153{153{
154 Device::Type type;
155
156 if (m_selectedDevice) {154 if (m_selectedDevice) {
157 type = m_selectedDevice->getType();155 auto type = m_selectedDevice->getType();
158 if (type == Device::Type::Headset)156 if (type == Device::Type::Headset)
159 m_selectedDevice->disconnect(Device::ConnectionMode::Audio);157 m_selectedDevice->disconnect(Device::ConnectionMode::Audio);
160 else if (type == Device::Type::Headphones)158 else if (type == Device::Type::Headphones)
161159
=== modified file 'plugins/bluetooth/bluetooth.h'
--- plugins/bluetooth/bluetooth.h 2014-07-29 16:44:03 +0000
+++ plugins/bluetooth/bluetooth.h 2014-08-26 11:38:32 +0000
@@ -45,22 +45,22 @@
4545
46 Q_PROPERTY (QObject * selectedDevice46 Q_PROPERTY (QObject * selectedDevice
47 READ getSelectedDevice47 READ getSelectedDevice
48 NOTIFY selectedDeviceChanged);48 NOTIFY selectedDeviceChanged)
4949
50 Q_PROPERTY (QObject * agent50 Q_PROPERTY (QObject * agent
51 READ getAgent);51 READ getAgent)
5252
53 Q_PROPERTY (bool powered53 Q_PROPERTY (bool powered
54 READ isPowered54 READ isPowered
55 NOTIFY poweredChanged);55 NOTIFY poweredChanged)
5656
57 Q_PROPERTY (bool discovering57 Q_PROPERTY (bool discovering
58 READ isDiscovering58 READ isDiscovering
59 NOTIFY discoveringChanged);59 NOTIFY discoveringChanged)
6060
61 Q_PROPERTY (bool discoverable61 Q_PROPERTY (bool discoverable
62 READ isDiscoverable62 READ isDiscoverable
63 NOTIFY discoverableChanged);63 NOTIFY discoverableChanged)
6464
65Q_SIGNALS:65Q_SIGNALS:
66 void selectedDeviceChanged();66 void selectedDeviceChanged();
6767
=== modified file 'plugins/bluetooth/device.cpp'
--- plugins/bluetooth/device.cpp 2014-07-30 14:51:27 +0000
+++ plugins/bluetooth/device.cpp 2014-08-26 11:38:32 +0000
@@ -453,6 +453,7 @@
453 default:453 default:
454 return Type::OtherAudio;454 return Type::OtherAudio;
455 }455 }
456 break;
456457
457 case 0x05:458 case 0x05:
458 switch ((c & 0xc0) >> 6) {459 switch ((c & 0xc0) >> 6) {
459460
=== modified file 'plugins/cellular/CMakeLists.txt'
--- plugins/cellular/CMakeLists.txt 2014-07-17 20:59:15 +0000
+++ plugins/cellular/CMakeLists.txt 2014-08-26 11:38:32 +0000
@@ -9,6 +9,7 @@
9 PageComponent.qml9 PageComponent.qml
10 Hotspot.qml10 Hotspot.qml
11 HotspotSetup.qml11 HotspotSetup.qml
12 sims.js
12)13)
1314
1415
1516
=== modified file 'plugins/cellular/Components/CMakeLists.txt'
--- plugins/cellular/Components/CMakeLists.txt 2014-07-31 20:10:40 +0000
+++ plugins/cellular/Components/CMakeLists.txt 2014-08-26 11:38:32 +0000
@@ -1,6 +1,9 @@
1set(QML_SOURCES1set(QML_SOURCES
2 NoSim.qml
3 SingleSim.qml
4 MultiSim.qml
2 CellularSingleSim.qml5 CellularSingleSim.qml
3 CellularDualSim.qml6 CellularMultiSim.qml
4 data-helpers.js7 data-helpers.js
5 DefaultSim.qml8 DefaultSim.qml
6 Sim.qml9 Sim.qml
710
=== renamed file 'plugins/cellular/Components/CellularDualSim.qml' => 'plugins/cellular/Components/CellularMultiSim.qml'
--- plugins/cellular/Components/CellularDualSim.qml 2014-08-14 13:59:57 +0000
+++ plugins/cellular/Components/CellularMultiSim.qml 2014-08-26 11:38:32 +0000
@@ -24,20 +24,18 @@
2424
25Column {25Column {
26 id: root26 id: root
27 property var sim1
28 property var sim2
29 property var selector: selector27 property var selector: selector
30 property var prefMap: ['gsm', 'umts']28 property var prefMap: ['gsm', 'umts']
3129
32 function getNameFromIndex (index) {30 function getNameFromIndex (index) {
33 return [i18n.tr("Off"), sim1.title, sim2.title][index];31 return [i18n.tr("Off"), sims[0].title, sims[1].title][index];
34 }32 }
3533
36 function getUsedSim () {34 function getUsedSim () {
37 if (state === "sim1Online") {35 if (state === "sim1Online") {
38 return sim1;36 return sims[0];
39 } else if (state === "sim2Online") {37 } else if (state === "sim2Online") {
40 return sim2;38 return sims[1];
41 } else {39 } else {
42 return null;40 return null;
43 }41 }
@@ -47,27 +45,27 @@
47 states: [45 states: [
48 State {46 State {
49 name: "sim1Online"47 name: "sim1Online"
50 when: sim1.connMan.powered && !sim2.connMan.powered48 when: sims[0].connMan.powered && !sims[1].connMan.powered
51 StateChangeScript { script: {49 StateChangeScript { script: {
52 selector.selectedIndex =50 selector.selectedIndex =
53 DataHelpers.dualSimKeyToIndex(51 DataHelpers.dualSimKeyToIndex(
54 sim1.radioSettings.technologyPreference)52 sims[0].radioSettings.technologyPreference)
55 }}53 }}
56 },54 },
57 State {55 State {
58 name: "sim2Online"56 name: "sim2Online"
59 when: sim2.connMan.powered && !sim1.connMan.powered57 when: sims[1].connMan.powered && !sims[0].connMan.powered
60 StateChangeScript { script: {58 StateChangeScript { script: {
61 selector.selectedIndex =59 selector.selectedIndex =
62 DataHelpers.dualSimKeyToIndex(60 DataHelpers.dualSimKeyToIndex(
63 sim2.radioSettings.technologyPreference)61 sims[1].radioSettings.technologyPreference)
64 }}62 }}
65 },63 },
66 State {64 State {
67 name: "bothOnline"65 name: "bothOnline"
68 when: sim1.connMan.powered && sim2.connMan.powered66 when: sims[0].connMan.powered && sims[1].connMan.powered
69 StateChangeScript { script: {67 StateChangeScript { script: {
70 sim2.connMan.powered = false;68 sims[1].connMan.powered = false;
71 }}69 }}
72 }70 }
73 ]71 ]
@@ -82,16 +80,16 @@
82 objectName: "use" + modelData80 objectName: "use" + modelData
83 text: getNameFromIndex(index)81 text: getNameFromIndex(index)
84 }82 }
85 selectedIndex: [true, sim1.connMan.powered, sim2.connMan.powered]83 selectedIndex: [true, sims[0].connMan.powered, sims[1].connMan.powered]
86 .lastIndexOf(true)84 .lastIndexOf(true)
87 onDelegateClicked: {85 onDelegateClicked: {
88 sim1.connMan.powered = (index === 1)86 sims[0].connMan.powered = (index === 1)
89 sim2.connMan.powered = (index === 2)87 sims[1].connMan.powered = (index === 2)
90 }88 }
91 }89 }
9290
93 Connections {91 Connections {
94 target: sim1.connMan92 target: sims[0].connMan
95 onPoweredChanged: {93 onPoweredChanged: {
96 if (powered) {94 if (powered) {
97 use.selectedIndex = 1;95 use.selectedIndex = 1;
@@ -100,7 +98,7 @@
100 }98 }
10199
102 Connections {100 Connections {
103 target: sim2.connMan101 target: sims[1].connMan
104 onPoweredChanged: {102 onPoweredChanged: {
105 if (powered) {103 if (powered) {
106 use.selectedIndex = 2;104 use.selectedIndex = 2;
@@ -124,9 +122,9 @@
124 }122 }
125123
126 Connections {124 Connections {
127 target: sim1.radioSettings125 target: sims[0].radioSettings
128 onTechnologyPreferenceChanged: {126 onTechnologyPreferenceChanged: {
129 if (sim1.connMan.powered) {127 if (sims[0].connMan.powered) {
130 selector.selectedIndex =128 selector.selectedIndex =
131 DataHelpers.dualSimKeyToIndex(preference);129 DataHelpers.dualSimKeyToIndex(preference);
132 }130 }
@@ -134,9 +132,9 @@
134 }132 }
135133
136 Connections {134 Connections {
137 target: sim2.radioSettings135 target: sims[1].radioSettings
138 onTechnologyPreferenceChanged: {136 onTechnologyPreferenceChanged: {
139 if (sim2.connMan.powered) {137 if (sims[1].connMan.powered) {
140 selector.selectedIndex =138 selector.selectedIndex =
141 DataHelpers.dualSimKeyToIndex(preference);139 DataHelpers.dualSimKeyToIndex(preference);
142 }140 }
143141
=== modified file 'plugins/cellular/Components/CellularSingleSim.qml'
--- plugins/cellular/Components/CellularSingleSim.qml 2014-08-14 13:59:57 +0000
+++ plugins/cellular/Components/CellularSingleSim.qml 2014-08-26 11:38:32 +0000
@@ -25,7 +25,6 @@
25Column {25Column {
26 height: childrenRect.height26 height: childrenRect.height
2727
28 property var sim1
29 property var selector: selector28 property var selector: selector
3029
31 ListItem.ItemSelector {30 ListItem.ItemSelector {
@@ -33,15 +32,15 @@
33 objectName: "technologyPreferenceSelector"32 objectName: "technologyPreferenceSelector"
34 text: i18n.tr("Cellular data:")33 text: i18n.tr("Cellular data:")
35 expanded: true34 expanded: true
36 enabled: sim1.radioSettings.technologyPreference !== ""35 enabled: sim.radioSettings.technologyPreference !== ""
37 model: [36 model: [
38 i18n.tr("Off"),37 i18n.tr("Off"),
39 i18n.tr("2G only (saves battery)"),38 i18n.tr("2G only (saves battery)"),
40 i18n.tr("2G/3G/4G (faster)")]39 i18n.tr("2G/3G/4G (faster)")]
41 selectedIndex: {40 selectedIndex: {
42 if (sim1.connMan.powered) {41 if (sim.connMan.powered) {
43 return DataHelpers.singleSimKeyToIndex(42 return DataHelpers.singleSimKeyToIndex(
44 sim1.radioSettings.technologyPreference);43 sim.radioSettings.technologyPreference);
45 } else {44 } else {
46 return 0;45 return 0;
47 }46 }
@@ -52,20 +51,20 @@
52 id: dataRoamingItem51 id: dataRoamingItem
53 objectName: "dataRoamingSwitch"52 objectName: "dataRoamingSwitch"
54 text: i18n.tr("Data roaming")53 text: i18n.tr("Data roaming")
55 enabled: sim1.connMan.powered54 enabled: sim.connMan.powered
56 control: Switch {55 control: Switch {
57 id: dataRoamingControl56 id: dataRoamingControl
58 checked: sim1.connMan.roamingAllowed57 checked: sim.connMan.roamingAllowed
59 onClicked: sim1.connMan.roamingAllowed = checked58 onClicked: sim.connMan.roamingAllowed = checked
60 }59 }
61 }60 }
6261
63 Connections {62 Connections {
64 target: sim1.connMan63 target: sim.connMan
65 onPoweredChanged: {64 onPoweredChanged: {
66 if (powered) {65 if (powered) {
67 selector.selectedIndex = DataHelpers.singleSimKeyToIndex(66 selector.selectedIndex = DataHelpers.singleSimKeyToIndex(
68 sim1.radioSettings.technologyPreference);67 sim.radioSettings.technologyPreference);
69 } else {68 } else {
70 selector.selectedIndex = 0;69 selector.selectedIndex = 0;
71 }70 }
@@ -73,24 +72,24 @@
73 }72 }
7473
75 Connections {74 Connections {
76 target: sim1.radioSettings75 target: sim.radioSettings
77 onTechnologyPreferenceChanged: {76 onTechnologyPreferenceChanged: {
78 var selIndex = selector.selectedIndex;77 var selIndex = selector.selectedIndex;
79 if (selIndex > 0) {78 if (selIndex > 0) {
80 sim1.radioSettings.technologyPreference =79 sim.radioSettings.technologyPreference =
81 DataHelpers.singleSimIndexToKey(selIndex);80 DataHelpers.singleSimIndexToKey(selIndex);
82 }81 }
83 }82 }
84 }83 }
8584
86 Binding {85 Binding {
87 target: sim1.connMan86 target: sim.connMan
88 property: "powered"87 property: "powered"
89 value: selector.selectedIndex !== 088 value: selector.selectedIndex !== 0
90 }89 }
9190
92 Binding {91 Binding {
93 target: sim1.radioSettings92 target: sim.radioSettings
94 property: "technologyPreference"93 property: "technologyPreference"
95 value: {94 value: {
96 var i = selector.selectedIndex;95 var i = selector.selectedIndex;
@@ -99,7 +98,7 @@
99 } else if (i === 2) {98 } else if (i === 2) {
100 return 'umts';99 return 'umts';
101 } else {100 } else {
102 return sim1.radioSettings.technologyPreference101 return sim.radioSettings.technologyPreference
103 }102 }
104 }103 }
105 }104 }
106105
=== modified file 'plugins/cellular/Components/DefaultSim.qml'
--- plugins/cellular/Components/DefaultSim.qml 2014-08-14 09:59:56 +0000
+++ plugins/cellular/Components/DefaultSim.qml 2014-08-26 11:38:32 +0000
@@ -23,10 +23,10 @@
2323
24Column {24Column {
2525
26 property var m: ["ask", sim1.path, sim2.path]26 property var m: ["ask", sims[0].path, sims[1].path]
2727
28 function getNameFromIndex (index) {28 function getNameFromIndex (index) {
29 return [i18n.tr("Ask me each time"), sim1.title, sim2.title][index];29 return [i18n.tr("Ask me each time"), sims[0].title, sims[1].title][index];
30 }30 }
3131
32 ListItem.ItemSelector {32 ListItem.ItemSelector {
@@ -45,8 +45,7 @@
45 }45 }
4646
47 ListItem.Caption {47 ListItem.Caption {
48 text: i18n.tr("You can change the SIM for individual calls,48 text: i18n.tr("You can change the SIM for individual calls, or for contacts in the address book.")
49 or for contacts in the address book.")
50 }49 }
5150
52 ListItem.Divider {}51 ListItem.Divider {}
5352
=== added file 'plugins/cellular/Components/MultiSim.qml'
--- plugins/cellular/Components/MultiSim.qml 1970-01-01 00:00:00 +0000
+++ plugins/cellular/Components/MultiSim.qml 2014-08-26 11:38:32 +0000
@@ -0,0 +1,120 @@
1/*
2 * Copyright (C) 2014 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Jonas G. Drange <jonas.drange@canonical.com>
18 *
19*/
20import QtQuick 2.0
21import GSettings 1.0
22import Ubuntu.Components 0.1
23import Ubuntu.Components.ListItems 0.1 as ListItem
24
25Column {
26
27 objectName: "multiSim"
28
29 property var sims
30 property var modems
31
32 // make settings available to all children of root
33 property var settings: phoneSettings
34
35 CellularMultiSim {
36 anchors { left: parent.left; right: parent.right }
37 }
38
39 ListItem.Divider {}
40
41 ListItem.SingleValue {
42 text : i18n.tr("Hotspot disabled because Wi-Fi is off.")
43 visible: showAllUI && !hotspotItem.visible
44 }
45
46 ListItem.SingleValue {
47 id: hotspotItem
48 text: i18n.tr("Wi-Fi hotspot")
49 progression: true
50 onClicked: {
51 pageStack.push(Qt.resolvedUrl("Hotspot.qml"))
52 }
53 visible: showAllUI && (actionGroup.actionObject.valid ? actionGroup.actionObject.state : false)
54 }
55
56 ListItem.Standard {
57 id: dataUsage
58 text: i18n.tr("Data usage statistics")
59 progression: true
60 visible: showAllUI
61 }
62
63 ListItem.Divider {
64 visible: hotspotItem.visible || dataUsage.visible
65 }
66
67 ListItem.SingleValue {
68 text: i18n.tr("Carriers")
69 id: chooseCarrier
70 objectName: "chooseCarrier"
71 progression: enabled
72 onClicked: {
73 pageStack.push(Qt.resolvedUrl("../PageChooseCarriers.qml"), {
74 sims: sims
75 });
76 }
77 }
78
79 ListItem.Divider {}
80
81 SimEditor {
82 anchors { left: parent.left; right: parent.right }
83 }
84
85 ListItem.Divider {}
86
87 DefaultSim {
88 anchors { left: parent.left; right: parent.right }
89 }
90
91 GSettings {
92 id: phoneSettings
93 schema.id: "com.ubuntu.phone"
94 Component.onCompleted: {
95 // set default names
96 var simNames = phoneSettings.simNames;
97 var m0 = modems[0];
98 var m1 = modems[1];
99 if (!simNames[m0]) {
100 simNames[m0] = "SIM 1";
101 }
102 if (!simNames[m1]) {
103 simNames[m1] = "SIM 2";
104 }
105 phoneSettings.simNames = simNames;
106 }
107 }
108
109 Binding {
110 target: sims[0]
111 property: "name"
112 value: phoneSettings.simNames[modems[0]]
113 }
114
115 Binding {
116 target: sims[1]
117 property: "name"
118 value: phoneSettings.simNames[modems[1]]
119 }
120}
0121
=== added file 'plugins/cellular/Components/NoSim.qml'
--- plugins/cellular/Components/NoSim.qml 1970-01-01 00:00:00 +0000
+++ plugins/cellular/Components/NoSim.qml 2014-08-26 11:38:32 +0000
@@ -0,0 +1,51 @@
1/*
2 * Copyright (C) 2014 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Jonas G. Drange <jonas.drange@canonical.com>
18 *
19*/
20import QtQuick 2.0
21import Ubuntu.Components 0.1
22import Ubuntu.Components.ListItems 0.1 as ListItem
23
24Column {
25
26 objectName: "noSim"
27
28 ListItem.ItemSelector {
29 text: i18n.tr("Cellular data:")
30 expanded: true
31 enabled: false
32 model: [i18n.tr("Off"), i18n.tr("2G only (saves battery)"), i18n.tr("2G/3G/4G (faster)")]
33 selectedIndex: -1
34 }
35
36 ListItem.Standard {
37 text: i18n.tr("Data roaming")
38 enabled: false
39 control: Switch {
40 checked: false
41 }
42 }
43
44 ListItem.Divider {}
45
46 ListItem.SingleValue {
47 text: i18n.tr("Carrier");
48 value: i18n.tr("N/A")
49 enabled: false
50 }
51}
052
=== modified file 'plugins/cellular/Components/Sim.qml'
--- plugins/cellular/Components/Sim.qml 2014-07-25 13:33:36 +0000
+++ plugins/cellular/Components/Sim.qml 2014-08-26 11:38:32 +0000
@@ -21,12 +21,14 @@
21import MeeGo.QOfono 0.221import MeeGo.QOfono 0.2
2222
23Item {23Item {
24 id: root
24 property alias modem: modem25 property alias modem: modem
25 property alias netReg: netReg26 property alias netReg: netReg
26 property alias radioSettings: radioSettings27 property alias radioSettings: radioSettings
27 property alias simMng: simMng28 property alias simMng: simMng
28 property alias connMan: connMan29 property alias connMan: connMan
2930
31 property alias present: simMng.present
30 property string path32 property string path
31 property string name33 property string name
32 property string title: {34 property string title: {
3335
=== modified file 'plugins/cellular/Components/SimEditor.qml'
--- plugins/cellular/Components/SimEditor.qml 2014-08-15 19:58:34 +0000
+++ plugins/cellular/Components/SimEditor.qml 2014-08-26 11:38:32 +0000
@@ -44,7 +44,7 @@
44 name: "editingSim1"44 name: "editingSim1"
45 PropertyChanges {45 PropertyChanges {
46 target: nameField46 target: nameField
47 text: sim1.name47 text: sims[0].name
48 }48 }
49 ParentChange {49 ParentChange {
50 target: editor50 target: editor
@@ -60,7 +60,7 @@
60 name: "editingSim2"60 name: "editingSim2"
61 PropertyChanges {61 PropertyChanges {
62 target: nameField62 target: nameField
63 text: sim2.name63 text: sims[1].name
64 }64 }
65 ParentChange {65 ParentChange {
66 target: editor66 target: editor
@@ -108,7 +108,7 @@
108 right: parent.right108 right: parent.right
109 verticalCenter: parent.verticalCenter109 verticalCenter: parent.verticalCenter
110 }110 }
111 text: sim1.title111 text: sims[0].title
112 }112 }
113 }113 }
114 Column {114 Column {
@@ -144,7 +144,7 @@
144 right: parent.right144 right: parent.right
145 verticalCenter: parent.verticalCenter145 verticalCenter: parent.verticalCenter
146 }146 }
147 text: sim2.title147 text: sims[1].title
148 }148 }
149 }149 }
150 Column {150 Column {
@@ -213,11 +213,11 @@
213 onTriggered: {213 onTriggered: {
214 var tmpSimNames = {};214 var tmpSimNames = {};
215 if (simList.state === "editingSim1") {215 if (simList.state === "editingSim1") {
216 tmpSimNames[sim1.path] = nameField.text;216 tmpSimNames[sims[0].path] = nameField.text;
217 tmpSimNames[sim2.path] = sim2.name;217 tmpSimNames[sims[1].path] = sims[1].name;
218 } else if (simList.state === "editingSim2") {218 } else if (simList.state === "editingSim2") {
219 tmpSimNames[sim1.path] = sim1.name;219 tmpSimNames[sims[0].path] = sims[0].name;
220 tmpSimNames[sim2.path] = nameField.text;220 tmpSimNames[sims[1].path] = nameField.text;
221 }221 }
222 phoneSettings.simNames = tmpSimNames;222 phoneSettings.simNames = tmpSimNames;
223 simList.state = "";223 simList.state = "";
224224
=== added file 'plugins/cellular/Components/SingleSim.qml'
--- plugins/cellular/Components/SingleSim.qml 1970-01-01 00:00:00 +0000
+++ plugins/cellular/Components/SingleSim.qml 2014-08-26 11:38:32 +0000
@@ -0,0 +1,76 @@
1/*
2 * Copyright (C) 2014 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Jonas G. Drange <jonas.drange@canonical.com>
18 *
19*/
20import QtQuick 2.0
21import Ubuntu.Components 0.1
22import Ubuntu.Components.ListItems 0.1 as ListItem
23
24Column {
25
26 objectName: "singleSim"
27
28 property var sim
29
30 CellularSingleSim {
31 anchors { left: parent.left; right: parent.right }
32 }
33
34 ListItem.Divider {}
35
36 ListItem.SingleValue {
37 text : i18n.tr("Hotspot disabled because Wi-Fi is off.")
38 visible: showAllUI && !hotspotItem.visible
39 }
40
41 ListItem.SingleValue {
42 id: hotspotItem
43 text: i18n.tr("Wi-Fi hotspot")
44 progression: true
45 onClicked: {
46 pageStack.push(Qt.resolvedUrl("Hotspot.qml"))
47 }
48 visible: showAllUI && (actionGroup.actionObject.valid ? actionGroup.actionObject.state : false)
49 }
50
51 ListItem.Standard {
52 text: i18n.tr("Data usage statistics")
53 progression: true
54 visible: showAllUI
55 }
56
57 ListItem.SingleValue {
58 text: i18n.tr("Carrier");
59 id: chooseCarrier
60 objectName: "chooseCarrier"
61 progression: enabled
62 value: sim.netReg.name || i18n.tr("N/A")
63 onClicked: {
64 pageStack.push(Qt.resolvedUrl("../PageChooseCarrier.qml"), {
65 netReg: sim.netReg,
66 title: i18n.tr("Carrier")
67 })
68 }
69 }
70
71 ListItem.Standard {
72 text: i18n.tr("APN")
73 progression: true
74 visible: showAllUI
75 }
76}
077
=== modified file 'plugins/cellular/PageChooseCarriers.qml'
--- plugins/cellular/PageChooseCarriers.qml 2014-07-24 19:00:45 +0000
+++ plugins/cellular/PageChooseCarriers.qml 2014-08-26 11:38:32 +0000
@@ -28,8 +28,7 @@
28 title: i18n.tr("Carriers")28 title: i18n.tr("Carriers")
29 objectName: "chooseCarriersPage"29 objectName: "chooseCarriersPage"
3030
31 property var sim131 property var sims
32 property var sim2
3332
34 Flickable {33 Flickable {
35 anchors.fill: parent34 anchors.fill: parent
@@ -42,33 +41,33 @@
42 anchors.right: parent.right41 anchors.right: parent.right
4342
44 ListItem.Standard {43 ListItem.Standard {
45 text: sim1.title44 text: sims[0].title
46 }45 }
4746
48 ListItem.SingleValue {47 ListItem.SingleValue {
49 objectName: "chooseCarrierSim1"48 objectName: "chooseCarrierSim1"
50 value: sim1.netReg.name ? sim1.netReg.name : i18n.tr("N/A")49 value: sims[0].netReg.name ? sims[0].netReg.name : i18n.tr("N/A")
51 progression: true50 progression: true
52 onClicked: {51 onClicked: {
53 pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {52 pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {
54 netReg: sim1.netReg,53 netReg: sims[0].netReg,
55 title: sim1.title54 title: sims[0].title
56 })55 })
57 }56 }
58 }57 }
5958
60 ListItem.Standard {59 ListItem.Standard {
61 text: sim2.title60 text: sims[1].title
62 }61 }
6362
64 ListItem.SingleValue {63 ListItem.SingleValue {
65 objectName: "chooseCarrierSim2"64 objectName: "chooseCarrierSim2"
66 value: sim2.netReg.name ? sim2.netReg.name : i18n.tr("N/A")65 value: sims[1].netReg.name ? sims[1].netReg.name : i18n.tr("N/A")
67 progression: true66 progression: true
68 onClicked: {67 onClicked: {
69 pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {68 pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {
70 netReg: sim2.netReg,69 netReg: sims[1].netReg,
71 title: sim2.title70 title: sims[1].title
72 })71 })
73 }72 }
74 }73 }
7574
=== modified file 'plugins/cellular/PageComponent.qml'
--- plugins/cellular/PageComponent.qml 2014-08-12 16:25:26 +0000
+++ plugins/cellular/PageComponent.qml 2014-08-26 11:38:32 +0000
@@ -19,53 +19,69 @@
19 */19 */
2020
21import QtQuick 2.021import QtQuick 2.0
22import GSettings 1.0
23import SystemSettings 1.022import SystemSettings 1.0
24import Ubuntu.Components 0.123import Ubuntu.Components 0.1
25import Ubuntu.Components.ListItems 0.1 as ListItem24import Ubuntu.Components.ListItems 0.1 as ListItem
26import MeeGo.QOfono 0.225import MeeGo.QOfono 0.2
27import QMenuModel 0.126import QMenuModel 0.1
28import "Components"27import "Components" as LocalComponents
28import "sims.js" as Sims
2929
30ItemPage {30ItemPage {
31 id: root31 id: root
32 title: i18n.tr("Cellular")32 title: i18n.tr("Cellular")
33 objectName: "cellularPage"33 objectName: "cellularPage"
3434
35 // pointers to sim 1 and 2, lazy loaded
36 property alias sim1: simOneLoader.item
37 property alias sim2: simTwoLoader.item
38 property var modemsSorted: manager.modems.slice(0).sort()35 property var modemsSorted: manager.modems.slice(0).sort()
36 property int simsLoaded: 0
3937
40 states: [38 states: [
41 State {39 State {
40 name: "noSim"
41 when: (simsLoaded === 0) || (Sims.getPresentCount() === 0)
42 StateChangeScript {
43 script: loader.source = "Components/NoSim.qml"
44 }
45 },
46 State {
42 name: "singleSim"47 name: "singleSim"
43 StateChangeScript {48 StateChangeScript {
44 name: "loadSim"49 script: loader.setSource("Components/SingleSim.qml", {
45 script: {50 sim: Sims.get(0)
46 var p = modemsSorted[0];51 })
47 simOneLoader.setSource("Components/Sim.qml", {
48 path: p
49 });
50 }
51 }52 }
53 when: simsLoaded && (Sims.getPresentCount() === 1)
52 },54 },
53 State {55 State {
54 name: "dualSim"56 name: "multiSim"
55 extend: "singleSim"
56 StateChangeScript {57 StateChangeScript {
57 name: "loadSecondSim"58 script: loader.setSource("Components/MultiSim.qml", {
58 script: {59 sims: Sims.getAll(),
59 var p = modemsSorted[1];60 modems: modemsSorted
60 simTwoLoader.setSource("Components/Sim.qml", {61 })
61 path: p
62 });
63 defaultSimLoader.source = "Components/DefaultSim.qml";
64 }
65 }62 }
63 when: simsLoaded && (Sims.getPresentCount() > 1)
66 }64 }
67 ]65 ]
6866
67 OfonoManager {
68 id: manager
69 Component.onCompleted: {
70 var component = Qt.createComponent("Components/Sim.qml");
71 modemsSorted.forEach(function (path) {
72 console.warn('creating sim object for', path)
73 var sim = component.createObject(root, {
74 path: path
75 });
76 if (sim === null) {
77 console.warn('failed to create sim object');
78 } else {
79 Sims.add(sim);
80 }
81 });
82 }
83 }
84
69 QDBusActionGroup {85 QDBusActionGroup {
70 id: actionGroup86 id: actionGroup
71 busType: 187 busType: 1
@@ -78,42 +94,6 @@
78 start()94 start()
79 }95 }
80 }96 }
81
82 OfonoManager {
83 id: manager
84 Component.onCompleted: {
85 if (modems.length === 1) {
86 root.state = "singleSim";
87 } else if (modems.length === 2) {
88 root.state = "dualSim";
89 }
90 }
91 }
92
93 Loader {
94 id: simOneLoader
95 onLoaded: {
96 if (parent.state === "singleSim") {
97 cellData.setSource("Components/CellularSingleSim.qml", {
98 sim1: sim1
99 });
100 }
101 }
102 }
103
104 Loader {
105 id: simTwoLoader
106 onLoaded: {
107 // unload any single sim setup
108 cellData.source = "";
109 cellData.setSource("Components/CellularDualSim.qml", {
110 sim1: sim1,
111 sim2: sim2
112 });
113 simEditorLoader.source = "Components/SimEditor.qml";
114 }
115 }
116
117 Flickable {97 Flickable {
118 anchors.fill: parent98 anchors.fill: parent
119 contentWidth: parent.width99 contentWidth: parent.width
@@ -124,106 +104,9 @@
124 anchors { left: parent.left; right: parent.right }104 anchors { left: parent.left; right: parent.right }
125105
126 Loader {106 Loader {
127 id: cellData107 id: loader
128 anchors { left: parent.left; right: parent.right }108 anchors { left: parent.left; right: parent.right }
129 }109 }
130110 }
131 ListItem.SingleValue {
132 text : i18n.tr("Hotspot disabled because Wi-Fi is off.")
133 visible: showAllUI && !hotspotItem.visible
134 }
135
136 ListItem.SingleValue {
137 id: hotspotItem
138 text: i18n.tr("Wi-Fi hotspot")
139 progression: true
140 onClicked: {
141 pageStack.push(Qt.resolvedUrl("Hotspot.qml"))
142 }
143 visible: showAllUI && (actionGroup.actionObject.valid ? actionGroup.actionObject.state : false)
144 }
145
146 ListItem.Standard {
147 text: i18n.tr("Data usage statistics")
148 progression: true
149 visible: showAllUI
150 }
151
152 ListItem.SingleValue {
153 text: i18n.tr("Carrier", "Carriers", manager.modems.length);
154 id: chooseCarrier
155 objectName: "chooseCarrier"
156 progression: enabled
157 onClicked: {
158 if (root.state === 'singleSim') {
159 pageStack.push(Qt.resolvedUrl("PageChooseCarrier.qml"), {
160 netReg: sim1.netReg,
161 title: i18n.tr("Carrier")
162 })
163 } else if (root.state === 'dualSim') {
164 pageStack.push(Qt.resolvedUrl("PageChooseCarriers.qml"), {
165 sim1: sim1,
166 sim2: sim2
167 });
168 }
169 }
170 }
171
172 Binding {
173 target: chooseCarrier
174 property: "value"
175 value: sim1.netReg.name || i18n.tr("N/A")
176 when: (simOneLoader.status === Loader.Ready) && root.state === "singleSim"
177 }
178
179 ListItem.Standard {
180 text: i18n.tr("APN")
181 progression: true
182 visible: showAllUI
183 }
184
185 Loader {
186 id: simEditorLoader
187 anchors { left: parent.left; right: parent.right }
188 }
189
190 ListItem.Divider {}
191
192 Loader {
193 id: defaultSimLoader
194 anchors.left: parent.left
195 anchors.right: parent.right
196 }
197 }
198 }
199
200 GSettings {
201 id: phoneSettings
202 schema.id: "com.ubuntu.phone"
203 Component.onCompleted: {
204 // set default names
205 var simNames = phoneSettings.simNames;
206 var m0 = modemsSorted[0];
207 var m1 = modemsSorted[1];
208 if (!simNames[m0]) {
209 simNames[m0] = "SIM 1";
210 }
211 if (!simNames[m1]) {
212 simNames[m1] = "SIM 2";
213 }
214 phoneSettings.simNames = simNames;
215 }
216 }
217
218 Binding {
219 target: sim1
220 property: "name"
221 value: phoneSettings.simNames[modemsSorted[0]]
222 }
223
224 Binding {
225 target: sim2
226 property: "name"
227 value: phoneSettings.simNames[modemsSorted[1]]
228 }111 }
229}112}
230113
=== added file 'plugins/cellular/sims.js'
--- plugins/cellular/sims.js 1970-01-01 00:00:00 +0000
+++ plugins/cellular/sims.js 2014-08-26 11:38:32 +0000
@@ -0,0 +1,34 @@
1var sims = [];
2
3function add (sim) {
4 sims.push(sim);
5 root.simsLoaded++;
6}
7
8function getAll () {
9 return sims;
10}
11
12function get (n) {
13 return getAll()[n];
14}
15
16function getCount () {
17 return getAll().length;
18}
19
20function getPresent () {
21 var present = [];
22 getAll().forEach(function (sim) {
23 if (sim.present) {
24 present.push(sim);
25 } else {
26 return;
27 }
28 });
29 return present;
30}
31
32function getPresentCount () {
33 return getPresent().length;
34}
035
=== modified file 'plugins/notifications/notification_item.cpp'
--- plugins/notifications/notification_item.cpp 2014-07-18 15:22:59 +0000
+++ plugins/notifications/notification_item.cpp 2014-08-26 11:38:32 +0000
@@ -20,7 +20,8 @@
20namespace NotificationsPlugin {20namespace NotificationsPlugin {
2121
22NotificationItem::NotificationItem(QObject *parent) :22NotificationItem::NotificationItem(QObject *parent) :
23 QObject(parent)23 QObject(parent),
24 m_status(false)
24{25{
25}26}
2627
2728
=== modified file 'plugins/phone/CMakeLists.txt'
--- plugins/phone/CMakeLists.txt 2014-07-09 13:17:47 +0000
+++ plugins/phone/CMakeLists.txt 2014-08-26 11:38:32 +0000
@@ -1,10 +1,15 @@
1set(QML_SOURCES1set(QML_SOURCES
2 CallForwarding.qml2 CallForwarding.qml
3 CallWaiting.qml3 CallWaiting.qml
4 MultiSim.qml
5 NoSims.qml
6 Ofono.qml
4 PageComponent.qml7 PageComponent.qml
5 ServiceInfo.qml8 ServiceInfo.qml
6 Services.qml9 Services.qml
10 SingleSim.qml
7 dateUtils.js11 dateUtils.js
12 sims.js
8)13)
914
10# We need a dummy target so the QML files show up in Qt Creator15# We need a dummy target so the QML files show up in Qt Creator
1116
=== modified file 'plugins/phone/CallForwarding.qml'
--- plugins/phone/CallForwarding.qml 2014-07-22 20:10:26 +0000
+++ plugins/phone/CallForwarding.qml 2014-08-26 11:38:32 +0000
@@ -22,22 +22,22 @@
22import SystemSettings 1.022import SystemSettings 1.0
23import Ubuntu.Components 0.123import Ubuntu.Components 0.1
24import Ubuntu.Components.ListItems 0.1 as ListItem24import Ubuntu.Components.ListItems 0.1 as ListItem
25import MeeGo.QOfono 0.2
2625
27ItemPage {26ItemPage {
28 title: i18n.tr("Call forwarding")
2927
30 property bool forwarding: callForwarding.voiceUnconditional !== ""28 objectName: "callForwardingPage"
31 property string modem29 title: headerTitle
30 property var sim
31 property bool forwarding: sim.callForwarding.voiceUnconditional !== ""
32 property string headerTitle: i18n.tr("Call forwarding")
3233
33 onForwardingChanged: {34 onForwardingChanged: {
34 if (callForwardingSwitch.checked !== forwarding)35 if (callForwardingSwitch.checked !== forwarding)
35 callForwardingSwitch.checked = forwarding;36 callForwardingSwitch.checked = forwarding;
36 }37 }
3738
38 OfonoCallForwarding {39 Connections {
39 id: callForwarding40 target: sim.callForwarding
40 modemPath: modem
41 onVoiceUnconditionalChanged: {41 onVoiceUnconditionalChanged: {
42 destNumberField.text = voiceUnconditional;42 destNumberField.text = voiceUnconditional;
43 }43 }
@@ -50,13 +50,14 @@
5050
51 Switch {51 Switch {
52 id: callForwardingSwitch52 id: callForwardingSwitch
53 objectName: "callForwardingSwitch"
53 checked: forwarding54 checked: forwarding
54 enabled: (forwarding === checked)55 enabled: (forwarding === checked)
55 visible: callForwardingItem.control === callForwardingSwitch56 visible: callForwardingItem.control === callForwardingSwitch
56 onCheckedChanged: {57 onCheckedChanged: {
57 if (!checked && forwarding) {58 if (!checked && forwarding) {
58 callForwardingIndicator.running = true;59 callForwardingIndicator.running = true;
59 callForwarding.voiceUnconditional = "";60 sim.callForwarding.voiceUnconditional = "";
60 }61 }
61 }62 }
62 }63 }
@@ -101,17 +102,18 @@
101 visible: callForwardingSwitch.checked102 visible: callForwardingSwitch.checked
102 control: TextInput {103 control: TextInput {
103 id: destNumberField104 id: destNumberField
105 objectName: "destNumberField"
104 horizontalAlignment: TextInput.AlignRight106 horizontalAlignment: TextInput.AlignRight
105 width: forwardToItem.width/2107 width: forwardToItem.width/2
106 inputMethodHints: Qt.ImhDialableCharactersOnly108 inputMethodHints: Qt.ImhDialableCharactersOnly
107 text: callForwarding.voiceUnconditional109 text: sim.callForwarding.voiceUnconditional
108 font.pixelSize: units.dp(18)110 font.pixelSize: units.dp(18)
109 font.weight: Font.Light111 font.weight: Font.Light
110 font.family: "Ubuntu"112 font.family: "Ubuntu"
111 color: "#AAAAAA"113 color: "#AAAAAA"
112 maximumLength: 20114 maximumLength: 20
113 focus: true115 focus: true
114 cursorVisible: text !== callForwarding.voiceUnconditional ||116 cursorVisible: text !== sim.callForwarding.voiceUnconditional ||
115 text === ""117 text === ""
116 clip: true118 clip: true
117 opacity: 0.9119 opacity: 0.9
@@ -133,30 +135,32 @@
133 spacing: units.gu(2)135 spacing: units.gu(2)
134136
135 Button {137 Button {
138 objectName: "cancel"
136 text: i18n.tr("Cancel")139 text: i18n.tr("Cancel")
137 width: (buttonsRowId.width-units.gu(2)*4)/3140 width: (buttonsRowId.width-units.gu(2)*4)/3
138 enabled: !callForwardingIndicator.running141 enabled: !callForwardingIndicator.running
139 onClicked: {142 onClicked: {
140 destNumberField.text =143 destNumberField.text =
141 callForwarding.voiceUnconditional;144 sim.callForwarding.voiceUnconditional;
142 if (forwarding !== callForwardingSwitch.checked)145 if (forwarding !== callForwardingSwitch.checked)
143 callForwardingSwitch.checked = forwarding;146 callForwardingSwitch.checked = forwarding;
144 }147 }
145 }148 }
146149
147 Button {150 Button {
151 objectName: "set"
148 text: i18n.tr("Set")152 text: i18n.tr("Set")
149 width: (buttonsRowId.width-units.gu(2)*4)/3153 width: (buttonsRowId.width-units.gu(2)*4)/3
150 enabled: !callForwardingIndicator.running154 enabled: !callForwardingIndicator.running
151 onClicked: {155 onClicked: {
152 callForwardingIndicator.running = true;156 callForwardingIndicator.running = true;
153 callForwarding.voiceUnconditional = destNumberField.text;157 sim.callForwarding.voiceUnconditional = destNumberField.text;
154 }158 }
155 }159 }
156 }160 }
157 visible: callForwardingSwitch.checked &&161 visible: callForwardingSwitch.checked &&
158 (destNumberField.text !==162 (destNumberField.text !==
159 callForwarding.voiceUnconditional)163 sim.callForwarding.voiceUnconditional)
160 }164 }
161 }165 }
162}166}
163167
=== modified file 'plugins/phone/CallWaiting.qml'
--- plugins/phone/CallWaiting.qml 2014-07-16 16:45:25 +0000
+++ plugins/phone/CallWaiting.qml 2014-08-26 11:38:32 +0000
@@ -25,15 +25,24 @@
25import MeeGo.QOfono 0.225import MeeGo.QOfono 0.2
2626
27ItemPage {27ItemPage {
28 title: i18n.tr("Call waiting")28 objectName: "callWaitingPage"
29 property string modem29 title: headerTitle
30 property var sim
31 property string headerTitle: i18n.tr("Call waiting")
3032
31 OfonoCallSettings {33 OfonoCallSettings {
32 id: callSettings34 id: callSettings
33 modemPath: modem35 modemPath: sim.path
34 onVoiceCallWaitingChanged: {36 onVoiceCallWaitingChanged: {
35 callWaitingIndicator.running = false;37 callWaitingIndicator.running = false;
36 }38 }
39 onGetPropertiesFailed: {
40 console.warn('callSettings, onGetPropertiesFailed');
41 callWaitingIndicator.running = false;
42 }
43 onVoiceCallWaitingComplete: {
44 callWaitingIndicator.running = false;
45 }
37 }46 }
3847
39 ActivityIndicator {48 ActivityIndicator {
@@ -44,7 +53,9 @@
4453
45 Switch {54 Switch {
46 id: callWaitingSwitch55 id: callWaitingSwitch
56 objectName: "callWaitingSwitch"
47 visible: !callWaitingIndicator.running57 visible: !callWaitingIndicator.running
58 enabled: callSettings.ready
48 checked: callSettings.voiceCallWaiting !== "disabled"59 checked: callSettings.voiceCallWaiting !== "disabled"
49 onClicked: {60 onClicked: {
50 callWaitingIndicator.running = true;61 callWaitingIndicator.running = true;
5162
=== added file 'plugins/phone/MultiSim.qml'
--- plugins/phone/MultiSim.qml 1970-01-01 00:00:00 +0000
+++ plugins/phone/MultiSim.qml 2014-08-26 11:38:32 +0000
@@ -0,0 +1,135 @@
1/*
2 * Copyright (C) 2014 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Ken Vandine <ken.vandine@canonical.com>
18 * Jonas G. Drange <jonas.drange@canonical.com>
19 *
20*/
21import QtQuick 2.0
22import GSettings 1.0
23import Ubuntu.Components 1.1
24import Ubuntu.Components.ListItems 0.1 as ListItem
25
26Column {
27
28 property var sims
29
30 ListItem.Standard {
31 text: sims[0].title
32 }
33
34 ListItem.Standard {
35 objectName: "callFwdSim1"
36 text: i18n.tr("Call forwarding")
37 progression: true
38 onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), {
39 sim: sims[0],
40 headerTitle: sims[0].title
41 })
42 }
43
44 ListItem.Standard {
45 objectName: "callWaitSim1"
46 text: i18n.tr("Call waiting")
47 progression: true
48 onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), {
49 sim: sims[0],
50 headerTitle: sims[0].title
51 })
52 }
53
54 ListItem.Standard {
55 objectName: "simServicesSim1"
56 text: i18n.tr("Services")
57 progression: true
58 enabled: sims[0].simMng.present
59 onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"), {
60 carrierString: sims[0].netReg.name,
61 sim: sims[0].simMng,
62 headerTitle: sims[0].title
63 })
64 }
65
66 ListItem.Divider {}
67
68 ListItem.Standard {
69 text: sims[1].title
70 }
71
72 ListItem.Standard {
73 objectName: "callFwdSim2"
74 text: i18n.tr("Call forwarding")
75 progression: true
76 onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), {
77 sim: sims[1],
78 headerTitle: sims[1].title
79 })
80 }
81
82 ListItem.Standard {
83 objectName: "callWaitSim2"
84 text: i18n.tr("Call waiting")
85 progression: true
86 onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), {
87 sim: sims[1],
88 headerTitle: sims[1].title
89 })
90 }
91
92 ListItem.Standard {
93 objectName: "simServicesSim2"
94 text: i18n.tr("Services")
95 progression: true
96 enabled: sims[1].simMng.present
97 onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"), {
98 carrierString: sims[1].netReg.name,
99 sim: sims[1].simMng,
100 headerTitle: sims[1].title
101 })
102 }
103
104
105 GSettings {
106 id: phoneSettings
107 schema.id: "com.ubuntu.phone"
108 Component.onCompleted: {
109 // set default names
110 var simNames = phoneSettings.simNames;
111 var m0 = sims[0].path
112 var m1 = sims[1].path
113 if (!simNames[m0]) {
114 simNames[m0] = "SIM 1";
115 }
116 if (!simNames[m1]) {
117 simNames[m1] = "SIM 2";
118 }
119 phoneSettings.simNames = simNames;
120 }
121 }
122
123 Binding {
124 target: sims[0]
125 property: "name"
126 value: phoneSettings.simNames[modemsSorted[0]]
127 }
128
129 Binding {
130 target: sims[1]
131 property: "name"
132 value: phoneSettings.simNames[modemsSorted[1]]
133 }
134
135}
0136
=== added file 'plugins/phone/NoSims.qml'
--- plugins/phone/NoSims.qml 1970-01-01 00:00:00 +0000
+++ plugins/phone/NoSims.qml 2014-08-26 11:38:32 +0000
@@ -0,0 +1,46 @@
1/*
2 * Copyright (C) 2014 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Ken Vandine <ken.vandine@canonical.com>
18 * Jonas G. Drange <jonas.drange@canonical.com>
19 *
20*/
21import QtQuick 2.0
22import Ubuntu.Components 1.1
23import Ubuntu.Components.ListItems 0.1 as ListItem
24
25Column {
26
27 ListItem.Standard {
28 text: i18n.tr("Call forwarding")
29 progression: true
30 enabled: false
31 }
32
33 ListItem.Standard {
34 text: i18n.tr("Call waiting")
35 progression: true
36 enabled: false
37 }
38
39 ListItem.Divider {}
40
41 ListItem.Standard {
42 text: i18n.tr("Services")
43 progression: true
44 enabled: false
45 }
46}
047
=== added file 'plugins/phone/Ofono.qml'
--- plugins/phone/Ofono.qml 1970-01-01 00:00:00 +0000
+++ plugins/phone/Ofono.qml 2014-08-26 11:38:32 +0000
@@ -0,0 +1,50 @@
1/*
2 * Copyright (C) 2014 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Jonas G. Drange <jonas.drange@canonical.com>
18 *
19*/
20import QtQuick 2.0
21import MeeGo.QOfono 0.2
22
23Item {
24 property alias callForwarding: callForwarding
25 property alias netReg: netReg
26 property alias simMng: simMng
27 property alias present: simMng.present
28
29 property string path
30 property string name
31 property string title: {
32 var number = simMng.subscriberNumbers[0] || simMng.subscriberIdentity;
33 return name + (number ? " (" + number + ")" : "");
34 }
35
36 OfonoCallForwarding {
37 id: callForwarding
38 modemPath: path
39 }
40
41 OfonoNetworkRegistration {
42 id: netReg
43 modemPath: path
44 }
45
46 OfonoSimManager {
47 id: simMng
48 modemPath: path
49 }
50}
051
=== modified file 'plugins/phone/PageComponent.qml'
--- plugins/phone/PageComponent.qml 2014-07-18 13:00:36 +0000
+++ plugins/phone/PageComponent.qml 2014-08-26 11:38:32 +0000
@@ -23,52 +23,77 @@
23import Ubuntu.Components 0.123import Ubuntu.Components 0.1
24import Ubuntu.Components.ListItems 0.1 as ListItem24import Ubuntu.Components.ListItems 0.1 as ListItem
25import MeeGo.QOfono 0.225import MeeGo.QOfono 0.2
26import "sims.js" as Sims
2627
27ItemPage {28ItemPage {
29 id: root
30 objectName: "phonePage"
28 title: i18n.tr("Phone")31 title: i18n.tr("Phone")
29 property string carrierName: netop.name32 flickable: flick
30 property string carrierString: carrierName ? carrierName : i18n.tr("SIM")33
34 property var modemsSorted: manager.modems.slice(0).sort()
35 property var simsLoaded: 0
36
37 states: [
38 State {
39 name: "noSim"
40 StateChangeScript {
41 script: loader.setSource("NoSims.qml")
42 }
43 when: (simsLoaded === 0) || (Sims.getPresentCount() === 0)
44 },
45 State {
46 name: "singleSim"
47 StateChangeScript {
48 script: loader.setSource("SingleSim.qml", { sim: Sims.get(0) })
49
50 }
51 when: simsLoaded && (Sims.getPresentCount() === 1)
52 },
53 State {
54 name: "multiSim"
55 StateChangeScript {
56 script: loader.setSource("MultiSim.qml", {
57 sims: Sims.getAll()
58 })
59 }
60 when: simsLoaded && (Sims.getPresentCount() > 1)
61 }
62 ]
3163
32 OfonoManager {64 OfonoManager {
33 id: manager65 id: manager
34 }66 Component.onCompleted: {
3567 // create ofono bindings for all modem paths
36 OfonoNetworkRegistration {68 var component = Qt.createComponent("Ofono.qml");
37 id: netop;69 modemsSorted.forEach(function (path) {
38 modemPath: manager.modems[0]70 var sim = component.createObject(root, {
39 onNameChanged: carrierName = netop.name71 path: path
40 }72 });
4173 if (sim === null) {
42 OfonoSimManager {74 console.warn('failed to create sim object');
43 id: sim75 } else {
44 modemPath: manager.modems[0]76 Sims.add(sim);
45 }77 }
4678 });
47 Column {79 }
80 }
81
82 Flickable {
83 id: flick
48 anchors.fill: parent84 anchors.fill: parent
4985 contentWidth: parent.width
50 ListItem.Standard {86 contentHeight: contentItem.childrenRect.height
51 text: i18n.tr("Call forwarding")87 boundsBehavior: (contentHeight > root.height) ?
52 progression: true88 Flickable.DragAndOvershootBounds : Flickable.StopAtBounds
53 onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), {modem: manager.modems[0]})89
54 }90 Column {
5591 anchors { left: parent.left; right: parent.right }
56 ListItem.Standard {92
57 text: i18n.tr("Call waiting") 93 Loader {
58 progression: true94 id: loader
59 onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), {modem: manager.modems[0]})95 anchors { left: parent.left; right: parent.right }
60 showDivider: false96 }
61 }
62
63 ListItem.Divider {}
64
65 ListItem.Standard {
66 // TRANSLATORS: %1 is the name of the (network) carrier
67 text: i18n.tr("%1 Services").arg(carrierString)
68 progression: true
69 enabled: sim.present
70 onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"),
71 {carrierString: carrierString, sim: sim})
72 }97 }
73 }98 }
74}99}
75100
=== modified file 'plugins/phone/Services.qml'
--- plugins/phone/Services.qml 2014-06-19 03:54:01 +0000
+++ plugins/phone/Services.qml 2014-08-26 11:38:32 +0000
@@ -24,12 +24,15 @@
24import Ubuntu.Components.ListItems 0.1 as ListItem24import Ubuntu.Components.ListItems 0.1 as ListItem
2525
26ItemPage {26ItemPage {
27 objectName: "servicesPage"
28 title: headerTitle
27 property string carrierString29 property string carrierString
28 property variant sim30 property variant sim
29 property var names: []31 property var names: []
3032
31 // TRANSLATORS: %1 is the name of the (network) carrier33 // TRANSLATORS: %1 is the name of the (network) carrier
32 title: i18n.tr("%1 Services").arg(carrierString)34 property string headerTitle: i18n.tr("%1 Services").arg(carrierString)
35
3336
34 Component.onCompleted: {37 Component.onCompleted: {
35 var keys = [];38 var keys = [];
3639
=== added file 'plugins/phone/SingleSim.qml'
--- plugins/phone/SingleSim.qml 1970-01-01 00:00:00 +0000
+++ plugins/phone/SingleSim.qml 2014-08-26 11:38:32 +0000
@@ -0,0 +1,57 @@
1/*
2 * Copyright (C) 2014 Canonical Ltd
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authors:
17 * Ken Vandine <ken.vandine@canonical.com>
18 * Jonas G. Drange <jonas.drange@canonical.com>
19 *
20*/
21import QtQuick 2.0
22import Ubuntu.Components 1.1
23import Ubuntu.Components.ListItems 0.1 as ListItem
24
25Column {
26
27 property var sim
28 property string carrierName: sim.netReg.name
29 property string carrierString: carrierName ? carrierName : i18n.tr("SIM")
30
31 ListItem.Standard {
32 objectName: "callFwd"
33 text: i18n.tr("Call forwarding")
34 progression: true
35 onClicked: pageStack.push(Qt.resolvedUrl("CallForwarding.qml"), {sim: sim})
36 }
37
38 ListItem.Standard {
39 objectName: "callWait"
40 text: i18n.tr("Call waiting")
41 progression: true
42 onClicked: pageStack.push(Qt.resolvedUrl("CallWaiting.qml"), {sim: sim})
43 showDivider: false
44 }
45
46 ListItem.Divider {}
47
48 ListItem.Standard {
49 objectName: "simServices"
50 // TRANSLATORS: %1 is the name of the (network) carrier
51 text: i18n.tr("%1 Services").arg(carrierString)
52 progression: true
53 enabled: sim.simMng.present
54 onClicked: pageStack.push(Qt.resolvedUrl("Services.qml"),
55 {carrierString: carrierString, sim: sim.simMng})
56 }
57}
058
=== added file 'plugins/phone/sims.js'
--- plugins/phone/sims.js 1970-01-01 00:00:00 +0000
+++ plugins/phone/sims.js 2014-08-26 11:38:32 +0000
@@ -0,0 +1,34 @@
1var sims = [];
2
3function add (sim) {
4 sims.push(sim);
5 root.simsLoaded++;
6}
7
8function getAll () {
9 return sims;
10}
11
12function get (n) {
13 return getAll()[n];
14}
15
16function getCount () {
17 return getAll().length;
18}
19
20function getPresent () {
21 var present = [];
22 getAll().forEach(function (sim) {
23 if (sim.present) {
24 present.push(sim);
25 } else {
26 return;
27 }
28 });
29 return present;
30}
31
32function getPresentCount () {
33 return getPresent().length;
34}
035
=== modified file 'plugins/security-privacy/LockSecurity.qml'
--- plugins/security-privacy/LockSecurity.qml 2014-08-12 08:37:44 +0000
+++ plugins/security-privacy/LockSecurity.qml 2014-08-26 11:38:32 +0000
@@ -89,9 +89,9 @@
89 changeSecurityDialog.oldMethod) { // Changing existing89 changeSecurityDialog.oldMethod) { // Changing existing
90 switch (changeSecurityDialog.newMethod) {90 switch (changeSecurityDialog.newMethod) {
91 case UbuntuSecurityPrivacyPanel.Passcode:91 case UbuntuSecurityPrivacyPanel.Passcode:
92 return i18n.tr("Change passcode")92 return i18n.tr("Change passcode…")
93 case UbuntuSecurityPrivacyPanel.Passphrase:93 case UbuntuSecurityPrivacyPanel.Passphrase:
94 return i18n.tr("Change passphrase")94 return i18n.tr("Change passphrase…")
95 default: // To stop the runtime complaining95 default: // To stop the runtime complaining
96 return ""96 return ""
97 }97 }
@@ -390,6 +390,7 @@
390390
391 onClicked: openDialog()391 onClicked: openDialog()
392 }392 }
393 showDivider: false
393 }394 }
394 }395 }
395}396}
396397
=== modified file 'plugins/security-privacy/PageComponent.qml'
--- plugins/security-privacy/PageComponent.qml 2014-08-11 11:05:58 +0000
+++ plugins/security-privacy/PageComponent.qml 2014-08-26 11:38:32 +0000
@@ -24,15 +24,20 @@
24import Ubuntu.Components 0.124import Ubuntu.Components 0.1
25import Ubuntu.Components.ListItems 0.1 as ListItem25import Ubuntu.Components.ListItems 0.1 as ListItem
26import SystemSettings 1.026import SystemSettings 1.0
27import Ubuntu.SystemSettings.Battery 1.0
27import Ubuntu.SystemSettings.Diagnostics 1.028import Ubuntu.SystemSettings.Diagnostics 1.0
28import Ubuntu.SystemSettings.SecurityPrivacy 1.029import Ubuntu.SystemSettings.SecurityPrivacy 1.0
2930
30ItemPage {31ItemPage {
31 id: root32 id: root
33 objectName: "securityPrivacyPage"
3234
33 title: i18n.tr("Security & Privacy")35 title: i18n.tr("Security & Privacy")
34 flickable: scrollWidget36 flickable: scrollWidget
3537
38 property alias usePowerd: batteryBackend.powerdRunning
39 property bool lockOnSuspend
40
36 UbuntuDiagnostics {41 UbuntuDiagnostics {
37 id: diagnosticsWidget42 id: diagnosticsWidget
38 }43 }
@@ -41,6 +46,10 @@
41 id: securityPrivacy46 id: securityPrivacy
42 }47 }
4348
49 UbuntuBatteryPanel {
50 id: batteryBackend
51 }
52
44 GSettings {53 GSettings {
45 id: unitySettings54 id: unitySettings
46 schema.id: "com.canonical.Unity.Lenses"55 schema.id: "com.canonical.Unity.Lenses"
@@ -53,6 +62,11 @@
53 }62 }
54 }63 }
5564
65 GSettings {
66 id: powerSettings
67 schema.id: usePowerd ? "com.ubuntu.touch.system" : "org.gnome.desktop.session"
68 }
69
56 Flickable {70 Flickable {
57 id: scrollWidget71 id: scrollWidget
58 anchors.fill: parent72 anchors.fill: parent
@@ -68,42 +82,34 @@
6882
69 ListItem.Standard {83 ListItem.Standard {
70 id: securityTitle84 id: securityTitle
71 text: i18n.tr("Security:")85 text: i18n.tr("Security")
72 // visible: lockingControl.visible || simControl.visible86 }
73 }
74 /* When more of the phone locking page is implemented, we can
75 * remove the next item below, which is a duplicate of an item in
76 * PhoneLocking.qml, and uncomment the visible line above. */
77 ListItem.SingleValue {87 ListItem.SingleValue {
78 property string swipe: i18n.tr("None")88 id: lockingControl
79 property string passcode: i18n.tr("Passcode")89 objectName: "lockingControl"
80 property string passphrase: i18n.tr("Passphrase")90 text: i18n.tr("Lock phone")
81
82 text: i18n.tr("Lock security")
83 value: {91 value: {
84 switch (securityPrivacy.securityType) {92 if (batteryBackend.powerdRunning ) {
85 case UbuntuSecurityPrivacyPanel.Swipe:93 var timeout = Math.round(powerSettings.activityTimeout/60)
86 return swipe94 return (powerSettings.activityTimeout != 0) ?
87 case UbuntuSecurityPrivacyPanel.Passcode:95 // TRANSLATORS: %1 is the number of minutes
88 return passcode96 i18n.tr("After %1 minute",
89 case UbuntuSecurityPrivacyPanel.Passphrase:97 "After %1 minutes",
90 return passphrase98 timeout).arg(timeout) :
99 i18n.tr("Never")
100 }
101 else {
102 var timeout = Math.round(powerSettings.idleDelay/60)
103 return (powerSettings.idleDelay != 0) ?
104 // TRANSLATORS: %1 is the number of minutes
105 i18n.tr("After %1 minute",
106 "After %1 minutes",
107 timeout).arg(timeout) :
108 i18n.tr("Manually")
91 }109 }
92 }110 }
93 progression: true111 progression: true
94 onClicked: pageStack.push(Qt.resolvedUrl("LockSecurity.qml"))112 onClicked: pageStack.push(Qt.resolvedUrl("PhoneLocking.qml"), {usePowerd: usePowerd, powerSettings: powerSettings})
95 visible: !showAllUI
96 }
97 ListItem.SingleValue {
98 id: lockingControl
99 text: i18n.tr("Phone locking")
100 // TRANSLATORS: %1 is the number of minutes
101 value: i18n.tr("%1 minute",
102 "%1 minutes",
103 5).arg(5)
104 progression: true
105 onClicked: pageStack.push(Qt.resolvedUrl("PhoneLocking.qml"))
106 visible: showAllUI
107 }113 }
108 ListItem.SingleValue {114 ListItem.SingleValue {
109 id: simControl115 id: simControl
@@ -111,10 +117,24 @@
111 value: "Off"117 value: "Off"
112 progression: true118 progression: true
113 visible: showAllUI119 visible: showAllUI
114 }120 /* Not implemented yet */
115 ListItem.Standard {121 //onClicked: pageStack.push(Qt.resolvedUrl("SimPin.qml"))
116 text: i18n.tr("Privacy:")122 }
117 visible: securityTitle.visible123 ListItem.Standard {
124 text: i18n.tr("Encryption")
125 control: Switch {
126 id: encryptionSwitch
127 checked: false
128 }
129 visible: showAllUI
130 }
131 ListItem.Caption {
132 text: i18n.tr(
133 "Encryption protects against access to phone data when the phone is connected to a PC or other device.")
134 visible: showAllUI
135 }
136 ListItem.Standard {
137 text: i18n.tr("Privacy")
118 }138 }
119 ListItem.Standard {139 ListItem.Standard {
120 text: i18n.tr("Stats on welcome screen")140 text: i18n.tr("Stats on welcome screen")
@@ -164,7 +184,8 @@
164 }184 }
165 ListItem.SingleValue {185 ListItem.SingleValue {
166 text: i18n.tr("Location access")186 text: i18n.tr("Location access")
167 value: "On"187 value: locationActionGroup.enabled.state ?
188 i18n.tr("On") : i18n.tr("Off")
168 progression: true189 progression: true
169 onClicked: pageStack.push(Qt.resolvedUrl("Location.qml"))190 onClicked: pageStack.push(Qt.resolvedUrl("Location.qml"))
170 visible: showAllUI && // Hidden until the indicator works191 visible: showAllUI && // Hidden until the indicator works
@@ -190,7 +211,6 @@
190 pageStack.push(Qt.resolvedUrl(path));211 pageStack.push(Qt.resolvedUrl(path));
191 }212 }
192 }213 }
193
194 }214 }
195 }215 }
196}216}
197217
=== modified file 'plugins/security-privacy/PhoneLocking.qml'
--- plugins/security-privacy/PhoneLocking.qml 2014-06-24 18:50:41 +0000
+++ plugins/security-privacy/PhoneLocking.qml 2014-08-26 11:38:32 +0000
@@ -26,8 +26,13 @@
26import Ubuntu.SystemSettings.SecurityPrivacy 1.026import Ubuntu.SystemSettings.SecurityPrivacy 1.0
2727
28ItemPage {28ItemPage {
29 id: root
30 objectName: "phoneLockingPage"
29 title: i18n.tr("Phone locking")31 title: i18n.tr("Phone locking")
3032
33 property bool usePowerd
34 property variant powerSettings
35
31 UbuntuSecurityPrivacyPanel {36 UbuntuSecurityPrivacyPanel {
32 id: securityPrivacy37 id: securityPrivacy
33 }38 }
@@ -57,14 +62,31 @@
57 }62 }
5863
59 ListItem.SingleValue {64 ListItem.SingleValue {
65 objectName: "lockTimeout"
60 property bool lockOnSuspend: securityPrivacy.securityType !==66 property bool lockOnSuspend: securityPrivacy.securityType !==
61 UbuntuSecurityPrivacyPanel.Swipe67 UbuntuSecurityPrivacyPanel.Swipe
62 text: lockOnSuspend ? i18n.tr("Lock when idle")68 text: lockOnSuspend ? i18n.tr("Lock when idle")
63 : i18n.tr("Sleep when idle")69 : i18n.tr("Sleep when idle")
64 // TRANSLATORS: %1 is the number of minutes70 value: {
65 value: i18n.tr("%1 minute",71 if (usePowerd) {
66 "%1 minutes",72 var timeout = Math.round(powerSettings.activityTimeout/60)
67 5).arg(5)73 return (powerSettings.activityTimeout != 0) ?
74 // TRANSLATORS: %1 is the number of minutes
75 i18n.tr("%1 minute",
76 "%1 minutes",
77 timeout).arg(timeout) :
78 i18n.tr("Never")
79 }
80 else {
81 var timeout = Math.round(powerSettings.idleDelay/60)
82 return (powerSettings.idleDelay != 0) ?
83 // TRANSLATORS: %1 is the number of minutes
84 i18n.tr("%1 minute",
85 "%1 minutes",
86 timeout).arg(timeout) :
87 i18n.tr("Never")
88 }
89 }
68 progression: true90 progression: true
69 onClicked:91 onClicked:
70 pageStack.push(92 pageStack.push(
@@ -77,6 +99,7 @@
77 checked: true99 checked: true
78 }100 }
79 text: i18n.tr("Sleep locks immediately")101 text: i18n.tr("Sleep locks immediately")
102 visible: showAllUI
80 }103 }
81104
82 /* TODO: once we know how to do this105 /* TODO: once we know how to do this
83106
=== modified file 'plugins/security-privacy/trust-store-model.cpp'
--- plugins/security-privacy/trust-store-model.cpp 2014-08-19 13:00:15 +0000
+++ plugins/security-privacy/trust-store-model.cpp 2014-08-26 11:38:32 +0000
@@ -179,7 +179,7 @@
179 Q_Q(TrustStoreModel);179 Q_Q(TrustStoreModel);
180180
181 Q_ASSERT(trustStore);181 Q_ASSERT(trustStore);
182 Q_ASSERT(row >= 0 && row < d->applications.count());182 Q_ASSERT(row >= 0 && row < applications.count());
183183
184 Application &app = applications[row];184 Application &app = applications[row];
185 app.grantedFeatures.clear();185 app.grantedFeatures.clear();
186186
=== modified file 'plugins/system-update/PageComponent.qml'
--- plugins/system-update/PageComponent.qml 2014-08-15 09:03:46 +0000
+++ plugins/system-update/PageComponent.qml 2014-08-26 11:38:32 +0000
@@ -33,7 +33,7 @@
33 objectName: "systemUpdatesPage"33 objectName: "systemUpdatesPage"
3434
35 title: i18n.tr("Updates")35 title: i18n.tr("Updates")
36 flickable: null36 flickable: scrollWidget
3737
38 property bool installAll: false38 property bool installAll: false
39 property bool includeSystemUpdate: false39 property bool includeSystemUpdate: false
@@ -140,9 +140,6 @@
140140
141 onCredentialsNotFound: {141 onCredentialsNotFound: {
142 credentialsNotification.visible = true;142 credentialsNotification.visible = true;
143 notification.text = i18n.tr("Please log into your Ubuntu One account.");
144 notification.progression = true;
145 notificationAction = root.open_online_accounts;
146 }143 }
147144
148 onSystemUpdateDownloaded: {145 onSystemUpdateDownloaded: {
@@ -152,320 +149,312 @@
152149
153 onSystemUpdateFailed: {150 onSystemUpdateFailed: {
154 root.state = "SYSTEMUPDATEFAILED";151 root.state = "SYSTEMUPDATEFAILED";
155 if (lastReason) {
156 notification.text = lastReason;
157 } else {
158 notification.text = i18n.tr("System update has failed.");
159 }
160 notification.progression = false;
161 notificationAction = undefined;
162 }152 }
163153
164 onUpdateProcessFailed: {154 onUpdateProcessFailed: {
165 root.state = "SYSTEMUPDATEFAILED";155 root.state = "SYSTEMUPDATEFAILED";
166 if (message) {156 }
167 notification.text = message;157 }
168 } else {158 Flickable {
169 notification.text = i18n.tr("System update failed.");159 id: scrollWidget
170 }160
171 }161 anchors.top: parent.top
172 }162 anchors.left: parent.left
173163 anchors.right: parent.right
174 Item {164 anchors.bottom: configuration.top
175 id: checkForUpdatesArea165
176 objectName: "checkForUpdatesArea"166 contentHeight: contentItem.childrenRect.height
177 visible: false167 boundsBehavior: (contentHeight > root.height) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds
178 anchors {
179 left: parent.left
180 right: parent.right
181 top: parent.top
182 topMargin: units.gu(2)
183 leftMargin: units.gu(4)
184 rightMargin: units.gu(4)
185 }
186 height: installAllButton.height
187
188 ActivityIndicator {
189 id: activity
190 running: checkForUpdatesArea.visible
191 visible: activity.running
192 anchors {
193 left: parent.left
194 top: parent.top
195 topMargin: units.gu(1)
196 }
197 }
198
199 Label {
200 text: i18n.tr("Checking for updates…")
201 verticalAlignment: Text.AlignVCenter
202 elide: Text.ElideRight
203 anchors {
204 left: activity.right
205 top: parent.top
206 right: checkForUpdatesArea.right
207 bottom: parent.bottom
208 leftMargin: units.gu(2)
209 rightMargin: units.gu(2)
210 }
211 }
212 }
213
214 Button {
215 id: installAllButton
216 objectName: "installAllButton"
217
218 property string primaryText: includeSystemUpdate ? i18n.tr("Install %1 updates…").arg(root.updatesAvailable) : i18n.tr("Install %1 updates").arg(root.updatesAvailable)
219 property string secondaryText: i18n.tr("Pause All")
220 text: root.installAll ? secondaryText : primaryText
221 anchors {
222 left: parent.left
223 right: parent.right
224 top: parent.top
225 topMargin: units.gu(2)
226 leftMargin: units.gu(4)
227 rightMargin: units.gu(4)
228 }
229 visible: false
230
231 color: UbuntuColors.orange
232 onClicked: {
233 root.installAll = !root.installAll;
234 for (var i=0; i < updateList.count; i++) {
235 updateList.currentIndex = i;
236 var item = updateList.currentItem;
237 var modelItem = updateManager.model[i];
238 if (modelItem.updateState != root.installAll && !modelItem.updateReady) {
239 item.actionButton.clicked();
240 }
241 }
242 }
243 opacity: root.updatesAvailable > 0 ? 1 : 0
244
245 Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SlowDuration
246 easing: UbuntuAnimation.StandardEasing } }
247 }
248
249 ListView {
250 id: updateList
251 objectName: "updateList"
252 visible: false
253 anchors {
254 left: parent.left
255 right: parent.right
256 top: installAllButton.visible ? installAllButton.bottom : parent.top
257 bottom: notification.visible ? notification.top : configuration.top
258 margins: units.gu(2)
259 bottomMargin: 0
260 }
261 model: updateManager.model
262 clip: true168 clip: true
263 contentHeight: contentItem.childrenRect.height169 /* Set the direction to workaround https://bugreports.qt-project.org/browse/QTBUG-31905
264 boundsBehavior: (contentHeight > (root.height - checkForUpdatesArea.height)) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds170 otherwise the UI might end up in a situation where scrolling doesn't work */
265171 flickableDirection: Flickable.VerticalFlick
266 delegate: ListItem.Subtitled {172
267 id: listItem173 Column {
268 iconSource: Qt.resolvedUrl(modelData.iconUrl)174 id: columnId
269 height: modelData.selected ? units.gu(14) : units.gu(8)175
270 showDivider: false176 anchors.left: parent.left
271177 anchors.right: parent.right
272 property alias actionButton: buttonAppUpdate178
273179 ListItem.Base {
274 Rectangle {180 id: checkForUpdatesArea
275 id: textArea181 objectName: "checkForUpdatesArea"
276 objectName: "textArea"182 showDivider: false
277 color: "transparent"183 visible: false
278 anchors.fill: parent184
279 anchors.topMargin: units.gu(1)185 ActivityIndicator {
280186 id: activity
281 property string message: modelData.error187 running: checkForUpdatesArea.visible
282 property bool retry: false188 visible: activity.running
283189 anchors {
284 onMessageChanged: {190 left: parent.left
285 if(message.length > 0) {191 top: parent.top
286 labelVersion.text = message;192 rightMargin: units.gu(2)
287 buttonAppUpdate.text = i18n.tr("Retry");193 }
288 modelData.updateState = false;194 height: parent.height
289 modelData.selected = false;195 }
290 textArea.retry = true;196
291 }197 Label {
292 }198 text: i18n.tr("Checking for updates…")
293199 verticalAlignment: Text.AlignVCenter
294 Button {200 elide: Text.ElideRight
295 id: buttonAppUpdate201 anchors {
296 objectName: "buttonAppUpdate"202 left: activity.right
297 anchors.top: parent.top203 top: parent.top
298 anchors.right: parent.right204 leftMargin: units.gu(2)
299 anchors.topMargin: units.gu(1)205 }
300 anchors.rightMargin: units.gu(1)206 height: parent.height
301 height: labelTitle.height207 }
302208 }
303 property string actionText: modelData.systemUpdate ? i18n.tr("Download") : i18n.tr("Update")209
304 property string primaryText: modelData.selected ? i18n.tr("Resume") : actionText210 ListItem.SingleControl {
305 property string secondaryText: i18n.tr("Pause")211 id: installAllButton
306212 objectName: "installAllButton"
307 text: modelData.updateState ? secondaryText : primaryText213
214 control: Button {
215 property string primaryText: includeSystemUpdate ?
216 i18n.tr("Install %1 update…", "Install %1 updates…", root.updatesAvailable).arg(root.updatesAvailable) :
217 i18n.tr("Install %1 update", "Install %1 updates", root.updatesAvailable).arg(root.updatesAvailable)
218 property string secondaryText: i18n.tr("Pause All")
219 color: UbuntuColors.orange
220 text: root.installAll ? secondaryText : primaryText
221 width: parent.width - units.gu(4)
308222
309 onClicked: {223 onClicked: {
310 if (textArea.retry) {224 root.installAll = !root.installAll;
311 textArea.retry = false;225 for (var i=0; i < updateList.count; i++) {
312 updateManager.retryDownload(modelData.packageName);226 updateList.currentIndex = i;
313 } else if (modelData.updateReady) {227 var item = updateList.currentItem;
314 updateManager.applySystemUpdate();228 var modelItem = updateManager.model[i];
315 installingImageUpdate.visible = true;229 if (modelItem.updateState != root.installAll && !modelItem.updateReady) {
316 } else if (modelData.updateState) {230 item.actionButton.clicked();
317 if (modelData.systemUpdate) {231 }
318 updateManager.pauseDownload(modelData.packageName);232 }
319 } else {233 }
234 }
235 }
236
237 ListView {
238 id: updateList
239 objectName: "updateList"
240 anchors {
241 left: parent.left
242 right: parent.right
243 }
244 model: updateManager.model
245 height: contentItem.childrenRect.height
246 interactive: false
247
248 delegate: ListItem.Subtitled {
249 id: listItem
250 iconSource: Qt.resolvedUrl(modelData.iconUrl)
251 height: modelData.selected ? units.gu(14) : units.gu(8)
252 showDivider: false
253
254 property alias actionButton: buttonAppUpdate
255
256 Rectangle {
257 id: textArea
258 objectName: "textArea"
259 color: "transparent"
260 anchors.fill: parent
261 anchors.topMargin: units.gu(1)
262
263 property string message: modelData.error
264 property bool retry: false
265
266 onMessageChanged: {
267 if(message.length > 0) {
268 labelVersion.text = message;
269 buttonAppUpdate.text = i18n.tr("Retry");
320 modelData.updateState = false;270 modelData.updateState = false;
321 tracker.pause();271 modelData.selected = false;
322 }272 textArea.retry = true;
323 } else {273 }
324 if (!modelData.selected || modelData.systemUpdate) {274 }
325 modelData.selected = true;275
326 updateManager.startDownload(modelData.packageName);276 Button {
327 } else {277 id: buttonAppUpdate
328 modelData.updateState = true;278 objectName: "buttonAppUpdate"
329 tracker.resume();279 anchors.top: parent.top
330 }280 anchors.right: parent.right
331 }281 anchors.topMargin: units.gu(1)
332 }282 anchors.rightMargin: units.gu(1)
333 }283 height: labelTitle.height
334284
335 Label {285 property string actionText: modelData.systemUpdate ? i18n.tr("Download") : i18n.tr("Update")
336 id: labelSize286 property string primaryText: modelData.selected ? i18n.tr("Resume") : actionText
337 objectName: "labelSize"287 property string secondaryText: i18n.tr("Pause")
338 text: convert_bytes_to_size(modelData.binaryFilesize)288
339 anchors.bottom: labelVersion.bottom289 text: modelData.updateState ? secondaryText : primaryText
340 anchors.right: parent.right290
341 anchors.rightMargin: units.gu(1)291 onClicked: {
342 visible: !modelData.selected292 if (textArea.retry) {
343 }293 textArea.retry = false;
344294 updateManager.retryDownload(modelData.packageName);
345 Label {295 } else if (modelData.updateReady) {
346 id: labelTitle296 updateManager.applySystemUpdate();
347 objectName: "labelTitle"297 installingImageUpdate.visible = true;
348 anchors {298 } else if (modelData.updateState) {
349 top: parent.top299 if (modelData.systemUpdate) {
350 left: parent.left300 updateManager.pauseDownload(modelData.packageName);
351 right: buttonAppUpdate.left301 } else {
352 topMargin: units.gu(1)302 modelData.updateState = false;
353 rightMargin: units.gu(1)303 tracker.pause();
354 }304 }
355 height: units.gu(3)305 } else {
356 text: modelData.title306 if (!modelData.selected || modelData.systemUpdate) {
357 font.bold: true307 modelData.selected = true;
358 elide: buttonAppUpdate.visible ? Text.ElideRight : Text.ElideNone308 updateManager.startDownload(modelData.packageName);
359 }309 } else {
360310 modelData.updateState = true;
361 Label {311 tracker.resume();
362 id: labelUpdateStatus312 }
363 objectName: "labelUpdateStatus"313 }
364 text: i18n.tr("Installing")314 }
365 anchors.top: labelTitle.bottom315 }
366 anchors.left: parent.left316
367 anchors.right: parent.right317 Label {
368 opacity: modelData.selected ? 1 : 0318 id: labelSize
369 anchors.bottomMargin: units.gu(1)319 objectName: "labelSize"
370320 text: convert_bytes_to_size(modelData.binaryFilesize)
371 Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } }321 anchors.bottom: labelVersion.bottom
372 }322 anchors.right: parent.right
373323 anchors.rightMargin: units.gu(1)
374 ProgressBar {324 visible: !modelData.selected
375 id: progress325 }
376 objectName: "progress"326
377 height: units.gu(2)327 Label {
378 anchors.left: parent.left328 id: labelTitle
379 anchors.top: labelUpdateStatus.bottom329 objectName: "labelTitle"
380 anchors.topMargin: units.gu(1)330 anchors {
381 anchors.right: parent.right331 top: parent.top
382 opacity: modelData.selected ? 1 : 0332 left: parent.left
383 value: modelData.systemUpdate ? modelData.downloadProgress : tracker.progress333 right: buttonAppUpdate.left
384 minimumValue: 0334 topMargin: units.gu(1)
385 maximumValue: 100335 rightMargin: units.gu(1)
386336 }
387 DownloadTracker {337 height: units.gu(3)
388 id: tracker338 text: modelData.title
389 objectName: "tracker"339 font.bold: true
390 packageName: modelData.packageName340 elide: buttonAppUpdate.visible ? Text.ElideRight : Text.ElideNone
391 clickToken: modelData.clickToken341 }
392 download: modelData.downloadUrl342
393343 Label {
394 onFinished: {344 id: labelUpdateStatus
395 progress.visible = false;345 objectName: "labelUpdateStatus"
396 buttonAppUpdate.visible = false;346 text: i18n.tr("Installing")
397 textArea.message = i18n.tr("Installed");347 anchors.top: labelTitle.bottom
398 root.updatesAvailable -= 1;348 anchors.left: parent.left
399 }349 anchors.right: parent.right
400350 opacity: modelData.selected ? 1 : 0
401 onErrorFound: {351 anchors.bottomMargin: units.gu(1)
402 modelData.updateState = false;352
403 textArea.message = error;353 Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } }
404 }354 }
405 }355
406356 ProgressBar {
407 Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } }357 id: progress
408 }358 objectName: "progress"
409359 height: units.gu(2)
410 Label {360 anchors.left: parent.left
411 id: labelVersion361 anchors.top: labelUpdateStatus.bottom
412 objectName: "labelVersion"362 anchors.topMargin: units.gu(1)
413 anchors {363 anchors.right: parent.right
414 left: parent.left364 opacity: modelData.selected ? 1 : 0
415 right: buttonAppUpdate.right365 value: modelData.systemUpdate ? modelData.downloadProgress : tracker.progress
416 top: (!progress.visible || progress.opacity == 0) ? labelTitle.bottom : progress.bottom366 minimumValue: 0
417 topMargin: (!progress.visible || progress.opacity == 0) ? 0 : units.gu(1)367 maximumValue: 100
418 bottom: parent.bottom368
419 bottomMargin: units.gu(1)369 DownloadTracker {
420 }370 id: tracker
421 text: modelData.remoteVersion ? i18n.tr("Version: ") + modelData.remoteVersion : ""371 objectName: "tracker"
422 color: "black"372 packageName: modelData.packageName
423 elide: Text.ElideRight373 clickToken: modelData.clickToken
424 }374 download: modelData.downloadUrl
425 }375
426 }376 onFinished: {
427 }377 progress.visible = false;
428378 buttonAppUpdate.visible = false;
429 ListItem.Standard {379 textArea.message = i18n.tr("Installed");
430 id: notification380 root.updatesAvailable -= 1;
431 objectName: "notification"381 }
432 visible: updateNotification.visible || credentialsNotification.visible ? true : false382
433 anchors.bottom: configuration.top383 onErrorFound: {
434384 modelData.updateState = false;
435 onClicked: {385 textArea.message = error;
436 if (notificationAction) {386 }
437 notificationAction();387 }
438 }388
439 }389 Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.SleepyDuration } }
440 }390 }
441391
442 ListItem.SingleValue {392 Label {
443 id: configuration393 id: labelVersion
444 objectName: "configuration"394 objectName: "labelVersion"
445 anchors.bottom: parent.bottom395 anchors {
446 text: i18n.tr("Auto download")396 left: parent.left
447 value: {397 right: buttonAppUpdate.right
448 if (updateManager.downloadMode === 0)398 top: (!progress.visible || progress.opacity == 0) ? labelTitle.bottom : progress.bottom
449 return i18n.tr("Never")399 topMargin: (!progress.visible || progress.opacity == 0) ? 0 : units.gu(1)
450 else if (updateManager.downloadMode === 1)400 bottom: parent.bottom
451 return i18n.tr("On wi-fi")401 bottomMargin: units.gu(1)
452 else if (updateManager.downloadMode === 2)402 }
453 return i18n.tr("Always")403 text: modelData.remoteVersion ? i18n.tr("Version: ") + modelData.remoteVersion : ""
454 }404 color: "black"
455 progression: true405 elide: Text.ElideRight
456 onClicked: pageStack.push(Qt.resolvedUrl("Configuration.qml"), {updateManager: updateManager})406 }
407 }
408 }
409 }
410
411 Column {
412 id: credentialsNotification
413 objectName: "credentialsNotification"
414
415 visible: false
416
417 spacing: units.gu(2)
418 anchors {
419 left: parent.left
420 right: parent.right
421 }
422 ListItem.ThinDivider {}
423
424 Label {
425 text: i18n.tr("Sign in to Ubuntu One to receive updates for apps.")
426 horizontalAlignment: Text.AlignHCenter
427 wrapMode: Text.Wrap
428 anchors {
429 left: parent.left
430 right: parent.right
431 }
432 }
433 Button {
434 text: i18n.tr("Sign In…")
435 anchors {
436 left: parent.left
437 right: parent.right
438 leftMargin: units.gu(2)
439 rightMargin: units.gu(2)
440 }
441 onClicked: open_online_accounts()
442 }
443
444 }
445
446
447 }
457 }448 }
458449
459 Rectangle {450 Rectangle {
460 id: updateNotification451 id: updateNotification
461 objectName: "updateNotification"452 objectName: "updateNotification"
462 anchors {453 anchors {
454 bottom: configuration.top
463 left: parent.left455 left: parent.left
464 right: parent.right456 right: parent.right
465 top: installAllButton.bottom457 top: parent.top
466 bottom: notification.visible ? notification.top : configuration.top
467 margins: units.gu(2)
468 bottomMargin: 0
469 }458 }
470 visible: false459 visible: false
471 property string text: ""460 property string text: ""
@@ -482,35 +471,14 @@
482 }471 }
483472
484 Rectangle {473 Rectangle {
485 id: credentialsNotification
486 objectName: "credentialsNotification"
487 anchors {
488 left: parent.left
489 right: parent.right
490 top: installAllButton.bottom
491 bottom: notification.visible ? notification.top : configuration.top
492 margins: units.gu(2)
493 bottomMargin: 0
494 }
495 visible: false
496
497 color: "transparent"
498
499 Column {
500 anchors.centerIn: parent
501
502 Label {
503 text: i18n.tr("Credentials not found")
504 anchors.horizontalCenter: parent.horizontalCenter
505 fontSize: "large"
506 }
507 }
508 }
509
510 Rectangle {
511 id: installingImageUpdate474 id: installingImageUpdate
512 objectName: "installingImageUpdate"475 objectName: "installingImageUpdate"
513 anchors.fill: parent476 anchors {
477 bottom: configuration.top
478 left: parent.left
479 right: parent.right
480 top: parent.top
481 }
514 visible: false482 visible: false
515483
516 color: "#221e1c"484 color: "#221e1c"
@@ -536,6 +504,29 @@
536 }504 }
537 }505 }
538506
507 Column {
508 id: configuration
509
510 anchors.bottom: parent.bottom
511 anchors.left: parent.left
512 anchors.right: parent.right
513 ListItem.ThinDivider {}
514 ListItem.SingleValue {
515 objectName: "configuration"
516 text: i18n.tr("Auto download")
517 value: {
518 if (updateManager.downloadMode === 0)
519 return i18n.tr("Never")
520 else if (updateManager.downloadMode === 1)
521 return i18n.tr("On wi-fi")
522 else if (updateManager.downloadMode === 2)
523 return i18n.tr("Always")
524 }
525 progression: true
526 onClicked: pageStack.push(Qt.resolvedUrl("Configuration.qml"), {updateManager: updateManager})
527 }
528 }
529
539 function convert_bytes_to_size(bytes) {530 function convert_bytes_to_size(bytes) {
540 var SIZE_IN_GIB = 1024.0 * 1024.0 * 1024.0;531 var SIZE_IN_GIB = 1024.0 * 1024.0 * 1024.0;
541 var SIZE_IN_MIB = 1024.0 * 1024.0;532 var SIZE_IN_MIB = 1024.0 * 1024.0;
542533
=== modified file 'plugins/system-update/update_manager.cpp'
--- plugins/system-update/update_manager.cpp 2014-05-13 14:30:04 +0000
+++ plugins/system-update/update_manager.cpp 2014-08-26 11:38:32 +0000
@@ -40,7 +40,8 @@
40 QObject(parent),40 QObject(parent),
41 m_systemCheckingUpdate(false),41 m_systemCheckingUpdate(false),
42 m_clickCheckingUpdate(false),42 m_clickCheckingUpdate(false),
43 m_checkingUpdates(0)43 m_checkingUpdates(0),
44 m_downloadMode(-1)
44{45{
45 // SSO SERVICE46 // SSO SERVICE
46 QObject::connect(&m_service, SIGNAL(credentialsFound(const Token&)),47 QObject::connect(&m_service, SIGNAL(credentialsFound(const Token&)),
4748
=== modified file 'plugins/time-date/timezonelocationmodel.cpp'
--- plugins/time-date/timezonelocationmodel.cpp 2014-06-11 13:05:23 +0000
+++ plugins/time-date/timezonelocationmodel.cpp 2014-08-26 11:38:32 +0000
@@ -134,6 +134,7 @@
134 return QVariant();134 return QVariant();
135 break;135 break;
136 }136 }
137 throw "Unreachable code";
137}138}
138139
139QHash<int, QByteArray> TimeZoneLocationModel::roleNames() const140QHash<int, QByteArray> TimeZoneLocationModel::roleNames() const
@@ -193,11 +194,10 @@
193 TzDB *tzdb = tz_load_db();194 TzDB *tzdb = tz_load_db();
194 GPtrArray *tz_locations = tz_get_locations(tzdb);195 GPtrArray *tz_locations = tz_get_locations(tzdb);
195196
196 CcTimezoneLocation *tmp;
197 TimeZoneLocationModel::TzLocation tmpTz;197 TimeZoneLocationModel::TzLocation tmpTz;
198198
199 for (guint i = 0; i < tz_locations->len; ++i) {199 for (guint i = 0; i < tz_locations->len; ++i) {
200 tmp = (CcTimezoneLocation *) g_ptr_array_index(tz_locations, i);200 auto tmp = static_cast<CcTimezoneLocation *>(g_ptr_array_index(tz_locations, i));
201 gchar *en_name, *country, *zone, *state, *full_country;201 gchar *en_name, *country, *zone, *state, *full_country;
202 g_object_get (tmp, "en_name", &en_name,202 g_object_get (tmp, "en_name", &en_name,
203 "country", &country,203 "country", &country,
204204
=== modified file 'po/am.po'
--- po/am.po 2014-08-22 07:38:19 +0000
+++ po/am.po 2014-08-26 11:38:32 +0000
@@ -15,7 +15,7 @@
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18"X-Launchpad-Export-Date: 2014-08-22 07:37+0000\n"18"X-Launchpad-Export-Date: 2014-08-23 07:14+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
2020
21#: ../plugins/language//SpellChecking.qml:2721#: ../plugins/language//SpellChecking.qml:27
2222
=== modified file 'po/en_AU.po'
--- po/en_AU.po 2014-08-20 06:22:04 +0000
+++ po/en_AU.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-13 02:03+0000\n"11"PO-Revision-Date: 2014-08-23 02:38+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"13"Language-Team: English (Australia) <en_AU@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"X-Launchpad-Export-Date: 2014-08-20 06:21+0000\n"18"X-Launchpad-Export-Date: 2014-08-24 06:45+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
2020
21#: ../plugins/language//SpellChecking.qml:2721#: ../plugins/language//SpellChecking.qml:27
@@ -50,7 +50,7 @@
5050
51#: ../plugins/language//PageComponent.qml:12851#: ../plugins/language//PageComponent.qml:128
52msgid "Auto correction"52msgid "Auto correction"
53msgstr ""53msgstr "Auto correction"
5454
55#: ../plugins/language//PageComponent.qml:13855#: ../plugins/language//PageComponent.qml:138
56msgid "Word suggestions"56msgid "Word suggestions"
@@ -66,12 +66,13 @@
6666
67#: ../plugins/language//PageComponent.qml:16867#: ../plugins/language//PageComponent.qml:168
68msgid "Auto punctuation"68msgid "Auto punctuation"
69msgstr ""69msgstr "Auto punctuation"
7070
71#: ../plugins/language//PageComponent.qml:17871#: ../plugins/language//PageComponent.qml:178
72msgid ""72msgid ""
73"Adds a period, and any missing quotes or brackets, when you tap Space twice."73"Adds a period, and any missing quotes or brackets, when you tap Space twice."
74msgstr ""74msgstr ""
75"Adds a period, and any missing quotes or brackets, when you tap Space twice."
7576
76#: ../plugins/language//PageComponent.qml:18577#: ../plugins/language//PageComponent.qml:185
77#: ../plugins/sound//PageComponent.qml:18678#: ../plugins/sound//PageComponent.qml:186
@@ -80,7 +81,7 @@
8081
81#: ../plugins/language//PageComponent.qml:19582#: ../plugins/language//PageComponent.qml:195
82msgid "Keyboard vibration"83msgid "Keyboard vibration"
83msgstr ""84msgstr "Keyboard vibration"
8485
85#: ../plugins/language//KeyboardLayouts.qml:3986#: ../plugins/language//KeyboardLayouts.qml:39
86msgid "Current layouts:"87msgid "Current layouts:"
@@ -310,7 +311,7 @@
310311
311#: ../plugins/security-privacy//AppAccess.qml:35312#: ../plugins/security-privacy//AppAccess.qml:35
312msgid "Apps that you have granted and have requested access to:"313msgid "Apps that you have granted and have requested access to:"
313msgstr ""314msgstr "Apps that you have granted and have requested access to:"
314315
315#: ../plugins/security-privacy//AppAccess.qml:41316#: ../plugins/security-privacy//AppAccess.qml:41
316#: ../plugins/bluetooth//PageComponent.qml:100317#: ../plugins/bluetooth//PageComponent.qml:100
@@ -319,24 +320,24 @@
319320
320#: ../plugins/security-privacy//AppAccess.qml:42321#: ../plugins/security-privacy//AppAccess.qml:42
321msgid "Apps that have requested access to your camera"322msgid "Apps that have requested access to your camera"
322msgstr ""323msgstr "Apps that have requested access to your camera"
323324
324#: ../plugins/security-privacy//AppAccess.qml:46325#: ../plugins/security-privacy//AppAccess.qml:46
325msgid "Mic"326msgid "Mic"
326msgstr ""327msgstr "Mic"
327328
328#: ../plugins/security-privacy//AppAccess.qml:47329#: ../plugins/security-privacy//AppAccess.qml:47
329msgid "Apps that have requested access to your mic"330msgid "Apps that have requested access to your mic"
330msgstr ""331msgstr "Apps that have requested access to your mic"
331332
332#: ../plugins/security-privacy//AppAccess.qml:59333#: ../plugins/security-privacy//AppAccess.qml:59
333#, qt-format334#, qt-format
334msgid "%1/%2"335msgid "%1/%2"
335msgstr ""336msgstr "%1/%2"
336337
337#: ../plugins/security-privacy//AppAccess.qml:60338#: ../plugins/security-privacy//AppAccess.qml:60
338msgid "0"339msgid "0"
339msgstr ""340msgstr "0"
340341
341#: ../plugins/security-privacy//LockSecurity.qml:92342#: ../plugins/security-privacy//LockSecurity.qml:92
342msgid "Change passcode"343msgid "Change passcode"
@@ -1075,7 +1076,7 @@
1075#: ../plugins/battery//PageComponent.qml:2901076#: ../plugins/battery//PageComponent.qml:290
1076#: ../plugins/brightness//BrightnessSlider.qml:511077#: ../plugins/brightness//BrightnessSlider.qml:51
1077msgid "Display brightness"1078msgid "Display brightness"
1078msgstr ""1079msgstr "Display brightness"
10791080
1080#. TRANSLATORS: %1 is the number of minutes1081#. TRANSLATORS: %1 is the number of minutes
1081#: ../plugins/battery//PageComponent.qml:3061082#: ../plugins/battery//PageComponent.qml:306
@@ -1418,7 +1419,7 @@
14181419
1419#: ../plugins/brightness//PageComponent.qml:651420#: ../plugins/brightness//PageComponent.qml:65
1420msgid "Brightens and dims the display to suit the surroundings."1421msgid "Brightens and dims the display to suit the surroundings."
1421msgstr ""1422msgstr "Brightens and dims the display to suit the surroundings."
14221423
1423#. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching1424#. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching
1424#: ../plugins/sound//PageComponent.qml:381425#: ../plugins/sound//PageComponent.qml:38
@@ -1564,27 +1565,27 @@
15641565
1565#: ../wizard/qml/Pages//15-passwd.qml:371566#: ../wizard/qml/Pages//15-passwd.qml:37
1566msgid "Set lock security"1567msgid "Set lock security"
1567msgstr ""1568msgstr "Set lock security"
15681569
1569#: ../wizard/qml/Pages//15-passwd.qml:861570#: ../wizard/qml/Pages//15-passwd.qml:86
1570msgid "Swipe"1571msgid "Swipe"
1571msgstr ""1572msgstr "Swipe"
15721573
1573#: ../wizard/qml/Pages//15-passwd.qml:1361574#: ../wizard/qml/Pages//15-passwd.qml:136
1574msgid "Those passcodes don't match."1575msgid "Those passcodes don't match."
1575msgstr ""1576msgstr "Those passcodes don't match."
15761577
1577#: ../wizard/qml/Pages//15-passwd.qml:1381578#: ../wizard/qml/Pages//15-passwd.qml:138
1578msgid "Those passphrases don't match."1579msgid "Those passphrases don't match."
1579msgstr ""1580msgstr "Those passphrases don't match."
15801581
1581#: ../wizard/qml/Pages//15-passwd.qml:1461582#: ../wizard/qml/Pages//15-passwd.qml:146
1582msgid "Passcode must be at least four digits long."1583msgid "Passcode must be at least four digits long."
1583msgstr ""1584msgstr "Passcode must be at least four digits long."
15841585
1585#: ../wizard/qml/Pages//15-passwd.qml:1481586#: ../wizard/qml/Pages//15-passwd.qml:148
1586msgid "Passphrase must be at least four characters long."1587msgid "Passphrase must be at least four characters long."
1587msgstr ""1588msgstr "Passphrase must be at least four characters long."
15881589
1589#: ../wizard/qml/Pages//10-welcome.qml:251590#: ../wizard/qml/Pages//10-welcome.qml:25
1590msgid "Hello"1591msgid "Hello"
@@ -1890,8 +1891,8 @@
18901891
1891#: ../push-helper/software-updates-helper.py:781892#: ../push-helper/software-updates-helper.py:78
1892msgid "There's an updated system image."1893msgid "There's an updated system image."
1893msgstr ""1894msgstr "There's an updated system image."
18941895
1895#: ../push-helper/software-updates-helper.py:791896#: ../push-helper/software-updates-helper.py:79
1896msgid "Tap to open the system updater."1897msgid "Tap to open the system updater."
1897msgstr ""1898msgstr "Tap to open the system updater."
18981899
=== modified file 'po/en_GB.po'
--- po/en_GB.po 2014-08-20 06:22:04 +0000
+++ po/en_GB.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-12 12:45+0000\n"11"PO-Revision-Date: 2014-08-22 11:37+0000\n"
12"Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n"12"Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"X-Launchpad-Export-Date: 2014-08-20 06:21+0000\n"18"X-Launchpad-Export-Date: 2014-08-23 07:15+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
2020
21#: ../plugins/language//SpellChecking.qml:2721#: ../plugins/language//SpellChecking.qml:27
@@ -50,7 +50,7 @@
5050
51#: ../plugins/language//PageComponent.qml:12851#: ../plugins/language//PageComponent.qml:128
52msgid "Auto correction"52msgid "Auto correction"
53msgstr ""53msgstr "Auto correction"
5454
55#: ../plugins/language//PageComponent.qml:13855#: ../plugins/language//PageComponent.qml:138
56msgid "Word suggestions"56msgid "Word suggestions"
@@ -66,12 +66,14 @@
6666
67#: ../plugins/language//PageComponent.qml:16867#: ../plugins/language//PageComponent.qml:168
68msgid "Auto punctuation"68msgid "Auto punctuation"
69msgstr ""69msgstr "Auto punctuation"
7070
71#: ../plugins/language//PageComponent.qml:17871#: ../plugins/language//PageComponent.qml:178
72msgid ""72msgid ""
73"Adds a period, and any missing quotes or brackets, when you tap Space twice."73"Adds a period, and any missing quotes or brackets, when you tap Space twice."
74msgstr ""74msgstr ""
75"Adds a full-stop, and any missing quotes or brackets, when you tap Space "
76"twice."
7577
76#: ../plugins/language//PageComponent.qml:18578#: ../plugins/language//PageComponent.qml:185
77#: ../plugins/sound//PageComponent.qml:18679#: ../plugins/sound//PageComponent.qml:186
@@ -80,7 +82,7 @@
8082
81#: ../plugins/language//PageComponent.qml:19583#: ../plugins/language//PageComponent.qml:195
82msgid "Keyboard vibration"84msgid "Keyboard vibration"
83msgstr ""85msgstr "Keyboard vibration"
8486
85#: ../plugins/language//KeyboardLayouts.qml:3987#: ../plugins/language//KeyboardLayouts.qml:39
86msgid "Current layouts:"88msgid "Current layouts:"
@@ -310,7 +312,7 @@
310312
311#: ../plugins/security-privacy//AppAccess.qml:35313#: ../plugins/security-privacy//AppAccess.qml:35
312msgid "Apps that you have granted and have requested access to:"314msgid "Apps that you have granted and have requested access to:"
313msgstr ""315msgstr "Apps that you have granted and have requested access to:"
314316
315#: ../plugins/security-privacy//AppAccess.qml:41317#: ../plugins/security-privacy//AppAccess.qml:41
316#: ../plugins/bluetooth//PageComponent.qml:100318#: ../plugins/bluetooth//PageComponent.qml:100
@@ -319,24 +321,24 @@
319321
320#: ../plugins/security-privacy//AppAccess.qml:42322#: ../plugins/security-privacy//AppAccess.qml:42
321msgid "Apps that have requested access to your camera"323msgid "Apps that have requested access to your camera"
322msgstr ""324msgstr "Apps that have requested access to your camera"
323325
324#: ../plugins/security-privacy//AppAccess.qml:46326#: ../plugins/security-privacy//AppAccess.qml:46
325msgid "Mic"327msgid "Mic"
326msgstr ""328msgstr "Mic"
327329
328#: ../plugins/security-privacy//AppAccess.qml:47330#: ../plugins/security-privacy//AppAccess.qml:47
329msgid "Apps that have requested access to your mic"331msgid "Apps that have requested access to your mic"
330msgstr ""332msgstr "Apps that have requested access to your mic"
331333
332#: ../plugins/security-privacy//AppAccess.qml:59334#: ../plugins/security-privacy//AppAccess.qml:59
333#, qt-format335#, qt-format
334msgid "%1/%2"336msgid "%1/%2"
335msgstr ""337msgstr "%1/%2"
336338
337#: ../plugins/security-privacy//AppAccess.qml:60339#: ../plugins/security-privacy//AppAccess.qml:60
338msgid "0"340msgid "0"
339msgstr ""341msgstr "0"
340342
341#: ../plugins/security-privacy//LockSecurity.qml:92343#: ../plugins/security-privacy//LockSecurity.qml:92
342msgid "Change passcode"344msgid "Change passcode"
@@ -1075,7 +1077,7 @@
1075#: ../plugins/battery//PageComponent.qml:2901077#: ../plugins/battery//PageComponent.qml:290
1076#: ../plugins/brightness//BrightnessSlider.qml:511078#: ../plugins/brightness//BrightnessSlider.qml:51
1077msgid "Display brightness"1079msgid "Display brightness"
1078msgstr ""1080msgstr "Display brightness"
10791081
1080#. TRANSLATORS: %1 is the number of minutes1082#. TRANSLATORS: %1 is the number of minutes
1081#: ../plugins/battery//PageComponent.qml:3061083#: ../plugins/battery//PageComponent.qml:306
@@ -1418,7 +1420,7 @@
14181420
1419#: ../plugins/brightness//PageComponent.qml:651421#: ../plugins/brightness//PageComponent.qml:65
1420msgid "Brightens and dims the display to suit the surroundings."1422msgid "Brightens and dims the display to suit the surroundings."
1421msgstr ""1423msgstr "Brightens and dims the display to suit the surroundings."
14221424
1423#. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching1425#. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching
1424#: ../plugins/sound//PageComponent.qml:381426#: ../plugins/sound//PageComponent.qml:38
@@ -1564,27 +1566,27 @@
15641566
1565#: ../wizard/qml/Pages//15-passwd.qml:371567#: ../wizard/qml/Pages//15-passwd.qml:37
1566msgid "Set lock security"1568msgid "Set lock security"
1567msgstr ""1569msgstr "Set lock security"
15681570
1569#: ../wizard/qml/Pages//15-passwd.qml:861571#: ../wizard/qml/Pages//15-passwd.qml:86
1570msgid "Swipe"1572msgid "Swipe"
1571msgstr ""1573msgstr "Swipe"
15721574
1573#: ../wizard/qml/Pages//15-passwd.qml:1361575#: ../wizard/qml/Pages//15-passwd.qml:136
1574msgid "Those passcodes don't match."1576msgid "Those passcodes don't match."
1575msgstr ""1577msgstr "Those passcodes don't match."
15761578
1577#: ../wizard/qml/Pages//15-passwd.qml:1381579#: ../wizard/qml/Pages//15-passwd.qml:138
1578msgid "Those passphrases don't match."1580msgid "Those passphrases don't match."
1579msgstr ""1581msgstr "Those passphrases don't match."
15801582
1581#: ../wizard/qml/Pages//15-passwd.qml:1461583#: ../wizard/qml/Pages//15-passwd.qml:146
1582msgid "Passcode must be at least four digits long."1584msgid "Passcode must be at least four digits long."
1583msgstr ""1585msgstr "Passcode must be at least four digits long."
15841586
1585#: ../wizard/qml/Pages//15-passwd.qml:1481587#: ../wizard/qml/Pages//15-passwd.qml:148
1586msgid "Passphrase must be at least four characters long."1588msgid "Passphrase must be at least four characters long."
1587msgstr ""1589msgstr "Passphrase must be at least four characters long."
15881590
1589#: ../wizard/qml/Pages//10-welcome.qml:251591#: ../wizard/qml/Pages//10-welcome.qml:25
1590msgid "Hello"1592msgid "Hello"
@@ -1890,8 +1892,8 @@
18901892
1891#: ../push-helper/software-updates-helper.py:781893#: ../push-helper/software-updates-helper.py:78
1892msgid "There's an updated system image."1894msgid "There's an updated system image."
1893msgstr ""1895msgstr "There's an updated system image."
18941896
1895#: ../push-helper/software-updates-helper.py:791897#: ../push-helper/software-updates-helper.py:79
1896msgid "Tap to open the system updater."1898msgid "Tap to open the system updater."
1897msgstr ""1899msgstr "Tap to open the system updater."
18981900
=== modified file 'po/es.po'
--- po/es.po 2014-08-20 06:22:04 +0000
+++ po/es.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-16 13:20+0000\n"11"PO-Revision-Date: 2014-08-26 05:19+0000\n"
12"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"12"Last-Translator: Leo Arias <leo.arias@canonical.com>\n"
13"Language-Team: Spanish <es@li.org>\n"13"Language-Team: Spanish <es@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"X-Launchpad-Export-Date: 2014-08-20 06:21+0000\n"18"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
2020
21#: ../plugins/language//SpellChecking.qml:2721#: ../plugins/language//SpellChecking.qml:27
@@ -50,7 +50,7 @@
5050
51#: ../plugins/language//PageComponent.qml:12851#: ../plugins/language//PageComponent.qml:128
52msgid "Auto correction"52msgid "Auto correction"
53msgstr ""53msgstr "Corrección automática"
5454
55#: ../plugins/language//PageComponent.qml:13855#: ../plugins/language//PageComponent.qml:138
56msgid "Word suggestions"56msgid "Word suggestions"
@@ -66,7 +66,7 @@
6666
67#: ../plugins/language//PageComponent.qml:16867#: ../plugins/language//PageComponent.qml:168
68msgid "Auto punctuation"68msgid "Auto punctuation"
69msgstr ""69msgstr "Puntuación automática"
7070
71#: ../plugins/language//PageComponent.qml:17871#: ../plugins/language//PageComponent.qml:178
72msgid ""72msgid ""
@@ -80,7 +80,7 @@
8080
81#: ../plugins/language//PageComponent.qml:19581#: ../plugins/language//PageComponent.qml:195
82msgid "Keyboard vibration"82msgid "Keyboard vibration"
83msgstr ""83msgstr "Vibración de teclado"
8484
85#: ../plugins/language//KeyboardLayouts.qml:3985#: ../plugins/language//KeyboardLayouts.qml:39
86msgid "Current layouts:"86msgid "Current layouts:"
@@ -216,13 +216,13 @@
216#. reports are to be sent by the system.216#. reports are to be sent by the system.
217#: ../plugins/security-privacy//PageComponent.qml:184217#: ../plugins/security-privacy//PageComponent.qml:184
218msgid "Sent"218msgid "Sent"
219msgstr "Enviado"219msgstr "Enviados"
220220
221#. TRANSLATORS: This string is shown when crash221#. TRANSLATORS: This string is shown when crash
222#. reports are not to be sent by the system222#. reports are not to be sent by the system
223#: ../plugins/security-privacy//PageComponent.qml:187223#: ../plugins/security-privacy//PageComponent.qml:187
224msgid "Not sent"224msgid "Not sent"
225msgstr "No enviado"225msgstr "No enviados"
226226
227#: ../plugins/security-privacy//PhoneLocking.qml:62227#: ../plugins/security-privacy//PhoneLocking.qml:62
228#: ../plugins/battery//PageComponent.qml:300228#: ../plugins/battery//PageComponent.qml:300
@@ -321,24 +321,24 @@
321321
322#: ../plugins/security-privacy//AppAccess.qml:42322#: ../plugins/security-privacy//AppAccess.qml:42
323msgid "Apps that have requested access to your camera"323msgid "Apps that have requested access to your camera"
324msgstr ""324msgstr "Aplicaciones que solicitaron acceso a la cámara"
325325
326#: ../plugins/security-privacy//AppAccess.qml:46326#: ../plugins/security-privacy//AppAccess.qml:46
327msgid "Mic"327msgid "Mic"
328msgstr ""328msgstr "Micrófono"
329329
330#: ../plugins/security-privacy//AppAccess.qml:47330#: ../plugins/security-privacy//AppAccess.qml:47
331msgid "Apps that have requested access to your mic"331msgid "Apps that have requested access to your mic"
332msgstr ""332msgstr "Aplicaciones que solicitaron acceso al micrófono"
333333
334#: ../plugins/security-privacy//AppAccess.qml:59334#: ../plugins/security-privacy//AppAccess.qml:59
335#, qt-format335#, qt-format
336msgid "%1/%2"336msgid "%1/%2"
337msgstr ""337msgstr "%1/%2"
338338
339#: ../plugins/security-privacy//AppAccess.qml:60339#: ../plugins/security-privacy//AppAccess.qml:60
340msgid "0"340msgid "0"
341msgstr ""341msgstr "0"
342342
343#: ../plugins/security-privacy//LockSecurity.qml:92343#: ../plugins/security-privacy//LockSecurity.qml:92
344msgid "Change passcode"344msgid "Change passcode"
@@ -1079,7 +1079,7 @@
1079#: ../plugins/battery//PageComponent.qml:2901079#: ../plugins/battery//PageComponent.qml:290
1080#: ../plugins/brightness//BrightnessSlider.qml:511080#: ../plugins/brightness//BrightnessSlider.qml:51
1081msgid "Display brightness"1081msgid "Display brightness"
1082msgstr ""1082msgstr "Brillo de pantalla"
10831083
1084#. TRANSLATORS: %1 is the number of minutes1084#. TRANSLATORS: %1 is the number of minutes
1085#: ../plugins/battery//PageComponent.qml:3061085#: ../plugins/battery//PageComponent.qml:306
@@ -1212,8 +1212,8 @@
1212"Selected apps can alert you using notification bubbles, sounds, vibrations, "1212"Selected apps can alert you using notification bubbles, sounds, vibrations, "
1213"and the Notification Center."1213"and the Notification Center."
1214msgstr ""1214msgstr ""
1215"Aplicaciones seleccionadas pueden avisarle usando burbujas de notificación, "1215"Las aplicaciones seleccionadas pueden alertarle mediante notificaciones, "
1216"sonidos, vibraciones y el Centro de notificaciones."1216"sonidos, vibración y el Centro de notificaciones."
12171217
1218#: ../plugins/phone//ServiceInfo.qml:1091218#: ../plugins/phone//ServiceInfo.qml:109
1219#, qt-format1219#, qt-format
@@ -1397,7 +1397,7 @@
13971397
1398#: ../plugins/system-update//Configuration.qml:351398#: ../plugins/system-update//Configuration.qml:35
1399msgid "Download future updates automatically:"1399msgid "Download future updates automatically:"
1400msgstr "Descargar automáticamente actualizaciones futuras:"1400msgstr "Descarga automática de actualizaciones:"
14011401
1402#: ../plugins/system-update//Configuration.qml:541402#: ../plugins/system-update//Configuration.qml:54
1403msgid "When on wi-fi"1403msgid "When on wi-fi"
@@ -1423,7 +1423,7 @@
14231423
1424#: ../plugins/brightness//PageComponent.qml:651424#: ../plugins/brightness//PageComponent.qml:65
1425msgid "Brightens and dims the display to suit the surroundings."1425msgid "Brightens and dims the display to suit the surroundings."
1426msgstr ""1426msgstr "Aumenta o disminuye el brillo de la pantalla según la luz ambiental."
14271427
1428#. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching1428#. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching
1429#: ../plugins/sound//PageComponent.qml:381429#: ../plugins/sound//PageComponent.qml:38
@@ -1569,11 +1569,11 @@
15691569
1570#: ../wizard/qml/Pages//15-passwd.qml:371570#: ../wizard/qml/Pages//15-passwd.qml:37
1571msgid "Set lock security"1571msgid "Set lock security"
1572msgstr ""1572msgstr "Establecer la seguridad de bloqueo"
15731573
1574#: ../wizard/qml/Pages//15-passwd.qml:861574#: ../wizard/qml/Pages//15-passwd.qml:86
1575msgid "Swipe"1575msgid "Swipe"
1576msgstr ""1576msgstr "Deslizar"
15771577
1578#: ../wizard/qml/Pages//15-passwd.qml:1361578#: ../wizard/qml/Pages//15-passwd.qml:136
1579msgid "Those passcodes don't match."1579msgid "Those passcodes don't match."
@@ -1895,7 +1895,7 @@
18951895
1896#: ../push-helper/software-updates-helper.py:781896#: ../push-helper/software-updates-helper.py:78
1897msgid "There's an updated system image."1897msgid "There's an updated system image."
1898msgstr ""1898msgstr "Hay una actualización de la imagen del sistema disponible."
18991899
1900#: ../push-helper/software-updates-helper.py:791900#: ../push-helper/software-updates-helper.py:79
1901msgid "Tap to open the system updater."1901msgid "Tap to open the system updater."
19021902
=== modified file 'po/fi.po'
--- po/fi.po 2014-08-20 06:22:04 +0000
+++ po/fi.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-18 07:37+0000\n"11"PO-Revision-Date: 2014-08-22 09:53+0000\n"
12"Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\n"12"Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\n"
13"Language-Team: Finnish <fi@li.org>\n"13"Language-Team: Finnish <fi@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"X-Launchpad-Export-Date: 2014-08-20 06:19+0000\n"18"X-Launchpad-Export-Date: 2014-08-23 07:15+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
2020
21#: ../plugins/language//SpellChecking.qml:2721#: ../plugins/language//SpellChecking.qml:27
@@ -50,7 +50,7 @@
5050
51#: ../plugins/language//PageComponent.qml:12851#: ../plugins/language//PageComponent.qml:128
52msgid "Auto correction"52msgid "Auto correction"
53msgstr ""53msgstr "Automaattinen korjaus"
5454
55#: ../plugins/language//PageComponent.qml:13855#: ../plugins/language//PageComponent.qml:138
56msgid "Word suggestions"56msgid "Word suggestions"
@@ -66,12 +66,14 @@
6666
67#: ../plugins/language//PageComponent.qml:16867#: ../plugins/language//PageComponent.qml:168
68msgid "Auto punctuation"68msgid "Auto punctuation"
69msgstr ""69msgstr "Automaattiset välimerkit"
7070
71#: ../plugins/language//PageComponent.qml:17871#: ../plugins/language//PageComponent.qml:178
72msgid ""72msgid ""
73"Adds a period, and any missing quotes or brackets, when you tap Space twice."73"Adds a period, and any missing quotes or brackets, when you tap Space twice."
74msgstr ""74msgstr ""
75"Lisää pisteen sekä puuttuvat lainausmerkit ja sulut, kun painat välilyöntiä "
76"kahdesti."
7577
76#: ../plugins/language//PageComponent.qml:18578#: ../plugins/language//PageComponent.qml:185
77#: ../plugins/sound//PageComponent.qml:18679#: ../plugins/sound//PageComponent.qml:186
@@ -80,7 +82,7 @@
8082
81#: ../plugins/language//PageComponent.qml:19583#: ../plugins/language//PageComponent.qml:195
82msgid "Keyboard vibration"84msgid "Keyboard vibration"
83msgstr ""85msgstr "Näppäimistön värinä"
8486
85#: ../plugins/language//KeyboardLayouts.qml:3987#: ../plugins/language//KeyboardLayouts.qml:39
86msgid "Current layouts:"88msgid "Current layouts:"
@@ -148,14 +150,14 @@
148#: ../plugins/security-privacy//PhoneLocking.qml:41150#: ../plugins/security-privacy//PhoneLocking.qml:41
149#: ../wizard/qml/Pages//15-passwd.qml:88151#: ../wizard/qml/Pages//15-passwd.qml:88
150msgid "Passcode"152msgid "Passcode"
151msgstr "Pääsykoodi"153msgstr "Suojakoodi"
152154
153#: ../plugins/security-privacy//PageComponent.qml:80155#: ../plugins/security-privacy//PageComponent.qml:80
154#: ../plugins/security-privacy//PhoneLocking.qml:42156#: ../plugins/security-privacy//PhoneLocking.qml:42
155#: ../plugins/security-privacy//LockSecurity.qml:346157#: ../plugins/security-privacy//LockSecurity.qml:346
156#: ../wizard/qml/Pages//15-passwd.qml:90158#: ../wizard/qml/Pages//15-passwd.qml:90
157msgid "Passphrase"159msgid "Passphrase"
158msgstr "Avainlause"160msgstr "Salasana"
159161
160#: ../plugins/security-privacy//PageComponent.qml:82162#: ../plugins/security-privacy//PageComponent.qml:82
161#: ../plugins/security-privacy//PhoneLocking.qml:44163#: ../plugins/security-privacy//PhoneLocking.qml:44
@@ -312,7 +314,7 @@
312314
313#: ../plugins/security-privacy//AppAccess.qml:35315#: ../plugins/security-privacy//AppAccess.qml:35
314msgid "Apps that you have granted and have requested access to:"316msgid "Apps that you have granted and have requested access to:"
315msgstr ""317msgstr "Sovellukset, jotka ovat pyytäneet ja joille on annettu oikeudet:"
316318
317#: ../plugins/security-privacy//AppAccess.qml:41319#: ../plugins/security-privacy//AppAccess.qml:41
318#: ../plugins/bluetooth//PageComponent.qml:100320#: ../plugins/bluetooth//PageComponent.qml:100
@@ -321,32 +323,32 @@
321323
322#: ../plugins/security-privacy//AppAccess.qml:42324#: ../plugins/security-privacy//AppAccess.qml:42
323msgid "Apps that have requested access to your camera"325msgid "Apps that have requested access to your camera"
324msgstr ""326msgstr "Sovellukset jotka ovat pyytäneet pääsyä kameraan"
325327
326#: ../plugins/security-privacy//AppAccess.qml:46328#: ../plugins/security-privacy//AppAccess.qml:46
327msgid "Mic"329msgid "Mic"
328msgstr ""330msgstr "Mikrofoni"
329331
330#: ../plugins/security-privacy//AppAccess.qml:47332#: ../plugins/security-privacy//AppAccess.qml:47
331msgid "Apps that have requested access to your mic"333msgid "Apps that have requested access to your mic"
332msgstr ""334msgstr "Sovellukset jotka ovat pyytäneet pääsyä mikrofoniin"
333335
334#: ../plugins/security-privacy//AppAccess.qml:59336#: ../plugins/security-privacy//AppAccess.qml:59
335#, qt-format337#, qt-format
336msgid "%1/%2"338msgid "%1/%2"
337msgstr ""339msgstr "%1/%2"
338340
339#: ../plugins/security-privacy//AppAccess.qml:60341#: ../plugins/security-privacy//AppAccess.qml:60
340msgid "0"342msgid "0"
341msgstr ""343msgstr "0"
342344
343#: ../plugins/security-privacy//LockSecurity.qml:92345#: ../plugins/security-privacy//LockSecurity.qml:92
344msgid "Change passcode"346msgid "Change passcode"
345msgstr "Vaihda pääsykoodi"347msgstr "Vaihda suojakoodi"
346348
347#: ../plugins/security-privacy//LockSecurity.qml:94349#: ../plugins/security-privacy//LockSecurity.qml:94
348msgid "Change passphrase"350msgid "Change passphrase"
349msgstr "Vaihda avainlause"351msgstr "Vaihda salasanaa"
350352
351#: ../plugins/security-privacy//LockSecurity.qml:101353#: ../plugins/security-privacy//LockSecurity.qml:101
352msgid "Switch to swipe"354msgid "Switch to swipe"
@@ -354,43 +356,43 @@
354356
355#: ../plugins/security-privacy//LockSecurity.qml:103357#: ../plugins/security-privacy//LockSecurity.qml:103
356msgid "Switch to passcode"358msgid "Switch to passcode"
357msgstr "Vaihda pääsykoodiin"359msgstr "Vaihda suojakoodiin"
358360
359#: ../plugins/security-privacy//LockSecurity.qml:105361#: ../plugins/security-privacy//LockSecurity.qml:105
360msgid "Switch to passphrase"362msgid "Switch to passphrase"
361msgstr "Vaihda avainlauseeseen"363msgstr "Vaihda salasanaan"
362364
363#: ../plugins/security-privacy//LockSecurity.qml:114365#: ../plugins/security-privacy//LockSecurity.qml:114
364msgid "Existing passcode"366msgid "Existing passcode"
365msgstr "Nykyinen pääsykoodi"367msgstr "Nykyinen suojakoodi"
366368
367#: ../plugins/security-privacy//LockSecurity.qml:116369#: ../plugins/security-privacy//LockSecurity.qml:116
368msgid "Existing passphrase"370msgid "Existing passphrase"
369msgstr "Nykyinen avainlause"371msgstr "Nykyinen salasana"
370372
371#: ../plugins/security-privacy//LockSecurity.qml:170373#: ../plugins/security-privacy//LockSecurity.qml:170
372msgid "Choose passcode"374msgid "Choose passcode"
373msgstr "Valitse pääsykoodi"375msgstr "Valitse suojakoodi"
374376
375#: ../plugins/security-privacy//LockSecurity.qml:172377#: ../plugins/security-privacy//LockSecurity.qml:172
376msgid "Choose passphrase"378msgid "Choose passphrase"
377msgstr "Valitse avainlause"379msgstr "Valitse salasana"
378380
379#: ../plugins/security-privacy//LockSecurity.qml:216381#: ../plugins/security-privacy//LockSecurity.qml:216
380msgid "Confirm passcode"382msgid "Confirm passcode"
381msgstr "Vahvista pääsykoodi"383msgstr "Vahvista suojakoodi"
382384
383#: ../plugins/security-privacy//LockSecurity.qml:218385#: ../plugins/security-privacy//LockSecurity.qml:218
384msgid "Confirm passphrase"386msgid "Confirm passphrase"
385msgstr "Vahvista avainlause"387msgstr "Vahvista salasana"
386388
387#: ../plugins/security-privacy//LockSecurity.qml:261389#: ../plugins/security-privacy//LockSecurity.qml:261
388msgid "Those passcodes don't match. Try again."390msgid "Those passcodes don't match. Try again."
389msgstr "Pääsykoodit eivät vastaa toisiaan. Yritä uudelleen."391msgstr "Suojakoodit eivät vastaa toisiaan. Yritä uudelleen."
390392
391#: ../plugins/security-privacy//LockSecurity.qml:264393#: ../plugins/security-privacy//LockSecurity.qml:264
392msgid "Those passphrases don't match. Try again."394msgid "Those passphrases don't match. Try again."
393msgstr "Avainlauseet eivät vastaa toisiaan. Yritä uudelleen."395msgstr "Salasanat eivät vastaa toisiaan. Yritä uudelleen."
394396
395#: ../plugins/security-privacy//LockSecurity.qml:295397#: ../plugins/security-privacy//LockSecurity.qml:295
396msgid "Unset"398msgid "Unset"
@@ -418,7 +420,7 @@
418420
419#: ../plugins/security-privacy//LockSecurity.qml:345421#: ../plugins/security-privacy//LockSecurity.qml:345
420msgid "4-digit passcode"422msgid "4-digit passcode"
421msgstr "4-numeroinen pääsykoodi"423msgstr "4-numeroinen suojakoodi"
422424
423#: ../plugins/security-privacy//LockSecurity.qml:347425#: ../plugins/security-privacy//LockSecurity.qml:347
424msgid "Swipe (no security)… "426msgid "Swipe (no security)… "
@@ -426,19 +428,19 @@
426428
427#: ../plugins/security-privacy//LockSecurity.qml:348429#: ../plugins/security-privacy//LockSecurity.qml:348
428msgid "4-digit passcode…"430msgid "4-digit passcode…"
429msgstr "Nelinumeroinen pääsykoodi…"431msgstr "Nelinumeroinen suojakoodi…"
430432
431#: ../plugins/security-privacy//LockSecurity.qml:349433#: ../plugins/security-privacy//LockSecurity.qml:349
432msgid "Passphrase…"434msgid "Passphrase…"
433msgstr "Avainlause…"435msgstr "Salasana…"
434436
435#: ../plugins/security-privacy//LockSecurity.qml:380437#: ../plugins/security-privacy//LockSecurity.qml:380
436msgid "Change passcode…"438msgid "Change passcode…"
437msgstr "Vaihda pääsykoodi…"439msgstr "Vaihda suojakoodi…"
438440
439#: ../plugins/security-privacy//LockSecurity.qml:381441#: ../plugins/security-privacy//LockSecurity.qml:381
440msgid "Change passphrase…"442msgid "Change passphrase…"
441msgstr "Vaihda avainlause…"443msgstr "Vaihda salasana…"
442444
443#: ../plugins/security-privacy//Dash.qml:45445#: ../plugins/security-privacy//Dash.qml:45
444msgid "Return results from:"446msgid "Return results from:"
@@ -841,7 +843,7 @@
841843
842#: ../plugins/about//DevMode.qml:98844#: ../plugins/about//DevMode.qml:98
843msgid "You need a passcode or passphrase set to use Developer Mode."845msgid "You need a passcode or passphrase set to use Developer Mode."
844msgstr "Tarvitset kehittäjätilaa varten tunnuskoodin tai salasanan."846msgstr "Tarvitset kehittäjätilaa varten suojakoodin tai salasanan."
845847
846#: ../plugins/about//Storage.qml:87848#: ../plugins/about//Storage.qml:87
847msgid "Used by Ubuntu"849msgid "Used by Ubuntu"
@@ -1077,7 +1079,7 @@
1077#: ../plugins/battery//PageComponent.qml:2901079#: ../plugins/battery//PageComponent.qml:290
1078#: ../plugins/brightness//BrightnessSlider.qml:511080#: ../plugins/brightness//BrightnessSlider.qml:51
1079msgid "Display brightness"1081msgid "Display brightness"
1080msgstr ""1082msgstr "Näytön kirkkaus"
10811083
1082#. TRANSLATORS: %1 is the number of minutes1084#. TRANSLATORS: %1 is the number of minutes
1083#: ../plugins/battery//PageComponent.qml:3061085#: ../plugins/battery//PageComponent.qml:306
@@ -1421,7 +1423,7 @@
14211423
1422#: ../plugins/brightness//PageComponent.qml:651424#: ../plugins/brightness//PageComponent.qml:65
1423msgid "Brightens and dims the display to suit the surroundings."1425msgid "Brightens and dims the display to suit the surroundings."
1424msgstr ""1426msgstr "Näytön kirkkauden säätö ympäristöön sopivaksi"
14251427
1426#. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching1428#. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching
1427#: ../plugins/sound//PageComponent.qml:381429#: ../plugins/sound//PageComponent.qml:38
@@ -1567,27 +1569,27 @@
15671569
1568#: ../wizard/qml/Pages//15-passwd.qml:371570#: ../wizard/qml/Pages//15-passwd.qml:37
1569msgid "Set lock security"1571msgid "Set lock security"
1570msgstr ""1572msgstr "Aseta lukitustapa"
15711573
1572#: ../wizard/qml/Pages//15-passwd.qml:861574#: ../wizard/qml/Pages//15-passwd.qml:86
1573msgid "Swipe"1575msgid "Swipe"
1574msgstr ""1576msgstr "Pyyhkäisy"
15751577
1576#: ../wizard/qml/Pages//15-passwd.qml:1361578#: ../wizard/qml/Pages//15-passwd.qml:136
1577msgid "Those passcodes don't match."1579msgid "Those passcodes don't match."
1578msgstr ""1580msgstr "Suojakoodit eivät täsmää."
15791581
1580#: ../wizard/qml/Pages//15-passwd.qml:1381582#: ../wizard/qml/Pages//15-passwd.qml:138
1581msgid "Those passphrases don't match."1583msgid "Those passphrases don't match."
1582msgstr ""1584msgstr "Salasanat eivät täsmää."
15831585
1584#: ../wizard/qml/Pages//15-passwd.qml:1461586#: ../wizard/qml/Pages//15-passwd.qml:146
1585msgid "Passcode must be at least four digits long."1587msgid "Passcode must be at least four digits long."
1586msgstr ""1588msgstr "Suojakoodin tulee olla vähintään neljä numeroa."
15871589
1588#: ../wizard/qml/Pages//15-passwd.qml:1481590#: ../wizard/qml/Pages//15-passwd.qml:148
1589msgid "Passphrase must be at least four characters long."1591msgid "Passphrase must be at least four characters long."
1590msgstr ""1592msgstr "Salasanan tulee olla vähintään neljä kirjainta."
15911593
1592#: ../wizard/qml/Pages//10-welcome.qml:251594#: ../wizard/qml/Pages//10-welcome.qml:25
1593msgid "Hello"1595msgid "Hello"
@@ -1893,8 +1895,8 @@
18931895
1894#: ../push-helper/software-updates-helper.py:781896#: ../push-helper/software-updates-helper.py:78
1895msgid "There's an updated system image."1897msgid "There's an updated system image."
1896msgstr ""1898msgstr "Päivitetty järjestelmäversio saatavilla."
18971899
1898#: ../push-helper/software-updates-helper.py:791900#: ../push-helper/software-updates-helper.py:79
1899msgid "Tap to open the system updater."1901msgid "Tap to open the system updater."
1900msgstr ""1902msgstr "Kosketa avataksesi järjestelmän päivityksen."
19011903
=== modified file 'po/fr.po'
--- po/fr.po 2014-08-22 07:38:19 +0000
+++ po/fr.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,15 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: \n"9"Report-Msgid-Bugs-To: \n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-21 19:05+0000\n"11"PO-Revision-Date: 2014-08-26 07:42+0000\n"
12"Last-Translator: Anne <anneonyme017@gmail.com>\n"12"Last-Translator: Jean-Baptiste Lallement <jean-"
13"baptiste.lallement@ubuntu.com>\n"
13"Language-Team: LANGUAGE <LL@li.org>\n"14"Language-Team: LANGUAGE <LL@li.org>\n"
14"MIME-Version: 1.0\n"15"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"17"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"18"Plural-Forms: nplurals=2; plural=n > 1;\n"
18"X-Launchpad-Export-Date: 2014-08-22 07:38+0000\n"19"X-Launchpad-Export-Date: 2014-08-26 07:45+0000\n"
19"X-Generator: Launchpad (build 17163)\n"20"X-Generator: Launchpad (build 17163)\n"
20"Language: \n"21"Language: \n"
2122
@@ -75,6 +76,8 @@
75msgid ""76msgid ""
76"Adds a period, and any missing quotes or brackets, when you tap Space twice."77"Adds a period, and any missing quotes or brackets, when you tap Space twice."
77msgstr ""78msgstr ""
79"Ajoute un point, ainsi que les parenthèses ou les guillemets manquants, "
80"lorsque vous appuyez deux fois sur Espace."
7881
79#: ../plugins/language//PageComponent.qml:18582#: ../plugins/language//PageComponent.qml:185
80#: ../plugins/sound//PageComponent.qml:18683#: ../plugins/sound//PageComponent.qml:186
@@ -366,7 +369,7 @@
366369
367#: ../plugins/security-privacy//LockSecurity.qml:105370#: ../plugins/security-privacy//LockSecurity.qml:105
368msgid "Switch to passphrase"371msgid "Switch to passphrase"
369msgstr "Passer en verrouillage par phrase secrète"372msgstr "Verrouiller par phrase secrète"
370373
371#: ../plugins/security-privacy//LockSecurity.qml:114374#: ../plugins/security-privacy//LockSecurity.qml:114
372msgid "Existing passcode"375msgid "Existing passcode"
@@ -1587,7 +1590,7 @@
15871590
1588#: ../wizard/qml/Pages//15-passwd.qml:861591#: ../wizard/qml/Pages//15-passwd.qml:86
1589msgid "Swipe"1592msgid "Swipe"
1590msgstr ""1593msgstr "Glissement"
15911594
1592#: ../wizard/qml/Pages//15-passwd.qml:1361595#: ../wizard/qml/Pages//15-passwd.qml:136
1593msgid "Those passcodes don't match."1596msgid "Those passcodes don't match."
15941597
=== modified file 'po/gl.po'
--- po/gl.po 2014-08-22 07:38:19 +0000
+++ po/gl.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-21 14:17+0000\n"11"PO-Revision-Date: 2014-08-23 20:46+0000\n"
12"Last-Translator: Marcos Lans <Unknown>\n"12"Last-Translator: Marcos Lans <Unknown>\n"
13"Language-Team: Galician <gl@li.org>\n"13"Language-Team: Galician <gl@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"X-Launchpad-Export-Date: 2014-08-22 07:38+0000\n"18"X-Launchpad-Export-Date: 2014-08-24 06:45+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
20"Language: Galician\n"20"Language: Galician\n"
2121
@@ -132,7 +132,7 @@
132#: ../plugins/security-privacy//PageComponent.qml:151132#: ../plugins/security-privacy//PageComponent.qml:151
133#: ../plugins/security-privacy//Dash.qml:46133#: ../plugins/security-privacy//Dash.qml:46
134msgid "Phone only"134msgid "Phone only"
135msgstr "Existente no teléfono"135msgstr "Só do teléfono"
136136
137#: ../plugins/security-privacy//PageComponent.qml:71137#: ../plugins/security-privacy//PageComponent.qml:71
138msgid "Security:"138msgid "Security:"
@@ -846,8 +846,8 @@
846#: ../plugins/about//DevMode.qml:98846#: ../plugins/about//DevMode.qml:98
847msgid "You need a passcode or passphrase set to use Developer Mode."847msgid "You need a passcode or passphrase set to use Developer Mode."
848msgstr ""848msgstr ""
849"Precisa estabelecer unha clave ou frase secreta para usar o Modo "849"Precisa estabelecer unha clave ou unha frase secreta para usar o Modo "
850"Desenvolvedor"850"Desenvolvedor."
851851
852#: ../plugins/about//Storage.qml:87852#: ../plugins/about//Storage.qml:87
853msgid "Used by Ubuntu"853msgid "Used by Ubuntu"
@@ -1586,7 +1586,7 @@
15861586
1587#: ../wizard/qml/Pages//15-passwd.qml:1381587#: ../wizard/qml/Pages//15-passwd.qml:138
1588msgid "Those passphrases don't match."1588msgid "Those passphrases don't match."
1589msgstr "As frases de paso non coinciden."1589msgstr "As frases secretas non coinciden."
15901590
1591#: ../wizard/qml/Pages//15-passwd.qml:1461591#: ../wizard/qml/Pages//15-passwd.qml:146
1592msgid "Passcode must be at least four digits long."1592msgid "Passcode must be at least four digits long."
@@ -1594,7 +1594,7 @@
15941594
1595#: ../wizard/qml/Pages//15-passwd.qml:1481595#: ../wizard/qml/Pages//15-passwd.qml:148
1596msgid "Passphrase must be at least four characters long."1596msgid "Passphrase must be at least four characters long."
1597msgstr "A frase de paso debe ter 4 caracteres como mínimo."1597msgstr "A frase secreta debe ter 4 caracteres como mínimo."
15981598
1599#: ../wizard/qml/Pages//10-welcome.qml:251599#: ../wizard/qml/Pages//10-welcome.qml:25
1600msgid "Hello"1600msgid "Hello"
16011601
=== modified file 'po/he.po'
--- po/he.po 2014-08-20 06:22:04 +0000
+++ po/he.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-07-30 13:16+0000\n"11"PO-Revision-Date: 2014-08-25 11:33+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"13"Language-Team: Hebrew <he@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"X-Launchpad-Export-Date: 2014-08-20 06:19+0000\n"18"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
2020
21#: ../plugins/language//SpellChecking.qml:2721#: ../plugins/language//SpellChecking.qml:27
@@ -50,7 +50,7 @@
5050
51#: ../plugins/language//PageComponent.qml:12851#: ../plugins/language//PageComponent.qml:128
52msgid "Auto correction"52msgid "Auto correction"
53msgstr ""53msgstr "תיקון אוטומטי"
5454
55#: ../plugins/language//PageComponent.qml:13855#: ../plugins/language//PageComponent.qml:138
56msgid "Word suggestions"56msgid "Word suggestions"
@@ -66,12 +66,12 @@
6666
67#: ../plugins/language//PageComponent.qml:16867#: ../plugins/language//PageComponent.qml:168
68msgid "Auto punctuation"68msgid "Auto punctuation"
69msgstr ""69msgstr "פיסוק אוטומטי"
7070
71#: ../plugins/language//PageComponent.qml:17871#: ../plugins/language//PageComponent.qml:178
72msgid ""72msgid ""
73"Adds a period, and any missing quotes or brackets, when you tap Space twice."73"Adds a period, and any missing quotes or brackets, when you tap Space twice."
74msgstr ""74msgstr "הוספת נקודה וכל מרכאות או סוגריים חסרים בעת נגיעה כפולה ברווח."
7575
76#: ../plugins/language//PageComponent.qml:18576#: ../plugins/language//PageComponent.qml:185
77#: ../plugins/sound//PageComponent.qml:18677#: ../plugins/sound//PageComponent.qml:186
@@ -80,7 +80,7 @@
8080
81#: ../plugins/language//PageComponent.qml:19581#: ../plugins/language//PageComponent.qml:195
82msgid "Keyboard vibration"82msgid "Keyboard vibration"
83msgstr ""83msgstr "רטט מקלדת"
8484
85#: ../plugins/language//KeyboardLayouts.qml:3985#: ../plugins/language//KeyboardLayouts.qml:39
86msgid "Current layouts:"86msgid "Current layouts:"
@@ -310,7 +310,7 @@
310310
311#: ../plugins/security-privacy//AppAccess.qml:35311#: ../plugins/security-privacy//AppAccess.qml:35
312msgid "Apps that you have granted and have requested access to:"312msgid "Apps that you have granted and have requested access to:"
313msgstr ""313msgstr "יישומים שאישרת וביקשו לגשת אל:"
314314
315#: ../plugins/security-privacy//AppAccess.qml:41315#: ../plugins/security-privacy//AppAccess.qml:41
316#: ../plugins/bluetooth//PageComponent.qml:100316#: ../plugins/bluetooth//PageComponent.qml:100
@@ -319,24 +319,24 @@
319319
320#: ../plugins/security-privacy//AppAccess.qml:42320#: ../plugins/security-privacy//AppAccess.qml:42
321msgid "Apps that have requested access to your camera"321msgid "Apps that have requested access to your camera"
322msgstr ""322msgstr "יישומים שביקשו לגשת למצלמה שלך"
323323
324#: ../plugins/security-privacy//AppAccess.qml:46324#: ../plugins/security-privacy//AppAccess.qml:46
325msgid "Mic"325msgid "Mic"
326msgstr ""326msgstr "מיקרופון"
327327
328#: ../plugins/security-privacy//AppAccess.qml:47328#: ../plugins/security-privacy//AppAccess.qml:47
329msgid "Apps that have requested access to your mic"329msgid "Apps that have requested access to your mic"
330msgstr ""330msgstr "יישומים שביקשו לגשת למצלמה שלך"
331331
332#: ../plugins/security-privacy//AppAccess.qml:59332#: ../plugins/security-privacy//AppAccess.qml:59
333#, qt-format333#, qt-format
334msgid "%1/%2"334msgid "%1/%2"
335msgstr ""335msgstr "%1/%2"
336336
337#: ../plugins/security-privacy//AppAccess.qml:60337#: ../plugins/security-privacy//AppAccess.qml:60
338msgid "0"338msgid "0"
339msgstr ""339msgstr "0"
340340
341#: ../plugins/security-privacy//LockSecurity.qml:92341#: ../plugins/security-privacy//LockSecurity.qml:92
342msgid "Change passcode"342msgid "Change passcode"
@@ -550,19 +550,19 @@
550550
551#: ../plugins/bluetooth//PageComponent.qml:78551#: ../plugins/bluetooth//PageComponent.qml:78
552msgid "Connecting…"552msgid "Connecting…"
553msgstr ""553msgstr "בהתחברות…"
554554
555#: ../plugins/bluetooth//PageComponent.qml:79555#: ../plugins/bluetooth//PageComponent.qml:79
556msgid "Disconnecting…"556msgid "Disconnecting…"
557msgstr ""557msgstr "מתבצע ניתוק…"
558558
559#: ../plugins/bluetooth//PageComponent.qml:80559#: ../plugins/bluetooth//PageComponent.qml:80
560msgid "Disconnected"560msgid "Disconnected"
561msgstr ""561msgstr "מנותק"
562562
563#: ../plugins/bluetooth//PageComponent.qml:81563#: ../plugins/bluetooth//PageComponent.qml:81
564msgid "Unknown"564msgid "Unknown"
565msgstr ""565msgstr "לא ידוע"
566566
567#: ../plugins/bluetooth//PageComponent.qml:87567#: ../plugins/bluetooth//PageComponent.qml:87
568msgid "Computer"568msgid "Computer"
@@ -665,7 +665,7 @@
665665
666#: ../plugins/bluetooth//PageComponent.qml:236666#: ../plugins/bluetooth//PageComponent.qml:236
667msgid "Connect a device:"667msgid "Connect a device:"
668msgstr ""668msgstr "חיבור התקן:"
669669
670#: ../plugins/bluetooth//PageComponent.qml:266670#: ../plugins/bluetooth//PageComponent.qml:266
671msgid "None detected"671msgid "None detected"
@@ -674,7 +674,7 @@
674#: ../plugins/bluetooth//PageComponent.qml:274674#: ../plugins/bluetooth//PageComponent.qml:274
675#: ../plugins/bluetooth//PageComponent.qml:360675#: ../plugins/bluetooth//PageComponent.qml:360
676msgid "Connect automatically when detected:"676msgid "Connect automatically when detected:"
677msgstr ""677msgstr "חיבור אוטומטי בעת הזיהוי:"
678678
679#: ../plugins/bluetooth//PageComponent.qml:309679#: ../plugins/bluetooth//PageComponent.qml:309
680#: ../plugins/wifi//NetworkDetails.qml:43680#: ../plugins/wifi//NetworkDetails.qml:43
@@ -687,7 +687,7 @@
687687
688#: ../plugins/bluetooth//PageComponent.qml:351688#: ../plugins/bluetooth//PageComponent.qml:351
689msgid "Status"689msgid "Status"
690msgstr ""690msgstr "מצב"
691691
692#: ../plugins/bluetooth//PageComponent.qml:355692#: ../plugins/bluetooth//PageComponent.qml:355
693msgid "Signal Strength"693msgid "Signal Strength"
@@ -704,7 +704,7 @@
704704
705#: ../plugins/bluetooth//PageComponent.qml:392705#: ../plugins/bluetooth//PageComponent.qml:392
706msgid "Forget this device"706msgid "Forget this device"
707msgstr ""707msgstr "התעלמות מהתקן זה"
708708
709#: ../plugins/bluetooth//ProvidePinCodeDialog.qml:28709#: ../plugins/bluetooth//ProvidePinCodeDialog.qml:28
710#: ../plugins/bluetooth//ConfirmPasskeyDialog.qml:28710#: ../plugins/bluetooth//ConfirmPasskeyDialog.qml:28
@@ -977,7 +977,7 @@
977977
978#: ../plugins/reset//ResetLauncherHome.qml:59978#: ../plugins/reset//ResetLauncherHome.qml:59
979msgid "The phone needs to restart for changes to take effect."979msgid "The phone needs to restart for changes to take effect."
980msgstr ""980msgstr "על הטלפון להפעיל עצמו מחדש כדי שהשינויים יכנסו לתוקף."
981981
982#: ../plugins/reset//EraseEverything.qml:41982#: ../plugins/reset//EraseEverything.qml:41
983msgid ""983msgid ""
@@ -987,7 +987,7 @@
987987
988#: ../plugins/reset//EraseEverything.qml:44988#: ../plugins/reset//EraseEverything.qml:44
989msgid "Erase & Reset Everything"989msgid "Erase & Reset Everything"
990msgstr ""990msgstr "מחיקה ואיפוס של הכול"
991991
992#. TRANSLATORS: This is a keyword or name for the battery plugin which is used while searching992#. TRANSLATORS: This is a keyword or name for the battery plugin which is used while searching
993#: ../plugins/battery//PageComponent.qml:34993#: ../plugins/battery//PageComponent.qml:34
@@ -1066,7 +1066,7 @@
1066#: ../plugins/battery//PageComponent.qml:2901066#: ../plugins/battery//PageComponent.qml:290
1067#: ../plugins/brightness//BrightnessSlider.qml:511067#: ../plugins/brightness//BrightnessSlider.qml:51
1068msgid "Display brightness"1068msgid "Display brightness"
1069msgstr ""1069msgstr "בהירות התצוגה"
10701070
1071#. TRANSLATORS: %1 is the number of minutes1071#. TRANSLATORS: %1 is the number of minutes
1072#: ../plugins/battery//PageComponent.qml:3061072#: ../plugins/battery//PageComponent.qml:306
@@ -1192,7 +1192,7 @@
1192#: ../plugins/notifications//PageComponent.qml:291192#: ../plugins/notifications//PageComponent.qml:29
1193#: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:961193#: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:96
1194msgid "Notifications"1194msgid "Notifications"
1195msgstr ""1195msgstr "התרעות"
11961196
1197#: ../plugins/notifications//PageComponent.qml:401197#: ../plugins/notifications//PageComponent.qml:40
1198msgid ""1198msgid ""
@@ -1549,11 +1549,11 @@
15491549
1550#: ../wizard/qml/Pages//15-passwd.qml:371550#: ../wizard/qml/Pages//15-passwd.qml:37
1551msgid "Set lock security"1551msgid "Set lock security"
1552msgstr ""1552msgstr "הגדרת הגנת נעילה"
15531553
1554#: ../wizard/qml/Pages//15-passwd.qml:861554#: ../wizard/qml/Pages//15-passwd.qml:86
1555msgid "Swipe"1555msgid "Swipe"
1556msgstr ""1556msgstr "החלקה"
15571557
1558#: ../wizard/qml/Pages//15-passwd.qml:1361558#: ../wizard/qml/Pages//15-passwd.qml:136
1559msgid "Those passcodes don't match."1559msgid "Those passcodes don't match."
@@ -1781,7 +1781,7 @@
1781#. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching1781#. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching
1782#: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:1001782#: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:100
1783msgid "notifications"1783msgid "notifications"
1784msgstr ""1784msgstr "התרעות"
17851785
1786#. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching1786#. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching
1787#: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:1061787#: /home/elopio/workspace/canonical/ubuntu-system-settings/bugs/fix1357605-translations/builddir/po/settings.js:106
@@ -1875,7 +1875,7 @@
18751875
1876#: ../push-helper/software-updates-helper.py:781876#: ../push-helper/software-updates-helper.py:78
1877msgid "There's an updated system image."1877msgid "There's an updated system image."
1878msgstr ""1878msgstr "קיימת תמונת מערכת עדכנית יותר."
18791879
1880#: ../push-helper/software-updates-helper.py:791880#: ../push-helper/software-updates-helper.py:79
1881msgid "Tap to open the system updater."1881msgid "Tap to open the system updater."
18821882
=== modified file 'po/hu.po'
--- po/hu.po 2014-08-22 07:38:19 +0000
+++ po/hu.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-21 19:21+0000\n"11"PO-Revision-Date: 2014-08-25 08:27+0000\n"
12"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"12"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
13"Language-Team: Hungarian <hu@li.org>\n"13"Language-Team: Hungarian <hu@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"X-Launchpad-Export-Date: 2014-08-22 07:38+0000\n"18"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
2020
21#: ../plugins/language//SpellChecking.qml:2721#: ../plugins/language//SpellChecking.qml:27
@@ -41,7 +41,7 @@
4141
42#: ../plugins/language//PageComponent.qml:7942#: ../plugins/language//PageComponent.qml:79
43msgid "Display language…"43msgid "Display language…"
44msgstr "Megjelenítési nyelv…"44msgstr "Megjelenítés nyelve"
4545
46#: ../plugins/language//PageComponent.qml:9346#: ../plugins/language//PageComponent.qml:93
47#: ../plugins/language//KeyboardLayouts.qml:2647#: ../plugins/language//KeyboardLayouts.qml:26
@@ -72,7 +72,7 @@
72msgid ""72msgid ""
73"Adds a period, and any missing quotes or brackets, when you tap Space twice."73"Adds a period, and any missing quotes or brackets, when you tap Space twice."
74msgstr ""74msgstr ""
75"Új mondatot kezd és hozzáad minden hiányzó idézőjelet vagy zárójelet ha "75"Új mondatot kezd és hozzáad minden hiányzó idézőjelet vagy zárójelet, ha "
76"megérinti kétszer a Szóközt."76"megérinti kétszer a Szóközt."
7777
78#: ../plugins/language//PageComponent.qml:18578#: ../plugins/language//PageComponent.qml:185
@@ -208,7 +208,7 @@
208#: ../plugins/security-privacy//PageComponent.qml:174208#: ../plugins/security-privacy//PageComponent.qml:174
209#: ../plugins/security-privacy//AppAccess.qml:28209#: ../plugins/security-privacy//AppAccess.qml:28
210msgid "Other app access"210msgid "Other app access"
211msgstr "Egyéb alkalmazás hozzáférés"211msgstr "Egyéb alkalmazás hozzáférések"
212212
213#: ../plugins/security-privacy//PageComponent.qml:179213#: ../plugins/security-privacy//PageComponent.qml:179
214msgid "Diagnostics"214msgid "Diagnostics"
@@ -408,7 +408,7 @@
408#: ../plugins/background//Preview.qml:104408#: ../plugins/background//Preview.qml:104
409#: ../plugins/phone//CallForwarding.qml:148409#: ../plugins/phone//CallForwarding.qml:148
410msgid "Set"410msgid "Set"
411msgstr "Beállít"411msgstr "Beállítás"
412412
413#: ../plugins/security-privacy//LockSecurity.qml:340413#: ../plugins/security-privacy//LockSecurity.qml:340
414msgid "Unlock the phone using:"414msgid "Unlock the phone using:"
@@ -424,23 +424,23 @@
424424
425#: ../plugins/security-privacy//LockSecurity.qml:347425#: ../plugins/security-privacy//LockSecurity.qml:347
426msgid "Swipe (no security)… "426msgid "Swipe (no security)… "
427msgstr "Csúsztatás (nincs zárolás)… "427msgstr "Csúsztatás (nincs zárolás) "
428428
429#: ../plugins/security-privacy//LockSecurity.qml:348429#: ../plugins/security-privacy//LockSecurity.qml:348
430msgid "4-digit passcode…"430msgid "4-digit passcode…"
431msgstr "4 jegyű jelkód…"431msgstr "4 jegyű jelkód"
432432
433#: ../plugins/security-privacy//LockSecurity.qml:349433#: ../plugins/security-privacy//LockSecurity.qml:349
434msgid "Passphrase…"434msgid "Passphrase…"
435msgstr "Jelmondat…"435msgstr "Jelmondat"
436436
437#: ../plugins/security-privacy//LockSecurity.qml:380437#: ../plugins/security-privacy//LockSecurity.qml:380
438msgid "Change passcode…"438msgid "Change passcode…"
439msgstr "Jelkód módosítása…"439msgstr "Jelkód módosítása"
440440
441#: ../plugins/security-privacy//LockSecurity.qml:381441#: ../plugins/security-privacy//LockSecurity.qml:381
442msgid "Change passphrase…"442msgid "Change passphrase…"
443msgstr "Jelmondat módosítása…"443msgstr "Jelmondat módosítása"
444444
445#: ../plugins/security-privacy//Dash.qml:45445#: ../plugins/security-privacy//Dash.qml:45
446msgid "Return results from:"446msgid "Return results from:"
@@ -535,7 +535,7 @@
535535
536#: ../plugins/cellular//Hotspot.qml:65536#: ../plugins/cellular//Hotspot.qml:65
537msgid "Set up hotspot"537msgid "Set up hotspot"
538msgstr "Hotspot felállítása"538msgstr "Hotspot beállítása"
539539
540#: ../plugins/cellular//HotspotSetup.qml:29540#: ../plugins/cellular//HotspotSetup.qml:29
541msgid "Change hotspot setup"541msgid "Change hotspot setup"
@@ -846,7 +846,8 @@
846#: ../plugins/about//DevMode.qml:98846#: ../plugins/about//DevMode.qml:98
847msgid "You need a passcode or passphrase set to use Developer Mode."847msgid "You need a passcode or passphrase set to use Developer Mode."
848msgstr ""848msgstr ""
849"A Fejlesztői mód használatához egy jelkódra vagy jelmondatra van szüksége."849"A Fejlesztői mód használatához be kell állítani egy jelkódot vagy "
850"jelmondatot."
850851
851#: ../plugins/about//Storage.qml:87852#: ../plugins/about//Storage.qml:87
852msgid "Used by Ubuntu"853msgid "Used by Ubuntu"
@@ -979,11 +980,11 @@
979980
980#: ../plugins/reset//PageComponent.qml:87981#: ../plugins/reset//PageComponent.qml:87
981msgid "Reset all system settings…"982msgid "Reset all system settings…"
982msgstr "Minden rendszerbeállítás visszaállítása…"983msgstr "Minden rendszerbeállítás visszaállítása"
983984
984#: ../plugins/reset//PageComponent.qml:101985#: ../plugins/reset//PageComponent.qml:101
985msgid "Erase & Reset Everything…"986msgid "Erase & Reset Everything…"
986msgstr "Minden visszaállítása és törlése…"987msgstr "Minden visszaállítása és törlése"
987988
988#: ../plugins/reset//ResetLauncherHome.qml:40989#: ../plugins/reset//ResetLauncherHome.qml:40
989msgid "The Launcher will be returned to its original contents."990msgid "The Launcher will be returned to its original contents."
@@ -1115,11 +1116,11 @@
11151116
1116#: ../plugins/battery//SleepValues.qml:741117#: ../plugins/battery//SleepValues.qml:74
1117msgid "Lock the phone when it's not in use:"1118msgid "Lock the phone when it's not in use:"
1118msgstr "Telefon zárolása, ha nem aktív:"1119msgstr "Telefon zárolása, ha nincs használatban:"
11191120
1120#: ../plugins/battery//SleepValues.qml:741121#: ../plugins/battery//SleepValues.qml:74
1121msgid "Put the phone to sleep when it is not in use:"1122msgid "Put the phone to sleep when it is not in use:"
1122msgstr "Altassa el a telefont ha nem aktív:"1123msgstr "Telefon altatása, ha nincs használatban:"
11231124
1124#: ../plugins/battery//SleepValues.qml:1071125#: ../plugins/battery//SleepValues.qml:107
1125msgid ""1126msgid ""
@@ -1140,7 +1141,7 @@
11401141
1141#: ../plugins/wifi//PageComponent.qml:120 ../plugins/wifi//OtherNetwork.qml:271142#: ../plugins/wifi//PageComponent.qml:120 ../plugins/wifi//OtherNetwork.qml:27
1142msgid "Other network"1143msgid "Other network"
1143msgstr "Más hálózat"1144msgstr "Egyéb hálózat"
11441145
1145#: ../plugins/wifi//NetworkDetails.qml:361146#: ../plugins/wifi//NetworkDetails.qml:36
1146msgid "Network details"1147msgid "Network details"
@@ -1515,7 +1516,7 @@
15151516
1516#: ../wizard/qml/Pages//no-sim.qml:571517#: ../wizard/qml/Pages//no-sim.qml:57
1517msgid "To use the telephone and SMS features a SIM must be installed."1518msgid "To use the telephone and SMS features a SIM must be installed."
1518msgstr "A telefonáláshoz vagy az SMS funkciókhoz szükséges egy SIM kártya."1519msgstr "A telefonáláshoz és az SMS funkciókhoz szükséges egy SIM kártya."
15191520
1520#: ../wizard/qml/Pages//no-sim.qml:591521#: ../wizard/qml/Pages//no-sim.qml:59
1521msgid "Install a SIM before continuing."1522msgid "Install a SIM before continuing."
@@ -1534,7 +1535,7 @@
1534"Your phone is set up to automatically report errors to Canonical. This can "1535"Your phone is set up to automatically report errors to Canonical. This can "
1535"be disabled in system settings."1536"be disabled in system settings."
1536msgstr ""1537msgstr ""
1537"A telefonja automatikusan hibajelentéseket küld a Canonical-nak. Ezt a "1538"A telefonja automatikusan hibajelentéseket küld a Canonical felé. Ezt a "
1538"rendszerbeállításokban kikapcsolhatja."1539"rendszerbeállításokban kikapcsolhatja."
15391540
1540#: ../wizard/qml/Pages//30-location.qml:411541#: ../wizard/qml/Pages//30-location.qml:41
15411542
=== modified file 'po/pt.po'
--- po/pt.po 2014-08-20 06:22:04 +0000
+++ po/pt.po 2014-08-26 11:38:32 +0000
@@ -8,14 +8,14 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-13 00:03+0000\n"11"PO-Revision-Date: 2014-08-25 16:45+0000\n"
12"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"12"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
13"Language-Team: Portuguese <pt@li.org>\n"13"Language-Team: Portuguese <pt@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"X-Launchpad-Export-Date: 2014-08-20 06:20+0000\n"18"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n"
19"X-Generator: Launchpad (build 17163)\n"19"X-Generator: Launchpad (build 17163)\n"
2020
21#: ../plugins/language//SpellChecking.qml:2721#: ../plugins/language//SpellChecking.qml:27
@@ -50,7 +50,7 @@
5050
51#: ../plugins/language//PageComponent.qml:12851#: ../plugins/language//PageComponent.qml:128
52msgid "Auto correction"52msgid "Auto correction"
53msgstr ""53msgstr "Correção automática"
5454
55#: ../plugins/language//PageComponent.qml:13855#: ../plugins/language//PageComponent.qml:138
56msgid "Word suggestions"56msgid "Word suggestions"
@@ -66,7 +66,7 @@
6666
67#: ../plugins/language//PageComponent.qml:16867#: ../plugins/language//PageComponent.qml:168
68msgid "Auto punctuation"68msgid "Auto punctuation"
69msgstr ""69msgstr "Pontuação automática"
7070
71#: ../plugins/language//PageComponent.qml:17871#: ../plugins/language//PageComponent.qml:178
72msgid ""72msgid ""
@@ -80,7 +80,7 @@
8080
81#: ../plugins/language//PageComponent.qml:19581#: ../plugins/language//PageComponent.qml:195
82msgid "Keyboard vibration"82msgid "Keyboard vibration"
83msgstr ""83msgstr "Vibração do teclado"
8484
85#: ../plugins/language//KeyboardLayouts.qml:3985#: ../plugins/language//KeyboardLayouts.qml:39
86msgid "Current layouts:"86msgid "Current layouts:"
@@ -311,7 +311,7 @@
311311
312#: ../plugins/security-privacy//AppAccess.qml:35312#: ../plugins/security-privacy//AppAccess.qml:35
313msgid "Apps that you have granted and have requested access to:"313msgid "Apps that you have granted and have requested access to:"
314msgstr ""314msgstr "Aplicações que garantiu acesso a:"
315315
316#: ../plugins/security-privacy//AppAccess.qml:41316#: ../plugins/security-privacy//AppAccess.qml:41
317#: ../plugins/bluetooth//PageComponent.qml:100317#: ../plugins/bluetooth//PageComponent.qml:100
@@ -320,24 +320,24 @@
320320
321#: ../plugins/security-privacy//AppAccess.qml:42321#: ../plugins/security-privacy//AppAccess.qml:42
322msgid "Apps that have requested access to your camera"322msgid "Apps that have requested access to your camera"
323msgstr ""323msgstr "Aplicações que requesitaram acesso à câmara"
324324
325#: ../plugins/security-privacy//AppAccess.qml:46325#: ../plugins/security-privacy//AppAccess.qml:46
326msgid "Mic"326msgid "Mic"
327msgstr ""327msgstr "Mic"
328328
329#: ../plugins/security-privacy//AppAccess.qml:47329#: ../plugins/security-privacy//AppAccess.qml:47
330msgid "Apps that have requested access to your mic"330msgid "Apps that have requested access to your mic"
331msgstr ""331msgstr "Aplicações que requesitaram acesso ao mic"
332332
333#: ../plugins/security-privacy//AppAccess.qml:59333#: ../plugins/security-privacy//AppAccess.qml:59
334#, qt-format334#, qt-format
335msgid "%1/%2"335msgid "%1/%2"
336msgstr ""336msgstr "%1/%2"
337337
338#: ../plugins/security-privacy//AppAccess.qml:60338#: ../plugins/security-privacy//AppAccess.qml:60
339msgid "0"339msgid "0"
340msgstr ""340msgstr "0"
341341
342#: ../plugins/security-privacy//LockSecurity.qml:92342#: ../plugins/security-privacy//LockSecurity.qml:92
343msgid "Change passcode"343msgid "Change passcode"
@@ -1079,7 +1079,7 @@
1079#: ../plugins/battery//PageComponent.qml:2901079#: ../plugins/battery//PageComponent.qml:290
1080#: ../plugins/brightness//BrightnessSlider.qml:511080#: ../plugins/brightness//BrightnessSlider.qml:51
1081msgid "Display brightness"1081msgid "Display brightness"
1082msgstr ""1082msgstr "Brilho do ecrã"
10831083
1084#. TRANSLATORS: %1 is the number of minutes1084#. TRANSLATORS: %1 is the number of minutes
1085#: ../plugins/battery//PageComponent.qml:3061085#: ../plugins/battery//PageComponent.qml:306
@@ -1575,7 +1575,7 @@
15751575
1576#: ../wizard/qml/Pages//15-passwd.qml:861576#: ../wizard/qml/Pages//15-passwd.qml:86
1577msgid "Swipe"1577msgid "Swipe"
1578msgstr ""1578msgstr "Deslize"
15791579
1580#: ../wizard/qml/Pages//15-passwd.qml:1361580#: ../wizard/qml/Pages//15-passwd.qml:136
1581msgid "Those passcodes don't match."1581msgid "Those passcodes don't match."
@@ -1587,7 +1587,7 @@
15871587
1588#: ../wizard/qml/Pages//15-passwd.qml:1461588#: ../wizard/qml/Pages//15-passwd.qml:146
1589msgid "Passcode must be at least four digits long."1589msgid "Passcode must be at least four digits long."
1590msgstr ""1590msgstr "A senha deve ter no mínimo 4 dígitos."
15911591
1592#: ../wizard/qml/Pages//15-passwd.qml:1481592#: ../wizard/qml/Pages//15-passwd.qml:148
1593msgid "Passphrase must be at least four characters long."1593msgid "Passphrase must be at least four characters long."
@@ -1897,8 +1897,8 @@
18971897
1898#: ../push-helper/software-updates-helper.py:781898#: ../push-helper/software-updates-helper.py:78
1899msgid "There's an updated system image."1899msgid "There's an updated system image."
1900msgstr ""1900msgstr "Há uma nova imagem de sistema."
19011901
1902#: ../push-helper/software-updates-helper.py:791902#: ../push-helper/software-updates-helper.py:79
1903msgid "Tap to open the system updater."1903msgid "Tap to open the system updater."
1904msgstr ""1904msgstr "Carregue para abrir o atualizador de sistema."
19051905
=== modified file 'po/ro.po'
--- po/ro.po 2014-08-20 06:22:04 +0000
+++ po/ro.po 2014-08-26 11:38:32 +0000
@@ -8,15 +8,15 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-12 14:39+0000\n"11"PO-Revision-Date: 2014-08-24 16:50+0000\n"
12"Last-Translator: Marian Vasile <marianvasile1972@gmail.com>\n"12"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n"
13"Language-Team: Romanian <ro@li.org>\n"13"Language-Team: Romanian <ro@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
18"== 0) && (n != 0))) ? 2: 1));\n"18"== 0) && (n != 0))) ? 2: 1));\n"
19"X-Launchpad-Export-Date: 2014-08-20 06:20+0000\n"19"X-Launchpad-Export-Date: 2014-08-25 08:05+0000\n"
20"X-Generator: Launchpad (build 17163)\n"20"X-Generator: Launchpad (build 17163)\n"
2121
22#: ../plugins/language//SpellChecking.qml:2722#: ../plugins/language//SpellChecking.qml:27
@@ -51,7 +51,7 @@
5151
52#: ../plugins/language//PageComponent.qml:12852#: ../plugins/language//PageComponent.qml:128
53msgid "Auto correction"53msgid "Auto correction"
54msgstr ""54msgstr "Corecție automată"
5555
56#: ../plugins/language//PageComponent.qml:13856#: ../plugins/language//PageComponent.qml:138
57msgid "Word suggestions"57msgid "Word suggestions"
@@ -68,12 +68,14 @@
6868
69#: ../plugins/language//PageComponent.qml:16869#: ../plugins/language//PageComponent.qml:168
70msgid "Auto punctuation"70msgid "Auto punctuation"
71msgstr ""71msgstr "Punctuație automată"
7272
73#: ../plugins/language//PageComponent.qml:17873#: ../plugins/language//PageComponent.qml:178
74msgid ""74msgid ""
75"Adds a period, and any missing quotes or brackets, when you tap Space twice."75"Adds a period, and any missing quotes or brackets, when you tap Space twice."
76msgstr ""76msgstr ""
77"Adăugați o perioadă, și orice citate lipsă sau paranteze, atunci când "
78"atingeți Spațiu de două ori."
7779
78#: ../plugins/language//PageComponent.qml:18580#: ../plugins/language//PageComponent.qml:185
79#: ../plugins/sound//PageComponent.qml:18681#: ../plugins/sound//PageComponent.qml:186
@@ -82,7 +84,7 @@
8284
83#: ../plugins/language//PageComponent.qml:19585#: ../plugins/language//PageComponent.qml:195
84msgid "Keyboard vibration"86msgid "Keyboard vibration"
85msgstr ""87msgstr "Vibrație tastatură"
8688
87#: ../plugins/language//KeyboardLayouts.qml:3989#: ../plugins/language//KeyboardLayouts.qml:39
88msgid "Current layouts:"90msgid "Current layouts:"
@@ -326,24 +328,24 @@
326328
327#: ../plugins/security-privacy//AppAccess.qml:42329#: ../plugins/security-privacy//AppAccess.qml:42
328msgid "Apps that have requested access to your camera"330msgid "Apps that have requested access to your camera"
329msgstr ""331msgstr "Aplicații care au solicitat accesul la camera dumneavostră"
330332
331#: ../plugins/security-privacy//AppAccess.qml:46333#: ../plugins/security-privacy//AppAccess.qml:46
332msgid "Mic"334msgid "Mic"
333msgstr ""335msgstr "Microfon"
334336
335#: ../plugins/security-privacy//AppAccess.qml:47337#: ../plugins/security-privacy//AppAccess.qml:47
336msgid "Apps that have requested access to your mic"338msgid "Apps that have requested access to your mic"
337msgstr ""339msgstr "Aplicații care au solicitat accesul la microfonul dumneavoastră"
338340
339#: ../plugins/security-privacy//AppAccess.qml:59341#: ../plugins/security-privacy//AppAccess.qml:59
340#, qt-format342#, qt-format
341msgid "%1/%2"343msgid "%1/%2"
342msgstr ""344msgstr "%1/%2"
343345
344#: ../plugins/security-privacy//AppAccess.qml:60346#: ../plugins/security-privacy//AppAccess.qml:60
345msgid "0"347msgid "0"
346msgstr ""348msgstr "0"
347349
348#: ../plugins/security-privacy//LockSecurity.qml:92350#: ../plugins/security-privacy//LockSecurity.qml:92
349msgid "Change passcode"351msgid "Change passcode"
@@ -1090,7 +1092,7 @@
1090#: ../plugins/battery//PageComponent.qml:2901092#: ../plugins/battery//PageComponent.qml:290
1091#: ../plugins/brightness//BrightnessSlider.qml:511093#: ../plugins/brightness//BrightnessSlider.qml:51
1092msgid "Display brightness"1094msgid "Display brightness"
1093msgstr ""1095msgstr "Luminozitate afișaj"
10941096
1095#. TRANSLATORS: %1 is the number of minutes1097#. TRANSLATORS: %1 is the number of minutes
1096#: ../plugins/battery//PageComponent.qml:3061098#: ../plugins/battery//PageComponent.qml:306
@@ -1594,11 +1596,11 @@
15941596
1595#: ../wizard/qml/Pages//15-passwd.qml:1361597#: ../wizard/qml/Pages//15-passwd.qml:136
1596msgid "Those passcodes don't match."1598msgid "Those passcodes don't match."
1597msgstr ""1599msgstr "Aceste coduri de acces nu se potrivesc."
15981600
1599#: ../wizard/qml/Pages//15-passwd.qml:1381601#: ../wizard/qml/Pages//15-passwd.qml:138
1600msgid "Those passphrases don't match."1602msgid "Those passphrases don't match."
1601msgstr ""1603msgstr "Aceste fraze secrete nu se potrivesc."
16021604
1603#: ../wizard/qml/Pages//15-passwd.qml:1461605#: ../wizard/qml/Pages//15-passwd.qml:146
1604msgid "Passcode must be at least four digits long."1606msgid "Passcode must be at least four digits long."
@@ -1912,8 +1914,8 @@
19121914
1913#: ../push-helper/software-updates-helper.py:781915#: ../push-helper/software-updates-helper.py:78
1914msgid "There's an updated system image."1916msgid "There's an updated system image."
1915msgstr ""1917msgstr "Există o imagine de sistem actualizată."
19161918
1917#: ../push-helper/software-updates-helper.py:791919#: ../push-helper/software-updates-helper.py:79
1918msgid "Tap to open the system updater."1920msgid "Tap to open the system updater."
1919msgstr ""1921msgstr "Atingeți pentru a deschide programul de actualizare a sistemului."
19201922
=== modified file 'po/ru.po'
--- po/ru.po 2014-08-20 06:22:04 +0000
+++ po/ru.po 2014-08-26 11:38:32 +0000
@@ -8,15 +8,15 @@
8"Project-Id-Version: ubuntu-system-settings\n"8"Project-Id-Version: ubuntu-system-settings\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2014-08-15 19:11-0600\n"10"POT-Creation-Date: 2014-08-15 19:11-0600\n"
11"PO-Revision-Date: 2014-08-12 11:23+0000\n"11"PO-Revision-Date: 2014-08-26 07:16+0000\n"
12"Last-Translator: Ilya Barilo <mail@sourcelocalizer.ru>\n"12"Last-Translator: Jay ZDLin <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"13"Language-Team: Russian <ru@li.org>\n"
14"MIME-Version: 1.0\n"14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19"X-Launchpad-Export-Date: 2014-08-20 06:21+0000\n"19"X-Launchpad-Export-Date: 2014-08-26 07:46+0000\n"
20"X-Generator: Launchpad (build 17163)\n"20"X-Generator: Launchpad (build 17163)\n"
2121
22#: ../plugins/language//SpellChecking.qml:2722#: ../plugins/language//SpellChecking.qml:27
@@ -51,7 +51,7 @@
5151
52#: ../plugins/language//PageComponent.qml:12852#: ../plugins/language//PageComponent.qml:128
53msgid "Auto correction"53msgid "Auto correction"
54msgstr ""54msgstr "Автоисправление"
5555
56#: ../plugins/language//PageComponent.qml:13856#: ../plugins/language//PageComponent.qml:138
57msgid "Word suggestions"57msgid "Word suggestions"
@@ -68,12 +68,14 @@
6868
69#: ../plugins/language//PageComponent.qml:16869#: ../plugins/language//PageComponent.qml:168
70msgid "Auto punctuation"70msgid "Auto punctuation"
71msgstr ""71msgstr "Пунктуация (автоматически)"
7272
73#: ../plugins/language//PageComponent.qml:17873#: ../plugins/language//PageComponent.qml:178
74msgid ""74msgid ""
75"Adds a period, and any missing quotes or brackets, when you tap Space twice."75"Adds a period, and any missing quotes or brackets, when you tap Space twice."
76msgstr ""76msgstr ""
77"Добавление точек и отсутствующих кавычек или скобок при двойном нажатии "
78"пробела."
7779
78#: ../plugins/language//PageComponent.qml:18580#: ../plugins/language//PageComponent.qml:185
79#: ../plugins/sound//PageComponent.qml:18681#: ../plugins/sound//PageComponent.qml:186
@@ -82,7 +84,7 @@
8284
83#: ../plugins/language//PageComponent.qml:19585#: ../plugins/language//PageComponent.qml:195
84msgid "Keyboard vibration"86msgid "Keyboard vibration"
85msgstr ""87msgstr "Вибрация клавиатуры"
8688
87#: ../plugins/language//KeyboardLayouts.qml:3989#: ../plugins/language//KeyboardLayouts.qml:39
88msgid "Current layouts:"90msgid "Current layouts:"
@@ -325,24 +327,24 @@
325327
326#: ../plugins/security-privacy//AppAccess.qml:42328#: ../plugins/security-privacy//AppAccess.qml:42
327msgid "Apps that have requested access to your camera"329msgid "Apps that have requested access to your camera"
328msgstr ""330msgstr "Приложения, запросившие доступ к камере"
329331
330#: ../plugins/security-privacy//AppAccess.qml:46332#: ../plugins/security-privacy//AppAccess.qml:46
331msgid "Mic"333msgid "Mic"
332msgstr ""334msgstr "Микрофон"
333335
334#: ../plugins/security-privacy//AppAccess.qml:47336#: ../plugins/security-privacy//AppAccess.qml:47
335msgid "Apps that have requested access to your mic"337msgid "Apps that have requested access to your mic"
336msgstr ""338msgstr "Приложения, запросившие доступ к микрофону"
337339
338#: ../plugins/security-privacy//AppAccess.qml:59340#: ../plugins/security-privacy//AppAccess.qml:59
339#, qt-format341#, qt-format
340msgid "%1/%2"342msgid "%1/%2"
341msgstr ""343msgstr "%1/%2"
342344
343#: ../plugins/security-privacy//AppAccess.qml:60345#: ../plugins/security-privacy//AppAccess.qml:60
344msgid "0"346msgid "0"
345msgstr ""347msgstr "0"
346348
347#: ../plugins/security-privacy//LockSecurity.qml:92349#: ../plugins/security-privacy//LockSecurity.qml:92
348msgid "Change passcode"350msgid "Change passcode"
@@ -1083,7 +1085,7 @@
1083#: ../plugins/battery//PageComponent.qml:2901085#: ../plugins/battery//PageComponent.qml:290
1084#: ../plugins/brightness//BrightnessSlider.qml:511086#: ../plugins/brightness//BrightnessSlider.qml:51
1085msgid "Display brightness"1087msgid "Display brightness"
1086msgstr ""1088msgstr "Яркость экрана"
10871089
1088#. TRANSLATORS: %1 is the number of minutes1090#. TRANSLATORS: %1 is the number of minutes
1089#: ../plugins/battery//PageComponent.qml:3061091#: ../plugins/battery//PageComponent.qml:306
@@ -1429,7 +1431,7 @@
14291431
1430#: ../plugins/brightness//PageComponent.qml:651432#: ../plugins/brightness//PageComponent.qml:65
1431msgid "Brightens and dims the display to suit the surroundings."1433msgid "Brightens and dims the display to suit the surroundings."
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches