on xenial help sign in
merge trunk
commit320d32f3684f76824788b5eac4ad01c24820e977 authorJosh Arenson <joshua.arenson@canonical.com> dateWed 25 May 2016, 15:11 (10 years ago) parent405eb2c64d3f31
217 files changed+3457−1809
CMakeLists.txt+1−1 debian/changelog+74 debian/control+4−4 debian/unity8-private.install+1−1 plugins/CMakeLists.txt+1−1 plugins/Dash/CardCreator.js+44−1 plugins/Dash/CardSocialActions.qml+94 plugins/Dash/qmldir+1 plugins/ScreenGrabber/CMakeLists.txt−13 plugins/ScreenGrabber/qmldir−3 plugins/ScreenGrabber/screengrabber.cpp−115 plugins/ScreenGrabber/screengrabber.h−49 plugins/ScreenshotDirectory/CMakeLists.txt+9 plugins/ScreenGrabber/ScreenGrabber.qmltypes → plugins/ScreenshotDirectory/ScreenGrabber.qmltypes plugins/ScreenshotDirectory/ScreenshotDirectory.cpp+64 plugins/Utils/windowscreenshotprovider.h → plugins/ScreenshotDirectory/ScreenshotDirectory.h+17−9 plugins/ScreenGrabber/plugin.cpp → plugins/ScreenshotDirectory/plugin.cpp+5−7 plugins/ScreenGrabber/plugin.h → plugins/ScreenshotDirectory/plugin.h+5−7 plugins/ScreenshotDirectory/qmldir+2 plugins/Utils/CMakeLists.txt−1 plugins/Utils/plugin.cpp−8 plugins/Utils/plugin.h−1 plugins/Utils/windowscreenshotprovider.cpp−59 po/aa.po+7−7 po/am.po+7−7 po/ar.po+7−7 po/ast.po+44−36 po/az.po+7−7 po/be.po+7−7 po/bg.po+7−7 po/bn.po+7−7 po/br.po+7−7 po/bs.po+7−7 po/ca.po+7−7 po/ca@valencia.po+7−7 po/ce.po+7−7 po/ckb.po+7−7 po/co.po+736 po/cs.po+7−7 po/cy.po+7−7 po/da.po+7−7 po/de.po+13−11 po/el.po+7−7 po/en_AU.po+7−7 po/en_GB.po+10−10 po/eo.po+7−7 po/es.po+9−9 po/eu.po+7−7 po/fa.po+7−7 po/fi.po+11−9 po/fo.po+7−7 po/fr.po+12−12 po/ga.po+7−7 po/gd.po+9−9 po/gl.po+9−9 po/gv.po+7−7 po/he.po+7−7 po/hi.po+7−7 po/hr.po+74−11 po/hu.po+9−9 po/hy.po+7−7 po/ia.po+9−9 po/id.po+7−7 po/is.po+7−7 po/it.po+11−11 po/ja.po+7−7 po/km.po+7−7 po/kn.po+7−7 po/ko.po+7−7 po/ku.po+7−7 po/ky.po+7−7 po/lo.po+7−7 po/lt.po+7−7 po/lv.po+7−7 po/ml.po+7−7 po/mr.po+7−7 po/ms.po+97−76 po/my.po+7−7 po/nb.po+7−7 po/ne.po+7−7 po/nl.po+7−7 po/nn.po+7−7 po/oc.po+7−7 po/or.po+7−7 po/pa.po+7−7 po/pl.po+12−12 po/pt.po+12−12 po/pt_BR.po+7−7 po/ro.po+7−7 po/ru.po+33−29 po/shn.po+7−7 po/si.po+7−7 po/sk.po+56−11 po/sl.po+10−10 po/sq.po+7−7 po/sr.po+11−10 po/sv.po+7−7 po/sw.po+7−7 po/ta.po+7−7 po/te.po+7−7 po/th.po+7−7 po/tr.po+7−7 po/ug.po+7−7 po/uk.po+7−7 po/unity8.pot+5−5 po/ur.po+7−7 po/uz.po+7−7 po/vi.po+7−7 po/wo.po+7−7 po/xh.po+7−7 po/zh_CN.po+7−7 po/zh_HK.po+7−7 po/zh_TW.po+7−7 qml/Components/InputMethod.qml+2−2 qml/Components/ScreenGrabber.qml → qml/Components/ItemGrabber.qml+27−17 qml/Components/WindowScreenshot.qml → qml/Components/ItemSnapshot.qml+13−3 qml/Components/NotificationAudio.qml+7−3 qml/Components/VirtualTouchPad.qml+1−1 qml/Dash/CardGrid.qml+1 qml/Dash/CardHorizontalList.qml+1 qml/Dash/CardTool.qml+23−7 qml/Dash/CardVerticalJournal.qml+1 qml/Dash/DashRenderer.qml+6 qml/Dash/Filters/FilterExpandableWidget.qml+96 qml/Dash/Filters/FilterWidget.qml+3 qml/Dash/Filters/FilterWidgetFactory.qml+2−1 qml/Dash/GenericScopeView.qml+9 qml/Dash/Previews/PreviewActionCombo.qml+1−1 qml/Dash/Previews/PreviewActions.qml+8−7 qml/Dash/Previews/PreviewIconActions.qml+15 qml/Dash/Previews/PreviewZoomableImage.qml+13−8 qml/DisabledScreenNotice.qml+11−4 qml/Notifications/NotificationMenuItemFactory.qml+1 qml/OrientedShell.qml+7−7 qml/Panel/Indicators/MenuItemFactory.qml+2−2 qml/Panel/IndicatorsMenu.qml+20−10 qml/Panel/Panel.qml+6−15 qml/Rotation/HalfLoopRotationAnimation.qml+2−1 qml/Rotation/ImmediateRotationAction.qml+11−22 qml/Rotation/NinetyRotationAnimation.qml+14−16 qml/Rotation/RotationStates.qml+25−5 qml/Rotation/UpdateShellTransformations.qml+42 qml/Shell.qml+11−5 qml/Stages/AbstractStage.qml+8−7 qml/Stages/ApplicationWindow.qml+31−1 qml/Stages/DesktopStage.qml+7 qml/Stages/PhoneStage.qml+2 qml/Stages/ShimStage.qml−1 qml/Stages/SurfaceContainer.qml+7−63 qml/Stages/TabletStage.qml+7−3 src/SecondaryWindow.cpp+9 src/ShellApplication.cpp+6 tests/mocks/Unity/Application/ApplicationInfo.cpp+8 tests/mocks/Unity/Application/ApplicationInfo.h+2 tests/mocks/Unity/Application/MirSurface.cpp+1−21 tests/mocks/Unity/Application/MirSurface.h−5 tests/mocks/Unity/Application/MirSurfaceItem.cpp+16−7 tests/mocks/Unity/Application/MirSurfaceItem.h+1−1 tests/mocks/Unity/Application/MirSurfaceListModel.cpp+28 tests/mocks/Unity/Application/MirSurfaceListModel.h+5 tests/mocks/Unity/CMakeLists.txt+3−1 tests/mocks/Unity/fake_categories.cpp+4−1 tests/mocks/Unity/fake_expandablefilterwidget.cpp+53 tests/mocks/Unity/fake_expandablefilterwidget.h+48 tests/mocks/Unity/fake_filters.cpp+19−8 tests/mocks/Unity/fake_filters.h+4−4 tests/mocks/Unity/fake_resultsmodel.cpp+2 tests/mocks/Unity/fake_scope.cpp+2 tests/mocks/Utils/CMakeLists.txt−1 tests/mocks/Utils/plugin.cpp−8 tests/mocks/Utils/plugin.h−1 tests/mocks/Utils/windowstatestorage.cpp+1 tests/mocks/Utils/windowstatestorage.h+3 tests/plugins/CMakeLists.txt−1 tests/plugins/Dash/cardcreator/1.res+1−1 tests/plugins/Dash/cardcreator/1.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/10.res+1−1 tests/plugins/Dash/cardcreator/10.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/11.res+1−1 tests/plugins/Dash/cardcreator/11.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/12.res+139 tests/plugins/Dash/cardcreator/12.res.cardcreator+138 tests/plugins/Dash/cardcreator/12.tst+3 tests/plugins/Dash/cardcreator/2.res+1−1 tests/plugins/Dash/cardcreator/2.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/3.res+1−1 tests/plugins/Dash/cardcreator/3.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/4.res+1−1 tests/plugins/Dash/cardcreator/4.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/5.res+1−1 tests/plugins/Dash/cardcreator/5.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/6.res+1−1 tests/plugins/Dash/cardcreator/6.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/7.res+1−1 tests/plugins/Dash/cardcreator/7.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/8.res+1−1 tests/plugins/Dash/cardcreator/8.res.cardcreator+1−1 tests/plugins/Dash/cardcreator/9.res+1−1 tests/plugins/Dash/cardcreator/9.res.cardcreator+1−1 tests/plugins/ScreenGrabber/CMakeLists.txt−14 tests/plugins/ScreenGrabber/ScreenGrabberTest.cpp−77 tests/plugins/ScreenGrabber/grabber.qml−31 tests/plugins/Unity/Launcher/launchermodeltest.cpp+1 tests/qmltests/CMakeLists.txt+1 tests/qmltests/Dash/CardHelpers.js+9−7 tests/qmltests/Dash/Filters/tst_FilterExpandableWidget.qml+99 tests/qmltests/Dash/Filters/tst_FilterWidgetFactory.qml+2−1 tests/qmltests/Dash/Previews/tst_PreviewActions.qml+100−17 tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+14−4 tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+17 tests/qmltests/Dash/tst_Card.qml+38−3 tests/qmltests/Stages/ApplicationCheckBox.qml+33−3 tests/qmltests/Stages/RecursingChildSessionControl.qml−94 tests/qmltests/Stages/tst_ApplicationWindow.qml+89−23 tests/qmltests/Stages/tst_SurfaceContainer.qml+28−155 tests/qmltests/Stages/tst_TabletStage.qml+66−2 tests/qmltests/Wizard/tst_Wizard.qml+3−12
CMakeLists.txt+1−1
@@ -57,7 +57,7 @@ find_package(Qt5DBus 5.4 REQUIRED)
5757find_package(Qt5Concurrent 5.4 REQUIRED)
5858find_package(Qt5Sql 5.4 REQUIRED)
5959
60−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=15)
60+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=16)
6161pkg_check_modules(GEONAMES REQUIRED geonames>=0.2)
6262pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
6363pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
debian/changelog+74
@@ -1,3 +1,77 @@
1+unity8 (8.12+16.10.20160520.1-0ubuntu1) yakkety; urgency=medium
2+
3+ [ Lukáš Tinkl ]
4+ * Don't dim screen when the indicators are open (LP: #1564342)
5+ * Fix upcoming alarms ETA labels (LP: #1576741)
6+ * Stabilize flaky wizard tests (LP: #1582994)
7+
8+ [ Michael Zanetti ]
9+ * fix the SIM PIN darkening after it got removed accidentally (LP:
10+ #1577147)
11+
12+ [ Michał Sawicz, Nick Dedekind ]
13+ * Fixed saving current stage and loss of surface focus when switching
14+ stages
15+
16+ [ Nick Dedekind ]
17+ * Fixed incorrect osk surface item resizing the surface.
18+
19+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 20 May 2016 08:44:19 +0000
20+
21+unity8 (8.12+16.04.20160518.1-0ubuntu1) xenial; urgency=medium
22+
23+ [ CI Train Bot ]
24+ * Resync trunk.
25+
26+ [ Daniel d'Andrada, Michał Sawicz ]
27+ * Move prompt surfaces from MirSurface to Application
28+
29+ -- Nick Dedekind <ci-train-bot@canonical.com> Wed, 18 May 2016 11:20:04 +0000
30+
31+unity8 (8.12+16.04.20160504.2-0ubuntu1) xenial; urgency=medium
32+
33+ [ Albert Astals Cid ]
34+ * Expandable Filter Widget
35+ * Pass the category correctly
36+
37+ [ Albert Astals Cid, CI Train Bot ]
38+ * Make the previewActions react to the actions model changing (LP:
39+ #1485887)
40+ * Reload Preview Zoomable Image source if it gets updated
41+ * Update the icon also to the original one if that's what the scope
42+ wants
43+
44+ [ Andrea Cimitan ]
45+ * Add social actions to cards
46+
47+ [ CI Train Bot ]
48+ * Resync trunk.
49+
50+ -- Pawel Stolowski <ci-train-bot@canonical.com> Wed, 04 May 2016 18:09:33 +0000
51+
52+unity8 (8.12+16.04.20160429.2-0ubuntu1) xenial; urgency=medium
53+
54+ [ CI Train Bot ]
55+ * Resync trunk.
56+
57+ [ Daniel d'Andrada ]
58+ * Ensure shell transformations use bindings as OrientedShell can get
59+ resized
60+ * Make shell rotation animation work on multimonitor scenarios.
61+ * Refactor screenshotting code and make it work in multimonitor
62+ scenarios
63+
64+ [ Gerry Boland, Nick Dedekind ]
65+ * Indicators: set menu height binding while fully open/closed, fixes
66+ dynamic grid unit bug.
67+
68+ [ Michael Zanetti ]
69+ * Call the dash sizing hack when units.gu changes
70+ * Temporary means to override GUs on the internal screen
71+ * reduce some paint layers.
72+
73+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 29 Apr 2016 20:07:37 +0000
74+
175unity8 (8.12+16.04.20160427.3-0ubuntu1) xenial; urgency=medium
276
377 [ Albert Astals Cid ]
debian/control+4−4
@@ -31,7 +31,7 @@ Build-Depends: cmake,
3131 libqt5xmlpatterns5-dev,
3232 libsystemsettings-dev,
3333 libudev-dev,
34− libunity-api-dev (>= 7.110),
34+ libunity-api-dev (>= 7.112),
3535 libusermetricsoutput1-dev,
3636# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
3737 libx11-dev[!armhf],
@@ -145,10 +145,10 @@ Depends: qml-module-qtquick-layouts,
145145 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.3.1845) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.3.1845),
146146 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
147147 ubuntu-thumbnailer-impl-0,
148− unity-application-impl-15,
148+ unity-application-impl-16,
149149 unity-notifications-impl-3,
150150 unity-plugin-scopes | unity-scopes-impl,
151− unity-scopes-impl-11,
151+ unity-scopes-impl-12,
152152 unity8-fake-env | unity-application-impl,
153153 ${misc:Depends},
154154Breaks: unity8 (<< 7.86),
@@ -191,7 +191,7 @@ Pre-Depends: ${misc:Pre-Depends},
191191Depends: ${misc:Depends},
192192 ${shlibs:Depends},
193193Provides: unity-application-impl,
194− unity-application-impl-15,
194+ unity-application-impl-16,
195195Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1)
196196Description: Fake environment for running Unity 8 shell
197197 Provides fake implementations of some QML modules used by Unity 8 shell
debian/unity8-private.install+1−1
@@ -8,7 +8,7 @@ usr/lib/*/unity8/qml/Greeter
88usr/lib/*/unity8/qml/LightDM
99usr/lib/*/unity8/qml/Lights
1010usr/lib/*/unity8/qml/Powerd
11−usr/lib/*/unity8/qml/ScreenGrabber
11+usr/lib/*/unity8/qml/ScreenshotDirectory
1212usr/lib/*/unity8/qml/SessionBroadcast
1313usr/lib/*/unity8/qml/Ubuntu
1414usr/lib/*/unity8/qml/Unity
plugins/CMakeLists.txt+1−1
@@ -19,8 +19,8 @@ add_subdirectory(LightDM)
1919add_subdirectory(Lights)
2020add_subdirectory(Dash)
2121add_subdirectory(Powerd)
22+add_subdirectory(ScreenshotDirectory)
2223add_subdirectory(SessionBroadcast)
23−add_subdirectory(ScreenGrabber)
2424add_subdirectory(Ubuntu)
2525add_subdirectory(UInput)
2626add_subdirectory(Unity)
plugins/Dash/CardCreator.js+44−1
@@ -351,6 +351,17 @@ var kAttributesRowCode = 'CardAttributes { \n\
351351 model: cardData && cardData["attributes"]; \n\
352352 }\n';
353353
354+// %1 is used as anchors of socialActionsRow
355+// %2 is used as color of socialActionsRow
356+var kSocialActionsRowCode = 'CardSocialActions { \n\
357+ id: socialActionsRow; \n\
358+ objectName: "socialActionsRow"; \n\
359+ anchors { %1 } \n\
360+ color: %2; \n\
361+ model: cardData && cardData["socialActions"]; \n\
362+ onClicked: root.action(actionId); \n\
363+ }\n';
364+
354365// %1 is used as top anchor of summary
355366// %2 is used as topMargin anchor of summary
356367// %3 is used as color of summary
@@ -437,9 +448,11 @@ function cardString(template, components, isCardTool) {
437448 var hasSubtitle = hasTitle && components["subtitle"] || false;
438449 var hasHeaderRow = hasMascot && hasTitle;
439450 var hasAttributes = hasTitle && components["attributes"] && components["attributes"]["field"] || false;
451+ var hasSocialActions = hasTitle && components["social-actions"] || false;
440452 var isAudio = template["quick-preview-type"] === "audio";
441453 var asynchronous = isCardTool ? "false" : "true";
442454
455+ code += 'signal action(var actionId);\n';
443456 if (isAudio) {
444457 // For now we only support audio cards with [optional] art, title, subtitle
445458 // in horizontal mode
@@ -841,6 +854,34 @@ function cardString(template, components, isCardTool) {
841854 code += kSummaryLabelCode.arg(summaryTopAnchor).arg(summaryTopMargin).arg(summaryColor);
842855 }
843856
857+ if (hasSocialActions) {
858+ var socialAnchors;
859+ var socialTopAnchor;
860+
861+ if (hasSummary) socialTopAnchor = 'summary.bottom;';
862+ else if (isHorizontal && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
863+ else if (headerAsOverlay && hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
864+ else if (hasHeaderRow) socialTopAnchor = 'row.bottom;';
865+ else if (hasTitleContainer) socialTopAnchor = 'headerTitleContainer.bottom;';
866+ else if (hasMascot) socialTopAnchor = 'mascotImage.bottom;';
867+ else if (hasAttributes) socialTopAnchor = 'attributesRow.bottom;';
868+ else if (hasSubtitle) socialTopAnchor = 'subtitleLabel.bottom;';
869+ else if (hasTitle) socialTopAnchor = 'titleLabel.bottom;';
870+ else if (hasArt) socialTopAnchor = 'artShapeHolder.bottom;';
871+ else socialTopAnchor = 'parent.top';
872+
873+ socialAnchors = 'top: ' + socialTopAnchor + ' left: parent.left; right: parent.right; topMargin: units.gu(1);'
874+
875+ var socialColor;
876+ if (hasBackground) {
877+ socialColor = summaryColorWithBackground;
878+ } else {
879+ socialColor = 'root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText';
880+ }
881+
882+ code += kSocialActionsRowCode.arg(socialAnchors).arg(socialColor);
883+ }
884+
844885 var touchdownAnchors;
845886 if (hasBackground) {
846887 touchdownAnchors = 'fill: backgroundLoader';
@@ -852,7 +893,9 @@ function cardString(template, components, isCardTool) {
852893 code += kTouchdownCode.arg(touchdownAnchors);
853894
854895 var implicitHeight = 'implicitHeight: ';
855− if (hasSummary) {
896+ if (hasSocialActions) {
897+ implicitHeight += 'socialActionsRow.y + socialActionsRow.height + units.gu(1);\n';
898+ } else if (hasSummary) {
856899 implicitHeight += 'summary.y + summary.height + units.gu(1);\n';
857900 } else if (isAudio) {
858901 implicitHeight += 'audioButton.height;\n';
plugins/Dash/CardSocialActions.qmlnew file+94
@@ -0,0 +1,94 @@
1+/*
2+ * Copyright 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 QtQuick.Layouts 1.1
19+import Ubuntu.Components 1.3
20+
21+Column {
22+ id: socialActions
23+ spacing: units.gu(0.5)
24+
25+ property alias model: repeater.model
26+ property color color: theme.palette.normal.baseText
27+
28+ signal clicked(var actionId)
29+
30+ Rectangle {
31+ id: divider
32+ visible: repeater.count > 0
33+ anchors {
34+ left: parent.left;
35+ right: parent.right;
36+ leftMargin:units.dp(1);
37+ rightMargin: units.dp(1);
38+ }
39+ color: Qt.darker(theme.palette.normal.background, 1.12)
40+ height: visible ? units.dp(1) : 0
41+ }
42+
43+ Row {
44+ id: row
45+ anchors {
46+ left: parent.left
47+ right: parent.right
48+ leftMargin: units.gu(1)
49+ rightMargin: units.gu(1)
50+ }
51+ spacing: units.gu(2)
52+ readonly property int visibleItems: {
53+ if (width <= units.gu(12)) // small card
54+ return 2;
55+ else if (width <= units.gu(21)) // medium card
56+ return 3;
57+ else // large or horizontal card
58+ return 4;
59+ }
60+
61+ Repeater {
62+ id: repeater
63+ delegate: Loader {
64+ height: units.gu(2)
65+ active: index < row.visibleItems
66+ sourceComponent: AbstractButton {
67+ objectName: "delegate" + index
68+ height: units.gu(2)
69+ width: icon.width
70+ Icon {
71+ id: icon
72+ objectName: "icon"
73+
74+ readonly property url urlIcon: modelData && modelData["icon"] || ""
75+ readonly property url urlTemporaryIcon: "temporaryIcon" in modelData && modelData["temporaryIcon"] || ""
76+
77+ height: units.gu(2)
78+ // FIXME Workaround for bug https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1421293
79+ width: implicitWidth > 0 && implicitHeight > 0 ? (implicitWidth / implicitHeight * height) : implicitWidth
80+ source: urlIcon
81+ color: socialActions.color
82+
83+ onUrlIconChanged: {
84+ if (urlIcon) source = urlIcon
85+ }
86+ }
87+
88+ onClicked: socialActions.clicked(modelData["id"]);
89+ onPressedChanged: if (pressed && icon.urlTemporaryIcon != "") icon.source = icon.urlTemporaryIcon
90+ }
91+ }
92+ }
93+ }
94+}
plugins/Dash/qmldir+1
@@ -5,6 +5,7 @@ singleton CardCreatorCache 0.1 CardCreatorCache.qml
55singleton DashAudioPlayer 0.1 DashAudioPlayer.qml
66ScopeStyle 0.1 ScopeStyle.qml
77CardAttributes 0.1 CardAttributes.qml
8+CardSocialActions 0.1 CardSocialActions.qml
89CroppedImageMinimumSourceSize 0.1 CroppedImageMinimumSourceSize.qml
910AudioProgressBar 0.1 AudioProgressBar.qml
1011CardAudioProgress 0.1 CardAudioProgress.qml
plugins/ScreenGrabber/CMakeLists.txtdeleted−13
@@ -1,13 +0,0 @@
1−include_directories(
2− ${CMAKE_CURRENT_BINARY_DIR}
3−)
4−
5−set(SCREENGRABBERSOURCES
6− screengrabber.cpp
7− plugin.cpp
8−)
9−
10−add_library(ScreenGrabber-qml MODULE ${SCREENGRABBERSOURCES})
11−qt5_use_modules(ScreenGrabber-qml Qml Gui Quick Concurrent)
12−
13−add_unity8_plugin(ScreenGrabber 0.1 ScreenGrabber TARGETS ScreenGrabber-qml)
plugins/ScreenGrabber/qmldirdeleted−3
@@ -1,3 +0,0 @@
1−module ScreenGrabber
2−plugin ScreenGrabber-qml
3−typeinfo ScreenGrabber.qmltypes
plugins/ScreenGrabber/screengrabber.cppdeleted−115
@@ -1,115 +0,0 @@
1−/*
2− * Copyright (C) 2014-2015 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−#include "screengrabber.h"
18−
19−#include <QDir>
20−#include <QDateTime>
21−#include <QStandardPaths>
22−#include <QTemporaryDir>
23−#include <QtGui/QImage>
24−#include <QtGui/QGuiApplication>
25−#include <QtQuick/QQuickWindow>
26−
27−#include <QDebug>
28−
29−QString saveScreenshot(const QImage &screenshot, const QString &filename, const QString &format, int quality)
30−{
31− if (screenshot.save(filename, format.toLatin1().data(), quality)) {
32− return filename;
33− } else {
34− qWarning() << "ScreenGrabber: failed to save snapshot!";
35− }
36− return QString();
37−}
38−
39−ScreenGrabber::ScreenGrabber(QObject *parent)
40− : QObject(parent)
41−{
42− QObject::connect(&m_watcher,
43− &QFutureWatcher<QString>::finished,
44− this,
45− &ScreenGrabber::onScreenshotSaved);
46−
47− QDir screenshotsDir;
48− if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
49− QTemporaryDir tDir;
50− tDir.setAutoRemove(false);
51− screenshotsDir = tDir.path();
52− } else {
53− screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
54− }
55− screenshotsDir.mkpath(QStringLiteral("Screenshots"));
56− screenshotsDir.cd(QStringLiteral("Screenshots"));
57− if (screenshotsDir.exists()) {
58− fileNamePrefix = screenshotsDir.absolutePath();
59− fileNamePrefix.append("/screenshot");
60− } else {
61− qWarning() << "ScreenGrabber: failed to create directory at: " << screenshotsDir.absolutePath();
62− }
63−}
64−
65−void ScreenGrabber::captureAndSave(int angle)
66−{
67− if (fileNamePrefix.isEmpty())
68− {
69− qWarning() << "ScreenShotter: no directory to save screenshot";
70− return;
71− }
72−
73− const QWindowList windows = QGuiApplication::topLevelWindows();
74− if (windows.empty())
75− {
76− qWarning() << "ScreenShotter: no top level windows found!";
77− return;
78− }
79−
80− QQuickWindow *main_window = qobject_cast<QQuickWindow *>(windows[0]);
81− if (!main_window)
82− {
83− qWarning() << "ScreenShotter: can only take screenshots of QQuickWindows";
84− return;
85− }
86−
87− const QImage screenshot = main_window->grabWindow().transformed(QTransform().rotate(angle));
88− const QString filename = makeFileName();
89− qDebug() << "Saving screenshot to" << filename;
90− QFuture<QString> saveFuture(QtConcurrent::run(saveScreenshot, screenshot, filename, getFormat(), screenshotQuality));
91− m_watcher.setFuture(saveFuture);
92−}
93−
94−void ScreenGrabber::onScreenshotSaved()
95−{
96− const QString filename = m_watcher.future().result();
97− if (!filename.isEmpty()) {
98− Q_EMIT screenshotSaved(filename);
99− }
100−}
101−
102−QString ScreenGrabber::makeFileName() const
103−{
104− QString fileName(fileNamePrefix);
105− fileName.append(QDateTime::currentDateTime().toString(QStringLiteral("yyyyMMdd_hhmmsszzz")));
106− fileName.append(".");
107− fileName.append(getFormat());
108− return fileName;
109−}
110−
111−QString ScreenGrabber::getFormat() const
112−{
113− //TODO: This should be configurable (perhaps through gsettings?)
114− return QStringLiteral("png");
115−}
plugins/ScreenGrabber/screengrabber.hdeleted−49
@@ -1,49 +0,0 @@
1−/*
2− * Copyright (C) 2014-2015 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−#ifndef SNAPSHOTTER_H
18−#define SNAPSHOTTER_H
19−
20−#include <QObject>
21−#include <QString>
22−#include <QtConcurrent>
23−
24−class ScreenGrabber: public QObject
25−{
26− Q_OBJECT
27−
28−public:
29− explicit ScreenGrabber(QObject *parent = 0);
30− ~ScreenGrabber() = default;
31−
32−public Q_SLOTS:
33− void captureAndSave(int angle = 0);
34−
35−Q_SIGNALS:
36− void screenshotSaved(const QString &filename);
37−
38−private Q_SLOTS:
39− void onScreenshotSaved();
40−
41−private:
42− QString makeFileName() const;
43− QString getFormat() const;
44− QString fileNamePrefix;
45− int screenshotQuality = -1; // default quality for the format
46− QFutureWatcher<QString> m_watcher;
47−};
48−
49−#endif
plugins/ScreenshotDirectory/CMakeLists.txtnew file+9
@@ -0,0 +1,9 @@
1+set(PLUGIN_SOURCES
2+ ScreenshotDirectory.cpp
3+ plugin.cpp
4+)
5+
6+add_library(ScreenshotDirectory-qml MODULE ${PLUGIN_SOURCES})
7+qt5_use_modules(ScreenshotDirectory-qml Qml Gui Quick)
8+
9+add_unity8_plugin(ScreenshotDirectory 0.1 ScreenshotDirectory TARGETS ScreenshotDirectory-qml)
plugins/ScreenGrabber/ScreenGrabber.qmltypes → plugins/ScreenshotDirectory/ScreenGrabber.qmltypesrenamed

The content is the same.

plugins/ScreenshotDirectory/ScreenshotDirectory.cppnew file+64
@@ -0,0 +1,64 @@
1+/*
2+ * Copyright (C) 2014-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+#include "ScreenshotDirectory.h"
18+
19+#include <QDir>
20+#include <QDateTime>
21+#include <QStandardPaths>
22+#include <QTemporaryDir>
23+
24+#include <QDebug>
25+
26+ScreenshotDirectory::ScreenshotDirectory(QObject *parent)
27+ : QObject(parent)
28+{
29+ QDir screenshotsDir;
30+ if (qEnvironmentVariableIsSet("UNITY_TESTING")) {
31+ QTemporaryDir tDir;
32+ tDir.setAutoRemove(false);
33+ screenshotsDir = tDir.path();
34+ } else {
35+ screenshotsDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
36+ }
37+ screenshotsDir.mkpath(QStringLiteral("Screenshots"));
38+ screenshotsDir.cd(QStringLiteral("Screenshots"));
39+ if (screenshotsDir.exists()) {
40+ m_fileNamePrefix = screenshotsDir.absolutePath();
41+ m_fileNamePrefix.append("/screenshot");
42+ } else {
43+ qWarning() << "ScreenshotDirectory: failed to create directory at:" << screenshotsDir.absolutePath();
44+ }
45+}
46+
47+QString ScreenshotDirectory::makeFileName() const
48+{
49+ if (m_fileNamePrefix.isEmpty()) {
50+ return QString();
51+ }
52+
53+ QString fileName(m_fileNamePrefix);
54+ fileName.append(QDateTime::currentDateTime().toString(QStringLiteral("yyyyMMdd_hhmmsszzz")));
55+ fileName.append(".");
56+ fileName.append(format());
57+ return fileName;
58+}
59+
60+QString ScreenshotDirectory::format() const
61+{
62+ //TODO: This should be configurable (perhaps through gsettings?)
63+ return QStringLiteral("png");
64+}
plugins/Utils/windowscreenshotprovider.h → plugins/ScreenshotDirectory/ScreenshotDirectory.hrenamed+17−9
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -14,18 +14,26 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−#ifndef WINDOW_SCREENSHOT_PROVIDER_H_
18−#define WINDOW_SCREENSHOT_PROVIDER_H_
17+#ifndef SCREENSHOTDIRECTORY_H
18+#define SCREENSHOTDIRECTORY_H
1919
20−#include <QQuickImageProvider>
20+#include <QObject>
21+#include <QString>
2122
22−class WindowScreenshotProvider : public QQuickImageProvider
23+class ScreenshotDirectory: public QObject
2324{
25+ Q_OBJECT
26+
2427public:
25− WindowScreenshotProvider();
28+ explicit ScreenshotDirectory(QObject *parent = 0);
29+ ~ScreenshotDirectory() = default;
30+
31+public Q_SLOTS:
32+ QString makeFileName() const;
2633
27− // id is ignored for now
28− QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize) override;
34+private:
35+ QString format() const;
36+ QString m_fileNamePrefix;
2937};
3038
31−#endif // WINDOW_SCREENSHOT_PROVIDER_H_
39+#endif // SCREENSHOTDIRECTORY_H
plugins/ScreenGrabber/plugin.cpp → plugins/ScreenshotDirectory/plugin.cpprenamed+5−7
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014,2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -12,17 +12,15 @@
1212 *
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
1715 */
1816
1917#include "plugin.h"
20−#include "screengrabber.h"
18+#include "ScreenshotDirectory.h"
2119
2220#include <QtQml/qqml.h>
2321
24−void ScreenGrabberPlugin::registerTypes(const char *uri)
22+void ScreenshotDirectoryPlugin::registerTypes(const char *uri)
2523{
26− Q_ASSERT(uri == QLatin1String("ScreenGrabber"));
27− qmlRegisterType<ScreenGrabber>(uri, 0, 1, "ScreenGrabber");
24+ Q_ASSERT(uri == QLatin1String("ScreenshotDirectory"));
25+ qmlRegisterType<ScreenshotDirectory>(uri, 0, 1, "ScreenshotDirectory");
2826}
plugins/ScreenGrabber/plugin.h → plugins/ScreenshotDirectory/plugin.hrenamed+5−7
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014 Canonical, Ltd.
2+ * Copyright (C) 2014,2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -12,16 +12,14 @@
1212 *
1313 * You should have received a copy of the GNU General Public License
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors: Alberto Aguirre <alberto.aguirre@canonical.com>
1715 */
1816
19−#ifndef SCREENGRABBER_PLUGIN_H
20−#define SCREENGRABBER_PLUGIN_H
17+#ifndef SCREENSHOTDIRECTORY_PLUGIN_H
18+#define SCREENSHOTDIRECTORY_PLUGIN_H
2119
2220#include <QtQml/QQmlExtensionPlugin>
2321
24−class ScreenGrabberPlugin : public QQmlExtensionPlugin
22+class ScreenshotDirectoryPlugin : public QQmlExtensionPlugin
2523{
2624 Q_OBJECT
2725 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
@@ -30,4 +28,4 @@ public:
3028 void registerTypes(const char *uri) override;
3129};
3230
33−#endif // SCREENGRABBER_PLUGIN_H
31+#endif // SCREENSHOTDIRECTORY_PLUGIN_H
plugins/ScreenshotDirectory/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module ScreenshotDirectory
2+plugin ScreenshotDirectory-qml
plugins/Utils/CMakeLists.txt−1
@@ -18,7 +18,6 @@ set(QMLPLUGIN_SRC
1818 Timer.cpp
1919 unitymenumodelpaths.cpp
2020 windowinputfilter.cpp
21− windowscreenshotprovider.cpp
2221 easingcurve.cpp
2322 windowstatestorage.cpp
2423 timezoneFormatter.cpp
plugins/Utils/plugin.cpp−8
@@ -31,7 +31,6 @@
3131#include "unitysortfilterproxymodelqml.h"
3232#include "unitymenumodelpaths.h"
3333#include "windowinputfilter.h"
34−#include "windowscreenshotprovider.h"
3534#include "windowstatestorage.h"
3635#include "constants.h"
3736#include "timezoneFormatter.h"
@@ -82,10 +81,3 @@ void UtilsPlugin::registerTypes(const char *uri)
8281 qmlRegisterType<DeviceConfigParser>(uri, 0, 1, "DeviceConfigParser");
8382 qmlRegisterSingletonType<GlobalFunctions>(uri, 0, 1, "Functions", createGlobalFunctions);
8483}
85−
86−void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
87−{
88− QQmlExtensionPlugin::initializeEngine(engine, uri);
89−
90− engine->addImageProvider(QStringLiteral("window"), new WindowScreenshotProvider);
91−}
plugins/Utils/plugin.h−1
@@ -29,7 +29,6 @@ class UtilsPlugin : public QQmlExtensionPlugin
2929
3030public:
3131 void registerTypes(const char *uri) override;
32− void initializeEngine(QQmlEngine *engine, const char *uri) override;
3332};
3433
3534#endif
plugins/Utils/windowscreenshotprovider.cppdeleted−59
@@ -1,59 +0,0 @@
1−/*
2− * Copyright (C) 2015 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−#include "windowscreenshotprovider.h"
18−
19−#include <QGuiApplication>
20−#include <QQuickWindow>
21−
22−WindowScreenshotProvider::WindowScreenshotProvider()
23− : QQuickImageProvider(QQmlImageProviderBase::Image, 0)
24−{
25−}
26−
27−// A very simple implementation where we assume that there's only one window and that it's a
28−// QQuickWindow. Thus the id parameter is irrelevant.
29−//
30−// Idea: Make the id contain the objectName of the QQuickWindow once we care about a multi-display
31−// compositor?
32−// Strictly speaking that could be the actual QWindow::winId(), but that's mostly a
33−// meaningless arbitrary number.
34−QImage WindowScreenshotProvider::requestImage(const QString &id, QSize *size, const QSize &requestedSize)
35−{
36− Q_UNUSED(id);
37− Q_UNUSED(requestedSize);
38−
39− QWindowList windows = QGuiApplication::topLevelWindows();
40−
41− if (windows.count() != 1) {
42− size->rwidth() = 0;
43− size->rheight() = 0;
44− return QImage();
45− }
46−
47− QQuickWindow *quickWindow = qobject_cast<QQuickWindow *>(windows[0]);
48−
49− if (!quickWindow) {
50− size->rwidth() = 0;
51− size->rheight() = 0;
52− return QImage();
53− }
54−
55− QImage image = quickWindow->grabWindow();
56− size->rwidth() = image.width();
57− size->rheight() = image.height();
58− return image;
59−}
po/aa.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-02-12 10:18+0000\n"
1212"Last-Translator: Charif AYFARAH <ayfarah@ymail.com>\n"
1313"Language-Team: Afar <aa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr "Goranto"
@@ -256,7 +256,7 @@ msgstr "Dabqi"
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/am.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-03-24 19:07+0000\n"
1212"Last-Translator: samson <Unknown>\n"
1313"Language-Team: Amharic <am@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr "የ እርስዎን ውጤቶች እንደገና ማጣሪያ"
188188msgid "Reset"
189189msgstr "እንደ ነበረ መመለሻ"
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "መፈለጊያ"
@@ -258,7 +258,7 @@ msgstr "ቤት"
258258msgid "Also installed"
259259msgstr "እንዲሁም የተገጠሙ"
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/ar.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-29 09:41+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1818"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:36+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -195,15 +195,15 @@ msgstr ""
195195msgid "Reset"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199199msgid "Show less"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:570
202+#: qml/Dash/GenericScopeView.qml:579
203203msgid "Show all"
204204msgstr ""
205205
206−#: qml/Dash/GenericScopeView.qml:627
206+#: qml/Dash/GenericScopeView.qml:636
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr "بحث"
@@ -265,7 +265,7 @@ msgstr "الرئيسية"
265265msgid "Also installed"
266266msgstr "أيضا تم تثبيت"
267267
268−#: qml/DisabledScreenNotice.qml:104
268+#: qml/DisabledScreenNotice.qml:109
269269msgid ""
270270"Your device is now connected to an external display. Use this screen as a "
271271"touch pad to interact with the pointer."
po/ast.po+44−36
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11−"PO-Revision-Date: 2016-04-17 16:57+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-16 14:07+0000\n"
1212"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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -140,7 +140,7 @@ msgstr "Apps que pueden tener datos sin guardar:"
140140msgctxt ""
141141"Re-dock means connect the device again to an external screen/mouse/keyboard"
142142msgid "Re-dock, save your work and close these apps to continue."
143−msgstr ""
143+msgstr "Reconeuta, guarda'l trabayu y zarra eses apps pa siguir."
144144
145145#: qml/Components/ModeSwitchWarningDialog.qml:63
146146msgid "Or force close now (unsaved data will be lost)."
@@ -183,28 +183,28 @@ msgstr "Amestar a favoritos"
183183
184184#: qml/Dash/FiltersPopover.qml:60
185185msgid "Refine your results"
186−msgstr ""
186+msgstr "Refina los resultaos"
187187
188188#: qml/Dash/FiltersPopover.qml:69
189189msgid "Reset"
190190msgstr "Reafitar"
191191
192−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
192+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
193193msgid "Show less"
194−msgstr ""
194+msgstr "Ver menos"
195195
196−#: qml/Dash/GenericScopeView.qml:570
196+#: qml/Dash/GenericScopeView.qml:579
197197msgid "Show all"
198−msgstr ""
198+msgstr "Ver too"
199199
200−#: qml/Dash/GenericScopeView.qml:627
200+#: qml/Dash/GenericScopeView.qml:636
201201msgctxt "Label: Hint for dash search line edit"
202202msgid "Search"
203203msgstr "Guetar"
204204
205205#: qml/Dash/PageHeaderExtraPanel.qml:55
206206msgid "Recent Searches"
207−msgstr ""
207+msgstr "Guetes recién"
208208
209209#: qml/Dash/PageHeaderExtraPanel.qml:66
210210msgid "Clear All"
@@ -259,11 +259,13 @@ msgstr "Aniciu"
259259msgid "Also installed"
260260msgstr "Tamién instalaos"
261261
262−#: qml/DisabledScreenNotice.qml:104
262+#: qml/DisabledScreenNotice.qml:109
263263msgid ""
264264"Your device is now connected to an external display. Use this screen as a "
265265"touch pad to interact with the pointer."
266266msgstr ""
267+"El preséu agora ta coneutáu con una pantalla esterna. Usa esta pantalla como "
268+"touch pad pa interactuar col punteru."
267269
268270#: qml/Greeter/CoverPage.qml:118
269271msgid "Unlock"
@@ -425,51 +427,53 @@ msgstr "Devolver llamada"
425427
426428#: qml/Stages/SideStage.qml:76
427429msgid "Drag using 3 fingers any application from one window to the other"
428−msgstr ""
430+msgstr "Abasnar cualquier aplicación d'una ventana a otra usando 3 deos"
429431
430432#: qml/Tutorial/TutorialBottom.qml:78
431433msgid "Swipe up to add a contact"
432−msgstr ""
434+msgstr "Eslizar p'amestar un contactu"
433435
434436#: qml/Tutorial/TutorialBottom.qml:80
435437msgid "Swipe up for favorite calculations"
436−msgstr ""
438+msgstr "Eslizar pa los cálculos favoritos"
437439
438440#: qml/Tutorial/TutorialBottom.qml:82
439441msgid "Swipe up for recent calls"
440−msgstr ""
442+msgstr "Eslizar pa llamaes recién"
441443
442444#: qml/Tutorial/TutorialBottom.qml:84
443445msgid "Swipe up to create a message"
444−msgstr ""
446+msgstr "Eslizar pa crear un mensaxe"
445447
446448#: qml/Tutorial/TutorialBottom.qml:85
447449msgid "Swipe up to manage the app"
448−msgstr ""
450+msgstr "Eslizar p'alministrar la app"
449451
450452#: qml/Tutorial/TutorialLeftLong.qml:47
451453msgid "Long swipe from the left edge to open the Today scope"
452−msgstr ""
454+msgstr "Eslizamientu llargu dende'l berbesu izquierdu pa ver el scope Güei"
453455
454456#: qml/Tutorial/TutorialLeft.qml:47
455457msgid "Swipe from the left edge to open the launcher"
456−msgstr ""
458+msgstr "Eslizar dende'l berbesu izquierdu p'abrir el llanzador"
457459
458460#: qml/Tutorial/TutorialRight.qml:55
459461msgid "Push your mouse against the right edge to view your open apps"
460−msgstr ""
462+msgstr "Emburria'l mur escontra'l berbesu drechu pa ver les apps abiertes"
461463
462464#: qml/Tutorial/TutorialRight.qml:56
463465msgid "Short or long swipe from the right edge to view your open apps"
464466msgstr ""
467+"Eslizamientu curtiu o llargu dende'l berbesu drechu pa ver les apps abiertes"
465468
466469#: qml/Tutorial/TutorialTop.qml:53
467470msgid "Swipe from the top right edge to open the notification bar"
468471msgstr ""
472+"Esliza dende'l berbesu superior drechu p'abrir la barra de notificaciones"
469473
470474#: qml/Tutorial/TutorialTop.qml:54
471475msgid "Swipe from the top edge to open the notification bar"
472−msgstr ""
476+msgstr "Esliza dende'l berbesu superior p'abrir la barra de notificaciones"
473477
474478#: qml/Wizard/Page.qml:54
475479msgctxt "Button: Go back one page in the Wizard"
@@ -512,35 +516,37 @@ msgstr "Saltar"
512516
513517#: qml/Wizard/Pages/40-location.qml:27
514518msgid "Location Services"
515−msgstr ""
519+msgstr "Servicios d'allugamientu"
516520
517521#: qml/Wizard/Pages/40-location.qml:83
518522msgid ""
519523"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
520524"(recommended)"
521525msgstr ""
526+"Usar GPS, puntos Wi-Fi y redes móviles de mou anónimu pa detectar "
527+"l'allugamientu (recomendao)"
522528
523529#: qml/Wizard/Pages/40-location.qml:105
524530#, qt-format
525531msgid "By selecting this option you agree to the Nokia HERE %1."
526−msgstr ""
532+msgstr "Seleicionando esta opción aceutes los %1 de Nokia HERE."
527533
528534#: qml/Wizard/Pages/40-location.qml:106
529535msgctxt "part of: Nokia HERE terms and conditions"
530536msgid "terms and conditions"
531−msgstr ""
537+msgstr "términos y condiciones"
532538
533539#: qml/Wizard/Pages/40-location.qml:160
534540msgid "GPS only"
535−msgstr ""
541+msgstr "Sólo GPS"
536542
537543#: qml/Wizard/Pages/40-location.qml:214
538544msgid "Don't use my location"
539−msgstr ""
545+msgstr "Nun usar l'allugamientu"
540546
541547#: qml/Wizard/Pages/40-location.qml:260
542548msgid "You can change it later in System Settings."
543−msgstr ""
549+msgstr "Pues camudalo sero na Configuración del Sistema."
544550
545551#: qml/Wizard/Pages/50-timezone.qml:29
546552msgid "Time Zone"
@@ -565,33 +571,35 @@ msgstr "Bloquiar pantalla"
565571#: qml/Wizard/Pages/70-passwd-type.qml:101
566572msgctxt "Label: Type of security method"
567573msgid "Create new password"
568−msgstr ""
574+msgstr "Crear contraseña nueva"
569575
570576#: qml/Wizard/Pages/70-passwd-type.qml:103
571577msgctxt "Label: Type of security method"
572578msgid "Create passcode (numbers only)"
573−msgstr ""
579+msgstr "Crear códigu d'accesu (sólo númberos)"
574580
575581#: qml/Wizard/Pages/70-passwd-type.qml:105
576582msgctxt "Label: Type of security method"
577583msgid "No lock code"
578−msgstr ""
584+msgstr "Ensin códigu de bloquéu"
579585
580586#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
581587msgid "Privacy Policy"
582−msgstr ""
588+msgstr "Política d'intimidá"
583589
584590#: qml/Wizard/Pages/75-report-check.qml:26
585591msgid "Help Us Improve"
586−msgstr ""
592+msgstr "Ayúdanos a meyorar"
587593
588594#: qml/Wizard/Pages/75-report-check.qml:59
589595msgid "Improve system performance by sending us crashes and error reports."
590596msgstr ""
597+"Ameyora'l rindimientu del sistema unviándonos los informes d'errores y "
598+"cuelgues."
591599
592600#: qml/Wizard/Pages/75-report-check.qml:60
593601msgid "Privacy policy"
594−msgstr ""
602+msgstr "Política d'intimidá"
595603
596604#: qml/Wizard/Pages/80-finished.qml:89
597605msgid "Welcome to Ubuntu"
@@ -599,7 +607,7 @@ msgstr "Bienveníu/a a Ubuntu"
599607
600608#: qml/Wizard/Pages/80-finished.qml:104
601609msgid "You are ready to use your device now"
602−msgstr ""
610+msgstr "Ya tas preparáu pa usar el preséu"
603611
604612#: qml/Wizard/Pages/80-finished.qml:124
605613msgid "Get Started"
po/az.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-09-03 16:39+0000\n"
1212"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/be.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-12-13 13:12+0000\n"
1212"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
1313"Language-Team: Belarusian <be@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:36+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -193,15 +193,15 @@ msgstr ""
193193msgid "Reset"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197197msgid "Show less"
198198msgstr ""
199199
200−#: qml/Dash/GenericScopeView.qml:570
200+#: qml/Dash/GenericScopeView.qml:579
201201msgid "Show all"
202202msgstr ""
203203
204−#: qml/Dash/GenericScopeView.qml:627
204+#: qml/Dash/GenericScopeView.qml:636
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr "Пошук"
@@ -263,7 +263,7 @@ msgstr "Хатняя папка"
263263msgid "Also installed"
264264msgstr "Таксама ўсталявана"
265265
266−#: qml/DisabledScreenNotice.qml:104
266+#: qml/DisabledScreenNotice.qml:109
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269269"touch pad to interact with the pointer."
po/bg.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-04-12 14:43+0000\n"
1212"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
1313"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr ""
188188msgid "Reset"
189189msgstr ""
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr ""
@@ -258,7 +258,7 @@ msgstr ""
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/bn.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-11-27 19:38+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Bengali <bn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr ""
188188msgid "Reset"
189189msgstr ""
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "খুঁজুন"
@@ -258,7 +258,7 @@ msgstr ""
258258msgid "Also installed"
259259msgstr "আরও ইন্সটল করা রয়েছে..."
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/br.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-04-27 12:20+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -195,15 +195,15 @@ msgstr "Purañ ho tisoc'hoù"
195195msgid "Reset"
196196msgstr "Adderaouekaat"
197197
198−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199199msgid "Show less"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:570
202+#: qml/Dash/GenericScopeView.qml:579
203203msgid "Show all"
204204msgstr ""
205205
206−#: qml/Dash/GenericScopeView.qml:627
206+#: qml/Dash/GenericScopeView.qml:636
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr "Klask"
@@ -265,7 +265,7 @@ msgstr "Er gêr"
265265msgid "Also installed"
266266msgstr "Staliet ivez"
267267
268−#: qml/DisabledScreenNotice.qml:104
268+#: qml/DisabledScreenNotice.qml:109
269269msgid ""
270270"Your device is now connected to an external display. Use this screen as a "
271271"touch pad to interact with the pointer."
po/bs.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-12-01 20:06+0000\n"
1212"Last-Translator: Kenan Gutić <Unknown>\n"
1313"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:36+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -192,15 +192,15 @@ msgstr ""
192192msgid "Reset"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr "Pretraži"
@@ -262,7 +262,7 @@ msgstr "Početna"
262262msgid "Also installed"
263263msgstr "Također instalirano"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
po/ca.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-04 09:48+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -192,15 +192,15 @@ msgstr ""
192192msgid "Reset"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr "Cerca"
@@ -262,7 +262,7 @@ msgstr "Inici"
262262msgid "Also installed"
263263msgstr "També instal·lat"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
po/ca@valencia.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-02-22 15:22+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -192,15 +192,15 @@ msgstr ""
192192msgid "Reset"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr ""
@@ -262,7 +262,7 @@ msgstr "Inici"
262262msgid "Also installed"
263263msgstr "També instal·lat"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
po/ce.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-02-15 04:01+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Chechen <ce@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/ckb.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-01-21 11:05+0000\n"
1212"Last-Translator: Aras <aras.noori@gmail.com>\n"
1313"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/co.ponew file+736
@@ -0,0 +1,736 @@
1+# Corsican translation for unity8
2+# Copyright (c) 2016 Rosetta Contributors and Canonical Ltd 2016
3+# This file is distributed under the same license as the unity8 package.
4+# FIRST AUTHOR <EMAIL@ADDRESS>, 2016.
5+#
6+msgid ""
7+msgstr ""
8+"Project-Id-Version: unity8\n"
9+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-24 10:40+0000\n"
12+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13+"Language-Team: Corsican <co@li.org>\n"
14+"MIME-Version: 1.0\n"
15+"Content-Type: text/plain; charset=UTF-8\n"
16+"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
20+
21+#: plugins/IntegratedLightDM/Greeter.cpp:112
22+msgid "Password: "
23+msgstr ""
24+
25+#: plugins/Unity/Launcher/launcheritem.cpp:48
26+#: plugins/Unity/Launcher/launcheritem.cpp:107
27+msgid "Pin shortcut"
28+msgstr ""
29+
30+#: plugins/Unity/Launcher/launcheritem.cpp:53
31+msgid "Quit"
32+msgstr ""
33+
34+#: plugins/Unity/Launcher/launcheritem.cpp:107
35+msgid "Unpin shortcut"
36+msgstr ""
37+
38+#: qml/Components/DelayedLockscreen.qml:49
39+msgid "Device Locked"
40+msgstr ""
41+
42+#: qml/Components/DelayedLockscreen.qml:64
43+msgid "You have been locked out due to too many failed passphrase attempts."
44+msgstr ""
45+
46+#: qml/Components/DelayedLockscreen.qml:65
47+msgid "You have been locked out due to too many failed passcode attempts."
48+msgstr ""
49+
50+#: qml/Components/DelayedLockscreen.qml:74
51+#, qt-format
52+msgid "Please wait %1 minute and then try again…"
53+msgid_plural "Please wait %1 minutes and then try again…"
54+msgstr[0] ""
55+msgstr[1] ""
56+
57+#: qml/Components/Dialogs.qml:144
58+msgctxt "Title: Lock/Log out dialog"
59+msgid "Log out"
60+msgstr ""
61+
62+#: qml/Components/Dialogs.qml:145
63+msgid "Are you sure you want to log out?"
64+msgstr ""
65+
66+#: qml/Components/Dialogs.qml:147
67+msgctxt "Button: Lock the system"
68+msgid "Lock"
69+msgstr ""
70+
71+#: qml/Components/Dialogs.qml:154
72+msgctxt "Button: Log out from the system"
73+msgid "Log Out"
74+msgstr ""
75+
76+#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:217
77+#: qml/Dash/DashPageHeader.qml:298 qml/Wizard/Pages/passcode-confirm.qml:32
78+#: qml/Wizard/Pages/passcode-set.qml:32
79+msgid "Cancel"
80+msgstr ""
81+
82+#: qml/Components/Dialogs.qml:173
83+msgctxt "Title: Reboot dialog"
84+msgid "Reboot"
85+msgstr ""
86+
87+#: qml/Components/Dialogs.qml:174
88+msgid "Are you sure you want to reboot?"
89+msgstr ""
90+
91+#: qml/Components/Dialogs.qml:176
92+msgid "No"
93+msgstr ""
94+
95+#: qml/Components/Dialogs.qml:182
96+msgid "Yes"
97+msgstr ""
98+
99+#: qml/Components/Dialogs.qml:197
100+msgctxt "Title: Power off/Restart dialog"
101+msgid "Power"
102+msgstr ""
103+
104+#: qml/Components/Dialogs.qml:198
105+msgid ""
106+"Are you sure you would like\n"
107+"to power off?"
108+msgstr ""
109+
110+#: qml/Components/Dialogs.qml:200
111+msgctxt "Button: Power off the system"
112+msgid "Power off"
113+msgstr ""
114+
115+#: qml/Components/Dialogs.qml:209
116+msgctxt "Button: Restart the system"
117+msgid "Restart"
118+msgstr ""
119+
120+#: qml/Components/Lockscreen.qml:231
121+msgid "Return to Call"
122+msgstr ""
123+
124+#: qml/Components/Lockscreen.qml:231
125+msgid "Emergency Call"
126+msgstr ""
127+
128+#: qml/Components/Lockscreen.qml:263
129+msgid "OK"
130+msgstr ""
131+
132+#: qml/Components/ModeSwitchWarningDialog.qml:32
133+msgid "Apps may have unsaved data:"
134+msgstr ""
135+
136+#: qml/Components/ModeSwitchWarningDialog.qml:57
137+msgctxt ""
138+"Re-dock means connect the device again to an external screen/mouse/keyboard"
139+msgid "Re-dock, save your work and close these apps to continue."
140+msgstr ""
141+
142+#: qml/Components/ModeSwitchWarningDialog.qml:63
143+msgid "Or force close now (unsaved data will be lost)."
144+msgstr ""
145+
146+#: qml/Components/ModeSwitchWarningDialog.qml:75
147+msgid "OK, I will reconnect"
148+msgstr ""
149+
150+#: qml/Components/ModeSwitchWarningDialog.qml:76
151+msgid "Reconnect now!"
152+msgstr ""
153+
154+#: qml/Components/ModeSwitchWarningDialog.qml:88
155+msgid "Close all"
156+msgstr ""
157+
158+#: qml/Dash/DashPageHeader.qml:337
159+msgctxt "Button: Open the Ubuntu Store"
160+msgid "Store"
161+msgstr ""
162+
163+#: qml/Dash/DashPageHeader.qml:344
164+msgctxt "Button: Start a search in the current dash scope"
165+msgid "Search"
166+msgstr ""
167+
168+#: qml/Dash/DashPageHeader.qml:354
169+msgctxt "Button: Show the current dash scope settings"
170+msgid "Settings"
171+msgstr ""
172+
173+#: qml/Dash/DashPageHeader.qml:361
174+msgid "Remove from Favorites"
175+msgstr ""
176+
177+#: qml/Dash/DashPageHeader.qml:361
178+msgid "Add to Favorites"
179+msgstr ""
180+
181+#: qml/Dash/FiltersPopover.qml:60
182+msgid "Refine your results"
183+msgstr ""
184+
185+#: qml/Dash/FiltersPopover.qml:69
186+msgid "Reset"
187+msgstr ""
188+
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190+msgid "Show less"
191+msgstr ""
192+
193+#: qml/Dash/GenericScopeView.qml:579
194+msgid "Show all"
195+msgstr ""
196+
197+#: qml/Dash/GenericScopeView.qml:636
198+msgctxt "Label: Hint for dash search line edit"
199+msgid "Search"
200+msgstr ""
201+
202+#: qml/Dash/PageHeaderExtraPanel.qml:55
203+msgid "Recent Searches"
204+msgstr ""
205+
206+#: qml/Dash/PageHeaderExtraPanel.qml:66
207+msgid "Clear All"
208+msgstr ""
209+
210+#: qml/Dash/Previews/PreviewActionCombo.qml:35
211+msgid "More..."
212+msgstr ""
213+
214+#: qml/Dash/Previews/PreviewActionCombo.qml:35
215+msgid "Less..."
216+msgstr ""
217+
218+#: qml/Dash/Previews/PreviewCommentInput.qml:68
219+#: qml/Dash/Previews/PreviewRatingInput.qml:174
220+msgid "Send"
221+msgstr ""
222+
223+#: qml/Dash/Previews/PreviewRatingInput.qml:84
224+msgid "Rate this"
225+msgstr ""
226+
227+#: qml/Dash/Previews/PreviewRatingInput.qml:129
228+msgid "Add a review"
229+msgstr ""
230+
231+#: qml/Dash/Previews/PreviewSharing.qml:66
232+msgid "Preview Share Item"
233+msgstr ""
234+
235+#: qml/Dash/PullToRefreshScopeStyle.qml:55
236+msgid "Pull to refresh…"
237+msgstr ""
238+
239+#: qml/Dash/PullToRefreshScopeStyle.qml:60
240+msgid "Release to refresh…"
241+msgstr ""
242+
243+#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
244+msgid "Enable location data"
245+msgstr ""
246+
247+#: qml/Dash/ScopesList.qml:67
248+msgid "Manage"
249+msgstr ""
250+
251+#: qml/Dash/ScopesList.qml:113
252+msgid "Home"
253+msgstr ""
254+
255+#: qml/Dash/ScopesList.qml:114
256+msgid "Also installed"
257+msgstr ""
258+
259+#: qml/DisabledScreenNotice.qml:109
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the pointer."
263+msgstr ""
264+
265+#: qml/Greeter/CoverPage.qml:118
266+msgid "Unlock"
267+msgstr ""
268+
269+#: qml/Greeter/LoginList.qml:239
270+msgid "Retry"
271+msgstr ""
272+
273+#: qml/Greeter/LoginList.qml:240
274+msgid "Tap to unlock"
275+msgstr ""
276+
277+#: qml/Greeter/NarrowView.qml:54
278+msgid "Sorry, incorrect passphrase."
279+msgstr ""
280+
281+#: qml/Greeter/NarrowView.qml:55
282+msgid "Sorry, incorrect passcode."
283+msgstr ""
284+
285+#: qml/Greeter/NarrowView.qml:56
286+msgid "This will be your last attempt."
287+msgstr ""
288+
289+#: qml/Greeter/NarrowView.qml:58
290+msgid ""
291+"If passphrase is entered incorrectly, your phone will conduct a factory "
292+"reset and all personal data will be deleted."
293+msgstr ""
294+
295+#: qml/Greeter/NarrowView.qml:59
296+msgid ""
297+"If passcode is entered incorrectly, your phone will conduct a factory reset "
298+"and all personal data will be deleted."
299+msgstr ""
300+
301+#: qml/Greeter/NarrowView.qml:116
302+#, qt-format
303+msgid "Enter %1"
304+msgstr ""
305+
306+#: qml/Greeter/NarrowView.qml:117
307+msgid "Enter passphrase"
308+msgstr ""
309+
310+#: qml/Greeter/NarrowView.qml:118
311+msgid "Enter passcode"
312+msgstr ""
313+
314+#: qml/Greeter/NarrowView.qml:119
315+#, qt-format
316+msgid "Sorry, incorrect %1"
317+msgstr ""
318+
319+#: qml/Greeter/NarrowView.qml:120
320+msgid "Sorry, incorrect passphrase"
321+msgstr ""
322+
323+#: qml/Greeter/NarrowView.qml:121
324+msgctxt "passphrase"
325+msgid "Please re-enter"
326+msgstr ""
327+
328+#: qml/Greeter/NarrowView.qml:122
329+msgid "Sorry, incorrect passcode"
330+msgstr ""
331+
332+#: qml/Notifications/NotificationMenuItemFactory.qml:124
333+msgid "Show password"
334+msgstr ""
335+
336+#: qml/Panel/ActiveCallHint.qml:79
337+msgid "Tap to return to call..."
338+msgstr ""
339+
340+#: qml/Panel/ActiveCallHint.qml:92
341+msgid "Conference"
342+msgstr ""
343+
344+#: qml/Panel/Indicators/MenuItemFactory.qml:762
345+msgid "Nothing is playing"
346+msgstr ""
347+
348+#: qml/Panel/Indicators/MenuItemFactory.qml:891
349+#, qt-format
350+msgid "%1 hour"
351+msgid_plural "%1 hours"
352+msgstr[0] ""
353+msgstr[1] ""
354+
355+#: qml/Panel/Indicators/MenuItemFactory.qml:895
356+#, qt-format
357+msgid "%1 minute"
358+msgid_plural "%1 minutes"
359+msgstr[0] ""
360+msgstr[1] ""
361+
362+#: qml/Panel/Indicators/MenuItemFactory.qml:900
363+#, qt-format
364+msgid "%1 second"
365+msgid_plural "%1 seconds"
366+msgstr[0] ""
367+msgstr[1] ""
368+
369+#: qml/Panel/Indicators/MenuItemFactory.qml:903
370+msgid "0 seconds"
371+msgstr ""
372+
373+#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
374+#: qml/Panel/Indicators/MenuItemFactory.qml:905
375+#, qt-format
376+msgid "%1 remaining"
377+msgstr ""
378+
379+#: qml/Panel/Indicators/MenuItemFactory.qml:911
380+msgid "In queue…"
381+msgstr ""
382+
383+#: qml/Panel/Indicators/MenuItemFactory.qml:915
384+msgid "Downloading"
385+msgstr ""
386+
387+#: qml/Panel/Indicators/MenuItemFactory.qml:917
388+msgid "Paused, tap to resume"
389+msgstr ""
390+
391+#: qml/Panel/Indicators/MenuItemFactory.qml:919
392+msgid "Canceled"
393+msgstr ""
394+
395+#: qml/Panel/Indicators/MenuItemFactory.qml:921
396+msgid "Finished"
397+msgstr ""
398+
399+#: qml/Panel/Indicators/MenuItemFactory.qml:923
400+msgid "Failed, tap to retry"
401+msgstr ""
402+
403+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
404+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
405+msgctxt "Button: Send a reply message"
406+msgid "Send"
407+msgstr ""
408+
409+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
410+msgctxt "Label: Hint in message indicator line edit"
411+msgid "Reply"
412+msgstr ""
413+
414+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
415+msgctxt "Button: Call back on phone"
416+msgid "Call back"
417+msgstr ""
418+
419+#: qml/Stages/SideStage.qml:76
420+msgid "Drag using 3 fingers any application from one window to the other"
421+msgstr ""
422+
423+#: qml/Tutorial/TutorialBottom.qml:78
424+msgid "Swipe up to add a contact"
425+msgstr ""
426+
427+#: qml/Tutorial/TutorialBottom.qml:80
428+msgid "Swipe up for favorite calculations"
429+msgstr ""
430+
431+#: qml/Tutorial/TutorialBottom.qml:82
432+msgid "Swipe up for recent calls"
433+msgstr ""
434+
435+#: qml/Tutorial/TutorialBottom.qml:84
436+msgid "Swipe up to create a message"
437+msgstr ""
438+
439+#: qml/Tutorial/TutorialBottom.qml:85
440+msgid "Swipe up to manage the app"
441+msgstr ""
442+
443+#: qml/Tutorial/TutorialLeftLong.qml:47
444+msgid "Long swipe from the left edge to open the Today scope"
445+msgstr ""
446+
447+#: qml/Tutorial/TutorialLeft.qml:47
448+msgid "Swipe from the left edge to open the launcher"
449+msgstr ""
450+
451+#: qml/Tutorial/TutorialRight.qml:55
452+msgid "Push your mouse against the right edge to view your open apps"
453+msgstr ""
454+
455+#: qml/Tutorial/TutorialRight.qml:56
456+msgid "Short or long swipe from the right edge to view your open apps"
457+msgstr ""
458+
459+#: qml/Tutorial/TutorialTop.qml:53
460+msgid "Swipe from the top right edge to open the notification bar"
461+msgstr ""
462+
463+#: qml/Tutorial/TutorialTop.qml:54
464+msgid "Swipe from the top edge to open the notification bar"
465+msgstr ""
466+
467+#: qml/Wizard/Page.qml:54
468+msgctxt "Button: Go back one page in the Wizard"
469+msgid "Back"
470+msgstr ""
471+
472+#: qml/Wizard/Pages/10-welcome.qml:27
473+msgid "Language"
474+msgstr ""
475+
476+#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
477+#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
478+#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/70-passwd-type.qml:144
479+#: qml/Wizard/Pages/75-report-check.qml:84
480+#: qml/Wizard/Pages/passcode-desktop.qml:124
481+#: qml/Wizard/Pages/password-set.qml:141
482+msgid "Next"
483+msgstr ""
484+
485+#: qml/Wizard/Pages/30-wifi.qml:29
486+msgid "Connect to Wi‑Fi"
487+msgstr ""
488+
489+#: qml/Wizard/Pages/30-wifi.qml:130
490+msgid "Connected"
491+msgstr ""
492+
493+#: qml/Wizard/Pages/30-wifi.qml:163
494+msgid "Available Wi-Fi networks"
495+msgstr ""
496+
497+#: qml/Wizard/Pages/30-wifi.qml:164
498+msgid "No available Wi-Fi networks"
499+msgstr ""
500+
501+#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
502+#: qml/Wizard/Pages/sim.qml:101
503+msgid "Skip"
504+msgstr ""
505+
506+#: qml/Wizard/Pages/40-location.qml:27
507+msgid "Location Services"
508+msgstr ""
509+
510+#: qml/Wizard/Pages/40-location.qml:83
511+msgid ""
512+"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
513+"(recommended)"
514+msgstr ""
515+
516+#: qml/Wizard/Pages/40-location.qml:105
517+#, qt-format
518+msgid "By selecting this option you agree to the Nokia HERE %1."
519+msgstr ""
520+
521+#: qml/Wizard/Pages/40-location.qml:106
522+msgctxt "part of: Nokia HERE terms and conditions"
523+msgid "terms and conditions"
524+msgstr ""
525+
526+#: qml/Wizard/Pages/40-location.qml:160
527+msgid "GPS only"
528+msgstr ""
529+
530+#: qml/Wizard/Pages/40-location.qml:214
531+msgid "Don't use my location"
532+msgstr ""
533+
534+#: qml/Wizard/Pages/40-location.qml:260
535+msgid "You can change it later in System Settings."
536+msgstr ""
537+
538+#: qml/Wizard/Pages/50-timezone.qml:29
539+msgid "Time Zone"
540+msgstr ""
541+
542+#: qml/Wizard/Pages/50-timezone.qml:178
543+msgid "Enter your city"
544+msgstr ""
545+
546+#: qml/Wizard/Pages/60-account.qml:24
547+msgid "Personalize Your Device"
548+msgstr ""
549+
550+#: qml/Wizard/Pages/60-account.qml:48
551+msgid "Preferred Name"
552+msgstr ""
553+
554+#: qml/Wizard/Pages/70-passwd-type.qml:39
555+msgid "Lock Screen"
556+msgstr ""
557+
558+#: qml/Wizard/Pages/70-passwd-type.qml:101
559+msgctxt "Label: Type of security method"
560+msgid "Create new password"
561+msgstr ""
562+
563+#: qml/Wizard/Pages/70-passwd-type.qml:103
564+msgctxt "Label: Type of security method"
565+msgid "Create passcode (numbers only)"
566+msgstr ""
567+
568+#: qml/Wizard/Pages/70-passwd-type.qml:105
569+msgctxt "Label: Type of security method"
570+msgid "No lock code"
571+msgstr ""
572+
573+#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
574+msgid "Privacy Policy"
575+msgstr ""
576+
577+#: qml/Wizard/Pages/75-report-check.qml:26
578+msgid "Help Us Improve"
579+msgstr ""
580+
581+#: qml/Wizard/Pages/75-report-check.qml:59
582+msgid "Improve system performance by sending us crashes and error reports."
583+msgstr ""
584+
585+#: qml/Wizard/Pages/75-report-check.qml:60
586+msgid "Privacy policy"
587+msgstr ""
588+
589+#: qml/Wizard/Pages/80-finished.qml:89
590+msgid "Welcome to Ubuntu"
591+msgstr ""
592+
593+#: qml/Wizard/Pages/80-finished.qml:104
594+msgid "You are ready to use your device now"
595+msgstr ""
596+
597+#: qml/Wizard/Pages/80-finished.qml:124
598+msgid "Get Started"
599+msgstr ""
600+
601+#: qml/Wizard/Pages/here-terms.qml:25
602+msgid "Terms & Conditions"
603+msgstr ""
604+
605+#: qml/Wizard/Pages/here-terms.qml:69
606+msgid "Your device uses positioning technologies provided by HERE."
607+msgstr ""
608+
609+#: qml/Wizard/Pages/here-terms.qml:81
610+msgid ""
611+"To provide you with positioning services and to improve their quality, HERE "
612+"collects information about nearby cell towers and Wi-Fi hotspots around your "
613+"current location whenever your position is being found."
614+msgstr ""
615+
616+#: qml/Wizard/Pages/here-terms.qml:93
617+msgid ""
618+"The information collected is used to analyze the service and to improve the "
619+"use of service, but not to identify you personally."
620+msgstr ""
621+
622+#: qml/Wizard/Pages/here-terms.qml:106
623+#, qt-format
624+msgid "By continuing, you agree to the HERE platform %1 and %2."
625+msgstr ""
626+
627+#: qml/Wizard/Pages/here-terms.qml:107
628+msgid "Service Terms"
629+msgstr ""
630+
631+#: qml/Wizard/Pages/passcode-confirm.qml:43
632+#: qml/Wizard/Pages/passcode-desktop.qml:80
633+msgid "Confirm passcode"
634+msgstr ""
635+
636+#: qml/Wizard/Pages/passcode-confirm.qml:45
637+msgid "Incorrect passcode."
638+msgstr ""
639+
640+#: qml/Wizard/Pages/passcode-confirm.qml:45
641+msgctxt "Enter the passcode again"
642+msgid "Please re-enter."
643+msgstr ""
644+
645+#: qml/Wizard/Pages/passcode-desktop.qml:30
646+msgid "Lock Screen Passcode"
647+msgstr ""
648+
649+#: qml/Wizard/Pages/passcode-desktop.qml:56
650+msgid "Enter 4 numbers to setup your passcode"
651+msgstr ""
652+
653+#: qml/Wizard/Pages/passcode-desktop.qml:65
654+#: qml/Wizard/Pages/passcode-set.qml:54
655+msgid "Choose passcode"
656+msgstr ""
657+
658+#: qml/Wizard/Pages/passcode-desktop.qml:105
659+msgid "Passcode too short"
660+msgstr ""
661+
662+#: qml/Wizard/Pages/passcode-desktop.qml:107
663+msgid "Passcodes match"
664+msgstr ""
665+
666+#: qml/Wizard/Pages/passcode-desktop.qml:109
667+msgid "Passcodes do not match"
668+msgstr ""
669+
670+#: qml/Wizard/Pages/passcode-set.qml:62
671+msgid "Passcode must be 4 characters long"
672+msgstr ""
673+
674+#: qml/Wizard/Pages/password-set.qml:30
675+msgid "Lock Screen Password"
676+msgstr ""
677+
678+#: qml/Wizard/Pages/password-set.qml:61
679+msgid "Enter at least 8 characters"
680+msgstr ""
681+
682+#: qml/Wizard/Pages/password-set.qml:73
683+msgid "Choose password"
684+msgstr ""
685+
686+#: qml/Wizard/Pages/password-set.qml:103
687+msgid "Confirm password"
688+msgstr ""
689+
690+#: qml/Wizard/Pages/sim.qml:27
691+msgid "No SIM card installed"
692+msgstr ""
693+
694+#: qml/Wizard/Pages/sim.qml:54
695+msgid "SIM card added"
696+msgstr ""
697+
698+#: qml/Wizard/Pages/sim.qml:55
699+msgid "You must restart the device to access the mobile network."
700+msgstr ""
701+
702+#: qml/Wizard/Pages/sim.qml:59
703+msgid "Restart"
704+msgstr ""
705+
706+#: qml/Wizard/Pages/sim.qml:78
707+msgid "You won’t be able to make calls or use text messaging without a SIM."
708+msgstr ""
709+
710+#: qml/Wizard/Pages/sim.qml:90
711+msgid "To proceed with no SIM tap Skip."
712+msgstr ""
713+
714+#: qml/Wizard/PasswordMeter.qml:87
715+msgid "Passwords match"
716+msgstr ""
717+
718+#: qml/Wizard/PasswordMeter.qml:89
719+msgid "Passwords do not match"
720+msgstr ""
721+
722+#: qml/Wizard/PasswordMeter.qml:93
723+msgid "Strong password"
724+msgstr ""
725+
726+#: qml/Wizard/PasswordMeter.qml:95
727+msgid "Fair password"
728+msgstr ""
729+
730+#: qml/Wizard/PasswordMeter.qml:97
731+msgid "Weak password"
732+msgstr ""
733+
734+#: qml/Wizard/PasswordMeter.qml:99
735+msgid "Very weak password"
736+msgstr ""
po/cs.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-07 10:44+0000\n"
1212"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
1313"Language-Team: Czech <cs@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020"Language: cs\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -192,15 +192,15 @@ msgstr ""
192192msgid "Reset"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr "Hledat"
@@ -262,7 +262,7 @@ msgstr "Domů"
262262msgid "Also installed"
263263msgstr "Také nainstalováno"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
po/cy.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-31 13:21+0000\n"
1212"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
1313"Language-Team: Welsh <cy@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
1818"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -193,15 +193,15 @@ msgstr ""
193193msgid "Reset"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197197msgid "Show less"
198198msgstr ""
199199
200−#: qml/Dash/GenericScopeView.qml:570
200+#: qml/Dash/GenericScopeView.qml:579
201201msgid "Show all"
202202msgstr ""
203203
204−#: qml/Dash/GenericScopeView.qml:627
204+#: qml/Dash/GenericScopeView.qml:636
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr "Chwilio"
@@ -263,7 +263,7 @@ msgstr "Cartref"
263263msgid "Also installed"
264264msgstr "Hefyd wedi gosod"
265265
266−#: qml/DisabledScreenNotice.qml:104
266+#: qml/DisabledScreenNotice.qml:109
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269269"touch pad to interact with the pointer."
po/da.po+7−7
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1212"PO-Revision-Date: 2015-07-06 12:05+0000\n"
1313"Last-Translator: Folmer Fredslund <Unknown>\n"
1414"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:36+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -193,15 +193,15 @@ msgstr ""
193193msgid "Reset"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197197msgid "Show less"
198198msgstr ""
199199
200−#: qml/Dash/GenericScopeView.qml:570
200+#: qml/Dash/GenericScopeView.qml:579
201201msgid "Show all"
202202msgstr ""
203203
204−#: qml/Dash/GenericScopeView.qml:627
204+#: qml/Dash/GenericScopeView.qml:636
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr "Søg"
@@ -263,7 +263,7 @@ msgstr "Hjem"
263263msgid "Also installed"
264264msgstr "Også installeret"
265265
266−#: qml/DisabledScreenNotice.qml:104
266+#: qml/DisabledScreenNotice.qml:109
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269269"touch pad to interact with the pointer."
po/de.po+13−11
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11−"PO-Revision-Date: 2016-03-13 15:41+0000\n"
12−"Last-Translator: schuko24 <gerdsaenger@t-online.de>\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-10 19:23+0000\n"
12+"Last-Translator: Torsten Franz <Unknown>\n"
1313"Language-Team: German <de@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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Ergebnisse verfeinern"
194194msgid "Reset"
195195msgstr "Zurücksetzen"
196196
197−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
197+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
198198msgid "Show less"
199−msgstr ""
199+msgstr "Weniger anzeigen"
200200
201−#: qml/Dash/GenericScopeView.qml:570
201+#: qml/Dash/GenericScopeView.qml:579
202202msgid "Show all"
203−msgstr ""
203+msgstr "Alle anzeigen"
204204
205−#: qml/Dash/GenericScopeView.qml:627
205+#: qml/Dash/GenericScopeView.qml:636
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "Suchen"
@@ -264,7 +264,7 @@ msgstr "Startseite"
264264msgid "Also installed"
265265msgstr "Ebenfalls installiert"
266266
267−#: qml/DisabledScreenNotice.qml:104
267+#: qml/DisabledScreenNotice.qml:109
268268msgid ""
269269"Your device is now connected to an external display. Use this screen as a "
270270"touch pad to interact with the pointer."
@@ -466,6 +466,8 @@ msgstr "Von der linken Kante wischen, um den Starter zu öffnen"
466466#: qml/Tutorial/TutorialRight.qml:55
467467msgid "Push your mouse against the right edge to view your open apps"
468468msgstr ""
469+"Bewegen Sie den Mauszeiger an die rechte Kante, um die geöffneten "
470+"Anwendungen zu sehen"
469471
470472#: qml/Tutorial/TutorialRight.qml:56
471473msgid "Short or long swipe from the right edge to view your open apps"
po/el.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-04-25 16:24+0000\n"
1212"Last-Translator: Aggelos Arnaoutis <angelosarn@hotmail.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Βελτιώστε τα αποτελέσματά σας"
194194msgid "Reset"
195195msgstr "Επαναφορά"
196196
197−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
197+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
198198msgid "Show less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:570
201+#: qml/Dash/GenericScopeView.qml:579
202202msgid "Show all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:627
205+#: qml/Dash/GenericScopeView.qml:636
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "Αναζήτηση"
@@ -264,7 +264,7 @@ msgstr "Αρχή"
264264msgid "Also installed"
265265msgstr "Επίσης εγκατεστημένα"
266266
267−#: qml/DisabledScreenNotice.qml:104
267+#: qml/DisabledScreenNotice.qml:109
268268msgid ""
269269"Your device is now connected to an external display. Use this screen as a "
270270"touch pad to interact with the pointer."
po/en_AU.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-03-27 10:09+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr "Refine your results"
188188msgid "Reset"
189189msgstr "Reset"
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "Search"
@@ -258,7 +258,7 @@ msgstr "Home"
258258msgid "Also installed"
259259msgstr "Also installed"
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/en_GB.po+10−10
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11−"PO-Revision-Date: 2016-04-29 10:35+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-10 10:10+0000\n"
1212"Last-Translator: Andi Chandler <Unknown>\n"
1313"Language-Team: English (United Kingdom) <en_GB@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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr "Refine your results"
188188msgid "Reset"
189189msgstr "Reset"
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193−msgstr ""
193+msgstr "Show less"
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197−msgstr ""
197+msgstr "Show all"
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "Search"
@@ -258,7 +258,7 @@ msgstr "Home"
258258msgid "Also installed"
259259msgstr "Also installed"
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/eo.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-06-06 23:37+0000\n"
1212"Last-Translator: Eliovir <Unknown>\n"
1313"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr "Serĉi"
@@ -256,7 +256,7 @@ msgstr "Hejmo"
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/es.po+9−9
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-03-25 12:02+0000\n"
1212"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
1313"Language-Team: Spanish <es@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -193,15 +193,15 @@ msgstr "Refinar resultados"
193193msgid "Reset"
194194msgstr "Restablecer"
195195
196−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197197msgid "Show less"
198−msgstr ""
198+msgstr "Mostrar menos"
199199
200−#: qml/Dash/GenericScopeView.qml:570
200+#: qml/Dash/GenericScopeView.qml:579
201201msgid "Show all"
202−msgstr ""
202+msgstr "Mostrar todo"
203203
204−#: qml/Dash/GenericScopeView.qml:627
204+#: qml/Dash/GenericScopeView.qml:636
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr "Búsqueda"
@@ -263,7 +263,7 @@ msgstr "Inicio"
263263msgid "Also installed"
264264msgstr "También instalados"
265265
266−#: qml/DisabledScreenNotice.qml:104
266+#: qml/DisabledScreenNotice.qml:109
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269269"touch pad to interact with the pointer."
po/eu.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-13 23:29+0000\n"
1212"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
1313"Language-Team: Basque <eu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -189,15 +189,15 @@ msgstr ""
189189msgid "Reset"
190190msgstr ""
191191
192−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
192+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
193193msgid "Show less"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:570
196+#: qml/Dash/GenericScopeView.qml:579
197197msgid "Show all"
198198msgstr ""
199199
200−#: qml/Dash/GenericScopeView.qml:627
200+#: qml/Dash/GenericScopeView.qml:636
201201msgctxt "Label: Hint for dash search line edit"
202202msgid "Search"
203203msgstr "Bilatu"
@@ -259,7 +259,7 @@ msgstr "Hasiera"
259259msgid "Also installed"
260260msgstr "Hau ere instalatuta"
261261
262−#: qml/DisabledScreenNotice.qml:104
262+#: qml/DisabledScreenNotice.qml:109
263263msgid ""
264264"Your device is now connected to an external display. Use this screen as a "
265265"touch pad to interact with the pointer."
po/fa.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-03-30 14:29+0000\n"
1212"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
1313"Language-Team: Persian <fa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -189,15 +189,15 @@ msgstr "نتایجتان را بهبود دهید"
189189msgid "Reset"
190190msgstr "بازنشانی"
191191
192−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
192+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
193193msgid "Show less"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:570
196+#: qml/Dash/GenericScopeView.qml:579
197197msgid "Show all"
198198msgstr ""
199199
200−#: qml/Dash/GenericScopeView.qml:627
200+#: qml/Dash/GenericScopeView.qml:636
201201msgctxt "Label: Hint for dash search line edit"
202202msgid "Search"
203203msgstr "جست‌وجو"
@@ -259,7 +259,7 @@ msgstr "خانه"
259259msgid "Also installed"
260260msgstr "هم‌چنین نصب شده"
261261
262−#: qml/DisabledScreenNotice.qml:104
262+#: qml/DisabledScreenNotice.qml:109
263263msgid ""
264264"Your device is now connected to an external display. Use this screen as a "
265265"touch pad to interact with the pointer."
po/fi.po+11−9
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-04 18:32+0000\n"
1212"Last-Translator: Jiri Grönroos <Unknown>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -192,15 +192,15 @@ msgstr "Tarkenna tuloksia"
192192msgid "Reset"
193193msgstr "Palauta"
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197−msgstr ""
197+msgstr "Näytä vähemmän"
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201−msgstr ""
201+msgstr "Näytä kaikki"
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr "Etsi"
@@ -262,7 +262,7 @@ msgstr "Koti"
262262msgid "Also installed"
263263msgstr "Myös asennettu"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
@@ -463,6 +463,8 @@ msgstr "Vedä vasemmasta reunasta avataksesi käynnistimen"
463463#: qml/Tutorial/TutorialRight.qml:55
464464msgid "Push your mouse against the right edge to view your open apps"
465465msgstr ""
466+"Työnnä oikeaa reunaa hiiren osoittimella nähdäksesi avoinna olevat "
467+"sovellukset"
466468
467469#: qml/Tutorial/TutorialRight.qml:56
468470msgid "Short or long swipe from the right edge to view your open apps"
po/fo.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-01-14 20:08+0000\n"
1212"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
1313"Language-Team: Faroese <fo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/fr.po+12−12
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11−"PO-Revision-Date: 2016-05-01 09:09+0000\n"
12−"Last-Translator: Anne <anneonyme017@gmail.com>\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-19 21:22+0000\n"
12+"Last-Translator: Ubuntu-QC-1 <Unknown>\n"
1313"Language-Team: French <fr@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-05-02 05:45+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -37,13 +37,13 @@ msgstr "Détacher le raccourci"
3737
3838#: qml/Components/DelayedLockscreen.qml:49
3939msgid "Device Locked"
40−msgstr "Périphérique verrouillé"
40+msgstr "Appareil verrouillé"
4141
4242#: qml/Components/DelayedLockscreen.qml:64
4343msgid "You have been locked out due to too many failed passphrase attempts."
4444msgstr ""
45−"Vous avez été bloqué suite à un trop grand nombre de tentatives de saisie "
46−"d'une phrase de passe erronée."
45+"L'appareil a été verrouillé suite à un trop grand nombre de tentatives de "
46+"saisie d'une phrase de passe erronée."
4747
4848#: qml/Components/DelayedLockscreen.qml:65
4949msgid "You have been locked out due to too many failed passcode attempts."
@@ -196,15 +196,15 @@ msgstr "Affiner vos résultats"
196196msgid "Reset"
197197msgstr "Réinitialiser"
198198
199−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
199+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
200200msgid "Show less"
201201msgstr "Afficher plus"
202202
203−#: qml/Dash/GenericScopeView.qml:570
203+#: qml/Dash/GenericScopeView.qml:579
204204msgid "Show all"
205205msgstr "Tout afficher"
206206
207−#: qml/Dash/GenericScopeView.qml:627
207+#: qml/Dash/GenericScopeView.qml:636
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "Rechercher"
@@ -266,7 +266,7 @@ msgstr "Accueil"
266266msgid "Also installed"
267267msgstr "Également installées"
268268
269−#: qml/DisabledScreenNotice.qml:104
269+#: qml/DisabledScreenNotice.qml:109
270270msgid ""
271271"Your device is now connected to an external display. Use this screen as a "
272272"touch pad to interact with the pointer."
po/ga.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-01-25 11:33+0000\n"
1212"Last-Translator: Joshua Kiley <Unknown>\n"
1313"Language-Team: Irish <ga@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -187,15 +187,15 @@ msgstr ""
187187msgid "Reset"
188188msgstr ""
189189
190−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
190+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
191191msgid "Show less"
192192msgstr ""
193193
194−#: qml/Dash/GenericScopeView.qml:570
194+#: qml/Dash/GenericScopeView.qml:579
195195msgid "Show all"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:627
198+#: qml/Dash/GenericScopeView.qml:636
199199msgctxt "Label: Hint for dash search line edit"
200200msgid "Search"
201201msgstr "Cuardach"
@@ -257,7 +257,7 @@ msgstr "Baile"
257257msgid "Also installed"
258258msgstr ""
259259
260−#: qml/DisabledScreenNotice.qml:104
260+#: qml/DisabledScreenNotice.qml:109
261261msgid ""
262262"Your device is now connected to an external display. Use this screen as a "
263263"touch pad to interact with the pointer."
po/gd.po+9−9
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-04-08 18:34+0000\n"
1212"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
1313"Language-Team: Fòram na Gàidhlig\n"
@@ -16,8 +16,8 @@ msgstr ""
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-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121"Language: gd\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -198,15 +198,15 @@ msgstr "Cuir na toraidhean air gleus"
198198msgid "Reset"
199199msgstr "Ath-shuidhich"
200200
201−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
201+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
202202msgid "Show less"
203−msgstr ""
203+msgstr "Seall nas lugha dhiubh"
204204
205−#: qml/Dash/GenericScopeView.qml:570
205+#: qml/Dash/GenericScopeView.qml:579
206206msgid "Show all"
207−msgstr ""
207+msgstr "Seall na h-uile"
208208
209−#: qml/Dash/GenericScopeView.qml:627
209+#: qml/Dash/GenericScopeView.qml:636
210210msgctxt "Label: Hint for dash search line edit"
211211msgid "Search"
212212msgstr "Lorg"
@@ -268,7 +268,7 @@ msgstr "Dhachaigh"
268268msgid "Also installed"
269269msgstr "Air a stàladh cuideachd"
270270
271−#: qml/DisabledScreenNotice.qml:104
271+#: qml/DisabledScreenNotice.qml:109
272272msgid ""
273273"Your device is now connected to an external display. Use this screen as a "
274274"touch pad to interact with the pointer."
po/gl.po+9−9
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-01-15 14:56+0000\n"
1212"Last-Translator: Marcos Lans <Unknown>\n"
1313"Language-Team: Galician <gl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr "Afinar os resultados"
188188msgid "Reset"
189189msgstr "Restabelecer"
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193−msgstr ""
193+msgstr "Mostrar menos"
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197−msgstr ""
197+msgstr "Mostrar todo"
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "Buscar"
@@ -258,7 +258,7 @@ msgstr "Persoal"
258258msgid "Also installed"
259259msgstr "Tamén instalado"
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/gv.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-04-02 14:24+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Manx <gv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : (n == 2 ? 1 : 2);\n"
18−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -193,15 +193,15 @@ msgstr ""
193193msgid "Reset"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197197msgid "Show less"
198198msgstr ""
199199
200−#: qml/Dash/GenericScopeView.qml:570
200+#: qml/Dash/GenericScopeView.qml:579
201201msgid "Show all"
202202msgstr ""
203203
204−#: qml/Dash/GenericScopeView.qml:627
204+#: qml/Dash/GenericScopeView.qml:636
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr ""
@@ -263,7 +263,7 @@ msgstr "Balley"
263263msgid "Also installed"
264264msgstr ""
265265
266−#: qml/DisabledScreenNotice.qml:104
266+#: qml/DisabledScreenNotice.qml:109
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269269"touch pad to interact with the pointer."
po/he.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-12 08:47+0000\n"
1212"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
1313"Language-Team: Hebrew <he@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr "חיפוש"
@@ -256,7 +256,7 @@ msgstr "בית"
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/hi.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-01-15 01:49+0000\n"
1212"Last-Translator: Siddhanathan Shanmugam <Unknown>\n"
1313"Language-Team: Hindi <hi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/hr.po+74−11
@@ -7,17 +7,17 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11−"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-04 17:52+0000\n"
12+"Last-Translator: gogo <trebelnik2@gmail.com>\n"
1313"Language-Team: Croatian <hr@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=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -192,15 +192,15 @@ msgstr "Precizirajte svoje rezultate"
192192msgid "Reset"
193193msgstr "Ponovno postavi"
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197−msgstr ""
197+msgstr "Prikaži manje"
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201−msgstr ""
201+msgstr "Prikaži sve"
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr "Pretraži"
@@ -262,7 +262,7 @@ msgstr "Naslovnica"
262262msgid "Also installed"
263263msgstr "Također instalirano"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
@@ -467,6 +467,7 @@ msgstr "Povucite od lijevog ruba za otvaranje pokretača"
467467#: qml/Tutorial/TutorialRight.qml:55
468468msgid "Push your mouse against the right edge to view your open apps"
469469msgstr ""
470+"Gurnite svoj miš uz desni rub kako bi vidjeli svoje otvorene aplikacije"
470471
471472#: qml/Tutorial/TutorialRight.qml:56
472473msgid "Short or long swipe from the right edge to view your open apps"
@@ -782,9 +783,36 @@ msgstr "Vrlo slaba lozinka"
782783#~ msgid "Search"
783784#~ msgstr "Pretraživanje"
784785
786+#~ msgid "Top edge"
787+#~ msgstr "Gornji rub"
788+
789+#~ msgid "Left edge"
790+#~ msgstr "Lijevi rub"
791+
792+#~ msgid "Well done"
793+#~ msgstr "Dobro obavljeno"
794+
795+#~ msgid "Right edge"
796+#~ msgstr "Desni rub"
797+
798+#~ msgid "Close"
799+#~ msgstr "Zatvori"
800+
801+#~ msgid "Power"
802+#~ msgstr "Energija"
803+
804+#~ msgid "Power off"
805+#~ msgstr "Isključivanje"
806+
807+#~ msgid "Skip intro"
808+#~ msgstr "Preskoči uvod"
809+
785810#~ msgid "See all"
786811#~ msgstr "Prikaži sve"
787812
813+#~ msgid "Settings"
814+#~ msgstr "Postavke"
815+
788816#~ msgid "See less"
789817#~ msgstr "Prikaži manje"
790818
@@ -1013,3 +1041,38 @@ msgstr "Vrlo slaba lozinka"
10131041#~ msgid "Hover your mouse on the right edge to view your open apps"
10141042#~ msgstr ""
10151043#~ "Lebdite svojim mišem po desnom rubu kako bi vidjeli otvorene aplikacije"
1044+
1045+#~ msgid "Please re-enter"
1046+#~ msgstr "Ponovno upišite"
1047+
1048+#~ msgid "Log out"
1049+#~ msgstr "Odjava"
1050+
1051+#~ msgid "Reboot"
1052+#~ msgstr "Ponovno pokretanje"
1053+
1054+#~ msgid "Shut down"
1055+#~ msgstr "Isključivanje"
1056+
1057+#~ msgid "Try swiping from the top edge to access the indicators"
1058+#~ msgstr "Za pristup indikatorima pokušajte povući s desnog ruba"
1059+
1060+#~ msgid "Try swiping from the right edge to unlock the phone"
1061+#~ msgstr "Za otključavanje telefona pokušajte povući s desnog ruba"
1062+
1063+#~ msgid "Swipe up again to close the settings screen"
1064+#~ msgstr "Za zatvaranje zaslona postavki povucite prema gore"
1065+
1066+#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
1067+#~ msgstr ""
1068+#~ "Za otkrivanje pokretača brzog pristupa aplikacijama povucite s lijeve strane"
1069+
1070+#~ msgid ""
1071+#~ "You have now mastered the edge gestures and can start using the "
1072+#~ "phone<br><br>Tap on the screen to start"
1073+#~ msgstr ""
1074+#~ "Uspješno ste ovladali korištenjem rubova zaslona i možete započeti s "
1075+#~ "korištenjem telefona<br><br>Dotaknite zaslon kako bi započeli"
1076+
1077+#~ msgid "Store"
1078+#~ msgstr "Pohrana"
po/hu.po+9−9
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-03-24 09:19+0000\n"
1212"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
1313"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -190,15 +190,15 @@ msgstr "Találatok finomítása"
190190msgid "Reset"
191191msgstr "Alaphelyzetbe állítás"
192192
193−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
193+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
194194msgid "Show less"
195−msgstr ""
195+msgstr "Kevesebb"
196196
197−#: qml/Dash/GenericScopeView.qml:570
197+#: qml/Dash/GenericScopeView.qml:579
198198msgid "Show all"
199−msgstr ""
199+msgstr "Összes megjelenítése"
200200
201−#: qml/Dash/GenericScopeView.qml:627
201+#: qml/Dash/GenericScopeView.qml:636
202202msgctxt "Label: Hint for dash search line edit"
203203msgid "Search"
204204msgstr "Keresés"
@@ -260,7 +260,7 @@ msgstr "Kezdőlapon"
260260msgid "Also installed"
261261msgstr "Telepítve"
262262
263−#: qml/DisabledScreenNotice.qml:104
263+#: qml/DisabledScreenNotice.qml:109
264264msgid ""
265265"Your device is now connected to an external display. Use this screen as a "
266266"touch pad to interact with the pointer."
po/hy.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-10-28 06:34+0000\n"
1212"Last-Translator: Vahan Harutyunyan <Unknown>\n"
1313"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -190,15 +190,15 @@ msgstr ""
190190msgid "Reset"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
193+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
194194msgid "Show less"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:570
197+#: qml/Dash/GenericScopeView.qml:579
198198msgid "Show all"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:627
201+#: qml/Dash/GenericScopeView.qml:636
202202msgctxt "Label: Hint for dash search line edit"
203203msgid "Search"
204204msgstr ""
@@ -260,7 +260,7 @@ msgstr ""
260260msgid "Also installed"
261261msgstr ""
262262
263−#: qml/DisabledScreenNotice.qml:104
263+#: qml/DisabledScreenNotice.qml:109
264264msgid ""
265265"Your device is now connected to an external display. Use this screen as a "
266266"touch pad to interact with the pointer."
po/ia.po+9−9
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-08-25 19:31+0000\n"
1212"Last-Translator: karm <melo@carmu.com>\n"
1313"Language-Team: Interlingua <ia@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -190,15 +190,15 @@ msgstr "Poli tu resultatos"
190190msgid "Reset"
191191msgstr "Restabilir"
192192
193−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
193+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
194194msgid "Show less"
195−msgstr ""
195+msgstr "Monstrar minus"
196196
197−#: qml/Dash/GenericScopeView.qml:570
197+#: qml/Dash/GenericScopeView.qml:579
198198msgid "Show all"
199−msgstr ""
199+msgstr "Monstrar toto"
200200
201−#: qml/Dash/GenericScopeView.qml:627
201+#: qml/Dash/GenericScopeView.qml:636
202202msgctxt "Label: Hint for dash search line edit"
203203msgid "Search"
204204msgstr "Cerca"
@@ -260,7 +260,7 @@ msgstr "A domo"
260260msgid "Also installed"
261261msgstr "Ja installate"
262262
263−#: qml/DisabledScreenNotice.qml:104
263+#: qml/DisabledScreenNotice.qml:109
264264msgid ""
265265"Your device is now connected to an external display. Use this screen as a "
266266"touch pad to interact with the pointer."
po/id.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Indonesian <id@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -189,15 +189,15 @@ msgstr ""
189189msgid "Reset"
190190msgstr ""
191191
192−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
192+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
193193msgid "Show less"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:570
196+#: qml/Dash/GenericScopeView.qml:579
197197msgid "Show all"
198198msgstr ""
199199
200−#: qml/Dash/GenericScopeView.qml:627
200+#: qml/Dash/GenericScopeView.qml:636
201201msgctxt "Label: Hint for dash search line edit"
202202msgid "Search"
203203msgstr ""
@@ -259,7 +259,7 @@ msgstr "Beranda"
259259msgid "Also installed"
260260msgstr "Juga terpasang"
261261
262−#: qml/DisabledScreenNotice.qml:104
262+#: qml/DisabledScreenNotice.qml:109
263263msgid ""
264264"Your device is now connected to an external display. Use this screen as a "
265265"touch pad to interact with the pointer."
po/is.po+7−7
@@ -9,7 +9,7 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: po_unity8-is\n"
1111"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
12−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
12+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1313"PO-Revision-Date: 2014-11-13 09:32+0000\n"
1414"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
1515"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
@@ -17,8 +17,8 @@ msgstr ""
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
1919"Plural-Forms: nplurals=2; plural=n != 1;\n"
20−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
21−"X-Generator: Launchpad (build 17995)\n"
20+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
21+"X-Generator: Launchpad (build 18053)\n"
2222"Language: is\n"
2323
2424#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -195,15 +195,15 @@ msgstr ""
195195msgid "Reset"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199199msgid "Show less"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:570
202+#: qml/Dash/GenericScopeView.qml:579
203203msgid "Show all"
204204msgstr ""
205205
206−#: qml/Dash/GenericScopeView.qml:627
206+#: qml/Dash/GenericScopeView.qml:636
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr ""
@@ -265,7 +265,7 @@ msgstr ""
265265msgid "Also installed"
266266msgstr ""
267267
268−#: qml/DisabledScreenNotice.qml:104
268+#: qml/DisabledScreenNotice.qml:109
269269msgid ""
270270"Your device is now connected to an external display. Use this screen as a "
271271"touch pad to interact with the pointer."
po/it.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-04-03 16:08+0000\n"
1212"Last-Translator: Milo Casagrande <milo.casagrande@gmail.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Affina la ricerca"
194194msgid "Reset"
195195msgstr "Azzera"
196196
197−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
197+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
198198msgid "Show less"
199−msgstr ""
199+msgstr "Mostra di meno"
200200
201−#: qml/Dash/GenericScopeView.qml:570
201+#: qml/Dash/GenericScopeView.qml:579
202202msgid "Show all"
203−msgstr ""
203+msgstr "Mostra tutto"
204204
205−#: qml/Dash/GenericScopeView.qml:627
205+#: qml/Dash/GenericScopeView.qml:636
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "Cerca"
@@ -264,7 +264,7 @@ msgstr "Home"
264264msgid "Also installed"
265265msgstr "Installato anche"
266266
267−#: qml/DisabledScreenNotice.qml:104
267+#: qml/DisabledScreenNotice.qml:109
268268msgid ""
269269"Your device is now connected to an external display. Use this screen as a "
270270"touch pad to interact with the pointer."
@@ -309,7 +309,7 @@ msgid ""
309309"If passcode is entered incorrectly, your phone will conduct a factory reset "
310310"and all personal data will be deleted."
311311msgstr ""
312−"Se verrà inserito una passcode errato, il telefono eseguirà un ripristino "
312+"Se verrà inserito un passcode errato, il telefono eseguirà un ripristino "
313313"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
314314
315315#: qml/Greeter/NarrowView.qml:116
@@ -465,7 +465,7 @@ msgstr "Scorrere dal bordo sinistro per aprire il launcher"
465465
466466#: qml/Tutorial/TutorialRight.qml:55
467467msgid "Push your mouse against the right edge to view your open apps"
468−msgstr ""
468+msgstr "Spostare il mouse sul bordo destro per vedere le app aperte"
469469
470470#: qml/Tutorial/TutorialRight.qml:56
471471msgid "Short or long swipe from the right edge to view your open apps"
po/ja.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-10-05 10:05+0000\n"
1212"Last-Translator: Kentaro Kazuhama <Unknown>\n"
1313"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -185,15 +185,15 @@ msgstr ""
185185msgid "Reset"
186186msgstr ""
187187
188−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
188+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
189189msgid "Show less"
190190msgstr ""
191191
192−#: qml/Dash/GenericScopeView.qml:570
192+#: qml/Dash/GenericScopeView.qml:579
193193msgid "Show all"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:627
196+#: qml/Dash/GenericScopeView.qml:636
197197msgctxt "Label: Hint for dash search line edit"
198198msgid "Search"
199199msgstr ""
@@ -255,7 +255,7 @@ msgstr ""
255255msgid "Also installed"
256256msgstr ""
257257
258−#: qml/DisabledScreenNotice.qml:104
258+#: qml/DisabledScreenNotice.qml:109
259259msgid ""
260260"Your device is now connected to an external display. Use this screen as a "
261261"touch pad to interact with the pointer."
po/km.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-08-20 02:48+0000\n"
1212"Last-Translator: Sophea Sok <sksophea@gmail.com>\n"
1313"Language-Team: Khmer <km@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr ""
188188msgid "Reset"
189189msgstr "កំណត់​ឡើង​វិញ​"
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "ស្វែងរក"
@@ -258,7 +258,7 @@ msgstr "ផ្ទះ"
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/kn.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-06-27 05:43+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/ko.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-08-19 13:02+0000\n"
1212"Last-Translator: MinSik CHO <Unknown>\n"
1313"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -185,15 +185,15 @@ msgstr ""
185185msgid "Reset"
186186msgstr ""
187187
188−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
188+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
189189msgid "Show less"
190190msgstr ""
191191
192−#: qml/Dash/GenericScopeView.qml:570
192+#: qml/Dash/GenericScopeView.qml:579
193193msgid "Show all"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:627
196+#: qml/Dash/GenericScopeView.qml:636
197197msgctxt "Label: Hint for dash search line edit"
198198msgid "Search"
199199msgstr "검색"
@@ -255,7 +255,7 @@ msgstr "홈"
255255msgid "Also installed"
256256msgstr "설치함"
257257
258−#: qml/DisabledScreenNotice.qml:104
258+#: qml/DisabledScreenNotice.qml:109
259259msgid ""
260260"Your device is now connected to an external display. Use this screen as a "
261261"touch pad to interact with the pointer."
po/ku.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-09-10 13:14+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Kurdish <ku@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr ""
188188msgid "Reset"
189189msgstr ""
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr ""
@@ -258,7 +258,7 @@ msgstr ""
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/ky.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-06-27 06:17+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/lo.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-10-02 10:00+0000\n"
1212"Last-Translator: Anousak <anousak@gmail.com>\n"
1313"Language-Team: Lao <lo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/lt.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-05-19 17:15+0000\n"
1212"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
1313"Language-Team: Lithuanian <lt@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"(n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -187,15 +187,15 @@ msgstr ""
187187msgid "Reset"
188188msgstr ""
189189
190−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
190+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
191191msgid "Show less"
192192msgstr ""
193193
194−#: qml/Dash/GenericScopeView.qml:570
194+#: qml/Dash/GenericScopeView.qml:579
195195msgid "Show all"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:627
198+#: qml/Dash/GenericScopeView.qml:636
199199msgctxt "Label: Hint for dash search line edit"
200200msgid "Search"
201201msgstr ""
@@ -257,7 +257,7 @@ msgstr ""
257257msgid "Also installed"
258258msgstr ""
259259
260−#: qml/DisabledScreenNotice.qml:104
260+#: qml/DisabledScreenNotice.qml:109
261261msgid ""
262262"Your device is now connected to an external display. Use this screen as a "
263263"touch pad to interact with the pointer."
po/lv.po+7−7
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1212"PO-Revision-Date: 2015-11-22 19:13+0000\n"
1313"Last-Translator: Klavs Anson <anson.klavs@gmail.com>\n"
1414"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121"Language: lv\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -191,15 +191,15 @@ msgstr ""
191191msgid "Reset"
192192msgstr ""
193193
194−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
194+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
195195msgid "Show less"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:570
198+#: qml/Dash/GenericScopeView.qml:579
199199msgid "Show all"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:627
202+#: qml/Dash/GenericScopeView.qml:636
203203msgctxt "Label: Hint for dash search line edit"
204204msgid "Search"
205205msgstr "Meklēt"
@@ -261,7 +261,7 @@ msgstr "Mājas"
261261msgid "Also installed"
262262msgstr "Arī instalēja"
263263
264−#: qml/DisabledScreenNotice.qml:104
264+#: qml/DisabledScreenNotice.qml:109
265265msgid ""
266266"Your device is now connected to an external display. Use this screen as a "
267267"touch pad to interact with the pointer."
po/ml.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-11-23 11:44+0000\n"
1212"Last-Translator: ST Alfas <Unknown>\n"
1313"Language-Team: Malayalam <ml@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/mr.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-01-14 19:54+0000\n"
1212"Last-Translator: Rohan Deshmukh <Unknown>\n"
1313"Language-Team: Marathi <mr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr "शोध"
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/ms.po+97−76
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11−"PO-Revision-Date: 2014-01-17 09:05+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-24 01:36+0000\n"
1212"Last-Translator: abuyop <Unknown>\n"
1313"Language-Team: Malay <ms@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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -125,7 +125,7 @@ msgstr "Kembali ke Panggilan"
125125
126126#: qml/Components/Lockscreen.qml:231
127127msgid "Emergency Call"
128−msgstr "panggilan Kecemasan"
128+msgstr "Panggilan Kecemasan"
129129
130130#: qml/Components/Lockscreen.qml:263
131131msgid "OK"
@@ -139,7 +139,7 @@ msgstr "Apl mungkin mempunyai data tidak disimpan:"
139139msgctxt ""
140140"Re-dock means connect the device again to an external screen/mouse/keyboard"
141141msgid "Re-dock, save your work and close these apps to continue."
142−msgstr ""
142+msgstr "Labuh-semula, simpan kerja anda dan tutup apl ini untuk teruskan."
143143
144144#: qml/Components/ModeSwitchWarningDialog.qml:63
145145msgid "Or force close now (unsaved data will be lost)."
@@ -182,32 +182,32 @@ msgstr "Tambah ke Kegemaran"
182182
183183#: qml/Dash/FiltersPopover.qml:60
184184msgid "Refine your results"
185−msgstr ""
185+msgstr "Takrif keputusan anda"
186186
187187#: qml/Dash/FiltersPopover.qml:69
188188msgid "Reset"
189−msgstr ""
189+msgstr "Tetap Semula"
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193−msgstr ""
193+msgstr "Tunjuk sedikit"
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197−msgstr ""
197+msgstr "Tunjuk semua"
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "Gelintar"
203203
204204#: qml/Dash/PageHeaderExtraPanel.qml:55
205205msgid "Recent Searches"
206−msgstr ""
206+msgstr "Gelintar Baru-baru Ini"
207207
208208#: qml/Dash/PageHeaderExtraPanel.qml:66
209209msgid "Clear All"
210−msgstr ""
210+msgstr "Kosongkan Semua"
211211
212212#: qml/Dash/Previews/PreviewActionCombo.qml:35
213213msgid "More..."
@@ -258,11 +258,13 @@ msgstr "Rumah"
258258msgid "Also installed"
259259msgstr "Juga dipasang"
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
265265msgstr ""
266+"Peranti anda kini bersambung dengan paparan luar. Guna skrin ini sebagai pad "
267+"sentuh untuk berinteraksi dengan penuding."
266268
267269#: qml/Greeter/CoverPage.qml:118
268270msgid "Unlock"
@@ -392,7 +394,7 @@ msgstr "Memuat turun"
392394
393395#: qml/Panel/Indicators/MenuItemFactory.qml:917
394396msgid "Paused, tap to resume"
395−msgstr "Dijeda, ketuk untuk sambung semula"
397+msgstr "Dijeda, ketik untuk sambung semula"
396398
397399#: qml/Panel/Indicators/MenuItemFactory.qml:919
398400msgid "Canceled"
@@ -404,7 +406,7 @@ msgstr "Selesai"
404406
405407#: qml/Panel/Indicators/MenuItemFactory.qml:923
406408msgid "Failed, tap to retry"
407−msgstr "Gagal, ketuk untuk cuba lagi"
409+msgstr "Gagal, ketik untuk cuba lagi"
408410
409411#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
410412#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
@@ -425,50 +427,56 @@ msgstr "Panggilan semula"
425427#: qml/Stages/SideStage.qml:76
426428msgid "Drag using 3 fingers any application from one window to the other"
427429msgstr ""
430+"Seret menggunakan 3 jari pada mana-mana aplik dari satu tetingkap ke "
431+"tetingkap yang lain"
428432
429433#: qml/Tutorial/TutorialBottom.qml:78
430434msgid "Swipe up to add a contact"
431−msgstr ""
435+msgstr "Leret ke atas untuk menambah kenalan"
432436
433437#: qml/Tutorial/TutorialBottom.qml:80
434438msgid "Swipe up for favorite calculations"
435−msgstr ""
439+msgstr "Leret ke atas untuk pengiraan kegemaran"
436440
437441#: qml/Tutorial/TutorialBottom.qml:82
438442msgid "Swipe up for recent calls"
439−msgstr ""
443+msgstr "Leret ke atas untuk panggilan baru-baru ini"
440444
441445#: qml/Tutorial/TutorialBottom.qml:84
442446msgid "Swipe up to create a message"
443−msgstr ""
447+msgstr "Leret ke atas untuk cipta satu mesej"
444448
445449#: qml/Tutorial/TutorialBottom.qml:85
446450msgid "Swipe up to manage the app"
447−msgstr ""
451+msgstr "Leret ke atas untuk mengurus apl"
448452
449453#: qml/Tutorial/TutorialLeftLong.qml:47
450454msgid "Long swipe from the left edge to open the Today scope"
451−msgstr ""
455+msgstr "Leret panjang dari pinggir kiri untuk membuka skop Hari Ini"
452456
453457#: qml/Tutorial/TutorialLeft.qml:47
454458msgid "Swipe from the left edge to open the launcher"
455−msgstr ""
459+msgstr "Leret dari pinggir kiri untuk membuka pelancar"
456460
457461#: qml/Tutorial/TutorialRight.qml:55
458462msgid "Push your mouse against the right edge to view your open apps"
459463msgstr ""
464+"Tolak penuding tetikus anda ke pinggir kanan untuk melihat apl yang telah "
465+"dibuka"
460466
461467#: qml/Tutorial/TutorialRight.qml:56
462468msgid "Short or long swipe from the right edge to view your open apps"
463469msgstr ""
470+"Leret pendek atau panjang dari pinggir kanan untuk melihat apl yang telah "
471+"dibuka"
464472
465473#: qml/Tutorial/TutorialTop.qml:53
466474msgid "Swipe from the top right edge to open the notification bar"
467−msgstr ""
475+msgstr "Leret dari pinggir kanan atas untuk membuka palang pemberitahuan"
468476
469477#: qml/Tutorial/TutorialTop.qml:54
470478msgid "Swipe from the top edge to open the notification bar"
471−msgstr ""
479+msgstr "Leret dari pinggir atas untuk membuka palang pemberitahuan"
472480
473481#: qml/Wizard/Page.qml:54
474482msgctxt "Button: Go back one page in the Wizard"
@@ -477,7 +485,7 @@ msgstr "Kembali"
477485
478486#: qml/Wizard/Pages/10-welcome.qml:27
479487msgid "Language"
480−msgstr ""
488+msgstr "Bahasa"
481489
482490#: qml/Wizard/Pages/10-welcome.qml:156 qml/Wizard/Pages/30-wifi.qml:206
483491#: qml/Wizard/Pages/40-location.qml:271 qml/Wizard/Pages/50-timezone.qml:267
@@ -486,7 +494,7 @@ msgstr ""
486494#: qml/Wizard/Pages/passcode-desktop.qml:124
487495#: qml/Wizard/Pages/password-set.qml:141
488496msgid "Next"
489−msgstr ""
497+msgstr "Berikutnya"
490498
491499#: qml/Wizard/Pages/30-wifi.qml:29
492500msgid "Connect to Wi‑Fi"
@@ -494,15 +502,15 @@ msgstr "Sambung ke Wi-Fi"
494502
495503#: qml/Wizard/Pages/30-wifi.qml:130
496504msgid "Connected"
497−msgstr ""
505+msgstr "Bersambung"
498506
499507#: qml/Wizard/Pages/30-wifi.qml:163
500508msgid "Available Wi-Fi networks"
501−msgstr ""
509+msgstr "Rangkaian Wi-Fi tersedia"
502510
503511#: qml/Wizard/Pages/30-wifi.qml:164
504512msgid "No available Wi-Fi networks"
505−msgstr ""
513+msgstr "Tiada rangkaian Wi-Fi tersedia"
506514
507515#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
508516#: qml/Wizard/Pages/sim.qml:101
@@ -511,98 +519,101 @@ msgstr "Langkau"
511519
512520#: qml/Wizard/Pages/40-location.qml:27
513521msgid "Location Services"
514−msgstr ""
522+msgstr "Perkhidmatan Lokasi"
515523
516524#: qml/Wizard/Pages/40-location.qml:83
517525msgid ""
518526"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
519527"(recommended)"
520528msgstr ""
529+"Guna GPS, hotspot Wi-Fi dan rangkaian mudah alih secara awanama untuk "
530+"mengesan lokasi (disarankan)"
521531
522532#: qml/Wizard/Pages/40-location.qml:105
523533#, qt-format
524534msgid "By selecting this option you agree to the Nokia HERE %1."
525−msgstr ""
535+msgstr "Dengan memilih pilihan ini anda bersetuju dengan Nokia HERE %1."
526536
527537#: qml/Wizard/Pages/40-location.qml:106
528538msgctxt "part of: Nokia HERE terms and conditions"
529539msgid "terms and conditions"
530−msgstr ""
540+msgstr "terma dan syarat"
531541
532542#: qml/Wizard/Pages/40-location.qml:160
533543msgid "GPS only"
534−msgstr ""
544+msgstr "GPS sahaja"
535545
536546#: qml/Wizard/Pages/40-location.qml:214
537547msgid "Don't use my location"
538−msgstr ""
548+msgstr "Jangan guna lokasi saya"
539549
540550#: qml/Wizard/Pages/40-location.qml:260
541551msgid "You can change it later in System Settings."
542−msgstr ""
552+msgstr "Anda boleh mengubahnya kemudian di dalam Tetapan Sistem."
543553
544554#: qml/Wizard/Pages/50-timezone.qml:29
545555msgid "Time Zone"
546−msgstr ""
556+msgstr "Zon Waktu"
547557
548558#: qml/Wizard/Pages/50-timezone.qml:178
549559msgid "Enter your city"
550−msgstr ""
560+msgstr "Masukkan bandar anda"
551561
552562#: qml/Wizard/Pages/60-account.qml:24
553563msgid "Personalize Your Device"
554−msgstr ""
564+msgstr "Peribadikan Peranti Anda"
555565
556566#: qml/Wizard/Pages/60-account.qml:48
557567msgid "Preferred Name"
558−msgstr ""
568+msgstr "Nama Digemari"
559569
560570#: qml/Wizard/Pages/70-passwd-type.qml:39
561571msgid "Lock Screen"
562−msgstr ""
572+msgstr "Skrin Kunci"
563573
564574#: qml/Wizard/Pages/70-passwd-type.qml:101
565575msgctxt "Label: Type of security method"
566576msgid "Create new password"
567−msgstr ""
577+msgstr "Cipta kata laluan baharu"
568578
569579#: qml/Wizard/Pages/70-passwd-type.qml:103
570580msgctxt "Label: Type of security method"
571581msgid "Create passcode (numbers only)"
572−msgstr ""
582+msgstr "Cipta kod laluan (nombor sahaja)"
573583
574584#: qml/Wizard/Pages/70-passwd-type.qml:105
575585msgctxt "Label: Type of security method"
576586msgid "No lock code"
577−msgstr ""
587+msgstr "Tiada kod kunci"
578588
579589#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
580590msgid "Privacy Policy"
581−msgstr ""
591+msgstr "Dasar Kerahsiaan"
582592
583593#: qml/Wizard/Pages/75-report-check.qml:26
584594msgid "Help Us Improve"
585−msgstr ""
595+msgstr "Bantu Kami"
586596
587597#: qml/Wizard/Pages/75-report-check.qml:59
588598msgid "Improve system performance by sending us crashes and error reports."
589599msgstr ""
600+"Tambah baik prestasi sistem dengan menghantar laporan kerosakan dan ralat."
590601
591602#: qml/Wizard/Pages/75-report-check.qml:60
592603msgid "Privacy policy"
593−msgstr ""
604+msgstr "Dasar kerahsiaan"
594605
595606#: qml/Wizard/Pages/80-finished.qml:89
596607msgid "Welcome to Ubuntu"
597−msgstr ""
608+msgstr "Selamat datang ke Ubuntu"
598609
599610#: qml/Wizard/Pages/80-finished.qml:104
600611msgid "You are ready to use your device now"
601−msgstr ""
612+msgstr "Anda boleh gunakan peranti sekarang"
602613
603614#: qml/Wizard/Pages/80-finished.qml:124
604615msgid "Get Started"
605−msgstr ""
616+msgstr "Membiasakan Diri"
606617
607618#: qml/Wizard/Pages/here-terms.qml:25
608619msgid "Terms & Conditions"
@@ -611,6 +622,8 @@ msgstr "Terma & Syarat"
611622#: qml/Wizard/Pages/here-terms.qml:69
612623msgid "Your device uses positioning technologies provided by HERE."
613624msgstr ""
625+"Peranti anda menggunakan teknologi menentukan lokasi yang disediakan oleh "
626+"HERE."
614627
615628#: qml/Wizard/Pages/here-terms.qml:81
616629msgid ""
@@ -618,21 +631,27 @@ msgid ""
618631"collects information about nearby cell towers and Wi-Fi hotspots around your "
619632"current location whenever your position is being found."
620633msgstr ""
634+"Untuk menyediakan perkhidmatan penentuan lokasi dan menambahbaik kualiti, "
635+"HERE mengutip maklumat berkenaan menara telekomunikasi berhampiran dan "
636+"hotspot Wi-Fi disekitar anda bilamana kedudukan anda ditemui."
621637
622638#: qml/Wizard/Pages/here-terms.qml:93
623639msgid ""
624640"The information collected is used to analyze the service and to improve the "
625641"use of service, but not to identify you personally."
626642msgstr ""
643+"Maklumat tersebut digunakan untuk menganalisis perkhidmatan dan menambahbaik "
644+"penggunaan perkhidmatan, walaubagaimanapun tidak mengenalpasti anda secara "
645+"peribadi."
627646
628647#: qml/Wizard/Pages/here-terms.qml:106
629648#, qt-format
630649msgid "By continuing, you agree to the HERE platform %1 and %2."
631−msgstr ""
650+msgstr "Jika diteruskan, anda menyetujui HERE platform %1 dan %2."
632651
633652#: qml/Wizard/Pages/here-terms.qml:107
634653msgid "Service Terms"
635−msgstr ""
654+msgstr "Terma Perkhidmatan"
636655
637656#: qml/Wizard/Pages/passcode-confirm.qml:43
638657#: qml/Wizard/Pages/passcode-desktop.qml:80
@@ -641,69 +660,70 @@ msgstr "Sahkan kod laluan"
641660
642661#: qml/Wizard/Pages/passcode-confirm.qml:45
643662msgid "Incorrect passcode."
644−msgstr ""
663+msgstr "Kod laluan tidak betul."
645664
646665#: qml/Wizard/Pages/passcode-confirm.qml:45
647666msgctxt "Enter the passcode again"
648667msgid "Please re-enter."
649−msgstr ""
668+msgstr "Sila masukkan sekali lagi."
650669
651670#: qml/Wizard/Pages/passcode-desktop.qml:30
652671msgid "Lock Screen Passcode"
653−msgstr ""
672+msgstr "Kod Laluan Skrin Kunci"
654673
655674#: qml/Wizard/Pages/passcode-desktop.qml:56
656675msgid "Enter 4 numbers to setup your passcode"
657−msgstr ""
676+msgstr "Masukkan 4 nombor untuk persediaan kod laluan anda"
658677
659678#: qml/Wizard/Pages/passcode-desktop.qml:65
660679#: qml/Wizard/Pages/passcode-set.qml:54
661680msgid "Choose passcode"
662−msgstr ""
681+msgstr "Pilih kod laluan"
663682
664683#: qml/Wizard/Pages/passcode-desktop.qml:105
665684msgid "Passcode too short"
666−msgstr ""
685+msgstr "Kod laluan terlalu pendek"
667686
668687#: qml/Wizard/Pages/passcode-desktop.qml:107
669688msgid "Passcodes match"
670−msgstr ""
689+msgstr "Kod laluan sepadan"
671690
672691#: qml/Wizard/Pages/passcode-desktop.qml:109
673692msgid "Passcodes do not match"
674−msgstr ""
693+msgstr "Kod laluan tidak sepadan"
675694
676695#: qml/Wizard/Pages/passcode-set.qml:62
677696msgid "Passcode must be 4 characters long"
678−msgstr ""
697+msgstr "Kod laluan mestilah 4 aksara panjang"
679698
680699#: qml/Wizard/Pages/password-set.qml:30
681700msgid "Lock Screen Password"
682−msgstr ""
701+msgstr "Kata Laluan Skrin Kunci"
683702
684703#: qml/Wizard/Pages/password-set.qml:61
685704msgid "Enter at least 8 characters"
686−msgstr ""
705+msgstr "Masukkan sekurang-kurangnya 8 aksara"
687706
688707#: qml/Wizard/Pages/password-set.qml:73
689708msgid "Choose password"
690−msgstr ""
709+msgstr "Pilih kata laluan"
691710
692711#: qml/Wizard/Pages/password-set.qml:103
693712msgid "Confirm password"
694−msgstr ""
713+msgstr "Sahkan kata laluan"
695714
696715#: qml/Wizard/Pages/sim.qml:27
697716msgid "No SIM card installed"
698−msgstr ""
717+msgstr "Tiada kad SIM terpasang"
699718
700719#: qml/Wizard/Pages/sim.qml:54
701720msgid "SIM card added"
702−msgstr ""
721+msgstr "Kad SIM ditambah"
703722
704723#: qml/Wizard/Pages/sim.qml:55
705724msgid "You must restart the device to access the mobile network."
706725msgstr ""
726+"Anda mesti mulakan semula peranti supaya dapat mencapai rangkaian mudah alih."
707727
708728#: qml/Wizard/Pages/sim.qml:59
709729msgid "Restart"
@@ -712,34 +732,35 @@ msgstr "Mula Semula"
712732#: qml/Wizard/Pages/sim.qml:78
713733msgid "You won’t be able to make calls or use text messaging without a SIM."
714734msgstr ""
735+"Anda tidak dapat membuat panggilan atau guna pemesejan teks tanpa SIM."
715736
716737#: qml/Wizard/Pages/sim.qml:90
717738msgid "To proceed with no SIM tap Skip."
718−msgstr ""
739+msgstr "Untuk teruskan tanpa SIM ketik Langkau."
719740
720741#: qml/Wizard/PasswordMeter.qml:87
721742msgid "Passwords match"
722−msgstr ""
743+msgstr "Kata laluan sepadan"
723744
724745#: qml/Wizard/PasswordMeter.qml:89
725746msgid "Passwords do not match"
726−msgstr ""
747+msgstr "Kata laluan tidak sepadan"
727748
728749#: qml/Wizard/PasswordMeter.qml:93
729750msgid "Strong password"
730−msgstr ""
751+msgstr "Kata laluan kuat"
731752
732753#: qml/Wizard/PasswordMeter.qml:95
733754msgid "Fair password"
734−msgstr ""
755+msgstr "Kata laluan sederhana"
735756
736757#: qml/Wizard/PasswordMeter.qml:97
737758msgid "Weak password"
738−msgstr ""
759+msgstr "Kata laluan lemah"
739760
740761#: qml/Wizard/PasswordMeter.qml:99
741762msgid "Very weak password"
742−msgstr ""
763+msgstr "Kata laluan sangat lemah"
743764
744765#~ msgid "Top edge"
745766#~ msgstr "Pinggir atas"
po/my.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-12-12 11:12+0000\n"
1212"Last-Translator: Pyae Sone <Unknown>\n"
1313"Language-Team: Burmese <my@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr "ရှာဖွေရန်"
@@ -256,7 +256,7 @@ msgstr "ပင်မ"
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/nb.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-03-29 08:56+0000\n"
1212"Last-Translator: Åka Sikrom <Unknown>\n"
1313"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -192,15 +192,15 @@ msgstr "Filtrer søketreff"
192192msgid "Reset"
193193msgstr "Tilbakestill"
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr "Søk"
@@ -262,7 +262,7 @@ msgstr "Hjem"
262262msgid "Also installed"
263263msgstr "Også installert"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
po/ne.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-12-06 15:11+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Nepali <ne@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/nl.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-07 07:14+0000\n"
1212"Last-Translator: Hannie Dumoleyn <Unknown>\n"
1313"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -195,15 +195,15 @@ msgstr "Resultaten verfijnen"
195195msgid "Reset"
196196msgstr "Herstellen"
197197
198−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199199msgid "Show less"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:570
202+#: qml/Dash/GenericScopeView.qml:579
203203msgid "Show all"
204204msgstr ""
205205
206−#: qml/Dash/GenericScopeView.qml:627
206+#: qml/Dash/GenericScopeView.qml:636
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr "Zoeken"
@@ -265,7 +265,7 @@ msgstr "Thuis"
265265msgid "Also installed"
266266msgstr "Ook geïnstalleerd"
267267
268−#: qml/DisabledScreenNotice.qml:104
268+#: qml/DisabledScreenNotice.qml:109
269269msgid ""
270270"Your device is now connected to an external display. Use this screen as a "
271271"touch pad to interact with the pointer."
po/nn.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-05-12 11:32+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/oc.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-02-05 20:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Occitan (post 1500) <oc@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -195,15 +195,15 @@ msgstr "Afinar vòstres resultats"
195195msgid "Reset"
196196msgstr "Reïnicializar"
197197
198−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199199msgid "Show less"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:570
202+#: qml/Dash/GenericScopeView.qml:579
203203msgid "Show all"
204204msgstr ""
205205
206−#: qml/Dash/GenericScopeView.qml:627
206+#: qml/Dash/GenericScopeView.qml:636
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr "Recercar"
@@ -265,7 +265,7 @@ msgstr "Acuèlh"
265265msgid "Also installed"
266266msgstr "Tanben installadas"
267267
268−#: qml/DisabledScreenNotice.qml:104
268+#: qml/DisabledScreenNotice.qml:109
269269msgid ""
270270"Your device is now connected to an external display. Use this screen as a "
271271"touch pad to interact with the pointer."
po/or.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-03-21 05:28+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Oriya <or@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/pa.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-04-24 04:29+0000\n"
1212"Last-Translator: Gursharnjit_Singh <ubuntuser13@gmail.com>\n"
1313"Language-Team: Punjabi <pa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr ""
188188msgid "Reset"
189189msgstr ""
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "ਖੋਜ"
@@ -258,7 +258,7 @@ msgstr "ਘਰ"
258258msgid "Also installed"
259259msgstr "ਨਾਲ ਇੰਸਟਾਲ ਹੋਇਆ"
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/pl.po+12−12
@@ -7,17 +7,17 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11−"PO-Revision-Date: 2016-03-28 20:45+0000\n"
12−"Last-Translator: Krzysztof Tataradziński <Unknown>\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-05 13:36+0000\n"
12+"Last-Translator: dawidd6 <dawidd0811@gmail.com>\n"
1313"Language-Team: Polish <pl@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=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1818"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -189,15 +189,15 @@ msgstr "Przefiltruj wyniki"
189189msgid "Reset"
190190msgstr "Reset"
191191
192−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
192+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
193193msgid "Show less"
194−msgstr ""
194+msgstr "Pokaż mniej"
195195
196−#: qml/Dash/GenericScopeView.qml:570
196+#: qml/Dash/GenericScopeView.qml:579
197197msgid "Show all"
198−msgstr ""
198+msgstr "Pokaż wszystko"
199199
200−#: qml/Dash/GenericScopeView.qml:627
200+#: qml/Dash/GenericScopeView.qml:636
201201msgctxt "Label: Hint for dash search line edit"
202202msgid "Search"
203203msgstr "Szukaj"
@@ -259,7 +259,7 @@ msgstr "Pulpit"
259259msgid "Also installed"
260260msgstr "Również zainstalowane"
261261
262−#: qml/DisabledScreenNotice.qml:104
262+#: qml/DisabledScreenNotice.qml:109
263263msgid ""
264264"Your device is now connected to an external display. Use this screen as a "
265265"touch pad to interact with the pointer."
@@ -463,7 +463,7 @@ msgstr "Przeciągnięcie od lewej krawędzi otwiera pasek uruchamiania"
463463
464464#: qml/Tutorial/TutorialRight.qml:55
465465msgid "Push your mouse against the right edge to view your open apps"
466−msgstr ""
466+msgstr "Poprowadź kursor poza prawą krawędź, aby wyświetlić otwarte programy"
467467
468468#: qml/Tutorial/TutorialRight.qml:56
469469msgid "Short or long swipe from the right edge to view your open apps"
po/pt.po+12−12
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-02-18 01:11+0000\n"
1212"Last-Translator: Ivo Xavier <ivoxavier.8@gmail.com>\n"
1313"Language-Team: Portuguese <pt@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -193,15 +193,15 @@ msgstr "Redefina os seus resultados"
193193msgid "Reset"
194194msgstr "Repor"
195195
196−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197197msgid "Show less"
198−msgstr ""
198+msgstr "Mostrar menos"
199199
200−#: qml/Dash/GenericScopeView.qml:570
200+#: qml/Dash/GenericScopeView.qml:579
201201msgid "Show all"
202−msgstr ""
202+msgstr "Mostrar tudo"
203203
204−#: qml/Dash/GenericScopeView.qml:627
204+#: qml/Dash/GenericScopeView.qml:636
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr "Procurar"
@@ -263,7 +263,7 @@ msgstr "Página inicial"
263263msgid "Also installed"
264264msgstr "Também instalado"
265265
266−#: qml/DisabledScreenNotice.qml:104
266+#: qml/DisabledScreenNotice.qml:109
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269269"touch pad to interact with the pointer."
@@ -300,8 +300,8 @@ msgid ""
300300"If passphrase is entered incorrectly, your phone will conduct a factory "
301301"reset and all personal data will be deleted."
302302msgstr ""
303−"Se a palavra-passe for introduzida incorretamente, o seu telemóvel apagará "
304−"toda a sua informação pessoal."
303+"Se a palavra-passe for introduzida incorretamente, a sua informação pessoal "
304+"será eliminada."
305305
306306#: qml/Greeter/NarrowView.qml:59
307307msgid ""
@@ -309,7 +309,7 @@ msgid ""
309309"and all personal data will be deleted."
310310msgstr ""
311311"Se o código for introduzido incorretamente, todos os dados pessoais serão "
312−"apagados."
312+"eliminados"
313313
314314#: qml/Greeter/NarrowView.qml:116
315315#, qt-format
po/pt_BR.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-08-05 04:40+0000\n"
1212"Last-Translator: Julio Alexander Sieg <julio.sieg@gmail.com>\n"
1313"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -190,15 +190,15 @@ msgstr ""
190190msgid "Reset"
191191msgstr "Redefinir"
192192
193−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
193+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
194194msgid "Show less"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:570
197+#: qml/Dash/GenericScopeView.qml:579
198198msgid "Show all"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:627
201+#: qml/Dash/GenericScopeView.qml:636
202202msgctxt "Label: Hint for dash search line edit"
203203msgid "Search"
204204msgstr "Pesquisar"
@@ -260,7 +260,7 @@ msgstr "Início"
260260msgid "Also installed"
261261msgstr "Instalado também"
262262
263−#: qml/DisabledScreenNotice.qml:104
263+#: qml/DisabledScreenNotice.qml:109
264264msgid ""
265265"Your device is now connected to an external display. Use this screen as a "
266266"touch pad to interact with the pointer."
po/ro.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-06 17:47+0000\n"
1212"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n"
1313"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
1818"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -193,15 +193,15 @@ msgstr ""
193193msgid "Reset"
194194msgstr ""
195195
196−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197197msgid "Show less"
198198msgstr ""
199199
200−#: qml/Dash/GenericScopeView.qml:570
200+#: qml/Dash/GenericScopeView.qml:579
201201msgid "Show all"
202202msgstr ""
203203
204−#: qml/Dash/GenericScopeView.qml:627
204+#: qml/Dash/GenericScopeView.qml:636
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr "Căutare"
@@ -263,7 +263,7 @@ msgstr "Acasă"
263263msgid "Also installed"
264264msgstr "Alte programe instalate"
265265
266−#: qml/DisabledScreenNotice.qml:104
266+#: qml/DisabledScreenNotice.qml:109
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269269"touch pad to interact with the pointer."
po/ru.po+33−29
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-06 05:33+0000\n"
1212"Last-Translator: ☠Jay ZDLin☠ <Unknown>\n"
1313"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -186,21 +186,21 @@ msgstr "Добавить в избранное"
186186
187187#: qml/Dash/FiltersPopover.qml:60
188188msgid "Refine your results"
189−msgstr ""
189+msgstr "Уточнить результаты"
190190
191191#: qml/Dash/FiltersPopover.qml:69
192192msgid "Reset"
193193msgstr "Сбросить"
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr "Поиск"
@@ -262,7 +262,7 @@ msgstr "Домой"
262262msgid "Also installed"
263263msgstr "Также установлено"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
@@ -507,11 +507,11 @@ msgstr "Подключено"
507507
508508#: qml/Wizard/Pages/30-wifi.qml:163
509509msgid "Available Wi-Fi networks"
510−msgstr ""
510+msgstr "Доступные Wi-Fi сети"
511511
512512#: qml/Wizard/Pages/30-wifi.qml:164
513513msgid "No available Wi-Fi networks"
514−msgstr ""
514+msgstr "Нет доступных Wi-Fi сетей"
515515
516516#: qml/Wizard/Pages/30-wifi.qml:206 qml/Wizard/Pages/60-account.qml:65
517517#: qml/Wizard/Pages/sim.qml:101
@@ -520,13 +520,15 @@ msgstr "Пропустить"
520520
521521#: qml/Wizard/Pages/40-location.qml:27
522522msgid "Location Services"
523−msgstr ""
523+msgstr "Службы геолокации"
524524
525525#: qml/Wizard/Pages/40-location.qml:83
526526msgid ""
527527"Use GPS, Wi-Fi hotspots and mobile network anonymously to detect location "
528528"(recommended)"
529529msgstr ""
530+"Использовать анонимно GPS, точки доступа Wi-Fi и мобильную сеть для "
531+"определения местоположения (рекомендуется)"
530532
531533#: qml/Wizard/Pages/40-location.qml:105
532534#, qt-format
@@ -536,7 +538,7 @@ msgstr ""
536538#: qml/Wizard/Pages/40-location.qml:106
537539msgctxt "part of: Nokia HERE terms and conditions"
538540msgid "terms and conditions"
539−msgstr ""
541+msgstr "условия и соглашения"
540542
541543#: qml/Wizard/Pages/40-location.qml:160
542544msgid "GPS only"
@@ -564,11 +566,11 @@ msgstr ""
564566
565567#: qml/Wizard/Pages/60-account.qml:48
566568msgid "Preferred Name"
567−msgstr ""
569+msgstr "Предпочитаемое имя"
568570
569571#: qml/Wizard/Pages/70-passwd-type.qml:39
570572msgid "Lock Screen"
571−msgstr ""
573+msgstr "Заблокировать экран"
572574
573575#: qml/Wizard/Pages/70-passwd-type.qml:101
574576msgctxt "Label: Type of security method"
@@ -578,16 +580,16 @@ msgstr "Создать новый пароль"
578580#: qml/Wizard/Pages/70-passwd-type.qml:103
579581msgctxt "Label: Type of security method"
580582msgid "Create passcode (numbers only)"
581−msgstr ""
583+msgstr "Создать парольный код (только цифры)"
582584
583585#: qml/Wizard/Pages/70-passwd-type.qml:105
584586msgctxt "Label: Type of security method"
585587msgid "No lock code"
586−msgstr ""
588+msgstr "Без кода разблокировки"
587589
588590#: qml/Wizard/Pages/75-report-check.qml:26 qml/Wizard/Pages/here-terms.qml:108
589591msgid "Privacy Policy"
590−msgstr ""
592+msgstr "Политика конфиденциальности"
591593
592594#: qml/Wizard/Pages/75-report-check.qml:26
593595msgid "Help Us Improve"
@@ -599,7 +601,7 @@ msgstr ""
599601
600602#: qml/Wizard/Pages/75-report-check.qml:60
601603msgid "Privacy policy"
602−msgstr ""
604+msgstr "Политика конфиденциальности"
603605
604606#: qml/Wizard/Pages/80-finished.qml:89
605607msgid "Welcome to Ubuntu"
@@ -607,11 +609,11 @@ msgstr "Добро пожаловать в Ubuntu"
607609
608610#: qml/Wizard/Pages/80-finished.qml:104
609611msgid "You are ready to use your device now"
610−msgstr ""
612+msgstr "Теперь устройство готово к использованию"
611613
612614#: qml/Wizard/Pages/80-finished.qml:124
613615msgid "Get Started"
614−msgstr ""
616+msgstr "Приступая к работе"
615617
616618#: qml/Wizard/Pages/here-terms.qml:25
617619msgid "Terms & Conditions"
@@ -619,7 +621,7 @@ msgstr "Условия использования"
619621
620622#: qml/Wizard/Pages/here-terms.qml:69
621623msgid "Your device uses positioning technologies provided by HERE."
622−msgstr ""
624+msgstr "Ваше устройство использует HERE для определения местоположения"
623625
624626#: qml/Wizard/Pages/here-terms.qml:81
625627msgid ""
@@ -633,6 +635,8 @@ msgid ""
633635"The information collected is used to analyze the service and to improve the "
634636"use of service, but not to identify you personally."
635637msgstr ""
638+"Собираемая информация используется для анализа и улучшения сервиса, а не для "
639+"идентификации вашей личности."
636640
637641#: qml/Wizard/Pages/here-terms.qml:106
638642#, qt-format
@@ -659,11 +663,11 @@ msgstr "Введите заново."
659663
660664#: qml/Wizard/Pages/passcode-desktop.qml:30
661665msgid "Lock Screen Passcode"
662−msgstr ""
666+msgstr "Код блокировки экрана"
663667
664668#: qml/Wizard/Pages/passcode-desktop.qml:56
665669msgid "Enter 4 numbers to setup your passcode"
666−msgstr ""
670+msgstr "Введите код блокировки из 4 цифр"
667671
668672#: qml/Wizard/Pages/passcode-desktop.qml:65
669673#: qml/Wizard/Pages/passcode-set.qml:54
@@ -672,15 +676,15 @@ msgstr ""
672676
673677#: qml/Wizard/Pages/passcode-desktop.qml:105
674678msgid "Passcode too short"
675−msgstr ""
679+msgstr "Код слишком короткий"
676680
677681#: qml/Wizard/Pages/passcode-desktop.qml:107
678682msgid "Passcodes match"
679−msgstr ""
683+msgstr "Коды совпадают"
680684
681685#: qml/Wizard/Pages/passcode-desktop.qml:109
682686msgid "Passcodes do not match"
683−msgstr ""
687+msgstr "Коды не совпадают"
684688
685689#: qml/Wizard/Pages/passcode-set.qml:62
686690msgid "Passcode must be 4 characters long"
@@ -688,7 +692,7 @@ msgstr "Код должен содержать 4 символа"
688692
689693#: qml/Wizard/Pages/password-set.qml:30
690694msgid "Lock Screen Password"
691−msgstr ""
695+msgstr "Пароль блокировки экрана"
692696
693697#: qml/Wizard/Pages/password-set.qml:61
694698msgid "Enter at least 8 characters"
@@ -737,11 +741,11 @@ msgstr "Пароли не совпадают"
737741
738742#: qml/Wizard/PasswordMeter.qml:93
739743msgid "Strong password"
740−msgstr ""
744+msgstr "Сильный пароль"
741745
742746#: qml/Wizard/PasswordMeter.qml:95
743747msgid "Fair password"
744−msgstr ""
748+msgstr "Неплохой пароль"
745749
746750#: qml/Wizard/PasswordMeter.qml:97
747751msgid "Weak password"
po/shn.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-11-10 12:09+0000\n"
1212"Last-Translator: Rockworld <sumoisrock@gmail.com>\n"
1313"Language-Team: Shan <shn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
18−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/si.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr ""
188188msgid "Reset"
189189msgstr ""
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr ""
@@ -258,7 +258,7 @@ msgstr ""
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/sk.po+56−11
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11−"PO-Revision-Date: 2016-03-26 15:29+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
11+"PO-Revision-Date: 2016-05-02 10:43+0000\n"
1212"Last-Translator: P_E_T_O <Unknown>\n"
1313"Language-Team: Slovak <sk@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=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
18−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020"Language: sk\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -195,15 +195,15 @@ msgstr "Spresniť výsledky"
195195msgid "Reset"
196196msgstr "Resetovať"
197197
198−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
198+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
199199msgid "Show less"
200−msgstr ""
200+msgstr "Zobraziť menej"
201201
202−#: qml/Dash/GenericScopeView.qml:570
202+#: qml/Dash/GenericScopeView.qml:579
203203msgid "Show all"
204−msgstr ""
204+msgstr "Zobraziť všetko"
205205
206−#: qml/Dash/GenericScopeView.qml:627
206+#: qml/Dash/GenericScopeView.qml:636
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr "Hľadať"
@@ -265,7 +265,7 @@ msgstr "Domov"
265265msgid "Also installed"
266266msgstr "Tiež nainštalované"
267267
268−#: qml/DisabledScreenNotice.qml:104
268+#: qml/DisabledScreenNotice.qml:109
269269msgid ""
270270"Your device is now connected to an external display. Use this screen as a "
271271"touch pad to interact with the pointer."
@@ -469,7 +469,7 @@ msgstr "Potiahnite od ľavého okraja pre otvorenie spúšťača"
469469
470470#: qml/Tutorial/TutorialRight.qml:55
471471msgid "Push your mouse against the right edge to view your open apps"
472−msgstr ""
472+msgstr "Potiahnuť myšou do pravého rohu pre zobrazenie otvorených aplikácií"
473473
474474#: qml/Tutorial/TutorialRight.qml:56
475475msgid "Short or long swipe from the right edge to view your open apps"
@@ -764,6 +764,30 @@ msgstr "Heslo je slabé"
764764msgid "Very weak password"
765765msgstr "Heslo je veľmi slabé"
766766
767+#~ msgid "Reboot"
768+#~ msgstr "Reštartovať"
769+
770+#~ msgid "Shut down"
771+#~ msgstr "Vypnúť"
772+
773+#~ msgid "Power"
774+#~ msgstr "Napájanie"
775+
776+#~ msgid "Power off"
777+#~ msgstr "Vypnúť"
778+
779+#~ msgid "Close"
780+#~ msgstr "Zatvoriť"
781+
782+#~ msgid "Well done"
783+#~ msgstr "Výborne"
784+
785+#~ msgid "Skip intro"
786+#~ msgstr "Preskočiť"
787+
788+#~ msgid "Right edge"
789+#~ msgstr "Pravý okraj"
790+
767791#~ msgctxt "Title: Reboot/Shut down dialog"
768792#~ msgid "Shut down"
769793#~ msgstr "Vypnúť"
@@ -951,3 +975,24 @@ msgstr "Heslo je veľmi slabé"
951975
952976#~ msgid "Hover your mouse on the right edge to view your open apps"
953977#~ msgstr "Prejdite myšou od pravého okraja pre zobrazenie otvorených aplikácií"
978+
979+#~ msgid "Log out"
980+#~ msgstr "Odhlásiť sa"
981+
982+#~ msgid "Try swiping from the top edge to access the indicators"
983+#~ msgstr "Potiahnite horný okraj pre prístup k indikátorom"
984+
985+#~ msgid "Top edge"
986+#~ msgstr "Horný okraj"
987+
988+#~ msgid "Try swiping from the right edge to unlock the phone"
989+#~ msgstr "Potiahnite od pravého okraja pre odomknutie telefónu"
990+
991+#~ msgid "Swipe up again to close the settings screen"
992+#~ msgstr "Potiahnite späť hore pre zatvorenie nastavení"
993+
994+#~ msgid "Left edge"
995+#~ msgstr "Ľavý okraj"
996+
997+#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
998+#~ msgstr "Potiahnite z ľavého okraja pre rýchly prístup k aplikáciam"
po/sl.po+10−10
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-01-31 18:34+0000\n"
1212"Last-Translator: Bernard Banko <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
1818"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -193,15 +193,15 @@ msgstr "Prečistite rezultate"
193193msgid "Reset"
194194msgstr "Ponastavi"
195195
196−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
196+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
197197msgid "Show less"
198−msgstr ""
198+msgstr "Pokaži manj"
199199
200−#: qml/Dash/GenericScopeView.qml:570
200+#: qml/Dash/GenericScopeView.qml:579
201201msgid "Show all"
202−msgstr ""
202+msgstr "Pokaži vse"
203203
204−#: qml/Dash/GenericScopeView.qml:627
204+#: qml/Dash/GenericScopeView.qml:636
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr "Iskanje"
@@ -263,7 +263,7 @@ msgstr "Domov"
263263msgid "Also installed"
264264msgstr "Tudi nameščeno"
265265
266−#: qml/DisabledScreenNotice.qml:104
266+#: qml/DisabledScreenNotice.qml:109
267267msgid ""
268268"Your device is now connected to an external display. Use this screen as a "
269269"touch pad to interact with the pointer."
@@ -469,7 +469,7 @@ msgstr "Potegnite levi rob za prikaz zaganjalnika"
469469
470470#: qml/Tutorial/TutorialRight.qml:55
471471msgid "Push your mouse against the right edge to view your open apps"
472−msgstr ""
472+msgstr "Za prikaz odprtih programov potisnite kazalko proti desnemu robu."
473473
474474#: qml/Tutorial/TutorialRight.qml:56
475475msgid "Short or long swipe from the right edge to view your open apps"
po/sq.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-04-21 06:03+0000\n"
1212"Last-Translator: Indrit Bashkimi <indrit.bashkimi@gmail.com>\n"
1313"Language-Team: sq\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:36+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:08+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020"Language: sq\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -187,15 +187,15 @@ msgstr "Përmirëso rezultatet"
187187msgid "Reset"
188188msgstr "Rivendos"
189189
190−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
190+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
191191msgid "Show less"
192192msgstr ""
193193
194−#: qml/Dash/GenericScopeView.qml:570
194+#: qml/Dash/GenericScopeView.qml:579
195195msgid "Show all"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:627
198+#: qml/Dash/GenericScopeView.qml:636
199199msgctxt "Label: Hint for dash search line edit"
200200msgid "Search"
201201msgstr "Kërko"
@@ -257,7 +257,7 @@ msgstr "Shtëpia"
257257msgid "Also installed"
258258msgstr ""
259259
260−#: qml/DisabledScreenNotice.qml:104
260+#: qml/DisabledScreenNotice.qml:109
261261msgid ""
262262"Your device is now connected to an external display. Use this screen as a "
263263"touch pad to interact with the pointer."
po/sr.po+11−10
@@ -8,8 +8,8 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
12−"PO-Revision-Date: 2016-03-24 12:36+0000\n"
11+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
12+"PO-Revision-Date: 2016-05-04 19:50+0000\n"
1313"Last-Translator: Bojan Bogdanović <Unknown>\n"
1414"Language-Team: српски <xfce4@xfce4.org>\n"
1515"MIME-Version: 1.0\n"
@@ -17,8 +17,8 @@ msgstr ""
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1919"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
20−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
21−"X-Generator: Launchpad (build 17995)\n"
20+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
21+"X-Generator: Launchpad (build 18053)\n"
2222"Language: sr\n"
2323
2424#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -192,15 +192,15 @@ msgstr "Пречистите Ваше резултате"
192192msgid "Reset"
193193msgstr "Ресетуј"
194194
195−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
195+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
196196msgid "Show less"
197−msgstr ""
197+msgstr "Прикажи мање"
198198
199−#: qml/Dash/GenericScopeView.qml:570
199+#: qml/Dash/GenericScopeView.qml:579
200200msgid "Show all"
201−msgstr ""
201+msgstr "Прикажи све"
202202
203−#: qml/Dash/GenericScopeView.qml:627
203+#: qml/Dash/GenericScopeView.qml:636
204204msgctxt "Label: Hint for dash search line edit"
205205msgid "Search"
206206msgstr "Претрага"
@@ -262,7 +262,7 @@ msgstr "Почетна"
262262msgid "Also installed"
263263msgstr "Такође инсталиран"
264264
265−#: qml/DisabledScreenNotice.qml:104
265+#: qml/DisabledScreenNotice.qml:109
266266msgid ""
267267"Your device is now connected to an external display. Use this screen as a "
268268"touch pad to interact with the pointer."
@@ -467,6 +467,7 @@ msgstr "Превуците са леве ивице да отворите пок
467467#: qml/Tutorial/TutorialRight.qml:55
468468msgid "Push your mouse against the right edge to view your open apps"
469469msgstr ""
470+"померите Вашег миша преко десне ивице да видите Ваше отворене програме"
470471
471472#: qml/Tutorial/TutorialRight.qml:56
472473msgid "Short or long swipe from the right edge to view your open apps"
po/sv.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-03-25 05:01+0000\n"
1212"Last-Translator: Josef Andersson <Unknown>\n"
1313"Language-Team: Swedish\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020"Language: sv\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -190,15 +190,15 @@ msgstr "Förfina dina resultat"
190190msgid "Reset"
191191msgstr "Återställ"
192192
193−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
193+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
194194msgid "Show less"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:570
197+#: qml/Dash/GenericScopeView.qml:579
198198msgid "Show all"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:627
201+#: qml/Dash/GenericScopeView.qml:636
202202msgctxt "Label: Hint for dash search line edit"
203203msgid "Search"
204204msgstr "Sök"
@@ -260,7 +260,7 @@ msgstr "Hem"
260260msgid "Also installed"
261261msgstr "Även installerat"
262262
263−#: qml/DisabledScreenNotice.qml:104
263+#: qml/DisabledScreenNotice.qml:109
264264msgid ""
265265"Your device is now connected to an external display. Use this screen as a "
266266"touch pad to interact with the pointer."
po/sw.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-17 20:02+0000\n"
1212"Last-Translator: Valentine <mwangi_valentino@yahoo.com>\n"
1313"Language-Team: Swahili <sw@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -188,15 +188,15 @@ msgstr ""
188188msgid "Reset"
189189msgstr ""
190190
191−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
191+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
192192msgid "Show less"
193193msgstr ""
194194
195−#: qml/Dash/GenericScopeView.qml:570
195+#: qml/Dash/GenericScopeView.qml:579
196196msgid "Show all"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:627
199+#: qml/Dash/GenericScopeView.qml:636
200200msgctxt "Label: Hint for dash search line edit"
201201msgid "Search"
202202msgstr "Tafuta"
@@ -258,7 +258,7 @@ msgstr "Nyumbani"
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:104
261+#: qml/DisabledScreenNotice.qml:109
262262msgid ""
263263"Your device is now connected to an external display. Use this screen as a "
264264"touch pad to interact with the pointer."
po/ta.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-10-24 11:36+0000\n"
1212"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
1313"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020"Language: ta\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -187,15 +187,15 @@ msgstr ""
187187msgid "Reset"
188188msgstr ""
189189
190−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
190+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
191191msgid "Show less"
192192msgstr ""
193193
194−#: qml/Dash/GenericScopeView.qml:570
194+#: qml/Dash/GenericScopeView.qml:579
195195msgid "Show all"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:627
198+#: qml/Dash/GenericScopeView.qml:636
199199msgctxt "Label: Hint for dash search line edit"
200200msgid "Search"
201201msgstr ""
@@ -257,7 +257,7 @@ msgstr ""
257257msgid "Also installed"
258258msgstr ""
259259
260−#: qml/DisabledScreenNotice.qml:104
260+#: qml/DisabledScreenNotice.qml:109
261261msgid ""
262262"Your device is now connected to an external display. Use this screen as a "
263263"touch pad to interact with the pointer."
po/te.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-07-19 10:04+0000\n"
1212"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
1313"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/th.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-10-02 04:55+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Thai <th@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/tr.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-03-22 15:56+0000\n"
1212"Last-Translator: Arda Ünlü <aarda.uunlu@gmail.com>\n"
1313"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr "Ara"
@@ -256,7 +256,7 @@ msgstr "Ev"
256256msgid "Also installed"
257257msgstr "Ayrıca kurulan"
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/ug.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-12-01 07:37+0000\n"
1212"Last-Translator: Eltikin <eltikinuyghur@hotmail.com>\n"
1313"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -187,15 +187,15 @@ msgstr ""
187187msgid "Reset"
188188msgstr ""
189189
190−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
190+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
191191msgid "Show less"
192192msgstr ""
193193
194−#: qml/Dash/GenericScopeView.qml:570
194+#: qml/Dash/GenericScopeView.qml:579
195195msgid "Show all"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:627
198+#: qml/Dash/GenericScopeView.qml:636
199199msgctxt "Label: Hint for dash search line edit"
200200msgid "Search"
201201msgstr "ئىزدە"
@@ -257,7 +257,7 @@ msgstr "ماكان"
257257msgid "Also installed"
258258msgstr "قايتىدىن ئورنات"
259259
260−#: qml/DisabledScreenNotice.qml:104
260+#: qml/DisabledScreenNotice.qml:109
261261msgid ""
262262"Your device is now connected to an external display. Use this screen as a "
263263"touch pad to interact with the pointer."
po/uk.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-04-01 17:32+0000\n"
1212"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
1313"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2016-04-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 17995)\n"
19+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
20+"X-Generator: Launchpad (build 18053)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Покращіть результати"
196196msgid "Reset"
197197msgstr "Скинути"
198198
199−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
199+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
200200msgid "Show less"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:570
203+#: qml/Dash/GenericScopeView.qml:579
204204msgid "Show all"
205205msgstr ""
206206
207−#: qml/Dash/GenericScopeView.qml:627
207+#: qml/Dash/GenericScopeView.qml:636
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "Пошук"
@@ -266,7 +266,7 @@ msgstr "Домівка"
266266msgid "Also installed"
267267msgstr "Також встановлено"
268268
269−#: qml/DisabledScreenNotice.qml:104
269+#: qml/DisabledScreenNotice.qml:109
270270msgid ""
271271"Your device is now connected to an external display. Use this screen as a "
272272"touch pad to interact with the pointer."
po/unity8.pot+5−5
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
11+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/ur.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-05-05 03:12+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Urdu <ur@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/uz.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-07-04 16:03+0000\n"
1212"Last-Translator: Learner <muzaffar.habibullayev@yandex.ru>\n"
1313"Language-Team: Uzbek <uz@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/vi.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-01-15 01:19+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Vietnamese <vi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/wo.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2015-10-29 11:16+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Wolof <wo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr "Seet"
@@ -256,7 +256,7 @@ msgstr "Njëlbeen"
256256msgid "Also installed"
257257msgstr "Yiñ samp tamit"
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/xh.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2013-09-28 13:20+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Xhosa <xh@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/zh_CN.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-04-13 06:27+0000\n"
1212"Last-Translator: YunQiang Su <wzssyqa@gmail.com>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -187,15 +187,15 @@ msgstr "精进查找结果"
187187msgid "Reset"
188188msgstr "重置"
189189
190−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
190+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
191191msgid "Show less"
192192msgstr ""
193193
194−#: qml/Dash/GenericScopeView.qml:570
194+#: qml/Dash/GenericScopeView.qml:579
195195msgid "Show all"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:627
198+#: qml/Dash/GenericScopeView.qml:636
199199msgctxt "Label: Hint for dash search line edit"
200200msgid "Search"
201201msgstr "搜索"
@@ -257,7 +257,7 @@ msgstr "首页"
257257msgid "Also installed"
258258msgstr "已安装"
259259
260−#: qml/DisabledScreenNotice.qml:104
260+#: qml/DisabledScreenNotice.qml:109
261261msgid ""
262262"Your device is now connected to an external display. Use this screen as a "
263263"touch pad to interact with the pointer."
po/zh_HK.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2014-08-10 11:45+0000\n"
1212"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
1313"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -186,15 +186,15 @@ msgstr ""
186186msgid "Reset"
187187msgstr ""
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr ""
@@ -256,7 +256,7 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
po/zh_TW.po+7−7
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-04-27 15:01+0000\n"
10+"POT-Creation-Date: 2016-05-20 08:44+0000\n"
1111"PO-Revision-Date: 2016-02-24 04:40+0000\n"
1212"Last-Translator: Po-Hsu Lin <po-hsu.lin@canonical.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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-04-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 17995)\n"
18+"X-Launchpad-Export-Date: 2016-05-25 06:09+0000\n"
19+"X-Generator: Launchpad (build 18053)\n"
2020"Language: zh_TW\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -186,15 +186,15 @@ msgstr "精細篩選結果"
186186msgid "Reset"
187187msgstr "重設"
188188
189−#: qml/Dash/GenericScopeView.qml:570 qml/Dash/GenericScopeView.qml:755
189+#: qml/Dash/GenericScopeView.qml:579 qml/Dash/GenericScopeView.qml:764
190190msgid "Show less"
191191msgstr ""
192192
193−#: qml/Dash/GenericScopeView.qml:570
193+#: qml/Dash/GenericScopeView.qml:579
194194msgid "Show all"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:627
197+#: qml/Dash/GenericScopeView.qml:636
198198msgctxt "Label: Hint for dash search line edit"
199199msgid "Search"
200200msgstr "搜尋"
@@ -256,7 +256,7 @@ msgstr "家屋"
256256msgid "Also installed"
257257msgstr "也有安裝"
258258
259−#: qml/DisabledScreenNotice.qml:104
259+#: qml/DisabledScreenNotice.qml:109
260260msgid ""
261261"Your device is now connected to an external display. Use this screen as a "
262262"touch pad to interact with the pointer."
qml/Components/InputMethod.qml+2−2
@@ -30,8 +30,8 @@ Item {
3030
3131 consumesInput: true
3232
33− surfaceWidth: width
34− surfaceHeight: height
33+ surfaceWidth: root.enabled ? width : -1
34+ surfaceHeight: root.enabled ? height : -1
3535 surface: SurfaceManager.inputMethodSurface
3636
3737 onLiveChanged: {
qml/Components/ScreenGrabber.qml → qml/Components/ItemGrabber.qmlrenamed+27−17
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2015 Canonical, Ltd.
2+ * Copyright (C) 2014-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -15,36 +15,31 @@
1515 */
1616
1717import QtQuick 2.4
18−import ScreenGrabber 0.1
19−import GlobalShortcut 1.0
18+import ScreenshotDirectory 0.1
2019
20+/*
21+ Captures an image of the given item and saves it in a screenshots directory.
22+ It also displays a flash visual effect and camera shutter sound, as feedback
23+ to the user to hint that a screenshot was taken.
24+ */
2125Rectangle {
2226 id: root
2327 visible: false
2428 color: "white"
25− anchors.fill: parent
2629 opacity: 0.0
2730
28− // to be set from outside
29− property int rotationAngle: 0
30−
31− ScreenGrabber {
32− id: screenGrabber
31+ ScreenshotDirectory {
32+ id: screenshotDirectory
3333 objectName: "screenGrabber"
3434 }
3535
36− GlobalShortcut {
37− id: screenshotShortcut
38− shortcut: Qt.Key_Print
39− onTriggered: capture()
40− }
41−
4236 NotificationAudio {
4337 id: shutterSound
4438 source: "/system/media/audio/ui/camera_click.ogg"
4539 }
4640
47− function capture() {
41+ function capture(item) {
42+ d.target = item;
4843 visible = true;
4944 shutterSound.stop();
5045 shutterSound.play();
@@ -62,13 +57,28 @@ Rectangle {
6257 }
6358 }
6459
60+ QtObject {
61+ id: d
62+ property Item target
63+ }
64+
6565 NumberAnimation on opacity {
6666 id: fadeOut
6767 from: 1.0
6868 to: 0.0
6969 onStopped: {
7070 if (visible) {
71− screenGrabber.captureAndSave(root.rotationAngle);
71+ d.target.grabToImage(function(result)
72+ {
73+ var fileName = screenshotDirectory.makeFileName();
74+ if (fileName.length === 0) {
75+ console.warn("ItemGrabber: No fileName to save image to");
76+ } else {
77+ console.log("ItemGrabber: Saving image to " + fileName);
78+ result.saveToFile(fileName);
79+ }
80+ });
81+
7282 visible = false;
7383 }
7484 }
qml/Components/WindowScreenshot.qml → qml/Components/ItemSnapshot.qmlrenamed+13−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -19,9 +19,19 @@ import QtQuick 2.4
1919Item {
2020 id: root
2121
22+ property Item target
23+
24+ property bool ready: image.status === Image.Ready
25+
2226 function take() {
23− var timeNow = new Date().getTime();
24− image.source = "image://window/" + timeNow;
27+ if (!target) {
28+ console.warn("ItemSnapshot.take(): no target set");
29+ return;
30+ }
31+
32+ target.grabToImage(function(result) {
33+ image.source = result.url;
34+ });
2535 }
2636
2737 // Unload the image to free up memory
qml/Components/NotificationAudio.qml+7−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -23,10 +23,14 @@ Item {
2323 readonly property var playbackState: priv.audio ? priv.audio.playbackState : 0
2424
2525 function play() {
26− priv.audio.play();
26+ if (priv.audio) {
27+ priv.audio.play();
28+ }
2729 }
2830 function stop() {
29− priv.audio.stop();
31+ if (priv.audio) {
32+ priv.audio.stop();
33+ }
3034 }
3135
3236 QtObject {
qml/Components/VirtualTouchPad.qml+1−1
@@ -31,7 +31,7 @@ Item {
3131 anchors.fill: parent
3232
3333 // FIXME: Once we have Qt DPR support, this should be Qt.styleHints.startDragDistance
34− readonly property int clickThreshold: units.gu(1.5)
34+ readonly property int clickThreshold: internalGu * 1.5
3535 property bool isClick: false
3636 property bool isDoubleClick: false
3737 property bool isDrag: false
qml/Dash/CardGrid.qml+1
@@ -78,6 +78,7 @@ DashRenderer {
7878 target: loader.item
7979 onClicked: root.clicked(index, result, loader.item, model)
8080 onPressAndHold: root.pressAndHold(index, result, model)
81+ onAction: root.action(index, result, actionId)
8182 }
8283 }
8384 }
qml/Dash/CardHorizontalList.qml+1
@@ -59,6 +59,7 @@ DashRenderer {
5959 target: loader.item
6060 onClicked: root.clicked(index, result, loader.item, model)
6161 onPressAndHold: root.pressAndHold(index, result, model)
62+ onAction: root.action(index, result, actionId)
6263 }
6364 }
6465 }
qml/Dash/CardTool.qml+23−7
@@ -162,7 +162,7 @@ Item {
162162 id: attributesModel
163163 property int numOfAttributes: 0
164164 property var model: []
165− property bool hasAttributes: {
165+ readonly property bool hasAttributes: {
166166 var attributes = components["attributes"];
167167 var hasAttributesFlag = (attributes != undefined) && (attributes["field"] != undefined);
168168
@@ -182,16 +182,31 @@ Item {
182182 }
183183 }
184184
185+ Item {
186+ id: socialActionsModel
187+ property var model: []
188+ readonly property bool hasActions: components["social-actions"] != undefined
189+
190+ onHasActionsChanged: {
191+ model = []
192+ if (hasActions) {
193+ model.push( {"id":"text", "icon":"image://theme/ok" } );
194+ }
195+ }
196+ }
197+
185198 Loader {
186199 id: cardLoader
187− readonly property var fields: ["art", "mascot", "title", "subtitle", "summary", "attributes"]
200+ readonly property var cfields: ["art", "mascot", "title", "subtitle", "summary", "attributes", "social-actions"]
201+ readonly property var dfields: ["art", "mascot", "title", "subtitle", "summary", "attributes", "socialActions"]
188202 readonly property var maxData: {
189203 "art": Qt.resolvedUrl("graphics/pixel.png"),
190204 "mascot": Qt.resolvedUrl("graphics/pixel.png"),
191205 "title": "—\n—",
192206 "subtitle": "—",
193207 "summary": "—\n—\n—\n—\n—",
194− "attributes": attributesModel.model
208+ "attributes": attributesModel.model,
209+ "socialActions": socialActionsModel.model
195210 }
196211 sourceComponent: CardCreatorCache.getCardComponent(cardTool.template, cardTool.components, true);
197212 onLoaded: {
@@ -206,13 +221,14 @@ Item {
206221 }
207222 function updateCardData() {
208223 var data = {};
209− for (var k in fields) {
210− var component = cardTool.components[fields[k]];
211− var key = fields[k];
224+ for (var k in cfields) {
225+ var ckey = cfields[k];
226+ var component = cardTool.components[ckey];
212227 if ((typeof component === "string" && component.length > 0) ||
213228 (typeof component === "object" && component !== null
214229 && typeof component["field"] === "string" && component["field"].length > 0)) {
215− data[key] = maxData[key];
230+ var dkey = dfields[k];
231+ data[dkey] = maxData[dkey];
216232 }
217233 }
218234 item.cardData = data;
qml/Dash/CardVerticalJournal.qml+1
@@ -78,6 +78,7 @@ DashRenderer {
7878 target: loader.item
7979 onClicked: root.clicked(index, result, loader.item, model)
8080 onPressAndHold: root.pressAndHold(index, result, model)
81+ onAction: root.action(index, result, actionId)
8182 }
8283 }
8384 }
qml/Dash/DashRenderer.qml+6
@@ -57,4 +57,10 @@ Item {
5757 /// @param result result model of the clicked item, used for activation
5858 /// @param itemModel model of the item
5959 signal pressAndHold(int index, var result, var itemModel)
60+
61+ /// Emitted when the user clicked on an item action
62+ /// @param index is the index of the clicked item
63+ /// @param result result model of the clicked item, used for activation
64+ /// @param actionId id of the clicked action
65+ signal action(int index, var result, var actionId)
6066}
qml/Dash/Filters/FilterExpandableWidget.qmlnew file+96
@@ -0,0 +1,96 @@
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 Ubuntu.Components.ListItems 1.3 as ListItems
20+
21+/*! Expandable Filter Widget. */
22+
23+FilterWidget {
24+ id: root
25+
26+ showsTitleOnItsOwn: true
27+
28+ implicitHeight: expandingItem.height
29+
30+ ListItems.Expandable {
31+ id: expandingItem
32+ objectName: "expandingItem"
33+
34+ expandedHeight: collapsedHeight + column.height
35+ anchors.left: parent.left
36+ anchors.right: parent.right
37+ showDivider: false
38+
39+ onClicked: {
40+ expanded = !expanded;
41+ forceActiveFocus();
42+ }
43+ __contentsMargins: 0
44+
45+ Item {
46+ id: titleHolder
47+ anchors.top: parent.top
48+ height: expandingItem.collapsedHeight
49+ anchors.left: parent.left
50+ anchors.right: parent.right
51+
52+ Label {
53+ anchors.left: parent.left
54+ anchors.leftMargin: units.gu(2)
55+ anchors.right: dropDown.left
56+ anchors.verticalCenter: parent.verticalCenter
57+ text: widgetData.title || ""
58+ }
59+
60+ Image {
61+ id: dropDown
62+ height: units.gu(3)
63+ fillMode: Image.PreserveAspectFit
64+ anchors.right: parent.right
65+ anchors.rightMargin: units.gu(2)
66+ anchors.verticalCenter: parent.verticalCenter
67+ source: expandingItem.expanded ? "image://theme/up" : "image://theme/down"
68+ }
69+ }
70+
71+ Column {
72+ id: column
73+ anchors.left: parent.left
74+ anchors.right: parent.right
75+ anchors.top: titleHolder.bottom
76+
77+ Repeater {
78+ id: repeater
79+ model: widgetData.filters
80+
81+ delegate: FilterWidgetFactory {
82+ width: parent.width
83+
84+ widgetId: id
85+ widgetType: type
86+ widgetData: filter
87+
88+ ListItems.ThinDivider {
89+ anchors.bottom: parent.bottom
90+ visible: index !== repeater.count - 1
91+ }
92+ }
93+ }
94+ }
95+ }
96+}
qml/Dash/Filters/FilterWidget.qml+3
@@ -25,5 +25,8 @@ Item {
2525 //! Variable used to contain widget's data
2626 property var widgetData: null
2727
28+ //! Does the widget show the title inside?
29+ property bool showsTitleOnItsOwn: false
30+
2831 objectName: widgetId
2932}
qml/Dash/Filters/FilterWidgetFactory.qml+2−1
@@ -35,7 +35,7 @@ Item {
3535
3636 Label {
3737 id: title
38− text: widgetData ? widgetData.title : ""
38+ text: widgetData && !(loader.item && loader.item.showsTitleOnItsOwn) ? widgetData.title : ""
3939 height: text != "" ? implicitHeight : 0
4040
4141 anchors {
@@ -68,6 +68,7 @@ Item {
6868 case Filters.OptionSelectorFilter: return "FilterOptionSelector.qml";
6969 case Filters.RangeInputFilter: return "FilterRangeInput.qml";
7070 case Filters.ValueSliderFilter: return "FilterValueSlider.qml";
71+ case Filters.ExpandableFilterWidget: return "FilterExpandableWidget.qml";
7172 default: return "";
7273 }
7374 }
qml/Dash/GenericScopeView.qml+9
@@ -360,6 +360,11 @@ FocusScope {
360360 scopeView.enableHeightBehaviorOnNextCreation = item.enableHeightBehaviorOnNextCreation;
361361 }
362362 }
363+ // FIXME: directly connecting to onUnitsChanged cause a compile error:
364+ // Cannot assign to non-existent property "onUnitsChanged"
365+ // Until the units object is reworked to properly do all we need, let's go through a intermediate property
366+ property int pxpgu: units.gu(1);
367+ onPxpguChanged: clickScopeSizingHacks();
363368
364369 function clickScopeSizingHacks() {
365370 if (scope && scope.id === "clickscope" &&
@@ -390,6 +395,10 @@ FocusScope {
390395 scopeView.itemPressedAndHeld(result, baseItem.category);
391396 }
392397
398+ onAction: { // (int index, var result, var actionId)
399+ scope.activateAction(result, baseItem.category, actionId);
400+ }
401+
393402 function categoryItemCount() {
394403 var categoryItemCount = -1;
395404 if (!rendererLoader.expanded && !seeAllLabel.visible && target.collapsedItemCount > 0) {
qml/Dash/Previews/PreviewActionCombo.qml+1−1
@@ -59,7 +59,7 @@ Item {
5959
6060 delegate: PreviewActionButton {
6161 data: modelData
62− width: implicitWidth < parent.width ? parent.width : implicitWidth
62+ width: implicitWidth < root.width ? root.width : implicitWidth
6363 onClicked: root.triggeredAction(modelData)
6464 strokeColor: moreButton.strokeColor
6565 }
qml/Dash/Previews/PreviewActions.qml+8−7
@@ -26,25 +26,26 @@ PreviewWidget {
2626 id: root
2727
2828 implicitHeight: row.height + units.gu(1)
29+ readonly property var actions: root.widgetData ? root.widgetData["actions"] : null
2930
3031 Row {
3132 id: row
32− readonly property var actions: root.widgetData ? root.widgetData["actions"] : null
3333 anchors.right: parent.right
3434
3535 spacing: units.gu(1)
3636
3737 Loader {
3838 id: loader
39− readonly property bool button: row.actions && row.actions.length == 2
40− readonly property bool combo: row.actions && row.actions.length > 2
39+ objectName: "loader"
40+ readonly property bool button: root.actions && root.actions.length == 2
41+ readonly property bool combo: root.actions && root.actions.length > 2
4142 source: button ? "PreviewActionButton.qml" : (combo ? "PreviewActionCombo.qml" : "")
4243 width: (root.width - units.gu(1)) / 2
4344 onLoaded: {
4445 if (button) {
45− item.data = row.actions[1];
46+ item.data = Qt.binding(function() { return root.actions[1]; });
4647 } else if (combo) {
47− item.model = row.actions.slice(1);
48+ item.model = Qt.binding(function() { return root.actions.slice(1); });
4849 }
4950 }
5051 Binding {
@@ -61,8 +62,8 @@ PreviewWidget {
6162 }
6263
6364 PreviewActionButton {
64− data: visible ? row.actions[0] : null
65− visible: row.actions && row.actions.length > 0
65+ data: visible ? root.actions[0] : null
66+ visible: root.actions && root.actions.length > 0
6667 onTriggeredAction: root.triggered(root.widgetId, actionData.id, actionData)
6768 width: (root.width - units.gu(1)) / 2
6869 color: root.scopeStyle ? root.scopeStyle.previewButtonColor : UbuntuColors.orange
qml/Dash/Previews/PreviewIconActions.qml+15
@@ -32,10 +32,20 @@ PreviewWidget {
3232 id: row
3333 readonly property var actions: root.widgetData ? root.widgetData["actions"] : null
3434 width: parent.width
35+ onActionsChanged: {
36+ // Rewire the source since it may have been unwired on onClicked
37+ // but the icon didn't change i.e. the scope updated the results
38+ // and the icon needs to go back to the one it was originally
39+ for (var i = 0; i < repeater.count; ++i) {
40+ var button = repeater.itemAt(i);
41+ button.updateIcon();
42+ }
43+ }
3544
3645 spacing: units.gu(2)
3746
3847 Repeater {
48+ id: repeater
3949 model: row.actions
4050
4151 AbstractButton {
@@ -43,6 +53,11 @@ PreviewWidget {
4353 height: label.height
4454 width: childrenRect.width
4555
56+ readonly property var iconUrl: modelData.icon;
57+ function updateIcon() {
58+ icon.source = iconUrl;
59+ }
60+
4661 Image {
4762 id: icon
4863 height: parent.height
qml/Dash/Previews/PreviewZoomableImage.qml+13−8
@@ -34,6 +34,8 @@ PreviewWidget {
3434
3535 property Item rootItem: QuickUtils.rootItem(root)
3636
37+ readonly property var imageUrl: widgetData["source"] || widgetData["fallback"] || ""
38+
3739 LazyImage {
3840 id: lazyImage
3941 objectName: "lazyImage"
@@ -42,7 +44,7 @@ PreviewWidget {
4244 right: parent.right
4345 }
4446 scaleTo: "width"
45− source: widgetData["source"] || widgetData["fallback"] || ""
47+ source: root.imageUrl
4648 asynchronous: true
4749 useUbuntuShape: false
4850 pressed: mouseArea.pressed
@@ -59,11 +61,12 @@ PreviewWidget {
5961
6062 Connections {
6163 target: lazyImage.sourceImage
62− // If modelData would change after failing to load it would not be
63− // reloaded since the source binding is destroyed by the source = fallback
64− // But at the moment the model never changes
6564 onStatusChanged: if (lazyImage.sourceImage.status === Image.Error) lazyImage.sourceImage.source = widgetData["fallback"];
6665 }
66+ Connections {
67+ target: root
68+ onImageUrlChanged: lazyImage.sourceImage.source = root.imageUrl;
69+ }
6770
6871 PreviewMediaToolbar {
6972 id: toolbar
@@ -86,12 +89,14 @@ PreviewWidget {
8689
8790 delegate: ZoomableImage {
8891 anchors.fill: parent
89− source: widgetData["source"] || widgetData["fallback"] || ""
92+ source: root.imageUrl
9093 zoomable: widgetData["zoomable"] ? widgetData["zoomable"] : false
91− // If modelData would change after failing to load it would not be
92− // reloaded since the source binding is destroyed by the source = fallback
93− // But at the moment the model never changes
9494 onStatusChanged: if (status === Image.Error) source = widgetData["fallback"];
95+
96+ Connections {
97+ target: root
98+ onImageUrlChanged: source = root.imageUrl;
99+ }
95100 }
96101 }
97102}
qml/DisabledScreenNotice.qml+11−4
@@ -18,6 +18,7 @@ import QtQuick 2.4
1818import QtQuick.Layouts 1.1
1919import Ubuntu.Components 1.3
2020import Unity.Session 0.1
21+import Unity.Screens 0.1
2122import QtQuick.Window 2.2
2223import "Components"
2324
@@ -35,6 +36,10 @@ Item {
3536 name: applicationArguments.deviceName
3637 }
3738
39+ Screens {
40+ id: screens
41+ }
42+
3843 Item {
3944 id: contentContainer
4045 objectName: "contentContainer"
@@ -96,19 +101,19 @@ Item {
96101
97102 Column {
98103 anchors.centerIn: parent
99− width: parent.width - units.gu(8)
100− spacing: units.gu(4)
104+ width: parent.width - (internalGu * 8)
105+ spacing: internalGu * 4
101106
102107 Label {
103108 id: text
104109 text: i18n.tr("Your device is now connected to an external display. Use this screen as a touch pad to interact with the pointer.")
105110 color: "white"
106111 width: parent.width
107− fontSize: "large"
112+ font.pixelSize: 2.5 * internalGu
108113 wrapMode: Text.Wrap
109114 }
110115 Icon {
111− height: units.gu(8)
116+ height: internalGu * 8
112117 width: height
113118 name: "input-touchpad-symbolic"
114119 color: "white"
@@ -119,6 +124,8 @@ Item {
119124
120125 InputMethod {
121126 id: inputMethod
127+ // Don't resize when there is only one screen to avoid resize clashing with the InputMethod in the Shell.
128+ enabled: screens.count > 1
122129 objectName: "inputMethod"
123130 anchors.fill: parent
124131 }
qml/Notifications/NotificationMenuItemFactory.qml+1
@@ -146,6 +146,7 @@ Loader {
146146 errorText: errorAction.valid ? errorAction.state : ""
147147 retryText: notification.body
148148 background: menuFactory.background
149+ darkenBackground: 0.4
149150
150151 onEntered: {
151152 menuModel.changeState(menuIndex, passphrase);
qml/OrientedShell.qml+7−7
@@ -26,9 +26,8 @@ import "Rotation"
2626// Workaround https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1473471
2727import Ubuntu.Components 1.3
2828
29−Rectangle {
29+Item {
3030 id: root
31− color: "black"
3231
3332 implicitWidth: units.gu(40)
3433 implicitHeight: units.gu(71)
@@ -241,7 +240,7 @@ Rectangle {
241240 orientedShell: root
242241 shell: shell
243242 shellCover: shellCover
244− windowScreenshot: windowScreenshot
243+ shellSnapshot: shellSnapshot
245244 }
246245
247246 Shell {
@@ -291,8 +290,9 @@ Rectangle {
291290 visible: false
292291 }
293292
294− WindowScreenshot {
295− id: windowScreenshot
293+ ItemSnapshot {
294+ id: shellSnapshot
295+ target: shell
296296 visible: false
297297 width: root.width
298298 height: root.height
@@ -302,9 +302,9 @@ Rectangle {
302302 property real transformOriginY
303303
304304 transform: Rotation {
305− origin.x: windowScreenshot.transformOriginX; origin.y: windowScreenshot.transformOriginY;
305+ origin.x: shellSnapshot.transformOriginX; origin.y: shellSnapshot.transformOriginY;
306306 axis { x: 0; y: 0; z: 1 }
307− angle: windowScreenshot.transformRotationAngle
307+ angle: shellSnapshot.transformRotationAngle
308308 }
309309 }
310310}
qml/Panel/Indicators/MenuItemFactory.qml+2−2
@@ -377,11 +377,11 @@ Item {
377377 property int menuIndex: -1
378378 property var extendedData: menuData && menuData.ext || undefined
379379
380− property date serverTime: new Date(getExtendedProperty(extendedData, "xCanonicalTime", 0) * 1000)
380+ readonly property date serverTime: new Date(getExtendedProperty(extendedData, "xCanonicalTime", 0) * 1000)
381381 LiveTimer {
382382 frequency: LiveTimer.Relative
383383 relativeTime: alarmItem.serverTime
384− onTrigger: alarmItem.serverTime = new Date(getExtendedProperty(extendedData, "xCanonicalTime", 0) * 1000)
384+ onTrigger: alarmItem.time = i18n.relativeDateTime(alarmItem.serverTime)
385385 }
386386
387387 text: menuData && menuData.label || ""
qml/Panel/IndicatorsMenu.qml+20−10
@@ -43,18 +43,28 @@ Showable {
4343
4444 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
4545 // use its own values. Need to ask design about this.
46− showAnimation: StandardAnimation {
47− property: "height"
48− to: openedHeight
49− duration: UbuntuAnimation.BriskDuration
50− easing.type: Easing.OutCubic
46+ showAnimation: SequentialAnimation {
47+ StandardAnimation {
48+ target: root
49+ property: "height"
50+ to: openedHeight
51+ duration: UbuntuAnimation.BriskDuration
52+ easing.type: Easing.OutCubic
53+ }
54+ // set binding in case units.gu changes while menu open, so height correctly adjusted to fit
55+ ScriptAction { script: root.height = Qt.binding( function(){ return root.openedHeight; } ) }
5156 }
5257
53− hideAnimation: StandardAnimation {
54− property: "height"
55− to: minimizedPanelHeight
56− duration: UbuntuAnimation.BriskDuration
57− easing.type: Easing.OutCubic
58+ hideAnimation: SequentialAnimation {
59+ StandardAnimation {
60+ target: root
61+ property: "height"
62+ to: minimizedPanelHeight
63+ duration: UbuntuAnimation.BriskDuration
64+ easing.type: Easing.OutCubic
65+ }
66+ // set binding in case units.gu changes while menu closed, so menu adjusts to fit
67+ ScriptAction { script: root.height = Qt.binding( function(){ return root.minimizedPanelHeight; } ) }
5868 }
5969
6070 height: minimizedPanelHeight
qml/Panel/Panel.qml+6−15
@@ -30,22 +30,13 @@ Item {
3030 property real indicatorAreaShowProgress: 1.0
3131 property bool locked: false
3232
33− Rectangle {
34− id: darkenedArea
35− property real darkenedOpacity: 0.6
36− anchors {
37− fill: parent
38− topMargin: panelHeight
39− }
40− color: "black"
41− opacity: indicators.unitProgress * darkenedOpacity
33+ MouseArea {
34+ anchors.fill: parent
35+ anchors.topMargin: panelHeight
4236 visible: !indicators.fullyClosed
43−
44− MouseArea {
45− anchors.fill: parent
46− onClicked: if (indicators.fullyOpened) indicators.hide();
47− hoverEnabled: true // should also eat hover events, otherwise they will pass through
48− }
37+ enabled: visible
38+ onClicked: if (indicators.fullyOpened) indicators.hide();
39+ hoverEnabled: true // should also eat hover events, otherwise they will pass through
4940 }
5041
5142 Binding {
qml/Rotation/HalfLoopRotationAnimation.qml+2−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -42,5 +42,6 @@ SequentialAnimation {
4242 from: root.fromAngle; to: root.toAngle
4343 duration: rotationDuration; easing.type: rotationEasing
4444 }
45+ UpdateShellTransformations { info: root.info; shell: root.shell }
4546 ScriptAction { script: { info.transitioning = false; } }
4647}
qml/Rotation/ImmediateRotationAction.qml+11−22
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -16,30 +16,19 @@
1616
1717import QtQuick 2.4
1818
19−ScriptAction {
19+SequentialAnimation {
20+ id: root
2021 property var info
2122 property var shell
2223
23− script: {
24− info.transitioning = true;
25− shell.orientationAngle = info.requestedOrientationAngle;
26− shell.transformRotationAngle = info.requestedOrientationAngle;
24+ ScriptAction { script: {
25+ root.info.transitioning = true;
26+ } }
2727
28− // Making bindings as orientedShell's dimensions might wiggle during startup.
29− if (info.requestedOrientationAngle === 90 || info.requestedOrientationAngle === 270) {
30− shell.width = Qt.binding(function() { return orientedShell.height; });
31− shell.height = Qt.binding(function() { return orientedShell.width; });
32− } else {
33− shell.width = Qt.binding(function() { return orientedShell.width; });
34− shell.height = Qt.binding(function() { return orientedShell.height; });
35− }
28+ UpdateShellTransformations { info: root.info; shell: root.shell }
3629
37− shell.x = Qt.binding(function() { return (orientedShell.width - shell.width) / 2; });
38− shell.y = Qt.binding(function() { return (orientedShell.height - shell.height) / 2; });
39− shell.transformOriginX = Qt.binding(function() { return shell.width / 2; });
40− shell.transformOriginY = Qt.binding(function() { return shell.height / 2; });
41−
42− shell.updateFocusedAppOrientation();
43− info.transitioning = false;
44− }
30+ ScriptAction { script: {
31+ root.shell.updateFocusedAppOrientation();
32+ root.info.transitioning = false;
33+ } }
4534}
qml/Rotation/NinetyRotationAnimation.qml+14−16
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015-2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -30,8 +30,7 @@ SequentialAnimation {
3030
3131 ScriptAction { script: {
3232 info.transitioning = true;
33− windowScreenshot.take();
34− windowScreenshot.visible = true;
33+
3534 shell.orientationAngle = root.toAngle;
3635 shell.x = 0;
3736 shell.width = flipShellDimensions ? orientedShell.height : orientedShell.width;
@@ -41,12 +40,10 @@ SequentialAnimation {
4140 shell.updateFocusedAppOrientation();
4241 shellCover.visible = true;
4342
44− windowScreenshot.transformOriginX = orientedShell.width / 2;
45− if (fromAngle == 180 || fromAngle == 270) {
46− windowScreenshot.transformOriginY = orientedShell.height - (orientedShell.width / 2);
47− } else {
48− windowScreenshot.transformOriginY = orientedShell.width / 2;
49− }
43+ shellSnapshot.transformOriginX = shell.transformOriginX;
44+ shellSnapshot.transformOriginY = shell.transformOriginY;
45+ shellSnapshot.transformRotationAngle = shell.transformRotationAngle;
46+ shellSnapshot.visible = true;
5047 } }
5148 ParallelAnimation {
5249 NumberAnimation {
@@ -66,24 +63,25 @@ SequentialAnimation {
6663 }
6764
6865 NumberAnimation {
69− target: windowScreenshot; property: "opacity"; from: 1; to: 0;
66+ target: shellSnapshot; property: "opacity"; from: 1; to: 0;
7067 duration: rotationDuration; easing.type: rotationEasing
7168 }
7269 RotationAnimation {
73− target: windowScreenshot; property: "transformRotationAngle";
74− from: 0; to: root.toAngle - root.fromAngle
70+ target: shellSnapshot; property: "transformRotationAngle";
71+ from: root.fromAngle; to: root.toAngle
7572 direction: RotationAnimation.Shortest
7673 duration: rotationDuration; easing.type: rotationEasing
7774 }
7875 NumberAnimation {
79− target: windowScreenshot; property: "y"
80− from: 0; to: root.toY - root.fromY
76+ target: shellSnapshot; property: "y"
77+ from: root.fromY; to: root.toY
8178 duration: rotationDuration; easing.type: rotationEasing
8279 }
8380 }
81+ UpdateShellTransformations { info: root.info; shell: root.shell }
8482 ScriptAction { script: {
85− windowScreenshot.visible = false;
86− windowScreenshot.discard();
83+ shellSnapshot.visible = false;
84+ shellSnapshot.discard();
8785 shellCover.visible = false;
8886 info.transitioning = false;
8987 } }
qml/Rotation/RotationStates.qml+25−5
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 2015,2016 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -30,7 +30,7 @@ StateGroup {
3030 property Item orientedShell
3131 property Item shell
3232 property Item shellCover
33− property Item windowScreenshot
33+ property Item shellSnapshot
3434
3535 property int rotationDuration: 450
3636 property int rotationEasing: Easing.InOutCubic
@@ -88,12 +88,32 @@ StateGroup {
8888 }
8989
9090 var requestedState = d.requestedOrientationAngle.toString();
91− if (requestedState !== root.state) {
92− d.resolveAnimationType();
93− root.state = requestedState;
91+ if (requestedState === root.state) {
92+ return;
93+ }
94+
95+ d.resolveAnimationType();
96+
97+ var angleDiff = Math.abs(root.shell.orientationAngle - d.requestedOrientationAngle);
98+ var isNinetyRotationAnimation = angleDiff == 90 || angleDiff == 270;
99+ var needsShellSnapshot = d.animationType == d.fullAnimation && isNinetyRotationAnimation;
100+
101+ if (needsShellSnapshot && !shellSnapshotReady) {
102+ root.shellSnapshot.take();
103+ // try again once we have a shell snapshot ready for use. Snapshot taking is async.
104+ return;
105+ }
106+
107+ if (!needsShellSnapshot && shellSnapshotReady) {
108+ root.shellSnapshot.discard();
94109 }
110+
111+ root.state = requestedState;
95112 }
96113
114+ property bool shellSnapshotReady: root.shellSnapshot && root.shellSnapshot.ready
115+ onShellSnapshotReadyChanged: tryUpdateState();
116+
97117 property Connections shellConnections: Connections {
98118 target: root.orientedShell
99119 onOrientationChangesEnabledChanged: {
qml/Rotation/UpdateShellTransformations.qmlnew file+42
@@ -0,0 +1,42 @@
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+
19+ScriptAction {
20+ property var info
21+ property var shell
22+
23+ script: {
24+ shell.orientationAngle = info.requestedOrientationAngle;
25+ shell.transformRotationAngle = info.requestedOrientationAngle;
26+
27+ // They must all be bindings as orientedShell's size can change
28+
29+ if (info.requestedOrientationAngle === 90 || info.requestedOrientationAngle === 270) {
30+ shell.width = Qt.binding(function() { return orientedShell.height; });
31+ shell.height = Qt.binding(function() { return orientedShell.width; });
32+ } else {
33+ shell.width = Qt.binding(function() { return orientedShell.width; });
34+ shell.height = Qt.binding(function() { return orientedShell.height; });
35+ }
36+
37+ shell.x = Qt.binding(function() { return (orientedShell.width - shell.width) / 2; });
38+ shell.y = Qt.binding(function() { return (orientedShell.height - shell.height) / 2; });
39+ shell.transformOriginX = Qt.binding(function() { return shell.width / 2; });
40+ shell.transformOriginY = Qt.binding(function() { return shell.height / 2; });
41+ }
42+}
qml/Shell.qml+11−5
@@ -192,7 +192,7 @@ Item {
192192 onPowerKeyLongPressed: dialogs.showPowerDialog();
193193 onVolumeDownTriggered: volumeControl.volumeDown();
194194 onVolumeUpTriggered: volumeControl.volumeUp();
195− onScreenshotTriggered: screenGrabber.capture();
195+ onScreenshotTriggered: itemGrabber.capture(shell);
196196 }
197197
198198 GlobalShortcut {
@@ -705,16 +705,22 @@ Item {
705705 onShowHome: showHome()
706706 }
707707
708− ScreenGrabber {
709− id: screenGrabber
710− rotationAngle: -shell.orientationAngle
708+ ItemGrabber {
709+ id: itemGrabber
710+ anchors.fill: parent
711711 z: dialogs.z + 10
712+ GlobalShortcut { shortcut: Qt.Key_Print; onTriggered: itemGrabber.capture(shell) }
713+ Connections {
714+ target: applicationsDisplayLoader.item
715+ ignoreUnknownSignals: true
716+ onItemSnapshotRequested: itemGrabber.capture(item)
717+ }
712718 }
713719
714720 Cursor {
715721 id: cursor
716722 visible: shell.hasMouse
717− z: screenGrabber.z + 1
723+ z: itemGrabber.z + 1
718724
719725 onPushedLeftBoundary: {
720726 if (buttons === Qt.NoButton) {
qml/Stages/AbstractStage.qml+8−7
@@ -21,13 +21,6 @@ import GSettings 1.0
2121FocusScope {
2222 id: root
2323
24− property alias color: backRect.color
25− Rectangle {
26− id: backRect
27− color: "#060606"
28− anchors.fill: parent
29− }
30−
3124 // Controls to be set from outside
3225 property QtObject applicationManager
3326 property QtObject topLevelSurfaceList
@@ -49,6 +42,7 @@ FocusScope {
4942 property bool suspended
5043 // A Stage should paint a wallpaper etc over its full size but not use the margins for window placement
5144 property int leftMargin: 0
45+ property alias paintBackground: background.visible
5246
5347 // To be read from outside
5448 property var mainApp: null
@@ -60,6 +54,7 @@ FocusScope {
6054 | Qt.InvertedLandscapeOrientation
6155
6256 signal stageAboutToBeUnloaded
57+ signal itemSnapshotRequested(Item item)
6358
6459 // Shared code for use in stage implementations
6560 GSettings {
@@ -76,4 +71,10 @@ FocusScope {
7671 }
7772 return false;
7873 }
74+
75+ Rectangle {
76+ id: background
77+ color: "#060606"
78+ anchors.fill: parent
79+ }
7980}
qml/Stages/ApplicationWindow.qml+31−1
@@ -120,6 +120,17 @@ FocusScope {
120120 || (application.supportedOrientations & Qt.InvertedLandscapeOrientation))
121121
122122 property bool surfaceOldEnoughToBeResized: false
123+
124+ property var focusedSurface: {
125+ if (promptSurfacesRepeater.count == 0) {
126+ return surfaceContainer;
127+ } else {
128+ return promptSurfacesRepeater.itemAt(promptSurfacesRepeater.count - 1);
129+ }
130+ }
131+ onFocusedSurfaceChanged: {
132+ focusedSurface.focus = true;
133+ }
123134 }
124135
125136 Binding {
@@ -183,7 +194,26 @@ FocusScope {
183194 requestedWidth: root.requestedWidth
184195 requestedHeight: root.requestedHeight
185196 surfaceOrientationAngle: application && application.rotatesWindowContents ? root.surfaceOrientationAngle : 0
186− focus: true
197+ }
198+
199+ Repeater {
200+ id: promptSurfacesRepeater
201+ objectName: "promptSurfacesRepeater"
202+ // show only along with the top-most application surface
203+ model: {
204+ if (root.application && root.surface === root.application.surfaceList.first) {
205+ return root.application.promptSurfaceList;
206+ } else {
207+ return null;
208+ }
209+ }
210+ delegate: SurfaceContainer {
211+ interactive: index == (promptSurfacesRepeater.count - 1) && root.interactive
212+ surface: model.surface
213+ width: root.width
214+ height: root.height
215+ isPromptSurface: true
216+ }
187217 }
188218
189219 // SurfaceContainer size drives ApplicationWindow size
qml/Stages/DesktopStage.qml+7
@@ -26,6 +26,7 @@ import GlobalShortcut 1.0
2626AbstractStage {
2727 id: root
2828 anchors.fill: parent
29+ paintBackground: false
2930
3031 // functions to be called from outside
3132 function updateFocusedAppOrientation() { /* TODO */ }
@@ -94,6 +95,12 @@ AbstractStage {
9495 active: priv.focusedAppDelegate !== null
9596 }
9697
98+ GlobalShortcut {
99+ shortcut: Qt.AltModifier|Qt.Key_Print
100+ onTriggered: root.itemSnapshotRequested(priv.focusedAppDelegate)
101+ active: priv.focusedAppDelegate !== null
102+ }
103+
97104 Connections {
98105 target: root.topLevelSurfaceList
99106 onCountChanged: {
qml/Stages/PhoneStage.qml+2
@@ -31,6 +31,8 @@ AbstractStage {
3131 property real startScale: 1.1
3232 property real endScale: 0.7
3333
34+ paintBackground: spreadView.shiftedContentX !== 0
35+
3436 onBeingResizedChanged: {
3537 if (beingResized) {
3638 // Brace yourselves for impact!
qml/Stages/ShimStage.qml−1
@@ -21,7 +21,6 @@ AbstractStage {
2121 id: shimStage
2222
2323 anchors.fill: parent
24− color: UbuntuColors.lightAubergine
2524
2625 Text {
2726 id: greeterModeText
qml/Stages/SurfaceContainer.qml+7−63
@@ -33,7 +33,10 @@ FocusScope {
3333 property bool interactive
3434 property int surfaceOrientationAngle: 0
3535 property bool resizeSurface: true
36− property bool inPromptSession: false
36+ property bool isPromptSurface: false
37+ // FIME - dont export, use interactive property. Need to fix qtmir to handle consumesInputChanged
38+ // to update surface activeFocus. See mock MirSurfaceItem.
39+ property alias consumesInput: surfaceItem.consumesInput
3740
3841 onSurfaceChanged: {
3942 // Not a binding because animations might remove the surface from the surfaceItem
@@ -56,6 +59,8 @@ FocusScope {
5659 id: surfaceItem
5760 objectName: "surfaceItem"
5861
62+ focus: true
63+
5964 fillMode: MirSurfaceItem.PadOrCrop
6065 consumesInput: true
6166
@@ -122,59 +127,12 @@ FocusScope {
122127 when: root.requestedHeight < 0
123128 }
124129
125− Repeater {
126− id: childSurfacesRepeater
127− objectName: "childSurfacesRepeater"
128− model: root.surface ? root.surface.promptSurfaceList : null
129−
130− delegate: Loader {
131− objectName: "childDelegate" + index
132− anchors.fill: root
133−
134− // Only way to do recursive qml items.
135− source: Qt.resolvedUrl("SurfaceContainer.qml")
136−
137− z: index
138−
139− // Since a Loader is a FocusScope, propagate its focus to the loaded Item
140− Binding {
141− target: item; when: item
142− property: "focus"; value: focus
143− }
144−
145− Binding {
146− target: item; when: item
147− property: "interactive"; value: index == (childSurfacesRepeater.count - 1) && root.interactive
148− }
149−
150− Binding {
151− target: item; when: item
152− property: "surface"; value: model.surface
153− }
154−
155− Binding {
156− target: item; when: item
157− property: "width"; value: root.width
158− }
159−
160− Binding {
161− target: item; when: item
162− property: "height"; value: root.height
163− }
164−
165− Binding {
166− target: item; when: item
167− property: "inPromptSession"; value: true
168− }
169− }
170− }
171−
172130 Loader {
173131 id: animationsLoader
174132 objectName: "animationsLoader"
175133 active: root.surface
176134 source: {
177− if (root.inPromptSession) {
135+ if (root.isPromptSurface) {
178136 return "PromptSurfaceAnimations.qml";
179137 } else {
180138 // Let ApplicationWindow do the animations
@@ -194,18 +152,4 @@ FocusScope {
194152 value: root
195153 }
196154 }
197−
198− QtObject {
199− id: d
200− property var focusedChild: {
201− if (childSurfacesRepeater.count == 0) {
202− return surfaceItem;
203− } else {
204− return childSurfacesRepeater.itemAt(childSurfacesRepeater.count - 1);
205− }
206− }
207− onFocusedChildChanged: {
208− focusedChild.focus = true;
209− }
210− }
211155}
qml/Stages/TabletStage.qml+7−3
@@ -34,6 +34,8 @@ AbstractStage {
3434 property int stageFocusedSurface: priv.focusedAppDelegate ? priv.focusedAppDelegate.stage : ApplicationInfoInterface.MainStage
3535 // </tutorial-hacks>
3636
37+ paintBackground: spreadView.shiftedContentX !== 0
38+
3739 // Functions to be called from outside
3840 function updateFocusedAppOrientation() {
3941 var mainStageIndex = root.topLevelSurfaceList.indexForId(priv.mainStageItemId);
@@ -746,10 +748,11 @@ AbstractStage {
746748 surface: model.surface
747749 closeable: !isDash
748750 highlightShown: root.altTabPressed && priv.highlightIndex == zIndex
751+ dropShadow: spreadView.active || priv.focusedAppDelegateIsDislocated
749752
750753 readonly property bool wantsMainStage: stage == ApplicationInfoInterface.MainStage
751754
752− readonly property bool isDash: model.application.appId == "unity8-dash"
755+ readonly property bool isDash: application.appId == "unity8-dash"
753756
754757 onFocusChanged: {
755758 if (focus && !spreadRepeater.startingUp) {
@@ -765,7 +768,7 @@ AbstractStage {
765768 onFocusRequested: spreadTile.focus = true;
766769 }
767770 Connections {
768− target: model.application
771+ target: spreadTile.application
769772 onFocusRequested: {
770773 if (!model.surface) {
771774 // when an app has no surfaces, we assume there's only one entry representing it:
@@ -841,7 +844,7 @@ AbstractStage {
841844 _constructing = false;
842845 }
843846 Component.onDestruction: {
844− WindowStateStorage.saveStage(model.application.appId, stage);
847+ WindowStateStorage.saveStage(application.appId, stage);
845848 }
846849
847850 function refreshStage() {
@@ -1070,6 +1073,7 @@ AbstractStage {
10701073
10711074 surface: spreadDelegate ? spreadDelegate.surface : null
10721075
1076+ consumesInput: false
10731077 interactive: false
10741078 resizeSurface: false
10751079 focus: false
src/SecondaryWindow.cpp+9
@@ -19,9 +19,18 @@
1919// local
2020#include <paths.h>
2121
22+#include <QQmlContext>
23+
2224SecondaryWindow::SecondaryWindow(QQmlEngine *engine)
2325 : QQuickView(engine, nullptr)
2426{
27+ QByteArray pxpguEnv = qgetenv("GRID_UNIT_PX");
28+ bool ok;
29+ int pxpgu = pxpguEnv.toInt(&ok);
30+ if (!ok) {
31+ pxpgu = 8;
32+ }
33+ engine->rootContext()->setContextProperty("internalGu", pxpgu);
2534 setResizeMode(QQuickView::SizeRootObjectToView);
2635 setColor("black");
2736 setTitle(QStringLiteral("Unity8 Shell - Secondary Screen"));
src/ShellApplication.cpp+6
@@ -178,6 +178,9 @@ void ShellApplication::onScreenAdded(QScreen * /*screen*/)
178178 // Changing the QScreen where a QWindow is drawn makes it also lose focus (besides having
179179 // its backing QPlatformWindow recreated). So lets refocus it.
180180 m_shellView->requestActivate();
181+ // QWindow::destroy() is called when it changes between screens. We have to manually make it visible again
182+ // <dandrader> This bug is supposedly fixed in Qt 5.5.1, although I can still reproduce it there. :-/
183+ m_shellView->setVisible(true);
181184
182185 m_secondaryWindow = new SecondaryWindow(m_qmlEngine);
183186 m_secondaryWindow->setScreen(screens().at(0));
@@ -204,5 +207,8 @@ void ShellApplication::onScreenAboutToBeRemoved(QScreen *screen)
204207 // Changing the QScreen where a QWindow is drawn makes it also lose focus (besides having
205208 // its backing QPlatformWindow recreated). So lets refocus it.
206209 m_shellView->requestActivate();
210+ // QWindow::destroy() is called when it changes between screens. We have to manually make it visible again
211+ // <dandrader> This bug is supposedly fixed in Qt 5.5.1, although I can still reproduce it there. :-/
212+ m_shellView->setVisible(true);
207213 }
208214}
tests/mocks/Unity/Application/ApplicationInfo.cpp+8
@@ -194,6 +194,10 @@ void ApplicationInfo::setState(State value)
194194 MirSurface *surface = static_cast<MirSurface*>(m_surfaceList.get(i));
195195 surface->setLive(false);
196196 }
197+ for (int i = 0; i < m_promptSurfaceList.count(); ++i) {
198+ auto surface = static_cast<MirSurface*>(m_promptSurfaceList.get(i));
199+ surface->setLive(false);
200+ }
197201 }
198202
199203 m_state = value;
@@ -238,6 +242,10 @@ void ApplicationInfo::setManualSurfaceCreation(bool value)
238242 if (value != m_manualSurfaceCreation) {
239243 m_manualSurfaceCreation = value;
240244 Q_EMIT manualSurfaceCreationChanged(value);
245+
246+ if (m_manualSurfaceCreation && m_surfaceCreationTimer.isActive()) {
247+ m_surfaceCreationTimer.stop();
248+ }
241249 }
242250}
243251
tests/mocks/Unity/Application/ApplicationInfo.h+2
@@ -108,6 +108,7 @@ public:
108108 Q_INVOKABLE void setShellChrome(Mir::ShellChrome shellChrome);
109109
110110 MirSurfaceListInterface* surfaceList() override { return &m_surfaceList; }
111+ MirSurfaceListInterface* promptSurfaceList() override { return &m_promptSurfaceList; }
111112
112113 void setFocused(bool value);
113114
@@ -148,6 +149,7 @@ private:
148149 bool m_exemptFromLifecycle{false};
149150 QSize m_initialSurfaceSize;
150151 MirSurfaceListModel m_surfaceList;
152+ MirSurfaceListModel m_promptSurfaceList;
151153 int m_liveSurfaceCount{0};
152154 QTimer m_surfaceCreationTimer;
153155 QList<MirSurface*> m_closingSurfaces;
tests/mocks/Unity/Application/MirSurface.cpp+1−21
@@ -408,27 +408,6 @@ void MirSurface::close()
408408 }
409409}
410410
411−void MirSurface::createPromptSurface()
412−{
413− QStringList screenshotIds = {"gallery", "map", "facebook", "camera", "browser", "music", "twitter"};
414− int i = rand() % screenshotIds.count();
415−
416− QUrl screenshotUrl = QString("qrc:///Unity/Application/screenshots/%1@12.png")
417− .arg(screenshotIds[i]);
418−
419− auto surface = new MirSurface(QString("prompt foo"),
420− Mir::NormalType,
421− Mir::RestoredState,
422− screenshotUrl);
423−
424− m_promptSurfaceList.appendSurface(surface);
425−}
426−
427−MirSurfaceListInterface* MirSurface::promptSurfaceList()
428−{
429− return &m_promptSurfaceList;
430−}
431−
432411void MirSurface::requestFocus()
433412{
434413 DEBUG_MSG("");
@@ -485,6 +464,7 @@ void MirFocusController::setFocusedSurface(MirSurfaceInterface *surface)
485464
486465 if (m_focusedSurface) {
487466 Q_EMIT m_focusedSurface->focusedChanged(true);
467+ m_focusedSurface->raise();
488468 }
489469}
490470
tests/mocks/Unity/Application/MirSurface.h−5
@@ -107,8 +107,6 @@ public:
107107
108108 Q_INVOKABLE void close() override;
109109
110− unity::shell::application::MirSurfaceListInterface* promptSurfaceList() override;
111−
112110 Q_INVOKABLE void raise() override;
113111
114112 ////
@@ -130,8 +128,6 @@ public:
130128 Q_INVOKABLE void setWidthIncrement(int);
131129 Q_INVOKABLE void setHeightIncrement(int);
132130
133− Q_INVOKABLE void createPromptSurface();
134−
135131 /////
136132 // internal mock stuff
137133
@@ -199,7 +195,6 @@ private:
199195 QSize m_pendingResize;
200196
201197 Mir::ShellChrome m_shellChrome;
202− MirSurfaceListModel m_promptSurfaceList;
203198
204199 struct View {
205200 bool visible;
tests/mocks/Unity/Application/MirSurfaceItem.cpp+16−7
@@ -56,7 +56,11 @@ MirSurfaceItem::MirSurfaceItem(QQuickItem *parent)
5656 Qt::ExtraButton9 | Qt::ExtraButton10 | Qt::ExtraButton11 |
5757 Qt::ExtraButton12 | Qt::ExtraButton13);
5858
59+ connect(this, &QQuickItem::activeFocusChanged, this, &MirSurfaceItem::updateMirSurfaceActiveFocus);
5960 connect(this, &QQuickItem::visibleChanged, this, &MirSurfaceItem::updateMirSurfaceVisibility);
61+ connect(this, &MirSurfaceItem::consumesInputChanged, this, [this]() {
62+ updateMirSurfaceActiveFocus(hasActiveFocus());
63+ });
6064}
6165
6266MirSurfaceItem::~MirSurfaceItem()
@@ -234,6 +238,10 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
234238 delete m_qmlContentComponent;
235239 m_qmlContentComponent = nullptr;
236240
241+ if (hasActiveFocus() && m_consumesInput && m_qmlSurface->live()) {
242+ m_qmlSurface->setActiveFocus(false);
243+ }
244+
237245 disconnect(m_qmlSurface, nullptr, this, nullptr);
238246 m_qmlSurface->unregisterView((qintptr)this);
239247 }
@@ -243,8 +251,6 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
243251 if (m_qmlSurface) {
244252 m_qmlSurface->registerView((qintptr)this);
245253
246− m_qmlSurface->setActiveFocus(hasActiveFocus());
247−
248254 updateSurfaceSize();
249255 updateMirSurfaceVisibility();
250256
@@ -277,17 +283,20 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
277283 default:
278284 qFatal("MirSurfaceItem: Unhandled component status");
279285 }
286+
287+ if (m_consumesInput) {
288+ m_qmlSurface->setActiveFocus(hasActiveFocus());
289+ }
280290 }
281291
282292 Q_EMIT surfaceChanged(m_qmlSurface);
283293}
284294
285−void MirSurfaceItem::itemChange(ItemChange change, const ItemChangeData & value)
295+
296+void MirSurfaceItem::updateMirSurfaceActiveFocus(bool focused)
286297{
287− if (change == QQuickItem::ItemActiveFocusHasChanged) {
288− if (m_qmlSurface) {
289− m_qmlSurface->setActiveFocus(value.boolValue);
290− }
298+ if (m_qmlSurface && m_consumesInput && m_qmlSurface->live()) {
299+ m_qmlSurface->setActiveFocus(focused);
291300 }
292301}
293302
tests/mocks/Unity/Application/MirSurfaceItem.h+1−1
@@ -98,12 +98,12 @@ protected:
9898 void mousePressEvent(QMouseEvent * event) override;
9999 void mouseMoveEvent(QMouseEvent * event) override;
100100 void mouseReleaseEvent(QMouseEvent * event) override;
101− void itemChange(ItemChange change, const ItemChangeData & value) override;
102101
103102private Q_SLOTS:
104103 void onComponentStatusChanged(QQmlComponent::Status status);
105104 void updateScreenshot(QUrl screenshot);
106105 void updateMirSurfaceVisibility();
106+ void updateMirSurfaceActiveFocus(bool focused);
107107
108108private:
109109 void createQmlContentItem();
tests/mocks/Unity/Application/MirSurfaceListModel.cpp+28
@@ -67,6 +67,9 @@ void MirSurfaceListModel::appendSurface(MirSurface *surface)
6767 connectSurface(surface);
6868 endInsertRows();
6969 Q_EMIT countChanged();
70+ if (m_surfaceList.count() == 1) {
71+ Q_EMIT firstChanged();
72+ }
7073}
7174
7275void MirSurfaceListModel::connectSurface(MirSurface *surface)
@@ -83,6 +86,9 @@ void MirSurfaceListModel::removeSurface(MirSurface *surface)
8386 m_surfaceList.removeAt(i);
8487 endRemoveRows();
8588 Q_EMIT countChanged();
89+ if (m_surfaceList.count() == 0 || i == 0) {
90+ Q_EMIT firstChanged();
91+ }
8692 }
8793}
8894
@@ -100,6 +106,10 @@ void MirSurfaceListModel::moveSurface(int from, int to)
100106 m_surfaceList.move(from, to);
101107 endMoveRows();
102108 }
109+
110+ if ((from == 0 || to == 0) && m_surfaceList.count() > 1) {
111+ Q_EMIT firstChanged();
112+ }
103113}
104114
105115MirSurfaceInterface *MirSurfaceListModel::get(int index)
@@ -119,3 +129,21 @@ const MirSurfaceInterface *MirSurfaceListModel::get(int index) const
119129 return nullptr;
120130 }
121131}
132+
133+MirSurfaceInterface *MirSurfaceListModel::createSurface()
134+{
135+ QStringList screenshotIds = {"gallery", "map", "facebook", "camera", "browser", "music", "twitter"};
136+ int i = rand() % screenshotIds.count();
137+
138+ QUrl screenshotUrl = QString("qrc:///Unity/Application/screenshots/%1@12.png")
139+ .arg(screenshotIds[i]);
140+
141+ auto surface = new MirSurface(QString("prompt foo"),
142+ Mir::NormalType,
143+ Mir::RestoredState,
144+ screenshotUrl);
145+
146+ appendSurface(surface);
147+
148+ return surface;
149+}
tests/mocks/Unity/Application/MirSurfaceListModel.h+5
@@ -43,6 +43,11 @@ public:
4343
4444 bool contains(MirSurface *surface) const { return m_surfaceList.contains(surface); }
4545
46+ ////
47+ // API for tests
48+
49+ Q_INVOKABLE unity::shell::application::MirSurfaceInterface *createSurface();
50+
4651private:
4752 void raise(MirSurface *surface);
4853 void moveSurface(int from, int to);
tests/mocks/Unity/CMakeLists.txt+3−1
@@ -8,7 +8,7 @@ add_subdirectory(DashCommunicator)
88add_subdirectory(Screens)
99
1010pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
11−pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=11)
11+pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=12)
1212
1313include_directories(
1414 ${CMAKE_CURRENT_BINARY_DIR}
@@ -34,6 +34,7 @@ set(UnityQML_SOURCES
3434 fake_optionselectoroptions.cpp
3535 fake_rangeinputfilter.cpp
3636 fake_valuesliderfilter.cpp
37+ fake_expandablefilterwidget.cpp
3738 fake_valueslidervalues.cpp
3839 fake_unity_plugin.cpp
3940 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/CategoriesInterface.h
@@ -51,6 +52,7 @@ set(UnityQML_SOURCES
5152 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/SettingsModelInterface.h
5253 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ValueSliderFilterInterface.h
5354 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ValueSliderValuesInterface.h
55+ ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ExpandableFilterWidgetInterface.h
5456)
5557
5658# Workaround for gcc failure LP: #1417664
tests/mocks/Unity/fake_categories.cpp+4−1
@@ -88,7 +88,7 @@ Categories::data(const QModelIndex& index, int role) const
8888 }
8989 case RoleComponents:
9090 {
91− QVariantMap map, artMap, attributeMap;
91+ QVariantMap map, artMap, attributeMap, socialActionMap;
9292 if (index.row() % 2 != 0) {
9393 artMap["aspect-ratio"] = QString("1.%1").arg(index.row());
9494 } else {
@@ -99,6 +99,9 @@ Categories::data(const QModelIndex& index, int role) const
9999 map["title"] = "HOLA";
100100 map["subtitle"] = "HOLA";
101101 attributeMap["field"] = "attribute";
102+ socialActionMap["icon"] = "icon";
103+ socialActionMap["id"] = "socialHola";
104+ map["socialActions"] = socialActionMap;
102105 map["attributes"] = attributeMap;
103106 return map;
104107 }
tests/mocks/Unity/fake_expandablefilterwidget.cppnew file+53
@@ -0,0 +1,53 @@
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+#include "fake_expandablefilterwidget.h"
18+
19+#include "fake_filters.h"
20+
21+FakeExpandbleFilterWidget::FakeExpandbleFilterWidget(const QString &id, const QString &tag, const QString &title, QObject* parent)
22+ : unity::shell::scopes::ExpandableFilterWidgetInterface(parent)
23+ , m_filterId(id)
24+ , m_filterTag(tag)
25+ , m_title(title)
26+{
27+ m_filters = new Filters(this);
28+}
29+
30+QString FakeExpandbleFilterWidget::filterId() const
31+{
32+ return m_filterId;
33+}
34+
35+QString FakeExpandbleFilterWidget::filterTag() const
36+{
37+ return m_filterTag;
38+}
39+
40+QString FakeExpandbleFilterWidget::title() const
41+{
42+ return m_title;
43+}
44+
45+unity::shell::scopes::FiltersInterface* FakeExpandbleFilterWidget::filters() const
46+{
47+ return m_filters;
48+}
49+
50+void FakeExpandbleFilterWidget::addFilter(unity::shell::scopes::FilterBaseInterface* f)
51+{
52+ m_filters->addFilter(f);
53+}
tests/mocks/Unity/fake_expandablefilterwidget.hnew file+48
@@ -0,0 +1,48 @@
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+#ifndef FAKE_EXPANDABLEFILTERWIDGET_H
18+#define FAKE_EXPANDABLEFILTERWIDGET_H
19+
20+#include <unity/shell/scopes/ExpandableFilterWidgetInterface.h>
21+
22+class Filters;
23+
24+class FakeExpandbleFilterWidget : public unity::shell::scopes::ExpandableFilterWidgetInterface
25+{
26+ Q_OBJECT
27+
28+public:
29+ FakeExpandbleFilterWidget(const QString &id, const QString &tag, const QString &title, QObject* parent);
30+
31+ QString filterId() const override;
32+ QString filterTag() const override;
33+ QString title() const override;
34+
35+ unity::shell::scopes::FiltersInterface* filters() const override;
36+
37+ // mock API
38+ void addFilter(unity::shell::scopes::FilterBaseInterface* f);
39+
40+private:
41+ QString m_filterId;
42+ QString m_filterTag;
43+ QString m_title;
44+
45+ Filters *m_filters;
46+};
47+
48+#endif
tests/mocks/Unity/fake_filters.cpp+19−8
@@ -19,10 +19,14 @@
1919#include "fake_optionselectorfilter.h"
2020#include "fake_rangeinputfilter.h"
2121#include "fake_valuesliderfilter.h"
22−#include "fake_scope.h"
22+#include "fake_expandablefilterwidget.h"
2323
24−Filters::Filters(Scope* parent)
24+Filters::Filters(QObject* parent)
2525 : unity::shell::scopes::FiltersInterface(parent)
26+{
27+}
28+
29+void Filters::addFakeFilters()
2630{
2731 addFilter(new FakeOptionSelectorFilter("OSF1", "Tag1", "Which Cake you like More", false, QStringList() << "cheese" << "carrot" << "chocolate", this));
2832
@@ -41,6 +45,11 @@ Filters::Filters(Scope* parent)
4145 addFilter(vsf);
4246
4347 addFilter(new FakeOptionSelectorFilter("OSF2", "Tag2", "Which Countries have you been to?", true, QStringList() << "Germany" << "UK" << "New Zealand", this));
48+
49+ auto expandableFilter = new FakeExpandbleFilterWidget("EFW", "Tag5", "Advanced Settings", this);
50+ expandableFilter->addFilter(new FakeValueSliderFilter("VS2", "Tag6", 15, 10, 150, labels, this));
51+
52+ addFilter(expandableFilter);
4453}
4554
4655void Filters::addFilter(unity::shell::scopes::FilterBaseInterface *f)
@@ -58,9 +67,10 @@ void Filters::addFilter(unity::shell::scopes::FilterBaseInterface *f)
5867 }
5968 break;
6069
61− case FiltersInterface::ValueSliderFilter: {
62− // Not counting value slider as active in the mock
63− }
70+ case FiltersInterface::ExpandableFilterWidget:
71+ // Can't be active
72+ case FiltersInterface::ValueSliderFilter:
73+ // Not counting value as active in the mock
6474
6575 case Invalid:
6676 break;
@@ -113,9 +123,10 @@ int Filters::activeFiltersCount() const
113123 }
114124 break;
115125
116− case FiltersInterface::ValueSliderFilter: {
117− // Not counting value slider as active in the mock
118− }
126+ case FiltersInterface::ExpandableFilterWidget:
127+ // Can't be active
128+ case FiltersInterface::ValueSliderFilter:
129+ // Not counting value as active in the mock
119130
120131 case Invalid:
121132 break;
tests/mocks/Unity/fake_filters.h+4−4
@@ -20,25 +20,25 @@
2020#include <unity/shell/scopes/FiltersInterface.h>
2121#include <unity/shell/scopes/FilterBaseInterface.h>
2222
23−class Scope;
24−
2523class Filters : public unity::shell::scopes::FiltersInterface
2624{
2725 Q_OBJECT
2826
2927public:
30− Filters(Scope* parent);
28+ Filters(QObject* parent);
3129
3230 int rowCount(const QModelIndex &parent) const override;
3331 QVariant data(const QModelIndex &index, int role) const override;
3432
33+ // Mock API
3534 int activeFiltersCount() const;
35+ void addFakeFilters();
36+ void addFilter(unity::shell::scopes::FilterBaseInterface* f);
3637
3738Q_SIGNALS:
3839 void activeFiltersCountChanged();
3940
4041private:
41− void addFilter(unity::shell::scopes::FilterBaseInterface* f);
4242
4343 QVector<unity::shell::scopes::FilterBaseInterface*> m_filters;
4444};
tests/mocks/Unity/fake_resultsmodel.cpp+2
@@ -72,6 +72,8 @@ ResultsModel::data(const QModelIndex& index, int role) const
7272 case RoleUri:
7373 case RoleCategoryId:
7474 case RoleDndUri:
75+ case RoleAttributes:
76+ case RoleSocialActions:
7577 return QString();
7678 case RoleResult:
7779 return QString("Result.%1.%2").arg(m_categoryId).arg(index.row());
tests/mocks/Unity/fake_scope.cpp+2
@@ -49,6 +49,8 @@ Scope::Scope(QString const& id, QString const& name, bool favorite, Scopes* pare
4949 , m_filters(new Filters(this))
5050 , m_returnNullPreview(returnNullPreview)
5151{
52+ m_filters->addFakeFilters();
53+
5254 m_primaryNavigationFilter = new FakeOptionSelectorFilter("OSF3", "PFTag", "Which food you like More", false, QStringList() << "meat" << "vegetables", this);
5355 connect(m_filters, &Filters::activeFiltersCountChanged, this, &Scope::activeFiltersCountChanged);
5456}
tests/mocks/Utils/CMakeLists.txt−1
@@ -13,7 +13,6 @@ set(QMLPLUGIN_SRC
1313 ${CMAKE_SOURCE_DIR}/plugins/Utils/unitysortfilterproxymodelqml.cpp
1414 ${CMAKE_SOURCE_DIR}/plugins/Utils/unitymenumodelpaths.cpp
1515 ${CMAKE_SOURCE_DIR}/plugins/Utils/windowinputfilter.cpp
16− ${CMAKE_SOURCE_DIR}/plugins/Utils/windowscreenshotprovider.cpp
1716 ${CMAKE_SOURCE_DIR}/plugins/Utils/easingcurve.cpp
1817 ${CMAKE_SOURCE_DIR}/plugins/Utils/inputwatcher.cpp
1918 ${CMAKE_SOURCE_DIR}/plugins/Utils/timezoneFormatter.cpp
tests/mocks/Utils/plugin.cpp−8
@@ -33,7 +33,6 @@
3333#include <unitysortfilterproxymodelqml.h>
3434#include <unitymenumodelpaths.h>
3535#include <windowinputfilter.h>
36−#include <windowscreenshotprovider.h>
3736#include <easingcurve.h>
3837#include <timezoneFormatter.h>
3938#include <applicationsfiltermodel.h>
@@ -82,10 +81,3 @@ void FakeUtilsPlugin::registerTypes(const char *uri)
8281 qmlRegisterType<DeviceConfigParser>(uri, 0, 1, "DeviceConfigParser");
8382 qmlRegisterSingletonType<GlobalFunctions>(uri, 0, 1, "Functions", createGlobalFunctions);
8483}
85−
86−void FakeUtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
87−{
88− QQmlExtensionPlugin::initializeEngine(engine, uri);
89−
90− engine->addImageProvider(QLatin1String("window"), new WindowScreenshotProvider);
91−}
tests/mocks/Utils/plugin.h−1
@@ -27,7 +27,6 @@ class FakeUtilsPlugin : public QQmlExtensionPlugin
2727
2828public:
2929 void registerTypes(const char *uri);
30− void initializeEngine(QQmlEngine *engine, const char *uri);
3130};
3231
3332#endif
tests/mocks/Utils/windowstatestorage.cpp+1
@@ -50,6 +50,7 @@ QRect WindowStateStorage::getGeometry(const QString &windowId, const QRect &defa
5050void WindowStateStorage::saveStage(const QString &appId, int stage)
5151{
5252 m_stage[appId] = stage;
53+ Q_EMIT stageSaved(appId, stage);
5354}
5455
5556int WindowStateStorage::getStage(const QString &appId) const
tests/mocks/Utils/windowstatestorage.h+3
@@ -45,6 +45,9 @@ public:
4545Q_SIGNALS:
4646 void geometryChanged(const QVariantMap& geometry);
4747
48+ // For testing.
49+ void stageSaved(const QString& appId, int stage);
50+
4851private:
4952 void setGeometry(const QVariantMap& geometry);
5053 QVariantMap geometry() const;
tests/plugins/CMakeLists.txt−1
@@ -3,7 +3,6 @@ add_subdirectory(GlobalShortcut)
33add_subdirectory(Greeter)
44add_subdirectory(LightDM)
55add_subdirectory(Dash)
6−add_subdirectory(ScreenGrabber)
76add_subdirectory(Ubuntu)
87add_subdirectory(Unity)
98add_subdirectory(Utils)
tests/plugins/Dash/cardcreator/1.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
1616Item {
1717 id: artShapeHolder;
tests/plugins/Dash/cardcreator/1.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
1515Item {
1616 id: artShapeHolder;
tests/plugins/Dash/cardcreator/10.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515Loader {
1616 id: backgroundLoader;
1717 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/10.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414Loader {
1515 id: backgroundLoader;
1616 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/11.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515Loader {
1616 id: backgroundLoader;
1717 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/11.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414Loader {
1515 id: backgroundLoader;
1616 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/12.resnew file+139
@@ -0,0 +1,139 @@
1+AbstractButton {
2+ id: root;
3+ property var cardData;
4+ property string artShapeStyle: "inset";
5+ property string backgroundShapeStyle: "inset";
6+ property real fontScale: 1.0;
7+ property var scopeStyle: null;
8+ property int fixedHeaderHeight: -1;
9+ property size fixedArtShapeSize: Qt.size(-1, -1);
10+ readonly property string title: cardData && cardData["title"] || "";
11+ property bool showHeader: true;
12+ implicitWidth: childrenRect.width;
13+ enabled: true;
14+signal action(var actionId);
15+readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
16+Item {
17+ id: artShapeHolder;
18+ height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height;
19+ width: root.fixedArtShapeSize.width > 0 ? root.fixedArtShapeSize.width : artShapeLoader.width;
20+ anchors { horizontalCenter: parent.horizontalCenter; }
21+ Loader {
22+ id: artShapeLoader;
23+ objectName: "artShapeLoader";
24+ readonly property string cardArt: cardData && cardData["art"] || "";
25+ active: cardArt != "";
26+ asynchronous: true;
27+ visible: status == Loader.Ready;
28+ sourceComponent: Item {
29+ id: artShape;
30+ objectName: "artShape";
31+ visible: image.status == Image.Ready;
32+ readonly property alias image: artImage;
33+ Loader {
34+ anchors.fill: parent;
35+ visible: true;
36+ sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
37+ Component {
38+ id: artShapeShapeComponent;
39+ UbuntuShape {
40+ source: artImage;
41+ sourceFillMode: UbuntuShape.PreserveAspectCrop;
42+ radius: "medium";
43+ aspect: {
44+ switch (root.artShapeStyle) {
45+ case "inset": return UbuntuShape.Inset;
46+ case "shadow": return UbuntuShape.DropShadow;
47+ default:
48+ case "flat": return UbuntuShape.Flat;
49+ }
50+ }
51+ }
52+ }
53+ Component {
54+ id: artShapeIconComponent;
55+ ProportionalShape { source: artImage; aspect: UbuntuShape.DropShadow; }
56+ }
57+ }
58+ readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
59+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : 0.75;
60+ Component.onCompleted: { updateWidthHeightBindings(); }
61+ Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
62+ function updateWidthHeightBindings() {
63+ if (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) {
64+ width = root.fixedArtShapeSize.width;
65+ height = root.fixedArtShapeSize.height;
66+ } else {
67+ width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width });
68+ height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
69+ }
70+ }
71+ CroppedImageMinimumSourceSize {
72+ id: artImage;
73+ objectName: "artImage";
74+ source: artShapeLoader.cardArt;
75+ asynchronous: true;
76+ visible: !true;
77+ width: root.width;
78+ height: width / artShape.aspect;
79+ }
80+ }
81+ }
82+ }
83+readonly property int headerHeight: titleLabel.height + subtitleLabel.height + subtitleLabel.anchors.topMargin;
84+Label {
85+ id: titleLabel;
86+ objectName: "titleLabel";
87+ anchors { right: parent.right;
88+ left: parent.left;
89+ top: artShapeHolder.bottom;
90+ topMargin: units.gu(1);
91+ }
92+ elide: Text.ElideRight;
93+ fontSize: "small";
94+ wrapMode: Text.Wrap;
95+ maximumLineCount: 2;
96+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
97+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
98+ visible: showHeader ;
99+ width: undefined;
100+ text: root.title;
101+ font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal;
102+ horizontalAlignment: Text.AlignLeft;
103+ }
104+Label {
105+ id: subtitleLabel;
106+ objectName: "subtitleLabel";
107+ anchors { left: titleLabel.left;
108+ leftMargin: titleLabel.leftMargin;
109+ right: titleLabel.right;
110+ top: titleLabel.bottom;
111+ }
112+ anchors.topMargin: units.dp(2);
113+ elide: Text.ElideRight;
114+ maximumLineCount: 1;
115+ fontSize: "x-small";
116+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
117+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
118+ visible: titleLabel.visible && titleLabel.text;
119+ text: cardData && cardData["subtitle"] || "";
120+ font.weight: Font.Light;
121+ }
122+CardSocialActions {
123+ id: socialActionsRow;
124+ objectName: "socialActionsRow";
125+ anchors { top: subtitleLabel.bottom; left: parent.left; right: parent.right; topMargin: units.gu(1); }
126+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
127+ model: cardData && cardData["socialActions"];
128+ onClicked: root.action(actionId);
129+}
130+UbuntuShape {
131+ id: touchdown;
132+ objectName: "touchdown";
133+ anchors { fill: artShapeHolder }
134+ visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed;
135+ radius: "medium";
136+ borderSource: "radius_pressed.sci"
137+}
138+implicitHeight: socialActionsRow.y + socialActionsRow.height + units.gu(1);
139+}
tests/plugins/Dash/cardcreator/12.res.cardcreatornew file+138
@@ -0,0 +1,138 @@
1+AbstractButton {
2+ id: root;
3+ property var cardData;
4+ property string artShapeStyle: "inset";
5+ property string backgroundShapeStyle: "inset";
6+ property real fontScale: 1.0;
7+ property var scopeStyle: null;
8+ property size fixedArtShapeSize: Qt.size(-1, -1);
9+ readonly property string title: cardData && cardData["title"] || "";
10+ property bool showHeader: true;
11+ implicitWidth: childrenRect.width;
12+ enabled: true;
13+signal action(var actionId);
14+readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
15+Item {
16+ id: artShapeHolder;
17+ height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height;
18+ width: root.fixedArtShapeSize.width > 0 ? root.fixedArtShapeSize.width : artShapeLoader.width;
19+ anchors { horizontalCenter: parent.horizontalCenter; }
20+ Loader {
21+ id: artShapeLoader;
22+ objectName: "artShapeLoader";
23+ readonly property string cardArt: cardData && cardData["art"] || "";
24+ active: cardArt != "";
25+ asynchronous: false;
26+ visible: status == Loader.Ready;
27+ sourceComponent: Item {
28+ id: artShape;
29+ objectName: "artShape";
30+ visible: image.status == Image.Ready;
31+ readonly property alias image: artImage;
32+ Loader {
33+ anchors.fill: parent;
34+ visible: true;
35+ sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
36+ Component {
37+ id: artShapeShapeComponent;
38+ UbuntuShape {
39+ source: artImage;
40+ sourceFillMode: UbuntuShape.PreserveAspectCrop;
41+ radius: "medium";
42+ aspect: {
43+ switch (root.artShapeStyle) {
44+ case "inset": return UbuntuShape.Inset;
45+ case "shadow": return UbuntuShape.DropShadow;
46+ default:
47+ case "flat": return UbuntuShape.Flat;
48+ }
49+ }
50+ }
51+ }
52+ Component {
53+ id: artShapeIconComponent;
54+ ProportionalShape { source: artImage; aspect: UbuntuShape.DropShadow; }
55+ }
56+ }
57+ readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
58+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : 0.75;
59+ Component.onCompleted: { updateWidthHeightBindings(); }
60+ Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
61+ function updateWidthHeightBindings() {
62+ if (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) {
63+ width = root.fixedArtShapeSize.width;
64+ height = root.fixedArtShapeSize.height;
65+ } else {
66+ width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width });
67+ height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
68+ }
69+ }
70+ CroppedImageMinimumSourceSize {
71+ id: artImage;
72+ objectName: "artImage";
73+ source: artShapeLoader.cardArt;
74+ asynchronous: false;
75+ visible: !true;
76+ width: root.width;
77+ height: width / artShape.aspect;
78+ }
79+ }
80+ }
81+ }
82+readonly property int headerHeight: titleLabel.height + subtitleLabel.height + subtitleLabel.anchors.topMargin;
83+Label {
84+ id: titleLabel;
85+ objectName: "titleLabel";
86+ anchors { right: parent.right;
87+ left: parent.left;
88+ top: artShapeHolder.bottom;
89+ topMargin: units.gu(1);
90+ }
91+ elide: Text.ElideRight;
92+ fontSize: "small";
93+ wrapMode: Text.Wrap;
94+ maximumLineCount: 2;
95+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
96+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
97+ visible: showHeader ;
98+ width: undefined;
99+ text: root.title;
100+ font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal;
101+ horizontalAlignment: Text.AlignLeft;
102+ }
103+Label {
104+ id: subtitleLabel;
105+ objectName: "subtitleLabel";
106+ anchors { left: titleLabel.left;
107+ leftMargin: titleLabel.leftMargin;
108+ right: titleLabel.right;
109+ top: titleLabel.bottom;
110+ }
111+ anchors.topMargin: units.dp(2);
112+ elide: Text.ElideRight;
113+ maximumLineCount: 1;
114+ fontSize: "x-small";
115+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
116+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
117+ visible: titleLabel.visible && titleLabel.text;
118+ text: cardData && cardData["subtitle"] || "";
119+ font.weight: Font.Light;
120+ }
121+CardSocialActions {
122+ id: socialActionsRow;
123+ objectName: "socialActionsRow";
124+ anchors { top: subtitleLabel.bottom; left: parent.left; right: parent.right; topMargin: units.gu(1); }
125+ color: root.scopeStyle ? root.scopeStyle.foreground : theme.palette.normal.baseText;
126+ model: cardData && cardData["socialActions"];
127+ onClicked: root.action(actionId);
128+}
129+UbuntuShape {
130+ id: touchdown;
131+ objectName: "touchdown";
132+ anchors { fill: artShapeHolder }
133+ visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed;
134+ radius: "medium";
135+ borderSource: "radius_pressed.sci"
136+}
137+implicitHeight: socialActionsRow.y + socialActionsRow.height + units.gu(1);
138+}
tests/plugins/Dash/cardcreator/12.tstnew file+3
@@ -0,0 +1,3 @@
1+template: {"card-layout":"vertical","card-size":"small","category-layout":"grid","collapsed-rows":2}
2+components: {"art":{"aspect-ratio":0.75,"field":"art"},"subtitle":{"field":"price"},"title":{"field":"title"},"attributes":{},"social-actions":{}}
3+result: 12.res
tests/plugins/Dash/cardcreator/2.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515Loader {
1616 id: backgroundLoader;
1717 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/2.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414Loader {
1515 id: backgroundLoader;
1616 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/3.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
1616Item {
1717 id: artShapeHolder;
tests/plugins/Dash/cardcreator/3.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
1515Item {
1616 id: artShapeHolder;
tests/plugins/Dash/cardcreator/4.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515readonly property size artShapeSize: Qt.size(-1, -1);
1616readonly property int headerHeight: row.height;
1717Row {
tests/plugins/Dash/cardcreator/4.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414readonly property size artShapeSize: Qt.size(-1, -1);
1515readonly property int headerHeight: row.height;
1616Row {
tests/plugins/Dash/cardcreator/5.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: false;
14−
14+signal action(var actionId);
1515readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
1616Item {
1717 id: artShapeHolder;
tests/plugins/Dash/cardcreator/5.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: false;
13−
13+signal action(var actionId);
1414readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
1515Item {
1616 id: artShapeHolder;
tests/plugins/Dash/cardcreator/6.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515Loader {
1616 id: backgroundLoader;
1717 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/6.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414Loader {
1515 id: backgroundLoader;
1616 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/7.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515Loader {
1616 id: backgroundLoader;
1717 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/7.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414Loader {
1515 id: backgroundLoader;
1616 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/8.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515Loader {
1616 id: backgroundLoader;
1717 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/8.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414Loader {
1515 id: backgroundLoader;
1616 objectName: "backgroundLoader";
tests/plugins/Dash/cardcreator/9.res+1−1
@@ -11,7 +11,7 @@ AbstractButton {
1111 property bool showHeader: true;
1212 implicitWidth: childrenRect.width;
1313 enabled: true;
14−
14+signal action(var actionId);
1515readonly property size artShapeSize: Qt.size(-1, -1);
1616readonly property int headerHeight: titleLabel.height + subtitleLabel.height + subtitleLabel.anchors.topMargin + audioProgressBar.height + audioProgressBar.anchors.topMargin;
1717Label {
tests/plugins/Dash/cardcreator/9.res.cardcreator+1−1
@@ -10,7 +10,7 @@ AbstractButton {
1010 property bool showHeader: true;
1111 implicitWidth: childrenRect.width;
1212 enabled: true;
13−
13+signal action(var actionId);
1414readonly property size artShapeSize: Qt.size(-1, -1);
1515readonly property int headerHeight: titleLabel.height + subtitleLabel.height + subtitleLabel.anchors.topMargin + audioProgressBar.height + audioProgressBar.anchors.topMargin;
1616Label {
tests/plugins/ScreenGrabber/CMakeLists.txtdeleted−14
@@ -1,14 +0,0 @@
1−include_directories(
2− ${CMAKE_SOURCE_DIR}/plugins/ScreenGrabber
3− ${CMAKE_CURRENT_BINARY_DIR}
4− )
5−
6−add_definitions(
7− -DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}"
8− )
9−add_definitions(-DBUILT_PLUGINS_DIR="${CMAKE_BINARY_DIR}/plugins")
10−
11−add_executable(ScreenGrabberTestExec ScreenGrabberTest.cpp ${CMAKE_SOURCE_DIR}/plugins/ScreenGrabber/screengrabber.cpp)
12−qt5_use_modules(ScreenGrabberTestExec Test Quick Concurrent)
13−target_link_libraries(ScreenGrabberTestExec ${Qt5Quick_LIBRARIES} ScreenGrabber-qml)
14−add_unity8_uitest(ScreenGrabber ScreenGrabberTestExec DEPENDS ScreenGrabber-qml)
tests/plugins/ScreenGrabber/ScreenGrabberTest.cppdeleted−77
@@ -1,77 +0,0 @@
1−/*
2− * Copyright (C) 2015 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−#include "screengrabber.h"
18−
19−#include <QtTest>
20−#include <QtQuick/QQuickView>
21−#include <QtQuick/QQuickItem>
22−#include <QQmlEngine>
23−
24−class ScreenGrabberTest: public QObject
25−{
26− Q_OBJECT
27−
28−private Q_SLOTS:
29−
30− void initTestCase()
31− {
32− m_view = new QQuickView();
33− m_view->engine()->addImportPath(BUILT_PLUGINS_DIR);
34− m_view->setSource(QUrl::fromLocalFile(CURRENT_SOURCE_DIR "/grabber.qml"));
35− m_grabber = dynamic_cast<ScreenGrabber*>(m_view->rootObject()->property("grabber").value<QObject*>());
36− QVERIFY(m_grabber);
37− m_view->show();
38− QTest::qWaitForWindowExposed(m_view);
39− }
40−
41− void cleanupTestCase()
42− {
43− delete m_view;
44− m_view = nullptr;
45− QTRY_COMPARE(QThreadPool::globalInstance()->activeThreadCount(), 0);
46− }
47−
48− void testGrabScreenshot()
49− {
50− QSignalSpy grabberSpy(m_grabber, &ScreenGrabber::screenshotSaved);
51− m_grabber->captureAndSave();
52− QTRY_VERIFY(grabberSpy.count() == 1);
53− const QVariantList args = grabberSpy.takeFirst();
54− QVERIFY(args.count() == 1); // verify we got a non-empty filename where the screenshot has been saved
55− QVERIFY(!args.first().toString().isEmpty());
56− }
57−
58− void testRotatedScreenshot()
59− {
60− QSignalSpy grabberSpy(m_grabber, &ScreenGrabber::screenshotSaved);
61− m_grabber->captureAndSave(90); // rotate by 90°
62− QTRY_VERIFY(grabberSpy.count() == 1);
63− const QVariantList args = grabberSpy.takeFirst();
64− const QString filename = args.first().toString();
65− QVERIFY(!filename.isEmpty());
66− QImage img(filename);
67− QVERIFY(img.height() > img.width()); // verify that the image got rotated by 90° (height > width)
68− }
69−
70−private:
71− QQuickView *m_view;
72− ScreenGrabber *m_grabber = nullptr;
73−};
74−
75−QTEST_MAIN(ScreenGrabberTest)
76−
77−#include "ScreenGrabberTest.moc"
tests/plugins/ScreenGrabber/grabber.qmldeleted−31
@@ -1,31 +0,0 @@
1−/*
2− * Copyright 2015 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 ScreenGrabber 0.1
19−
20−Rectangle {
21− property var grabber: screenGrabber
22−
23− width: 101 // width intentionally bigger than height to test rotation
24− height: 100
25− color: "green"
26−
27− ScreenGrabber {
28− id: screenGrabber
29− objectName: "screenGrabber"
30− }
31−}
tests/plugins/Unity/Launcher/launchermodeltest.cpp+1
@@ -67,6 +67,7 @@ public:
6767 QSize initialSurfaceSize() const override { return QSize(); }
6868 void setInitialSurfaceSize(const QSize &) override {}
6969 MirSurfaceListInterface* surfaceList() override { return nullptr; }
70+ MirSurfaceListInterface* promptSurfaceList() override { return nullptr; }
7071
7172 // Methods used for mocking (not in the interface)
7273 void setFocused(bool focused) { m_focused = focused; Q_EMIT focusedChanged(focused); }
tests/qmltests/CMakeLists.txt+1
@@ -57,6 +57,7 @@ add_unity8_qmltest(Dash/Filters FilterOptionSelector)
5757add_unity8_qmltest(Dash/Filters FilterRangeInput)
5858add_unity8_qmltest(Dash/Filters FilterValueSlider)
5959add_unity8_qmltest(Dash/Filters FilterWidgetFactory)
60+add_unity8_qmltest(Dash/Filters FilterExpandableWidget)
6061add_unity8_qmltest(Dash/ScopeSettings ScopeSettingBoolean)
6162add_unity8_qmltest(Dash/ScopeSettings ScopeSettingList)
6263add_unity8_qmltest(Dash/ScopeSettings ScopeSettingNumber)
tests/qmltests/Dash/CardHelpers.js+9−7
@@ -16,7 +16,8 @@
1616
1717.pragma library
1818
19−var components = ["title", "art", "subtitle", "mascot", "emblem", "summary", "attributes", "overlayColor", "quickPreviewData"]
19+var components = ["title", "art", "subtitle", "mascot", "emblem", "summary", "attributes", "social-actions", "overlayColor", "quickPreviewData"]
20+var dataKeys = ["title", "art", "subtitle", "mascot", "emblem", "summary", "attributes", "socialActions", "overlayColor", "quickPreviewData"]
2021
2122var defaultLayout = ' \
2223{ \
@@ -38,7 +39,8 @@ var defaultLayout = ' \
3839 "mascot": null, \
3940 "emblem": null, \
4041 "summary": null, \
41− "attributes": { "max-count": 2 } \
42+ "attributes": { "max-count": 2 }, \
43+ "social-actions": null \
4244 }, \
4345 "resources": {} \
4446}'
@@ -52,10 +54,10 @@ var fullMapping = ' \
5254 "emblem": "emblem", \
5355 "overlayColor": "overlayColor", \
5456 "summary": "summary", \
55− "attributes": "attributes" \
57+ "attributes": "attributes", \
58+ "social-actions": "socialActions" \
5659}'
5760
58−
5961function tryParse(json, errorLabel) {
6062 var o = undefined;
6163 if (errorLabel !== undefined) {
@@ -82,12 +84,12 @@ function mapData(json, layout, errorLabel) {
8284 for (var k in components) {
8385 try {
8486 if (typeof layout[components[k]] == "object") {
85− d[components[k]] = o[layout[components[k]]['field']];
87+ d[dataKeys[k]] = o[layout[components[k]]['field']];
8688 } else {
87− d[components[k]] = o[layout[components[k]]];
89+ d[dataKeys[k]] = o[layout[components[k]]];
8890 }
8991 } catch(err) {
90− d[components[k]] = undefined;
92+ d[dataKeys[k]] = undefined;
9193 }
9294 }
9395 }
tests/qmltests/Dash/Filters/tst_FilterExpandableWidget.qmlnew file+99
@@ -0,0 +1,99 @@
1+/*
2+ * Copyright 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 QtTest 1.0
19+import Ubuntu.Components 1.3
20+import "../../../../qml/Dash/Filters"
21+import Unity.Test 0.1 as UT
22+import Unity 0.2
23+
24+Rectangle {
25+ id: root
26+ width: units.gu(60)
27+ height: units.gu(80)
28+ color: theme.palette.selected.background
29+
30+ QtObject {
31+ id: widgetData1
32+
33+ property string title: "Expand me!"
34+ property ListModel filters: ListModel {
35+ dynamicRoles: true
36+ }
37+ }
38+
39+ QtObject {
40+ id: sliderObject
41+
42+ property string title
43+ property int value: 30
44+ property int minValue: 10
45+ property int maxValue: 150
46+
47+ property ListModel values: ListModel {
48+ ListElement {
49+ value: 10
50+ label: "10"
51+ }
52+ ListElement {
53+ value: 30
54+ label: "30"
55+ }
56+ ListElement {
57+ value: 100
58+ label: "100"
59+ }
60+ ListElement {
61+ value: 150
62+ label: "150"
63+ }
64+ }
65+ }
66+
67+ Component.onCompleted: {
68+ widgetData1.filters.append({"type": Filters.ValueSliderFilter, "filter": sliderObject, id: "trololo"});
69+ }
70+
71+ FilterWidgetFactory {
72+ id: factory
73+ widgetId: "testExpandableWidget"
74+ widgetType: Filters.ExpandableFilterWidget
75+ widgetData: widgetData1
76+ anchors {
77+ left: parent.left
78+ right: parent.right
79+ }
80+ height: implicitHeight
81+ clip: true
82+ }
83+
84+ UT.UnityTestCase {
85+ name: "FilterExpandableWidget"
86+ when: windowShown
87+
88+ function test_expandedChanges() {
89+ var expandingItem = findChild(factory, "expandingItem");
90+ verify(!expandingItem.expanded)
91+ compare(expandingItem.height, expandingItem.collapsedHeight)
92+ mouseClick(expandingItem);
93+ verify(expandingItem.expanded)
94+ tryCompare(expandingItem, "height", expandingItem.expandedHeight)
95+ verify(expandingItem.collapsedHeight < expandingItem.expandedHeight / 2);
96+ }
97+
98+ }
99+}
tests/qmltests/Dash/Filters/tst_FilterWidgetFactory.qml+2−1
@@ -43,7 +43,8 @@ Rectangle {
4343 return [
4444 { tag: "OptionSelector", type: Filters.OptionSelectorFilter, source: "FilterOptionSelector.qml" },
4545 { tag: "RangeInputFilter", type: Filters.RangeInputFilter, source: "FilterRangeInput.qml" },
46− { tag: "ValueSliderFilter", type: Filters.ValueSliderFilter, source: "FilterValueSlider.qml" }
46+ { tag: "ValueSliderFilter", type: Filters.ValueSliderFilter, source: "FilterValueSlider.qml" },
47+ { tag: "ExpandableFilter", type: Filters.ExpandableFilterWidget, source: "FilterExpandableWidget.qml" }
4748 ];
4849 }
4950
tests/qmltests/Dash/Previews/tst_PreviewActions.qml+100−17
@@ -26,17 +26,17 @@ Rectangle {
2626 width: units.gu(60)
2727 height: units.gu(80)
2828
29− property var actionDataOneAction: {
29+ readonly property var actionDataOneAction: {
3030 "actions": [{"label": "Some Label", "id": "someid"}]
3131 }
3232
33− property var actionDataTwoActions: {
33+ readonly property var actionDataTwoActions: {
3434 "actions": [{"label": "Some Label A", "id": "someid1"},
3535 {"label": "Some Label B", "id": "someid2"}
3636 ]
3737 }
3838
39− property var actionDataFiveActions: {
39+ readonly property var actionDataFiveActions: {
4040 "actions": [{"label": "Some Label C", "id": "someid3"},
4141 {"label": "Some Label D", "id": "someid4"},
4242 {"label": "Some Label E", "id": "someid5"},
@@ -45,6 +45,15 @@ Rectangle {
4545 ]
4646 }
4747
48+ property var actionModelActions: {
49+ "actions": [{"label": "Some Label H", "id": "someid8"},
50+ {"label": "Some Label I", "id": "someid9"},
51+ {"label": "Some Label J", "id": "someid10"},
52+ {"label": "Some Label K", "id": "someid11"},
53+ {"label": "Some Label L", "id": "someid12"}
54+ ]
55+ }
56+
4857 SignalSpy {
4958 id: spy
5059 signalName: "triggered"
@@ -88,26 +97,32 @@ Rectangle {
8897 onTriggered: console.log("triggered", widgetId, actionId);
8998 width: units.gu(60)
9099 }
100+
101+ PreviewActions {
102+ id: changeModelActions
103+ width: units.gu(60)
104+ }
105+
106+ PreviewActions {
107+ id: updateModelActions
108+ width: units.gu(60)
109+ }
91110 }
92111
93112 UT.UnityTestCase {
94113 name: "PreviewActionTest"
95114 when: windowShown
96115
97− function cleanup()
98− {
99− spy.clear();
100− }
101−
102116 function checkButtonPressSignal(target, id)
103117 {
104− var button = findChild(root, "button" + id);
118+ var button = findChild(target, "button" + id);
105119 verify(button != null);
106120 spy.target = target;
107121 mouseClick(button);
108122 compare(spy.count, 1);
109123 compare(spy.signalArguments[0][0], target.widgetId);
110124 compare(spy.signalArguments[0][1], id);
125+ spy.clear();
111126 }
112127
113128 function test_checkButtons_data() {
@@ -120,7 +135,7 @@ Rectangle {
120135 }
121136
122137 function test_checkButtons(data) {
123− checkButtonPressSignal(data.target, data.id, data.buttonNumber)
138+ checkButtonPressSignal(data.target, data.id)
124139 }
125140
126141 function test_comboButton_data() {
@@ -132,17 +147,85 @@ Rectangle {
132147 ]
133148 }
134149
135− function test_comboButton(data) {
136− var button = findChild(root, "moreLessButton");
137− var buttonColumn = findChild(root, "buttonColumn");
150+ function pressMoreButton(buttonGroup)
151+ {
152+ var button = findChild(buttonGroup, "moreLessButton");
153+ var buttonColumn = findChild(buttonGroup, "buttonColumn");
138154 verify(button != null);
139− var twoActionsY = twoActions.y
140155 mouseClick(button);
141− tryCompareFunction(function () { return twoActions.y <= twoActionsY; }, false);
142156 tryCompare(buttonColumn, "height", buttonColumn.implicitHeight);
143− checkButtonPressSignal(buttonAndCombo, data.id, data.buttonNumber);
144− mouseClick(button);
157+ }
158+
159+ function test_comboButton(data) {
160+ var twoActionsY = twoActions.y
161+ pressMoreButton(buttonAndCombo);
162+ tryCompareFunction(function () { return twoActions.y <= twoActionsY; }, false);
163+ checkButtonPressSignal(buttonAndCombo, data.id);
164+ mouseClick(findChild(buttonAndCombo, "moreLessButton"));
145165 tryCompare(twoActions, "y", twoActionsY);
146166 }
167+
168+ function test_modelChange() {
169+ changeModelActions.widgetData = actionDataOneAction;
170+ waitForRendering(changeModelActions);
171+ checkButtonPressSignal(changeModelActions, "someid");
172+
173+ changeModelActions.widgetData = actionDataTwoActions;
174+ waitForRendering(changeModelActions);
175+ checkButtonPressSignal(changeModelActions, "someid1");
176+ checkButtonPressSignal(changeModelActions, "someid2");
177+
178+ changeModelActions.widgetData = actionDataFiveActions;
179+ waitForRendering(changeModelActions);
180+ pressMoreButton(changeModelActions);
181+ checkButtonPressSignal(changeModelActions, "someid3");
182+ checkButtonPressSignal(changeModelActions, "someid4");
183+ checkButtonPressSignal(changeModelActions, "someid5");
184+ checkButtonPressSignal(changeModelActions, "someid6");
185+ }
186+
187+ function test_modelUpdate() {
188+ updateModelActions.widgetData = actionModelActions;
189+ waitForRendering(updateModelActions);
190+ pressMoreButton(updateModelActions);
191+ checkButtonPressSignal(updateModelActions, "someid8");
192+ checkButtonPressSignal(updateModelActions, "someid9");
193+ checkButtonPressSignal(updateModelActions, "someid10");
194+ checkButtonPressSignal(updateModelActions, "someid11");
195+ checkButtonPressSignal(updateModelActions, "someid12");
196+
197+ updateModelActions["actions"].pop();
198+ updateModelActions.actionsChanged();
199+
200+ // Check that some12 is gone
201+ verify(!findChild(updateModelActions, "buttonsomeid12"));
202+
203+ updateModelActions["actions"][3].id = "someidmoo";
204+ updateModelActions.actionsChanged();
205+ checkButtonPressSignal(updateModelActions, "someidmoo");
206+
207+ verify(findChild(updateModelActions, "moreLessButton"));
208+
209+ updateModelActions["actions"].pop();
210+ updateModelActions["actions"].pop();
211+ updateModelActions.actionsChanged();
212+
213+ // Check there is no more/less button anymore
214+ verify(!findChild(updateModelActions, "moreLessButton"));
215+
216+ updateModelActions["actions"][1].id = "someidbar";
217+ updateModelActions.actionsChanged();
218+ checkButtonPressSignal(updateModelActions, "someidbar");
219+
220+ updateModelActions["actions"].pop();
221+ updateModelActions.actionsChanged();
222+
223+ // Check the loader for the second button/combo is gone
224+ compare(findChild(updateModelActions, "loader").source, "");
225+
226+ updateModelActions["actions"][0].id = "someidlolar";
227+ updateModelActions.actionsChanged();
228+ checkButtonPressSignal(updateModelActions, "someidlolar");
229+ }
147230 }
148231}
tests/qmltests/Dash/Previews/tst_PreviewIconActions.qml+14−4
@@ -69,9 +69,12 @@ Rectangle {
6969 Timer {
7070 id: timer
7171 property int index: -1
72+ property bool changeIcon: true
7273 interval: 500
7374 onTriggered: {
74− actionDataActions.actions[index].icon = Qt.resolvedUrl("../../UnityLogo.png");
75+ if (changeIcon) {
76+ actionDataActions.actions[index].icon = Qt.resolvedUrl("../../UnityLogo.png");
77+ }
7578 preview.widgetDataChanged();
7679 index = -1;
7780 }
@@ -89,12 +92,14 @@ Rectangle {
8992
9093 function test_checkButtonWithTemporary_data() {
9194 return [
92− {tag: "with temporary", temporaryIcon: "emblem", index: 0},
93− {tag: "without temporary", temporaryIcon: undefined, index: 2},
95+ {tag: "with temporary change icon", temporaryIcon: "emblem", index: 0, changeIcon: true},
96+ {tag: "with temporary no change icon", temporaryIcon: "emblem", index: 1, changeIcon: false},
97+ {tag: "without temporary", temporaryIcon: undefined, index: 2, changeIcon: true},
9498 ];
9599 }
96100
97101 function test_checkButtonWithTemporary(data) {
102+ waitForRendering(preview);
98103 spy.target = preview;
99104
100105 var buttonId = actionDataActions.actions[data.index].id;
@@ -108,6 +113,7 @@ Rectangle {
108113
109114 compare(image.source, buttonIcon);
110115 compare(label.text, buttonLabel);
116+ timer.changeIcon = data.changeIcon;
111117 mouseClick(button);
112118 compare(spy.count, 1);
113119 compare(spy.signalArguments[0][1], buttonId);
@@ -119,7 +125,11 @@ Rectangle {
119125 tryCompareFunction(function() {
120126 var button = findChild(root, "button" + buttonId);
121127 var image = findChildsByType(button, "QQuickImage")[0];
122− return image.source && image.source.toString().indexOf("UnityLogo") > -1;
128+ if (data.changeIcon) {
129+ return image.source && image.source.toString().indexOf("UnityLogo") > -1;
130+ } else {
131+ return image.source && image.source == buttonIcon;
132+ }
123133 }, true);
124134 }
125135 }
tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+17
@@ -44,6 +44,11 @@ Rectangle {
4444 "fallback": "../../graphics/phone_background.jpg"
4545 }
4646
47+ property var widgetData4: {
48+ "source": "fadsasf",
49+ "fallback": "../../graphics/phone_background.jpg"
50+ }
51+
4752 Loader {
4853 id: loader
4954 width: parent.width
@@ -112,5 +117,17 @@ Rectangle {
112117 waitForRendering(lazyImage);
113118 tryCompare(lazyImage, "state", "ready");
114119 }
120+
121+ function test_fallback_then_source() {
122+ zoomableImage.widgetData = widgetData4;
123+ waitForRendering(zoomableImage);
124+ waitForRendering(lazyImage);
125+ tryCompare(lazyImage, "state", "ready");
126+ verify(lazyImage.sourceImage.source.toString().indexOf("phone_background") > -1);
127+ zoomableImage.widgetData["source"] = "../../graphics/tablet_background.jpg"
128+ zoomableImage.widgetDataChanged();
129+ tryCompare(lazyImage, "state", "ready");
130+ verify(lazyImage.sourceImage.source.toString().indexOf("tablet_background") > -1);
131+ }
115132 }
116133}
tests/qmltests/Dash/tst_Card.qml+38−3
@@ -36,6 +36,10 @@ Rectangle {
3636 "subtitle": "bar",
3737 "summary": "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
3838 "attributes": [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}],
39+ "socialActions": [{"id":"like","icon":"image://theme/ok","temporaryIcon":"image://theme/undo"},
40+ {"id":"share","icon":"image://theme/cancel"},
41+ {"id":"like","icon":"image://theme/ok","temporaryIcon":"image://theme/undo"},
42+ {"id":"share","icon":"image://theme/cancel"}],
3943 "quickPreviewData": {"uri": "/some/file", "duration": "14"}
4044 }'
4145
@@ -211,6 +215,11 @@ Rectangle {
211215 }
212216 }
213217
218+ SignalSpy {
219+ id: signalSpy
220+ signalName: "action"
221+ }
222+
214223 UT.UnityTestCase {
215224 id: testCase
216225 name: "Card"
@@ -274,9 +283,11 @@ Rectangle {
274283 { tag: "Wide", width: units.gu(18), index: 0 },
275284 { tag: "Horizontal", width: units.gu(38), index: 5 },
276285 // Make sure card ends with header when there's no summary
277− { tag: "NoSummary", height: function() { var cardToolRow = findChild(cardTool, "outerRow");
278− return cardToolRow.y + cardToolRow.height + units.gu(1) }, index: 6 },
279− { tag: "HorizontalNoSummary", height: function() { return headerRow.height + units.gu(2) }, card_layout: "horizontal", index: 6 },
286+ { tag: "NoSummary", height: function() { var socialActionsRow = findChild(cardTool, "socialActionsRow");
287+ return socialActionsRow.y + socialActionsRow.height + units.gu(1) }, index: 6 },
288+ { tag: "HorizontalNoSummary", height: function() { var socialActionsRow = findChild(cardTool, "socialActionsRow");
289+ return socialActionsRow.y + socialActionsRow.height + units.gu(1) },
290+ card_layout: "horizontal", index: 6 },
280291 ]
281292 }
282293
@@ -641,5 +652,29 @@ Rectangle {
641652 verify((card.width - titleToCard.x - titleToCard.width) === units.gu(1));
642653 }
643654 }
655+
656+ function test_action() {
657+ selector.selectedIndex = 0;
658+ waitForRendering(card);
659+
660+ signalSpy.target = card;
661+ var socialActionsRow = findChild(card, "socialActionsRow");
662+ var delegate0 = findChild(socialActionsRow, "delegate0");
663+ var icon0 = findChild(delegate0, "icon");
664+ var delegate1 = findChild(socialActionsRow, "delegate1");
665+ var icon1 = findChild(delegate1, "icon");
666+
667+ compare(icon0.source, "image://theme/ok");
668+ mouseClick(delegate0, delegate0.height / 2, delegate0.height / 2);
669+ tryCompare(signalSpy, "count", 1);
670+ compare(signalSpy.signalArguments[0][0], "like");
671+ compare(icon0.source, "image://theme/undo");
672+
673+ compare(icon1.source, "image://theme/cancel");
674+ mouseClick(delegate1, delegate1.height / 2, delegate1.height / 2);
675+ tryCompare(signalSpy, "count", 2);
676+ compare(signalSpy.signalArguments[1][0], "share");
677+ compare(icon1.source, "image://theme/cancel");
678+ }
644679 }
645680}
tests/qmltests/Stages/ApplicationCheckBox.qml+33−3
@@ -44,6 +44,7 @@ Column {
4444 d.bindGuard = false;
4545 }
4646
47+ // Application checkbox row
4748 RowLayout {
4849
4950 QtObject {
@@ -128,17 +129,47 @@ Column {
128129 visible: enabled
129130 Label {
130131 text: "➕"
131− color: "white"
132132 anchors.centerIn: parent
133133 }
134134 }
135135 }
136+
137+ // Prompts controls row
138+ RowLayout {
139+ anchors.left: root.left
140+ anchors.leftMargin: units.gu(2)
141+ visible: root.checked === true && d.application !== null && root.enabled
142+ spacing: units.gu(1)
143+ Label {
144+ property int promptCount: d.application ? d.application.promptSurfaceList.count : 0
145+ id: promptsLabel
146+ text: promptCount + " prompts"
147+ }
148+ MouseArea {
149+ width: height
150+ height: promptsLabel.height * 0.7
151+ anchors.verticalCenter: parent.verticalCenter
152+ onClicked: d.application.promptSurfaceList.createSurface()
153+ Label { text: "➕"; anchors.centerIn: parent }
154+ }
155+ MouseArea {
156+ width: height
157+ height: promptsLabel.height * 0.7
158+ anchors.verticalCenter: parent.verticalCenter
159+ onClicked: d.application.promptSurfaceList.get(d.application.promptSurfaceList.count - 1).close()
160+ enabled: d.application && d.application.promptSurfaceList.count > 0
161+ Label { text: "➖"; anchors.centerIn: parent; enabled: parent.enabled }
162+ }
163+ }
164+
165+ // Rows of application surfaces
136166 Repeater {
137167 model: d.application ? d.application.surfaceList : null
138168 RowLayout {
169+ anchors.left: root.left
170+ anchors.leftMargin: units.gu(2)
139171 spacing: units.gu(1)
140172 Label {
141− color: "white"
142173 text: "- " + model.surface.name
143174 }
144175 MouseArea {
@@ -150,7 +181,6 @@ Column {
150181 onClicked: model.surface.setLive(false);
151182 Label {
152183 text: "⛒"
153− color: "white"
154184 anchors.centerIn: parent
155185 }
156186 }
tests/qmltests/Stages/RecursingChildSessionControl.qmldeleted−94
@@ -1,94 +0,0 @@
1−/*
2− * Copyright 2014,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 QtQuick.Layouts 1.1
19−import Ubuntu.Components 1.3
20−import Unity.Application 0.1
21−
22−ColumnLayout {
23− id: root
24−
25− property var surface
26−
27− Column {
28− id: column
29− Layout.fillWidth: true
30− visible: repeater.count
31− spacing: units.gu(1)
32−
33− Repeater {
34− id: repeater
35− model: root.surface ? root.surface.promptSurfaceList : null
36− delegate: Rectangle {
37− border {
38− color: "black"
39− width: 1
40− }
41− anchors {
42− left: column.left
43− right: column.right
44− leftMargin: units.gu(1)
45− rightMargin: units.gu(1)
46− }
47− height: loader.height
48−
49− Rectangle {
50− anchors.fill: parent
51− color: Qt.rgba(Math.random(), Math.random(), Math.random(), 0.4 )
52− }
53−
54− Loader {
55− id: loader
56− visible: status == Loader.Ready
57− source: Qt.resolvedUrl("RecursingChildSessionControl.qml")
58−
59− anchors {
60− left: parent.left
61− right: parent.right
62− }
63−
64− onLoaded: {
65− item.surface = model.surface;
66− }
67− }
68− }
69− }
70− }
71−
72− ColumnLayout {
73− Layout.fillWidth: true
74− spacing: units.gu(1)
75−
76− RowLayout {
77− id: buttonLayout
78−
79− Button {
80− enabled: root.surface
81− activeFocusOnPress: false
82− text: "Remove"
83− onClicked: { root.surface.close(); }
84− }
85−
86− Button {
87− enabled: root.surface !== null
88− activeFocusOnPress: false
89− text: "Add Prompt Surface"
90− onClicked: { root.surface.createPromptSurface(); }
91− }
92− }
93− }
94−}
tests/qmltests/Stages/tst_ApplicationWindow.qml+89−23
@@ -33,7 +33,6 @@ Rectangle {
3333 Component.onCompleted: {
3434 root.fakeApplication = ApplicationManager.add("gallery-app");
3535 root.fakeApplication.manualSurfaceCreation = true;
36− root.fakeApplication.setState(ApplicationInfoInterface.Starting);
3736 applicationWindowLoader.item.application = root.fakeApplication;
3837 }
3938 property QtObject fakeApplication: null
@@ -78,7 +77,7 @@ Rectangle {
7877 Layout.fillWidth: true
7978
8079 CheckBox {
81− id: surfaceCheckbox;
80+ id: surfaceCheckbox
8281 checked: false;
8382 activeFocusOnPress: false
8483 onCheckedChanged: {
@@ -86,10 +85,8 @@ Rectangle {
8685 return;
8786
8887 if (checked) {
89− applicationWindowLoader.item.surface = SurfaceManager.createSurface("foo",
90− Mir.NormalType, Mir.MaximizedState, root.fakeApplication);
91−
92− root.fakeApplication.setState(ApplicationInfoInterface.Running);
88+ root.fakeApplication.createSurface();
89+ applicationWindowLoader.item.surface = root.fakeApplication.surfaceList.get(0);
9390 } else {
9491 if (applicationWindowLoader.item.surface) {
9592 applicationWindowLoader.item.surface.setLive(false);
@@ -103,22 +100,20 @@ Rectangle {
103100 }
104101 }
105102
106− Rectangle {
107− border {
108− color: "black"
109− width: 1
110− }
111− anchors {
112− left: parent.left
113− right: parent.right
103+ RowLayout {
104+ property var promptSurfaceList: root.fakeApplication ? root.fakeApplication.promptSurfaceList : null
105+ Button {
106+ enabled: parent.promptSurfaceList !== null && parent.promptSurfaceList.count > 0
107+ activeFocusOnPress: false
108+ text: "Remove"
109+ onClicked: { parent.promptSurfaceList.get(parent.promptSurfaceList.count - 1).close(); }
114110 }
115− Layout.preferredHeight: sessionControl.height
116111
117− RecursingChildSessionControl {
118− id: sessionControl
119− anchors { left: parent.left; right: parent.right; }
120−
121− surface: applicationWindowLoader.item ? applicationWindowLoader.item.surface : null
112+ Button {
113+ enabled: parent.promptSurfaceList !== null
114+ activeFocusOnPress: false
115+ text: "Add Prompt Surface"
116+ onClicked: { parent.promptSurfaceList.createSurface(); }
122117 }
123118 }
124119
@@ -244,19 +239,29 @@ Rectangle {
244239 // deleted, so you end up with two instances in memory.
245240 tryCompare(applicationWindowLoader, "itemDestroyed", true);
246241
247− setApplicationState(appStarting);
248242 surfaceCheckbox.checked = false;
249243
250− ApplicationManager.stopApplication("gallery-app");
244+ console.log("killApps() start");
245+ killApps();
246+ console.log("killApps() end");
247+
251248 root.fakeApplication = ApplicationManager.add("gallery-app");
252249 root.fakeApplication.manualSurfaceCreation = true;
253− root.fakeApplication.setState(ApplicationInfoInterface.Starting);
254250
255251 applicationWindowLoader.active = true;
256252
257253 applicationWindowLoader.item.application = root.fakeApplication;
258254 }
259255
256+ function waitUntilSurfaceContainerStopsAnimating(container) {
257+ var animationsLoader = findChild(container, "animationsLoader");
258+ verify(animationsLoader);
259+ tryCompare(animationsLoader, "status", Loader.Ready)
260+
261+ var animation = animationsLoader.item;
262+ waitUntilTransitionsEnd(animation);
263+ }
264+
260265 function test_showSplashUntilAppFullyInit_data() {
261266 return [
262267 {tag: "state=Running then create surface", swapInitOrder: false},
@@ -432,5 +437,66 @@ Rectangle {
432437 applicationWindow.interactive = true;
433438 compare(applicationWindow.surface.activeFocus, true);
434439 }
440+
441+ function test_promptSurfaceDestructionReturnsFocusToPreviousSurface() {
442+ surfaceCheckbox.checked = true;
443+ var promptSurfaces = testCase.findChild(applicationWindow, "promptSurfacesRepeater");
444+ var promptSurfaceList = root.fakeApplication.promptSurfaceList;
445+ compare(promptSurfaces.count, 0);
446+
447+ var i;
448+ // 3 surfaces should cover all edge cases
449+ for (i = 0; i < 3; i++) {
450+ promptSurfaceList.createSurface();
451+ compare(promptSurfaces.count, i+1);
452+ waitUntilSurfaceContainerStopsAnimating(promptSurfaces.itemAt(promptSurfaces.count - 1));
453+ }
454+
455+ for (i = 2; i >= 0; --i) {
456+ var promptSurface = promptSurfaceList.get(i);
457+ compare(promptSurface.activeFocus, true);
458+
459+ promptSurface.close();
460+ tryCompareFunction(function() { return promptSurfaces.count; }, i);
461+
462+ if (i > 0) {
463+ // active focus should have gone to the yongest remaining sibling
464+ var previousPromptSurface = promptSurfaceList.get(i-1);
465+ tryCompare(previousPromptSurface, "activeFocus", true);
466+ } else {
467+ // active focus should have gone to the application surface
468+ tryCompare(applicationWindow.surface, "activeFocus", true);
469+ }
470+ }
471+ }
472+
473+ function test_promptSurfaceAdjustsForParentSize() {
474+ var promptSurfaceList = root.fakeApplication.promptSurfaceList;
475+
476+ promptSurfaceList.createSurface();
477+
478+ var promptSurfaces = testCase.findChild(applicationWindow, "promptSurfacesRepeater");
479+
480+ var delegate = promptSurfaces.itemAt(0);
481+ waitUntilSurfaceContainerStopsAnimating(delegate);
482+
483+ var promptSurfaceContainer = findChild(delegate, "surfaceContainer");
484+
485+ tryCompareFunction(function() { return promptSurfaceContainer.height === applicationWindow.height; }, true);
486+ tryCompareFunction(function() { return promptSurfaceContainer.width === applicationWindow.width; }, true);
487+ tryCompareFunction(function() { return promptSurfaceContainer.x === 0; }, true);
488+ tryCompareFunction(function() { return promptSurfaceContainer.y === 0; }, true);
489+
490+ applicationWindow.anchors.margins = units.gu(2);
491+
492+ tryCompareFunction(function() { return promptSurfaceContainer.height === applicationWindow.height; }, true);
493+ tryCompareFunction(function() { return promptSurfaceContainer.width === applicationWindow.width; }, true);
494+ tryCompareFunction(function() { return promptSurfaceContainer.x === 0; }, true);
495+ tryCompareFunction(function() { return promptSurfaceContainer.y === 0; }, true);
496+
497+ // clean up
498+ delegate.surface.close();
499+ tryCompare(promptSurfaces, "count", 0);
500+ }
435501 }
436502}
tests/qmltests/Stages/tst_SurfaceContainer.qml+28−155
@@ -42,6 +42,7 @@ Rectangle {
4242 anchors.fill: parent
4343 focus: true
4444 interactive: interactiveCheckbox.checked
45+ isPromptSurface: promptCheckbox.checked
4546 Component.onDestruction: {
4647 surfaceContainerLoader.itemDestroyed = true;
4748 }
@@ -75,17 +76,19 @@ Rectangle {
7576 anchors { left: parent.left; right: parent.right; top: parent.top; margins: units.gu(1) }
7677 spacing: units.gu(1)
7778
78− RowLayout {
79− Layout.fillWidth: true
8079
81− Row {
82− CheckBox {id: fullscreenCheckbox; checked: true; activeFocusOnPress: false }
83− Label { text: "fullscreen" }
84− }
85− Row {
86− CheckBox {id: interactiveCheckbox; checked: true; activeFocusOnPress: false }
87− Label { text: "interactive" }
88− }
80+ Row {
81+ CheckBox {id: fullscreenCheckbox; checked: true; activeFocusOnPress: false }
82+ Label { text: "fullscreen" }
83+ }
84+ Row {
85+ CheckBox {id: interactiveCheckbox; checked: true; activeFocusOnPress: false }
86+ Label { text: "interactive" }
87+ }
88+ Row {
89+ CheckBox {id: promptCheckbox; checked: false; activeFocusOnPress: false
90+ enabled: surfaceContainerLoader.item.surface === null }
91+ Label { text: "isPromptSurface" }
8992 }
9093
9194 RowLayout {
@@ -102,10 +105,9 @@ Rectangle {
102105 if (checked) {
103106 var application = ApplicationManager.add("music-app");
104107 application.manualSurfaceCreation = true;
105− application.setState(ApplicationInfoInterface.Starting);
106108
107− surfaceContainerLoader.item.surface = SurfaceManager.createSurface("foo",
108− Mir.NormalType, Mir.MaximizedState, application.screenshot);
109+ application.createSurface();
110+ surfaceContainerLoader.item.surface = application.surfaceList.get(0);
109111
110112 application.setState(ApplicationInfoInterface.Running);
111113 } else {
@@ -123,22 +125,11 @@ Rectangle {
123125 }
124126 }
125127
126− Rectangle {
127− border {
128− color: "black"
129− width: 1
130− }
131− anchors {
132− left: parent.left
133− right: parent.right
134− }
135− Layout.preferredHeight: surfaceChildrenControl.height
136−
137− RecursingChildSessionControl {
138− id: surfaceChildrenControl
139− anchors { left: parent.left; right: parent.right; }
140−
141− surface: surfaceContainerLoader.item ? surfaceContainerLoader.item.surface : null
128+ Button {
129+ text: "Reload"
130+ enabled: !surfaceCheckbox.checked
131+ onClicked: {
132+ testCase.cleanup();
142133 }
143134 }
144135 }
@@ -164,6 +155,7 @@ Rectangle {
164155
165156 surfaceCheckbox.checked = false;
166157 interactiveCheckbox.checked = true;
158+ promptCheckbox.checked = false;
167159
168160 surfaceContainerLoader.active = true;
169161 tryCompare(surfaceContainerLoader, "status", Loader.Ready);
@@ -171,121 +163,6 @@ Rectangle {
171163
172164 when: windowShown
173165
174− function test_addChildSession_data() {
175− return [ { tag: "count=1", count: 1 },
176− { tag: "count=4", count: 4 } ];
177− }
178−
179− function test_addChildSession(data) {
180− surfaceCheckbox.checked = true;
181− var childSurfaces = testCase.findChild(surfaceContainer, "childSurfacesRepeater");
182− compare(childSurfaces.count, 0);
183−
184− var i;
185− for (i = 0; i < data.count; i++) {
186− surfaceContainer.surface.createPromptSurface();
187− compare(childSurfaces.count, i+1);
188− }
189−
190− for (i = data.count-1; i >= 0; i--) {
191− {
192− var childPromptSurface = surfaceContainer.surface.promptSurfaceList.get(i);
193− childPromptSurface.close();
194− }
195− tryCompareFunction(function() { return childSurfaces.count; }, i);
196− }
197− }
198−
199− function test_childSessionDestructionReturnsFocusToSiblingOrParent() {
200− surfaceCheckbox.checked = true;
201− var childSurfaces = testCase.findChild(surfaceContainer, "childSurfacesRepeater");
202− compare(childSurfaces.count, 0);
203−
204− var i;
205− // 3 surfaces should cover all edge cases
206− for (i = 0; i < 3; i++) {
207− surfaceContainer.surface.createPromptSurface();
208− compare(childSurfaces.count, i+1);
209− }
210−
211− for (i = 2; i >= 0; --i) {
212− var childPromptSurface = surfaceContainer.surface.promptSurfaceList.get(i);
213− compare(childPromptSurface.activeFocus, true);
214−
215− childPromptSurface.close();
216− tryCompareFunction(function() { return childSurfaces.count; }, i);
217−
218− if (i > 0) {
219− // active focus should have gone to the yongest remaining sibling
220− var previousSiblingSurface = surfaceContainer.surface.promptSurfaceList.get(i-1);
221− tryCompare(previousSiblingSurface, "activeFocus", true);
222− } else {
223− // active focus should have gone to the parent surface
224− tryCompare(surfaceContainer.surface, "activeFocus", true);
225− }
226− }
227− }
228−
229− function test_nestedChildSessions_data() {
230− return [ { tag: "depth=2", depth: 2 },
231− { tag: "depth=8", depth: 8 }
232− ];
233− }
234− function test_nestedChildSessions(data) {
235− surfaceCheckbox.checked = true;
236−
237− var i;
238− var container = surfaceContainer;
239− var surface = container.surface;
240− var surfaces = [surface];
241− var parent_childSurfaces = [null];
242− for (i = 0; i < data.depth; i++) {
243− surface.createPromptSurface();
244− var childSurfaces = testCase.findChild(container, "childSurfacesRepeater");
245− compare(childSurfaces.count, 1);
246−
247− var childDelegate = childSurfaces.itemAt(0);
248− container = findChild(childDelegate, "surfaceContainer");
249− {
250− var animationsLoader = findChild(container, "animationsLoader");
251− tryCompare(animationsLoader, "status", Loader.Ready);
252− waitUntilTransitionsEnd(animationsLoader.item);
253− }
254− surface = container.surface;
255−
256− surfaces.push(surface);
257− parent_childSurfaces.push(childSurfaces);
258− }
259−
260− for (i = surfaces.length-1; i >= 0; i--) {
261− surfaces[i].close();
262− if (parent_childSurfaces[i]) {
263− tryCompareFunction(function() { return parent_childSurfaces[i].count; }, 0);
264− }
265− }
266− }
267−
268− function test_childrenAdjustForParentSize() {
269− surfaceCheckbox.checked = true;
270−
271− surfaceContainer.surface.createPromptSurface();
272−
273− var delegate = findChild(surfaceContainer, "childDelegate0");
274− var childContainer = findChild(delegate, "surfaceContainer");
275−
276− tryCompareFunction(function() { return childContainer.height === surfaceContainer.height; }, true);
277− tryCompareFunction(function() { return childContainer.width === surfaceContainer.width; }, true);
278− tryCompareFunction(function() { return childContainer.x === 0; }, true);
279− tryCompareFunction(function() { return childContainer.y === 0; }, true);
280−
281− surfaceContainer.anchors.margins = units.gu(2);
282−
283− tryCompareFunction(function() { return childContainer.height === surfaceContainer.height; }, true);
284− tryCompareFunction(function() { return childContainer.width === surfaceContainer.width; }, true);
285− tryCompareFunction(function() { return childContainer.x === 0; }, true);
286− tryCompareFunction(function() { return childContainer.y === 0; }, true);
287− }
288−
289166 function isContainerAnimating(container) {
290167 var animationsLoader = findChild(container, "animationsLoader");
291168 if (!animationsLoader || animationsLoader.status != Loader.Ready) {
@@ -303,25 +180,21 @@ Rectangle {
303180 return false;
304181 }
305182
306− function test_childrenAnimate() {
183+ function test_promptSurfaceAnimates() {
184+ promptCheckbox.checked = true;
307185 surfaceCheckbox.checked = true;
308186
309− surfaceContainer.surface.createPromptSurface();
310−
311− var delegate = findChild(surfaceContainer, "childDelegate0");
312− var childContainer = findChild(delegate, "surfaceContainer");
313−
314187 // wait for animation to begin
315− tryCompareFunction(function() { return isContainerAnimating(childContainer); }, true);
188+ tryCompareFunction(function() { return isContainerAnimating(surfaceContainer); }, true);
316189 // wait for animation to end
317− tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
190+ tryCompareFunction(function() { return isContainerAnimating(surfaceContainer); }, false);
318191
319− surfaceContainer.surface.promptSurfaceList.get(0).close();
192+ surfaceContainer.surface.close();
320193
321194 // wait for animation to begin
322− tryCompareFunction(function() { return isContainerAnimating(childContainer); }, true);
195+ tryCompareFunction(function() { return isContainerAnimating(surfaceContainer); }, true);
323196 // wait for animation to end
324− tryCompareFunction(function() { return isContainerAnimating(childContainer); }, false);
197+ tryCompareFunction(function() { return isContainerAnimating(surfaceContainer); }, false);
325198 }
326199
327200 function test_surfaceItemGetsNoTouchesWhenContainerNotInteractive() {
tests/qmltests/Stages/tst_TabletStage.qml+66−2
@@ -129,6 +129,12 @@ Rectangle {
129129 }
130130 }
131131
132+ SignalSpy {
133+ id: stageSaver
134+ target: WindowStateStorage
135+ signalName: "stageSaved"
136+ }
137+
132138 UnityTestCase {
133139 id: testCase
134140 name: "TabletStage"
@@ -138,6 +144,7 @@ Rectangle {
138144 property Item sideStage: tabletStage ? findChild(tabletStage, "sideStage") : null
139145
140146 function init() {
147+ stageSaver.clear();
141148 tabletStageLoader.active = true;
142149 tryCompare(tabletStageLoader, "status", Loader.Ready);
143150
@@ -510,7 +517,35 @@ Rectangle {
510517 tryCompare(stagesPriv, "sideStageAppId", data.sideStageAppId);
511518 }
512519
513− function test_loadSideStageByDragginFromMainStage() {
520+ function test_applicationSavesLastStage_data() {
521+ return [
522+ { tag: "MainStage", stage: ApplicationInfoInterface.MainStage},
523+ { tag: "SideStage", stage: ApplicationInfoInterface.SideStage},
524+ ];
525+ }
526+
527+ function test_applicationSavesLastStage(data) {
528+ WindowStateStorage.saveStage(webbrowserCheckBox.appId, data.stage);
529+ stageSaver.clear();
530+
531+ var stagesPriv = findInvisibleChild(tabletStage, "stagesPriv");
532+ verify(stagesPriv);
533+
534+ tryCompare(stagesPriv, "mainStageAppId", "unity8-dash");
535+ tryCompare(stagesPriv, "sideStageAppId", "");
536+
537+ var webbrowserSurfaceId = topSurfaceList.nextId;
538+ webbrowserCheckBox.checked = true;
539+ waitUntilAppSurfaceShowsUp(webbrowserSurfaceId);
540+
541+ webbrowserCheckBox.checked = false;
542+
543+ tryCompare(stageSaver, "count", 1);
544+ compare(stageSaver.signalArguments[0][0], "webbrowser-app")
545+ compare(stageSaver.signalArguments[0][1], data.stage)
546+ }
547+
548+ function test_loadSideStageByDraggingFromMainStage() {
514549 sideStage.showNow();
515550 var webbrowserSurfaceId = topSurfaceList.nextId;
516551 webbrowserCheckBox.checked = true;
@@ -538,7 +573,7 @@ Rectangle {
538573 tryCompare(appDelegate, "stage", ApplicationInfoInterface.SideStage);
539574 }
540575
541− function test_unloadSideStageByDragginFromStageStage() {
576+ function test_unloadSideStageByDraggingFromStageStage() {
542577 sideStage.showNow();
543578 WindowStateStorage.saveStage(webbrowserCheckBox.appId, ApplicationInfoInterface.SideStage)
544579 var webbrowserSurfaceId = topSurfaceList.nextId;
@@ -690,5 +725,34 @@ Rectangle {
690725 // only unity8-dash surface is left
691726 compare(topSurfaceList.count, 1);
692727 }
728+
729+ function test_draggingSurfaceKeepsSurfaceFocus() {
730+ var webbrowserSurfaceId = topSurfaceList.nextId;
731+ webbrowserCheckBox.checked = true;
732+ waitUntilAppSurfaceShowsUp(webbrowserSurfaceId);
733+
734+ var appDelegate = findChild(tabletStage, "spreadDelegate_" + webbrowserSurfaceId);
735+ verify(appDelegate);
736+ compare(appDelegate.stage, ApplicationInfoInterface.MainStage);
737+
738+ tryCompare(appDelegate.surface, "activeFocus", true);
739+
740+ var pos = tabletStage.width - sideStage.width - (tabletStage.width - sideStage.width) / 2;
741+ var end_pos = tabletStage.width - sideStage.width / 2;
742+
743+ multiTouchDragUntil([0,1,2],
744+ tabletStage,
745+ pos,
746+ tabletStage.height / 2,
747+ units.gu(3),
748+ 0,
749+ function() {
750+ pos += units.gu(3);
751+ return sideStage.shown && !sideStage.showAnimation.running &&
752+ pos >= end_pos;
753+ });
754+
755+ tryCompare(appDelegate.surface, "activeFocus", true);
756+ }
693757 }
694758}
tests/qmltests/Wizard/tst_Wizard.qml+3−12
@@ -144,7 +144,9 @@ Item {
144144 var pages = findChild(wizard, "wizardPages");
145145 var stack = findChild(pages, "pageStack");
146146 // don't simply call tryCompare here, because stack.currentPage will be swapped out itself
147− tryCompareFunction(function() { return stack.currentPage.objectName; }, name);
147+ tryCompareFunction(function() { return stack.currentPage.objectName; }, name, 15000);
148+ var contentAnimation = findInvisibleChild(stack.currentPage, "contentAnimation");
149+ tryCompareFunction(function() { return contentAnimation.running; }, false);
148150 tryCompare(stack.currentPage, "opacity", 1.0);
149151 tryCompare(stack.currentPage, "enabled", true);
150152 tryCompare(stack.currentPage, "skipValid", true);
@@ -153,17 +155,6 @@ Item {
153155 return stack.currentPage;
154156 }
155157
156− function verifyPageIsBlocked(name) {
157− var pages = findChild(wizard, "wizardPages");
158− var stack = findChild(pages, "pageStack");
159− // don't simply call tryCompare here, because stack.currentPage will be swapped out itself
160− tryCompareFunction(function() { return stack.currentPage.objectName; }, name);
161− tryCompare(stack.currentPage, "enabled", false);
162− tryCompare(stack.currentPage, "skipValid", false);
163− waitForRendering(stack.currentPage);
164− return stack.currentPage;
165− }
166−
167158 function goToPage(name, skipSim, skipLocation, skipReporting) {
168159 if (skipSim === undefined) {
169160 skipSim = false;