on xenial help sign in
Merge pull request #120 from ubports/xenial_-_edge_-_sorting
e53d96aMarius Gripsgard
po/unity8.pot+184−203
@@ -8,7 +8,7 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: \n"
10"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2017-04-04 22:56+0000\n"
11+"POT-Creation-Date: 2019-04-08 17:26-0500\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -38,7 +38,7 @@ msgstr ""
38msgid "Log In"
38msgid "Log In"
39msgstr ""
39msgstr ""
40
40
41−#: plugins/LightDM/Greeter.cpp:254
41+#: plugins/LightDM/Greeter.cpp:254 qml/Wizard/Pages/UpdateDelegate.qml:118
42msgid "Retry"
42msgid "Retry"
43msgstr ""
43msgstr ""
44
44
@@ -83,8 +83,7 @@ msgid "Log Out"
83msgstr ""
83msgstr ""
84
84
85#: qml/Components/Dialogs.qml:199 qml/Components/Dialogs.qml:264
85#: qml/Components/Dialogs.qml:199 qml/Components/Dialogs.qml:264
86−#: qml/Dash/DashPageHeader.qml:324 qml/Greeter/NarrowView.qml:208
87−#: qml/Wizard/Pages/passcode-confirm.qml:32
86+#: qml/Greeter/NarrowView.qml:208 qml/Wizard/Pages/passcode-confirm.qml:32
88#: qml/Wizard/Pages/passcode-set.qml:32
87#: qml/Wizard/Pages/passcode-set.qml:32
89msgid "Cancel"
88msgid "Cancel"
90msgstr ""
89msgstr ""
@@ -377,103 +376,6 @@ msgstr ""
377msgid "Find more settings in the system settings."
376msgid "Find more settings in the system settings."
378msgstr ""
377msgstr ""
379
378
380−#: qml/Dash/DashPageHeader.qml:361
381−msgctxt "Button: Open the Ubuntu Store"
382−msgid "Store"
383−msgstr ""
384−
385−#: qml/Dash/DashPageHeader.qml:368
386−msgctxt "Button: Start a search in the current dash scope"
387−msgid "Search"
388−msgstr ""
389−
390−#: qml/Dash/DashPageHeader.qml:378
391−msgctxt "Button: Show the current dash scope settings"
392−msgid "Settings"
393−msgstr ""
394−
395−#: qml/Dash/DashPageHeader.qml:385
396−msgid "Remove from Favorites"
397−msgstr ""
398−
399−#: qml/Dash/DashPageHeader.qml:385
400−msgid "Add to Favorites"
401−msgstr ""
402−
403−#: qml/Dash/FiltersPopover.qml:61
404−msgid "Refine your results"
405−msgstr ""
406−
407−#: qml/Dash/FiltersPopover.qml:70
408−msgid "Reset"
409−msgstr ""
410−
411−#: qml/Dash/GenericScopeView.qml:547 qml/Dash/GenericScopeView.qml:718
412−msgid "Show less"
413−msgstr ""
414−
415−#: qml/Dash/GenericScopeView.qml:547
416−msgid "Show all"
417−msgstr ""
418−
419−#: qml/Dash/GenericScopeView.qml:578
420−msgctxt "Label: Hint for dash search line edit"
421−msgid "Search"
422−msgstr ""
423−
424−#: qml/Dash/PageHeaderExtraPanel.qml:67
425−msgid "Recent Searches"
426−msgstr ""
427−
428−#: qml/Dash/PageHeaderExtraPanel.qml:78
429−msgid "Clear All"
430−msgstr ""
431−
432−#: qml/Dash/Previews/PreviewActionCombo.qml:36
433−msgid "More..."
434−msgstr ""
435−
436−#: qml/Dash/Previews/PreviewActionCombo.qml:36
437−msgid "Less..."
438−msgstr ""
439−
440−#: qml/Dash/Previews/PreviewCommentInput.qml:83
441−#: qml/Dash/Previews/PreviewRatingInput.qml:202
442−msgid "Send"
443−msgstr ""
444−
445−#: qml/Dash/Previews/PreviewRatingInput.qml:109
446−msgid "Rate this"
447−msgstr ""
448−
449−#: qml/Dash/Previews/PreviewRatingInput.qml:184
450−msgid "Add a review"
451−msgstr ""
452−
453−#: qml/Dash/PullToRefreshScopeStyle.qml:56
454−msgid "Pull to refresh…"
455−msgstr ""
456−
457−#: qml/Dash/PullToRefreshScopeStyle.qml:61
458−msgid "Release to refresh…"
459−msgstr ""
460−
461−#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
462−msgid "Enable location data"
463−msgstr ""
464−
465−#: qml/Dash/ScopesList.qml:146
466−msgid "Manage"
467−msgstr ""
468−
469−#: qml/Dash/ScopesList.qml:187
470−msgid "Home"
471−msgstr ""
472−
473−#: qml/Dash/ScopesList.qml:188
474−msgid "Also installed"
475−msgstr ""
476−
477#: qml/Greeter/CoverPage.qml:127
379#: qml/Greeter/CoverPage.qml:127
478msgid "Unlock"
380msgid "Unlock"
479msgstr ""
381msgstr ""
@@ -525,19 +427,10 @@ msgstr ""
525msgid "Select desktop environment"
427msgid "Select desktop environment"
526msgstr ""
428msgstr ""
527
429
528−#: qml/Launcher/Drawer.qml:94
430+#: qml/Launcher/Drawer.qml:107
529msgid "Search…"
431msgid "Search…"
530msgstr ""
432msgstr ""
531
433
532−#: qml/Launcher/Drawer.qml:129
533−msgctxt "Apps sorted alphabetically"
534−msgid "A-Z"
535−msgstr ""
536−
537−#: qml/Launcher/MoreAppsHeader.qml:55
538−msgid "More apps in the store"
539−msgstr ""
540−
541#: qml/Notifications/NotificationMenuItemFactory.qml:124
434#: qml/Notifications/NotificationMenuItemFactory.qml:124
542msgid "Show password"
435msgid "Show password"
543msgstr ""
436msgstr ""
@@ -590,6 +483,7 @@ msgid "In queue…"
590msgstr ""
483msgstr ""
591
484
592#: qml/Panel/Indicators/IndicatorMenuItemFactory.qml:1021
485#: qml/Panel/Indicators/IndicatorMenuItemFactory.qml:1021
486+#: qml/Wizard/Pages/UpdateDelegate.qml:226
593msgid "Downloading"
487msgid "Downloading"
594msgstr ""
488msgstr ""
595
489
@@ -653,25 +547,42 @@ msgstr ""
653msgid "Swipe from the top edge to access notifications and quick settings"
547msgid "Swipe from the top edge to access notifications and quick settings"
654msgstr ""
548msgstr ""
655
549
656−#: qml/Wizard/Page.qml:54
550+#: qml/Wizard/Page.qml:59
657msgctxt "Button: Go back one page in the Wizard"
551msgctxt "Button: Go back one page in the Wizard"
658msgid "Back"
552msgid "Back"
659msgstr ""
553msgstr ""
660
554
661−#: qml/Wizard/Pages/10-welcome.qml:28
555+#: qml/Wizard/Pages/10-welcome.qml:29
662msgid "Language"
556msgid "Language"
663msgstr ""
557msgstr ""
664
558
665−#: qml/Wizard/Pages/10-welcome.qml:173 qml/Wizard/Pages/20-keyboard.qml:152
559+#: qml/Wizard/Pages/10-welcome.qml:175
666−#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/40-location.qml:271
560+#: qml/Wizard/Pages/10-welcome-update.qml:126
561+#: qml/Wizard/Pages/11-changelog.qml:74 qml/Wizard/Pages/20-keyboard.qml:152
667−#: qml/Wizard/Pages/50-timezone.qml:271 qml/Wizard/Pages/60-account.qml:65
562+#: qml/Wizard/Pages/30-wifi.qml:214 qml/Wizard/Pages/50-timezone.qml:272
668−#: qml/Wizard/Pages/70-passwd-type.qml:145
563+#: qml/Wizard/Pages/60-account.qml:72 qml/Wizard/Pages/70-passwd-type.qml:146
669−#: qml/Wizard/Pages/75-report-check.qml:84
564+#: qml/Wizard/Pages/76-app-update.qml:231
670−#: qml/Wizard/Pages/passcode-desktop.qml:142
565+#: qml/Wizard/Pages/passcode-desktop.qml:154
671−#: qml/Wizard/Pages/password-set.qml:142
566+#: qml/Wizard/Pages/password-set.qml:153
672msgid "Next"
567msgid "Next"
673msgstr ""
568msgstr ""
674
569
570+#: qml/Wizard/Pages/10-welcome-update.qml:91
571+msgid "Welcome to "
572+msgstr ""
573+
574+#: qml/Wizard/Pages/10-welcome-update.qml:106
575+msgid "We will make sure your device is ready to use "
576+msgstr ""
577+
578+#: qml/Wizard/Pages/11-changelog.qml:28
579+msgid "What's new"
580+msgstr ""
581+
582+#: qml/Wizard/Pages/11-changelog.qml:74
583+msgid "Loading..."
584+msgstr ""
585+
675#: qml/Wizard/Pages/20-keyboard.qml:31
586#: qml/Wizard/Pages/20-keyboard.qml:31
676msgid "Select Keyboard"
587msgid "Select Keyboard"
677msgstr ""
588msgstr ""
@@ -684,64 +595,33 @@ msgstr ""
684msgid "Keyboard layout"
595msgid "Keyboard layout"
685msgstr ""
596msgstr ""
686
597
687−#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:206
598+#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:214
688−#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/sim.qml:101
599+#: qml/Wizard/Pages/60-account.qml:72 qml/Wizard/Pages/76-app-update.qml:235
600+#: qml/Wizard/Pages/79-system-update.qml:144 qml/Wizard/Pages/sim.qml:101
689msgid "Skip"
601msgid "Skip"
690msgstr ""
602msgstr ""
691
603
692−#: qml/Wizard/Pages/30-wifi.qml:30
604+#: qml/Wizard/Pages/30-wifi.qml:31
693msgid "Connect to Wi‑Fi"
605msgid "Connect to Wi‑Fi"
694msgstr ""
606msgstr ""
695
607
696−#: qml/Wizard/Pages/30-wifi.qml:131
608+#: qml/Wizard/Pages/30-wifi.qml:139
697msgid "Connected"
609msgid "Connected"
698msgstr ""
610msgstr ""
699
611
700−#: qml/Wizard/Pages/30-wifi.qml:164
612+#: qml/Wizard/Pages/30-wifi.qml:172
701msgid "Available Wi-Fi networks"
613msgid "Available Wi-Fi networks"
702msgstr ""
614msgstr ""
703
615
704−#: qml/Wizard/Pages/30-wifi.qml:165
616+#: qml/Wizard/Pages/30-wifi.qml:173
705msgid "No available Wi-Fi networks"
617msgid "No available Wi-Fi networks"
706msgstr ""
618msgstr ""
707
619
708−#: qml/Wizard/Pages/40-location.qml:27
709−msgid "Location Services"
710−msgstr ""
711−
712−#: qml/Wizard/Pages/40-location.qml:83
713−msgid ""
714−"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
715−"(recommended)"
716−msgstr ""
717−
718−#: qml/Wizard/Pages/40-location.qml:105
719−#, qt-format
720−msgid "By selecting this option you agree to the Nokia HERE %1."
721−msgstr ""
722−
723−#: qml/Wizard/Pages/40-location.qml:106
724−msgctxt "part of: Nokia HERE terms and conditions"
725−msgid "terms and conditions"
726−msgstr ""
727−
728−#: qml/Wizard/Pages/40-location.qml:160
729−msgid "GPS only"
730−msgstr ""
731−
732−#: qml/Wizard/Pages/40-location.qml:214
733−msgid "Don't use my location"
734−msgstr ""
735−
736−#: qml/Wizard/Pages/40-location.qml:260
737−msgid "You can change it later in System Settings."
738−msgstr ""
739−
740#: qml/Wizard/Pages/50-timezone.qml:30
620#: qml/Wizard/Pages/50-timezone.qml:30
741msgid "Time Zone"
621msgid "Time Zone"
742msgstr ""
622msgstr ""
743
623
744−#: qml/Wizard/Pages/50-timezone.qml:182
624+#: qml/Wizard/Pages/50-timezone.qml:183
745msgid "Enter your city"
625msgid "Enter your city"
746msgstr ""
626msgstr ""
747
627
@@ -749,7 +629,7 @@ msgstr ""
749msgid "Personalize Your Device"
629msgid "Personalize Your Device"
750msgstr ""
630msgstr ""
751
631
752−#: qml/Wizard/Pages/60-account.qml:48
632+#: qml/Wizard/Pages/60-account.qml:54
753msgid "Preferred Name"
633msgid "Preferred Name"
754msgstr ""
634msgstr ""
755
635
@@ -757,81 +637,120 @@ msgstr ""
757msgid "Lock Screen"
637msgid "Lock Screen"
758msgstr ""
638msgstr ""
759
639
760−#: qml/Wizard/Pages/70-passwd-type.qml:102
640+#: qml/Wizard/Pages/70-passwd-type.qml:103
761msgctxt "Label: Type of security method"
641msgctxt "Label: Type of security method"
762msgid "Create new password"
642msgid "Create new password"
763msgstr ""
643msgstr ""
764
644
765−#: qml/Wizard/Pages/70-passwd-type.qml:104
645+#: qml/Wizard/Pages/70-passwd-type.qml:105
766msgctxt "Label: Type of security method"
646msgctxt "Label: Type of security method"
767msgid "Create passcode (numbers only)"
647msgid "Create passcode (numbers only)"
768msgstr ""
648msgstr ""
769
649
770−#: qml/Wizard/Pages/70-passwd-type.qml:106
650+#: qml/Wizard/Pages/70-passwd-type.qml:107
771msgctxt "Label: Type of security method"
651msgctxt "Label: Type of security method"
772msgid "No lock code"
652msgid "No lock code"
773msgstr ""
653msgstr ""
774
654
775−#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
655+#: qml/Wizard/Pages/76-app-update.qml:34
776−msgid "Privacy Policy"
656+msgid "Update Apps"
777msgstr ""
657msgstr ""
778
658
779−#: qml/Wizard/Pages/75-report-check.qml:26
659+#: qml/Wizard/Pages/76-app-update.qml:122
780−msgid "Help Us Improve"
660+msgid "This device is not connected to the internet."
781msgstr ""
661msgstr ""
782
662
783−#: qml/Wizard/Pages/75-report-check.qml:59
663+#: qml/Wizard/Pages/76-app-update.qml:123
784−msgid "Improve system performance by sending us crashes and error reports."
664+#: qml/Wizard/Pages/76-app-update.qml:129
665+msgid "Use the OpenStore app to check for updates once connected."
785msgstr ""
666msgstr ""
786
667
787−#: qml/Wizard/Pages/75-report-check.qml:60
668+#: qml/Wizard/Pages/76-app-update.qml:125
788−msgid "Privacy policy"
669+msgid "Software is up to date"
789msgstr ""
670msgstr ""
790
671
791−#: qml/Wizard/Pages/80-finished.qml:89
672+#: qml/Wizard/Pages/76-app-update.qml:128
792−msgid "Welcome to Ubuntu"
673+msgid "The update server is not responding."
793msgstr ""
674msgstr ""
794
675
795−#: qml/Wizard/Pages/80-finished.qml:104
676+#: qml/Wizard/Pages/76-app-update.qml:233
796−msgid "You are ready to use your device now"
677+msgid "Please wait..."
797msgstr ""
678msgstr ""
798
679
799−#: qml/Wizard/Pages/80-finished.qml:124
680+#: qml/Wizard/Pages/79-system-update.qml:28
800−msgid "Get Started"
681+msgid "Update Device"
801msgstr ""
682msgstr ""
802
683
803−#: qml/Wizard/Pages/here-terms.qml:25
684+#: qml/Wizard/Pages/79-system-update.qml:55
804−msgid "Terms & Conditions"
685+msgid ""
686+"There is a system update available and ready to install. Afterwards, the "
687+"device will automatically restart."
805msgstr ""
688msgstr ""
806
689
807−#: qml/Wizard/Pages/here-terms.qml:69
690+#: qml/Wizard/Pages/79-system-update.qml:76
808−msgid "Your device uses positioning technologies provided by HERE."
691+msgctxt "string identifying name of the update"
692+msgid "Ubuntu Touch system"
809msgstr ""
693msgstr ""
810
694
811−#: qml/Wizard/Pages/here-terms.qml:81
695+#: qml/Wizard/Pages/79-system-update.qml:83
696+#, qt-format
697+msgctxt "version of the system update"
812−msgid ""
698+msgid "Version %1"
813−"To provide you with positioning services and to improve their quality, HERE "
814−"collects information about nearby cell towers and Wi-Fi hotspots around your "
815−"current location whenever your position is being found."
816msgstr ""
699msgstr ""
817
700
818−#: qml/Wizard/Pages/here-terms.qml:93
701+#: qml/Wizard/Pages/79-system-update.qml:95
819−msgid ""
702+msgid "This could take a few minutes..."
820−"The information collected is used to analyze the service and to improve the "
703+msgstr ""
821−"use of service, but not to identify you personally."
704+
705+#: qml/Wizard/Pages/79-system-update.qml:109
706+msgid "Install and restart now"
707+msgstr ""
708+
709+#: qml/Wizard/Pages/80-finished.qml:91
710+msgid "Welcome Back"
711+msgstr ""
712+
713+#: qml/Wizard/Pages/80-finished.qml:91
714+msgid "Welcome to Ubuntu"
715+msgstr ""
716+
717+#: qml/Wizard/Pages/80-finished.qml:106
718+msgid "You are ready to use your device now"
719+msgstr ""
720+
721+#: qml/Wizard/Pages/80-finished.qml:126
722+msgid "Continue"
822msgstr ""
723msgstr ""
823
724
824−#: qml/Wizard/Pages/here-terms.qml:106
725+#: qml/Wizard/Pages/80-finished.qml:126
726+msgid "Get Started"
727+msgstr ""
728+
729+#: qml/Wizard/Pages/DownloadHandler.qml:174
730+msgid "Installation failed"
731+msgstr ""
732+
733+#: qml/Wizard/Pages/GlobalUpdateControls.qml:84
734+msgid "Checking for updates…"
735+msgstr ""
736+
737+#: qml/Wizard/Pages/GlobalUpdateControls.qml:109
825#, qt-format
738#, qt-format
826−msgid "By continuing, you agree to the HERE platform %1 and %2."
739+msgid "%1 update available"
740+msgid_plural "%1 updates available"
741+msgstr[0] ""
742+msgstr[1] ""
743+
744+#: qml/Wizard/Pages/GlobalUpdateControls.qml:119
745+msgid "Update all…"
827msgstr ""
746msgstr ""
828
747
829−#: qml/Wizard/Pages/here-terms.qml:107
748+#: qml/Wizard/Pages/GlobalUpdateControls.qml:121
830−msgid "Service Terms"
749+msgid "Update all"
831msgstr ""
750msgstr ""
832
751
833#: qml/Wizard/Pages/passcode-confirm.qml:43
752#: qml/Wizard/Pages/passcode-confirm.qml:43
834−#: qml/Wizard/Pages/passcode-desktop.qml:97
753+#: qml/Wizard/Pages/passcode-desktop.qml:104
835msgid "Confirm passcode"
754msgid "Confirm passcode"
836msgstr ""
755msgstr ""
837
756
@@ -848,24 +767,24 @@ msgstr ""
848msgid "Lock Screen Passcode"
767msgid "Lock Screen Passcode"
849msgstr ""
768msgstr ""
850
769
851−#: qml/Wizard/Pages/passcode-desktop.qml:61
770+#: qml/Wizard/Pages/passcode-desktop.qml:68
852msgid "Enter 4 numbers to setup your passcode"
771msgid "Enter 4 numbers to setup your passcode"
853msgstr ""
772msgstr ""
854
773
855−#: qml/Wizard/Pages/passcode-desktop.qml:77
774+#: qml/Wizard/Pages/passcode-desktop.qml:84
856#: qml/Wizard/Pages/passcode-set.qml:54
775#: qml/Wizard/Pages/passcode-set.qml:54
857msgid "Choose passcode"
776msgid "Choose passcode"
858msgstr ""
777msgstr ""
859
778
860−#: qml/Wizard/Pages/passcode-desktop.qml:127
779+#: qml/Wizard/Pages/passcode-desktop.qml:139
861msgid "Passcode too short"
780msgid "Passcode too short"
862msgstr ""
781msgstr ""
863
782
864−#: qml/Wizard/Pages/passcode-desktop.qml:129
783+#: qml/Wizard/Pages/passcode-desktop.qml:141
865msgid "Passcodes match"
784msgid "Passcodes match"
866msgstr ""
785msgstr ""
867
786
868−#: qml/Wizard/Pages/passcode-desktop.qml:131
787+#: qml/Wizard/Pages/passcode-desktop.qml:143
869msgid "Passcodes do not match"
788msgid "Passcodes do not match"
870msgstr ""
789msgstr ""
871
790
@@ -877,15 +796,15 @@ msgstr ""
877msgid "Lock Screen Password"
796msgid "Lock Screen Password"
878msgstr ""
797msgstr ""
879
798
880−#: qml/Wizard/Pages/password-set.qml:62
799+#: qml/Wizard/Pages/password-set.qml:68
881msgid "Enter at least 8 characters"
800msgid "Enter at least 8 characters"
882msgstr ""
801msgstr ""
883
802
884−#: qml/Wizard/Pages/password-set.qml:74
803+#: qml/Wizard/Pages/password-set.qml:80
885msgid "Choose password"
804msgid "Choose password"
886msgstr ""
805msgstr ""
887
806
888−#: qml/Wizard/Pages/password-set.qml:104
807+#: qml/Wizard/Pages/password-set.qml:110
889msgid "Confirm password"
808msgid "Confirm password"
890msgstr ""
809msgstr ""
891
810
@@ -913,6 +832,68 @@ msgstr ""
913msgid "To proceed with no SIM tap Skip."
832msgid "To proceed with no SIM tap Skip."
914msgstr ""
833msgstr ""
915
834
835+#: qml/Wizard/Pages/UpdateDelegate.qml:123
836+msgid "Update"
837+msgstr ""
838+
839+#: qml/Wizard/Pages/UpdateDelegate.qml:125
840+msgid "Download"
841+msgstr ""
842+
843+#: qml/Wizard/Pages/UpdateDelegate.qml:131
844+msgid "Resume"
845+msgstr ""
846+
847+#: qml/Wizard/Pages/UpdateDelegate.qml:138
848+msgid "Pause"
849+msgstr ""
850+
851+#: qml/Wizard/Pages/UpdateDelegate.qml:142
852+msgid "Install…"
853+msgstr ""
854+
855+#: qml/Wizard/Pages/UpdateDelegate.qml:144
856+msgid "Install"
857+msgstr ""
858+
859+#: qml/Wizard/Pages/UpdateDelegate.qml:148
860+msgid "Open"
861+msgstr ""
862+
863+#: qml/Wizard/Pages/UpdateDelegate.qml:216
864+msgid "Installing"
865+msgstr ""
866+
867+#: qml/Wizard/Pages/UpdateDelegate.qml:220
868+msgid "Paused"
869+msgstr ""
870+
871+#: qml/Wizard/Pages/UpdateDelegate.qml:223
872+msgid "Waiting to download"
873+msgstr ""
874+
875+#: qml/Wizard/Pages/UpdateDelegate.qml:279
876+#, qt-format
877+msgid "%1 of %2"
878+msgstr ""
879+
880+#: qml/Wizard/Pages/UpdateDelegate.qml:283
881+msgid "Downloaded"
882+msgstr ""
883+
884+#: qml/Wizard/Pages/UpdateDelegate.qml:286
885+msgid "Installed"
886+msgstr ""
887+
888+#: qml/Wizard/Pages/UpdateDelegate.qml:291
889+#, qt-format
890+msgid "Updated %1"
891+msgstr ""
892+
893+#: qml/Wizard/Pages/UpdateDelegate.qml:315
894+msgid "Update failed"
895+msgstr ""
896+
916#: qml/Wizard/PasswordMeter.qml:87
897#: qml/Wizard/PasswordMeter.qml:87
917msgid "Password too short"
898msgid "Password too short"
918msgstr ""
899msgstr ""
qml/Panel/Handle.qml → qml/Components/Handle.qmlrenamed+1
@@ -29,6 +29,7 @@ Rectangle {
29 height: childrenRect.height
29 height: childrenRect.height
30 anchors.centerIn: parent
30 anchors.centerIn: parent
31 spacing: units.gu(0.5)
31 spacing: units.gu(0.5)
32+ rotation: (parent.width >= parent.height) ? 0 : 90
32 Repeater {
33 Repeater {
33 model: 3
34 model: 3
34 delegate: Rectangle {
35 delegate: Rectangle {
qml/Launcher/Drawer.qml+100−246
@@ -26,13 +26,13 @@ FocusScope {
26 id: root
26 id: root
27
27
28 property int panelWidth: 0
28 property int panelWidth: 0
29− readonly property bool moving: listLoader.item && listLoader.item.moving
29+ readonly property bool moving: appList && appList.moving
30 readonly property Item searchTextField: searchField
30 readonly property Item searchTextField: searchField
31 readonly property real delegateWidth: units.gu(10)
31 readonly property real delegateWidth: units.gu(10)
32
32
33 signal applicationSelected(string appId)
33 signal applicationSelected(string appId)
34
34
35− property bool firstOpen: true
35+ property bool handleVisible: false
36 property bool draggingHorizontally: false
36 property bool draggingHorizontally: false
37 property int dragDistance: 0
37 property int dragDistance: 0
38
38
@@ -46,15 +46,21 @@ FocusScope {
46 focusInput();
46 focusInput();
47 searchField.text = event.text;
47 searchField.text = event.text;
48 }
48 }
49+ switch (event.key) {
50+ case Qt.Key_Right:
51+ case Qt.Key_Left:
52+ case Qt.Key_Down:
53+ appList.focus = true;
54+ break;
55+ case Qt.Key_Up:
56+ focusInput();
57+ break;
58+ }
49 // Catch all presses here in case the navigation lets something through
59 // Catch all presses here in case the navigation lets something through
50 // We never want to end up in the launcher with focus
60 // We never want to end up in the launcher with focus
51 event.accepted = true;
61 event.accepted = true;
52 }
62 }
53
63
54− Settings {
55− property alias selectedTab: sections.selectedIndex
56− }
57−
58 MouseArea {
64 MouseArea {
59 anchors.fill: parent
65 anchors.fill: parent
60 hoverEnabled: true
66 hoverEnabled: true
@@ -67,6 +73,44 @@ FocusScope {
67 color: "#111111"
73 color: "#111111"
68 opacity: 0.99
74 opacity: 0.99
69
75
76+ MouseArea {
77+ id: drawerHandle
78+ anchors {
79+ right: parent.right
80+ top: parent.top
81+ bottom: parent.bottom
82+ }
83+ width: root.handleVisible ? units.gu(2) : 0
84+ property int oldX: 0
85+
86+ onPressed: {
87+ handle.active = true;
88+ oldX = mouseX;
89+ }
90+ onMouseXChanged: {
91+ var diff = oldX - mouseX;
92+ root.draggingHorizontally |= diff > units.gu(2);
93+ if (!root.draggingHorizontally) {
94+ return;
95+ }
96+ root.dragDistance += diff;
97+ oldX = mouseX
98+ }
99+ onReleased: reset()
100+ onCanceled: reset()
101+
102+ function reset() {
103+ root.draggingHorizontally = false;
104+ handle.active = false;
105+ }
106+
107+ Handle {
108+ id: handle
109+ anchors.fill: parent
110+ active: parent.pressed
111+ }
112+ }
113+
70 AppDrawerModel {
114 AppDrawerModel {
71 id: appDrawerModel
115 id: appDrawerModel
72 }
116 }
@@ -80,258 +124,65 @@ FocusScope {
80
124
81 Item {
125 Item {
82 id: contentContainer
126 id: contentContainer
83− anchors.fill: parent
127+ anchors {
128+ left: parent.left
129+ right: drawerHandle.left
130+ top: parent.top
131+ bottom: parent.bottom
84− anchors.leftMargin: root.panelWidth
132+ leftMargin: root.panelWidth
85−
86− TextField {
87− id: searchField
88− objectName: "searchField"
89− anchors { left: parent.left; top: parent.top; right: parent.right; margins: units.gu(1) }
90− placeholderText: i18n.tr("Search…")
91−
92− KeyNavigation.down: sections
93−
94− onAccepted: {
95− if (searchField.displayText != "" && listLoader.item) {
96− // In case there is no currentItem (it might have been filtered away) lets reset it to the first item
97− if (!listLoader.item.currentItem) {
98− listLoader.item.currentIndex = 0;
99− }
100− root.applicationSelected(listLoader.item.getFirstAppId());
101− }
102− }
103 }
133 }
104
134
105 Item {
135 Item {
106− id: sectionsContainer
136+ id: searchFieldContainer
107− anchors { left: parent.left; top: searchField.bottom; right: parent.right; }
108− height: sections.height
109− clip: true
110− z: 2
111−
112− Sections {
113− id: sections
114− objectName: "drawerSections"
115− width: parent.width
116−
117− KeyNavigation.up: searchField
118− KeyNavigation.down: headerFocusScope
119− KeyNavigation.backtab: searchField
120− KeyNavigation.tab: headerFocusScope
121−
122− actions: [
123− Action {
124− text: i18n.ctr("Apps sorted alphabetically", "A-Z")
125− // TODO: Disabling this for now as we don't get the right input from u-a-l yet.
126−// },
127−// Action {
128−// text: i18n.ctr("Most used apps", "Most used")
129− }
130− ]
131−
132− Rectangle {
133− anchors.bottom: parent.bottom
134− height: units.dp(1)
135− color: 'gray'
136− width: contentContainer.width
137− }
138− }
139− }
140−
141− FocusScope {
142− id: headerFocusScope
143− objectName: "headerFocusScope"
144− KeyNavigation.up: sections
145− KeyNavigation.down: listLoader.item
146− KeyNavigation.backtab: sections
147− KeyNavigation.tab: listLoader.item
148− activeFocusOnTab: true
149−
150− GSettings {
151− id: settings
152− schema.id: "com.canonical.Unity8"
153− }
154−
155− Keys.onPressed: {
156− switch (event.key) {
157− case Qt.Key_Return:
158− case Qt.Key_Enter:
159− case Qt.Key_Space:
160− trigger();
161− event.accepted = true;
162− }
163− }
164−
165− function trigger() {
166− Qt.openUrlExternally(settings.appstoreUri)
167− }
168− }
169−
170− Loader {
171− id: listLoader
172− objectName: "drawerListLoader"
173− anchors { left: parent.left; top: sectionsContainer.bottom; right: parent.right; bottom: parent.bottom }
174−
175− KeyNavigation.up: headerFocusScope
176− KeyNavigation.down: searchField
177− KeyNavigation.backtab: headerFocusScope
178− KeyNavigation.tab: searchField
179−
180− sourceComponent: {
181− switch (sections.selectedIndex) {
182− case 0: return aToZComponent;
183− case 1: return mostUsedComponent;
184− }
185− }
186− Binding {
187− target: listLoader.item || null
188− property: "objectName"
189− value: "drawerItemList"
190− }
191− }
192−
193− MouseArea {
194− id: horizontalDragDetector
195− parent: listLoader.item ? listLoader.item : null
196− anchors.fill: parent
197− propagateComposedEvents: true
198− property int oldX: 0
199− onPressed: {
200− if (root.firstOpen) {
201− mouse.accepted = false;
202− root.firstOpen = false;
203− return;
204− }
205− oldX = mouseX;
206− }
207− onMouseXChanged: {
208− var diff = oldX - mouseX;
209− root.draggingHorizontally |= diff > units.gu(2);
210− if (!root.draggingHorizontally) {
211− return;
212− }
213− parent.interactive = false;
214− root.dragDistance += diff;
215− oldX = mouseX
216− }
217− onReleased: reset();
218− onCanceled: reset();
219− function reset() {
220− if (root.draggingHorizontally) {
221− root.draggingHorizontally = false;
222− parent.interactive = true;
223− }
224− }
225− }
226−
227− Component {
228− id: mostUsedComponent
229− DrawerListView {
230− id: mostUsedListView
231−
232− header: MoreAppsHeader {
233− width: parent.width
234− height: units.gu(6)
137+ height: units.gu(6)
235− highlighted: headerFocusScope.activeFocus
138+ anchors { left: parent.left; top: parent.top; right: parent.right; margins: units.gu(1) }
236− onClicked: headerFocusScope.trigger();
237− }
238
139
239− model: AppDrawerProxyModel {
140+ TextField {
240− source: sortProxyModel
141+ id: searchField
241− group: AppDrawerProxyModel.GroupByAll
142+ objectName: "searchField"
242− sortBy: AppDrawerProxyModel.SortByUsage
143+ anchors {
243− dynamicSortFilter: false
144+ left: parent.left
145+ top: parent.top
146+ right: parent.right
147+ bottom: parent.bottom
148+ bottomMargin: units.gu(2)
244 }
149 }
150+ placeholderText: i18n.tr("Search…")
151+ z: 100
245
152
246− delegate: UbuntuShape {
153+ KeyNavigation.down: appList
247− width: parent.width - units.gu(2)
248− anchors.horizontalCenter: parent.horizontalCenter
249− color: "#20ffffff"
250− aspect: UbuntuShape.Flat
251− // NOTE: Cannot use gridView.rows here as it would evaluate to 0 at first and only update later,
252− // which messes up the ListView.
253− height: (Math.ceil(mostUsedGridView.model.count / mostUsedGridView.columns) * mostUsedGridView.delegateHeight) + units.gu(2)
254−
255− readonly property string appId: model.appId
256−
257− DrawerGridView {
258− id: mostUsedGridView
259− anchors.fill: parent
260− topMargin: units.gu(1)
261− bottomMargin: units.gu(1)
262− clip: true
263−
264− interactive: true
265− focus: index == mostUsedListView.currentIndex
266
154
267− model: sortProxyModel
155+ onAccepted: {
268−
156+ if (searchField.displayText != "" && appList) {
269− delegateWidth: root.delegateWidth
157+ // In case there is no currentItem (it might have been filtered away) lets reset it to the first item
270− delegateHeight: units.gu(10)
158+ if (!appList.currentItem) {
271− delegate: drawerDelegateComponent
159+ appList.currentIndex = 0;
160+ }
161+ root.applicationSelected(appList.getFirstAppId());
272 }
162 }
273 }
163 }
274 }
164 }
275 }
165 }
276
166
277− Component {
278− id: aToZComponent
279− DrawerListView {
280− id: aToZListView
281−
282− header: MoreAppsHeader {
283− width: parent.width
284− height: units.gu(6)
285− highlighted: headerFocusScope.activeFocus
286− onClicked: headerFocusScope.trigger();
287− }
288−
289− model: AppDrawerProxyModel {
290− source: sortProxyModel
291− sortBy: AppDrawerProxyModel.SortByAToZ
292− group: AppDrawerProxyModel.GroupByAToZ
293− dynamicSortFilter: false
294− }
295−
296− delegate: UbuntuShape {
297− width: parent.width - units.gu(2)
298− anchors.horizontalCenter: parent.horizontalCenter
299− color: "#20ffffff"
300− aspect: UbuntuShape.Flat
301−
302− readonly property string appId: model.appId
303−
304− // NOTE: Cannot use gridView.rows here as it would evaluate to 0 at first and only update later,
305− // which messes up the ListView.
306− height: (Math.ceil(gridView.model.count / gridView.columns) * gridView.delegateHeight) +
307− categoryNameLabel.implicitHeight + units.gu(2)
308−
309− Label {
310− id: categoryNameLabel
311− anchors { left: parent.left; top: parent.top; right: parent.right; margins: units.gu(1) }
312− text: model.letter
313− }
314−
315− DrawerGridView {
167+ DrawerGridView {
316− id: gridView
168+ id: appList
317− anchors { left: parent.left; top: categoryNameLabel.bottom; right: parent.right; topMargin: units.gu(1) }
169+ anchors {
170+ left: parent.left
171+ right: parent.right
172+ top: searchFieldContainer.bottom
173+ bottom: parent.bottom
174+ }
318− height: rows * delegateHeight
175+ height: rows * delegateHeight
319−
176+ clip: true
320− interactive: false
321− focus: index == aToZListView.currentIndex
322
177
323− model: AppDrawerProxyModel {
178+ model: AppDrawerProxyModel {
324− id: categoryModel
179+ id: categoryModel
325− source: sortProxyModel
180+ source: sortProxyModel
326− filterLetter: model.letter
327− dynamicSortFilter: false
181+ dynamicSortFilter: false
328− }
329− delegateWidth: root.delegateWidth
330− delegateHeight: units.gu(10)
331− delegate: drawerDelegateComponent
332− }
333− }
334 }
182 }
183+ delegateWidth: root.delegateWidth
184+ delegateHeight: units.gu(11)
185+ delegate: drawerDelegateComponent
335 }
186 }
336 }
187 }
337
188
@@ -340,7 +191,7 @@ FocusScope {
340 AbstractButton {
191 AbstractButton {
341 id: drawerDelegate
192 id: drawerDelegate
342 width: GridView.view.cellWidth
193 width: GridView.view.cellWidth
343− height: units.gu(10)
194+ height: units.gu(11)
344 objectName: "drawerItem_" + model.appId
195 objectName: "drawerItem_" + model.appId
345
196
346 readonly property bool focused: index === GridView.view.currentIndex && GridView.view.activeFocus
197 readonly property bool focused: index === GridView.view.currentIndex && GridView.view.activeFocus
@@ -349,7 +200,7 @@ FocusScope {
349 z: loader.active ? 1 : 0
200 z: loader.active ? 1 : 0
350
201
351 Column {
202 Column {
352− width: units.gu(8)
203+ width: units.gu(9)
353 anchors.horizontalCenter: parent.horizontalCenter
204 anchors.horizontalCenter: parent.horizontalCenter
354 height: childrenRect.height
205 height: childrenRect.height
355 spacing: units.gu(1)
206 spacing: units.gu(1)
@@ -382,8 +233,11 @@ FocusScope {
382 id: label
233 id: label
383 text: model.name
234 text: model.name
384 width: parent.width
235 width: parent.width
236+ anchors.horizontalCenter: parent.horizontalCenter
385 horizontalAlignment: Text.AlignHCenter
237 horizontalAlignment: Text.AlignHCenter
386 fontSize: "small"
238 fontSize: "small"
239+ wrapMode: Text.WordWrap
240+ maximumLineCount: 2
387 elide: Text.ElideRight
241 elide: Text.ElideRight
388
242
389 Loader {
243 Loader {
qml/Launcher/DrawerGridView.qml+6−2
@@ -20,8 +20,8 @@ import "../Components"
20FocusScope {
20FocusScope {
21 id: root
21 id: root
22
22
23− property int delegateWidth: units.gu(10)
23+ property int delegateWidth: units.gu(11)
24− property int delegateHeight: units.gu(10)
24+ property int delegateHeight: units.gu(11)
25 property alias delegate: gridView.delegate
25 property alias delegate: gridView.delegate
26 property alias model: gridView.model
26 property alias model: gridView.model
27 property alias interactive: gridView.interactive
27 property alias interactive: gridView.interactive
@@ -46,4 +46,8 @@ FocusScope {
46 cellWidth: root.delegateWidth + spacing
46 cellWidth: root.delegateWidth + spacing
47 cellHeight: root.delegateHeight
47 cellHeight: root.delegateHeight
48 }
48 }
49+
50+ function getFirstAppId() {
51+ return model.appId(0);
52+ }
49}
53}
qml/Launcher/DrawerListView.qmldeleted−38
@@ -1,38 +0,0 @@
1−/*
2− * Copyright (C) 2016 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.4
18−import Ubuntu.Components 1.3
19−import "../Components"
20−
21−ListView {
22− id: root
23− anchors.fill: parent
24− topMargin: units.gu(1)
25− bottomMargin: units.gu(1)
26− spacing: units.gu(1)
27− clip: true
28− focus: true
29−
30− onActiveFocusChanged: {
31− currentIndex = -1;
32− currentIndex = 0;
33− }
34−
35− function getFirstAppId() {
36− return model.appId(0);
37− }
38−}
qml/Launcher/Launcher.qml+16−7
@@ -167,7 +167,7 @@ FocusScope {
167 switchToNextState("visible")
167 switchToNextState("visible")
168 }
168 }
169
169
170− function openDrawer(focusInputField) {
170+ function toggleDrawer(focusInputField, onlyOpen) {
171 if (!drawerEnabled) {
171 if (!drawerEnabled) {
172 return;
172 return;
173 }
173 }
@@ -179,7 +179,11 @@ FocusScope {
179 if (focusInputField) {
179 if (focusInputField) {
180 drawer.focusInput();
180 drawer.focusInput();
181 }
181 }
182+ if (state === "drawer" && !onlyOpen) {
182− switchToNextState("drawer")
183+ switchToNextState("visible");
184+ } else {
185+ switchToNextState("drawer");
186+ }
183 }
187 }
184
188
185 Keys.onPressed: {
189 Keys.onPressed: {
@@ -353,14 +357,14 @@ FocusScope {
353 // See drawer.onDraggingHorizontallyChanged below
357 // See drawer.onDraggingHorizontallyChanged below
354 drawer.searchTextField.focus = hadFocus;
358 drawer.searchTextField.focus = hadFocus;
355 drawer.searchTextField.select(oldSelectionStart, oldSelectionEnd);
359 drawer.searchTextField.select(oldSelectionStart, oldSelectionEnd);
356− resetOldFocus();
357 } else if (fullyClosed) {
360 } else if (fullyClosed) {
358 drawer.searchTextField.text = "";
361 drawer.searchTextField.text = "";
359− resetOldFocus();
360 }
362 }
363+ resetOldFocus();
361 }
364 }
362 }
365 }
363 width: Math.min(root.width, units.gu(81))
366 width: Math.min(root.width, units.gu(81))
367+ handleVisible: (width < units.gu(81))
364 panelWidth: panel.width
368 panelWidth: panel.width
365 visible: x > -width
369 visible: x > -width
366 property var fullyOpen: x === 0
370 property var fullyOpen: x === 0
@@ -410,7 +414,7 @@ FocusScope {
410 if (drawer.x < -units.gu(10)) {
414 if (drawer.x < -units.gu(10)) {
411 root.hide();
415 root.hide();
412 } else {
416 } else {
413− root.openDrawer();
417+ root.toggleDrawer(false, true);
414 }
418 }
415 }
419 }
416 }
420 }
@@ -493,7 +497,7 @@ FocusScope {
493 }
497 }
494 onPassed: {
498 onPassed: {
495 if (root.drawerEnabled) {
499 if (root.drawerEnabled) {
496− root.openDrawer()
500+ root.toggleDrawer()
497 }
501 }
498 }
502 }
499
503
@@ -569,7 +573,7 @@ FocusScope {
569 if (!dragging) {
573 if (!dragging) {
570 if (distance > panel.width / 2) {
574 if (distance > panel.width / 2) {
571 if (root.drawerEnabled && distance > panel.width * 3 && dragDirection() !== "left") {
575 if (root.drawerEnabled && distance > panel.width * 3 && dragDirection() !== "left") {
572− root.openDrawer(false)
576+ root.toggleDrawer(false)
573 } else {
577 } else {
574 root.switchToNextState("visible");
578 root.switchToNextState("visible");
575 }
579 }
@@ -600,10 +604,12 @@ FocusScope {
600 PropertyChanges {
604 PropertyChanges {
601 target: panel
605 target: panel
602 x: -root.x // so we never go past panelWidth, even when teased by tutorial
606 x: -root.x // so we never go past panelWidth, even when teased by tutorial
607+ focus: true
603 }
608 }
604 PropertyChanges {
609 PropertyChanges {
605 target: drawer
610 target: drawer
606 anchors.rightMargin: 0
611 anchors.rightMargin: 0
612+ focus: false
607 }
613 }
608 },
614 },
609 State {
615 State {
@@ -614,6 +620,9 @@ FocusScope {
614 anchors.rightMargin: -drawer.width + root.x // so we never go past panelWidth, even when teased by tutorial
620 anchors.rightMargin: -drawer.width + root.x // so we never go past panelWidth, even when teased by tutorial
615 focus: true
621 focus: true
616 }
622 }
623+ PropertyChanges {
624+ target: panel
625+ }
617 },
626 },
618 State {
627 State {
619 name: "visibleTemporary"
628 name: "visibleTemporary"
qml/Launcher/LauncherPanel.qml+3−3
@@ -90,16 +90,16 @@ Rectangle {
90 color: UbuntuColors.orange
90 color: UbuntuColors.orange
91 readonly property bool highlighted: root.highlightIndex == -1;
91 readonly property bool highlighted: root.highlightIndex == -1;
92
92
93− Image {
93+ Icon {
94 objectName: "dashItem"
94 objectName: "dashItem"
95 width: parent.width * .6
95 width: parent.width * .6
96 height: width
96 height: width
97− sourceSize.width: width
98− sourceSize.height: height
99 anchors.centerIn: parent
97 anchors.centerIn: parent
100 source: "graphics/home.svg"
98 source: "graphics/home.svg"
99+ color: "white"
101 rotation: root.rotation
100 rotation: root.rotation
102 }
101 }
102+
103 AbstractButton {
103 AbstractButton {
104 id: dashItem
104 id: dashItem
105 anchors.fill: parent
105 anchors.fill: parent
qml/Launcher/MoreAppsHeader.qmldeleted−69
@@ -1,69 +0,0 @@
1−/*
2− * Copyright (C) 2017 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.4
18−import Ubuntu.Components 1.3
19−
20−AbstractButton {
21− id: root
22−
23− property bool highlighted: false
24−
25− UbuntuShape {
26− width: parent.width - units.gu(2)
27− anchors.horizontalCenter: parent.horizontalCenter
28− height: parent.height - units.gu(1)
29− color: "#20ffffff"
30− aspect: UbuntuShape.Flat
31−
32− StyledItem {
33− styleName: "FocusShape"
34− anchors.fill: parent
35− activeFocusOnTab: true
36− StyleHints {
37− visible: root.highlighted
38− }
39− }
40−
41− Row {
42− anchors.fill: parent
43− anchors.margins: units.gu(1)
44− spacing: units.gu(1)
45−
46− Icon {
47− height: units.gu(2.2)
48− width: height
49− name: "stock_application"
50− anchors.verticalCenter: parent.verticalCenter
51− color: "white"
52− }
53−
54− Label {
55− text: i18n.tr("More apps in the store")
56− anchors.verticalCenter: parent.verticalCenter
57− fontSize: "small"
58− }
59−
60− Icon {
61− height: units.gu(2.5)
62− width: height
63− anchors.verticalCenter: parent.verticalCenter
64− name: "go-next"
65− color: "white"
66− }
67− }
68− }
69−}
qml/Shell.qml+9−9
@@ -235,7 +235,7 @@ StyledItem {
235 onHomeKeyActivated: {
235 onHomeKeyActivated: {
236 // Ignore when greeter is active, to avoid pocket presses
236 // Ignore when greeter is active, to avoid pocket presses
237 if (!greeter.active) {
237 if (!greeter.active) {
238− launcher.openDrawer(false);
238+ launcher.toggleDrawer(false);
239 }
239 }
240 }
240 }
241 onTouchBegun: { cursor.opacity = 0; }
241 onTouchBegun: { cursor.opacity = 0; }
@@ -344,7 +344,7 @@ StyledItem {
344 if (status !== TouchGestureArea.Recognized) {
344 if (status !== TouchGestureArea.Recognized) {
345 if (status === TouchGestureArea.WaitingForTouch) {
345 if (status === TouchGestureArea.WaitingForTouch) {
346 if (wasPressed && !dragging) {
346 if (wasPressed && !dragging) {
347− launcher.openDrawer(true);
347+ launcher.toggleDrawer(true);
348 }
348 }
349 }
349 }
350 wasPressed = false;
350 wasPressed = false;
@@ -375,7 +375,7 @@ StyledItem {
375 onLoaded: {
375 onLoaded: {
376 item.objectName = "greeter"
376 item.objectName = "greeter"
377 }
377 }
378− property bool openDrawerAfterUnlock: false
378+ property bool toggleDrawerAfterUnlock: false
379 Connections {
379 Connections {
380 target: greeter
380 target: greeter
381 onActiveChanged: {
381 onActiveChanged: {
@@ -383,9 +383,9 @@ StyledItem {
383 return
383 return
384
384
385 // Show drawer in case showHome() requests it
385 // Show drawer in case showHome() requests it
386− if (greeterLoader.openDrawerAfterUnlock) {
386+ if (greeterLoader.toggleDrawerAfterUnlock) {
387− launcher.openDrawer(false);
387+ launcher.toggleDrawer(false);
388− greeterLoader.openDrawerAfterUnlock = false;
388+ greeterLoader.toggleDrawerAfterUnlock = false;
389 }
389 }
390 // Show the launcher when there are no running apps
390 // Show the launcher when there are no running apps
391 else if (topLevelSurfaceList.count < 1) {
391 else if (topLevelSurfaceList.count < 1) {
@@ -499,9 +499,9 @@ StyledItem {
499 SessionBroadcast.requestHomeShown(AccountsService.user);
499 SessionBroadcast.requestHomeShown(AccountsService.user);
500 } else {
500 } else {
501 if (!greeter.active) {
501 if (!greeter.active) {
502− launcher.openDrawer(false);
502+ launcher.toggleDrawer(false);
503 } else {
503 } else {
504− greeterLoader.openDrawerAfterUnlock = true;
504+ greeterLoader.toggleDrawerAfterUnlock = true;
505 }
505 }
506 }
506 }
507 }
507 }
@@ -609,7 +609,7 @@ StyledItem {
609 GlobalShortcut {
609 GlobalShortcut {
610 shortcut: Qt.MetaModifier | Qt.Key_A
610 shortcut: Qt.MetaModifier | Qt.Key_A
611 onTriggered: {
611 onTriggered: {
612− launcher.openDrawer(true);
612+ launcher.toggleDrawer(true);
613 }
613 }
614 }
614 }
615 GlobalShortcut {
615 GlobalShortcut {
tests/qmltests/Launcher/tst_Drawer.qml+6−6
@@ -235,7 +235,7 @@ StyledItem {
235 function test_search() {
235 function test_search() {
236 compare(launcher.lastSelectedApplication, "");
236 compare(launcher.lastSelectedApplication, "");
237
237
238− launcher.openDrawer(true)
238+ launcher.toggleDrawer(true)
239 typeString("cam");
239 typeString("cam");
240 keyClick(Qt.Key_Enter);
240 keyClick(Qt.Key_Enter);
241
241
@@ -279,7 +279,7 @@ StyledItem {
279 keyClick(Qt.Key_Escape);
279 keyClick(Qt.Key_Escape);
280 waitForRendering(launcher);
280 waitForRendering(launcher);
281 waitUntilTransitionsEnd(launcher);
281 waitUntilTransitionsEnd(launcher);
282− launcher.openDrawer(true);
282+ launcher.toggleDrawer(true);
283 waitForRendering(launcher);
283 waitForRendering(launcher);
284 waitUntilTransitionsEnd(launcher);
284 waitUntilTransitionsEnd(launcher);
285
285
@@ -290,7 +290,7 @@ StyledItem {
290 }
290 }
291
291
292 function test_kbdNavigation() {
292 function test_kbdNavigation() {
293− launcher.openDrawer(true);
293+ launcher.toggleDrawer(true);
294 waitForRendering(launcher);
294 waitForRendering(launcher);
295 waitUntilTransitionsEnd(launcher);
295 waitUntilTransitionsEnd(launcher);
296 compare(launcher.lastSelectedApplication, "");
296 compare(launcher.lastSelectedApplication, "");
@@ -331,7 +331,7 @@ StyledItem {
331 // once https://codereview.qt-project.org/#/c/184942/ is accepted
331 // once https://codereview.qt-project.org/#/c/184942/ is accepted
332 skip();
332 skip();
333
333
334− launcher.openDrawer(true);
334+ launcher.toggleDrawer(true);
335 waitForRendering(launcher);
335 waitForRendering(launcher);
336 waitUntilTransitionsEnd(launcher);
336 waitUntilTransitionsEnd(launcher);
337
337
@@ -353,7 +353,7 @@ StyledItem {
353 keyClick(Qt.Key_Down);
353 keyClick(Qt.Key_Down);
354 tryCompare(panel, "highlightIndex", 0);
354 tryCompare(panel, "highlightIndex", 0);
355
355
356− launcher.openDrawer(true);
356+ launcher.toggleDrawer(true);
357 tryCompare(searchField, "focus", true);
357 tryCompare(searchField, "focus", true);
358
358
359 keyClick(Qt.Key_Escape);
359 keyClick(Qt.Key_Escape);
@@ -365,7 +365,7 @@ StyledItem {
365 }
365 }
366
366
367 function test_closeWhileDragging() {
367 function test_closeWhileDragging() {
368− launcher.openDrawer(true);
368+ launcher.toggleDrawer(true);
369 waitForRendering(launcher);
369 waitForRendering(launcher);
370 waitUntilTransitionsEnd(launcher);
370 waitUntilTransitionsEnd(launcher);
371
371
tests/qmltests/tst_Shell.qml+1−1
@@ -3130,7 +3130,7 @@ Rectangle {
3130 if (data.lockLauncher) {
3130 if (data.lockLauncher) {
3131 panel.applicationMenus.show();
3131 panel.applicationMenus.show();
3132 tryCompare(panel.applicationMenus, "fullyOpened", true);
3132 tryCompare(panel.applicationMenus, "fullyOpened", true);
3133− launcher.openDrawer();
3133+ launcher.toggleDrawer();
3134 } else {
3134 } else {
3135 tryCompare(launcher, "shown", false);
3135 tryCompare(launcher, "shown", false);
3136 panel.applicationMenus.show();
3136 panel.applicationMenus.show();