on xenial help sign in
Update to trunk
commit89e5cb4937bfa3576d5f733fe282c472cdc888f0 authorTed Gould <ted@gould.cx> dateTue 19 Apr 2016, 12:19 (10 years ago) parent854fc6b91c104f
11 files changed+493−346
data/com.canonical.Unity8.gschema.xml+5 debian/changelog+12 po/ast.po+23−32 po/br.po+50−57 po/gd.po+87−70 po/zh_CN.po+79−88 qml/OrientedShell.qml+27−12 qml/Shell.qml+1−1 tests/mocks/GSettings.1.0/fake_gsettings.cpp+126−38 tests/mocks/GSettings.1.0/fake_gsettings.h+51−26 tests/qmltests/tst_OrientedShell.qml+32−22
data/com.canonical.Unity8.gschema.xml+5
@@ -27,6 +27,11 @@
2727 <summary>Maximum push needed to overcome edge barrier</summary>
2828 <description>How much you have to push (in grid units) the mouse against an edge barrier when sensibility is 1.</description>
2929 </key>
30+ <key type="u" name="edge-drag-width">
31+ <default>2</default>
32+ <summary>The width of the edge drag areas</summary>
33+ <description>How big (in grid units) the edge-drag sensitive area should be.</description>
34+ </key>
3035 <key type="b" name="autohide-launcher">
3136 <default>true</default>
3237 <summary>Autohide the launcher</summary>
debian/changelog+12
@@ -1,3 +1,15 @@
1+unity8 (8.12+16.04.20160414.1-0ubuntu1) xenial; urgency=medium
2+
3+ [ Michael Terry ]
4+ * Make sure that usageMode is set on startup, fixing a problem with
5+ the tutorial not noticing that it is running on a desktop. (LP:
6+ #1564351)
7+
8+ [ Michael Zanetti ]
9+ * make the edge drag area width configurable (LP: #1559512)
10+
11+ -- Michael Zanetti <michael.zanetti@canonical.com> Thu, 14 Apr 2016 21:20:28 +0000
12+
113unity8 (8.12+16.04.20160401-0ubuntu1) xenial; urgency=medium
214
315 * Add missing Testsuite header
po/ast.po+23−32
@@ -8,15 +8,15 @@ msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1010"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11−"PO-Revision-Date: 2016-03-12 00:17+0000\n"
12−"Last-Translator: enolp <enolp@softastur.org>\n"
11+"PO-Revision-Date: 2016-04-17 16:57+0000\n"
12+"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17958)\n"
18+"X-Launchpad-Export-Date: 2016-04-18 05:42+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -187,7 +187,7 @@ msgstr ""
187187
188188#: qml/Dash/FiltersPopover.qml:69
189189msgid "Reset"
190−msgstr ""
190+msgstr "Reafitar"
191191
192192#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
193193msgid "See less"
@@ -208,7 +208,7 @@ msgstr ""
208208
209209#: qml/Dash/PageHeaderExtraPanel.qml:66
210210msgid "Clear All"
211−msgstr ""
211+msgstr "Llimpiar too"
212212
213213#: qml/Dash/Previews/PreviewActionCombo.qml:35
214214msgid "More..."
@@ -478,7 +478,7 @@ msgstr "Atrás"
478478
479479#: qml/Wizard/Pages/10-welcome.qml:27
480480msgid "Language"
481−msgstr ""
481+msgstr "Llingua"
482482
483483#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
484484#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
@@ -487,7 +487,7 @@ msgstr ""
487487#: qml/Wizard/Pages/passcode-desktop.qml:124
488488#: qml/Wizard/Pages/password-set.qml:141
489489msgid "Next"
490−msgstr ""
490+msgstr "Siguiente"
491491
492492#: qml/Wizard/Pages/30-wifi.qml:29
493493msgid "Connect to Wi‑Fi"
@@ -495,15 +495,15 @@ msgstr "Coneutase al WiFi"
495495
496496#: qml/Wizard/Pages/30-wifi.qml:130
497497msgid "Connected"
498−msgstr ""
498+msgstr "Coneutáu"
499499
500500#: qml/Wizard/Pages/30-wifi.qml:163
501501msgid "Available Wi-Fi networks"
502−msgstr ""
502+msgstr "Redes Wi-Fi disponibles"
503503
504504#: qml/Wizard/Pages/30-wifi.qml:164
505505msgid "No available Wi-Fi networks"
506−msgstr ""
506+msgstr "Nun hai redes Wi-Fi disponibles"
507507
508508#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
509509#: qml/Wizard/Pages/sim.qml:101
@@ -544,23 +544,23 @@ msgstr ""
544544
545545#: qml/Wizard/Pages/50-timezone.qml:29
546546msgid "Time Zone"
547−msgstr ""
547+msgstr "Estaya horaria"
548548
549549#: qml/Wizard/Pages/50-timezone.qml:178
550550msgid "Enter your city"
551−msgstr ""
551+msgstr "Escribe la ciudá"
552552
553553#: qml/Wizard/Pages/60-account.qml:24
554554msgid "Personalize Your Device"
555−msgstr ""
555+msgstr "Personaliza'l preséu"
556556
557557#: qml/Wizard/Pages/60-account.qml:48
558558msgid "Preferred Name"
559−msgstr ""
559+msgstr "Nome preferíu"
560560
561561#: qml/Wizard/Pages/70-passwd-type.qml:39
562562msgid "Lock Screen"
563−msgstr ""
563+msgstr "Bloquiar pantalla"
564564
565565#: qml/Wizard/Pages/70-passwd-type.qml:101
566566msgctxt "Label: Type of security method"
@@ -595,7 +595,7 @@ msgstr ""
595595
596596#: qml/Wizard/Pages/80-finished.qml:89
597597msgid "Welcome to Ubuntu"
598−msgstr ""
598+msgstr "Bienveníu/a a Ubuntu"
599599
600600#: qml/Wizard/Pages/80-finished.qml:104
601601msgid "You are ready to use your device now"
@@ -603,7 +603,7 @@ msgstr ""
603603
604604#: qml/Wizard/Pages/80-finished.qml:124
605605msgid "Get Started"
606−msgstr ""
606+msgstr "Primeros pasos"
607607
608608#: qml/Wizard/Pages/here-terms.qml:25
609609msgid "Terms & Conditions"
@@ -692,7 +692,7 @@ msgstr ""
692692
693693#: qml/Wizard/Pages/password-set.qml:103
694694msgid "Confirm password"
695−msgstr ""
695+msgstr "Confirmar contraseña"
696696
697697#: qml/Wizard/Pages/sim.qml:27
698698msgid "No SIM card installed"
@@ -728,19 +728,19 @@ msgstr ""
728728
729729#: qml/Wizard/PasswordMeter.qml:93
730730msgid "Strong password"
731−msgstr ""
731+msgstr "Contraseña fuerte"
732732
733733#: qml/Wizard/PasswordMeter.qml:95
734734msgid "Fair password"
735−msgstr ""
735+msgstr "Contraseña aceutable"
736736
737737#: qml/Wizard/PasswordMeter.qml:97
738738msgid "Weak password"
739−msgstr ""
739+msgstr "Contraseña feble"
740740
741741#: qml/Wizard/PasswordMeter.qml:99
742742msgid "Very weak password"
743−msgstr ""
743+msgstr "Contraseña feble enforma"
744744
745745#~ msgid "Skip intro"
746746#~ msgstr "Omitir la intro"
@@ -1056,12 +1056,3 @@ msgstr ""
10561056
10571057#~ msgid "Call back"
10581058#~ msgstr "Devolver llamada"
1059−
1060−#~ msgid "Your device is now ready to use."
1061−#~ msgstr "Agora'l to preséu ta preparáu pa usase."
1062−
1063−#~ msgid "Welcome to your Ubuntu device."
1064−#~ msgstr "Bienllegáu/ada al to preséu d'Ubuntu."
1065−
1066−#~ msgid "Please select how you’d like to unlock your device."
1067−#~ msgstr "Esbilla cómo te prestaría desbloquiar el to preséu, por favor."
po/br.po+50−57
@@ -8,15 +8,15 @@ msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1010"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11−"PO-Revision-Date: 2016-02-22 12:29+0000\n"
11+"PO-Revision-Date: 2016-04-18 07:33+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-03-24 06:07+0000\n"
19−"X-Generator: Launchpad (build 17958)\n"
18+"X-Launchpad-Export-Date: 2016-04-19 04:59+0000\n"
19+"X-Generator: Launchpad (build 17995)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -144,6 +144,8 @@ msgctxt ""
144144"Re-dock means connect the device again to an external screen/mouse/keyboard"
145145msgid "Re-dock, save your work and close these apps to continue."
146146msgstr ""
147+"Adkevreit ouzh ar savlec'h degemer, enrollot ho labour ha serrit an arloadoù-"
148+"mañ evit kenderc'hel."
147149
148150#: qml/Components/ModeSwitchWarningDialog.qml:63
149151msgid "Or force close now (unsaved data will be lost)."
@@ -191,7 +193,7 @@ msgstr ""
191193
192194#: qml/Dash/FiltersPopover.qml:69
193195msgid "Reset"
194−msgstr ""
196+msgstr "Adderaouekaat"
195197
196198#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
197199msgid "See less"
@@ -208,11 +210,11 @@ msgstr "Klask"
208210
209211#: qml/Dash/PageHeaderExtraPanel.qml:55
210212msgid "Recent Searches"
211−msgstr ""
213+msgstr "Enklaskoù graet nevez zo"
212214
213215#: qml/Dash/PageHeaderExtraPanel.qml:66
214216msgid "Clear All"
215−msgstr ""
217+msgstr "Diverkañ pep tra"
216218
217219#: qml/Dash/Previews/PreviewActionCombo.qml:35
218220msgid "More..."
@@ -433,7 +435,7 @@ msgstr ""
433435
434436#: qml/Tutorial/TutorialBottom.qml:78
435437msgid "Swipe up to add a contact"
436−msgstr ""
438+msgstr "Riklit d'an nec'h evit ouzhpennañ un darempred"
437439
438440#: qml/Tutorial/TutorialBottom.qml:80
439441msgid "Swipe up for favorite calculations"
@@ -445,7 +447,7 @@ msgstr ""
445447
446448#: qml/Tutorial/TutorialBottom.qml:84
447449msgid "Swipe up to create a message"
448−msgstr ""
450+msgstr "Riklit d'an nec'h evit krouiñ ur gemennadenn"
449451
450452#: qml/Tutorial/TutorialBottom.qml:85
451453msgid "Swipe up to manage the app"
@@ -482,7 +484,7 @@ msgstr "Distreiñ"
482484
483485#: qml/Wizard/Pages/10-welcome.qml:27
484486msgid "Language"
485−msgstr ""
487+msgstr "Yezh"
486488
487489#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
488490#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
@@ -491,7 +493,7 @@ msgstr ""
491493#: qml/Wizard/Pages/passcode-desktop.qml:124
492494#: qml/Wizard/Pages/password-set.qml:141
493495msgid "Next"
494−msgstr ""
496+msgstr "War-lerc'h"
495497
496498#: qml/Wizard/Pages/30-wifi.qml:29
497499msgid "Connect to Wi‑Fi"
@@ -499,15 +501,15 @@ msgstr "Kevreañ ouzh ar Wi-Fi"
499501
500502#: qml/Wizard/Pages/30-wifi.qml:130
501503msgid "Connected"
502−msgstr ""
504+msgstr "Kevreet"
503505
504506#: qml/Wizard/Pages/30-wifi.qml:163
505507msgid "Available Wi-Fi networks"
506−msgstr ""
508+msgstr "Rouedadoù Wi-Fi da gaout"
507509
508510#: qml/Wizard/Pages/30-wifi.qml:164
509511msgid "No available Wi-Fi networks"
510−msgstr ""
512+msgstr "N'eus ket rouedadoù Wi-Fi da gaout"
511513
512514#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
513515#: qml/Wizard/Pages/sim.qml:101
@@ -516,7 +518,7 @@ msgstr "Tremen hebiou"
516518
517519#: qml/Wizard/Pages/40-location.qml:27
518520msgid "Location Services"
519−msgstr ""
521+msgstr "Servijoù lec'hiañ"
520522
521523#: qml/Wizard/Pages/40-location.qml:83
522524msgid ""
@@ -532,15 +534,15 @@ msgstr ""
532534#: qml/Wizard/Pages/40-location.qml:106
533535msgctxt "part of: Nokia HERE terms and conditions"
534536msgid "terms and conditions"
535−msgstr ""
537+msgstr "penndivizoù implij"
536538
537539#: qml/Wizard/Pages/40-location.qml:160
538540msgid "GPS only"
539−msgstr ""
541+msgstr "GPS hepken"
540542
541543#: qml/Wizard/Pages/40-location.qml:214
542544msgid "Don't use my location"
543−msgstr ""
545+msgstr "Arabat implijout ma lec'h"
544546
545547#: qml/Wizard/Pages/40-location.qml:260
546548msgid "You can change it later in System Settings."
@@ -548,15 +550,15 @@ msgstr ""
548550
549551#: qml/Wizard/Pages/50-timezone.qml:29
550552msgid "Time Zone"
551−msgstr ""
553+msgstr "Gwerzhid-eur"
552554
553555#: qml/Wizard/Pages/50-timezone.qml:178
554556msgid "Enter your city"
555−msgstr ""
557+msgstr "Skrivit ho kêr"
556558
557559#: qml/Wizard/Pages/60-account.qml:24
558560msgid "Personalize Your Device"
559−msgstr ""
561+msgstr "Personelaat ho penveg"
560562
561563#: qml/Wizard/Pages/60-account.qml:48
562564msgid "Preferred Name"
@@ -564,30 +566,30 @@ msgstr ""
564566
565567#: qml/Wizard/Pages/70-passwd-type.qml:39
566568msgid "Lock Screen"
567−msgstr ""
569+msgstr "Prennañ ar skramm"
568570
569571#: qml/Wizard/Pages/70-passwd-type.qml:101
570572msgctxt "Label: Type of security method"
571573msgid "Create new password"
572−msgstr ""
574+msgstr "Krouiñ ur ger-tremen nevez"
573575
574576#: qml/Wizard/Pages/70-passwd-type.qml:103
575577msgctxt "Label: Type of security method"
576578msgid "Create passcode (numbers only)"
577−msgstr ""
579+msgstr "Krouiñ ur c'hod (difroù hepken)"
578580
579581#: qml/Wizard/Pages/70-passwd-type.qml:105
580582msgctxt "Label: Type of security method"
581583msgid "No lock code"
582−msgstr ""
584+msgstr "N'eus kod prennañ ebet"
583585
584586#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
585587msgid "Privacy Policy"
586−msgstr ""
588+msgstr "Reolennoù prevezded"
587589
588590#: qml/Wizard/Pages/75-report-check.qml:26
589591msgid "Help Us Improve"
590−msgstr ""
592+msgstr "Sikourit ac'hanomp da wellaat"
591593
592594#: qml/Wizard/Pages/75-report-check.qml:59
593595msgid "Improve system performance by sending us crashes and error reports."
@@ -595,19 +597,19 @@ msgstr ""
595597
596598#: qml/Wizard/Pages/75-report-check.qml:60
597599msgid "Privacy policy"
598−msgstr ""
600+msgstr "Reolennoù buhez prevez"
599601
600602#: qml/Wizard/Pages/80-finished.qml:89
601603msgid "Welcome to Ubuntu"
602−msgstr ""
604+msgstr "Donemat en Ubuntu"
603605
604606#: qml/Wizard/Pages/80-finished.qml:104
605607msgid "You are ready to use your device now"
606−msgstr ""
608+msgstr "Bremañ oc'h prest da implijout ho penveg"
607609
608610#: qml/Wizard/Pages/80-finished.qml:124
609611msgid "Get Started"
610−msgstr ""
612+msgstr "Kregiñ ganti"
611613
612614#: qml/Wizard/Pages/here-terms.qml:25
613615msgid "Terms & Conditions"
@@ -637,7 +639,7 @@ msgstr ""
637639
638640#: qml/Wizard/Pages/here-terms.qml:107
639641msgid "Service Terms"
640−msgstr ""
642+msgstr "Divizoù servij"
641643
642644#: qml/Wizard/Pages/passcode-confirm.qml:43
643645#: qml/Wizard/Pages/passcode-desktop.qml:80
@@ -646,16 +648,16 @@ msgstr "Kadarnaat ar c'hod-tremen"
646648
647649#: qml/Wizard/Pages/passcode-confirm.qml:45
648650msgid "Incorrect passcode."
649−msgstr ""
651+msgstr "Kod direizh"
650652
651653#: qml/Wizard/Pages/passcode-confirm.qml:45
652654msgctxt "Enter the passcode again"
653655msgid "Please re-enter."
654−msgstr ""
656+msgstr "Skrivit adarre, mar plij."
655657
656658#: qml/Wizard/Pages/passcode-desktop.qml:30
657659msgid "Lock Screen Passcode"
658−msgstr ""
660+msgstr "Kod da brennañ ar skramm"
659661
660662#: qml/Wizard/Pages/passcode-desktop.qml:56
661663msgid "Enter 4 numbers to setup your passcode"
@@ -664,11 +666,11 @@ msgstr ""
664666#: qml/Wizard/Pages/passcode-desktop.qml:65
665667#: qml/Wizard/Pages/passcode-set.qml:54
666668msgid "Choose passcode"
667−msgstr ""
669+msgstr "Choaz ur c'hod"
668670
669671#: qml/Wizard/Pages/passcode-desktop.qml:105
670672msgid "Passcode too short"
671−msgstr ""
673+msgstr "Kod re verr"
672674
673675#: qml/Wizard/Pages/passcode-desktop.qml:107
674676msgid "Passcodes match"
@@ -684,27 +686,27 @@ msgstr ""
684686
685687#: qml/Wizard/Pages/password-set.qml:30
686688msgid "Lock Screen Password"
687−msgstr ""
689+msgstr "Ger-tremen da brennañ ar skramm"
688690
689691#: qml/Wizard/Pages/password-set.qml:61
690692msgid "Enter at least 8 characters"
691−msgstr ""
693+msgstr "Skrivit 8 arouezenn da vihanañ"
692694
693695#: qml/Wizard/Pages/password-set.qml:73
694696msgid "Choose password"
695−msgstr ""
697+msgstr "Choaz ur ger-tremen"
696698
697699#: qml/Wizard/Pages/password-set.qml:103
698700msgid "Confirm password"
699−msgstr ""
701+msgstr "Kadarnaat ar ger-tremen"
700702
701703#: qml/Wizard/Pages/sim.qml:27
702704msgid "No SIM card installed"
703−msgstr ""
705+msgstr "N'eus kartenn SIM ebet"
704706
705707#: qml/Wizard/Pages/sim.qml:54
706708msgid "SIM card added"
707−msgstr ""
709+msgstr "Lakaet ez eus bet ur gartenn SIM"
708710
709711#: qml/Wizard/Pages/sim.qml:55
710712msgid "You must restart the device to access the mobile network."
@@ -724,27 +726,27 @@ msgstr ""
724726
725727#: qml/Wizard/PasswordMeter.qml:87
726728msgid "Passwords match"
727−msgstr ""
729+msgstr "Klotañ a ra ar gerioù-tremen an eil gant egile"
728730
729731#: qml/Wizard/PasswordMeter.qml:89
730732msgid "Passwords do not match"
731−msgstr ""
733+msgstr "Ne glot ket ar gerioù-tremen"
732734
733735#: qml/Wizard/PasswordMeter.qml:93
734736msgid "Strong password"
735−msgstr ""
737+msgstr "Ger-tremen sur"
736738
737739#: qml/Wizard/PasswordMeter.qml:95
738740msgid "Fair password"
739−msgstr ""
741+msgstr "Ger-tremen reizh"
740742
741743#: qml/Wizard/PasswordMeter.qml:97
742744msgid "Weak password"
743−msgstr ""
745+msgstr "Ger-tremen diasur"
744746
745747#: qml/Wizard/PasswordMeter.qml:99
746748msgid "Very weak password"
747−msgstr ""
749+msgstr "Ger-tremen diasur-kenañ"
748750
749751#~ msgid "Close"
750752#~ msgstr "Serriñ"
@@ -1064,12 +1066,3 @@ msgstr ""
10641066
10651067#~ msgid "Call back"
10661068#~ msgstr "Gervel en-dro"
1067−
1068−#~ msgid "Welcome to your Ubuntu device."
1069−#~ msgstr "Donemat en ho penveg Ubuntu"
1070−
1071−#~ msgid "Please select how you’d like to unlock your device."
1072−#~ msgstr "Diuzit penaos e fell deoc'h dibrennañ ho penveg, mar plij."
1073−
1074−#~ msgid "Your device is now ready to use."
1075−#~ msgstr "Prest eo ho penveg da vezañ implijet bremañ."
po/gd.po+87−70
@@ -8,16 +8,16 @@ msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1010"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11−"PO-Revision-Date: 2015-07-16 10:56+0000\n"
12−"Last-Translator: GunChleoc <Unknown>\n"
11+"PO-Revision-Date: 2016-04-08 18:34+0000\n"
12+"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
1313"Language-Team: Fòram na Gàidhlig\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
1818"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-03-24 06:08+0000\n"
20−"X-Generator: Launchpad (build 17958)\n"
19+"X-Launchpad-Export-Date: 2016-04-09 05:45+0000\n"
20+"X-Generator: Launchpad (build 17990)\n"
2121"Language: gd\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -192,11 +192,11 @@ msgstr "Cuir ris na h-annsachdan"
192192
193193#: qml/Dash/FiltersPopover.qml:60
194194msgid "Refine your results"
195−msgstr ""
195+msgstr "Cuir na toraidhean air gleus"
196196
197197#: qml/Dash/FiltersPopover.qml:69
198198msgid "Reset"
199−msgstr ""
199+msgstr "Ath-shuidhich"
200200
201201#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
202202msgid "See less"
@@ -213,11 +213,11 @@ msgstr "Lorg"
213213
214214#: qml/Dash/PageHeaderExtraPanel.qml:55
215215msgid "Recent Searches"
216−msgstr ""
216+msgstr "Na lorg thu roimhe"
217217
218218#: qml/Dash/PageHeaderExtraPanel.qml:66
219219msgid "Clear All"
220−msgstr ""
220+msgstr "Falamhaich na h-uile"
221221
222222#: qml/Dash/Previews/PreviewActionCombo.qml:35
223223msgid "More..."
@@ -446,50 +446,62 @@ msgstr "Fònaig air ais"
446446#: qml/Stages/SideStage.qml:76
447447msgid "Drag using 3 fingers any application from one window to the other"
448448msgstr ""
449+"Dèan slaodadh le trì corragan gus aplacaid a shlaodadh o uinneag gu uinneag "
450+"eile"
449451
450452#: qml/Tutorial/TutorialBottom.qml:78
451453msgid "Swipe up to add a contact"
452−msgstr ""
454+msgstr "Dèan grad-shlaighdeadh suas airson neach-aithne a chur ris"
453455
454456#: qml/Tutorial/TutorialBottom.qml:80
455457msgid "Swipe up for favorite calculations"
456458msgstr ""
459+"Dèan grad-shlaighdeadh suas airson na h-àireamhachaidhean coitcheann agad"
457460
458461#: qml/Tutorial/TutorialBottom.qml:82
459462msgid "Swipe up for recent calls"
460463msgstr ""
464+"Dèan grad-shlaighdeadh suas airson gairmean a rinn thu o chionn goirid"
461465
462466#: qml/Tutorial/TutorialBottom.qml:84
463467msgid "Swipe up to create a message"
464−msgstr ""
468+msgstr "Dèan grad-shlaighdeadh suas airson teachdaireachd a chruthachadh"
465469
466470#: qml/Tutorial/TutorialBottom.qml:85
467471msgid "Swipe up to manage the app"
468−msgstr ""
472+msgstr "Dèan grad-shlaighdeadh suas gus an aplacaid a stiùireadh"
469473
470474#: qml/Tutorial/TutorialLeft.qml:47
471475msgid "Swipe from the left edge to open the launcher"
472476msgstr ""
477+"Dèan grad-shlaighdeadh a-steach on oir chlì gus an lòinsear a chur gu dol"
473478
474479#: qml/Tutorial/TutorialLeftLong.qml:47
475480msgid "Long swipe from the left edge to open the Today scope"
476481msgstr ""
482+"Dèan grad-shlaighdeadh a-steach on oir chlì gus breath an latha an-diugh "
483+"fhosgladh"
477484
478485#: qml/Tutorial/TutorialRight.qml:54
479486msgid "Hover your mouse on the right edge to view your open apps"
480487msgstr ""
488+"Fan an luchag agad os cionn na h-oir dheas a dh’fhaicinn nan aplacaidean a "
489+"tha fosgailte agad"
481490
482491#: qml/Tutorial/TutorialRight.qml:55
483492msgid "Short or long swipe from the right edge to view your open apps"
484493msgstr ""
494+"Dèan grad-shlaighdeadh fada no goirid on oir dheas a dh’fhaicinn nan "
495+"aplacaidean fosgailte agad"
485496
486497#: qml/Tutorial/TutorialTop.qml:53
487498msgid "Swipe from the top right edge to open the notification bar"
488499msgstr ""
500+"Dèan grad-shlaighdeadh a-nuas on oir dheas a dh’fhosgladh bàr nam brathan"
489501
490502#: qml/Tutorial/TutorialTop.qml:54
491503msgid "Swipe from the top edge to open the notification bar"
492−msgstr ""
504+msgstr "Dèan grad-shlaighdeadh a-nuas on oir a dh’fhosgladh bàr nam brathan"
493505
494506#: qml/Wizard/Page.qml:54
495507msgctxt "Button: Go back one page in the Wizard"
@@ -498,7 +510,7 @@ msgstr "Air ais"
498510
499511#: qml/Wizard/Pages/10-welcome.qml:27
500512msgid "Language"
501−msgstr ""
513+msgstr "Cànan"
502514
503515#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
504516#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
@@ -507,7 +519,7 @@ msgstr ""
507519#: qml/Wizard/Pages/passcode-desktop.qml:124
508520#: qml/Wizard/Pages/password-set.qml:141
509521msgid "Next"
510−msgstr ""
522+msgstr "Air adhart"
511523
512524#: qml/Wizard/Pages/30-wifi.qml:29
513525msgid "Connect to Wi‑Fi"
@@ -515,15 +527,15 @@ msgstr "Ceangail ri Wi-Fi"
515527
516528#: qml/Wizard/Pages/30-wifi.qml:130
517529msgid "Connected"
518−msgstr ""
530+msgstr "Ceangailte"
519531
520532#: qml/Wizard/Pages/30-wifi.qml:163
521533msgid "Available Wi-Fi networks"
522−msgstr ""
534+msgstr "Lìonraidhean WiFi a tha ri làimh"
523535
524536#: qml/Wizard/Pages/30-wifi.qml:164
525537msgid "No available Wi-Fi networks"
526−msgstr ""
538+msgstr "Chan eil lìonra WiFi sam bith ann"
527539
528540#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
529541#: qml/Wizard/Pages/sim.qml:101
@@ -532,98 +544,103 @@ msgstr "Leum thairis air"
532544
533545#: qml/Wizard/Pages/40-location.qml:27
534546msgid "Location Services"
535−msgstr ""
547+msgstr "Seirbheisean ionaid"
536548
537549#: qml/Wizard/Pages/40-location.qml:83
538550msgid ""
539551"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
540552"(recommended)"
541553msgstr ""
554+"Cleachd GPS, hotspots WiFi is lìonraidhean mobile gun urra a dh’fhiosrachadh "
555+"d’ ionaid (mholamaid seo)"
542556
543557#: qml/Wizard/Pages/40-location.qml:105
544558#, qt-format
545559msgid "By selecting this option you agree to the Nokia HERE %1."
546560msgstr ""
561+"Ma thaghas tu an roghainn seo, bidh thu ag aontachadh ri %1 Nokia HERE."
547562
548563#: qml/Wizard/Pages/40-location.qml:106
549564msgctxt "part of: Nokia HERE terms and conditions"
550565msgid "terms and conditions"
551−msgstr ""
566+msgstr "teirmichean is cumhaichean"
552567
553568#: qml/Wizard/Pages/40-location.qml:160
554569msgid "GPS only"
555−msgstr ""
570+msgstr "GPS a-mhàin"
556571
557572#: qml/Wizard/Pages/40-location.qml:214
558573msgid "Don't use my location"
559−msgstr ""
574+msgstr "Na cleachd m’ ionad"
560575
561576#: qml/Wizard/Pages/40-location.qml:260
562577msgid "You can change it later in System Settings."
563−msgstr ""
578+msgstr "’S urrainn dhut seo atharrachadh sna roghainnean uair sam bith"
564579
565580#: qml/Wizard/Pages/50-timezone.qml:29
566581msgid "Time Zone"
567−msgstr ""
582+msgstr "Roinn-tìde"
568583
569584#: qml/Wizard/Pages/50-timezone.qml:178
570585msgid "Enter your city"
571−msgstr ""
586+msgstr "Cuir a-steach do bhaile"
572587
573588#: qml/Wizard/Pages/60-account.qml:24
574589msgid "Personalize Your Device"
575−msgstr ""
590+msgstr "Cuir dreach pearsanta air an uidheam agad"
576591
577592#: qml/Wizard/Pages/60-account.qml:48
578593msgid "Preferred Name"
579−msgstr ""
594+msgstr "An t-ainm as fhearr leat"
580595
581596#: qml/Wizard/Pages/70-passwd-type.qml:39
582597msgid "Lock Screen"
583−msgstr ""
598+msgstr "Glais an sgrìn"
584599
585600#: qml/Wizard/Pages/70-passwd-type.qml:101
586601msgctxt "Label: Type of security method"
587602msgid "Create new password"
588−msgstr ""
603+msgstr "Cruthaich facal-faire ùr"
589604
590605#: qml/Wizard/Pages/70-passwd-type.qml:103
591606msgctxt "Label: Type of security method"
592607msgid "Create passcode (numbers only)"
593−msgstr ""
608+msgstr "Cruthaich còd-faire (àireamhan a-mhàin)"
594609
595610#: qml/Wizard/Pages/70-passwd-type.qml:105
596611msgctxt "Label: Type of security method"
597612msgid "No lock code"
598−msgstr ""
613+msgstr "Gun chòd-faire"
599614
600615#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
601616msgid "Privacy Policy"
602−msgstr ""
617+msgstr "Am poileasaidh prìobhaideachd"
603618
604619#: qml/Wizard/Pages/75-report-check.qml:26
605620msgid "Help Us Improve"
606−msgstr ""
621+msgstr "Cuidich leinn ’ga leasachadh"
607622
608623#: qml/Wizard/Pages/75-report-check.qml:59
609624msgid "Improve system performance by sending us crashes and error reports."
610625msgstr ""
626+"Leasaich an siostam còmhla rinn is tu a’ cur thugainn aithisgean mu "
627+"thuislidhean is mearachdan."
611628
612629#: qml/Wizard/Pages/75-report-check.qml:60
613630msgid "Privacy policy"
614−msgstr ""
631+msgstr "Am poileasaidh prìobhaideachd"
615632
616633#: qml/Wizard/Pages/80-finished.qml:89
617634msgid "Welcome to Ubuntu"
618−msgstr ""
635+msgstr "Fàilte gu Ubuntu"
619636
620637#: qml/Wizard/Pages/80-finished.qml:104
621638msgid "You are ready to use your device now"
622−msgstr ""
639+msgstr "Tha an t-uidheam deas ri do làimh a-nis"
623640
624641#: qml/Wizard/Pages/80-finished.qml:124
625642msgid "Get Started"
626−msgstr ""
643+msgstr "Toiseach-tòiseachaidh"
627644
628645#: qml/Wizard/Pages/here-terms.qml:25
629646msgid "Terms & Conditions"
@@ -631,7 +648,7 @@ msgstr "Teirmichean ⁊ cumhaichean"
631648
632649#: qml/Wizard/Pages/here-terms.qml:69
633650msgid "Your device uses positioning technologies provided by HERE."
634−msgstr ""
651+msgstr "’S e HERE a tha a’ solar teicneolas ionad an uidheim agad."
635652
636653#: qml/Wizard/Pages/here-terms.qml:81
637654msgid ""
@@ -639,21 +656,28 @@ msgid ""
639656"collects information about nearby cell towers and Wi-Fi hotspots around your "
640657"current location whenever your position is being found."
641658msgstr ""
659+"Airson ’s gun urrainn dha HERE d’ ionad a dh’fhiosrachadh dhut is càileachd "
660+"nan seirbheisean aca a leasachadh, cruinnichidh iad fiosrachadh mu thùir nam "
661+"fònaichean-làimhe is hotspots WiFI faisg ort nuair a dh’fhiosraicheas iad d’ "
662+"ionad."
642663
643664#: qml/Wizard/Pages/here-terms.qml:93
644665msgid ""
645666"The information collected is used to analyze the service and to improve the "
646667"use of service, but not to identify you personally."
647668msgstr ""
669+"Cleachdar am fiosrachadh seo airson mion-sgrùdadh a dhèanamh air an t-"
670+"seirbheis agus a leasachadh ach chan ann gus d’ aithneachadh gu pearsanta."
648671
649672#: qml/Wizard/Pages/here-terms.qml:106
650673#, qt-format
651674msgid "By continuing, you agree to the HERE platform %1 and %2."
652675msgstr ""
676+"Ma leanas tu air adhart, bidh thu ag aontachadh ri %1 agus %2 ùrlar HERE."
653677
654678#: qml/Wizard/Pages/here-terms.qml:107
655679msgid "Service Terms"
656−msgstr ""
680+msgstr "teirmichean na seirbheise"
657681
658682#: qml/Wizard/Pages/passcode-confirm.qml:43
659683#: qml/Wizard/Pages/passcode-desktop.qml:80
@@ -662,69 +686,71 @@ msgstr "Dearbhaich an còd-faire"
662686
663687#: qml/Wizard/Pages/passcode-confirm.qml:45
664688msgid "Incorrect passcode."
665−msgstr ""
689+msgstr "Tha an còd-faire cearr."
666690
667691#: qml/Wizard/Pages/passcode-confirm.qml:45
668692msgctxt "Enter the passcode again"
669693msgid "Please re-enter."
670−msgstr ""
694+msgstr "Cuir a-steach e às ùr."
671695
672696#: qml/Wizard/Pages/passcode-desktop.qml:30
673697msgid "Lock Screen Passcode"
674−msgstr ""
698+msgstr "Còd-faire na sgrin-ghlasaidh"
675699
676700#: qml/Wizard/Pages/passcode-desktop.qml:56
677701msgid "Enter 4 numbers to setup your passcode"
678−msgstr ""
702+msgstr "Cuir a-steach 4 àireamhan a bhios ’nan còd-faire agad"
679703
680704#: qml/Wizard/Pages/passcode-desktop.qml:65
681705#: qml/Wizard/Pages/passcode-set.qml:54
682706msgid "Choose passcode"
683−msgstr ""
707+msgstr "Tagh còd-faire"
684708
685709#: qml/Wizard/Pages/passcode-desktop.qml:105
686710msgid "Passcode too short"
687−msgstr ""
711+msgstr "Tha an còd-faire ro ghoirid"
688712
689713#: qml/Wizard/Pages/passcode-desktop.qml:107
690714msgid "Passcodes match"
691−msgstr ""
715+msgstr "Tha an dà chòd-faire co-ionnann"
692716
693717#: qml/Wizard/Pages/passcode-desktop.qml:109
694718msgid "Passcodes do not match"
695−msgstr ""
719+msgstr "Chan eil an dà chòd-faire co-ionnann"
696720
697721#: qml/Wizard/Pages/passcode-set.qml:62
698722msgid "Passcode must be 4 characters long"
699−msgstr ""
723+msgstr "Feumaidh an còd-faire a bhith 4 caractaran a dh’fhaid"
700724
701725#: qml/Wizard/Pages/password-set.qml:30
702726msgid "Lock Screen Password"
703−msgstr ""
727+msgstr "Facal-faire na sgrìn-ghlasaidh"
704728
705729#: qml/Wizard/Pages/password-set.qml:61
706730msgid "Enter at least 8 characters"
707−msgstr ""
731+msgstr "Cuir a-steach co-dhiù 8 caractaran"
708732
709733#: qml/Wizard/Pages/password-set.qml:73
710734msgid "Choose password"
711−msgstr ""
735+msgstr "Tagh facal-faire"
712736
713737#: qml/Wizard/Pages/password-set.qml:103
714738msgid "Confirm password"
715−msgstr ""
739+msgstr "Dearbh am facal-faire"
716740
717741#: qml/Wizard/Pages/sim.qml:27
718742msgid "No SIM card installed"
719−msgstr ""
743+msgstr "Cha deach cairt SIM a stàladh"
720744
721745#: qml/Wizard/Pages/sim.qml:54
722746msgid "SIM card added"
723−msgstr ""
747+msgstr "Chaidh cairt SIM a chur ris"
724748
725749#: qml/Wizard/Pages/sim.qml:55
726750msgid "You must restart the device to access the mobile network."
727751msgstr ""
752+"Feumaidh tu an t-uidheam ath-thòiseachadh mus fhaigh thu cothrom air an "
753+"lìonra mobile."
728754
729755#: qml/Wizard/Pages/sim.qml:59
730756msgid "Restart"
@@ -732,35 +758,36 @@ msgstr "Ath-thòisich"
732758
733759#: qml/Wizard/Pages/sim.qml:78
734760msgid "You won’t be able to make calls or use text messaging without a SIM."
735−msgstr ""
761+msgstr "Chan urrainn dhut fòn no SMS a chur as aonais SIM."
736762
737763#: qml/Wizard/Pages/sim.qml:90
738764msgid "To proceed with no SIM tap Skip."
739765msgstr ""
766+"Leum thairis air seo ma tha thu airson leantainn air adhart as aonais SIM."
740767
741768#: qml/Wizard/PasswordMeter.qml:87
742769msgid "Passwords match"
743−msgstr ""
770+msgstr "Tha an dà fhacal-faire co-ionnann"
744771
745772#: qml/Wizard/PasswordMeter.qml:89
746773msgid "Passwords do not match"
747−msgstr ""
774+msgstr "Chan eil an dà fhacal-faire co-ionnann"
748775
749776#: qml/Wizard/PasswordMeter.qml:93
750777msgid "Strong password"
751−msgstr ""
778+msgstr "Facal-faire làidir"
752779
753780#: qml/Wizard/PasswordMeter.qml:95
754781msgid "Fair password"
755−msgstr ""
782+msgstr "Facal-faire meadhanach"
756783
757784#: qml/Wizard/PasswordMeter.qml:97
758785msgid "Weak password"
759−msgstr ""
786+msgstr "Facal-faire lag"
760787
761788#: qml/Wizard/PasswordMeter.qml:99
762789msgid "Very weak password"
763−msgstr ""
790+msgstr "Facal-faire glè lag"
764791
765792#~ msgid "Skip intro"
766793#~ msgstr "Gearr leum thairis air an ro-ràdh"
@@ -1084,13 +1111,3 @@ msgstr ""
10841111
10851112#~ msgid "Call back"
10861113#~ msgstr "Fònaig air ais"
1087−
1088−#~ msgid "Welcome to your Ubuntu device."
1089−#~ msgstr "Fàilte dhan uidheam Ubuntu agad."
1090−
1091−#~ msgid "Please select how you’d like to unlock your device."
1092−#~ msgstr ""
1093−#~ "Tagh an dòigh sa tha thu airson a' ghlas a thoirt far an uidheam agad."
1094−
1095−#~ msgid "Your device is now ready to use."
1096−#~ msgstr "Tha an t-uidheam agad ullamh a-nis."
po/zh_CN.po+79−88
@@ -8,15 +8,15 @@ msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1010"POT-Creation-Date: 2016-03-23 10:01+0000\n"
11−"PO-Revision-Date: 2015-07-27 10:26+0000\n"
12−"Last-Translator: Ian Li <Unknown>\n"
11+"PO-Revision-Date: 2016-04-13 06:27+0000\n"
12+"Last-Translator: YunQiang Su <wzssyqa@gmail.com>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2016-03-24 06:08+0000\n"
19−"X-Generator: Launchpad (build 17958)\n"
18+"X-Launchpad-Export-Date: 2016-04-14 06:22+0000\n"
19+"X-Generator: Launchpad (build 17990)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -138,7 +138,7 @@ msgstr "应用中可能有未保存数据:"
138138msgctxt ""
139139"Re-dock means connect the device again to an external screen/mouse/keyboard"
140140msgid "Re-dock, save your work and close these apps to continue."
141−msgstr ""
141+msgstr "重新连接,保存你的工作并关闭这些应用并继续。"
142142
143143#: qml/Components/ModeSwitchWarningDialog.qml:63
144144msgid "Or force close now (unsaved data will be lost)."
@@ -181,11 +181,11 @@ msgstr "添加到收藏夹"
181181
182182#: qml/Dash/FiltersPopover.qml:60
183183msgid "Refine your results"
184−msgstr ""
184+msgstr "精进查找结果"
185185
186186#: qml/Dash/FiltersPopover.qml:69
187187msgid "Reset"
188−msgstr ""
188+msgstr "重置"
189189
190190#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191191msgid "See less"
@@ -202,11 +202,11 @@ msgstr "搜索"
202202
203203#: qml/Dash/PageHeaderExtraPanel.qml:55
204204msgid "Recent Searches"
205−msgstr ""
205+msgstr "近期搜索"
206206
207207#: qml/Dash/PageHeaderExtraPanel.qml:66
208208msgid "Clear All"
209−msgstr ""
209+msgstr "全部清除"
210210
211211#: qml/Dash/Previews/PreviewActionCombo.qml:35
212212msgid "More..."
@@ -261,7 +261,7 @@ msgstr "已安装"
261261msgid ""
262262"Your device is now connected to an external display. Use this screen as a "
263263"touch pad to interact with the pointer."
264−msgstr ""
264+msgstr "你的设备现在已经连接到一个外部显示。将这个屏幕当作一块触控板使用来与指针互动。"
265265
266266#: qml/Greeter/CoverPage.qml:118
267267msgid "Unlock"
@@ -416,51 +416,51 @@ msgstr "回电"
416416
417417#: qml/Stages/SideStage.qml:76
418418msgid "Drag using 3 fingers any application from one window to the other"
419−msgstr ""
419+msgstr "使用三指将任何应用从一个窗口拖拽至另一个"
420420
421421#: qml/Tutorial/TutorialBottom.qml:78
422422msgid "Swipe up to add a contact"
423−msgstr ""
423+msgstr "向上划以添加联系人"
424424
425425#: qml/Tutorial/TutorialBottom.qml:80
426426msgid "Swipe up for favorite calculations"
427−msgstr ""
427+msgstr "向上划打开常用计算"
428428
429429#: qml/Tutorial/TutorialBottom.qml:82
430430msgid "Swipe up for recent calls"
431−msgstr ""
431+msgstr "向上划打开近期通话"
432432
433433#: qml/Tutorial/TutorialBottom.qml:84
434434msgid "Swipe up to create a message"
435−msgstr ""
435+msgstr "上滑创建一条信息"
436436
437437#: qml/Tutorial/TutorialBottom.qml:85
438438msgid "Swipe up to manage the app"
439−msgstr ""
439+msgstr "上滑管理应用"
440440
441441#: qml/Tutorial/TutorialLeft.qml:47
442442msgid "Swipe from the left edge to open the launcher"
443−msgstr ""
443+msgstr "从左侧边缘滑动打开启动器"
444444
445445#: qml/Tutorial/TutorialLeftLong.qml:47
446446msgid "Long swipe from the left edge to open the Today scope"
447−msgstr ""
447+msgstr "从左侧边缘长距离滑动打开“今日”分类"
448448
449449#: qml/Tutorial/TutorialRight.qml:54
450450msgid "Hover your mouse on the right edge to view your open apps"
451−msgstr ""
451+msgstr "将鼠标悬停在右侧边缘查看打开的应用"
452452
453453#: qml/Tutorial/TutorialRight.qml:55
454454msgid "Short or long swipe from the right edge to view your open apps"
455−msgstr ""
455+msgstr "从右侧边缘短距离或长距离滑动查看打开的应用"
456456
457457#: qml/Tutorial/TutorialTop.qml:53
458458msgid "Swipe from the top right edge to open the notification bar"
459−msgstr ""
459+msgstr "从顶部右侧边缘滑动打开通知栏"
460460
461461#: qml/Tutorial/TutorialTop.qml:54
462462msgid "Swipe from the top edge to open the notification bar"
463−msgstr ""
463+msgstr "从顶部滑动打开通知栏"
464464
465465#: qml/Wizard/Page.qml:54
466466msgctxt "Button: Go back one page in the Wizard"
@@ -469,7 +469,7 @@ msgstr "上一步"
469469
470470#: qml/Wizard/Pages/10-welcome.qml:27
471471msgid "Language"
472−msgstr ""
472+msgstr "语言"
473473
474474#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
475475#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
@@ -478,7 +478,7 @@ msgstr ""
478478#: qml/Wizard/Pages/passcode-desktop.qml:124
479479#: qml/Wizard/Pages/password-set.qml:141
480480msgid "Next"
481−msgstr ""
481+msgstr "下一步"
482482
483483#: qml/Wizard/Pages/30-wifi.qml:29
484484msgid "Connect to Wi‑Fi"
@@ -486,15 +486,15 @@ msgstr "连接 Wi-Fi"
486486
487487#: qml/Wizard/Pages/30-wifi.qml:130
488488msgid "Connected"
489−msgstr ""
489+msgstr "已连接"
490490
491491#: qml/Wizard/Pages/30-wifi.qml:163
492492msgid "Available Wi-Fi networks"
493−msgstr ""
493+msgstr "可用的 Wi-Fi 网络"
494494
495495#: qml/Wizard/Pages/30-wifi.qml:164
496496msgid "No available Wi-Fi networks"
497−msgstr ""
497+msgstr "没有可用的 Wi-Fi 网络"
498498
499499#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
500500#: qml/Wizard/Pages/sim.qml:101
@@ -503,98 +503,98 @@ msgstr "跳过"
503503
504504#: qml/Wizard/Pages/40-location.qml:27
505505msgid "Location Services"
506−msgstr ""
506+msgstr "定位服务"
507507
508508#: qml/Wizard/Pages/40-location.qml:83
509509msgid ""
510510"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
511511"(recommended)"
512−msgstr ""
512+msgstr "使用 GPS、Wi-Fi 热点和移动网络匿名检测位置(推荐)"
513513
514514#: qml/Wizard/Pages/40-location.qml:105
515515#, qt-format
516516msgid "By selecting this option you agree to the Nokia HERE %1."
517−msgstr ""
517+msgstr "选择该选项同意 Nokia HERE %1。"
518518
519519#: qml/Wizard/Pages/40-location.qml:106
520520msgctxt "part of: Nokia HERE terms and conditions"
521521msgid "terms and conditions"
522−msgstr ""
522+msgstr "术语和条款"
523523
524524#: qml/Wizard/Pages/40-location.qml:160
525525msgid "GPS only"
526−msgstr ""
526+msgstr "仅 GPS"
527527
528528#: qml/Wizard/Pages/40-location.qml:214
529529msgid "Don't use my location"
530−msgstr ""
530+msgstr "不使用我的位置"
531531
532532#: qml/Wizard/Pages/40-location.qml:260
533533msgid "You can change it later in System Settings."
534−msgstr ""
534+msgstr "可以稍后在系统设置中更改。"
535535
536536#: qml/Wizard/Pages/50-timezone.qml:29
537537msgid "Time Zone"
538−msgstr ""
538+msgstr "时区"
539539
540540#: qml/Wizard/Pages/50-timezone.qml:178
541541msgid "Enter your city"
542−msgstr ""
542+msgstr "输入您的城市"
543543
544544#: qml/Wizard/Pages/60-account.qml:24
545545msgid "Personalize Your Device"
546−msgstr ""
546+msgstr "个性化您的设备"
547547
548548#: qml/Wizard/Pages/60-account.qml:48
549549msgid "Preferred Name"
550−msgstr ""
550+msgstr "首选名称"
551551
552552#: qml/Wizard/Pages/70-passwd-type.qml:39
553553msgid "Lock Screen"
554−msgstr ""
554+msgstr "锁屏"
555555
556556#: qml/Wizard/Pages/70-passwd-type.qml:101
557557msgctxt "Label: Type of security method"
558558msgid "Create new password"
559−msgstr ""
559+msgstr "创建新密码"
560560
561561#: qml/Wizard/Pages/70-passwd-type.qml:103
562562msgctxt "Label: Type of security method"
563563msgid "Create passcode (numbers only)"
564−msgstr ""
564+msgstr "创建密码 (仅数字)"
565565
566566#: qml/Wizard/Pages/70-passwd-type.qml:105
567567msgctxt "Label: Type of security method"
568568msgid "No lock code"
569−msgstr ""
569+msgstr "无锁码"
570570
571571#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
572572msgid "Privacy Policy"
573−msgstr ""
573+msgstr "隐私政策"
574574
575575#: qml/Wizard/Pages/75-report-check.qml:26
576576msgid "Help Us Improve"
577−msgstr ""
577+msgstr "帮助我们改进"
578578
579579#: qml/Wizard/Pages/75-report-check.qml:59
580580msgid "Improve system performance by sending us crashes and error reports."
581−msgstr ""
581+msgstr "向我们发送崩溃和错误报告来提高系统性能。"
582582
583583#: qml/Wizard/Pages/75-report-check.qml:60
584584msgid "Privacy policy"
585−msgstr ""
585+msgstr "隐私政策"
586586
587587#: qml/Wizard/Pages/80-finished.qml:89
588588msgid "Welcome to Ubuntu"
589−msgstr ""
589+msgstr "欢迎使用 Ubuntu"
590590
591591#: qml/Wizard/Pages/80-finished.qml:104
592592msgid "You are ready to use your device now"
593−msgstr ""
593+msgstr "现在可以使用您的设备了"
594594
595595#: qml/Wizard/Pages/80-finished.qml:124
596596msgid "Get Started"
597−msgstr ""
597+msgstr "入门"
598598
599599#: qml/Wizard/Pages/here-terms.qml:25
600600msgid "Terms & Conditions"
@@ -602,29 +602,29 @@ msgstr "条款与条件"
602602
603603#: qml/Wizard/Pages/here-terms.qml:69
604604msgid "Your device uses positioning technologies provided by HERE."
605−msgstr ""
605+msgstr "你的设备使用的定位技术由 HERE 提供。"
606606
607607#: qml/Wizard/Pages/here-terms.qml:81
608608msgid ""
609609"To provide you with positioning services and to improve their quality, HERE "
610610"collects information about nearby cell towers and Wi-Fi hotspots around your "
611611"current location whenever your position is being found."
612−msgstr ""
612+msgstr "为提供定位服务并提高服务质量,每当你的位置被发现时,HERE会收集你周围的有关手机信号塔和 Wi-Fi 热点的信息。"
613613
614614#: qml/Wizard/Pages/here-terms.qml:93
615615msgid ""
616616"The information collected is used to analyze the service and to improve the "
617617"use of service, but not to identify you personally."
618−msgstr ""
618+msgstr "收集的信息用于分析服务和改进服务的使用,并不会识别你的身份。"
619619
620620#: qml/Wizard/Pages/here-terms.qml:106
621621#, qt-format
622622msgid "By continuing, you agree to the HERE platform %1 and %2."
623−msgstr ""
623+msgstr "继续,你将同意 HERE 平台 %1 和 %2。"
624624
625625#: qml/Wizard/Pages/here-terms.qml:107
626626msgid "Service Terms"
627−msgstr ""
627+msgstr "服务条款"
628628
629629#: qml/Wizard/Pages/passcode-confirm.qml:43
630630#: qml/Wizard/Pages/passcode-desktop.qml:80
@@ -633,105 +633,105 @@ msgstr "确认新密码"
633633
634634#: qml/Wizard/Pages/passcode-confirm.qml:45
635635msgid "Incorrect passcode."
636−msgstr ""
636+msgstr "不正确的密码。"
637637
638638#: qml/Wizard/Pages/passcode-confirm.qml:45
639639msgctxt "Enter the passcode again"
640640msgid "Please re-enter."
641−msgstr ""
641+msgstr "请重新输入。"
642642
643643#: qml/Wizard/Pages/passcode-desktop.qml:30
644644msgid "Lock Screen Passcode"
645−msgstr ""
645+msgstr "锁屏密码"
646646
647647#: qml/Wizard/Pages/passcode-desktop.qml:56
648648msgid "Enter 4 numbers to setup your passcode"
649−msgstr ""
649+msgstr "输入 4 个数字来设置你的密码"
650650
651651#: qml/Wizard/Pages/passcode-desktop.qml:65
652652#: qml/Wizard/Pages/passcode-set.qml:54
653653msgid "Choose passcode"
654−msgstr ""
654+msgstr "选择密码"
655655
656656#: qml/Wizard/Pages/passcode-desktop.qml:105
657657msgid "Passcode too short"
658−msgstr ""
658+msgstr "密码太短"
659659
660660#: qml/Wizard/Pages/passcode-desktop.qml:107
661661msgid "Passcodes match"
662−msgstr ""
662+msgstr "密码匹配"
663663
664664#: qml/Wizard/Pages/passcode-desktop.qml:109
665665msgid "Passcodes do not match"
666−msgstr ""
666+msgstr "密码不匹配"
667667
668668#: qml/Wizard/Pages/passcode-set.qml:62
669669msgid "Passcode must be 4 characters long"
670−msgstr ""
670+msgstr "密码必须为 4 个字符长度"
671671
672672#: qml/Wizard/Pages/password-set.qml:30
673673msgid "Lock Screen Password"
674−msgstr ""
674+msgstr "锁屏密码"
675675
676676#: qml/Wizard/Pages/password-set.qml:61
677677msgid "Enter at least 8 characters"
678−msgstr ""
678+msgstr "输入至少8个字符"
679679
680680#: qml/Wizard/Pages/password-set.qml:73
681681msgid "Choose password"
682−msgstr ""
682+msgstr "设置密码"
683683
684684#: qml/Wizard/Pages/password-set.qml:103
685685msgid "Confirm password"
686−msgstr ""
686+msgstr "确认密码"
687687
688688#: qml/Wizard/Pages/sim.qml:27
689689msgid "No SIM card installed"
690−msgstr ""
690+msgstr "没有安装 SIM 卡"
691691
692692#: qml/Wizard/Pages/sim.qml:54
693693msgid "SIM card added"
694−msgstr ""
694+msgstr "SIM 卡已添加"
695695
696696#: qml/Wizard/Pages/sim.qml:55
697697msgid "You must restart the device to access the mobile network."
698−msgstr ""
698+msgstr "你必须重启设备才能访问移动网络"
699699
700700#: qml/Wizard/Pages/sim.qml:59
701701msgid "Restart"
702−msgstr ""
702+msgstr "重启"
703703
704704#: qml/Wizard/Pages/sim.qml:78
705705msgid "You won’t be able to make calls or use text messaging without a SIM."
706−msgstr ""
706+msgstr "没有 SIM 卡你将不能拨打电话或使用短信。"
707707
708708#: qml/Wizard/Pages/sim.qml:90
709709msgid "To proceed with no SIM tap Skip."
710−msgstr ""
710+msgstr "点击跳过继续无 SIM 卡"
711711
712712#: qml/Wizard/PasswordMeter.qml:87
713713msgid "Passwords match"
714−msgstr ""
714+msgstr "密码匹配"
715715
716716#: qml/Wizard/PasswordMeter.qml:89
717717msgid "Passwords do not match"
718−msgstr ""
718+msgstr "密码不匹配"
719719
720720#: qml/Wizard/PasswordMeter.qml:93
721721msgid "Strong password"
722−msgstr ""
722+msgstr "密码强度:强"
723723
724724#: qml/Wizard/PasswordMeter.qml:95
725725msgid "Fair password"
726−msgstr ""
726+msgstr "密码强度:合理"
727727
728728#: qml/Wizard/PasswordMeter.qml:97
729729msgid "Weak password"
730−msgstr ""
730+msgstr "密码强度:较弱"
731731
732732#: qml/Wizard/PasswordMeter.qml:99
733733msgid "Very weak password"
734−msgstr ""
734+msgstr "密码强度:非常弱"
735735
736736#~ msgid "Confirm"
737737#~ msgstr "确认"
@@ -1018,12 +1018,3 @@ msgstr ""
10181018
10191019#~ msgid "Call back"
10201020#~ msgstr "回电"
1021−
1022−#~ msgid "Welcome to your Ubuntu device."
1023−#~ msgstr "欢迎使用您的Ubuntu设备。"
1024−
1025−#~ msgid "Please select how you’d like to unlock your device."
1026−#~ msgstr "请选择你偏好的设备解锁方式。"
1027−
1028−#~ msgid "Your device is now ready to use."
1029−#~ msgstr "您的设备已就绪。"
qml/OrientedShell.qml+27−12
@@ -57,9 +57,17 @@ Rectangle {
5757 invertedPortrait: deviceConfiguration.invertedPortraitOrientation
5858 }
5959 }
60− // to be overwritten by tests
61− property var unity8Settings: GSettings { schema.id: "com.canonical.Unity8" }
62− property var oskSettings: GSettings { schema.id: "com.canonical.keyboard.maliit" }
60+
61+ GSettings {
62+ id: unity8Settings
63+ schema.id: "com.canonical.Unity8"
64+ }
65+
66+ GSettings {
67+ id: oskSettings
68+ objectName: "oskSettings"
69+ schema.id: "com.canonical.keyboard.maliit"
70+ }
6371
6472 property int physicalOrientation: Screen.orientation
6573 property bool orientationLocked: OrientationLock.enabled
@@ -90,22 +98,26 @@ Rectangle {
9098 }
9199
92100 readonly property int pointerInputDevices: miceModel.count + touchPadModel.count
93− onPointerInputDevicesChanged: {
94− console.log("Pointer input devices changed:", pointerInputDevices, "current mode:", root.unity8Settings.usageMode, "old device count", miceModel.oldCount + touchPadModel.oldCount)
95− if (root.unity8Settings.usageMode === "Windowed") {
101+ onPointerInputDevicesChanged: calculateUsageMode()
102+
103+ function calculateUsageMode() {
104+ if (unity8Settings.usageMode === undefined)
105+ return; // gsettings isn't loaded yet, we'll try again in Component.onCompleted
106+
107+ console.log("Pointer input devices changed:", pointerInputDevices, "current mode:", unity8Settings.usageMode, "old device count", miceModel.oldCount + touchPadModel.oldCount)
108+ if (unity8Settings.usageMode === "Windowed") {
96109 if (pointerInputDevices === 0) {
97110 // All pointer devices have been unplugged. Move to staged.
98− root.unity8Settings.usageMode = "Staged";
111+ unity8Settings.usageMode = "Staged";
99112 }
100113 } else {
101− var longEdgeWidth = Math.max(root.width, root.height)
102− if (longEdgeWidth > units.gu(90)){
114+ if (Math.min(root.width, root.height) > units.gu(60)) {
103115 if (pointerInputDevices > 0 && pointerInputDevices > miceModel.oldCount + touchPadModel.oldCount) {
104− root.unity8Settings.usageMode = "Windowed";
116+ unity8Settings.usageMode = "Windowed";
105117 }
106118 } else {
107119 // Make sure we initialize to something sane
108− root.unity8Settings.usageMode = "Staged";
120+ unity8Settings.usageMode = "Staged";
109121 }
110122 }
111123 miceModel.oldCount = miceModel.count;
@@ -154,6 +166,9 @@ Rectangle {
154166 if (orientationLocked) {
155167 orientation = orientationLock.savedOrientation;
156168 }
169+
170+ calculateUsageMode();
171+
157172 // We need to manually update this on startup as the binding
158173 // below doesn't seem to have any effect at that stage
159174 oskSettings.disableHeight = !shell.oskEnabled || shell.usageScenario == "desktop"
@@ -248,7 +263,7 @@ Rectangle {
248263 forceOSKEnabled
249264
250265 usageScenario: {
251− if (root.unity8Settings.usageMode === "Windowed") {
266+ if (unity8Settings.usageMode === "Windowed") {
252267 return "desktop";
253268 } else {
254269 if (deviceConfiguration.category === "phone") {
qml/Shell.qml+1−1
@@ -109,7 +109,7 @@ Item {
109109 // the greeter or launcher until we know whether the session is locked.
110110 enabled: greeter && !greeter.waiting
111111
112− property real edgeSize: units.gu(2)
112+ property real edgeSize: units.gu(settings.edgeDragWidth)
113113
114114 WallpaperResolver {
115115 id: wallpaperResolver
tests/mocks/GSettings.1.0/fake_gsettings.cpp+126−38
@@ -21,9 +21,11 @@
2121GSettingsControllerQml* GSettingsControllerQml::s_controllerInstance = 0;
2222
2323GSettingsControllerQml::GSettingsControllerQml()
24− : m_usageMode("Staged")
24+ : m_disableHeight(false)
25+ , m_usageMode("Staged")
2526 , m_autohideLauncher(false)
2627 , m_launcherWidth(8)
28+ , m_edgeDragWidth(2)
2729{
2830}
2931
@@ -38,6 +40,19 @@ GSettingsControllerQml* GSettingsControllerQml::instance() {
3840 return s_controllerInstance;
3941}
4042
43+bool GSettingsControllerQml::disableHeight() const
44+{
45+ return m_disableHeight;
46+}
47+
48+void GSettingsControllerQml::setDisableHeight(bool val)
49+{
50+ if (val != m_disableHeight) {
51+ m_disableHeight = val;
52+ Q_EMIT disableHeightChanged();
53+ }
54+}
55+
4156QString GSettingsControllerQml::pictureUri() const
4257{
4358 return m_pictureUri;
@@ -116,6 +131,19 @@ void GSettingsControllerQml::setLauncherWidth(int launcherWidth)
116131 }
117132}
118133
134+uint GSettingsControllerQml::edgeDragWidth() const
135+{
136+ return m_edgeDragWidth;
137+}
138+
139+void GSettingsControllerQml::setEdgeDragWidth(uint edgeDragWidth)
140+{
141+ if (m_edgeDragWidth != edgeDragWidth) {
142+ m_edgeDragWidth = edgeDragWidth;
143+ Q_EMIT edgeDragWidthChanged(edgeDragWidth);
144+ }
145+}
146+
119147GSettingsSchemaQml::GSettingsSchemaQml(QObject *parent): QObject(parent) {
120148}
121149
@@ -146,9 +174,26 @@ void GSettingsSchemaQml::setPath(const QByteArray &path) {
146174}
147175
148176GSettingsQml::GSettingsQml(QObject *parent)
149− : QObject(parent)
177+ : QObject(parent),
178+ m_valid(false)
150179{
151180 m_schema = new GSettingsSchemaQml(this);
181+}
182+
183+void GSettingsQml::classBegin()
184+{
185+}
186+
187+void GSettingsQml::componentComplete()
188+{
189+ // Emulate what the real GSettings module does, and only return undefined
190+ // values until we are completed loading.
191+ m_valid = true;
192+
193+ // FIXME: We should make this dynamic, instead of hard-coding all possible
194+ // properties in one object. We should create properties based on the schema.
195+ connect(GSettingsControllerQml::instance(), &GSettingsControllerQml::disableHeightChanged,
196+ this, &GSettingsQml::disableHeightChanged);
152197 connect(GSettingsControllerQml::instance(), &GSettingsControllerQml::pictureUriChanged,
153198 this, &GSettingsQml::pictureUriChanged);
154199 connect(GSettingsControllerQml::instance(), &GSettingsControllerQml::usageModeChanged,
@@ -161,104 +206,147 @@ GSettingsQml::GSettingsQml(QObject *parent)
161206 this, &GSettingsQml::autohideLauncherChanged);
162207 connect(GSettingsControllerQml::instance(), &GSettingsControllerQml::launcherWidthChanged,
163208 this, &GSettingsQml::launcherWidthChanged);
209+ connect(GSettingsControllerQml::instance(), &GSettingsControllerQml::edgeDragWidthChanged,
210+ this, &GSettingsQml::edgeDragWidthChanged);
211+
212+ Q_EMIT disableHeightChanged();
213+ Q_EMIT pictureUriChanged();
214+ Q_EMIT usageModeChanged();
215+ Q_EMIT lockedOutTimeChanged();
216+ Q_EMIT lifecycleExemptAppidsChanged();
217+ Q_EMIT autohideLauncherChanged();
218+ Q_EMIT launcherWidthChanged();
219+ Q_EMIT edgeDragWidthChanged();
164220}
165221
166222GSettingsSchemaQml * GSettingsQml::schema() const {
167223 return m_schema;
168224}
169225
170−QString GSettingsQml::pictureUri() const
226+QVariant GSettingsQml::disableHeight() const
227+{
228+ if (m_valid && m_schema->id() == "com.canonical.keyboard.maliit") {
229+ return GSettingsControllerQml::instance()->disableHeight();
230+ } else {
231+ return QVariant();
232+ }
233+}
234+
235+void GSettingsQml::setDisableHeight(const QVariant &val)
236+{
237+ if (m_valid && m_schema->id() == "com.canonical.keyboard.maliit") {
238+ GSettingsControllerQml::instance()->setDisableHeight(val.toBool());
239+ }
240+}
241+
242+QVariant GSettingsQml::pictureUri() const
171243{
172− if (m_schema->id() == "org.gnome.desktop.background") {
244+ if (m_valid && m_schema->id() == "org.gnome.desktop.background") {
173245 return GSettingsControllerQml::instance()->pictureUri();
174246 } else {
175− return "";
247+ return QVariant();
176248 }
177249}
178250
179−void GSettingsQml::setPictureUri(const QString &str)
251+void GSettingsQml::setPictureUri(const QVariant &str)
180252{
181− if (m_schema->id() == "org.gnome.desktop.background") {
182− GSettingsControllerQml::instance()->setPictureUri(str);
253+ if (m_valid && m_schema->id() == "org.gnome.desktop.background") {
254+ GSettingsControllerQml::instance()->setPictureUri(str.toString());
183255 }
184256}
185257
186−QString GSettingsQml::usageMode() const
258+QVariant GSettingsQml::usageMode() const
187259{
188− if (m_schema->id() == "com.canonical.Unity8") {
260+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
189261 return GSettingsControllerQml::instance()->usageMode();
190262 } else {
191− return "";
263+ return QVariant();
192264 }
193265}
194266
195−void GSettingsQml::setUsageMode(const QString &usageMode)
267+void GSettingsQml::setUsageMode(const QVariant &usageMode)
196268{
197− if (m_schema->id() == "com.canonical.Unity8") {
198− GSettingsControllerQml::instance()->setUsageMode(usageMode);
269+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
270+ GSettingsControllerQml::instance()->setUsageMode(usageMode.toString());
199271 }
200272}
201273
202−qint64 GSettingsQml::lockedOutTime() const
274+QVariant GSettingsQml::lockedOutTime() const
203275{
204− if (m_schema->id() == "com.canonical.Unity8.Greeter") {
276+ if (m_valid && m_schema->id() == "com.canonical.Unity8.Greeter") {
205277 return GSettingsControllerQml::instance()->lockedOutTime();
206278 } else {
207− return 0;
279+ return QVariant();
208280 }
209281}
210282
211−void GSettingsQml::setLockedOutTime(qint64 timestamp)
283+void GSettingsQml::setLockedOutTime(const QVariant &timestamp)
212284{
213− if (m_schema->id() == "com.canonical.Unity8.Greeter") {
214− GSettingsControllerQml::instance()->setLockedOutTime(timestamp);
285+ if (m_valid && m_schema->id() == "com.canonical.Unity8.Greeter") {
286+ GSettingsControllerQml::instance()->setLockedOutTime(timestamp.value<qint64>());
215287 }
216288}
217289
218−QStringList GSettingsQml::lifecycleExemptAppids() const
290+QVariant GSettingsQml::lifecycleExemptAppids() const
219291{
220− if (m_schema->id() == "com.canonical.qtmir") {
292+ if (m_valid && m_schema->id() == "com.canonical.qtmir") {
221293 return GSettingsControllerQml::instance()->lifecycleExemptAppids();
222294 } else {
223− return QStringList();
295+ return QVariant();
224296 }
225297}
226298
227−bool GSettingsQml::autohideLauncher() const
299+QVariant GSettingsQml::autohideLauncher() const
228300{
229− if (m_schema->id() == "com.canonical.Unity8") {
301+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
230302 return GSettingsControllerQml::instance()->autohideLauncher();
231303 } else {
232− return false;
304+ return QVariant();
233305 }
234306}
235307
236−int GSettingsQml::launcherWidth() const
308+QVariant GSettingsQml::launcherWidth() const
237309{
238− if (m_schema->id() == "com.canonical.Unity8") {
310+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
239311 return GSettingsControllerQml::instance()->launcherWidth();
240312 } else {
241− return false;
313+ return QVariant();
314+ }
315+}
316+
317+QVariant GSettingsQml::edgeDragWidth() const
318+{
319+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
320+ return GSettingsControllerQml::instance()->edgeDragWidth();
321+ } else {
322+ return QVariant();
323+ }
324+}
325+
326+void GSettingsQml::setLifecycleExemptAppids(const QVariant &appIds)
327+{
328+ if (m_valid && m_schema->id() == "com.canonical.qtmir") {
329+ GSettingsControllerQml::instance()->setLifecycleExemptAppids(appIds.toStringList());
242330 }
243331}
244332
245−void GSettingsQml::setLifecycleExemptAppids(const QStringList &appIds)
333+void GSettingsQml::setAutohideLauncher(const QVariant &autohideLauncher)
246334{
247− if (m_schema->id() == "com.canonical.qtmir") {
248− GSettingsControllerQml::instance()->setLifecycleExemptAppids(appIds);
335+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
336+ GSettingsControllerQml::instance()->setAutohideLauncher(autohideLauncher.toBool());
249337 }
250338}
251339
252−void GSettingsQml::setAutohideLauncher(bool autohideLauncher)
340+void GSettingsQml::setLauncherWidth(const QVariant &launcherWidth)
253341{
254− if (m_schema->id() == "com.canonical.Unity8") {
255− GSettingsControllerQml::instance()->setAutohideLauncher(autohideLauncher);
342+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
343+ GSettingsControllerQml::instance()->setLauncherWidth(launcherWidth.toInt());
256344 }
257345}
258346
259−void GSettingsQml::setLauncherWidth(int launcherWidth)
347+void GSettingsQml::setEdgeDragWidth(const QVariant &edgeDragWidth)
260348{
261− if (m_schema->id() == "com.canonical.Unity8") {
262− GSettingsControllerQml::instance()->setLauncherWidth(launcherWidth);
349+ if (m_valid && m_schema->id() == "com.canonical.Unity8") {
350+ GSettingsControllerQml::instance()->setEdgeDragWidth(edgeDragWidth.toUInt());
263351 }
264352}
tests/mocks/GSettings.1.0/fake_gsettings.h+51−26
@@ -19,7 +19,9 @@
1919
2020#include <QList>
2121#include <QObject>
22+#include <QQmlParserStatus>
2223#include <QStringList>
24+#include <QVariant>
2325
2426class GSettingsSchemaQml: public QObject
2527{
@@ -41,47 +43,60 @@ private:
4143 QByteArray m_path;
4244};
4345
44−class GSettingsQml: public QObject
46+class GSettingsQml: public QObject, public QQmlParserStatus
4547{
4648 Q_OBJECT
49+ Q_INTERFACES(QQmlParserStatus)
4750
4851 Q_PROPERTY(GSettingsSchemaQml* schema READ schema NOTIFY schemaChanged)
49− Q_PROPERTY(QString pictureUri READ pictureUri WRITE setPictureUri NOTIFY pictureUriChanged)
50− Q_PROPERTY(QString usageMode READ usageMode WRITE setUsageMode NOTIFY usageModeChanged)
51− Q_PROPERTY(qint64 lockedOutTime READ lockedOutTime WRITE setLockedOutTime NOTIFY lockedOutTimeChanged)
52− Q_PROPERTY(QStringList lifecycleExemptAppids READ lifecycleExemptAppids WRITE setLifecycleExemptAppids NOTIFY lifecycleExemptAppidsChanged)
53− Q_PROPERTY(bool autohideLauncher READ autohideLauncher WRITE setAutohideLauncher NOTIFY autohideLauncherChanged)
54− Q_PROPERTY(int launcherWidth READ launcherWidth WRITE setLauncherWidth NOTIFY launcherWidthChanged)
52+ Q_PROPERTY(QVariant disableHeight READ disableHeight WRITE setDisableHeight NOTIFY disableHeightChanged)
53+ Q_PROPERTY(QVariant pictureUri READ pictureUri WRITE setPictureUri NOTIFY pictureUriChanged)
54+ Q_PROPERTY(QVariant usageMode READ usageMode WRITE setUsageMode NOTIFY usageModeChanged)
55+ Q_PROPERTY(QVariant lockedOutTime READ lockedOutTime WRITE setLockedOutTime NOTIFY lockedOutTimeChanged)
56+ Q_PROPERTY(QVariant lifecycleExemptAppids READ lifecycleExemptAppids WRITE setLifecycleExemptAppids NOTIFY lifecycleExemptAppidsChanged)
57+ Q_PROPERTY(QVariant autohideLauncher READ autohideLauncher WRITE setAutohideLauncher NOTIFY autohideLauncherChanged)
58+ Q_PROPERTY(QVariant launcherWidth READ launcherWidth WRITE setLauncherWidth NOTIFY launcherWidthChanged)
59+ Q_PROPERTY(QVariant edgeDragWidth READ edgeDragWidth WRITE setEdgeDragWidth NOTIFY edgeDragWidthChanged)
5560
5661public:
5762 GSettingsQml(QObject *parent = nullptr);
5863
59− GSettingsSchemaQml * schema() const;
60− QString pictureUri() const;
61− QString usageMode() const;
62− qint64 lockedOutTime() const;
63− QStringList lifecycleExemptAppids() const;
64− bool autohideLauncher() const;
65− int launcherWidth() const;
64+ void classBegin();
65+ void componentComplete();
6666
67− void setPictureUri(const QString &str);
68− void setUsageMode(const QString &usageMode);
69− void setLockedOutTime(qint64 timestamp);
70− void setLifecycleExemptAppids(const QStringList &appIds);
71− void setAutohideLauncher(bool autohideLauncher);
72− void setLauncherWidth(int launcherWidth);
67+ GSettingsSchemaQml * schema() const;
68+ QVariant disableHeight() const;
69+ QVariant pictureUri() const;
70+ QVariant usageMode() const;
71+ QVariant lockedOutTime() const;
72+ QVariant lifecycleExemptAppids() const;
73+ QVariant autohideLauncher() const;
74+ QVariant launcherWidth() const;
75+ QVariant edgeDragWidth() const;
76+
77+ void setDisableHeight(const QVariant &val);
78+ void setPictureUri(const QVariant &str);
79+ void setUsageMode(const QVariant &usageMode);
80+ void setLockedOutTime(const QVariant &timestamp);
81+ void setLifecycleExemptAppids(const QVariant &appIds);
82+ void setAutohideLauncher(const QVariant &autohideLauncher);
83+ void setLauncherWidth(const QVariant &launcherWidth);
84+ void setEdgeDragWidth(const QVariant &edgeDragWidth);
7385
7486Q_SIGNALS:
87+ void disableHeightChanged();
7588 void schemaChanged();
76− void pictureUriChanged(const QString&);
77− void usageModeChanged(const QString&);
78− void lockedOutTimeChanged(qint64);
79− void lifecycleExemptAppidsChanged(const QStringList &);
80− void autohideLauncherChanged(bool);
81− void launcherWidthChanged(int launcherWidth);
89+ void pictureUriChanged();
90+ void usageModeChanged();
91+ void lockedOutTimeChanged();
92+ void lifecycleExemptAppidsChanged();
93+ void autohideLauncherChanged();
94+ void launcherWidthChanged();
95+ void edgeDragWidthChanged();
8296
8397private:
8498 GSettingsSchemaQml* m_schema;
99+ bool m_valid;
85100
86101 friend class GSettingsSchemaQml;
87102};
@@ -94,6 +109,9 @@ public:
94109 static GSettingsControllerQml* instance();
95110 ~GSettingsControllerQml();
96111
112+ bool disableHeight() const;
113+ Q_INVOKABLE void setDisableHeight(bool val);
114+
97115 QString pictureUri() const;
98116 Q_INVOKABLE void setPictureUri(const QString &str);
99117
@@ -112,23 +130,30 @@ public:
112130 int launcherWidth() const;
113131 Q_INVOKABLE void setLauncherWidth(int launcherWidth);
114132
133+ uint edgeDragWidth() const;
134+ Q_INVOKABLE void setEdgeDragWidth(uint edgeDragWidth);
135+
115136Q_SIGNALS:
137+ void disableHeightChanged();
116138 void pictureUriChanged(const QString&);
117139 void usageModeChanged(const QString&);
118140 void lockedOutTimeChanged(qint64 timestamp);
119141 void lifecycleExemptAppidsChanged(const QStringList&);
120142 void autohideLauncherChanged(bool autohideLauncher);
121143 void launcherWidthChanged(int launcherWidth);
144+ void edgeDragWidthChanged(uint edgeDragWidth);
122145
123146private:
124147 GSettingsControllerQml();
125148
149+ bool m_disableHeight;
126150 QString m_pictureUri;
127151 QString m_usageMode;
128152 qint64 m_lockedOutTime;
129153 QStringList m_lifecycleExemptAppids;
130154 bool m_autohideLauncher;
131155 int m_launcherWidth;
156+ uint m_edgeDragWidth;
132157
133158 static GSettingsControllerQml* s_controllerInstance;
134159 QList<GSettingsQml *> m_registeredGSettings;
tests/qmltests/tst_OrientedShell.qml+32−22
@@ -17,6 +17,7 @@
1717import QtQuick 2.4
1818import QtQuick.Layouts 1.1
1919import QtTest 1.0
20+import GSettings 1.0
2021import Ubuntu.Components 1.3
2122import Ubuntu.Components.ListItems 1.3 as ListItem
2223import Unity.Application 0.1
@@ -44,18 +45,17 @@ Rectangle {
4445 property int savedOrientation
4546 }
4647
47− QtObject {
48− id: mockUnity8Settings
49− property string usageMode: usageModeSelector.model[usageModeSelector.selectedIndex]
48+ GSettings {
49+ id: unity8Settings
50+ schema.id: "com.canonical.Unity8"
5051 onUsageModeChanged: {
5152 usageModeSelector.selectedIndex = usageModeSelector.model.indexOf(usageMode)
5253 }
5354 }
5455
55− QtObject{
56− id: mockOskSettings
57− property bool stayHidden: false
58− property bool disableHeight: false
56+ GSettings {
57+ id: oskSettings
58+ schema.id: "com.canonical.keyboard.maliit"
5959 }
6060
6161 InputDeviceModel {
@@ -100,7 +100,7 @@ Rectangle {
100100 PropertyChanges {
101101 target: orientedShellLoader
102102 width: units.gu(160)
103− height: units.gu(100)
103+ height: units.gu(60)
104104 }
105105 PropertyChanges {
106106 target: root
@@ -115,7 +115,7 @@ Rectangle {
115115 name: "flo"
116116 PropertyChanges {
117117 target: orientedShellLoader
118− width: units.gu(62)
118+ width: units.gu(60)
119119 height: units.gu(100)
120120 }
121121 PropertyChanges {
@@ -132,7 +132,7 @@ Rectangle {
132132 PropertyChanges {
133133 target: orientedShellLoader
134134 width: units.gu(100)
135− height: units.gu(56)
135+ height: units.gu(65)
136136 }
137137 PropertyChanges {
138138 target: root
@@ -157,8 +157,6 @@ Rectangle {
157157 sourceComponent: Component {
158158 OrientedShell {
159159 anchors.fill: parent
160− unity8Settings: mockUnity8Settings
161− oskSettings: mockOskSettings
162160 physicalOrientation: root.physicalOrientation0
163161 orientationLocked: orientationLockedCheckBox.checked
164162 orientationLock: mockOrientationLock
@@ -311,7 +309,7 @@ Rectangle {
311309 function selectWindowed() {selectedIndex = 1;}
312310 function selectAutomatic() {selectedIndex = 2;}
313311 onSelectedIndexChanged: {
314− mockUnity8Settings.usageMode = usageModeSelector.model[usageModeSelector.selectedIndex]
312+ GSettingsController.setUsageMode(usageModeSelector.model[usageModeSelector.selectedIndex]);
315313 }
316314 }
317315 MouseTouchEmulationCheckbox {
@@ -472,6 +470,13 @@ Rectangle {
472470 // kill all (fake) running apps
473471 killApps();
474472
473+ while (miceModel.count > 0)
474+ MockInputDeviceBackend.removeDevice("/mouse" + (miceModel.count - 1));
475+ while (touchpadModel.count > 0)
476+ MockInputDeviceBackend.removeDevice("/touchpad" + (touchpadModel.count - 1));
477+ while (keyboardsModel.count > 0)
478+ MockInputDeviceBackend.removeDevice("/kbd" + (keyboardsModel.count - 1))
479+
475480 spreadRepeaterConnections.target = null;
476481 spreadRepeaterConnections.itemAddedCallback = null;
477482 signalSpy.target = null;
@@ -1081,7 +1086,7 @@ Rectangle {
10811086
10821087 tryCompare(shell, "usageScenario", "phone");
10831088 tryCompare(inputMethod, "enabled", true);
1084− tryCompare(mockOskSettings, "disableHeight", false);
1089+ tryCompare(oskSettings, "disableHeight", false);
10851090
10861091 if (data.kbd) {
10871092 MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
@@ -1092,14 +1097,7 @@ Rectangle {
10921097
10931098 tryCompare(shell, "usageScenario", data.expectedMode);
10941099 tryCompare(inputMethod, "enabled", data.oskExpected);
1095− tryCompare(mockOskSettings, "disableHeight", data.expectedMode == "desktop" || data.kbd);
1096−
1097− if (data.kbd) {
1098− MockInputDeviceBackend.removeDevice("/kbd0");
1099− }
1100− if (data.mouse) {
1101− MockInputDeviceBackend.removeDevice("/mouse0");
1102− }
1100+ tryCompare(oskSettings, "disableHeight", data.expectedMode == "desktop" || data.kbd);
11031101
11041102 // Restore width
11051103 orientedShellLoader.width = oldWidth;
@@ -1140,6 +1138,18 @@ Rectangle {
11401138 orientedShellLoader.width = oldWidth;
11411139 }
11421140
1141+ function test_setsUsageModeOnStartup() {
1142+ // Prepare inconsistent beginning (mouse & staged mode)
1143+ MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1144+ usageModeSelector.selectStaged();
1145+ compare(unity8Settings.usageMode, "Staged");
1146+
1147+ // Load shell, and have it pick desktop
1148+ loadShell("desktop");
1149+ compare(shell.usageScenario, "desktop");
1150+ compare(unity8Settings.usageMode, "Windowed");
1151+ }
1152+
11431153 function test_overrideWindowed() {
11441154 loadShell("mako")
11451155