on xenial help sign in
Merge trunk
commit69f16422dde638de689b8004a2d306b14c6a14ea authorJosh Arenson <joshua.arenson@canonical.com> dateWed 29 Mar 2017, 09:27 (10 years ago) parent28da87546bca5f
169 files changed+3150−1297
CMakeLists.txt+2−2 cmake/modules/QmlTest.cmake+1−1 debian/changelog+49 debian/control+6−6 plugins/Cursor/CursorImageProvider.cpp+2 plugins/Greeter/Unity/Launcher/quicklistmodel.cpp+2 plugins/Unity/Launcher/CMakeLists.txt+2 plugins/Unity/Launcher/launcheritem.cpp+30−6 plugins/Unity/Launcher/launcheritem.h+3−2 plugins/Unity/Launcher/launchermodel.cpp+47−14 plugins/Unity/Launcher/launchermodel.h+3−1 plugins/Unity/Launcher/quicklistentry.cpp+11 plugins/Unity/Launcher/quicklistentry.h+4 plugins/Unity/Launcher/quicklistmodel.cpp+9 plugins/Unity/Launcher/quicklistmodel.h+1 plugins/Unity/Session/dbusunitysessionservice.cpp+75−4 plugins/Unity/Session/dbusunitysessionservice.h+18−4 plugins/Utils/CMakeLists.txt+1 plugins/Utils/plugin.cpp+2 plugins/Utils/quicklistproxymodel.cpp+72 plugins/Utils/quicklistproxymodel.h+52 plugins/WindowManager/CMakeLists.txt+2 plugins/WindowManager/TopLevelWindowModel.cpp+64−20 plugins/WindowManager/TopLevelWindowModel.h+6−2 plugins/WindowManager/Window.cpp+32−1 plugins/WindowManager/Window.h+18−2 plugins/WindowManager/WindowManagerGlobal.h+23 po/aa.po+11−11 po/am.po+11−11 po/ar.po+11−11 po/ast.po+11−11 po/az.po+11−11 po/be.po+11−11 po/bg.po+11−11 po/bn.po+11−11 po/br.po+11−11 po/bs.po+11−11 po/ca.po+31−30 po/ca@valencia.po+11−11 po/ce.po+11−11 po/ckb.po+11−11 po/co.po+11−11 po/cs.po+11−11 po/cy.po+11−11 po/da.po+11−11 po/de.po+11−11 po/el.po+11−11 po/en_AU.po+11−11 po/en_GB.po+13−13 po/eo.po+11−11 po/es.po+15−15 po/et.po+11−11 po/eu.po+11−11 po/fa.po+11−11 po/fi.po+11−11 po/fo.po+11−11 po/fr.po+13−13 po/ga.po+11−11 po/gd.po+11−11 po/gl.po+11−11 po/gv.po+11−11 po/he.po+11−11 po/hi.po+11−11 po/hr.po+25−25 po/hu.po+11−11 po/hy.po+11−11 po/ia.po+11−11 po/id.po+11−11 po/is.po+11−11 po/it.po+11−11 po/ja.po+11−11 po/km.po+11−11 po/kn.po+11−11 po/ko.po+11−11 po/ku.po+11−11 po/ky.po+11−11 po/lo.po+11−11 po/lt.po+11−11 po/lv.po+11−11 po/ml.po+11−11 po/mr.po+11−11 po/ms.po+11−11 po/my.po+11−11 po/nb.po+11−11 po/ne.po+11−11 po/nl.po+11−11 po/nn.po+11−11 po/oc.po+11−11 po/or.po+11−11 po/pa.po+11−11 po/pl.po+11−11 po/pt.po+11−11 po/pt_BR.po+11−11 po/ro.po+11−11 po/ru.po+11−11 po/shn.po+11−11 po/si.po+11−11 po/sk.po+11−11 po/sl.po+11−11 po/sq.po+11−11 po/sr.po+11−11 po/sv.po+11−11 po/sw.po+11−11 po/ta.po+11−11 po/te.po+11−11 po/th.po+11−11 po/tr.po+11−11 po/ug.po+11−11 po/uk.po+11−11 po/unity8.pot+9−9 po/ur.po+11−11 po/uz.po+11−11 po/vi.po+11−11 po/wo.po+11−11 po/xh.po+11−11 po/zh_CN.po+11−11 po/zh_HK.po+11−11 po/zh_TW.po+11−11 qml/ApplicationMenus/MenuBar.qml+10−6 qml/ApplicationMenus/MenuPopup.qml+14−6 qml/Components/Dialogs.qml+5−5 qml/Launcher/Drawer.qml+5−1 qml/Launcher/Launcher.qml+18−10 qml/Launcher/LauncherPanel.qml+8−1 qml/Panel/Indicators/client/IndicatorRepresentation.qml+18−5 qml/Panel/MenuContent.qml+2−2 qml/Panel/Panel.qml+42−4 qml/Panel/PanelBar.qml+17−2 qml/Panel/PanelItemRow.qml+35−29 qml/Panel/PanelMenu.qml+37−25 qml/Panel/PanelMenuPage.qml+2−1 qml/Shell.qml+13−2 qml/Stage/ChildWindowTree.qml−4 qml/Stage/DecoratedWindow.qml+5−1 qml/Stage/MoveHandler.qml−5 qml/Stage/Spread/Spread.qml+11 qml/Stage/Stage.qml+25−2 src/CMakeLists.txt+3−1 src/ShellApplication.cpp+5 tests/mocks/QMenuModel/unitymenumodel.cpp+28−4 tests/mocks/QMenuModel/unitymenumodel.h+9 tests/mocks/Unity/Application/MirSurface.cpp+4 tests/mocks/Unity/Application/MirSurface.h+4 tests/mocks/Unity/Application/MirSurfaceListModel.cpp+7−7 tests/mocks/Unity/Application/MirSurfaceListModel.h+7−9 tests/mocks/Unity/Launcher/MockLauncherModel.h+1−1 tests/mocks/Unity/Launcher/MockQuickListModel.cpp+3−1 tests/mocks/Unity/Launcher/MockQuickListModel.h+2 tests/mocks/Utils/CMakeLists.txt+2 tests/mocks/Utils/plugin.cpp+2 tests/plugins/CMakeLists.txt+1 tests/plugins/Unity/Launcher/CMakeLists.txt+3 tests/plugins/Unity/Launcher/launchermodeltest.cpp+85−7 tests/plugins/Unity/Session/CMakeLists.txt+13−1 tests/plugins/Unity/Session/LogindServer.cpp+10 tests/plugins/Unity/Session/LogindServer.h+5 tests/plugins/Unity/Session/interfaces.xml+12 tests/plugins/Unity/Session/preload.c+43 tests/plugins/Unity/Session/sessionbackendtest.cpp+130−11 tests/plugins/WindowManager/CMakeLists.txt+34 tests/plugins/WindowManager/UnityApplicationMocks.h+203 tests/plugins/WindowManager/tst_TopLevelWindowModel.cpp+130 tests/qmltests/ApplicationMenus/tst_MenuBar.qml+101 tests/qmltests/ApplicationMenus/tst_MenuPopup.qml+51−23 tests/qmltests/Launcher/tst_Drawer.qml+39 tests/qmltests/Launcher/tst_Launcher.qml+42 tests/qmltests/Panel/tst_Panel.qml+66−5 tests/qmltests/Stage/tst_TabletStage.qml+33−1 tests/qmltests/tst_Shell.qml+227−10
CMakeLists.txt+2−2
@@ -70,11 +70,11 @@ find_package(Qt5DBus 5.6 REQUIRED)
7070find_package(Qt5Concurrent 5.6 REQUIRED)
7171find_package(Qt5Sql 5.6 REQUIRED)
7272
73−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=26)
73+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=27)
7474pkg_check_modules(GEONAMES REQUIRED geonames>=0.2)
7575pkg_check_modules(GIO REQUIRED gio-2.0>=2.32)
7676pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32)
77−pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=11)
77+pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=12)
7878pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
7979pkg_check_modules(GD3 REQUIRED gnome-desktop-3.0)
8080pkg_check_modules(UAL REQUIRED ubuntu-app-launch-3)
cmake/modules/QmlTest.cmake+1−1
@@ -201,7 +201,7 @@ function(add_executable_test COMPONENT_NAME TARGET)
201201 add_qmltest_target(xvfbtest${COMPONENT_NAME} ${TARGET}
202202 COMMAND $<TARGET_FILE:xvfb-run> --server-args "-screen 0 1024x768x24" --auto-servernum ${qmltest_command}
203203 ${depends}
204− ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} LD_PRELOAD=/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/mesa/libGL.so.1
204+ ENVIRONMENT QML2_IMPORT_PATH=${imports} LD_PRELOAD=/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/mesa/libGL.so.1 ${QMLTEST_ENVIRONMENT}
205205 TARGETS ${xvfb_targets}
206206 )
207207 endif()
debian/changelog+49
@@ -1,3 +1,52 @@
1+unity8 (8.15+17.04.20170321-0ubuntu1) zesty; urgency=medium
2+
3+ [ Albert Astals Cid ]
4+ * Signal aboutToShow (LP: #1664578)
5+ * Support Panel top level items to be disabled (LP: #1670694)
6+ * Improve Launcher ←→ touch menu interaction (LP: #1667620, #1671069)
7+ * Fix real world submenus (e.g. kate) not getting their first item
8+ selected on open (LP: #1666859)
9+
10+ [ Daniel d'Andrada ]
11+ * Really disable the window decoration when in staged mode (LP:
12+ #1670361)
13+ * Don't let clients resize their surfaces while in staged
14+ (phone/tablet) mode (LP: #1670390)
15+ * TopLevelWindowModel: don't put hidden windows in the model (LP:
16+ #1665286)
17+
18+ [ Lukáš Tinkl ]
19+ * Reset always-show-osk gsetting on startup to default value (false
20+ atm)
21+ * Fix the restored-to position with Miral due to the state changes
22+ being async (LP: #1669819)
23+ * Add a cursor name fallback mapping "grabbing" -> "closedhand" for
24+ Breeze
25+ * Fix unsnapping a maximized window from the panel (LP: #1671721)
26+ * Disable altDrag feature outside windowed mode
27+
28+ [ Michael Terry ]
29+ * Don't lock the screen for guest users or users in the nopasswdlogin
30+ group. (LP: #1644237)
31+ * Support GNOME-style logout DBus API (making the Logout, Reboot, and
32+ Shutdown launcher commands work) (LP: #1673229)
33+
34+ [ Michael Zanetti ]
35+ * Add support for closing apps from the spread with "Q" (LP: #1670327)
36+ * hide "private" launcher quicklist entries when the greeter is locked
37+ (LP: #1667649)
38+ * add surface titles to launcher's quicklist (LP: #1661668)
39+ * properly reset the drawer state when cancelling a horizontal drag
40+ (LP: #1669536)
41+ * fix the focus moving correctly between launcher and drawer (LP:
42+ #1669880)
43+ * unfocus the drawer's textfield when it is moved (LP: #1669839)
44+
45+ [ Pete Woods ]
46+ * Fix up indicators-client after refactoring (LP: #1672797)
47+
48+ -- Michał Sawicz <michal.sawicz@canonical.com> Tue, 21 Mar 2017 10:58:13 +0000
49+
150unity8 (8.15+17.04.20170308-0ubuntu1) zesty; urgency=medium
251
352 [ Albert Astals Cid ]
debian/control+6−6
@@ -28,7 +28,7 @@ Build-Depends: cmake,
2828 liblightdm-qt5-3-dev,
2929 libpam0g-dev,
3030 libpulse-dev,
31− libqmenumodel-dev (>= 0.2.11),
31+ libqmenumodel-dev (>= 0.2.12),
3232 libqt5svg5-dev,
3333 libqt5xmlpatterns5-dev,
3434 libsystemsettings-dev,
@@ -38,7 +38,7 @@ Build-Depends: cmake,
3838 libubuntugestures5-private-dev (>= 1.3.2030),
3939 libudev-dev,
4040 libudm-common-dev,
41− libunity-api-dev (>= 8.2),
41+ libunity-api-dev (>= 8.6),
4242 libusermetricsoutput1-dev,
4343# Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop
4444 libx11-dev[!arm64 !armhf],
@@ -132,7 +132,7 @@ Depends: dmz-cursor-theme,
132132 qtdeclarative5-qtmir-plugin (>= 0.4.8),
133133 qtdeclarative5-ubuntu-telephony0.1,
134134 ubuntu-system-settings (>= 0.4),
135− unity-launcher-impl-10,
135+ unity-launcher-impl-12,
136136 unity8-common (= ${source:Version}),
137137 unity8-private (= ${binary:Version}),
138138 unity8-private | unity-launcher-impl,
@@ -162,7 +162,7 @@ Depends: qml-module-qtquick-layouts,
162162 qttranslations5-l10n,
163163 ubuntu-thumbnailer-impl-0,
164164 ubuntu-wallpapers,
165− unity-application-impl-26,
165+ unity-application-impl-27,
166166 unity-notifications-impl-3,
167167 unity-plugin-scopes | unity-scopes-impl,
168168 unity-scopes-impl-12,
@@ -212,7 +212,7 @@ Depends: dbus-test-runner,
212212 ${misc:Depends},
213213 ${shlibs:Depends},
214214Provides: unity-application-impl,
215− unity-application-impl-26,
215+ unity-application-impl-27,
216216 unity8-fake-env,
217217Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1),
218218 unity8-fake-env,
@@ -235,7 +235,7 @@ Depends: accountsservice-ubuntu-schemas (>= 0.0.7),
235235 ${misc:Depends},
236236 ${shlibs:Depends},
237237Provides: unity-launcher-impl,
238− unity-launcher-impl-10,
238+ unity-launcher-impl-12,
239239Description: Unity 8 private libs
240240 The Unity 8 shell is the primary user interface for Ubuntu devices.
241241 .
plugins/Cursor/CursorImageProvider.cpp+2
@@ -174,6 +174,8 @@ CursorImageProvider::CursorImageProvider()
174174 m_fallbackNames[QStringLiteral("forbidden")].append(QStringLiteral("not-allowed"));
175175 m_fallbackNames[QStringLiteral("forbidden")].append(QStringLiteral("circle"));
176176
177+ m_fallbackNames[QStringLiteral("grabbing")].append(QStringLiteral("closedhand")); // Breeze
178+
177179 m_fallbackNames[QStringLiteral("hand")].append(QStringLiteral("pointing_hand"));
178180 m_fallbackNames[QStringLiteral("hand")].append(QStringLiteral("pointer"));
179181
plugins/Greeter/Unity/Launcher/quicklistmodel.cpp+2
@@ -65,6 +65,8 @@ QVariant QuickListModel::data(const QModelIndex &index, int role) const
6565 return m_list.at(index.row()).icon();
6666 case RoleClickable:
6767 return m_list.at(index.row()).clickable();
68+ case RoleIsPrivate:
69+ return false; // The greeter plugin would just not add any private entries
6870 }
6971 return QVariant();
7072}
plugins/Unity/Launcher/CMakeLists.txt+2
@@ -30,6 +30,8 @@ set(QMLLAUNCHERPLUGIN_SRC
3030 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
3131 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
3232 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h
33+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
34+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
3335 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
3436 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
3537 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
plugins/Unity/Launcher/launcheritem.cpp+30−6
@@ -35,7 +35,6 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
3535 m_countVisible(false),
3636 m_focused(false),
3737 m_alerting(false),
38− m_surfaceCount(0),
3938 m_quickList(new QuickListModel(this))
4039{
4140 Q_ASSERT(parent != nullptr);
@@ -48,11 +47,13 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
4847 QuickListEntry pinningAction;
4948 pinningAction.setActionId(QStringLiteral("pin_item"));
5049 pinningAction.setText(gettext("Pin shortcut"));
50+ pinningAction.setIsPrivate(true);
5151 m_quickList->appendAction(pinningAction);
5252
5353 m_quitAction.setActionId(QStringLiteral("stop_item"));
5454 m_quitAction.setIcon(QStringLiteral("application-exit"));
5555 m_quitAction.setText(gettext("Quit"));
56+ m_quitAction.setIsPrivate(true);
5657}
5758
5859QString LauncherItem::appId() const
@@ -120,6 +121,7 @@ void LauncherItem::setPinned(bool pinned)
120121 QuickListEntry entry;
121122 entry.setActionId(QStringLiteral("pin_item"));
122123 entry.setText(pinned ? gettext("Unpin shortcut") : gettext("Pin shortcut"));
124+ entry.setIsPrivate(true);
123125 m_quickList->updateAction(entry);
124126}
125127
@@ -221,14 +223,36 @@ void LauncherItem::setAlerting(bool alerting)
221223
222224int LauncherItem::surfaceCount() const
223225{
224− return m_surfaceCount;
226+ return m_surfaces.count();
225227}
226228
227−void LauncherItem::setSurfaceCount(int surfaceCount)
229+void LauncherItem::setSurfaces(const QList<QPair<QString, QString> > &surfaces)
228230{
229− if (m_surfaceCount != surfaceCount) {
230− m_surfaceCount = surfaceCount;
231− Q_EMIT surfaceCountChanged(surfaceCount);
231+ if (m_surfaces != surfaces) {
232+ m_surfaces = surfaces;
233+
234+ QList<QuickListEntry> removedEntries;
235+ for (int i = 0; i < m_quickList->rowCount(); ++i) {
236+ QuickListEntry entry = m_quickList->get(i);
237+ if (entry.actionId().startsWith(QStringLiteral("surface_"))) {
238+ removedEntries.append(entry);
239+ }
240+ }
241+ Q_FOREACH (const QuickListEntry &entry, removedEntries) {
242+ m_quickList->removeAction(entry);
243+ }
244+ for (int i = 0; i < surfaces.count(); ++i) {
245+ QuickListEntry entry;
246+ entry.setActionId(QStringLiteral("surface_") + surfaces.at(i).first);
247+ entry.setText(surfaces.at(i).second);
248+ entry.setIsPrivate(true);
249+ if (i == surfaces.count() - 1) {
250+ entry.setHasSeparator(true);
251+ }
252+ m_quickList->insertAction(entry, i + 1);
253+ }
254+
255+ Q_EMIT surfaceCountChanged(m_surfaces.count());
232256 }
233257}
234258
plugins/Unity/Launcher/launcheritem.h+3−2
@@ -23,6 +23,7 @@
2323#include "quicklistmodel.h"
2424
2525#include <unity/shell/launcher/LauncherItemInterface.h>
26+#include <unity/shell/application/MirSurfaceInterface.h>
2627
2728class QuickListModel;
2829
@@ -62,7 +63,7 @@ private:
6263 void setCountVisible(bool countVisible);
6364 void setFocused(bool focused);
6465 void setAlerting(bool alerting);
65− void setSurfaceCount(int surfaceCount);
66+ void setSurfaces(const QList<QPair<QString, QString >> &surfaces);
6667
6768private:
6869 QString m_appId;
@@ -77,7 +78,7 @@ private:
7778 bool m_countVisible;
7879 bool m_focused;
7980 bool m_alerting;
80− int m_surfaceCount;
81+ QList<QPair<QString, QString> > m_surfaces;
8182 QuickListModel *m_quickList;
8283 QuickListEntry m_quitAction;
8384
plugins/Unity/Launcher/launchermodel.cpp+47−14
@@ -23,6 +23,7 @@
2323
2424#include <unity/shell/application/ApplicationInfoInterface.h>
2525#include <unity/shell/application/MirSurfaceListInterface.h>
26+#include <unity/shell/application/MirSurfaceInterface.h>
2627
2728#include <QDesktopServices>
2829#include <QDebug>
@@ -198,12 +199,25 @@ void LauncherModel::quickListActionInvoked(const QString &appId, int actionIndex
198199 } else {
199200 pin(appId);
200201 }
201− } else if (actionId == QLatin1String("launch_item")) {
202+ } else if (actionId == QStringLiteral("launch_item")) {
202203 QDesktopServices::openUrl(getUrlForAppId(appId));
203− } else if (actionId == QLatin1String("stop_item")) { // Quit
204+ } else if (actionId == QStringLiteral("stop_item")) { // Quit
204205 if (m_appManager) {
205206 m_appManager->stopApplication(appId);
206207 }
208+ } else if (actionId.startsWith(QStringLiteral("surface_"))){
209+ ApplicationInfoInterface *appInfo = m_appManager->findApplication(appId);
210+ if (!appInfo) {
211+ qWarning() << "App for" << appId << "not found in launcher. Cannot invoke quicklist action";
212+ }
213+ for (int i = 0; i < appInfo->surfaceList()->count(); ++i) {
214+ MirSurfaceInterface *iface = appInfo->surfaceList()->get(i);
215+ QString id = actionId;
216+ id.remove(QRegExp("^surface_"));
217+ if (id == iface->persistentId()) {
218+ iface->activate();
219+ }
220+ }
207221 // Nope, we don't know this action, let the backend forward it to the application
208222 } else {
209223 // TODO: forward quicklist action to app, possibly via m_dbusIface
@@ -517,40 +531,59 @@ void LauncherModel::applicationAdded(const QModelIndex &parent, int row)
517531 item->setRecent(true);
518532 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRecent});
519533 }
520− if (item->surfaceCount() != app->surfaceCount()) {
521− item->setSurfaceCount(app->surfaceCount());
522− Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleSurfaceCount});
523− }
524−
525534 item->setRunning(true);
526535 } else {
527536 LauncherItem *item = new LauncherItem(app->appId(), app->name(), app->icon().toString(), this);
528537 item->setRecent(true);
529538 item->setRunning(true);
530539 item->setFocused(app->focused());
531− item->setSurfaceCount(app->surfaceCount());
532540 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
533541 m_list.append(item);
534542 endInsertRows();
535543 }
536− connect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::applicationSurfaceCountChanged);
544+ connect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::updateSurfaceList);
537545 m_asAdapter->syncItems(m_list);
538546 Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRunning});
539547}
540548
541−void LauncherModel::applicationSurfaceCountChanged(int count)
549+void LauncherModel::updateSurfaceList()
542550{
543551 ApplicationInfoInterface *app = static_cast<ApplicationInfoInterface*>(sender());
552+ updateSurfaceListForApp(app);
553+}
554+
555+void LauncherModel::updateSurfaceListForSurface()
556+{
557+ MirSurfaceInterface *iface = static_cast<MirSurfaceInterface*>(sender());
558+ ApplicationInfoInterface* app = m_appManager->findApplication(iface->appId());
559+ if (!app) {
560+ return;
561+ }
562+ updateSurfaceListForApp(app);
563+}
564+
565+void LauncherModel::updateSurfaceListForApp(ApplicationInfoInterface* app)
566+{
544567 int idx = findApplication(app->appId());
545568 if (idx < 0) {
546569 qWarning() << "Received a surface count changed event from an app that's not in the Launcher model";
547570 return;
548571 }
549572 LauncherItem *item = m_list.at(idx);
550− if (item->surfaceCount() != count) {
551− item->setSurfaceCount(count);
552− Q_EMIT dataChanged(index(idx), index(idx), {RoleSurfaceCount});
573+ QList<QPair<QString, QString> > surfaces;
574+ for (int i = 0; i < app->surfaceList()->count(); ++i) {
575+ MirSurfaceInterface* iface = app->surfaceList()->get(i);
576+ // Avoid duplicate connections, so let's just disconnect first to be sure
577+ disconnect(iface, &MirSurfaceInterface::nameChanged, this, &LauncherModel::updateSurfaceListForSurface);
578+ connect(iface, &MirSurfaceInterface::nameChanged, this, &LauncherModel::updateSurfaceListForSurface);
579+ QString name = iface->name();
580+ if (name.isEmpty()) {
581+ name = app->name();
582+ }
583+ surfaces.append({iface->persistentId(), name});
553584 }
585+ item->setSurfaces(surfaces);
586+ Q_EMIT dataChanged(index(idx), index(idx), {RoleSurfaceCount});
554587}
555588
556589void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)
@@ -571,7 +604,7 @@ void LauncherModel::applicationRemoved(const QModelIndex &parent, int row)
571604 return;
572605 }
573606
574− disconnect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::applicationSurfaceCountChanged);
607+ disconnect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::updateSurfaceList);
575608
576609 LauncherItem * item = m_list.at(appIndex);
577610
plugins/Unity/Launcher/launchermodel.h+3−1
@@ -75,7 +75,9 @@ private Q_SLOTS:
7575 void applicationAdded(const QModelIndex &parent, int row);
7676 void applicationRemoved(const QModelIndex &parent, int row);
7777 void focusedAppIdChanged();
78− void applicationSurfaceCountChanged(int);
78+ void updateSurfaceList();
79+ void updateSurfaceListForApp(ApplicationInfoInterface *app);
80+ void updateSurfaceListForSurface();
7981
8082private:
8183 QList<LauncherItem*> m_list;
plugins/Unity/Launcher/quicklistentry.cpp+11
@@ -20,6 +20,7 @@
2020
2121QuickListEntry::QuickListEntry()
2222 : m_hasSeparator(false)
23+ , m_isPrivate(false)
2324{
2425}
2526
@@ -72,3 +73,13 @@ bool QuickListEntry::operator==(const QuickListEntry &other)
7273{
7374 return !other.actionId().isEmpty() && other.actionId() == m_actionId;
7475}
76+
77+bool QuickListEntry::isPrivate() const
78+{
79+ return m_isPrivate;
80+}
81+
82+void QuickListEntry::setIsPrivate(bool isPrivate)
83+{
84+ m_isPrivate = isPrivate;
85+}
plugins/Unity/Launcher/quicklistentry.h+4
@@ -42,11 +42,15 @@ public:
4242
4343 bool operator==(const QuickListEntry & other);
4444
45+ bool isPrivate() const;
46+ void setIsPrivate(bool isPrivate);
47+
4548private:
4649 QString m_actionId;
4750 QString m_text;
4851 QString m_icon;
4952 bool m_hasSeparator;
53+ bool m_isPrivate;
5054};
5155
5256#endif // QUICKLISTENTRY
plugins/Unity/Launcher/quicklistmodel.cpp+9
@@ -37,6 +37,13 @@ void QuickListModel::appendAction(const QuickListEntry &entry)
3737 endInsertRows();
3838}
3939
40+void QuickListModel::insertAction(const QuickListEntry &entry, int index)
41+{
42+ beginInsertRows(QModelIndex(), index, index);
43+ m_list.insert(index, entry);
44+ endInsertRows();
45+}
46+
4047void QuickListModel::updateAction(const QuickListEntry &entry)
4148{
4249 for (int i = 0; i < m_list.count(); ++i) {
@@ -81,6 +88,8 @@ QVariant QuickListModel::data(const QModelIndex &index, int role) const
8188 return m_list.at(index.row()).clickable();
8289 case RoleHasSeparator:
8390 return m_list.at(index.row()).hasSeparator();
91+ case RoleIsPrivate:
92+ return m_list.at(index.row()).isPrivate();
8493 }
8594 return QVariant();
8695}
plugins/Unity/Launcher/quicklistmodel.h+1
@@ -36,6 +36,7 @@ public:
3636 ~QuickListModel();
3737
3838 void appendAction(const QuickListEntry &entry);
39+ void insertAction(const QuickListEntry &entry, int index);
3940
4041 /**
4142 * @brief Update an existing action
plugins/Unity/Session/dbusunitysessionservice.cpp+75−4
@@ -18,6 +18,7 @@
1818#include "dbusunitysessionservice.h"
1919
2020// system
21+#include <grp.h>
2122#include <sys/types.h>
2223#include <unistd.h>
2324#include <pwd.h>
@@ -211,6 +212,23 @@ public:
211212 QDBusConnection::SM_BUSNAME().asyncCall(msg);
212213 }
213214
215+ bool isUserInGroup(const QString &user, const QString &groupName) const
216+ {
217+ auto group = getgrnam(groupName.toUtf8().data());
218+
219+ if (group && group->gr_mem)
220+ {
221+ for (int i = 0; group->gr_mem[i]; ++i)
222+ {
223+ if (g_strcmp0(group->gr_mem[i], user.toUtf8().data()) == 0) {
224+ return true;
225+ }
226+ }
227+ }
228+
229+ return false;
230+ }
231+
214232private Q_SLOTS:
215233 void onPropertiesChanged(const QString &iface, const QVariantMap &changedProps, const QStringList &invalidatedProps)
216234 {
@@ -297,7 +315,13 @@ bool DBusUnitySessionService::CanShutdown() const
297315
298316bool DBusUnitySessionService::CanLock() const
299317{
300− return true; // FIXME
318+ auto user = UserName();
319+ if (user.startsWith(QStringLiteral("guest-")) ||
320+ d->isUserInGroup(user, QStringLiteral("nopasswdlogin"))) {
321+ return false;
322+ } else {
323+ return true;
324+ }
301325}
302326
303327QString DBusUnitySessionService::UserName() const
@@ -335,8 +359,10 @@ void DBusUnitySessionService::PromptLock()
335359 // Prompt as in quick. No locking animation needed. Usually used by
336360 // indicator-session in combination with a switch to greeter or other
337361 // user session.
338− Q_EMIT LockRequested();
339− Q_EMIT lockRequested();
362+ if (CanLock()) {
363+ Q_EMIT LockRequested();
364+ Q_EMIT lockRequested();
365+ }
340366}
341367
342368void DBusUnitySessionService::Lock()
@@ -468,11 +494,56 @@ void performAsyncUnityCall(const QString &method)
468494
469495
470496DBusGnomeSessionManagerWrapper::DBusGnomeSessionManagerWrapper()
497+ : UnityDBusObject(QStringLiteral("/org/gnome/SessionManager"), QStringLiteral("org.gnome.SessionManager"))
498+{
499+}
500+
501+void DBusGnomeSessionManagerWrapper::Logout(quint32 mode)
502+{
503+ auto call = QStringLiteral("RequestLogout");
504+
505+ // These modes are documented as bitwise flags, not an enum, even though
506+ // they only ever seem to be used as enums.
507+
508+ if (mode & 1) // without dialog
509+ call = QStringLiteral("Logout");
510+ if (mode & 2) // without dialog, ignoring inhibitors (which we don't have)
511+ call = QStringLiteral("Logout");
512+
513+ performAsyncUnityCall(call);
514+}
515+
516+void DBusGnomeSessionManagerWrapper::Reboot()
517+{
518+ // GNOME's Reboot means with dialog (they use Request differently than us).
519+ performAsyncUnityCall(QStringLiteral("RequestReboot"));
520+}
521+
522+void DBusGnomeSessionManagerWrapper::RequestReboot()
523+{
524+ // GNOME's RequestReboot means no dialog (they use Request differently than us).
525+ performAsyncUnityCall(QStringLiteral("Reboot"));
526+}
527+
528+void DBusGnomeSessionManagerWrapper::RequestShutdown()
529+{
530+ // GNOME's RequestShutdown means no dialog (they use Request differently than us).
531+ performAsyncUnityCall(QStringLiteral("Shutdown"));
532+}
533+
534+void DBusGnomeSessionManagerWrapper::Shutdown()
535+{
536+ // GNOME's Shutdown means with dialog (they use Request differently than us).
537+ performAsyncUnityCall(QStringLiteral("RequestShutdown"));
538+}
539+
540+
541+DBusGnomeSessionManagerDialogWrapper::DBusGnomeSessionManagerDialogWrapper()
471542 : UnityDBusObject(QStringLiteral("/org/gnome/SessionManager/EndSessionDialog"), QStringLiteral("com.canonical.Unity"))
472543{
473544}
474545
475−void DBusGnomeSessionManagerWrapper::Open(const unsigned type, const unsigned arg_1, const unsigned max_wait, const QList<QDBusObjectPath> &inhibitors)
546+void DBusGnomeSessionManagerDialogWrapper::Open(const unsigned type, const unsigned arg_1, const unsigned max_wait, const QList<QDBusObjectPath> &inhibitors)
476547{
477548 Q_UNUSED(arg_1);
478549 Q_UNUSED(max_wait);
plugins/Unity/Session/dbusunitysessionservice.h+18−4
@@ -270,17 +270,31 @@ private:
270270class DBusGnomeSessionManagerWrapper : public UnityDBusObject
271271{
272272 Q_OBJECT
273− Q_CLASSINFO("D-Bus Interface", "org.gnome.SessionManager.EndSessionDialog")
273+ Q_CLASSINFO("D-Bus Interface", "org.gnome.SessionManager")
274274
275275public:
276276 DBusGnomeSessionManagerWrapper();
277277 ~DBusGnomeSessionManagerWrapper() = default;
278278
279279public Q_SLOTS:
280− Q_SCRIPTABLE void Open(const unsigned int type, const unsigned int arg_1, const unsigned int max_wait, const QList<QDBusObjectPath> &inhibitors);
280+ Q_SCRIPTABLE void Logout(quint32 mode);
281+ Q_SCRIPTABLE void Reboot();
282+ Q_SCRIPTABLE void RequestReboot();
283+ Q_SCRIPTABLE void RequestShutdown();
284+ Q_SCRIPTABLE void Shutdown();
285+};
281286
282−private:
283− void performAsyncCall(const QString &method);
287+class DBusGnomeSessionManagerDialogWrapper : public UnityDBusObject
288+{
289+ Q_OBJECT
290+ Q_CLASSINFO("D-Bus Interface", "org.gnome.SessionManager.EndSessionDialog")
291+
292+public:
293+ DBusGnomeSessionManagerDialogWrapper();
294+ ~DBusGnomeSessionManagerDialogWrapper() = default;
295+
296+public Q_SLOTS:
297+ Q_SCRIPTABLE void Open(const unsigned int type, const unsigned int arg_1, const unsigned int max_wait, const QList<QDBusObjectPath> &inhibitors);
284298};
285299
286300class DBusGnomeScreensaverWrapper: public UnityDBusObject
plugins/Utils/CMakeLists.txt+1
@@ -36,6 +36,7 @@ set(QMLPLUGIN_SRC
3636 URLDispatcher.cpp
3737 tabfocusfence.cpp
3838 expressionfiltermodel.cpp
39+ quicklistproxymodel.cpp
3940 plugin.cpp
4041 )
4142
plugins/Utils/plugin.cpp+2
@@ -42,6 +42,7 @@
4242#include "appdrawerproxymodel.h"
4343#include "tabfocusfence.h"
4444#include "expressionfiltermodel.h"
45+#include "quicklistproxymodel.h"
4546
4647static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
4748{
@@ -88,4 +89,5 @@ void UtilsPlugin::registerTypes(const char *uri)
8889 qmlRegisterType<AppDrawerProxyModel>(uri, 0, 1, "AppDrawerProxyModel");
8990 qmlRegisterType<TabFocusFenceItem>(uri, 0, 1, "TabFocusFence");
9091 qmlRegisterType<ExpressionFilterModel>(uri, 0, 1, "ExpressionFilterModel");
92+ qmlRegisterType<QuickListProxyModel>(uri, 0, 1, "QuickListProxyModel");
9193}
plugins/Utils/quicklistproxymodel.cppnew file+72
@@ -0,0 +1,72 @@
1+/*
2+ * Copyright (C) 2017 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "quicklistproxymodel.h"
18+
19+#include <QDebug>
20+
21+QuickListProxyModel::QuickListProxyModel(QObject *parent):
22+ QSortFilterProxyModel(parent)
23+{
24+ connect(this, &QAbstractListModel::rowsInserted, this, &QuickListProxyModel::countChanged);
25+ connect(this, &QAbstractListModel::rowsRemoved, this, &QuickListProxyModel::countChanged);
26+ connect(this, &QAbstractListModel::layoutChanged, this, &QuickListProxyModel::countChanged);
27+}
28+
29+QAbstractItemModel *QuickListProxyModel::source() const
30+{
31+ return m_source;
32+}
33+
34+bool QuickListProxyModel::privateMode() const
35+{
36+ return m_privateMode;
37+}
38+
39+void QuickListProxyModel::setPrivateMode(bool privateMode)
40+{
41+ if (m_privateMode != privateMode) {
42+ m_privateMode = privateMode;
43+ invalidateFilter();
44+ Q_EMIT privateModeChanged();
45+ }
46+}
47+
48+void QuickListProxyModel::setSource(QAbstractItemModel *source)
49+{
50+ if (m_source != source) {
51+ m_source = source;
52+ setSourceModel(m_source);
53+ connect(m_source, &QAbstractItemModel::rowsRemoved, this, &QuickListProxyModel::invalidate);
54+ connect(m_source, &QAbstractItemModel::rowsInserted, this, &QuickListProxyModel::invalidate);
55+ Q_EMIT sourceChanged();
56+ }
57+}
58+
59+int QuickListProxyModel::count() const
60+{
61+ return rowCount();
62+}
63+
64+bool QuickListProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const
65+{
66+ Q_UNUSED(source_parent)
67+
68+ if (m_privateMode) {
69+ return !m_source->data(m_source->index(source_row, 0), QuickListModelInterface::RoleIsPrivate).toBool();
70+ }
71+ return true;
72+}
plugins/Utils/quicklistproxymodel.hnew file+52
@@ -0,0 +1,52 @@
1+/*
2+ * Copyright (C) 2017 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QSortFilterProxyModel>
18+
19+#include <unity/shell/launcher/QuickListModelInterface.h>
20+
21+using namespace unity::shell::launcher;
22+
23+class QuickListProxyModel: public QSortFilterProxyModel
24+{
25+ Q_OBJECT
26+ Q_PROPERTY(QAbstractItemModel* source READ source WRITE setSource NOTIFY sourceChanged)
27+ Q_PROPERTY(bool privateMode READ privateMode WRITE setPrivateMode NOTIFY privateModeChanged)
28+ Q_PROPERTY(int count READ count NOTIFY countChanged)
29+
30+public:
31+ QuickListProxyModel(QObject* parent = nullptr);
32+
33+ QAbstractItemModel* source() const;
34+ void setSource(QAbstractItemModel* source);
35+
36+ bool privateMode() const;
37+ void setPrivateMode(bool privateMode);
38+
39+ int count() const;
40+
41+protected:
42+ bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
43+
44+Q_SIGNALS:
45+ void sourceChanged();
46+ void privateModeChanged();
47+ void countChanged();
48+
49+private:
50+ QAbstractItemModel* m_source = nullptr;
51+ bool m_privateMode;
52+};
plugins/WindowManager/CMakeLists.txt+2
@@ -9,6 +9,8 @@ set(WINDOWMANAGER_SRC
99 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/SurfaceManagerInterface.h
1010 )
1111
12+add_definitions(-DWINDOWMANAGERQML_LIBRARY)
13+
1214add_library(windowmanager-qml SHARED ${WINDOWMANAGER_SRC})
1315
1416qt5_use_modules(windowmanager-qml Qml Quick Gui)
plugins/WindowManager/TopLevelWindowModel.cpp+64−20
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2016 Canonical, Ltd.
2+ * Copyright (C) 2016-2017 Canonical, Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it under
55 * the terms of the GNU Lesser General Public License version 3, as published by
@@ -130,7 +130,7 @@ void TopLevelWindowModel::removeApplication(unityapi::ApplicationInfoInterface *
130130 int i = 0;
131131 while (i < m_windowModel.count()) {
132132 if (m_windowModel.at(i).application == application) {
133− removeAt(i);
133+ deleteAt(i);
134134 } else {
135135 ++i;
136136 }
@@ -148,12 +148,13 @@ void TopLevelWindowModel::prependSurface(unityapi::MirSurfaceInterface *surface,
148148{
149149 Q_ASSERT(surface != nullptr);
150150
151+ connectSurface(surface);
152+
151153 bool filledPlaceholder = false;
152154 for (int i = 0; i < m_windowModel.count() && !filledPlaceholder; ++i) {
153155 ModelEntry &entry = m_windowModel[i];
154156 if (entry.application == application && entry.window->surface() == nullptr) {
155157 entry.window->setSurface(surface);
156− connectSurface(surface);
157158 INFO_MSG << " appId=" << application->appId() << " surface=" << surface
158159 << ", filling out placeholder. after: " << toString();
159160 filledPlaceholder = true;
@@ -167,6 +168,34 @@ void TopLevelWindowModel::prependSurface(unityapi::MirSurfaceInterface *surface,
167168}
168169
169170void TopLevelWindowModel::prependSurfaceHelper(unityapi::MirSurfaceInterface *surface, unityapi::ApplicationInfoInterface *application)
171+{
172+
173+ Window *window = createWindow(surface);
174+
175+ connect(window, &Window::stateChanged, this, [=](Mir::State newState) {
176+ if (newState == Mir::HiddenState) {
177+ // Comply, removing it from our model. Just as if it didn't exist anymore.
178+ removeAt(indexForId(window->id()));
179+ } else {
180+ if (indexForId(window->id()) == -1) {
181+ // was probably hidden before. put it back on the list
182+ auto *application = m_applicationManager->findApplicationWithSurface(window->surface());
183+ Q_ASSERT(application);
184+ prependWindow(window, application);
185+ }
186+ }
187+ });
188+
189+ prependWindow(window, application);
190+
191+ if (!surface) {
192+ activateEmptyWindow(window);
193+ }
194+
195+ INFO_MSG << " after " << toString();
196+}
197+
198+void TopLevelWindowModel::prependWindow(Window *window, unityapi::ApplicationInfoInterface *application)
170199{
171200 if (m_modelState == IdleState) {
172201 m_modelState = InsertingState;
@@ -176,12 +205,7 @@ void TopLevelWindowModel::prependSurfaceHelper(unityapi::MirSurfaceInterface *su
176205 // No point in signaling anything if we're resetting the whole model
177206 }
178207
179− Window *window = createWindow(surface);
180−
181208 m_windowModel.prepend(ModelEntry(window, application));
182− if (surface) {
183− connectSurface(surface);
184− }
185209
186210 if (m_modelState == InsertingState) {
187211 endInsertRows();
@@ -189,12 +213,6 @@ void TopLevelWindowModel::prependSurfaceHelper(unityapi::MirSurfaceInterface *su
189213 Q_EMIT listChanged();
190214 m_modelState = IdleState;
191215 }
192−
193− if (!surface) {
194− activateEmptyWindow(window);
195− }
196−
197− INFO_MSG << " after " << toString();
198216}
199217
200218void TopLevelWindowModel::connectWindow(Window *window)
@@ -243,6 +261,13 @@ void TopLevelWindowModel::connectWindow(Window *window)
243261 connect(window, &Window::emptyWindowActivated, this, [this, window]() {
244262 activateEmptyWindow(window);
245263 });
264+
265+ connect(window, &Window::liveChanged, this, [this, window](bool isAlive) {
266+ if (!isAlive && window->state() == Mir::HiddenState) {
267+ // Hidden windows are not in the model. So just delete it right away.
268+ delete window;
269+ }
270+ });
246271}
247272
248273void TopLevelWindowModel::activateEmptyWindow(Window *window)
@@ -308,7 +333,7 @@ void TopLevelWindowModel::onSurfaceDestroyed(unityapi::MirSurfaceInterface *surf
308333 }
309334
310335 if (m_windowModel[i].removeOnceSurfaceDestroyed) {
311− removeAt(i);
336+ deleteAt(i);
312337 } else {
313338 auto window = m_windowModel[i].window;
314339 window->setSurface(nullptr);
@@ -346,7 +371,16 @@ void TopLevelWindowModel::onSurfaceCreated(unityapi::MirSurfaceInterface *surfac
346371 } else {
347372 auto *application = m_applicationManager->findApplicationWithSurface(surface);
348373 if (application) {
349− prependSurface(surface, application);
374+ if (surface->state() == Mir::HiddenState) {
375+ // Ignore it until it's finally shown
376+ connect(surface, &unityapi::MirSurfaceInterface::stateChanged, this, [=](Mir::State newState) {
377+ Q_ASSERT(newState != Mir::HiddenState);
378+ disconnect(surface, &unityapi::MirSurfaceInterface::stateChanged, this, 0);
379+ prependSurface(surface, application);
380+ });
381+ } else {
382+ prependSurface(surface, application);
383+ }
350384 } else {
351385 // Must be a prompt session. No need to do add it as a prompt surface is not top-level.
352386 // It will show up in the ApplicationInfoInterface::promptSurfaceList of some application.
@@ -361,6 +395,17 @@ void TopLevelWindowModel::onSurfaceCreated(unityapi::MirSurfaceInterface *surfac
361395 }
362396}
363397
398+void TopLevelWindowModel::deleteAt(int index)
399+{
400+ auto window = m_windowModel[index].window;
401+
402+ removeAt(index);
403+
404+ window->setSurface(nullptr);
405+
406+ delete window;
407+}
408+
364409void TopLevelWindowModel::removeAt(int index)
365410{
366411 if (m_modelState == IdleState) {
@@ -373,8 +418,9 @@ void TopLevelWindowModel::removeAt(int index)
373418
374419 auto window = m_windowModel[index].window;
375420
376− window->setSurface(nullptr);
377− window->setFocused(false);
421+ if (!window->surface()) {
422+ window->setFocused(false);
423+ }
378424
379425 m_windowModel.removeAt(index);
380426
@@ -385,11 +431,9 @@ void TopLevelWindowModel::removeAt(int index)
385431 m_modelState = IdleState;
386432 }
387433
388− disconnect(window, 0, this, 0);
389434 if (m_focusedWindow == window) {
390435 setFocusedWindow(nullptr);
391436 }
392− delete window;
393437
394438 INFO_MSG << " after " << toString();
395439}
plugins/WindowManager/TopLevelWindowModel.h+6−2
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2016 Canonical, Ltd.
2+ * Copyright (C) 2016-2017 Canonical, Ltd.
33 *
44 * This program is free software: you can redistribute it and/or modify it under
55 * the terms of the GNU Lesser General Public License version 3, as published by
@@ -20,6 +20,8 @@
2020#include <QAbstractListModel>
2121#include <QLoggingCategory>
2222
23+#include "WindowManagerGlobal.h"
24+
2325Q_DECLARE_LOGGING_CATEGORY(TOPLEVELWINDOWMODEL)
2426
2527class Window;
@@ -47,7 +49,7 @@ namespace unity {
4749 * As applications can have multiple surfaces and you can also have entries without surfaces at all,
4850 * the only way to unambiguously refer to an entry in this model is through its id.
4951 */
50−class TopLevelWindowModel : public QAbstractListModel
52+class WINDOWMANAGERQML_EXPORT TopLevelWindowModel : public QAbstractListModel
5153{
5254 Q_OBJECT
5355
@@ -197,6 +199,7 @@ private:
197199 void setFocusedWindow(Window *window);
198200 void removeInputMethodWindow();
199201 int findIndexOf(const unity::shell::application::MirSurfaceInterface *surface) const;
202+ void deleteAt(int index);
200203 void removeAt(int index);
201204
202205 void addApplication(unity::shell::application::ApplicationInfoInterface *application);
@@ -207,6 +210,7 @@ private:
207210 unity::shell::application::ApplicationInfoInterface *application);
208211 void prependSurfaceHelper(unity::shell::application::MirSurfaceInterface *surface,
209212 unity::shell::application::ApplicationInfoInterface *application);
213+ void prependWindow(Window *window, unity::shell::application::ApplicationInfoInterface *application);
210214
211215 void connectWindow(Window *window);
212216 void connectSurface(unity::shell::application::MirSurfaceInterface *surface);
plugins/WindowManager/Window.cpp+32−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2016 Canonical, Ltd.
2+ * Copyright (C) 2016-2017 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
@@ -67,6 +67,23 @@ void Window::setRequestedPosition(const QPoint &value)
6767 }
6868}
6969
70+bool Window::allowClientResize() const
71+{
72+ return m_allowClientResize;
73+}
74+
75+void Window::setAllowClientResize(bool value)
76+{
77+ if (value != m_allowClientResize) {
78+ DEBUG_MSG << "("<<value<<")";
79+ m_allowClientResize = value;
80+ if (m_surface) {
81+ m_surface->setAllowClientResize(value);
82+ }
83+ Q_EMIT allowClientResizeChanged(m_allowClientResize);
84+ }
85+}
86+
7087Mir::State Window::state() const
7188{
7289 return m_state;
@@ -154,6 +171,19 @@ void Window::setSurface(unityapi::MirSurfaceInterface *surface)
154171 updateFocused();
155172 });
156173
174+ connect(surface, &unityapi::MirSurfaceInterface::allowClientResizeChanged, this, [this]() {
175+ if (m_surface->allowClientResize() != m_allowClientResize) {
176+ m_allowClientResize = m_surface->allowClientResize();
177+ Q_EMIT allowClientResizeChanged(m_allowClientResize);
178+ }
179+ });
180+
181+ connect(surface, &unityapi::MirSurfaceInterface::liveChanged, this, &Window::liveChanged);
182+
183+ connect(surface, &QObject::destroyed, this, [this]() {
184+ setSurface(nullptr);
185+ });
186+
157187 // bring it up to speed
158188 if (m_positionRequested) {
159189 m_surface->setRequestedPosition(m_requestedPosition);
@@ -161,6 +191,7 @@ void Window::setSurface(unityapi::MirSurfaceInterface *surface)
161191 if (m_stateRequested && m_surface->state() == Mir::RestoredState) {
162192 m_surface->requestState(m_state);
163193 }
194+ m_surface->setAllowClientResize(m_allowClientResize);
164195
165196 // and sync with surface
166197 updatePosition();
plugins/WindowManager/Window.h+18−2
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2016 Canonical, Ltd.
2+ * Copyright (C) 2016-2017 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
@@ -24,6 +24,8 @@
2424// Unity API
2525#include <unity/shell/application/Mir.h>
2626
27+#include "WindowManagerGlobal.h"
28+
2729namespace unity {
2830 namespace shell {
2931 namespace application {
@@ -42,7 +44,7 @@ Q_DECLARE_LOGGING_CATEGORY(UNITY_WINDOW)
4244 was killed to free up memory, as it should still remain in the window list since the user
4345 did not explicitly close it).
4446 */
45−class Window : public QObject
47+class WINDOWMANAGERQML_EXPORT Window : public QObject
4648{
4749 Q_OBJECT
4850
@@ -89,6 +91,13 @@ class Window : public QObject
8991 */
9092 Q_PROPERTY(unity::shell::application::MirSurfaceInterface* surface READ surface NOTIFY surfaceChanged)
9193
94+ /**
95+ * @brief Whether to comply to resize requests coming from the client side
96+ *
97+ * It's true by default
98+ */
99+ Q_PROPERTY(bool allowClientResize READ allowClientResize WRITE setAllowClientResize NOTIFY allowClientResizeChanged)
100+
92101public:
93102 Window(int id, QObject *parent = nullptr);
94103 virtual ~Window();
@@ -104,6 +113,9 @@ public:
104113 void setSurface(unity::shell::application::MirSurfaceInterface *surface);
105114 void setFocused(bool value);
106115
116+ bool allowClientResize() const;
117+ void setAllowClientResize(bool);
118+
107119 QString toString() const;
108120
109121public Q_SLOTS:
@@ -133,6 +145,8 @@ Q_SIGNALS:
133145 void focusedChanged(bool value);
134146 void confinesMousePointerChanged(bool value);
135147 void surfaceChanged(unity::shell::application::MirSurfaceInterface *surface);
148+ void allowClientResizeChanged(bool value);
149+ void liveChanged(bool value);
136150
137151 /**
138152 * @brief Emitted when focus for this window is requested by an external party
@@ -152,6 +166,8 @@ private:
152166 Mir::State m_state{Mir::RestoredState};
153167 bool m_stateRequested{false};
154168 unity::shell::application::MirSurfaceInterface *m_surface{nullptr};
169+
170+ bool m_allowClientResize{true};
155171};
156172
157173QDebug operator<<(QDebug dbg, const Window *window);
plugins/WindowManager/WindowManagerGlobal.hnew file+23
@@ -0,0 +1,23 @@
1+/*
2+ * Copyright (C) 2017 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QtCore/QtGlobal>
18+
19+#if defined(WINDOWMANAGERQML_LIBRARY)
20+# define WINDOWMANAGERQML_EXPORT Q_DECL_EXPORT
21+#else
22+# define WINDOWMANAGERQML_EXPORT Q_DECL_IMPORT
23+#endif
po/aa.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-02-12 10:18+0000\n"
1212"Last-Translator: Charif AYFARAH <ayfarah@ymail.com>\n"
1313"Language-Team: Afar <aa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:12+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr "Kat"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Eweq"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Koflis"
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/am.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-01-26 15:04+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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:12+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr "መግቢያ"
5050msgid "Guest Session"
5151msgstr "የ እንግዳ ክፍለ ጊዜ"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "አቋራጭ ማጣበቂያ"
5757
@@ -59,20 +59,20 @@ msgstr "አቋራጭ ማጣበቂያ"
5959msgid "Quit"
6060msgstr "ማጥፊያ"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "አቋራጭ መለያያ"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "መውጫ"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "በእርግጥ መውጣት ይፈልጋሉ?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "መቆለፊያ"
@@ -519,11 +519,11 @@ msgstr "ማለፊያ ኮድ"
519519msgid "Select desktop environment"
520520msgstr "የ ዴስክቶፕ አይነት ይምረጡ"
521521
522−#: qml/Launcher/Drawer.qml:92
522+#: qml/Launcher/Drawer.qml:93
523523msgid "Search…"
524524msgstr "መፈለጊያ..."
525525
526−#: qml/Launcher/Drawer.qml:127
526+#: qml/Launcher/Drawer.qml:128
527527msgctxt "Apps sorted alphabetically"
528528msgid "A-Z"
529529msgstr "A-Z"
po/ar.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-01-14 05:20+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: 2017-03-14 07:12+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:12+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "تثبيت الاختصار"
5858
@@ -60,20 +60,20 @@ msgstr "تثبيت الاختصار"
6060msgid "Quit"
6161msgstr "خروج"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "إزالة تثبيت الاختصار"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "خروج"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "هل أنت متأكد من رغبتك في تسجيل الخروج؟"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "أوصِد"
@@ -526,11 +526,11 @@ msgstr ""
526526msgid "Select desktop environment"
527527msgstr ""
528528
529−#: qml/Launcher/Drawer.qml:92
529+#: qml/Launcher/Drawer.qml:93
530530msgid "Search…"
531531msgstr ""
532532
533−#: qml/Launcher/Drawer.qml:127
533+#: qml/Launcher/Drawer.qml:128
534534msgctxt "Apps sorted alphabetically"
535535msgid "A-Z"
536536msgstr ""
po/ast.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-12-16 02:13+0000\n"
1212"Last-Translator: enolp <enolp@softastur.org>\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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:12+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Anclar atayu"
5757
@@ -59,20 +59,20 @@ msgstr "Anclar atayu"
5959msgid "Quit"
6060msgstr "Colar"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Desanclar atayu"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Zarrar sesión"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "¿De xuru que quies zarrar la sesión?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Bloquiar"
@@ -522,11 +522,11 @@ msgstr "Códigu de pasu"
522522msgid "Select desktop environment"
523523msgstr "Esbillar entornu d'escritoriu"
524524
525−#: qml/Launcher/Drawer.qml:92
525+#: qml/Launcher/Drawer.qml:93
526526msgid "Search…"
527527msgstr "Guetar..."
528528
529−#: qml/Launcher/Drawer.qml:127
529+#: qml/Launcher/Drawer.qml:128
530530msgctxt "Apps sorted alphabetically"
531531msgid "A-Z"
532532msgstr "A-Z"
po/az.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:12+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Pin qısayolu"
5757
@@ -59,20 +59,20 @@ msgstr "Pin qısayolu"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Açma qısayolu"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Çıxmaq istәdiyinizdәn әminsiniz?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/be.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Замацаваць кнопку"
5858
@@ -60,20 +60,20 @@ msgstr "Замацаваць кнопку"
6060msgid "Quit"
6161msgstr "Выйсці"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Адмацаваць кнопку"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Выйсці"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Вы ўпэўненыя, што хочаце выйсці?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Заблакаваць"
@@ -524,11 +524,11 @@ msgstr ""
524524msgid "Select desktop environment"
525525msgstr ""
526526
527−#: qml/Launcher/Drawer.qml:92
527+#: qml/Launcher/Drawer.qml:93
528528msgid "Search…"
529529msgstr ""
530530
531−#: qml/Launcher/Drawer.qml:127
531+#: qml/Launcher/Drawer.qml:128
532532msgctxt "Apps sorted alphabetically"
533533msgid "A-Z"
534534msgstr ""
po/bg.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -519,11 +519,11 @@ msgstr ""
519519msgid "Select desktop environment"
520520msgstr ""
521521
522−#: qml/Launcher/Drawer.qml:92
522+#: qml/Launcher/Drawer.qml:93
523523msgid "Search…"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:127
526+#: qml/Launcher/Drawer.qml:128
527527msgctxt "Apps sorted alphabetically"
528528msgid "A-Z"
529529msgstr ""
po/bn.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "পিন"
5757
@@ -59,20 +59,20 @@ msgstr "পিন"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "আনপিন"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "আপনি কি লগ আউট করতে চান?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "লক করুন"
@@ -519,11 +519,11 @@ msgstr ""
519519msgid "Select desktop environment"
520520msgstr ""
521521
522−#: qml/Launcher/Drawer.qml:92
522+#: qml/Launcher/Drawer.qml:93
523523msgid "Search…"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:127
526+#: qml/Launcher/Drawer.qml:128
527527msgctxt "Apps sorted alphabetically"
528528msgid "A-Z"
529529msgstr ""
po/br.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-08-29 11:37+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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Spilhennañ ar verradenn"
5757
@@ -59,20 +59,20 @@ msgstr "Spilhennañ ar verradenn"
5959msgid "Quit"
6060msgstr "Mont kuit"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Dispilhennañ ar verradenn"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Digevreañ"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Ha sur oc'h e fell deoc'h digevreañ ?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Prennañ"
@@ -528,11 +528,11 @@ msgstr "Kod-tremen"
528528msgid "Select desktop environment"
529529msgstr "Diuzañ endro ar burev"
530530
531−#: qml/Launcher/Drawer.qml:92
531+#: qml/Launcher/Drawer.qml:93
532532msgid "Search…"
533533msgstr ""
534534
535−#: qml/Launcher/Drawer.qml:127
535+#: qml/Launcher/Drawer.qml:128
536536msgctxt "Apps sorted alphabetically"
537537msgid "A-Z"
538538msgstr ""
po/bs.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Prikačite prečicu"
5858
@@ -60,20 +60,20 @@ msgstr "Prikačite prečicu"
6060msgid "Quit"
6161msgstr "Napusti"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Otkačite prečicu"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Odjavite se"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Da li ste sigurni da se želite odjaviti?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Zaključaj"
@@ -523,11 +523,11 @@ msgstr ""
523523msgid "Select desktop environment"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:92
526+#: qml/Launcher/Drawer.qml:93
527527msgid "Search…"
528528msgstr ""
529529
530−#: qml/Launcher/Drawer.qml:127
530+#: qml/Launcher/Drawer.qml:128
531531msgctxt "Apps sorted alphabetically"
532532msgid "A-Z"
533533msgstr ""
po/ca.po+31−30
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-11-11 06:30+0000\n"
1212"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -24,15 +24,15 @@ msgstr "Contrasenya: "
2424
2525#: plugins/LightDM/Greeter.cpp:203
2626msgid "Username"
27−msgstr ""
27+msgstr "Nom d'usuari"
2828
2929#: plugins/LightDM/Greeter.cpp:242
3030msgid "Failed to authenticate"
31−msgstr ""
31+msgstr "Ha fallat l'autenticació"
3232
3333#: plugins/LightDM/Greeter.cpp:244
3434msgid "Invalid password, please try again"
35−msgstr ""
35+msgstr "La contrasenya no és vàlida, torneu-ho a provar"
3636
3737#: plugins/LightDM/Greeter.cpp:254
3838msgid "Log In"
@@ -44,14 +44,14 @@ msgstr "Torna-ho a provar"
4444
4545#: plugins/LightDM/UsersModel.cpp:152
4646msgid "Login"
47−msgstr ""
47+msgstr "Inicia la sessió"
4848
4949#: plugins/LightDM/UsersModel.cpp:160
5050msgid "Guest Session"
51−msgstr ""
51+msgstr "Sessió de convidat"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Enganxa la drecera"
5757
@@ -59,20 +59,20 @@ msgstr "Enganxa la drecera"
5959msgid "Quit"
6060msgstr "Surt"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Desenganxa la drecera"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Surt"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Segur que voleu sortir?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Bloca"
@@ -151,7 +151,7 @@ msgstr "Alt + ImprPant"
151151
152152#: qml/Components/KeyboardShortcutsOverlay.qml:80
153153msgid "Takes a screenshot of the current window."
154−msgstr ""
154+msgstr "Feu una captura de pantalla de la finestra actual."
155155
156156#: qml/Components/KeyboardShortcutsOverlay.qml:88
157157msgid "Super + Space"
@@ -199,7 +199,7 @@ msgstr "Commuta les aplicacions mitjançant el llançador."
199199
200200#: qml/Components/KeyboardShortcutsOverlay.qml:164
201201msgid "Super + 1 to 0"
202−msgstr ""
202+msgstr "Súper +1 a 0"
203203
204204#: qml/Components/KeyboardShortcutsOverlay.qml:169
205205msgid "Same as clicking on a launcher icon."
@@ -207,11 +207,11 @@ msgstr "El mateix que clicar sobre una icona del llançador."
207207
208208#: qml/Components/KeyboardShortcutsOverlay.qml:177
209209msgid "Super + A"
210−msgstr ""
210+msgstr "Súper + A"
211211
212212#: qml/Components/KeyboardShortcutsOverlay.qml:182
213213msgid "Opens the Application Drawer."
214−msgstr ""
214+msgstr "Obre el calaix d'aplicacions."
215215
216216#: qml/Components/KeyboardShortcutsOverlay.qml:194
217217msgid "Scopes"
@@ -361,19 +361,19 @@ msgstr ""
361361
362362#: qml/Components/VirtualTouchPad.qml:327
363363msgid "Tap left button to click."
364−msgstr ""
364+msgstr "Feu un toc al botó esquerre per clicar."
365365
366366#: qml/Components/VirtualTouchPad.qml:339
367367msgid "Tap right button to right click."
368−msgstr ""
368+msgstr "Feu un toc al botó dret per clicar amb el botó dret."
369369
370370#: qml/Components/VirtualTouchPad.qml:351
371371msgid "Swipe with two fingers to scroll."
372−msgstr ""
372+msgstr "Llisqueu amb dos dites per fer un desplaçament."
373373
374374#: qml/Components/VirtualTouchPad.qml:396
375375msgid "Find more settings in the system settings."
376−msgstr ""
376+msgstr "Trobeu més configuracions als paràmetres del sistema."
377377
378378#: qml/Dash/DashPageHeader.qml:361
379379msgctxt "Button: Open the Ubuntu Store"
@@ -505,11 +505,11 @@ msgstr "Torna-ho a provar"
505505
506506#: qml/Greeter/Greeter.qml:562
507507msgid "Enter passphrase to unlock"
508−msgstr ""
508+msgstr "Introduïu la contrasenya per desbloquejar"
509509
510510#: qml/Greeter/Greeter.qml:563
511511msgid "Enter passcode to unlock"
512−msgstr ""
512+msgstr "Entreu el codi per desbloquejar"
513513
514514#: qml/Greeter/NarrowView.qml:242
515515msgid "Emergency"
@@ -527,18 +527,18 @@ msgstr "Codi d'accés"
527527msgid "Select desktop environment"
528528msgstr "Seleccioneu l'entorn d'escriptori"
529529
530−#: qml/Launcher/Drawer.qml:92
530+#: qml/Launcher/Drawer.qml:93
531531msgid "Search…"
532−msgstr ""
532+msgstr "Cerca…"
533533
534−#: qml/Launcher/Drawer.qml:127
534+#: qml/Launcher/Drawer.qml:128
535535msgctxt "Apps sorted alphabetically"
536536msgid "A-Z"
537−msgstr ""
537+msgstr "A-Z"
538538
539539#: qml/Launcher/MoreAppsHeader.qml:55
540540msgid "More apps in the store"
541−msgstr ""
541+msgstr "Més aplicacions a la botiga"
542542
543543#: qml/Notifications/NotificationMenuItemFactory.qml:124
544544msgid "Show password"
@@ -629,7 +629,7 @@ msgstr "Retorna la trucada"
629629
630630#: qml/Panel/PanelMenuPage.qml:92
631631msgid "Back"
632−msgstr ""
632+msgstr "Enrere"
633633
634634#: qml/Stage/SideStage.qml:76
635635msgid "Drag using 3 fingers any application from one window to the other"
@@ -639,6 +639,7 @@ msgstr ""
639639#: qml/Tutorial/TutorialLeftLong.qml:49
640640msgid "Long swipe from the left edge to open the Application Drawer"
641641msgstr ""
642+"Llisqueu llarg des de la vora esquerra per obrir al Calaix d'aplicacions"
642643
643644#: qml/Tutorial/TutorialLeft.qml:47
644645msgid "Short swipe from the left edge to open the launcher"
po/ca@valencia.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2015-02-22 15:22+0000\n"
1212"Last-Translator: David Planella <david.planella@gmail.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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Apega la drecera"
5757
@@ -59,20 +59,20 @@ msgstr "Apega la drecera"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Desenganxa la drecera"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Segur que voleu eixir?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -523,11 +523,11 @@ msgstr ""
523523msgid "Select desktop environment"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:92
526+#: qml/Launcher/Drawer.qml:93
527527msgid "Search…"
528528msgstr ""
529529
530−#: qml/Launcher/Drawer.qml:127
530+#: qml/Launcher/Drawer.qml:128
531531msgctxt "Apps sorted alphabetically"
532532msgid "A-Z"
533533msgstr ""
po/ce.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/ckb.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/co.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-05-24 10:40+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Corsican <co@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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Fissà l'accurtatoghju"
5757
@@ -59,20 +59,20 @@ msgstr "Fissà l'accurtatoghju"
5959msgid "Quit"
6060msgstr "Abbandunà"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Toglie l'accurtatoghju"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Escì"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Site sicuri di vulè escì?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Bluccà"
@@ -527,11 +527,11 @@ msgstr ""
527527msgid "Select desktop environment"
528528msgstr ""
529529
530−#: qml/Launcher/Drawer.qml:92
530+#: qml/Launcher/Drawer.qml:93
531531msgid "Search…"
532532msgstr ""
533533
534−#: qml/Launcher/Drawer.qml:127
534+#: qml/Launcher/Drawer.qml:128
535535msgctxt "Apps sorted alphabetically"
536536msgid "A-Z"
537537msgstr ""
po/cs.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020"Language: cs\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Připíchnout zkratku"
5858
@@ -60,20 +60,20 @@ msgstr "Připíchnout zkratku"
6060msgid "Quit"
6161msgstr ""
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Odpíchnout zkratku"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Odhlásit se"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Jste si jistí, že se chcete odhlásit?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Uzamknout"
@@ -523,11 +523,11 @@ msgstr ""
523523msgid "Select desktop environment"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:92
526+#: qml/Launcher/Drawer.qml:93
527527msgid "Search…"
528528msgstr ""
529529
530−#: qml/Launcher/Drawer.qml:127
530+#: qml/Launcher/Drawer.qml:128
531531msgctxt "Apps sorted alphabetically"
532532msgid "A-Z"
533533msgstr ""
po/cy.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Pinio llwybr byr"
5858
@@ -60,20 +60,20 @@ msgstr "Pinio llwybr byr"
6060msgid "Quit"
6161msgstr ""
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Dadbinio llwybr byr"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Allgofnodi"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Ydych chi'n sicr eich bod am allgofnodi?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Cloi"
@@ -524,11 +524,11 @@ msgstr ""
524524msgid "Select desktop environment"
525525msgstr ""
526526
527−#: qml/Launcher/Drawer.qml:92
527+#: qml/Launcher/Drawer.qml:93
528528msgid "Search…"
529529msgstr ""
530530
531−#: qml/Launcher/Drawer.qml:127
531+#: qml/Launcher/Drawer.qml:128
532532msgctxt "Apps sorted alphabetically"
533533msgid "A-Z"
534534msgstr ""
po/da.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
11+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Fastgør genvej"
5858
@@ -60,20 +60,20 @@ msgstr "Fastgør genvej"
6060msgid "Quit"
6161msgstr ""
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Gør genvej flytbar"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Log af"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Vil du logge ud?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Lås"
@@ -524,11 +524,11 @@ msgstr ""
524524msgid "Select desktop environment"
525525msgstr ""
526526
527−#: qml/Launcher/Drawer.qml:92
527+#: qml/Launcher/Drawer.qml:93
528528msgid "Search…"
529529msgstr ""
530530
531−#: qml/Launcher/Drawer.qml:127
531+#: qml/Launcher/Drawer.qml:128
532532msgctxt "Apps sorted alphabetically"
533533msgid "A-Z"
534534msgstr ""
po/de.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-01-18 22:45+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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Verknüpfung anheften"
5757
@@ -59,20 +59,20 @@ msgstr "Verknüpfung anheften"
5959msgid "Quit"
6060msgstr "Beenden"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Verknüpfung entfernen"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Abmelden"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Sind Sie sicher, dass Sie sich abmelden wollen?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Sperren"
@@ -527,11 +527,11 @@ msgstr "PIN"
527527msgid "Select desktop environment"
528528msgstr "Arbeitsumgebung auswählen"
529529
530−#: qml/Launcher/Drawer.qml:92
530+#: qml/Launcher/Drawer.qml:93
531531msgid "Search…"
532532msgstr "Suchen …"
533533
534−#: qml/Launcher/Drawer.qml:127
534+#: qml/Launcher/Drawer.qml:128
535535msgctxt "Apps sorted alphabetically"
536536msgid "A-Z"
537537msgstr "A-Z"
po/el.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-04-25 16:24+0000\n"
1212"Last-Translator: Aggelos Arnaoutis <angelosarn@hotmail.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Καρφίτσωμα συντόμευσης"
5757
@@ -59,20 +59,20 @@ msgstr "Καρφίτσωμα συντόμευσης"
5959msgid "Quit"
6060msgstr "Έξοδος"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Ξεκαρφίτσωμα συντόμευσης"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Αποσύνδεση"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Επιθυμείτε σίγουρα να αποσυνδεθείτε;"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Κλείδωμα"
@@ -527,11 +527,11 @@ msgstr "Κωδικός"
527527msgid "Select desktop environment"
528528msgstr "Επιλέξτε περιβάλλον εργασίας"
529529
530−#: qml/Launcher/Drawer.qml:92
530+#: qml/Launcher/Drawer.qml:93
531531msgid "Search…"
532532msgstr ""
533533
534−#: qml/Launcher/Drawer.qml:127
534+#: qml/Launcher/Drawer.qml:128
535535msgctxt "Apps sorted alphabetically"
536536msgid "A-Z"
537537msgstr ""
po/en_AU.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-03-27 10:09+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Pin shortcut"
5757
@@ -59,20 +59,20 @@ msgstr "Pin shortcut"
5959msgid "Quit"
6060msgstr "Quit"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Unpin shortcut"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Log out"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Are you sure you want to log out?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Lock"
@@ -521,11 +521,11 @@ msgstr ""
521521msgid "Select desktop environment"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:92
524+#: qml/Launcher/Drawer.qml:93
525525msgid "Search…"
526526msgstr ""
527527
528−#: qml/Launcher/Drawer.qml:127
528+#: qml/Launcher/Drawer.qml:128
529529msgctxt "Apps sorted alphabetically"
530530msgid "A-Z"
531531msgstr ""
po/en_GB.po+13−13
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-07-05 00:37+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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr "Login"
5050msgid "Guest Session"
5151msgstr "Guest Session"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Pin shortcut"
5757
@@ -59,20 +59,20 @@ msgstr "Pin shortcut"
5959msgid "Quit"
6060msgstr "Quit"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Unpin shortcut"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Log out"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Are you sure you want to log out?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Lock"
@@ -199,7 +199,7 @@ msgstr "Switches applications via the launcher."
199199
200200#: qml/Components/KeyboardShortcutsOverlay.qml:164
201201msgid "Super + 1 to 0"
202−msgstr ""
202+msgstr "Super + 1 to 0"
203203
204204#: qml/Components/KeyboardShortcutsOverlay.qml:169
205205msgid "Same as clicking on a launcher icon."
@@ -521,11 +521,11 @@ msgstr "Passcode"
521521msgid "Select desktop environment"
522522msgstr "Select desktop environment"
523523
524−#: qml/Launcher/Drawer.qml:92
524+#: qml/Launcher/Drawer.qml:93
525525msgid "Search…"
526526msgstr "Search…"
527527
528−#: qml/Launcher/Drawer.qml:127
528+#: qml/Launcher/Drawer.qml:128
529529msgctxt "Apps sorted alphabetically"
530530msgid "A-Z"
531531msgstr "A-Z"
@@ -623,7 +623,7 @@ msgstr "Call back"
623623
624624#: qml/Panel/PanelMenuPage.qml:92
625625msgid "Back"
626−msgstr ""
626+msgstr "Back"
627627
628628#: qml/Stage/SideStage.qml:76
629629msgid "Drag using 3 fingers any application from one window to the other"
po/eo.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr "Ĉesi"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Elsaluti"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Ĉu vi certas, ke vi volas elsaluti?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Ŝlosi"
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/es.po+15−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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-03-05 14:59+0000\n"
1212"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
1313"Language-Team: Spanish <es@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr "Acceder"
5050msgid "Guest Session"
5151msgstr "Sesión de invitado"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Anclar"
5757
@@ -59,20 +59,20 @@ msgstr "Anclar"
5959msgid "Quit"
6060msgstr "Salir"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Desanclar"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Cerrar la sesión"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "¿Confirma que quiere cerrar la sesión?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Bloquear"
@@ -199,7 +199,7 @@ msgstr "Recorre las aplicaciones del Lanzador."
199199
200200#: qml/Components/KeyboardShortcutsOverlay.qml:164
201201msgid "Super + 1 to 0"
202−msgstr ""
202+msgstr "Super + 1 a 0"
203203
204204#: qml/Components/KeyboardShortcutsOverlay.qml:169
205205msgid "Same as clicking on a launcher icon."
@@ -504,11 +504,11 @@ msgstr "Pruebe de nuevo"
504504
505505#: qml/Greeter/Greeter.qml:562
506506msgid "Enter passphrase to unlock"
507−msgstr ""
507+msgstr "Introduzca la contraseña para desbloquear"
508508
509509#: qml/Greeter/Greeter.qml:563
510510msgid "Enter passcode to unlock"
511−msgstr ""
511+msgstr "Introduzca el código para desbloquear"
512512
513513#: qml/Greeter/NarrowView.qml:242
514514msgid "Emergency"
@@ -526,11 +526,11 @@ msgstr "Código"
526526msgid "Select desktop environment"
527527msgstr "Seleccionar entorno de escritorio"
528528
529−#: qml/Launcher/Drawer.qml:92
529+#: qml/Launcher/Drawer.qml:93
530530msgid "Search…"
531531msgstr "Buscar…"
532532
533−#: qml/Launcher/Drawer.qml:127
533+#: qml/Launcher/Drawer.qml:128
534534msgctxt "Apps sorted alphabetically"
535535msgid "A-Z"
536536msgstr "A-Z"
@@ -628,7 +628,7 @@ msgstr "Devolver llamada"
628628
629629#: qml/Panel/PanelMenuPage.qml:92
630630msgid "Back"
631−msgstr ""
631+msgstr "Atrás"
632632
633633#: qml/Stage/SideStage.qml:76
634634msgid "Drag using 3 fingers any application from one window to the other"
po/et.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-12-28 06:29+0000\n"
1212"Last-Translator: Karlis <Unknown>\n"
1313"Language-Team: Estonian <et@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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr "Välju"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Logi välja"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/eu.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:12+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Ainguratu lasterbidea"
5757
@@ -59,20 +59,20 @@ msgstr "Ainguratu lasterbidea"
5959msgid "Quit"
6060msgstr "Irten"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Askatu lasterbidea"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Amaitu saioa"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Ziur saioa amaitu nahi duzula?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Blokeatu"
@@ -520,11 +520,11 @@ msgstr ""
520520msgid "Select desktop environment"
521521msgstr ""
522522
523−#: qml/Launcher/Drawer.qml:92
523+#: qml/Launcher/Drawer.qml:93
524524msgid "Search…"
525525msgstr ""
526526
527−#: qml/Launcher/Drawer.qml:127
527+#: qml/Launcher/Drawer.qml:128
528528msgctxt "Apps sorted alphabetically"
529529msgid "A-Z"
530530msgstr ""
po/fa.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-10-18 07:03+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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "سنجاق کردن میانبر"
5757
@@ -59,20 +59,20 @@ msgstr "سنجاق کردن میانبر"
5959msgid "Quit"
6060msgstr "خروج"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "برداشتن سنجاق میانبر"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "خروج از حساب"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "مطمئنید که می‌خواهید از حساب خارج شوید"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "قفل"
@@ -522,11 +522,11 @@ msgstr "رمزعبور"
522522msgid "Select desktop environment"
523523msgstr "گزینش محیط میزکار"
524524
525−#: qml/Launcher/Drawer.qml:92
525+#: qml/Launcher/Drawer.qml:93
526526msgid "Search…"
527527msgstr ""
528528
529−#: qml/Launcher/Drawer.qml:127
529+#: qml/Launcher/Drawer.qml:128
530530msgctxt "Apps sorted alphabetically"
531531msgid "A-Z"
532532msgstr ""
po/fi.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr "Kirjaudu"
5050msgid "Guest Session"
5151msgstr "Vierasistunto"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Kiinnitä pikakuvake"
5757
@@ -59,20 +59,20 @@ msgstr "Kiinnitä pikakuvake"
5959msgid "Quit"
6060msgstr "Lopeta"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Poista pikakuvakkeen kiinnitys"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Kirjaudu ulos"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Haluatko varmasti kirjautua ulos?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Lukitse"
@@ -525,11 +525,11 @@ msgstr "Suojakoodi"
525525msgid "Select desktop environment"
526526msgstr "Valitse työpöytäympäristö"
527527
528−#: qml/Launcher/Drawer.qml:92
528+#: qml/Launcher/Drawer.qml:93
529529msgid "Search…"
530530msgstr "Etsi…"
531531
532−#: qml/Launcher/Drawer.qml:127
532+#: qml/Launcher/Drawer.qml:128
533533msgctxt "Apps sorted alphabetically"
534534msgid "A-Z"
535535msgstr "A-Ö"
po/fo.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2014-01-14 20:08+0000\n"
1212"Last-Translator: Jógvan Olsen <jo@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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Heft snarveg"
5757
@@ -59,20 +59,20 @@ msgstr "Heft snarveg"
5959msgid "Quit"
6060msgstr "Gevst"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Óheft snarveg"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Útrita"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Ert tú vísur ið tú vilt rita út?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Læs"
@@ -521,11 +521,11 @@ msgstr ""
521521msgid "Select desktop environment"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:92
524+#: qml/Launcher/Drawer.qml:93
525525msgid "Search…"
526526msgstr ""
527527
528−#: qml/Launcher/Drawer.qml:127
528+#: qml/Launcher/Drawer.qml:128
529529msgctxt "Apps sorted alphabetically"
530530msgid "A-Z"
531531msgstr ""
po/fr.po+13−13
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-02-07 18:31+0000\n"
1212"Last-Translator: Anne017 <anneonyme017@openmailbox.org>\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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr "Se connecter"
5050msgid "Guest Session"
5151msgstr "Session d'invité"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Épingler le raccourci"
5757
@@ -59,20 +59,20 @@ msgstr "Épingler le raccourci"
5959msgid "Quit"
6060msgstr "Quitter"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Détacher le raccourci"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Fermer la session"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Êtes-vous sûr de vouloir vous déconnecter ?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Verrouiller"
@@ -199,7 +199,7 @@ msgstr "Bascule les applications via le lanceur."
199199
200200#: qml/Components/KeyboardShortcutsOverlay.qml:164
201201msgid "Super + 1 to 0"
202−msgstr ""
202+msgstr "Super + 1 à 0"
203203
204204#: qml/Components/KeyboardShortcutsOverlay.qml:169
205205msgid "Same as clicking on a launcher icon."
@@ -529,11 +529,11 @@ msgstr "Code"
529529msgid "Select desktop environment"
530530msgstr "Sélectionner l'environnement de bureau"
531531
532−#: qml/Launcher/Drawer.qml:92
532+#: qml/Launcher/Drawer.qml:93
533533msgid "Search…"
534534msgstr "Rechercher..."
535535
536−#: qml/Launcher/Drawer.qml:127
536+#: qml/Launcher/Drawer.qml:128
537537msgctxt "Apps sorted alphabetically"
538538msgid "A-Z"
539539msgstr "A-Z"
@@ -631,7 +631,7 @@ msgstr "Rappeler"
631631
632632#: qml/Panel/PanelMenuPage.qml:92
633633msgid "Back"
634−msgstr ""
634+msgstr "Retour"
635635
636636#: qml/Stage/SideStage.qml:76
637637msgid "Drag using 3 fingers any application from one window to the other"
po/ga.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-01-25 11:33+0000\n"
1212"Last-Translator: Joshua Kiley <Unknown>\n"
1313"Language-Team: Irish <ga@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Cruthaigh Aicearra Leis An Bharra"
5757
@@ -59,20 +59,20 @@ msgstr "Cruthaigh Aicearra Leis An Bharra"
5959msgid "Quit"
6060msgstr "Éirigh as"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Bain Aicearra Den Bharra"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Logáil Amach"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "An bhfuil tú cinnte gur mhaith leat lógáil amach?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Cuir Faoi Ghlas"
@@ -518,11 +518,11 @@ msgstr ""
518518msgid "Select desktop environment"
519519msgstr ""
520520
521−#: qml/Launcher/Drawer.qml:92
521+#: qml/Launcher/Drawer.qml:93
522522msgid "Search…"
523523msgstr ""
524524
525−#: qml/Launcher/Drawer.qml:127
525+#: qml/Launcher/Drawer.qml:128
526526msgctxt "Apps sorted alphabetically"
527527msgid "A-Z"
528528msgstr ""
po/gd.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-04-08 18:34+0000\n"
1212"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
1313"Language-Team: Fòram na Gàidhlig\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
1818"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121"Language: gd\n"
2222
2323#: plugins/LightDM/Greeter.cpp:188
@@ -52,8 +52,8 @@ msgstr ""
5252msgid "Guest Session"
5353msgstr ""
5454
55−#: plugins/Unity/Launcher/launcheritem.cpp:50
56−#: plugins/Unity/Launcher/launcheritem.cpp:122
55+#: plugins/Unity/Launcher/launcheritem.cpp:49
56+#: plugins/Unity/Launcher/launcheritem.cpp:123
5757msgid "Pin shortcut"
5858msgstr "Prìnich ath-ghoirid"
5959
@@ -61,20 +61,20 @@ msgstr "Prìnich ath-ghoirid"
6161msgid "Quit"
6262msgstr "Fàg an-seo"
6363
64−#: plugins/Unity/Launcher/launcheritem.cpp:122
64+#: plugins/Unity/Launcher/launcheritem.cpp:123
6565msgid "Unpin shortcut"
6666msgstr "Neo-phrìnich an ath-ghoirid"
6767
68−#: qml/Components/Dialogs.qml:177
68+#: qml/Components/Dialogs.qml:176
6969msgctxt "Title: Lock/Log out dialog"
7070msgid "Log out"
7171msgstr "Clàraich a-mach"
7272
73−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:177
7474msgid "Are you sure you want to log out?"
7575msgstr "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?"
7676
77−#: qml/Components/Dialogs.qml:181
77+#: qml/Components/Dialogs.qml:180
7878msgctxt "Button: Lock the system"
7979msgid "Lock"
8080msgstr "Glais"
@@ -532,11 +532,11 @@ msgstr "Còd-faire"
532532msgid "Select desktop environment"
533533msgstr "Tagh àrainneachd an deasga"
534534
535−#: qml/Launcher/Drawer.qml:92
535+#: qml/Launcher/Drawer.qml:93
536536msgid "Search…"
537537msgstr ""
538538
539−#: qml/Launcher/Drawer.qml:127
539+#: qml/Launcher/Drawer.qml:128
540540msgctxt "Apps sorted alphabetically"
541541msgid "A-Z"
542542msgstr ""
po/gl.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-02-02 07:25+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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr "Iniciar sesión"
5050msgid "Guest Session"
5151msgstr "Sesión de convidado"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Fixar o atallo"
5757
@@ -59,20 +59,20 @@ msgstr "Fixar o atallo"
5959msgid "Quit"
6060msgstr "Saír"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Eliminar o atallo"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Saír"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Desexa pechar a sesión?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Bloquear"
@@ -521,11 +521,11 @@ msgstr "Clave"
521521msgid "Select desktop environment"
522522msgstr "Seleccione o ambiente de escritorio"
523523
524−#: qml/Launcher/Drawer.qml:92
524+#: qml/Launcher/Drawer.qml:93
525525msgid "Search…"
526526msgstr "Buscar..."
527527
528−#: qml/Launcher/Drawer.qml:127
528+#: qml/Launcher/Drawer.qml:128
529529msgctxt "Apps sorted alphabetically"
530530msgid "A-Z"
531531msgstr "A-Z"
po/gv.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Jean freenaghey yn cassan er lheh"
5757
@@ -59,20 +59,20 @@ msgstr "Jean freenaghey yn cassan er lheh"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Jean neu-freenaghey yn cassan er lheh"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Vel oo shickyr dy vel oo laccal loggal magh?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -524,11 +524,11 @@ msgstr ""
524524msgid "Select desktop environment"
525525msgstr ""
526526
527−#: qml/Launcher/Drawer.qml:92
527+#: qml/Launcher/Drawer.qml:93
528528msgid "Search…"
529529msgstr ""
530530
531−#: qml/Launcher/Drawer.qml:127
531+#: qml/Launcher/Drawer.qml:128
532532msgctxt "Apps sorted alphabetically"
533533msgid "A-Z"
534534msgstr ""
po/he.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "הצמדת קיצור דרך"
5757
@@ -59,20 +59,20 @@ msgstr "הצמדת קיצור דרך"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "הפרדת קיצור הדרך"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "יציאה"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "האם אכן לצאת מהמערכת?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "נעילה"
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/hi.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/hr.po+25−25
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-05-04 17:52+0000\n"
1212"Last-Translator: gogo <trebelnik2@gmail.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: 2017-03-14 07:13+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr "Prijava"
5151msgid "Guest Session"
5252msgstr "Prijava gosta"
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Pričvrsti kraticu"
5858
@@ -60,20 +60,20 @@ msgstr "Pričvrsti kraticu"
6060msgid "Quit"
6161msgstr "Zatvori"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Ukloni kraticu"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Odjava"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Sigurno se želite odjaviti?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Zaključaj"
@@ -200,7 +200,7 @@ msgstr "Prebacuje aplikacije putem pokretača."
200200
201201#: qml/Components/KeyboardShortcutsOverlay.qml:164
202202msgid "Super + 1 to 0"
203−msgstr ""
203+msgstr "Super + 1 do 0"
204204
205205#: qml/Components/KeyboardShortcutsOverlay.qml:169
206206msgid "Same as clicking on a launcher icon."
@@ -208,11 +208,11 @@ msgstr "Isto kao i klikanje na ikonu pokretača."
208208
209209#: qml/Components/KeyboardShortcutsOverlay.qml:177
210210msgid "Super + A"
211−msgstr ""
211+msgstr "Super + A"
212212
213213#: qml/Components/KeyboardShortcutsOverlay.qml:182
214214msgid "Opens the Application Drawer."
215−msgstr ""
215+msgstr "Otvara pretinac aplikacija."
216216
217217#: qml/Components/KeyboardShortcutsOverlay.qml:194
218218msgid "Scopes"
@@ -362,19 +362,19 @@ msgstr ""
362362
363363#: qml/Components/VirtualTouchPad.qml:327
364364msgid "Tap left button to click."
365−msgstr ""
365+msgstr "Dotaknite lijevu tipku za klik."
366366
367367#: qml/Components/VirtualTouchPad.qml:339
368368msgid "Tap right button to right click."
369−msgstr ""
369+msgstr "Dotaknite desnu tipku za klik."
370370
371371#: qml/Components/VirtualTouchPad.qml:351
372372msgid "Swipe with two fingers to scroll."
373−msgstr ""
373+msgstr "Povucite s dva prsta za pomicanje."
374374
375375#: qml/Components/VirtualTouchPad.qml:396
376376msgid "Find more settings in the system settings."
377−msgstr ""
377+msgstr "Potražite više postavki u postavkama sustava."
378378
379379#: qml/Dash/DashPageHeader.qml:361
380380msgctxt "Button: Open the Ubuntu Store"
@@ -503,11 +503,11 @@ msgstr "Pokušaj ponovno"
503503
504504#: qml/Greeter/Greeter.qml:562
505505msgid "Enter passphrase to unlock"
506−msgstr ""
506+msgstr "Upišite lozinku za otključavanje"
507507
508508#: qml/Greeter/Greeter.qml:563
509509msgid "Enter passcode to unlock"
510−msgstr ""
510+msgstr "Upišite kôd za otključavanje"
511511
512512#: qml/Greeter/NarrowView.qml:242
513513msgid "Emergency"
@@ -525,18 +525,18 @@ msgstr "Kôd"
525525msgid "Select desktop environment"
526526msgstr "Odaberi okruženje radne površine"
527527
528−#: qml/Launcher/Drawer.qml:92
528+#: qml/Launcher/Drawer.qml:93
529529msgid "Search…"
530−msgstr ""
530+msgstr "Pretraži…"
531531
532−#: qml/Launcher/Drawer.qml:127
532+#: qml/Launcher/Drawer.qml:128
533533msgctxt "Apps sorted alphabetically"
534534msgid "A-Z"
535−msgstr ""
535+msgstr "A-Ž"
536536
537537#: qml/Launcher/MoreAppsHeader.qml:55
538538msgid "More apps in the store"
539−msgstr ""
539+msgstr "Više aplikacija u trgovini"
540540
541541#: qml/Notifications/NotificationMenuItemFactory.qml:124
542542msgid "Show password"
@@ -630,7 +630,7 @@ msgstr "Uzvrati poziv"
630630
631631#: qml/Panel/PanelMenuPage.qml:92
632632msgid "Back"
633−msgstr ""
633+msgstr "Natrag"
634634
635635#: qml/Stage/SideStage.qml:76
636636msgid "Drag using 3 fingers any application from one window to the other"
@@ -639,7 +639,7 @@ msgstr ""
639639
640640#: qml/Tutorial/TutorialLeftLong.qml:49
641641msgid "Long swipe from the left edge to open the Application Drawer"
642−msgstr ""
642+msgstr "Duže povucite s lijevog ruba za otvaranje pretinca aplikacija"
643643
644644#: qml/Tutorial/TutorialLeft.qml:47
645645msgid "Short swipe from the left edge to open the launcher"
po/hu.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-08-17 10:53+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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Indító rögzítése"
5757
@@ -59,20 +59,20 @@ msgstr "Indító rögzítése"
5959msgid "Quit"
6060msgstr "Kilépés"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Indító feloldása"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Kijelentkezés"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Biztos benne, hogy kijelentkezik?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Zárolás"
@@ -523,11 +523,11 @@ msgstr "Jelkód"
523523msgid "Select desktop environment"
524524msgstr "Asztali-környezet kiválasztása"
525525
526−#: qml/Launcher/Drawer.qml:92
526+#: qml/Launcher/Drawer.qml:93
527527msgid "Search…"
528528msgstr ""
529529
530−#: qml/Launcher/Drawer.qml:127
530+#: qml/Launcher/Drawer.qml:128
531531msgctxt "Apps sorted alphabetically"
532532msgid "A-Z"
533533msgstr ""
po/hy.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:12+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Փակցնել պիտակը"
5757
@@ -59,20 +59,20 @@ msgstr "Փակցնել պիտակը"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Հեռացնել պիտակը"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Դուք համոզվա՞ծ եք, որ ցանկանում եք դուրս գալ համակարգից"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -521,11 +521,11 @@ msgstr ""
521521msgid "Select desktop environment"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:92
524+#: qml/Launcher/Drawer.qml:93
525525msgid "Search…"
526526msgstr ""
527527
528−#: qml/Launcher/Drawer.qml:127
528+#: qml/Launcher/Drawer.qml:128
529529msgctxt "Apps sorted alphabetically"
530530msgid "A-Z"
531531msgstr ""
po/ia.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Via-breve a pin"
5757
@@ -59,20 +59,20 @@ msgstr "Via-breve a pin"
5959msgid "Quit"
6060msgstr "Quitar"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Via-breve a levar pin"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Clauder de session"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Desira tu vermente Clauder le Session"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Blocar"
@@ -523,11 +523,11 @@ msgstr "Codice-contrasigno"
523523msgid "Select desktop environment"
524524msgstr "Seliger le ambiente del scriptorio"
525525
526−#: qml/Launcher/Drawer.qml:92
526+#: qml/Launcher/Drawer.qml:93
527527msgid "Search…"
528528msgstr ""
529529
530−#: qml/Launcher/Drawer.qml:127
530+#: qml/Launcher/Drawer.qml:128
531531msgctxt "Apps sorted alphabetically"
532532msgid "A-Z"
533533msgstr ""
po/id.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Paku pintasan"
5757
@@ -59,20 +59,20 @@ msgstr "Paku pintasan"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Lepas pintasan"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Anda yakin ingin log keluar?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -520,11 +520,11 @@ msgstr ""
520520msgid "Select desktop environment"
521521msgstr ""
522522
523−#: qml/Launcher/Drawer.qml:92
523+#: qml/Launcher/Drawer.qml:93
524524msgid "Search…"
525525msgstr ""
526526
527−#: qml/Launcher/Drawer.qml:127
527+#: qml/Launcher/Drawer.qml:128
528528msgctxt "Apps sorted alphabetically"
529529msgid "A-Z"
530530msgstr ""
po/is.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
12+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
21−"X-Generator: Launchpad (build 18331)\n"
20+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
21+"X-Generator: Launchpad (build 18334)\n"
2222"Language: is\n"
2323
2424#: plugins/LightDM/Greeter.cpp:188
@@ -53,8 +53,8 @@ msgstr ""
5353msgid "Guest Session"
5454msgstr ""
5555
56−#: plugins/Unity/Launcher/launcheritem.cpp:50
57−#: plugins/Unity/Launcher/launcheritem.cpp:122
56+#: plugins/Unity/Launcher/launcheritem.cpp:49
57+#: plugins/Unity/Launcher/launcheritem.cpp:123
5858msgid "Pin shortcut"
5959msgstr "Pinna flýtilykil"
6060
@@ -62,20 +62,20 @@ msgstr "Pinna flýtilykil"
6262msgid "Quit"
6363msgstr ""
6464
65−#: plugins/Unity/Launcher/launcheritem.cpp:122
65+#: plugins/Unity/Launcher/launcheritem.cpp:123
6666msgid "Unpin shortcut"
6767msgstr "Losa flýtilykil"
6868
69−#: qml/Components/Dialogs.qml:177
69+#: qml/Components/Dialogs.qml:176
7070msgctxt "Title: Lock/Log out dialog"
7171msgid "Log out"
7272msgstr ""
7373
74−#: qml/Components/Dialogs.qml:178
74+#: qml/Components/Dialogs.qml:177
7575msgid "Are you sure you want to log out?"
7676msgstr "Ertu viss um að þú viljir skrá þig út?"
7777
78−#: qml/Components/Dialogs.qml:181
78+#: qml/Components/Dialogs.qml:180
7979msgctxt "Button: Lock the system"
8080msgid "Lock"
8181msgstr ""
@@ -526,11 +526,11 @@ msgstr ""
526526msgid "Select desktop environment"
527527msgstr ""
528528
529−#: qml/Launcher/Drawer.qml:92
529+#: qml/Launcher/Drawer.qml:93
530530msgid "Search…"
531531msgstr ""
532532
533−#: qml/Launcher/Drawer.qml:127
533+#: qml/Launcher/Drawer.qml:128
534534msgctxt "Apps sorted alphabetically"
535535msgid "A-Z"
536536msgstr ""
po/it.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-02-14 10:03+0000\n"
1212"Last-Translator: Milo Casagrande <milo.casagrande@gmail.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr "Accesso"
5050msgid "Guest Session"
5151msgstr "Sessione ospite"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Blocca scorciatoia"
5757
@@ -59,20 +59,20 @@ msgstr "Blocca scorciatoia"
5959msgid "Quit"
6060msgstr "Esci"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Sblocca scorciatoia"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Termina sessione"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Terminare veramente la sessione?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Blocca"
@@ -527,11 +527,11 @@ msgstr "Codice"
527527msgid "Select desktop environment"
528528msgstr "Seleziona l'ambiente grafico"
529529
530−#: qml/Launcher/Drawer.qml:92
530+#: qml/Launcher/Drawer.qml:93
531531msgid "Search…"
532532msgstr "Cerca…"
533533
534−#: qml/Launcher/Drawer.qml:127
534+#: qml/Launcher/Drawer.qml:128
535535msgctxt "Apps sorted alphabetically"
536536msgid "A-Z"
537537msgstr "A-Z"
po/ja.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "ショートカットを追加する"
5757
@@ -59,20 +59,20 @@ msgstr "ショートカットを追加する"
5959msgid "Quit"
6060msgstr "終了"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "ショートカットを削除する"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "ログアウト"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "本当にログアウトしますか?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "ロック"
@@ -516,11 +516,11 @@ msgstr ""
516516msgid "Select desktop environment"
517517msgstr ""
518518
519−#: qml/Launcher/Drawer.qml:92
519+#: qml/Launcher/Drawer.qml:93
520520msgid "Search…"
521521msgstr ""
522522
523−#: qml/Launcher/Drawer.qml:127
523+#: qml/Launcher/Drawer.qml:128
524524msgctxt "Apps sorted alphabetically"
525525msgid "A-Z"
526526msgstr ""
po/km.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "ភ្ជាប់​ផ្លូវកាត់"
5757
@@ -59,20 +59,20 @@ msgstr "ភ្ជាប់​ផ្លូវកាត់"
5959msgid "Quit"
6060msgstr "ចាកចេញ"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "មិន​ភ្ជាប់ផ្លូវកាត់"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "ចេញ"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "តើ​អ្នក​ពិតជា​ចង់​ចេញ​មែន​ឬ?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "ចាក់សោ"
@@ -519,11 +519,11 @@ msgstr ""
519519msgid "Select desktop environment"
520520msgstr ""
521521
522−#: qml/Launcher/Drawer.qml:92
522+#: qml/Launcher/Drawer.qml:93
523523msgid "Search…"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:127
526+#: qml/Launcher/Drawer.qml:128
527527msgctxt "Apps sorted alphabetically"
528528msgid "A-Z"
529529msgstr ""
po/kn.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/ko.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "바로 가기를 고정"
5757
@@ -59,20 +59,20 @@ msgstr "바로 가기를 고정"
5959msgid "Quit"
6060msgstr "끝내기"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "바로 가기를 고정 해제"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "로그아웃"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "정말 로그아웃하시겠습니까?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "잠그기"
@@ -516,11 +516,11 @@ msgstr ""
516516msgid "Select desktop environment"
517517msgstr ""
518518
519−#: qml/Launcher/Drawer.qml:92
519+#: qml/Launcher/Drawer.qml:93
520520msgid "Search…"
521521msgstr ""
522522
523−#: qml/Launcher/Drawer.qml:127
523+#: qml/Launcher/Drawer.qml:128
524524msgctxt "Apps sorted alphabetically"
525525msgid "A-Z"
526526msgstr ""
po/ku.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr "Têkevê"
5050msgid "Guest Session"
5151msgstr "Danişîna Mêvanî"
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Kurteriyê pêveke"
5757
@@ -59,20 +59,20 @@ msgstr "Kurteriyê pêveke"
5959msgid "Quit"
6060msgstr "Derkeve"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Derzîdanka kurteriyê rake"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Derkeve"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Ji dil dixwazî derkevî?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Qufl Bike"
@@ -519,11 +519,11 @@ msgstr ""
519519msgid "Select desktop environment"
520520msgstr "Derdora sermaseyê hilbijêre"
521521
522−#: qml/Launcher/Drawer.qml:92
522+#: qml/Launcher/Drawer.qml:93
523523msgid "Search…"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:127
526+#: qml/Launcher/Drawer.qml:128
527527msgctxt "Apps sorted alphabetically"
528528msgid "A-Z"
529529msgstr ""
po/ky.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/lo.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/lt.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr ""
5858
@@ -60,20 +60,20 @@ msgstr ""
6060msgid "Quit"
6161msgstr ""
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr ""
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr ""
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr ""
@@ -518,11 +518,11 @@ msgstr ""
518518msgid "Select desktop environment"
519519msgstr ""
520520
521−#: qml/Launcher/Drawer.qml:92
521+#: qml/Launcher/Drawer.qml:93
522522msgid "Search…"
523523msgstr ""
524524
525−#: qml/Launcher/Drawer.qml:127
525+#: qml/Launcher/Drawer.qml:128
526526msgctxt "Apps sorted alphabetically"
527527msgid "A-Z"
528528msgstr ""
po/lv.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
11+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121"Language: lv\n"
2222
2323#: plugins/LightDM/Greeter.cpp:188
@@ -52,8 +52,8 @@ msgstr ""
5252msgid "Guest Session"
5353msgstr ""
5454
55−#: plugins/Unity/Launcher/launcheritem.cpp:50
56−#: plugins/Unity/Launcher/launcheritem.cpp:122
55+#: plugins/Unity/Launcher/launcheritem.cpp:49
56+#: plugins/Unity/Launcher/launcheritem.cpp:123
5757msgid "Pin shortcut"
5858msgstr "Piespraust īsceļu"
5959
@@ -61,20 +61,20 @@ msgstr "Piespraust īsceļu"
6161msgid "Quit"
6262msgstr "Iziet"
6363
64−#: plugins/Unity/Launcher/launcheritem.cpp:122
64+#: plugins/Unity/Launcher/launcheritem.cpp:123
6565msgid "Unpin shortcut"
6666msgstr "Noņemt īsceļu"
6767
68−#: qml/Components/Dialogs.qml:177
68+#: qml/Components/Dialogs.qml:176
6969msgctxt "Title: Lock/Log out dialog"
7070msgid "Log out"
7171msgstr "Izrakstīties"
7272
73−#: qml/Components/Dialogs.qml:178
73+#: qml/Components/Dialogs.qml:177
7474msgid "Are you sure you want to log out?"
7575msgstr "Vai tiešām vēlaties izrakstīties?"
7676
77−#: qml/Components/Dialogs.qml:181
77+#: qml/Components/Dialogs.qml:180
7878msgctxt "Button: Lock the system"
7979msgid "Lock"
8080msgstr "Bloķēt"
@@ -522,11 +522,11 @@ msgstr ""
522522msgid "Select desktop environment"
523523msgstr ""
524524
525−#: qml/Launcher/Drawer.qml:92
525+#: qml/Launcher/Drawer.qml:93
526526msgid "Search…"
527527msgstr ""
528528
529−#: qml/Launcher/Drawer.qml:127
529+#: qml/Launcher/Drawer.qml:128
530530msgctxt "Apps sorted alphabetically"
531531msgid "A-Z"
532532msgstr ""
po/ml.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/mr.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "लॉक करा"
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/ms.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-12-20 14:02+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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Cemat pintasan"
5757
@@ -59,20 +59,20 @@ msgstr "Cemat pintasan"
5959msgid "Quit"
6060msgstr "Keluar"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Nyahcemat pintasan"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Daftar keluar"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Anda pasti mahu mendaftar keluar?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Kunci"
@@ -521,11 +521,11 @@ msgstr "Kod laluan"
521521msgid "Select desktop environment"
522522msgstr "Pilih persekitaran desktop"
523523
524−#: qml/Launcher/Drawer.qml:92
524+#: qml/Launcher/Drawer.qml:93
525525msgid "Search…"
526526msgstr "Gelintar..."
527527
528−#: qml/Launcher/Drawer.qml:127
528+#: qml/Launcher/Drawer.qml:128
529529msgctxt "Apps sorted alphabetically"
530530msgid "A-Z"
531531msgstr "A-Z"
po/my.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "ထွက်"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "သော့ခတ်"
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/nb.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-01-27 07:01+0000\n"
1212"Last-Translator: Åka Sikrom <Unknown>\n"
1313"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Fest snarvei"
5757
@@ -59,20 +59,20 @@ msgstr "Fest snarvei"
5959msgid "Quit"
6060msgstr "Avslutt"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Fjern snarvei"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Logg ut"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Er du sikker på at du vil logge ut?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Lås"
@@ -525,11 +525,11 @@ msgstr "Kode"
525525msgid "Select desktop environment"
526526msgstr "Velg skrivebordsmiljø"
527527
528−#: qml/Launcher/Drawer.qml:92
528+#: qml/Launcher/Drawer.qml:93
529529msgid "Search…"
530530msgstr "Søk …"
531531
532−#: qml/Launcher/Drawer.qml:127
532+#: qml/Launcher/Drawer.qml:128
533533msgctxt "Apps sorted alphabetically"
534534msgid "A-Z"
535535msgstr "A-Å"
po/ne.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr "बन्द गर्नुहोस्"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "लग आउट"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "ताला लगाउने"
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/nl.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-11-01 08:29+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: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Snelkoppeling vastzetten"
5757
@@ -59,20 +59,20 @@ msgstr "Snelkoppeling vastzetten"
5959msgid "Quit"
6060msgstr "Afsluiten"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Snelkoppeling losmaken"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Afmelden"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Weet u zeker dat u zich wilt afmelden?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Vergrendelen"
@@ -528,11 +528,11 @@ msgstr "Toegangscode"
528528msgid "Select desktop environment"
529529msgstr "Bureaubladomgeving selecteren"
530530
531−#: qml/Launcher/Drawer.qml:92
531+#: qml/Launcher/Drawer.qml:93
532532msgid "Search…"
533533msgstr ""
534534
535−#: qml/Launcher/Drawer.qml:127
535+#: qml/Launcher/Drawer.qml:128
536536msgctxt "Apps sorted alphabetically"
537537msgid "A-Z"
538538msgstr ""
po/nn.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/oc.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-10-27 13:43+0000\n"
1212"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Espingolar l'acorchi"
5757
@@ -59,20 +59,20 @@ msgstr "Espingolar l'acorchi"
5959msgid "Quit"
6060msgstr "Quitar"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Destacar l'acorchi"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Tampar la session"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Sètz segur que vos volètz desconnectar ?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Verrolhar"
@@ -528,11 +528,11 @@ msgstr "Còdi"
528528msgid "Select desktop environment"
529529msgstr "Seleccionar l'environament de burèu"
530530
531−#: qml/Launcher/Drawer.qml:92
531+#: qml/Launcher/Drawer.qml:93
532532msgid "Search…"
533533msgstr ""
534534
535−#: qml/Launcher/Drawer.qml:127
535+#: qml/Launcher/Drawer.qml:128
536536msgctxt "Apps sorted alphabetically"
537537msgid "A-Z"
538538msgstr ""
po/or.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/pa.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "ਸ਼ਾਰਟਕੱਟ ਪਿੰਨ ਲਗਾਓ"
5757
@@ -59,20 +59,20 @@ msgstr "ਸ਼ਾਰਟਕੱਟ ਪਿੰਨ ਲਗਾਓ"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "ਸ਼ਾਰਟਕੱਟ ਪਿੰਨ ਹਟਾਓ"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "ਲਾਗ ਆਉਟ"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "ਕੀ ਤੁਸੀਂ ਲਾਗ ਆਉਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "ਲਾਕ"
@@ -519,11 +519,11 @@ msgstr ""
519519msgid "Select desktop environment"
520520msgstr ""
521521
522−#: qml/Launcher/Drawer.qml:92
522+#: qml/Launcher/Drawer.qml:93
523523msgid "Search…"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:127
526+#: qml/Launcher/Drawer.qml:128
527527msgctxt "Apps sorted alphabetically"
528528msgid "A-Z"
529529msgstr ""
po/pl.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-11-01 15:06+0000\n"
1212"Last-Translator: Krzysztof Tataradziński <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: 2017-03-14 07:13+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Przypnij skrót"
5858
@@ -60,20 +60,20 @@ msgstr "Przypnij skrót"
6060msgid "Quit"
6161msgstr "Zakończ"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Odepnij skrót"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Wylogowanie"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Wylogować?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Blokada"
@@ -522,11 +522,11 @@ msgstr "Kod"
522522msgid "Select desktop environment"
523523msgstr "Wybierz środowisko graficzne"
524524
525−#: qml/Launcher/Drawer.qml:92
525+#: qml/Launcher/Drawer.qml:93
526526msgid "Search…"
527527msgstr ""
528528
529−#: qml/Launcher/Drawer.qml:127
529+#: qml/Launcher/Drawer.qml:128
530530msgctxt "Apps sorted alphabetically"
531531msgid "A-Z"
532532msgstr ""
po/pt.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-06-20 11:37+0000\n"
1212"Last-Translator: Ivo Xavier <ivoxavier.8@gmail.com>\n"
1313"Language-Team: Portuguese <pt@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:13+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Fixar atalho"
5757
@@ -59,20 +59,20 @@ msgstr "Fixar atalho"
5959msgid "Quit"
6060msgstr "Sair"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Remover atalho"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Terminar a sessão"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Quer mesmo sair?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Bloquear"
@@ -526,11 +526,11 @@ msgstr "Código"
526526msgid "Select desktop environment"
527527msgstr "Selecione o ambiente de trabalho"
528528
529−#: qml/Launcher/Drawer.qml:92
529+#: qml/Launcher/Drawer.qml:93
530530msgid "Search…"
531531msgstr ""
532532
533−#: qml/Launcher/Drawer.qml:127
533+#: qml/Launcher/Drawer.qml:128
534534msgctxt "Apps sorted alphabetically"
535535msgid "A-Z"
536536msgstr ""
po/pt_BR.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Fixar atalho"
5757
@@ -59,20 +59,20 @@ msgstr "Fixar atalho"
5959msgid "Quit"
6060msgstr "Sair"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Desafixar atalho"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Sair"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Você tem certeza que deseja sair?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Travar"
@@ -521,11 +521,11 @@ msgstr ""
521521msgid "Select desktop environment"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:92
524+#: qml/Launcher/Drawer.qml:93
525525msgid "Search…"
526526msgstr ""
527527
528−#: qml/Launcher/Drawer.qml:127
528+#: qml/Launcher/Drawer.qml:128
529529msgctxt "Apps sorted alphabetically"
530530msgid "A-Z"
531531msgstr ""
po/ro.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Fixează scurtătura"
5858
@@ -60,20 +60,20 @@ msgstr "Fixează scurtătura"
6060msgid "Quit"
6161msgstr ""
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Eliberează scurtătura"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Închide sesiunea"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Sunteți sigur că doriți să închideți sesiunea?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Blocare"
@@ -524,11 +524,11 @@ msgstr ""
524524msgid "Select desktop environment"
525525msgstr ""
526526
527−#: qml/Launcher/Drawer.qml:92
527+#: qml/Launcher/Drawer.qml:93
528528msgid "Search…"
529529msgstr ""
530530
531−#: qml/Launcher/Drawer.qml:127
531+#: qml/Launcher/Drawer.qml:128
532532msgctxt "Apps sorted alphabetically"
533533msgid "A-Z"
534534msgstr ""
po/ru.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr "Гостевой сеанс"
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Закрепить ярлык"
5858
@@ -60,20 +60,20 @@ msgstr "Закрепить ярлык"
6060msgid "Quit"
6161msgstr "Завершить"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Открепить ярлык"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Завершение сеанса"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Завершить сеанс?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Заблокировать"
@@ -525,11 +525,11 @@ msgstr "Секретный код"
525525msgid "Select desktop environment"
526526msgstr "Выберите окружение рабочего стола"
527527
528−#: qml/Launcher/Drawer.qml:92
528+#: qml/Launcher/Drawer.qml:93
529529msgid "Search…"
530530msgstr "Найти..."
531531
532−#: qml/Launcher/Drawer.qml:127
532+#: qml/Launcher/Drawer.qml:128
533533msgctxt "Apps sorted alphabetically"
534534msgid "A-Z"
535535msgstr ""
po/shn.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr "ဢိုတ်း"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/si.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -519,11 +519,11 @@ msgstr ""
519519msgid "Select desktop environment"
520520msgstr ""
521521
522−#: qml/Launcher/Drawer.qml:92
522+#: qml/Launcher/Drawer.qml:93
523523msgid "Search…"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:127
526+#: qml/Launcher/Drawer.qml:128
527527msgctxt "Apps sorted alphabetically"
528528msgid "A-Z"
529529msgstr ""
po/sk.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-09-28 04:43+0000\n"
1212"Last-Translator: P_E_T_O <Unknown>\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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020"Language: sk\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Pripnúť odkaz"
5858
@@ -60,20 +60,20 @@ msgstr "Pripnúť odkaz"
6060msgid "Quit"
6161msgstr "Ukončiť"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Odopnúť odkaz"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Odhlásiť sa"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Ste si istý, že sa chcete odhlásiť?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Zamknúť"
@@ -528,11 +528,11 @@ msgstr "Heslo"
528528msgid "Select desktop environment"
529529msgstr "Vybrať pracovné prostredie"
530530
531−#: qml/Launcher/Drawer.qml:92
531+#: qml/Launcher/Drawer.qml:93
532532msgid "Search…"
533533msgstr ""
534534
535−#: qml/Launcher/Drawer.qml:127
535+#: qml/Launcher/Drawer.qml:128
536536msgctxt "Apps sorted alphabetically"
537537msgid "A-Z"
538538msgstr ""
po/sl.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-01-31 18:34+0000\n"
1212"Last-Translator: Bernard Banko <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
1818"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Pripni bližnjico"
5858
@@ -60,20 +60,20 @@ msgstr "Pripni bližnjico"
6060msgid "Quit"
6161msgstr "Končaj"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Odpni bližnjico"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Odjava"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Ali ste prepričani, da se želite odjaviti?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Zakleni"
@@ -526,11 +526,11 @@ msgstr ""
526526msgid "Select desktop environment"
527527msgstr "Izberite namizno okolje"
528528
529−#: qml/Launcher/Drawer.qml:92
529+#: qml/Launcher/Drawer.qml:93
530530msgid "Search…"
531531msgstr ""
532532
533−#: qml/Launcher/Drawer.qml:127
533+#: qml/Launcher/Drawer.qml:128
534534msgctxt "Apps sorted alphabetically"
535535msgid "A-Z"
536536msgstr ""
po/sq.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-04-21 06:03+0000\n"
1212"Last-Translator: Indrit Bashkimi <indrit.bashkimi@gmail.com>\n"
1313"Language-Team: sq\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:12+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020"Language: sq\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr ""
5858
@@ -60,20 +60,20 @@ msgstr ""
6060msgid "Quit"
6161msgstr "Dil"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr ""
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Dalja"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr ""
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Kyç"
@@ -518,11 +518,11 @@ msgstr ""
518518msgid "Select desktop environment"
519519msgstr ""
520520
521−#: qml/Launcher/Drawer.qml:92
521+#: qml/Launcher/Drawer.qml:93
522522msgid "Search…"
523523msgstr ""
524524
525−#: qml/Launcher/Drawer.qml:127
525+#: qml/Launcher/Drawer.qml:128
526526msgctxt "Apps sorted alphabetically"
527527msgid "A-Z"
528528msgstr ""
po/sr.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
11+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1212"PO-Revision-Date: 2016-08-22 20:43+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: 2017-03-14 07:13+0000\n"
21−"X-Generator: Launchpad (build 18331)\n"
20+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
21+"X-Generator: Launchpad (build 18334)\n"
2222"Language: sr\n"
2323
2424#: plugins/LightDM/Greeter.cpp:188
@@ -53,8 +53,8 @@ msgstr ""
5353msgid "Guest Session"
5454msgstr ""
5555
56−#: plugins/Unity/Launcher/launcheritem.cpp:50
57−#: plugins/Unity/Launcher/launcheritem.cpp:122
56+#: plugins/Unity/Launcher/launcheritem.cpp:49
57+#: plugins/Unity/Launcher/launcheritem.cpp:123
5858msgid "Pin shortcut"
5959msgstr "Прикачи пречицу"
6060
@@ -62,20 +62,20 @@ msgstr "Прикачи пречицу"
6262msgid "Quit"
6363msgstr "Напусти"
6464
65−#: plugins/Unity/Launcher/launcheritem.cpp:122
65+#: plugins/Unity/Launcher/launcheritem.cpp:123
6666msgid "Unpin shortcut"
6767msgstr "Откачи пречицу"
6868
69−#: qml/Components/Dialogs.qml:177
69+#: qml/Components/Dialogs.qml:176
7070msgctxt "Title: Lock/Log out dialog"
7171msgid "Log out"
7272msgstr "Одјава"
7373
74−#: qml/Components/Dialogs.qml:178
74+#: qml/Components/Dialogs.qml:177
7575msgid "Are you sure you want to log out?"
7676msgstr "Сигурно желите да се одјавите?"
7777
78−#: qml/Components/Dialogs.qml:181
78+#: qml/Components/Dialogs.qml:180
7979msgctxt "Button: Lock the system"
8080msgid "Lock"
8181msgstr "Закључај"
@@ -525,11 +525,11 @@ msgstr "Приступни код"
525525msgid "Select desktop environment"
526526msgstr ""
527527
528−#: qml/Launcher/Drawer.qml:92
528+#: qml/Launcher/Drawer.qml:93
529529msgid "Search…"
530530msgstr ""
531531
532−#: qml/Launcher/Drawer.qml:127
532+#: qml/Launcher/Drawer.qml:128
533533msgctxt "Apps sorted alphabetically"
534534msgid "A-Z"
535535msgstr ""
po/sv.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-06-19 19:31+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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020"Language: sv\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Fäst genväg"
5858
@@ -60,20 +60,20 @@ msgstr "Fäst genväg"
6060msgid "Quit"
6161msgstr "Avsluta"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Släpp genväg"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Logga ut"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Är du säker på att du vill logga ut?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Lås"
@@ -523,11 +523,11 @@ msgstr "Lösenkod"
523523msgid "Select desktop environment"
524524msgstr "Välj skrivbordsmiljö"
525525
526−#: qml/Launcher/Drawer.qml:92
526+#: qml/Launcher/Drawer.qml:93
527527msgid "Search…"
528528msgstr ""
529529
530−#: qml/Launcher/Drawer.qml:127
530+#: qml/Launcher/Drawer.qml:128
531531msgctxt "Apps sorted alphabetically"
532532msgid "A-Z"
533533msgstr ""
po/sw.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:13+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Njia ya mkato ya nambari ya siri"
5757
@@ -59,20 +59,20 @@ msgstr "Njia ya mkato ya nambari ya siri"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Toa njia ya mkato ya nambari ya siri"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Logi nje"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Una uhakika unataka kulogi nje?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Funga"
@@ -519,11 +519,11 @@ msgstr ""
519519msgid "Select desktop environment"
520520msgstr ""
521521
522−#: qml/Launcher/Drawer.qml:92
522+#: qml/Launcher/Drawer.qml:93
523523msgid "Search…"
524524msgstr ""
525525
526−#: qml/Launcher/Drawer.qml:127
526+#: qml/Launcher/Drawer.qml:128
527527msgctxt "Apps sorted alphabetically"
528528msgid "A-Z"
529529msgstr ""
po/ta.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-03-02 04:54+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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020"Language: ta\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr ""
5858
@@ -60,20 +60,20 @@ msgstr ""
6060msgid "Quit"
6161msgstr ""
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr ""
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr ""
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "நீங்கள் வெளியேற விரும்புகிறேர்களா ?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "பூட்டுக"
@@ -520,11 +520,11 @@ msgstr ""
520520msgid "Select desktop environment"
521521msgstr ""
522522
523−#: qml/Launcher/Drawer.qml:92
523+#: qml/Launcher/Drawer.qml:93
524524msgid "Search…"
525525msgstr ""
526526
527−#: qml/Launcher/Drawer.qml:127
527+#: qml/Launcher/Drawer.qml:128
528528msgctxt "Apps sorted alphabetically"
529529msgid "A-Z"
530530msgstr ""
po/te.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/th.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/tr.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Kısayolu iğnele"
5757
@@ -59,20 +59,20 @@ msgstr "Kısayolu iğnele"
5959msgid "Quit"
6060msgstr "Çıkış"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Kısayol iğnesini kaldır"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Oturumu kapat"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Oturumu kapatmak istediğinize emin misiniz?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Kilitle"
@@ -521,11 +521,11 @@ msgstr "Parola"
521521msgid "Select desktop environment"
522522msgstr "Masaüstü ortamını seçin"
523523
524−#: qml/Launcher/Drawer.qml:92
524+#: qml/Launcher/Drawer.qml:93
525525msgid "Search…"
526526msgstr ""
527527
528−#: qml/Launcher/Drawer.qml:127
528+#: qml/Launcher/Drawer.qml:128
529529msgctxt "Apps sorted alphabetically"
530530msgid "A-Z"
531531msgstr ""
po/ug.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-07-03 13:56+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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "تېزلەتمىنى قوي"
5757
@@ -59,20 +59,20 @@ msgstr "تېزلەتمىنى قوي"
5959msgid "Quit"
6060msgstr "چېكىن"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "تېزلەتمىنى ئېلىۋەت"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "تىزىمدىن چىق"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "راستلا چىقىپ كېتەمسىز؟"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "قۇلۇپلا"
@@ -518,11 +518,11 @@ msgstr ""
518518msgid "Select desktop environment"
519519msgstr ""
520520
521−#: qml/Launcher/Drawer.qml:92
521+#: qml/Launcher/Drawer.qml:93
522522msgid "Search…"
523523msgstr ""
524524
525−#: qml/Launcher/Drawer.qml:127
525+#: qml/Launcher/Drawer.qml:128
526526msgctxt "Apps sorted alphabetically"
527527msgid "A-Z"
528528msgstr ""
po/uk.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2017-01-17 10:58+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: 2017-03-14 07:14+0000\n"
20−"X-Generator: Launchpad (build 18331)\n"
19+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
20+"X-Generator: Launchpad (build 18334)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
@@ -51,8 +51,8 @@ msgstr ""
5151msgid "Guest Session"
5252msgstr ""
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "Заблокувати кнопку"
5858
@@ -60,20 +60,20 @@ msgstr "Заблокувати кнопку"
6060msgid "Quit"
6161msgstr "Вийти"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "Розблокувати кнопку"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "Вийти"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "Ви справді хочете вийти?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "Заблокувати"
@@ -529,11 +529,11 @@ msgstr "Код-пароль"
529529msgid "Select desktop environment"
530530msgstr "Виберіть стільничне середовище"
531531
532−#: qml/Launcher/Drawer.qml:92
532+#: qml/Launcher/Drawer.qml:93
533533msgid "Search…"
534534msgstr "Пошук…"
535535
536−#: qml/Launcher/Drawer.qml:127
536+#: qml/Launcher/Drawer.qml:128
537537msgctxt "Apps sorted alphabetically"
538538msgid "A-Z"
539539msgstr "А-Я"
po/unity8.pot+9−9
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
11+"POT-Creation-Date: 2017-03-21 10:58+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"
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/ur.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/uz.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/vi.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/wo.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "Kepp"
5757
@@ -59,20 +59,20 @@ msgstr "Kepp"
5959msgid "Quit"
6060msgstr "Génn"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "Dindi"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "Génn"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "Wóor na ne danga bëgg a génn?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "Tëj"
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/xh.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr ""
5757
@@ -59,20 +59,20 @@ msgstr ""
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/zh_CN.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-04-13 06:27+0000\n"
1212"Last-Translator: YunQiang Su <wzssyqa@gmail.com>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "固定快捷方式"
5757
@@ -59,20 +59,20 @@ msgstr "固定快捷方式"
5959msgid "Quit"
6060msgstr "退出"
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "取消固定快捷方式"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr "退出"
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr "您确定要注销?"
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr "锁定"
@@ -518,11 +518,11 @@ msgstr ""
518518msgid "Select desktop environment"
519519msgstr ""
520520
521−#: qml/Launcher/Drawer.qml:92
521+#: qml/Launcher/Drawer.qml:93
522522msgid "Search…"
523523msgstr ""
524524
525−#: qml/Launcher/Drawer.qml:127
525+#: qml/Launcher/Drawer.qml:128
526526msgctxt "Apps sorted alphabetically"
527527msgid "A-Z"
528528msgstr ""
po/zh_HK.po+11−11
@@ -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: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10: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: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -50,8 +50,8 @@ msgstr ""
5050msgid "Guest Session"
5151msgstr ""
5252
53−#: plugins/Unity/Launcher/launcheritem.cpp:50
54−#: plugins/Unity/Launcher/launcheritem.cpp:122
53+#: plugins/Unity/Launcher/launcheritem.cpp:49
54+#: plugins/Unity/Launcher/launcheritem.cpp:123
5555msgid "Pin shortcut"
5656msgstr "釘住捷徑"
5757
@@ -59,20 +59,20 @@ msgstr "釘住捷徑"
5959msgid "Quit"
6060msgstr ""
6161
62−#: plugins/Unity/Launcher/launcheritem.cpp:122
62+#: plugins/Unity/Launcher/launcheritem.cpp:123
6363msgid "Unpin shortcut"
6464msgstr "取消捷徑釘選"
6565
66−#: qml/Components/Dialogs.qml:177
66+#: qml/Components/Dialogs.qml:176
6767msgctxt "Title: Lock/Log out dialog"
6868msgid "Log out"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:178
71+#: qml/Components/Dialogs.qml:177
7272msgid "Are you sure you want to log out?"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:181
75+#: qml/Components/Dialogs.qml:180
7676msgctxt "Button: Lock the system"
7777msgid "Lock"
7878msgstr ""
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr ""
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr ""
po/zh_TW.po+11−11
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-03-08 09:56+0000\n"
10+"POT-Creation-Date: 2017-03-21 10:58+0000\n"
1111"PO-Revision-Date: 2016-02-24 04:40+0000\n"
1212"Last-Translator: Po-Hsu Lin <po-hsu.lin@canonical.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n"
19−"X-Generator: Launchpad (build 18331)\n"
18+"X-Launchpad-Export-Date: 2017-03-24 06:14+0000\n"
19+"X-Generator: Launchpad (build 18334)\n"
2020"Language: zh_TW\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
@@ -51,8 +51,8 @@ msgstr "登入"
5151msgid "Guest Session"
5252msgstr "訪客作業階段"
5353
54−#: plugins/Unity/Launcher/launcheritem.cpp:50
55−#: plugins/Unity/Launcher/launcheritem.cpp:122
54+#: plugins/Unity/Launcher/launcheritem.cpp:49
55+#: plugins/Unity/Launcher/launcheritem.cpp:123
5656msgid "Pin shortcut"
5757msgstr "釘住捷徑"
5858
@@ -60,20 +60,20 @@ msgstr "釘住捷徑"
6060msgid "Quit"
6161msgstr "結束"
6262
63−#: plugins/Unity/Launcher/launcheritem.cpp:122
63+#: plugins/Unity/Launcher/launcheritem.cpp:123
6464msgid "Unpin shortcut"
6565msgstr "取消捷徑釘選"
6666
67−#: qml/Components/Dialogs.qml:177
67+#: qml/Components/Dialogs.qml:176
6868msgctxt "Title: Lock/Log out dialog"
6969msgid "Log out"
7070msgstr "登出"
7171
72−#: qml/Components/Dialogs.qml:178
72+#: qml/Components/Dialogs.qml:177
7373msgid "Are you sure you want to log out?"
7474msgstr "確定要登出?"
7575
76−#: qml/Components/Dialogs.qml:181
76+#: qml/Components/Dialogs.qml:180
7777msgctxt "Button: Lock the system"
7878msgid "Lock"
7979msgstr "上鎖"
@@ -517,11 +517,11 @@ msgstr ""
517517msgid "Select desktop environment"
518518msgstr ""
519519
520−#: qml/Launcher/Drawer.qml:92
520+#: qml/Launcher/Drawer.qml:93
521521msgid "Search…"
522522msgstr "搜尋..."
523523
524−#: qml/Launcher/Drawer.qml:127
524+#: qml/Launcher/Drawer.qml:128
525525msgctxt "Apps sorted alphabetically"
526526msgid "A-Z"
527527msgstr "A-Z"
qml/ApplicationMenus/MenuBar.qml+10−6
@@ -44,14 +44,14 @@ Item {
4444 implicitWidth: row.width
4545 height: parent.height
4646
47− function select(index) {
48− d.select(index);
49− }
50−
5147 function dismiss() {
5248 d.dismissAll();
5349 }
5450
51+ function invokeMenu(mouseEvent) {
52+ mouseArea.onClicked(mouseEvent);
53+ }
54+
5555 GlobalShortcut {
5656 shortcut: Qt.Key_Alt|Qt.AltModifier
5757 active: enableKeyFilter
@@ -132,17 +132,20 @@ Item {
132132
133133 function show() {
134134 if (!__popup) {
135+ root.unityMenuModel.aboutToShow(visualItem.__ownIndex);
135136 __popup = menuComponent.createObject(root,
136137 {
137138 objectName: visualItem.objectName + "-menu",
138139 desiredX: Qt.binding(function() { return visualItem.x - units.gu(1); }),
139140 desiredY: Qt.binding(function() { return root.height; }),
140− unityMenuModel: Qt.binding(function() { return root.unityMenuModel.submenu(visualItem.__ownIndex); })
141+ unityMenuModel: Qt.binding(function() { return root.unityMenuModel.submenu(visualItem.__ownIndex); }),
142+ selectFirstOnCountChange: false
141143 });
142144 __popup.reset();
143145 __popup.childActivated.connect(dismiss);
144146 // force the current item to be the newly popped up menu
145− } else {
147+ } else if (!__popup.visible) {
148+ root.unityMenuModel.aboutToShow(visualItem.__ownIndex);
146149 __popup.show();
147150 }
148151 d.currentItem = visualItem;
@@ -226,6 +229,7 @@ Item {
226229 } // Row
227230
228231 MouseArea {
232+ id: mouseArea
229233 anchors.fill: parent
230234 hoverEnabled: d.currentItem
231235
qml/ApplicationMenus/MenuPopup.qml+14−6
@@ -33,6 +33,8 @@ UbuntuShape {
3333 // if they don't fit when growing right
3434 property bool substractWidth: false
3535
36+ property bool selectFirstOnCountChange: true
37+
3638 property real desiredX
3739 x: {
3840 var dummy = visible; // force recalc when shown/hidden
@@ -73,8 +75,8 @@ UbuntuShape {
7375 d.currentItem = null;
7476 }
7577
76− function select(index) {
77− d.select(index)
78+ function selectFirstIndex() {
79+ d.selectNext(-1);
7880 }
7981
8082 function reset() {
@@ -302,6 +304,7 @@ UbuntuShape {
302304
303305 if (hasSubmenu) {
304306 if (!popup) {
307+ root.unityMenuModel.aboutToShow(__ownIndex);
305308 var model = root.unityMenuModel.submenu(__ownIndex);
306309 popup = submenuComponent.createObject(focusScope, {
307310 objectName: parent.objectName + "-",
@@ -323,8 +326,10 @@ UbuntuShape {
323326 popup = null;
324327 root.childActivated();
325328 });
326− } else if (popup) {
329+ } else if (!popup.visible) {
330+ root.unityMenuModel.aboutToShow(__ownIndex);
327331 popup.visible = true;
332+ popup.item.selectFirstIndex();
328333 }
329334 } else {
330335 root.unityMenuModel.activate(__ownIndex);
@@ -358,6 +363,12 @@ UbuntuShape {
358363 Repeater {
359364 id: repeater
360365
366+ onCountChanged: {
367+ if (root.selectFirstOnCountChange && !d.currentItem && count > 0) {
368+ root.selectFirstIndex();
369+ }
370+ }
371+
361372 Loader {
362373 id: loader
363374 objectName: root.objectName + "-item" + __ownIndex
@@ -484,9 +495,6 @@ UbuntuShape {
484495 target: item
485496 onChildActivated: childActivated();
486497 }
487−
488− Component.onCompleted: item.select(0);
489− onVisibleChanged: if (visible) { item.select(0); }
490498 }
491499 }
492500 }
qml/Components/Dialogs.qml+5−5
@@ -22,7 +22,6 @@ import GlobalShortcut 1.0
2222import Ubuntu.Components 1.3
2323import Unity.Platform 1.0
2424import Utils 0.1
25−import "../Greeter"
2625
2726MouseArea {
2827 id: root
@@ -116,17 +115,17 @@ MouseArea {
116115
117116 GlobalShortcut { // lock screen
118117 shortcut: Qt.Key_ScreenSaver
119− onTriggered: LightDMService.greeter.showGreeter()
118+ onTriggered: root.unitySessionService.PromptLock()
120119 }
121120
122121 GlobalShortcut { // lock screen
123122 shortcut: Qt.ControlModifier|Qt.AltModifier|Qt.Key_L
124− onTriggered: LightDMService.greeter.showGreeter()
123+ onTriggered: root.unitySessionService.PromptLock()
125124 }
126125
127126 GlobalShortcut { // lock screen
128127 shortcut: Qt.MetaModifier|Qt.Key_L
129− onTriggered: LightDMService.greeter.showGreeter()
128+ onTriggered: root.unitySessionService.PromptLock()
130129 }
131130
132131 QtObject {
@@ -179,8 +178,9 @@ MouseArea {
179178 Button {
180179 width: parent.width
181180 text: i18n.ctr("Button: Lock the system", "Lock")
181+ visible: root.unitySessionService.CanLock()
182182 onClicked: {
183− LightDMService.greeter.showGreeter()
183+ root.unitySessionService.PromptLock();
184184 logoutDialog.hide();
185185 }
186186 Component.onCompleted: if (root.hasKeyboard) forceActiveFocus(Qt.TabFocusReason)
qml/Launcher/Drawer.qml+5−1
@@ -27,6 +27,7 @@ FocusScope {
2727
2828 property int panelWidth: 0
2929 readonly property bool moving: listLoader.item && listLoader.item.moving
30+ readonly property Item searchTextField: searchField
3031
3132 signal applicationSelected(string appId)
3233
@@ -212,13 +213,16 @@ FocusScope {
212213 root.dragDistance += diff;
213214 oldX = mouseX
214215 }
215− onReleased: {
216+ onReleased: reset();
217+ onCanceled: reset();
218+ function reset() {
216219 if (root.draggingHorizontally) {
217220 root.draggingHorizontally = false;
218221 parent.interactive = true;
219222 }
220223 reactivateTimer.start();
221224 }
225+
222226 Timer {
223227 id: reactivateTimer
224228 interval: 0
qml/Launcher/Launcher.qml+18−10
@@ -33,6 +33,7 @@ FocusScope {
3333 property Item blurSource: null
3434 property int topPanelHeight: 0
3535 property bool drawerEnabled: true
36+ property alias privateMode: panel.privateMode
3637
3738 property int panelWidth: units.gu(10)
3839 property int dragAreaWidth: units.gu(1)
@@ -119,7 +120,14 @@ FocusScope {
119120 }
120121 return;
121122 }
122− switchToNextState("")
123+ if (root.lockedVisible) {
124+ // Due to binding updates when switching between modes
125+ // it could happen that our request to show will be overwritten
126+ // with a hide request. Rewrite it when we know hiding is not allowed.
127+ switchToNextState("visible")
128+ } else {
129+ switchToNextState("")
130+ }
123131 }
124132
125133 function fadeOut() {
@@ -155,6 +163,7 @@ FocusScope {
155163
156164 function openForKeyboardNavigation() {
157165 panel.highlightIndex = -1; // The BFB
166+ drawer.focus = false;
158167 root.focus = true;
159168 switchToNextState("visible")
160169 }
@@ -257,13 +266,6 @@ FocusScope {
257266 interval: 1
258267 property string nextState: ""
259268 onTriggered: {
260− if (root.lockedVisible && nextState == "") {
261− // Due to binding updates when switching between modes
262− // it could happen that our request to show will be overwritten
263− // with a hide request. Rewrite it when we know hiding is not allowed.
264− nextState = "visible"
265− }
266−
267269 // switching to an intermediate state here to make sure all the
268270 // values are restored, even if we were already in the target state
269271 root.state = "tmp"
@@ -362,6 +364,13 @@ FocusScope {
362364 topMargin: root.inverted ? root.topPanelHeight : 0
363365 bottom: parent.bottom
364366 right: parent.left
367+ onRightMarginChanged: {
368+ // Remove (and put back) the focus for the searchfield in
369+ // order to hide the copy/paste popover when we move the drawer
370+ var hadFocus = drawer.searchTextField.focus;
371+ drawer.searchTextField.focus = false;
372+ drawer.searchTextField.focus = hadFocus;
373+ }
365374 }
366375 width: Math.min(root.width, units.gu(90)) * .9
367376 panelWidth: panel.width
@@ -382,8 +391,7 @@ FocusScope {
382391 }
383392
384393 Keys.onEscapePressed: {
385− switchToNextState("");
386− root.focus = false;
394+ root.hide()
387395 }
388396
389397 onDragDistanceChanged: {
qml/Launcher/LauncherPanel.qml+8−1
@@ -19,6 +19,7 @@ import QtQml.StateMachine 1.0 as DSM
1919import Ubuntu.Components 1.3
2020import Unity.Launcher 0.1
2121import Ubuntu.Components.Popups 1.3
22+import Utils 0.1
2223import "../Components"
2324
2425Rectangle {
@@ -29,6 +30,7 @@ Rectangle {
2930
3031 property var model
3132 property bool inverted: false
33+ property bool privateMode: false
3234 property bool dragging: false
3335 property bool moving: launcherListView.moving || launcherListView.flicking
3436 property bool preventHiding: moving || dndArea.draggedIndex >= 0 || quickList.state === "open" || dndArea.pressed
@@ -811,7 +813,11 @@ Rectangle {
811813
812814 Repeater {
813815 id: popoverRepeater
814− model: quickList.model
816+ objectName: "popoverRepeater"
817+ model: QuickListProxyModel {
818+ source: quickList.model
819+ privateMode: root.privateMode
820+ }
815821
816822 ListItem {
817823 objectName: "quickListEntry" + index
@@ -835,6 +841,7 @@ Rectangle {
835841 fontSize: index == 0 ? "medium" : "small"
836842 font.weight: index == 0 ? Font.Medium : Font.Light
837843 color: model.clickable ? theme.palette.normal.backgroundText : theme.palette.disabled.backgroundText
844+ elide: Text.ElideRight
838845 }
839846
840847 onClicked: {
qml/Panel/Indicators/client/IndicatorRepresentation.qml+18−5
@@ -20,6 +20,7 @@
2020
2121import QtQuick 2.4
2222import Ubuntu.Components 1.3
23+import ".."
2324import "../.."
2425
2526Page {
@@ -77,11 +78,23 @@ Page {
7778
7879 Component {
7980 id: page
80− IndicatorPage {
81− identifier: model.identifier
82− busName: indicatorProperties.busName
83− actionsObjectPath: indicatorProperties.actionsObjectPath
84− menuObjectPath: indicatorProperties.menuObjectPath
81+ PanelMenuPage {
82+ objectName: model.identifier + "-page"
83+ submenuIndex: 0
84+
85+ menuModel: delegate.menuModel
86+
87+ factory: IndicatorMenuItemFactory {
88+ indicator: model.identifier
89+ rootModel: delegate.menuModel
90+ }
91+
92+ IndicatorDelegate {
93+ id: delegate
94+ busName: indicatorProperties.busName
95+ actionsObjectPath: indicatorProperties.actionsObjectPath
96+ menuObjectPath: indicatorProperties.menuObjectPath
97+ }
8598 }
8699 }
87100 Component {
qml/Panel/MenuContent.qml+2−2
@@ -44,9 +44,9 @@ Rectangle {
4444 anchors.fill: parent
4545 model: content.model
4646
47− highlightFollowsCurrentItem: true
47+ highlightFollowsCurrentItem: false
48+ contentX: currentIndex * width
4849 interactive: false
49− highlightMoveDuration: 0
5050 orientation: ListView.Horizontal
5151 // Load all the indicator menus (a big number)
5252 cacheBuffer: 1073741823
qml/Panel/Panel.qml+42−4
@@ -38,6 +38,7 @@ Item {
3838 property real expandedPanelHeight: units.gu(7)
3939 property real indicatorMenuWidth: width
4040 property real applicationMenuWidth: width
41+ property alias applicationMenuContentX: __applicationMenus.menuContentX
4142
4243 property alias applicationMenus: __applicationMenus
4344 property alias indicators: __indicators
@@ -174,6 +175,10 @@ Item {
174175 // let it fall through to the window decoration of the maximized window behind, if any
175176 mouse.accepted = false;
176177 }
178+ var menubar = menuBarLoader.item;
179+ if (menubar) {
180+ menubar.invokeMenu(mouse);
181+ }
177182 }
178183
179184 Row {
@@ -200,16 +205,17 @@ Item {
200205
201206 Loader {
202207 id: menuBarLoader
208+ objectName: "menuBarLoader"
203209 height: parent.height
204210 enabled: d.enablePointerMenu
205211 opacity: d.showPointerMenu ? 1 : 0
206212 visible: opacity != 0
207213 Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } }
208− active: __applicationMenus.model
214+ active: __applicationMenus.model && !callHint.visible
209215
210216 width: parent.width - windowControlButtons.width - units.gu(2) - __indicators.barWidth
211217
212− property bool menusRequested: menuBarLoader.item ? menuBarLoader.item.showRequested : false
218+ readonly property bool menusRequested: menuBarLoader.item ? menuBarLoader.item.showRequested : false
213219
214220 sourceComponent: MenuBar {
215221 id: bar
@@ -231,6 +237,7 @@ Item {
231237 }
232238
233239 onDoubleClicked: PanelState.restoreClicked()
240+ onPressed: mouse.accepted = false // let the parent mouse area handle this, so it can both unsnap window and show menu
234241 }
235242 }
236243 }
@@ -250,6 +257,7 @@ Item {
250257 PanelMenu {
251258 id: __applicationMenus
252259
260+ x: menuContentX
253261 model: registeredMenuModel.model
254262 width: root.applicationMenuWidth
255263 minimizedPanelHeight: root.minimizedPanelHeight
@@ -258,6 +266,7 @@ Item {
258266 alignment: Qt.AlignLeft
259267 enableHint: !callHint.active && !fullscreenMode
260268 showOnClick: false
269+ adjustDragHandleSizeToContents: false
261270 panelColor: panelAreaBackground.color
262271
263272 onShowTapped: {
@@ -266,12 +275,12 @@ Item {
266275 }
267276 }
268277
269− showRowTitle: !expanded
270− rowTitle: PanelState.title
278+ hideRow: !expanded
271279 rowItemDelegate: ActionItem {
272280 id: actionItem
273281 property int ownIndex: index
274282 objectName: "appMenuItem"+index
283+ enabled: model.sensitive
275284
276285 width: _title.width + units.gu(2)
277286 height: parent.height
@@ -290,6 +299,13 @@ Item {
290299 }
291300
292301 pageDelegate: PanelMenuPage {
302+ readonly property bool isCurrent: modelIndex == __applicationMenus.currentMenuIndex
303+ onIsCurrentChanged: {
304+ if (isCurrent && menuModel) {
305+ menuModel.aboutToShow(modelIndex);
306+ }
307+ }
308+
293309 menuModel: __applicationMenus.model
294310 submenuIndex: modelIndex
295311
@@ -308,6 +324,28 @@ Item {
308324 }
309325 }
310326
327+ Label {
328+ id: rowLabel
329+ objectName: "panelTitle"
330+ anchors {
331+ left: parent.left
332+ leftMargin: units.gu(1)
333+ right: __indicators.left
334+ rightMargin: units.gu(1)
335+ }
336+ height: root.minimizedPanelHeight
337+ verticalAlignment: Text.AlignVCenter
338+ elide: Text.ElideRight
339+ maximumLineCount: 1
340+ fontSize: "medium"
341+ font.weight: Font.Medium
342+ color: Theme.palette.selected.backgroundText
343+ opacity: __applicationMenus.visible && !__applicationMenus.expanded ? 1 : 0
344+ visible: opacity != 0
345+ Behavior on opacity { NumberAnimation { duration: UbuntuAnimation.SnapDuration } }
346+ text: PanelState.title
347+ }
348+
311349 PanelMenu {
312350 id: __indicators
313351 objectName: "indicators"
qml/Panel/PanelBar.qml+17−2
@@ -30,8 +30,7 @@ Item {
3030 property real lateralPosition: -1
3131 property int alignment: Qt.AlignRight
3232
33− property alias showRowTitle: row.showRowTitle
34− property alias rowTitle: row.rowTitle
33+ property alias hideRow: row.hideRow
3534 property alias rowItemDelegate: row.delegate
3635
3736 implicitWidth: flickable.contentWidth
@@ -44,6 +43,22 @@ Item {
4443 row.selectItemAt(mapped.x);
4544 }
4645
46+ function selectPreviousItem() {
47+ if (!expanded) {
48+ row.resetCurrentItem();
49+ }
50+ row.selectPreviousItem();
51+ d.alignIndicators();
52+ }
53+
54+ function selectNextItem() {
55+ if (!expanded) {
56+ row.resetCurrentItem();
57+ }
58+ row.selectNextItem();
59+ d.alignIndicators();
60+ }
61+
4762 function setCurrentItemIndex(index) {
4863 if (!expanded) {
4964 row.resetCurrentItem();
qml/Panel/PanelItemRow.qml+35−29
@@ -20,11 +20,10 @@ import "../Components"
2020
2121Item {
2222 id: root
23− implicitWidth: showRowTitle && !expanded ? rowTitle != "" ? rowLabel.width : 0 : row.width
23+ implicitWidth: row.width
2424 implicitHeight: units.gu(3)
2525
26− property bool showRowTitle: false
27− property alias rowTitle: rowLabel.text
26+ property bool hideRow: false
2827 property QtObject model: null
2928 property real overFlowWidth: width
3029 property bool expanded: false
@@ -96,31 +95,57 @@ Item {
9695 row.currentIndex = -1;
9796 }
9897
98+ function selectPreviousItem() {
99+ var indexToSelect = currentItemIndex - 1;
100+ while (indexToSelect >= 0) {
101+ if (setCurrentItemIndex(indexToSelect))
102+ return;
103+ indexToSelect = indexToSelect - 1;
104+ }
105+ }
106+
107+ function selectNextItem() {
108+ var indexToSelect = currentItemIndex + 1;
109+ while (indexToSelect < row.contentItem.children.length) {
110+ if (setCurrentItemIndex(indexToSelect))
111+ return;
112+ indexToSelect = indexToSelect + 1;
113+ }
114+ }
115+
99116 function setCurrentItemIndex(index) {
100117 for (var i = 0; i < row.contentItem.children.length; i++) {
101118 var item = row.contentItem.children[i];
102− if (item.hasOwnProperty("ownIndex") && item.ownIndex === index) {
103− if (currentItem !== item) row.currentIndex = index;
104− break;
119+ if (item.hasOwnProperty("ownIndex") && item.ownIndex === index && item.enabled) {
120+ if (currentItem !== item) {
121+ row.currentIndex = index;
122+ }
123+ return true;
105124 }
106125 }
126+ return false;
107127 }
108128
109129 function selectItemAt(lateralPosition) {
110130 var item = indicatorAt(lateralPosition, 0);
111− if (item && item.opacity > 0) {
131+ if (item && item.opacity > 0 && item.enabled) {
112132 row.currentIndex = item.ownIndex;
113133 } else {
114134 // Select default item.
115135 var searchIndex = lateralPosition >= width ? row.count - 1 : 0;
116136
117137 for (var i = 0; i < row.contentItem.children.length; i++) {
118− if (row.contentItem.children[i].hasOwnProperty("ownIndex") && row.contentItem.children[i].ownIndex === searchIndex) {
138+ if (row.contentItem.children[i].hasOwnProperty("ownIndex") &&
139+ row.contentItem.children[i].ownIndex === searchIndex &&
140+ row.contentItem.children[i].enabled)
141+ {
119142 item = row.contentItem.children[i];
120143 break;
121144 }
122145 }
123− if (currentItem !== item) row.currentIndex = item ? item.ownIndex : -1;
146+ if (item && currentItem !== item) {
147+ row.currentIndex = item.ownIndex;
148+ }
124149 }
125150 }
126151
@@ -138,31 +163,12 @@ Item {
138163 d.previousItem = currentItem;
139164 }
140165
141− Label {
142− id: rowLabel
143− objectName: "panelTitle"
144− anchors {
145− left: parent.left
146− leftMargin: units.gu(1)
147− verticalCenter: parent.verticalCenter
148− }
149− width: implicitWidth + units.gu(2)
150− elide: Text.ElideRight
151− maximumLineCount: 1
152− fontSize: "medium"
153− font.weight: Font.Medium
154− color: Theme.palette.selected.backgroundText
155− opacity: showRowTitle ? 1 : 0
156− visible: opacity != 0
157− Behavior on opacity { NumberAnimation { duration: UbuntuAnimation.SnapDuration } }
158− }
159−
160166 ListView {
161167 id: row
162168 objectName: "panelRow"
163169 orientation: ListView.Horizontal
164170 model: root.model
165− opacity: showRowTitle ? 0 : 1
171+ opacity: hideRow ? 0 : 1
166172 // dont set visible on basis of opacity; otherwise width will not be calculated correctly
167173 anchors {
168174 top: parent.top
qml/Panel/PanelMenu.qml+37−25
@@ -32,11 +32,12 @@ Showable {
3232 property real openedHeight: units.gu(71)
3333 property bool enableHint: true
3434 property bool showOnClick: true
35+ property bool adjustDragHandleSizeToContents: true
3536 property color panelColor: theme.palette.normal.background
37+ property real menuContentX: 0
3638
3739 property alias alignment: bar.alignment
38− property alias rowTitle: bar.rowTitle
39− property alias showRowTitle: bar.showRowTitle
40+ property alias hideRow: bar.hideRow
4041 property alias rowItemDelegate: bar.rowItemDelegate
4142 property alias pageDelegate: content.pageDelegate
4243
@@ -45,7 +46,8 @@ Showable {
4546 readonly property bool partiallyOpened: unitProgress > 0 && unitProgress < 1.0
4647 readonly property bool fullyClosed: unitProgress == 0
4748 readonly property alias expanded: bar.expanded
48− readonly property int barWidth: Math.min(bar.width, bar.implicitWidth)
49+ readonly property int barWidth: adjustDragHandleSizeToContents ? Math.min(bar.width, bar.implicitWidth) : bar.width
50+ readonly property alias currentMenuIndex: bar.currentItemIndex
4951
5052 signal showTapped()
5153
@@ -77,33 +79,42 @@ Showable {
7779
7880 shown: false
7981 height: minimizedPanelHeight
80− clip: root.partiallyOpened
8182
8283 onUnitProgressChanged: d.updateState()
8384
84− // eater
85− MouseArea {
86− anchors.fill: content
87− hoverEnabled: true
88− acceptedButtons: Qt.AllButtons
89− onWheel: wheel.accepted = true;
90− enabled: root.state != "initial"
91− visible: content.visible
92− }
93−
94− MenuContent {
95− id: content
96− objectName: "menuContent"
97−
85+ Item {
9886 anchors {
9987 left: parent.left
10088 right: parent.right
10189 top: bar.bottom
90+ bottom: parent.bottom
91+ }
92+ clip: root.partiallyOpened
93+
94+ // eater
95+ MouseArea {
96+ anchors.fill: content
97+ hoverEnabled: true
98+ acceptedButtons: Qt.AllButtons
99+ onWheel: wheel.accepted = true;
100+ enabled: root.state != "initial"
101+ visible: content.visible
102+ }
103+
104+ MenuContent {
105+ id: content
106+ objectName: "menuContent"
107+
108+ anchors {
109+ left: parent.left
110+ right: parent.right
111+ top: parent.top
112+ }
113+ height: openedHeight - bar.height - handle.height
114+ model: root.model
115+ visible: root.unitProgress > 0
116+ currentMenuIndex: bar.currentItemIndex
102117 }
103− height: openedHeight - bar.height - handle.height
104− model: root.model
105− visible: root.unitProgress > 0
106− currentMenuIndex: bar.currentItemIndex
107118 }
108119
109120 Handle {
@@ -142,10 +153,10 @@ Showable {
142153
143154 Keys.onPressed: {
144155 if (event.key === Qt.Key_Left) {
145− bar.setCurrentItemIndex(bar.currentItemIndex - 1);
156+ bar.selectPreviousItem();
146157 event.accepted = true;
147158 } else if (event.key === Qt.Key_Right) {
148− bar.setCurrentItemIndex(bar.currentItemIndex + 1);
159+ bar.selectNextItem();
149160 event.accepted = true;
150161 } else if (event.key === Qt.Key_Escape) {
151162 root.hide();
@@ -217,8 +228,9 @@ Showable {
217228 objectName: "showDragHandle"
218229 anchors.bottom: parent.bottom
219230 anchors.left: alignment == Qt.AlignLeft ? parent.left : undefined
231+ anchors.leftMargin: -root.menuContentX
220232 anchors.right: alignment == Qt.AlignRight ? parent.right : undefined
221− width: root.barWidth // show handle should only cover panel items.
233+ width: root.barWidth + root.menuContentX // show handle should only cover panel items.
222234 height: minimizedPanelHeight
223235 direction: Direction.Downwards
224236 enabled: !root.shown && root.available
qml/Panel/PanelMenuPage.qml+2−1
@@ -63,7 +63,7 @@ PageStack {
6363 if (model) {
6464 push(pageComponent, { "menuModel": model });
6565 }
66− } else {
66+ } else if (root.currentPage) {
6767 root.currentPage.reset();
6868 }
6969 }
@@ -192,6 +192,7 @@ PageStack {
192192 if (item.hasOwnProperty("clicked")) {
193193 item.clicked.connect(function() {
194194 if (model.hasSubmenu) {
195+ page.menuModel.aboutToShow(modelIndex);
195196 root.push(pageComponent, {
196197 "isSubmenu": true,
197198 "title": model.label.replace(/_|&/, ""),
qml/Shell.qml+13−2
@@ -426,7 +426,9 @@ StyledItem {
426426 id: showGreeterDelayed
427427 interval: 1
428428 onTriggered: {
429− greeter.forceShow();
429+ // Go through the dbus service, because it has checks for whether
430+ // we are even allowed to lock or not.
431+ DBusUnitySessionService.PromptLock();
430432 }
431433 }
432434
@@ -500,6 +502,7 @@ StyledItem {
500502 expandedPanelHeight: units.gu(7)
501503 indicatorMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
502504 applicationMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
505+ applicationMenuContentX: launcher.lockedVisible ? launcher.panelWidth : 0
503506
504507 indicators {
505508 hides: [launcher]
@@ -559,6 +562,7 @@ StyledItem {
559562 blurSource: greeter.shown ? greeter : stages
560563 topPanelHeight: panel.panelHeight
561564 drawerEnabled: !greeter.active
565+ privateMode: greeter.active
562566
563567 onShowDashHome: showHome()
564568 onLauncherApplicationSelected: {
@@ -567,7 +571,14 @@ StyledItem {
567571 }
568572 onShownChanged: {
569573 if (shown) {
570− panel.indicators.hide()
574+ panel.indicators.hide();
575+ panel.applicationMenus.hide();
576+ }
577+ }
578+ onDrawerShownChanged: {
579+ if (drawerShown) {
580+ panel.indicators.hide();
581+ panel.applicationMenus.hide();
571582 }
572583 }
573584 onFocusChanged: {
qml/Stage/ChildWindowTree.qml−4
@@ -60,10 +60,6 @@ Item {
6060 property real windowedX: x
6161 property real windowedY: y
6262
63−
64− property real restoredX
65− property real restoredY
66−
6763 state: "restored"
6864 // end of API expected by MoveHandler
6965 ////
qml/Stage/DecoratedWindow.qml+5−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2014-2016 Canonical, Ltd.
2+ * Copyright (C) 2014-2017 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
@@ -72,6 +72,8 @@ FocusScope {
7272
7373 readonly property Item clientAreaItem: applicationWindow
7474
75+ property alias altDragEnabled: altDragHandler.enabled
76+
7577 signal closeClicked()
7678 signal maximizeClicked()
7779 signal maximizeHorizontallyClicked()
@@ -212,6 +214,7 @@ FocusScope {
212214
213215 opacity: root.hasDecoration ? Math.min(1, root.showDecoration) : 0
214216 Behavior on opacity { UbuntuNumberAnimation { } }
217+ visible: opacity > 0 // don't eat input when decoration is fully translucent
215218
216219 onPressed: root.decorationPressed();
217220 onPressedChanged: moveHandler.handlePressedChanged(pressed, pressedButtons, mouseX, mouseY)
@@ -266,6 +269,7 @@ FocusScope {
266269 acceptedButtons: Qt.LeftButton
267270 property bool dragging: false
268271 cursorShape: undefined // don't interfere with the cursor shape set by the underlying MirSurfaceItem
272+ visible: enabled
269273 onPressed: {
270274 if (mouse.button == Qt.LeftButton && mouse.modifiers == Qt.AltModifier) {
271275 root.decorationPressed(); // to raise it
qml/Stage/MoveHandler.qml−5
@@ -188,11 +188,6 @@ QtObject {
188188 priv.progress = 0;
189189 priv.resetEdges();
190190 }
191− if ((target.state == "normal" || target.state == "restored") && priv.progress == 0) {
192− // save the x/y to restore to
193− target.restoredX = target.x;
194− target.restoredY = target.y;
195− }
196191 }
197192
198193 function cancelDrag() {
qml/Stage/Spread/Spread.qml+11
@@ -40,6 +40,7 @@ Item {
4040 property real rightEdgeBreakPoint: Math.min(units.gu(40) / root.width, .35)
4141
4242 signal leaveSpread()
43+ signal closeCurrentApp();
4344
4445 // Calculated stuff
4546 readonly property int totalItemCount: model.count
@@ -118,6 +119,13 @@ Item {
118119 Behavior on opacity { UbuntuNumberAnimation { } }
119120 }
120121
122+ readonly property int itemCount: root.model.count
123+ onItemCountChanged: {
124+ if (highlightedIndex >= itemCount) {
125+ highlightedIndex = itemCount - 1
126+ }
127+ }
128+
121129 Keys.onPressed: {
122130 switch (event.key) {
123131 case Qt.Key_Left:
@@ -130,6 +138,9 @@ Item {
130138 selectNext(event.isAutoRepeat)
131139 event.accepted = true;
132140 break;
141+ case Qt.Key_Q:
142+ closeCurrentApp();
143+ break;
133144 case Qt.Key_Escape:
134145 highlightedIndex = -1
135146 // Falling through intentionally
qml/Stage/Stage.qml+25−2
@@ -575,6 +575,12 @@ FocusScope {
575575 onLeaveSpread: {
576576 priv.goneToSpread = false;
577577 }
578+
579+ onCloseCurrentApp: {
580+ if (!appRepeater.itemAt(highlightedIndex).isDash) {
581+ appRepeater.itemAt(highlightedIndex).close();
582+ }
583+ }
578584 }
579585
580586 Connections {
@@ -753,6 +759,14 @@ FocusScope {
753759 normalHeight = appDelegate.height;
754760 }
755761 }
762+ function updateRestoredGeometry() {
763+ if (appDelegate.state == "normal" || appDelegate.state == "restored") {
764+ // save the x/y to restore to
765+ restoredX = appDelegate.x;
766+ restoredY = appDelegate.y;
767+ }
768+ }
769+
756770 Connections {
757771 target: appDelegate
758772 onXChanged: appDelegate.updateNormalGeometry();
@@ -1302,6 +1316,10 @@ FocusScope {
13021316 target: stageMaths
13031317 animateX: !focusAnimation.running && itemIndex !== spreadItem.highlightedIndex
13041318 }
1319+ PropertyChanges {
1320+ target: appDelegate.window
1321+ allowClientResize: false
1322+ }
13051323 },
13061324 State {
13071325 name: "stagedWithSideStage"; when: root.state == "stagedWithSideStage"
@@ -1327,6 +1345,10 @@ FocusScope {
13271345 target: resizeArea
13281346 enabled: false
13291347 }
1348+ PropertyChanges {
1349+ target: appDelegate.window
1350+ allowClientResize: false
1351+ }
13301352 },
13311353 State {
13321354 name: "maximized"; when: appDelegate.maximized && !appDelegate.minimized
@@ -1598,6 +1620,7 @@ FocusScope {
15981620 height: implicitHeight
15991621 highlightSize: windowInfoItem.iconMargin / 2
16001622 boundsItem: boundariesForWindowPlacement
1623+ altDragEnabled: root.mode == "windowed"
16011624
16021625 requestedWidth: appDelegate.requestedWidth
16031626 requestedHeight: appDelegate.requestedHeight
@@ -1626,7 +1649,7 @@ FocusScope {
16261649 }
16271650 onMinimizeClicked: { appDelegate.requestMinimize(); }
16281651 onDecorationPressed: { appDelegate.activate(); }
1629− onDecorationReleased: fakeRectangle.commit();
1652+ onDecorationReleased: fakeRectangle.visible ? fakeRectangle.commit() : appDelegate.updateRestoredGeometry()
16301653
16311654 property real angle: 0
16321655 Behavior on angle { enabled: priv.closingIndex >= 0; UbuntuNumberAnimation {} }
@@ -1670,7 +1693,7 @@ FocusScope {
16701693 onFakeMaximizeBottomLeftAnimationRequested: if (!appDelegate.maximizedBottomLeft) fakeRectangle.maximizeBottomLeft(amount, true);
16711694 onFakeMaximizeBottomRightAnimationRequested: if (!appDelegate.maximizedBottomRight) fakeRectangle.maximizeBottomRight(amount, true);
16721695 onStopFakeAnimation: fakeRectangle.stop();
1673− onDragReleased: fakeRectangle.commit();
1696+ onDragReleased: fakeRectangle.visible ? fakeRectangle.commit() : appDelegate.updateRestoredGeometry()
16741697 }
16751698
16761699 WindowedFullscreenPolicy {
src/CMakeLists.txt+3−1
@@ -1,11 +1,13 @@
11add_subdirectory(libunity8-private)
22
33pkg_check_modules(CONNECTIVITY REQUIRED connectivity-qt1)
4+pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
45
56include_directories(
67 SYSTEM
78 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
89 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
10+ ${GSETTINGS_QT_INCLUDE_DIRS}
911 ${CONNECTIVITY_INCLUDE_DIRS}
1012)
1113
@@ -47,7 +49,7 @@ qt5_use_modules(${SHELL_APP} DBus Gui Qml Quick Test)
4749if (NOT "${ANDROID_PROPERTIES_INCLUDE_DIRS}" STREQUAL "")
4850 set_target_properties(${SHELL_APP} PROPERTIES INCLUDE_DIRECTORIES ${ANDROID_PROPERTIES_INCLUDE_DIRS})
4951endif()
50−target_link_libraries(${SHELL_APP} ${ANDROID_PROPERTIES_LDFLAGS} UbuntuGestures connectivity-qt1 unity8-private)
52+target_link_libraries(${SHELL_APP} ${ANDROID_PROPERTIES_LDFLAGS} ${GSETTINGS_QT_LDFLAGS} UbuntuGestures connectivity-qt1 unity8-private)
5153
5254if (ENABLE_TOUCH_EMULATION)
5355 target_link_libraries(${SHELL_APP} ${MOUSETOUCHADAPTOR_LIBS_LDFLAGS})
src/ShellApplication.cpp+5
@@ -21,6 +21,8 @@
2121#include <QProcess>
2222#include <QScreen>
2323
24+#include <QGSettings>
25+
2426#include <libintl.h>
2527
2628// libandroid-properties
@@ -75,6 +77,9 @@ ShellApplication::ShellApplication(int & argc, char ** argv, bool isMirServer)
7577 bindtextdomain("unity8", translationDirectory().toUtf8().data());
7678 textdomain("unity8");
7779
80+ QScopedPointer<QGSettings> gSettings(new QGSettings("com.canonical.Unity8"));
81+ gSettings->reset(QStringLiteral("alwaysShowOsk"));
82+
7883 m_shellView = new ShellView(m_qmlEngine, &m_qmlArgs);
7984
8085 if (parser.windowGeometry().isValid()) {
tests/mocks/QMenuModel/unitymenumodel.cpp+28−4
@@ -18,6 +18,8 @@
1818
1919#include "unitymenumodel.h"
2020
21+#include <QTimer>
22+
2123enum MenuRoles {
2224 LabelRole = Qt::DisplayRole + 1,
2325 SensitiveRole,
@@ -35,7 +37,8 @@ enum MenuRoles {
3537};
3638
3739UnityMenuModel::UnityMenuModel(QObject *parent)
38−: QAbstractListModel(parent)
40+ : QAbstractListModel(parent)
41+ , m_rowCountStatus(NoRequestMade)
3942{
4043}
4144
@@ -60,7 +63,7 @@ void UnityMenuModel::setModelData(const QVariant& data)
6063
6164void UnityMenuModel::insertRow(int row, const QVariant& data)
6265{
63− row = qMin(row, rowCount());
66+ row = qMin(row, m_modelData.count());
6467
6568 beginInsertRows(QModelIndex(), row, row);
6669
@@ -71,12 +74,12 @@ void UnityMenuModel::insertRow(int row, const QVariant& data)
7174
7275void UnityMenuModel::appendRow(const QVariant& data)
7376{
74− insertRow(rowCount(), data);
77+ insertRow(m_modelData.count(), data);
7578}
7679
7780void UnityMenuModel::removeRow(int row)
7881{
79− if (row < 0 || rowCount() <= row) {
82+ if (row < 0 || m_modelData.count() <= row) {
8083 return;
8184 }
8285
@@ -133,6 +136,22 @@ QString UnityMenuModel::nameOwner() const
133136
134137int UnityMenuModel::rowCount(const QModelIndex&) const
135138{
139+ // Fake the rowCount to be 0 for a while (100ms)
140+ // This emulates menus in real world that don't load immediately
141+ if (m_rowCountStatus == TimerRunning)
142+ return 0;
143+
144+ if (m_rowCountStatus == NoRequestMade) {
145+ UnityMenuModel *that = const_cast<UnityMenuModel*>(this);
146+ that->m_rowCountStatus = TimerRunning;
147+ QTimer::singleShot(100, that, [that] {
148+ that->beginInsertRows(QModelIndex(), 0, that->m_modelData.count() - 1);
149+ that->m_rowCountStatus = TimerFinished;
150+ that->endInsertRows();
151+ });
152+ return 0;
153+ }
154+
136155 return m_modelData.count();
137156}
138157
@@ -273,6 +292,11 @@ void UnityMenuModel::activate(int row, const QVariant&)
273292 Q_EMIT activated(rd[roleNames()[ActionRole]].toString());
274293}
275294
295+void UnityMenuModel::aboutToShow(int index)
296+{
297+ Q_EMIT aboutToShowCalled(index);
298+}
299+
276300void UnityMenuModel::changeState(int, const QVariant&)
277301{
278302}
tests/mocks/QMenuModel/unitymenumodel.h+9
@@ -73,6 +73,7 @@ public:
7373 Q_INVOKABLE QVariant get(int row, const QByteArray &role);
7474
7575 Q_INVOKABLE void activate(int index, const QVariant& parameter = QVariant());
76+ Q_INVOKABLE void aboutToShow(int index);
7677 Q_INVOKABLE void changeState(int index, const QVariant& parameter);
7778
7879 void registerAction(UnityMenuAction* action);
@@ -87,6 +88,7 @@ Q_SIGNALS:
8788
8889 // Internal mock usage
8990 void modelDataChanged();
91+ void aboutToShowCalled(int index);
9092
9193 void activated(const QString& action);
9294
@@ -101,6 +103,13 @@ private:
101103 QByteArray m_busName;
102104 QVariantMap m_actions;
103105 QByteArray m_menuObjectPath;
106+
107+ enum RowCountStatus {
108+ NoRequestMade,
109+ TimerRunning,
110+ TimerFinished
111+ };
112+ RowCountStatus m_rowCountStatus;
104113};
105114
106115#endif // MOCK_UNITYMENUMODEL_H
tests/mocks/Unity/Application/MirSurface.cpp+4
@@ -127,6 +127,10 @@ QString MirSurface::persistentId() const
127127 return m_name+"Id";
128128}
129129
130+QString MirSurface::appId() const
131+{
132+ return m_name+"appId";
133+}
130134Mir::Type MirSurface::type() const
131135{
132136 return m_type;
tests/mocks/Unity/Application/MirSurface.h+4
@@ -58,6 +58,7 @@ public:
5858 QString name() const override;
5959
6060 QString persistentId() const override;
61+ QString appId() const override;
6162
6263 QPoint position() const override { return m_position; }
6364
@@ -92,6 +93,9 @@ public:
9293
9394 bool confinesMousePointer() const override { return false; }
9495
96+ bool allowClientResize() const override { return true; }
97+ void setAllowClientResize(bool) override {}
98+
9599 QPoint requestedPosition() const override { return m_requestedPosition; }
96100 void setRequestedPosition(const QPoint &) override;
97101
tests/mocks/Unity/Application/MirSurfaceListModel.cpp+7−7
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2016 Canonical, Ltd.
2+ * Copyright (C) 2016-2017 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
@@ -17,7 +17,7 @@
1717#include "MirSurfaceListModel.h"
1818#include "ApplicationInfo.h"
1919
20−#include "MirSurface.h"
20+#include <unity/shell/application/MirSurfaceInterface.h>
2121
2222#define MIRSURFACELISTMODEL_DEBUG 0
2323
@@ -46,14 +46,14 @@ QVariant MirSurfaceListModel::data(const QModelIndex& index, int role) const
4646 return QVariant();
4747
4848 if (role == SurfaceRole) {
49− MirSurface *surface = m_surfaceList.at(index.row());
49+ MirSurfaceInterface *surface = m_surfaceList.at(index.row());
5050 return QVariant::fromValue(static_cast<unity::shell::application::MirSurfaceInterface*>(surface));
5151 } else {
5252 return QVariant();
5353 }
5454}
5555
56−void MirSurfaceListModel::raise(MirSurface *surface)
56+void MirSurfaceListModel::raise(MirSurfaceInterface *surface)
5757{
5858 DEBUG_MSG("(" << surface << ")");
5959 int i = m_surfaceList.indexOf(surface);
@@ -62,7 +62,7 @@ void MirSurfaceListModel::raise(MirSurface *surface)
6262 }
6363}
6464
65−void MirSurfaceListModel::addSurface(MirSurface *surface)
65+void MirSurfaceListModel::addSurface(MirSurfaceInterface *surface)
6666{
6767 DEBUG_MSG("(" << surface << ")");
6868 beginInsertRows(QModelIndex(), 0, 0);
@@ -73,7 +73,7 @@ void MirSurfaceListModel::addSurface(MirSurface *surface)
7373 Q_EMIT firstChanged();
7474}
7575
76−void MirSurfaceListModel::connectSurface(MirSurface *surface)
76+void MirSurfaceListModel::connectSurface(MirSurfaceInterface *surface)
7777{
7878 connect(surface, &QObject::destroyed, this, [this, surface](){ this->removeSurface(surface); });
7979 connect(surface, &MirSurfaceInterface::focusedChanged, this, [this, surface](bool surfaceFocused){
@@ -83,7 +83,7 @@ void MirSurfaceListModel::connectSurface(MirSurface *surface)
8383 });
8484}
8585
86−void MirSurfaceListModel::removeSurface(MirSurface *surface)
86+void MirSurfaceListModel::removeSurface(MirSurfaceInterface *surface)
8787{
8888 int i = m_surfaceList.indexOf(surface);
8989 if (i != -1) {
tests/mocks/Unity/Application/MirSurfaceListModel.h+7−9
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2016 Canonical, Ltd.
2+ * Copyright (C) 2016-2017 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -23,8 +23,6 @@
2323#include <QAbstractListModel>
2424#include <QList>
2525
26−class MirSurface;
27−
2826class MirSurfaceListModel : public unity::shell::application::MirSurfaceListInterface
2927{
3028 Q_OBJECT
@@ -38,17 +36,17 @@ public:
3836 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
3937 QVariant data(const QModelIndex& index, int role) const override;
4038
41− void addSurface(MirSurface *surface);
42− void removeSurface(MirSurface *surface);
39+ void addSurface(unity::shell::application::MirSurfaceInterface *surface);
40+ void removeSurface(unity::shell::application::MirSurfaceInterface *surface);
4341
44− bool contains(MirSurface *surface) const { return m_surfaceList.contains(surface); }
42+ bool contains(unity::shell::application::MirSurfaceInterface *surface) const { return m_surfaceList.contains(surface); }
4543
4644private:
47− void raise(MirSurface *surface);
45+ void raise(unity::shell::application::MirSurfaceInterface *surface);
4846 void moveSurface(int from, int to);
49− void connectSurface(MirSurface *surface);
47+ void connectSurface(unity::shell::application::MirSurfaceInterface *surface);
5048
51− QList<MirSurface*> m_surfaceList;
49+ QList<unity::shell::application::MirSurfaceInterface*> m_surfaceList;
5250};
5351
5452Q_DECLARE_METATYPE(MirSurfaceListModel*)
tests/mocks/Unity/Launcher/MockLauncherModel.h+1−1
@@ -28,7 +28,7 @@ using namespace unity::shell::launcher;
2828
2929class MockLauncherModel: public LauncherModelInterface
3030{
31− Q_OBJECT
31+ Q_OBJECT
3232
3333public:
3434 MockLauncherModel(QObject* parent = 0);
tests/mocks/Unity/Launcher/MockQuickListModel.cpp+3−1
@@ -39,6 +39,8 @@ QVariant MockQuickListModel::data(const QModelIndex &index, int role) const
3939 return index.row() == 1 ? false : true;
4040 case RoleHasSeparator:
4141 return index.row() <= 1 ? true : false;
42+ case RoleIsPrivate:
43+ return index.row() == 4 ? true : false;
4244 }
4345 return QVariant();
4446}
@@ -46,5 +48,5 @@ QVariant MockQuickListModel::data(const QModelIndex &index, int role) const
4648int MockQuickListModel::rowCount(const QModelIndex &parent) const
4749{
4850 Q_UNUSED(parent)
49− return 4;
51+ return 5;
5052}
tests/mocks/Unity/Launcher/MockQuickListModel.h+2
@@ -27,6 +27,8 @@ using namespace unity::shell::launcher;
2727class MockQuickListModel: public QuickListModelInterface
2828{
2929 Q_OBJECT
30+ Q_PROPERTY(int count READ rowCount)
31+
3032public:
3133 MockQuickListModel(QObject *parent = 0);
3234
tests/mocks/Utils/CMakeLists.txt+2
@@ -27,6 +27,7 @@ set(QMLPLUGIN_SRC
2727 ${CMAKE_SOURCE_DIR}/plugins/Utils/appdrawerproxymodel.cpp
2828 ${CMAKE_SOURCE_DIR}/plugins/Utils/tabfocusfence.cpp
2929 ${CMAKE_SOURCE_DIR}/plugins/Utils/expressionfiltermodel.cpp
30+ ${CMAKE_SOURCE_DIR}/plugins/Utils/quicklistproxymodel.cpp
3031 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
3132 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
3233 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
@@ -35,6 +36,7 @@ set(QMLPLUGIN_SRC
3536 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/AppDrawerModelInterface.h
3637 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
3738 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
39+ ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
3840 constants.cpp
3941 plugin.cpp
4042 windowstatestorage.cpp
tests/mocks/Utils/plugin.cpp+2
@@ -43,6 +43,7 @@
4343#include <appdrawerproxymodel.h>
4444#include <tabfocusfence.h>
4545#include <expressionfiltermodel.h>
46+#include <quicklistproxymodel.h>
4647
4748static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine)
4849{
@@ -88,4 +89,5 @@ void FakeUtilsPlugin::registerTypes(const char *uri)
8889 qmlRegisterType<AppDrawerProxyModel>(uri, 0, 1, "AppDrawerProxyModel");
8990 qmlRegisterType<TabFocusFenceItem>(uri, 0, 1, "TabFocusFence");
9091 qmlRegisterType<ExpressionFilterModel>(uri, 0, 1, "ExpressionFilterModel");
92+ qmlRegisterType<QuickListProxyModel>(uri, 0, 1, "QuickListProxyModel");
9193}
tests/plugins/CMakeLists.txt+1
@@ -9,4 +9,5 @@ add_subdirectory(SessionBroadcast)
99add_subdirectory(Ubuntu)
1010add_subdirectory(Unity)
1111add_subdirectory(Utils)
12+add_subdirectory(WindowManager)
1213add_subdirectory(Wizard)
tests/plugins/Unity/Launcher/CMakeLists.txt+3
@@ -34,6 +34,9 @@ add_executable(launchermodeltestExec
3434 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
3535 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
3636 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
37+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h
38+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
39+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
3740 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
3841 )
3942target_link_libraries(launchermodeltestExec
tests/plugins/Unity/Launcher/launchermodeltest.cpp+85−7
@@ -1,5 +1,5 @@
11/*
2− * Copyright 2013-2016 Canonical Ltd.
2+ * Copyright 2013-2017 Canonical Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU Lesser General Public License as published by
@@ -17,6 +17,7 @@
1717// unity-api
1818#include <unity/shell/launcher/LauncherModelInterface.h>
1919#include <unity/shell/application/ApplicationInfoInterface.h>
20+#include <unity/shell/application/MirSurfaceListInterface.h>
2021
2122#include "launcheritem.h"
2223#include "launchermodel.h"
@@ -37,11 +38,76 @@
3738namespace unityapi = unity::shell::application;
3839
3940// This is a mock, specifically to test the LauncherModel
41+class MockSurface: public unity::shell::application::MirSurfaceInterface
42+{
43+ Q_OBJECT
44+public:
45+ MockSurface(const QString &id, const QString &appId, QObject* parent): unityapi::MirSurfaceInterface(parent), m_id(id), m_appId(appId) {}
46+ Mir::Type type() const override { return Mir::NormalType;}
47+ QString name() const override { return QStringLiteral("mock surface"); }
48+ QString persistentId() const override { return m_id; }
49+ QString appId() const override { return m_appId; }
50+ QPoint position() const override { return QPoint(); }
51+ QSize size() const override { return QSize(); }
52+ void resize(const QSize &size) override { Q_UNUSED(size) }
53+ void resize(int width, int height) override { Q_UNUSED(width); Q_UNUSED(height) }
54+ Mir::State state() const override { return Mir::RestoredState; }
55+ bool live() const override { return true; }
56+ bool visible() const override { return true; }
57+ Mir::OrientationAngle orientationAngle() const override { return Mir::Angle0; }
58+ void setOrientationAngle(Mir::OrientationAngle angle) override { Q_UNUSED(angle); }
59+ int minimumWidth() const override { return 0; }
60+ int minimumHeight() const override { return 0; }
61+ int maximumWidth() const override { return 0; }
62+ int maximumHeight() const override { return 0; }
63+ int widthIncrement() const override { return 0; }
64+ int heightIncrement() const override { return 0; }
65+ void setKeymap(const QString &) override {}
66+ Mir::ShellChrome shellChrome() const override { return Mir::NormalChrome; }
67+ QString keymap() const override { return QStringLiteral("de_DE"); }
68+ bool focused() const override { return true; }
69+ QRect inputBounds() const override { return QRect(); }
70+ bool confinesMousePointer() const override { return false; }
71+ bool allowClientResize() const override { return true; }
72+ void setAllowClientResize(bool) override {}
73+ QPoint requestedPosition() const override { return QPoint(); }
74+ void setRequestedPosition(const QPoint &) override {}
75+ MirSurfaceInterface* parentSurface() const override { return nullptr; }
76+ MirSurfaceListInterface* childSurfaceList() const override { return nullptr; }
77+ void close() override {}
78+ void activate() override {}
79+ void requestState(Mir::State) override {}
80+
81+private:
82+ QString m_id;
83+ QString m_appId;
84+};
85+
86+class MockSurfaceList: public unity::shell::application::MirSurfaceListInterface
87+{
88+ Q_OBJECT
89+public:
90+ MockSurfaceList(QObject *parent): unityapi::MirSurfaceListInterface(parent) {}
91+ int rowCount(const QModelIndex & = QModelIndex()) const override { return m_list.count(); }
92+ QVariant data(const QModelIndex &, int) const override { return QVariant(); }
93+ Q_INVOKABLE MirSurfaceInterface* get(int index) override { return m_list.at(index); }
94+ void append(MirSurfaceInterface* surface) {
95+ beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
96+ m_list.append(surface);
97+ endInsertRows();
98+ }
99+private:
100+ QList<MirSurfaceInterface*> m_list;
101+
102+};
103+
40104class MockApp: public unity::shell::application::ApplicationInfoInterface
41105{
42106 Q_OBJECT
43107public:
44− MockApp(const QString &appId, QObject *parent = 0): ApplicationInfoInterface(appId, parent), m_appId(appId), m_focused(false) { }
108+ MockApp(const QString &appId, QObject *parent = 0): ApplicationInfoInterface(appId, parent), m_appId(appId), m_focused(false) {
109+ m_surfaces = new MockSurfaceList(this);
110+ }
45111
46112 RequestedState requestedState() const override { return RequestedRunning; }
47113 void setRequestedState(RequestedState) override {}
@@ -64,10 +130,10 @@ public:
64130 void setExemptFromLifecycle(bool) override {}
65131 QSize initialSurfaceSize() const override { return QSize(); }
66132 void setInitialSurfaceSize(const QSize &) override {}
67− MirSurfaceListInterface* surfaceList() const override { return nullptr; }
133+ MirSurfaceListInterface* surfaceList() const override { return m_surfaces; }
68134 MirSurfaceListInterface* promptSurfaceList() const override { return nullptr; }
69− int surfaceCount() const override { return m_surfaceCount; }
70− void setSurfaceCount(int count) { m_surfaceCount = count; Q_EMIT surfaceCountChanged(count); }
135+ int surfaceCount() const override { return m_surfaces->count(); }
136+ void setSurfaces(MockSurfaceList* surfaces) { m_surfaces = surfaces; Q_EMIT surfaceCountChanged(m_surfaces->count()); }
71137 void close() override {}
72138
73139 // Methods used for mocking (not in the interface)
@@ -75,7 +141,7 @@ public:
75141private:
76142 QString m_appId;
77143 bool m_focused;
78− int m_surfaceCount = 0;
144+ MockSurfaceList *m_surfaces;
79145};
80146
81147// This is a mock, specifically to test the LauncherModel
@@ -748,8 +814,20 @@ private Q_SLOTS:
748814
749815 QCOMPARE(launcherModel->get(0)->surfaceCount(), 0);
750816 MockApp *app = qobject_cast<MockApp*>(appManager->findApplication(appId));
751− app->setSurfaceCount(1);
817+ MockSurfaceList* surfaces = new MockSurfaceList(appManager);
818+ surfaces->append(new MockSurface("foobar", "foobar", surfaces));
819+ app->setSurfaces(surfaces);
752820 QCOMPARE(launcherModel->get(0)->surfaceCount(), 1);
821+
822+ // Make sure the new surface appears in the quicklist
823+ QuickListModel *quickList = qobject_cast<QuickListModel*>(launcherModel->get(0)->quickList());
824+ bool found = false;
825+ for (int i = 0; i < quickList->rowCount(); ++i) {
826+ if (quickList->get(i).actionId() == "surface_foobar") {
827+ found = true;
828+ }
829+ }
830+ QCOMPARE(found, true);
753831 }
754832};
755833
tests/plugins/Unity/Session/CMakeLists.txt+13−1
@@ -33,6 +33,17 @@ install(TARGETS LightDMServer
3333 DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/Unity/Session"
3434 )
3535
36+### Preload
37+add_library(SessionBackendTestPreload SHARED
38+ preload.c
39+)
40+target_link_libraries(SessionBackendTestPreload
41+ ${GLIB_LIBRARIES}
42+ )
43+install(TARGETS SessionBackendTestPreload
44+ DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/Unity/Session"
45+ )
46+
3647### SessionBackendTest
3748add_executable(sessionbackendtestExec
3849 sessionbackendtest.cpp
@@ -48,7 +59,8 @@ install(TARGETS sessionbackendtestExec
4859)
4960
5061add_unity8_unittest(SessionBackend dbus-test-runner
51− ENVIRONMENT XDG_SESSION_PATH=/session
62+ ENVIRONMENT LD_PRELOAD=$<TARGET_FILE:SessionBackendTestPreload>
63+ XDG_SESSION_PATH=/session
5264 ARG_PREFIX "--parameter"
5365 ARGS
5466 --task $<TARGET_FILE:LightDMServer>
tests/plugins/Unity/Session/LogindServer.cpp+10
@@ -27,6 +27,16 @@ QDBusObjectPath LogindServer::GetSessionByPID(quint32)
2727 return QDBusObjectPath("/logindsession");
2828}
2929
30+void LogindServer::Reboot(bool interactive)
31+{
32+ Q_EMIT RebootCalled(interactive);
33+}
34+
35+void LogindServer::PowerOff(bool interactive)
36+{
37+ Q_EMIT PowerOffCalled(interactive);
38+}
39+
3040void LogindServer::MockEmitUnlock()
3141{
3242 Q_EMIT Unlock();
tests/plugins/Unity/Session/LogindServer.h+5
@@ -31,6 +31,8 @@ public:
3131
3232public Q_SLOTS:
3333 QDBusObjectPath GetSessionByPID(quint32 pid);
34+ void Reboot(bool interactive);
35+ void PowerOff(bool interactive);
3436
3537 void MockEmitUnlock(); // only in mock
3638
@@ -38,6 +40,9 @@ Q_SIGNALS:
3840 void Lock();
3941 void Unlock();
4042 void PrepareForSleep();
43+
44+ void RebootCalled(bool interactive); // only in mock
45+ void PowerOffCalled(bool interactive); // only in mock
4146};
4247
4348#endif
tests/plugins/Unity/Session/interfaces.xml+12
@@ -7,6 +7,18 @@
77 <arg name="pid" type="u" direction="in" />
88 <arg name="session" type="o" direction="out" />
99 </method>
10+ <method name="Reboot">
11+ <arg name="interactive" type="b" direction="in" />
12+ </method>
13+ <method name="PowerOff">
14+ <arg name="interactive" type="b" direction="in" />
15+ </method>
16+ <signal name="RebootCalled">
17+ <arg name="interactive" type="b" direction="out" />
18+ </signal>
19+ <signal name="PowerOffCalled">
20+ <arg name="interactive" type="b" direction="out" />
21+ </signal>
1022 <signal name="PrepareForSleep" />
1123 </interface>
1224 <interface name="org.freedesktop.login1.Session">
tests/plugins/Unity/Session/preload.cnew file+43
@@ -0,0 +1,43 @@
1+/*
2+ * Copyright © 2017 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License version 3 as
6+ * published by the Free Software Foundation.
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+
18+#include <glib.h>
19+#include <grp.h>
20+#include <stdlib.h>
21+
22+const gchar *g_get_user_name(void)
23+{
24+ // The normal glib version parses pwent entries
25+ return g_getenv("TEST_USER");
26+}
27+
28+struct group *getgrnam(const char *group_name)
29+{
30+ static struct group rv = {NULL, NULL, 0, NULL};
31+
32+ g_free(rv.gr_name);
33+ g_strfreev(rv.gr_mem);
34+
35+ rv.gr_name = g_strdup(group_name);
36+ rv.gr_passwd = NULL;
37+ rv.gr_gid = 9999;
38+ rv.gr_mem = NULL;
39+ if (g_strcmp0(group_name, "nopasswdlogin") == 0) {
40+ rv.gr_mem = g_strsplit(g_getenv("TEST_NOPASSWD_USERS"), ",", 0);
41+ }
42+ return &rv;
43+}
tests/plugins/Unity/Session/sessionbackendtest.cpp+130−11
@@ -53,6 +53,11 @@ private Q_SLOTS:
5353 QDBusConnection::sessionBus());
5454 }
5555
56+ void init() {
57+ qputenv("TEST_USER", "testuser");
58+ qputenv("TEST_NOPASSWD_USERS", "");
59+ }
60+
5661 void testUnitySessionLogoutRequested_data() {
5762 QTest::addColumn<QString>("method");
5863 QTest::addColumn<QString>("signal");
@@ -81,7 +86,99 @@ private Q_SLOTS:
8186 QTRY_COMPARE(spy.count(), 1);
8287 }
8388
84− void testGnomeSessionWrapper_data() {
89+ void testGnomeSessionWrapperWithoutConfirmation_data() {
90+ QTest::addColumn<QString>("method");
91+ QTest::addColumn<QString>("signal");
92+
93+ QTest::newRow("Reboot") << "RequestReboot" << SIGNAL(RebootCalled(bool));
94+ QTest::newRow("Shutdown") << "RequestShutdown" << SIGNAL(PowerOffCalled(bool));
95+ }
96+
97+ void testGnomeSessionWrapperWithoutConfirmation() {
98+ QFETCH(QString, method);
99+ QFETCH(QString, signal);
100+
101+ DBusUnitySessionService dbusUnitySessionService;
102+ DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper;
103+ QCoreApplication::processEvents(); // to let the services register on DBus
104+
105+ QDBusInterface login1Interface("org.freedesktop.login1",
106+ "/logindsession",
107+ "org.freedesktop.login1.Manager");
108+ QSignalSpy spy(&login1Interface, signal.toUtf8().data());
109+
110+ QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager",
111+ "/org/gnome/SessionManager",
112+ "org.gnome.SessionManager",
113+ QDBusConnection::sessionBus());
114+ QVERIFY(dbusGnomeSessionWrapper.isValid());
115+
116+ QDBusReply<void> reply = dbusGnomeSessionWrapper.call(method);
117+ QVERIFY(reply.isValid());
118+ QTRY_COMPARE(spy.count(), 1);
119+ }
120+
121+ void testGnomeSessionWrapperWithConfirmation_data() {
122+ QTest::addColumn<QString>("method");
123+ QTest::addColumn<QString>("signal");
124+
125+ QTest::newRow("Reboot") << "Reboot" << SIGNAL(RebootRequested(bool));
126+ QTest::newRow("Shutdown") << "Shutdown" << SIGNAL(ShutdownRequested(bool));
127+ }
128+
129+ void testGnomeSessionWrapperWithConfirmation() {
130+ QFETCH(QString, method);
131+ QFETCH(QString, signal);
132+
133+ DBusUnitySessionService dbusUnitySessionService;
134+ DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper;
135+ QCoreApplication::processEvents(); // to let the services register on DBus
136+
137+ QSignalSpy spy(&dbusUnitySessionService, signal.toUtf8().data());
138+
139+ QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager",
140+ "/org/gnome/SessionManager",
141+ "org.gnome.SessionManager",
142+ QDBusConnection::sessionBus());
143+ QVERIFY(dbusGnomeSessionWrapper.isValid());
144+
145+ QDBusReply<void> reply = dbusGnomeSessionWrapper.call(method);
146+ QVERIFY(reply.isValid());
147+ QCOMPARE(spy.count(), 1);
148+ }
149+
150+ void testGnomeSessionWrapperLogout_data() {
151+ QTest::addColumn<int>("mode");
152+ QTest::addColumn<QString>("signal");
153+
154+ QTest::newRow("Logout") << 0 << SIGNAL(LogoutRequested(bool));
155+ QTest::newRow("LogoutNoDialog") << 1 << SIGNAL(LogoutReady());
156+ QTest::newRow("LogoutNoInhibits") << 2 << SIGNAL(LogoutReady());
157+ QTest::newRow("LogoutNoDialogNoInhibits") << 3 << SIGNAL(LogoutReady());
158+ }
159+
160+ void testGnomeSessionWrapperLogout() {
161+ QFETCH(int, mode);
162+ QFETCH(QString, signal);
163+
164+ DBusUnitySessionService dbusUnitySessionService;
165+ DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper;
166+ QCoreApplication::processEvents(); // to let the services register on DBus
167+
168+ QSignalSpy spy(&dbusUnitySessionService, signal.toUtf8().data());
169+
170+ QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager",
171+ "/org/gnome/SessionManager",
172+ "org.gnome.SessionManager",
173+ QDBusConnection::sessionBus());
174+ QVERIFY(dbusGnomeSessionWrapper.isValid());
175+
176+ QDBusReply<void> reply = dbusGnomeSessionWrapper.call("Logout", (quint32)mode);
177+ QVERIFY(reply.isValid());
178+ QCOMPARE(spy.count(), 1);
179+ }
180+
181+ void testGnomeSessionDialogWrapper_data() {
85182 QTest::addColumn<uint>("method");
86183 QTest::addColumn<QString>("signal");
87184
@@ -90,7 +187,7 @@ private Q_SLOTS:
90187 QTest::newRow("Reboot") << (uint)Action::REBOOT << "RebootRequested(bool)";
91188 }
92189
93− void testGnomeSessionWrapper() {
190+ void testGnomeSessionDialogWrapper() {
94191 QFETCH(uint, method);
95192 QFETCH(QString, signal);
96193
@@ -102,7 +199,7 @@ private Q_SLOTS:
102199 // .. because QSignalSpy checks the signal signature like this: "if (((aSignal[0] - '0') & 0x03) != QSIGNAL_CODE)"
103200 QSignalSpy spy(&dbusUnitySessionService, qPrintable(signal.prepend(QSIGNAL_CODE)));
104201
105− DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper;
202+ DBusGnomeSessionManagerDialogWrapper dbusGnomeSessionManagerDialogWrapper;
106203 QCoreApplication::processEvents(); // to let the service register on DBus
107204
108205 QDBusInterface dbusGnomeSessionWrapper("com.canonical.Unity",
@@ -138,14 +235,7 @@ private Q_SLOTS:
138235
139236 void testUserName() {
140237 DBusUnitySessionService dbusUnitySessionService;
141− QCoreApplication::processEvents(); // to let the service register on DBus
142−
143− QProcess * proc = new QProcess(this);
144− proc->start("id -un", QProcess::ReadOnly);
145− proc->waitForFinished();
146− const QByteArray out = proc->readAll().trimmed();
147−
148− QCOMPARE(dbusUnitySessionService.UserName(), QString::fromUtf8(out));
238+ QCOMPARE(dbusUnitySessionService.UserName(), QString("testuser"));
149239 }
150240
151241 void testRealName() {
@@ -162,6 +252,35 @@ private Q_SLOTS:
162252 }
163253 }
164254
255+ void testCanLock() {
256+ DBusUnitySessionService dbusUnitySessionService;
257+
258+ qputenv("TEST_USER", "testuser");
259+ QVERIFY(dbusUnitySessionService.CanLock());
260+
261+ qputenv("TEST_USER", "guest-abcdef"); // guest-* can't lock
262+ QVERIFY(!dbusUnitySessionService.CanLock());
263+
264+ qputenv("TEST_USER", "testuser");
265+ qputenv("TEST_NOPASSWD_USERS", "testuser"); // nopasswdlogin can't lock
266+ QVERIFY(!dbusUnitySessionService.CanLock());
267+ }
268+
269+ void testPromptLockRespectsCanLock() {
270+ DBusUnitySessionService dbusUnitySessionService;
271+
272+ QSignalSpy spy(&dbusUnitySessionService, SIGNAL(lockRequested()));
273+ QVERIFY(dbusUnitySessionService.CanLock());
274+ dbusUnitySessionService.PromptLock();
275+ QCOMPARE(spy.count(), 1);
276+
277+ spy.clear();
278+ qputenv("TEST_USER", "guest-abcdef");
279+ QVERIFY(!dbusUnitySessionService.CanLock());
280+ dbusUnitySessionService.PromptLock();
281+ QCOMPARE(spy.count(), 0);
282+ }
283+
165284private:
166285 QDBusInterface *dbusUnitySession;
167286};
tests/plugins/WindowManager/CMakeLists.txtnew file+34
@@ -0,0 +1,34 @@
1+include_directories(
2+ ${CMAKE_SOURCE_DIR}/plugins/WindowManager
3+ ${CMAKE_CURRENT_BINARY_DIR}
4+ ${CMAKE_SOURCE_DIR}/tests/mocks
5+ )
6+
7+add_executable(TopLevelWindowModelTestExec
8+ tst_TopLevelWindowModel.cpp
9+ UnityApplicationMocks.h
10+
11+ ${CMAKE_SOURCE_DIR}/tests/mocks/Unity/Application/MirSurfaceListModel.cpp
12+
13+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
14+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
15+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h
16+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h
17+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h
18+ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/SurfaceManagerInterface.h
19+ )
20+qt5_use_modules(TopLevelWindowModelTestExec Test Core Gui Qml Quick)
21+
22+target_link_libraries(TopLevelWindowModelTestExec windowmanager-qml)
23+
24+install(TARGETS TopLevelWindowModelTestExec
25+ DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/WindowManager"
26+)
27+
28+# To find libwindowmanager-qml.so
29+set_target_properties(TopLevelWindowModelTestExec PROPERTIES
30+ INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_PRIVATE_LIBDIR}")
31+
32+add_unity8_unittest(TopLevelWindowModel TopLevelWindowModelTestExec
33+ ENVIRONMENT LD_LIBRARY_PATH=${UNITY_PLUGINPATH}/WindowManager
34+)
tests/plugins/WindowManager/UnityApplicationMocks.hnew file+203
@@ -0,0 +1,203 @@
1+/*
2+ * Copyright (C) 2017 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef UNITYAPPLICATIONMOCKS_H
18+#define UNITYAPPLICATIONMOCKS_H
19+
20+#include <unity/shell/application/ApplicationInfoInterface.h>
21+#include <unity/shell/application/ApplicationManagerInterface.h>
22+#include <unity/shell/application/MirSurfaceInterface.h>
23+#include <unity/shell/application/SurfaceManagerInterface.h>
24+
25+// from tests/mocks
26+#include <Unity/Application/MirSurfaceListModel.h>
27+
28+using namespace unity::shell::application;
29+
30+class MirSurface : public MirSurfaceInterface
31+{
32+ Q_OBJECT
33+public:
34+ Mir::Type type() const override { return m_type; }
35+ QString name() const override { return QString("foo"); }
36+ QString persistentId() const override { return QString("a-b-c-my-id"); }
37+ QString appId() const override { return QString(); }
38+ QPoint position() const override { return QPoint(); }
39+ QSize size() const override { return QSize(); }
40+ void resize(int, int) override {}
41+ void resize(const QSize &) override {}
42+ Mir::State state() const override { return m_state; }
43+ bool live() const override { return m_live; }
44+ bool visible() const override { return true; }
45+ Mir::OrientationAngle orientationAngle() const override { return Mir::Angle0; }
46+ void setOrientationAngle(Mir::OrientationAngle) override {}
47+
48+ int minimumWidth() const override { return 0; }
49+ int minimumHeight() const override { return 0; }
50+ int maximumWidth() const override { return 0; }
51+ int maximumHeight() const override { return 0; }
52+ int widthIncrement() const override { return 0; }
53+ int heightIncrement() const override { return 0; }
54+
55+ void setKeymap(const QString &) override {}
56+ QString keymap() const override { return QString(); }
57+ Mir::ShellChrome shellChrome() const override { return Mir::NormalChrome; }
58+ bool focused() const override { return true; }
59+ QRect inputBounds() const override { return QRect(); }
60+ bool confinesMousePointer() const override { return false; }
61+ bool allowClientResize() const override { return true; }
62+ void setAllowClientResize(bool) override {}
63+ QPoint requestedPosition() const override { return QPoint(); }
64+ void setRequestedPosition(const QPoint &) override {}
65+ MirSurfaceInterface* parentSurface() const override { return nullptr; }
66+ unity::shell::application::MirSurfaceListInterface* childSurfaceList() const override { return nullptr; }
67+ void close() override {}
68+ void activate() override {}
69+
70+public Q_SLOTS:
71+ void requestState(Mir::State value) override
72+ {
73+ if (m_state != value) {
74+ m_state = value;
75+ Q_EMIT stateChanged(m_state);
76+ }
77+ }
78+
79+public:
80+ Mir::Type m_type { Mir::NormalType };
81+ Mir::State m_state { Mir::RestoredState };
82+ bool m_live { true };
83+};
84+
85+class SurfaceManager : public SurfaceManagerInterface
86+{
87+ Q_OBJECT
88+
89+public:
90+ void raise(MirSurfaceInterface *) override {}
91+ void activate(MirSurfaceInterface *) override {}
92+};
93+
94+class Application : public ApplicationInfoInterface
95+{
96+ Q_OBJECT
97+public:
98+ Application(QString appId) : ApplicationInfoInterface(appId, nullptr), m_appId(std::move(appId)) {}
99+
100+ void close() override {}
101+ QString appId() const override { return m_appId;}
102+ QString name() const override { return "foo"; }
103+ QString comment() const override { return "bar"; }
104+ QUrl icon() const override { return QUrl(); }
105+ State state() const override { return m_state; }
106+ RequestedState requestedState() const override { return m_requestedState; }
107+ void setRequestedState(RequestedState value) override
108+ {
109+ if (value != m_requestedState) {
110+ m_requestedState = value;
111+ Q_EMIT requestedStateChanged(value);
112+ }
113+ }
114+ bool focused() const override { return false; }
115+ QString splashTitle() const override { return QString(); }
116+ QUrl splashImage() const override { return QUrl(); }
117+ bool splashShowHeader() const override { return false; }
118+ QColor splashColor() const override { return QColor(); }
119+ QColor splashColorHeader() const override { return QColor(); }
120+ QColor splashColorFooter() const override { return QColor(); }
121+ Qt::ScreenOrientations supportedOrientations() const override { return Qt::LandscapeOrientation; }
122+ bool rotatesWindowContents() const override { return false; }
123+ bool isTouchApp() const override { return false; }
124+ bool exemptFromLifecycle() const override { return false; }
125+ void setExemptFromLifecycle(bool) override {}
126+ QSize initialSurfaceSize() const override { return QSize(); }
127+ void setInitialSurfaceSize(const QSize &) override {}
128+ MirSurfaceListInterface* surfaceList() const override { return &m_surfaceList; }
129+ MirSurfaceListInterface* promptSurfaceList() const override { return nullptr; }
130+ int surfaceCount() const override { return 0; }
131+
132+ QString m_appId;
133+ State m_state;
134+ RequestedState m_requestedState;
135+ mutable MirSurfaceListModel m_surfaceList;
136+};
137+
138+class ApplicationManager : public ApplicationManagerInterface
139+{
140+ Q_OBJECT
141+
142+public:
143+
144+ int rowCount(const QModelIndex &) const override
145+ {
146+ return m_applications.count();
147+ }
148+
149+ QVariant data(const QModelIndex &/*index*/, int /*role*/) const override
150+ {
151+ return QVariant();
152+ }
153+
154+ QString focusedApplicationId() const override {return QString();}
155+
156+ ApplicationInfoInterface *get(int index) const override
157+ {
158+ return m_applications[index];
159+ }
160+
161+ ApplicationInfoInterface *findApplication(const QString &appId) const override
162+ {
163+ Q_UNUSED(appId);
164+ return nullptr;
165+ }
166+
167+ ApplicationInfoInterface *findApplicationWithSurface(MirSurfaceInterface* surface) const override
168+ {
169+ for (int i = 0; i < m_applications.count(); ++i) {
170+ if (m_applications[i]->m_surfaceList.contains(surface)) {
171+ return m_applications[i];
172+ }
173+ }
174+ return nullptr;
175+ }
176+
177+ bool requestFocusApplication(const QString &appId) override
178+ {
179+ Q_UNUSED(appId);
180+ return false;
181+ }
182+
183+ ApplicationInfoInterface *startApplication(const QString &appId, const QStringList &/*arguments*/) override
184+ {
185+ Application *application = new Application(appId);
186+ prepend(application);
187+ return application;
188+ }
189+
190+ bool stopApplication(const QString &) override { return true; }
191+
192+private:
193+ void prepend(Application *application)
194+ {
195+ beginInsertRows(QModelIndex(), 0 /*first*/, 0 /*last*/);
196+ m_applications.append(application);
197+ endInsertRows();
198+ }
199+
200+ QList<Application*> m_applications;
201+};
202+
203+#endif // UNITYAPPLICATIONMOCKS_H
tests/plugins/WindowManager/tst_TopLevelWindowModel.cppnew file+130
@@ -0,0 +1,130 @@
1+/*
2+ * Copyright (C) 2017 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include <QtTest/QtTest>
18+
19+// WindowManager plugin
20+#include <TopLevelWindowModel.h>
21+#include <Window.h>
22+
23+#include "UnityApplicationMocks.h"
24+
25+class tst_TopLevelWindowModel : public QObject
26+{
27+ Q_OBJECT
28+
29+private Q_SLOTS:
30+ void init(); // called right before each and every test function is executed
31+ void cleanup(); // called right after each and every test function is executed
32+
33+ void singleSurfaceStartsHidden();
34+ void secondSurfaceIsHidden();
35+
36+private:
37+ ApplicationManager *applicationManager{nullptr};
38+ SurfaceManager *surfaceManager{nullptr};
39+ TopLevelWindowModel *topLevelWindowModel{nullptr};
40+};
41+
42+void tst_TopLevelWindowModel::init()
43+{
44+ applicationManager = new ApplicationManager;
45+ surfaceManager = new SurfaceManager;
46+
47+ topLevelWindowModel = new TopLevelWindowModel;
48+ topLevelWindowModel->setApplicationManager(applicationManager);
49+ topLevelWindowModel->setSurfaceManager(surfaceManager);
50+}
51+
52+void tst_TopLevelWindowModel::cleanup()
53+{
54+ delete topLevelWindowModel;
55+ topLevelWindowModel = nullptr;
56+
57+ delete surfaceManager;
58+ surfaceManager = nullptr;
59+
60+ delete applicationManager;
61+ applicationManager = nullptr;
62+}
63+
64+void tst_TopLevelWindowModel::singleSurfaceStartsHidden()
65+{
66+ QCOMPARE(topLevelWindowModel->rowCount(), 0);
67+
68+ auto application = static_cast<Application*>(applicationManager->startApplication(QString("hello-world"), QStringList()));
69+
70+ QCOMPARE(topLevelWindowModel->rowCount(), 1);
71+ QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)nullptr);
72+
73+ auto surface = new MirSurface;
74+ surface->m_state = Mir::HiddenState;
75+ application->m_surfaceList.addSurface(surface);
76+ Q_EMIT surfaceManager->surfaceCreated(surface);
77+
78+ QCOMPARE(topLevelWindowModel->rowCount(), 1);
79+ // not showing the surface as it's still hidden
80+ QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)nullptr);
81+
82+ surface->requestState(Mir::RestoredState);
83+
84+ QCOMPARE(topLevelWindowModel->rowCount(), 1);
85+ // Now that the surface is no longer hidden, TopLevelWindowModel should expose it.
86+ QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)surface);
87+}
88+
89+void tst_TopLevelWindowModel::secondSurfaceIsHidden()
90+{
91+ QCOMPARE(topLevelWindowModel->rowCount(), 0);
92+
93+ auto application = static_cast<Application*>(applicationManager->startApplication(QString("hello-world"), QStringList()));
94+
95+ QCOMPARE(topLevelWindowModel->rowCount(), 1);
96+ QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)nullptr);
97+
98+ auto firstSurface = new MirSurface;
99+ application->m_surfaceList.addSurface(firstSurface);
100+ Q_EMIT surfaceManager->surfaceCreated(firstSurface);
101+
102+ QCOMPARE(topLevelWindowModel->rowCount(), 1);
103+ QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)firstSurface);
104+
105+ auto secondSurface = new MirSurface;
106+ secondSurface->m_state = Mir::HiddenState;
107+ application->m_surfaceList.addSurface(secondSurface);
108+ Q_EMIT surfaceManager->surfaceCreated(secondSurface);
109+
110+ // still only the first surface is exposed by TopLevelWindowModel
111+ QCOMPARE(topLevelWindowModel->rowCount(), 1);
112+ QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)firstSurface);
113+
114+ secondSurface->requestState(Mir::RestoredState);
115+
116+ // now the second surface finally shows up
117+ QCOMPARE(topLevelWindowModel->rowCount(), 2);
118+ QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)secondSurface);
119+ QCOMPARE((void*)topLevelWindowModel->windowAt(1)->surface(), (void*)firstSurface);
120+
121+ secondSurface->requestState(Mir::HiddenState);
122+
123+ // and it's gone again
124+ QCOMPARE(topLevelWindowModel->rowCount(), 1);
125+ QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)firstSurface);
126+}
127+
128+QTEST_MAIN(tst_TopLevelWindowModel)
129+
130+#include "tst_TopLevelWindowModel.moc"
tests/qmltests/ApplicationMenus/tst_MenuBar.qml+101
@@ -76,6 +76,12 @@ Item {
7676 signalName: "activated"
7777 }
7878
79+ SignalSpy {
80+ id: aboutToShowCalledSpy
81+ target: menuBackend
82+ signalName: "aboutToShowCalled"
83+ }
84+
7985 UnityTestCase {
8086 id: testCase
8187 name: "MenuBar"
@@ -115,6 +121,43 @@ Item {
115121 compare(menuItem0.popupVisible, true, "Popup should be visible");
116122 }
117123
124+ function test_aboutToShow() {
125+ menuBackend.modelData = appMenuData.generateTestData(3,3,0,0, "menu");
126+ wait(50) // wait for row to build
127+ var priv = findInvisibleChild(menuBar, "d");
128+
129+ var menuItem0 = findChild(menuBar, "menuBar-item0");
130+ var menuItem1 = findChild(menuBar, "menuBar-item1");
131+
132+ aboutToShowCalledSpy.clear();
133+ menuItem0.show();
134+ compare(aboutToShowCalledSpy.count, 1);
135+
136+ menuItem0.show();
137+ // It's already shown so nothing happens
138+ compare(aboutToShowCalledSpy.count, 1);
139+
140+ menuItem0.hide();
141+ menuItem0.show();
142+ compare(aboutToShowCalledSpy.count, 2);
143+
144+ menuItem0.dismiss();
145+ menuItem0.show();
146+ compare(aboutToShowCalledSpy.count, 3);
147+
148+ menuItem1.show();
149+ compare(aboutToShowCalledSpy.count, 4);
150+
151+ menuItem0.show();
152+ compare(aboutToShowCalledSpy.count, 5);
153+
154+ compare(aboutToShowCalledSpy.signalArguments[0][0], 0);
155+ compare(aboutToShowCalledSpy.signalArguments[1][0], 0);
156+ compare(aboutToShowCalledSpy.signalArguments[2][0], 0);
157+ compare(aboutToShowCalledSpy.signalArguments[3][0], 1);
158+ compare(aboutToShowCalledSpy.signalArguments[4][0], 0);
159+ }
160+
118161 function test_keyboardNavigation_RightKeySelectsNextMenuItem(data) {
119162 menuBackend.modelData = appMenuData.generateTestData(3,3,0,0, "menu");
120163 var priv = findInvisibleChild(menuBar, "d");
@@ -183,6 +226,30 @@ Item {
183226 keyRelease(data.tag, Qt.AltModifier, 100);
184227 }
185228
229+ function test_disabledTopLevel() {
230+ var modelData = appMenuData.generateTestData(3,3,0,0,"menu");
231+ modelData[1].rowData.sensitive = false;
232+ menuBackend.modelData = modelData;
233+
234+ var priv = findInvisibleChild(menuBar, "d");
235+
236+ var menuItem0 = findChild(menuBar, "menuBar-item0"); verify(menuItem0);
237+ var menuItem2 = findChild(menuBar, "menuBar-item2"); verify(menuItem2);
238+
239+ menuItem0.show();
240+ compare(menuItem0.popupVisible, true, "Popup should be visible");
241+
242+ keyClick(Qt.Key_Right);
243+ compare(priv.currentItem, menuItem2);
244+ compare(menuItem2.popupVisible, true);
245+ compare(menuItem0.popupVisible, false);
246+
247+ keyClick(Qt.Key_Left);
248+ compare(priv.currentItem, menuItem0);
249+ compare(menuItem2.popupVisible, false);
250+ compare(menuItem0.popupVisible, true);
251+ }
252+
186253 function test_menuActivateClosesMenu() {
187254 menuBackend.modelData = appMenuData.generateTestData(3,3,0,0,"menu");
188255 var priv = findInvisibleChild(menuBar, "d");
@@ -271,5 +338,39 @@ Item {
271338 return false;
272339 }, true);
273340 }
341+
342+ function test_firstDisabled() {
343+ var data = appMenuData.generateTestData(10,5,2,3);
344+ data[0].submenu[1].submenu[0].rowData.sensitive = false;
345+ menuBackend.modelData = data;
346+
347+ var menuItem = findChild(menuBar, "menuBar-item0");
348+ menuItem.show();
349+
350+ // waits for item to be created so the keyclick actually works
351+ findChild(menuBar, "menuBar-item0-menu-item1-actionItem");
352+
353+ keyClick(Qt.Key_Down);
354+ keyClick(Qt.Key_Down);
355+ keyClick(Qt.Key_Right);
356+
357+ var submenu = findChild(menuBar, "menuBar-item0-menu-item1-menu");
358+ var priv = findInvisibleChild(submenu, "d");
359+ var subActionItem1 = findChild(submenu, "menuBar-item0-menu-item1-menu-item1-actionItem");
360+ compare(priv.currentItem.item, subActionItem1);
361+
362+ keyClick(Qt.Key_Down);
363+ var subActionItem3 = findChild(submenu, "menuBar-item0-menu-item1-menu-item3-actionItem");
364+ compare(priv.currentItem.item, subActionItem3);
365+
366+ // now move mouse over to a different item and back to exercise a different codepath
367+ var actionItem0 = findChild(menuBar, "menuBar-item0-menu-item0-actionItem");
368+ mouseMove(actionItem0, actionItem0.width/2, actionItem0.height/2);
369+
370+ var actionItem1 = findChild(menuBar, "menuBar-item0-menu-item1-actionItem");
371+ mouseMove(actionItem1, actionItem1.width/2, actionItem1.height/2);
372+
373+ tryCompareFunction(function() { return priv.currentItem.item == subActionItem1; }, true);
374+ }
274375 }
275376}
tests/qmltests/ApplicationMenus/tst_MenuPopup.qml+51−23
@@ -59,18 +59,13 @@ Item {
5959 }}
6060 ]
6161 }
62−
63− Binding {
64− target: activatedSpy
65− property: "target"
66− value: unityMenuModel
67− }
6862 }
6963 }
7064
7165 SignalSpy {
72− id: activatedSpy
73− signalName: "activated"
66+ id: aboutToShowCalledSpy
67+ target: loader.item ? loader.item.unityMenuModel : undefined
68+ signalName: "aboutToShowCalled"
7469 }
7570
7671 UnityTestCase {
@@ -88,7 +83,6 @@ Item {
8883 function cleanup() {
8984 menu.reset();
9085 wait(100); // let the page dismiss
91− activatedSpy.clear();
9286
9387 loader.active = false;
9488 tryCompare(loader, "item", null);
@@ -159,9 +153,6 @@ Item {
159153
160154 var priv = findInvisibleChild(menu, "d");
161155
162− keyClick(Qt.Key_Down, Qt.NoModifier);
163− compare(priv.currentItem, item0, "CurrentItem should have moved to item 0");
164−
165156 keyClick(Qt.Key_Down, Qt.NoModifier);
166157 compare(priv.currentItem, item1, "CurrentItem should have moved to item 1");
167158
@@ -170,6 +161,9 @@ Item {
170161
171162 keyClick(Qt.Key_Down, Qt.NoModifier);
172163 compare(priv.currentItem, item0, "CurrentItem should have moved to item 0");
164+
165+ keyClick(Qt.Key_Down, Qt.NoModifier);
166+ compare(priv.currentItem, item1, "CurrentItem should have moved to item 1");
173167 }
174168
175169 function test_keyboardNavigation_UpKeySelectsAndOpensPreviousMenuItemAndRotates() {
@@ -181,17 +175,48 @@ Item {
181175
182176 var priv = findInvisibleChild(menu, "d");
183177
184− keyClick(Qt.Key_Down, Qt.NoModifier);
185− compare(priv.currentItem, item0, "CurrentItem should have moved to item 2");
178+ keyClick(Qt.Key_Up, Qt.NoModifier);
179+ compare(priv.currentItem, item2, "CurrentItem should have moved to item 2");
186180
187− keyClick(Qt.Key_Down, Qt.NoModifier);
181+ keyClick(Qt.Key_Up, Qt.NoModifier);
188182 compare(priv.currentItem, item1, "CurrentItem should have moved to item 1");
189183
190− keyClick(Qt.Key_Down, Qt.NoModifier);
191− compare(priv.currentItem, item2, "CurrentItem should have moved to item 0");
184+ keyClick(Qt.Key_Up, Qt.NoModifier);
185+ compare(priv.currentItem, item0, "CurrentItem should have moved to item 0");
192186
193− keyClick(Qt.Key_Down, Qt.NoModifier);
194− compare(priv.currentItem, item0, "CurrentItem should have moved to item 2");
187+ keyClick(Qt.Key_Up, Qt.NoModifier);
188+ compare(priv.currentItem, item2, "CurrentItem should have moved to item 2");
189+ }
190+
191+ function test_aboutToShow() {
192+ menu.unityMenuModel.modelData = appMenuData.generateTestData(3,3,1,0,"menu",false);
193+
194+ var item0 = findChild(menu, "menu-item0");
195+ var item1 = findChild(menu, "menu-item1");
196+ var item2 = findChild(menu, "menu-item2");
197+
198+ aboutToShowCalledSpy.clear();
199+
200+ mouseMove(item0, item0.width/2, item0.height/2);
201+ tryCompare(aboutToShowCalledSpy, "count", 1);
202+
203+ mouseMove(item1, item0.width/2, item0.height/2);
204+ tryCompare(aboutToShowCalledSpy, "count", 2);
205+
206+ mouseMove(item2, item0.width/2, item0.height/2);
207+ tryCompare(aboutToShowCalledSpy, "count", 3);
208+
209+ mouseMove(item0, item0.width/2, item0.height/2);
210+ tryCompare(aboutToShowCalledSpy, "count", 4);
211+
212+ item0.item.trigger();
213+ // it's already visible
214+ tryCompare(aboutToShowCalledSpy, "count", 4);
215+
216+ compare(aboutToShowCalledSpy.signalArguments[0][0], 0);
217+ compare(aboutToShowCalledSpy.signalArguments[1][0], 1);
218+ compare(aboutToShowCalledSpy.signalArguments[2][0], 2);
219+ compare(aboutToShowCalledSpy.signalArguments[3][0], 0);
195220 }
196221
197222 function test_keyboardNavigation_RightKeyEntersSubMenu() {
@@ -217,7 +242,7 @@ Item {
217242
218243 var menuItem = findChild(menu, "menu-item0"); verify(menuItem);
219244 mouseClick(menuItem, menuItem.width/2, menuItem.height/2);
220− tryCompareFunction(function() { return menuItem.popup !== null && menuItem.popup.visible }, true);
245+ tryCompareFunction(function() { return menuItem.popup !== null && findInvisibleChild(menuItem.popup, "d").currentItem !== null }, true);
221246
222247 keyClick(Qt.Key_Left, Qt.NoModifier);
223248 tryCompareFunction(function() { return menuItem.popup !== null && menuItem.popup.visible }, false);
@@ -245,13 +270,16 @@ Item {
245270
246271 menu.unityMenuModel.modelData = differentSizesMenu;
247272
248− waitForRendering(menu);
273+ // Wait for the two items to be there
274+ tryCompareFunction(function() { return findChild(menu, "menu-item1") !== null; }, true);
249275 var longWidth = menu.width;
276+
277+ // Now pop one item and make sure it's smaller
250278 differentSizesMenu.pop();
251279 menu.unityMenuModel.modelData = differentSizesMenu;
252280
253− waitForRendering(menu);
254− verify(menu.width < longWidth);
281+ tryCompareFunction(function() { return findChild(menu, "menu-item0") !== null; }, true);
282+ tryCompareFunction(function() { return menu.width < longWidth; }, true);
255283 }
256284
257285 function test_minimumWidth() {
tests/qmltests/Launcher/tst_Drawer.qml+39
@@ -328,5 +328,44 @@ StyledItem {
328328
329329 tryCompare(launcher, "state", "visibleTemporary");
330330 }
331+
332+ function test_focusMovesCorrectlyBetweenLauncherAndDrawer() {
333+ var panel = findChild(launcher, "launcherPanel");
334+ var drawer = findChild(launcher, "drawer");
335+ var searchField = findChild(drawer, "searchField");
336+
337+ launcher.openForKeyboardNavigation();
338+ tryCompare(panel, "highlightIndex", -1);
339+ keyClick(Qt.Key_Down);
340+ tryCompare(panel, "highlightIndex", 0);
341+
342+ launcher.openDrawer(true);
343+ tryCompare(searchField, "focus", true);
344+
345+ keyClick(Qt.Key_Escape);
346+
347+ launcher.openForKeyboardNavigation();
348+ tryCompare(panel, "highlightIndex", -1);
349+ keyClick(Qt.Key_Down);
350+ tryCompare(panel, "highlightIndex", 0);
351+ }
352+
353+ function test_closeWhileDragging() {
354+ launcher.openDrawer(true);
355+ waitForRendering(launcher);
356+ waitUntilTransitionsEnd(launcher);
357+
358+ var drawer = findChild(launcher, "drawer");
359+ tryCompare(drawer.anchors, "rightMargin", -drawer.width);
360+
361+ mousePress(drawer, drawer.width / 2, drawer.height / 2);
362+ mouseMove(drawer, drawer.width / 4, drawer.height / 2);
363+ tryCompare(drawer, "draggingHorizontally", true);
364+
365+ keyPress(Qt.Key_Escape);
366+
367+ tryCompare(launcher, "state", "");
368+ tryCompare(drawer, "draggingHorizontally", false);
369+ }
331370 }
332371}
tests/qmltests/Launcher/tst_Launcher.qml+42
@@ -95,6 +95,11 @@ Rectangle {
9595 property: "lockedVisible"
9696 value: lockedVisibleCheckBox.checked
9797 }
98+ Binding {
99+ target: launcherLoader.item
100+ property: "privateMode"
101+ value: privateModeCheckBox.checked
102+ }
98103 Binding {
99104 target: launcherLoader.item
100105 property: "panelWidth"
@@ -120,6 +125,20 @@ Rectangle {
120125 }
121126 }
122127
128+ RowLayout {
129+ CheckBox {
130+ id: privateModeCheckBox
131+ checked: false
132+ }
133+ Label {
134+ text: "Private mode (lockscreen locked)"
135+ AbstractButton {
136+ anchors.fill: parent
137+ onClicked: privateModeCheckBox.checked = !privateModeCheckBox.checked
138+ }
139+ }
140+ }
141+
123142 Slider {
124143 id: widthSlider
125144 Layout.fillWidth: true
@@ -1242,6 +1261,7 @@ Rectangle {
12421261 keyClick(Qt.Key_Down);
12431262 keyClick(Qt.Key_Down);
12441263 keyClick(Qt.Key_Down);
1264+ keyClick(Qt.Key_Down);
12451265 tryCompare(quickList, "selectedIndex", 0)
12461266
12471267 // Left gets us back to the launcher
@@ -1493,6 +1513,28 @@ Rectangle {
14931513 compare(launcher.state, "visibleTemporary");
14941514 }
14951515
1516+ function test_hideQuicklistItemsInPrivateModel_data() {
1517+ return [
1518+ { tag: "private mode", private: true },
1519+ { tag: "normal mode", private: false }
1520+ ];
1521+ }
1522+
1523+ function test_hideQuicklistItemsInPrivateModel(data) {
1524+ privateModeCheckBox.checked = data.private;
1525+
1526+ revealByEdgePush();
1527+
1528+ var item = findChild(launcher, "launcherDelegate4");
1529+ var quickListShape = findChild(launcher, "quickListShape")
1530+
1531+ mousePress(item)
1532+ tryCompare(quickListShape, "visible", true)
1533+
1534+ var repeater = findChild(launcher, "popoverRepeater");
1535+ tryCompare(repeater, "count", LauncherModel.get(4).quickList.count - (data.private ? 1 : 0))
1536+ }
1537+
14961538 function test_hintOnSizeChange() {
14971539 var oldSize = launcher.panelWidth;
14981540 launcher.maxPanelX = -launcher.panelWidth;
tests/qmltests/Panel/tst_Panel.qml+66−5
@@ -57,6 +57,11 @@ PanelTest {
5757 color: "darkgrey"
5858 }
5959
60+ SignalSpy {
61+ id: aboutToShowCalledSpy
62+ signalName: "aboutToShowCalled"
63+ }
64+
6065 RowLayout {
6166 anchors.fill: parent
6267 anchors.margins: units.gu(1)
@@ -315,12 +320,15 @@ PanelTest {
315320 tryCompare(panel.indicators, "fullyOpened", true);
316321 }
317322
318− function pullDownApplicationsMenu() {
323+ function pullDownApplicationsMenu(xPos) {
319324 var showDragHandle = findChild(panel.applicationMenus, "showDragHandle");
325+ if (xPos === undefined) {
326+ xPos = showDragHandle.width / 2;
327+ }
320328 touchFlick(showDragHandle,
321− showDragHandle.width / 2,
329+ xPos,
322330 showDragHandle.height / 2,
323− showDragHandle.width / 2,
331+ xPos,
324332 showDragHandle.height / 2 + (showDragHandle.autoCompleteDragThreshold * 1.1));
325333 tryCompare(panel.applicationMenus, "fullyOpened", true);
326334 }
@@ -769,7 +777,7 @@ PanelTest {
769777 panel.mode = "staged";
770778 mouseEmulation.checked = false;
771779
772− var appTitle = findChild(panel.applicationMenus, "panelTitle"); verify(appTitle);
780+ var appTitle = findChild(panel, "panelTitle"); verify(appTitle);
773781 var appMenuRow = findChild(panel.applicationMenus, "panelRow"); verify(appMenuRow);
774782 var appMenuBar = findChild(panel, "menuBar"); verify(appMenuBar);
775783
@@ -787,7 +795,7 @@ PanelTest {
787795 panel.mode = "windowed";
788796 mouseEmulation.checked = false;
789797
790− var appTitle = findChild(panel.applicationMenus, "panelTitle"); verify(appTitle);
798+ var appTitle = findChild(panel, "panelTitle"); verify(appTitle);
791799 var appMenuRow = findChild(panel.applicationMenus, "panelRow"); verify(appMenuRow);
792800 var appMenuBar = findChild(panel, "menuBar"); verify(appMenuBar);
793801
@@ -838,5 +846,58 @@ PanelTest {
838846 keyClick(Qt.Key_Escape);
839847 tryCompare(panel.indicators, "fullyClosed", true);
840848 }
849+
850+ function test_aboutToShowMenu() {
851+ waitForRendering(panel);
852+
853+ aboutToShowCalledSpy.target = panel.applicationMenus.model
854+ aboutToShowCalledSpy.clear();
855+
856+ var indicatorsBar = findChild(panel.applicationMenus, "indicatorsBar");
857+
858+ PanelState.title = "Fake Title"
859+ pullDownApplicationsMenu(0 /*xPos*/);
860+ compare(aboutToShowCalledSpy.count, 1);
861+
862+ keyClick(Qt.Key_Right);
863+ tryCompare(indicatorsBar, "currentItemIndex", 1);
864+ compare(aboutToShowCalledSpy.count, 2);
865+
866+ compare(aboutToShowCalledSpy.signalArguments[0][0], 0);
867+ compare(aboutToShowCalledSpy.signalArguments[1][0], 1);
868+
869+ keyClick(Qt.Key_Tab);
870+ keyClick(Qt.Key_Tab);
871+
872+ aboutToShowCalledSpy.target = panel.applicationMenus.model.submenu(1);
873+ aboutToShowCalledSpy.clear();
874+
875+ keyClick(Qt.Key_Enter);
876+ compare(aboutToShowCalledSpy.count, 1);
877+ }
878+
879+ function test_disabledTopLevel() {
880+ var modelData = appMenuData.generateTestData(3,3,0,0,"menu");
881+ modelData[1].rowData.sensitive = false;
882+ panel.applicationMenus.model.modelData = modelData;
883+
884+ waitForRendering(panel);
885+
886+ aboutToShowCalledSpy.target = panel.applicationMenus.model
887+ aboutToShowCalledSpy.clear();
888+
889+ var indicatorsBar = findChild(panel.applicationMenus, "indicatorsBar");
890+
891+ PanelState.title = "Fake Title"
892+ pullDownApplicationsMenu(0 /*xPos*/);
893+
894+ tryCompare(indicatorsBar, "currentItemIndex", 0);
895+
896+ keyClick(Qt.Key_Right);
897+ tryCompare(indicatorsBar, "currentItemIndex", 2);
898+
899+ keyClick(Qt.Key_Left);
900+ tryCompare(indicatorsBar, "currentItemIndex", 0);
901+ }
841902 }
842903}
tests/qmltests/Stage/tst_TabletStage.qml+33−1
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2015-2016 Canonical, Ltd.
2+ * Copyright (C) 2015-2017 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
@@ -761,6 +761,38 @@ Rectangle {
761761 tryCompare(appDelegate, "stage", ApplicationInfoInterface.SideStage);
762762 }
763763
764+ /*
765+ Regression test for https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1670361
766+
767+ Clicks near the top window edge (but still inside the window boundaries) should go to
768+ the window (and not get eaten by some translucent decoration like in that bug).
769+ */
770+ function test_clickNearTopEdgeGoesToWindow() {
771+ compare(topLevelSurfaceList.count, 1); // assume unity8-dash is already there
772+
773+ var appDelegate = findChild(stage, "appDelegate_" + topLevelSurfaceList.idAt(0));
774+ verify(appDelegate);
775+
776+ var surfaceItem = findChild(appDelegate, "surfaceItem");
777+ verify(surfaceItem);
778+
779+ compare(surfaceItem.mousePressCount, 0);
780+ compare(surfaceItem.mouseReleaseCount, 0);
764781
782+ mouseClick(appDelegate, 1, 1); // near top left
783+
784+ compare(surfaceItem.mousePressCount, 1);
785+ compare(surfaceItem.mouseReleaseCount, 1);
786+
787+ mouseClick(appDelegate, appDelegate.width / 2, 1); // near top
788+
789+ compare(surfaceItem.mousePressCount, 2);
790+ compare(surfaceItem.mouseReleaseCount, 2);
791+
792+ mouseClick(appDelegate, appDelegate.width - 1, 1); // near top right
793+
794+ compare(surfaceItem.mousePressCount, 3);
795+ compare(surfaceItem.mouseReleaseCount, 3);
796+ }
765797 }
766798}
tests/qmltests/tst_Shell.qml+227−10
@@ -2536,27 +2536,44 @@ Rectangle {
25362536 tryCompare(app2Surface, "keymap", "fr");
25372537 }
25382538
2539− function test_dragPanelToRestoreMaximizedWindow() {
2539+ function test_dragPanelToRestoreMaximizedWindow_data() {
2540+ return [
2541+ { tag: "with mouse", mouse: true },
2542+ { tag: "with touch", mouse: false }
2543+ ]
2544+ }
2545+
2546+ function test_dragPanelToRestoreMaximizedWindow(data) {
25402547 loadShell("desktop");
25412548 shell.usageScenario = "desktop";
25422549 waitForRendering(shell);
25432550 var panel = findChild(shell, "windowControlArea");
25442551 verify(panel);
25452552
2546− var appSurfaceId = topLevelSurfaceList.nextId;
2547− var app = ApplicationManager.startApplication("dialer-app")
2548− waitUntilAppWindowIsFullyLoaded(appSurfaceId);
2549−
25502553 // start dialer, maximize it
2551− var appContainer = findChild(shell, "appContainer");
2552− var appDelegate = findChild(appContainer, "appDelegate_" + appSurfaceId);
2554+ var appDelegate = startApplication("dialer-app");
25532555 verify(appDelegate);
2556+
25542557 var maximizeButton = findChild(appDelegate, "maximizeWindowButton");
2555− mouseClick(maximizeButton);
2558+ if (data.mouse) {
2559+ mouseClick(maximizeButton);
2560+ } else {
2561+ tap(maximizeButton);
2562+ }
25562563
2564+ waitUntilTransitionsEnd(appDelegate);
25572565 tryCompare(appDelegate, "state", "maximized");
25582566
2559− mouseDrag(panel, panel.width/2, panel.height/2, 0, shell.height/3, Qt.LeftButton, Qt.NoModifier, 500);
2567+ if (data.mouse) {
2568+ mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus
2569+ var menuBarLoader = findInvisibleChild(panel, "menuBarLoader");
2570+ verify(menuBarLoader);
2571+ tryCompare(menuBarLoader.item, "visible", true);
2572+ mouseDrag(panel, panel.width/2, panel.height/2, 0, shell.height/3, Qt.LeftButton, Qt.NoModifier, 500);
2573+ } else {
2574+ touchFlick(panel, panel.width/2, panel.panelHeight/2, panel.width/2, shell.height/3);
2575+ }
2576+
25602577 tryCompare(appDelegate, "state", "restored");
25612578 }
25622579
@@ -2871,7 +2888,7 @@ Rectangle {
28712888 loadShell(data.tag);
28722889
28732890 var panel = findChild(shell, "panel"); verify(panel);
2874− var panelTitle = findChild(panel.applicationMenus, "panelTitle"); verify(panelTitle);
2891+ var panelTitle = findChild(panel, "panelTitle"); verify(panelTitle);
28752892 compare(panelTitle.visible, false, "Panel title should not be visible when greeter is shown");
28762893
28772894 swipeAwayGreeter();
@@ -2936,6 +2953,86 @@ Rectangle {
29362953 tryCompare(appDelegate, "state", "maximizedRight");
29372954 }
29382955
2956+
2957+ function test_closeAppsInSpreadWithQ() {
2958+ loadShell("desktop");
2959+ shell.usageScenario = "desktop";
2960+ waitForRendering(shell);
2961+ swipeAwayGreeter();
2962+
2963+ var appSurfaceId = topLevelSurfaceList.nextId;
2964+ var app = ApplicationManager.startApplication("dialer-app")
2965+ waitUntilAppWindowIsFullyLoaded(appSurfaceId);
2966+
2967+ appSurfaceId = topLevelSurfaceList.nextId;
2968+ app = ApplicationManager.startApplication("calendar-app")
2969+ waitUntilAppWindowIsFullyLoaded(appSurfaceId);
2970+
2971+ keyPress(Qt.Key_Alt);
2972+ keyClick(Qt.Key_Tab);
2973+
2974+ var stage = findChild(shell, "stage");
2975+ var spread = findChild(stage, "spreadItem");
2976+ var appRepeater = findChild(stage, "appRepeater");
2977+
2978+ tryCompare(stage, "state", "spread");
2979+
2980+ tryCompare(ApplicationManager, "count", 3);
2981+ tryCompareFunction(function() {return appRepeater.itemAt(spread.highlightedIndex).appId == "dialer-app"}, true);
2982+
2983+ // Close one app with Q while in spread
2984+ keyClick(Qt.Key_Q);
2985+
2986+ tryCompare(ApplicationManager, "count", 2);
2987+
2988+ // Now the dash should be highlighted
2989+ tryCompareFunction(function() {return appRepeater.itemAt(spread.highlightedIndex).appId == "unity8-dash"}, true);
2990+
2991+ keyClick(Qt.Key_Q);
2992+
2993+ // Dash is not closeable, should still be 2
2994+ tryCompare(ApplicationManager, "count", 2);
2995+
2996+ // Move to the next one, should be closable again
2997+ keyClick(Qt.Key_Tab);
2998+ tryCompareFunction(function() {return appRepeater.itemAt(spread.highlightedIndex).appId == "calendar-app"}, true);
2999+
3000+ // close it
3001+ keyClick(Qt.Key_Q);
3002+ tryCompare(ApplicationManager, "count", 1);
3003+
3004+ keyRelease(Qt.Key_Alt);
3005+
3006+ // Now start the apps again
3007+ appSurfaceId = topLevelSurfaceList.nextId;
3008+ app = ApplicationManager.startApplication("dialer-app");
3009+ waitUntilAppWindowIsFullyLoaded(appSurfaceId);
3010+
3011+ appSurfaceId = topLevelSurfaceList.nextId;
3012+ app = ApplicationManager.startApplication("calendar-app");
3013+ waitUntilAppWindowIsFullyLoaded(appSurfaceId);
3014+
3015+ // First focus the dash so it'll be the leftmost in the spread
3016+ ApplicationManager.requestFocusApplication("unity8-dash");
3017+
3018+ keyPress(Qt.Key_Alt);
3019+ keyClick(Qt.Key_Tab);
3020+ tryCompare(stage, "state", "spread");
3021+
3022+ // Move to the last one
3023+ keyClick(Qt.Key_Tab);
3024+
3025+ // Close the last one, make sure the highlight fixes itself to stick within the list
3026+ tryCompare(spread, "highlightedIndex", ApplicationManager.count - 1);
3027+ var oldHighlighted = spread.highlightedIndex;
3028+
3029+ keyClick(Qt.Key_Q);
3030+ tryCompare(spread, "highlightedIndex", oldHighlighted - 1);
3031+
3032+ keyRelease(Qt.Key_Alt);
3033+
3034+ }
3035+
29393036 function test_altTabToMinimizedApp() {
29403037 loadShell("desktop");
29413038 shell.usageScenario = "desktop";
@@ -2964,6 +3061,61 @@ Rectangle {
29643061 tryCompare(topLevelSurfaceList.applicationAt(0), "appId", "dialer-app");
29653062 }
29663063
3064+ function test_touchMenuPosition_data() {
3065+ return [
3066+ { tag: "launcher locked", lockLauncher: true },
3067+ { tag: "launcher not locked", lockLauncher: false }
3068+ ];
3069+ }
3070+
3071+ function test_touchMenuPosition(data) {
3072+ loadShell("desktop");
3073+ shell.usageScenario = "desktop";
3074+ waitForRendering(shell);
3075+ swipeAwayGreeter();
3076+
3077+ var panel = findChild(shell, "panel");
3078+ var launcher = testCase.findChild(shell, "launcher");
3079+ launcher.lockedVisible = data.lockLauncher;
3080+ if (data.lockLauncher) {
3081+ compare(panel.applicationMenus.x, launcher.panelWidth);
3082+ } else {
3083+ compare(panel.applicationMenus.x, 0);
3084+ }
3085+ }
3086+
3087+ function test_touchMenuHidesOnLauncherAppDrawer_data() {
3088+ return [
3089+ { tag: "launcher locked", lockLauncher: true },
3090+ { tag: "launcher not locked", lockLauncher: false }
3091+ ];
3092+ }
3093+
3094+ function test_touchMenuHidesOnLauncherAppDrawer(data) {
3095+ loadShell("desktop");
3096+ shell.usageScenario = "desktop";
3097+ waitForRendering(shell);
3098+ swipeAwayGreeter();
3099+
3100+ var panel = findChild(shell, "panel");
3101+ var launcher = testCase.findChild(shell, "launcher");
3102+ launcher.lockedVisible = data.lockLauncher;
3103+
3104+ waitForRendering(panel.applicationMenus);
3105+
3106+ if (data.lockLauncher) {
3107+ panel.applicationMenus.show();
3108+ tryCompare(panel.applicationMenus, "fullyOpened", true);
3109+ launcher.openDrawer();
3110+ } else {
3111+ tryCompare(launcher, "shown", false);
3112+ panel.applicationMenus.show();
3113+ tryCompare(panel.applicationMenus, "fullyOpened", true);
3114+ launcher.switchToNextState("visible");
3115+ }
3116+ tryCompare(panel.applicationMenus, "fullyClosed", true);
3117+ }
3118+
29673119 function test_doubleClickPanelRestoresWindow() {
29683120 loadShell("desktop");
29693121 shell.usageScenario = "desktop";
@@ -2987,5 +3139,70 @@ Rectangle {
29873139 mouseDoubleClickSequence(panel, panel.width/2, PanelState.panelHeight/2, Qt.LeftButton, Qt.NoModifier, 300);
29883140 tryCompare(appDelegate, "state", "restored");
29893141 }
3142+
3143+ function test_noMenusWithActiveCall() {
3144+ loadShell("desktop");
3145+ shell.usageScenario = "desktop";
3146+ waitForRendering(shell);
3147+ swipeAwayGreeter();
3148+
3149+ // start music-app, maximize it
3150+ var appDelegate = startApplication("music-app")
3151+ verify(appDelegate);
3152+ appDelegate.requestMaximize();
3153+
3154+ // move the mouse over panel to reveal the menus
3155+ var panel = findChild(shell, "panel");
3156+ verify(panel);
3157+ mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus
3158+ var menuBarLoader = findInvisibleChild(panel, "menuBarLoader");
3159+ verify(menuBarLoader);
3160+ tryCompare(menuBarLoader.item, "visible", true);
3161+
3162+ // place a phone call
3163+ callManager.foregroundCall = phoneCall;
3164+
3165+ // menu bar should be hidden
3166+ tryCompare(menuBarLoader, "active", false);
3167+ tryCompare(menuBarLoader, "item", null);
3168+
3169+ // remove call
3170+ callManager.foregroundCall = null;
3171+
3172+ // menu bar should be revealed
3173+ tryCompare(menuBarLoader, "active", true);
3174+ tryCompare(menuBarLoader.item, "visible", true);
3175+ }
3176+
3177+ function test_maximizedWindowAndMenuInPanel() {
3178+ loadShell("desktop");
3179+ shell.usageScenario = "desktop";
3180+ waitForRendering(shell);
3181+ swipeAwayGreeter();
3182+
3183+ // start music-app, maximize it
3184+ var appDelegate = startApplication("music-app")
3185+ verify(appDelegate);
3186+ appDelegate.requestMaximize();
3187+ tryCompare(appDelegate, "state", "maximized");
3188+
3189+ // move the mouse over panel to reveal the menus
3190+ var panel = findChild(shell, "panel");
3191+ verify(panel);
3192+ mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus
3193+ var menuBar = findChild(panel, "menuBar");
3194+ verify(menuBar);
3195+ tryCompare(menuBar, "visible", true);
3196+
3197+ // check that the menu popup appears
3198+ var priv = findInvisibleChild(menuBar, "d");
3199+ var menuItem0 = findChild(menuBar, "menuBar-item0");
3200+ verify(menuItem0);
3201+ mouseMove(menuItem0, menuItem0.width/2, menuItem0.height/2, 200);
3202+ tryCompare(menuItem0, "visible", true);
3203+ mouseClick(menuItem0);
3204+ tryCompare(priv, "currentItem", menuItem0);
3205+ tryCompare(priv.currentItem, "popupVisible", true);
3206+ }
29903207 }
29913208}