Merge lp:~nick-dedekind/ubuntu-system-settings/lp1336715.check.sync into lp:ubuntu-system-settings/rtm-14.09
- lp1336715.check.sync
- Merge into rtm-14.09
Proposed by
kevin gunn
Status: | Work in progress |
---|---|
Proposed branch: | lp:~nick-dedekind/ubuntu-system-settings/lp1336715.check.sync |
Merge into: | lp:ubuntu-system-settings/rtm-14.09 |
Diff against target: |
5170 lines (+1423/-1515) (has conflicts) 69 files modified
debian/changelog (+113/-0) plugins/about/PageComponent.qml (+10/-3) plugins/about/Storage.qml (+2/-2) plugins/about/StorageItem.qml (+1/-1) plugins/about/click.cpp (+11/-13) plugins/about/click.h (+2/-1) plugins/about/storageabout.cpp (+0/-11) plugins/about/storageabout.h (+0/-1) plugins/battery/PageComponent.qml (+15/-26) plugins/battery/SleepValues.qml (+6/-1) plugins/battery/battery.cpp (+5/-1) plugins/battery/plugin/battery-plugin.cpp (+4/-1) plugins/bluetooth/PageComponent.qml (+20/-19) plugins/bluetooth/devicemodel.cpp (+2/-0) plugins/brightness/BrightnessSlider.qml (+0/-103) plugins/brightness/CMakeLists.txt (+0/-1) plugins/brightness/PageComponent.qml (+39/-7) plugins/cellular/Components/CMakeLists.txt (+5/-5) plugins/cellular/Components/CellularSingleSim.qml (+0/-115) plugins/cellular/Components/DataMultiSim.qml (+13/-124) plugins/cellular/Components/MultiSim.qml (+52/-10) plugins/cellular/Components/NoSim.qml (+5/-12) plugins/cellular/Components/RadioSingleSim.qml (+57/-0) plugins/cellular/Components/SimEditor.qml (+31/-14) plugins/cellular/Components/SingleSim.qml (+42/-6) plugins/cellular/CustomApnEditor.qml (+1/-1) plugins/cellular/PageChooseCarrier.qml (+3/-2) plugins/cellular/PageChooseCarriers.qml (+2/-2) plugins/cellular/PageComponent.qml (+2/-2) plugins/cellular/sims.js (+10/-0) plugins/flight-mode/EntryComponent.qml (+3/-3) plugins/language/DisplayLanguage.qml (+0/-2) plugins/language/PageComponent.qml (+29/-21) plugins/language/SpellChecking.qml (+12/-3) plugins/notifications/PageComponent.qml (+1/-0) plugins/orientation-lock/EntryComponent.qml (+6/-4) plugins/phone/PageComponent.qml (+4/-2) plugins/reset/ResetLauncherHome.qml (+0/-6) plugins/security-privacy/Location.qml (+5/-4) plugins/security-privacy/LockSecurity.qml (+1/-1) plugins/security-privacy/PageComponent.qml (+10/-16) plugins/security-privacy/PhoneLocking.qml (+11/-5) plugins/sound/PageComponent.qml (+32/-19) plugins/sound/sound.cpp (+3/-0) plugins/system-update/PageComponent.qml (+5/-28) plugins/time-date/PageComponent.qml (+5/-2) plugins/wifi/MenuItemFactory.qml (+16/-9) plugins/wifi/PageComponent.qml (+2/-1) po/es.po (+3/-42) po/hu.po (+35/-85) po/pt.po (+10/-49) po/ru.po (+96/-119) src/CMakeLists.txt (+4/-1) src/SystemSettings/CMakeLists.txt (+1/-0) src/SystemSettings/SettingsItemTitle.qml (+38/-0) src/SystemSettings/qmldir (+1/-0) src/main.cpp (+1/-0) src/utils.cpp (+17/-0) src/utils.h (+8/-0) tests/CMakeLists.txt (+2/-0) tests/autopilot/ubuntu_system_settings/__init__.py (+198/-1) tests/autopilot/ubuntu_system_settings/tests/__init__.py (+7/-3) tests/autopilot/ubuntu_system_settings/tests/test_cellular.py (+202/-593) tests/autopilot/ubuntu_system_settings/tests/test_wifi.py (+39/-2) wizard/Utils/system.cpp (+7/-3) wizard/qml/Components/CheckableSetting.qml (+8/-3) wizard/qml/Pages/30-passwd-type.qml (+1/-1) wizard/qml/Pages/50-location.qml (+95/-3) wizard/qml/main.qml (+52/-0) Text conflict in debian/changelog Text conflict in plugins/about/PageComponent.qml Text conflict in po/ru.po Text conflict in wizard/qml/Pages/50-location.qml |
To merge this branch: | bzr merge lp:~nick-dedekind/ubuntu-system-settings/lp1336715.check.sync |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ken VanDine | Needs Fixing | ||
Review via email: mp+241152@code.launchpad.net |
Commit message
Fixed switches & check-boxes going out of sync with backends.
Description of the change
Fixed switches & check-boxes going out of sync with backends.
To post a comment you must log in.
Revision history for this message
Sebastien Bacher (seb128) wrote : | # |
Unmerged revisions
- 1160. By Nick Dedekind
-
more fixes
- 1159. By Nick Dedekind
-
merged with trunk
- 1158. By Nick Dedekind
-
reverted unnecessary changes
- 1157. By Nick Dedekind
-
dont use USC.SyncSwitch
- 1156. By Nick Dedekind
-
removed unnecessary change
- 1155. By Nick Dedekind
-
bump usc requirement
- 1154. By Nick Dedekind
-
fixed out of sync switches
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'debian/changelog' | |||
2 | --- debian/changelog 2014-11-04 14:38:52 +0000 | |||
3 | +++ debian/changelog 2014-11-07 22:38:03 +0000 | |||
4 | @@ -1,3 +1,4 @@ | |||
5 | 1 | <<<<<<< TREE | ||
6 | 1 | ubuntu-system-settings (0.3+14.10.20141104~rtm-0ubuntu1) 14.09; urgency=low | 2 | ubuntu-system-settings (0.3+14.10.20141104~rtm-0ubuntu1) 14.09; urgency=low |
7 | 2 | 3 | ||
8 | 3 | [ Ken VanDine ] | 4 | [ Ken VanDine ] |
9 | @@ -55,6 +56,118 @@ | |||
10 | 55 | 56 | ||
11 | 56 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 21 Oct 2014 15:24:55 +0000 | 57 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 21 Oct 2014 15:24:55 +0000 |
12 | 57 | 58 | ||
13 | 59 | ======= | ||
14 | 60 | ubuntu-system-settings (0.3+15.04.20141103-0ubuntu1) vivid; urgency=low | ||
15 | 61 | |||
16 | 62 | [ Ken VanDine ] | ||
17 | 63 | * Use the SliderMenu component instead of the Slider component, it | ||
18 | 64 | matches the design and doesn't flicker while changing the | ||
19 | 65 | brightness. (LP: #1289465) | ||
20 | 66 | * Need to create UpClient regardless of upower version | ||
21 | 67 | |||
22 | 68 | [ Sebastien Bacher ] | ||
23 | 69 | * [storage] build the correct ini name rather than guessing it (LP: | ||
24 | 70 | #1387834) | ||
25 | 71 | * [battery] don't use a colored icon (LP: #1351383) | ||
26 | 72 | |||
27 | 73 | [ Michael Terry ] | ||
28 | 74 | * Redesign location page according to latest design visuals / text. | ||
29 | 75 | Allows GPS-only, GPS+HERE, or nothing at all. (LP: #1384763) | ||
30 | 76 | |||
31 | 77 | [ Ubuntu daily release ] | ||
32 | 78 | * New rebuild forced | ||
33 | 79 | |||
34 | 80 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 03 Nov 2014 17:30:03 +0000 | ||
35 | 81 | |||
36 | 82 | ubuntu-system-settings (0.3+15.04.20141031.2-0ubuntu1) vivid; urgency=low | ||
37 | 83 | |||
38 | 84 | [ Sebastien Bacher ] | ||
39 | 85 | * Tweaks to try to make the section headers and titles closer to the | ||
40 | 86 | design. Use a custom component, with tweaked margins and disabled | ||
41 | 87 | tap effects, for that. | ||
42 | 88 | |||
43 | 89 | [ Iain Lane ] | ||
44 | 90 | * Move formatSize into a new Utilities class in the qml context and | ||
45 | 91 | call this from the updates panel to consistently display sizes (LP: | ||
46 | 92 | #1385286) | ||
47 | 93 | * Update to work with UPower >= 0.99 as well as current versions (LP: | ||
48 | 94 | #1330037) | ||
49 | 95 | |||
50 | 96 | [ Albert Astals ] | ||
51 | 97 | * i18n++ (LP: #1386730) | ||
52 | 98 | |||
53 | 99 | [ William Hua ] | ||
54 | 100 | * Re-translate the UI when reboot is cancelled after language change. | ||
55 | 101 | (LP: #1377984) | ||
56 | 102 | |||
57 | 103 | [ jonas-drange ] | ||
58 | 104 | * [cellular] split "Cellular Data" and "Connection type" into two | ||
59 | 105 | separate pieces in the UI for both single and multi SIM (LP: | ||
60 | 106 | #1361226) | ||
61 | 107 | * [wifi] use actiongroup to hide "connect to other networks" (LP: | ||
62 | 108 | #1377076) | ||
63 | 109 | |||
64 | 110 | [ Michael Terry ] | ||
65 | 111 | * When the power button is held down, show the shutdown dialog like we | ||
66 | 112 | do in the unity8 shell. (LP: #1381731) | ||
67 | 113 | * Add a Continue button when choosing a passphrase. And fix a few | ||
68 | 114 | other design nits with choosing a password. | ||
69 | 115 | |||
70 | 116 | [ Michael Zanetti ] | ||
71 | 117 | * Drop reboot notification label on launcher reset. (LP: #1376707) | ||
72 | 118 | |||
73 | 119 | [ Mathieu Trudel-Lapierre ] | ||
74 | 120 | * [bluetooth] Show bluetooth address instead of name while it's not | ||
75 | 121 | detected; to be updated once available. (LP: #1382767) | ||
76 | 122 | |||
77 | 123 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 31 Oct 2014 14:53:52 +0000 | ||
78 | 124 | |||
79 | 125 | ubuntu-system-settings (0.3+15.04.20141028.1-0ubuntu1) vivid; urgency=low | ||
80 | 126 | |||
81 | 127 | [ Ken VanDine ] | ||
82 | 128 | * Refactored to use a singleton for UpdateManager shared in both QML | ||
83 | 129 | and CPP. Don't load the dynamic visibility items while creating the | ||
84 | 130 | item model, defer that to the loader. (LP: #1317007) | ||
85 | 131 | |||
86 | 132 | [ Florian Boucault ] | ||
87 | 133 | * Added QML debugging. | ||
88 | 134 | |||
89 | 135 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 28 Oct 2014 20:44:34 +0000 | ||
90 | 136 | |||
91 | 137 | ubuntu-system-settings (0.3+15.04.20141028-0ubuntu1) vivid; urgency=low | ||
92 | 138 | |||
93 | 139 | [ Michael Terry ] | ||
94 | 140 | * Fix a typo in the HERE terms link. | ||
95 | 141 | |||
96 | 142 | [ CI bot ] | ||
97 | 143 | * Resync trunk | ||
98 | 144 | |||
99 | 145 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 28 Oct 2014 14:15:45 +0000 | ||
100 | 146 | |||
101 | 147 | ubuntu-system-settings (0.3+14.10.20141022-0ubuntu1) utopic; urgency=low | ||
102 | 148 | |||
103 | 149 | [ CI bot ] | ||
104 | 150 | * Resync trunk | ||
105 | 151 | |||
106 | 152 | [ Michael Zanetti ] | ||
107 | 153 | * update code to reset launcher after launcher backend implementation | ||
108 | 154 | was reworked (LP: #1376707) | ||
109 | 155 | |||
110 | 156 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 22 Oct 2014 21:34:27 +0000 | ||
111 | 157 | |||
112 | 158 | ubuntu-system-settings (0.3+14.10.20141021.1-0ubuntu1) utopic; urgency=low | ||
113 | 159 | |||
114 | 160 | [ Sebastien Bacher ] | ||
115 | 161 | * [storage] translator comment for the string "%1 free" (LP: #1377929) | ||
116 | 162 | * [system-update] ellipsize labels if needed (LP: #1376286) | ||
117 | 163 | * [sound] Use the correct low icon (LP: #1376286) | ||
118 | 164 | |||
119 | 165 | [ Lars Uebernickel ] | ||
120 | 166 | * notification-manager: fix issues with GVariant API usage | ||
121 | 167 | |||
122 | 168 | -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 21 Oct 2014 15:24:55 +0000 | ||
123 | 169 | |||
124 | 170 | >>>>>>> MERGE-SOURCE | ||
125 | 58 | ubuntu-system-settings (0.3+14.10.20141021-0ubuntu1) utopic; urgency=low | 171 | ubuntu-system-settings (0.3+14.10.20141021-0ubuntu1) utopic; urgency=low |
126 | 59 | 172 | ||
127 | 60 | [ jonas-drange ] | 173 | [ jonas-drange ] |
128 | 61 | 174 | ||
129 | === modified file 'plugins/about/PageComponent.qml' | |||
130 | --- plugins/about/PageComponent.qml 2014-10-07 14:07:02 +0000 | |||
131 | +++ plugins/about/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
132 | @@ -74,7 +74,7 @@ | |||
133 | 74 | anchors.left: parent.left | 74 | anchors.left: parent.left |
134 | 75 | anchors.right: parent.right | 75 | anchors.right: parent.right |
135 | 76 | 76 | ||
137 | 77 | ListItem.Base { | 77 | ListItem.Empty { |
138 | 78 | height: ubuntuLabel.height + deviceLabel.height + units.gu(6) | 78 | height: ubuntuLabel.height + deviceLabel.height + units.gu(6) |
139 | 79 | 79 | ||
140 | 80 | Column { | 80 | Column { |
141 | @@ -95,6 +95,7 @@ | |||
142 | 95 | text: deviceInfos.manufacturer() ? deviceInfos.manufacturer() + " " + deviceInfos.model() : backendInfos.vendorString | 95 | text: deviceInfos.manufacturer() ? deviceInfos.manufacturer() + " " + deviceInfos.model() : backendInfos.vendorString |
143 | 96 | } | 96 | } |
144 | 97 | } | 97 | } |
145 | 98 | highlightWhenPressed: false | ||
146 | 98 | } | 99 | } |
147 | 99 | 100 | ||
148 | 100 | Loader { | 101 | Loader { |
149 | @@ -141,13 +142,18 @@ | |||
150 | 141 | id: storageItem | 142 | id: storageItem |
151 | 142 | objectName: "storageItem" | 143 | objectName: "storageItem" |
152 | 143 | text: i18n.tr("Storage") | 144 | text: i18n.tr("Storage") |
153 | 145 | <<<<<<< TREE | ||
154 | 144 | /* TRANSLATORS: that's the free disk space, indicated in the most appropriate storage unit */ | 146 | /* TRANSLATORS: that's the free disk space, indicated in the most appropriate storage unit */ |
155 | 145 | value: i18n.tr("%1 free").arg(backendInfos.formatSize(storageInfo.availableDiskSpace("/home"))) | 147 | value: i18n.tr("%1 free").arg(backendInfos.formatSize(storageInfo.availableDiskSpace("/home"))) |
156 | 148 | ======= | ||
157 | 149 | /* TRANSLATORS: that's the free disk space, indicated in the most appropriate storage unit */ | ||
158 | 150 | value: i18n.tr("%1 free").arg(Utilities.formatSize(storageInfo.availableDiskSpace("/home"))) | ||
159 | 151 | >>>>>>> MERGE-SOURCE | ||
160 | 146 | progression: true | 152 | progression: true |
161 | 147 | onClicked: pageStack.push(Qt.resolvedUrl("Storage.qml")) | 153 | onClicked: pageStack.push(Qt.resolvedUrl("Storage.qml")) |
162 | 148 | } | 154 | } |
163 | 149 | 155 | ||
165 | 150 | ListItem.Standard { | 156 | SettingsItemTitle { |
166 | 151 | objectName: "softwareItem" | 157 | objectName: "softwareItem" |
167 | 152 | text: i18n.tr("Software:") | 158 | text: i18n.tr("Software:") |
168 | 153 | } | 159 | } |
169 | @@ -176,9 +182,10 @@ | |||
170 | 176 | onClicked: | 182 | onClicked: |
171 | 177 | pageStack.push(pluginManager.getByName("system-update").pageComponent) | 183 | pageStack.push(pluginManager.getByName("system-update").pageComponent) |
172 | 178 | } | 184 | } |
173 | 185 | showDivider: false | ||
174 | 179 | } | 186 | } |
175 | 180 | 187 | ||
177 | 181 | ListItem.Standard { | 188 | SettingsItemTitle { |
178 | 182 | objectName: "legalItem" | 189 | objectName: "legalItem" |
179 | 183 | text: i18n.tr("Legal:") | 190 | text: i18n.tr("Legal:") |
180 | 184 | } | 191 | } |
181 | 185 | 192 | ||
182 | === modified file 'plugins/about/Storage.qml' | |||
183 | --- plugins/about/Storage.qml 2014-09-26 08:35:34 +0000 | |||
184 | +++ plugins/about/Storage.qml 2014-11-07 22:38:03 +0000 | |||
185 | @@ -138,7 +138,7 @@ | |||
186 | 138 | id: diskItem | 138 | id: diskItem |
187 | 139 | objectName: "diskItem" | 139 | objectName: "diskItem" |
188 | 140 | text: i18n.tr("Total storage") | 140 | text: i18n.tr("Total storage") |
190 | 141 | value: backendInfo.formatSize(diskSpace) | 141 | value: Utilities.formatSize(diskSpace) |
191 | 142 | showDivider: false | 142 | showDivider: false |
192 | 143 | } | 143 | } |
193 | 144 | 144 | ||
194 | @@ -199,7 +199,7 @@ | |||
195 | 199 | iconFrame: iconPath // no frame for invalid icons, since these aren't app icons | 199 | iconFrame: iconPath // no frame for invalid icons, since these aren't app icons |
196 | 200 | text: displayName | 200 | text: displayName |
197 | 201 | value: installedSize ? | 201 | value: installedSize ? |
199 | 202 | backendInfo.formatSize(installedSize) : | 202 | Utilities.formatSize(installedSize) : |
200 | 203 | i18n.tr("N/A") | 203 | i18n.tr("N/A") |
201 | 204 | } | 204 | } |
202 | 205 | } | 205 | } |
203 | 206 | 206 | ||
204 | === modified file 'plugins/about/StorageItem.qml' | |||
205 | --- plugins/about/StorageItem.qml 2014-01-27 10:41:38 +0000 | |||
206 | +++ plugins/about/StorageItem.qml 2014-11-07 22:38:03 +0000 | |||
207 | @@ -25,7 +25,7 @@ | |||
208 | 25 | id: sizelabel | 25 | id: sizelabel |
209 | 26 | objectName: "sizeLabel" | 26 | objectName: "sizeLabel" |
210 | 27 | anchors.right: parent.right | 27 | anchors.right: parent.right |
212 | 28 | text: backendInfo.formatSize(value) | 28 | text: Utilities.formatSize(value) |
213 | 29 | visible: ready | 29 | visible: ready |
214 | 30 | } | 30 | } |
215 | 31 | ActivityIndicator { | 31 | ActivityIndicator { |
216 | 32 | 32 | ||
217 | === modified file 'plugins/about/click.cpp' | |||
218 | --- plugins/about/click.cpp 2014-09-25 13:11:09 +0000 | |||
219 | +++ plugins/about/click.cpp 2014-11-07 22:38:03 +0000 | |||
220 | @@ -45,7 +45,8 @@ | |||
221 | 45 | */ | 45 | */ |
222 | 46 | void ClickModel::populateFromDesktopOrIniFile (Click *newClick, | 46 | void ClickModel::populateFromDesktopOrIniFile (Click *newClick, |
223 | 47 | QVariantMap hooks, | 47 | QVariantMap hooks, |
225 | 48 | QDir directory) | 48 | QDir directory, |
226 | 49 | QString name) | ||
227 | 49 | { | 50 | { |
228 | 50 | QVariantMap appHooks; | 51 | QVariantMap appHooks; |
229 | 51 | GKeyFile *appinfo = g_key_file_new(); | 52 | GKeyFile *appinfo = g_key_file_new(); |
230 | @@ -69,17 +70,13 @@ | |||
231 | 69 | { | 70 | { |
232 | 70 | keyGroup = "ScopeConfig"; | 71 | keyGroup = "ScopeConfig"; |
233 | 71 | keyName = "DisplayName"; | 72 | keyName = "DisplayName"; |
245 | 72 | 73 | QString scope(appHooks.value("scope", "").toString()); | |
246 | 73 | QDir scopeDirectory( | 74 | |
247 | 74 | directory.absoluteFilePath(appHooks.value("scope", "").toString())); | 75 | QDir scopeDirectory(directory.absoluteFilePath(scope)); |
248 | 75 | scopeDirectory.setNameFilters(QStringList()<<"*.ini"); | 76 | |
249 | 76 | 77 | /* the config is 'name_scope.ini' */ | |
250 | 77 | QStringList iniEntry(scopeDirectory.entryList()); | 78 | QFile desktopOrIniFile(scopeDirectory.absoluteFilePath( |
251 | 78 | 79 | name + "_" + scope + ".ini")); | |
241 | 79 | if (iniEntry.isEmpty()) | ||
242 | 80 | goto out; | ||
243 | 81 | |||
244 | 82 | QFile desktopOrIniFile(scopeDirectory.absoluteFilePath(iniEntry[0])); | ||
252 | 83 | desktopOrIniFileName = | 80 | desktopOrIniFileName = |
253 | 84 | g_strdup(desktopOrIniFile.fileName().toLocal8Bit().constData()); | 81 | g_strdup(desktopOrIniFile.fileName().toLocal8Bit().constData()); |
254 | 85 | if (!desktopOrIniFile.exists()) | 82 | if (!desktopOrIniFile.exists()) |
255 | @@ -193,7 +190,8 @@ | |||
256 | 193 | if (hooks.isValid()) { | 190 | if (hooks.isValid()) { |
257 | 194 | QVariantMap allHooks(hooks.toMap()); | 191 | QVariantMap allHooks(hooks.toMap()); |
258 | 195 | // The desktop or ini file contains an icon and the display name | 192 | // The desktop or ini file contains an icon and the display name |
260 | 196 | populateFromDesktopOrIniFile(&newClick, allHooks, directory); | 193 | populateFromDesktopOrIniFile(&newClick, allHooks, directory, |
261 | 194 | manifest.value("name", "").toString()); | ||
262 | 197 | } | 195 | } |
263 | 198 | 196 | ||
264 | 199 | newClick.installSize = manifest.value("installed-size", | 197 | newClick.installSize = manifest.value("installed-size", |
265 | 200 | 198 | ||
266 | === modified file 'plugins/about/click.h' | |||
267 | --- plugins/about/click.h 2014-09-25 11:17:42 +0000 | |||
268 | +++ plugins/about/click.h 2014-11-07 22:38:03 +0000 | |||
269 | @@ -58,7 +58,8 @@ | |||
270 | 58 | private: | 58 | private: |
271 | 59 | void populateFromDesktopOrIniFile(Click *newClick, | 59 | void populateFromDesktopOrIniFile(Click *newClick, |
272 | 60 | QVariantMap hooks, | 60 | QVariantMap hooks, |
274 | 61 | QDir directory); | 61 | QDir directory, |
275 | 62 | QString name); | ||
276 | 62 | Click buildClick(QVariantMap manifest); | 63 | Click buildClick(QVariantMap manifest); |
277 | 63 | QList<Click> buildClickList(); | 64 | QList<Click> buildClickList(); |
278 | 64 | 65 | ||
279 | 65 | 66 | ||
280 | === modified file 'plugins/about/storageabout.cpp' | |||
281 | --- plugins/about/storageabout.cpp 2014-10-02 16:35:40 +0000 | |||
282 | +++ plugins/about/storageabout.cpp 2014-11-07 22:38:03 +0000 | |||
283 | @@ -290,17 +290,6 @@ | |||
284 | 290 | return m_homeSize; | 290 | return m_homeSize; |
285 | 291 | } | 291 | } |
286 | 292 | 292 | ||
287 | 293 | QString StorageAbout::formatSize(quint64 size) const | ||
288 | 294 | { | ||
289 | 295 | guint64 g_size = size; | ||
290 | 296 | |||
291 | 297 | gchar * formatted_size = g_format_size (g_size); | ||
292 | 298 | QString q_formatted_size = QString::fromLocal8Bit(formatted_size); | ||
293 | 299 | g_free (formatted_size); | ||
294 | 300 | |||
295 | 301 | return q_formatted_size; | ||
296 | 302 | } | ||
297 | 303 | |||
298 | 304 | void StorageAbout::populateSizes() | 293 | void StorageAbout::populateSizes() |
299 | 305 | { | 294 | { |
300 | 306 | quint32 *running = new quint32(0); | 295 | quint32 *running = new quint32(0); |
301 | 307 | 296 | ||
302 | === modified file 'plugins/about/storageabout.h' | |||
303 | --- plugins/about/storageabout.h 2014-09-24 12:29:57 +0000 | |||
304 | +++ plugins/about/storageabout.h 2014-11-07 22:38:03 +0000 | |||
305 | @@ -109,7 +109,6 @@ | |||
306 | 109 | quint64 getAudioSize(); | 109 | quint64 getAudioSize(); |
307 | 110 | quint64 getPicturesSize(); | 110 | quint64 getPicturesSize(); |
308 | 111 | quint64 getHomeSize(); | 111 | quint64 getHomeSize(); |
309 | 112 | Q_INVOKABLE QString formatSize (quint64 size) const; | ||
310 | 113 | Q_INVOKABLE void populateSizes(); | 112 | Q_INVOKABLE void populateSizes(); |
311 | 114 | Q_INVOKABLE QString getDevicePath (const QString mount_point); | 113 | Q_INVOKABLE QString getDevicePath (const QString mount_point); |
312 | 115 | bool getDeveloperMode(); | 114 | bool getDeveloperMode(); |
313 | 116 | 115 | ||
314 | === modified file 'plugins/battery/PageComponent.qml' | |||
315 | --- plugins/battery/PageComponent.qml 2014-08-29 09:11:11 +0000 | |||
316 | +++ plugins/battery/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
317 | @@ -288,7 +288,7 @@ | |||
318 | 288 | showDivider: false | 288 | showDivider: false |
319 | 289 | } | 289 | } |
320 | 290 | 290 | ||
322 | 291 | ListItem.Standard { | 291 | SettingsItemTitle { |
323 | 292 | text: i18n.tr("Ways to reduce battery use:") | 292 | text: i18n.tr("Ways to reduce battery use:") |
324 | 293 | } | 293 | } |
325 | 294 | 294 | ||
326 | @@ -333,17 +333,11 @@ | |||
327 | 333 | text: i18n.tr("Wi-Fi") | 333 | text: i18n.tr("Wi-Fi") |
328 | 334 | control: Switch { | 334 | control: Switch { |
329 | 335 | id: wifiSwitch | 335 | id: wifiSwitch |
332 | 336 | checked: batteryBackend.wifiEnabled | 336 | property bool serverChecked: batteryBackend.wifiEnabled |
333 | 337 | onClicked: batteryBackend.wifiEnabled = checked | 337 | onServerCheckedChanged: checked = serverChecked |
334 | 338 | Component.onCompleted: checked = serverChecked | ||
335 | 339 | onTriggered: batteryBackend.wifiEnabled = checked | ||
336 | 338 | } | 340 | } |
337 | 339 | Component.onCompleted: | ||
338 | 340 | clicked.connect(wifiSwitch.clicked) | ||
339 | 341 | } | ||
340 | 342 | |||
341 | 343 | Binding { | ||
342 | 344 | target: wifiSwitch | ||
343 | 345 | property: "checked" | ||
344 | 346 | value: batteryBackend.wifiEnabled | ||
345 | 347 | } | 341 | } |
346 | 348 | 342 | ||
347 | 349 | QDBusActionGroup { | 343 | QDBusActionGroup { |
348 | @@ -365,17 +359,14 @@ | |||
349 | 365 | active: bluetoothActionGroup.enabled.state != null | 359 | active: bluetoothActionGroup.enabled.state != null |
350 | 366 | sourceComponent: Switch { | 360 | sourceComponent: Switch { |
351 | 367 | id: btSwitch | 361 | id: btSwitch |
355 | 368 | // Cannot use onCheckedChanged as this triggers a loop | 362 | property bool serverChecked: bluetoothActionGroup.enabled.state |
356 | 369 | onClicked: bluetoothActionGroup.enabled.activate() | 363 | onServerCheckedChanged: checked = serverChecked |
357 | 370 | checked: bluetoothActionGroup.enabled.state | 364 | Component.onCompleted: checked = serverChecked |
358 | 365 | onTriggered: bluetoothActionGroup.enabled.activate() | ||
359 | 371 | } | 366 | } |
360 | 372 | |||
361 | 373 | // ListItem forwards the 'clicked' signal to its control. | ||
362 | 374 | // It needs to be forwarded again to the Loader's sourceComponent | ||
363 | 375 | signal clicked | ||
364 | 376 | onClicked: item.clicked() | ||
365 | 377 | } | 367 | } |
366 | 378 | visible: bluetoothActionGroup.visible | 368 | visible: bluetoothActionGroup.visible |
367 | 369 | Component.onCompleted: clicked.connect(btSwitch.clicked) | ||
368 | 379 | } | 370 | } |
369 | 380 | 371 | ||
370 | 381 | QDBusActionGroup { | 372 | QDBusActionGroup { |
371 | @@ -396,16 +387,14 @@ | |||
372 | 396 | active: locationActionGroup.enabled.state != null | 387 | active: locationActionGroup.enabled.state != null |
373 | 397 | sourceComponent: Switch { | 388 | sourceComponent: Switch { |
374 | 398 | id: gpsSwitch | 389 | id: gpsSwitch |
377 | 399 | onClicked: locationActionGroup.enabled.activate() | 390 | property bool serverChecked: locationActionGroup.enabled.state |
378 | 400 | checked: locationActionGroup.enabled.state | 391 | onServerCheckedChanged: checked = serverChecked |
379 | 392 | Component.onCompleted: checked = serverChecked | ||
380 | 393 | onTriggered: locationActionGroup.enabled.activate() | ||
381 | 401 | } | 394 | } |
382 | 402 | |||
383 | 403 | // ListItem forwards the 'clicked' signal to its control. | ||
384 | 404 | // It needs to be forwarded again to the Loader's sourceComponent | ||
385 | 405 | signal clicked | ||
386 | 406 | onClicked: item.clicked() | ||
387 | 407 | } | 395 | } |
388 | 408 | visible: locationActionGroup.enabled.state !== undefined | 396 | visible: locationActionGroup.enabled.state !== undefined |
389 | 397 | Component.onCompleted: clicked.connect(gpsSwitch.clicked) | ||
390 | 409 | } | 398 | } |
391 | 410 | 399 | ||
392 | 411 | ListItem.Caption { | 400 | ListItem.Caption { |
393 | 412 | 401 | ||
394 | === modified file 'plugins/battery/SleepValues.qml' | |||
395 | --- plugins/battery/SleepValues.qml 2014-08-26 01:54:11 +0000 | |||
396 | +++ plugins/battery/SleepValues.qml 2014-11-07 22:38:03 +0000 | |||
397 | @@ -71,10 +71,14 @@ | |||
398 | 71 | anchors.left: parent.left | 71 | anchors.left: parent.left |
399 | 72 | anchors.right: parent.right | 72 | anchors.right: parent.right |
400 | 73 | 73 | ||
401 | 74 | SettingsItemTitle { | ||
402 | 75 | text: lockOnSuspend ? i18n.tr("Lock the phone when it's not in use:") : | ||
403 | 76 | i18n.tr("Put the phone to sleep when it is not in use:") | ||
404 | 77 | } | ||
405 | 78 | |||
406 | 74 | ListItem.ItemSelector { | 79 | ListItem.ItemSelector { |
407 | 75 | id: sleepSelector | 80 | id: sleepSelector |
408 | 76 | objectName: "sleepSelector" | 81 | objectName: "sleepSelector" |
409 | 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:") | ||
410 | 78 | delegate: OptionSelectorDelegate { | 82 | delegate: OptionSelectorDelegate { |
411 | 79 | text: modelData | 83 | text: modelData |
412 | 80 | } | 84 | } |
413 | @@ -111,6 +115,7 @@ | |||
414 | 111 | else | 115 | else |
415 | 112 | powerSettings.idleDelay = (index == 6) ? 0 : idleValues[index] | 116 | powerSettings.idleDelay = (index == 6) ? 0 : idleValues[index] |
416 | 113 | } | 117 | } |
417 | 118 | highlightWhenPressed: false | ||
418 | 114 | } | 119 | } |
419 | 115 | 120 | ||
420 | 116 | ListItem.Caption { | 121 | ListItem.Caption { |
421 | 117 | 122 | ||
422 | === modified file 'plugins/battery/battery.cpp' | |||
423 | --- plugins/battery/battery.cpp 2014-08-28 07:22:28 +0000 | |||
424 | +++ plugins/battery/battery.cpp 2014-11-07 22:38:03 +0000 | |||
425 | @@ -63,15 +63,19 @@ | |||
426 | 63 | 63 | ||
427 | 64 | void Battery::buildDeviceString() { | 64 | void Battery::buildDeviceString() { |
428 | 65 | UpClient *client; | 65 | UpClient *client; |
429 | 66 | gboolean returnIsOk; | ||
430 | 67 | GPtrArray *devices; | 66 | GPtrArray *devices; |
431 | 68 | UpDeviceKind kind; | 67 | UpDeviceKind kind; |
432 | 69 | 68 | ||
433 | 70 | client = up_client_new(); | 69 | client = up_client_new(); |
434 | 70 | |||
435 | 71 | #if !UP_CHECK_VERSION(0, 99, 0) | ||
436 | 72 | gboolean returnIsOk; | ||
437 | 73 | |||
438 | 71 | returnIsOk = up_client_enumerate_devices_sync(client, nullptr, nullptr); | 74 | returnIsOk = up_client_enumerate_devices_sync(client, nullptr, nullptr); |
439 | 72 | 75 | ||
440 | 73 | if(!returnIsOk) | 76 | if(!returnIsOk) |
441 | 74 | return; | 77 | return; |
442 | 78 | #endif | ||
443 | 75 | 79 | ||
444 | 76 | devices = up_client_get_devices(client); | 80 | devices = up_client_get_devices(client); |
445 | 77 | 81 | ||
446 | 78 | 82 | ||
447 | === modified file 'plugins/battery/plugin/battery-plugin.cpp' | |||
448 | --- plugins/battery/plugin/battery-plugin.cpp 2014-07-23 13:37:06 +0000 | |||
449 | +++ plugins/battery/plugin/battery-plugin.cpp 2014-11-07 22:38:03 +0000 | |||
450 | @@ -49,10 +49,13 @@ | |||
451 | 49 | { | 49 | { |
452 | 50 | BatteryItem *item (static_cast<BatteryItem *> (user_data)); | 50 | BatteryItem *item (static_cast<BatteryItem *> (user_data)); |
453 | 51 | 51 | ||
454 | 52 | #if !UP_CHECK_VERSION(0, 99, 0) | ||
455 | 52 | gboolean ret = up_client_enumerate_devices_sync (client, nullptr, nullptr); | 53 | gboolean ret = up_client_enumerate_devices_sync (client, nullptr, nullptr); |
456 | 53 | if (!ret) { | 54 | if (!ret) { |
457 | 54 | item->setVisibility (false); | 55 | item->setVisibility (false); |
459 | 55 | } else { | 56 | } else |
460 | 57 | #endif | ||
461 | 58 | { | ||
462 | 56 | GPtrArray *devices = up_client_get_devices (client); | 59 | GPtrArray *devices = up_client_get_devices (client); |
463 | 57 | item->setVisibility (devices->len > 0); | 60 | item->setVisibility (devices->len > 0); |
464 | 58 | g_ptr_array_unref (devices); | 61 | g_ptr_array_unref (devices); |
465 | 59 | 62 | ||
466 | === modified file 'plugins/bluetooth/PageComponent.qml' | |||
467 | --- plugins/bluetooth/PageComponent.qml 2014-09-23 19:32:29 +0000 | |||
468 | +++ plugins/bluetooth/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
469 | @@ -147,17 +147,11 @@ | |||
470 | 147 | text: i18n.tr("Bluetooth") | 147 | text: i18n.tr("Bluetooth") |
471 | 148 | control: Switch { | 148 | control: Switch { |
472 | 149 | id: btSwitch | 149 | id: btSwitch |
476 | 150 | // Cannot use onCheckedChanged as this triggers a loop | 150 | property bool serverChecked: bluetoothActionGroup.enabled.state |
477 | 151 | onClicked: bluetoothActionGroup.enabled.activate() | 151 | onServerCheckedChanged: checked = serverChecked |
478 | 152 | checked: backend.powered | 152 | Component.onCompleted: checked = serverChecked |
479 | 153 | onTriggered: bluetoothActionGroup.enabled.activate() | ||
480 | 153 | } | 154 | } |
481 | 154 | Component.onCompleted: clicked.connect(btSwitch.clicked) | ||
482 | 155 | } | ||
483 | 156 | |||
484 | 157 | Binding { | ||
485 | 158 | target: btSwitch | ||
486 | 159 | property: "checked" | ||
487 | 160 | value: bluetoothActionGroup.enabled.state | ||
488 | 161 | } | 155 | } |
489 | 162 | 156 | ||
490 | 163 | // Discoverability | 157 | // Discoverability |
491 | @@ -246,7 +240,7 @@ | |||
492 | 246 | 240 | ||
493 | 247 | // Disconnnected Headset(s) | 241 | // Disconnnected Headset(s) |
494 | 248 | 242 | ||
496 | 249 | ListItem.Standard { | 243 | SettingsItemTitle { |
497 | 250 | id: disconnectedHeader | 244 | id: disconnectedHeader |
498 | 251 | text: connectedList.visible ? i18n.tr("Connect another device:") : i18n.tr("Connect a device:") | 245 | text: connectedList.visible ? i18n.tr("Connect another device:") : i18n.tr("Connect a device:") |
499 | 252 | enabled: bluetoothActionGroup.enabled | 246 | enabled: bluetoothActionGroup.enabled |
500 | @@ -288,7 +282,7 @@ | |||
501 | 288 | } | 282 | } |
502 | 289 | 283 | ||
503 | 290 | // Devices that connect automatically | 284 | // Devices that connect automatically |
505 | 291 | ListItem.Standard { | 285 | SettingsItemTitle { |
506 | 292 | id: autoconnectHeader | 286 | id: autoconnectHeader |
507 | 293 | text: i18n.tr("Connect automatically when detected:") | 287 | text: i18n.tr("Connect automatically when detected:") |
508 | 294 | visible: autoconnectList.visible | 288 | visible: autoconnectList.visible |
509 | @@ -323,7 +317,11 @@ | |||
510 | 323 | 317 | ||
511 | 324 | Page { | 318 | Page { |
512 | 325 | id: connectedDevicePage | 319 | id: connectedDevicePage |
514 | 326 | title: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None") | 320 | title: backend.selectedDevice ? |
515 | 321 | backend.selectedDevice.name.length > 0 ? | ||
516 | 322 | backend.selectedDevice.name : | ||
517 | 323 | backend.selectedDevice.address | ||
518 | 324 | : i18n.tr("None") | ||
519 | 327 | visible: false | 325 | visible: false |
520 | 328 | 326 | ||
521 | 329 | Flickable { | 327 | Flickable { |
522 | @@ -344,7 +342,10 @@ | |||
523 | 344 | 342 | ||
524 | 345 | ListItem.SingleValue { | 343 | ListItem.SingleValue { |
525 | 346 | text: i18n.tr("Name") | 344 | text: i18n.tr("Name") |
527 | 347 | value: backend.selectedDevice ? backend.selectedDevice.name : i18n.tr("None") | 345 | value: backend.selectedDevice && |
528 | 346 | backend.selectedDevice.name.length > 0 ? | ||
529 | 347 | backend.selectedDevice.name : | ||
530 | 348 | i18n.tr("None") | ||
531 | 348 | } | 349 | } |
532 | 349 | ListItem.Standard { | 350 | ListItem.Standard { |
533 | 350 | Rectangle { | 351 | Rectangle { |
534 | @@ -396,15 +397,15 @@ | |||
535 | 396 | id: trustedCheck | 397 | id: trustedCheck |
536 | 397 | text: i18n.tr("Connect automatically when detected:") | 398 | text: i18n.tr("Connect automatically when detected:") |
537 | 398 | control: CheckBox { | 399 | control: CheckBox { |
539 | 399 | onClicked: { | 400 | property bool serverChecked: backend.selectedDevice ? backend.selectedDevice.trusted : false |
540 | 401 | onServerCheckedChanged: checked = serverChecked | ||
541 | 402 | Component.onCompleted: checked = serverChecked | ||
542 | 403 | onTriggered: { | ||
543 | 400 | if (backend.selectedDevice) { | 404 | if (backend.selectedDevice) { |
545 | 401 | backend.selectedDevice.trusted = !backend.selectedDevice.trusted | 405 | backend.selectedDevice.trusted = checked; |
546 | 402 | } | 406 | } |
547 | 403 | } | 407 | } |
548 | 404 | checked: backend.selectedDevice ? backend.selectedDevice.trusted : false | ||
549 | 405 | } | 408 | } |
550 | 406 | Component.onCompleted: | ||
551 | 407 | clicked.connect(trustedCheck.clicked) | ||
552 | 408 | } | 409 | } |
553 | 409 | ListItem.SingleControl { | 410 | ListItem.SingleControl { |
554 | 410 | control: Button { | 411 | control: Button { |
555 | 411 | 412 | ||
556 | === modified file 'plugins/bluetooth/devicemodel.cpp' | |||
557 | --- plugins/bluetooth/devicemodel.cpp 2014-09-16 19:41:44 +0000 | |||
558 | +++ plugins/bluetooth/devicemodel.cpp 2014-11-07 22:38:03 +0000 | |||
559 | @@ -382,6 +382,8 @@ | |||
560 | 382 | if (device->isValid()) { | 382 | if (device->isValid()) { |
561 | 383 | addDevice(device); | 383 | addDevice(device); |
562 | 384 | } | 384 | } |
563 | 385 | } else { | ||
564 | 386 | device->setProperties(properties); | ||
565 | 385 | } | 387 | } |
566 | 386 | } | 388 | } |
567 | 387 | 389 | ||
568 | 388 | 390 | ||
569 | === removed file 'plugins/brightness/BrightnessSlider.qml' | |||
570 | --- plugins/brightness/BrightnessSlider.qml 2014-08-11 16:13:17 +0000 | |||
571 | +++ plugins/brightness/BrightnessSlider.qml 1970-01-01 00:00:00 +0000 | |||
572 | @@ -1,103 +0,0 @@ | |||
573 | 1 | /* | ||
574 | 2 | * This file is part of system-settings | ||
575 | 3 | * | ||
576 | 4 | * Copyright (C) 2013-14 Canonical Ltd. | ||
577 | 5 | * | ||
578 | 6 | * Contact: Iain Lane <iain.lane@canonical.com> | ||
579 | 7 | * | ||
580 | 8 | * This program is free software: you can redistribute it and/or modify it | ||
581 | 9 | * under the terms of the GNU General Public License version 3, as published | ||
582 | 10 | * by the Free Software Foundation. | ||
583 | 11 | * | ||
584 | 12 | * This program is distributed in the hope that it will be useful, but | ||
585 | 13 | * WITHOUT ANY WARRANTY; without even the implied warranties of | ||
586 | 14 | * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR | ||
587 | 15 | * PURPOSE. See the GNU General Public License for more details. | ||
588 | 16 | * | ||
589 | 17 | * You should have received a copy of the GNU General Public License along | ||
590 | 18 | * with this program. If not, see <http://www.gnu.org/licenses/>. | ||
591 | 19 | */ | ||
592 | 20 | |||
593 | 21 | import Ubuntu.Components 0.1 | ||
594 | 22 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
595 | 23 | import QtQuick 2.0 | ||
596 | 24 | import QMenuModel 0.1 | ||
597 | 25 | |||
598 | 26 | Column { | ||
599 | 27 | signal pressed | ||
600 | 28 | readonly property bool pressed: sliderId.pressed | ||
601 | 29 | |||
602 | 30 | anchors { | ||
603 | 31 | left: parent.left | ||
604 | 32 | right: parent.right | ||
605 | 33 | } | ||
606 | 34 | |||
607 | 35 | QDBusActionGroup { | ||
608 | 36 | id: indicatorPower | ||
609 | 37 | busType: 1 | ||
610 | 38 | busName: "com.canonical.indicator.power" | ||
611 | 39 | objectPath: "/com/canonical/indicator/power" | ||
612 | 40 | |||
613 | 41 | property variant brightness: action("brightness").state | ||
614 | 42 | onBrightnessChanged: { | ||
615 | 43 | sliderId.enabled = brightness != null | ||
616 | 44 | sliderId.value = sliderId.enabled ? brightness * 100 : 0.0 | ||
617 | 45 | } | ||
618 | 46 | } | ||
619 | 47 | |||
620 | 48 | Component.onCompleted: indicatorPower.start() | ||
621 | 49 | |||
622 | 50 | ListItem.Standard { | ||
623 | 51 | text: i18n.tr("Display brightness") | ||
624 | 52 | showDivider: false | ||
625 | 53 | } | ||
626 | 54 | |||
627 | 55 | ListItem.Base { | ||
628 | 56 | |||
629 | 57 | Icon { | ||
630 | 58 | id: iconLeft | ||
631 | 59 | anchors.verticalCenter: parent.verticalCenter | ||
632 | 60 | height: sliderId.height - units.gu(1) | ||
633 | 61 | name: "torch-off" | ||
634 | 62 | width: height | ||
635 | 63 | |||
636 | 64 | MouseArea { | ||
637 | 65 | anchors.fill: parent | ||
638 | 66 | onClicked: sliderId.value = 0.0 | ||
639 | 67 | } | ||
640 | 68 | } | ||
641 | 69 | Slider { | ||
642 | 70 | id: sliderId | ||
643 | 71 | function formatValue(v) { | ||
644 | 72 | return "%1%".arg(v.toFixed(0)) | ||
645 | 73 | } | ||
646 | 74 | |||
647 | 75 | anchors { | ||
648 | 76 | left: iconLeft.right | ||
649 | 77 | right: iconRight.left | ||
650 | 78 | leftMargin: units.gu(1) | ||
651 | 79 | rightMargin: units.gu(1) | ||
652 | 80 | verticalCenter: parent.verticalCenter | ||
653 | 81 | } | ||
654 | 82 | height: parent.height - units.gu(2) | ||
655 | 83 | minimumValue: 0.0 | ||
656 | 84 | maximumValue: 100.0 | ||
657 | 85 | live: true | ||
658 | 86 | |||
659 | 87 | onValueChanged: indicatorPower.action('brightness').updateState(value / 100.0) | ||
660 | 88 | } | ||
661 | 89 | Icon { | ||
662 | 90 | id: iconRight | ||
663 | 91 | anchors.right: parent.right | ||
664 | 92 | anchors.verticalCenter: parent.verticalCenter | ||
665 | 93 | height: sliderId.height - units.gu(1) | ||
666 | 94 | name: "torch-on" | ||
667 | 95 | width: height | ||
668 | 96 | |||
669 | 97 | MouseArea { | ||
670 | 98 | anchors.fill: parent | ||
671 | 99 | onClicked: sliderId.value = 100.0 | ||
672 | 100 | } | ||
673 | 101 | } | ||
674 | 102 | } | ||
675 | 103 | } | ||
676 | 104 | 0 | ||
677 | === modified file 'plugins/brightness/CMakeLists.txt' | |||
678 | --- plugins/brightness/CMakeLists.txt 2014-08-11 16:13:17 +0000 | |||
679 | +++ plugins/brightness/CMakeLists.txt 2014-11-07 22:38:03 +0000 | |||
680 | @@ -1,7 +1,6 @@ | |||
681 | 1 | add_subdirectory(plugin) | 1 | add_subdirectory(plugin) |
682 | 2 | 2 | ||
683 | 3 | set(QML_SOURCES | 3 | set(QML_SOURCES |
684 | 4 | BrightnessSlider.qml | ||
685 | 5 | PageComponent.qml | 4 | PageComponent.qml |
686 | 6 | ) | 5 | ) |
687 | 7 | 6 | ||
688 | 8 | 7 | ||
689 | === modified file 'plugins/brightness/PageComponent.qml' | |||
690 | --- plugins/brightness/PageComponent.qml 2014-08-12 13:32:30 +0000 | |||
691 | +++ plugins/brightness/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
692 | @@ -24,6 +24,8 @@ | |||
693 | 24 | import Ubuntu.Components 0.1 | 24 | import Ubuntu.Components 0.1 |
694 | 25 | import Ubuntu.Components.ListItems 0.1 as ListItem | 25 | import Ubuntu.Components.ListItems 0.1 as ListItem |
695 | 26 | import Ubuntu.SystemSettings.Brightness 1.0 | 26 | import Ubuntu.SystemSettings.Brightness 1.0 |
696 | 27 | import Ubuntu.Settings.Menus 0.1 as Menus | ||
697 | 28 | import QMenuModel 0.1 | ||
698 | 27 | 29 | ||
699 | 28 | ItemPage { | 30 | ItemPage { |
700 | 29 | id: root | 31 | id: root |
701 | @@ -39,12 +41,41 @@ | |||
702 | 39 | anchors.left: parent.left | 41 | anchors.left: parent.left |
703 | 40 | anchors.right: parent.right | 42 | anchors.right: parent.right |
704 | 41 | 43 | ||
706 | 42 | BrightnessSlider {} | 44 | QDBusActionGroup { |
707 | 45 | id: indicatorPower | ||
708 | 46 | busType: 1 | ||
709 | 47 | busName: "com.canonical.indicator.power" | ||
710 | 48 | objectPath: "/com/canonical/indicator/power" | ||
711 | 49 | |||
712 | 50 | property variant brightness: action("brightness") | ||
713 | 51 | |||
714 | 52 | Component.onCompleted: start() | ||
715 | 53 | } | ||
716 | 43 | 54 | ||
717 | 44 | Binding { | 55 | Binding { |
721 | 45 | target: autoAdjustCheck | 56 | target: sliderMenu |
722 | 46 | property: "checked" | 57 | property: "value" |
723 | 47 | value: adjust.visible && gsettings.autoBrightness | 58 | value: sliderMenu.enabled ? indicatorPower.action("brightness").state * 100 : 0.0 |
724 | 59 | } | ||
725 | 60 | |||
726 | 61 | ListItem.Standard { | ||
727 | 62 | text: i18n.tr("Display brightness") | ||
728 | 63 | showDivider: false | ||
729 | 64 | } | ||
730 | 65 | |||
731 | 66 | /* Use the SliderMenu component instead of the Slider to avoid binding | ||
732 | 67 | issues on valueChanged until LP: #1388094 is fixed. | ||
733 | 68 | */ | ||
734 | 69 | Menus.SliderMenu { | ||
735 | 70 | id: sliderMenu | ||
736 | 71 | objectName: "sliderMenu" | ||
737 | 72 | enabled: indicatorPower.action("brightness").state != null | ||
738 | 73 | live: true | ||
739 | 74 | minimumValue: 0.0 | ||
740 | 75 | maximumValue: 100.0 | ||
741 | 76 | minIcon: "image://theme/display-brightness-min" | ||
742 | 77 | maxIcon: "image://theme/display-brightness-max" | ||
743 | 78 | onUpdated: indicatorPower.action("brightness").updateState(value / 100.0) | ||
744 | 48 | } | 79 | } |
745 | 49 | 80 | ||
746 | 50 | ListItem.Standard { | 81 | ListItem.Standard { |
747 | @@ -54,10 +85,11 @@ | |||
748 | 54 | brightnessPanel.autoBrightnessAvailable | 85 | brightnessPanel.autoBrightnessAvailable |
749 | 55 | control: CheckBox { | 86 | control: CheckBox { |
750 | 56 | id: autoAdjustCheck | 87 | id: autoAdjustCheck |
753 | 57 | checked: gsettings.autoBrightness | 88 | property bool serverChecked: gsettings.autoBrightness |
754 | 58 | onClicked: gsettings.autoBrightness = checked | 89 | onServerCheckedChanged: checked = serverChecked |
755 | 90 | Component.onCompleted: checked = serverChecked | ||
756 | 91 | onTriggered: gsettings.autoBrightness = checked | ||
757 | 59 | } | 92 | } |
758 | 60 | Component.onCompleted: clicked.connect(autoAdjustCheck.clicked) | ||
759 | 61 | showDivider: false | 93 | showDivider: false |
760 | 62 | } | 94 | } |
761 | 63 | ListItem.Caption { | 95 | ListItem.Caption { |
762 | 64 | 96 | ||
763 | === modified file 'plugins/cellular/Components/CMakeLists.txt' | |||
764 | --- plugins/cellular/Components/CMakeLists.txt 2014-08-29 14:32:28 +0000 | |||
765 | +++ plugins/cellular/Components/CMakeLists.txt 2014-11-07 22:38:03 +0000 | |||
766 | @@ -1,12 +1,12 @@ | |||
767 | 1 | set(QML_SOURCES | 1 | set(QML_SOURCES |
768 | 2 | DataMultiSim.qml | ||
769 | 3 | DefaultSim.qml | ||
770 | 4 | MultiSim.qml | ||
771 | 2 | NoSim.qml | 5 | NoSim.qml |
777 | 3 | SingleSim.qml | 6 | RadioSingleSim.qml |
773 | 4 | MultiSim.qml | ||
774 | 5 | CellularSingleSim.qml | ||
775 | 6 | CellularMultiSim.qml | ||
776 | 7 | DefaultSim.qml | ||
778 | 8 | Sim.qml | 7 | Sim.qml |
779 | 9 | SimEditor.qml | 8 | SimEditor.qml |
780 | 9 | SingleSim.qml | ||
781 | 10 | ) | 10 | ) |
782 | 11 | install(FILES ${QML_SOURCES} DESTINATION ${PLUGIN_QML_DIR}/cellular/Components) | 11 | install(FILES ${QML_SOURCES} DESTINATION ${PLUGIN_QML_DIR}/cellular/Components) |
783 | 12 | 12 | ||
784 | 13 | 13 | ||
785 | === removed file 'plugins/cellular/Components/CellularSingleSim.qml' | |||
786 | --- plugins/cellular/Components/CellularSingleSim.qml 2014-08-21 20:25:08 +0000 | |||
787 | +++ plugins/cellular/Components/CellularSingleSim.qml 1970-01-01 00:00:00 +0000 | |||
788 | @@ -1,115 +0,0 @@ | |||
789 | 1 | /* | ||
790 | 2 | * Copyright (C) 2014 Canonical Ltd | ||
791 | 3 | * | ||
792 | 4 | * This program is free software: you can redistribute it and/or modify | ||
793 | 5 | * it under the terms of the GNU General Public License version 3 as | ||
794 | 6 | * published by the Free Software Foundation. | ||
795 | 7 | * | ||
796 | 8 | * This program is distributed in the hope that it will be useful, | ||
797 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
798 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
799 | 11 | * GNU General Public License for more details. | ||
800 | 12 | * | ||
801 | 13 | * You should have received a copy of the GNU General Public License | ||
802 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
803 | 15 | * | ||
804 | 16 | * Authors: | ||
805 | 17 | * Jonas G. Drange <jonas.drange@canonical.com> | ||
806 | 18 | * | ||
807 | 19 | */ | ||
808 | 20 | import QtQuick 2.0 | ||
809 | 21 | import Ubuntu.Components 0.1 | ||
810 | 22 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
811 | 23 | |||
812 | 24 | Column { | ||
813 | 25 | height: childrenRect.height | ||
814 | 26 | |||
815 | 27 | property var selector: selector | ||
816 | 28 | |||
817 | 29 | ListItem.ItemSelector { | ||
818 | 30 | id: selector | ||
819 | 31 | objectName: "technologyPreferenceSelector" | ||
820 | 32 | text: i18n.tr("Cellular data:") | ||
821 | 33 | expanded: true | ||
822 | 34 | |||
823 | 35 | // an empty string is not a valid preference, which means | ||
824 | 36 | // we disregard the interace and disable the selector | ||
825 | 37 | enabled: sim.radioSettings.technologyPreference !== "" | ||
826 | 38 | |||
827 | 39 | // model for this selector is modemTechnologies, with | ||
828 | 40 | // 'off' prepended | ||
829 | 41 | model: { | ||
830 | 42 | var m = sim.radioSettings.modemTechnologies.slice(0); | ||
831 | 43 | m.unshift("off"); | ||
832 | 44 | return m; | ||
833 | 45 | } | ||
834 | 46 | |||
835 | 47 | delegate: OptionSelectorDelegate { | ||
836 | 48 | text: { | ||
837 | 49 | return { | ||
838 | 50 | 'off': i18n.tr("Off"), | ||
839 | 51 | 'gsm': i18n.tr("2G only (saves battery)"), | ||
840 | 52 | 'umts': i18n.tr("2G/3G (faster)"), | ||
841 | 53 | 'lte': i18n.tr("2G/3G/4G (faster)") | ||
842 | 54 | }[modelData] | ||
843 | 55 | } | ||
844 | 56 | } | ||
845 | 57 | selectedIndex: { | ||
846 | 58 | if (sim.connMan.powered) { | ||
847 | 59 | // will return -1 if empty, which will select nothing. | ||
848 | 60 | // Makes sense, since the SIM is online, but the | ||
849 | 61 | // radioSettings interface is not ready yet (sim locked?) | ||
850 | 62 | return model.indexOf(sim.radioSettings.technologyPreference); | ||
851 | 63 | } else { | ||
852 | 64 | return 0; | ||
853 | 65 | } | ||
854 | 66 | } | ||
855 | 67 | } | ||
856 | 68 | |||
857 | 69 | ListItem.Standard { | ||
858 | 70 | id: dataRoamingItem | ||
859 | 71 | objectName: "dataRoamingSwitch" | ||
860 | 72 | text: i18n.tr("Data roaming") | ||
861 | 73 | enabled: sim.connMan.powered | ||
862 | 74 | control: Switch { | ||
863 | 75 | id: dataRoamingControl | ||
864 | 76 | checked: sim.connMan.roamingAllowed | ||
865 | 77 | onClicked: sim.connMan.roamingAllowed = checked | ||
866 | 78 | } | ||
867 | 79 | } | ||
868 | 80 | |||
869 | 81 | Connections { | ||
870 | 82 | target: sim.connMan | ||
871 | 83 | onPoweredChanged: { | ||
872 | 84 | if (powered) { | ||
873 | 85 | // restore the tech preference | ||
874 | 86 | selector.selectedIndex = selector | ||
875 | 87 | .model.indexOf(sim.radioSettings.technologyPreference) | ||
876 | 88 | } else { | ||
877 | 89 | selector.selectedIndex = 0; | ||
878 | 90 | } | ||
879 | 91 | } | ||
880 | 92 | } | ||
881 | 93 | |||
882 | 94 | // binds the SIM online state to the UI | ||
883 | 95 | Binding { | ||
884 | 96 | target: sim.connMan | ||
885 | 97 | property: "powered" | ||
886 | 98 | value: selector.selectedIndex !== 0 | ||
887 | 99 | } | ||
888 | 100 | |||
889 | 101 | // binds the tech preference to the UI | ||
890 | 102 | Binding { | ||
891 | 103 | target: sim.radioSettings | ||
892 | 104 | property: "technologyPreference" | ||
893 | 105 | value: { | ||
894 | 106 | var i = selector.selectedIndex; | ||
895 | 107 | if (i > 0) { | ||
896 | 108 | return selector.model[i] | ||
897 | 109 | } else { | ||
898 | 110 | // if the modem is off, disregard the selector | ||
899 | 111 | return sim.radioSettings.technologyPreference; | ||
900 | 112 | } | ||
901 | 113 | } | ||
902 | 114 | } | ||
903 | 115 | } | ||
904 | 116 | 0 | ||
905 | === renamed file 'plugins/cellular/Components/CellularMultiSim.qml' => 'plugins/cellular/Components/DataMultiSim.qml' | |||
906 | --- plugins/cellular/Components/CellularMultiSim.qml 2014-10-07 15:41:44 +0000 | |||
907 | +++ plugins/cellular/Components/DataMultiSim.qml 2014-11-07 22:38:03 +0000 | |||
908 | @@ -22,8 +22,6 @@ | |||
909 | 22 | import Ubuntu.Components.ListItems 0.1 as ListItem | 22 | import Ubuntu.Components.ListItems 0.1 as ListItem |
910 | 23 | 23 | ||
911 | 24 | Column { | 24 | Column { |
912 | 25 | id: root | ||
913 | 26 | property var selector: selector | ||
914 | 27 | 25 | ||
915 | 28 | function getNameFromIndex (index) { | 26 | function getNameFromIndex (index) { |
916 | 29 | if (index === 0) { | 27 | if (index === 0) { |
917 | @@ -33,49 +31,11 @@ | |||
918 | 33 | } | 31 | } |
919 | 34 | } | 32 | } |
920 | 35 | 33 | ||
921 | 36 | function getOnlineSim () { | ||
922 | 37 | if (state === "sim1Online") { | ||
923 | 38 | return sims[0]; | ||
924 | 39 | } else if (state === "sim2Online") { | ||
925 | 40 | return sims[1]; | ||
926 | 41 | } else { | ||
927 | 42 | return null; | ||
928 | 43 | } | ||
929 | 44 | } | ||
930 | 45 | |||
931 | 46 | height: childrenRect.height | 34 | height: childrenRect.height |
932 | 47 | 35 | ||
933 | 48 | states: [ | ||
934 | 49 | State { | ||
935 | 50 | name: "sim1Online" | ||
936 | 51 | when: sims[0].connMan.powered && !sims[1].connMan.powered | ||
937 | 52 | StateChangeScript { script: { | ||
938 | 53 | selector.selectedIndex = | ||
939 | 54 | selector.model.indexOf( | ||
940 | 55 | sims[0].radioSettings.technologyPreference) | ||
941 | 56 | }} | ||
942 | 57 | }, | ||
943 | 58 | State { | ||
944 | 59 | name: "sim2Online" | ||
945 | 60 | when: sims[1].connMan.powered && !sims[0].connMan.powered | ||
946 | 61 | StateChangeScript { script: { | ||
947 | 62 | selector.selectedIndex = | ||
948 | 63 | selector.model.indexOf( | ||
949 | 64 | sims[1].radioSettings.technologyPreference) | ||
950 | 65 | }} | ||
951 | 66 | }, | ||
952 | 67 | State { | ||
953 | 68 | name: "bothOnline" | ||
954 | 69 | when: sims[0].connMan.powered && sims[1].connMan.powered | ||
955 | 70 | StateChangeScript { script: { | ||
956 | 71 | sims[1].connMan.powered = false; | ||
957 | 72 | }} | ||
958 | 73 | } | ||
959 | 74 | ] | ||
960 | 75 | |||
961 | 76 | ListItem.ItemSelector { | 36 | ListItem.ItemSelector { |
962 | 77 | id: use | 37 | id: use |
964 | 78 | objectName: "use" | 38 | objectName: "data" |
965 | 79 | text: i18n.tr("Cellular data:") | 39 | text: i18n.tr("Cellular data:") |
966 | 80 | expanded: true | 40 | expanded: true |
967 | 81 | model: { | 41 | model: { |
968 | @@ -92,6 +52,7 @@ | |||
969 | 92 | } | 52 | } |
970 | 93 | selectedIndex: [true, sims[0].connMan.powered, sims[1].connMan.powered] | 53 | selectedIndex: [true, sims[0].connMan.powered, sims[1].connMan.powered] |
971 | 94 | .lastIndexOf(true) | 54 | .lastIndexOf(true) |
972 | 55 | |||
973 | 95 | onDelegateClicked: { | 56 | onDelegateClicked: { |
974 | 96 | // power all sims on or off | 57 | // power all sims on or off |
975 | 97 | sims.forEach(function (sim) { | 58 | sims.forEach(function (sim) { |
976 | @@ -100,95 +61,23 @@ | |||
977 | 100 | } | 61 | } |
978 | 101 | } | 62 | } |
979 | 102 | 63 | ||
980 | 103 | Connections { | ||
981 | 104 | target: sims[0].connMan | ||
982 | 105 | onPoweredChanged: { | ||
983 | 106 | if (powered) { | ||
984 | 107 | use.selectedIndex = 1; | ||
985 | 108 | } | ||
986 | 109 | } | ||
987 | 110 | } | ||
988 | 111 | |||
989 | 112 | Connections { | ||
990 | 113 | target: sims[1].connMan | ||
991 | 114 | onPoweredChanged: { | ||
992 | 115 | if (powered) { | ||
993 | 116 | use.selectedIndex = 2; | ||
994 | 117 | } | ||
995 | 118 | } | ||
996 | 119 | } | ||
997 | 120 | |||
998 | 121 | ListItem.ItemSelector { | ||
999 | 122 | id: selector | ||
1000 | 123 | objectName: "technologyPreferenceSelector" | ||
1001 | 124 | expanded: true | ||
1002 | 125 | model: { | ||
1003 | 126 | var sim = getOnlineSim(); | ||
1004 | 127 | if (sim) { | ||
1005 | 128 | return sim.radioSettings.modemTechnologies; | ||
1006 | 129 | } else { | ||
1007 | 130 | return []; | ||
1008 | 131 | } | ||
1009 | 132 | } | ||
1010 | 133 | delegate: OptionSelectorDelegate { | ||
1011 | 134 | text: { | ||
1012 | 135 | return { | ||
1013 | 136 | 'gsm': i18n.tr("2G only (saves battery)"), | ||
1014 | 137 | 'umts': i18n.tr("2G/3G (faster)"), | ||
1015 | 138 | 'lte': i18n.tr("2G/3G/4G (faster)") | ||
1016 | 139 | }[modelData] | ||
1017 | 140 | } | ||
1018 | 141 | } | ||
1019 | 142 | visible: use.selectedIndex !== 0 | ||
1020 | 143 | onDelegateClicked: { | ||
1021 | 144 | var sim = getOnlineSim(); | ||
1022 | 145 | if (sim) { | ||
1023 | 146 | sim.radioSettings.technologyPreference = model[index]; | ||
1024 | 147 | } | ||
1025 | 148 | } | ||
1026 | 149 | } | ||
1027 | 150 | |||
1028 | 151 | Binding { | ||
1029 | 152 | target: selector | ||
1030 | 153 | property: "enabled" | ||
1031 | 154 | value: getOnlineSim() && | ||
1032 | 155 | (getOnlineSim().radioSettings.technologyPreference !== "") | ||
1033 | 156 | when: getOnlineSim() | ||
1034 | 157 | } | ||
1035 | 158 | |||
1036 | 159 | Connections { | ||
1037 | 160 | target: sims[0].radioSettings | ||
1038 | 161 | onTechnologyPreferenceChanged: { | ||
1039 | 162 | if (sims[0].connMan.powered) { | ||
1040 | 163 | selector.selectedIndex = selector.model.indexOf(preference); | ||
1041 | 164 | } | ||
1042 | 165 | } | ||
1043 | 166 | } | ||
1044 | 167 | |||
1045 | 168 | Connections { | ||
1046 | 169 | target: sims[1].radioSettings | ||
1047 | 170 | onTechnologyPreferenceChanged: { | ||
1048 | 171 | if (sims[1].connMan.powered) { | ||
1049 | 172 | selector.selectedIndex = selector.model.indexOf(preference); | ||
1050 | 173 | } | ||
1051 | 174 | } | ||
1052 | 175 | } | ||
1053 | 176 | |||
1054 | 177 | ListItem.Standard { | 64 | ListItem.Standard { |
1055 | 178 | id: dataRoamingItem | 65 | id: dataRoamingItem |
1056 | 179 | objectName: "dataRoamingSwitch" | ||
1057 | 180 | text: i18n.tr("Data roaming") | 66 | text: i18n.tr("Data roaming") |
1058 | 181 | enabled: use.selectedIndex !== 0 | 67 | enabled: use.selectedIndex !== 0 |
1059 | 182 | control: Switch { | 68 | control: Switch { |
1060 | 183 | id: dataRoamingControl | 69 | id: dataRoamingControl |
1062 | 184 | onClicked: getOnlineSim().connMan.roamingAllowed = checked | 70 | objectName: "roaming" |
1063 | 71 | |||
1064 | 72 | property bool serverChecked: poweredSim && poweredSim.connMan.roamingAllowed | ||
1065 | 73 | onServerCheckedChanged: checked = serverChecked | ||
1066 | 74 | Component.onCompleted: checked = serverChecked | ||
1067 | 75 | onTriggered: { | ||
1068 | 76 | if (poweredSim) { | ||
1069 | 77 | poweredSim.connMan.roamingAllowed = checked; | ||
1070 | 78 | } | ||
1071 | 79 | } | ||
1072 | 185 | } | 80 | } |
1080 | 186 | } | 81 | showDivider: false |
1074 | 187 | |||
1075 | 188 | Binding { | ||
1076 | 189 | target: dataRoamingControl | ||
1077 | 190 | property: "checked" | ||
1078 | 191 | value: getOnlineSim() && getOnlineSim().connMan.roamingAllowed | ||
1079 | 192 | when: getOnlineSim() | ||
1081 | 193 | } | 82 | } |
1082 | 194 | } | 83 | } |
1083 | 195 | 84 | ||
1084 | === modified file 'plugins/cellular/Components/MultiSim.qml' | |||
1085 | --- plugins/cellular/Components/MultiSim.qml 2014-10-06 19:38:06 +0000 | |||
1086 | +++ plugins/cellular/Components/MultiSim.qml 2014-11-07 22:38:03 +0000 | |||
1087 | @@ -23,21 +23,26 @@ | |||
1088 | 23 | import Ubuntu.Components.ListItems 0.1 as ListItem | 23 | import Ubuntu.Components.ListItems 0.1 as ListItem |
1089 | 24 | 24 | ||
1090 | 25 | Column { | 25 | Column { |
1091 | 26 | |||
1092 | 27 | objectName: "multiSim" | 26 | objectName: "multiSim" |
1093 | 28 | 27 | ||
1094 | 29 | property var sims | 28 | property var sims |
1095 | 29 | property var poweredSim: { | ||
1096 | 30 | var s = null; | ||
1097 | 31 | sims.forEach(function (sim) { | ||
1098 | 32 | if (sim.connMan.powered === true) { | ||
1099 | 33 | s = sim; | ||
1100 | 34 | } | ||
1101 | 35 | }); | ||
1102 | 36 | return s; | ||
1103 | 37 | } | ||
1104 | 30 | property var modems | 38 | property var modems |
1105 | 31 | |||
1106 | 32 | // make settings available to all children of root | 39 | // make settings available to all children of root |
1107 | 33 | property var settings: phoneSettings | 40 | property var settings: phoneSettings |
1108 | 34 | 41 | ||
1111 | 35 | CellularMultiSim { | 42 | DataMultiSim { |
1112 | 36 | anchors { left: parent.left; right: parent.right } | 43 | anchors { left: parent.left; right: parent.right } |
1113 | 37 | } | 44 | } |
1114 | 38 | 45 | ||
1115 | 39 | ListItem.Divider {} | ||
1116 | 40 | |||
1117 | 41 | ListItem.SingleValue { | 46 | ListItem.SingleValue { |
1118 | 42 | text : i18n.tr("Hotspot disabled because Wi-Fi is off.") | 47 | text : i18n.tr("Hotspot disabled because Wi-Fi is off.") |
1119 | 43 | visible: showAllUI && !hotspotItem.visible | 48 | visible: showAllUI && !hotspotItem.visible |
1120 | @@ -60,15 +65,14 @@ | |||
1121 | 60 | visible: showAllUI | 65 | visible: showAllUI |
1122 | 61 | } | 66 | } |
1123 | 62 | 67 | ||
1127 | 63 | ListItem.Divider { | 68 | ListItem.Divider {} |
1125 | 64 | visible: hotspotItem.visible || dataUsage.visible | ||
1126 | 65 | } | ||
1128 | 66 | 69 | ||
1129 | 67 | ListItem.SingleValue { | 70 | ListItem.SingleValue { |
1130 | 68 | text: i18n.tr("Carriers") | 71 | text: i18n.tr("Carriers") |
1131 | 69 | id: chooseCarrier | 72 | id: chooseCarrier |
1133 | 70 | objectName: "chooseCarrier" | 73 | objectName: "carriers" |
1134 | 71 | progression: enabled | 74 | progression: enabled |
1135 | 75 | showDivider: false | ||
1136 | 72 | onClicked: { | 76 | onClicked: { |
1137 | 73 | pageStack.push(Qt.resolvedUrl("../PageChooseCarriers.qml"), { | 77 | pageStack.push(Qt.resolvedUrl("../PageChooseCarriers.qml"), { |
1138 | 74 | sims: sims | 78 | sims: sims |
1139 | @@ -88,6 +92,44 @@ | |||
1140 | 88 | anchors { left: parent.left; right: parent.right } | 92 | anchors { left: parent.left; right: parent.right } |
1141 | 89 | } | 93 | } |
1142 | 90 | 94 | ||
1143 | 95 | ListItem.Divider {} | ||
1144 | 96 | |||
1145 | 97 | function techToString (tech) { | ||
1146 | 98 | return { | ||
1147 | 99 | 'gsm': i18n.tr("2G only (saves battery)"), | ||
1148 | 100 | 'umts': i18n.tr("2G/3G (faster)"), | ||
1149 | 101 | 'lte': i18n.tr("2G/3G/4G (faster)") | ||
1150 | 102 | }[tech] | ||
1151 | 103 | } | ||
1152 | 104 | |||
1153 | 105 | ListItem.ItemSelector { | ||
1154 | 106 | id: radio | ||
1155 | 107 | expanded: true | ||
1156 | 108 | text: i18n.tr("Connection type:") | ||
1157 | 109 | model: poweredSim ? poweredSim.radioSettings.modemTechnologies : [] | ||
1158 | 110 | delegate: OptionSelectorDelegate { | ||
1159 | 111 | objectName: poweredSim.path + "_radio_" + modelData | ||
1160 | 112 | text: techToString(modelData) | ||
1161 | 113 | } | ||
1162 | 114 | enabled: poweredSim ? | ||
1163 | 115 | (poweredSim.radioSettings.technologyPreference !== "") : false | ||
1164 | 116 | visible: poweredSim | ||
1165 | 117 | selectedIndex: poweredSim ? | ||
1166 | 118 | model.indexOf(poweredSim.radioSettings.technologyPreference) : -1 | ||
1167 | 119 | onDelegateClicked: { | ||
1168 | 120 | poweredSim.radioSettings.technologyPreference = model[index]; | ||
1169 | 121 | } | ||
1170 | 122 | } | ||
1171 | 123 | |||
1172 | 124 | Connections { | ||
1173 | 125 | target: poweredSim ? poweredSim.radioSettings : null | ||
1174 | 126 | onTechnologyPreferenceChanged: { | ||
1175 | 127 | radio.selectedIndex = | ||
1176 | 128 | poweredSim.radioSettings.modemTechnologies.indexOf(preference) | ||
1177 | 129 | } | ||
1178 | 130 | ignoreUnknownSignals: true | ||
1179 | 131 | } | ||
1180 | 132 | |||
1181 | 91 | GSettings { | 133 | GSettings { |
1182 | 92 | id: phoneSettings | 134 | id: phoneSettings |
1183 | 93 | schema.id: "com.ubuntu.phone" | 135 | schema.id: "com.ubuntu.phone" |
1184 | 94 | 136 | ||
1185 | === modified file 'plugins/cellular/Components/NoSim.qml' | |||
1186 | --- plugins/cellular/Components/NoSim.qml 2014-08-19 10:58:01 +0000 | |||
1187 | +++ plugins/cellular/Components/NoSim.qml 2014-11-07 22:38:03 +0000 | |||
1188 | @@ -25,27 +25,20 @@ | |||
1189 | 25 | 25 | ||
1190 | 26 | objectName: "noSim" | 26 | objectName: "noSim" |
1191 | 27 | 27 | ||
1193 | 28 | ListItem.ItemSelector { | 28 | ListItem.Standard { |
1194 | 29 | text: i18n.tr("Cellular data:") | 29 | text: i18n.tr("Cellular data:") |
1195 | 30 | expanded: true | ||
1196 | 31 | enabled: false | 30 | enabled: false |
1199 | 32 | model: [i18n.tr("Off"), i18n.tr("2G only (saves battery)"), i18n.tr("2G/3G/4G (faster)")] | 31 | control: Switch { |
1200 | 33 | selectedIndex: -1 | 32 | checked: false |
1201 | 33 | } | ||
1202 | 34 | } | 34 | } |
1203 | 35 | 35 | ||
1204 | 36 | ListItem.Standard { | 36 | ListItem.Standard { |
1205 | 37 | text: i18n.tr("Data roaming") | 37 | text: i18n.tr("Data roaming") |
1206 | 38 | enabled: false | 38 | enabled: false |
1207 | 39 | showDivider: false | ||
1208 | 39 | control: Switch { | 40 | control: Switch { |
1209 | 40 | checked: false | 41 | checked: false |
1210 | 41 | } | 42 | } |
1211 | 42 | } | 43 | } |
1212 | 43 | |||
1213 | 44 | ListItem.Divider {} | ||
1214 | 45 | |||
1215 | 46 | ListItem.SingleValue { | ||
1216 | 47 | text: i18n.tr("Carrier"); | ||
1217 | 48 | value: i18n.tr("N/A") | ||
1218 | 49 | enabled: false | ||
1219 | 50 | } | ||
1220 | 51 | } | 44 | } |
1221 | 52 | 45 | ||
1222 | === added file 'plugins/cellular/Components/RadioSingleSim.qml' | |||
1223 | --- plugins/cellular/Components/RadioSingleSim.qml 1970-01-01 00:00:00 +0000 | |||
1224 | +++ plugins/cellular/Components/RadioSingleSim.qml 2014-11-07 22:38:03 +0000 | |||
1225 | @@ -0,0 +1,57 @@ | |||
1226 | 1 | /* | ||
1227 | 2 | * Copyright (C) 2014 Canonical Ltd | ||
1228 | 3 | * | ||
1229 | 4 | * This program is free software: you can redistribute it and/or modify | ||
1230 | 5 | * it under the terms of the GNU General Public License version 3 as | ||
1231 | 6 | * published by the Free Software Foundation. | ||
1232 | 7 | * | ||
1233 | 8 | * This program is distributed in the hope that it will be useful, | ||
1234 | 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
1235 | 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
1236 | 11 | * GNU General Public License for more details. | ||
1237 | 12 | * | ||
1238 | 13 | * You should have received a copy of the GNU General Public License | ||
1239 | 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
1240 | 15 | * | ||
1241 | 16 | * Authors: | ||
1242 | 17 | * Jonas G. Drange <jonas.drange@canonical.com> | ||
1243 | 18 | * | ||
1244 | 19 | */ | ||
1245 | 20 | import QtQuick 2.0 | ||
1246 | 21 | import Ubuntu.Components 0.1 | ||
1247 | 22 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
1248 | 23 | |||
1249 | 24 | Column { | ||
1250 | 25 | height: childrenRect.height | ||
1251 | 26 | |||
1252 | 27 | property alias selector: selector | ||
1253 | 28 | |||
1254 | 29 | ListItem.ItemSelector { | ||
1255 | 30 | id: selector | ||
1256 | 31 | text: i18n.tr("Connection type:") | ||
1257 | 32 | showDivider: false | ||
1258 | 33 | expanded: true | ||
1259 | 34 | |||
1260 | 35 | // an empty string is not a valid preference, which means | ||
1261 | 36 | // we disregard the interace and disable the selector | ||
1262 | 37 | enabled: sim.radioSettings.technologyPreference !== "" | ||
1263 | 38 | model: sim.radioSettings.modemTechnologies | ||
1264 | 39 | |||
1265 | 40 | delegate: OptionSelectorDelegate { | ||
1266 | 41 | objectName: sim.path + "_radio_" + modelData | ||
1267 | 42 | text: { | ||
1268 | 43 | return { | ||
1269 | 44 | 'gsm': i18n.tr("2G only (saves battery)"), | ||
1270 | 45 | 'umts': i18n.tr("2G/3G (faster)"), | ||
1271 | 46 | 'lte': i18n.tr("2G/3G/4G (faster)") | ||
1272 | 47 | }[modelData] | ||
1273 | 48 | } | ||
1274 | 49 | showDivider: false | ||
1275 | 50 | } | ||
1276 | 51 | selectedIndex: model.indexOf(sim.radioSettings.technologyPreference) | ||
1277 | 52 | onDelegateClicked: { | ||
1278 | 53 | sim.radioSettings.technologyPreference = model[index]; | ||
1279 | 54 | } | ||
1280 | 55 | } | ||
1281 | 56 | |||
1282 | 57 | } | ||
1283 | 0 | 58 | ||
1284 | === modified file 'plugins/cellular/Components/SimEditor.qml' | |||
1285 | --- plugins/cellular/Components/SimEditor.qml 2014-08-20 13:48:58 +0000 | |||
1286 | +++ plugins/cellular/Components/SimEditor.qml 2014-11-07 22:38:03 +0000 | |||
1287 | @@ -22,15 +22,9 @@ | |||
1288 | 22 | import Ubuntu.Components.ListItems 0.1 as ListItem | 22 | import Ubuntu.Components.ListItems 0.1 as ListItem |
1289 | 23 | 23 | ||
1290 | 24 | Column { | 24 | Column { |
1291 | 25 | |||
1292 | 26 | id: simList | 25 | id: simList |
1293 | 27 | objectName: "simEditor" | 26 | objectName: "simEditor" |
1294 | 28 | 27 | ||
1295 | 29 | anchors { | ||
1296 | 30 | left: parent.left | ||
1297 | 31 | right: parent.right | ||
1298 | 32 | } | ||
1299 | 33 | |||
1300 | 34 | states: [ | 28 | states: [ |
1301 | 35 | State { | 29 | State { |
1302 | 36 | name: "editing" | 30 | name: "editing" |
1303 | @@ -73,7 +67,25 @@ | |||
1304 | 73 | } | 67 | } |
1305 | 74 | ] | 68 | ] |
1306 | 75 | 69 | ||
1307 | 70 | NumberAnimation { | ||
1308 | 71 | id: scrollerAnimation | ||
1309 | 72 | duration: UbuntuAnimation.SnapDuration | ||
1310 | 73 | easing: UbuntuAnimation.StandardEasing | ||
1311 | 74 | target: root.flickable | ||
1312 | 75 | property: "contentY" | ||
1313 | 76 | } | ||
1314 | 77 | |||
1315 | 78 | function openedEditor () { | ||
1316 | 79 | var flickable = scrollerAnimation.target; | ||
1317 | 80 | var maxFlick = Math.max(0, flickable.contentHeight - root.height); | ||
1318 | 81 | scrollerAnimation.from = flickable.contentY; | ||
1319 | 82 | scrollerAnimation.to = Math.min(y, maxFlick) - units.gu(9); // header | ||
1320 | 83 | scrollerAnimation.start(); | ||
1321 | 84 | nameField.forceActiveFocus(); | ||
1322 | 85 | } | ||
1323 | 86 | |||
1324 | 76 | ListItem.Standard { | 87 | ListItem.Standard { |
1325 | 88 | id: std | ||
1326 | 77 | text: i18n.tr("Edit SIM Name") | 89 | text: i18n.tr("Edit SIM Name") |
1327 | 78 | } | 90 | } |
1328 | 79 | 91 | ||
1329 | @@ -83,12 +95,14 @@ | |||
1330 | 83 | right: parent.right | 95 | right: parent.right |
1331 | 84 | } | 96 | } |
1332 | 85 | height: expandedItem ? | 97 | height: expandedItem ? |
1334 | 86 | childrenRect.height + editor.height : childrenRect.height | 98 | expandedItem.expandedHeight : childrenRect.height |
1335 | 99 | |||
1336 | 100 | boundsBehavior: Flickable.StopAtBounds | ||
1337 | 87 | 101 | ||
1338 | 88 | ListItem.Expandable { | 102 | ListItem.Expandable { |
1339 | 89 | id: sim1Exp | 103 | id: sim1Exp |
1340 | 90 | expandedHeight: sim1Col.height | 104 | expandedHeight: sim1Col.height |
1342 | 91 | objectName: "editSim1" | 105 | objectName: "edit_name_" + sims[0].path |
1343 | 92 | Column { | 106 | Column { |
1344 | 93 | id: sim1Col | 107 | id: sim1Col |
1345 | 94 | anchors { | 108 | anchors { |
1346 | @@ -102,7 +116,7 @@ | |||
1347 | 102 | } | 116 | } |
1348 | 103 | height: sim1Exp.collapsedHeight | 117 | height: sim1Exp.collapsedHeight |
1349 | 104 | Label { | 118 | Label { |
1351 | 105 | objectName: "simLabel1" | 119 | objectName: "label_" + sims[0].path |
1352 | 106 | anchors { | 120 | anchors { |
1353 | 107 | left: parent.left | 121 | left: parent.left |
1354 | 108 | right: parent.right | 122 | right: parent.right |
1355 | @@ -117,14 +131,15 @@ | |||
1356 | 117 | } | 131 | } |
1357 | 118 | onClicked: { | 132 | onClicked: { |
1358 | 119 | simList.state = "editingSim1"; | 133 | simList.state = "editingSim1"; |
1360 | 120 | nameField.forceActiveFocus(); | 134 | simList.openedEditor(); |
1361 | 121 | } | 135 | } |
1362 | 122 | } | 136 | } |
1363 | 123 | 137 | ||
1364 | 124 | ListItem.Expandable { | 138 | ListItem.Expandable { |
1365 | 125 | id: sim2Exp | 139 | id: sim2Exp |
1366 | 126 | expandedHeight: sim2Col.height | 140 | expandedHeight: sim2Col.height |
1368 | 127 | objectName: "editSim2" | 141 | objectName: "edit_name_" + sims[1].path |
1369 | 142 | showDivider: false | ||
1370 | 128 | Column { | 143 | Column { |
1371 | 129 | id: sim2Col | 144 | id: sim2Col |
1372 | 130 | anchors { | 145 | anchors { |
1373 | @@ -138,7 +153,7 @@ | |||
1374 | 138 | } | 153 | } |
1375 | 139 | height: sim2Exp.collapsedHeight | 154 | height: sim2Exp.collapsedHeight |
1376 | 140 | Label { | 155 | Label { |
1378 | 141 | objectName: "simLabel2" | 156 | objectName: "label_" + sims[1].path |
1379 | 142 | anchors { | 157 | anchors { |
1380 | 143 | left: parent.left | 158 | left: parent.left |
1381 | 144 | right: parent.right | 159 | right: parent.right |
1382 | @@ -153,7 +168,7 @@ | |||
1383 | 153 | } | 168 | } |
1384 | 154 | onClicked: { | 169 | onClicked: { |
1385 | 155 | simList.state = "editingSim2"; | 170 | simList.state = "editingSim2"; |
1387 | 156 | nameField.forceActiveFocus(); | 171 | simList.openedEditor(); |
1388 | 157 | } | 172 | } |
1389 | 158 | } | 173 | } |
1390 | 159 | } | 174 | } |
1391 | @@ -182,6 +197,8 @@ | |||
1392 | 182 | 197 | ||
1393 | 183 | spacing: units.gu(2) | 198 | spacing: units.gu(2) |
1394 | 184 | 199 | ||
1395 | 200 | height: cancel.height + rename.height | ||
1396 | 201 | |||
1397 | 185 | Button { | 202 | Button { |
1398 | 186 | id: cancel | 203 | id: cancel |
1399 | 187 | objectName: "cancelRename" | 204 | objectName: "cancelRename" |
1400 | @@ -204,7 +221,7 @@ | |||
1401 | 204 | } | 221 | } |
1402 | 205 | 222 | ||
1403 | 206 | Item { | 223 | Item { |
1405 | 207 | height: units.gu(1) | 224 | height: units.gu(2) |
1406 | 208 | width: parent.width | 225 | width: parent.width |
1407 | 209 | } | 226 | } |
1408 | 210 | 227 | ||
1409 | 211 | 228 | ||
1410 | === modified file 'plugins/cellular/Components/SingleSim.qml' | |||
1411 | --- plugins/cellular/Components/SingleSim.qml 2014-10-02 09:50:11 +0000 | |||
1412 | +++ plugins/cellular/Components/SingleSim.qml 2014-11-07 22:38:03 +0000 | |||
1413 | @@ -27,11 +27,35 @@ | |||
1414 | 27 | 27 | ||
1415 | 28 | property var sim | 28 | property var sim |
1416 | 29 | 29 | ||
1422 | 30 | CellularSingleSim { | 30 | ListItem.Standard { |
1423 | 31 | anchors { left: parent.left; right: parent.right } | 31 | id: selector |
1424 | 32 | } | 32 | text: i18n.tr("Cellular data:") |
1425 | 33 | 33 | control: Switch { | |
1426 | 34 | ListItem.Divider {} | 34 | id: dataControl |
1427 | 35 | objectName: 'data' | ||
1428 | 36 | |||
1429 | 37 | property bool serverChecked: sim.connMan.powered | ||
1430 | 38 | onServerCheckedChanged: checked = serverChecked | ||
1431 | 39 | Component.onCompleted: checked = serverChecked | ||
1432 | 40 | onTriggered: sim.connMan.powered = checked | ||
1433 | 41 | } | ||
1434 | 42 | } | ||
1435 | 43 | |||
1436 | 44 | ListItem.Standard { | ||
1437 | 45 | id: dataRoamingItem | ||
1438 | 46 | text: i18n.tr("Data roaming") | ||
1439 | 47 | enabled: sim.connMan.powered | ||
1440 | 48 | showDivider: false | ||
1441 | 49 | control: Switch { | ||
1442 | 50 | id: dataRoamingControl | ||
1443 | 51 | objectName: "roaming" | ||
1444 | 52 | |||
1445 | 53 | property bool serverChecked: sim.connMan.roamingAllowed | ||
1446 | 54 | onServerCheckedChanged: checked = serverChecked | ||
1447 | 55 | Component.onCompleted: checked = serverChecked | ||
1448 | 56 | onTriggered: sim.connMan.roamingAllowed = checked | ||
1449 | 57 | } | ||
1450 | 58 | } | ||
1451 | 35 | 59 | ||
1452 | 36 | ListItem.SingleValue { | 60 | ListItem.SingleValue { |
1453 | 37 | text : i18n.tr("Hotspot disabled because Wi-Fi is off.") | 61 | text : i18n.tr("Hotspot disabled because Wi-Fi is off.") |
1454 | @@ -54,10 +78,22 @@ | |||
1455 | 54 | visible: showAllUI | 78 | visible: showAllUI |
1456 | 55 | } | 79 | } |
1457 | 56 | 80 | ||
1458 | 81 | ListItem.Divider { | ||
1459 | 82 | visible: radio.selector.model.length | ||
1460 | 83 | } | ||
1461 | 84 | |||
1462 | 85 | RadioSingleSim { | ||
1463 | 86 | id: radio | ||
1464 | 87 | anchors { left: parent.left; right: parent.right } | ||
1465 | 88 | visible: radio.selector.model.length | ||
1466 | 89 | } | ||
1467 | 90 | |||
1468 | 91 | ListItem.Divider {} | ||
1469 | 92 | |||
1470 | 57 | ListItem.SingleValue { | 93 | ListItem.SingleValue { |
1471 | 58 | text: i18n.tr("Carrier"); | 94 | text: i18n.tr("Carrier"); |
1472 | 59 | id: chooseCarrier | 95 | id: chooseCarrier |
1474 | 60 | objectName: "chooseCarrier" | 96 | objectName: "carrier" |
1475 | 61 | progression: enabled | 97 | progression: enabled |
1476 | 62 | value: sim.netReg.name || i18n.tr("N/A") | 98 | value: sim.netReg.name || i18n.tr("N/A") |
1477 | 63 | enabled: sim.netReg.status !== "" | 99 | enabled: sim.netReg.status !== "" |
1478 | 64 | 100 | ||
1479 | === modified file 'plugins/cellular/CustomApnEditor.qml' | |||
1480 | --- plugins/cellular/CustomApnEditor.qml 2014-10-06 14:28:46 +0000 | |||
1481 | +++ plugins/cellular/CustomApnEditor.qml 2014-11-07 22:38:03 +0000 | |||
1482 | @@ -198,7 +198,7 @@ | |||
1483 | 198 | inputMethodHints: Qt.ImhUrlCharactersOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText | 198 | inputMethodHints: Qt.ImhUrlCharactersOnly | Qt.ImhNoAutoUppercase | Qt.ImhNoPredictiveText |
1484 | 199 | } | 199 | } |
1485 | 200 | Label { | 200 | Label { |
1487 | 201 | text: "Port" | 201 | text: i18n.tr("Port") |
1488 | 202 | visible: d.isMms | 202 | visible: d.isMms |
1489 | 203 | } | 203 | } |
1490 | 204 | TextField { | 204 | TextField { |
1491 | 205 | 205 | ||
1492 | === modified file 'plugins/cellular/PageChooseCarrier.qml' | |||
1493 | --- plugins/cellular/PageChooseCarrier.qml 2014-10-06 12:56:18 +0000 | |||
1494 | +++ plugins/cellular/PageChooseCarrier.qml 2014-11-07 22:38:03 +0000 | |||
1495 | @@ -149,7 +149,7 @@ | |||
1496 | 149 | 149 | ||
1497 | 150 | ListItem.ItemSelector { | 150 | ListItem.ItemSelector { |
1498 | 151 | id: chooseCarrier | 151 | id: chooseCarrier |
1500 | 152 | objectName: "autoChooseCarrierSelector" | 152 | objectName: "mode" |
1501 | 153 | expanded: true | 153 | expanded: true |
1502 | 154 | enabled: sim.netReg.mode !== "auto-only" | 154 | enabled: sim.netReg.mode !== "auto-only" |
1503 | 155 | text: i18n.tr("Choose carrier:") | 155 | text: i18n.tr("Choose carrier:") |
1504 | @@ -171,6 +171,7 @@ | |||
1505 | 171 | } | 171 | } |
1506 | 172 | } | 172 | } |
1507 | 173 | } | 173 | } |
1508 | 174 | |||
1509 | 174 | ListItem.SingleControl { | 175 | ListItem.SingleControl { |
1510 | 175 | enabled: chooseCarrier.selectedIndex === 1 | 176 | enabled: chooseCarrier.selectedIndex === 1 |
1511 | 176 | anchors { | 177 | anchors { |
1512 | @@ -198,7 +199,7 @@ | |||
1513 | 198 | } | 199 | } |
1514 | 199 | ListItem.ItemSelector { | 200 | ListItem.ItemSelector { |
1515 | 200 | id: carrierSelector | 201 | id: carrierSelector |
1517 | 201 | objectName: "carrierSelector" | 202 | objectName: "carriers" |
1518 | 202 | expanded: true | 203 | expanded: true |
1519 | 203 | enabled: sim.netReg.status !== "searching" && chooseCarrier.selectedIndex === 1 | 204 | enabled: sim.netReg.status !== "searching" && chooseCarrier.selectedIndex === 1 |
1520 | 204 | // work around ItemSelector not having a visual change depending on being disabled | 205 | // work around ItemSelector not having a visual change depending on being disabled |
1521 | 205 | 206 | ||
1522 | === modified file 'plugins/cellular/PageChooseCarriers.qml' | |||
1523 | --- plugins/cellular/PageChooseCarriers.qml 2014-10-06 19:38:06 +0000 | |||
1524 | +++ plugins/cellular/PageChooseCarriers.qml 2014-11-07 22:38:03 +0000 | |||
1525 | @@ -44,7 +44,7 @@ | |||
1526 | 44 | } | 44 | } |
1527 | 45 | 45 | ||
1528 | 46 | ListItem.SingleValue { | 46 | ListItem.SingleValue { |
1530 | 47 | objectName: "chooseCarrierSim1" | 47 | objectName: sims[0].path + "_carriers" |
1531 | 48 | value: sims[0].netReg.name ? sims[0].netReg.name : i18n.tr("N/A") | 48 | value: sims[0].netReg.name ? sims[0].netReg.name : i18n.tr("N/A") |
1532 | 49 | enabled: sims[0].netReg.status !== "" | 49 | enabled: sims[0].netReg.status !== "" |
1533 | 50 | progression: true | 50 | progression: true |
1534 | @@ -61,7 +61,7 @@ | |||
1535 | 61 | } | 61 | } |
1536 | 62 | 62 | ||
1537 | 63 | ListItem.SingleValue { | 63 | ListItem.SingleValue { |
1539 | 64 | objectName: "chooseCarrierSim2" | 64 | objectName: sims[1].path + "_carriers" |
1540 | 65 | value: sims[1].netReg.name ? sims[1].netReg.name : i18n.tr("N/A") | 65 | value: sims[1].netReg.name ? sims[1].netReg.name : i18n.tr("N/A") |
1541 | 66 | enabled: sims[1].netReg.status !== "" | 66 | enabled: sims[1].netReg.status !== "" |
1542 | 67 | progression: true | 67 | progression: true |
1543 | 68 | 68 | ||
1544 | === modified file 'plugins/cellular/PageComponent.qml' | |||
1545 | --- plugins/cellular/PageComponent.qml 2014-10-17 14:57:17 +0000 | |||
1546 | +++ plugins/cellular/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
1547 | @@ -94,15 +94,15 @@ | |||
1548 | 94 | start() | 94 | start() |
1549 | 95 | } | 95 | } |
1550 | 96 | } | 96 | } |
1551 | 97 | |||
1552 | 97 | Flickable { | 98 | Flickable { |
1553 | 99 | id: flick | ||
1554 | 98 | anchors.fill: parent | 100 | anchors.fill: parent |
1555 | 99 | contentWidth: parent.width | 101 | contentWidth: parent.width |
1556 | 100 | contentHeight: contentItem.childrenRect.height | 102 | contentHeight: contentItem.childrenRect.height |
1557 | 101 | boundsBehavior: (contentHeight > root.height) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds | 103 | boundsBehavior: (contentHeight > root.height) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds |
1558 | 102 | |||
1559 | 103 | Column { | 104 | Column { |
1560 | 104 | anchors { left: parent.left; right: parent.right } | 105 | anchors { left: parent.left; right: parent.right } |
1561 | 105 | |||
1562 | 106 | Loader { | 106 | Loader { |
1563 | 107 | id: loader | 107 | id: loader |
1564 | 108 | anchors { left: parent.left; right: parent.right } | 108 | anchors { left: parent.left; right: parent.right } |
1565 | 109 | 109 | ||
1566 | === modified file 'plugins/cellular/sims.js' | |||
1567 | --- plugins/cellular/sims.js 2014-10-03 14:08:08 +0000 | |||
1568 | +++ plugins/cellular/sims.js 2014-11-07 22:38:03 +0000 | |||
1569 | @@ -17,6 +17,16 @@ | |||
1570 | 17 | return getPresent()[0]; | 17 | return getPresent()[0]; |
1571 | 18 | } | 18 | } |
1572 | 19 | 19 | ||
1573 | 20 | function getFirstOnline () { | ||
1574 | 21 | var online = null; | ||
1575 | 22 | getPresent().forEach(function (sim) { | ||
1576 | 23 | if (sim.connMan.powered === true) { | ||
1577 | 24 | online = sim; | ||
1578 | 25 | } | ||
1579 | 26 | }); | ||
1580 | 27 | return online; | ||
1581 | 28 | } | ||
1582 | 29 | |||
1583 | 20 | function getCount () { | 30 | function getCount () { |
1584 | 21 | return getAll().length; | 31 | return getAll().length; |
1585 | 22 | } | 32 | } |
1586 | 23 | 33 | ||
1587 | === modified file 'plugins/flight-mode/EntryComponent.qml' | |||
1588 | --- plugins/flight-mode/EntryComponent.qml 2014-06-12 08:19:01 +0000 | |||
1589 | +++ plugins/flight-mode/EntryComponent.qml 2014-11-07 22:38:03 +0000 | |||
1590 | @@ -29,13 +29,13 @@ | |||
1591 | 29 | iconFrame: false | 29 | iconFrame: false |
1592 | 30 | text: i18n.tr(model.displayName) | 30 | text: i18n.tr(model.displayName) |
1593 | 31 | control: Switch { | 31 | control: Switch { |
1596 | 32 | id: control | 32 | property bool serverChecked: helper.inFlightMode |
1597 | 33 | checked: helper.inFlightMode | 33 | onServerCheckedChanged: checked = serverChecked |
1598 | 34 | Component.onCompleted: checked = serverChecked | ||
1599 | 34 | onTriggered: helper.setFlightMode(checked) | 35 | onTriggered: helper.setFlightMode(checked) |
1600 | 35 | } | 36 | } |
1601 | 36 | 37 | ||
1602 | 37 | FlightMode.Helper { | 38 | FlightMode.Helper { |
1603 | 38 | id: helper | 39 | id: helper |
1604 | 39 | onInFlightModeChanged: control.checked = inFlightMode | ||
1605 | 40 | } | 40 | } |
1606 | 41 | } | 41 | } |
1607 | 42 | 42 | ||
1608 | === modified file 'plugins/language/DisplayLanguage.qml' | |||
1609 | --- plugins/language/DisplayLanguage.qml 2014-09-03 22:01:57 +0000 | |||
1610 | +++ plugins/language/DisplayLanguage.qml 2014-11-07 22:38:03 +0000 | |||
1611 | @@ -73,7 +73,6 @@ | |||
1612 | 73 | 73 | ||
1613 | 74 | onCurrentIndexChanged: { | 74 | onCurrentIndexChanged: { |
1614 | 75 | i18n.language = plugin.languageCodes[currentIndex] | 75 | i18n.language = plugin.languageCodes[currentIndex] |
1615 | 76 | i18n.domain = i18n.domain | ||
1616 | 77 | } | 76 | } |
1617 | 78 | } | 77 | } |
1618 | 79 | 78 | ||
1619 | @@ -107,7 +106,6 @@ | |||
1620 | 107 | 106 | ||
1621 | 108 | onClicked: { | 107 | onClicked: { |
1622 | 109 | i18n.language = initialLanguage | 108 | i18n.language = initialLanguage |
1623 | 110 | i18n.domain = i18n.domain | ||
1624 | 111 | PopupUtils.close(root) | 109 | PopupUtils.close(root) |
1625 | 112 | } | 110 | } |
1626 | 113 | } | 111 | } |
1627 | 114 | 112 | ||
1628 | === modified file 'plugins/language/PageComponent.qml' | |||
1629 | --- plugins/language/PageComponent.qml 2014-09-03 14:43:44 +0000 | |||
1630 | +++ plugins/language/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
1631 | @@ -71,6 +71,7 @@ | |||
1632 | 71 | } | 71 | } |
1633 | 72 | onRevert: { | 72 | onRevert: { |
1634 | 73 | plugin.currentLanguage = to; | 73 | plugin.currentLanguage = to; |
1635 | 74 | i18n.language = plugin.languageCodes[to] | ||
1636 | 74 | } | 75 | } |
1637 | 75 | } | 76 | } |
1638 | 76 | } | 77 | } |
1639 | @@ -142,9 +143,10 @@ | |||
1640 | 142 | text: i18n.tr("Spell checking") | 143 | text: i18n.tr("Spell checking") |
1641 | 143 | 144 | ||
1642 | 144 | control: Switch { | 145 | control: Switch { |
1646 | 145 | checked: settings.spellChecking | 146 | property bool serverChecked: settings.spellChecking |
1647 | 146 | 147 | onServerCheckedChanged: checked = serverChecked | |
1648 | 147 | onClicked: settings.spellChecking = checked | 148 | Component.onCompleted: checked = serverChecked |
1649 | 149 | onTriggered: settings.spellChecking = checked | ||
1650 | 148 | } | 150 | } |
1651 | 149 | } | 151 | } |
1652 | 150 | 152 | ||
1653 | @@ -152,9 +154,10 @@ | |||
1654 | 152 | text: i18n.tr("Auto correction") | 154 | text: i18n.tr("Auto correction") |
1655 | 153 | 155 | ||
1656 | 154 | control: Switch { | 156 | control: Switch { |
1660 | 155 | checked: settings.autoCompletion | 157 | property bool serverChecked: settings.autoCompletion |
1661 | 156 | 158 | onServerCheckedChanged: checked = serverChecked | |
1662 | 157 | onClicked: settings.autoCompletion = checked | 159 | Component.onCompleted: checked = serverChecked |
1663 | 160 | onTriggered: settings.autoCompletion = checked | ||
1664 | 158 | } | 161 | } |
1665 | 159 | } | 162 | } |
1666 | 160 | 163 | ||
1667 | @@ -162,9 +165,10 @@ | |||
1668 | 162 | text: i18n.tr("Word suggestions") | 165 | text: i18n.tr("Word suggestions") |
1669 | 163 | 166 | ||
1670 | 164 | control: Switch { | 167 | control: Switch { |
1674 | 165 | checked: settings.predictiveText | 168 | property bool serverChecked: settings.predictiveText |
1675 | 166 | 169 | onServerCheckedChanged: checked = serverChecked | |
1676 | 167 | onClicked: settings.predictiveText = checked | 170 | Component.onCompleted: checked = serverChecked |
1677 | 171 | onTriggered: settings.predictiveText = checked | ||
1678 | 168 | } | 172 | } |
1679 | 169 | } | 173 | } |
1680 | 170 | 174 | ||
1681 | @@ -175,9 +179,10 @@ | |||
1682 | 175 | text: i18n.tr("Auto capitalization") | 179 | text: i18n.tr("Auto capitalization") |
1683 | 176 | 180 | ||
1684 | 177 | control: Switch { | 181 | control: Switch { |
1688 | 178 | checked: settings.autoCapitalization | 182 | property bool serverChecked: settings.autoCapitalization |
1689 | 179 | 183 | onServerCheckedChanged: checked = serverChecked | |
1690 | 180 | onClicked: settings.autoCapitalization = checked | 184 | Component.onCompleted: checked = serverChecked |
1691 | 185 | onTriggered: settings.autoCapitalization = checked | ||
1692 | 181 | } | 186 | } |
1693 | 182 | } | 187 | } |
1694 | 183 | 188 | ||
1695 | @@ -192,9 +197,10 @@ | |||
1696 | 192 | text: i18n.tr("Auto punctuation") | 197 | text: i18n.tr("Auto punctuation") |
1697 | 193 | 198 | ||
1698 | 194 | control: Switch { | 199 | control: Switch { |
1702 | 195 | checked: settings.doubleSpaceFullStop | 200 | property bool serverChecked: settings.doubleSpaceFullStop |
1703 | 196 | 201 | onServerCheckedChanged: checked = serverChecked | |
1704 | 197 | onClicked: settings.doubleSpaceFullStop = checked | 202 | Component.onCompleted: checked = serverChecked |
1705 | 203 | onTriggered: settings.doubleSpaceFullStop = checked | ||
1706 | 198 | } | 204 | } |
1707 | 199 | } | 205 | } |
1708 | 200 | 206 | ||
1709 | @@ -209,9 +215,10 @@ | |||
1710 | 209 | text: i18n.tr("Keyboard sound") | 215 | text: i18n.tr("Keyboard sound") |
1711 | 210 | 216 | ||
1712 | 211 | control: Switch { | 217 | control: Switch { |
1716 | 212 | checked: settings.keyPressFeedback | 218 | property bool serverChecked: settings.keyPressFeedback |
1717 | 213 | 219 | onServerCheckedChanged: checked = serverChecked | |
1718 | 214 | onClicked: settings.keyPressFeedback = checked | 220 | Component.onCompleted: checked = serverChecked |
1719 | 221 | onTriggered: settings.keyPressFeedback = checked | ||
1720 | 215 | } | 222 | } |
1721 | 216 | } | 223 | } |
1722 | 217 | 224 | ||
1723 | @@ -219,9 +226,10 @@ | |||
1724 | 219 | text: i18n.tr("Keyboard vibration") | 226 | text: i18n.tr("Keyboard vibration") |
1725 | 220 | 227 | ||
1726 | 221 | control: Switch { | 228 | control: Switch { |
1730 | 222 | checked: settings.keyPressHapticFeedback | 229 | property bool serverChecked: settings.keyPressHapticFeedback |
1731 | 223 | 230 | onServerCheckedChanged: checked = serverChecked | |
1732 | 224 | onClicked: settings.keyPressHapticFeedback = checked | 231 | Component.onCompleted: checked = serverChecked |
1733 | 232 | onTriggered: settings.keyPressHapticFeedback = checked | ||
1734 | 225 | } | 233 | } |
1735 | 226 | } | 234 | } |
1736 | 227 | } | 235 | } |
1737 | 228 | 236 | ||
1738 | === modified file 'plugins/language/SpellChecking.qml' | |||
1739 | --- plugins/language/SpellChecking.qml 2014-01-30 11:32:47 +0000 | |||
1740 | +++ plugins/language/SpellChecking.qml 2014-11-07 22:38:03 +0000 | |||
1741 | @@ -18,6 +18,8 @@ | |||
1742 | 18 | * with this program. If not, see <http://www.gnu.org/licenses/>. | 18 | * with this program. If not, see <http://www.gnu.org/licenses/>. |
1743 | 19 | */ | 19 | */ |
1744 | 20 | 20 | ||
1745 | 21 | import QtQuick 2.0 | ||
1746 | 22 | import GSettings 1.0 | ||
1747 | 21 | import SystemSettings 1.0 | 23 | import SystemSettings 1.0 |
1748 | 22 | import Ubuntu.Components 0.1 | 24 | import Ubuntu.Components 0.1 |
1749 | 23 | import Ubuntu.Components.ListItems 0.1 as ListItem | 25 | import Ubuntu.Components.ListItems 0.1 as ListItem |
1750 | @@ -30,15 +32,22 @@ | |||
1751 | 30 | id: plugin | 32 | id: plugin |
1752 | 31 | } | 33 | } |
1753 | 32 | 34 | ||
1754 | 35 | GSettings { | ||
1755 | 36 | id: settings | ||
1756 | 37 | |||
1757 | 38 | schema.id: "com.canonical.keyboard.maliit" | ||
1758 | 39 | } | ||
1759 | 40 | |||
1760 | 33 | ListItem.Standard { | 41 | ListItem.Standard { |
1761 | 34 | id: item | 42 | id: item |
1762 | 35 | 43 | ||
1763 | 36 | text: i18n.tr("Spell checking") | 44 | text: i18n.tr("Spell checking") |
1764 | 37 | 45 | ||
1765 | 38 | control: Switch { | 46 | control: Switch { |
1769 | 39 | checked: plugin.spellChecking | 47 | property bool serverChecked: settings.spellChecking |
1770 | 40 | 48 | onServerCheckedChanged: checked = serverChecked | |
1771 | 41 | onClicked: plugin.spellChecking = checked | 49 | Component.onCompleted: checked = serverChecked |
1772 | 50 | onTriggered: settings.spellChecking = checked | ||
1773 | 42 | } | 51 | } |
1774 | 43 | } | 52 | } |
1775 | 44 | 53 | ||
1776 | 45 | 54 | ||
1777 | === modified file 'plugins/notifications/PageComponent.qml' | |||
1778 | --- plugins/notifications/PageComponent.qml 2014-08-29 09:17:39 +0000 | |||
1779 | +++ plugins/notifications/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
1780 | @@ -46,6 +46,7 @@ | |||
1781 | 46 | margins: units.gu(1) | 46 | margins: units.gu(1) |
1782 | 47 | } | 47 | } |
1783 | 48 | } | 48 | } |
1784 | 49 | highlightWhenPressed: false | ||
1785 | 49 | } | 50 | } |
1786 | 50 | 51 | ||
1787 | 51 | ListView { | 52 | ListView { |
1788 | 52 | 53 | ||
1789 | === modified file 'plugins/orientation-lock/EntryComponent.qml' | |||
1790 | --- plugins/orientation-lock/EntryComponent.qml 2014-09-04 11:47:52 +0000 | |||
1791 | +++ plugins/orientation-lock/EntryComponent.qml 2014-11-07 22:38:03 +0000 | |||
1792 | @@ -33,10 +33,12 @@ | |||
1793 | 33 | control: Switch { | 33 | control: Switch { |
1794 | 34 | id: control | 34 | id: control |
1795 | 35 | objectName: "orientationLockSwitch" | 35 | objectName: "orientationLockSwitch" |
1800 | 36 | checked: systemSettings.rotationLock | 36 | |
1801 | 37 | onClicked: { | 37 | property bool serverChecked: systemSettings.rotationLock |
1802 | 38 | systemSettings.rotationLock = checked | 38 | onServerCheckedChanged: checked = serverChecked |
1803 | 39 | } | 39 | Component.onCompleted: checked = serverChecked |
1804 | 40 | onTriggered: systemSettings.rotationLock = checked | ||
1805 | 41 | |||
1806 | 40 | GSettings { | 42 | GSettings { |
1807 | 41 | id: systemSettings | 43 | id: systemSettings |
1808 | 42 | schema.id: "com.ubuntu.touch.system" | 44 | schema.id: "com.ubuntu.touch.system" |
1809 | 43 | 45 | ||
1810 | === modified file 'plugins/phone/PageComponent.qml' | |||
1811 | --- plugins/phone/PageComponent.qml 2014-10-03 14:08:08 +0000 | |||
1812 | +++ plugins/phone/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
1813 | @@ -104,8 +104,10 @@ | |||
1814 | 104 | ListItem.Standard { | 104 | ListItem.Standard { |
1815 | 105 | control: Switch { | 105 | control: Switch { |
1816 | 106 | objectName: "dialpadSounds" | 106 | objectName: "dialpadSounds" |
1819 | 107 | checked: soundPlugin.dialpadSoundsEnabled | 107 | property bool serverChecked: soundPlugin.dialpadSoundsEnabled |
1820 | 108 | onCheckedChanged: soundPlugin.dialpadSoundsEnabled = checked | 108 | onServerCheckedChanged: checked = serverChecked |
1821 | 109 | Component.onCompleted: checked = serverChecked | ||
1822 | 110 | onTriggered: soundPlugin.dialpadSoundsEnabled = checked | ||
1823 | 109 | } | 111 | } |
1824 | 110 | text: i18n.tr("Dialpad sounds") | 112 | text: i18n.tr("Dialpad sounds") |
1825 | 111 | } | 113 | } |
1826 | 112 | 114 | ||
1827 | === modified file 'plugins/reset/ResetLauncherHome.qml' | |||
1828 | --- plugins/reset/ResetLauncherHome.qml 2014-09-30 11:38:35 +0000 | |||
1829 | +++ plugins/reset/ResetLauncherHome.qml 2014-11-07 22:38:03 +0000 | |||
1830 | @@ -55,11 +55,5 @@ | |||
1831 | 55 | text: i18n.tr("Cancel") | 55 | text: i18n.tr("Cancel") |
1832 | 56 | onClicked: PopupUtils.close(dialog) | 56 | onClicked: PopupUtils.close(dialog) |
1833 | 57 | } | 57 | } |
1834 | 58 | Label { | ||
1835 | 59 | text: i18n.tr("The phone needs to restart for changes to take effect.") | ||
1836 | 60 | width: parent.width | ||
1837 | 61 | wrapMode: Text.Wrap | ||
1838 | 62 | horizontalAlignment: Text.AlignHCenter | ||
1839 | 63 | } | ||
1840 | 64 | } | 58 | } |
1841 | 65 | } | 59 | } |
1842 | 66 | 60 | ||
1843 | === modified file 'plugins/security-privacy/Location.qml' | |||
1844 | --- plugins/security-privacy/Location.qml 2014-10-21 13:17:01 +0000 | |||
1845 | +++ plugins/security-privacy/Location.qml 2014-11-07 22:38:03 +0000 | |||
1846 | @@ -90,6 +90,10 @@ | |||
1847 | 90 | anchors.left: parent.left | 90 | anchors.left: parent.left |
1848 | 91 | anchors.right: parent.right | 91 | anchors.right: parent.right |
1849 | 92 | 92 | ||
1850 | 93 | SettingsItemTitle { | ||
1851 | 94 | text: i18n.tr("Let the phone detect your location:") | ||
1852 | 95 | } | ||
1853 | 96 | |||
1854 | 93 | ListItem.ItemSelector { | 97 | ListItem.ItemSelector { |
1855 | 94 | id: detection | 98 | id: detection |
1856 | 95 | 99 | ||
1857 | @@ -112,7 +116,6 @@ | |||
1858 | 112 | } | 116 | } |
1859 | 113 | property bool allow: selectedIndex !== (model.count - 1) | 117 | property bool allow: selectedIndex !== (model.count - 1) |
1860 | 114 | 118 | ||
1861 | 115 | text: i18n.tr("Let the phone detect your location:") | ||
1862 | 116 | expanded: true | 119 | expanded: true |
1863 | 117 | model: optionsModel | 120 | model: optionsModel |
1864 | 118 | delegate: optionsDelegate | 121 | delegate: optionsDelegate |
1865 | @@ -220,9 +223,7 @@ | |||
1866 | 220 | visible: showAllUI /* hide until the information is real */ | 223 | visible: showAllUI /* hide until the information is real */ |
1867 | 221 | } | 224 | } |
1868 | 222 | 225 | ||
1872 | 223 | ListItem.Divider {} | 226 | SettingsItemTitle { |
1870 | 224 | |||
1871 | 225 | ListItem.Standard { | ||
1873 | 226 | text: i18n.tr("Allow access to location:") | 227 | text: i18n.tr("Allow access to location:") |
1874 | 227 | enabled: detection.allow | 228 | enabled: detection.allow |
1875 | 228 | } | 229 | } |
1876 | 229 | 230 | ||
1877 | === modified file 'plugins/security-privacy/LockSecurity.qml' | |||
1878 | --- plugins/security-privacy/LockSecurity.qml 2014-09-22 15:21:10 +0000 | |||
1879 | +++ plugins/security-privacy/LockSecurity.qml 2014-11-07 22:38:03 +0000 | |||
1880 | @@ -340,7 +340,7 @@ | |||
1881 | 340 | anchors.left: parent.left | 340 | anchors.left: parent.left |
1882 | 341 | anchors.right: parent.right | 341 | anchors.right: parent.right |
1883 | 342 | 342 | ||
1885 | 343 | ListItem.Standard { | 343 | SettingsItemTitle { |
1886 | 344 | text: i18n.tr("Unlock the phone using:") | 344 | text: i18n.tr("Unlock the phone using:") |
1887 | 345 | } | 345 | } |
1888 | 346 | 346 | ||
1889 | 347 | 347 | ||
1890 | === modified file 'plugins/security-privacy/PageComponent.qml' | |||
1891 | --- plugins/security-privacy/PageComponent.qml 2014-10-16 13:43:16 +0000 | |||
1892 | +++ plugins/security-privacy/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
1893 | @@ -121,7 +121,7 @@ | |||
1894 | 121 | anchors.left: parent.left | 121 | anchors.left: parent.left |
1895 | 122 | anchors.right: parent.right | 122 | anchors.right: parent.right |
1896 | 123 | 123 | ||
1898 | 124 | ListItem.Standard { | 124 | ListItem.Header { |
1899 | 125 | id: securityTitle | 125 | id: securityTitle |
1900 | 126 | text: i18n.tr("Security") | 126 | text: i18n.tr("Security") |
1901 | 127 | } | 127 | } |
1902 | @@ -181,35 +181,29 @@ | |||
1903 | 181 | "Encryption protects against access to phone data when the phone is connected to a PC or other device.") | 181 | "Encryption protects against access to phone data when the phone is connected to a PC or other device.") |
1904 | 182 | visible: showAllUI | 182 | visible: showAllUI |
1905 | 183 | } | 183 | } |
1907 | 184 | ListItem.Standard { | 184 | ListItem.Header { |
1908 | 185 | text: i18n.tr("Privacy") | 185 | text: i18n.tr("Privacy") |
1909 | 186 | } | 186 | } |
1910 | 187 | ListItem.Standard { | 187 | ListItem.Standard { |
1911 | 188 | text: i18n.tr("Stats on welcome screen") | 188 | text: i18n.tr("Stats on welcome screen") |
1912 | 189 | control: Switch { | 189 | control: Switch { |
1915 | 190 | id: welcomeStatsSwitch | 190 | property bool serverChecked: securityPrivacy.statsWelcomeScreen |
1916 | 191 | checked: securityPrivacy.statsWelcomeScreen | 191 | onServerCheckedChanged: checked = serverChecked |
1917 | 192 | Component.onCompleted: checked = serverChecked | ||
1918 | 193 | onTriggered: securityPrivacy.statsWelcomeScreen = checked | ||
1919 | 192 | } | 194 | } |
1920 | 193 | } | 195 | } |
1921 | 194 | Binding { | ||
1922 | 195 | target: securityPrivacy | ||
1923 | 196 | property: "statsWelcomeScreen" | ||
1924 | 197 | value: welcomeStatsSwitch.checked | ||
1925 | 198 | } | ||
1926 | 199 | 196 | ||
1927 | 200 | ListItem.Standard { | 197 | ListItem.Standard { |
1928 | 201 | text: i18n.tr("Messages on welcome screen") | 198 | text: i18n.tr("Messages on welcome screen") |
1929 | 202 | control: Switch { | 199 | control: Switch { |
1932 | 203 | id: welcomeMessagesSwitch | 200 | property bool serverChecked: securityPrivacy.messagesWelcomeScreen |
1933 | 204 | checked: securityPrivacy.messagesWelcomeScreen | 201 | onServerCheckedChanged: checked = serverChecked |
1934 | 202 | Component.onCompleted: checked = serverChecked | ||
1935 | 203 | onTriggered: securityPrivacy.messagesWelcomeScreen = checked | ||
1936 | 205 | } | 204 | } |
1937 | 206 | visible: showAllUI | 205 | visible: showAllUI |
1938 | 207 | } | 206 | } |
1939 | 208 | Binding { | ||
1940 | 209 | target: securityPrivacy | ||
1941 | 210 | property: "messagesWelcomeScreen" | ||
1942 | 211 | value: welcomeMessagesSwitch.checked | ||
1943 | 212 | } | ||
1944 | 213 | 207 | ||
1945 | 214 | ListItem.SingleValue { | 208 | ListItem.SingleValue { |
1946 | 215 | id: dashSearchId | 209 | id: dashSearchId |
1947 | 216 | 210 | ||
1948 | === modified file 'plugins/security-privacy/PhoneLocking.qml' | |||
1949 | --- plugins/security-privacy/PhoneLocking.qml 2014-09-22 15:21:10 +0000 | |||
1950 | +++ plugins/security-privacy/PhoneLocking.qml 2014-11-07 22:38:03 +0000 | |||
1951 | @@ -102,7 +102,7 @@ | |||
1952 | 102 | visible: showAllUI | 102 | visible: showAllUI |
1953 | 103 | } | 103 | } |
1954 | 104 | 104 | ||
1956 | 105 | ListItem.Standard { | 105 | SettingsItemTitle { |
1957 | 106 | text: i18n.tr("When locked, allow:") | 106 | text: i18n.tr("When locked, allow:") |
1958 | 107 | } | 107 | } |
1959 | 108 | 108 | ||
1960 | @@ -111,8 +111,11 @@ | |||
1961 | 111 | control: CheckBox { | 111 | control: CheckBox { |
1962 | 112 | id: launcherCheck | 112 | id: launcherCheck |
1963 | 113 | enabled: securityPrivacy.securityType !== UbuntuSecurityPrivacyPanel.Swipe | 113 | enabled: securityPrivacy.securityType !== UbuntuSecurityPrivacyPanel.Swipe |
1966 | 114 | checked: securityPrivacy.enableLauncherWhileLocked || !enabled | 114 | |
1967 | 115 | onClicked: securityPrivacy.enableLauncherWhileLocked = checked | 115 | property bool serverChecked: securityPrivacy.enableLauncherWhileLocked || !enabled |
1968 | 116 | onServerCheckedChanged: checked = serverChecked | ||
1969 | 117 | Component.onCompleted: checked = serverChecked | ||
1970 | 118 | onTriggered: securityPrivacy.enableLauncherWhileLocked = checked | ||
1971 | 116 | } | 119 | } |
1972 | 117 | } | 120 | } |
1973 | 118 | 121 | ||
1974 | @@ -121,8 +124,11 @@ | |||
1975 | 121 | control: CheckBox { | 124 | control: CheckBox { |
1976 | 122 | id: indicatorsCheck | 125 | id: indicatorsCheck |
1977 | 123 | enabled: securityPrivacy.securityType !== UbuntuSecurityPrivacyPanel.Swipe | 126 | enabled: securityPrivacy.securityType !== UbuntuSecurityPrivacyPanel.Swipe |
1980 | 124 | checked: securityPrivacy.enableIndicatorsWhileLocked || !enabled | 127 | |
1981 | 125 | onClicked: securityPrivacy.enableIndicatorsWhileLocked = checked | 128 | property bool serverChecked: securityPrivacy.enableIndicatorsWhileLocked || !enabled |
1982 | 129 | onServerCheckedChanged: checked = serverChecked | ||
1983 | 130 | Component.onCompleted: checked = serverChecked | ||
1984 | 131 | onTriggered: securityPrivacy.enableIndicatorsWhileLocked = checked | ||
1985 | 126 | } | 132 | } |
1986 | 127 | } | 133 | } |
1987 | 128 | 134 | ||
1988 | 129 | 135 | ||
1989 | === modified file 'plugins/sound/PageComponent.qml' | |||
1990 | --- plugins/sound/PageComponent.qml 2014-10-17 15:02:18 +0000 | |||
1991 | +++ plugins/sound/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
1992 | @@ -70,13 +70,15 @@ | |||
1993 | 70 | ListItem.Standard { | 70 | ListItem.Standard { |
1994 | 71 | control: Switch { | 71 | control: Switch { |
1995 | 72 | objectName: "silentMode" | 72 | objectName: "silentMode" |
1998 | 73 | checked: backendInfo.silentMode | 73 | property bool serverChecked: backendInfo.silentMode |
1999 | 74 | onCheckedChanged: backendInfo.silentMode = checked | 74 | onServerCheckedChanged: checked = serverChecked |
2000 | 75 | Component.onCompleted: checked = serverChecked | ||
2001 | 76 | onTriggered: backendInfo.silentMode = checked | ||
2002 | 75 | } | 77 | } |
2003 | 76 | text: i18n.tr("Silent Mode") | 78 | text: i18n.tr("Silent Mode") |
2004 | 77 | } | 79 | } |
2005 | 78 | 80 | ||
2007 | 79 | ListItem.Standard { | 81 | SettingsItemTitle { |
2008 | 80 | text: i18n.tr("Ringer:") | 82 | text: i18n.tr("Ringer:") |
2009 | 81 | } | 83 | } |
2010 | 82 | 84 | ||
2011 | @@ -108,7 +110,7 @@ | |||
2012 | 108 | onUpdated: soundActionGroup.volume.updateState(value); | 110 | onUpdated: soundActionGroup.volume.updateState(value); |
2013 | 109 | } | 111 | } |
2014 | 110 | 112 | ||
2016 | 111 | ListItem.Standard { | 113 | SettingsItemTitle { |
2017 | 112 | text: i18n.tr("Phone calls:") | 114 | text: i18n.tr("Phone calls:") |
2018 | 113 | } | 115 | } |
2019 | 114 | 116 | ||
2020 | @@ -129,8 +131,10 @@ | |||
2021 | 129 | ListItem.Standard { | 131 | ListItem.Standard { |
2022 | 130 | control: CheckBox { | 132 | control: CheckBox { |
2023 | 131 | objectName: "callVibrate" | 133 | objectName: "callVibrate" |
2026 | 132 | checked: backendInfo.incomingCallVibrate | 134 | property bool serverChecked: backendInfo.incomingCallVibrate |
2027 | 133 | onCheckedChanged: backendInfo.incomingCallVibrate = checked | 135 | onServerCheckedChanged: checked = serverChecked |
2028 | 136 | Component.onCompleted: checked = serverChecked | ||
2029 | 137 | onTriggered: backendInfo.incomingCallVibrate = checked | ||
2030 | 134 | } | 138 | } |
2031 | 135 | text: i18n.tr("Vibrate when ringing") | 139 | text: i18n.tr("Vibrate when ringing") |
2032 | 136 | } | 140 | } |
2033 | @@ -138,8 +142,10 @@ | |||
2034 | 138 | ListItem.Standard { | 142 | ListItem.Standard { |
2035 | 139 | control: CheckBox { | 143 | control: CheckBox { |
2036 | 140 | objectName: "callVibrateSilentMode" | 144 | objectName: "callVibrateSilentMode" |
2039 | 141 | checked: backendInfo.incomingCallVibrateSilentMode | 145 | property bool serverChecked: backendInfo.incomingCallVibrateSilentMode |
2040 | 142 | onCheckedChanged: backendInfo.incomingCallVibrateSilentMode = checked | 146 | onServerCheckedChanged: checked = serverChecked |
2041 | 147 | Component.onCompleted: checked = serverChecked | ||
2042 | 148 | onTriggered: backendInfo.incomingCallVibrateSilentMode = checked | ||
2043 | 143 | } | 149 | } |
2044 | 144 | text: i18n.tr("Vibrate in Silent Mode") | 150 | text: i18n.tr("Vibrate in Silent Mode") |
2045 | 145 | } | 151 | } |
2046 | @@ -147,13 +153,15 @@ | |||
2047 | 147 | ListItem.Standard { | 153 | ListItem.Standard { |
2048 | 148 | control: Switch { | 154 | control: Switch { |
2049 | 149 | objectName: "dialpadSounds" | 155 | objectName: "dialpadSounds" |
2052 | 150 | checked: backendInfo.dialpadSoundsEnabled | 156 | property bool serverChecked: backendInfo.dialpadSoundsEnabled |
2053 | 151 | onCheckedChanged: backendInfo.dialpadSoundsEnabled = checked | 157 | onServerCheckedChanged: checked = serverChecked |
2054 | 158 | Component.onCompleted: checked = serverChecked | ||
2055 | 159 | onTriggered: backendInfo.dialpadSoundsEnabled = checked | ||
2056 | 152 | } | 160 | } |
2057 | 153 | text: i18n.tr("Dialpad sounds") | 161 | text: i18n.tr("Dialpad sounds") |
2058 | 154 | } | 162 | } |
2059 | 155 | 163 | ||
2061 | 156 | ListItem.Standard { | 164 | SettingsItemTitle { |
2062 | 157 | text: i18n.tr("Messages:") | 165 | text: i18n.tr("Messages:") |
2063 | 158 | } | 166 | } |
2064 | 159 | 167 | ||
2065 | @@ -173,8 +181,10 @@ | |||
2066 | 173 | ListItem.Standard { | 181 | ListItem.Standard { |
2067 | 174 | control: CheckBox { | 182 | control: CheckBox { |
2068 | 175 | objectName: "messageVibrate" | 183 | objectName: "messageVibrate" |
2071 | 176 | checked: backendInfo.incomingMessageVibrate | 184 | property bool serverChecked: backendInfo.incomingMessageVibrate |
2072 | 177 | onCheckedChanged: backendInfo.incomingMessageVibrate = checked | 185 | onServerCheckedChanged: checked = serverChecked |
2073 | 186 | Component.onCompleted: checked = serverChecked | ||
2074 | 187 | onTriggered: backendInfo.incomingMessageVibrate = checked | ||
2075 | 178 | } | 188 | } |
2076 | 179 | text: i18n.tr("Vibrate with message sound") | 189 | text: i18n.tr("Vibrate with message sound") |
2077 | 180 | } | 190 | } |
2078 | @@ -182,13 +192,15 @@ | |||
2079 | 182 | ListItem.Standard { | 192 | ListItem.Standard { |
2080 | 183 | control: CheckBox { | 193 | control: CheckBox { |
2081 | 184 | objectName: "messageVibrateSilentMode" | 194 | objectName: "messageVibrateSilentMode" |
2084 | 185 | checked: backendInfo.incomingMessageVibrateSilentMode | 195 | property bool serverChecked: backendInfo.incomingMessageVibrateSilentMode |
2085 | 186 | onCheckedChanged: backendInfo.incomingMessageVibrateSilentMode = checked | 196 | onServerCheckedChanged: checked = serverChecked |
2086 | 197 | Component.onCompleted: checked = serverChecked | ||
2087 | 198 | onTriggered: backendInfo.incomingMessageVibrateSilentMode = checked | ||
2088 | 187 | } | 199 | } |
2089 | 188 | text: i18n.tr("Vibrate in Silent Mode") | 200 | text: i18n.tr("Vibrate in Silent Mode") |
2090 | 189 | } | 201 | } |
2091 | 190 | 202 | ||
2093 | 191 | ListItem.Standard { | 203 | SettingsItemTitle { |
2094 | 192 | text: i18n.tr("Other sounds:") | 204 | text: i18n.tr("Other sounds:") |
2095 | 193 | } | 205 | } |
2096 | 194 | 206 | ||
2097 | @@ -197,9 +209,10 @@ | |||
2098 | 197 | 209 | ||
2099 | 198 | control: Switch { | 210 | control: Switch { |
2100 | 199 | objectName: "keyboardSoundSwitch" | 211 | objectName: "keyboardSoundSwitch" |
2104 | 200 | checked: keyboardSettings.keyPressFeedback | 212 | property bool serverChecked: keyboardSettings.keyPressFeedback |
2105 | 201 | 213 | onServerCheckedChanged: checked = serverChecked | |
2106 | 202 | onClicked: keyboardSettings.keyPressFeedback = checked | 214 | Component.onCompleted: checked = serverChecked |
2107 | 215 | onTriggered: keyboardSettings.keyPressFeedback = checked | ||
2108 | 203 | } | 216 | } |
2109 | 204 | } | 217 | } |
2110 | 205 | 218 | ||
2111 | 206 | 219 | ||
2112 | === modified file 'plugins/sound/sound.cpp' | |||
2113 | --- plugins/sound/sound.cpp 2014-10-17 14:57:35 +0000 | |||
2114 | +++ plugins/sound/sound.cpp 2014-11-07 22:38:03 +0000 | |||
2115 | @@ -59,6 +59,8 @@ | |||
2116 | 59 | Q_EMIT incomingCallVibrateSilentModeChanged(); | 59 | Q_EMIT incomingCallVibrateSilentModeChanged(); |
2117 | 60 | } else if (property == "IncomingMessageVibrateSilentMode") { | 60 | } else if (property == "IncomingMessageVibrateSilentMode") { |
2118 | 61 | Q_EMIT incomingMessageVibrateSilentModeChanged(); | 61 | Q_EMIT incomingMessageVibrateSilentModeChanged(); |
2119 | 62 | } else if (property == "DialpadSoundsEnabled") { | ||
2120 | 63 | Q_EMIT dialpadSoundsEnabledChanged(); | ||
2121 | 62 | } | 64 | } |
2122 | 63 | } | 65 | } |
2123 | 64 | 66 | ||
2124 | @@ -72,6 +74,7 @@ | |||
2125 | 72 | Q_EMIT incomingMessageVibrateChanged(); | 74 | Q_EMIT incomingMessageVibrateChanged(); |
2126 | 73 | Q_EMIT incomingCallVibrateSilentModeChanged(); | 75 | Q_EMIT incomingCallVibrateSilentModeChanged(); |
2127 | 74 | Q_EMIT incomingMessageVibrateSilentModeChanged(); | 76 | Q_EMIT incomingMessageVibrateSilentModeChanged(); |
2128 | 77 | Q_EMIT dialpadSoundsEnabledChanged(); | ||
2129 | 75 | } | 78 | } |
2130 | 76 | 79 | ||
2131 | 77 | QString Sound::getIncomingCallSound() | 80 | QString Sound::getIncomingCallSound() |
2132 | 78 | 81 | ||
2133 | === modified file 'plugins/system-update/PageComponent.qml' | |||
2134 | --- plugins/system-update/PageComponent.qml 2014-10-20 20:53:02 +0000 | |||
2135 | +++ plugins/system-update/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
2136 | @@ -535,11 +535,11 @@ | |||
2137 | 535 | fontSize: "small" | 535 | fontSize: "small" |
2138 | 536 | text: { | 536 | text: { |
2139 | 537 | if (!labelUpdateStatus.visible) | 537 | if (!labelUpdateStatus.visible) |
2141 | 538 | return convert_bytes_to_size(modelData.binaryFilesize); | 538 | return Utilities.formatSize(modelData.binaryFilesize); |
2142 | 539 | 539 | ||
2143 | 540 | return i18n.tr("%1 of %2").arg( | 540 | return i18n.tr("%1 of %2").arg( |
2146 | 541 | convert_bytes_to_size(modelData.binaryFilesize * (progress.value * 0.01))).arg( | 541 | Utilities.formatSize(modelData.binaryFilesize * (progress.value * 0.01))).arg( |
2147 | 542 | convert_bytes_to_size(modelData.binaryFilesize) | 542 | Utilities.formatSize(modelData.binaryFilesize) |
2148 | 543 | ); | 543 | ); |
2149 | 544 | } | 544 | } |
2150 | 545 | } | 545 | } |
2151 | @@ -640,12 +640,12 @@ | |||
2152 | 640 | elide: Text.ElideRight | 640 | elide: Text.ElideRight |
2153 | 641 | fontSize: "small" | 641 | fontSize: "small" |
2154 | 642 | } | 642 | } |
2156 | 643 | 643 | ||
2157 | 644 | Label { | 644 | Label { |
2158 | 645 | id: labelSize | 645 | id: labelSize |
2159 | 646 | objectName: "labelSize" | 646 | objectName: "labelSize" |
2160 | 647 | anchors.right: parent.right | 647 | anchors.right: parent.right |
2162 | 648 | text: convert_bytes_to_size(modelData.binaryFilesize) | 648 | text: Utilities.formatSize(modelData.binaryFilesize) |
2163 | 649 | fontSize: "small" | 649 | fontSize: "small" |
2164 | 650 | visible: !labelUpdateStatus.visible && !installing && !installed | 650 | visible: !labelUpdateStatus.visible && !installing && !installed |
2165 | 651 | } | 651 | } |
2166 | @@ -773,27 +773,4 @@ | |||
2167 | 773 | onClicked: pageStack.push(Qt.resolvedUrl("Configuration.qml")) | 773 | onClicked: pageStack.push(Qt.resolvedUrl("Configuration.qml")) |
2168 | 774 | } | 774 | } |
2169 | 775 | } | 775 | } |
2170 | 776 | |||
2171 | 777 | function convert_bytes_to_size(bytes) { | ||
2172 | 778 | var SIZE_IN_GIB = 1024.0 * 1024.0 * 1024.0; | ||
2173 | 779 | var SIZE_IN_MIB = 1024.0 * 1024.0; | ||
2174 | 780 | var SIZE_IN_KIB = 1024.0; | ||
2175 | 781 | |||
2176 | 782 | var result = ""; | ||
2177 | 783 | var size = 0; | ||
2178 | 784 | if (bytes < SIZE_IN_KIB) { | ||
2179 | 785 | result = bytes + i18n.tr(" bytes"); | ||
2180 | 786 | } else if (bytes < SIZE_IN_MIB) { | ||
2181 | 787 | size = (bytes / SIZE_IN_KIB).toFixed(1); | ||
2182 | 788 | result = size + i18n.tr(" KiB"); | ||
2183 | 789 | } else if (bytes < SIZE_IN_GIB) { | ||
2184 | 790 | size = (bytes / SIZE_IN_MIB).toFixed(1); | ||
2185 | 791 | result = size + i18n.tr(" MiB"); | ||
2186 | 792 | } else { | ||
2187 | 793 | size = (bytes / SIZE_IN_GIB).toFixed(1); | ||
2188 | 794 | result = size + i18n.tr(" GiB"); | ||
2189 | 795 | } | ||
2190 | 796 | |||
2191 | 797 | return result; | ||
2192 | 798 | } | ||
2193 | 799 | } | 776 | } |
2194 | 800 | 777 | ||
2195 | === modified file 'plugins/time-date/PageComponent.qml' | |||
2196 | --- plugins/time-date/PageComponent.qml 2014-01-29 13:34:37 +0000 | |||
2197 | +++ plugins/time-date/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
2198 | @@ -50,7 +50,7 @@ | |||
2199 | 50 | Column { | 50 | Column { |
2200 | 51 | anchors.fill: parent | 51 | anchors.fill: parent |
2201 | 52 | 52 | ||
2203 | 53 | ListItem.Standard { text: i18n.tr ("Time zone:") } | 53 | SettingsItemTitle { text: i18n.tr ("Time zone:") } |
2204 | 54 | 54 | ||
2205 | 55 | ListItem.SingleValue { | 55 | ListItem.SingleValue { |
2206 | 56 | objectName: "timeZone" | 56 | objectName: "timeZone" |
2207 | @@ -62,10 +62,13 @@ | |||
2208 | 62 | onClicked: pageStack.push(Qt.resolvedUrl("ChooseTimeZone.qml")) | 62 | onClicked: pageStack.push(Qt.resolvedUrl("ChooseTimeZone.qml")) |
2209 | 63 | } | 63 | } |
2210 | 64 | 64 | ||
2211 | 65 | SettingsItemTitle { | ||
2212 | 66 | text: i18n.tr ("Set the time and date:") | ||
2213 | 67 | } | ||
2214 | 68 | |||
2215 | 65 | ListItem.ItemSelector { | 69 | ListItem.ItemSelector { |
2216 | 66 | id: setTimeAutomatically | 70 | id: setTimeAutomatically |
2217 | 67 | objectName: "timeItemSelector" | 71 | objectName: "timeItemSelector" |
2218 | 68 | text: i18n.tr ("Set the time and date:") | ||
2219 | 69 | model: [ i18n.tr("Automatically") , i18n.tr("Manually")] | 72 | model: [ i18n.tr("Automatically") , i18n.tr("Manually")] |
2220 | 70 | expanded: true | 73 | expanded: true |
2221 | 71 | onSelectedIndexChanged: { | 74 | onSelectedIndexChanged: { |
2222 | 72 | 75 | ||
2223 | === modified file 'plugins/wifi/MenuItemFactory.qml' | |||
2224 | --- plugins/wifi/MenuItemFactory.qml 2014-09-10 15:39:07 +0000 | |||
2225 | +++ plugins/wifi/MenuItemFactory.qml 2014-11-07 22:38:03 +0000 | |||
2226 | @@ -19,6 +19,7 @@ | |||
2227 | 19 | 19 | ||
2228 | 20 | import QtQuick 2.0 | 20 | import QtQuick 2.0 |
2229 | 21 | import QMenuModel 0.1 as QMenuModel | 21 | import QMenuModel 0.1 as QMenuModel |
2230 | 22 | import Ubuntu.Settings.Menus 0.1 as Menus | ||
2231 | 22 | 23 | ||
2232 | 23 | Item { | 24 | Item { |
2233 | 24 | id: menuFactory | 25 | id: menuFactory |
2234 | @@ -66,15 +67,18 @@ | |||
2235 | 66 | 67 | ||
2236 | 67 | Component { | 68 | Component { |
2237 | 68 | id: switchMenu; | 69 | id: switchMenu; |
2239 | 69 | SwitchMenuItem { | 70 | Menus.SwitchMenu { |
2240 | 70 | property QtObject menu: null | 71 | property QtObject menu: null |
2248 | 71 | 72 | property bool serverChecked: menu && menu.isToggled || false | |
2249 | 72 | text: menu && menu.label ? menu.label : "" | 73 | |
2250 | 73 | icon: menu ? menu.icon : "" | 74 | text: menu && menu.label || "" |
2251 | 74 | checked: menu ? menu.isToggled : false | 75 | iconSource: menu && menu.icon || "" |
2252 | 75 | enabled: menu ? menu.sensitive : false | 76 | checked: serverChecked |
2253 | 76 | 77 | enabled: menu && menu.sensitive || false | |
2254 | 77 | onActivate: model.activate(modelIndex); | 78 | |
2255 | 79 | onTriggered: model.activate(modelIndex); | ||
2256 | 80 | // Fixes broken check state binding. | ||
2257 | 81 | onServerCheckedChanged: checked = serverChecked; | ||
2258 | 78 | } | 82 | } |
2259 | 79 | } | 83 | } |
2260 | 80 | 84 | ||
2261 | @@ -100,11 +104,12 @@ | |||
2262 | 100 | model: menuFactory.model ? menuFactory.model : null | 104 | model: menuFactory.model ? menuFactory.model : null |
2263 | 101 | name: menu ? menu.ext.xCanonicalWifiApStrengthAction : "" | 105 | name: menu ? menu.ext.xCanonicalWifiApStrengthAction : "" |
2264 | 102 | } | 106 | } |
2265 | 107 | property bool serverChecked: menu && menu.isToggled || false | ||
2266 | 103 | 108 | ||
2267 | 104 | text: menu && menu.label ? menu.label : "" | 109 | text: menu && menu.label ? menu.label : "" |
2268 | 105 | secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false | 110 | secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false |
2269 | 106 | adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false | 111 | adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false |
2271 | 107 | checked: menu ? menu.isToggled : false | 112 | checked: serverChecked |
2272 | 108 | signalStrength: strenthAction.valid ? strenthAction.state : 0 | 113 | signalStrength: strenthAction.valid ? strenthAction.state : 0 |
2273 | 109 | enabled: menu ? menu.sensitive : false | 114 | enabled: menu ? menu.sensitive : false |
2274 | 110 | 115 | ||
2275 | @@ -114,6 +119,8 @@ | |||
2276 | 114 | 'x-canonical-wifi-ap-strength-action': 'string'}); | 119 | 'x-canonical-wifi-ap-strength-action': 'string'}); |
2277 | 115 | } | 120 | } |
2278 | 116 | onActivate: model.activate(modelIndex); | 121 | onActivate: model.activate(modelIndex); |
2279 | 122 | // Fixes broken check state binding. | ||
2280 | 123 | onServerCheckedChanged: checked = serverChecked; | ||
2281 | 117 | } | 124 | } |
2282 | 118 | } | 125 | } |
2283 | 119 | 126 | ||
2284 | 120 | 127 | ||
2285 | === modified file 'plugins/wifi/PageComponent.qml' | |||
2286 | --- plugins/wifi/PageComponent.qml 2014-09-26 12:52:31 +0000 | |||
2287 | +++ plugins/wifi/PageComponent.qml 2014-11-07 22:38:03 +0000 | |||
2288 | @@ -138,6 +138,8 @@ | |||
2289 | 138 | objectName: "connectToHiddenNetwork" | 138 | objectName: "connectToHiddenNetwork" |
2290 | 139 | text: i18n.tr("Connect to hidden network…") | 139 | text: i18n.tr("Connect to hidden network…") |
2291 | 140 | progression: true | 140 | progression: true |
2292 | 141 | visible : (actionGroup.actionObject.valid ? | ||
2293 | 142 | actionGroup.actionObject.state : false) | ||
2294 | 141 | onClicked: { | 143 | onClicked: { |
2295 | 142 | otherNetworLoader.source = "OtherNetwork.qml"; | 144 | otherNetworLoader.source = "OtherNetwork.qml"; |
2296 | 143 | PopupUtils.open(otherNetworLoader.item); | 145 | PopupUtils.open(otherNetworLoader.item); |
2297 | @@ -155,5 +157,4 @@ | |||
2298 | 155 | Flickable.DragAndOvershootBounds : | 157 | Flickable.DragAndOvershootBounds : |
2299 | 156 | Flickable.StopAtBounds | 158 | Flickable.StopAtBounds |
2300 | 157 | } | 159 | } |
2301 | 158 | |||
2302 | 159 | } | 160 | } |
2303 | 160 | 161 | ||
2304 | === modified file 'po/es.po' | |||
2305 | --- po/es.po 2014-10-21 07:26:04 +0000 | |||
2306 | +++ po/es.po 2014-11-07 22:38:03 +0000 | |||
2307 | @@ -8,14 +8,14 @@ | |||
2308 | 8 | "Project-Id-Version: ubuntu-system-settings\n" | 8 | "Project-Id-Version: ubuntu-system-settings\n" |
2309 | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
2310 | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" |
2312 | 11 | "PO-Revision-Date: 2014-10-20 22:13+0000\n" | 11 | "PO-Revision-Date: 2014-10-29 14:53+0000\n" |
2313 | 12 | "Last-Translator: Víctor R. Ruiz <Unknown>\n" | 12 | "Last-Translator: Víctor R. Ruiz <Unknown>\n" |
2314 | 13 | "Language-Team: Spanish <es@li.org>\n" | 13 | "Language-Team: Spanish <es@li.org>\n" |
2315 | 14 | "MIME-Version: 1.0\n" | 14 | "MIME-Version: 1.0\n" |
2316 | 15 | "Content-Type: text/plain; charset=UTF-8\n" | 15 | "Content-Type: text/plain; charset=UTF-8\n" |
2317 | 16 | "Content-Transfer-Encoding: 8bit\n" | 16 | "Content-Transfer-Encoding: 8bit\n" |
2318 | 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" | 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
2320 | 18 | "X-Launchpad-Export-Date: 2014-10-21 07:26+0000\n" | 18 | "X-Launchpad-Export-Date: 2014-10-30 06:36+0000\n" |
2321 | 19 | "X-Generator: Launchpad (build 17203)\n" | 19 | "X-Generator: Launchpad (build 17203)\n" |
2322 | 20 | 20 | ||
2323 | 21 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 | 21 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 |
2324 | @@ -2360,7 +2360,7 @@ | |||
2325 | 2360 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching | 2360 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
2326 | 2361 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:58 | 2361 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:58 |
2327 | 2362 | msgid "badges" | 2362 | msgid "badges" |
2329 | 2363 | msgstr "" | 2363 | msgstr "insignias" |
2330 | 2364 | 2364 | ||
2331 | 2365 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching | 2365 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
2332 | 2366 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:60 | 2366 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:60 |
2333 | @@ -2968,42 +2968,3 @@ | |||
2334 | 2968 | #: ../push-helper/software_updates_helper.py:151 | 2968 | #: ../push-helper/software_updates_helper.py:151 |
2335 | 2969 | msgid "Tap to open the system updater." | 2969 | msgid "Tap to open the system updater." |
2336 | 2970 | msgstr "Presione para abrir el actualizador del sistema." | 2970 | msgstr "Presione para abrir el actualizador del sistema." |
2337 | 2971 | |||
2338 | 2972 | #~ msgid "Searching" | ||
2339 | 2973 | #~ msgstr "Buscando" | ||
2340 | 2974 | |||
2341 | 2975 | #~ msgid "Refresh" | ||
2342 | 2976 | #~ msgstr "Actualizar" | ||
2343 | 2977 | |||
2344 | 2978 | #~ msgid "Remove" | ||
2345 | 2979 | #~ msgstr "Quitar" | ||
2346 | 2980 | |||
2347 | 2981 | #~ msgid "settings" | ||
2348 | 2982 | #~ msgstr "opciones" | ||
2349 | 2983 | |||
2350 | 2984 | #~ msgid "i18n" | ||
2351 | 2985 | #~ msgstr "i18n" | ||
2352 | 2986 | |||
2353 | 2987 | #~ msgid "lang" | ||
2354 | 2988 | #~ msgstr "lengua" | ||
2355 | 2989 | |||
2356 | 2990 | #~ msgid "Available networks" | ||
2357 | 2991 | #~ msgstr "Redes disponibles" | ||
2358 | 2992 | |||
2359 | 2993 | #~ msgid "Password visible" | ||
2360 | 2994 | #~ msgstr "Contraseña visible" | ||
2361 | 2995 | |||
2362 | 2996 | #~ msgid "Other network" | ||
2363 | 2997 | #~ msgstr "Otra red" | ||
2364 | 2998 | |||
2365 | 2999 | #~ msgid "Connect to Wi-Fi" | ||
2366 | 3000 | #~ msgstr "Conectar a wifi" | ||
2367 | 3001 | |||
2368 | 3002 | #~ msgid "Set lock security" | ||
2369 | 3003 | #~ msgstr "Establecer la seguridad de bloqueo" | ||
2370 | 3004 | |||
2371 | 3005 | #~ msgid "Those passphrases don't match." | ||
2372 | 3006 | #~ msgstr "Las contraseñas no coinciden." | ||
2373 | 3007 | |||
2374 | 3008 | #~ msgid "Passphrase must be at least four characters long." | ||
2375 | 3009 | #~ msgstr "La contraseña debe tener al menos cuatro caracteres." | ||
2376 | 3010 | 2971 | ||
2377 | === modified file 'po/hu.po' | |||
2378 | --- po/hu.po 2014-10-18 07:13:30 +0000 | |||
2379 | +++ po/hu.po 2014-11-07 22:38:03 +0000 | |||
2380 | @@ -8,15 +8,15 @@ | |||
2381 | 8 | "Project-Id-Version: ubuntu-system-settings\n" | 8 | "Project-Id-Version: ubuntu-system-settings\n" |
2382 | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
2383 | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" |
2385 | 11 | "PO-Revision-Date: 2014-10-16 10:21+0000\n" | 11 | "PO-Revision-Date: 2014-11-01 09:41+0000\n" |
2386 | 12 | "Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n" | 12 | "Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n" |
2387 | 13 | "Language-Team: Hungarian <hu@li.org>\n" | 13 | "Language-Team: Hungarian <hu@li.org>\n" |
2388 | 14 | "MIME-Version: 1.0\n" | 14 | "MIME-Version: 1.0\n" |
2389 | 15 | "Content-Type: text/plain; charset=UTF-8\n" | 15 | "Content-Type: text/plain; charset=UTF-8\n" |
2390 | 16 | "Content-Transfer-Encoding: 8bit\n" | 16 | "Content-Transfer-Encoding: 8bit\n" |
2391 | 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" | 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
2394 | 18 | "X-Launchpad-Export-Date: 2014-10-18 07:10+0000\n" | 18 | "X-Launchpad-Export-Date: 2014-11-02 06:14+0000\n" |
2395 | 19 | "X-Generator: Launchpad (build 17196)\n" | 19 | "X-Generator: Launchpad (build 17211)\n" |
2396 | 20 | 20 | ||
2397 | 21 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 | 21 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 |
2398 | 22 | msgid "System Settings" | 22 | msgid "System Settings" |
2399 | @@ -790,7 +790,7 @@ | |||
2400 | 790 | 790 | ||
2401 | 791 | #: ../plugins/cellular//PageChooseCarrier.qml:196 | 791 | #: ../plugins/cellular//PageChooseCarrier.qml:196 |
2402 | 792 | msgid "Searching for carriers…" | 792 | msgid "Searching for carriers…" |
2404 | 793 | msgstr "" | 793 | msgstr "Szolgáltatók keresése…" |
2405 | 794 | 794 | ||
2406 | 795 | #: ../plugins/cellular//PageChooseCarrier.qml:229 | 795 | #: ../plugins/cellular//PageChooseCarrier.qml:229 |
2407 | 796 | #: ../plugins/cellular//PageChooseApn.qml:31 | 796 | #: ../plugins/cellular//PageChooseApn.qml:31 |
2408 | @@ -800,36 +800,36 @@ | |||
2409 | 800 | 800 | ||
2410 | 801 | #: ../plugins/cellular//PageChooseApn.qml:372 | 801 | #: ../plugins/cellular//PageChooseApn.qml:372 |
2411 | 802 | msgid "Internet APN:" | 802 | msgid "Internet APN:" |
2413 | 803 | msgstr "" | 803 | msgstr "Internet APN:" |
2414 | 804 | 804 | ||
2415 | 805 | #: ../plugins/cellular//PageChooseApn.qml:449 | 805 | #: ../plugins/cellular//PageChooseApn.qml:449 |
2416 | 806 | msgid "Custom Internet APN…" | 806 | msgid "Custom Internet APN…" |
2418 | 807 | msgstr "" | 807 | msgstr "Egyéni internet APN…" |
2419 | 808 | 808 | ||
2420 | 809 | #: ../plugins/cellular//PageChooseApn.qml:460 | 809 | #: ../plugins/cellular//PageChooseApn.qml:460 |
2421 | 810 | msgid "MMS APN:" | 810 | msgid "MMS APN:" |
2423 | 811 | msgstr "" | 811 | msgstr "MMS APN:" |
2424 | 812 | 812 | ||
2425 | 813 | #: ../plugins/cellular//PageChooseApn.qml:485 | 813 | #: ../plugins/cellular//PageChooseApn.qml:485 |
2426 | 814 | #: ../plugins/cellular//CustomApnEditor.qml:143 | 814 | #: ../plugins/cellular//CustomApnEditor.qml:143 |
2427 | 815 | msgid "Same APN as for Internet" | 815 | msgid "Same APN as for Internet" |
2429 | 816 | msgstr "" | 816 | msgstr "Az internet APN-nel megegyező" |
2430 | 817 | 817 | ||
2431 | 818 | #: ../plugins/cellular//PageChooseApn.qml:565 | 818 | #: ../plugins/cellular//PageChooseApn.qml:565 |
2432 | 819 | msgid "Custom MMS APN…" | 819 | msgid "Custom MMS APN…" |
2434 | 820 | msgstr "" | 820 | msgstr "Egyéni MMS APN…" |
2435 | 821 | 821 | ||
2436 | 822 | #: ../plugins/cellular//PageChooseApn.qml:591 | 822 | #: ../plugins/cellular//PageChooseApn.qml:591 |
2437 | 823 | msgid "Reset APN Settings" | 823 | msgid "Reset APN Settings" |
2439 | 824 | msgstr "" | 824 | msgstr "APN beállítások visszaállítása" |
2440 | 825 | 825 | ||
2441 | 826 | #: ../plugins/cellular//PageChooseApn.qml:592 | 826 | #: ../plugins/cellular//PageChooseApn.qml:592 |
2442 | 827 | msgid "Are you sure that you want to Reset APN Settings?" | 827 | msgid "Are you sure that you want to Reset APN Settings?" |
2444 | 828 | msgstr "" | 828 | msgstr "Biztos benne, hogy visszaállítja az APN beállításait?" |
2445 | 829 | 829 | ||
2446 | 830 | #: ../plugins/cellular//PageChooseApn.qml:598 | 830 | #: ../plugins/cellular//PageChooseApn.qml:598 |
2447 | 831 | msgid "Reset" | 831 | msgid "Reset" |
2449 | 832 | msgstr "" | 832 | msgstr "Visszaállítás" |
2450 | 833 | 833 | ||
2451 | 834 | #: ../plugins/cellular//PageChooseCarriers.qml:27 | 834 | #: ../plugins/cellular//PageChooseCarriers.qml:27 |
2452 | 835 | #: ../plugins/cellular//Components//MultiSim.qml:68 | 835 | #: ../plugins/cellular//Components//MultiSim.qml:68 |
2453 | @@ -838,43 +838,43 @@ | |||
2454 | 838 | 838 | ||
2455 | 839 | #: ../plugins/cellular//CustomApnEditor.qml:42 | 839 | #: ../plugins/cellular//CustomApnEditor.qml:42 |
2456 | 840 | msgid "Internet" | 840 | msgid "Internet" |
2458 | 841 | msgstr "" | 841 | msgstr "Internet" |
2459 | 842 | 842 | ||
2460 | 843 | #: ../plugins/cellular//CustomApnEditor.qml:42 | 843 | #: ../plugins/cellular//CustomApnEditor.qml:42 |
2461 | 844 | msgid "MMS" | 844 | msgid "MMS" |
2463 | 845 | msgstr "" | 845 | msgstr "MMS" |
2464 | 846 | 846 | ||
2465 | 847 | #. TRANSLATORS: %1 is either i18n.tr("Internet") or i18n.tr("MMS") | 847 | #. TRANSLATORS: %1 is either i18n.tr("Internet") or i18n.tr("MMS") |
2466 | 848 | #: ../plugins/cellular//CustomApnEditor.qml:67 | 848 | #: ../plugins/cellular//CustomApnEditor.qml:67 |
2467 | 849 | #, qt-format | 849 | #, qt-format |
2468 | 850 | msgid "Custom %1 APN" | 850 | msgid "Custom %1 APN" |
2470 | 851 | msgstr "" | 851 | msgstr "Egyéni %1 APN" |
2471 | 852 | 852 | ||
2472 | 853 | #. TRANSLATORS: %1 is either i18n.tr("Internet") or i18n.tr("MMS") | 853 | #. TRANSLATORS: %1 is either i18n.tr("Internet") or i18n.tr("MMS") |
2473 | 854 | #: ../plugins/cellular//CustomApnEditor.qml:171 | 854 | #: ../plugins/cellular//CustomApnEditor.qml:171 |
2474 | 855 | #, qt-format | 855 | #, qt-format |
2475 | 856 | msgid "%1 APN" | 856 | msgid "%1 APN" |
2477 | 857 | msgstr "" | 857 | msgstr "%1 APN" |
2478 | 858 | 858 | ||
2479 | 859 | #: ../plugins/cellular//CustomApnEditor.qml:181 | 859 | #: ../plugins/cellular//CustomApnEditor.qml:181 |
2480 | 860 | msgid "MMSC" | 860 | msgid "MMSC" |
2482 | 861 | msgstr "" | 861 | msgstr "MMSC" |
2483 | 862 | 862 | ||
2484 | 863 | #: ../plugins/cellular//CustomApnEditor.qml:191 | 863 | #: ../plugins/cellular//CustomApnEditor.qml:191 |
2485 | 864 | msgid "Proxy" | 864 | msgid "Proxy" |
2487 | 865 | msgstr "" | 865 | msgstr "Proxy" |
2488 | 866 | 866 | ||
2489 | 867 | #: ../plugins/cellular//CustomApnEditor.qml:213 | 867 | #: ../plugins/cellular//CustomApnEditor.qml:213 |
2490 | 868 | msgid "Username" | 868 | msgid "Username" |
2492 | 869 | msgstr "" | 869 | msgstr "Felhasználónév" |
2493 | 870 | 870 | ||
2494 | 871 | #: ../plugins/cellular//CustomApnEditor.qml:264 | 871 | #: ../plugins/cellular//CustomApnEditor.qml:264 |
2495 | 872 | msgid "Save" | 872 | msgid "Save" |
2497 | 873 | msgstr "" | 873 | msgstr "Mentés" |
2498 | 874 | 874 | ||
2499 | 875 | #: ../plugins/cellular//CustomApnEditor.qml:264 | 875 | #: ../plugins/cellular//CustomApnEditor.qml:264 |
2500 | 876 | msgid "Activate" | 876 | msgid "Activate" |
2502 | 877 | msgstr "" | 877 | msgstr "Aktiválás" |
2503 | 878 | 878 | ||
2504 | 879 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching | 879 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching |
2505 | 880 | #: ../plugins/cellular//PageComponent.qml:32 | 880 | #: ../plugins/cellular//PageComponent.qml:32 |
2506 | @@ -1773,7 +1773,7 @@ | |||
2507 | 1773 | 1773 | ||
2508 | 1774 | #: ../plugins/system-update//PageComponent.qml:152 | 1774 | #: ../plugins/system-update//PageComponent.qml:152 |
2509 | 1775 | msgid "Installation failed" | 1775 | msgid "Installation failed" |
2511 | 1776 | msgstr "" | 1776 | msgstr "A telepítés meghiúsult" |
2512 | 1777 | 1777 | ||
2513 | 1778 | #: ../plugins/system-update//PageComponent.qml:156 | 1778 | #: ../plugins/system-update//PageComponent.qml:156 |
2514 | 1779 | #: ../plugins/cellular//Components//SimEditor.qml:200 | 1779 | #: ../plugins/cellular//Components//SimEditor.qml:200 |
2515 | @@ -1787,7 +1787,7 @@ | |||
2516 | 1787 | #: ../plugins/system-update//PageComponent.qml:235 | 1787 | #: ../plugins/system-update//PageComponent.qml:235 |
2517 | 1788 | #: ../plugins/system-update//PageComponent.qml:241 | 1788 | #: ../plugins/system-update//PageComponent.qml:241 |
2518 | 1789 | msgid "Sorry, the system update failed." | 1789 | msgid "Sorry, the system update failed." |
2520 | 1790 | msgstr "" | 1790 | msgstr "Sajnáljuk, a rendszer frissítés meghiúsult." |
2521 | 1791 | 1791 | ||
2522 | 1792 | #: ../plugins/system-update//PageComponent.qml:254 | 1792 | #: ../plugins/system-update//PageComponent.qml:254 |
2523 | 1793 | msgid "Restarting…" | 1793 | msgid "Restarting…" |
2524 | @@ -1799,7 +1799,7 @@ | |||
2525 | 1799 | 1799 | ||
2526 | 1800 | #: ../plugins/system-update//PageComponent.qml:298 | 1800 | #: ../plugins/system-update//PageComponent.qml:298 |
2527 | 1801 | msgid "Connect to the Internet to check for updates" | 1801 | msgid "Connect to the Internet to check for updates" |
2529 | 1802 | msgstr "" | 1802 | msgstr "Csatlakozás az internethez a frissítések ellenőrzéséhez" |
2530 | 1803 | 1803 | ||
2531 | 1804 | #: ../plugins/system-update//PageComponent.qml:313 | 1804 | #: ../plugins/system-update//PageComponent.qml:313 |
2532 | 1805 | #: ../plugins/system-update//PageComponent.qml:471 | 1805 | #: ../plugins/system-update//PageComponent.qml:471 |
2533 | @@ -2116,7 +2116,7 @@ | |||
2534 | 2116 | #: ../wizard/qml/Pages//passwd-confirm.qml:51 | 2116 | #: ../wizard/qml/Pages//passwd-confirm.qml:51 |
2535 | 2117 | #: ../wizard/qml/Pages//passwd-confirm.qml:52 | 2117 | #: ../wizard/qml/Pages//passwd-confirm.qml:52 |
2536 | 2118 | msgid "Please try again." | 2118 | msgid "Please try again." |
2538 | 2119 | msgstr "Kérem próbálja újra." | 2119 | msgstr "Próbálja újra." |
2539 | 2120 | 2120 | ||
2540 | 2121 | #: ../wizard/qml/Pages//passwd-confirm.qml:52 | 2121 | #: ../wizard/qml/Pages//passwd-confirm.qml:52 |
2541 | 2122 | msgid "Sorry, incorrect passcode." | 2122 | msgid "Sorry, incorrect passcode." |
2542 | @@ -2156,11 +2156,15 @@ | |||
2543 | 2156 | "Ubuntu includes location services provided by HERE, enabling apps to " | 2156 | "Ubuntu includes location services provided by HERE, enabling apps to " |
2544 | 2157 | "pinpoint your location." | 2157 | "pinpoint your location." |
2545 | 2158 | msgstr "" | 2158 | msgstr "" |
2546 | 2159 | "Az Ubuntu tartalmazza a HERE helymeghatározó szolgáltatást, amely " | ||
2547 | 2160 | "megállapítja az Ön pontos helyét az alkalmazások számára." | ||
2548 | 2159 | 2161 | ||
2549 | 2160 | #: ../wizard/qml/Pages//50-location.qml:64 | 2162 | #: ../wizard/qml/Pages//50-location.qml:64 |
2550 | 2161 | msgid "" | 2163 | msgid "" |
2551 | 2162 | "Allow apps to use your mobile and Wi-Fi networks to determine your location." | 2164 | "Allow apps to use your mobile and Wi-Fi networks to determine your location." |
2552 | 2163 | msgstr "" | 2165 | msgstr "" |
2553 | 2166 | "A mobilinternet és Wi-Fi használatának engedélyezése az alkalmazások számára " | ||
2554 | 2167 | "az Ön pontos helyzetének megállapításához." | ||
2555 | 2164 | 2168 | ||
2556 | 2165 | #. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it | 2169 | #. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it |
2557 | 2166 | #: ../wizard/qml/Pages//50-location.qml:74 | 2170 | #: ../wizard/qml/Pages//50-location.qml:74 |
2558 | @@ -2168,16 +2172,18 @@ | |||
2559 | 2168 | "Accept the HERE <a href='terms.qml'>terms and conditions</a> to enable these " | 2172 | "Accept the HERE <a href='terms.qml'>terms and conditions</a> to enable these " |
2560 | 2169 | "services." | 2173 | "services." |
2561 | 2170 | msgstr "" | 2174 | msgstr "" |
2562 | 2175 | "A HERE <a href='terms.qml'>felhasználási feltételeinek</a> elfogadása a " | ||
2563 | 2176 | "szolgáltatás engedélyezéséhez." | ||
2564 | 2171 | 2177 | ||
2565 | 2172 | #: ../wizard/qml/Pages//50-location.qml:85 | 2178 | #: ../wizard/qml/Pages//50-location.qml:85 |
2566 | 2173 | msgid "" | 2179 | msgid "" |
2567 | 2174 | "This service can be disabled at any time from the <b>System Settings</b> " | 2180 | "This service can be disabled at any time from the <b>System Settings</b> " |
2568 | 2175 | "menu." | 2181 | "menu." |
2570 | 2176 | msgstr "" | 2182 | msgstr "Ez később bármikor kikapcsolható a <b>Rendszerbeállításokban</b>." |
2571 | 2177 | 2183 | ||
2572 | 2178 | #: ../wizard/qml/Pages//60-reporting.qml:22 | 2184 | #: ../wizard/qml/Pages//60-reporting.qml:22 |
2573 | 2179 | msgid "Improving your experience" | 2185 | msgid "Improving your experience" |
2575 | 2180 | msgstr "" | 2186 | msgstr "Javítson az élményen" |
2576 | 2181 | 2187 | ||
2577 | 2182 | #: ../wizard/qml/Pages//60-reporting.qml:34 | 2188 | #: ../wizard/qml/Pages//60-reporting.qml:34 |
2578 | 2183 | msgid "" | 2189 | msgid "" |
2579 | @@ -2192,6 +2198,8 @@ | |||
2580 | 2192 | "This can be disabled in <b>System Settings</b> under <b>Security & " | 2198 | "This can be disabled in <b>System Settings</b> under <b>Security & " |
2581 | 2193 | "Privacy</b>" | 2199 | "Privacy</b>" |
2582 | 2194 | msgstr "" | 2200 | msgstr "" |
2583 | 2201 | "Ezt kikapcsolhatja a <b>Rendszerbeállítások</b> alatt található <b>Biztonság " | ||
2584 | 2202 | "és adatvédelem</b> alatt" | ||
2585 | 2195 | 2203 | ||
2586 | 2196 | #: ../wizard/qml/Components//Page.qml:89 | 2204 | #: ../wizard/qml/Components//Page.qml:89 |
2587 | 2197 | msgid "Back" | 2205 | msgid "Back" |
2588 | @@ -2964,61 +2972,3 @@ | |||
2589 | 2964 | #: ../push-helper/software_updates_helper.py:151 | 2972 | #: ../push-helper/software_updates_helper.py:151 |
2590 | 2965 | msgid "Tap to open the system updater." | 2973 | msgid "Tap to open the system updater." |
2591 | 2966 | msgstr "Koppintson a rendszerfrissítő megnyitásához." | 2974 | msgstr "Koppintson a rendszerfrissítő megnyitásához." |
2592 | 2967 | |||
2593 | 2968 | #~ msgid "Refresh" | ||
2594 | 2969 | #~ msgstr "Frissítés" | ||
2595 | 2970 | |||
2596 | 2971 | #~ msgid "Searching" | ||
2597 | 2972 | #~ msgstr "Keresés" | ||
2598 | 2973 | |||
2599 | 2974 | #~ msgid "Remove" | ||
2600 | 2975 | #~ msgstr "Eltávolítás" | ||
2601 | 2976 | |||
2602 | 2977 | #~ msgid "settings" | ||
2603 | 2978 | #~ msgstr "beállítások" | ||
2604 | 2979 | |||
2605 | 2980 | #~ msgid "i18n" | ||
2606 | 2981 | #~ msgstr "i18n" | ||
2607 | 2982 | |||
2608 | 2983 | #~ msgid "lang" | ||
2609 | 2984 | #~ msgstr "nyelv" | ||
2610 | 2985 | |||
2611 | 2986 | #~ msgid "Password visible" | ||
2612 | 2987 | #~ msgstr "A jelszó látható" | ||
2613 | 2988 | |||
2614 | 2989 | #~ msgid "Available networks" | ||
2615 | 2990 | #~ msgstr "Elérhető hálózatok" | ||
2616 | 2991 | |||
2617 | 2992 | #~ msgid "Connect to Wi-Fi" | ||
2618 | 2993 | #~ msgstr "Csatlakozás Wi-Fi hálózathoz" | ||
2619 | 2994 | |||
2620 | 2995 | #~ msgid "Those passphrases don't match." | ||
2621 | 2996 | #~ msgstr "A jelmondatok nem egyeznek." | ||
2622 | 2997 | |||
2623 | 2998 | #~ msgid "Passphrase must be at least four characters long." | ||
2624 | 2999 | #~ msgstr "A jelmondatnak legalább négy karakterből kell állnia." | ||
2625 | 3000 | |||
2626 | 3001 | #~ msgid "Set lock security" | ||
2627 | 3002 | #~ msgstr "Zárolás beállítása" | ||
2628 | 3003 | |||
2629 | 3004 | #~ msgid "Other network" | ||
2630 | 3005 | #~ msgstr "Egyéb hálózat" | ||
2631 | 3006 | |||
2632 | 3007 | #~ msgid "Bug reporting" | ||
2633 | 3008 | #~ msgstr "Hibajelentés" | ||
2634 | 3009 | |||
2635 | 3010 | #~ msgid "" | ||
2636 | 3011 | #~ "I have read and agreed to the HERE <a href='terms.qml'>Terms and " | ||
2637 | 3012 | #~ "Conditions</a>" | ||
2638 | 3013 | #~ msgstr "" | ||
2639 | 3014 | #~ "Elolvastam és elfogadom a HERE <a href='terms.qml'>felhasználási " | ||
2640 | 3015 | #~ "feltételeit</a>" | ||
2641 | 3016 | |||
2642 | 3017 | #~ msgid "Use your mobile network and Wi-Fi to determine where you are" | ||
2643 | 3018 | #~ msgstr "Mobilhálózat és Wi-Fi használata az Ön helyzetének megállapításához" | ||
2644 | 3019 | |||
2645 | 3020 | #~ msgid "This can be disabled here:" | ||
2646 | 3021 | #~ msgstr "Ez kikapcsolható itt:" | ||
2647 | 3022 | |||
2648 | 3023 | #~ msgid "System Settings > Security & Privacy" | ||
2649 | 3024 | #~ msgstr "Rendszerbeállítások > Biztonság és adatvédelem" | ||
2650 | 3025 | 2975 | ||
2651 | === modified file 'po/pt.po' | |||
2652 | --- po/pt.po 2014-10-19 07:05:24 +0000 | |||
2653 | +++ po/pt.po 2014-11-07 22:38:03 +0000 | |||
2654 | @@ -8,15 +8,15 @@ | |||
2655 | 8 | "Project-Id-Version: ubuntu-system-settings\n" | 8 | "Project-Id-Version: ubuntu-system-settings\n" |
2656 | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
2657 | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" |
2659 | 11 | "PO-Revision-Date: 2014-10-18 13:31+0000\n" | 11 | "PO-Revision-Date: 2014-11-01 09:36+0000\n" |
2660 | 12 | "Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n" | 12 | "Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n" |
2661 | 13 | "Language-Team: Portuguese <pt@li.org>\n" | 13 | "Language-Team: Portuguese <pt@li.org>\n" |
2662 | 14 | "MIME-Version: 1.0\n" | 14 | "MIME-Version: 1.0\n" |
2663 | 15 | "Content-Type: text/plain; charset=UTF-8\n" | 15 | "Content-Type: text/plain; charset=UTF-8\n" |
2664 | 16 | "Content-Transfer-Encoding: 8bit\n" | 16 | "Content-Transfer-Encoding: 8bit\n" |
2665 | 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" | 17 | "Plural-Forms: nplurals=2; plural=n != 1;\n" |
2668 | 18 | "X-Launchpad-Export-Date: 2014-10-19 07:05+0000\n" | 18 | "X-Launchpad-Export-Date: 2014-11-02 06:14+0000\n" |
2669 | 19 | "X-Generator: Launchpad (build 17196)\n" | 19 | "X-Generator: Launchpad (build 17211)\n" |
2670 | 20 | 20 | ||
2671 | 21 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 | 21 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 |
2672 | 22 | msgid "System Settings" | 22 | msgid "System Settings" |
2673 | @@ -414,7 +414,7 @@ | |||
2674 | 414 | 414 | ||
2675 | 415 | #: ../plugins/reset//PageComponent.qml:87 | 415 | #: ../plugins/reset//PageComponent.qml:87 |
2676 | 416 | msgid "Reset all system settings…" | 416 | msgid "Reset all system settings…" |
2678 | 417 | msgstr "Repor todas as definições de sistema..." | 417 | msgstr "Repor todas as definições do sistema..." |
2679 | 418 | 418 | ||
2680 | 419 | #: ../plugins/reset//PageComponent.qml:101 | 419 | #: ../plugins/reset//PageComponent.qml:101 |
2681 | 420 | msgid "Erase & Reset Everything…" | 420 | msgid "Erase & Reset Everything…" |
2682 | @@ -430,7 +430,7 @@ | |||
2683 | 430 | 430 | ||
2684 | 431 | #: ../plugins/reset//ResetAllSettings.qml:31 | 431 | #: ../plugins/reset//ResetAllSettings.qml:31 |
2685 | 432 | msgid "Reset all system settings" | 432 | msgid "Reset all system settings" |
2687 | 433 | msgstr "Repor todas as definições de sistema" | 433 | msgstr "Repor todas as definições do sistema" |
2688 | 434 | 434 | ||
2689 | 435 | #: ../plugins/reset//ResetLauncherHome.qml:40 | 435 | #: ../plugins/reset//ResetLauncherHome.qml:40 |
2690 | 436 | msgid "The Launcher will be returned to its original contents." | 436 | msgid "The Launcher will be returned to its original contents." |
2691 | @@ -1753,12 +1753,12 @@ | |||
2692 | 1753 | #: ../plugins/system-update//PageComponent.qml:118 | 1753 | #: ../plugins/system-update//PageComponent.qml:118 |
2693 | 1754 | msgid "The phone needs to restart to install the system update." | 1754 | msgid "The phone needs to restart to install the system update." |
2694 | 1755 | msgstr "" | 1755 | msgstr "" |
2696 | 1756 | "O telefone tem de reiniciar para instalar as atualizações de sistema." | 1756 | "O telemóvel tem de reiniciar para instalar as atualizações do sistema." |
2697 | 1757 | 1757 | ||
2698 | 1758 | #: ../plugins/system-update//PageComponent.qml:118 | 1758 | #: ../plugins/system-update//PageComponent.qml:118 |
2699 | 1759 | msgid "Connect the phone to power before installing the system update." | 1759 | msgid "Connect the phone to power before installing the system update." |
2700 | 1760 | msgstr "" | 1760 | msgstr "" |
2702 | 1761 | "Ligue o telemóvel à energia antes de instalar as atualizações de sistema." | 1761 | "Ligue o telemóvel à energia antes de instalar as atualizações do sistema." |
2703 | 1762 | 1762 | ||
2704 | 1763 | #: ../plugins/system-update//PageComponent.qml:121 | 1763 | #: ../plugins/system-update//PageComponent.qml:121 |
2705 | 1764 | msgid "Install & Restart" | 1764 | msgid "Install & Restart" |
2706 | @@ -1788,7 +1788,7 @@ | |||
2707 | 1788 | #: ../plugins/system-update//PageComponent.qml:235 | 1788 | #: ../plugins/system-update//PageComponent.qml:235 |
2708 | 1789 | #: ../plugins/system-update//PageComponent.qml:241 | 1789 | #: ../plugins/system-update//PageComponent.qml:241 |
2709 | 1790 | msgid "Sorry, the system update failed." | 1790 | msgid "Sorry, the system update failed." |
2711 | 1791 | msgstr "Desculpe, a atualização de sistema falhou." | 1791 | msgstr "Desculpe, a atualização do sistema falhou." |
2712 | 1792 | 1792 | ||
2713 | 1793 | #: ../plugins/system-update//PageComponent.qml:254 | 1793 | #: ../plugins/system-update//PageComponent.qml:254 |
2714 | 1794 | msgid "Restarting…" | 1794 | msgid "Restarting…" |
2715 | @@ -2966,47 +2966,8 @@ | |||
2716 | 2966 | 2966 | ||
2717 | 2967 | #: ../push-helper/software_updates_helper.py:150 | 2967 | #: ../push-helper/software_updates_helper.py:150 |
2718 | 2968 | msgid "There's an updated system image." | 2968 | msgid "There's an updated system image." |
2720 | 2969 | msgstr "Há uma nova imagem de sistema." | 2969 | msgstr "Há uma nova imagem do sistema." |
2721 | 2970 | 2970 | ||
2722 | 2971 | #: ../push-helper/software_updates_helper.py:151 | 2971 | #: ../push-helper/software_updates_helper.py:151 |
2723 | 2972 | msgid "Tap to open the system updater." | 2972 | msgid "Tap to open the system updater." |
2764 | 2973 | msgstr "Carregue para abrir o atualizador de sistema." | 2973 | msgstr "Carregue para abrir o atualizador do sistema." |
2725 | 2974 | |||
2726 | 2975 | #~ msgid "Other network" | ||
2727 | 2976 | #~ msgstr "Outra rede" | ||
2728 | 2977 | |||
2729 | 2978 | #~ msgid "Remove" | ||
2730 | 2979 | #~ msgstr "Remover" | ||
2731 | 2980 | |||
2732 | 2981 | #~ msgid "Searching" | ||
2733 | 2982 | #~ msgstr "A procurar" | ||
2734 | 2983 | |||
2735 | 2984 | #~ msgid "Available networks" | ||
2736 | 2985 | #~ msgstr "Redes disponíveis" | ||
2737 | 2986 | |||
2738 | 2987 | #~ msgid "Refresh" | ||
2739 | 2988 | #~ msgstr "Atualizar" | ||
2740 | 2989 | |||
2741 | 2990 | #~ msgid "settings" | ||
2742 | 2991 | #~ msgstr "definições" | ||
2743 | 2992 | |||
2744 | 2993 | #~ msgid "i18n" | ||
2745 | 2994 | #~ msgstr "i18n" | ||
2746 | 2995 | |||
2747 | 2996 | #~ msgid "lang" | ||
2748 | 2997 | #~ msgstr "idioma" | ||
2749 | 2998 | |||
2750 | 2999 | #~ msgid "Password visible" | ||
2751 | 3000 | #~ msgstr "Palavra-passe visível" | ||
2752 | 3001 | |||
2753 | 3002 | #~ msgid "Connect to Wi-Fi" | ||
2754 | 3003 | #~ msgstr "Ligar a Wi-Fi" | ||
2755 | 3004 | |||
2756 | 3005 | #~ msgid "Set lock security" | ||
2757 | 3006 | #~ msgstr "Definir a segurança de bloqueio" | ||
2758 | 3007 | |||
2759 | 3008 | #~ msgid "Those passphrases don't match." | ||
2760 | 3009 | #~ msgstr "As frase-senha não correspondem." | ||
2761 | 3010 | |||
2762 | 3011 | #~ msgid "Passphrase must be at least four characters long." | ||
2763 | 3012 | #~ msgstr "A frase-senha deve ter pelo menos quatro caracteres." | ||
2765 | 3013 | 2974 | ||
2766 | === modified file 'po/ru.po' | |||
2767 | --- po/ru.po 2014-10-24 06:39:04 +0000 | |||
2768 | +++ po/ru.po 2014-11-07 22:38:03 +0000 | |||
2769 | @@ -8,16 +8,21 @@ | |||
2770 | 8 | "Project-Id-Version: ubuntu-system-settings\n" | 8 | "Project-Id-Version: ubuntu-system-settings\n" |
2771 | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" | 9 | "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" |
2772 | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" | 10 | "POT-Creation-Date: 2014-10-16 20:04-0600\n" |
2775 | 11 | "PO-Revision-Date: 2014-10-22 05:38+0000\n" | 11 | "PO-Revision-Date: 2014-10-30 09:09+0000\n" |
2776 | 12 | "Last-Translator: CSRedRat <Unknown>\n" | 12 | "Last-Translator: ☠Jay ZDLin☠ <Unknown>\n" |
2777 | 13 | "Language-Team: Russian <ru@li.org>\n" | 13 | "Language-Team: Russian <ru@li.org>\n" |
2778 | 14 | "MIME-Version: 1.0\n" | 14 | "MIME-Version: 1.0\n" |
2779 | 15 | "Content-Type: text/plain; charset=UTF-8\n" | 15 | "Content-Type: text/plain; charset=UTF-8\n" |
2780 | 16 | "Content-Transfer-Encoding: 8bit\n" | 16 | "Content-Transfer-Encoding: 8bit\n" |
2781 | 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 && " |
2782 | 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" |
2783 | 19 | <<<<<<< TREE | ||
2784 | 19 | "X-Launchpad-Export-Date: 2014-10-24 06:39+0000\n" | 20 | "X-Launchpad-Export-Date: 2014-10-24 06:39+0000\n" |
2785 | 20 | "X-Generator: Launchpad (build 17203)\n" | 21 | "X-Generator: Launchpad (build 17203)\n" |
2786 | 22 | ======= | ||
2787 | 23 | "X-Launchpad-Export-Date: 2014-10-31 06:43+0000\n" | ||
2788 | 24 | "X-Generator: Launchpad (build 17211)\n" | ||
2789 | 25 | >>>>>>> MERGE-SOURCE | ||
2790 | 21 | 26 | ||
2791 | 22 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 | 27 | #: ubuntu-system-settings.desktop.in.in.h:1 ../src/qml/MainWindow.qml:112 |
2792 | 23 | msgid "System Settings" | 28 | msgid "System Settings" |
2793 | @@ -137,7 +142,7 @@ | |||
2794 | 137 | 142 | ||
2795 | 138 | #: ../plugins/wifi//Common.qml:50 | 143 | #: ../plugins/wifi//Common.qml:50 |
2796 | 139 | msgid "Your authentication details were incorrect" | 144 | msgid "Your authentication details were incorrect" |
2798 | 140 | msgstr "" | 145 | msgstr "Некорректные данные аутентификации" |
2799 | 141 | 146 | ||
2800 | 142 | #: ../plugins/wifi//Common.qml:52 | 147 | #: ../plugins/wifi//Common.qml:52 |
2801 | 143 | msgid "802.1X supplicant disconnected" | 148 | msgid "802.1X supplicant disconnected" |
2802 | @@ -798,7 +803,7 @@ | |||
2803 | 798 | 803 | ||
2804 | 799 | #: ../plugins/cellular//PageChooseCarrier.qml:196 | 804 | #: ../plugins/cellular//PageChooseCarrier.qml:196 |
2805 | 800 | msgid "Searching for carriers…" | 805 | msgid "Searching for carriers…" |
2807 | 801 | msgstr "" | 806 | msgstr "Поиск оператора..." |
2808 | 802 | 807 | ||
2809 | 803 | #: ../plugins/cellular//PageChooseCarrier.qml:229 | 808 | #: ../plugins/cellular//PageChooseCarrier.qml:229 |
2810 | 804 | #: ../plugins/cellular//PageChooseApn.qml:31 | 809 | #: ../plugins/cellular//PageChooseApn.qml:31 |
2811 | @@ -808,7 +813,7 @@ | |||
2812 | 808 | 813 | ||
2813 | 809 | #: ../plugins/cellular//PageChooseApn.qml:372 | 814 | #: ../plugins/cellular//PageChooseApn.qml:372 |
2814 | 810 | msgid "Internet APN:" | 815 | msgid "Internet APN:" |
2816 | 811 | msgstr "" | 816 | msgstr "Интернет APN:" |
2817 | 812 | 817 | ||
2818 | 813 | #: ../plugins/cellular//PageChooseApn.qml:449 | 818 | #: ../plugins/cellular//PageChooseApn.qml:449 |
2819 | 814 | msgid "Custom Internet APN…" | 819 | msgid "Custom Internet APN…" |
2820 | @@ -816,7 +821,7 @@ | |||
2821 | 816 | 821 | ||
2822 | 817 | #: ../plugins/cellular//PageChooseApn.qml:460 | 822 | #: ../plugins/cellular//PageChooseApn.qml:460 |
2823 | 818 | msgid "MMS APN:" | 823 | msgid "MMS APN:" |
2825 | 819 | msgstr "" | 824 | msgstr "MMS APN:" |
2826 | 820 | 825 | ||
2827 | 821 | #: ../plugins/cellular//PageChooseApn.qml:485 | 826 | #: ../plugins/cellular//PageChooseApn.qml:485 |
2828 | 822 | #: ../plugins/cellular//CustomApnEditor.qml:143 | 827 | #: ../plugins/cellular//CustomApnEditor.qml:143 |
2829 | @@ -829,15 +834,15 @@ | |||
2830 | 829 | 834 | ||
2831 | 830 | #: ../plugins/cellular//PageChooseApn.qml:591 | 835 | #: ../plugins/cellular//PageChooseApn.qml:591 |
2832 | 831 | msgid "Reset APN Settings" | 836 | msgid "Reset APN Settings" |
2834 | 832 | msgstr "" | 837 | msgstr "Сброс настроек APN" |
2835 | 833 | 838 | ||
2836 | 834 | #: ../plugins/cellular//PageChooseApn.qml:592 | 839 | #: ../plugins/cellular//PageChooseApn.qml:592 |
2837 | 835 | msgid "Are you sure that you want to Reset APN Settings?" | 840 | msgid "Are you sure that you want to Reset APN Settings?" |
2839 | 836 | msgstr "" | 841 | msgstr "Сбросить настройки APN?" |
2840 | 837 | 842 | ||
2841 | 838 | #: ../plugins/cellular//PageChooseApn.qml:598 | 843 | #: ../plugins/cellular//PageChooseApn.qml:598 |
2842 | 839 | msgid "Reset" | 844 | msgid "Reset" |
2844 | 840 | msgstr "" | 845 | msgstr "Сбросить" |
2845 | 841 | 846 | ||
2846 | 842 | #: ../plugins/cellular//PageChooseCarriers.qml:27 | 847 | #: ../plugins/cellular//PageChooseCarriers.qml:27 |
2847 | 843 | #: ../plugins/cellular//Components//MultiSim.qml:68 | 848 | #: ../plugins/cellular//Components//MultiSim.qml:68 |
2848 | @@ -846,11 +851,11 @@ | |||
2849 | 846 | 851 | ||
2850 | 847 | #: ../plugins/cellular//CustomApnEditor.qml:42 | 852 | #: ../plugins/cellular//CustomApnEditor.qml:42 |
2851 | 848 | msgid "Internet" | 853 | msgid "Internet" |
2853 | 849 | msgstr "" | 854 | msgstr "Интернет" |
2854 | 850 | 855 | ||
2855 | 851 | #: ../plugins/cellular//CustomApnEditor.qml:42 | 856 | #: ../plugins/cellular//CustomApnEditor.qml:42 |
2856 | 852 | msgid "MMS" | 857 | msgid "MMS" |
2858 | 853 | msgstr "" | 858 | msgstr "MMS" |
2859 | 854 | 859 | ||
2860 | 855 | #. TRANSLATORS: %1 is either i18n.tr("Internet") or i18n.tr("MMS") | 860 | #. TRANSLATORS: %1 is either i18n.tr("Internet") or i18n.tr("MMS") |
2861 | 856 | #: ../plugins/cellular//CustomApnEditor.qml:67 | 861 | #: ../plugins/cellular//CustomApnEditor.qml:67 |
2862 | @@ -862,7 +867,7 @@ | |||
2863 | 862 | #: ../plugins/cellular//CustomApnEditor.qml:171 | 867 | #: ../plugins/cellular//CustomApnEditor.qml:171 |
2864 | 863 | #, qt-format | 868 | #, qt-format |
2865 | 864 | msgid "%1 APN" | 869 | msgid "%1 APN" |
2867 | 865 | msgstr "" | 870 | msgstr "%1 APN" |
2868 | 866 | 871 | ||
2869 | 867 | #: ../plugins/cellular//CustomApnEditor.qml:181 | 872 | #: ../plugins/cellular//CustomApnEditor.qml:181 |
2870 | 868 | msgid "MMSC" | 873 | msgid "MMSC" |
2871 | @@ -870,19 +875,19 @@ | |||
2872 | 870 | 875 | ||
2873 | 871 | #: ../plugins/cellular//CustomApnEditor.qml:191 | 876 | #: ../plugins/cellular//CustomApnEditor.qml:191 |
2874 | 872 | msgid "Proxy" | 877 | msgid "Proxy" |
2876 | 873 | msgstr "" | 878 | msgstr "Прокси" |
2877 | 874 | 879 | ||
2878 | 875 | #: ../plugins/cellular//CustomApnEditor.qml:213 | 880 | #: ../plugins/cellular//CustomApnEditor.qml:213 |
2879 | 876 | msgid "Username" | 881 | msgid "Username" |
2881 | 877 | msgstr "" | 882 | msgstr "Имя пользователя" |
2882 | 878 | 883 | ||
2883 | 879 | #: ../plugins/cellular//CustomApnEditor.qml:264 | 884 | #: ../plugins/cellular//CustomApnEditor.qml:264 |
2884 | 880 | msgid "Save" | 885 | msgid "Save" |
2886 | 881 | msgstr "" | 886 | msgstr "Сохранить" |
2887 | 882 | 887 | ||
2888 | 883 | #: ../plugins/cellular//CustomApnEditor.qml:264 | 888 | #: ../plugins/cellular//CustomApnEditor.qml:264 |
2889 | 884 | msgid "Activate" | 889 | msgid "Activate" |
2891 | 885 | msgstr "" | 890 | msgstr "Включить" |
2892 | 886 | 891 | ||
2893 | 887 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching | 892 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching |
2894 | 888 | #: ../plugins/cellular//PageComponent.qml:32 | 893 | #: ../plugins/cellular//PageComponent.qml:32 |
2895 | @@ -952,7 +957,7 @@ | |||
2896 | 952 | #: ../plugins/security-privacy//LockSecurity.qml:96 | 957 | #: ../plugins/security-privacy//LockSecurity.qml:96 |
2897 | 953 | #: ../plugins/security-privacy//LockSecurity.qml:384 | 958 | #: ../plugins/security-privacy//LockSecurity.qml:384 |
2898 | 954 | msgid "Change passcode…" | 959 | msgid "Change passcode…" |
2900 | 955 | msgstr "" | 960 | msgstr "Изменение секретного кода..." |
2901 | 956 | 961 | ||
2902 | 957 | #: ../plugins/security-privacy//LockSecurity.qml:98 | 962 | #: ../plugins/security-privacy//LockSecurity.qml:98 |
2903 | 958 | #: ../plugins/security-privacy//LockSecurity.qml:385 | 963 | #: ../plugins/security-privacy//LockSecurity.qml:385 |
2904 | @@ -965,7 +970,7 @@ | |||
2905 | 965 | 970 | ||
2906 | 966 | #: ../plugins/security-privacy//LockSecurity.qml:107 | 971 | #: ../plugins/security-privacy//LockSecurity.qml:107 |
2907 | 967 | msgid "Switch to passcode" | 972 | msgid "Switch to passcode" |
2909 | 968 | msgstr "" | 973 | msgstr "Перейти на код" |
2910 | 969 | 974 | ||
2911 | 970 | #: ../plugins/security-privacy//LockSecurity.qml:109 | 975 | #: ../plugins/security-privacy//LockSecurity.qml:109 |
2912 | 971 | msgid "Switch to passphrase" | 976 | msgid "Switch to passphrase" |
2913 | @@ -973,7 +978,7 @@ | |||
2914 | 973 | 978 | ||
2915 | 974 | #: ../plugins/security-privacy//LockSecurity.qml:118 | 979 | #: ../plugins/security-privacy//LockSecurity.qml:118 |
2916 | 975 | msgid "Existing passcode" | 980 | msgid "Existing passcode" |
2918 | 976 | msgstr "" | 981 | msgstr "Существующий код" |
2919 | 977 | 982 | ||
2920 | 978 | #: ../plugins/security-privacy//LockSecurity.qml:120 | 983 | #: ../plugins/security-privacy//LockSecurity.qml:120 |
2921 | 979 | msgid "Existing passphrase" | 984 | msgid "Existing passphrase" |
2922 | @@ -981,7 +986,7 @@ | |||
2923 | 981 | 986 | ||
2924 | 982 | #: ../plugins/security-privacy//LockSecurity.qml:174 | 987 | #: ../plugins/security-privacy//LockSecurity.qml:174 |
2925 | 983 | msgid "Choose passcode" | 988 | msgid "Choose passcode" |
2927 | 984 | msgstr "" | 989 | msgstr "Выбрать код" |
2928 | 985 | 990 | ||
2929 | 986 | #: ../plugins/security-privacy//LockSecurity.qml:176 | 991 | #: ../plugins/security-privacy//LockSecurity.qml:176 |
2930 | 987 | msgid "Choose passphrase" | 992 | msgid "Choose passphrase" |
2931 | @@ -990,7 +995,7 @@ | |||
2932 | 990 | #: ../plugins/security-privacy//LockSecurity.qml:220 | 995 | #: ../plugins/security-privacy//LockSecurity.qml:220 |
2933 | 991 | #: ../wizard/qml/Pages//passwd-confirm.qml:48 | 996 | #: ../wizard/qml/Pages//passwd-confirm.qml:48 |
2934 | 992 | msgid "Confirm passcode" | 997 | msgid "Confirm passcode" |
2936 | 993 | msgstr "" | 998 | msgstr "Подтвердить код" |
2937 | 994 | 999 | ||
2938 | 995 | #: ../plugins/security-privacy//LockSecurity.qml:222 | 1000 | #: ../plugins/security-privacy//LockSecurity.qml:222 |
2939 | 996 | #: ../wizard/qml/Pages//passwd-confirm.qml:47 | 1001 | #: ../wizard/qml/Pages//passwd-confirm.qml:47 |
2940 | @@ -999,7 +1004,7 @@ | |||
2941 | 999 | 1004 | ||
2942 | 1000 | #: ../plugins/security-privacy//LockSecurity.qml:265 | 1005 | #: ../plugins/security-privacy//LockSecurity.qml:265 |
2943 | 1001 | msgid "Those passcodes don't match. Try again." | 1006 | msgid "Those passcodes don't match. Try again." |
2945 | 1002 | msgstr "" | 1007 | msgstr "Коды не совпадают. Попробуйте снова." |
2946 | 1003 | 1008 | ||
2947 | 1004 | #: ../plugins/security-privacy//LockSecurity.qml:268 | 1009 | #: ../plugins/security-privacy//LockSecurity.qml:268 |
2948 | 1005 | msgid "Those passphrases don't match. Try again." | 1010 | msgid "Those passphrases don't match. Try again." |
2949 | @@ -1019,7 +1024,7 @@ | |||
2950 | 1019 | 1024 | ||
2951 | 1020 | #: ../plugins/security-privacy//LockSecurity.qml:349 | 1025 | #: ../plugins/security-privacy//LockSecurity.qml:349 |
2952 | 1021 | msgid "4-digit passcode" | 1026 | msgid "4-digit passcode" |
2954 | 1022 | msgstr "" | 1027 | msgstr "4-значный код" |
2955 | 1023 | 1028 | ||
2956 | 1024 | #: ../plugins/security-privacy//LockSecurity.qml:350 | 1029 | #: ../plugins/security-privacy//LockSecurity.qml:350 |
2957 | 1025 | #: ../plugins/security-privacy//PhoneLocking.qml:47 | 1030 | #: ../plugins/security-privacy//PhoneLocking.qml:47 |
2958 | @@ -1033,7 +1038,7 @@ | |||
2959 | 1033 | 1038 | ||
2960 | 1034 | #: ../plugins/security-privacy//LockSecurity.qml:352 | 1039 | #: ../plugins/security-privacy//LockSecurity.qml:352 |
2961 | 1035 | msgid "4-digit passcode…" | 1040 | msgid "4-digit passcode…" |
2963 | 1036 | msgstr "" | 1041 | msgstr "4-значный код..." |
2964 | 1037 | 1042 | ||
2965 | 1038 | #: ../plugins/security-privacy//LockSecurity.qml:353 | 1043 | #: ../plugins/security-privacy//LockSecurity.qml:353 |
2966 | 1039 | msgid "Passphrase…" | 1044 | msgid "Passphrase…" |
2967 | @@ -1053,8 +1058,9 @@ | |||
2968 | 1053 | #, qt-format | 1058 | #, qt-format |
2969 | 1054 | msgid "Incorrect PIN. %1 attempt remaining." | 1059 | msgid "Incorrect PIN. %1 attempt remaining." |
2970 | 1055 | msgid_plural "Incorrect PIN. %1 attempts remaining." | 1060 | msgid_plural "Incorrect PIN. %1 attempts remaining." |
2973 | 1056 | msgstr[0] "" | 1061 | msgstr[0] "Неверный ПИН. Осталась %1 попытка." |
2974 | 1057 | msgstr[1] "" | 1062 | msgstr[1] "Неверный ПИН. Осталось %1 попытки." |
2975 | 1063 | msgstr[2] "Неверный ПИН. Осталось %1 попыток." | ||
2976 | 1058 | 1064 | ||
2977 | 1059 | #: ../plugins/security-privacy//SimPin.qml:81 | 1065 | #: ../plugins/security-privacy//SimPin.qml:81 |
2978 | 1060 | msgid "Current PIN:" | 1066 | msgid "Current PIN:" |
2979 | @@ -1064,8 +1070,9 @@ | |||
2980 | 1064 | #, qt-format | 1070 | #, qt-format |
2981 | 1065 | msgid "%1 attempt allowed." | 1071 | msgid "%1 attempt allowed." |
2982 | 1066 | msgid_plural "%1 attempts allowed." | 1072 | msgid_plural "%1 attempts allowed." |
2985 | 1067 | msgstr[0] "" | 1073 | msgstr[0] "Допускается %1 попытка." |
2986 | 1068 | msgstr[1] "" | 1074 | msgstr[1] "Допускается %1 попытки." |
2987 | 1075 | msgstr[2] "Допускается %1 попыток." | ||
2988 | 1069 | 1076 | ||
2989 | 1070 | #: ../plugins/security-privacy//SimPin.qml:107 | 1077 | #: ../plugins/security-privacy//SimPin.qml:107 |
2990 | 1071 | msgid "Choose new PIN:" | 1078 | msgid "Choose new PIN:" |
2991 | @@ -1135,7 +1142,7 @@ | |||
2992 | 1135 | #: ../plugins/security-privacy//PhoneLocking.qml:46 | 1142 | #: ../plugins/security-privacy//PhoneLocking.qml:46 |
2993 | 1136 | #: ../wizard/qml/Pages//30-passwd-type.qml:95 | 1143 | #: ../wizard/qml/Pages//30-passwd-type.qml:95 |
2994 | 1137 | msgid "Passcode" | 1144 | msgid "Passcode" |
2996 | 1138 | msgstr "" | 1145 | msgstr "Секретный код" |
2997 | 1139 | 1146 | ||
2998 | 1140 | #. TRANSLATORS: %1 is the number of minutes | 1147 | #. TRANSLATORS: %1 is the number of minutes |
2999 | 1141 | #: ../plugins/security-privacy//PhoneLocking.qml:75 | 1148 | #: ../plugins/security-privacy//PhoneLocking.qml:75 |
3000 | @@ -1153,11 +1160,11 @@ | |||
3001 | 1153 | 1160 | ||
3002 | 1154 | #: ../plugins/security-privacy//PhoneLocking.qml:106 | 1161 | #: ../plugins/security-privacy//PhoneLocking.qml:106 |
3003 | 1155 | msgid "When locked, allow:" | 1162 | msgid "When locked, allow:" |
3005 | 1156 | msgstr "" | 1163 | msgstr "Разрешить на заблокированном:" |
3006 | 1157 | 1164 | ||
3007 | 1158 | #: ../plugins/security-privacy//PhoneLocking.qml:110 | 1165 | #: ../plugins/security-privacy//PhoneLocking.qml:110 |
3008 | 1159 | msgid "Launcher" | 1166 | msgid "Launcher" |
3010 | 1160 | msgstr "" | 1167 | msgstr "Панель запуска" |
3011 | 1161 | 1168 | ||
3012 | 1162 | #: ../plugins/security-privacy//PhoneLocking.qml:120 | 1169 | #: ../plugins/security-privacy//PhoneLocking.qml:120 |
3013 | 1163 | msgid "Notifications and quick settings" | 1170 | msgid "Notifications and quick settings" |
3014 | @@ -1779,7 +1786,7 @@ | |||
3015 | 1779 | 1786 | ||
3016 | 1780 | #: ../plugins/system-update//PageComponent.qml:152 | 1787 | #: ../plugins/system-update//PageComponent.qml:152 |
3017 | 1781 | msgid "Installation failed" | 1788 | msgid "Installation failed" |
3019 | 1782 | msgstr "" | 1789 | msgstr "Сбой установки" |
3020 | 1783 | 1790 | ||
3021 | 1784 | #: ../plugins/system-update//PageComponent.qml:156 | 1791 | #: ../plugins/system-update//PageComponent.qml:156 |
3022 | 1785 | #: ../plugins/cellular//Components//SimEditor.qml:200 | 1792 | #: ../plugins/cellular//Components//SimEditor.qml:200 |
3023 | @@ -1793,7 +1800,7 @@ | |||
3024 | 1793 | #: ../plugins/system-update//PageComponent.qml:235 | 1800 | #: ../plugins/system-update//PageComponent.qml:235 |
3025 | 1794 | #: ../plugins/system-update//PageComponent.qml:241 | 1801 | #: ../plugins/system-update//PageComponent.qml:241 |
3026 | 1795 | msgid "Sorry, the system update failed." | 1802 | msgid "Sorry, the system update failed." |
3028 | 1796 | msgstr "" | 1803 | msgstr "К сожалению, не удалось обновить систему." |
3029 | 1797 | 1804 | ||
3030 | 1798 | #: ../plugins/system-update//PageComponent.qml:254 | 1805 | #: ../plugins/system-update//PageComponent.qml:254 |
3031 | 1799 | msgid "Restarting…" | 1806 | msgid "Restarting…" |
3032 | @@ -1805,7 +1812,7 @@ | |||
3033 | 1805 | 1812 | ||
3034 | 1806 | #: ../plugins/system-update//PageComponent.qml:298 | 1813 | #: ../plugins/system-update//PageComponent.qml:298 |
3035 | 1807 | msgid "Connect to the Internet to check for updates" | 1814 | msgid "Connect to the Internet to check for updates" |
3037 | 1808 | msgstr "" | 1815 | msgstr "Подключитесь к интернету, чтобы проверить наличие обновлений" |
3038 | 1809 | 1816 | ||
3039 | 1810 | #: ../plugins/system-update//PageComponent.qml:313 | 1817 | #: ../plugins/system-update//PageComponent.qml:313 |
3040 | 1811 | #: ../plugins/system-update//PageComponent.qml:471 | 1818 | #: ../plugins/system-update//PageComponent.qml:471 |
3041 | @@ -2030,7 +2037,7 @@ | |||
3042 | 2030 | 2037 | ||
3043 | 2031 | #: ../plugins/security-privacy//diagnostics//PageComponent.qml:90 | 2038 | #: ../plugins/security-privacy//diagnostics//PageComponent.qml:90 |
3044 | 2032 | msgid "Includes info about what an app was doing when it failed." | 2039 | msgid "Includes info about what an app was doing when it failed." |
3046 | 2033 | msgstr "" | 2040 | msgstr "Включает информацию о приложении на момент возникновения ошибки." |
3047 | 2034 | 2041 | ||
3048 | 2035 | #: ../src/qml/MainWindow.qml:133 | 2042 | #: ../src/qml/MainWindow.qml:133 |
3049 | 2036 | msgid "Search" | 2043 | msgid "Search" |
3050 | @@ -2046,23 +2053,23 @@ | |||
3051 | 2046 | 2053 | ||
3052 | 2047 | #: ../wizard/qml/Pages//30-passwd-type.qml:72 | 2054 | #: ../wizard/qml/Pages//30-passwd-type.qml:72 |
3053 | 2048 | msgid "Please select how you’d like to unlock your phone." | 2055 | msgid "Please select how you’d like to unlock your phone." |
3055 | 2049 | msgstr "" | 2056 | msgstr "Выберите способ разблокировки телефона." |
3056 | 2050 | 2057 | ||
3057 | 2051 | #: ../wizard/qml/Pages//30-passwd-type.qml:92 | 2058 | #: ../wizard/qml/Pages//30-passwd-type.qml:92 |
3058 | 2052 | msgid "Swipe" | 2059 | msgid "Swipe" |
3060 | 2053 | msgstr "" | 2060 | msgstr "Смахивание" |
3061 | 2054 | 2061 | ||
3062 | 2055 | #: ../wizard/qml/Pages//30-passwd-type.qml:93 | 2062 | #: ../wizard/qml/Pages//30-passwd-type.qml:93 |
3063 | 2056 | msgid "No security" | 2063 | msgid "No security" |
3065 | 2057 | msgstr "" | 2064 | msgstr "Без пароля" |
3066 | 2058 | 2065 | ||
3067 | 2059 | #: ../wizard/qml/Pages//30-passwd-type.qml:96 | 2066 | #: ../wizard/qml/Pages//30-passwd-type.qml:96 |
3068 | 2060 | msgid "4 numbers" | 2067 | msgid "4 numbers" |
3070 | 2061 | msgstr "" | 2068 | msgstr "4 цифры" |
3071 | 2062 | 2069 | ||
3072 | 2063 | #: ../wizard/qml/Pages//30-passwd-type.qml:99 | 2070 | #: ../wizard/qml/Pages//30-passwd-type.qml:99 |
3073 | 2064 | msgid "Numbers and letters" | 2071 | msgid "Numbers and letters" |
3075 | 2065 | msgstr "" | 2072 | msgstr "Цифры и буквы" |
3076 | 2066 | 2073 | ||
3077 | 2067 | #: ../wizard/qml/Pages//30-passwd-type.qml:112 | 2074 | #: ../wizard/qml/Pages//30-passwd-type.qml:112 |
3078 | 2068 | #: ../wizard/qml/Pages//40-wifi.qml:196 ../wizard/qml/Pages//10-welcome.qml:85 | 2075 | #: ../wizard/qml/Pages//40-wifi.qml:196 ../wizard/qml/Pages//10-welcome.qml:85 |
3079 | @@ -2095,15 +2102,15 @@ | |||
3080 | 2095 | 2102 | ||
3081 | 2096 | #: ../wizard/qml/Pages//31-passwd-set.qml:48 | 2103 | #: ../wizard/qml/Pages//31-passwd-set.qml:48 |
3082 | 2097 | msgid "Enter passphrase" | 2104 | msgid "Enter passphrase" |
3084 | 2098 | msgstr "" | 2105 | msgstr "Введите кодовую фразу" |
3085 | 2099 | 2106 | ||
3086 | 2100 | #: ../wizard/qml/Pages//31-passwd-set.qml:49 | 2107 | #: ../wizard/qml/Pages//31-passwd-set.qml:49 |
3087 | 2101 | msgid "Choose your passcode" | 2108 | msgid "Choose your passcode" |
3089 | 2102 | msgstr "" | 2109 | msgstr "Выберите секретный код" |
3090 | 2103 | 2110 | ||
3091 | 2104 | #: ../wizard/qml/Pages//31-passwd-set.qml:56 | 2111 | #: ../wizard/qml/Pages//31-passwd-set.qml:56 |
3092 | 2105 | msgid "Passphrase must be 4 characters long" | 2112 | msgid "Passphrase must be 4 characters long" |
3094 | 2106 | msgstr "" | 2113 | msgstr "Кодовая фраза должна состоять из 4 символов" |
3095 | 2107 | 2114 | ||
3096 | 2108 | #: ../wizard/qml/Pages//20-sim.qml:23 | 2115 | #: ../wizard/qml/Pages//20-sim.qml:23 |
3097 | 2109 | msgid "Add a SIM card and restart your device" | 2116 | msgid "Add a SIM card and restart your device" |
3098 | @@ -2116,7 +2123,7 @@ | |||
3099 | 2116 | 2123 | ||
3100 | 2117 | #: ../wizard/qml/Pages//passwd-confirm.qml:51 | 2124 | #: ../wizard/qml/Pages//passwd-confirm.qml:51 |
3101 | 2118 | msgid "Sorry, incorrect passphrase." | 2125 | msgid "Sorry, incorrect passphrase." |
3103 | 2119 | msgstr "" | 2126 | msgstr "Неверная кодовая фраза." |
3104 | 2120 | 2127 | ||
3105 | 2121 | #: ../wizard/qml/Pages//passwd-confirm.qml:51 | 2128 | #: ../wizard/qml/Pages//passwd-confirm.qml:51 |
3106 | 2122 | #: ../wizard/qml/Pages//passwd-confirm.qml:52 | 2129 | #: ../wizard/qml/Pages//passwd-confirm.qml:52 |
3107 | @@ -2125,7 +2132,7 @@ | |||
3108 | 2125 | 2132 | ||
3109 | 2126 | #: ../wizard/qml/Pages//passwd-confirm.qml:52 | 2133 | #: ../wizard/qml/Pages//passwd-confirm.qml:52 |
3110 | 2127 | msgid "Sorry, incorrect passcode." | 2134 | msgid "Sorry, incorrect passcode." |
3112 | 2128 | msgstr "" | 2135 | msgstr "Неверный секретный код." |
3113 | 2129 | 2136 | ||
3114 | 2130 | #: ../wizard/qml/Pages//80-finished.qml:22 | 2137 | #: ../wizard/qml/Pages//80-finished.qml:22 |
3115 | 2131 | msgid "All done" | 2138 | msgid "All done" |
3116 | @@ -2166,6 +2173,8 @@ | |||
3117 | 2166 | msgid "" | 2173 | msgid "" |
3118 | 2167 | "Allow apps to use your mobile and Wi-Fi networks to determine your location." | 2174 | "Allow apps to use your mobile and Wi-Fi networks to determine your location." |
3119 | 2168 | msgstr "" | 2175 | msgstr "" |
3120 | 2176 | "Разрешить приложениям использовать мобильные и Wi-Fi сети для определения " | ||
3121 | 2177 | "вашего местонахождения." | ||
3122 | 2169 | 2178 | ||
3123 | 2170 | #. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it | 2179 | #. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it |
3124 | 2171 | #: ../wizard/qml/Pages//50-location.qml:74 | 2180 | #: ../wizard/qml/Pages//50-location.qml:74 |
3125 | @@ -2189,12 +2198,16 @@ | |||
3126 | 2189 | "Your phone is set up to automatically report errors to Canonical and its " | 2198 | "Your phone is set up to automatically report errors to Canonical and its " |
3127 | 2190 | "partners, the makers of the operating system." | 2199 | "partners, the makers of the operating system." |
3128 | 2191 | msgstr "" | 2200 | msgstr "" |
3129 | 2201 | "Ваш телефон настроен на автоматическую отправку отчётов об ошибках в " | ||
3130 | 2202 | "компанию Canonical и её партнерам, производителям операционной системы." | ||
3131 | 2192 | 2203 | ||
3132 | 2193 | #: ../wizard/qml/Pages//60-reporting.qml:41 | 2204 | #: ../wizard/qml/Pages//60-reporting.qml:41 |
3133 | 2194 | msgid "" | 2205 | msgid "" |
3134 | 2195 | "This can be disabled in <b>System Settings</b> under <b>Security & " | 2206 | "This can be disabled in <b>System Settings</b> under <b>Security & " |
3135 | 2196 | "Privacy</b>" | 2207 | "Privacy</b>" |
3136 | 2197 | msgstr "" | 2208 | msgstr "" |
3137 | 2209 | "Данную функцию можно отключить, перейдя в <b>Параметры системы</b>, раздел " | ||
3138 | 2210 | "<b>Защита и приватность</b>" | ||
3139 | 2198 | 2211 | ||
3140 | 2199 | #: ../wizard/qml/Components//Page.qml:89 | 2212 | #: ../wizard/qml/Components//Page.qml:89 |
3141 | 2200 | msgid "Back" | 2213 | msgid "Back" |
3142 | @@ -2203,12 +2216,12 @@ | |||
3143 | 2203 | #: ../wizard/qml/Components//StackButton.qml:40 | 2216 | #: ../wizard/qml/Components//StackButton.qml:40 |
3144 | 2204 | #, qt-format | 2217 | #, qt-format |
3145 | 2205 | msgid "〈 %1" | 2218 | msgid "〈 %1" |
3147 | 2206 | msgstr "" | 2219 | msgstr "〈 %1" |
3148 | 2207 | 2220 | ||
3149 | 2208 | #: ../wizard/qml/Components//StackButton.qml:43 | 2221 | #: ../wizard/qml/Components//StackButton.qml:43 |
3150 | 2209 | #, qt-format | 2222 | #, qt-format |
3151 | 2210 | msgid "%1 〉" | 2223 | msgid "%1 〉" |
3153 | 2211 | msgstr "" | 2224 | msgstr "%1 〉" |
3154 | 2212 | 2225 | ||
3155 | 2213 | #. TRANSLATORS: This is a keyword or name for the background plugin which is used while searching | 2226 | #. TRANSLATORS: This is a keyword or name for the background plugin which is used while searching |
3156 | 2214 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:4 | 2227 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:4 |
3157 | @@ -2303,19 +2316,19 @@ | |||
3158 | 2303 | #. TRANSLATORS: This is a keyword or name for the wifi plugin which is used while searching | 2316 | #. TRANSLATORS: This is a keyword or name for the wifi plugin which is used while searching |
3159 | 2304 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:38 | 2317 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:38 |
3160 | 2305 | msgid "hidden" | 2318 | msgid "hidden" |
3162 | 2306 | msgstr "" | 2319 | msgstr "скрытые" |
3163 | 2307 | 2320 | ||
3164 | 2308 | #. TRANSLATORS: This is a keyword or name for the wifi plugin which is used while searching | 2321 | #. TRANSLATORS: This is a keyword or name for the wifi plugin which is used while searching |
3165 | 2309 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:40 | 2322 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:40 |
3166 | 2310 | msgid "ip" | 2323 | msgid "ip" |
3168 | 2311 | msgstr "" | 2324 | msgstr "ip" |
3169 | 2312 | 2325 | ||
3170 | 2313 | #. TRANSLATORS: This is a keyword or name for the wifi plugin which is used while searching | 2326 | #. TRANSLATORS: This is a keyword or name for the wifi plugin which is used while searching |
3171 | 2314 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2327 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3172 | 2315 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:42 | 2328 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:42 |
3173 | 2316 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:294 | 2329 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:294 |
3174 | 2317 | msgid "address" | 2330 | msgid "address" |
3176 | 2318 | msgstr "" | 2331 | msgstr "адрес" |
3177 | 2319 | 2332 | ||
3178 | 2320 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching | 2333 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
3179 | 2321 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2334 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3180 | @@ -2363,22 +2376,22 @@ | |||
3181 | 2363 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching | 2376 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
3182 | 2364 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:60 | 2377 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:60 |
3183 | 2365 | msgid "facebook" | 2378 | msgid "facebook" |
3185 | 2366 | msgstr "" | 2379 | msgstr "facebook" |
3186 | 2367 | 2380 | ||
3187 | 2368 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching | 2381 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
3188 | 2369 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:62 | 2382 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:62 |
3189 | 2370 | msgid "twitter" | 2383 | msgid "twitter" |
3191 | 2371 | msgstr "" | 2384 | msgstr "twitter" |
3192 | 2372 | 2385 | ||
3193 | 2373 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching | 2386 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
3194 | 2374 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:64 | 2387 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:64 |
3195 | 2375 | msgid "flickr" | 2388 | msgid "flickr" |
3197 | 2376 | msgstr "" | 2389 | msgstr "flickr" |
3198 | 2377 | 2390 | ||
3199 | 2378 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching | 2391 | #. TRANSLATORS: This is a keyword or name for the notifications plugin which is used while searching |
3200 | 2379 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:66 | 2392 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:66 |
3201 | 2380 | msgid "gmail" | 2393 | msgid "gmail" |
3203 | 2381 | msgstr "" | 2394 | msgstr "gmail" |
3204 | 2382 | 2395 | ||
3205 | 2383 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching | 2396 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
3206 | 2384 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:70 | 2397 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:70 |
3207 | @@ -2388,7 +2401,7 @@ | |||
3208 | 2388 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching | 2401 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
3209 | 2389 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:72 | 2402 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:72 |
3210 | 2390 | msgid "silent" | 2403 | msgid "silent" |
3212 | 2391 | msgstr "" | 2404 | msgstr "в фоновом режиме" |
3213 | 2392 | 2405 | ||
3214 | 2393 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching | 2406 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
3215 | 2394 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:74 | 2407 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:74 |
3216 | @@ -2417,7 +2430,7 @@ | |||
3217 | 2417 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:82 | 2430 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:82 |
3218 | 2418 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:118 | 2431 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:118 |
3219 | 2419 | msgid "keyboard" | 2432 | msgid "keyboard" |
3221 | 2420 | msgstr "" | 2433 | msgstr "клавиатура" |
3222 | 2421 | 2434 | ||
3223 | 2422 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching | 2435 | #. TRANSLATORS: This is a keyword or name for the sound plugin which is used while searching |
3224 | 2423 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:84 | 2436 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:84 |
3225 | @@ -2527,12 +2540,12 @@ | |||
3226 | 2527 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching | 2540 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching |
3227 | 2528 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:130 | 2541 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:130 |
3228 | 2529 | msgid "punctuation" | 2542 | msgid "punctuation" |
3230 | 2530 | msgstr "" | 2543 | msgstr "пунктуация" |
3231 | 2531 | 2544 | ||
3232 | 2532 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching | 2545 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching |
3233 | 2533 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:132 | 2546 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:132 |
3234 | 2534 | msgid "layout" | 2547 | msgid "layout" |
3236 | 2535 | msgstr "" | 2548 | msgstr "раскладка" |
3237 | 2536 | 2549 | ||
3238 | 2537 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching | 2550 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching |
3239 | 2538 | #. TRANSLATORS: This is a keyword or name for the brightness plugin which is used while searching | 2551 | #. TRANSLATORS: This is a keyword or name for the brightness plugin which is used while searching |
3240 | @@ -2544,12 +2557,12 @@ | |||
3241 | 2544 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching | 2557 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching |
3242 | 2545 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:136 | 2558 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:136 |
3243 | 2546 | msgid "words" | 2559 | msgid "words" |
3245 | 2547 | msgstr "" | 2560 | msgstr "слова" |
3246 | 2548 | 2561 | ||
3247 | 2549 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching | 2562 | #. TRANSLATORS: This is a keyword or name for the language plugin which is used while searching |
3248 | 2550 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:138 | 2563 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:138 |
3249 | 2551 | msgid "vibration" | 2564 | msgid "vibration" |
3251 | 2552 | msgstr "" | 2565 | msgstr "вибро" |
3252 | 2553 | 2566 | ||
3253 | 2554 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching | 2567 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching |
3254 | 2555 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2568 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3255 | @@ -2561,7 +2574,7 @@ | |||
3256 | 2561 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching | 2574 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching |
3257 | 2562 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:144 | 2575 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:144 |
3258 | 2563 | msgid "services" | 2576 | msgid "services" |
3260 | 2564 | msgstr "" | 2577 | msgstr "службы" |
3261 | 2565 | 2578 | ||
3262 | 2566 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching | 2579 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching |
3263 | 2567 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:146 | 2580 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:146 |
3264 | @@ -2571,7 +2584,7 @@ | |||
3265 | 2571 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching | 2584 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching |
3266 | 2572 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:148 | 2585 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:148 |
3267 | 2573 | msgid "waiting" | 2586 | msgid "waiting" |
3269 | 2574 | msgstr "" | 2587 | msgstr "ожидание" |
3270 | 2575 | 2588 | ||
3271 | 2576 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching | 2589 | #. TRANSLATORS: This is a keyword or name for the phone plugin which is used while searching |
3272 | 2577 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:150 | 2590 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:150 |
3273 | @@ -2633,27 +2646,27 @@ | |||
3274 | 2633 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching | 2646 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching |
3275 | 2634 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:184 | 2647 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:184 |
3276 | 2635 | msgid "4g" | 2648 | msgid "4g" |
3278 | 2636 | msgstr "" | 2649 | msgstr "4g" |
3279 | 2637 | 2650 | ||
3280 | 2638 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching | 2651 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching |
3281 | 2639 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:186 | 2652 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:186 |
3282 | 2640 | msgid "3g" | 2653 | msgid "3g" |
3284 | 2641 | msgstr "" | 2654 | msgstr "3g" |
3285 | 2642 | 2655 | ||
3286 | 2643 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching | 2656 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching |
3287 | 2644 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:188 | 2657 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:188 |
3288 | 2645 | msgid "2g" | 2658 | msgid "2g" |
3290 | 2646 | msgstr "" | 2659 | msgstr "2g" |
3291 | 2647 | 2660 | ||
3292 | 2648 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching | 2661 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching |
3293 | 2649 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:190 | 2662 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:190 |
3294 | 2650 | msgid "lte" | 2663 | msgid "lte" |
3296 | 2651 | msgstr "" | 2664 | msgstr "lte" |
3297 | 2652 | 2665 | ||
3298 | 2653 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching | 2666 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching |
3299 | 2654 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:192 | 2667 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:192 |
3300 | 2655 | msgid "apn" | 2668 | msgid "apn" |
3302 | 2656 | msgstr "" | 2669 | msgstr "apn" |
3303 | 2657 | 2670 | ||
3304 | 2658 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching | 2671 | #. TRANSLATORS: This is a keyword or name for the cellular plugin which is used while searching |
3305 | 2659 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:194 | 2672 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:194 |
3306 | @@ -2665,7 +2678,7 @@ | |||
3307 | 2665 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:196 | 2678 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:196 |
3308 | 2666 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:226 | 2679 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:226 |
3309 | 2667 | msgid "sim" | 2680 | msgid "sim" |
3311 | 2668 | msgstr "" | 2681 | msgstr "sim" |
3312 | 2669 | 2682 | ||
3313 | 2670 | #. TRANSLATORS: This is a keyword or name for the example plugin which is used while searching | 2683 | #. TRANSLATORS: This is a keyword or name for the example plugin which is used while searching |
3314 | 2671 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:198 | 2684 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:198 |
3315 | @@ -2710,7 +2723,7 @@ | |||
3316 | 2710 | #. TRANSLATORS: This is a keyword or name for the flight-mode plugin which is used while searching | 2723 | #. TRANSLATORS: This is a keyword or name for the flight-mode plugin which is used while searching |
3317 | 2711 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:214 | 2724 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:214 |
3318 | 2712 | msgid "airplane" | 2725 | msgid "airplane" |
3320 | 2713 | msgstr "" | 2726 | msgstr "автономно" |
3321 | 2714 | 2727 | ||
3322 | 2715 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching | 2728 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching |
3323 | 2716 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:220 | 2729 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:220 |
3324 | @@ -2725,22 +2738,22 @@ | |||
3325 | 2725 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching | 2738 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching |
3326 | 2726 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:228 | 2739 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:228 |
3327 | 2727 | msgid "pin" | 2740 | msgid "pin" |
3329 | 2728 | msgstr "" | 2741 | msgstr "пин" |
3330 | 2729 | 2742 | ||
3331 | 2730 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching | 2743 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching |
3332 | 2731 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:230 | 2744 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:230 |
3333 | 2732 | msgid "code" | 2745 | msgid "code" |
3335 | 2733 | msgstr "" | 2746 | msgstr "код" |
3336 | 2734 | 2747 | ||
3337 | 2735 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching | 2748 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching |
3338 | 2736 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:232 | 2749 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:232 |
3339 | 2737 | msgid "password" | 2750 | msgid "password" |
3341 | 2738 | msgstr "" | 2751 | msgstr "пароль" |
3342 | 2739 | 2752 | ||
3343 | 2740 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching | 2753 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching |
3344 | 2741 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:234 | 2754 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:234 |
3345 | 2742 | msgid "passphrase" | 2755 | msgid "passphrase" |
3347 | 2743 | msgstr "" | 2756 | msgstr "кодовая фраза" |
3348 | 2744 | 2757 | ||
3349 | 2745 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching | 2758 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching |
3350 | 2746 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:236 | 2759 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:236 |
3351 | @@ -2750,7 +2763,7 @@ | |||
3352 | 2750 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching | 2763 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching |
3353 | 2751 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:238 | 2764 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:238 |
3354 | 2752 | msgid "allow" | 2765 | msgid "allow" |
3356 | 2753 | msgstr "" | 2766 | msgstr "разрешить" |
3357 | 2754 | 2767 | ||
3358 | 2755 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching | 2768 | #. TRANSLATORS: This is a keyword or name for the security-privacy plugin which is used while searching |
3359 | 2756 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:240 | 2769 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:240 |
3360 | @@ -2812,7 +2825,7 @@ | |||
3361 | 2812 | #. TRANSLATORS: This is a keyword or name for the bluetooth plugin which is used while searching | 2825 | #. TRANSLATORS: This is a keyword or name for the bluetooth plugin which is used while searching |
3362 | 2813 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:276 | 2826 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:276 |
3363 | 2814 | msgid "stereo" | 2827 | msgid "stereo" |
3365 | 2815 | msgstr "" | 2828 | msgstr "стерео" |
3366 | 2816 | 2829 | ||
3367 | 2817 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2830 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3368 | 2818 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:280 | 2831 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:280 |
3369 | @@ -2832,27 +2845,27 @@ | |||
3370 | 2832 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2845 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3371 | 2833 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:290 | 2846 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:290 |
3372 | 2834 | msgid "imei" | 2847 | msgid "imei" |
3374 | 2835 | msgstr "" | 2848 | msgstr "imei" |
3375 | 2836 | 2849 | ||
3376 | 2837 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2850 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3377 | 2838 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:292 | 2851 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:292 |
3378 | 2839 | msgid "serial" | 2852 | msgid "serial" |
3380 | 2840 | msgstr "" | 2853 | msgstr "серийный номер" |
3381 | 2841 | 2854 | ||
3382 | 2842 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2855 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3383 | 2843 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:296 | 2856 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:296 |
3384 | 2844 | msgid "mac" | 2857 | msgid "mac" |
3386 | 2845 | msgstr "" | 2858 | msgstr "mac" |
3387 | 2846 | 2859 | ||
3388 | 2847 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2860 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3389 | 2848 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:298 | 2861 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:298 |
3390 | 2849 | msgid "licenses" | 2862 | msgid "licenses" |
3392 | 2850 | msgstr "" | 2863 | msgstr "лицензии" |
3393 | 2851 | 2864 | ||
3394 | 2852 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2865 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3395 | 2853 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:300 | 2866 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:300 |
3396 | 2854 | msgid "developer" | 2867 | msgid "developer" |
3398 | 2855 | msgstr "" | 2868 | msgstr "разработчик" |
3399 | 2856 | 2869 | ||
3400 | 2857 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2870 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3401 | 2858 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:304 | 2871 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:304 |
3402 | @@ -2872,7 +2885,7 @@ | |||
3403 | 2872 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2885 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3404 | 2873 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:310 | 2886 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:310 |
3405 | 2874 | msgid "version" | 2887 | msgid "version" |
3407 | 2875 | msgstr "" | 2888 | msgstr "версия" |
3408 | 2876 | 2889 | ||
3409 | 2877 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching | 2890 | #. TRANSLATORS: This is a keyword or name for the about plugin which is used while searching |
3410 | 2878 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:312 | 2891 | #: /home/elopio/workspace/canonical/ubuntu-system-settings/experimental/update-pot/builddir/po/settings.js:312 |
3411 | @@ -2926,11 +2939,11 @@ | |||
3412 | 2926 | 2939 | ||
3413 | 2927 | #: ../plugins/security-privacy//securityprivacy.cpp:318 | 2940 | #: ../plugins/security-privacy//securityprivacy.cpp:318 |
3414 | 2928 | msgid "Incorrect passcode. Try again." | 2941 | msgid "Incorrect passcode. Try again." |
3416 | 2929 | msgstr "" | 2942 | msgstr "Неправильный код. Попробуйте ещё раз." |
3417 | 2930 | 2943 | ||
3418 | 2931 | #: ../plugins/security-privacy//securityprivacy.cpp:320 | 2944 | #: ../plugins/security-privacy//securityprivacy.cpp:320 |
3419 | 2932 | msgid "Incorrect passphrase. Try again." | 2945 | msgid "Incorrect passphrase. Try again." |
3421 | 2933 | msgstr "" | 2946 | msgstr "Неправильная кодовая фраза. Попробуйте ещё раз." |
3422 | 2934 | 2947 | ||
3423 | 2935 | #: ../plugins/security-privacy//securityprivacy.cpp:323 | 2948 | #: ../plugins/security-privacy//securityprivacy.cpp:323 |
3424 | 2936 | msgid "Could not set security mode" | 2949 | msgid "Could not set security mode" |
3425 | @@ -2963,39 +2976,3 @@ | |||
3426 | 2963 | #: ../push-helper/software_updates_helper.py:151 | 2976 | #: ../push-helper/software_updates_helper.py:151 |
3427 | 2964 | msgid "Tap to open the system updater." | 2977 | msgid "Tap to open the system updater." |
3428 | 2965 | msgstr "Нажмите для открытия мастера обновления системы." | 2978 | msgstr "Нажмите для открытия мастера обновления системы." |
3429 | 2966 | |||
3430 | 2967 | #~ msgid "Searching" | ||
3431 | 2968 | #~ msgstr "Поиск" | ||
3432 | 2969 | |||
3433 | 2970 | #~ msgid "Refresh" | ||
3434 | 2971 | #~ msgstr "Обновить" | ||
3435 | 2972 | |||
3436 | 2973 | #~ msgid "Remove" | ||
3437 | 2974 | #~ msgstr "Удалить" | ||
3438 | 2975 | |||
3439 | 2976 | #~ msgid "settings" | ||
3440 | 2977 | #~ msgstr "настройки" | ||
3441 | 2978 | |||
3442 | 2979 | #~ msgid "i18n" | ||
3443 | 2980 | #~ msgstr "i18n" | ||
3444 | 2981 | |||
3445 | 2982 | #~ msgid "lang" | ||
3446 | 2983 | #~ msgstr "язык" | ||
3447 | 2984 | |||
3448 | 2985 | #~ msgid "Password visible" | ||
3449 | 2986 | #~ msgstr "Отображать пароль" | ||
3450 | 2987 | |||
3451 | 2988 | #~ msgid "Other network" | ||
3452 | 2989 | #~ msgstr "Другая сеть" | ||
3453 | 2990 | |||
3454 | 2991 | #~ msgid "Connect to Wi-Fi" | ||
3455 | 2992 | #~ msgstr "Подключиться к Wi-Fi" | ||
3456 | 2993 | |||
3457 | 2994 | #~ msgid "Available networks" | ||
3458 | 2995 | #~ msgstr "Доступные сети" | ||
3459 | 2996 | |||
3460 | 2997 | #~ msgid "Those passphrases don't match." | ||
3461 | 2998 | #~ msgstr "Кодовые фразы не совпадают." | ||
3462 | 2999 | |||
3463 | 3000 | #~ msgid "Passphrase must be at least four characters long." | ||
3464 | 3001 | #~ msgstr "Кодовая фраза должна содержать не менее четырёх символов." | ||
3465 | 3002 | 2979 | ||
3466 | === modified file 'src/CMakeLists.txt' | |||
3467 | --- src/CMakeLists.txt 2014-09-02 15:44:19 +0000 | |||
3468 | +++ src/CMakeLists.txt 2014-11-07 22:38:03 +0000 | |||
3469 | @@ -1,3 +1,5 @@ | |||
3470 | 1 | include_directories(${GLIB_INCLUDE_DIRS}) | ||
3471 | 2 | |||
3472 | 1 | add_definitions(-DI18N_DIRECTORY="${CMAKE_INSTALL_PREFIX}/share/locale") | 3 | add_definitions(-DI18N_DIRECTORY="${CMAKE_INSTALL_PREFIX}/share/locale") |
3473 | 2 | add_definitions(-DI18N_DOMAIN="ubuntu-system-settings") | 4 | add_definitions(-DI18N_DOMAIN="ubuntu-system-settings") |
3474 | 3 | add_definitions(-DPLUGIN_PRIVATE_MODULE_DIR="${PLUGIN_PRIVATE_MODULE_DIR}") | 5 | add_definitions(-DPLUGIN_PRIVATE_MODULE_DIR="${PLUGIN_PRIVATE_MODULE_DIR}") |
3475 | @@ -23,13 +25,14 @@ | |||
3476 | 23 | qml/MainWindow.qml | 25 | qml/MainWindow.qml |
3477 | 24 | qml/UncategorizedItemsView.qml | 26 | qml/UncategorizedItemsView.qml |
3478 | 25 | SystemSettings/ItemPage.qml | 27 | SystemSettings/ItemPage.qml |
3479 | 28 | SystemSettings/SettingsItemTitle.qml | ||
3480 | 26 | ) | 29 | ) |
3481 | 27 | 30 | ||
3482 | 28 | QT5_ADD_RESOURCES(system-settings-resources ui.qrc) | 31 | QT5_ADD_RESOURCES(system-settings-resources ui.qrc) |
3483 | 29 | 32 | ||
3484 | 30 | add_executable(system-settings ${USS_SOURCES} ${QML_SOURCES} ${system-settings-resources}) | 33 | add_executable(system-settings ${USS_SOURCES} ${QML_SOURCES} ${system-settings-resources}) |
3485 | 31 | qt5_use_modules(system-settings Core Gui Quick Qml) | 34 | qt5_use_modules(system-settings Core Gui Quick Qml) |
3487 | 32 | target_link_libraries(system-settings SystemSettings) | 35 | target_link_libraries(system-settings SystemSettings ${GLIB_LDFLAGS}) |
3488 | 33 | install(TARGETS system-settings RUNTIME DESTINATION bin) | 36 | install(TARGETS system-settings RUNTIME DESTINATION bin) |
3489 | 34 | 37 | ||
3490 | 35 | add_library(uss-accountsservice SHARED accountsservice.h accountsservice.cpp) | 38 | add_library(uss-accountsservice SHARED accountsservice.h accountsservice.cpp) |
3491 | 36 | 39 | ||
3492 | === modified file 'src/SystemSettings/CMakeLists.txt' | |||
3493 | --- src/SystemSettings/CMakeLists.txt 2014-08-11 16:13:17 +0000 | |||
3494 | +++ src/SystemSettings/CMakeLists.txt 2014-11-07 22:38:03 +0000 | |||
3495 | @@ -1,5 +1,6 @@ | |||
3496 | 1 | set(QML_SOURCES | 1 | set(QML_SOURCES |
3497 | 2 | ItemPage.qml | 2 | ItemPage.qml |
3498 | 3 | SettingsItemTitle.qml | ||
3499 | 3 | ) | 4 | ) |
3500 | 4 | 5 | ||
3501 | 5 | set(PLUG_DIR ${PLUGIN_QML_DIR}/SystemSettings) | 6 | set(PLUG_DIR ${PLUGIN_QML_DIR}/SystemSettings) |
3502 | 6 | 7 | ||
3503 | === added file 'src/SystemSettings/SettingsItemTitle.qml' | |||
3504 | --- src/SystemSettings/SettingsItemTitle.qml 1970-01-01 00:00:00 +0000 | |||
3505 | +++ src/SystemSettings/SettingsItemTitle.qml 2014-11-07 22:38:03 +0000 | |||
3506 | @@ -0,0 +1,38 @@ | |||
3507 | 1 | /* | ||
3508 | 2 | * This file is part of system-settings | ||
3509 | 3 | * | ||
3510 | 4 | * Copyright (C) 2013 Canonical Ltd. | ||
3511 | 5 | * | ||
3512 | 6 | * This program is free software: you can redistribute it and/or modify it | ||
3513 | 7 | * under the terms of the GNU General Public License version 3, as published | ||
3514 | 8 | * by the Free Software Foundation. | ||
3515 | 9 | * | ||
3516 | 10 | * This program is distributed in the hope that it will be useful, but | ||
3517 | 11 | * WITHOUT ANY WARRANTY; without even the implied warranties of | ||
3518 | 12 | * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR | ||
3519 | 13 | * PURPOSE. See the GNU General Public License for more details. | ||
3520 | 14 | * | ||
3521 | 15 | * You should have received a copy of the GNU General Public License along | ||
3522 | 16 | * with this program. If not, see <http://www.gnu.org/licenses/>. | ||
3523 | 17 | */ | ||
3524 | 18 | |||
3525 | 19 | import QtQuick 2.0 | ||
3526 | 20 | import Ubuntu.Components 0.1 | ||
3527 | 21 | import Ubuntu.Components.ListItems 0.1 as ListItem | ||
3528 | 22 | |||
3529 | 23 | ListItem.Standard { | ||
3530 | 24 | id: itemEmpty | ||
3531 | 25 | property string text | ||
3532 | 26 | Label { | ||
3533 | 27 | anchors { | ||
3534 | 28 | left: parent.left | ||
3535 | 29 | leftMargin: units.gu(2) | ||
3536 | 30 | right: parent.right | ||
3537 | 31 | rightMargin: units.gu(2) | ||
3538 | 32 | top: parent.top | ||
3539 | 33 | topMargin: units.gu(3) | ||
3540 | 34 | } | ||
3541 | 35 | text: itemEmpty.text | ||
3542 | 36 | } | ||
3543 | 37 | highlightWhenPressed: false | ||
3544 | 38 | } | ||
3545 | 0 | 39 | ||
3546 | === modified file 'src/SystemSettings/qmldir' | |||
3547 | --- src/SystemSettings/qmldir 2014-08-11 16:13:17 +0000 | |||
3548 | +++ src/SystemSettings/qmldir 2014-11-07 22:38:03 +0000 | |||
3549 | @@ -1,2 +1,3 @@ | |||
3550 | 1 | module SystemSettings | 1 | module SystemSettings |
3551 | 2 | ItemPage 1.0 ItemPage.qml | 2 | ItemPage 1.0 ItemPage.qml |
3552 | 3 | SettingsItemTitle 1.0 SettingsItemTitle.qml | ||
3553 | 3 | 4 | ||
3554 | === modified file 'src/main.cpp' | |||
3555 | --- src/main.cpp 2014-10-21 15:20:07 +0000 | |||
3556 | +++ src/main.cpp 2014-11-07 22:38:03 +0000 | |||
3557 | @@ -85,6 +85,7 @@ | |||
3558 | 85 | Qt::QueuedConnection); | 85 | Qt::QueuedConnection); |
3559 | 86 | qmlRegisterType<QAbstractItemModel>(); | 86 | qmlRegisterType<QAbstractItemModel>(); |
3560 | 87 | qmlRegisterType<SystemSettings::PluginManager>("SystemSettings", 1, 0, "PluginManager"); | 87 | qmlRegisterType<SystemSettings::PluginManager>("SystemSettings", 1, 0, "PluginManager"); |
3561 | 88 | view.engine()->rootContext()->setContextProperty("Utilities", new Utilities()); | ||
3562 | 88 | view.setResizeMode(QQuickView::SizeRootObjectToView); | 89 | view.setResizeMode(QQuickView::SizeRootObjectToView); |
3563 | 89 | view.engine()->addImportPath(PLUGIN_PRIVATE_MODULE_DIR); | 90 | view.engine()->addImportPath(PLUGIN_PRIVATE_MODULE_DIR); |
3564 | 90 | view.engine()->addImportPath(PLUGIN_QML_DIR); | 91 | view.engine()->addImportPath(PLUGIN_QML_DIR); |
3565 | 91 | 92 | ||
3566 | === modified file 'src/utils.cpp' | |||
3567 | --- src/utils.cpp 2014-07-23 13:29:15 +0000 | |||
3568 | +++ src/utils.cpp 2014-11-07 22:38:03 +0000 | |||
3569 | @@ -21,6 +21,7 @@ | |||
3570 | 21 | #include "utils.h" | 21 | #include "utils.h" |
3571 | 22 | #include "debug.h" | 22 | #include "debug.h" |
3572 | 23 | 23 | ||
3573 | 24 | #include <glib.h> | ||
3574 | 24 | #include <QUrl> | 25 | #include <QUrl> |
3575 | 25 | #include <QUrlQuery> | 26 | #include <QUrlQuery> |
3576 | 26 | 27 | ||
3577 | @@ -59,4 +60,20 @@ | |||
3578 | 59 | } | 60 | } |
3579 | 60 | } | 61 | } |
3580 | 61 | 62 | ||
3581 | 63 | Utilities::Utilities(QObject *parent) : | ||
3582 | 64 | QObject(parent) | ||
3583 | 65 | { | ||
3584 | 66 | } | ||
3585 | 67 | |||
3586 | 68 | QString Utilities::formatSize(quint64 size) const | ||
3587 | 69 | { | ||
3588 | 70 | guint64 g_size = size; | ||
3589 | 71 | |||
3590 | 72 | gchar * formatted_size = g_format_size (g_size); | ||
3591 | 73 | QString q_formatted_size = QString::fromLocal8Bit(formatted_size); | ||
3592 | 74 | g_free (formatted_size); | ||
3593 | 75 | |||
3594 | 76 | return q_formatted_size; | ||
3595 | 77 | } | ||
3596 | 78 | |||
3597 | 62 | } // namespace | 79 | } // namespace |
3598 | 63 | 80 | ||
3599 | === modified file 'src/utils.h' | |||
3600 | --- src/utils.h 2013-09-30 09:29:34 +0000 | |||
3601 | +++ src/utils.h 2014-11-07 22:38:03 +0000 | |||
3602 | @@ -29,6 +29,14 @@ | |||
3603 | 29 | void parsePluginOptions(const QStringList &arguments, QString &defaultPlugin, | 29 | void parsePluginOptions(const QStringList &arguments, QString &defaultPlugin, |
3604 | 30 | QVariantMap &pluginOptions); | 30 | QVariantMap &pluginOptions); |
3605 | 31 | 31 | ||
3606 | 32 | class Utilities : public QObject { | ||
3607 | 33 | Q_OBJECT | ||
3608 | 34 | |||
3609 | 35 | public: | ||
3610 | 36 | explicit Utilities(QObject *parent = 0); | ||
3611 | 37 | Q_INVOKABLE QString formatSize(quint64) const; | ||
3612 | 38 | }; | ||
3613 | 39 | |||
3614 | 32 | } // namespace | 40 | } // namespace |
3615 | 33 | 41 | ||
3616 | 34 | #endif // SYSTEM_SETTINGS_UTILS_H | 42 | #endif // SYSTEM_SETTINGS_UTILS_H |
3617 | 35 | 43 | ||
3618 | === modified file 'tests/CMakeLists.txt' | |||
3619 | --- tests/CMakeLists.txt 2014-09-03 15:38:36 +0000 | |||
3620 | +++ tests/CMakeLists.txt 2014-11-07 22:38:03 +0000 | |||
3621 | @@ -1,4 +1,5 @@ | |||
3622 | 1 | include_directories(${CMAKE_CURRENT_BINARY_DIR} ../src) | 1 | include_directories(${CMAKE_CURRENT_BINARY_DIR} ../src) |
3623 | 2 | include_directories(${GLIB_INCLUDE_DIRS}) | ||
3624 | 2 | add_definitions(-DI18N_DOMAIN="ubuntu-system-settings") | 3 | add_definitions(-DI18N_DOMAIN="ubuntu-system-settings") |
3625 | 3 | add_definitions(-DPLUGIN_PRIVATE_MODULE_DIR="${PLUGIN_PRIVATE_MODULE_DIR}") | 4 | add_definitions(-DPLUGIN_PRIVATE_MODULE_DIR="${PLUGIN_PRIVATE_MODULE_DIR}") |
3626 | 4 | add_definitions(-DPLUGIN_MANIFEST_DIR="${CMAKE_CURRENT_SOURCE_DIR}/data") | 5 | add_definitions(-DPLUGIN_MANIFEST_DIR="${CMAKE_CURRENT_SOURCE_DIR}/data") |
3627 | @@ -36,6 +37,7 @@ | |||
3628 | 36 | set_tests_properties(tst-plugins PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=minimal") | 37 | set_tests_properties(tst-plugins PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=minimal") |
3629 | 37 | 38 | ||
3630 | 38 | qt5_use_modules(tst-arguments Core Test) | 39 | qt5_use_modules(tst-arguments Core Test) |
3631 | 40 | target_link_libraries(tst-arguments ${GLIB_LDFLAGS}) | ||
3632 | 39 | add_test(tst-arguments tst-arguments) | 41 | add_test(tst-arguments tst-arguments) |
3633 | 40 | 42 | ||
3634 | 41 | add_executable(tst-pagelist tst_pagelist.cpp ../wizard/PageList.cpp) | 43 | add_executable(tst-pagelist tst_pagelist.cpp ../wizard/PageList.cpp) |
3635 | 42 | 44 | ||
3636 | === modified file 'tests/autopilot/ubuntu_system_settings/__init__.py' | |||
3637 | --- tests/autopilot/ubuntu_system_settings/__init__.py 2014-09-26 12:52:31 +0000 | |||
3638 | +++ tests/autopilot/ubuntu_system_settings/__init__.py 2014-11-07 22:38:03 +0000 | |||
3639 | @@ -1,3 +1,4 @@ | |||
3640 | 1 | |||
3641 | 1 | # -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*- | 2 | # -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*- |
3642 | 2 | # | 3 | # |
3643 | 3 | # Copyright (C) 2014 Canonical Ltd. | 4 | # Copyright (C) 2014 Canonical Ltd. |
3644 | @@ -114,6 +115,10 @@ | |||
3645 | 114 | def go_to_wifi_page(self): | 115 | def go_to_wifi_page(self): |
3646 | 115 | return self._go_to_page('entryComponent-wifi', 'wifiPage') | 116 | return self._go_to_page('entryComponent-wifi', 'wifiPage') |
3647 | 116 | 117 | ||
3648 | 118 | @autopilot.logging.log_action(logger.debug) | ||
3649 | 119 | def go_to_cellular_page(self): | ||
3650 | 120 | return self._go_to_page('entryComponent-cellular', 'cellularPage') | ||
3651 | 121 | |||
3652 | 117 | def _go_to_page(self, item_object_name, page_object_name): | 122 | def _go_to_page(self, item_object_name, page_object_name): |
3653 | 118 | self.click_item(item_object_name) | 123 | self.click_item(item_object_name) |
3654 | 119 | page = self.wait_select_single(objectName=page_object_name) | 124 | page = self.wait_select_single(objectName=page_object_name) |
3655 | @@ -202,7 +207,7 @@ | |||
3656 | 202 | self._orientation_lock_switch.uncheck() | 207 | self._orientation_lock_switch.uncheck() |
3657 | 203 | 208 | ||
3658 | 204 | 209 | ||
3660 | 205 | class CelullarPage(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase): | 210 | class CellularPage(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase): |
3661 | 206 | 211 | ||
3662 | 207 | """Autopilot helper for the Sound page.""" | 212 | """Autopilot helper for the Sound page.""" |
3663 | 208 | 213 | ||
3664 | @@ -214,6 +219,164 @@ | |||
3665 | 214 | return True | 219 | return True |
3666 | 215 | return False | 220 | return False |
3667 | 216 | 221 | ||
3668 | 222 | @autopilot.logging.log_action(logger.debug) | ||
3669 | 223 | def enable_data(self): | ||
3670 | 224 | self._set_data(True) | ||
3671 | 225 | |||
3672 | 226 | @autopilot.logging.log_action(logger.debug) | ||
3673 | 227 | def disable_data(self): | ||
3674 | 228 | self._set_data(False) | ||
3675 | 229 | |||
3676 | 230 | def disable_datas(self): | ||
3677 | 231 | self.select_sim_for_data('off') | ||
3678 | 232 | |||
3679 | 233 | @autopilot.logging.log_action(logger.debug) | ||
3680 | 234 | def _set_data(self, data): | ||
3681 | 235 | chk = self.select_single(objectName='data') | ||
3682 | 236 | if data: | ||
3683 | 237 | chk.check() | ||
3684 | 238 | else: | ||
3685 | 239 | chk.uncheck() | ||
3686 | 240 | |||
3687 | 241 | @autopilot.logging.log_action(logger.debug) | ||
3688 | 242 | def get_data(self): | ||
3689 | 243 | return self.select_single(objectName='data').checked | ||
3690 | 244 | |||
3691 | 245 | @autopilot.logging.log_action(logger.debug) | ||
3692 | 246 | def enable_roaming(self, timeout=10): | ||
3693 | 247 | self._set_roaming(True, timeout=timeout) | ||
3694 | 248 | |||
3695 | 249 | @autopilot.logging.log_action(logger.debug) | ||
3696 | 250 | def disable_roaming(self, timeout=10): | ||
3697 | 251 | self._set_roaming(False, timeout=timeout) | ||
3698 | 252 | |||
3699 | 253 | @autopilot.logging.log_action(logger.debug) | ||
3700 | 254 | def _set_roaming(self, roaming, timeout): | ||
3701 | 255 | chk = self.select_single(objectName='roaming') | ||
3702 | 256 | if roaming: | ||
3703 | 257 | chk.check(timeout=timeout) | ||
3704 | 258 | else: | ||
3705 | 259 | chk.uncheck(timeout=timeout) | ||
3706 | 260 | |||
3707 | 261 | @autopilot.logging.log_action(logger.debug) | ||
3708 | 262 | def set_connection_type(self, radio_type, sim='/ril_0', | ||
3709 | 263 | scroll_to_and_click=None): | ||
3710 | 264 | self._set_connection_type(radio_type, sim, scroll_to_and_click) | ||
3711 | 265 | |||
3712 | 266 | @autopilot.logging.log_action(logger.debug) | ||
3713 | 267 | def _set_connection_type(self, radio_type, sim, scroll_to_and_click): | ||
3714 | 268 | t = self.wait_select_single( | ||
3715 | 269 | 'OptionSelectorDelegate', | ||
3716 | 270 | objectName='%s_radio_%s' % (sim, radio_type)) | ||
3717 | 271 | if scroll_to_and_click: | ||
3718 | 272 | scroll_to_and_click(t) | ||
3719 | 273 | else: | ||
3720 | 274 | t.swipe_into_view() | ||
3721 | 275 | |||
3722 | 276 | self.pointing_device.click_object(t) | ||
3723 | 277 | |||
3724 | 278 | @autopilot.logging.log_action(logger.debug) | ||
3725 | 279 | def change_carrier(self, carrier, sim=None): | ||
3726 | 280 | if sim: | ||
3727 | 281 | carriersPage = self._click_carriers() | ||
3728 | 282 | carrierPage = carriersPage.select_sim(sim) | ||
3729 | 283 | else: | ||
3730 | 284 | carrierPage = self._click_carrier() | ||
3731 | 285 | |||
3732 | 286 | carrierPage.set_manual() | ||
3733 | 287 | carrierPage.set_carrier(carrier) | ||
3734 | 288 | |||
3735 | 289 | @autopilot.logging.log_action(logger.debug) | ||
3736 | 290 | def _click_carrier(self): | ||
3737 | 291 | item = self.select_single(objectName='carrier') | ||
3738 | 292 | self.pointing_device.click_object(item) | ||
3739 | 293 | return self.get_root_instance().wait_select_single( | ||
3740 | 294 | objectName='chooseCarrierPage') | ||
3741 | 295 | |||
3742 | 296 | @autopilot.logging.log_action(logger.debug) | ||
3743 | 297 | def _click_carriers(self): | ||
3744 | 298 | item = self.select_single(objectName='carriers') | ||
3745 | 299 | self.pointing_device.click_object(item) | ||
3746 | 300 | return self.get_root_instance().wait_select_single( | ||
3747 | 301 | objectName='chooseCarriersPage') | ||
3748 | 302 | |||
3749 | 303 | @autopilot.logging.log_action(logger.debug) | ||
3750 | 304 | def select_sim_for_data(self, sim): | ||
3751 | 305 | self._select_sim_for_data(sim) | ||
3752 | 306 | |||
3753 | 307 | @autopilot.logging.log_action(logger.debug) | ||
3754 | 308 | def _select_sim_for_data(self, sim): | ||
3755 | 309 | item = self.select_single(objectName='use%s' % sim) | ||
3756 | 310 | self.pointing_device.click_object(item) | ||
3757 | 311 | |||
3758 | 312 | @autopilot.logging.log_action(logger.debug) | ||
3759 | 313 | def select_sim_for_calls(self, sim): | ||
3760 | 314 | pass | ||
3761 | 315 | |||
3762 | 316 | @autopilot.logging.log_action(logger.debug) | ||
3763 | 317 | def select_sim_for_messages(self): | ||
3764 | 318 | pass | ||
3765 | 319 | |||
3766 | 320 | @autopilot.logging.log_action(logger.debug) | ||
3767 | 321 | def set_name(self, sim, name): | ||
3768 | 322 | self._set_name(sim, name) | ||
3769 | 323 | |||
3770 | 324 | def get_name(self, sim): | ||
3771 | 325 | obj = self.select_single( | ||
3772 | 326 | objectName="label_%s" % sim) | ||
3773 | 327 | return obj.text | ||
3774 | 328 | |||
3775 | 329 | def _set_name(self, sim, name): | ||
3776 | 330 | obj = self.select_single( | ||
3777 | 331 | objectName="edit_name_%s" % sim) | ||
3778 | 332 | self.pointing_device.click_object(obj) | ||
3779 | 333 | |||
3780 | 334 | # wait for animation | ||
3781 | 335 | sleep(1) | ||
3782 | 336 | ok = self.select_single('Button', objectName="doRename") | ||
3783 | 337 | |||
3784 | 338 | field = self.select_single('TextField', objectName="nameField") | ||
3785 | 339 | field.write(name) | ||
3786 | 340 | self.pointing_device.click_object(ok) | ||
3787 | 341 | |||
3788 | 342 | |||
3789 | 343 | class PageChooseCarriers(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase): | ||
3790 | 344 | |||
3791 | 345 | """Autopilot helper for carrier selection page (multisim).""" | ||
3792 | 346 | |||
3793 | 347 | @autopilot.logging.log_action(logger.debug) | ||
3794 | 348 | def select_sim(self, sim): | ||
3795 | 349 | return self._select_sim(sim) | ||
3796 | 350 | |||
3797 | 351 | @autopilot.logging.log_action(logger.debug) | ||
3798 | 352 | def _select_sim(self, sim): | ||
3799 | 353 | item = self.select_single(objectName='%s_carriers' % sim) | ||
3800 | 354 | self.pointing_device.click_object(item) | ||
3801 | 355 | return self.get_root_instance().wait_select_single( | ||
3802 | 356 | objectName='chooseCarrierPage') | ||
3803 | 357 | |||
3804 | 358 | |||
3805 | 359 | class PageChooseCarrier(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase): | ||
3806 | 360 | |||
3807 | 361 | """Autopilot helper for carrier selection page (singlesim).""" | ||
3808 | 362 | |||
3809 | 363 | @autopilot.logging.log_action(logger.debug) | ||
3810 | 364 | def set_manual(self): | ||
3811 | 365 | item = self.select_single(text='Manually') | ||
3812 | 366 | self.pointing_device.click_object(item) | ||
3813 | 367 | |||
3814 | 368 | @autopilot.logging.log_action(logger.debug) | ||
3815 | 369 | def set_automatic(self): | ||
3816 | 370 | item = self.select_single(text='Automatically') | ||
3817 | 371 | self.pointing_device.click_object(item) | ||
3818 | 372 | |||
3819 | 373 | def set_carrier(self, carrier): | ||
3820 | 374 | # wait for animation, since page.animationRunning.wait_for(False) | ||
3821 | 375 | # does not work? | ||
3822 | 376 | sleep(0.5) | ||
3823 | 377 | item = self.select_single(text=carrier) | ||
3824 | 378 | self.pointing_device.click_object(item) | ||
3825 | 379 | |||
3826 | 217 | 380 | ||
3827 | 218 | class TimeAndDatePage(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase): | 381 | class TimeAndDatePage(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase): |
3828 | 219 | 382 | ||
3829 | @@ -678,6 +841,40 @@ | |||
3830 | 678 | return True | 841 | return True |
3831 | 679 | return False | 842 | return False |
3832 | 680 | 843 | ||
3833 | 844 | @autopilot.logging.log_action(logger.debug) | ||
3834 | 845 | def enable_wireless(self): | ||
3835 | 846 | self._set_wireless(True) | ||
3836 | 847 | |||
3837 | 848 | @autopilot.logging.log_action(logger.debug) | ||
3838 | 849 | def disable_wireless(self): | ||
3839 | 850 | self._set_wireless(False) | ||
3840 | 851 | |||
3841 | 852 | """ | ||
3842 | 853 | :returns: Whether or not WiFi can be used | ||
3843 | 854 | """ | ||
3844 | 855 | @autopilot.logging.log_action(logger.debug) | ||
3845 | 856 | def have_wireless(self): | ||
3846 | 857 | try: | ||
3847 | 858 | self.wait_select_single('SwitchMenuItem', text=_('Wi-Fi')) | ||
3848 | 859 | except: | ||
3849 | 860 | return False | ||
3850 | 861 | return True | ||
3851 | 862 | |||
3852 | 863 | """Returns the current WiFi state | ||
3853 | 864 | |||
3854 | 865 | :returns: Whether or not WiFi is enabled | ||
3855 | 866 | """ | ||
3856 | 867 | @autopilot.logging.log_action(logger.debug) | ||
3857 | 868 | def get_wireless(self): | ||
3858 | 869 | return self.wait_select_single( | ||
3859 | 870 | 'SwitchMenuItem', text=_('Wi-Fi')).checked | ||
3860 | 871 | |||
3861 | 872 | @autopilot.logging.log_action(logger.debug) | ||
3862 | 873 | def _set_wireless(self, state): | ||
3863 | 874 | obj = self.wait_select_single('SwitchMenuItem', text=_('Wi-Fi')) | ||
3864 | 875 | if obj.checked != state: | ||
3865 | 876 | self.pointing_device.click_object(obj) | ||
3866 | 877 | |||
3867 | 681 | """Connects to hidden network | 878 | """Connects to hidden network |
3868 | 682 | 879 | ||
3869 | 683 | :param name: Network name string (SSID) | 880 | :param name: Network name string (SSID) |
3870 | 684 | 881 | ||
3871 | === modified file 'tests/autopilot/ubuntu_system_settings/tests/__init__.py' | |||
3872 | --- tests/autopilot/ubuntu_system_settings/tests/__init__.py 2014-10-22 21:34:08 +0000 | |||
3873 | +++ tests/autopilot/ubuntu_system_settings/tests/__init__.py 2014-11-07 22:38:03 +0000 | |||
3874 | @@ -33,6 +33,7 @@ | |||
3875 | 33 | RDO_IFACE = 'org.ofono.RadioSettings' | 33 | RDO_IFACE = 'org.ofono.RadioSettings' |
3876 | 34 | SIM_IFACE = 'org.ofono.SimManager' | 34 | SIM_IFACE = 'org.ofono.SimManager' |
3877 | 35 | NETREG_IFACE = 'org.ofono.NetworkRegistration' | 35 | NETREG_IFACE = 'org.ofono.NetworkRegistration' |
3878 | 36 | NETOP_IFACE = 'org.ofono.NetworkOperator' | ||
3879 | 36 | CALL_FWD_IFACE = 'org.ofono.CallForwarding' | 37 | CALL_FWD_IFACE = 'org.ofono.CallForwarding' |
3880 | 37 | CALL_SETTINGS_IFACE = 'org.ofono.CallSettings' | 38 | CALL_SETTINGS_IFACE = 'org.ofono.CallSettings' |
3881 | 38 | SYSTEM_IFACE = 'com.canonical.SystemImage' | 39 | SYSTEM_IFACE = 'com.canonical.SystemImage' |
3882 | @@ -150,7 +151,7 @@ | |||
3883 | 150 | def mock_carriers(self, name): | 151 | def mock_carriers(self, name): |
3884 | 151 | self.dbusmock.AddObject( | 152 | self.dbusmock.AddObject( |
3885 | 152 | '/%s/operator/op2' % name, | 153 | '/%s/operator/op2' % name, |
3887 | 153 | 'org.ofono.NetworkOperator', | 154 | NETOP_IFACE, |
3888 | 154 | { | 155 | { |
3889 | 155 | 'Name': 'my.cool.telco', | 156 | 'Name': 'my.cool.telco', |
3890 | 156 | 'Status': 'available', | 157 | 'Status': 'available', |
3891 | @@ -167,7 +168,7 @@ | |||
3892 | 167 | # Add a forbidden carrier | 168 | # Add a forbidden carrier |
3893 | 168 | self.dbusmock.AddObject( | 169 | self.dbusmock.AddObject( |
3894 | 169 | '/%s/operator/op3' % name, | 170 | '/%s/operator/op3' % name, |
3896 | 170 | 'org.ofono.NetworkOperator', | 171 | NETOP_IFACE, |
3897 | 171 | { | 172 | { |
3898 | 172 | 'Name': 'my.bad.telco', | 173 | 'Name': 'my.bad.telco', |
3899 | 173 | 'Status': 'forbidden', | 174 | 'Status': 'forbidden', |
3900 | @@ -311,9 +312,12 @@ | |||
3901 | 311 | 312 | ||
3902 | 312 | 313 | ||
3903 | 313 | class CellularBaseTestCase(UbuntuSystemSettingsOfonoTestCase): | 314 | class CellularBaseTestCase(UbuntuSystemSettingsOfonoTestCase): |
3904 | 315 | |||
3905 | 314 | def setUp(self): | 316 | def setUp(self): |
3906 | 315 | """ Go to Cellular page """ | 317 | """ Go to Cellular page """ |
3908 | 316 | super(CellularBaseTestCase, self).setUp('cellular') | 318 | super(CellularBaseTestCase, self).setUp() |
3909 | 319 | self.cellular_page = self.system_settings.\ | ||
3910 | 320 | main_view.go_to_cellular_page() | ||
3911 | 317 | 321 | ||
3912 | 318 | 322 | ||
3913 | 319 | class PhoneOfonoBaseTestCase(UbuntuSystemSettingsOfonoTestCase): | 323 | class PhoneOfonoBaseTestCase(UbuntuSystemSettingsOfonoTestCase): |
3914 | 320 | 324 | ||
3915 | === modified file 'tests/autopilot/ubuntu_system_settings/tests/test_cellular.py' | |||
3916 | --- tests/autopilot/ubuntu_system_settings/tests/test_cellular.py 2014-10-09 14:09:38 +0000 | |||
3917 | +++ tests/autopilot/ubuntu_system_settings/tests/test_cellular.py 2014-11-07 22:38:03 +0000 | |||
3918 | @@ -5,537 +5,217 @@ | |||
3919 | 5 | # under the terms of the GNU General Public License version 3, as published | 5 | # under the terms of the GNU General Public License version 3, as published |
3920 | 6 | # by the Free Software Foundation. | 6 | # by the Free Software Foundation. |
3921 | 7 | 7 | ||
3922 | 8 | import dbus | ||
3923 | 9 | from gi.repository import Gio, GLib | 8 | from gi.repository import Gio, GLib |
3924 | 10 | from time import sleep | 9 | from time import sleep |
3925 | 11 | 10 | ||
3926 | 12 | from autopilot.introspection.dbus import StateNotFoundError | 11 | from autopilot.introspection.dbus import StateNotFoundError |
3927 | 13 | from autopilot.matchers import Eventually | 12 | from autopilot.matchers import Eventually |
3930 | 14 | from testtools.matchers import Equals, NotEquals, raises | 13 | from testtools.matchers import Equals, raises, StartsWith |
3929 | 15 | from unittest import skip | ||
3931 | 16 | 14 | ||
3932 | 17 | from ubuntu_system_settings.tests import ( | 15 | from ubuntu_system_settings.tests import ( |
3946 | 18 | CellularBaseTestCase, CONNMAN_IFACE, RDO_IFACE, SIM_IFACE) | 16 | CellularBaseTestCase, CONNMAN_IFACE, RDO_IFACE, NETREG_IFACE) |
3934 | 19 | from ubuntu_system_settings.utils.i18n import ugettext as _ | ||
3935 | 20 | |||
3936 | 21 | from ubuntuuitoolkit import emulators as toolkit_emulators | ||
3937 | 22 | |||
3938 | 23 | |||
3939 | 24 | PREFERENCE_2G = '2G only (saves battery)' | ||
3940 | 25 | PREFERENCE_UMTS = '2G/3G (faster)' | ||
3941 | 26 | PREFERENCE_LTE = '2G/3G/4G (faster)' | ||
3942 | 27 | PREFERENCE_OFF = 'Off' | ||
3943 | 28 | USE_OFF = "useoff" | ||
3944 | 29 | USE_SIM_1 = "use/ril_0" | ||
3945 | 30 | USE_SIM_2 = "use/ril_1" | ||
3947 | 31 | 17 | ||
3948 | 32 | 18 | ||
3949 | 33 | class CellularTestCase(CellularBaseTestCase): | 19 | class CellularTestCase(CellularBaseTestCase): |
4044 | 34 | """ Tests for cellular Page """ | 20 | |
4045 | 35 | 21 | def test_enable_data(self): | |
4046 | 36 | """Caches the technology preference selector""" | 22 | self.cellular_page.enable_data() |
4047 | 37 | _pref_selector = None | 23 | self.assertThat( |
4048 | 38 | 24 | lambda: self.modem_0.Get(CONNMAN_IFACE, 'Powered'), | |
4049 | 39 | @property | 25 | Eventually(Equals(True)) |
4050 | 40 | def data_preference_selector(self): | 26 | ) |
4051 | 41 | """Return data_preference_selector""" | 27 | |
4052 | 42 | try: | 28 | def test_disable_data(self): |
4053 | 43 | self._pref_selector.get_properties() | 29 | self.cellular_page.disable_data() |
4054 | 44 | except: | 30 | self.assertThat( |
4055 | 45 | self._pref_selector = \ | 31 | lambda: self.modem_0.Get(CONNMAN_IFACE, 'Powered'), |
4056 | 46 | self.system_settings.main_view.cellular_page.select_single( | 32 | Eventually(Equals(False)) |
4057 | 47 | toolkit_emulators.ItemSelector, | 33 | ) |
4058 | 48 | objectName="technologyPreferenceSelector" | 34 | |
4059 | 49 | ) | 35 | def test_remote_manipulation_of_data(self): |
4060 | 50 | return self._pref_selector | 36 | self.modem_0.EmitSignal( |
4061 | 51 | 37 | CONNMAN_IFACE, | |
4062 | 52 | def select_preference(self, label): | 38 | 'PropertyChanged', |
4063 | 53 | """Helper method to click a preference which matches provided label""" | 39 | 'sv', |
4064 | 54 | pref = self.data_preference_selector.select_single('Label', text=label) | 40 | ['Powered', 'true']) |
4065 | 55 | self.system_settings.main_view.pointing_device.click_object(pref) | 41 | |
4066 | 56 | 42 | self.assertThat(lambda: self.cellular_page.get_data(), | |
4067 | 57 | def assert_selected_preference(self, index): | 43 | Eventually(Equals(True))) |
4068 | 58 | """Helper method asserting that the selected data technology preference | 44 | |
4069 | 59 | is that of index""" | 45 | self.modem_0.EmitSignal( |
4070 | 60 | self.assertThat(self.data_preference_selector.selectedIndex, | 46 | CONNMAN_IFACE, |
4071 | 61 | Eventually(Equals(index))) | 47 | 'PropertyChanged', |
4072 | 62 | 48 | 'sv', | |
4073 | 63 | def navigate_to_carrier_page(self): | 49 | ['Powered', 'false']) |
4074 | 64 | selector = self.system_settings.main_view.cellular_page.select_single( | 50 | |
4075 | 65 | objectName="chooseCarrier" | 51 | self.assertThat(lambda: self.cellular_page.get_data(), |
4076 | 66 | ) | 52 | Eventually(Equals(False))) |
4077 | 67 | self.system_settings.main_view.scroll_to_and_click(selector) | 53 | |
4078 | 68 | 54 | def test_enable_roaming(self): | |
4079 | 69 | def navigate_to_manual(self): | 55 | self.cellular_page.enable_roaming() |
4080 | 70 | selector = self.choose_carrier_page.select_single( | 56 | self.assertThat( |
4081 | 71 | toolkit_emulators.ItemSelector, | 57 | lambda: self.modem_0.Get(CONNMAN_IFACE, 'RoamingAllowed'), |
4082 | 72 | objectName="autoChooseCarrierSelector" | 58 | Eventually(Equals(True)) |
4083 | 73 | ) | 59 | ) |
4084 | 74 | manual = selector.select_single('Label', text=_("Manually")) | 60 | |
4085 | 75 | self.system_settings.main_view.pointing_device.click_object(manual) | 61 | def test_disable_roaming(self): |
4086 | 76 | choosecarrier = self.system_settings.main_view.cellular_page.\ | 62 | self.cellular_page.disable_roaming() |
4087 | 77 | select_single(objectName="chooseCarrier") | 63 | self.assertThat( |
4088 | 78 | self.system_settings.main_view.pointing_device.click_object( | 64 | lambda: self.modem_0.Get(CONNMAN_IFACE, 'RoamingAllowed'), |
4089 | 79 | choosecarrier) | 65 | Eventually(Equals(False)) |
4090 | 80 | self.assertThat( | 66 | ) |
4091 | 81 | self.system_settings.main_view.choose_page.title, | 67 | |
4092 | 82 | Equals(_("Carrier")) | 68 | def test_connection_type(self): |
4093 | 83 | ) | 69 | get_pref = lambda: self.modem_0.Get(RDO_IFACE, 'TechnologyPreference') |
4094 | 84 | 70 | for pref in ['lte', 'umts', 'gsm']: | |
4095 | 85 | def test_cellular_page(self): | 71 | self.cellular_page.set_connection_type(pref) |
4096 | 86 | """ Checks whether Cellular page is available """ | 72 | self.assertThat(get_pref, Eventually(Equals(pref))) |
4097 | 87 | self.assertThat( | 73 | |
4098 | 88 | self.system_settings.main_view.cellular_page, | 74 | def test_current_carrier(self): |
4099 | 89 | NotEquals(None) | 75 | self.assertThat(lambda: self.modem_0.Get(NETREG_IFACE, 'Name'), |
4100 | 90 | ) | 76 | Eventually(Equals('fake.tel'))) |
4101 | 91 | self.assertThat( | 77 | |
4102 | 92 | self.system_settings.main_view.cellular_page.title, | 78 | def test_change_carrier(self): |
4103 | 93 | Equals(_('Cellular')) | 79 | self.cellular_page.change_carrier('my.cool.telco') |
4010 | 94 | ) | ||
4011 | 95 | |||
4012 | 96 | def test_single_sim_layout(self): | ||
4013 | 97 | self.system_settings.main_view.cellular_page.\ | ||
4014 | 98 | select_single(objectName="singleSim") | ||
4015 | 99 | self.assertThat(lambda: self.system_settings.main_view.select_single( | ||
4016 | 100 | objectName='multiSim'), raises(StateNotFoundError)) | ||
4017 | 101 | self.assertThat(lambda: self.system_settings.main_view.select_single( | ||
4018 | 102 | objectName='noSim'), raises(StateNotFoundError)) | ||
4019 | 103 | |||
4020 | 104 | def test_current_network(self): | ||
4021 | 105 | """ Tests whether the current network is visible and selected """ | ||
4022 | 106 | self.navigate_to_carrier_page() | ||
4023 | 107 | self.navigate_to_manual() | ||
4024 | 108 | carriers = self.system_settings.main_view.choose_page.select_single( | ||
4025 | 109 | toolkit_emulators.ItemSelector, | ||
4026 | 110 | objectName="carrierSelector" | ||
4027 | 111 | ) | ||
4028 | 112 | # TODO: Once there is a proper ItemSelector emulator, get the items | ||
4029 | 113 | # from it and check 'fake.tel' is the selected one. | ||
4030 | 114 | selected_delegate = carriers.select_single( | ||
4031 | 115 | 'OptionSelectorDelegate', selected=True) | ||
4032 | 116 | selected_delegate.select_single('Label', text="fake.tel") | ||
4033 | 117 | |||
4034 | 118 | def test_alt_network(self): | ||
4035 | 119 | """ Tests whether an alternative available network is displayed """ | ||
4036 | 120 | self.navigate_to_carrier_page() | ||
4037 | 121 | self.navigate_to_manual() | ||
4038 | 122 | carriers = self.system_settings.main_view.choose_page.select_single( | ||
4039 | 123 | toolkit_emulators.ItemSelector, | ||
4040 | 124 | objectName="carrierSelector" | ||
4041 | 125 | ) | ||
4042 | 126 | manual = carriers.select_single('Label', text="my.cool.telco") | ||
4043 | 127 | self.assertThat(manual, NotEquals(None)) | ||
4104 | 128 | 80 | ||
4105 | 129 | def test_no_forbidden_network(self): | 81 | def test_no_forbidden_network(self): |
4106 | 130 | """ Ensures that a forbidden network is not shown """ | 82 | """ Ensures that a forbidden network is not shown """ |
4107 | 131 | self.navigate_to_carrier_page() | ||
4108 | 132 | self.navigate_to_manual() | ||
4109 | 133 | carriers = self.system_settings.main_view.choose_page.select_single( | ||
4110 | 134 | toolkit_emulators.ItemSelector, | ||
4111 | 135 | objectName="carrierSelector" | ||
4112 | 136 | ) | ||
4113 | 137 | self.assertThat( | 83 | self.assertThat( |
4115 | 138 | lambda: carriers.select_single('Label', text="my.bad.telco"), | 84 | lambda: self.cellular_page.change_carrier('my.bad.telco'), |
4116 | 139 | raises(StateNotFoundError) | 85 | raises(StateNotFoundError) |
4117 | 140 | ) | 86 | ) |
4118 | 141 | 87 | ||
4119 | 142 | def test_set_sim_offline(self): | ||
4120 | 143 | self.select_preference(PREFERENCE_OFF) | ||
4121 | 144 | |||
4122 | 145 | sleep(0.7) | ||
4123 | 146 | |||
4124 | 147 | self.assertEqual(False, self.modem_0.Get(CONNMAN_IFACE, 'Powered')) | ||
4125 | 148 | |||
4126 | 149 | def test_set_sim_online(self): | ||
4127 | 150 | self.select_preference(PREFERENCE_OFF) | ||
4128 | 151 | sleep(0.7) | ||
4129 | 152 | self.assertEqual(False, self.modem_0.Get(CONNMAN_IFACE, 'Powered')) | ||
4130 | 153 | |||
4131 | 154 | self.select_preference(PREFERENCE_UMTS) | ||
4132 | 155 | sleep(0.7) | ||
4133 | 156 | self.assertEqual(True, self.modem_0.Get(CONNMAN_IFACE, 'Powered')) | ||
4134 | 157 | |||
4135 | 158 | def test_roaming_switch(self): | ||
4136 | 159 | """Test that switching off cellular data disables roaming switch""" | ||
4137 | 160 | roaming_switch = self.system_settings.main_view.select_single( | ||
4138 | 161 | objectName="dataRoamingSwitch" | ||
4139 | 162 | ) | ||
4140 | 163 | # select 2G only | ||
4141 | 164 | self.select_preference(PREFERENCE_2G) | ||
4142 | 165 | |||
4143 | 166 | # assert that roaming_switch is enabled | ||
4144 | 167 | self.assertThat( | ||
4145 | 168 | roaming_switch.get_properties()['enabled'], | ||
4146 | 169 | Eventually(Equals(True))) | ||
4147 | 170 | |||
4148 | 171 | # click off | ||
4149 | 172 | self.select_preference(PREFERENCE_OFF) | ||
4150 | 173 | # assert roaming_switch is disabled | ||
4151 | 174 | self.assertThat( | ||
4152 | 175 | roaming_switch.get_properties()['enabled'], | ||
4153 | 176 | Eventually(Equals(False))) | ||
4154 | 177 | |||
4155 | 178 | def test_allow_roaming(self): | ||
4156 | 179 | roaming_switch = self.system_settings.main_view.select_single( | ||
4157 | 180 | objectName="dataRoamingSwitch" | ||
4158 | 181 | ) | ||
4159 | 182 | self.system_settings.main_view.scroll_to_and_click(roaming_switch) | ||
4160 | 183 | sleep(1.5) | ||
4161 | 184 | self.assertEqual( | ||
4162 | 185 | True, self.modem_0.Get(CONNMAN_IFACE, 'RoamingAllowed')) | ||
4163 | 186 | |||
4164 | 187 | def test_change_data_preference(self): | ||
4165 | 188 | self.select_preference(PREFERENCE_2G) | ||
4166 | 189 | sleep(0.7) | ||
4167 | 190 | self.assertEqual('gsm', self.modem_0.Get(RDO_IFACE, | ||
4168 | 191 | 'TechnologyPreference')) | ||
4169 | 192 | self.select_preference(PREFERENCE_UMTS) | ||
4170 | 193 | sleep(0.7) | ||
4171 | 194 | self.assertEqual('umts', self.modem_0.Get(RDO_IFACE, | ||
4172 | 195 | 'TechnologyPreference')) | ||
4173 | 196 | |||
4174 | 197 | def test_sim_online_status_insensitive_to_radio_preference(self): | ||
4175 | 198 | # turn off cellular data | ||
4176 | 199 | self.select_preference(PREFERENCE_OFF) | ||
4177 | 200 | |||
4178 | 201 | # fake dbus signal, changing to umts | ||
4179 | 202 | self.modem_0.EmitSignal( | ||
4180 | 203 | 'org.ofono.RadioSettings', | ||
4181 | 204 | 'PropertyChanged', | ||
4182 | 205 | 'sv', | ||
4183 | 206 | ['TechnologyPreference', dbus.String('umts', variant_level=1)]) | ||
4184 | 207 | |||
4185 | 208 | # assert that "Off" has not changed | ||
4186 | 209 | self.assert_selected_preference(0) | ||
4187 | 210 | |||
4188 | 211 | def test_ui_reacts_to_sim_set_coming_online(self): | ||
4189 | 212 | self.select_preference(PREFERENCE_2G) | ||
4190 | 213 | self.select_preference(PREFERENCE_OFF) | ||
4191 | 214 | |||
4192 | 215 | sleep(0.7) | ||
4193 | 216 | |||
4194 | 217 | self.modem_0.EmitSignal( | ||
4195 | 218 | CONNMAN_IFACE, | ||
4196 | 219 | 'PropertyChanged', | ||
4197 | 220 | 'sv', | ||
4198 | 221 | ['Powered', 'true']) | ||
4199 | 222 | |||
4200 | 223 | # assert that 2G is selected | ||
4201 | 224 | self.assert_selected_preference(1) | ||
4202 | 225 | |||
4203 | 226 | def test_unlocking_sim(self): | ||
4204 | 227 | '''Like it would if the sim was locked, e.g.''' | ||
4205 | 228 | self.modem_0.Set(RDO_IFACE, 'TechnologyPreference', | ||
4206 | 229 | dbus.String('', variant_level=1)) | ||
4207 | 230 | |||
4208 | 231 | self.system_settings.main_view.go_back() | ||
4209 | 232 | |||
4210 | 233 | self.system_settings.main_view.pointing_device.click_object( | ||
4211 | 234 | self.system_settings.main_view.select_single( | ||
4212 | 235 | objectName='entryComponent-cellular')) | ||
4213 | 236 | |||
4214 | 237 | self.assert_selected_preference(-1) | ||
4215 | 238 | self.assertFalse(self.data_preference_selector.enabled) | ||
4216 | 239 | |||
4217 | 240 | self.modem_0.EmitSignal( | ||
4218 | 241 | 'org.ofono.RadioSettings', | ||
4219 | 242 | 'PropertyChanged', | ||
4220 | 243 | 'sv', | ||
4221 | 244 | ['TechnologyPreference', dbus.String('lte', variant_level=1)]) | ||
4222 | 245 | |||
4223 | 246 | self.assert_selected_preference(3) | ||
4224 | 247 | |||
4225 | 248 | 88 | ||
4226 | 249 | class DualSimCellularTestCase(CellularBaseTestCase): | 89 | class DualSimCellularTestCase(CellularBaseTestCase): |
4227 | 250 | 90 | ||
4228 | 251 | use_sims = 2 | 91 | use_sims = 2 |
4229 | 252 | 92 | ||
4260 | 253 | def navigate_to_carriers_page(self): | 93 | def test_data_off(self): |
4261 | 254 | selector = self.system_settings.main_view.cellular_page.select_single( | 94 | self.cellular_page.disable_datas() |
4262 | 255 | objectName="chooseCarrier" | 95 | self.assertThat( |
4263 | 256 | ) | 96 | lambda: self.modem_0.Get(CONNMAN_IFACE, 'Powered'), |
4264 | 257 | self.system_settings.main_view.scroll_to_and_click(selector) | 97 | Eventually(Equals(False)) |
4265 | 258 | 98 | ) | |
4266 | 259 | def navigate_to_carrier_page_for_sim(self, n): | 99 | self.assertThat( |
4267 | 260 | selector = self.choose_carriers_page.select_single( | 100 | lambda: self.modem_1.Get(CONNMAN_IFACE, 'Powered'), |
4268 | 261 | objectName="chooseCarrierSim%d" % n | 101 | Eventually(Equals(False)) |
4269 | 262 | ) | 102 | ) |
4270 | 263 | self.system_settings.main_view.scroll_to_and_click(selector) | 103 | |
4271 | 264 | 104 | def test_sim1_online(self): | |
4272 | 265 | def navigate_to_manual(self): | 105 | self.cellular_page.select_sim_for_data('/ril_0') |
4273 | 266 | selector = self.choose_carrier_page.select_single( | 106 | self.assertThat( |
4274 | 267 | toolkit_emulators.ItemSelector, | 107 | lambda: self.modem_0.Get(CONNMAN_IFACE, 'Powered'), |
4275 | 268 | objectName="autoChooseCarrierSelector" | 108 | Eventually(Equals(True)) |
4276 | 269 | ) | 109 | ) |
4277 | 270 | manual = selector.select_single('Label', text=_("Manually")) | 110 | self.assertThat( |
4278 | 271 | self.system_settings.main_view.scroll_to_and_click(manual) | 111 | lambda: self.modem_1.Get(CONNMAN_IFACE, 'Powered'), |
4279 | 272 | choosecarrier = self.system_settings.main_view.cellular_page.\ | 112 | Eventually(Equals(False)) |
4280 | 273 | select_single(objectName="chooseCarrier") | 113 | ) |
4281 | 274 | self.system_settings.main_view.scroll_to_and_click(choosecarrier) | 114 | |
4282 | 275 | self.assertThat( | 115 | def test_sim2_online(self): |
4283 | 276 | self.system_settings.main_view.choose_page.title, | 116 | self.cellular_page.select_sim_for_data('/ril_1') |
4284 | 277 | Equals(_("Carrier")) | 117 | self.assertThat( |
4285 | 278 | ) | 118 | lambda: self.modem_0.Get(CONNMAN_IFACE, 'Powered'), |
4286 | 279 | 119 | Eventually(Equals(False)) | |
4287 | 280 | @property | 120 | ) |
4288 | 281 | def data_preference_selector(self): | 121 | self.assertThat( |
4289 | 282 | """Return data_preference_selector""" | 122 | lambda: self.modem_1.Get(CONNMAN_IFACE, 'Powered'), |
4290 | 123 | Eventually(Equals(True)) | ||
4291 | 124 | ) | ||
4292 | 125 | |||
4293 | 126 | def test_connection_type_on_sim1(self): | ||
4294 | 127 | sim = '/ril_0' | ||
4295 | 128 | stac = self.system_settings.main_view.scroll_to_and_click | ||
4296 | 129 | self.cellular_page.select_sim_for_data(sim) | ||
4297 | 130 | get_pref = lambda: self.modem_0.Get(RDO_IFACE, 'TechnologyPreference') | ||
4298 | 131 | for pref in ['lte', 'umts', 'gsm']: | ||
4299 | 132 | self.cellular_page.set_connection_type( | ||
4300 | 133 | pref, sim=sim, scroll_to_and_click=stac) | ||
4301 | 134 | self.assertThat(get_pref, Eventually(Equals(pref))) | ||
4302 | 135 | |||
4303 | 136 | def test_connection_type_on_sim2(self): | ||
4304 | 137 | sim = '/ril_1' | ||
4305 | 138 | stac = self.system_settings.main_view.scroll_to_and_click | ||
4306 | 139 | self.cellular_page.select_sim_for_data(sim) | ||
4307 | 140 | get_pref = lambda: self.modem_1.Get(RDO_IFACE, 'TechnologyPreference') | ||
4308 | 141 | for pref in ['gsm']: | ||
4309 | 142 | self.cellular_page.set_connection_type( | ||
4310 | 143 | pref, sim=sim, scroll_to_and_click=stac) | ||
4311 | 144 | self.assertThat(get_pref, Eventually(Equals(pref))) | ||
4312 | 145 | |||
4313 | 146 | def test_current_carrier_sim1(self): | ||
4314 | 147 | self.assertThat(lambda: self.modem_0.Get(NETREG_IFACE, 'Name'), | ||
4315 | 148 | Eventually(Equals('fake.tel'))) | ||
4316 | 149 | |||
4317 | 150 | def test_change_carrier_sim1(self): | ||
4318 | 151 | sim = '/ril_0' | ||
4319 | 152 | self.cellular_page.change_carrier('my.cool.telco', sim=sim) | ||
4320 | 153 | |||
4321 | 154 | def test_current_carrier_sim2(self): | ||
4322 | 155 | self.assertThat(lambda: self.modem_1.Get(NETREG_IFACE, 'Name'), | ||
4323 | 156 | Eventually(Equals('fake.tel'))) | ||
4324 | 157 | |||
4325 | 158 | def test_change_carrier_sim2(self): | ||
4326 | 159 | sim = '/ril_1' | ||
4327 | 160 | self.cellular_page.change_carrier('my.cool.telco', sim=sim) | ||
4328 | 161 | |||
4329 | 162 | def test_change_sim1_name(self): | ||
4330 | 163 | gsettings = Gio.Settings.new('com.ubuntu.phone') | ||
4331 | 164 | sim = '/ril_0' | ||
4332 | 283 | try: | 165 | try: |
4334 | 284 | self._pref_selector.get_properties() | 166 | old_name = gsettings.get_value('sim-names')[sim] |
4335 | 285 | except: | 167 | except: |
4544 | 286 | self._pref_selector = \ | 168 | old_name = 'SIM 1' |
4337 | 287 | self.system_settings.main_view.cellular_page.select_single( | ||
4338 | 288 | toolkit_emulators.ItemSelector, | ||
4339 | 289 | objectName="technologyPreferenceSelector" | ||
4340 | 290 | ) | ||
4341 | 291 | return self._pref_selector | ||
4342 | 292 | |||
4343 | 293 | def select_preference(self, label): | ||
4344 | 294 | """Helper method that clicks a preference | ||
4345 | 295 | that matches provided label""" | ||
4346 | 296 | pref = self.data_preference_selector.select_single('Label', text=label) | ||
4347 | 297 | self.system_settings.main_view.scroll_to_and_click(pref) | ||
4348 | 298 | |||
4349 | 299 | def assert_selected_preference(self, index): | ||
4350 | 300 | """Helper method asserting that the selected | ||
4351 | 301 | data technology preference is that of index""" | ||
4352 | 302 | self.assertThat( | ||
4353 | 303 | self.data_preference_selector.selectedIndex, | ||
4354 | 304 | Eventually(Equals(index))) | ||
4355 | 305 | |||
4356 | 306 | def use_selector(self, label): | ||
4357 | 307 | obj = self.system_settings.main_view.cellular_page.select_single( | ||
4358 | 308 | objectName="use" | ||
4359 | 309 | ).select_single(objectName=label) | ||
4360 | 310 | self.system_settings.main_view.scroll_to_and_click(obj) | ||
4361 | 311 | |||
4362 | 312 | def assert_used(self, index): | ||
4363 | 313 | obj = self.system_settings.main_view.cellular_page.select_single( | ||
4364 | 314 | objectName="use" | ||
4365 | 315 | ) | ||
4366 | 316 | self.assertThat( | ||
4367 | 317 | obj.selectedIndex, Eventually(Equals(index))) | ||
4368 | 318 | |||
4369 | 319 | def get_sim_name(self, num): | ||
4370 | 320 | obj = self.system_settings.main_view.cellular_page.select_single( | ||
4371 | 321 | objectName="simLabel%d" % num) | ||
4372 | 322 | return obj.get_properties()['text'] | ||
4373 | 323 | |||
4374 | 324 | def rename_sim(self, num, new_name): | ||
4375 | 325 | obj = self.system_settings.main_view.cellular_page.select_single( | ||
4376 | 326 | objectName="simEditor" | ||
4377 | 327 | ).select_single(objectName="editSim%d" % num) | ||
4378 | 328 | self.system_settings.main_view.scroll_to_and_click(obj) | ||
4379 | 329 | field = self.system_settings.main_view.cellular_page.select_single( | ||
4380 | 330 | objectName="nameField" | ||
4381 | 331 | ) | ||
4382 | 332 | self.system_settings.main_view.scroll_to_and_click(field) | ||
4383 | 333 | self.system_settings.main_view.scroll_to_and_click( | ||
4384 | 334 | field.select_single(objectName="clear_button")) | ||
4385 | 335 | self.keyboard.type(new_name) | ||
4386 | 336 | self.system_settings.main_view.scroll_to_and_click( | ||
4387 | 337 | self.system_settings.main_view.cellular_page.select_single( | ||
4388 | 338 | objectName="doRename")) | ||
4389 | 339 | |||
4390 | 340 | def test_use_sim_1(self): | ||
4391 | 341 | self.use_selector(USE_OFF) | ||
4392 | 342 | self.use_selector(USE_SIM_1) | ||
4393 | 343 | sleep(0.7) | ||
4394 | 344 | self.assertEqual(True, self.modem_0.Get(CONNMAN_IFACE, 'Powered')) | ||
4395 | 345 | self.assertEqual(False, self.modem_1.Get(CONNMAN_IFACE, 'Powered')) | ||
4396 | 346 | |||
4397 | 347 | def test_use_sim_2(self): | ||
4398 | 348 | self.use_selector(USE_OFF) | ||
4399 | 349 | self.use_selector(USE_SIM_2) | ||
4400 | 350 | sleep(0.7) | ||
4401 | 351 | self.assertEqual(False, self.modem_0.Get(CONNMAN_IFACE, 'Powered')) | ||
4402 | 352 | self.assertEqual(True, self.modem_1.Get(CONNMAN_IFACE, 'Powered')) | ||
4403 | 353 | |||
4404 | 354 | def test_turn_off_both_sims(self): | ||
4405 | 355 | self.use_selector(USE_OFF) | ||
4406 | 356 | sleep(0.7) | ||
4407 | 357 | self.assertEqual(False, self.modem_0.Get(CONNMAN_IFACE, 'Powered')) | ||
4408 | 358 | self.assertEqual(False, self.modem_1.Get(CONNMAN_IFACE, 'Powered')) | ||
4409 | 359 | |||
4410 | 360 | def test_use_gsm_for_sim_1(self): | ||
4411 | 361 | self.use_selector(USE_SIM_1) | ||
4412 | 362 | self.select_preference(PREFERENCE_2G) | ||
4413 | 363 | sleep(0.7) | ||
4414 | 364 | self.assertEqual( | ||
4415 | 365 | 'gsm', self.modem_0.Get(RDO_IFACE, 'TechnologyPreference')) | ||
4416 | 366 | |||
4417 | 367 | def test_use_umts_for_sim_1(self): | ||
4418 | 368 | self.use_selector(USE_SIM_1) | ||
4419 | 369 | self.select_preference(PREFERENCE_UMTS) | ||
4420 | 370 | sleep(0.7) | ||
4421 | 371 | self.assertEqual( | ||
4422 | 372 | 'umts', self.modem_0.Get(RDO_IFACE, 'TechnologyPreference')) | ||
4423 | 373 | |||
4424 | 374 | def test_use_gsm_for_sim_2(self): | ||
4425 | 375 | self.use_selector(USE_SIM_1) | ||
4426 | 376 | self.select_preference(PREFERENCE_2G) | ||
4427 | 377 | sleep(0.7) | ||
4428 | 378 | self.assertEqual( | ||
4429 | 379 | 'gsm', self.modem_0.Get(RDO_IFACE, 'TechnologyPreference')) | ||
4430 | 380 | |||
4431 | 381 | def test_when_sim_1_comes_online_ui_is_correct(self): | ||
4432 | 382 | self.use_selector(USE_SIM_1) | ||
4433 | 383 | self.select_preference(PREFERENCE_UMTS) | ||
4434 | 384 | self.use_selector(USE_OFF) | ||
4435 | 385 | sleep(0.7) | ||
4436 | 386 | self.modem_0.Set(CONNMAN_IFACE, 'Powered', True) | ||
4437 | 387 | self.modem_0.EmitSignal( | ||
4438 | 388 | CONNMAN_IFACE, | ||
4439 | 389 | 'PropertyChanged', | ||
4440 | 390 | 'sv', | ||
4441 | 391 | ['Powered', 'true']) | ||
4442 | 392 | |||
4443 | 393 | self.assertEqual( | ||
4444 | 394 | 'umts', self.modem_0.Get(RDO_IFACE, 'TechnologyPreference')) | ||
4445 | 395 | self.assert_used(1) | ||
4446 | 396 | self.assert_selected_preference(1) | ||
4447 | 397 | |||
4448 | 398 | def test_when_sim_2_comes_online_ui_is_correct(self): | ||
4449 | 399 | self.use_selector(USE_SIM_2) | ||
4450 | 400 | self.select_preference(PREFERENCE_2G) | ||
4451 | 401 | self.use_selector(USE_OFF) | ||
4452 | 402 | sleep(2) | ||
4453 | 403 | self.modem_1.Set(CONNMAN_IFACE, 'Powered', True) | ||
4454 | 404 | self.modem_1.EmitSignal( | ||
4455 | 405 | CONNMAN_IFACE, | ||
4456 | 406 | 'PropertyChanged', | ||
4457 | 407 | 'sv', | ||
4458 | 408 | ['Powered', 'true']) | ||
4459 | 409 | |||
4460 | 410 | self.assertEqual( | ||
4461 | 411 | 'gsm', self.modem_1.Get(RDO_IFACE, 'TechnologyPreference')) | ||
4462 | 412 | self.assert_used(2) | ||
4463 | 413 | self.assert_selected_preference(0) | ||
4464 | 414 | |||
4465 | 415 | def test_roaming_switch(self): | ||
4466 | 416 | roaming_switch = self.system_settings.main_view.select_single( | ||
4467 | 417 | objectName="dataRoamingSwitch" | ||
4468 | 418 | ) | ||
4469 | 419 | # assert that roaming_switch is enabled | ||
4470 | 420 | self.assertTrue(roaming_switch.get_properties()['enabled']) | ||
4471 | 421 | |||
4472 | 422 | # click off | ||
4473 | 423 | self.use_selector(USE_OFF) | ||
4474 | 424 | |||
4475 | 425 | # assert roaming_switch is disabled | ||
4476 | 426 | self.assertThat( | ||
4477 | 427 | roaming_switch.get_properties()['enabled'], | ||
4478 | 428 | Eventually(Equals(False))) | ||
4479 | 429 | |||
4480 | 430 | def test_allow_roaming(self): | ||
4481 | 431 | self.use_selector(USE_SIM_1) | ||
4482 | 432 | self.assertEqual( | ||
4483 | 433 | False, self.modem_0.Get(CONNMAN_IFACE, 'RoamingAllowed')) | ||
4484 | 434 | roaming_switch = self.system_settings.main_view.select_single( | ||
4485 | 435 | objectName="dataRoamingSwitch" | ||
4486 | 436 | ) | ||
4487 | 437 | self.system_settings.main_view.scroll_to_and_click(roaming_switch) | ||
4488 | 438 | sleep(1.5) | ||
4489 | 439 | self.assertEqual( | ||
4490 | 440 | True, self.modem_0.Get(CONNMAN_IFACE, 'RoamingAllowed')) | ||
4491 | 441 | |||
4492 | 442 | def test_no_radio_preference(self): | ||
4493 | 443 | self.select_preference(PREFERENCE_UMTS) | ||
4494 | 444 | self.use_selector(USE_OFF) | ||
4495 | 445 | |||
4496 | 446 | self.modem_0.Set(RDO_IFACE, 'TechnologyPreference', '') | ||
4497 | 447 | self.modem_0.EmitSignal( | ||
4498 | 448 | CONNMAN_IFACE, | ||
4499 | 449 | 'PropertyChanged', | ||
4500 | 450 | 'sv', | ||
4501 | 451 | ['TechnologyPreference', '']) | ||
4502 | 452 | |||
4503 | 453 | self.assertThat( | ||
4504 | 454 | self.data_preference_selector.get_properties()['visible'], | ||
4505 | 455 | Eventually(Equals(False))) | ||
4506 | 456 | |||
4507 | 457 | # see | ||
4508 | 458 | # https://gitorious.org/python-dbusmock/python-dbusmock/merge_requests/3 | ||
4509 | 459 | @skip('skipped due to bug in dbusmock') | ||
4510 | 460 | def test_change_op_sim_1(self): | ||
4511 | 461 | self.navigate_to_carriers_page() | ||
4512 | 462 | self.navigate_to_carrier_page_for_sim(1) | ||
4513 | 463 | carriers = self.system_settings.main_view.choose_page.select_single( | ||
4514 | 464 | toolkit_emulators.ItemSelector, objectName="carrierSelector") | ||
4515 | 465 | manual = carriers.select_single('Label', text="my.cool.telco") | ||
4516 | 466 | self.assertThat(manual, NotEquals(None)) | ||
4517 | 467 | |||
4518 | 468 | # see | ||
4519 | 469 | # https://gitorious.org/python-dbusmock/python-dbusmock/merge_requests/3 | ||
4520 | 470 | @skip('skipped due to bug in dbusmock') | ||
4521 | 471 | def test_change_op_sim_2(self): | ||
4522 | 472 | self.navigate_to_carriers_page() | ||
4523 | 473 | self.navigate_to_carrier_page_for_sim(2) | ||
4524 | 474 | carriers = self.system_settings.main_view.choose_page.select_single( | ||
4525 | 475 | toolkit_emulators.ItemSelector, objectName="carrierSelector") | ||
4526 | 476 | manual = carriers.select_single('Label', text="my.cool.telco") | ||
4527 | 477 | self.assertThat(manual, NotEquals(None)) | ||
4528 | 478 | |||
4529 | 479 | def test_radio_preference_changes(self): | ||
4530 | 480 | self.use_selector(USE_SIM_1) | ||
4531 | 481 | |||
4532 | 482 | self.modem_0.Set(RDO_IFACE, 'TechnologyPreference', 'umts') | ||
4533 | 483 | self.modem_0.EmitSignal( | ||
4534 | 484 | RDO_IFACE, | ||
4535 | 485 | 'PropertyChanged', | ||
4536 | 486 | 'sv', | ||
4537 | 487 | ['TechnologyPreference', 'umts']) | ||
4538 | 488 | |||
4539 | 489 | self.assert_selected_preference(1) | ||
4540 | 490 | |||
4541 | 491 | def test_changing_sim1_name(self): | ||
4542 | 492 | gsettings = Gio.Settings.new('com.ubuntu.phone') | ||
4543 | 493 | old_name = gsettings.get_value('sim-names')['/ril_0'] | ||
4545 | 494 | new_name = 'FOO BAR' | 169 | new_name = 'FOO BAR' |
4547 | 495 | self.rename_sim(1, new_name) | 170 | self.cellular_page.set_name(sim, new_name) |
4548 | 496 | 171 | ||
4549 | 497 | # wait for gsettings | ||
4550 | 498 | sleep(1) | ||
4551 | 499 | try: | 172 | try: |
4554 | 500 | self.assertEqual( | 173 | self.assertThat( |
4555 | 501 | new_name, gsettings.get_value('sim-names')['/ril_0']) | 174 | lambda: gsettings.get_value('sim-names')[sim], |
4556 | 175 | Eventually(Equals(new_name))) | ||
4557 | 502 | except Exception as e: | 176 | except Exception as e: |
4558 | 503 | raise e | 177 | raise e |
4559 | 504 | finally: | 178 | finally: |
4561 | 505 | self.rename_sim(1, old_name) | 179 | self.cellular_page.set_name(sim, old_name) |
4562 | 180 | # wait for gsettings | ||
4563 | 506 | sleep(1) | 181 | sleep(1) |
4564 | 507 | 182 | ||
4566 | 508 | def test_changing_sim2_name(self): | 183 | def test_change_sim2_name(self): |
4567 | 509 | gsettings = Gio.Settings.new('com.ubuntu.phone') | 184 | gsettings = Gio.Settings.new('com.ubuntu.phone') |
4569 | 510 | old_name = gsettings.get_value('sim-names')['/ril_1'] | 185 | sim = '/ril_1' |
4570 | 186 | |||
4571 | 187 | try: | ||
4572 | 188 | old_name = gsettings.get_value('sim-names')[sim] | ||
4573 | 189 | except: | ||
4574 | 190 | old_name = 'SIM 2' | ||
4575 | 191 | |||
4576 | 511 | new_name = 'BAR BAZ' | 192 | new_name = 'BAR BAZ' |
4578 | 512 | self.rename_sim(2, new_name) | 193 | self.cellular_page.set_name(sim, new_name) |
4579 | 513 | 194 | ||
4580 | 514 | # wait for gsettings | ||
4581 | 515 | sleep(1) | ||
4582 | 516 | try: | 195 | try: |
4585 | 517 | self.assertEqual( | 196 | self.assertThat( |
4586 | 518 | new_name, gsettings.get_value('sim-names')['/ril_1']) | 197 | lambda: gsettings.get_value('sim-names')[sim], |
4587 | 198 | Eventually(Equals(new_name))) | ||
4588 | 519 | except Exception as e: | 199 | except Exception as e: |
4589 | 520 | raise e | 200 | raise e |
4590 | 521 | finally: | 201 | finally: |
4592 | 522 | self.rename_sim(2, old_name) | 202 | self.cellular_page.set_name(sim, old_name) |
4593 | 523 | # wait for gsettings | 203 | # wait for gsettings |
4594 | 524 | sleep(1) | 204 | sleep(1) |
4595 | 525 | 205 | ||
4597 | 526 | def test_changes_to_sim_names_in_gsettings_are_reflected_in_ui(self): | 206 | def test_remote_manipulation_of_name(self): |
4598 | 527 | gsettings = Gio.Settings.new('com.ubuntu.phone') | 207 | gsettings = Gio.Settings.new('com.ubuntu.phone') |
4599 | 528 | old_names = gsettings.get_value('sim-names') | 208 | old_names = gsettings.get_value('sim-names') |
4601 | 529 | 209 | sim = '/ril_0' | |
4602 | 210 | name = 'BAS QUX' | ||
4603 | 530 | new_names = old_names.unpack() | 211 | new_names = old_names.unpack() |
4605 | 531 | new_names['/ril_0'] = 'BAS QUX' | 212 | new_names[sim] = name |
4606 | 532 | new_names = GLib.Variant('a{ss}', new_names) | 213 | new_names = GLib.Variant('a{ss}', new_names) |
4607 | 533 | gsettings.set_value('sim-names', new_names) | 214 | gsettings.set_value('sim-names', new_names) |
4608 | 534 | |||
4609 | 535 | # wait for gsettings | ||
4610 | 536 | sleep(1) | ||
4611 | 537 | try: | 215 | try: |
4613 | 538 | self.assertIn(new_names['/ril_0'], self.get_sim_name(1)) | 216 | self.assertThat( |
4614 | 217 | lambda: self.cellular_page.get_name(sim), | ||
4615 | 218 | Eventually(StartsWith(name))) | ||
4616 | 539 | except Exception as e: | 219 | except Exception as e: |
4617 | 540 | raise e | 220 | raise e |
4618 | 541 | finally: | 221 | finally: |
4619 | @@ -543,6 +223,36 @@ | |||
4620 | 543 | # wait for gsettings | 223 | # wait for gsettings |
4621 | 544 | sleep(1) | 224 | sleep(1) |
4622 | 545 | 225 | ||
4623 | 226 | def test_roaming_switch(self): | ||
4624 | 227 | self.cellular_page.disable_datas() | ||
4625 | 228 | # assert roaming_switch is disabled | ||
4626 | 229 | self.assertThat( | ||
4627 | 230 | lambda: self.cellular_page.enable_roaming(timeout=1), | ||
4628 | 231 | raises(AssertionError) | ||
4629 | 232 | ) | ||
4630 | 233 | |||
4631 | 234 | def test_allow_roaming_sim_1(self): | ||
4632 | 235 | sim = '/ril_0' | ||
4633 | 236 | self.cellular_page.select_sim_for_data(sim) | ||
4634 | 237 | |||
4635 | 238 | self.assertEqual( | ||
4636 | 239 | False, self.modem_0.Get(CONNMAN_IFACE, 'RoamingAllowed')) | ||
4637 | 240 | self.cellular_page.enable_roaming() | ||
4638 | 241 | self.assertThat( | ||
4639 | 242 | lambda: self.modem_0.Get(CONNMAN_IFACE, 'RoamingAllowed'), | ||
4640 | 243 | Eventually(Equals(True))) | ||
4641 | 244 | |||
4642 | 245 | def test_allow_roaming_sim_2(self): | ||
4643 | 246 | sim = '/ril_1' | ||
4644 | 247 | self.cellular_page.select_sim_for_data(sim) | ||
4645 | 248 | |||
4646 | 249 | self.assertEqual( | ||
4647 | 250 | False, self.modem_1.Get(CONNMAN_IFACE, 'RoamingAllowed')) | ||
4648 | 251 | self.cellular_page.enable_roaming() | ||
4649 | 252 | self.assertThat( | ||
4650 | 253 | lambda: self.modem_1.Get(CONNMAN_IFACE, 'RoamingAllowed'), | ||
4651 | 254 | Eventually(Equals(True))) | ||
4652 | 255 | |||
4653 | 546 | def test_changing_default_sim_for_calls(self): | 256 | def test_changing_default_sim_for_calls(self): |
4654 | 547 | gsettings = Gio.Settings.new('com.ubuntu.phone') | 257 | gsettings = Gio.Settings.new('com.ubuntu.phone') |
4655 | 548 | default = gsettings.get_value('default-sim-for-calls') | 258 | default = gsettings.get_value('default-sim-for-calls') |
4656 | @@ -556,11 +266,10 @@ | |||
4657 | 556 | # click first sim | 266 | # click first sim |
4658 | 557 | self.system_settings.main_view.scroll_to_and_click( | 267 | self.system_settings.main_view.scroll_to_and_click( |
4659 | 558 | self.get_default_sim_for_calls_selector('/ril_0')) | 268 | self.get_default_sim_for_calls_selector('/ril_0')) |
4665 | 559 | # wait for gsettings | 269 | |
4666 | 560 | sleep(1) | 270 | self.assertThat( |
4667 | 561 | self.assertEqual( | 271 | lambda: gsettings.get_value('default-sim-for-calls').get_string(), |
4668 | 562 | gsettings.get_value('default-sim-for-calls').get_string(), | 272 | Eventually(Equals('/ril_0'))) |
4664 | 563 | '/ril_0') | ||
4669 | 564 | 273 | ||
4670 | 565 | def test_changing_default_sim_for_messages(self): | 274 | def test_changing_default_sim_for_messages(self): |
4671 | 566 | gsettings = Gio.Settings.new('com.ubuntu.phone') | 275 | gsettings = Gio.Settings.new('com.ubuntu.phone') |
4672 | @@ -574,108 +283,8 @@ | |||
4673 | 574 | # click second sim | 283 | # click second sim |
4674 | 575 | self.system_settings.main_view.scroll_to_and_click( | 284 | self.system_settings.main_view.scroll_to_and_click( |
4675 | 576 | self.get_default_sim_for_messages_selector('/ril_1')) | 285 | self.get_default_sim_for_messages_selector('/ril_1')) |
4781 | 577 | # wait for gsettings | 286 | |
4782 | 578 | sleep(1) | 287 | self.assertThat( |
4783 | 579 | self.assertEqual( | 288 | lambda: |
4784 | 580 | gsettings.get_value('default-sim-for-messages').get_string(), | 289 | gsettings.get_value('default-sim-for-messages').get_string(), |
4785 | 581 | '/ril_1') | 290 | Eventually(Equals('/ril_1'))) |
4681 | 582 | |||
4682 | 583 | def test_multi_sim_layout(self): | ||
4683 | 584 | self.system_settings.main_view.cellular_page.\ | ||
4684 | 585 | select_single(objectName="multiSim") | ||
4685 | 586 | self.assertThat(lambda: self.system_settings.main_view.select_single( | ||
4686 | 587 | objectName='singleSim'), raises(StateNotFoundError)) | ||
4687 | 588 | self.assertThat(lambda: self.system_settings.main_view.select_single( | ||
4688 | 589 | objectName='noSim'), raises(StateNotFoundError)) | ||
4689 | 590 | |||
4690 | 591 | def test_remove_one_sim(self): | ||
4691 | 592 | self.modem_0.EmitSignal( | ||
4692 | 593 | SIM_IFACE, | ||
4693 | 594 | 'PropertyChanged', | ||
4694 | 595 | 'sv', | ||
4695 | 596 | ['Present', 'False']) | ||
4696 | 597 | |||
4697 | 598 | self.system_settings.main_view.cellular_page.\ | ||
4698 | 599 | select_single(objectName="singleSim") | ||
4699 | 600 | self.assertThat(lambda: self.system_settings.main_view.select_single( | ||
4700 | 601 | objectName='multiSim'), raises(StateNotFoundError)) | ||
4701 | 602 | self.assertThat(lambda: self.system_settings.main_view.select_single( | ||
4702 | 603 | objectName='noSim'), raises(StateNotFoundError)) | ||
4703 | 604 | |||
4704 | 605 | def test_remove_two_sims(self): | ||
4705 | 606 | self.modem_0.EmitSignal( | ||
4706 | 607 | SIM_IFACE, | ||
4707 | 608 | 'PropertyChanged', | ||
4708 | 609 | 'sv', | ||
4709 | 610 | ['Present', 'False']) | ||
4710 | 611 | |||
4711 | 612 | self.modem_1.EmitSignal( | ||
4712 | 613 | SIM_IFACE, | ||
4713 | 614 | 'PropertyChanged', | ||
4714 | 615 | 'sv', | ||
4715 | 616 | ['Present', 'False']) | ||
4716 | 617 | |||
4717 | 618 | self.system_settings.main_view.cellular_page.\ | ||
4718 | 619 | wait_select_single(objectName="noSim") | ||
4719 | 620 | self.assertThat( | ||
4720 | 621 | lambda: self.system_settings.main_view.select_single( | ||
4721 | 622 | objectName='multiSim'), raises(StateNotFoundError)) | ||
4722 | 623 | self.assertThat( | ||
4723 | 624 | lambda: self.system_settings.main_view.select_single( | ||
4724 | 625 | objectName='singleSim'), raises(StateNotFoundError)) | ||
4725 | 626 | |||
4726 | 627 | def test_remove_and_insert_sims(self): | ||
4727 | 628 | self.modem_0.EmitSignal( | ||
4728 | 629 | SIM_IFACE, | ||
4729 | 630 | 'PropertyChanged', | ||
4730 | 631 | 'sv', | ||
4731 | 632 | ['Present', 'False']) | ||
4732 | 633 | |||
4733 | 634 | self.modem_1.EmitSignal( | ||
4734 | 635 | SIM_IFACE, | ||
4735 | 636 | 'PropertyChanged', | ||
4736 | 637 | 'sv', | ||
4737 | 638 | ['Present', 'False']) | ||
4738 | 639 | |||
4739 | 640 | self.system_settings.main_view.cellular_page.\ | ||
4740 | 641 | wait_select_single(objectName="noSim") | ||
4741 | 642 | self.assertThat( | ||
4742 | 643 | lambda: self.system_settings.main_view.select_single( | ||
4743 | 644 | objectName='multiSim'), raises(StateNotFoundError)) | ||
4744 | 645 | self.assertThat( | ||
4745 | 646 | lambda: self.system_settings.main_view.select_single( | ||
4746 | 647 | objectName='singleSim'), raises(StateNotFoundError)) | ||
4747 | 648 | |||
4748 | 649 | self.modem_0.EmitSignal( | ||
4749 | 650 | SIM_IFACE, | ||
4750 | 651 | 'PropertyChanged', | ||
4751 | 652 | 'sv', | ||
4752 | 653 | ['Present', 'True']) | ||
4753 | 654 | |||
4754 | 655 | self.modem_1.EmitSignal( | ||
4755 | 656 | SIM_IFACE, | ||
4756 | 657 | 'PropertyChanged', | ||
4757 | 658 | 'sv', | ||
4758 | 659 | ['Present', 'True']) | ||
4759 | 660 | |||
4760 | 661 | self.system_settings.main_view.cellular_page.\ | ||
4761 | 662 | wait_select_single(objectName="multiSim") | ||
4762 | 663 | self.assertThat( | ||
4763 | 664 | lambda: self.system_settings.main_view.select_single( | ||
4764 | 665 | objectName='noSim'), raises(StateNotFoundError)) | ||
4765 | 666 | self.assertThat( | ||
4766 | 667 | lambda: self.system_settings.main_view.select_single( | ||
4767 | 668 | objectName='singleSim'), raises(StateNotFoundError)) | ||
4768 | 669 | |||
4769 | 670 | # regression test for 1375832 | ||
4770 | 671 | # tests that the second slot only exposes gsm, which | ||
4771 | 672 | # the testdata indicates | ||
4772 | 673 | def test_slot_two(self): | ||
4773 | 674 | self.modem_0.EmitSignal( | ||
4774 | 675 | SIM_IFACE, | ||
4775 | 676 | 'PropertyChanged', | ||
4776 | 677 | 'sv', | ||
4777 | 678 | ['Present', 'False']) | ||
4778 | 679 | self.select_preference(PREFERENCE_2G) | ||
4779 | 680 | self.assertRaises(StateNotFoundError, | ||
4780 | 681 | self.select_preference, PREFERENCE_UMTS) | ||
4786 | 682 | 291 | ||
4787 | === modified file 'tests/autopilot/ubuntu_system_settings/tests/test_wifi.py' | |||
4788 | --- tests/autopilot/ubuntu_system_settings/tests/test_wifi.py 2014-09-26 12:52:31 +0000 | |||
4789 | +++ tests/autopilot/ubuntu_system_settings/tests/test_wifi.py 2014-11-07 22:38:03 +0000 | |||
4790 | @@ -25,6 +25,11 @@ | |||
4791 | 25 | Equals(_('Wi-Fi'))) | 25 | Equals(_('Wi-Fi'))) |
4792 | 26 | 26 | ||
4793 | 27 | def test_connect_to_hidden_network(self): | 27 | def test_connect_to_hidden_network(self): |
4794 | 28 | if not self.wifi_page.have_wireless(): | ||
4795 | 29 | self.skipTest('Cannot test wireless since it cannot be enabled') | ||
4796 | 30 | self.addCleanup( | ||
4797 | 31 | self.wifi_page._set_wireless, self.wifi_page.get_wireless()) | ||
4798 | 32 | self.wifi_page.enable_wireless() | ||
4799 | 28 | dialog = self.wifi_page.connect_to_hidden_network( | 33 | dialog = self.wifi_page.connect_to_hidden_network( |
4800 | 29 | 'yeah', | 34 | 'yeah', |
4801 | 30 | scroll_to_and_click=self.system_settings.main_view | 35 | scroll_to_and_click=self.system_settings.main_view |
4802 | @@ -47,7 +52,11 @@ | |||
4803 | 47 | dialog.wait_until_destroyed() | 52 | dialog.wait_until_destroyed() |
4804 | 48 | 53 | ||
4805 | 49 | def test_connect_to_nonexistant_hidden_network(self): | 54 | def test_connect_to_nonexistant_hidden_network(self): |
4807 | 50 | 55 | if not self.wifi_page.have_wireless(): | |
4808 | 56 | self.skipTest('Cannot test wireless since it cannot be enabled') | ||
4809 | 57 | self.addCleanup( | ||
4810 | 58 | self.wifi_page._set_wireless, self.wifi_page.get_wireless()) | ||
4811 | 59 | self.wifi_page.enable_wireless() | ||
4812 | 51 | dialog = self.wifi_page.connect_to_hidden_network( | 60 | dialog = self.wifi_page.connect_to_hidden_network( |
4813 | 52 | 'yeah', | 61 | 'yeah', |
4814 | 53 | scroll_to_and_click=self.system_settings.main_view | 62 | scroll_to_and_click=self.system_settings.main_view |
4815 | @@ -72,6 +81,11 @@ | |||
4816 | 72 | 81 | ||
4817 | 73 | @skip('skipped due to bug 1337556') | 82 | @skip('skipped due to bug 1337556') |
4818 | 74 | def test_connect_to_hidden_network_using_secrets(self): | 83 | def test_connect_to_hidden_network_using_secrets(self): |
4819 | 84 | if not self.wifi_page.have_wireless(): | ||
4820 | 85 | self.skipTest('Cannot test wireless since it cannot be enabled') | ||
4821 | 86 | self.addCleanup( | ||
4822 | 87 | self.wifi_page._set_wireless, self.wifi_page.get_wireless()) | ||
4823 | 88 | self.wifi_page.enable_wireless() | ||
4824 | 75 | dialog = self.wifi_page.connect_to_hidden_network( | 89 | dialog = self.wifi_page.connect_to_hidden_network( |
4825 | 76 | 'yeah', security='wpa', password='abcdefgh', | 90 | 'yeah', security='wpa', password='abcdefgh', |
4826 | 77 | scroll_to_and_click=self.system_settings.main_view | 91 | scroll_to_and_click=self.system_settings.main_view |
4827 | @@ -95,6 +109,11 @@ | |||
4828 | 95 | 109 | ||
4829 | 96 | @skip('skipped due to bug 1337556') | 110 | @skip('skipped due to bug 1337556') |
4830 | 97 | def test_connect_to_hidden_network_using_incorrect_secrets(self): | 111 | def test_connect_to_hidden_network_using_incorrect_secrets(self): |
4831 | 112 | if not self.wifi_page.have_wireless(): | ||
4832 | 113 | self.skipTest('Cannot test wireless since it cannot be enabled') | ||
4833 | 114 | self.addCleanup( | ||
4834 | 115 | self.wifi_page._set_wireless, self.wifi_page.get_wireless()) | ||
4835 | 116 | self.wifi_page.enable_wireless() | ||
4836 | 98 | dialog = self.wifi_page.connect_to_hidden_network( | 117 | dialog = self.wifi_page.connect_to_hidden_network( |
4837 | 99 | 'yeah', security='wpa', password='abcdefgh', | 118 | 'yeah', security='wpa', password='abcdefgh', |
4838 | 100 | scroll_to_and_click=self.system_settings.main_view | 119 | scroll_to_and_click=self.system_settings.main_view |
4839 | @@ -117,7 +136,11 @@ | |||
4840 | 117 | _('Your authentication details were incorrect')))) | 136 | _('Your authentication details were incorrect')))) |
4841 | 118 | 137 | ||
4842 | 119 | def test_connect_to_hidden_network_then_cancel(self): | 138 | def test_connect_to_hidden_network_then_cancel(self): |
4844 | 120 | 139 | if not self.wifi_page.have_wireless(): | |
4845 | 140 | self.skipTest('Cannot test wireless since it cannot be enabled') | ||
4846 | 141 | self.addCleanup( | ||
4847 | 142 | self.wifi_page._set_wireless, self.wifi_page.get_wireless()) | ||
4848 | 143 | self.wifi_page.enable_wireless() | ||
4849 | 121 | dialog = self.wifi_page.connect_to_hidden_network( | 144 | dialog = self.wifi_page.connect_to_hidden_network( |
4850 | 122 | 'foo', | 145 | 'foo', |
4851 | 123 | scroll_to_and_click=self.system_settings.main_view | 146 | scroll_to_and_click=self.system_settings.main_view |
4852 | @@ -134,6 +157,18 @@ | |||
4853 | 134 | len(self.device_mock.GetMethodCalls('Disconnect')), | 157 | len(self.device_mock.GetMethodCalls('Disconnect')), |
4854 | 135 | Eventually(Equals(1))) | 158 | Eventually(Equals(1))) |
4855 | 136 | 159 | ||
4856 | 160 | def test_connect_to_hidden_network_dialog_visibility(self): | ||
4857 | 161 | if not self.wifi_page.have_wireless(): | ||
4858 | 162 | self.skipTest('Cannot test wireless since it cannot be enabled') | ||
4859 | 163 | self.addCleanup( | ||
4860 | 164 | self.wifi_page._set_wireless, self.wifi_page.get_wireless()) | ||
4861 | 165 | self.wifi_page.disable_wireless() | ||
4862 | 166 | self.assertThat( | ||
4863 | 167 | lambda: bool(self.wifi_page.select_single( | ||
4864 | 168 | '*', | ||
4865 | 169 | objectName='connectToHiddenNetwork').visible), | ||
4866 | 170 | Eventually(Equals(False)), 'other net dialog not hidden') | ||
4867 | 171 | |||
4868 | 137 | """Note: this test does not actually remove previous networks from the UI. | 172 | """Note: this test does not actually remove previous networks from the UI. |
4869 | 138 | The NetworkManager dbusmock template does not currently support deletion | 173 | The NetworkManager dbusmock template does not currently support deletion |
4870 | 139 | of connections.""" | 174 | of connections.""" |
4871 | @@ -157,5 +192,7 @@ | |||
4872 | 157 | 192 | ||
4873 | 158 | self.system_settings.main_view.go_back() | 193 | self.system_settings.main_view.go_back() |
4874 | 159 | 194 | ||
4875 | 195 | # wait for ui to update | ||
4876 | 196 | sleep(2) | ||
4877 | 160 | self.wifi_page.remove_previous_network( | 197 | self.wifi_page.remove_previous_network( |
4878 | 161 | previous_networks[2]['ssid'], scroll_to_and_click=click_method) | 198 | previous_networks[2]['ssid'], scroll_to_and_click=click_method) |
4879 | 162 | 199 | ||
4880 | === modified file 'wizard/Utils/system.cpp' | |||
4881 | --- wizard/Utils/system.cpp 2014-09-22 15:21:10 +0000 | |||
4882 | +++ wizard/Utils/system.cpp 2014-11-07 22:38:03 +0000 | |||
4883 | @@ -20,6 +20,7 @@ | |||
4884 | 20 | #include <QDBusInterface> | 20 | #include <QDBusInterface> |
4885 | 21 | #include <QDBusPendingCall> | 21 | #include <QDBusPendingCall> |
4886 | 22 | #include <QDBusPendingReply> | 22 | #include <QDBusPendingReply> |
4887 | 23 | #include <QFile> | ||
4888 | 23 | #include <QProcess> | 24 | #include <QProcess> |
4889 | 24 | #include <unistd.h> | 25 | #include <unistd.h> |
4890 | 25 | 26 | ||
4891 | @@ -81,11 +82,14 @@ | |||
4892 | 81 | void System::getHereLicensePathFinished(QDBusPendingCallWatcher *watcher) | 82 | void System::getHereLicensePathFinished(QDBusPendingCallWatcher *watcher) |
4893 | 82 | { | 83 | { |
4894 | 83 | QDBusPendingReply<QVariant> reply = *watcher; | 84 | QDBusPendingReply<QVariant> reply = *watcher; |
4895 | 85 | |||
4896 | 86 | m_hereLicensePath = ""; | ||
4897 | 87 | |||
4898 | 84 | if (!reply.isError()) { | 88 | if (!reply.isError()) { |
4899 | 85 | QVariant value = reply.argumentAt<0>(); | 89 | QVariant value = reply.argumentAt<0>(); |
4903 | 86 | m_hereLicensePath = value.toString(); | 90 | if (QFile::exists(value.toString())) { |
4904 | 87 | } else { | 91 | m_hereLicensePath = value.toString(); |
4905 | 88 | m_hereLicensePath = ""; | 92 | } |
4906 | 89 | } | 93 | } |
4907 | 90 | 94 | ||
4908 | 91 | Q_EMIT hereLicensePathChanged(); | 95 | Q_EMIT hereLicensePathChanged(); |
4909 | 92 | 96 | ||
4910 | === modified file 'wizard/qml/Components/CheckableSetting.qml' | |||
4911 | --- wizard/qml/Components/CheckableSetting.qml 2014-08-21 14:50:29 +0000 | |||
4912 | +++ wizard/qml/Components/CheckableSetting.qml 2014-11-07 22:38:03 +0000 | |||
4913 | @@ -27,9 +27,11 @@ | |||
4914 | 27 | property real leftMargin | 27 | property real leftMargin |
4915 | 28 | property real rightMargin | 28 | property real rightMargin |
4916 | 29 | 29 | ||
4917 | 30 | readonly property real labelOffset: label.x | ||
4918 | 31 | |||
4919 | 30 | signal linkActivated(string link) | 32 | signal linkActivated(string link) |
4920 | 31 | 33 | ||
4922 | 32 | implicitHeight: label.height + units.gu(2) | 34 | implicitHeight: Math.max(label.height, checkBox.height) |
4923 | 33 | 35 | ||
4924 | 34 | Item { | 36 | Item { |
4925 | 35 | anchors.fill: parent | 37 | anchors.fill: parent |
4926 | @@ -39,7 +41,7 @@ | |||
4927 | 39 | 41 | ||
4928 | 40 | anchors { | 42 | anchors { |
4929 | 41 | left: parent.left | 43 | left: parent.left |
4931 | 42 | verticalCenter: parent.verticalCenter | 44 | top: parent.top |
4932 | 43 | leftMargin: listItem.leftMargin | 45 | leftMargin: listItem.leftMargin |
4933 | 44 | } | 46 | } |
4934 | 45 | 47 | ||
4935 | @@ -59,7 +61,10 @@ | |||
4936 | 59 | 61 | ||
4937 | 60 | Connections { | 62 | Connections { |
4938 | 61 | target: listItem.__mouseArea | 63 | target: listItem.__mouseArea |
4940 | 62 | onClicked: listItem.checked = !listItem.checked | 64 | onClicked: { |
4941 | 65 | listItem.checked = !listItem.checked | ||
4942 | 66 | listItem.triggered(listItem.checked) | ||
4943 | 67 | } | ||
4944 | 63 | } | 68 | } |
4945 | 64 | } | 69 | } |
4946 | 65 | 70 | ||
4947 | 66 | 71 | ||
4948 | === modified file 'wizard/qml/Pages/30-passwd-type.qml' | |||
4949 | --- wizard/qml/Pages/30-passwd-type.qml 2014-10-31 15:48:14 +0000 | |||
4950 | +++ wizard/qml/Pages/30-passwd-type.qml 2014-11-07 22:38:03 +0000 | |||
4951 | @@ -93,7 +93,7 @@ | |||
4952 | 93 | desc = i18n.tr("No security") | 93 | desc = i18n.tr("No security") |
4953 | 94 | } else if (method === UbuntuSecurityPrivacyPanel.Passcode) { | 94 | } else if (method === UbuntuSecurityPrivacyPanel.Passcode) { |
4954 | 95 | name = i18n.tr("Passcode") | 95 | name = i18n.tr("Passcode") |
4956 | 96 | desc = i18n.tr("4 numbers") | 96 | desc = i18n.tr("4 digits only") |
4957 | 97 | } else { | 97 | } else { |
4958 | 98 | name = i18n.tr("Passphrase") | 98 | name = i18n.tr("Passphrase") |
4959 | 99 | desc = i18n.tr("Numbers and letters") | 99 | desc = i18n.tr("Numbers and letters") |
4960 | 100 | 100 | ||
4961 | === modified file 'wizard/qml/Pages/50-location.qml' | |||
4962 | --- wizard/qml/Pages/50-location.qml 2014-10-22 15:35:00 +0000 | |||
4963 | +++ wizard/qml/Pages/50-location.qml 2014-11-07 22:38:03 +0000 | |||
4964 | @@ -25,7 +25,15 @@ | |||
4965 | 25 | title: i18n.tr("Location") | 25 | title: i18n.tr("Location") |
4966 | 26 | forwardButtonSourceComponent: forwardButton | 26 | forwardButtonSourceComponent: forwardButton |
4967 | 27 | 27 | ||
4969 | 28 | property bool hereInstalled: System.hereLicensePath !== "" && termsModel.count > 0 | 28 | property bool pathSet: System.hereLicensePath !== " " // single space means it's unassigned |
4970 | 29 | property bool countSet: false | ||
4971 | 30 | skipValid: pathSet && (System.hereLicensePath === "" || countSet) | ||
4972 | 31 | skip: skipValid && (System.hereLicensePath === "" || termsModel.count === 0) | ||
4973 | 32 | |||
4974 | 33 | Connections { | ||
4975 | 34 | target: termsModel | ||
4976 | 35 | onCountChanged: if (pathSet) countSet = true | ||
4977 | 36 | } | ||
4978 | 29 | 37 | ||
4979 | 30 | FolderListModel { | 38 | FolderListModel { |
4980 | 31 | id: termsModel | 39 | id: termsModel |
4981 | @@ -40,13 +48,15 @@ | |||
4982 | 40 | busType: QMenuModel.DBus.SessionBus | 48 | busType: QMenuModel.DBus.SessionBus |
4983 | 41 | busName: "com.canonical.indicator.location" | 49 | busName: "com.canonical.indicator.location" |
4984 | 42 | objectPath: "/com/canonical/indicator/location" | 50 | objectPath: "/com/canonical/indicator/location" |
4986 | 43 | property variant enabled: action("location-detection-enabled") | 51 | property variant location: action("location-detection-enabled") |
4987 | 52 | property variant gps: action("gps-detection-enabled") | ||
4988 | 44 | Component.onCompleted: start() | 53 | Component.onCompleted: start() |
4989 | 45 | } | 54 | } |
4990 | 46 | 55 | ||
4991 | 47 | Column { | 56 | Column { |
4992 | 48 | id: column | 57 | id: column |
4993 | 49 | anchors.fill: content | 58 | anchors.fill: content |
4994 | 59 | <<<<<<< TREE | ||
4995 | 50 | spacing: units.gu(2) | 60 | spacing: units.gu(2) |
4996 | 51 | 61 | ||
4997 | 52 | Label { | 62 | Label { |
4998 | @@ -83,6 +93,73 @@ | |||
4999 | 83 | visible: hereInstalled | 93 | visible: hereInstalled |
5000 | 84 | wrapMode: Text.Wrap | 94 | wrapMode: Text.Wrap |
The diff has been truncated for viewing.
Please create a new branch based on lp:ubuntu-system-settings/rtm-14.09 and merge just the commits from trunk into your new branch. Then propose that branch.
For example:
bzr branch lp:ubuntu-system-settings/rtm-14.09
cd rtm-14.09
bzr merge lp:ubuntu-system-settings -r 1187..1189
However that will still conflict slightly, you'll need to manually merge 2 files because they have diverged too much between trunk and rtm at this point.