on xenial help sign in
Merge from trunk
commitf5a7a4439569bd1714344cd1377739c47693728c authorMichael Terry <michael.terry@canonical.com> dateWed 10 Feb 2016, 17:02 (11 years ago) parent67084db57c5b0d
189 files changed+3766−1306
CMakeLists.txt+3 debian/changelog+92 debian/control+1−1 debian/tests/qmluitests.sh+4−2 debian/unity8-private.install+1 plugins/AccountsService/AccountsService.cpp+61 plugins/AccountsService/AccountsService.h+4 plugins/CMakeLists.txt+1 plugins/Cursor/MousePointer.cpp+4 plugins/Cursor/MousePointer.h+1 plugins/Dash/CardCreator.js+45−17 plugins/Dash/CardCreatorCache.qml+1−1 plugins/Dash/listviewwithpageheader.cpp+18−9 plugins/Dash/listviewwithpageheader.h+1 plugins/IntegratedLightDM/liblightdm/CMakeLists.txt+3 plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+23−7 plugins/Powerd/CMakeLists.txt−2 plugins/UInput/CMakeLists.txt+7 plugins/UInput/UInput.qmltypes+44 plugins/UInput/plugin.cpp+26 plugins/UInput/plugin.h+32 plugins/UInput/qmldir+3 plugins/UInput/uinput.cpp+182 plugins/UInput/uinput.h+61 plugins/Unity/Indicators/CMakeLists.txt−4 plugins/Unity/Session/CMakeLists.txt−2 plugins/Utils/CMakeLists.txt+2−3 plugins/Utils/EdgeBarrierSettings.qml+1−1 plugins/Utils/HomeKeyWatcher.h−74 plugins/Utils/HomeKeyWatcher.cpp → plugins/Utils/WindowInputMonitor.cpp+19−12 plugins/Utils/WindowInputMonitor.h+91 plugins/Utils/inputeventgenerator.cpp+34 plugins/Utils/inputeventgenerator.h+40 plugins/Utils/plugin.cpp+4−2 po/am.po+14−9 po/ar.po+10−8 po/ast.po+10−8 po/az.po+10−8 po/be.po+14−9 po/bg.po+10−8 po/bn.po+14−9 po/br.po+10−8 po/bs.po+14−9 po/ca.po+22−15 po/ca@valencia.po+10−8 po/ce.po+10−8 po/ckb.po+10−8 po/cs.po+10−8 po/cy.po+10−8 po/da.po+10−8 po/de.po+14−9 po/el.po+14−9 po/en_AU.po+10−8 po/en_GB.po+14−9 po/eo.po+10−8 po/es.po+14−9 po/eu.po+10−8 po/fa.po+14−9 po/fi.po+14−9 po/fo.po+10−8 po/fr.po+14−9 po/ga.po+146−124 po/gd.po+15−10 po/gl.po+14−9 po/gv.po+10−8 po/he.po+10−8 po/hi.po+10−8 po/hr.po+14−9 po/hu.po+14−9 po/hy.po+10−8 po/ia.po+23−17 po/id.po+10−8 po/is.po+10−8 po/it.po+23−16 po/ja.po+18−16 po/km.po+10−8 po/kn.po+10−8 po/ko.po+10−8 po/ku.po+10−8 po/ky.po+10−8 po/lo.po+10−8 po/lt.po+10−8 po/lv.po+14−9 po/ml.po+10−8 po/mr.po+10−8 po/ms.po+14−9 po/my.po+10−8 po/nb.po+25−18 po/ne.po+10−8 po/nl.po+10−8 po/nn.po+10−8 po/oc.po+10−8 po/or.po+10−8 po/pa.po+10−8 po/pl.po+16−9 po/pt.po+15−10 po/pt_BR.po+10−8 po/ro.po+10−8 po/ru.po+14−9 po/shn.po+10−8 po/si.po+10−8 po/sk.po+10−8 po/sl.po+58−21 po/sq.po+14−9 po/sr.po+14−9 po/sv.po+10−8 po/sw.po+10−8 po/ta.po+10−8 po/te.po+10−8 po/th.po+10−8 po/tr.po+10−8 po/ug.po+10−8 po/uk.po+14−9 po/unity8.pot+8−6 po/ur.po+10−8 po/uz.po+10−8 po/vi.po+10−8 po/wo.po+10−8 po/xh.po+10−8 po/zh_CN.po+14−9 po/zh_HK.po+10−8 po/zh_TW.po+14−9 qml/Components/InputMethod.qml+1−1 qml/Components/PhysicalKeysMapper.qml+32−2 qml/Components/ResponsiveGridView.qml+2−4 qml/Components/VirtualTouchPad.qml+138 qml/Dash/CardGrid.qml+3−1 qml/Dash/DashBackground.qml+6−2 qml/Dash/GenericScopeView.qml+19−8 qml/Dash/Previews/PreviewAudioPlayback.qml+1 qml/Dash/graphics/paper.png qml/Dash/graphics/paper_landscape@27.png qml/Dash/graphics/paper_portrait@27.png qml/DisabledScreenNotice.qml+72−19 qml/Launcher/Launcher.qml+18−19 qml/OrientedShell.qml+28−14 qml/Shell.qml+15−6 qml/Stages/AbstractStage.qml+5−1 qml/Stages/DesktopStage.qml+6−1 qml/Stages/PhoneStage.qml+5−1 qml/Stages/TabletStage.qml+5−1 tests/mocks/CMakeLists.txt+1 tests/mocks/Cursor/Cursor.qml+1 tests/mocks/UInput/CMakeLists.txt+7 tests/mocks/UInput/mockuinput.cpp+73 tests/mocks/UInput/mockuinput.h+63 tests/mocks/UInput/plugin.cpp+26 tests/mocks/UInput/plugin.h+32 tests/mocks/UInput/qmldir+2 tests/mocks/Unity/CMakeLists.txt+1 tests/mocks/Unity/Screens/CMakeLists.txt+14 tests/mocks/Unity/Screens/plugin.cpp+29 tests/mocks/Unity/Screens/plugin.h+25 tests/mocks/Unity/Screens/qmldir+2 tests/mocks/Unity/Screens/screens.cpp+71 tests/mocks/Unity/Screens/screens.h+82 tests/mocks/Unity/fake_categories.cpp+1−1 tests/mocks/Utils/CMakeLists.txt+1−2 tests/mocks/Utils/HomeKeyWatcher.qml → tests/mocks/Utils/WindowInputMonitor.qml+3−1 tests/mocks/Utils/plugin.cpp+2 tests/mocks/Utils/qmldir+1−1 tests/mocks/indicator-service/CMakeLists.txt−1 tests/plugins/Dash/cardcreator/10.res+142 tests/plugins/Dash/cardcreator/10.tst+3 tests/plugins/Dash/cardcreator/11.res+217 tests/plugins/Dash/cardcreator/11.tst+3 tests/plugins/Dash/cardcreator/3.res+1 tests/plugins/Dash/cardcreator/3.tst+1−1 tests/plugins/Dash/cardcreator/6.res+1−1 tests/plugins/Dash/cardcreatortest.cpp+1 tests/plugins/Dash/listviewwithpageheadertest.cpp+23 tests/plugins/Dash/listviewwithpageheadertest.qml−1 tests/plugins/Unity/Indicators/CMakeLists.txt−4 tests/plugins/Unity/Session/sessionbackendtest.cpp+1 tests/plugins/Utils/CMakeLists.txt+1−1 tests/plugins/Utils/HomeKeyWatcherTest.cpp → tests/plugins/Utils/WindowInputMonitorTest.cpp+14−14 tests/qmltests/CMakeLists.txt+2−1 tests/qmltests/Components/tst_LazyImage.qml+27−8 tests/qmltests/Components/tst_PhysicalKeysMapper.qml+136−62 tests/qmltests/Components/tst_ResponsiveGridView.qml−36 tests/qmltests/Components/tst_VirtualTouchPad.qml+143 tests/qmltests/Dash/Previews/tst_Preview.qml+5−6 tests/qmltests/Dash/tst_Card.qml+4−5 tests/qmltests/Dash/tst_GenericScopeView.qml+30−9 tests/qmltests/Launcher/tst_Launcher.qml+26 tests/qmltests/tst_DisabledScreenNotice.qml+10−2 tests/qmltests/tst_OrientedShell.qml+106−22 tests/qmltests/tst_Shell.qml+21−5 tests/qmltests/tst_ShellWithPin.qml+19−5
CMakeLists.txt+3
@@ -58,6 +58,9 @@ find_package(Qt5Concurrent 5.4 REQUIRED)
5858find_package(Qt5Sql 5.4 REQUIRED)
5959
6060pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=12)
61+pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
62+pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
63+pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
6164
6265# Standard install paths
6366include(GNUInstallDirs)
debian/changelog+92
@@ -1,3 +1,95 @@
1+unity8 (8.11+16.04.20160208-0ubuntu1) xenial; urgency=medium
2+
3+ [ Albert Astals Cid ]
4+ * LVWPH: Reset to initial values when list is empty (LP: #1540490)
5+ * Make LazyImage qmltest less flaky on CI
6+
7+ [ Andrea Cimitan ]
8+ * Make LazyImage qmltest less flaky on CI
9+
10+ [ CI Train Bot ]
11+ * Resync trunk.
12+ * Update translation template
13+
14+ [ Michael Terry ]
15+ * Display the current user's real name on the tablet lockscreen. (LP:
16+ #1536714)
17+
18+ -- Michał Sawicz <michal.sawicz@canonical.com> Mon, 08 Feb 2016 09:38:00 +0000
19+
20+unity8 (8.11+16.04.20160129-0ubuntu1) xenial; urgency=medium
21+
22+ [ Albert Astals Cid ]
23+ * Audio Preview Button: Don't gain focus on press (LP: #1517830)
24+ * Better attempt at sanitization
25+ * Better looking application scopes for wide screens
26+ * Call printSettings correctly
27+ * Card test: Limit the precision we ask for doubles to be equal
28+ * Convert while into tryCompareFunction
29+ * Do not use the same filepath parameter for all the card creator
30+ createQmlObject calls (LP: #1536379)
31+ * Fix some test shells being unstable in the armhf builders
32+ * Make revealByEdgePush more stable
33+ * More reliable compares
34+ * Move the mouse over the bfb before waiting for rendering
35+ * Remove the DDAs constrains for every test
36+ * Set the background source size to the max we'll need + new
37+ background (LP: #1539011)
38+
39+ [ Andrea Cimitan ]
40+ * Dynamically change click scope card size according to size (LP:
41+ #1536745)
42+ * Should fix lazyimage test failures on fast machines
43+
44+ [ CI Train Bot ]
45+ * Fix card tests on the phone
46+ * Update translation template
47+
48+ [ Daniel d'Andrada ]
49+ * Desktop stage rotates only to follow screen orientation (LP:
50+ #1515977)
51+
52+ [ Lukáš Tinkl ]
53+ * Hide/reveal the mouse pointer on touch/mouse events renamed:
54+ plugins/Utils/HomeKeyWatcher.cpp =>
55+ plugins/Utils/WindowInputMonitor.cpp plugins/Utils/HomeKeyWatcher.h
56+ => plugins/Utils/WindowInputMonitor.h
57+ tests/mocks/Utils/HomeKeyWatcher.qml =>
58+ tests/mocks/Utils/WindowInputMonitor.qml
59+ tests/plugins/Utils/HomeKeyWatcherTest.cpp =>
60+ tests/plugins/Utils/WindowInputMonitorTest.cpp
61+
62+ [ Michael Terry ]
63+ * Synchronize the mouse-cursor-speed and touchpad-cursor-speed
64+ properties with USC. (LP: #1536383)
65+
66+ [ Michael Zanetti ]
67+ * Add InputMethod to secondary screen
68+ * Add a virtual Touchpad while external screen is connected
69+ * Make big tablets switch to windowed mode by plugging a kbd only (LP:
70+ #1535399)
71+ * Prevent alt key presses from being dispatched to the app on alt+tab
72+ (LP: #1532862)
73+
74+ [ Michał Sawicz ]
75+ * Make qmluitests.sh more robust and allow parallel test execution
76+ * Skip SessionBackendTest::testLogin1Capabilities until we talk to a
77+ mock instead (LP: #1532112, #1532113)
78+
79+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 29 Jan 2016 11:53:27 +0000
80+
81+unity8 (8.11+16.04.20160122-0ubuntu1) xenial; urgency=medium
82+
83+ [ Albert Astals Cid ]
84+ * Fix bug #1536296 added: tests/plugins/Dash/cardcreator/10.tst (LP:
85+ #1536296)
86+ * Fix card tests on the phone
87+
88+ [ CI Train Bot ]
89+ * Update translation template
90+
91+ -- Michał Sawicz <michal.sawicz@canonical.com> Fri, 22 Jan 2016 16:56:04 +0000
92+
193unity8 (8.11+16.04.20160111.1-0ubuntu1) xenial; urgency=medium
294
395 [ Albert Astals Cid ]
debian/control+1−1
@@ -188,7 +188,7 @@ Package: unity8-private
188188Architecture: any
189189Multi-Arch: same
190190Pre-Depends: ${misc:Pre-Depends},
191−Depends: accountsservice-ubuntu-schemas (>= 0.0.3),
191+Depends: accountsservice-ubuntu-schemas (>= 0.0.5),
192192 gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
193193 libhardware2,
194194 pay-service,
debian/tests/qmluitests.sh+4−2
@@ -1,5 +1,8 @@
11#!/bin/sh
22
3+# log all commands and abort on error
4+set -xe
5+
36SHELL_QML_PATH=$(pkg-config --variable=plugindir unity-shell-api)
47UNITY_SOURCE_DIR=$(readlink -f $(dirname $(readlink -f $0))/../..)
58
@@ -15,5 +18,4 @@ dh_auto_build --parallel -- -C tests/utils
1518
1619export UNITY_SOURCE_DIR
1720
18−# FIXME: --parallel here causes some failures
19−dh_auto_build -- -k xvfballtests
21+dh_auto_build --parallel -- -k xvfballtests
debian/unity8-private.install+1
@@ -12,6 +12,7 @@ usr/lib/*/unity8/qml/ScreenGrabber
1212usr/lib/*/unity8/qml/SessionBroadcast
1313usr/lib/*/unity8/qml/Ubuntu
1414usr/lib/*/unity8/qml/Unity
15+usr/lib/*/unity8/qml/UInput
1516usr/lib/*/unity8/qml/Utils
1617usr/lib/*/unity8/qml/Wizard
1718usr/share/accountsservice/interfaces
plugins/AccountsService/AccountsService.cpp+61
@@ -19,6 +19,7 @@
1919#include "AccountsService.h"
2020#include "AccountsServiceDBusAdaptor.h"
2121
22+#include <QDBusInterface>
2223#include <QFile>
2324#include <QStringList>
2425#include <QDebug>
@@ -36,6 +37,11 @@ AccountsService::AccountsService(QObject* parent, const QString &user)
3637 m_hereEnabled(false),
3738 m_hereLicensePath() // null means not set yet
3839{
40+ m_unityInput = new QDBusInterface(QStringLiteral("com.canonical.Unity.Input"),
41+ QStringLiteral("/com/canonical/Unity/Input"),
42+ QStringLiteral("com.canonical.Unity.Input"),
43+ QDBusConnection::SM_BUSNAME(), this);
44+
3945 connect(m_service, &AccountsServiceDBusAdaptor::propertiesChanged, this, &AccountsService::onPropertiesChanged);
4046 connect(m_service, &AccountsServiceDBusAdaptor::maybeChanged, this, &AccountsService::onMaybeChanged);
4147
@@ -60,6 +66,8 @@ void AccountsService::setUser(const QString &user)
6066 updateEnableLauncherWhileLocked(false);
6167 updateEnableIndicatorsWhileLocked(false);
6268 updateBackgroundFile(false);
69+ updateMouseCursorSpeed();
70+ updateTouchpadCursorSpeed();
6371 updateStatsWelcomeScreen(false);
6472 updatePasswordDisplayHint(false);
6573 updateFailedLogins(false);
@@ -292,6 +300,52 @@ void AccountsService::updateBackgroundFile(bool async)
292300 }
293301}
294302
303+void AccountsService::updateMouseCursorSpeed()
304+{
305+ QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
306+ QStringLiteral("com.ubuntu.AccountsService.Input"),
307+ QStringLiteral("MouseCursorSpeed"));
308+ QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
309+
310+ connect(watcher, &QDBusPendingCallWatcher::finished,
311+ this, [this](QDBusPendingCallWatcher* watcher) {
312+
313+ QDBusPendingReply<QVariant> reply = *watcher;
314+ watcher->deleteLater();
315+ if (reply.isError()) {
316+ qWarning() << "Failed to get 'MouseCursorSpeed' property - " << reply.error().message();
317+ return;
318+ }
319+
320+ // Merely proxy this along to USC. We don't care about keeping a copy
321+ // or exporting it internally.
322+ m_unityInput->asyncCall(QStringLiteral("setMouseCursorSpeed"), reply.value());
323+ });
324+}
325+
326+void AccountsService::updateTouchpadCursorSpeed()
327+{
328+ QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
329+ QStringLiteral("com.ubuntu.AccountsService.Input"),
330+ QStringLiteral("TouchpadCursorSpeed"));
331+ QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pendingReply, this);
332+
333+ connect(watcher, &QDBusPendingCallWatcher::finished,
334+ this, [this](QDBusPendingCallWatcher* watcher) {
335+
336+ QDBusPendingReply<QVariant> reply = *watcher;
337+ watcher->deleteLater();
338+ if (reply.isError()) {
339+ qWarning() << "Failed to get 'TouchpadCursorSpeed' property - " << reply.error().message();
340+ return;
341+ }
342+
343+ // Merely proxy this along to USC. We don't care about keeping a copy
344+ // or exporting it internally.
345+ m_unityInput->asyncCall(QStringLiteral("setTouchpadCursorSpeed"), reply.value());
346+ });
347+}
348+
295349void AccountsService::updateStatsWelcomeScreen(bool async)
296350{
297351 QDBusPendingCall pendingReply = m_service->getUserPropertyAsync(m_user,
@@ -472,6 +526,13 @@ void AccountsService::onPropertiesChanged(const QString &user, const QString &in
472526 if (changed.contains(QStringLiteral("FailedLogins"))) {
473527 updateFailedLogins();
474528 }
529+ } else if (interface == QLatin1String("com.ubuntu.AccountsService.Input")) {
530+ if (changed.contains(QStringLiteral("MouseCursorSpeed"))) {
531+ updateMouseCursorSpeed();
532+ }
533+ if (changed.contains(QStringLiteral("TouchpadCursorSpeed"))) {
534+ updateTouchpadCursorSpeed();
535+ }
475536 } else if (interface == QLatin1String("com.ubuntu.touch.AccountsService.SecurityPrivacy")) {
476537 if (changed.contains(QStringLiteral("StatsWelcomeScreen"))) {
477538 updateStatsWelcomeScreen();
plugins/AccountsService/AccountsService.h+4
@@ -24,6 +24,7 @@
2424#include <QStringList>
2525
2626class AccountsServiceDBusAdaptor;
27+class QDBusInterface;
2728
2829class AccountsService: public QObject
2930{
@@ -120,6 +121,8 @@ private:
120121 void updateEnableLauncherWhileLocked(bool async = true);
121122 void updateEnableIndicatorsWhileLocked(bool async = true);
122123 void updateBackgroundFile(bool async = true);
124+ void updateMouseCursorSpeed();
125+ void updateTouchpadCursorSpeed();
123126 void updateStatsWelcomeScreen(bool async = true);
124127 void updatePasswordDisplayHint(bool async = true);
125128 void updateFailedLogins(bool async = true);
@@ -127,6 +130,7 @@ private:
127130 void updateHereLicensePath(bool async = true);
128131
129132 AccountsServiceDBusAdaptor *m_service;
133+ QDBusInterface *m_unityInput;
130134 QString m_user;
131135 bool m_demoEdges;
132136 QStringList m_demoEdgesCompleted;
plugins/CMakeLists.txt+1
@@ -22,6 +22,7 @@ add_subdirectory(Powerd)
2222add_subdirectory(SessionBroadcast)
2323add_subdirectory(ScreenGrabber)
2424add_subdirectory(Ubuntu)
25+add_subdirectory(UInput)
2526add_subdirectory(Unity)
2627add_subdirectory(Utils)
2728add_subdirectory(Wizard)
plugins/Cursor/MousePointer.cpp+4
@@ -42,6 +42,10 @@ void MousePointer::handleMouseEvent(ulong timestamp, QPointF movement, Qt::Mouse
4242 return;
4343 }
4444
45+ if (!movement.isNull()) {
46+ Q_EMIT mouseMoved();
47+ }
48+
4549 qreal newX = x() + movement.x();
4650 if (newX < 0) {
4751 Q_EMIT pushedLeftBoundary(qAbs(newX), buttons);
plugins/Cursor/MousePointer.h+1
@@ -48,6 +48,7 @@ public Q_SLOTS:
4848Q_SIGNALS:
4949 void pushedLeftBoundary(qreal amount, Qt::MouseButtons buttons);
5050 void pushedRightBoundary(qreal amount, Qt::MouseButtons buttons);
51+ void mouseMoved();
5152
5253protected:
5354 void itemChange(ItemChange change, const ItemChangeData &value) override;
plugins/Dash/CardCreator.js+45−17
@@ -16,9 +16,9 @@
1616
1717.pragma library
1818
19−// %1 is the template["card-background"] string
20−// %2 is the template["card-background"]["elements"][0]
21−// %3 is the template["card-background"]["elements"][1]
19+// %1 is the template["card-background"]["elements"][0]
20+// %2 is the template["card-background"]["elements"][1]
21+// %3 is the template["card-background"] string
2222var kBackgroundLoaderCode = 'Loader {\n\
2323 id: backgroundLoader; \n\
2424 objectName: "backgroundLoader"; \n\
@@ -46,14 +46,14 @@ var kBackgroundLoaderCode = 'Loader {\n\
4646 objectName: "backgroundImage"; \n\
4747 source: { \n\
4848 if (cardData && typeof cardData["background"] === "string") return cardData["background"]; \n\
49− else return "%1"; \n\
49+ else return %3; \n\
5050 } \n\
5151 } \n\
5252 function getColor(index) { \n\
5353 if (cardData && typeof cardData["background"] === "object" \n\
5454 && (cardData["background"]["type"] === "color" || cardData["background"]["type"] === "gradient")) { \n\
5555 return cardData["background"]["elements"][index]; \n\
56− } else return index === 0 ? %2 : %3; \n\
56+ } else return index === 0 ? %1 : %2; \n\
5757 } \n\
5858 } \n\
5959 }\n';
@@ -61,6 +61,7 @@ var kBackgroundLoaderCode = 'Loader {\n\
6161// %1 is used as anchors of artShapeHolder
6262// %2 is used as image width
6363// %3 is used as image height
64+// %4 is injected as code to artImage
6465var kArtShapeHolderCode = 'Item { \n\
6566 id: artShapeHolder; \n\
6667 height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height; \n\
@@ -131,6 +132,7 @@ var kArtShapeHolderCode = 'Item { \n\
131132 asynchronous: root.asynchronous; \n\
132133 width: %2; \n\
133134 height: %3; \n\
135+ %4 \n\
134136 } \n\
135137 } \n\
136138 } \n\
@@ -242,6 +244,7 @@ var kMascotShapeLoaderCode = 'Loader { \n\
242244
243245// %1 is used as anchors of mascotImage
244246// %2 is used as visible of mascotImage
247+// %3 is injected as code to mascotImage
245248var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
246249 id: mascotImage; \n\
247250 objectName: "mascotImage"; \n\
@@ -252,6 +255,7 @@ var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
252255 horizontalAlignment: Image.AlignHCenter; \n\
253256 verticalAlignment: Image.AlignVCenter; \n\
254257 visible: %2; \n\
258+ %3 \n\
255259 }\n';
256260
257261// %1 is used as anchors of titleLabel
@@ -369,6 +373,18 @@ var kAudioProgressBarCode = 'CardAudioProgress { \n\
369373 color: %3; \n\
370374 }';
371375
376+function sanitizeColor(colorString) {
377+ if (colorString !== undefined) {
378+ if (colorString.match(/^[#a-z0-9]*$/i) === null) {
379+ // This is not the perfect regexp for color
380+ // but what we're trying to do here is just protect
381+ // against injection so it's ok
382+ return "";
383+ }
384+ }
385+ return colorString;
386+}
387+
372388function cardString(template, components) {
373389 var code;
374390
@@ -420,18 +436,26 @@ function cardString(template, components) {
420436 }
421437
422438 if (hasBackground) {
423− var templateCardBackground = (template && typeof template["card-background"] === "string") ? template["card-background"] : "";
439+ var templateCardBackground;
440+ if (template && typeof template["card-background"] === "string") {
441+ templateCardBackground = 'decodeURI("' + encodeURI(template["card-background"]) + '")';
442+ } else {
443+ templateCardBackground = '""';
444+ }
445+
424446 var backgroundElements0;
425447 var backgroundElements1;
426448 if (template && typeof template["card-background"] === "object" && (template["card-background"]["type"] === "color" || template["card-background"]["type"] === "gradient")) {
427− if (template["card-background"]["elements"][0] !== undefined) {
428− backgroundElements0 = '"%1"'.arg(template["card-background"]["elements"][0]);
449+ var element0 = sanitizeColor(template["card-background"]["elements"][0]);
450+ var element1 = sanitizeColor(template["card-background"]["elements"][1]);
451+ if (element0 !== undefined) {
452+ backgroundElements0 = '"%1"'.arg(element0);
429453 }
430− if (template["card-background"]["elements"][1] !== undefined) {
431− backgroundElements1 = '"%1"'.arg(template["card-background"]["elements"][1]);
454+ if (element1 !== undefined) {
455+ backgroundElements1 = '"%1"'.arg(element1);
432456 }
433457 }
434− code += kBackgroundLoaderCode.arg(templateCardBackground).arg(backgroundElements0).arg(backgroundElements1);
458+ code += kBackgroundLoaderCode.arg(backgroundElements0).arg(backgroundElements1).arg(templateCardBackground);
435459 }
436460
437461 if (hasArt) {
@@ -456,11 +480,13 @@ function cardString(template, components) {
456480 heightCode = 'width / artShape.aspect';
457481 }
458482
459− code += kArtShapeHolderCode.arg(artAnchors).arg(widthCode).arg(heightCode);
460483 var fallback = components["art"] && components["art"]["fallback"] || "";
484+ fallback = encodeURI(fallback);
485+ var fallbackCode = "";
461486 if (fallback !== "") {
462− code += 'Connections { target: artShapeLoader.item ? artShapeLoader.item.image : null; onStatusChanged: if (artShapeLoader.item.image.status === Image.Error) artShapeLoader.item.image.source = "%1"; } \n'.arg(fallback);
487+ fallbackCode += 'onStatusChanged: if (status === Image.Error) source = decodeURI("%1");'.arg(fallback);
463488 }
489+ code += kArtShapeHolderCode.arg(artAnchors).arg(widthCode).arg(heightCode).arg(fallbackCode);
464490 } else {
465491 code += 'readonly property size artShapeSize: Qt.size(-1, -1);\n'
466492 }
@@ -552,11 +578,13 @@ function cardString(template, components) {
552578 }
553579
554580 var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
555− mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible);
556581 var fallback = components["mascot"] && components["mascot"]["fallback"] || "";
582+ fallback = encodeURI(fallback);
583+ var fallbackCode = "";
557584 if (fallback !== "") {
558− code += 'Connections { target: mascotImage; onStatusChanged: if (mascotImage.status === Image.Error) mascotImage.source = "%1"; } \n'.arg(fallback);
585+ fallbackCode += 'onStatusChanged: if (status === Image.Error) source = decodeURI("%1");'.arg(fallback);
559586 }
587+ mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible).arg(fallbackCode);
560588 }
561589
562590 var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white")';
@@ -801,7 +829,7 @@ function cardString(template, components) {
801829 return code;
802830}
803831
804−function createCardComponent(parent, template, components) {
832+function createCardComponent(parent, template, components, identifier) {
805833 var imports = 'import QtQuick 2.4; \n\
806834 import Ubuntu.Components 1.3; \n\
807835 import Ubuntu.Settings.Components 0.1; \n\
@@ -811,7 +839,7 @@ function createCardComponent(parent, template, components) {
811839 var code = imports + 'Component {\n' + card + '}\n';
812840
813841 try {
814− return Qt.createQmlObject(code, parent, "createCardComponent");
842+ return Qt.createQmlObject(code, parent, identifier);
815843 } catch (e) {
816844 console.error("ERROR: Invalid component created.");
817845 console.error("Template:");
plugins/Dash/CardCreatorCache.qml+1−1
@@ -32,7 +32,7 @@ QtObject {
3232 var allString = tString + cString;
3333 var component = cache[allString];
3434 if (component === undefined) {
35− component = CardCreator.createCardComponent(root, template, components);
35+ component = CardCreator.createCardComponent(root, template, components, allString);
3636 cache[allString] = component;
3737 }
3838 return component;
plugins/Dash/listviewwithpageheader.cpp+18−9
@@ -219,13 +219,7 @@ void ListViewWithPageHeader::setDelegate(QQmlComponent *delegate)
219219 Q_FOREACH(ListItem *item, m_visibleItems)
220220 releaseItem(item);
221221 m_visibleItems.clear();
222− m_firstVisibleIndex = -1;
223− adjustMinYExtent();
224− setContentY(0);
225− m_clipItem->setY(0);
226− if (m_topSectionItem) {
227− QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
228− }
222+ initializeValuesForEmptyList();
229223
230224 m_delegateModel->setDelegate(delegate);
231225
@@ -236,6 +230,17 @@ void ListViewWithPageHeader::setDelegate(QQmlComponent *delegate)
236230 }
237231}
238232
233+void ListViewWithPageHeader::initializeValuesForEmptyList()
234+{
235+ m_firstVisibleIndex = -1;
236+ adjustMinYExtent();
237+ setContentY(0);
238+ m_clipItem->setY(0);
239+ if (m_topSectionItem) {
240+ QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
241+ }
242+}
243+
239244QQuickItem *ListViewWithPageHeader::header() const
240245{
241246 return m_headerItem;
@@ -835,7 +840,7 @@ bool ListViewWithPageHeader::removeNonVisibleItems(qreal bufferFrom, qreal buffe
835840 }
836841 }
837842 if (!foundVisible) {
838− m_firstVisibleIndex = -1;
843+ initializeValuesForEmptyList();
839844 }
840845 if (m_firstVisibleIndex != oldFirstVisibleIndex) {
841846 adjustMinYExtent();
@@ -1092,7 +1097,11 @@ void ListViewWithPageHeader::onModelUpdated(const QQmlChangeSet &changeSet, bool
10921097 }
10931098
10941099 if (m_firstVisibleIndex != oldFirstVisibleIndex) {
1095− adjustMinYExtent();
1100+ if (m_visibleItems.isEmpty()) {
1101+ initializeValuesForEmptyList();
1102+ } else {
1103+ adjustMinYExtent();
1104+ }
10961105 }
10971106
10981107 for (int i = 0; i < m_visibleItems.count(); ++i) {
plugins/Dash/listviewwithpageheader.h+1
@@ -168,6 +168,7 @@ private:
168168 QQuickItem *getSectionItem(int modelIndex, bool alreadyInserted);
169169 QQuickItem *getSectionItem(const QString &sectionText);
170170 void updateSectionItem(int modelIndex);
171+ void initializeValuesForEmptyList();
171172
172173 QQmlDelegateModel *m_delegateModel;
173174
plugins/IntegratedLightDM/liblightdm/CMakeLists.txt+3
@@ -13,14 +13,17 @@ add_library(MockLightDM-demo-shared SHARED ${LibLightDM_SOURCES})
1313
1414include_directories(
1515 ${CMAKE_CURRENT_BINARY_DIR}
16+ ${GLIB_INCLUDE_DIRS}
1617 ${LIBUSERMETRICSOUTPUT_INCLUDE_DIRS}
1718)
1819
1920target_link_libraries(integratedLightDM
21+ ${GLIB_LIBRARIES}
2022 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
2123 -lpam
2224)
2325target_link_libraries(MockLightDM-demo-shared
26+ ${GLIB_LIBRARIES}
2427 ${LIBUSERMETRICSOUTPUT_LDFLAGS}
2528 -lpam
2629)
plugins/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp+23−7
@@ -18,6 +18,7 @@
1818
1919#include "UsersModelPrivate.h"
2020
21+#include <glib.h>
2122#include <QDir>
2223#include <QSettings>
2324#include <QStringList>
@@ -28,14 +29,29 @@ namespace QLightDM
2829UsersModelPrivate::UsersModelPrivate(UsersModel* parent)
2930 : q_ptr(parent)
3031{
31− QSettings settings(QDir::homePath() + "/.unity8-greeter-demo", QSettings::NativeFormat);
32− QStringList users = settings.value(QStringLiteral("users"), QStringList() << qgetenv("USER")).toStringList();
32+ QFileInfo demoFile(QDir::homePath() + "/.unity8-greeter-demo");
33+ QString currentUser = g_get_user_name();
3334
34− entries.reserve(users.count());
35− Q_FOREACH(const QString &user, users)
36− {
37− QString name = settings.value(user + "/name", user).toString();
38− entries.append({user, name, 0, 0, false, false, 0, 0});
35+ if (demoFile.exists()) {
36+ QSettings settings(demoFile.filePath(), QSettings::NativeFormat);
37+ QStringList users = settings.value(QStringLiteral("users"), QStringList() << currentUser).toStringList();
38+
39+ entries.reserve(users.count());
40+ Q_FOREACH(const QString &user, users)
41+ {
42+ QString name = settings.value(user + "/name", user).toString();
43+ entries.append({user, name, 0, 0, false, false, 0, 0});
44+ }
45+ } else {
46+ // If we were using the actual liblightdm, we could just ask it
47+ // for the user's real name. But we aren't. We *should* ask
48+ // AccountsService for the real name, like liblightdm does internally,
49+ // but this is close enough since AS and passwd are always in sync.
50+ QString realName = QString::fromUtf8(g_get_real_name()); // gets name from passwd entry
51+ if (realName == QStringLiteral("Unknown")) { // glib doesn't translate this string
52+ realName.clear();
53+ }
54+ entries.append({currentUser, realName, 0, 0, false, false, 0, 0});
3955 }
4056}
4157
plugins/Powerd/CMakeLists.txt−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
31include_directories(
42 ${GIO_INCLUDE_DIRS}
53)
plugins/UInput/CMakeLists.txtnew file+7
@@ -0,0 +1,7 @@
1+add_library(UInput-qml MODULE
2+ plugin.cpp
3+ uinput.cpp
4+)
5+
6+qt5_use_modules(UInput-qml Qml)
7+add_unity8_plugin(UInput 0.1 UInput TARGETS UInput-qml)
plugins/UInput/UInput.qmltypesnew file+44
@@ -0,0 +1,44 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable UInput 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "UInput"
12+ prototype: "QObject"
13+ exports: ["UInput/UInput 0.1"]
14+ exportMetaObjectRevisions: [0]
15+ Enum {
16+ name: "Button"
17+ values: {
18+ "ButtonLeft": 0,
19+ "ButtonRight": 1,
20+ "ButtonMiddle": 2
21+ }
22+ }
23+ Method { name: "createMouse" }
24+ Method { name: "removeMouse" }
25+ Method {
26+ name: "moveMouse"
27+ Parameter { name: "dx"; type: "int" }
28+ Parameter { name: "dy"; type: "int" }
29+ }
30+ Method {
31+ name: "pressMouse"
32+ Parameter { name: "button"; type: "Button" }
33+ }
34+ Method {
35+ name: "releaseMouse"
36+ Parameter { name: "button"; type: "Button" }
37+ }
38+ Method {
39+ name: "scrollMouse"
40+ Parameter { name: "dh"; type: "int" }
41+ Parameter { name: "dv"; type: "int" }
42+ }
43+ }
44+}
plugins/UInput/plugin.cppnew file+26
@@ -0,0 +1,26 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "plugin.h"
18+#include "uinput.h"
19+
20+#include <QtQml/qqml.h>
21+
22+void UInputPlugin::registerTypes(const char *uri)
23+{
24+ Q_ASSERT(uri == QLatin1String("UInput"));
25+ qmlRegisterType<UInput>(uri, 0, 1, "UInput");
26+}
plugins/UInput/plugin.hnew file+32
@@ -0,0 +1,32 @@
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+#ifndef UINPUT_PLUGIN_H
18+#define UINPUT_PLUGIN_H
19+
20+#include <QtQml/QQmlEngine>
21+#include <QtQml/QQmlExtensionPlugin>
22+
23+class UInputPlugin : public QQmlExtensionPlugin
24+{
25+ Q_OBJECT
26+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27+
28+public:
29+ void registerTypes(const char *uri) override;
30+};
31+
32+#endif
plugins/UInput/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module UInput
2+plugin UInput-qml
3+typeinfo UInput.qmltypes
plugins/UInput/uinput.cppnew file+182
@@ -0,0 +1,182 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "uinput.h"
18+
19+#include <QFile>
20+#include <QDebug>
21+#include <QDateTime>
22+
23+#include <unistd.h>
24+#include <time.h>
25+
26+UInput::UInput(QObject *parent) :
27+ QObject(parent)
28+{
29+ m_devName = QByteArrayLiteral("unity8-simulated-mouse");
30+ m_uinput.setFileName(QStringLiteral("/dev/uinput"));
31+
32+ memset(&m_uinput_mouse_dev, 0, sizeof(m_uinput_mouse_dev));
33+ m_uinput_mouse_dev.id.bustype = BUS_USB;
34+ m_uinput_mouse_dev.id.version = 1;
35+ strncpy(m_uinput_mouse_dev.name, m_devName.constData(), m_devName.length());
36+}
37+
38+UInput::~UInput()
39+{
40+ if (m_mouseCreated) {
41+ removeMouse();
42+ }
43+}
44+
45+void UInput::createMouse()
46+{
47+ if (m_mouseCreated) {
48+ qDebug() << "Already have a virtual device. Not creating another one.";
49+ return;
50+ }
51+
52+ if (!m_uinput.isOpen() && !m_uinput.open(QFile::WriteOnly)) {
53+ return;
54+ }
55+
56+ ioctl(m_uinput.handle(), UI_SET_EVBIT, EV_REL);
57+ ioctl(m_uinput.handle(), UI_SET_RELBIT, REL_X);
58+ ioctl(m_uinput.handle(), UI_SET_RELBIT, REL_Y);
59+ ioctl(m_uinput.handle(), UI_SET_RELBIT, REL_HWHEEL);
60+ ioctl(m_uinput.handle(), UI_SET_RELBIT, REL_WHEEL);
61+
62+ ioctl(m_uinput.handle(), UI_SET_EVBIT, EV_KEY);
63+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_MOUSE);
64+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_LEFT);
65+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_MIDDLE);
66+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_RIGHT);
67+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_FORWARD);
68+ ioctl(m_uinput.handle(), UI_SET_KEYBIT, BTN_BACK);
69+
70+ ioctl(m_uinput.handle(), UI_SET_EVBIT, EV_SYN);
71+
72+ int len = write(m_uinput.handle(), &m_uinput_mouse_dev, sizeof(m_uinput_mouse_dev));
73+ if (len <= 0) {
74+ qWarning() << "Failed to write to uinput. Cannot create virtual uinput mouse.";
75+ return;
76+ }
77+
78+ int err = ioctl(m_uinput.handle(), UI_DEV_CREATE);
79+ if (err != 0) {
80+ qWarning() << "Cannot create virtual uinput device. Create ioctl failed:" << err;
81+ return;
82+ }
83+ m_mouseCreated = true;
84+ qDebug() << "Virtual uinput mouse device created.";
85+}
86+
87+void UInput::removeMouse()
88+{
89+ if (!m_mouseCreated) {
90+ return;
91+ }
92+
93+ if (!m_uinput.isOpen() && !m_uinput.open(QFile::WriteOnly)) {
94+ qWarning() << "cannot open uinput... ";
95+ return;
96+ }
97+
98+ int err = ioctl(m_uinput.handle(), UI_DEV_DESTROY);
99+ if (err != 0) {
100+ qWarning() << "Failed to destroy virtual uinput device. Destroy ioctl failed:" << err;
101+ } else {
102+ qDebug() << "Virtual uinput mouse device removed.";
103+ }
104+ m_uinput.close();
105+ m_mouseCreated = false;
106+}
107+
108+void UInput::moveMouse(int dx, int dy)
109+{
110+ struct input_event event;
111+ memset(&event, 0, sizeof(event));
112+ clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
113+ event.type = EV_REL;
114+ event.code = REL_X;
115+ event.value = dx;
116+ write(m_uinput.handle(), &event, sizeof(event));
117+
118+ event.code = REL_Y;
119+ event.value = dy;
120+ write(m_uinput.handle(), &event, sizeof(event));
121+
122+ event.type = EV_SYN;
123+ event.code = SYN_REPORT;
124+ event.value = 0;
125+ write(m_uinput.handle(), &event, sizeof(event));
126+}
127+
128+void UInput::pressMouse(Button button)
129+{
130+ injectMouse(button, 1);
131+}
132+
133+void UInput::releaseMouse(Button button)
134+{
135+ injectMouse(button, 0);
136+}
137+
138+void UInput::scrollMouse(int dh, int dv)
139+{
140+ struct input_event event;
141+ memset(&event, 0, sizeof(event));
142+ clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
143+ event.type = EV_REL;
144+ event.code = REL_HWHEEL;
145+ event.value = dh;
146+ write(m_uinput.handle(), &event, sizeof(event));
147+
148+ event.code = REL_WHEEL;
149+ event.value = dv;
150+ write(m_uinput.handle(), &event, sizeof(event));
151+
152+ event.type = EV_SYN;
153+ event.code = SYN_REPORT;
154+ event.value = 0;
155+ write(m_uinput.handle(), &event, sizeof(event));
156+}
157+
158+void UInput::injectMouse(Button button, int down)
159+{
160+ struct input_event event;
161+ memset(&event, 0, sizeof(event));
162+ clock_gettime(CLOCK_MONOTONIC, (timespec*)&event.time);
163+ event.type = EV_KEY;
164+ switch (button) {
165+ case ButtonLeft:
166+ event.code = BTN_LEFT;
167+ break;
168+ case ButtonRight:
169+ event.code = BTN_RIGHT;
170+ break;
171+ case ButtonMiddle:
172+ event.code = BTN_MIDDLE;
173+ break;
174+ }
175+ event.value = down;
176+ write(m_uinput.handle(), &event, sizeof(event));
177+
178+ event.type = EV_SYN;
179+ event.code = SYN_REPORT;
180+ event.value = 0;
181+ write(m_uinput.handle(), &event, sizeof(event));
182+}
plugins/UInput/uinput.hnew file+61
@@ -0,0 +1,61 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+
18+#ifndef UINPUT_H
19+#define UINPUT_H
20+
21+#include <QObject>
22+#include <QFile>
23+
24+#include <linux/uinput.h>
25+
26+
27+class UInput : public QObject
28+{
29+ Q_OBJECT
30+ Q_ENUMS(Button)
31+
32+public:
33+ enum Button {
34+ ButtonLeft,
35+ ButtonRight,
36+ ButtonMiddle
37+ };
38+
39+ explicit UInput(QObject *parent = nullptr);
40+ ~UInput();
41+
42+ Q_INVOKABLE void createMouse();
43+ Q_INVOKABLE void removeMouse();
44+
45+ Q_INVOKABLE void moveMouse(int dx, int dy);
46+ Q_INVOKABLE void pressMouse(Button button);
47+ Q_INVOKABLE void releaseMouse(Button button);
48+ Q_INVOKABLE void scrollMouse(int dh, int dv);
49+
50+private:
51+ void injectMouse(Button button, int down);
52+
53+private:
54+ QFile m_uinput;
55+ uinput_user_dev m_uinput_mouse_dev;
56+ QByteArray m_devName;
57+
58+ bool m_mouseCreated = false;
59+};
60+
61+#endif // UINPUT_H
plugins/Unity/Indicators/CMakeLists.txt−4
@@ -1,9 +1,5 @@
11project(IndicatorsQml)
22
3−pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
4−pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
5−pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
6−
73find_package(Qt5Core REQUIRED)
84find_package(Qt5Quick REQUIRED)
95
plugins/Unity/Session/CMakeLists.txt−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
31include_directories(
42 ${CMAKE_CURRENT_SOURCE_DIR}
53 ${CMAKE_CURRENT_BINARY_DIR}
plugins/Utils/CMakeLists.txt+2−3
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
31include_directories(
42 ${CMAKE_CURRENT_SOURCE_DIR}
53 ${CMAKE_CURRENT_BINARY_DIR}
@@ -13,7 +11,7 @@ set(QMLPLUGIN_SRC
1311 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
1412 applicationsfiltermodel.cpp
1513 constants.cpp
16− HomeKeyWatcher.cpp
14+ WindowInputMonitor.cpp
1715 inputwatcher.cpp
1816 qlimitproxymodelqml.cpp
1917 unitysortfilterproxymodelqml.cpp
@@ -24,6 +22,7 @@ set(QMLPLUGIN_SRC
2422 easingcurve.cpp
2523 windowstatestorage.cpp
2624 timezoneFormatter.cpp
25+ inputeventgenerator.cpp
2726 plugin.cpp
2827 )
2928
plugins/Utils/EdgeBarrierSettings.qml+1−1
@@ -35,7 +35,7 @@ QtObject {
3535
3636 property Timer printSettingsTimer: Timer {
3737 interval: 1
38− onTriggered: printSettings();
38+ onTriggered: d.printSettings();
3939 }
4040 function printSettings() {
4141 console.log("EdgeBarrierSettings: min="+(minPushThreshold/units.gu(1))+"gu("+minPushThreshold+"px)"
plugins/Utils/HomeKeyWatcher.hdeleted−74
@@ -1,74 +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−#ifndef UNITY_HOMEKEYWATCHER_H
18−#define UNITY_HOMEKEYWATCHER_H
19−
20−#include <QQuickItem>
21−#include <QPointer>
22−
23−#include "Timer.h"
24−#include "ElapsedTimer.h"
25−
26−/*
27− Signals when the home key seems to be have been intentionally tapped.
28−
29− It only says the home key has been activated if it has been tapped in isolation,
30− that is, without being accompanied by touches on the screen. Home key taps that
31− happen along with (or immediately after, or immediately before) touches on the
32− screen are considered to have happened unintentionally and are thus ignored.
33−
34− Rationale being that it's easy to accidentally hit the home key while performing
35− a swipe from a screen edge, for instance. That's particularly the case when the
36− home key is a capacitive key.
37− */
38−class HomeKeyWatcher : public QQuickItem
39−{
40− Q_OBJECT
41−public:
42−
43− HomeKeyWatcher(QQuickItem *parent = 0);
44−
45− // for testing
46− HomeKeyWatcher(UnityUtil::AbstractTimer *timer,
47− UnityUtil::AbstractElapsedTimer *elapsedTimer,
48− QQuickItem *parent = 0);
49−
50− virtual ~HomeKeyWatcher();
51−
52− bool eventFilter(QObject *watched, QEvent *event) override;
53−
54− void update(QEvent *event);
55−
56− const qint64 msecsWithoutTouches = 150;
57−
58−Q_SIGNALS:
59− // Emitted when the home key has been intentionally tapped
60− void activated();
61−
62−private Q_SLOTS:
63− void setupFilterOnWindow(QQuickWindow *window);
64− void emitActivatedIfNoTouchesAround();
65−
66−private:
67− QPointer<QQuickWindow> m_filteredWindow;
68− bool m_windowBeingTouched;
69− bool m_homeKeyPressed;
70− UnityUtil::AbstractElapsedTimer *m_windowLastTouchedTimer;
71− UnityUtil::AbstractTimer *m_activationTimer;
72−};
73−
74−#endif // UNITY_HOMEKEYWATCHER_H
plugins/Utils/HomeKeyWatcher.cpp → plugins/Utils/WindowInputMonitor.cpprenamed+19−12
@@ -14,18 +14,18 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−#include "HomeKeyWatcher.h"
17+#include "WindowInputMonitor.h"
1818
1919#include <QQuickWindow>
2020
2121using namespace UnityUtil;
2222
23−HomeKeyWatcher::HomeKeyWatcher(QQuickItem *parent)
24− : HomeKeyWatcher(new Timer, new ElapsedTimer, parent)
23+WindowInputMonitor::WindowInputMonitor(QQuickItem *parent)
24+ : WindowInputMonitor(new Timer, new ElapsedTimer, parent)
2525{
2626}
2727
28−HomeKeyWatcher::HomeKeyWatcher(UnityUtil::AbstractTimer *timer,
28+WindowInputMonitor::WindowInputMonitor(UnityUtil::AbstractTimer *timer,
2929 UnityUtil::AbstractElapsedTimer *elapsedTimer,
3030 QQuickItem *parent)
3131 : QQuickItem(parent)
@@ -37,20 +37,20 @@ HomeKeyWatcher::HomeKeyWatcher(UnityUtil::AbstractTimer *timer,
3737 m_windowLastTouchedTimer->start();
3838
3939 connect(this, &QQuickItem::windowChanged,
40− this, &HomeKeyWatcher::setupFilterOnWindow);
40+ this, &WindowInputMonitor::setupFilterOnWindow);
4141
4242 connect(m_activationTimer, &UnityUtil::AbstractTimer::timeout,
43− this, &HomeKeyWatcher::emitActivatedIfNoTouchesAround);
43+ this, &WindowInputMonitor::emitActivatedIfNoTouchesAround);
4444 m_activationTimer->setInterval(msecsWithoutTouches);
4545}
4646
47−HomeKeyWatcher::~HomeKeyWatcher()
47+WindowInputMonitor::~WindowInputMonitor()
4848{
4949 delete m_windowLastTouchedTimer;
5050 delete m_activationTimer;
5151}
5252
53−bool HomeKeyWatcher::eventFilter(QObject *watched, QEvent *event)
53+bool WindowInputMonitor::eventFilter(QObject *watched, QEvent *event)
5454{
5555 Q_ASSERT(!m_filteredWindow.isNull());
5656 Q_ASSERT(watched == static_cast<QObject*>(m_filteredWindow.data()));
@@ -62,7 +62,7 @@ bool HomeKeyWatcher::eventFilter(QObject *watched, QEvent *event)
6262 return false;
6363}
6464
65−void HomeKeyWatcher::update(QEvent *event)
65+void WindowInputMonitor::update(QEvent *event)
6666{
6767 if (event->type() == QEvent::KeyPress) {
6868 QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
@@ -86,15 +86,22 @@ void HomeKeyWatcher::update(QEvent *event)
8686
8787 m_activationTimer->stop();
8888 m_windowBeingTouched = true;
89+ Q_EMIT touchBegun();
8990
9091 } else if (event->type() == QEvent::TouchEnd) {
9192
9293 m_windowBeingTouched = false;
9394 m_windowLastTouchedTimer->start();
95+
96+ QTouchEvent * touchEv = static_cast<QTouchEvent *>(event);
97+ if (touchEv && !touchEv->touchPoints().isEmpty()) {
98+ const QPointF pos = touchEv->touchPoints().last().screenPos();
99+ Q_EMIT touchEnded(pos);
100+ }
94101 }
95102}
96103
97−void HomeKeyWatcher::setupFilterOnWindow(QQuickWindow *window)
104+void WindowInputMonitor::setupFilterOnWindow(QQuickWindow *window)
98105{
99106 if (!m_filteredWindow.isNull()) {
100107 m_filteredWindow->removeEventFilter(this);
@@ -107,10 +114,10 @@ void HomeKeyWatcher::setupFilterOnWindow(QQuickWindow *window)
107114 }
108115}
109116
110−void HomeKeyWatcher::emitActivatedIfNoTouchesAround()
117+void WindowInputMonitor::emitActivatedIfNoTouchesAround()
111118{
112119 if (!m_homeKeyPressed && !m_windowBeingTouched &&
113120 (m_windowLastTouchedTimer->elapsed() > msecsWithoutTouches)) {
114− Q_EMIT activated();
121+ Q_EMIT homeKeyActivated();
115122 }
116123}
plugins/Utils/WindowInputMonitor.hnew file+91
@@ -0,0 +1,91 @@
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+#ifndef UNITY_WINDOWINPUTMONITOR_H
18+#define UNITY_WINDOWINPUTMONITOR_H
19+
20+#include <QQuickItem>
21+#include <QPointer>
22+
23+#include "Timer.h"
24+#include "ElapsedTimer.h"
25+
26+/**
27+ * Monitors input events received by the window holding this item and the Home (Win aka Super_L)
28+ * key presses.
29+ *
30+ * Additionally, this class monitors for generic touch events on the screen, to
31+ * help with hiding/revealing the mouse pointer.
32+ */
33+class WindowInputMonitor : public QQuickItem
34+{
35+ Q_OBJECT
36+public:
37+
38+ WindowInputMonitor(QQuickItem *parent = 0);
39+
40+ // for testing
41+ WindowInputMonitor(UnityUtil::AbstractTimer *timer,
42+ UnityUtil::AbstractElapsedTimer *elapsedTimer,
43+ QQuickItem *parent = 0);
44+
45+ virtual ~WindowInputMonitor();
46+
47+ bool eventFilter(QObject *watched, QEvent *event) override;
48+
49+ void update(QEvent *event);
50+
51+ const qint64 msecsWithoutTouches = 150;
52+
53+Q_SIGNALS:
54+ /**
55+ * Emitted when the home key has been intentionally tapped
56+ *
57+ * It only says the home key has been activated if it has been tapped in isolation,
58+ * that is, without being accompanied by touches on the screen. Home key taps that
59+ * happen along with (or immediately after, or immediately before) touches on the
60+ * screen are considered to have happened unintentionally and are thus ignored.
61+ *
62+ * Rationale being that it's easy to accidentally hit the home key while performing
63+ * a swipe from a screen edge, for instance. That's particularly the case when the
64+ * home key is a capacitive key.
65+ */
66+ void homeKeyActivated();
67+
68+ /**
69+ * Emitted when a touch begin event is detected
70+ */
71+ void touchBegun();
72+
73+ /**
74+ * Emitted when a touch end event is detected
75+ * @param pos the position in screen coordinates
76+ */
77+ void touchEnded(const QPointF &pos);
78+
79+private Q_SLOTS:
80+ void setupFilterOnWindow(QQuickWindow *window);
81+ void emitActivatedIfNoTouchesAround();
82+
83+private:
84+ QPointer<QQuickWindow> m_filteredWindow;
85+ bool m_windowBeingTouched;
86+ bool m_homeKeyPressed;
87+ UnityUtil::AbstractElapsedTimer *m_windowLastTouchedTimer;
88+ UnityUtil::AbstractTimer *m_activationTimer;
89+};
90+
91+#endif // UNITY_WINDOWINPUTMONITOR_H
plugins/Utils/inputeventgenerator.cppnew file+34
@@ -0,0 +1,34 @@
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 "inputeventgenerator.h"
18+
19+#include <QQuickWindow>
20+#include <QDebug>
21+#include <QDateTime>
22+
23+InputEventGenerator::InputEventGenerator(QQuickItem *parent)
24+ : QQuickItem(parent)
25+{
26+}
27+
28+void InputEventGenerator::generateKeyEvent(Qt::Key key, bool pressed, Qt::KeyboardModifiers modifiers, quint64 timestamp, quint32 nativeScanCode, const QString &text)
29+{
30+ QEvent::Type type = pressed ? QEvent::KeyPress : QEvent::KeyRelease;
31+ QKeyEvent ev(type, key, modifiers, nativeScanCode, 0, 0, text);
32+ ev.setTimestamp(timestamp);
33+ QCoreApplication::sendEvent(window(), &ev);
34+}
plugins/Utils/inputeventgenerator.hnew file+40
@@ -0,0 +1,40 @@
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 INPUTEVENTGENERATOR_H
18+#define INPUTEVENTGENERATOR_H
19+
20+#include <QQuickItem>
21+#include <QPointer>
22+#include <QDateTime>
23+
24+/**
25+ * \brief This class allows injecting Key events into the scene it lives in.
26+ */
27+class InputEventGenerator : public QQuickItem
28+{
29+ Q_OBJECT
30+public:
31+ InputEventGenerator(QQuickItem *parent = 0);
32+
33+ /**
34+ * Generate and post and event to the scene. The key event will be sent to the scene the Generator
35+ * lives in and it will be dispatched through the regular event/focus queue.
36+ */
37+ Q_INVOKABLE void generateKeyEvent(Qt::Key key, bool pressed, Qt::KeyboardModifiers modifiers = Qt::NoModifier, quint64 timestamp = QDateTime::currentMSecsSinceEpoch(), quint32 nativeScanCode = 0, const QString &text = QString());
38+};
39+
40+#endif // INPUTEVENTGENERATOR_H
plugins/Utils/plugin.cpp+4−2
@@ -25,7 +25,7 @@
2525// local
2626#include "activefocuslogger.h"
2727#include "easingcurve.h"
28−#include "HomeKeyWatcher.h"
28+#include "WindowInputMonitor.h"
2929#include "inputwatcher.h"
3030#include "qlimitproxymodelqml.h"
3131#include "unitysortfilterproxymodelqml.h"
@@ -36,6 +36,7 @@
3636#include "constants.h"
3737#include "timezoneFormatter.h"
3838#include "applicationsfiltermodel.h"
39+#include "inputeventgenerator.h"
3940
4041static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
4142{
@@ -54,7 +55,7 @@ static QObject *createConstants(QQmlEngine *engine, QJSEngine *scriptEngine)
5455void UtilsPlugin::registerTypes(const char *uri)
5556{
5657 Q_ASSERT(uri == QLatin1String("Utils"));
57− qmlRegisterType<HomeKeyWatcher>(uri, 0, 1, "HomeKeyWatcher");
58+ qmlRegisterType<WindowInputMonitor>(uri, 0, 1, "WindowInputMonitor");
5859 qmlRegisterType<QAbstractItemModel>();
5960 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
6061 qmlRegisterType<UnitySortFilterProxyModelQML>(uri, 0, 1, "UnitySortFilterProxyModel");
@@ -68,6 +69,7 @@ void UtilsPlugin::registerTypes(const char *uri)
6869 [](QQmlEngine*, QJSEngine*) -> QObject* { return new TimezoneFormatter; });
6970 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
7071 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
72+ qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
7173}
7274
7375void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
po/am.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-11-19 19:27+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "ከምወዳቸው ማስወገጃ"
196196msgid "Add to Favorites"
197197msgstr "ወደምወዳቸው መጨመሪያ"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "አነስተኛ መመልከቻ"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "ሁሉንም መመልከቻ"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "መፈለጊያ"
@@ -258,9 +258,11 @@ msgstr "ቤት"
258258msgid "Also installed"
259259msgstr "እንዲሁም የተገጠሙ"
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
263−msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል"
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
265+msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
266268msgid "Unlock"
@@ -795,3 +797,6 @@ msgstr "%1 〉"
795797
796798#~ msgid "Call back"
797799#~ msgstr "መልሶ መደወያ"
800+
801+#~ msgid "Your device is now connected to an external display."
802+#~ msgstr "የ እርስዎ አካል አሁን ከ ውጪ ማሳያ ጋር ተገናኝቷል"
po/ar.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -203,15 +203,15 @@ msgstr "حذف من المفضلات"
203203msgid "Add to Favorites"
204204msgstr "إضافة إلى المفضلات"
205205
206−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
206+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
207207msgid "See less"
208208msgstr "شاهد أقل"
209209
210−#: qml/Dash/GenericScopeView.qml:576
210+#: qml/Dash/GenericScopeView.qml:587
211211msgid "See all"
212212msgstr "عرض الكل"
213213
214−#: qml/Dash/GenericScopeView.qml:638
214+#: qml/Dash/GenericScopeView.qml:649
215215msgctxt "Label: Hint for dash search line edit"
216216msgid "Search"
217217msgstr "بحث"
@@ -265,8 +265,10 @@ msgstr "الرئيسية"
265265msgid "Also installed"
266266msgstr "أيضا تم تثبيت"
267267
268−#: qml/DisabledScreenNotice.qml:42
269−msgid "Your device is now connected to an external display."
268+#: qml/DisabledScreenNotice.qml:87
269+msgid ""
270+"Your device is now connected to an external display. Use this screen as a "
271+"touch pad to interact with the mouse."
270272msgstr ""
271273
272274#: qml/Greeter/CoverPage.qml:107
po/ast.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-10-06 12:07+0000\n"
1212"Last-Translator: Xuacu Saturio <xuacusk8@gmail.com>\n"
1313"Language-Team: Asturian <ast@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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -197,15 +197,15 @@ msgstr "Desaniciar de favoritos"
197197msgid "Add to Favorites"
198198msgstr "Amestar a favoritos"
199199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201201msgid "See less"
202202msgstr "Ver menos"
203203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205205msgid "See all"
206206msgstr "Ver too"
207207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209209msgctxt "Label: Hint for dash search line edit"
210210msgid "Search"
211211msgstr "Guetar"
@@ -259,8 +259,10 @@ msgstr "Aniciu"
259259msgid "Also installed"
260260msgstr "Tamién instalaos"
261261
262−#: qml/DisabledScreenNotice.qml:42
263−msgid "Your device is now connected to an external display."
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
264+"Your device is now connected to an external display. Use this screen as a "
265+"touch pad to interact with the mouse."
264266msgstr ""
265267
266268#: qml/Greeter/CoverPage.qml:107
po/az.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Seçilmişlәrdәn çıxart"
194194msgid "Add to Favorites"
195195msgstr "Seçilmişlәrә әlavә et"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr "Daha azını gör"
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr "Hamısını gör"
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/be.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Выдаліць з абранага"
201201msgid "Add to Favorites"
202202msgstr "Дадаць да абранага"
203203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205205msgid "See less"
206206msgstr "Карацей"
207207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209209msgid "See all"
210210msgstr "Больш падрабязна"
211211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213213msgctxt "Label: Hint for dash search line edit"
214214msgid "Search"
215215msgstr "Пошук"
@@ -263,9 +263,11 @@ msgstr "Хатняя папка"
263263msgid "Also installed"
264264msgstr "Таксама ўсталявана"
265265
266−#: qml/DisabledScreenNotice.qml:42
267−msgid "Your device is now connected to an external display."
268−msgstr "Прылада падлучана да вонкавага дысплэю."
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
270+msgstr ""
269271
270272#: qml/Greeter/CoverPage.qml:107
271273msgid "Unlock"
@@ -799,3 +801,6 @@ msgstr "%1 〉"
799801
800802#~ msgid "Call back"
801803#~ msgstr "Зваротны выклік"
804+
805+#~ msgid "Your device is now connected to an external display."
806+#~ msgstr "Прылада падлучана да вонкавага дысплэю."
po/bg.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr ""
196196msgid "Add to Favorites"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr ""
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr ""
@@ -258,8 +258,10 @@ msgstr ""
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263265msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
po/bn.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "পছন্দ থেকে মুছে ফেলুন"
196196msgid "Add to Favorites"
197197msgstr "পছন্দতে যোগ করুন"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "কম দেখুন"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "সব দেখুন"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "খুঁজুন"
@@ -258,9 +258,11 @@ msgstr ""
258258msgid "Also installed"
259259msgstr "আরও ইন্সটল করা রয়েছে..."
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
263−msgstr "আপনার ডিভাইসটি এখন অতিরিক্ত ডিসপ্লের সাথে যুক্ত রয়েছে"
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
265+msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
266268msgid "Unlock"
@@ -664,6 +666,9 @@ msgstr ""
664666msgid "%1 〉"
665667msgstr ""
666668
669+#~ msgid "Your device is now connected to an external display."
670+#~ msgstr "আপনার ডিভাইসটি এখন অতিরিক্ত ডিসপ্লের সাথে যুক্ত রয়েছে"
671+
667672#~ msgid "Log out"
668673#~ msgstr "লগ অাউট"
669674
po/br.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-10-05 06:47+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Lemel eus ar sinedoù"
200200msgid "Add to Favorites"
201201msgstr "Ouzhpennañ d'ar sinedoù"
202202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204204msgid "See less"
205205msgstr "Gwelet nebeutoc'h"
206206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208208msgid "See all"
209209msgstr "Gwelet pep tra"
210210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212212msgctxt "Label: Hint for dash search line edit"
213213msgid "Search"
214214msgstr "Klask"
@@ -262,8 +262,10 @@ msgstr "Er gêr"
262262msgid "Also installed"
263263msgstr "Staliet ivez"
264264
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
267269msgstr ""
268270
269271#: qml/Greeter/CoverPage.qml:107
po/bs.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Ukloni iz Omiljenih"
200200msgid "Add to Favorites"
201201msgstr "Dodaj u Omiljene"
202202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204204msgid "See less"
205205msgstr "Pogledati manje"
206206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208208msgid "See all"
209209msgstr "Pogledati sve"
210210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212212msgctxt "Label: Hint for dash search line edit"
213213msgid "Search"
214214msgstr "Pretraži"
@@ -262,9 +262,11 @@ msgstr "Početna"
262262msgid "Also installed"
263263msgstr "Također instalirano"
264264
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
267−msgstr "Vaš uređaj je sada povezan sa vanjskim ekranom."
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
269+msgstr ""
268270
269271#: qml/Greeter/CoverPage.qml:107
270272msgid "Unlock"
@@ -696,3 +698,6 @@ msgstr "%1 〉"
696698
697699#~ msgid "Please re-enter"
698700#~ msgstr "Molimo ponovo unesite"
701+
702+#~ msgid "Your device is now connected to an external display."
703+#~ msgstr "Vaš uređaj je sada povezan sa vanjskim ekranom."
po/ca.po+22−15
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -155,27 +155,29 @@ msgstr "D'acord"
155155
156156#: qml/Components/ModeSwitchWarningDialog.qml:32
157157msgid "Apps may have unsaved data:"
158−msgstr ""
158+msgstr "Pot ser que aquestes aplicacions no hagin desat les dades:"
159159
160160#: qml/Components/ModeSwitchWarningDialog.qml:57
161161msgid "Re-dock, save your work and close these apps to continue."
162162msgstr ""
163+"Torneu a connectar, deseu la feina i tanqueu aquestes aplicacions per "
164+"continuar."
163165
164166#: qml/Components/ModeSwitchWarningDialog.qml:63
165167msgid "Or force close now (unsaved data will be lost)."
166−msgstr ""
168+msgstr "O força el tancament (les dades no desades es perdran)."
167169
168170#: qml/Components/ModeSwitchWarningDialog.qml:75
169171msgid "OK, I will reconnect"
170−msgstr ""
172+msgstr "D'acord, tornaré a connectar"
171173
172174#: qml/Components/ModeSwitchWarningDialog.qml:76
173175msgid "Reconnect now!"
174−msgstr ""
176+msgstr "Torna a connectar"
175177
176178#: qml/Components/ModeSwitchWarningDialog.qml:88
177179msgid "Close all"
178−msgstr ""
180+msgstr "Tanca-ho tot"
179181
180182#: qml/Dash/DashPageHeader.qml:266
181183msgctxt "Button: Open the Ubuntu Store"
@@ -200,15 +202,15 @@ msgstr "Suprimeix dels preferits"
200202msgid "Add to Favorites"
201203msgstr "Afegeix als preferits"
202204
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204206msgid "See less"
205207msgstr "Mostra'n menys"
206208
207−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
208210msgid "See all"
209211msgstr "Mostra-ho tot"
210212
211−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
212214msgctxt "Label: Hint for dash search line edit"
213215msgid "Search"
214216msgstr "Cerca"
@@ -262,8 +264,10 @@ msgstr "Inici"
262264msgid "Also installed"
263265msgstr "També instal·lat"
264266
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
267271msgstr ""
268272
269273#: qml/Greeter/CoverPage.qml:107
@@ -414,7 +418,7 @@ msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
414418#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
415419msgctxt "Button: Send a reply message"
416420msgid "Send"
417−msgstr ""
421+msgstr "Envia"
418422
419423#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
420424msgctxt "Label: Hint in message indicator line edit"
@@ -424,7 +428,7 @@ msgstr "Respon"
424428#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
425429msgctxt "Button: Call back on phone"
426430msgid "Call back"
427−msgstr ""
431+msgstr "Retorna la trucada"
428432
429433#: qml/Panel/Indicators/ModemInfoItem.qml:105
430434msgid "Unlock SIM"
@@ -814,3 +818,6 @@ msgstr "%1 〉"
814818
815819#~ msgid "Call back"
816820#~ msgstr "Retorna la trucada"
821+
822+#~ msgid "Your device is now connected to an external display."
823+#~ msgstr "El dispositiu està connectat a un monitor extern."
po/ca@valencia.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Suprimeix dels preferits"
200200msgid "Add to Favorites"
201201msgstr "Afig als preferits"
202202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204204msgid "See less"
205205msgstr "Mostra'n menys"
206206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208208msgid "See all"
209209msgstr "Mostra-ho tot"
210210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212212msgctxt "Label: Hint for dash search line edit"
213213msgid "Search"
214214msgstr ""
@@ -262,8 +262,10 @@ msgstr "Inici"
262262msgid "Also installed"
263263msgstr "També instal·lat"
264264
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
267269msgstr ""
268270
269271#: qml/Greeter/CoverPage.qml:107
po/ce.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/ckb.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/cs.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020"Language: cs\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -200,15 +200,15 @@ msgstr "Odstranit z oblíbených"
200200msgid "Add to Favorites"
201201msgstr "Přidat do oblíbených"
202202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204204msgid "See less"
205205msgstr "Zobrazit méně"
206206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208208msgid "See all"
209209msgstr "Zobrazit vše"
210210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212212msgctxt "Label: Hint for dash search line edit"
213213msgid "Search"
214214msgstr "Hledat"
@@ -262,8 +262,10 @@ msgstr "Domů"
262262msgid "Also installed"
263263msgstr "Také nainstalováno"
264264
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
267269msgstr ""
268270
269271#: qml/Greeter/CoverPage.qml:107
po/cy.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Tynnu o Ffefrynnau"
201201msgid "Add to Favorites"
202202msgstr "Ychwanegu at Ffefrynnau"
203203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205205msgid "See less"
206206msgstr "Gweld llai"
207207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209209msgid "See all"
210210msgstr "Gweld y cyfan"
211211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213213msgctxt "Label: Hint for dash search line edit"
214214msgid "Search"
215215msgstr "Chwilio"
@@ -263,8 +263,10 @@ msgstr "Cartref"
263263msgid "Also installed"
264264msgstr "Hefyd wedi gosod"
265265
266−#: qml/DisabledScreenNotice.qml:42
267−msgid "Your device is now connected to an external display."
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
268270msgstr ""
269271
270272#: qml/Greeter/CoverPage.qml:107
po/da.po+10−8
@@ -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-01-11 17:43+0000\n"
11+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Fjern fra Favoritter"
201201msgid "Add to Favorites"
202202msgstr "Tilføj til Favoritter"
203203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205205msgid "See less"
206206msgstr "Vis mindre"
207207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209209msgid "See all"
210210msgstr "Se alle"
211211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213213msgctxt "Label: Hint for dash search line edit"
214214msgid "Search"
215215msgstr "Søg"
@@ -263,8 +263,10 @@ msgstr "Hjem"
263263msgid "Also installed"
264264msgstr "Også installeret"
265265
266−#: qml/DisabledScreenNotice.qml:42
267−msgid "Your device is now connected to an external display."
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
268270msgstr ""
269271
270272#: qml/Greeter/CoverPage.qml:107
po/de.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-24 18:03+0000\n"
1212"Last-Translator: Torsten Franz <Unknown>\n"
1313"Language-Team: German <de@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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Aus den Favoriten entfernen"
202202msgid "Add to Favorites"
203203msgstr "Zu Favoriten hinzufügen"
204204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206206msgid "See less"
207207msgstr "Weniger ansehen"
208208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210210msgid "See all"
211211msgstr "Alle anzeigen"
212212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214214msgctxt "Label: Hint for dash search line edit"
215215msgid "Search"
216216msgstr "Suchen"
@@ -264,9 +264,11 @@ msgstr "Startseite"
264264msgid "Also installed"
265265msgstr "Ebenfalls installiert"
266266
267−#: qml/DisabledScreenNotice.qml:42
268−msgid "Your device is now connected to an external display."
269−msgstr "Ihr Gerät ist jetzt mit einem externen Bildschirm verbunden."
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
271+msgstr ""
270272
271273#: qml/Greeter/CoverPage.qml:107
272274msgid "Unlock"
@@ -811,3 +813,6 @@ msgstr "%1 〉"
811813
812814#~ msgid "Call back"
813815#~ msgstr "Zurückrufen"
816+
817+#~ msgid "Your device is now connected to an external display."
818+#~ msgstr "Ihr Gerät ist jetzt mit einem externen Bildschirm verbunden."
po/el.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-12-04 09:38+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Αφαίρεση από τα αγαπημένα"
202202msgid "Add to Favorites"
203203msgstr "Προσθήκη στα αγαπημένα"
204204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206206msgid "See less"
207207msgstr "Λιγότερα"
208208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210210msgid "See all"
211211msgstr "Εμφάνιση όλων"
212212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214214msgctxt "Label: Hint for dash search line edit"
215215msgid "Search"
216216msgstr "Αναζήτηση"
@@ -264,9 +264,11 @@ msgstr "Αρχή"
264264msgid "Also installed"
265265msgstr "Επίσης εγκατεστημένα"
266266
267−#: qml/DisabledScreenNotice.qml:42
268−msgid "Your device is now connected to an external display."
269−msgstr "Η συσκευή σας τώρα είναι συνδεδεμένη σε εξωτερική οθόνη."
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
271+msgstr ""
270272
271273#: qml/Greeter/CoverPage.qml:107
272274msgid "Unlock"
@@ -810,3 +812,6 @@ msgstr "%1 〉"
810812
811813#~ msgid "%a %d %b %l:%M %p"
812814#~ msgstr "%a %d %b %l:%M %p"
815+
816+#~ msgid "Your device is now connected to an external display."
817+#~ msgstr "Η συσκευή σας τώρα είναι συνδεδεμένη σε εξωτερική οθόνη."
po/en_AU.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-12 07:17+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Remove from Favourites"
196196msgid "Add to Favorites"
197197msgstr "Add to Favourites"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "See less"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "See all"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "Search"
@@ -258,8 +258,10 @@ msgstr "Home"
258258msgid "Also installed"
259259msgstr "Also installed"
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263265msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
po/en_GB.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-04-23 12:59+0000\n"
1212"Last-Translator: Andi Chandler <Unknown>\n"
1313"Language-Team: English (United Kingdom) <en_GB@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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Remove from Favourites"
196196msgid "Add to Favorites"
197197msgstr "Add to Favourites"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "See less"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "See all"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "Search"
@@ -258,9 +258,11 @@ msgstr "Home"
258258msgid "Also installed"
259259msgstr "Also installed"
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
263−msgstr "Your device is now connected to an external display."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
265+msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
266268msgid "Unlock"
@@ -799,3 +801,6 @@ msgstr "%1 〉"
799801
800802#~ msgid "Call back"
801803#~ msgstr "Call back"
804+
805+#~ msgid "Your device is now connected to an external display."
806+#~ msgstr "Your device is now connected to an external display."
po/eo.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr "Aldoni al favoritoj"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "Serĉi"
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/es.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2016-01-15 14:48+0000\n"
1212"Last-Translator: Víctor R. Ruiz <Unknown>\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-01-16 05:38+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Quitar de favoritos"
202202msgid "Add to Favorites"
203203msgstr "Añadir a favoritos"
204204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206206msgid "See less"
207207msgstr "Ver menos"
208208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210210msgid "See all"
211211msgstr "Ver todo"
212212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214214msgctxt "Label: Hint for dash search line edit"
215215msgid "Search"
216216msgstr "Búsqueda"
@@ -264,9 +264,11 @@ msgstr "Inicio"
264264msgid "Also installed"
265265msgstr "También instalados"
266266
267−#: qml/DisabledScreenNotice.qml:42
268−msgid "Your device is now connected to an external display."
269−msgstr "Se ha conectado el dispositivo a una pantalla externa."
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
271+msgstr ""
270272
271273#: qml/Greeter/CoverPage.qml:107
272274msgid "Unlock"
@@ -808,3 +810,6 @@ msgstr "%1 〉"
808810
809811#~ msgid "Call back"
810812#~ msgstr "Devolver llamada"
813+
814+#~ msgid "Your device is now connected to an external display."
815+#~ msgstr "Se ha conectado el dispositivo a una pantalla externa."
po/eu.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -197,15 +197,15 @@ msgstr "Kendu gogokoetatik"
197197msgid "Add to Favorites"
198198msgstr "Gehitu gogokoetara"
199199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201201msgid "See less"
202202msgstr "Ikusi gutxiago"
203203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205205msgid "See all"
206206msgstr "Ikusi guztiak"
207207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209209msgctxt "Label: Hint for dash search line edit"
210210msgid "Search"
211211msgstr "Bilatu"
@@ -259,8 +259,10 @@ msgstr "Hasiera"
259259msgid "Also installed"
260260msgstr "Hau ere instalatuta"
261261
262−#: qml/DisabledScreenNotice.qml:42
263−msgid "Your device is now connected to an external display."
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
264+"Your device is now connected to an external display. Use this screen as a "
265+"touch pad to interact with the mouse."
264266msgstr ""
265267
266268#: qml/Greeter/CoverPage.qml:107
po/fa.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-11 15:43+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -197,15 +197,15 @@ msgstr "برداشتن از برگزیده‌ها"
197197msgid "Add to Favorites"
198198msgstr "افزودن به برگزیده‌ها"
199199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201201msgid "See less"
202202msgstr "کم‌تر ببینید"
203203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205205msgid "See all"
206206msgstr "دیدن همه"
207207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209209msgctxt "Label: Hint for dash search line edit"
210210msgid "Search"
211211msgstr "جست‌وجو"
@@ -259,9 +259,11 @@ msgstr "خانه"
259259msgid "Also installed"
260260msgstr "هم‌چنین نصب شده"
261261
262−#: qml/DisabledScreenNotice.qml:42
263−msgid "Your device is now connected to an external display."
264−msgstr "افزاره‌تان اکنون به یک نمایشگر خارجی وصل شده است."
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
264+"Your device is now connected to an external display. Use this screen as a "
265+"touch pad to interact with the mouse."
266+msgstr ""
265267
266268#: qml/Greeter/CoverPage.qml:107
267269msgid "Unlock"
@@ -799,3 +801,6 @@ msgstr "%1 〉"
799801
800802#~ msgid "Call back"
801803#~ msgstr "پاسخ تماس"
804+
805+#~ msgid "Your device is now connected to an external display."
806+#~ msgstr "افزاره‌تان اکنون به یک نمایشگر خارجی وصل شده است."
po/fi.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Poista suosikeista"
200200msgid "Add to Favorites"
201201msgstr "Lisää suosikkeihin"
202202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204204msgid "See less"
205205msgstr "Näytä vähemmän"
206206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208208msgid "See all"
209209msgstr "Näytä kaikki"
210210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212212msgctxt "Label: Hint for dash search line edit"
213213msgid "Search"
214214msgstr "Etsi"
@@ -262,9 +262,11 @@ msgstr "Koti"
262262msgid "Also installed"
263263msgstr "Myös asennettu"
264264
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
267−msgstr "Laitteesi on nyt liitetty ulkoiseen näyttöön."
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
269+msgstr ""
268270
269271#: qml/Greeter/CoverPage.qml:107
270272msgid "Unlock"
@@ -804,3 +806,6 @@ msgstr "%1 〉"
804806
805807#~ msgid "Call back"
806808#~ msgstr "Soita takaisin"
809+
810+#~ msgid "Your device is now connected to an external display."
811+#~ msgstr "Laitteesi on nyt liitetty ulkoiseen näyttöön."
po/fo.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/fr.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-11-07 19:43+0000\n"
1212"Last-Translator: Jean-Marc <Unknown>\n"
1313"Language-Team: French <fr@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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -204,15 +204,15 @@ msgstr "Retirer des favoris"
204204msgid "Add to Favorites"
205205msgstr "Ajouter aux favoris"
206206
207−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
207+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
208208msgid "See less"
209209msgstr "Voir moins"
210210
211−#: qml/Dash/GenericScopeView.qml:576
211+#: qml/Dash/GenericScopeView.qml:587
212212msgid "See all"
213213msgstr "Tout voir"
214214
215−#: qml/Dash/GenericScopeView.qml:638
215+#: qml/Dash/GenericScopeView.qml:649
216216msgctxt "Label: Hint for dash search line edit"
217217msgid "Search"
218218msgstr "Rechercher"
@@ -266,9 +266,11 @@ msgstr "Accueil"
266266msgid "Also installed"
267267msgstr "Également installées"
268268
269−#: qml/DisabledScreenNotice.qml:42
270−msgid "Your device is now connected to an external display."
271−msgstr "Votre périphérique est maintenant connecté à un écran externe."
269+#: qml/DisabledScreenNotice.qml:87
270+msgid ""
271+"Your device is now connected to an external display. Use this screen as a "
272+"touch pad to interact with the mouse."
273+msgstr ""
272274
273275#: qml/Greeter/CoverPage.qml:107
274276msgid "Unlock"
@@ -822,3 +824,6 @@ msgstr "%1 〉"
822824
823825#~ msgid "Call back"
824826#~ msgstr "Rappeler"
827+
828+#~ msgid "Your device is now connected to an external display."
829+#~ msgstr "Votre périphérique est maintenant connecté à un écran externe."
po/ga.po+146−124
@@ -7,52 +7,53 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11−"PO-Revision-Date: 2015-12-17 16:56+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
11+"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"
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==2 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
23−msgstr "Focal Faire: "
23+msgstr "Pasfhocal "
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:47
2626#: plugins/Unity/Launcher/launcheritem.cpp:106
2727msgid "Pin shortcut"
28−msgstr ""
28+msgstr "Cruthaigh Aicearra Leis An Bharra"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:52
3131msgid "Quit"
32−msgstr "Scoir"
32+msgstr "Éirigh as"
3333
3434#: plugins/Unity/Launcher/launcheritem.cpp:106
3535msgid "Unpin shortcut"
36−msgstr ""
36+msgstr "Bain Aicearra Den Bharra"
3737
3838#: qml/Components/DelayedLockscreen.qml:49
3939msgid "Device Locked"
40−msgstr ""
40+msgstr "Faoi Ghlas"
4141
4242#: qml/Components/DelayedLockscreen.qml:64
4343msgid "You have been locked out due to too many failed passphrase attempts."
44−msgstr ""
44+msgstr "Tá tú dúnta amach ceal an iomarca drochiarrachtaí pasfhocail."
4545
4646#: qml/Components/DelayedLockscreen.qml:65
4747msgid "You have been locked out due to too many failed passcode attempts."
48−msgstr ""
48+msgstr "Tá tú dúnta amach ceal an iomarca drochiarrachtaí cóid."
4949
5050#: qml/Components/DelayedLockscreen.qml:74
5151#, qt-format
5252msgid "Please wait %1 minute and then try again…"
5353msgid_plural "Please wait %1 minutes and then try again…"
54−msgstr[0] ""
55−msgstr[1] ""
54+msgstr[0] "Fan %1 nóiméad agus bain triail as arís, le do thoil."
55+msgstr[1] "Fan %1 nóiméad agus bain triail as arís, le do thoil."
56+msgstr[2] "Fan %1 nóiméad agus bain triail as arís, le do thoil."
5657
5758#: qml/Components/Dialogs.qml:144
5859msgctxt "Title: Lock/Log out dialog"
@@ -61,12 +62,12 @@ msgstr "Logáil Amach"
6162
6263#: qml/Components/Dialogs.qml:145
6364msgid "Are you sure you want to log out?"
64−msgstr ""
65+msgstr "An bhfuil tú cinnte gur mhaith leat lógáil amach?"
6566
6667#: qml/Components/Dialogs.qml:147
6768msgctxt "Button: Lock the system"
6869msgid "Lock"
69−msgstr "Glasáil"
70+msgstr "Cuir Faoi Ghlas"
7071
7172#: qml/Components/Dialogs.qml:154
7273msgctxt "Button: Log out from the system"
@@ -85,7 +86,7 @@ msgstr "Múch"
8586
8687#: qml/Components/Dialogs.qml:174
8788msgid "Are you sure you want to shut down?"
88−msgstr ""
89+msgstr "Cinnte gur mhaith leat an gléas a mhúchadh?"
8990
9091#: qml/Components/Dialogs.qml:176
9192msgctxt "Button: Reboot the system"
@@ -104,7 +105,7 @@ msgstr "Atosaigh"
104105
105106#: qml/Components/Dialogs.qml:208
106107msgid "Are you sure you want to reboot?"
107−msgstr ""
108+msgstr "Cinnte gur mhaith leat atosú?"
108109
109110#: qml/Components/Dialogs.qml:210
110111msgid "No"
@@ -112,18 +113,18 @@ msgstr "Níl"
112113
113114#: qml/Components/Dialogs.qml:217
114115msgid "Yes"
115−msgstr "Tá Go Maith"
116+msgstr "Tá"
116117
117118#: qml/Components/Dialogs.qml:232
118119msgctxt "Title: Power off/Restart dialog"
119120msgid "Power"
120−msgstr "Cumhacht"
121+msgstr "Múch an chumhacht"
121122
122123#: qml/Components/Dialogs.qml:233
123124msgid ""
124125"Are you sure you would like\n"
125126"to power off?"
126−msgstr ""
127+msgstr "Cinnte gur mhaith leat an chumhacht a mhúchadh?"
127128
128129#: qml/Components/Dialogs.qml:235
129130msgctxt "Button: Power off the system"
@@ -137,11 +138,11 @@ msgstr "Atosaigh"
137138
138139#: qml/Components/Lockscreen.qml:245
139140msgid "Return to Call"
140−msgstr ""
141+msgstr "Fill ar an Ghlaoch"
141142
142143#: qml/Components/Lockscreen.qml:245
143144msgid "Emergency Call"
144−msgstr ""
145+msgstr "Glaoch Éigeandála"
145146
146147#: qml/Components/Lockscreen.qml:277
147148msgid "OK"
@@ -149,11 +150,13 @@ msgstr "Tá Go Maith"
149150
150151#: qml/Components/ModeSwitchWarningDialog.qml:32
151152msgid "Apps may have unsaved data:"
152−msgstr ""
153+msgstr "Seans go mbeidh sonraí gan sábháil ag aipeanna:"
153154
154155#: qml/Components/ModeSwitchWarningDialog.qml:57
155156msgid "Re-dock, save your work and close these apps to continue."
156157msgstr ""
158+"Cuir sa leaba nasctha, sabhail do chuid oibre agus dún na haipeanna seo chun "
159+"leanúínt ar aghaidh."
157160
158161#: qml/Components/ModeSwitchWarningDialog.qml:63
159162msgid "Or force close now (unsaved data will be lost)."
@@ -161,11 +164,11 @@ msgstr ""
161164
162165#: qml/Components/ModeSwitchWarningDialog.qml:75
163166msgid "OK, I will reconnect"
164−msgstr ""
167+msgstr "Go maith, athcheanglóidh mé."
165168
166169#: qml/Components/ModeSwitchWarningDialog.qml:76
167170msgid "Reconnect now!"
168−msgstr ""
171+msgstr "Athnasc anois!"
169172
170173#: qml/Components/ModeSwitchWarningDialog.qml:88
171174msgid "Close all"
@@ -184,7 +187,7 @@ msgstr "Cuardach"
184187#: qml/Dash/DashPageHeader.qml:283
185188msgctxt "Button: Show the current dash scope settings"
186189msgid "Settings"
187−msgstr ""
190+msgstr "Socruithe"
188191
189192#: qml/Dash/DashPageHeader.qml:290
190193msgid "Remove from Favorites"
@@ -194,18 +197,18 @@ msgstr "Bain ó Cheanáin"
194197msgid "Add to Favorites"
195198msgstr "Cuir le Ceanáin"
196199
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198201msgid "See less"
199−msgstr "Fheiceáil Níos Lú"
202+msgstr "Taispeáin níos lú"
200203
201−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
202205msgid "See all"
203−msgstr ""
206+msgstr "Taispeáin gach rud"
204207
205−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
206209msgctxt "Label: Hint for dash search line edit"
207210msgid "Search"
208−msgstr ""
211+msgstr "Cuardach"
209212
210213#: qml/Dash/Previews/PreviewActionCombo.qml:35
211214msgid "More..."
@@ -213,7 +216,7 @@ msgstr "Tuilleadh..."
213216
214217#: qml/Dash/Previews/PreviewActionCombo.qml:35
215218msgid "Less..."
216−msgstr ""
219+msgstr "Níos lú..."
217220
218221#: qml/Dash/Previews/PreviewCommentInput.qml:68
219222#: qml/Dash/Previews/PreviewRatingInput.qml:174
@@ -222,31 +225,31 @@ msgstr "Seol"
222225
223226#: qml/Dash/Previews/PreviewRatingInput.qml:84
224227msgid "Rate this"
225−msgstr ""
228+msgstr "Grádaigh é seo"
226229
227230#: qml/Dash/Previews/PreviewRatingInput.qml:129
228231msgid "Add a review"
229−msgstr ""
232+msgstr "Cuir léirmheas leis"
230233
231234#: qml/Dash/Previews/PreviewSharing.qml:50
232235msgid "Preview Share Item"
233−msgstr ""
236+msgstr "Réamhthaispeántas Rud Le Chéile"
234237
235238#: qml/Dash/PullToRefreshScopeStyle.qml:55
236239msgid "Pull to refresh…"
237−msgstr ""
240+msgstr "Tarraing le hathnuachan..."
238241
239242#: qml/Dash/PullToRefreshScopeStyle.qml:60
240243msgid "Release to refresh…"
241−msgstr ""
244+msgstr "Scaoil le hathnuachan..."
242245
243246#: qml/Dash/ScopeSettings/ScopeSettingBoolean.qml:43
244247msgid "Enable location data"
245−msgstr ""
248+msgstr "Ceadaigh logshonraí"
246249
247250#: qml/Dash/ScopesList.qml:67
248251msgid "Manage"
249−msgstr ""
252+msgstr "Bainistigh"
250253
251254#: qml/Dash/ScopesList.qml:113
252255msgid "Home"
@@ -256,117 +259,126 @@ msgstr "Baile"
256259msgid "Also installed"
257260msgstr ""
258261
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
264+"Your device is now connected to an external display. Use this screen as a "
265+"touch pad to interact with the mouse."
261266msgstr ""
262267
263268#: qml/Greeter/CoverPage.qml:107
264269msgid "Unlock"
265−msgstr "Díghlasáil"
270+msgstr "Oscail"
266271
267272#: qml/Greeter/LoginList.qml:236
268273msgid "Retry"
269−msgstr ""
274+msgstr "Bain triail as arís"
270275
271276#: qml/Greeter/LoginList.qml:237
272277msgid "Tap to unlock"
273−msgstr ""
278+msgstr "Cnag le hoscail"
274279
275280#: qml/Greeter/NarrowView.qml:54 qml/Wizard/Pages/passwd-confirm.qml:53
276281msgid "Sorry, incorrect passphrase."
277−msgstr ""
282+msgstr "Pasfhocal míchruinn"
278283
279284#: qml/Greeter/NarrowView.qml:55 qml/Wizard/Pages/passwd-confirm.qml:54
280285msgid "Sorry, incorrect passcode."
281−msgstr ""
286+msgstr "Códfhocal míchruinn"
282287
283288#: qml/Greeter/NarrowView.qml:56
284289msgid "This will be your last attempt."
285−msgstr ""
290+msgstr "Iarracht dheireanach."
286291
287292#: qml/Greeter/NarrowView.qml:58
288293msgid ""
289294"If passphrase is entered incorrectly, your phone will conduct a factory "
290295"reset and all personal data will be deleted."
291296msgstr ""
297+"Más mbíonn pasfhocal mícheart agat arís, déanann do guthan monarchan "
298+"athshocrú agus beidh do shonraí pearsanta scriosadh."
292299
293300#: qml/Greeter/NarrowView.qml:59
294301msgid ""
295302"If passcode is entered incorrectly, your phone will conduct a factory reset "
296303"and all personal data will be deleted."
297304msgstr ""
305+"Más mbíonn paschód mícheart agat arís, déanann do guthan monarchan athshocrú "
306+"agus beidh do shonraí pearsanta scriosadh."
298307
299308#: qml/Greeter/NarrowView.qml:116
300309#, qt-format
301310msgid "Enter %1"
302−msgstr ""
311+msgstr "Cuir isteach %1"
303312
304313#: qml/Greeter/NarrowView.qml:117 qml/Wizard/Pages/passwd-set.qml:60
305314msgid "Enter passphrase"
306−msgstr ""
315+msgstr "Cuir pasfhrása isteach"
307316
308317#: qml/Greeter/NarrowView.qml:118
309318msgid "Enter passcode"
310−msgstr ""
319+msgstr "Cuir paschód isteach"
311320
312321#: qml/Greeter/NarrowView.qml:119
313322#, qt-format
314323msgid "Sorry, incorrect %1"
315−msgstr ""
324+msgstr "Míchruinn, mo léan %1"
316325
317326#: qml/Greeter/NarrowView.qml:120
318327msgid "Sorry, incorrect passphrase"
319−msgstr ""
328+msgstr "Códfhrása míchruinn, mo léan."
320329
321330#: qml/Greeter/NarrowView.qml:121
322331msgctxt "passphrase"
323332msgid "Please re-enter"
324−msgstr ""
333+msgstr "Cuir isteach é arís, le do thoil"
325334
326335#: qml/Greeter/NarrowView.qml:122
327336msgid "Sorry, incorrect passcode"
328−msgstr ""
337+msgstr "Paschód míchruinn, mo léan"
329338
330339#: qml/Notifications/NotificationMenuItemFactory.qml:129
331340msgid "Show password"
332−msgstr ""
341+msgstr "Taispeáin pasfhocal"
333342
334343#: qml/Panel/ActiveCallHint.qml:79
335344msgid "Tap to return to call..."
336−msgstr ""
345+msgstr "Tapáil chun filleadh ar an nglaoch..."
337346
338347#: qml/Panel/ActiveCallHint.qml:92
339348msgid "Conference"
340−msgstr ""
349+msgstr "Glaoch comhdhála"
341350
342351#: qml/Panel/Indicators/MenuItemFactory.qml:753
343352msgid "Nothing is playing"
344−msgstr ""
353+msgstr "Tada á chasadh"
345354
346355#: qml/Panel/Indicators/MenuItemFactory.qml:882
347356#, qt-format
348357msgid "%1 hour"
349358msgid_plural "%1 hours"
350−msgstr[0] ""
351−msgstr[1] ""
359+msgstr[0] "%1 uair"
360+msgstr[1] "%1 uair"
361+msgstr[2] "%1 uair"
352362
353363#: qml/Panel/Indicators/MenuItemFactory.qml:886
354364#, qt-format
355365msgid "%1 minute"
356366msgid_plural "%1 minutes"
357−msgstr[0] ""
358−msgstr[1] ""
367+msgstr[0] "%1 nóiméad"
368+msgstr[1] "%1 nóiméad"
369+msgstr[2] "%1 nóiméad"
359370
360371#: qml/Panel/Indicators/MenuItemFactory.qml:891
361372#, qt-format
362373msgid "%1 second"
363374msgid_plural "%1 seconds"
364−msgstr[0] ""
365−msgstr[1] ""
375+msgstr[0] "%1 soicind"
376+msgstr[1] "%1 soicind"
377+msgstr[2] "%1 soicind"
366378
367379#: qml/Panel/Indicators/MenuItemFactory.qml:894
368380msgid "0 seconds"
369−msgstr ""
381+msgstr "%1 soicind"
370382
371383#. Translators: String like "1 hour, 2 minutes, 3 seconds remaining"
372384#: qml/Panel/Indicators/MenuItemFactory.qml:896
@@ -376,206 +388,206 @@ msgstr ""
376388
377389#: qml/Panel/Indicators/MenuItemFactory.qml:902
378390msgid "In queue…"
379−msgstr ""
391+msgstr "Ag fanacht a scuaine..."
380392
381393#: qml/Panel/Indicators/MenuItemFactory.qml:906
382394msgid "Downloading"
383−msgstr ""
395+msgstr "Íoslódáil"
384396
385397#: qml/Panel/Indicators/MenuItemFactory.qml:908
386398msgid "Paused, tap to resume"
387−msgstr ""
399+msgstr "Sos, tapáill chun leanúint ar aghaidhdh"
388400
389401#: qml/Panel/Indicators/MenuItemFactory.qml:910
390402msgid "Canceled"
391−msgstr ""
403+msgstr "Curtha Ar Ceal"
392404
393405#: qml/Panel/Indicators/MenuItemFactory.qml:912
394406msgid "Finished"
395−msgstr ""
407+msgstr "Críochnaithe"
396408
397409#: qml/Panel/Indicators/MenuItemFactory.qml:914
398410msgid "Failed, tap to retry"
399−msgstr ""
411+msgstr "Tá teipthe ort, tapáil chun triail eile a bhaint as"
400412
401413#: qml/Panel/Indicators/MessageMenuItemFactory.qml:155
402414#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
403415msgctxt "Button: Send a reply message"
404416msgid "Send"
405−msgstr ""
417+msgstr "Seol"
406418
407419#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
408420msgctxt "Label: Hint in message indicator line edit"
409421msgid "Reply"
410−msgstr ""
422+msgstr "Freagra"
411423
412424#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
413425msgctxt "Button: Call back on phone"
414426msgid "Call back"
415−msgstr ""
427+msgstr "Glaoch Ar Ais"
416428
417429#: qml/Panel/Indicators/ModemInfoItem.qml:105
418430msgid "Unlock SIM"
419−msgstr ""
431+msgstr "Díghlasail an SIM"
420432
421433#: qml/Panel/Indicators/RoamingIndication.qml:27
422434msgid "Roaming"
423−msgstr ""
435+msgstr "Fánaíocht"
424436
425437#: qml/Tutorial/TutorialBottom.qml:28
426438msgid "Open special menus"
427−msgstr ""
439+msgstr "Oscail Roghchláir Speisialta"
428440
429441#: qml/Tutorial/TutorialBottom.qml:29
430442msgid "Swipe up from the bottom edge."
431−msgstr ""
443+msgstr "Cuimil anuas ón bhunlíne."
432444
433445#: qml/Tutorial/TutorialBottomFinish.qml:24
434446msgid "This action does different things for different apps"
435−msgstr ""
447+msgstr "Baineann feidhm ar leith leis seo i dtaca le haipeanna éagsúla"
436448
437449#: qml/Tutorial/TutorialBottomFinish.qml:25
438450msgid "Tap here to finish."
439−msgstr ""
451+msgstr "Tapáil anseo chun críochnú."
440452
441453#: qml/Tutorial/TutorialContent.qml:80 qml/Tutorial/TutorialLeftFinish.qml:25
442454#: qml/Tutorial/TutorialRight.qml:144
443455msgid "Tap here to continue."
444−msgstr ""
456+msgstr "Tapáil anseo chun leanúint ar aghaidh."
445457
446458#: qml/Tutorial/TutorialLeft.qml:26
447459msgid "Open the launcher"
448−msgstr ""
460+msgstr "Oscail an lainseálaí"
449461
450462#: qml/Tutorial/TutorialLeft.qml:27
451463msgid "Short swipe from the left edge."
452−msgstr ""
464+msgstr "Cuimil ghearr ón taobh clé."
453465
454466#: qml/Tutorial/TutorialLeftFinish.qml:24
455467msgid "These are the shortcuts to favorite apps"
456−msgstr ""
468+msgstr "Is iad seo na haicearrái i gcomhair na n-aipeanna is fearr leat"
457469
458470#: qml/Tutorial/TutorialPage.qml:178
459471msgid "You almost got it!"
460−msgstr ""
472+msgstr "D'éirigh leat beagnach!"
461473
462474#: qml/Tutorial/TutorialPage.qml:195
463475msgid "Try again."
464−msgstr ""
476+msgstr "Bain triail as arís."
465477
466478#: qml/Tutorial/TutorialRight.qml:31
467479msgid "To view open apps"
468−msgstr ""
480+msgstr "Chun féachaint oscail aipeanna"
469481
470482#: qml/Tutorial/TutorialRight.qml:32
471483msgid "Long swipe from the right edge."
472−msgstr ""
484+msgstr "Cuimil fhada ó taobh clé."
473485
474486#: qml/Tutorial/TutorialRight.qml:122
475487msgid "View all your running tasks."
476−msgstr ""
488+msgstr "Féach ar do thascanna reatha."
477489
478490#: qml/Wizard/Page.qml:89
479491msgctxt "Button: Go back one page in the Wizard"
480492msgid "Back"
481−msgstr ""
493+msgstr "Ar ais"
482494
483495#: qml/Wizard/Pages/10-welcome.qml:27
484496msgid "Hi!"
485−msgstr ""
497+msgstr "Dia duit!"
486498
487499#: qml/Wizard/Pages/10-welcome.qml:44
488500msgid "Welcome to your Ubuntu phone."
489−msgstr ""
501+msgstr "Tá fáilte romhat chuig do fhón Ubuntu."
490502
491503#: qml/Wizard/Pages/10-welcome.qml:52
492504msgid "Let’s get started."
493−msgstr ""
505+msgstr "Tosaímis"
494506
495507#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:133
496508#: qml/Wizard/Pages/40-wifi.qml:215 qml/Wizard/Pages/50-location.qml:131
497509#: qml/Wizard/Pages/60-reporting.qml:60 qml/Wizard/Pages/passwd-confirm.qml:82
498510#: qml/Wizard/Pages/passwd-set.qml:90
499511msgid "Continue"
500−msgstr ""
512+msgstr "Ar aghaidh leat (go dtí an chéad lch eile)"
501513
502514#: qml/Wizard/Pages/20-sim.qml:25
503515msgid "Add a SIM card and restart your device"
504−msgstr ""
516+msgstr "Cuir cárta SIM isteach agus atosaigh an fearas"
505517
506518#: qml/Wizard/Pages/20-sim.qml:59
507519msgid "Without it, you won’t be able to make calls or use text messaging."
508−msgstr ""
520+msgstr "Gan é, ní bheifeá ábalta glaoch a dhéanamh nó téasc a sheoladh."
509521
510522#: qml/Wizard/Pages/20-sim.qml:73 qml/Wizard/Pages/40-wifi.qml:215
511523msgid "Skip"
512−msgstr ""
524+msgstr "Scipeáil"
513525
514526#: qml/Wizard/Pages/30-passwd-type.qml:39
515527msgid "Lock security"
516−msgstr ""
528+msgstr "Slándáil ghlasála"
517529
518530#: qml/Wizard/Pages/30-passwd-type.qml:79
519531msgid "Please select how you’d like to unlock your phone."
520−msgstr ""
532+msgstr "Roghnaigh conas ar mhaith leat do fhón a díghlasáil"
521533
522534#: qml/Wizard/Pages/30-passwd-type.qml:102
523535msgctxt "Label: Type of security method"
524536msgid "Swipe"
525−msgstr ""
537+msgstr "Cuimil"
526538
527539#: qml/Wizard/Pages/30-passwd-type.qml:103
528540msgctxt "Label: Description of security method"
529541msgid "No security"
530−msgstr ""
542+msgstr "Gan slándáil"
531543
532544#: qml/Wizard/Pages/30-passwd-type.qml:105
533545msgctxt "Label: Type of security method"
534546msgid "Passcode"
535−msgstr ""
547+msgstr "Paschód"
536548
537549#: qml/Wizard/Pages/30-passwd-type.qml:106
538550msgctxt "Label: Description of security method"
539551msgid "4 digits only"
540−msgstr ""
552+msgstr "Ceithre dhigit amháin"
541553
542554#: qml/Wizard/Pages/30-passwd-type.qml:108
543555msgctxt "Label: Type of security method"
544556msgid "Passphrase"
545−msgstr ""
557+msgstr "Pasfhrása"
546558
547559#: qml/Wizard/Pages/30-passwd-type.qml:109
548560msgctxt "Label: Description of security method"
549561msgid "Numbers and letters"
550−msgstr ""
562+msgstr "Litreacha agus uimhreacha"
551563
552564#: qml/Wizard/Pages/40-wifi.qml:29
553565msgid "Connect to Wi‑Fi"
554−msgstr ""
566+msgstr "Ceangail le Wi-Fi"
555567
556568#: qml/Wizard/Pages/40-wifi.qml:168
557569msgid "Available networks…"
558−msgstr ""
570+msgstr "Gréasáin ar fáil..."
559571
560572#: qml/Wizard/Pages/40-wifi.qml:169
561573msgid "No available networks."
562−msgstr ""
574+msgstr "Níl aon ghréasáin ar fáil."
563575
564576#: qml/Wizard/Pages/50-location.qml:27
565577msgid "Location"
566−msgstr ""
578+msgstr "Suíomh reatha"
567579
568580#: qml/Wizard/Pages/50-location.qml:62
569581msgid "Let the phone detect your location:"
570−msgstr ""
582+msgstr "Lig an fón do shuíomh reatha a aimsiú:"
571583
572584#: qml/Wizard/Pages/50-location.qml:69
573585msgid "Using GPS only (less accurate)"
574−msgstr ""
586+msgstr "Úsáid GPS amháín (easpa cruinnis)"
575587
576588#: qml/Wizard/Pages/50-location.qml:86
577589msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
578−msgstr ""
590+msgstr "Úsáid GPS, gan ainm WIFI agus líonra ceallach eolas (moltar)"
579591
580592#. Translators: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
581593#: qml/Wizard/Pages/50-location.qml:103
@@ -583,67 +595,74 @@ msgid ""
583595"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
584596"conditions</a>."
585597msgstr ""
598+"Má ghlacann tú leis an rogha seo glacann tú leis na <a href='#'>téarmaí agus "
599+"coinníollacha</a> a bhaineann le Nokia HERE."
586600
587601#: qml/Wizard/Pages/50-location.qml:112
588602msgid "Not at all"
589−msgstr ""
603+msgstr "In aon chor"
590604
591605#: qml/Wizard/Pages/50-location.qml:124
592606msgid "You can change your mind later in <b>System Settings</b>."
593607msgstr ""
608+"Is féidir do chinneadh a athrú níos déanaí sna <b>Socruithe Córais</b>"
594609
595610#: qml/Wizard/Pages/60-reporting.qml:26
596611msgid "Improving your experience"
597−msgstr ""
612+msgstr "Ag cur le do thaitneamh agus leis an tairbhe"
598613
599614#: qml/Wizard/Pages/60-reporting.qml:46
600615msgid ""
601616"Your phone is set up to automatically report errors to Canonical and its "
602617"partners, the makers of the operating system."
603618msgstr ""
619+"Cuireann do fhón earráidí in iúl go huathoibríoch do Chanonical agus a "
620+"chomhpháirithe, lucht déanta an chórais oibre."
604621
605622#: qml/Wizard/Pages/60-reporting.qml:53
606623msgid ""
607624"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
608625"Privacy</b>"
609626msgstr ""
627+"Is féidir é seo a mhúchadh sna Socruithe Córais faoi Shlándáil agus "
628+"Príobháideachas"
610629
611630#: qml/Wizard/Pages/80-finished.qml:24
612631msgid "All done"
613−msgstr ""
632+msgstr "Déanta"
614633
615634#: qml/Wizard/Pages/80-finished.qml:39
616635msgid "Nice work!"
617−msgstr ""
636+msgstr "D'éirigh leat!"
618637
619638#: qml/Wizard/Pages/80-finished.qml:46
620639msgid "Your phone is now ready to use."
621−msgstr ""
640+msgstr "Tá do fhón reidh le húsáid anois."
622641
623642#: qml/Wizard/Pages/80-finished.qml:53
624643msgid "Finish"
625−msgstr ""
644+msgstr "Críoch"
626645
627646#: qml/Wizard/Pages/here-terms.qml:27
628647msgid "Terms & Conditions"
629−msgstr ""
648+msgstr "Téarmaí agus Coinníollacha"
630649
631650#: qml/Wizard/Pages/passwd-confirm.qml:49
632651msgid "Confirm passphrase"
633−msgstr ""
652+msgstr "Deimhnigh pasfhrása"
634653
635654#: qml/Wizard/Pages/passwd-confirm.qml:50
636655msgid "Confirm passcode"
637−msgstr ""
656+msgstr "Deimhnigh paschód"
638657
639658#: qml/Wizard/Pages/passwd-confirm.qml:53
640659#: qml/Wizard/Pages/passwd-confirm.qml:54
641660msgid "Please try again."
642−msgstr ""
661+msgstr "Bain trial as arís."
643662
644663#: qml/Wizard/Pages/passwd-set.qml:61
645664msgid "Choose your passcode"
646−msgstr ""
665+msgstr "Roghnaigh do phaschód"
647666
648667#: qml/Wizard/Pages/passwd-set.qml:68
649668msgid "Passphrase must be 4 characters long"
@@ -660,3 +679,6 @@ msgstr ""
660679#, qt-format
661680msgid "%1 〉"
662681msgstr ""
682+
683+#~ msgid "Your device is now connected to an external display."
684+#~ msgstr "Tá do uirlis ceangailte le taispeánt sheachtrach"
po/gd.po+15−10
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-16 10:56+0000\n"
1212"Last-Translator: GunChleoc <Unknown>\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-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121"Language: gd\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -206,15 +206,15 @@ msgstr "Thoir air falbh o na h-annsachdan"
206206msgid "Add to Favorites"
207207msgstr "Cuir ris na h-annsachdan"
208208
209−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
209+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
210210msgid "See less"
211211msgstr "Seall nas lugha"
212212
213−#: qml/Dash/GenericScopeView.qml:576
213+#: qml/Dash/GenericScopeView.qml:587
214214msgid "See all"
215215msgstr "Seall na h-uile"
216216
217−#: qml/Dash/GenericScopeView.qml:638
217+#: qml/Dash/GenericScopeView.qml:649
218218msgctxt "Label: Hint for dash search line edit"
219219msgid "Search"
220220msgstr "Lorg"
@@ -268,11 +268,11 @@ msgstr "Dhachaigh"
268268msgid "Also installed"
269269msgstr "Air a stàladh cuideachd"
270270
271−#: qml/DisabledScreenNotice.qml:42
272−msgid "Your device is now connected to an external display."
271+#: qml/DisabledScreenNotice.qml:87
272+msgid ""
273+"Your device is now connected to an external display. Use this screen as a "
274+"touch pad to interact with the mouse."
273275msgstr ""
274−"Tha an t-uidheam agad ceangailte ri uidheam-taisbeanaidh air an taobh a-"
275−"muigh a-nis."
276276
277277#: qml/Greeter/CoverPage.qml:107
278278msgid "Unlock"
@@ -830,3 +830,8 @@ msgstr "%1 〉"
830830
831831#~ msgid "Call back"
832832#~ msgstr "Fònaig air ais"
833+
834+#~ msgid "Your device is now connected to an external display."
835+#~ msgstr ""
836+#~ "Tha an t-uidheam agad ceangailte ri uidheam-taisbeanaidh air an taobh a-"
837+#~ "muigh a-nis."
po/gl.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-16 05:38+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Eliminar dos favoritos"
196196msgid "Add to Favorites"
197197msgstr "Engadir aos favoritos"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "Ver menos"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "Ver todo"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "Buscar"
@@ -258,9 +258,11 @@ msgstr "Persoal"
258258msgid "Also installed"
259259msgstr "Tamén instalado"
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
263−msgstr "O dispositivo conectouse a unha pantalla externa."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
265+msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
266268msgid "Unlock"
@@ -802,3 +804,6 @@ msgstr "%1 〉"
802804
803805#~ msgid "%a %d %b %l:%M %p"
804806#~ msgstr "%a, %d de %b  %l:%M %p"
807+
808+#~ msgid "Your device is now connected to an external display."
809+#~ msgstr "O dispositivo conectouse a unha pantalla externa."
po/gv.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Jean scughey woish Reihyn"
201201msgid "Add to Favorites"
202202msgstr "Cur ayns Reihyn"
203203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205205msgid "See less"
206206msgstr "Faik ny sloo"
207207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209209msgid "See all"
210210msgstr "Faik ooilley"
211211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213213msgctxt "Label: Hint for dash search line edit"
214214msgid "Search"
215215msgstr ""
@@ -263,8 +263,10 @@ msgstr "Balley"
263263msgid "Also installed"
264264msgstr ""
265265
266−#: qml/DisabledScreenNotice.qml:42
267−msgid "Your device is now connected to an external display."
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
268270msgstr ""
269271
270272#: qml/Greeter/CoverPage.qml:107
po/he.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "הסרה מהמועדפים"
194194msgid "Add to Favorites"
195195msgstr "הוספה למועדפים"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr "לראות פחות"
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr "להציג הכול"
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "חיפוש"
@@ -256,8 +256,10 @@ msgstr "בית"
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/hi.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/hr.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2013-06-27 04:14+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Croatian <hr@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-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -198,15 +198,15 @@ msgstr "Ukloni iz omiljenih"
198198msgid "Add to Favorites"
199199msgstr "Dodaj u omiljene"
200200
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202202msgid "See less"
203203msgstr "Prikaži manje"
204204
205−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
206206msgid "See all"
207207msgstr "Prikaži sve"
208208
209−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
210210msgctxt "Label: Hint for dash search line edit"
211211msgid "Search"
212212msgstr "Pretraži"
@@ -260,9 +260,11 @@ msgstr "Naslovnica"
260260msgid "Also installed"
261261msgstr "Također instalirano"
262262
263−#: qml/DisabledScreenNotice.qml:42
264−msgid "Your device is now connected to an external display."
265−msgstr "Vaš uređaj je povezan s vanjskim zalonom"
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
267+msgstr ""
266268
267269#: qml/Greeter/CoverPage.qml:107
268270msgid "Unlock"
@@ -729,3 +731,6 @@ msgstr "%1 〉"
729731
730732#~ msgid "Call back"
731733#~ msgstr "Uzvrati poziv"
734+
735+#~ msgid "Your device is now connected to an external display."
736+#~ msgstr "Vaš uređaj je povezan s vanjskim zalonom"
po/hu.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-12-30 09:49+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -198,15 +198,15 @@ msgstr "Eltávolítás a kedvencek közül"
198198msgid "Add to Favorites"
199199msgstr "Hozzáadás a kedvencekhez"
200200
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202202msgid "See less"
203203msgstr "Kevesebb"
204204
205−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
206206msgid "See all"
207207msgstr "Összes megtekintése"
208208
209−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
210210msgctxt "Label: Hint for dash search line edit"
211211msgid "Search"
212212msgstr "Keresés"
@@ -260,9 +260,11 @@ msgstr "Kezdőlapon"
260260msgid "Also installed"
261261msgstr "Telepítve"
262262
263−#: qml/DisabledScreenNotice.qml:42
264−msgid "Your device is now connected to an external display."
265−msgstr "Egy külső kijelzőhöz csatlakoztatta a készüléket."
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
267+msgstr ""
266268
267269#: qml/Greeter/CoverPage.qml:107
268270msgid "Unlock"
@@ -805,3 +807,6 @@ msgstr "%1 〉"
805807
806808#~ msgid "%a %d %b %H:%M"
807809#~ msgstr "%b. %d., %a %H.%M"
810+
811+#~ msgid "Your device is now connected to an external display."
812+#~ msgstr "Egy külső kijelzőhöz csatlakoztatta a készüléket."
po/hy.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -198,15 +198,15 @@ msgstr "Հեռացնել ընտրյալների ցուցակից"
198198msgid "Add to Favorites"
199199msgstr "Ավելացնել ընտրյալների ցուցակում"
200200
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202202msgid "See less"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
206206msgid "See all"
207207msgstr "Տեսնել բոլորը"
208208
209−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
210210msgctxt "Label: Hint for dash search line edit"
211211msgid "Search"
212212msgstr ""
@@ -260,8 +260,10 @@ msgstr ""
260260msgid "Also installed"
261261msgstr ""
262262
263−#: qml/DisabledScreenNotice.qml:42
264−msgid "Your device is now connected to an external display."
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
265267msgstr ""
266268
267269#: qml/Greeter/CoverPage.qml:107
po/ia.po+23−17
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -29,7 +29,7 @@ msgstr "Via-breve a pin"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:52
3131msgid "Quit"
32−msgstr ""
32+msgstr "Quitar"
3333
3434#: plugins/Unity/Launcher/launcheritem.cpp:106
3535msgid "Unpin shortcut"
@@ -153,27 +153,28 @@ msgstr "OK"
153153
154154#: qml/Components/ModeSwitchWarningDialog.qml:32
155155msgid "Apps may have unsaved data:"
156−msgstr ""
156+msgstr "Le applicationes pote haber datos non salvate:"
157157
158158#: qml/Components/ModeSwitchWarningDialog.qml:57
159159msgid "Re-dock, save your work and close these apps to continue."
160160msgstr ""
161+"Re-connecte, salva tu labor e claude iste applicationes pro continuar."
161162
162163#: qml/Components/ModeSwitchWarningDialog.qml:63
163164msgid "Or force close now (unsaved data will be lost)."
164−msgstr ""
165+msgstr "O fortia clauder nunc (le datos non salveguardate essera perdite)."
165166
166167#: qml/Components/ModeSwitchWarningDialog.qml:75
167168msgid "OK, I will reconnect"
168−msgstr ""
169+msgstr "OK, io va reconnecter"
169170
170171#: qml/Components/ModeSwitchWarningDialog.qml:76
171172msgid "Reconnect now!"
172−msgstr ""
173+msgstr "Reconnecter nunc!"
173174
174175#: qml/Components/ModeSwitchWarningDialog.qml:88
175176msgid "Close all"
176−msgstr ""
177+msgstr "Clauder toto"
177178
178179#: qml/Dash/DashPageHeader.qml:266
179180msgctxt "Button: Open the Ubuntu Store"
@@ -198,15 +199,15 @@ msgstr "Remover ex le Favoritos"
198199msgid "Add to Favorites"
199200msgstr "Adder al Favoritos"
200201
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
202+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202203msgid "See less"
203204msgstr "Vider minus"
204205
205−#: qml/Dash/GenericScopeView.qml:576
206+#: qml/Dash/GenericScopeView.qml:587
206207msgid "See all"
207208msgstr "Vider toto"
208209
209−#: qml/Dash/GenericScopeView.qml:638
210+#: qml/Dash/GenericScopeView.qml:649
210211msgctxt "Label: Hint for dash search line edit"
211212msgid "Search"
212213msgstr "Cerca"
@@ -234,7 +235,7 @@ msgstr "Adder un revision"
234235
235236#: qml/Dash/Previews/PreviewSharing.qml:50
236237msgid "Preview Share Item"
237−msgstr ""
238+msgstr "Elemento compartite de vista preliminar"
238239
239240#: qml/Dash/PullToRefreshScopeStyle.qml:55
240241msgid "Pull to refresh…"
@@ -260,8 +261,10 @@ msgstr "A domo"
260261msgid "Also installed"
261262msgstr "Ja installate"
262263
263−#: qml/DisabledScreenNotice.qml:42
264−msgid "Your device is now connected to an external display."
264+#: qml/DisabledScreenNotice.qml:87
265+msgid ""
266+"Your device is now connected to an external display. Use this screen as a "
267+"touch pad to interact with the mouse."
265268msgstr ""
266269
267270#: qml/Greeter/CoverPage.qml:107
@@ -410,7 +413,7 @@ msgstr "Fallite, colpar pro re-provar"
410413#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
411414msgctxt "Button: Send a reply message"
412415msgid "Send"
413−msgstr ""
416+msgstr "Inviar"
414417
415418#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
416419msgctxt "Label: Hint in message indicator line edit"
@@ -420,7 +423,7 @@ msgstr "Responde"
420423#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
421424msgctxt "Button: Call back on phone"
422425msgid "Call back"
423−msgstr ""
426+msgstr "Appellar retro"
424427
425428#: qml/Panel/Indicators/ModemInfoItem.qml:105
426429msgid "Unlock SIM"
@@ -793,3 +796,6 @@ msgstr "%1 〉"
793796
794797#~ msgid "Yesterday %l:%M %p"
795798#~ msgstr "Heri"
799+
800+#~ msgid "Your device is now connected to an external display."
801+#~ msgstr "Tu dispositivo es nunc connexe a un schermo externe"
po/id.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -197,15 +197,15 @@ msgstr "Hapus dari Favorit"
197197msgid "Add to Favorites"
198198msgstr "Tambah ke Favorit"
199199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201201msgid "See less"
202202msgstr "Lihat lebih sedikit"
203203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205205msgid "See all"
206206msgstr "Lihat semua"
207207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209209msgctxt "Label: Hint for dash search line edit"
210210msgid "Search"
211211msgstr ""
@@ -259,8 +259,10 @@ msgstr "Beranda"
259259msgid "Also installed"
260260msgstr "Juga terpasang"
261261
262−#: qml/DisabledScreenNotice.qml:42
263−msgid "Your device is now connected to an external display."
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
264+"Your device is now connected to an external display. Use this screen as a "
265+"touch pad to interact with the mouse."
264266msgstr ""
265267
266268#: qml/Greeter/CoverPage.qml:107
po/is.po+10−8
@@ -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-01-11 17:43+0000\n"
12+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
21−"X-Generator: Launchpad (build 17886)\n"
20+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
21+"X-Generator: Launchpad (build 17908)\n"
2222"Language: is\n"
2323
2424#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -203,15 +203,15 @@ msgstr "Fjarlægja úr Eftirlæti"
203203msgid "Add to Favorites"
204204msgstr "Bæta við Eftirlæti"
205205
206−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
206+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
207207msgid "See less"
208208msgstr "Sjá minna"
209209
210−#: qml/Dash/GenericScopeView.qml:576
210+#: qml/Dash/GenericScopeView.qml:587
211211msgid "See all"
212212msgstr "Sjá allt"
213213
214−#: qml/Dash/GenericScopeView.qml:638
214+#: qml/Dash/GenericScopeView.qml:649
215215msgctxt "Label: Hint for dash search line edit"
216216msgid "Search"
217217msgstr ""
@@ -265,8 +265,10 @@ msgstr ""
265265msgid "Also installed"
266266msgstr ""
267267
268−#: qml/DisabledScreenNotice.qml:42
269−msgid "Your device is now connected to an external display."
268+#: qml/DisabledScreenNotice.qml:87
269+msgid ""
270+"Your device is now connected to an external display. Use this screen as a "
271+"touch pad to interact with the mouse."
270272msgstr ""
271273
272274#: qml/Greeter/CoverPage.qml:107
po/it.po+23−16
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-09-18 08:24+0000\n"
1212"Last-Translator: Claudio Arseni <claudio.arseni@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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -155,27 +155,29 @@ msgstr "OK"
155155
156156#: qml/Components/ModeSwitchWarningDialog.qml:32
157157msgid "Apps may have unsaved data:"
158−msgstr ""
158+msgstr "Le app potrebbero contenere dati non salvati:"
159159
160160#: qml/Components/ModeSwitchWarningDialog.qml:57
161161msgid "Re-dock, save your work and close these apps to continue."
162162msgstr ""
163+"Collegare nuovamente il dispositivo, salvare il lavoro e chiudere queste app "
164+"per continuare."
163165
164166#: qml/Components/ModeSwitchWarningDialog.qml:63
165167msgid "Or force close now (unsaved data will be lost)."
166−msgstr ""
168+msgstr "Oppure forzare la chiusura ora (i dati non salvati verranno persi)."
167169
168170#: qml/Components/ModeSwitchWarningDialog.qml:75
169171msgid "OK, I will reconnect"
170−msgstr ""
172+msgstr "Ok, collegherò il dispositivo"
171173
172174#: qml/Components/ModeSwitchWarningDialog.qml:76
173175msgid "Reconnect now!"
174−msgstr ""
176+msgstr "Collegare ora."
175177
176178#: qml/Components/ModeSwitchWarningDialog.qml:88
177179msgid "Close all"
178−msgstr ""
180+msgstr "Chiudi tutto"
179181
180182#: qml/Dash/DashPageHeader.qml:266
181183msgctxt "Button: Open the Ubuntu Store"
@@ -200,15 +202,15 @@ msgstr "Rimuovi dai preferiti"
200202msgid "Add to Favorites"
201203msgstr "Aggiungi ai preferiti"
202204
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204206msgid "See less"
205207msgstr "Mostra meno"
206208
207−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
208210msgid "See all"
209211msgstr "Mostra tutto"
210212
211−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
212214msgctxt "Label: Hint for dash search line edit"
213215msgid "Search"
214216msgstr "Cerca"
@@ -236,7 +238,7 @@ msgstr "Aggiungi una recensione"
236238
237239#: qml/Dash/Previews/PreviewSharing.qml:50
238240msgid "Preview Share Item"
239−msgstr ""
241+msgstr "Anteprima elementi da condividere"
240242
241243#: qml/Dash/PullToRefreshScopeStyle.qml:55
242244msgid "Pull to refresh…"
@@ -262,8 +264,10 @@ msgstr "Home"
262264msgid "Also installed"
263265msgstr "Installato anche"
264266
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
267271msgstr ""
268272
269273#: qml/Greeter/CoverPage.qml:107
@@ -412,7 +416,7 @@ msgstr "Non riuscito. Tocca per riprovare"
412416#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
413417msgctxt "Button: Send a reply message"
414418msgid "Send"
415−msgstr ""
419+msgstr "Invia"
416420
417421#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
418422msgctxt "Label: Hint in message indicator line edit"
@@ -422,7 +426,7 @@ msgstr "Rispondi"
422426#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
423427msgctxt "Button: Call back on phone"
424428msgid "Call back"
425−msgstr ""
429+msgstr "Richiama"
426430
427431#: qml/Panel/Indicators/ModemInfoItem.qml:105
428432msgid "Unlock SIM"
@@ -812,3 +816,6 @@ msgstr "%1 〉"
812816
813817#~ msgid "Call back"
814818#~ msgstr "Richiama"
819+
820+#~ msgid "Your device is now connected to an external display."
821+#~ msgstr "Il dispositivo è ora collegato a un monitor esterno."
po/ja.po+18−16
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -29,7 +29,7 @@ msgstr "ショートカットを追加する"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:52
3131msgid "Quit"
32−msgstr ""
32+msgstr "終了"
3333
3434#: plugins/Unity/Launcher/launcheritem.cpp:106
3535msgid "Unpin shortcut"
@@ -56,7 +56,7 @@ msgstr[0] "%1 分待ってからやり直してください…"
5656#: qml/Components/Dialogs.qml:144
5757msgctxt "Title: Lock/Log out dialog"
5858msgid "Log out"
59−msgstr ""
59+msgstr "ログアウト"
6060
6161#: qml/Components/Dialogs.qml:145
6262msgid "Are you sure you want to log out?"
@@ -65,12 +65,12 @@ msgstr "本当にログアウトしますか?"
6565#: qml/Components/Dialogs.qml:147
6666msgctxt "Button: Lock the system"
6767msgid "Lock"
68−msgstr ""
68+msgstr "ロック"
6969
7070#: qml/Components/Dialogs.qml:154
7171msgctxt "Button: Log out from the system"
7272msgid "Log Out"
73−msgstr ""
73+msgstr "ログアウト"
7474
7575#: qml/Components/Dialogs.qml:161 qml/Components/Dialogs.qml:194
7676#: qml/Components/Dialogs.qml:253
@@ -80,7 +80,7 @@ msgstr "キャンセル"
8080#: qml/Components/Dialogs.qml:173
8181msgctxt "Title: Reboot/Shut down dialog"
8282msgid "Shut down"
83−msgstr ""
83+msgstr "シャットダウン"
8484
8585#: qml/Components/Dialogs.qml:174
8686msgid "Are you sure you want to shut down?"
@@ -89,17 +89,17 @@ msgstr "本当にシャットダウンしますか?"
8989#: qml/Components/Dialogs.qml:176
9090msgctxt "Button: Reboot the system"
9191msgid "Reboot"
92−msgstr ""
92+msgstr "再起動"
9393
9494#: qml/Components/Dialogs.qml:185
9595msgctxt "Button: Shut down the system"
9696msgid "Shut down"
97−msgstr ""
97+msgstr "シャットダウン"
9898
9999#: qml/Components/Dialogs.qml:207
100100msgctxt "Title: Reboot dialog"
101101msgid "Reboot"
102−msgstr ""
102+msgstr "再起動"
103103
104104#: qml/Components/Dialogs.qml:208
105105msgid "Are you sure you want to reboot?"
@@ -193,15 +193,15 @@ msgstr "お気に入りから削除する"
193193msgid "Add to Favorites"
194194msgstr "お気に入りに追加する"
195195
196−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
196+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
197197msgid "See less"
198198msgstr "隠す"
199199
200−#: qml/Dash/GenericScopeView.qml:576
200+#: qml/Dash/GenericScopeView.qml:587
201201msgid "See all"
202202msgstr "すべて表示する"
203203
204−#: qml/Dash/GenericScopeView.qml:638
204+#: qml/Dash/GenericScopeView.qml:649
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr ""
@@ -255,8 +255,10 @@ msgstr ""
255255msgid "Also installed"
256256msgstr ""
257257
258−#: qml/DisabledScreenNotice.qml:42
259−msgid "Your device is now connected to an external display."
258+#: qml/DisabledScreenNotice.qml:87
259+msgid ""
260+"Your device is now connected to an external display. Use this screen as a "
261+"touch pad to interact with the mouse."
260262msgstr ""
261263
262264#: qml/Greeter/CoverPage.qml:107
po/km.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "យក​ចេញពី​សំណព្វ"
196196msgid "Add to Favorites"
197197msgstr "បន្ថែម​ទៅ​សណព្វ"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "មើល​តិច​ជាង"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "មើល​ទាំងអស់"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "ស្វែងរក"
@@ -258,8 +258,10 @@ msgstr "ផ្ទះ"
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263265msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
po/kn.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/ko.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -193,15 +193,15 @@ msgstr "즐겨찾기에서 제거"
193193msgid "Add to Favorites"
194194msgstr "즐겨찾기에 추가"
195195
196−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
196+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
197197msgid "See less"
198198msgstr "간단히 표시"
199199
200−#: qml/Dash/GenericScopeView.qml:576
200+#: qml/Dash/GenericScopeView.qml:587
201201msgid "See all"
202202msgstr "모두 보기"
203203
204−#: qml/Dash/GenericScopeView.qml:638
204+#: qml/Dash/GenericScopeView.qml:649
205205msgctxt "Label: Hint for dash search line edit"
206206msgid "Search"
207207msgstr "검색"
@@ -255,8 +255,10 @@ msgstr "홈"
255255msgid "Also installed"
256256msgstr "설치함"
257257
258−#: qml/DisabledScreenNotice.qml:42
259−msgid "Your device is now connected to an external display."
258+#: qml/DisabledScreenNotice.qml:87
259+msgid ""
260+"Your device is now connected to an external display. Use this screen as a "
261+"touch pad to interact with the mouse."
260262msgstr ""
261263
262264#: qml/Greeter/CoverPage.qml:107
po/ku.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Ji nav Bijareyan rake"
196196msgid "Add to Favorites"
197197msgstr "Li Bijareyan zêde bike"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "Hindiktir bibîne"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "Tevî bibîne"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr ""
@@ -258,8 +258,10 @@ msgstr ""
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263265msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
po/ky.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/lo.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/lt.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -195,15 +195,15 @@ msgstr ""
195195msgid "Add to Favorites"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
199199msgid "See less"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:576
202+#: qml/Dash/GenericScopeView.qml:587
203203msgid "See all"
204204msgstr ""
205205
206−#: qml/Dash/GenericScopeView.qml:638
206+#: qml/Dash/GenericScopeView.qml:649
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr ""
@@ -257,8 +257,10 @@ msgstr ""
257257msgid "Also installed"
258258msgstr ""
259259
260−#: qml/DisabledScreenNotice.qml:42
261−msgid "Your device is now connected to an external display."
260+#: qml/DisabledScreenNotice.qml:87
261+msgid ""
262+"Your device is now connected to an external display. Use this screen as a "
263+"touch pad to interact with the mouse."
262264msgstr ""
263265
264266#: qml/Greeter/CoverPage.qml:107
po/lv.po+14−9
@@ -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-01-11 17:43+0000\n"
11+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121"Language: lv\n"
2222
2323#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -199,15 +199,15 @@ msgstr "Izņemt no izlases"
199199msgid "Add to Favorites"
200200msgstr "Pievienot izlasei"
201201
202−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
202+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
203203msgid "See less"
204204msgstr "Skatīt mazāk"
205205
206−#: qml/Dash/GenericScopeView.qml:576
206+#: qml/Dash/GenericScopeView.qml:587
207207msgid "See all"
208208msgstr "Skatīt visus"
209209
210−#: qml/Dash/GenericScopeView.qml:638
210+#: qml/Dash/GenericScopeView.qml:649
211211msgctxt "Label: Hint for dash search line edit"
212212msgid "Search"
213213msgstr "Meklēt"
@@ -261,9 +261,11 @@ msgstr "Mājas"
261261msgid "Also installed"
262262msgstr "Arī instalēja"
263263
264−#: qml/DisabledScreenNotice.qml:42
265−msgid "Your device is now connected to an external display."
266−msgstr "Šī ierīce tagad ir savienota ar ārējo displeju."
264+#: qml/DisabledScreenNotice.qml:87
265+msgid ""
266+"Your device is now connected to an external display. Use this screen as a "
267+"touch pad to interact with the mouse."
268+msgstr ""
267269
268270#: qml/Greeter/CoverPage.qml:107
269271msgid "Unlock"
@@ -756,3 +758,6 @@ msgstr "%1 〉"
756758
757759#~ msgid "Please re-enter"
758760#~ msgstr "Lūdzu, ievadiet vēlreiz"
761+
762+#~ msgid "Your device is now connected to an external display."
763+#~ msgstr "Šī ierīce tagad ir savienota ar ārējo displeju."
po/ml.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/mr.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "आवड पासून काढूण टाका"
194194msgid "Add to Favorites"
195195msgstr "आवड मध्ये जोडा"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "शोध"
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/ms.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2014-01-17 09:05+0000\n"
1212"Last-Translator: abuyop <Unknown>\n"
1313"Language-Team: Malay <ms@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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Buang dari Kegemaran"
196196msgid "Add to Favorites"
197197msgstr "Tambah ke Kegemaran"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "Lihat kurang"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "Lihat semua"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "Gelintar"
@@ -258,9 +258,11 @@ msgstr "Rumah"
258258msgid "Also installed"
259259msgstr "Juga dipasang"
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
263−msgstr "Peranti anda kini bersambung dengan paparan luar."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
265+msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
266268msgid "Unlock"
@@ -801,3 +803,6 @@ msgstr "%1 〉"
801803
802804#~ msgid "Call back"
803805#~ msgstr "Panggilan semula"
806+
807+#~ msgid "Your device is now connected to an external display."
808+#~ msgstr "Peranti anda kini bersambung dengan paparan luar."
po/my.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "နှစ်သက်မှုအဖြစ်မှပယ်ဖျက်
194194msgid "Add to Favorites"
195195msgstr "နှစ်သက်မှုအဖြစ်ထည့်ပါ"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "ရှာဖွေရန်"
@@ -256,8 +256,10 @@ msgstr "ပင်မ"
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/nb.po+25−18
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-05 19:44+0000\n"
1212"Last-Translator: Mathias Bynke <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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -29,7 +29,7 @@ msgstr "Fest snarvei"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:52
3131msgid "Quit"
32−msgstr ""
32+msgstr "Avslutt"
3333
3434#: plugins/Unity/Launcher/launcheritem.cpp:106
3535msgid "Unpin shortcut"
@@ -153,27 +153,29 @@ msgstr "OK"
153153
154154#: qml/Components/ModeSwitchWarningDialog.qml:32
155155msgid "Apps may have unsaved data:"
156−msgstr ""
156+msgstr "Programmer kan ha ulagrede data:"
157157
158158#: qml/Components/ModeSwitchWarningDialog.qml:57
159159msgid "Re-dock, save your work and close these apps to continue."
160160msgstr ""
161+"Koble enheten til en stasjon, lagre arbeidet ditt og lukk disse programmene "
162+"for å fortsette."
161163
162164#: qml/Components/ModeSwitchWarningDialog.qml:63
163165msgid "Or force close now (unsaved data will be lost)."
164−msgstr ""
166+msgstr "Eller tving avslutning nå (ulagrede data går tapt)."
165167
166168#: qml/Components/ModeSwitchWarningDialog.qml:75
167169msgid "OK, I will reconnect"
168−msgstr ""
170+msgstr "OK, jeg skal koble til"
169171
170172#: qml/Components/ModeSwitchWarningDialog.qml:76
171173msgid "Reconnect now!"
172−msgstr ""
174+msgstr "Koble til nå!"
173175
174176#: qml/Components/ModeSwitchWarningDialog.qml:88
175177msgid "Close all"
176−msgstr ""
178+msgstr "Lukk alle"
177179
178180#: qml/Dash/DashPageHeader.qml:266
179181msgctxt "Button: Open the Ubuntu Store"
@@ -198,15 +200,15 @@ msgstr "Fjern fra favoritter"
198200msgid "Add to Favorites"
199201msgstr "Legg til i favoritter"
200202
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202204msgid "See less"
203205msgstr "Vis mindre"
204206
205−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
206208msgid "See all"
207209msgstr "Vis alt"
208210
209−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
210212msgctxt "Label: Hint for dash search line edit"
211213msgid "Search"
212214msgstr "Søk"
@@ -234,7 +236,7 @@ msgstr "Skriv en anmeldelse"
234236
235237#: qml/Dash/Previews/PreviewSharing.qml:50
236238msgid "Preview Share Item"
237−msgstr ""
239+msgstr "Forhåndsvis delingselement"
238240
239241#: qml/Dash/PullToRefreshScopeStyle.qml:55
240242msgid "Pull to refresh…"
@@ -260,8 +262,10 @@ msgstr "Hjem"
260262msgid "Also installed"
261263msgstr "Også installert"
262264
263−#: qml/DisabledScreenNotice.qml:42
264−msgid "Your device is now connected to an external display."
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
265269msgstr ""
266270
267271#: qml/Greeter/CoverPage.qml:107
@@ -329,7 +333,7 @@ msgstr "Feil passordfrase"
329333#: qml/Greeter/NarrowView.qml:121
330334msgctxt "passphrase"
331335msgid "Please re-enter"
332−msgstr ""
336+msgstr "Skriv inn på nytt"
333337
334338#: qml/Greeter/NarrowView.qml:122
335339msgid "Sorry, incorrect passcode"
@@ -410,7 +414,7 @@ msgstr "Feilet. Trykk for å prøve på nytt"
410414#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
411415msgctxt "Button: Send a reply message"
412416msgid "Send"
413−msgstr ""
417+msgstr "Send"
414418
415419#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
416420msgctxt "Label: Hint in message indicator line edit"
@@ -420,7 +424,7 @@ msgstr "Svar"
420424#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
421425msgctxt "Button: Call back on phone"
422426msgid "Call back"
423−msgstr ""
427+msgstr "Ring tilbake"
424428
425429#: qml/Panel/Indicators/ModemInfoItem.qml:105
426430msgid "Unlock SIM"
@@ -798,3 +802,6 @@ msgstr "%1 〉"
798802
799803#~ msgid "Tomorrow %H:%M"
800804#~ msgstr "I morgen %H:%M"
805+
806+#~ msgid "Your device is now connected to an external display."
807+#~ msgstr "Enheten er nå koblet til en ekstern skjerm."
po/ne.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/nl.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -200,15 +200,15 @@ msgstr "Verwijderen uit favorieten"
200200msgid "Add to Favorites"
201201msgstr "Toevoegen aan favorieten"
202202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204204msgid "See less"
205205msgstr "Minder zien"
206206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208208msgid "See all"
209209msgstr "Alles zien"
210210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212212msgctxt "Label: Hint for dash search line edit"
213213msgid "Search"
214214msgstr "Zoeken"
@@ -262,8 +262,10 @@ msgstr "Thuis"
262262msgid "Also installed"
263263msgstr "Ook geïnstalleerd"
264264
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
267269msgstr ""
268270
269271#: qml/Greeter/CoverPage.qml:107
po/nn.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/oc.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/or.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/pa.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "ਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ"
196196msgid "Add to Favorites"
197197msgstr "ਪਸੰਦ ਵਿੱਚ ਜੋੜੋ"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "ਘੱਟ ਵੇਖੋ"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "ਸਾਰਾ ਵੇਖੋ"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "ਖੋਜ"
@@ -258,8 +258,10 @@ msgstr "ਘਰ"
258258msgid "Also installed"
259259msgstr "ਨਾਲ ਇੰਸਟਾਲ ਹੋਇਆ"
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263265msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
po/pl.po+16−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-12 09:46+0000\n"
1212"Last-Translator: Seweryn Opyd <Unknown>\n"
1313"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
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-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -156,6 +156,8 @@ msgstr "Programy mogące mieć niezapisane dane:"
156156#: qml/Components/ModeSwitchWarningDialog.qml:57
157157msgid "Re-dock, save your work and close these apps to continue."
158158msgstr ""
159+"Aby kontynuować, dodaj ponownie do doku, zapisz swoją pracę i zamknij te "
160+"programy."
159161
160162#: qml/Components/ModeSwitchWarningDialog.qml:63
161163msgid "Or force close now (unsaved data will be lost)."
@@ -196,15 +198,15 @@ msgstr "Usuń z ulubionych"
196198msgid "Add to Favorites"
197199msgstr "Dodaj do ulubionych"
198200
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200202msgid "See less"
201203msgstr "Zobacz mniej"
202204
203−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
204206msgid "See all"
205207msgstr "Zobacz wszystko"
206208
207−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
208210msgctxt "Label: Hint for dash search line edit"
209211msgid "Search"
210212msgstr "Szukaj"
@@ -258,9 +260,11 @@ msgstr "Pulpit"
258260msgid "Also installed"
259261msgstr "Również zainstalowane"
260262
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
263−msgstr "Twoje urządzenie jest teraz połączone z zewnętrznym ekranem."
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
267+msgstr ""
264268
265269#: qml/Greeter/CoverPage.qml:107
266270msgid "Unlock"
@@ -793,3 +797,6 @@ msgstr "%1 〉"
793797
794798#~ msgid "Call back"
795799#~ msgstr "Oddzwoń"
800+
801+#~ msgid "Your device is now connected to an external display."
802+#~ msgstr "Twoje urządzenie jest teraz połączone z zewnętrznym ekranem."
po/pt.po+15−10
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-12-20 09:20+0000\n"
1212"Last-Translator: Ivo Xavier <ivofernandes12@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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -175,7 +175,7 @@ msgstr "Volte a ligar agora!"
175175
176176#: qml/Components/ModeSwitchWarningDialog.qml:88
177177msgid "Close all"
178−msgstr ""
178+msgstr "Fechar tudo"
179179
180180#: qml/Dash/DashPageHeader.qml:266
181181msgctxt "Button: Open the Ubuntu Store"
@@ -200,15 +200,15 @@ msgstr "Remover dos favoritos"
200200msgid "Add to Favorites"
201201msgstr "Adicionar aos favoritos"
202202
203−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
203+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
204204msgid "See less"
205205msgstr "Ver menos"
206206
207−#: qml/Dash/GenericScopeView.qml:576
207+#: qml/Dash/GenericScopeView.qml:587
208208msgid "See all"
209209msgstr "Ver todos"
210210
211−#: qml/Dash/GenericScopeView.qml:638
211+#: qml/Dash/GenericScopeView.qml:649
212212msgctxt "Label: Hint for dash search line edit"
213213msgid "Search"
214214msgstr "Procurar"
@@ -262,9 +262,11 @@ msgstr "Página inicial"
262262msgid "Also installed"
263263msgstr "Também instalado"
264264
265−#: qml/DisabledScreenNotice.qml:42
266−msgid "Your device is now connected to an external display."
267−msgstr "O seu dispositivo está agora ligado a um monitor externo"
265+#: qml/DisabledScreenNotice.qml:87
266+msgid ""
267+"Your device is now connected to an external display. Use this screen as a "
268+"touch pad to interact with the mouse."
269+msgstr ""
268270
269271#: qml/Greeter/CoverPage.qml:107
270272msgid "Unlock"
@@ -792,6 +794,9 @@ msgstr "%1 〉"
792794#~ msgid "Call back"
793795#~ msgstr "Ligar de volta"
794796
797+#~ msgid "Your device is now connected to an external display."
798+#~ msgstr "O seu dispositivo está agora ligado a um monitor externo"
799+
795800#~ msgid "Swipe from the left to reveal the launcher for quick access to apps"
796801#~ msgstr ""
797802#~ "Deslize da margem esquerda para mostrar o Launcher de acesso rápido às apps"
po/pt_BR.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -198,15 +198,15 @@ msgstr "Remover dos favoritos"
198198msgid "Add to Favorites"
199199msgstr "Adicionar aos favoritos"
200200
201−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
201+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
202202msgid "See less"
203203msgstr "Ver menos"
204204
205−#: qml/Dash/GenericScopeView.qml:576
205+#: qml/Dash/GenericScopeView.qml:587
206206msgid "See all"
207207msgstr "Ver todos"
208208
209−#: qml/Dash/GenericScopeView.qml:638
209+#: qml/Dash/GenericScopeView.qml:649
210210msgctxt "Label: Hint for dash search line edit"
211211msgid "Search"
212212msgstr "Pesquisar"
@@ -260,8 +260,10 @@ msgstr "Início"
260260msgid "Also installed"
261261msgstr "Instalado também"
262262
263−#: qml/DisabledScreenNotice.qml:42
264−msgid "Your device is now connected to an external display."
263+#: qml/DisabledScreenNotice.qml:87
264+msgid ""
265+"Your device is now connected to an external display. Use this screen as a "
266+"touch pad to interact with the mouse."
265267msgstr ""
266268
267269#: qml/Greeter/CoverPage.qml:107
po/ro.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -201,15 +201,15 @@ msgstr "Șterge din favorite"
201201msgid "Add to Favorites"
202202msgstr "Adaugă la favorite"
203203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205205msgid "See less"
206206msgstr "Afișează mai puține"
207207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209209msgid "See all"
210210msgstr "Afișează tot"
211211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213213msgctxt "Label: Hint for dash search line edit"
214214msgid "Search"
215215msgstr "Căutare"
@@ -263,8 +263,10 @@ msgstr "Acasă"
263263msgid "Also installed"
264264msgstr "Alte programe instalate"
265265
266−#: qml/DisabledScreenNotice.qml:42
267−msgid "Your device is now connected to an external display."
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
268270msgstr ""
269271
270272#: qml/Greeter/CoverPage.qml:107
po/ru.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -202,15 +202,15 @@ msgstr "Удалить из избранного"
202202msgid "Add to Favorites"
203203msgstr "Добавить в избранное"
204204
205−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
205+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
206206msgid "See less"
207207msgstr "Вкратце"
208208
209−#: qml/Dash/GenericScopeView.qml:576
209+#: qml/Dash/GenericScopeView.qml:587
210210msgid "See all"
211211msgstr "Показать всё"
212212
213−#: qml/Dash/GenericScopeView.qml:638
213+#: qml/Dash/GenericScopeView.qml:649
214214msgctxt "Label: Hint for dash search line edit"
215215msgid "Search"
216216msgstr "Поиск"
@@ -264,9 +264,11 @@ msgstr "Домой"
264264msgid "Also installed"
265265msgstr "Также установлено"
266266
267−#: qml/DisabledScreenNotice.qml:42
268−msgid "Your device is now connected to an external display."
269−msgstr "Устройство подключено к внешнему дисплею."
267+#: qml/DisabledScreenNotice.qml:87
268+msgid ""
269+"Your device is now connected to an external display. Use this screen as a "
270+"touch pad to interact with the mouse."
271+msgstr ""
270272
271273#: qml/Greeter/CoverPage.qml:107
272274msgid "Unlock"
@@ -816,3 +818,6 @@ msgstr "%1 〉"
816818
817819#~ msgid "Call back"
818820#~ msgstr "Позвонить"
821+
822+#~ msgid "Your device is now connected to an external display."
823+#~ msgstr "Устройство подключено к внешнему дисплею."
po/shn.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/si.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr ""
196196msgid "Add to Favorites"
197197msgstr ""
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr ""
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr ""
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr ""
@@ -258,8 +258,10 @@ msgstr ""
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263265msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
po/sk.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-04-10 09:15+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Slovak <sk@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) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
18−"X-Launchpad-Export-Date: 2016-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/sl.po+58−21
@@ -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-01-11 17:43+0000\n"
11−"PO-Revision-Date: 2015-07-06 21:10+0000\n"
12−"Last-Translator: Sasa Batistic <Unknown>\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
11+"PO-Revision-Date: 2016-01-31 18:34+0000\n"
12+"Last-Translator: Bernard Banko <Unknown>\n"
1313"Language-Team: Slovenian <sl@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=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-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -30,7 +30,7 @@ msgstr "Pripni bližnjico"
3030
3131#: plugins/Unity/Launcher/launcheritem.cpp:52
3232msgid "Quit"
33−msgstr ""
33+msgstr "Končaj"
3434
3535#: plugins/Unity/Launcher/launcheritem.cpp:106
3636msgid "Unpin shortcut"
@@ -150,31 +150,33 @@ msgstr "Klic v sili"
150150
151151#: qml/Components/Lockscreen.qml:277
152152msgid "OK"
153−msgstr "V REDU"
153+msgstr "V redu"
154154
155155#: qml/Components/ModeSwitchWarningDialog.qml:32
156156msgid "Apps may have unsaved data:"
157−msgstr ""
157+msgstr "Programi morda niso shranili podatkov:"
158158
159159#: qml/Components/ModeSwitchWarningDialog.qml:57
160160msgid "Re-dock, save your work and close these apps to continue."
161161msgstr ""
162+"Za nadaljevanje ponovno usidrajte, shranite svoje delo in zaprite te "
163+"programe."
162164
163165#: qml/Components/ModeSwitchWarningDialog.qml:63
164166msgid "Or force close now (unsaved data will be lost)."
165−msgstr ""
167+msgstr "Prisilno zapri sedaj (neshranjeni podatki bodo izgubljeni)."
166168
167169#: qml/Components/ModeSwitchWarningDialog.qml:75
168170msgid "OK, I will reconnect"
169−msgstr ""
171+msgstr "V redu, bom ponovno priključil"
170172
171173#: qml/Components/ModeSwitchWarningDialog.qml:76
172174msgid "Reconnect now!"
173−msgstr ""
175+msgstr "Ponovno priključi sedaj!"
174176
175177#: qml/Components/ModeSwitchWarningDialog.qml:88
176178msgid "Close all"
177−msgstr ""
179+msgstr "Zapri vse"
178180
179181#: qml/Dash/DashPageHeader.qml:266
180182msgctxt "Button: Open the Ubuntu Store"
@@ -199,15 +201,15 @@ msgstr "Odstrani iz priljubljenih"
199201msgid "Add to Favorites"
200202msgstr "Dodaj med priljubljene"
201203
202−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
203205msgid "See less"
204206msgstr "Pokaži manj"
205207
206−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
207209msgid "See all"
208210msgstr "Pokaži vse"
209211
210−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
211213msgctxt "Label: Hint for dash search line edit"
212214msgid "Search"
213215msgstr "Iskanje"
@@ -235,7 +237,7 @@ msgstr "Dodaj oceno"
235237
236238#: qml/Dash/Previews/PreviewSharing.qml:50
237239msgid "Preview Share Item"
238−msgstr ""
240+msgstr "Preglej deljeno"
239241
240242#: qml/Dash/PullToRefreshScopeStyle.qml:55
241243msgid "Pull to refresh…"
@@ -261,8 +263,10 @@ msgstr "Domov"
261263msgid "Also installed"
262264msgstr "Tudi nameščeno"
263265
264−#: qml/DisabledScreenNotice.qml:42
265−msgid "Your device is now connected to an external display."
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
266270msgstr ""
267271
268272#: qml/Greeter/CoverPage.qml:107
@@ -330,7 +334,7 @@ msgstr "Oprostite, napačno šifrirno reklo"
330334#: qml/Greeter/NarrowView.qml:121
331335msgctxt "passphrase"
332336msgid "Please re-enter"
333−msgstr ""
337+msgstr "Ponovno vnesite"
334338
335339#: qml/Greeter/NarrowView.qml:122
336340msgid "Sorry, incorrect passcode"
@@ -417,7 +421,7 @@ msgstr "Spodletelo, tapnite za ponovni poskus"
417421#: qml/Panel/Indicators/MessageMenuItemFactory.qml:214
418422msgctxt "Button: Send a reply message"
419423msgid "Send"
420−msgstr ""
424+msgstr "Pošlji"
421425
422426#: qml/Panel/Indicators/MessageMenuItemFactory.qml:156
423427msgctxt "Label: Hint in message indicator line edit"
@@ -427,7 +431,7 @@ msgstr "Odgovor"
427431#: qml/Panel/Indicators/MessageMenuItemFactory.qml:213
428432msgctxt "Button: Call back on phone"
429433msgid "Call back"
430−msgstr ""
434+msgstr "Pokliči nazaj"
431435
432436#: qml/Panel/Indicators/ModemInfoItem.qml:105
433437msgid "Unlock SIM"
@@ -776,3 +780,36 @@ msgstr "%1 〉"
776780
777781#~ msgid "Please re-enter"
778782#~ msgstr "Ponovno vnesite"
783+
784+#~ msgid "%a %H:%M"
785+#~ msgstr "%a %H:%M"
786+
787+#~ msgid "%a %l:%M %p"
788+#~ msgstr "%a %l:%M %p"
789+
790+#~ msgid "Tomorrow %l:%M %p"
791+#~ msgstr "Jutri %l:%M %p"
792+
793+#~ msgid "%l:%M %p"
794+#~ msgstr "%l:%M %p"
795+
796+#~ msgid "Yesterday %l:%M %p"
797+#~ msgstr "Včeraj %l:%M %p"
798+
799+#~ msgid "%H:%M"
800+#~ msgstr "%H:%M"
801+
802+#~ msgid "Yesterday %H:%M"
803+#~ msgstr "Včeraj %H:%M"
804+
805+#~ msgid "Tomorrow %H:%M"
806+#~ msgstr "Jutri %H:%M"
807+
808+#~ msgid "Your device is now connected to an external display."
809+#~ msgstr "Vaša naprava je sedaj povezana na zunanji zaslon."
810+
811+#~ msgid "%a %d %b %H:%M"
812+#~ msgstr "%a %d %b %H:%M"
813+
814+#~ msgid "%a %d %b %l:%M %p"
815+#~ msgstr "%a %d %b %l:%M %p"
po/sq.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-11-30 21:05+0000\n"
1212"Last-Translator: Indrit Bashkimi <indrit.bashkimi@gmail.com>\n"
1313"Language-Team: Albanian <sq@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-01-14 05:53+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:45+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Hiq nga të preferuarit"
194194msgid "Add to Favorites"
195195msgstr "Shto në të preferuarit"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr "Shfaq më pak"
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr "Shfaqe të tërin"
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "Kërko"
@@ -256,9 +256,11 @@ msgstr "Shtëpia"
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
261−msgstr "Pajisja juaj është tashmë e lidhur me një ekran të jashtëm."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
263+msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
264266msgid "Unlock"
@@ -679,3 +681,6 @@ msgstr "%1 〉"
679681
680682#~ msgid "Right edge"
681683#~ msgstr "Cepi djathtas"
684+
685+#~ msgid "Your device is now connected to an external display."
686+#~ msgstr "Pajisja juaj është tashmë e lidhur me një ekran të jashtëm."
po/sr.po+14−9
@@ -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-01-11 17:43+0000\n"
11+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1212"PO-Revision-Date: 2015-12-09 20:16+0000\n"
1313"Last-Translator: Bojan Bogdanović <Unknown>\n"
1414"Language-Team: српски <xfce4@xfce4.org>\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-01-14 05:54+0000\n"
21−"X-Generator: Launchpad (build 17886)\n"
20+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
21+"X-Generator: Launchpad (build 17908)\n"
2222"Language: sr\n"
2323
2424#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -201,15 +201,15 @@ msgstr "Уклони из омиљених"
201201msgid "Add to Favorites"
202202msgstr "Додај међу омиљене"
203203
204−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
204+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
205205msgid "See less"
206206msgstr "Сажетије"
207207
208−#: qml/Dash/GenericScopeView.qml:576
208+#: qml/Dash/GenericScopeView.qml:587
209209msgid "See all"
210210msgstr "Опширније"
211211
212−#: qml/Dash/GenericScopeView.qml:638
212+#: qml/Dash/GenericScopeView.qml:649
213213msgctxt "Label: Hint for dash search line edit"
214214msgid "Search"
215215msgstr "Претрага"
@@ -263,9 +263,11 @@ msgstr "Почетна"
263263msgid "Also installed"
264264msgstr "Такође инсталиран"
265265
266−#: qml/DisabledScreenNotice.qml:42
267−msgid "Your device is now connected to an external display."
268−msgstr "Ваш уређај је сада повезан на спљни монитор."
266+#: qml/DisabledScreenNotice.qml:87
267+msgid ""
268+"Your device is now connected to an external display. Use this screen as a "
269+"touch pad to interact with the mouse."
270+msgstr ""
269271
270272#: qml/Greeter/CoverPage.qml:107
271273msgid "Unlock"
@@ -805,3 +807,6 @@ msgstr "%1 〉"
805807
806808#~ msgid "Call back"
807809#~ msgstr "Позови назад"
810+
811+#~ msgid "Your device is now connected to an external display."
812+#~ msgstr "Ваш уређај је сада повезан на спљни монитор."
po/sv.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-12 22:17+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020"Language: sv\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -197,15 +197,15 @@ msgstr "Ta bort från Favoriter"
197197msgid "Add to Favorites"
198198msgstr "Lägg till Favoriter"
199199
200−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
200+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
201201msgid "See less"
202202msgstr "Visa mindre"
203203
204−#: qml/Dash/GenericScopeView.qml:576
204+#: qml/Dash/GenericScopeView.qml:587
205205msgid "See all"
206206msgstr "Visa alla"
207207
208−#: qml/Dash/GenericScopeView.qml:638
208+#: qml/Dash/GenericScopeView.qml:649
209209msgctxt "Label: Hint for dash search line edit"
210210msgid "Search"
211211msgstr "Sök"
@@ -259,8 +259,10 @@ msgstr "Hem"
259259msgid "Also installed"
260260msgstr "Även installerat"
261261
262−#: qml/DisabledScreenNotice.qml:42
263−msgid "Your device is now connected to an external display."
262+#: qml/DisabledScreenNotice.qml:87
263+msgid ""
264+"Your device is now connected to an external display. Use this screen as a "
265+"touch pad to interact with the mouse."
264266msgstr ""
265267
266268#: qml/Greeter/CoverPage.qml:107
po/sw.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -196,15 +196,15 @@ msgstr "Toa kutoka nilizopenda"
196196msgid "Add to Favorites"
197197msgstr "Ongeza kwenye nilizopenda"
198198
199−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
199+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
200200msgid "See less"
201201msgstr "Onyesha kidogo"
202202
203−#: qml/Dash/GenericScopeView.qml:576
203+#: qml/Dash/GenericScopeView.qml:587
204204msgid "See all"
205205msgstr "Onyesha zote"
206206
207−#: qml/Dash/GenericScopeView.qml:638
207+#: qml/Dash/GenericScopeView.qml:649
208208msgctxt "Label: Hint for dash search line edit"
209209msgid "Search"
210210msgstr "Tafuta"
@@ -258,8 +258,10 @@ msgstr "Nyumbani"
258258msgid "Also installed"
259259msgstr ""
260260
261−#: qml/DisabledScreenNotice.qml:42
262−msgid "Your device is now connected to an external display."
261+#: qml/DisabledScreenNotice.qml:87
262+msgid ""
263+"Your device is now connected to an external display. Use this screen as a "
264+"touch pad to interact with the mouse."
263265msgstr ""
264266
265267#: qml/Greeter/CoverPage.qml:107
po/ta.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020"Language: ta\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -195,15 +195,15 @@ msgstr ""
195195msgid "Add to Favorites"
196196msgstr ""
197197
198−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
199199msgid "See less"
200200msgstr ""
201201
202−#: qml/Dash/GenericScopeView.qml:576
202+#: qml/Dash/GenericScopeView.qml:587
203203msgid "See all"
204204msgstr ""
205205
206−#: qml/Dash/GenericScopeView.qml:638
206+#: qml/Dash/GenericScopeView.qml:649
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr ""
@@ -257,8 +257,10 @@ msgstr ""
257257msgid "Also installed"
258258msgstr ""
259259
260−#: qml/DisabledScreenNotice.qml:42
261−msgid "Your device is now connected to an external display."
260+#: qml/DisabledScreenNotice.qml:87
261+msgid ""
262+"Your device is now connected to an external display. Use this screen as a "
263+"touch pad to interact with the mouse."
262264msgstr ""
263265
264266#: qml/Greeter/CoverPage.qml:107
po/te.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/th.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/tr.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Sık kullanılanlardan kaldır"
194194msgid "Add to Favorites"
195195msgstr "Yer İmlerine Ekle"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr "Daha azını gör"
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr "Tümünü gör"
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "Ara"
@@ -256,8 +256,10 @@ msgstr "Ev"
256256msgid "Also installed"
257257msgstr "Ayrıca kurulan"
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/ug.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -195,15 +195,15 @@ msgstr "يىغقۇچتىن چىقىرىۋەت"
195195msgid "Add to Favorites"
196196msgstr "يىغقۇچقا قوش"
197197
198−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
199199msgid "See less"
200200msgstr "ئازراق كۆرۈش"
201201
202−#: qml/Dash/GenericScopeView.qml:576
202+#: qml/Dash/GenericScopeView.qml:587
203203msgid "See all"
204204msgstr "ھەممىنى كۆرۈش…"
205205
206−#: qml/Dash/GenericScopeView.qml:638
206+#: qml/Dash/GenericScopeView.qml:649
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr "ئىزدە"
@@ -257,8 +257,10 @@ msgstr "ماكان"
257257msgid "Also installed"
258258msgstr "قايتىدىن ئورنات"
259259
260−#: qml/DisabledScreenNotice.qml:42
261−msgid "Your device is now connected to an external display."
260+#: qml/DisabledScreenNotice.qml:87
261+msgid ""
262+"Your device is now connected to an external display. Use this screen as a "
263+"touch pad to interact with the mouse."
262264msgstr ""
263265
264266#: qml/Greeter/CoverPage.qml:107
po/uk.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-04 05:53+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-01-14 05:54+0000\n"
20−"X-Generator: Launchpad (build 17886)\n"
19+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
20+"X-Generator: Launchpad (build 17908)\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
2323msgid "Password: "
@@ -203,15 +203,15 @@ msgstr "Вилучити з вибраного"
203203msgid "Add to Favorites"
204204msgstr "Додати до вибраного"
205205
206−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
206+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
207207msgid "See less"
208208msgstr "Стисліше"
209209
210−#: qml/Dash/GenericScopeView.qml:576
210+#: qml/Dash/GenericScopeView.qml:587
211211msgid "See all"
212212msgstr "Детальніше"
213213
214−#: qml/Dash/GenericScopeView.qml:638
214+#: qml/Dash/GenericScopeView.qml:649
215215msgctxt "Label: Hint for dash search line edit"
216216msgid "Search"
217217msgstr "Пошук"
@@ -265,9 +265,11 @@ msgstr "Домівка"
265265msgid "Also installed"
266266msgstr "Також встановлено"
267267
268−#: qml/DisabledScreenNotice.qml:42
269−msgid "Your device is now connected to an external display."
270−msgstr "Ваш пристрій з’єднано із зовнішнім дисплеєм."
268+#: qml/DisabledScreenNotice.qml:87
269+msgid ""
270+"Your device is now connected to an external display. Use this screen as a "
271+"touch pad to interact with the mouse."
272+msgstr ""
271273
272274#: qml/Greeter/CoverPage.qml:107
273275msgid "Unlock"
@@ -815,3 +817,6 @@ msgstr "%1 〉"
815817
816818#~ msgid "Call back"
817819#~ msgstr "Зворотний виклик"
820+
821+#~ msgid "Your device is now connected to an external display."
822+#~ msgstr "Ваш пристрій з’єднано із зовнішнім дисплеєм."
po/unity8.pot+8−6
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2016-01-11 17:43+0000\n"
11+"POT-Creation-Date: 2016-02-08 09:50+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"
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/ur.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/uz.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/vi.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/wo.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr "Dindee ci Tànneef yi"
194194msgid "Add to Favorites"
195195msgstr "Yokk ci Tànneef yi"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr "Gis lu néew"
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr "Gis lépp"
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "Seet"
@@ -256,8 +256,10 @@ msgstr "Njëlbeen"
256256msgid "Also installed"
257257msgstr "Yiñ samp tamit"
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/xh.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr ""
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr ""
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/zh_CN.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-27 10:26+0000\n"
1212"Last-Translator: Ian Li <Unknown>\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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -195,15 +195,15 @@ msgstr "从收藏夹中移除"
195195msgid "Add to Favorites"
196196msgstr "添加到收藏夹"
197197
198−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
198+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
199199msgid "See less"
200200msgstr "显示更少"
201201
202−#: qml/Dash/GenericScopeView.qml:576
202+#: qml/Dash/GenericScopeView.qml:587
203203msgid "See all"
204204msgstr "查看全部"
205205
206−#: qml/Dash/GenericScopeView.qml:638
206+#: qml/Dash/GenericScopeView.qml:649
207207msgctxt "Label: Hint for dash search line edit"
208208msgid "Search"
209209msgstr "搜索"
@@ -257,9 +257,11 @@ msgstr "首页"
257257msgid "Also installed"
258258msgstr "已安装"
259259
260−#: qml/DisabledScreenNotice.qml:42
261−msgid "Your device is now connected to an external display."
262−msgstr "您的设备目前已连接到了一台扩展显示装置。"
260+#: qml/DisabledScreenNotice.qml:87
261+msgid ""
262+"Your device is now connected to an external display. Use this screen as a "
263+"touch pad to interact with the mouse."
264+msgstr ""
263265
264266#: qml/Greeter/CoverPage.qml:107
265267msgid "Unlock"
@@ -762,3 +764,6 @@ msgstr "%1 〉"
762764
763765#~ msgid "Call back"
764766#~ msgstr "回电"
767+
768+#~ msgid "Your device is now connected to an external display."
769+#~ msgstr "您的设备目前已连接到了一台扩展显示装置。"
po/zh_HK.po+10−8
@@ -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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020
2121#: plugins/IntegratedLightDM/Greeter.cpp:112
2222msgid "Password: "
@@ -194,15 +194,15 @@ msgstr ""
194194msgid "Add to Favorites"
195195msgstr ""
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr "縮減查看"
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr "查看全部"
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr ""
@@ -256,8 +256,10 @@ msgstr ""
256256msgid "Also installed"
257257msgstr ""
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
261263msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
po/zh_TW.po+14−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-01-11 17:43+0000\n"
10+"POT-Creation-Date: 2016-01-29 11:58+0000\n"
1111"PO-Revision-Date: 2015-07-31 09:29+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-01-14 05:54+0000\n"
19−"X-Generator: Launchpad (build 17886)\n"
18+"X-Launchpad-Export-Date: 2016-02-02 05:46+0000\n"
19+"X-Generator: Launchpad (build 17908)\n"
2020"Language: zh_TW\n"
2121
2222#: plugins/IntegratedLightDM/Greeter.cpp:112
@@ -194,15 +194,15 @@ msgstr "自「最愛」移除"
194194msgid "Add to Favorites"
195195msgstr "加入到「最愛」"
196196
197−#: qml/Dash/GenericScopeView.qml:576 qml/Dash/GenericScopeView.qml:734
197+#: qml/Dash/GenericScopeView.qml:587 qml/Dash/GenericScopeView.qml:745
198198msgid "See less"
199199msgstr "縮減查看"
200200
201−#: qml/Dash/GenericScopeView.qml:576
201+#: qml/Dash/GenericScopeView.qml:587
202202msgid "See all"
203203msgstr "查看全部"
204204
205−#: qml/Dash/GenericScopeView.qml:638
205+#: qml/Dash/GenericScopeView.qml:649
206206msgctxt "Label: Hint for dash search line edit"
207207msgid "Search"
208208msgstr "搜尋"
@@ -256,9 +256,11 @@ msgstr "家屋"
256256msgid "Also installed"
257257msgstr "也有安裝"
258258
259−#: qml/DisabledScreenNotice.qml:42
260−msgid "Your device is now connected to an external display."
261−msgstr "您的裝目前已經連線到外部的螢幕."
259+#: qml/DisabledScreenNotice.qml:87
260+msgid ""
261+"Your device is now connected to an external display. Use this screen as a "
262+"touch pad to interact with the mouse."
263+msgstr ""
262264
263265#: qml/Greeter/CoverPage.qml:107
264266msgid "Unlock"
@@ -782,3 +784,6 @@ msgstr "%1 〉"
782784
783785#~ msgid "%a %d %b %l:%M %p"
784786#~ msgstr "(%a) %d月%b日 %p %l:%M"
787+
788+#~ msgid "Your device is now connected to an external display."
789+#~ msgstr "您的裝目前已經連線到外部的螢幕."
qml/Components/InputMethod.qml+1−1
@@ -59,7 +59,7 @@ Item {
5959 }
6060
6161 state: {
62− if (surfaceItem.surface && surfaceItem.surfaceState != Mir.MinimizedState) {
62+ if (surfaceItem.surface && surfaceItem.surfaceState != Mir.MinimizedState && root.enabled) {
6363 return "shown";
6464 } else {
6565 return "hidden";
qml/Components/PhysicalKeysMapper.qml+32−2
@@ -16,6 +16,7 @@
1616
1717import QtQuick 2.4
1818import Powerd 0.1
19+import Utils 0.1
1920
2021/*!
2122 \brief A mapper for the physical keys on the device
@@ -59,9 +60,24 @@ Item {
5960 property bool altTabPressed: false
6061
6162 property var powerButtonPressStart: 0
63+
64+ // We need to eat ALT presses until we know what they're for (Alt+Tab or going to the app?)
65+ // Once we know if an ALT keypress is for the app, we need to re-inject the pressed event for it
66+ // but we must only do that once.
67+ property bool altPressInjected: false
68+ }
69+
70+ InputEventGenerator {
71+ id: inputEventGenerator
6272 }
6373
6474 function onKeyPressed(event, currentEventTimestamp) {
75+ if (d.altPressed && !d.altTabPressed && event.key !== Qt.Key_Tab && event.key !== Qt.Key_Alt && !d.altPressInjected) {
76+ // ALT is pressed and another key that is not Tab has been received. Re-inject the alt pressed event
77+ d.altPressInjected = true;
78+ inputEventGenerator.generateKeyEvent(Qt.Key_Alt, true, Qt.NoModifier, currentEventTimestamp - 1, 56);
79+ }
80+
6581 if (event.key == Qt.Key_PowerDown || event.key == Qt.Key_PowerOff) {
6682 if (event.isAutoRepeat) {
6783 if (d.powerButtonPressStart > 0
@@ -97,7 +113,12 @@ Item {
97113 d.volumeUpKeyPressed = true;
98114 }
99115 } else if (event.key == Qt.Key_Alt || (root.controlInsteadOfAlt && event.key == Qt.Key_Control)) {
100− d.altPressed = true;
116+ if (!d.altPressed || event.isAutoRepeat) {
117+ // Only eat it if it's the first time we receive alt pressed (or if it's the autorepeat of the first press)
118+ d.altPressed = true;
119+ event.accepted = true;
120+ d.altPressInjected = false;
121+ }
101122 } else if (event.key == Qt.Key_Tab) {
102123 if (d.altPressed && !d.altTabPressed) {
103124 d.altTabPressed = true;
@@ -119,10 +140,19 @@ Item {
119140 d.volumeUpKeyPressed = false;
120141 if (!d.volumeDownKeyPressed) d.ignoreVolumeEvents = false;
121142 } else if (event.key == Qt.Key_Alt || (root.controlInsteadOfAlt && event.key == Qt.Key_Control)) {
122− d.altPressed = false;
123143 if (d.altTabPressed) {
124144 d.altTabPressed = false;
125145 event.accepted = true;
146+ } else if (d.altPressed && !d.altPressInjected) {
147+ // Alt was released but nothing else. Let's inject a pressed event and also forward the release.
148+ d.altPressInjected = true;
149+ inputEventGenerator.generateKeyEvent(Qt.Key_Alt, true, Qt.AltModifer, currentEventTimestamp, 56);
150+ d.altPressInjected = false;
151+ }
152+ d.altPressed = false;
153+ } else if (event.key == Qt.Key_Tab) {
154+ if (d.altTabPressed) {
155+ event.accepted = true;
126156 }
127157 }
128158 }
qml/Components/ResponsiveGridView.qml+2−4
@@ -18,12 +18,10 @@ import QtQuick 2.4
1818import Ubuntu.Components 1.3
1919
2020/*
21− Essentially a GridView where you can specify the maximum number of columns it can have.
21+ Essentially a GridView
2222 */
2323Item {
2424 property int minimumHorizontalSpacing: units.gu(0.5)
25− // property int minimumNumberOfColumns: 2 // FIXME: not implemented
26− property int maximumNumberOfColumns: 6
2725 readonly property int columns: gridView.columns
2826 property alias verticalSpacing: gridView.verticalSpacing
2927 readonly property alias margins: gridView.margin
@@ -81,7 +79,7 @@ Item {
8179 }
8280
8381 property real allocatableHorizontalSpace: parent.width - columns * delegateWidth
84− property int columns: Math.min(columnsForSpacing(minimumHorizontalSpacing), maximumNumberOfColumns)
82+ property int columns: columnsForSpacing(minimumHorizontalSpacing)
8583 property real horizontalSpacing: spacingForColumns(columns)
8684 property real verticalSpacing: horizontalSpacing
8785 property int margin: allocatableHorizontalSpace - columns * horizontalSpacing
qml/Components/VirtualTouchPad.qmlnew file+138
@@ -0,0 +1,138 @@
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+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+import UInput 0.1
20+
21+Item {
22+ property var uinput: UInput {
23+ Component.onCompleted: createMouse();
24+ Component.onDestruction: removeMouse();
25+ }
26+
27+ readonly property bool pressed: point1.pressed || point2.pressed
28+
29+ MultiPointTouchArea {
30+ objectName: "touchPadArea"
31+ anchors.fill: parent
32+
33+ // FIXME: Once we have Qt DPR support, this should be Qt.styleHints.startDragDistance
34+ readonly property int clickThreshold: units.gu(1.5)
35+ property bool isClick: false
36+ property bool isDoubleClick: false
37+ property bool isDrag: false
38+
39+ onPressed: {
40+ // If double-tapping *really* fast, it could happen that we end up having only point2 pressed
41+ // Make sure we check for both combos, only point1 or only point2
42+ if (((point1.pressed && !point2.pressed) || (!point1.pressed && point2.pressed))
43+ && clickTimer.running) {
44+ clickTimer.stop();
45+ uinput.pressMouse(UInput.ButtonLeft)
46+ isDoubleClick = true;
47+ }
48+ isClick = true;
49+ }
50+
51+ onUpdated: {
52+ switch (touchPoints.length) {
53+ case 1:
54+ moveMouse(touchPoints);
55+ return;
56+ case 2:
57+ scroll(touchPoints);
58+ return;
59+ }
60+ }
61+
62+ onReleased: {
63+ if (isDoubleClick || isDrag) {
64+ uinput.releaseMouse(UInput.ButtonLeft)
65+ isDoubleClick = false;
66+ }
67+ if (isClick) {
68+ clickTimer.scheduleClick(point1.pressed ? UInput.ButtonRight : UInput.ButtonLeft)
69+ }
70+ isClick = false;
71+ isDrag = false;
72+ }
73+
74+ Timer {
75+ id: clickTimer
76+ repeat: false
77+ interval: 200
78+ property int button: UInput.ButtonLeft
79+ onTriggered: {
80+ uinput.pressMouse(button);
81+ uinput.releaseMouse(button);
82+ }
83+ function scheduleClick(button) {
84+ clickTimer.button = button;
85+ clickTimer.start();
86+ }
87+ }
88+
89+ function moveMouse(touchPoints) {
90+ var tp = touchPoints[0];
91+ if (isClick &&
92+ (Math.abs(tp.x - tp.startX) > clickThreshold ||
93+ Math.abs(tp.y - tp.startY) > clickThreshold)) {
94+ isClick = false;
95+ isDrag = true;
96+ }
97+
98+ uinput.moveMouse(tp.x - tp.previousX, tp.y - tp.previousY);
99+ }
100+
101+ function scroll(touchPoints) {
102+ var dh = 0;
103+ var dv = 0;
104+ var tp = touchPoints[0];
105+ if (isClick &&
106+ (Math.abs(tp.x - tp.startX) > clickThreshold ||
107+ Math.abs(tp.y - tp.startY) > clickThreshold)) {
108+ isClick = false;
109+ }
110+ dh += tp.x - tp.previousX;
111+ dv += tp.y - tp.previousY;
112+
113+ tp = touchPoints[1];
114+ if (isClick &&
115+ (Math.abs(tp.x - tp.startX) > clickThreshold ||
116+ Math.abs(tp.y - tp.startY) > clickThreshold)) {
117+ isClick = false;
118+ }
119+ dh += tp.x - tp.previousX;
120+ dv += tp.y - tp.previousY;
121+
122+ // As we added up the movement of the two fingers, let's divide it again by 2
123+ dh /= 2;
124+ dv /= 2;
125+
126+ uinput.scrollMouse(dh, dv);
127+ }
128+
129+ touchPoints: [
130+ TouchPoint {
131+ id: point1
132+ },
133+ TouchPoint {
134+ id: point2
135+ }
136+ ]
137+ }
138+}
qml/Dash/CardGrid.qml+3−1
@@ -20,12 +20,14 @@ import "../Components"
2020DashRenderer {
2121 id: root
2222
23+ readonly property real defaultMinimumHorizontalSpacing: units.gu(1)
2324 readonly property int collapsedRows: {
2425 if (!cardTool || !cardTool.template || typeof cardTool.template["collapsed-rows"] != "number") return 2;
2526 return cardTool.template["collapsed-rows"];
2627 }
2728 property string artShapeStyle: "inset";
2829 property string backgroundShapeStyle: "inset";
30+ property alias minimumHorizontalSpacing: grid.minimumHorizontalSpacing
2931
3032 expandedHeight: grid.totalContentHeight
3133 collapsedHeight: Math.min(grid.contentHeightForRows(collapsedRows, grid.cellHeight), expandedHeight)
@@ -45,7 +47,7 @@ DashRenderer {
4547 ResponsiveGridView {
4648 id: grid
4749 anchors.fill: parent
48− minimumHorizontalSpacing: units.gu(1)
50+ minimumHorizontalSpacing: root.defaultMinimumHorizontalSpacing
4951 delegateWidth: cardTool.cardWidth
5052 delegateHeight: cardTool.cardHeight
5153 verticalSpacing: units.gu(1)
qml/Dash/DashBackground.qml+6−2
@@ -15,12 +15,16 @@
1515 */
1616
1717import QtQuick 2.4
18+import QtQuick.Window 2.2
19+import Ubuntu.Thumbnailer 0.1
1820
1921Image {
20− source: anchors.fill.width > anchors.fill.height ? "graphics/paper_landscape.png" : "graphics/paper_portrait.png"
22+ source: "image://thumbnailer/" + Qt.resolvedUrl("graphics/paper.png")
2123 fillMode: Image.PreserveAspectCrop
2224 horizontalAlignment: Image.AlignRight
2325 verticalAlignment: Image.AlignTop
24− sourceSize.width: anchors.fill.width
26+ // avoid CPU scaling when window size changes
27+ readonly property int maxSize: Math.max(Screen.width, Screen.height)
28+ sourceSize.width: maxSize
2529 sourceSize.height: 0
2630}
qml/Dash/GenericScopeView.qml+19−8
@@ -360,16 +360,9 @@ FocusScope {
360360 baseItem.expand(shouldExpand, false /*animate*/);
361361 }
362362 updateRanges();
363+ clickScopeSizingHacks();
363364 if (scope && scope.id === "clickscope") {
364365 if (categoryId === "predefined" || categoryId === "local") {
365− // Yeah, hackish :/
366− if (scopeView.width > units.gu(45)) {
367− if (scopeView.width >= units.gu(70)) {
368− cardTool.cardWidth = units.gu(9);
369− } else {
370− cardTool.cardWidth = units.gu(10);
371− }
372− }
373366 cardTool.artShapeSize = Qt.size(units.gu(8), units.gu(7.5));
374367 item.artShapeStyle = "icon";
375368 } else {
@@ -387,6 +380,23 @@ FocusScope {
387380 }
388381 }
389382
383+ function clickScopeSizingHacks() {
384+ if (scope && scope.id === "clickscope" &&
385+ (categoryId === "predefined" || categoryId === "local")) {
386+ // Yeah, hackish :/
387+ if (scopeView.width > units.gu(45)) {
388+ if (scopeView.width >= units.gu(70)) {
389+ cardTool.cardWidth = units.gu(11);
390+ item.minimumHorizontalSpacing = units.gu(5);
391+ return;
392+ } else {
393+ cardTool.cardWidth = units.gu(10);
394+ }
395+ }
396+ item.minimumHorizontalSpacing = item.defaultMinimumHorizontalSpacing;
397+ }
398+ }
399+
390400 Connections {
391401 target: rendererLoader.item
392402 onClicked: { // (int index, var result, var item, var itemModel)
@@ -416,6 +426,7 @@ FocusScope {
416426 target: scopeView
417427 onIsCurrentChanged: rendererLoader.updateRanges();
418428 onVisibleToParentChanged: rendererLoader.updateRanges();
429+ onWidthChanged: rendererLoader.clickScopeSizingHacks();
419430 }
420431 Connections {
421432 target: holdingList
qml/Dash/Previews/PreviewAudioPlayback.qml+1
@@ -71,6 +71,7 @@ PreviewWidget {
7171 width: trackRow.column1Width
7272 height: width
7373 iconSource: DashAudioPlayer.playing && trackItem.isPlayingItem ? "image://theme/media-playback-pause" : "image://theme/media-playback-start"
74+ activeFocusOnPress: false
7475
7576 // Can't be "transparent" or "#00xxxxxx" as the button optimizes away the surrounding shape
7677 // FIXME when this is resolved: https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1251685
qml/Dash/graphics/paper.pngnew file

Binary file not shown.

qml/Dash/graphics/paper_landscape@27.pngdeleted

Binary file not shown.

qml/Dash/graphics/paper_portrait@27.pngdeleted

Binary file not shown.

qml/DisabledScreenNotice.qml+72−19
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015 Canonical, Ltd.
2+ * Copyright (C) 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,35 +15,88 @@
1515 */
1616
1717import QtQuick 2.4
18+import QtQuick.Layouts 1.1
1819import Ubuntu.Components 1.3
20+import QtQuick.Window 2.2
1921import "Components"
2022
21−Image {
23+Item {
2224 id: root
2325
26+ property bool infoNoteDisplayed: true
27+
2428 WallpaperResolver {
2529 width: root.width
2630 id: wallpaperResolver
2731 }
2832
29− source: wallpaperResolver.background
33+ Item {
34+ id: contentContainer
35+ anchors.centerIn: parent
36+ height: rotation == 90 || rotation == 270 ? parent.width : parent.height
37+ width: rotation == 90 || rotation == 270 ? parent.height : parent.width
3038
31− UbuntuShape {
32− anchors.fill: text
33− anchors.margins: -units.gu(2)
34− backgroundColor: "black"
35− opacity: 0.4
36− }
39+ rotation: {
40+ switch (Screen.orientation) {
41+ case Qt.PortraitOrientation:
42+ return 0;
43+ case Qt.LandscapeOrientation:
44+ return 270;
45+ case Qt.InvertedPortraitOrientation:
46+ return 180;
47+ case Qt.InvertedLandscapeOrientation:
48+ return 90;
49+ }
50+ }
51+ transformOrigin: Item.Center
3752
38− Label {
39− id: text
40− anchors.centerIn: parent
41− width: parent.width / 2
42− text: i18n.tr("Your device is now connected to an external display.")
43− color: "white"
44− horizontalAlignment: Text.AlignHCenter
45− verticalAlignment: Text.AlignVCenter
46− fontSize: "x-large"
47− wrapMode: Text.Wrap
53+ VirtualTouchPad {
54+ anchors.fill: parent
55+
56+ onPressedChanged: {
57+ if (pressed && infoNoteDisplayed) {
58+ infoNoteDisplayed = false;
59+ }
60+ }
61+ }
62+
63+ Image {
64+ anchors.fill: parent
65+ source: wallpaperResolver.background
66+ }
67+
68+ Item {
69+ objectName: "infoNoticeArea"
70+ anchors.fill: parent
71+ opacity: infoNoteDisplayed ? 1 : 0
72+ visible: opacity > 0
73+ Behavior on opacity {
74+ UbuntuNumberAnimation { }
75+ }
76+
77+ Rectangle {
78+ anchors.fill: parent
79+ color: "black"
80+ opacity: 0.4
81+ }
82+
83+ Label {
84+ id: text
85+ anchors.centerIn: parent
86+ width: parent.width - units.gu(8)
87+ text: i18n.tr("Your device is now connected to an external display. Use this screen as a touch pad to interact with the mouse.")
88+ color: "white"
89+ horizontalAlignment: Text.AlignHCenter
90+ verticalAlignment: Text.AlignVCenter
91+ fontSize: "x-large"
92+ wrapMode: Text.Wrap
93+ }
94+ }
95+
96+ InputMethod {
97+ id: inputMethod
98+ objectName: "inputMethod"
99+ anchors.fill: parent
100+ }
48101 }
49102}
qml/Launcher/Launcher.qml+18−19
@@ -50,9 +50,9 @@ Item {
5050
5151 onStateChanged: {
5252 if (state == "") {
53− dismissTimer.stop()
53+ panel.dismissTimer.stop()
5454 } else {
55− dismissTimer.restart()
55+ panel.dismissTimer.restart()
5656 }
5757 }
5858
@@ -95,21 +95,6 @@ Item {
9595 property string mode: "teasing"
9696 }
9797
98− Timer {
99− id: dismissTimer
100− objectName: "dismissTimer"
101− interval: 500
102− onTriggered: {
103− if (root.autohideEnabled) {
104− if (!panel.preventHiding) {
105− root.state = ""
106− } else {
107− dismissTimer.restart()
108− }
109− }
110− }
111− }
112−
11398 // Because the animation on x is disabled while dragging
11499 // switching state directly in the drag handlers would not animate
115100 // the completion of the hide/reveal gesture. Lets update the state
@@ -237,6 +222,20 @@ Item {
237222 visible: root.x > 0 || x > -width || dragArea.pressed
238223 model: LauncherModel
239224
225+ property var dismissTimer: Timer { interval: 500 }
226+ Connections {
227+ target: panel.dismissTimer
228+ onTriggered: {
229+ if (root.autohideEnabled) {
230+ if (!panel.preventHiding) {
231+ root.state = ""
232+ } else {
233+ panel.dismissTimer.restart()
234+ }
235+ }
236+ }
237+ }
238+
240239 property bool animate: true
241240
242241 onApplicationSelected: {
@@ -249,8 +248,8 @@ Item {
249248 }
250249
251250 onPreventHidingChanged: {
252− if (dismissTimer.running) {
253− dismissTimer.restart();
251+ if (panel.dismissTimer.running) {
252+ panel.dismissTimer.restart();
254253 }
255254 }
256255
qml/OrientedShell.qml+28−14
@@ -18,6 +18,7 @@ import QtQuick 2.4
1818import QtQuick.Window 2.2
1919import Unity.InputInfo 0.1
2020import Unity.Session 0.1
21+import Unity.Screens 0.1
2122import GSettings 1.0
2223import "Components"
2324import "Rotation"
@@ -78,6 +79,15 @@ Rectangle {
7879 deviceFilter: InputInfo.Keyboard
7980 }
8081
82+ InputDeviceModel {
83+ id: touchScreensModel
84+ deviceFilter: InputInfo.TouchScreen
85+ }
86+
87+ Screens {
88+ id: screens
89+ }
90+
8191 property int orientation
8292 onPhysicalOrientationChanged: {
8393 if (!orientationLocked) {
@@ -97,8 +107,7 @@ Rectangle {
97107 }
98108 // We need to manually update this on startup as the binding
99109 // below doesn't seem to have any effect at that stage
100− oskSettings.stayHidden = keyboardsModel.count > 0
101− oskSettings.disableHeight = shell.usageScenario == "desktop"
110+ oskSettings.disableHeight = !shell.oskEnabled || shell.usageScenario == "desktop"
102111 }
103112
104113 // we must rotate to a supported orientation regardless of shell's preference
@@ -106,17 +115,10 @@ Rectangle {
106115 (shell.orientation & supportedOrientations) === 0 ? true
107116 : shell.orientationChangesEnabled
108117
109−
110− Binding {
111− target: oskSettings
112− property: "stayHidden"
113− value: keyboardsModel.count > 0
114− }
115−
116118 Binding {
117119 target: oskSettings
118120 property: "disableHeight"
119− value: shell.usageScenario == "desktop"
121+ value: !shell.oskEnabled || shell.usageScenario == "desktop"
120122 }
121123
122124 readonly property int supportedOrientations: shell.supportedOrientations
@@ -189,6 +191,11 @@ Rectangle {
189191 nativeHeight: root.height
190192 mode: applicationArguments.mode
191193 hasMouse: miceModel.count + touchPadModel.count > 0
194+ // TODO: Factor in if the current screen is a touch screen and if the user wants to
195+ // have multiple keyboards around. For now we only enable one keyboard at a time
196+ // thus hiding it here if there is a physical one around or if we have a second
197+ // screen (the virtual touchpad & osk on the phone) attached.
198+ oskEnabled: keyboardsModel.count === 0 && screens.count === 1
192199
193200 // TODO: Factor in the connected input devices (eg: physical keyboard, mouse, touchscreen),
194201 // what's the output device (eg: big TV, desktop monitor, phone display), etc.
@@ -202,11 +209,18 @@ Rectangle {
202209 return "tablet";
203210 }
204211 } else { // automatic
205− if (miceModel.count + touchPadModel.count > 0) {
206− return "desktop";
207− } else {
208− return deviceConfiguration.category;
212+ var longEdgeWidth = Math.max(root.width, root.height)
213+ if (longEdgeWidth > units.gu(120)) {
214+ if (keyboardsModel.count + miceModel.count + touchPadModel.count > 0) {
215+ return "desktop";
216+ }
217+ } else if (longEdgeWidth > units.gu(90)){
218+ if (miceModel.count + touchPadModel.count > 0) {
219+ return "desktop";
220+ }
209221 }
222+
223+ return deviceConfiguration.category;
210224 }
211225 }
212226
qml/Shell.qml+15−6
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013-2015 Canonical, Ltd.
2+ * Copyright (C) 2013-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
@@ -56,7 +56,7 @@ Item {
5656 property bool beingResized
5757 property string usageScenario: "phone" // supported values: "phone", "tablet" or "desktop"
5858 property string mode: "full-greeter"
59− property bool cursorVisible: false
59+ property alias oskEnabled: inputMethod.enabled
6060 function updateFocusedAppOrientation() {
6161 applicationsDisplayLoader.item.updateFocusedAppOrientation();
6262 }
@@ -84,8 +84,8 @@ Item {
8484 return Qt.PrimaryOrientation;
8585 } else if (greeter && greeter.shown) {
8686 return Qt.PrimaryOrientation;
87− } else if (mainApp) {
88− return shell.orientations.map(mainApp.supportedOrientations);
87+ } else if (applicationsDisplayLoader.item) {
88+ return shell.orientations.map(applicationsDisplayLoader.item.supportedOrientations);
8989 } else {
9090 // we just don't care
9191 return Qt.PortraitOrientation
@@ -177,8 +177,15 @@ Item {
177177 Keys.onReleased: physicalKeysMapper.onKeyReleased(event, lastInputTimestamp);
178178 }
179179
180− HomeKeyWatcher {
181− onActivated: { launcher.fadeOut(); shell.showHome(); }
180+ WindowInputMonitor {
181+ onHomeKeyActivated: { launcher.fadeOut(); shell.showHome(); }
182+ onTouchBegun: { cursor.opacity = 0; }
183+ onTouchEnded: {
184+ // move the (hidden) cursor to the last known touch position
185+ var mappedCoords = mapFromItem(null, pos.x, pos.y);
186+ cursor.x = mappedCoords.x;
187+ cursor.y = mappedCoords.y;
188+ }
182189 }
183190
184191 Item {
@@ -658,6 +665,8 @@ Item {
658665 applicationsDisplayLoader.item.pushRightEdge(amount);
659666 }
660667 }
668+
669+ onMouseMoved: { cursor.opacity = 1; }
661670 }
662671
663672 Rectangle {
qml/Stages/AbstractStage.qml+5−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
@@ -45,6 +45,10 @@ Rectangle {
4545 property var mainApp: null
4646 property int mainAppWindowOrientationAngle
4747 property bool orientationChangesEnabled
48+ property int supportedOrientations: Qt.PortraitOrientation
49+ | Qt.LandscapeOrientation
50+ | Qt.InvertedPortraitOrientation
51+ | Qt.InvertedLandscapeOrientation
4852
4953 // Shared code for use in stage implementations
5054 GSettings {
qml/Stages/DesktopStage.qml+6−1
@@ -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
@@ -40,6 +40,11 @@ AbstractStage {
4040 ? ApplicationManager.findApplication(ApplicationManager.focusedApplicationId)
4141 : null
4242
43+ // application windows never rotate independently
44+ mainAppWindowOrientationAngle: shellOrientationAngle
45+
46+ orientationChangesEnabled: true
47+
4348 Connections {
4449 target: ApplicationManager
4550 onApplicationAdded: {
qml/Stages/PhoneStage.qml+5−1
@@ -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
@@ -83,6 +83,10 @@ AbstractStage {
8383 && !(priv.focusedAppDelegate && priv.focusedAppDelegate.xBehavior.running)
8484 && spreadView.phase === 0
8585
86+ supportedOrientations: mainApp ? mainApp.supportedOrientations
87+ : (Qt.PortraitOrientation | Qt.LandscapeOrientation
88+ | Qt.InvertedPortraitOrientation | Qt.InvertedLandscapeOrientation)
89+
8690 // How far left the stage has been dragged, used externally by tutorial code
8791 dragProgress: spreadRepeater.count > 0 ? spreadRepeater.itemAt(0).animatedProgress : 0
8892
qml/Stages/TabletStage.qml+5−1
@@ -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
@@ -75,6 +75,10 @@ AbstractStage {
7575
7676 orientationChangesEnabled: priv.mainAppOrientationChangesEnabled
7777
78+ supportedOrientations: mainApp ? mainApp.supportedOrientations
79+ : (Qt.PortraitOrientation | Qt.LandscapeOrientation
80+ | Qt.InvertedPortraitOrientation | Qt.InvertedLandscapeOrientation)
81+
7882 // How far left the stage has been dragged, used externally by tutorial code
7983 dragProgress: spreadRepeater.count > 0 ? spreadRepeater.itemAt(0).animatedProgress : 0
8084
tests/mocks/CMakeLists.txt+1
@@ -43,6 +43,7 @@ add_subdirectory(Unity)
4343add_subdirectory(QtMultimedia)
4444add_subdirectory(Wizard)
4545add_subdirectory(Utils)
46+add_subdirectory(UInput)
4647
4748install(
4849 DIRECTORY data
tests/mocks/Cursor/Cursor.qml+1
@@ -19,4 +19,5 @@ import QtQuick 2.4
1919Item {
2020 signal pushedLeftBoundary(real amount, int buttons)
2121 signal pushedRightBoundary(real amount, int buttons)
22+ signal mouseMoved()
2223}
tests/mocks/UInput/CMakeLists.txtnew file+7
@@ -0,0 +1,7 @@
1+add_library(FakeUInput-qml MODULE
2+ plugin.cpp
3+ mockuinput.cpp
4+)
5+
6+qt5_use_modules(FakeUInput-qml Qml)
7+add_unity8_mock(UInput 0.1 UInput TARGETS FakeUInput-qml)
tests/mocks/UInput/mockuinput.cppnew file+73
@@ -0,0 +1,73 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+
18+#include "mockuinput.h"
19+
20+#include <QFile>
21+#include <QDebug>
22+#include <QDateTime>
23+
24+#include <unistd.h>
25+
26+MockUInput::MockUInput(QObject *parent) :
27+ QObject(parent)
28+{
29+}
30+
31+MockUInput::~MockUInput()
32+{
33+}
34+
35+void MockUInput::createMouse()
36+{
37+ if (m_mouseCreated) {
38+ qDebug() << "Already have a virtual device. Not creating another one.";
39+ return;
40+ }
41+ m_mouseCreated = true;
42+ Q_EMIT mouseCreated();
43+}
44+
45+void MockUInput::removeMouse()
46+{
47+ if (!m_mouseCreated) {
48+ return;
49+ }
50+ qDebug() << "Virtual uinput mouse device removed.";
51+ m_mouseCreated = false;
52+ Q_EMIT mouseRemoved();
53+}
54+
55+void MockUInput::moveMouse(int dx, int dy)
56+{
57+ Q_EMIT mouseMoved(dx, dy);
58+}
59+
60+void MockUInput::pressMouse(Button button)
61+{
62+ Q_EMIT mousePressed(button);
63+}
64+
65+void MockUInput::releaseMouse(Button button)
66+{
67+ Q_EMIT mouseReleased(button);
68+}
69+
70+void MockUInput::scrollMouse(int dh, int dv)
71+{
72+ Q_EMIT mouseScrolled(dh, dv);
73+}
tests/mocks/UInput/mockuinput.hnew file+63
@@ -0,0 +1,63 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+
18+#ifndef MOCKUINPUT_H
19+#define MOCKUINPUT_H
20+
21+#include <QObject>
22+#include <QFile>
23+
24+#include <linux/uinput.h>
25+
26+
27+class MockUInput : public QObject
28+{
29+ Q_OBJECT
30+ Q_ENUMS(Button)
31+
32+public:
33+ enum Button {
34+ ButtonLeft,
35+ ButtonRight,
36+ ButtonMiddle
37+ };
38+
39+ explicit MockUInput(QObject *parent = nullptr);
40+ ~MockUInput();
41+
42+ Q_INVOKABLE void createMouse();
43+ Q_INVOKABLE void removeMouse();
44+
45+ Q_INVOKABLE void moveMouse(int dx, int dy);
46+ Q_INVOKABLE void pressMouse(Button button);
47+ Q_INVOKABLE void releaseMouse(Button button);
48+ Q_INVOKABLE void scrollMouse(int dh, int dv);
49+
50+Q_SIGNALS:
51+ // for testing
52+ void mouseCreated();
53+ void mouseRemoved();
54+ void mouseMoved(int dx, int dy);
55+ void mousePressed(Button button);
56+ void mouseReleased(Button button);
57+ void mouseScrolled(int dh, int dv);
58+
59+private:
60+ bool m_mouseCreated = false;
61+};
62+
63+#endif // MOCKUINPUT_H
tests/mocks/UInput/plugin.cppnew file+26
@@ -0,0 +1,26 @@
1+/*
2+ * Copyright (C) 2015 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "plugin.h"
18+#include "mockuinput.h"
19+
20+#include <QtQml/qqml.h>
21+
22+void MockUInputPlugin::registerTypes(const char *uri)
23+{
24+ Q_ASSERT(uri == QLatin1String("UInput"));
25+ qmlRegisterType<MockUInput>(uri, 0, 1, "UInput");
26+}
tests/mocks/UInput/plugin.hnew file+32
@@ -0,0 +1,32 @@
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+#ifndef MOCKUINPUT_PLUGIN_H
18+#define MOCKUINPUT_PLUGIN_H
19+
20+#include <QtQml/QQmlEngine>
21+#include <QtQml/QQmlExtensionPlugin>
22+
23+class MockUInputPlugin : public QQmlExtensionPlugin
24+{
25+ Q_OBJECT
26+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27+
28+public:
29+ void registerTypes(const char *uri) override;
30+};
31+
32+#endif
tests/mocks/UInput/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module UInput
2+plugin FakeUInput-qml
tests/mocks/Unity/CMakeLists.txt+1
@@ -5,6 +5,7 @@ add_subdirectory(InputInfo)
55add_subdirectory(Launcher)
66add_subdirectory(Notifications)
77add_subdirectory(DashCommunicator)
8+add_subdirectory(Screens)
89
910pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
1011pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=9)
tests/mocks/Unity/Screens/CMakeLists.txtnew file+14
@@ -0,0 +1,14 @@
1+include_directories(
2+ ${CMAKE_CURRENT_SOURCE_DIR}
3+)
4+
5+set(MockScreens_SOURCES
6+ plugin.cpp
7+ screens.cpp
8+)
9+
10+add_library(MockScreensPlugin MODULE ${MockScreens_SOURCES})
11+
12+qt5_use_modules(MockScreensPlugin Gui Qml)
13+
14+add_unity8_mock(Unity.Screens 0.1 Unity/Screens TARGETS MockScreensPlugin)
tests/mocks/Unity/Screens/plugin.cppnew file+29
@@ -0,0 +1,29 @@
1+/*
2+ * Copyright (C) 2015 Canonical, Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it under
5+ * the terms of the GNU Lesser General Public License version 3, as published by
6+ * the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but WITHOUT
9+ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10+ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11+ * Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "plugin.h"
18+#include "screens.h"
19+
20+#include <QScreen>
21+
22+void UnityScreensPlugin::registerTypes(const char* uri)
23+{
24+ Q_ASSERT(QLatin1String(uri) == QLatin1String("Unity.Screens"));
25+
26+ qRegisterMetaType<QScreen*>("QScreen*");
27+
28+ qmlRegisterType<Screens>(uri, 0, 1, "Screens");
29+}
tests/mocks/Unity/Screens/plugin.hnew file+25
@@ -0,0 +1,25 @@
1+/*
2+ * Copyright (C) 2015 Canonical, Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it under
5+ * the terms of the GNU Lesser General Public License version 3, as published by
6+ * the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but WITHOUT
9+ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10+ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11+ * Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QQmlExtensionPlugin>
18+#include <QtQml/qqml.h>
19+
20+class UnityScreensPlugin : public QQmlExtensionPlugin {
21+ Q_OBJECT
22+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
23+public:
24+ virtual void registerTypes(const char* uri);
25+};
tests/mocks/Unity/Screens/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module Unity.Screens
2+plugin MockScreensPlugin
tests/mocks/Unity/Screens/screens.cppnew file+71
@@ -0,0 +1,71 @@
1+/*
2+ * Copyright (C) 2015 Canonical, Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it under
5+ * the terms of the GNU Lesser General Public License version 3, as published by
6+ * the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but WITHOUT
9+ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10+ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11+ * Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "screens.h"
18+
19+// Qt
20+#include <QGuiApplication>
21+#include <QScreen>
22+#include <QDebug>
23+
24+Q_DECLARE_METATYPE(QScreen*)
25+
26+Screens::Screens(QObject *parent) :
27+ QAbstractListModel(parent)
28+{
29+ // start with one screen attached
30+ m_screenList.append(new Screen());
31+}
32+
33+Screens::~Screens()
34+{
35+ qDeleteAll(m_screenList);
36+ m_screenList.clear();
37+}
38+
39+QHash<int, QByteArray> Screens::roleNames() const
40+{
41+ QHash<int, QByteArray> roles;
42+ roles[ScreenRole] = "screen";
43+ roles[OutputTypeRole] = "outputType";
44+ return roles;
45+}
46+
47+QVariant Screens::data(const QModelIndex &index, int role) const
48+{
49+ if (!index.isValid() || index.row() >= m_screenList.size()) {
50+ return QVariant();
51+ }
52+
53+ switch(role) {
54+ case ScreenRole:
55+ return QVariant::fromValue(m_screenList.at(index.row())->qScreen);
56+ case OutputTypeRole:
57+ return m_screenList.at(index.row())->outputTypes;
58+ }
59+
60+ return QVariant();
61+}
62+
63+int Screens::rowCount(const QModelIndex &) const
64+{
65+ return count();
66+}
67+
68+int Screens::count() const
69+{
70+ return m_screenList.size();
71+}
tests/mocks/Unity/Screens/screens.hnew file+82
@@ -0,0 +1,82 @@
1+/*
2+ * Copyright (C) 2015 Canonical, Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it under
5+ * the terms of the GNU Lesser General Public License version 3, as published by
6+ * the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but WITHOUT
9+ * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10+ * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11+ * Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef SCREENS_H
18+#define SCREENS_H
19+
20+#include <QAbstractListModel>
21+#include <QScreen>
22+
23+class Screen;
24+
25+class Screens : public QAbstractListModel
26+{
27+ Q_OBJECT
28+ Q_ENUMS(OutputTypes)
29+
30+ Q_PROPERTY(int count READ count NOTIFY countChanged)
31+
32+public:
33+ enum ItemRoles {
34+ ScreenRole = Qt::UserRole + 1,
35+ OutputTypeRole
36+ };
37+
38+ enum OutputTypes {
39+ Unknown,
40+ VGA,
41+ DVII,
42+ DVID,
43+ DVIA,
44+ Composite,
45+ SVideo,
46+ LVDS,
47+ Component,
48+ NinePinDIN,
49+ DisplayPort,
50+ HDMIA,
51+ HDMIB,
52+ TV,
53+ EDP
54+ };
55+
56+ explicit Screens(QObject *parent = 0);
57+ virtual ~Screens() noexcept;
58+
59+ /* QAbstractItemModel */
60+ QHash<int, QByteArray> roleNames() const override;
61+ QVariant data(const QModelIndex &index, int role = ScreenRole) const override;
62+ int rowCount(const QModelIndex &parent = QModelIndex()) const override;
63+
64+ int count() const;
65+
66+Q_SIGNALS:
67+ void countChanged();
68+ void screenAdded(QScreen *screen);
69+ void screenRemoved(QScreen *screen);
70+
71+private:
72+ QList<Screen *> m_screenList;
73+};
74+
75+class Screen
76+{
77+public:
78+ Screens::OutputTypes outputTypes = Screens::Unknown;
79+ QScreen *qScreen = nullptr;
80+};
81+
82+#endif // SCREENS_H
tests/mocks/Unity/fake_categories.cpp+1−1
@@ -141,7 +141,7 @@ ResultsModel* Categories::resultModel(int row) const
141141 ResultsModel *result = m_resultsModels[row];
142142 if (!result) {
143143 Categories *that = const_cast<Categories*>(this);
144− result = new ResultsModel(15, row, that);
144+ result = new ResultsModel(25, row, that);
145145 m_resultsModels[row] = result;
146146 }
147147 return result;
tests/mocks/Utils/CMakeLists.txt+1−2
@@ -1,5 +1,3 @@
1−pkg_search_module(GIO REQUIRED gio-2.0)
2−
31include_directories(
42 ${CMAKE_CURRENT_SOURCE_DIR}
53 ${CMAKE_CURRENT_BINARY_DIR}
@@ -19,6 +17,7 @@ set(QMLPLUGIN_SRC
1917 ${CMAKE_SOURCE_DIR}/plugins/Utils/easingcurve.cpp
2018 ${CMAKE_SOURCE_DIR}/plugins/Utils/inputwatcher.cpp
2119 ${CMAKE_SOURCE_DIR}/plugins/Utils/applicationsfiltermodel.cpp
20+ ${CMAKE_SOURCE_DIR}/plugins/Utils/inputeventgenerator.cpp
2221 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
2322 constants.cpp
2423 plugin.cpp
tests/mocks/Utils/HomeKeyWatcher.qml → tests/mocks/Utils/WindowInputMonitor.qmlrenamed+3−1
@@ -17,5 +17,7 @@
1717import QtQuick 2.4
1818
1919QtObject {
20− signal activated()
20+ signal homeKeyActivated()
21+ signal touchBegun()
22+ signal touchEnded(point pos)
2123}
tests/mocks/Utils/plugin.cpp+2
@@ -36,6 +36,7 @@
3636#include <windowscreenshotprovider.h>
3737#include <easingcurve.h>
3838#include <applicationsfiltermodel.h>
39+#include <inputeventgenerator.h>
3940
4041static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
4142{
@@ -65,6 +66,7 @@ void FakeUtilsPlugin::registerTypes(const char *uri)
6566 qmlRegisterSingletonType<Constants>(uri, 0, 1, "Constants", createConstants);
6667 qmlRegisterType<ActiveFocusLogger>(uri, 0, 1, "ActiveFocusLogger");
6768 qmlRegisterType<ApplicationsFilterModel>(uri, 0, 1, "ApplicationsFilterModel");
69+ qmlRegisterType<InputEventGenerator>(uri, 0, 1, "InputEventGenerator");
6870}
6971
7072void FakeUtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
tests/mocks/Utils/qmldir+1−1
@@ -2,5 +2,5 @@ module Utils
22plugin FakeUtils-qml
33typeinfo Utils.qmltypes
44Style 0.1 Style.js
5−HomeKeyWatcher 0.1 HomeKeyWatcher.qml
5+WindowInputMonitor 0.1 WindowInputMonitor.qml
66singleton EdgeBarrierSettings 0.1 EdgeBarrierSettings.qml
tests/mocks/indicator-service/CMakeLists.txt−1
@@ -1,5 +1,4 @@
11project(mock-indicator-service)
2−pkg_search_module(GIO REQUIRED gio-2.0)
32
43set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
54
tests/plugins/Dash/cardcreator/10.resnew file+142
@@ -0,0 +1,142 @@
1+AbstractButton {
2+ id: root;
3+ property var components;
4+ property var cardData;
5+ property string artShapeStyle: "inset";
6+ property string backgroundShapeStyle: "inset";
7+ property real fontScale: 1.0;
8+ property var scopeStyle: null;
9+ property int titleAlignment: Text.AlignLeft;
10+ property int fixedHeaderHeight: -1;
11+ property size fixedArtShapeSize: Qt.size(-1, -1);
12+ readonly property string title: cardData && cardData["title"] || "";
13+ property bool asynchronous: true;
14+ property bool showHeader: true;
15+ implicitWidth: childrenRect.width;
16+ enabled: true;
17+
18+Loader {
19+ id: backgroundLoader;
20+ objectName: "backgroundLoader";
21+ anchors.fill: parent;
22+ asynchronous: root.asynchronous;
23+ visible: status == Loader.Ready;
24+ sourceComponent: UbuntuShape {
25+ objectName: "background";
26+ radius: "medium";
27+ aspect: {
28+ switch (root.backgroundShapeStyle) {
29+ case "inset": return UbuntuShape.Inset;
30+ case "shadow": return UbuntuShape.DropShadow;
31+ default:
32+ case "flat": return UbuntuShape.Flat;
33+ }
34+ }
35+ backgroundColor: getColor(0) || "white";
36+ secondaryBackgroundColor: getColor(1) || backgroundColor;
37+ backgroundMode: UbuntuShape.VerticalGradient;
38+ anchors.fill: parent;
39+ source: backgroundImage.source ? backgroundImage : null;
40+ property real luminance: Style.luminance(backgroundColor);
41+ property Image backgroundImage: Image {
42+ objectName: "backgroundImage";
43+ source: {
44+ if (cardData && typeof cardData["background"] === "string") return cardData["background"];
45+ else return "";
46+ }
47+ }
48+ function getColor(index) {
49+ if (cardData && typeof cardData["background"] === "object"
50+ && (cardData["background"]["type"] === "color" || cardData["background"]["type"] === "gradient")) {
51+ return cardData["background"]["elements"][index];
52+ } else return index === 0 ? "" : "";
53+ }
54+ }
55+ }
56+readonly property size artShapeSize: Qt.size(-1, -1);
57+readonly property int headerHeight: row.height;
58+Row {
59+ id: row;
60+ objectName: "outerRow";
61+ property real margins: units.gu(1);
62+ spacing: margins;
63+ height: root.fixedHeaderHeight != -1 ? root.fixedHeaderHeight : implicitHeight;
64+ anchors { top: parent.top;
65+ topMargin: units.gu(1);
66+left: parent.left;
67+ }
68+ anchors.right: parent.right;
69+ anchors.margins: margins;
70+ anchors.rightMargin: 0;
71+ data: [
72+ CroppedImageMinimumSourceSize {
73+ id: mascotImage;
74+ objectName: "mascotImage";
75+ anchors { verticalCenter: parent.verticalCenter; }
76+ source: cardData && cardData["mascot"] || "";
77+ width: units.gu(6);
78+ height: units.gu(5.625);
79+ horizontalAlignment: Image.AlignHCenter;
80+ verticalAlignment: Image.AlignVCenter;
81+ visible: showHeader;
82+
83+ }
84+,Item {
85+ id: headerTitleContainer;
86+ anchors { verticalCenter: parent.verticalCenter; }
87+ width: parent.width - x;
88+ implicitHeight: titleLabel.height + subtitleLabel.height;
89+ data: [
90+ Label {
91+ id: titleLabel;
92+ objectName: "titleLabel";
93+ anchors { right: parent.right;
94+rightMargin: units.gu(1);
95+left: parent.left;
96+ top: parent.top; }
97+ elide: Text.ElideRight;
98+ fontSize: "small";
99+ wrapMode: Text.Wrap;
100+ maximumLineCount: 2;
101+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
102+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white");
103+ visible: showHeader ;
104+ width: undefined;
105+ text: root.title;
106+ font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal;
107+ horizontalAlignment: root.titleAlignment;
108+ }
109+,Label {
110+ id: subtitleLabel;
111+ objectName: "subtitleLabel";
112+ anchors { right: parent.right;
113+ left: parent.left;
114+rightMargin: units.gu(1);
115+top: titleLabel.bottom;
116+ }
117+ anchors.topMargin: units.dp(2);
118+ elide: Text.ElideRight;
119+ maximumLineCount: 1;
120+ fontSize: "x-small";
121+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
122+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white");
123+ visible: titleLabel.visible && titleLabel.text;
124+ text: cardData && cardData["subtitle"] || "";
125+ font.weight: Font.Light;
126+ }
127+
128+ ]
129+ }
130+
131+ ]
132+ }
133+UbuntuShape {
134+ id: touchdown;
135+ objectName: "touchdown";
136+ anchors { fill: backgroundLoader }
137+ visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed;
138+ radius: "medium";
139+ borderSource: "radius_pressed.sci"
140+ }
141+implicitHeight: row.y + row.height + units.gu(1);
142+}
tests/plugins/Dash/cardcreator/10.tstnew file+3
@@ -0,0 +1,3 @@
1+template: {"card-background":{"elements":["#E9E9E9"],"type":"color"},"card-layout":"vertical","card-size":"medium","category-layout":"grid","collapsed-rows":2, "card-background": { "type": "color", "elements": [ "\\", ": 3; } Item { } function moo () { \"" ] } }
2+components: {"art":{"aspect-ratio":1},"background":{"field":"background"},"mascot":{"field":"icon"},"subtitle":{"field":"author"},"title":{"field":"title"},"attributes":{}}
3+result: 10.res
tests/plugins/Dash/cardcreator/11.resnew file+217
@@ -0,0 +1,217 @@
1+AbstractButton {
2+ id: root;
3+ property var components;
4+ property var cardData;
5+ property string artShapeStyle: "inset";
6+ property string backgroundShapeStyle: "inset";
7+ property real fontScale: 1.0;
8+ property var scopeStyle: null;
9+ property int titleAlignment: Text.AlignLeft;
10+ property int fixedHeaderHeight: -1;
11+ property size fixedArtShapeSize: Qt.size(-1, -1);
12+ readonly property string title: cardData && cardData["title"] || "";
13+ property bool asynchronous: true;
14+ property bool showHeader: true;
15+ implicitWidth: childrenRect.width;
16+ enabled: true;
17+
18+Loader {
19+ id: backgroundLoader;
20+ objectName: "backgroundLoader";
21+ anchors.fill: parent;
22+ asynchronous: root.asynchronous;
23+ visible: status == Loader.Ready;
24+ sourceComponent: UbuntuShape {
25+ objectName: "background";
26+ radius: "medium";
27+ aspect: {
28+ switch (root.backgroundShapeStyle) {
29+ case "inset": return UbuntuShape.Inset;
30+ case "shadow": return UbuntuShape.DropShadow;
31+ default:
32+ case "flat": return UbuntuShape.Flat;
33+ }
34+ }
35+ backgroundColor: getColor(0) || "white";
36+ secondaryBackgroundColor: getColor(1) || backgroundColor;
37+ backgroundMode: UbuntuShape.VerticalGradient;
38+ anchors.fill: parent;
39+ source: backgroundImage.source ? backgroundImage : null;
40+ property real luminance: Style.luminance(backgroundColor);
41+ property Image backgroundImage: Image {
42+ objectName: "backgroundImage";
43+ source: {
44+ if (cardData && typeof cardData["background"] === "string") return cardData["background"];
45+ else return "";
46+ }
47+ }
48+ function getColor(index) {
49+ if (cardData && typeof cardData["background"] === "object"
50+ && (cardData["background"]["type"] === "color" || cardData["background"]["type"] === "gradient")) {
51+ return cardData["background"]["elements"][index];
52+ } else return index === 0 ? "#E9E9E9" : undefined;
53+ }
54+ }
55+ }
56+readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
57+Item {
58+ id: artShapeHolder;
59+ height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height;
60+ width: root.fixedArtShapeSize.width > 0 ? root.fixedArtShapeSize.width : artShapeLoader.width;
61+ anchors { horizontalCenter: parent.horizontalCenter; }
62+ Loader {
63+ id: artShapeLoader;
64+ objectName: "artShapeLoader";
65+ active: cardData && cardData["art"] || false;
66+ asynchronous: root.asynchronous;
67+ visible: status == Loader.Ready;
68+ sourceComponent: Item {
69+ id: artShape;
70+ objectName: "artShape";
71+ readonly property bool doShapeItem: components["art"]["conciergeMode"] !== true;
72+ visible: image.status == Image.Ready;
73+ readonly property alias image: artImage;
74+ ShaderEffectSource {
75+ id: artShapeSource;
76+ sourceItem: artImage;
77+ anchors.centerIn: parent;
78+ width: 1;
79+ height: 1;
80+ hideSource: doShapeItem;
81+ }
82+ Loader {
83+ anchors.fill: parent;
84+ visible: artShape.doShapeItem;
85+ sourceComponent: root.artShapeStyle === "icon" ? artShapeIconComponent : artShapeShapeComponent;
86+ Component {
87+ id: artShapeShapeComponent;
88+ UbuntuShape {
89+ source: artShapeSource;
90+ sourceFillMode: UbuntuShape.PreserveAspectCrop;
91+ radius: "medium";
92+ aspect: {
93+ switch (root.artShapeStyle) {
94+ case "inset": return UbuntuShape.Inset;
95+ case "shadow": return UbuntuShape.DropShadow;
96+ default:
97+ case "flat": return UbuntuShape.Flat;
98+ }
99+ }
100+ }
101+ }
102+ Component {
103+ id: artShapeIconComponent;
104+ ProportionalShape { source: artShapeSource; aspect: UbuntuShape.DropShadow; }
105+ }
106+ }
107+ readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
108+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : components !== undefined ? components["art"]["aspect-ratio"] : 1;
109+ Component.onCompleted: { updateWidthHeightBindings(); }
110+ Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
111+ function updateWidthHeightBindings() {
112+ if (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) {
113+ width = root.fixedArtShapeSize.width;
114+ height = root.fixedArtShapeSize.height;
115+ } else {
116+ width = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.width });
117+ height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
118+ }
119+ }
120+ CroppedImageMinimumSourceSize {
121+ id: artImage;
122+ objectName: "artImage";
123+ source: cardData && cardData["art"] || "";
124+ asynchronous: root.asynchronous;
125+ width: root.width;
126+ height: width / artShape.aspect;
127+ onStatusChanged: if (status === Image.Error) source = decodeURI("%5C");
128+ }
129+ }
130+ }
131+ }
132+readonly property int headerHeight: row.height;
133+Row {
134+ id: row;
135+ objectName: "outerRow";
136+ property real margins: units.gu(1);
137+ spacing: margins;
138+ height: root.fixedHeaderHeight != -1 ? root.fixedHeaderHeight : implicitHeight;
139+ anchors { top: artShapeHolder.bottom;
140+ topMargin: units.gu(1);
141+left: parent.left;
142+ }
143+ anchors.right: parent.right;
144+ anchors.margins: margins;
145+ anchors.rightMargin: 0;
146+ data: [
147+ CroppedImageMinimumSourceSize {
148+ id: mascotImage;
149+ objectName: "mascotImage";
150+ anchors { verticalCenter: parent.verticalCenter; }
151+ source: cardData && cardData["mascot"] || "";
152+ width: units.gu(6);
153+ height: units.gu(5.625);
154+ horizontalAlignment: Image.AlignHCenter;
155+ verticalAlignment: Image.AlignVCenter;
156+ visible: showHeader;
157+ onStatusChanged: if (status === Image.Error) source = decodeURI("%22");
158+ }
159+,Item {
160+ id: headerTitleContainer;
161+ anchors { verticalCenter: parent.verticalCenter; }
162+ width: parent.width - x;
163+ implicitHeight: titleLabel.height + subtitleLabel.height;
164+ data: [
165+ Label {
166+ id: titleLabel;
167+ objectName: "titleLabel";
168+ anchors { right: parent.right;
169+rightMargin: units.gu(1);
170+left: parent.left;
171+ top: parent.top; }
172+ elide: Text.ElideRight;
173+ fontSize: "small";
174+ wrapMode: Text.Wrap;
175+ maximumLineCount: 2;
176+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
177+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white");
178+ visible: showHeader ;
179+ width: undefined;
180+ text: root.title;
181+ font.weight: cardData && cardData["subtitle"] ? Font.DemiBold : Font.Normal;
182+ horizontalAlignment: root.titleAlignment;
183+ }
184+,Label {
185+ id: subtitleLabel;
186+ objectName: "subtitleLabel";
187+ anchors { right: parent.right;
188+ left: parent.left;
189+rightMargin: units.gu(1);
190+top: titleLabel.bottom;
191+ }
192+ anchors.topMargin: units.dp(2);
193+ elide: Text.ElideRight;
194+ maximumLineCount: 1;
195+ fontSize: "x-small";
196+ font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
197+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item && backgroundLoader.item.luminance > 0.7 ? theme.palette.normal.baseText : "white");
198+ visible: titleLabel.visible && titleLabel.text;
199+ text: cardData && cardData["subtitle"] || "";
200+ font.weight: Font.Light;
201+ }
202+
203+ ]
204+ }
205+
206+ ]
207+ }
208+UbuntuShape {
209+ id: touchdown;
210+ objectName: "touchdown";
211+ anchors { fill: backgroundLoader }
212+ visible: root.artShapeStyle != "shadow" && root.artShapeStyle != "icon" && root.pressed;
213+ radius: "medium";
214+ borderSource: "radius_pressed.sci"
215+ }
216+implicitHeight: row.y + row.height + units.gu(1);
217+}
tests/plugins/Dash/cardcreator/11.tstnew file+3
@@ -0,0 +1,3 @@
1+template: {"card-background":{"elements":["#E9E9E9"],"type":"color"},"card-layout":"vertical","card-size":"medium","category-layout":"grid","collapsed-rows":2 }
2+components: {"art":{"aspect-ratio":1,"field":"art","fallback":"\\"},"background":{"field":"background"},"mascot":{"field":"icon","fallback":"\""},"subtitle":{"field":"author"},"title":{"field":"title"},"attributes":{}}
3+result: 11.res
tests/plugins/Dash/cardcreator/3.res+1
@@ -86,6 +86,7 @@ Item {
8686 asynchronous: root.asynchronous;
8787 width: root.width;
8888 height: width / artShape.aspect;
89+ onStatusChanged: if (status === Image.Error) source = decodeURI("IHAVE%5C%22ESCAPED%5C%22QUOTES%5C%22");
8990 }
9091 }
9192 }
tests/plugins/Dash/cardcreator/3.tst+1−1
@@ -1,3 +1,3 @@
11template: {"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":{}}
2+components: {"art":{"aspect-ratio":0.75,"field":"art","fallback":"IHAVE\\\"ESCAPED\\\"QUOTES\\\""},"subtitle":{"field":"price"},"title":{"field":"title"},"attributes":{}}
33result: 3.res
tests/plugins/Dash/cardcreator/6.res+1−1
@@ -42,7 +42,7 @@ Loader {
4242 objectName: "backgroundImage";
4343 source: {
4444 if (cardData && typeof cardData["background"] === "string") return cardData["background"];
45− else return "http://assets.ubuntu.com/sites/ubuntu/latest/u/img/logos/logo-ubuntu-grey.png";
45+ else return decodeURI("http://assets.ubuntu.com/sites/ubuntu/latest/u/img/logos/logo-ubuntu-grey.png");
4646 }
4747 }
4848 function getColor(index) {
tests/plugins/Dash/cardcreatortest.cpp+1
@@ -64,6 +64,7 @@ private Q_SLOTS:
6464 QVERIFY(lines[0].startsWith(templateString));
6565 QVERIFY(lines[1].startsWith(componentsString));
6666 QVERIFY(lines[2].startsWith(resultString));
67+
6768 const QString templateJSON = lines[0].mid(templateString.length());
6869 const QString componentsJSON = lines[1].mid(componentsString.length());
6970 const QString resultFileName = lines[2].mid(resultString.length());
tests/plugins/Dash/listviewwithpageheadertest.cpp+23
@@ -1954,6 +1954,29 @@ private Q_SLOTS:
19541954 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
19551955 }
19561956
1957+ void testBug1540490()
1958+ {
1959+ lvwph->header()->setImplicitHeight(150);
1960+ verifyItem(0, 150., 150., false);
1961+
1962+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 3), Q_ARG(QVariant, 3));
1963+ model->setProperty(0, "size", 400);
1964+ model->setProperty(1, "size", 600);
1965+ model->setProperty(2, "size", 300);
1966+
1967+ scrollToBottom();
1968+ changeContentY(-200);
1969+
1970+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 1), Q_ARG(QVariant, 2));
1971+ model->setProperty(0, "size", 100);
1972+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 1));
1973+ lvwph->header()->setImplicitHeight(50);
1974+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 200));
1975+
1976+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 1);
1977+ verifyItem(0, 50., 200., false);
1978+ }
1979+
19571980private:
19581981 QQuickView *view;
19591982 ListViewWithPageHeader *lvwph;
tests/plugins/Dash/listviewwithpageheadertest.qml−1
@@ -85,7 +85,6 @@ Rectangle {
8585 pageHeader: Rectangle {
8686 color: "transparent"
8787 width: parent.width
88− height: 50
8988 implicitHeight: 50
9089 Text {
9190 anchors.fill: parent
tests/plugins/Unity/Indicators/CMakeLists.txt−4
@@ -1,7 +1,3 @@
1−pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
2−pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
3−pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
4−
51set(INDICATORS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../plugins/Unity/Indicators)
62set(TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
73
tests/plugins/Unity/Session/sessionbackendtest.cpp+1
@@ -149,6 +149,7 @@ private Q_SLOTS:
149149 }
150150
151151 void testLogin1Capabilities() {
152+ QSKIP("This test talks to real logind backend, it will fail depending on how the machine is set up");
152153 DBusUnitySessionService dbusUnitySessionService;
153154 QDBusInterface login1face("org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", QDBusConnection::systemBus());
154155 QCoreApplication::processEvents(); // to let the services register on DBus
tests/plugins/Utils/CMakeLists.txt+1−1
@@ -7,7 +7,7 @@ include_directories(
77foreach(util_test
88 QLimitProxyModel
99 UnitySortFilterProxyModel
10− HomeKeyWatcher
10+ WindowInputMonitor
1111)
1212 add_executable(${util_test}TestExec ${util_test}Test.cpp ModelTest.cpp)
1313 qt5_use_modules(${util_test}TestExec Test Core Qml)
tests/plugins/Utils/HomeKeyWatcherTest.cpp → tests/plugins/Utils/WindowInputMonitorTest.cpprenamed+14−14
@@ -14,7 +14,7 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−#include "HomeKeyWatcher.h"
17+#include "WindowInputMonitor.h"
1818
1919#include <QTest>
2020#include <QSignalSpy>
@@ -71,7 +71,7 @@ public:
7171
7272using namespace UnityUtil;
7373
74−class HomeKeyWatcherTest : public QObject {
74+class WindowInputMonitorTest : public QObject {
7575 Q_OBJECT
7676private Q_SLOTS:
7777 void init(); // called right before each and every test function is executed
@@ -88,25 +88,25 @@ private:
8888 FakeTimerFactory *m_fakeTimerFactory;
8989};
9090
91−void HomeKeyWatcherTest::init()
91+void WindowInputMonitorTest::init()
9292{
9393 m_fakeTimerFactory = new FakeTimerFactory;
9494}
9595
96−void HomeKeyWatcherTest::cleanup()
96+void WindowInputMonitorTest::cleanup()
9797{
9898 delete m_fakeTimerFactory;
9999 m_fakeTimerFactory = nullptr;
100100}
101101
102102
103−void HomeKeyWatcherTest::passTime(qint64 timeSpanMs)
103+void WindowInputMonitorTest::passTime(qint64 timeSpanMs)
104104{
105105 qint64 finalTime = FakeElapsedTimer::msecsSinceEpoch + timeSpanMs;
106106 m_fakeTimerFactory->updateTime(finalTime);
107107}
108108
109−void HomeKeyWatcherTest::touchTapTouch_data()
109+void WindowInputMonitorTest::touchTapTouch_data()
110110{
111111 QTest::addColumn<int>("silenceBeforeTap");
112112 QTest::addColumn<int>("tapDuration");
@@ -121,14 +121,14 @@ void HomeKeyWatcherTest::touchTapTouch_data()
121121 QTest::newRow("isolated long press") << 1000 << 200 << 1000 << 0;
122122}
123123
124−void HomeKeyWatcherTest::touchTapTouch()
124+void WindowInputMonitorTest::touchTapTouch()
125125{
126126 QFETCH(int, silenceBeforeTap);
127127 QFETCH(int, tapDuration);
128128 QFETCH(int, silenceAfterTap);
129129 QFETCH(int, expectedActivatedCount);
130− HomeKeyWatcher homeKeyWatcher(m_fakeTimerFactory->create(), new FakeElapsedTimer);
131− QSignalSpy activatedSpy(&homeKeyWatcher, &HomeKeyWatcher::activated);
130+ WindowInputMonitor homeKeyWatcher(m_fakeTimerFactory->create(), new FakeElapsedTimer);
131+ QSignalSpy activatedSpy(&homeKeyWatcher, &WindowInputMonitor::homeKeyActivated);
132132 QVERIFY(activatedSpy.isValid());
133133
134134 {
@@ -186,10 +186,10 @@ void HomeKeyWatcherTest::touchTapTouch()
186186 QCOMPARE(activatedSpy.count(), expectedActivatedCount);
187187}
188188
189−void HomeKeyWatcherTest::tapWhileTouching()
189+void WindowInputMonitorTest::tapWhileTouching()
190190{
191− HomeKeyWatcher homeKeyWatcher(m_fakeTimerFactory->create(), new FakeElapsedTimer);
192− QSignalSpy activatedSpy(&homeKeyWatcher, &HomeKeyWatcher::activated);
191+ WindowInputMonitor homeKeyWatcher(m_fakeTimerFactory->create(), new FakeElapsedTimer);
192+ QSignalSpy activatedSpy(&homeKeyWatcher, &WindowInputMonitor::homeKeyActivated);
193193 QVERIFY(activatedSpy.isValid());
194194
195195 {
@@ -318,6 +318,6 @@ AbstractTimer *FakeTimerFactory::create(QObject *parent)
318318 return fakeTimer;
319319}
320320
321−QTEST_GUILESS_MAIN(HomeKeyWatcherTest)
321+QTEST_GUILESS_MAIN(WindowInputMonitorTest)
322322
323−#include "HomeKeyWatcherTest.moc"
323+#include "WindowInputMonitorTest.moc"
tests/qmltests/CMakeLists.txt+2−1
@@ -12,11 +12,12 @@ add_unity8_qmltest(Components DraggingArea)
1212add_unity8_qmltest(Components LazyImage)
1313add_unity8_qmltest(Components Lockscreen)
1414add_unity8_qmltest(Components ModeSwitchWarningDialog)
15−add_unity8_qmlunittest(Components PhysicalKeysMapper)
15+add_unity8_qmltest(Components PhysicalKeysMapper)
1616add_unity8_qmltest(Components Rating)
1717add_unity8_qmltest(Components ResponsiveGridView)
1818add_unity8_qmltest(Components ResponsiveVerticalJournal)
1919add_unity8_qmltest(Components Showable)
20+add_unity8_qmltest(Components VirtualTouchPad)
2021add_unity8_qmltest(Components WallpaperResolver)
2122add_unity8_qmltest(Components ZoomableImage)
2223add_unity8_qmltest(Dash Dash)
tests/qmltests/Components/tst_LazyImage.qml+27−8
@@ -112,6 +112,11 @@ Rectangle {
112112 }
113113 }
114114
115+ SignalSpy {
116+ id: signalSpy
117+ signalName: "runningChanged"
118+ }
119+
115120 UT.UnityTestCase {
116121 name: "LazyImage"
117122 when: windowShown
@@ -123,6 +128,18 @@ Rectangle {
123128 tryCompare(lazy2, "height", units.gu(10));
124129 controls3.blank();
125130 tryCompare(lazy3, "width", units.gu(10));
131+
132+ tryCompare(lazy1, "state", "default");
133+ var transition = findChildIn(lazy1, "transitions", "genericTransition");
134+ tryCompare(transition, "running", false);
135+
136+ tryCompare(lazy2, "state", "default");
137+ transition = findChildIn(lazy2, "transitions", "genericTransition");
138+ tryCompare(transition, "running", false);
139+
140+ tryCompare(lazy3, "state", "default");
141+ transition = findChildIn(lazy3, "transitions", "genericTransition");
142+ tryCompare(transition, "running", false);
126143 }
127144
128145 function test_lazyimage_data() {
@@ -131,32 +148,34 @@ Rectangle {
131148 {tag: "Unbound Wide", image: lazy1, func: controls1.wide, transition: "readyTransition", width: 160, height: 80, imageWidth: 160, imageHeight: 80, initialWidth: units.gu(10), initialHeight: units.gu(10)},
132149 {tag: "Unbound Square", image: lazy1, func: controls1.square, transition: "readyTransition", width: 160, height: 160, imageWidth: 160, imageHeight: 160, initialWidth: units.gu(10), initialHeight: units.gu(10)},
133150 {tag: "Unbound Portrait", image: lazy1, func: controls1.portrait, transition: "readyTransition", width: 80, height: 160, imageWidth: 80, imageHeight: 160, initialWidth: units.gu(10), initialHeight: units.gu(10)},
134− {tag: "Unbound Bad path", image: lazy1, func: controls1.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), initialWidth: units.gu(10), initialHeight: units.gu(10), placeholder: true, error: true},
151+ {tag: "Unbound Bad path", image: lazy1, func: controls1.badpath, transition: "genericTransition", state: "error", width: units.gu(10), height: units.gu(10), imageWidth: units.gu(10), imageHeight: units.gu(10), initialWidth: units.gu(10), initialHeight: units.gu(10), placeholder: true, error: true},
135152 {tag: "Width-bound Blank", image: lazy2, func: controls2.blank, width: units.gu(30), height: units.gu(10), imageWidth: units.gu(30), imageHeight: units.gu(10), initialWidth: units.gu(30), initialHeight: units.gu(10), placeholder: true},
136153 {tag: "Width-bound Wide", image: lazy2, func: controls2.wide, transition: "readyTransition", width: units.gu(30), height: units.gu(15), imageWidth: units.gu(30), imageHeight: units.gu(15), initialWidth: units.gu(30), initialHeight: units.gu(10)},
137154 {tag: "Width-bound Square", image: lazy2, func: controls2.square, transition: "readyTransition", width: units.gu(30), height: units.gu(30), imageWidth: units.gu(30), imageHeight: units.gu(30), initialWidth: units.gu(30), initialHeight: units.gu(10)},
138155 {tag: "Width-bound Portrait", image: lazy2, func: controls2.portrait, transition: "readyTransition", width: units.gu(30), height: units.gu(60), imageWidth: units.gu(30), imageHeight: units.gu(60), initialWidth: units.gu(30), initialHeight: units.gu(10)},
139− {tag: "Width-bound Bad path", image: lazy2, func: controls2.badpath, transition: "genericTransition", width: units.gu(30), height: units.gu(10), imageWidth: units.gu(30), imageHeight: units.gu(10), initialWidth: units.gu(30), initialHeight: units.gu(10), placeholder: true, error: true},
156+ {tag: "Width-bound Bad path", image: lazy2, func: controls2.badpath, transition: "genericTransition", state: "error", width: units.gu(30), height: units.gu(10), imageWidth: units.gu(30), imageHeight: units.gu(10), initialWidth: units.gu(30), initialHeight: units.gu(10), placeholder: true, error: true},
140157 {tag: "Height-bound Blank", image: lazy3, func: controls3.blank, width: units.gu(10), height: units.gu(12), imageWidth: units.gu(10), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12), placeholder: true},
141158 {tag: "Height-bound Wide", image: lazy3, func: controls3.wide, transition: "readyTransition", width: units.gu(24), height: units.gu(12), imageWidth: units.gu(24), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
142159 {tag: "Height-bound Square", image: lazy3, func: controls3.square, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
143160 {tag: "Height-bound Portrait", image: lazy3, func: controls3.portrait, transition: "readyTransition", width: units.gu(6), height: units.gu(12), imageWidth: units.gu(6), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12)},
144− {tag: "Height-bound Bad path", image: lazy3, func: controls3.badpath, transition: "genericTransition", width: units.gu(10), height: units.gu(12), imageWidth: units.gu(10), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12), placeholder: true, error: true},
161+ {tag: "Height-bound Bad path", image: lazy3, func: controls3.badpath, transition: "genericTransition", state: "error", width: units.gu(10), height: units.gu(12), imageWidth: units.gu(10), imageHeight: units.gu(12), initialWidth: units.gu(10), initialHeight: units.gu(12), placeholder: true, error: true},
145162 {tag: "Fit Blank", image: lazy4, func: controls4.blank, width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true},
146163 {tag: "Fit Wide", image: lazy4, func: controls4.wide, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(6), initialWidth: units.gu(12), initialHeight: units.gu(12)},
147164 {tag: "Fit Square", image: lazy4, func: controls4.square, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
148165 {tag: "Fit Portrait", image: lazy4, func: controls4.portrait, transition: "readyTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(6), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12)},
149− {tag: "Fit Bad path", image: lazy4, func: controls4.badpath, transition: "genericTransition", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true, error: true},
166+ {tag: "Fit Bad path", image: lazy4, func: controls4.badpath, transition: "genericTransition", state: "error", width: units.gu(12), height: units.gu(12), imageWidth: units.gu(12), imageHeight: units.gu(12), initialWidth: units.gu(12), initialHeight: units.gu(12), placeholder: true, error: true},
150167 ]
151168 }
152169
153170 function test_lazyimage(data) {
171+ var transition = findChildIn(data.image, "transitions", data.transition);
172+ signalSpy.target = transition;
173+ signalSpy.clear();
174+
154175 data.func();
155176
156177 if (data.transition) {
157− // wait for the transition to complete
158− var transition = findChildIn(data.image, "transitions", data.transition);
159− tryCompare(transition, "running", true);
178+ tryCompare(data.image, "state", data.state ? data.state : "ready");
160179 tryCompare(transition, "running", false);
161180 }
162181
@@ -185,7 +204,7 @@ Rectangle {
185204
186205 // check the error image
187206 var error = findChild(data.image, "errorImage");
188− compare(error.visible, data.error ? true : false);
207+ tryCompare(error, "visible", data.error ? true : false);
189208 }
190209 }
191210}
tests/qmltests/Components/tst_PhysicalKeysMapper.qml+136−62
@@ -18,12 +18,19 @@ import QtQuick 2.4
1818import QtTest 1.0
1919import "../../../qml/Components"
2020import Powerd 0.1
21+import Utils 0.1
2122
22−TestCase {
23− name: "PhysicalKeysMapper"
23+Item {
24+ width: 100
25+ height: 100
2426
2527 property var physicalKeysMapper: loader.item
2628
29+ WindowKeysFilter {
30+ Keys.onPressed: physicalKeysMapper.onKeyPressed(event, currentEventTimestamp);
31+ Keys.onReleased: physicalKeysMapper.onKeyReleased(event, currentEventTimestamp);
32+ }
33+
2734 Loader {
2835 // Using a Loader here to make sure mapper state is coherent
2936 // regardless of unmatched KeyPress and KeyRelease events
@@ -32,6 +39,21 @@ TestCase {
3239 sourceComponent: PhysicalKeysMapper { }
3340 }
3441
42+ Item {
43+ id: inputCatcher
44+ focus: true
45+
46+ property var pressedKeys: []
47+ property var releasedKeys: []
48+
49+ Keys.onPressed: {
50+ inputCatcher.pressedKeys.push(event.key);
51+ }
52+ Keys.onReleased: {
53+ inputCatcher.releasedKeys.push(event.key);
54+ }
55+ }
56+
3557 SignalSpy {
3658 id: powerSpy
3759 target: physicalKeysMapper
@@ -44,65 +66,117 @@ TestCase {
4466 signalName: "screenshotTriggered"
4567 }
4668
47− function init() {
48− Powerd.setStatus(Powerd.On, Powerd.Unknown);
49− loader.active = true;
50− tryCompare(loader.status == Loader.Ready);
51− }
52−
53− function cleanup() {
54− loader.active = false;
55− powerSpy.clear();
56− screenshotSpy.clear();
57− }
58−
59− function test_powerKeyLongPressed_data() {
60− return [
61− { tag: "screenOn", status: Powerd.On },
62− { tag: "screenOff", status: Powerd.Off },
63− ];
64− }
65−
66− function test_powerKeyLongPressed(data) {
67− Powerd.setStatus(data.status, Powerd.Unknown);
68− physicalKeysMapper.powerKeyLongPressTime = 500;
69−
70− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: false }, 100);
71−
72− // After the first key press the screen is always on
73− // and the rest of keypresses are auto repeat
74− Powerd.setStatus(Powerd.On, Powerd.Unknown);
75−
76− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 300);
77− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 400);
78− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 500);
79− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 599);
80−
81− // powerKeyLongPressed should not have been emitted yet.
82− compare(powerSpy.count, 0);
83−
84− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 600);
85−
86− compare(powerSpy.count, 1);
87−
88− // Confirm we only emit once
89− physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 601);
90− compare(powerSpy.count, 1);
91− }
92−
93− function test_screenshotButtons_data() {
94− return [
95− { tag: "UpFirst", first: Qt.Key_VolumeUp, second: Qt.Key_VolumeDown },
96− { tag: "DownFirst", first: Qt.Key_VolumeDown, second: Qt.Key_VolumeUp },
97− ];
98− }
99−
100− function test_screenshotButtons(data) {
101− physicalKeysMapper.onKeyPressed({ key: data.first });
102− physicalKeysMapper.onKeyPressed({ key: data.second });
103− screenshotSpy.wait();
104− physicalKeysMapper.onKeyReleased({ key: data.first });
105− physicalKeysMapper.onKeyReleased({ key: data.second });
106− compare(screenshotSpy.count, 1);
69+ TestCase {
70+ name: "PhysicalKeysMapper"
71+ when: windowShown
72+
73+ function init() {
74+ Powerd.setStatus(Powerd.On, Powerd.Unknown);
75+ loader.active = true;
76+ tryCompare(loader.status == Loader.Ready);
77+ inputCatcher.pressedKeys = [];
78+ inputCatcher.releasedKeys = [];
79+ }
80+
81+ function cleanup() {
82+ loader.active = false;
83+ powerSpy.clear();
84+ screenshotSpy.clear();
85+ }
86+
87+ function test_powerKeyLongPressed_data() {
88+ return [
89+ { tag: "screenOn", status: Powerd.On },
90+ { tag: "screenOff", status: Powerd.Off },
91+ ];
92+ }
93+
94+ function test_powerKeyLongPressed(data) {
95+ Powerd.setStatus(data.status, Powerd.Unknown);
96+ physicalKeysMapper.powerKeyLongPressTime = 500;
97+
98+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: false }, 100);
99+
100+ // After the first key press the screen is always on
101+ // and the rest of keypresses are auto repeat
102+ Powerd.setStatus(Powerd.On, Powerd.Unknown);
103+
104+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 300);
105+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 400);
106+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 500);
107+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 599);
108+
109+ // powerKeyLongPressed should not have been emitted yet.
110+ compare(powerSpy.count, 0);
111+
112+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 600);
113+
114+ compare(powerSpy.count, 1);
115+
116+ // Confirm we only emit once
117+ physicalKeysMapper.onKeyPressed({ key: Qt.Key_PowerDown, isAutoRepeat: true}, 601);
118+ compare(powerSpy.count, 1);
119+ }
120+
121+ function test_screenshotButtons_data() {
122+ return [
123+ { tag: "UpFirst", first: Qt.Key_VolumeUp, second: Qt.Key_VolumeDown },
124+ { tag: "DownFirst", first: Qt.Key_VolumeDown, second: Qt.Key_VolumeUp },
125+ ];
126+ }
127+
128+ function test_screenshotButtons(data) {
129+ physicalKeysMapper.onKeyPressed({ key: data.first });
130+ physicalKeysMapper.onKeyPressed({ key: data.second });
131+ screenshotSpy.wait();
132+ physicalKeysMapper.onKeyReleased({ key: data.first });
133+ physicalKeysMapper.onKeyReleased({ key: data.second });
134+ compare(screenshotSpy.count, 1);
135+ }
136+
137+ function test_altIsDispatchedOnRelease() {
138+ // Press alt, make sure it does *not* end up in inputCatcher (aka, the focused app)
139+ keyPress(Qt.Key_Alt, Qt.NoModifier)
140+ compare(inputCatcher.pressedKeys.length, 0);
141+ // Now release alt. It should cause the previous Alt press to be dispatched along with the release
142+ keyRelease(Qt.Key_Alt, Qt.NoModifier);
143+ compare(inputCatcher.pressedKeys.length, 1);
144+ compare(inputCatcher.pressedKeys[0], Qt.Key_Alt);
145+ compare(inputCatcher.releasedKeys.length, 1);
146+ compare(inputCatcher.releasedKeys[0], Qt.Key_Alt);
147+ }
148+
149+ function test_altIsNotDispatchedOnAltTab() {
150+ // Press alt, make sure it does *not* end up in inputCatcher (aka, the focused app)
151+ inputCatcher.pressedKeys = [];
152+ keyPress(Qt.Key_Alt, Qt.NoModifier)
153+ compare(inputCatcher.pressedKeys.length, 0);
154+ // Now also press tab. As this should trigger the spread, neither of them should end up in the app
155+ keyPress(Qt.Key_Tab, Qt.NoModifier)
156+ compare(inputCatcher.pressedKeys.length, 0);
157+
158+ // Also the release events should not be dispatched to the app
159+ keyRelease(Qt.Key_Tab, Qt.NoModifier);
160+ keyRelease(Qt.Key_Alt, Qt.NoModifier);
161+ compare(inputCatcher.pressedKeys.length, 0);
162+ compare(inputCatcher.releasedKeys.length, 0);
163+ }
164+
165+ function test_altComboIsDispatched() {
166+ inputCatcher.pressedKeys = [];
167+ // Press alt, make sure it does *not* yet end up in inputCatcher (aka, the focused app)
168+ keyPress(Qt.Key_Alt, Qt.NoModifier)
169+ compare(inputCatcher.pressedKeys.length, 0);
170+ // Now press F in order to opening the File menu (Alt+F), now the app should get the full combo
171+ keyPress(Qt.Key_F, Qt.NoModifier)
172+ compare(inputCatcher.pressedKeys.length, 2);
173+ compare(inputCatcher.pressedKeys[0], Qt.Key_Alt);
174+ compare(inputCatcher.pressedKeys[1], Qt.Key_F);
175+
176+ // release them both, both are supposed to end up in the app
177+ keyRelease(Qt.Key_F, Qt.NoModifier);
178+ keyRelease(Qt.Key_Alt, Qt.NoModifier);
179+ compare(inputCatcher.releasedKeys.length, 2);
180+ }
107181 }
108182}
tests/qmltests/Components/tst_ResponsiveGridView.qml−36
@@ -32,12 +32,6 @@ Item {
3232 height: parent.height
3333 anchors.top: parent.top
3434 anchors.right: parent.right
35− ListItem.ValueSelector {
36− id: maxColumnsSelector
37− text: "maximumNumberOfColumns"
38− values: [2,4,8,13,1000]
39− selectedIndex: 1
40− }
4135 ListItem.ValueSelector {
4236 id: minHSpacingSelector
4337 text: "minHorizontalSpacing"
@@ -86,8 +80,6 @@ Item {
8680 minimumHorizontalSpacing:
8781 minHSpacingSelector.values[minHSpacingSelector.selectedIndex]
8882 verticalSpacing: units.gu(2)
89− maximumNumberOfColumns:
90− maxColumnsSelector.values[maxColumnsSelector.selectedIndex]
9183 delegateWidth: units.gu(6)
9284 delegateHeight: units.gu(6)
9385
@@ -123,31 +115,6 @@ Item {
123115 name: "ResponsiveGridView"
124116 when: windowShown
125117
126− function test_maximumNumberOfColumns_data() {
127− var data = new Array()
128−
129− data.push({selectedIndex: 0, maxColumnCount:2, columnCount: 2})
130− data.push({selectedIndex: 1, maxColumnCount:4, columnCount: 4})
131− data.push({selectedIndex: 2, maxColumnCount:8, columnCount: 8})
132− data.push({selectedIndex: 4, maxColumnCount:1000, columnCount: 13})
133−
134− return data
135− }
136−
137− /* Change ResponsiveGridView's maximumNumberOfColumns property and check
138− that the resulting number of columns matches expectations */
139− function test_maximumNumberOfColumns(data) {
140− minHSpacingSelector.selectedIndex = 0
141−
142− // sanity checks
143− compare(maxColumnsSelector.values[data.selectedIndex], data.maxColumnCount)
144− compare(minHSpacingSelector.values[0], 0)
145−
146− maxColumnsSelector.selectedIndex = data.selectedIndex
147− tryCompareFunction(countGridDelegatesOnFirstRow, data.columnCount);
148− compare(grid.columns, data.columnCount)
149− }
150−
151118 function test_minimumHorizontalSpacing_data() {
152119 var data = new Array()
153120
@@ -162,10 +129,7 @@ Item {
162129 /* Change ResponsiveGridView's minimumHorizontalSpacing property and check
163130 that the resulting number of columns matches expectations */
164131 function test_minimumHorizontalSpacing(data) {
165− maxColumnsSelector.selectedIndex = 4
166−
167132 // sanity checks
168− compare(maxColumnsSelector.values[4], 1000)
169133 compare(minHSpacingSelector.values[data.selectedIndex], data.minHSpacing)
170134
171135 minHSpacingSelector.selectedIndex = data.selectedIndex
tests/qmltests/Components/tst_VirtualTouchPad.qmlnew file+143
@@ -0,0 +1,143 @@
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+import QtQuick 2.4
18+import QtTest 1.0
19+import Unity.Test 0.1
20+import UInput 0.1
21+import "../../../qml/Components"
22+
23+
24+Item {
25+ id: root
26+ width: units.gu(70)
27+ height: units.gu(70)
28+
29+ VirtualTouchPad {
30+ id: touchScreenPad
31+ anchors.fill: parent
32+ }
33+
34+ SignalSpy {
35+ id: mouseEventSpy1
36+ target: touchScreenPad.uinput
37+ }
38+ SignalSpy {
39+ id: mouseEventSpy2
40+ target: touchScreenPad.uinput
41+ }
42+
43+ UnityTestCase {
44+ id: testCase
45+ name: "VirtualTouchPad"
46+ when: windowShown
47+
48+ function init() {
49+ mouseEventSpy1.clear();
50+ mouseEventSpy2.clear();
51+ }
52+
53+ function test_click() {
54+ mouseEventSpy1.signalName = "mousePressed"
55+ mouseEventSpy2.signalName = "mouseReleased"
56+
57+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
58+
59+ tap(touchPadArea)
60+ tryCompare(mouseEventSpy1, "count", 1)
61+ tryCompare(mouseEventSpy2, "count", 1)
62+ }
63+
64+ function test_doubleClick() {
65+ mouseEventSpy1.signalName = "mousePressed"
66+ mouseEventSpy2.signalName = "mouseReleased"
67+
68+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
69+
70+ tap(touchPadArea)
71+ tap(touchPadArea)
72+
73+ tryCompare(mouseEventSpy1, "count", 2)
74+ tryCompare(mouseEventSpy2, "count", 2)
75+ }
76+
77+ function test_move() {
78+ mouseEventSpy1.signalName = "mouseMoved"
79+
80+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
81+
82+ var moveDiff = units.gu(2);
83+ var moveSteps = 5;
84+
85+ touchFlick(touchPadArea, units.gu(1), units.gu(1), units.gu(1) + moveDiff, units.gu(1) + moveDiff, true, true, 10, moveSteps)
86+
87+ tryCompare(mouseEventSpy1, "count", moveSteps)
88+ var movedX = 0;
89+ var movedY = 0
90+ for (var i = 0; i < 5; i++) {
91+ movedX += mouseEventSpy1.signalArguments[i][0]
92+ movedY += mouseEventSpy1.signalArguments[i][1]
93+ }
94+ compare(movedX, moveDiff)
95+ compare(movedY, moveDiff)
96+ }
97+
98+ function test_doubleTapAndHoldToDrag() {
99+ mouseEventSpy1.signalName = "mousePressed"
100+ mouseEventSpy2.signalName = "mouseReleased"
101+
102+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
103+
104+ mouseClick(touchPadArea)
105+ mousePress(touchPadArea)
106+ mouseMove(touchPadArea, touchPadArea.width / 4, touchPadArea.height / 4)
107+
108+ tryCompare(mouseEventSpy1, "count", 1)
109+ tryCompare(mouseEventSpy2, "count", 0)
110+ mouseRelease(touchPadArea)
111+ tryCompare(mouseEventSpy2, "count", 1)
112+ }
113+
114+ function test_twoFingerScroll() {
115+ var touchPadArea = findChild(touchScreenPad, "touchPadArea");
116+
117+ mouseEventSpy1.signalName = "mouseScrolled"
118+
119+ var startX = touchPadArea.width / 2;
120+ var startY = touchPadArea.height / 2;
121+
122+ var startX1 = startX - units.gu(1);
123+ var startX2 = startX + units.gu(1);
124+
125+ var event = touchEvent(touchPadArea)
126+ event.press(0, startX1, startY)
127+ event.press(1, startX2, startY);
128+ event.commit()
129+
130+ for (var i = 0; i < 10; i++) {
131+ event.move(0, startX1, startY + units.gu(i))
132+ event.move(1, startX2, startY + units.gu(i));
133+ event.commit();
134+
135+ tryCompare(mouseEventSpy1, "count", i + 1);
136+ }
137+
138+ event.release(0, startX1, startY + units.gu(11))
139+ event.release(1, startX2, startY + units.gu(11));
140+ event.commit();
141+ }
142+ }
143+}
tests/qmltests/Dash/Previews/tst_Preview.qml+5−6
@@ -121,15 +121,14 @@ Rectangle {
121121 var moreLessButton = findChild(widget, "moreLessButton");
122122 mouseClick(moreLessButton);
123123
124− // Make sure the combo is growing
125− tryCompareFunction(function () { return widget.height > 2 * initialWidgetHeight; }, true);
126−
127124 // Wait for the combo to stop growing
128− tryCompareFunction(function () { var currentWidgetHeight = widget.height; wait(200); return currentWidgetHeight === widget.height;}, true);
125+ tryCompare(widget, "height", units.gu(15));
129126
130127 // Make sure the combo bottom is on the viewport
131− var bottomLeft = preview.mapFromItem(widget, 0, widget.height);
132− verify(bottomLeft.y <= preview.height);
128+ tryCompareFunction(function () {
129+ var bottomLeft = preview.mapFromItem(widget, 0, widget.height);
130+ return bottomLeft.y <= preview.height
131+ }, true);
133132 }
134133 }
135134}
tests/qmltests/Dash/tst_Card.qml+4−5
@@ -232,6 +232,7 @@ Rectangle {
232232 function init() {
233233 cardTool.components = Qt.binding(function() { return Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['components']; });
234234 loader.visible = true;
235+ waitForRendering(card);
235236 }
236237
237238 function cleanup() {
@@ -306,8 +307,8 @@ Rectangle {
306307 { tag: "Medium", width: units.gu(18), fill: Image.PreserveAspectCrop, index: 0 },
307308 { tag: "Small", width: units.gu(12), index: 1 },
308309 { tag: "Large", width: units.gu(38), index: 2 },
309− { tag: "Wide", height: units.gu(19), size: "large", index: 3 },
310− { tag: "Tall", height: units.gu(38) / 0.7, size: "large", width: units.gu(38), index: 4 },
310+ { tag: "Wide", height: function() { return units.gu(19) }, size: "large", index: 3 },
311+ { tag: "Tall", height: function() { return units.gu(38) / 0.7 }, size: "large", width: units.gu(38), index: 4 },
311312 { tag: "VerticalWidth", width: function() { return headerRow.width + units.gu(1) }, index: 0 },
312313 { tag: "HorizontalHeight", height: function() { return headerRow.height + units.gu(1) * 2 }, index: 5 },
313314 { tag: "HorizontalWidth", width: function() { return headerRow.x - units.gu(1) }, index: 5 },
@@ -336,9 +337,7 @@ Rectangle {
336337 }
337338
338339 if (data.hasOwnProperty("height")) {
339− if (typeof data.height === "function") {
340− tryCompareFunction(function() { return art.height === data.height() }, true);
341− } else tryCompare(art, "height", data.height);
340+ tryCompareFunction(function() { return art.height.toFixed(2) === data.height().toFixed(2) }, true);
342341 }
343342
344343 if (data.hasOwnProperty("fill")) {
tests/qmltests/Dash/tst_GenericScopeView.qml+30−9
@@ -107,11 +107,12 @@ Item {
107107 {
108108 var categoryListView = findChild(genericScopeView, "categoryListView");
109109 waitForRendering(categoryListView);
110− while (!categoryListView.atYEnd) {
111− mouseFlick(genericScopeView, genericScopeView.width/2, genericScopeView.height - units.gu(8),
112− genericScopeView.width/2, genericScopeView.y)
113− tryCompare(categoryListView, "moving", false);
114− }
110+ tryCompareFunction(function() {
111+ mouseFlick(genericScopeView, genericScopeView.width/2, genericScopeView.height - units.gu(8),
112+ genericScopeView.width/2, genericScopeView.y)
113+ tryCompare(categoryListView, "moving", false);
114+ return categoryListView.atYEnd;
115+ }, true);
115116 }
116117
117118 function test_isActive() {
@@ -238,7 +239,7 @@ Item {
238239
239240 openPreview(4, 0);
240241
241− compare(testCase.subPageLoader.count, 12, "There should only be 12 items in preview.");
242+ compare(testCase.subPageLoader.count, 16, "There should only be 16 items in preview.");
242243
243244 closePreview();
244245 }
@@ -413,7 +414,7 @@ Item {
413414 var previewListViewList = findChild(subPageLoader.item, "listView");
414415
415416 // flick to the next previews
416− tryCompare(testCase.subPageLoader, "count", 15);
417+ tryCompare(testCase.subPageLoader, "count", 25);
417418 for (var i = 1; i < testCase.subPageLoader.count; ++i) {
418419 mouseFlick(testCase.subPageLoader.item, testCase.subPageLoader.width - units.gu(1),
419420 testCase.subPageLoader.height / 2,
@@ -487,7 +488,7 @@ Item {
487488 mockScope.setName("Mock Scope");
488489 mockScope.categories.setCount(2);
489490 mockScope.categories.resultModel(0).setResultCount(50);
490− mockScope.categories.resultModel(1).setResultCount(15);
491+ mockScope.categories.resultModel(1).setResultCount(25);
491492 mockScope.categories.setLayout(0, "grid");
492493 mockScope.categories.setLayout(1, "grid");
493494 mockScope.categories.setHeaderLink(0, "");
@@ -529,7 +530,7 @@ Item {
529530 mockScope.setId("mockScope");
530531 mockScope.setName("Mock Scope");
531532 mockScope.categories.setCount(2);
532− mockScope.categories.resultModel(0).setResultCount(15);
533+ mockScope.categories.resultModel(0).setResultCount(25);
533534 mockScope.categories.resultModel(1).setResultCount(50);
534535 mockScope.categories.setLayout(0, "grid");
535536 mockScope.categories.setLayout(1, "grid");
@@ -666,6 +667,26 @@ Item {
666667 var shape = findChildsByType(artShapeLoader, "UCUbuntuShape");
667668 compare(shape.borderSource, undefined);
668669 }
670+
671+ function test_clickScopeSizing() {
672+ genericScopeView.scope = scopes.getScopeFromAll("clickscope");
673+ waitForRendering(genericScopeView);
674+
675+ var categoryListView = findChild(genericScopeView, "categoryListView");
676+ waitForRendering(categoryListView);
677+
678+ var categorypredefined = findChild(categoryListView, "dashCategorypredefined");
679+ waitForRendering(categorypredefined);
680+
681+ var cardTool = findChild(categorypredefined, "cardTool");
682+
683+ compare(cardTool.cardWidth, units.gu(11));
684+ shell.width = units.gu(46);
685+ waitForRendering(genericScopeView);
686+ compare(cardTool.cardWidth, units.gu(10));
687+
688+ shell.width = units.gu(120)
689+ }
669690 }
670691 }
671692}
tests/qmltests/Launcher/tst_Launcher.qml+26
@@ -159,6 +159,20 @@ Item {
159159 target: LauncherModel
160160 }
161161
162+ Item {
163+ id: fakeDismissTimer
164+ property bool running: false
165+ signal triggered
166+
167+ function stop() {
168+ running = false;
169+ }
170+
171+ function restart() {
172+ running = true;
173+ }
174+ }
175+
162176 UnityTestCase {
163177 id: testCase
164178 name: "Launcher"
@@ -177,6 +191,11 @@ Item {
177191 launcherLoader.active = true;
178192 }
179193 function init() {
194+ var panel = findChild(launcher, "launcherPanel");
195+ verify(!!panel);
196+
197+ panel.dismissTimer = fakeDismissTimer;
198+
180199 // Make sure we don't start the test with the mouse hovering the launcher
181200 mouseMove(root, root.width, root.height / 2);
182201
@@ -195,6 +214,8 @@ Item {
195214
196215 // Now do check that snapping is in fact enabled
197216 compare(listView.snapMode, ListView.SnapToItem, "Snapping is not enabled");
217+
218+ removeTimeConstraintsFromDirectionalDragAreas(root);
198219 }
199220
200221 function dragLauncherIntoView() {
@@ -895,6 +916,11 @@ Item {
895916 // Now move the mouse away and make sure it hides in less than a second
896917 mouseMove(root, root.width, root.height / 2)
897918
919+ // trigger the hide timer
920+ compare(fakeDismissTimer.running, true);
921+ fakeDismissTimer.triggered();
922+ tryCompare(panel, "x", 0);
923+
898924 tryCompare(launcher, "state", "", 1000, "Launcher didn't hide after moving mouse away from it");
899925 waitUntilLauncherDisappears();
900926 }
tests/qmltests/tst_DisabledScreenNotice.qml+10−2
@@ -19,13 +19,13 @@ import QtTest 1.0
1919import Unity.Test 0.1
2020import "../../qml"
2121
22−
2322Item {
2423 id: root
25− width: units.gu(70)
24+ width: units.gu(40)
2625 height: units.gu(70)
2726
2827 DisabledScreenNotice {
28+ id: touchScreenPad
2929 anchors.fill: parent
3030 }
3131
@@ -33,5 +33,13 @@ Item {
3333 id: testCase
3434 name: "DisabledScreenNotice"
3535 when: windowShown
36+
37+ function test_mouseAreaHidesOnFirstTap() {
38+ var noticeArea = findChild(touchScreenPad, "infoNoticeArea")
39+ print("noticeArea", noticeArea.visible)
40+ compare(noticeArea.visible, true)
41+ tap(root)
42+ tryCompare(noticeArea, "visible", false)
43+ }
3644 }
3745}
tests/qmltests/tst_OrientedShell.qml+106−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
@@ -292,6 +292,9 @@ Rectangle {
292292 activeFocusOnPress: false
293293 text: "Usage Mode"
294294 model: ["Staged", "Windowed", "Automatic"]
295+ function selectStaged() {selectedIndex = 0;}
296+ function selectWindowed() {selectedIndex = 1;}
297+ function selectAutomatic() {selectedIndex = 2;}
295298 }
296299 MouseTouchEmulationCheckbox {
297300 checked: true
@@ -393,7 +396,7 @@ Rectangle {
393396 activeFocusOnPress: false
394397 property string prevDevName: "mako"
395398 onClicked: {
396− usageModeSelector.selectedIndex = 2; // "Automatic"
399+ usageModeSelector.selectAutomatic();
397400
398401 if (applicationArguments.deviceName === "desktop") {
399402 applicationArguments.deviceName = prevDevName;
@@ -457,6 +460,8 @@ Rectangle {
457460 signalSpy.signalName = "";
458461
459462 LightDM.Greeter.authenticate(""); // reset greeter
463+
464+ usageModeSelector.selectStaged();
460465 }
461466
462467 function cleanup() {
@@ -996,37 +1001,58 @@ Rectangle {
9961001 tryCompare(shell, "transformRotationAngle", 0);
9971002 }
9981003
999− function test_attachRemoveInputDevices() {
1000− usageModeSelector.selectedIndex = 2;
1004+ function test_attachRemoveInputDevices_data() {
1005+ return [
1006+ { tag: "small screen, no devices", screenWidth: units.gu(50), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1007+ { tag: "medium screen, no devices", screenWidth: units.gu(100), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1008+ { tag: "big screen, no devices", screenWidth: units.gu(200), mouse: false, kbd: false, expectedMode: "phone", oskExpected: true },
1009+ { tag: "small screen, mouse", screenWidth: units.gu(50), mouse: true, kbd: false, expectedMode: "phone", oskExpected: true },
1010+ { tag: "medium screen, mouse", screenWidth: units.gu(100), mouse: true, kbd: false, expectedMode: "desktop", oskExpected: true },
1011+ { tag: "big screen, mouse", screenWidth: units.gu(200), mouse: true, kbd: false, expectedMode: "desktop", oskExpected: true },
1012+ { tag: "small screen, kbd", screenWidth: units.gu(50), mouse: false, kbd: true, expectedMode: "phone", oskExpected: false },
1013+ { tag: "medium screen, kbd", screenWidth: units.gu(100), mouse: false, kbd: true, expectedMode: "phone", oskExpected: false },
1014+ { tag: "big screen, kbd", screenWidth: units.gu(200), mouse: false, kbd: true, expectedMode: "desktop", oskExpected: false },
1015+ { tag: "small screen, mouse & kbd", screenWidth: units.gu(50), mouse: true, kbd: true, expectedMode: "phone", oskExpected: false },
1016+ { tag: "medium screen, mouse & kbd", screenWidth: units.gu(100), mouse: true, kbd: true, expectedMode: "desktop", oskExpected: false },
1017+ { tag: "big screen, mouse & kbd", screenWidth: units.gu(200), mouse: true, kbd: true, expectedMode: "desktop", oskExpected: false },
1018+ ]
1019+ }
1020+
1021+ function test_attachRemoveInputDevices(data) {
1022+ usageModeSelector.selectAutomatic();
10011023 tryCompare(mockUnity8Settings, "usageMode", "Automatic")
10021024
10031025 loadShell("mako")
10041026 var shell = findChild(orientedShell, "shell");
1027+ var inputMethod = findChild(shell, "inputMethod");
10051028
1006− tryCompare(shell, "usageScenario", "phone");
1007− tryCompare(mockOskSettings, "stayHidden", false);
1029+ var oldWidth = orientedShellLoader.width;
1030+ orientedShellLoader.width = data.screenWidth;
10081031
1009− MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
10101032 tryCompare(shell, "usageScenario", "phone");
1011− tryCompare(mockOskSettings, "stayHidden", true);
1012−
1013− MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1014− tryCompare(shell, "usageScenario", "desktop");
1015− tryCompare(mockOskSettings, "stayHidden", true);
1033+ tryCompare(inputMethod, "enabled", true);
1034+ tryCompare(mockOskSettings, "disableHeight", false);
10161035
1017− MockInputDeviceBackend.removeDevice("/kbd0");
1018− tryCompare(shell, "usageScenario", "desktop");
1019− tryCompare(mockOskSettings, "stayHidden", false);
1036+ if (data.kbd) {
1037+ MockInputDeviceBackend.addMockDevice("/kbd0", InputInfo.Keyboard);
1038+ }
1039+ if (data.mouse) {
1040+ MockInputDeviceBackend.addMockDevice("/mouse0", InputInfo.Mouse);
1041+ }
10201042
1021− MockInputDeviceBackend.removeDevice("/mouse0");
1022− tryCompare(shell, "usageScenario", "phone");
1023− tryCompare(mockOskSettings, "stayHidden", false);
1043+ tryCompare(shell, "usageScenario", data.expectedMode);
1044+ tryCompare(inputMethod, "enabled", data.oskExpected);
1045+ tryCompare(mockOskSettings, "disableHeight", data.expectedMode == "desktop" || data.kbd);
10241046
1025− MockInputDeviceBackend.addMockDevice("/touchpad0", InputInfo.TouchPad);
1026− tryCompare(shell, "usageScenario", "desktop");
1047+ if (data.kbd) {
1048+ MockInputDeviceBackend.removeDevice("/kbd0");
1049+ }
1050+ if (data.mouse) {
1051+ MockInputDeviceBackend.removeDevice("/mouse0");
1052+ }
10271053
1028− MockInputDeviceBackend.removeDevice("/touchpad0");
1029− tryCompare(shell, "usageScenario", "phone");
1054+ // Restore width
1055+ orientedShellLoader.width = oldWidth;
10301056 }
10311057
10321058 /*
@@ -1140,6 +1166,61 @@ Rectangle {
11401166 tryCompare(shell, "transformRotationAngle" , 0);
11411167 }
11421168
1169+ /*
1170+ Regression test for https://launchpad.net/bugs/1515977
1171+
1172+ Preconditions:
1173+ UI in Desktop mode and landscape
1174+
1175+ Steps:
1176+ - Launch a portrait-only application
1177+
1178+ Expected outcome:
1179+ - Shell stays in landscape
1180+
1181+ Buggy outcome:
1182+ - Shell would rotate to portrait as the newly-focused app doesn't support landscape
1183+ */
1184+ function test_portraitOnlyAppInLandscapeDesktop_data() {
1185+ return [
1186+ {tag: "mako", deviceName: "mako"},
1187+ {tag: "manta", deviceName: "manta"},
1188+ {tag: "flo", deviceName: "flo"}
1189+ ];
1190+ }
1191+ function test_portraitOnlyAppInLandscapeDesktop(data) {
1192+ loadShell(data.deviceName);
1193+
1194+ ////
1195+ // setup preconditions (put shell in Desktop mode and landscape)
1196+
1197+ usageModeSelector.selectWindowed();
1198+
1199+ orientedShell.physicalOrientation = orientedShell.orientations.landscape;
1200+ waitUntilShellIsInOrientation(orientedShell.orientations.landscape);
1201+ waitForRotationAnimationsToFinish();
1202+
1203+ ////
1204+ // Launch a portrait-only application
1205+
1206+ var dialerApp = ApplicationManager.startApplication("dialer-app");
1207+ verify(dialerApp);
1208+
1209+ // ensure the mock dialer-app is as we expect
1210+ compare(dialerApp.rotatesWindowContents, false);
1211+ compare(dialerApp.supportedOrientations, Qt.PortraitOrientation | Qt.InvertedPortraitOrientation);
1212+
1213+ waitUntilAppSurfaceShowsUp("dialer-app");
1214+ waitUntilAppWindowCanRotate("dialer-app");
1215+ verify(isAppSurfaceFocused("dialer-app"));
1216+
1217+ ////
1218+ // check outcome (shell should stay in landscape)
1219+
1220+ waitForRotationAnimationsToFinish();
1221+ compare(shell.orientation, orientedShell.orientations.landscape);
1222+ }
1223+
11431224 // angle - rotation angle in degrees clockwise, relative to the primary orientation.
11441225 function rotateTo(angle) {
11451226 switch (angle) {
@@ -1158,7 +1239,10 @@ Rectangle {
11581239 default:
11591240 verify(false);
11601241 }
1242+ waitForRotationAnimationsToFinish();
1243+ }
11611244
1245+ function waitForRotationAnimationsToFinish() {
11621246 var rotationStates = findInvisibleChild(orientedShell, "rotationStates");
11631247 verify(rotationStates.d);
11641248 verify(rotationStates.d.stateUpdateTimer);
tests/qmltests/tst_Shell.qml+21−5
@@ -296,6 +296,20 @@ Rectangle {
296296 phoneNumber: "+447812221111"
297297 }
298298
299+ Item {
300+ id: fakeDismissTimer
301+ property bool running: false
302+ signal triggered
303+
304+ function stop() {
305+ running = false;
306+ }
307+
308+ function restart() {
309+ running = true;
310+ }
311+ }
312+
299313 UnityTestCase {
300314 id: testCase
301315 name: "Shell"
@@ -333,6 +347,11 @@ Rectangle {
333347 var launcher = findChild(shell, "launcher");
334348 launcherShowDashHomeSpy.target = launcher;
335349
350+ var panel = findChild(launcher, "launcherPanel");
351+ verify(!!panel);
352+
353+ panel.dismissTimer = fakeDismissTimer;
354+
336355 waitForGreeterToStabilize();
337356 }
338357
@@ -627,7 +646,6 @@ Rectangle {
627646 // again before interacting with it otherwise any
628647 // DirectionalDragAreas in there won't be easily fooled by
629648 // fake swipes.
630− removeTimeConstraintsFromDirectionalDragAreas(greeter);
631649 swipeAwayGreeter();
632650
633651 compare(mainApp.requestedState, ApplicationInfoInterface.RequestedRunning);
@@ -637,6 +655,7 @@ Rectangle {
637655 function swipeAwayGreeter() {
638656 var greeter = findChild(shell, "greeter");
639657 tryCompare(greeter, "fullyShown", true);
658+ removeTimeConstraintsFromDirectionalDragAreas(greeter);
640659
641660 var touchX = shell.width - (shell.edgeSize / 2);
642661 var touchY = shell.height / 2;
@@ -1235,10 +1254,6 @@ Rectangle {
12351254
12361255 var launcher = findChild(shell, "launcher");
12371256
1238− // ensure the launcher dimissal timer never gets triggered during the test run
1239− var dismissTimer = findInvisibleChild(launcher, "dismissTimer");
1240− dismissTimer.interval = 60 * 60 * 1000;
1241−
12421257 dragLauncherIntoView();
12431258
12441259 // Emulate a tap with a finger, where the touch position drifts during the tap.
@@ -1726,6 +1741,7 @@ Rectangle {
17261741
17271742 revealLauncherByEdgePushWithMouse();
17281743 tryCompare(launcher, "x", 0);
1744+ mouseMove(bfb, bfb.width / 2, bfb.height / 2)
17291745 waitForRendering(shell)
17301746
17311747 mouseClick(bfb, bfb.width / 2, bfb.height / 2)
tests/qmltests/tst_ShellWithPin.qml+19−5
@@ -128,6 +128,20 @@ Item {
128128 phoneNumber: "+447812221111"
129129 }
130130
131+ Item {
132+ id: fakeDismissTimer
133+ property bool running: false
134+ signal triggered
135+
136+ function stop() {
137+ running = false;
138+ }
139+
140+ function restart() {
141+ running = true;
142+ }
143+ }
144+
131145 UT.UnityTestCase {
132146 id: testCase
133147 name: "ShellWithPin"
@@ -143,6 +157,11 @@ Item {
143157 waitForLockscreen()
144158 greeter.failedLoginsDelayAttempts = -1;
145159 greeter.maxFailedLogins = -1;
160+
161+ var launcher = findChild(shell, "launcher");
162+ var panel = findChild(launcher, "launcherPanel");
163+ verify(!!panel);
164+ panel.dismissTimer = fakeDismissTimer;
146165 }
147166
148167 function cleanup() {
@@ -543,11 +562,6 @@ Item {
543562 tryCompare(coverPage, "showProgress", 1);
544563
545564 var launcher = testCase.findChild(shell, "launcher")
546− {
547− var dismissTimer = testCase.findInvisibleChild(launcher, "dismissTimer");
548− // effectively disable the dismiss timer
549− dismissTimer.interval = 24 * 60 * 60 * 1000 // 24 hours
550− }
551565 var launcherPanel = testCase.findChild(launcher, "launcherPanel");
552566
553567 var toX = shell.width * 0.45;