diff -Nru unity8-8.15+17.04.20170308/cmake/modules/QmlTest.cmake unity8-8.15+17.04.20170321/cmake/modules/QmlTest.cmake --- unity8-8.15+17.04.20170308/cmake/modules/QmlTest.cmake 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/cmake/modules/QmlTest.cmake 2017-03-21 10:51:37.000000000 +0000 @@ -201,7 +201,7 @@ add_qmltest_target(xvfbtest${COMPONENT_NAME} ${TARGET} COMMAND $ --server-args "-screen 0 1024x768x24" --auto-servernum ${qmltest_command} ${depends} - ENVIRONMENT QML2_IMPORT_PATH=${imports} ${QMLTEST_ENVIRONMENT} LD_PRELOAD=/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/mesa/libGL.so.1 + ENVIRONMENT QML2_IMPORT_PATH=${imports} LD_PRELOAD=/usr/lib/${CMAKE_LIBRARY_ARCHITECTURE}/mesa/libGL.so.1 ${QMLTEST_ENVIRONMENT} TARGETS ${xvfb_targets} ) endif() diff -Nru unity8-8.15+17.04.20170308/CMakeLists.txt unity8-8.15+17.04.20170321/CMakeLists.txt --- unity8-8.15+17.04.20170308/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/CMakeLists.txt 2017-03-21 10:53:37.000000000 +0000 @@ -70,11 +70,11 @@ find_package(Qt5Concurrent 5.6 REQUIRED) find_package(Qt5Sql 5.6 REQUIRED) -pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=26) +pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=27) pkg_check_modules(GEONAMES REQUIRED geonames>=0.2) pkg_check_modules(GIO REQUIRED gio-2.0>=2.32) pkg_check_modules(GLIB REQUIRED glib-2.0>=2.32) -pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=11) +pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=12) pkg_check_modules(QMENUMODEL REQUIRED qmenumodel) pkg_check_modules(GD3 REQUIRED gnome-desktop-3.0) pkg_check_modules(UAL REQUIRED ubuntu-app-launch-3) diff -Nru unity8-8.15+17.04.20170308/debian/changelog unity8-8.15+17.04.20170321/debian/changelog --- unity8-8.15+17.04.20170308/debian/changelog 2017-03-23 23:13:40.000000000 +0000 +++ unity8-8.15+17.04.20170321/debian/changelog 2017-03-23 23:13:41.000000000 +0000 @@ -1,3 +1,52 @@ +unity8 (8.15+17.04.20170321-0ubuntu1) zesty; urgency=medium + + [ Albert Astals Cid ] + * Signal aboutToShow (LP: #1664578) + * Support Panel top level items to be disabled (LP: #1670694) + * Improve Launcher ←→ touch menu interaction (LP: #1667620, #1671069) + * Fix real world submenus (e.g. kate) not getting their first item + selected on open (LP: #1666859) + + [ Daniel d'Andrada ] + * Really disable the window decoration when in staged mode (LP: + #1670361) + * Don't let clients resize their surfaces while in staged + (phone/tablet) mode (LP: #1670390) + * TopLevelWindowModel: don't put hidden windows in the model (LP: + #1665286) + + [ Lukáš Tinkl ] + * Reset always-show-osk gsetting on startup to default value (false + atm) + * Fix the restored-to position with Miral due to the state changes + being async (LP: #1669819) + * Add a cursor name fallback mapping "grabbing" -> "closedhand" for + Breeze + * Fix unsnapping a maximized window from the panel (LP: #1671721) + * Disable altDrag feature outside windowed mode + + [ Michael Terry ] + * Don't lock the screen for guest users or users in the nopasswdlogin + group. (LP: #1644237) + * Support GNOME-style logout DBus API (making the Logout, Reboot, and + Shutdown launcher commands work) (LP: #1673229) + + [ Michael Zanetti ] + * Add support for closing apps from the spread with "Q" (LP: #1670327) + * hide "private" launcher quicklist entries when the greeter is locked + (LP: #1667649) + * add surface titles to launcher's quicklist (LP: #1661668) + * properly reset the drawer state when cancelling a horizontal drag + (LP: #1669536) + * fix the focus moving correctly between launcher and drawer (LP: + #1669880) + * unfocus the drawer's textfield when it is moved (LP: #1669839) + + [ Pete Woods ] + * Fix up indicators-client after refactoring (LP: #1672797) + + -- Michał Sawicz Tue, 21 Mar 2017 10:58:13 +0000 + unity8 (8.15+17.04.20170308-0ubuntu1) zesty; urgency=medium [ Albert Astals Cid ] diff -Nru unity8-8.15+17.04.20170308/debian/control unity8-8.15+17.04.20170321/debian/control --- unity8-8.15+17.04.20170308/debian/control 2017-03-23 23:13:40.000000000 +0000 +++ unity8-8.15+17.04.20170321/debian/control 2017-03-23 23:13:41.000000000 +0000 @@ -28,7 +28,7 @@ liblightdm-qt5-3-dev, libpam0g-dev, libpulse-dev, - libqmenumodel-dev (>= 0.2.11), + libqmenumodel-dev (>= 0.2.12), libqt5svg5-dev, libqt5xmlpatterns5-dev, libsystemsettings-dev, @@ -38,7 +38,7 @@ libubuntugestures5-private-dev (>= 1.3.2030), libudev-dev, libudm-common-dev, - libunity-api-dev (>= 8.2), + libunity-api-dev (>= 8.6), libusermetricsoutput1-dev, # Need those X11 libs touch emulation from mouse events in manual QML tests on a X11 desktop libx11-dev[!arm64 !armhf], @@ -132,7 +132,7 @@ qtdeclarative5-qtmir-plugin (>= 0.4.8), qtdeclarative5-ubuntu-telephony0.1, ubuntu-system-settings (>= 0.4), - unity-launcher-impl-10, + unity-launcher-impl-12, unity8-common (= ${source:Version}), unity8-private (= ${binary:Version}), unity8-private | unity-launcher-impl, @@ -162,7 +162,7 @@ qttranslations5-l10n, ubuntu-thumbnailer-impl-0, ubuntu-wallpapers, - unity-application-impl-26, + unity-application-impl-27, unity-notifications-impl-3, unity-plugin-scopes | unity-scopes-impl, unity-scopes-impl-12, @@ -212,7 +212,7 @@ ${misc:Depends}, ${shlibs:Depends}, Provides: unity-application-impl, - unity-application-impl-26, + unity-application-impl-27, unity8-fake-env, Replaces: unity8-autopilot (<< 8.02+15.04.20150422-0ubuntu1), unity8-fake-env, @@ -235,7 +235,7 @@ ${misc:Depends}, ${shlibs:Depends}, Provides: unity-launcher-impl, - unity-launcher-impl-10, + unity-launcher-impl-12, Description: Unity 8 private libs The Unity 8 shell is the primary user interface for Ubuntu devices. . diff -Nru unity8-8.15+17.04.20170308/plugins/Cursor/CursorImageProvider.cpp unity8-8.15+17.04.20170321/plugins/Cursor/CursorImageProvider.cpp --- unity8-8.15+17.04.20170308/plugins/Cursor/CursorImageProvider.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Cursor/CursorImageProvider.cpp 2017-03-21 10:52:21.000000000 +0000 @@ -174,6 +174,8 @@ m_fallbackNames[QStringLiteral("forbidden")].append(QStringLiteral("not-allowed")); m_fallbackNames[QStringLiteral("forbidden")].append(QStringLiteral("circle")); + m_fallbackNames[QStringLiteral("grabbing")].append(QStringLiteral("closedhand")); // Breeze + m_fallbackNames[QStringLiteral("hand")].append(QStringLiteral("pointing_hand")); m_fallbackNames[QStringLiteral("hand")].append(QStringLiteral("pointer")); diff -Nru unity8-8.15+17.04.20170308/plugins/Greeter/Unity/Launcher/quicklistmodel.cpp unity8-8.15+17.04.20170321/plugins/Greeter/Unity/Launcher/quicklistmodel.cpp --- unity8-8.15+17.04.20170308/plugins/Greeter/Unity/Launcher/quicklistmodel.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Greeter/Unity/Launcher/quicklistmodel.cpp 2017-03-21 10:53:26.000000000 +0000 @@ -65,6 +65,8 @@ return m_list.at(index.row()).icon(); case RoleClickable: return m_list.at(index.row()).clickable(); + case RoleIsPrivate: + return false; // The greeter plugin would just not add any private entries } return QVariant(); } diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/CMakeLists.txt unity8-8.15+17.04.20170321/plugins/Unity/Launcher/CMakeLists.txt --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/CMakeLists.txt 2017-03-21 10:53:37.000000000 +0000 @@ -30,6 +30,8 @@ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/launcheritem.cpp unity8-8.15+17.04.20170321/plugins/Unity/Launcher/launcheritem.cpp --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/launcheritem.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/launcheritem.cpp 2017-03-21 10:53:37.000000000 +0000 @@ -35,7 +35,6 @@ m_countVisible(false), m_focused(false), m_alerting(false), - m_surfaceCount(0), m_quickList(new QuickListModel(this)) { Q_ASSERT(parent != nullptr); @@ -48,11 +47,13 @@ QuickListEntry pinningAction; pinningAction.setActionId(QStringLiteral("pin_item")); pinningAction.setText(gettext("Pin shortcut")); + pinningAction.setIsPrivate(true); m_quickList->appendAction(pinningAction); m_quitAction.setActionId(QStringLiteral("stop_item")); m_quitAction.setIcon(QStringLiteral("application-exit")); m_quitAction.setText(gettext("Quit")); + m_quitAction.setIsPrivate(true); } QString LauncherItem::appId() const @@ -120,6 +121,7 @@ QuickListEntry entry; entry.setActionId(QStringLiteral("pin_item")); entry.setText(pinned ? gettext("Unpin shortcut") : gettext("Pin shortcut")); + entry.setIsPrivate(true); m_quickList->updateAction(entry); } @@ -221,14 +223,36 @@ int LauncherItem::surfaceCount() const { - return m_surfaceCount; + return m_surfaces.count(); } -void LauncherItem::setSurfaceCount(int surfaceCount) +void LauncherItem::setSurfaces(const QList > &surfaces) { - if (m_surfaceCount != surfaceCount) { - m_surfaceCount = surfaceCount; - Q_EMIT surfaceCountChanged(surfaceCount); + if (m_surfaces != surfaces) { + m_surfaces = surfaces; + + QList removedEntries; + for (int i = 0; i < m_quickList->rowCount(); ++i) { + QuickListEntry entry = m_quickList->get(i); + if (entry.actionId().startsWith(QStringLiteral("surface_"))) { + removedEntries.append(entry); + } + } + Q_FOREACH (const QuickListEntry &entry, removedEntries) { + m_quickList->removeAction(entry); + } + for (int i = 0; i < surfaces.count(); ++i) { + QuickListEntry entry; + entry.setActionId(QStringLiteral("surface_") + surfaces.at(i).first); + entry.setText(surfaces.at(i).second); + entry.setIsPrivate(true); + if (i == surfaces.count() - 1) { + entry.setHasSeparator(true); + } + m_quickList->insertAction(entry, i + 1); + } + + Q_EMIT surfaceCountChanged(m_surfaces.count()); } } diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/launcheritem.h unity8-8.15+17.04.20170321/plugins/Unity/Launcher/launcheritem.h --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/launcheritem.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/launcheritem.h 2017-03-21 10:53:37.000000000 +0000 @@ -23,6 +23,7 @@ #include "quicklistmodel.h" #include +#include class QuickListModel; @@ -62,7 +63,7 @@ void setCountVisible(bool countVisible); void setFocused(bool focused); void setAlerting(bool alerting); - void setSurfaceCount(int surfaceCount); + void setSurfaces(const QList> &surfaces); private: QString m_appId; @@ -77,7 +78,7 @@ bool m_countVisible; bool m_focused; bool m_alerting; - int m_surfaceCount; + QList > m_surfaces; QuickListModel *m_quickList; QuickListEntry m_quitAction; diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/launchermodel.cpp unity8-8.15+17.04.20170321/plugins/Unity/Launcher/launchermodel.cpp --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/launchermodel.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/launchermodel.cpp 2017-03-21 10:53:37.000000000 +0000 @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -198,12 +199,25 @@ } else { pin(appId); } - } else if (actionId == QLatin1String("launch_item")) { + } else if (actionId == QStringLiteral("launch_item")) { QDesktopServices::openUrl(getUrlForAppId(appId)); - } else if (actionId == QLatin1String("stop_item")) { // Quit + } else if (actionId == QStringLiteral("stop_item")) { // Quit if (m_appManager) { m_appManager->stopApplication(appId); } + } else if (actionId.startsWith(QStringLiteral("surface_"))){ + ApplicationInfoInterface *appInfo = m_appManager->findApplication(appId); + if (!appInfo) { + qWarning() << "App for" << appId << "not found in launcher. Cannot invoke quicklist action"; + } + for (int i = 0; i < appInfo->surfaceList()->count(); ++i) { + MirSurfaceInterface *iface = appInfo->surfaceList()->get(i); + QString id = actionId; + id.remove(QRegExp("^surface_")); + if (id == iface->persistentId()) { + iface->activate(); + } + } // Nope, we don't know this action, let the backend forward it to the application } else { // TODO: forward quicklist action to app, possibly via m_dbusIface @@ -517,40 +531,59 @@ item->setRecent(true); Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRecent}); } - if (item->surfaceCount() != app->surfaceCount()) { - item->setSurfaceCount(app->surfaceCount()); - Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleSurfaceCount}); - } - item->setRunning(true); } else { LauncherItem *item = new LauncherItem(app->appId(), app->name(), app->icon().toString(), this); item->setRecent(true); item->setRunning(true); item->setFocused(app->focused()); - item->setSurfaceCount(app->surfaceCount()); beginInsertRows(QModelIndex(), m_list.count(), m_list.count()); m_list.append(item); endInsertRows(); } - connect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::applicationSurfaceCountChanged); + connect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::updateSurfaceList); m_asAdapter->syncItems(m_list); Q_EMIT dataChanged(index(itemIndex), index(itemIndex), {RoleRunning}); } -void LauncherModel::applicationSurfaceCountChanged(int count) +void LauncherModel::updateSurfaceList() { ApplicationInfoInterface *app = static_cast(sender()); + updateSurfaceListForApp(app); +} + +void LauncherModel::updateSurfaceListForSurface() +{ + MirSurfaceInterface *iface = static_cast(sender()); + ApplicationInfoInterface* app = m_appManager->findApplication(iface->appId()); + if (!app) { + return; + } + updateSurfaceListForApp(app); +} + +void LauncherModel::updateSurfaceListForApp(ApplicationInfoInterface* app) +{ int idx = findApplication(app->appId()); if (idx < 0) { qWarning() << "Received a surface count changed event from an app that's not in the Launcher model"; return; } LauncherItem *item = m_list.at(idx); - if (item->surfaceCount() != count) { - item->setSurfaceCount(count); - Q_EMIT dataChanged(index(idx), index(idx), {RoleSurfaceCount}); + QList > surfaces; + for (int i = 0; i < app->surfaceList()->count(); ++i) { + MirSurfaceInterface* iface = app->surfaceList()->get(i); + // Avoid duplicate connections, so let's just disconnect first to be sure + disconnect(iface, &MirSurfaceInterface::nameChanged, this, &LauncherModel::updateSurfaceListForSurface); + connect(iface, &MirSurfaceInterface::nameChanged, this, &LauncherModel::updateSurfaceListForSurface); + QString name = iface->name(); + if (name.isEmpty()) { + name = app->name(); + } + surfaces.append({iface->persistentId(), name}); } + item->setSurfaces(surfaces); + Q_EMIT dataChanged(index(idx), index(idx), {RoleSurfaceCount}); } void LauncherModel::applicationRemoved(const QModelIndex &parent, int row) @@ -571,7 +604,7 @@ return; } - disconnect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::applicationSurfaceCountChanged); + disconnect(app, &ApplicationInfoInterface::surfaceCountChanged, this, &LauncherModel::updateSurfaceList); LauncherItem * item = m_list.at(appIndex); diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/launchermodel.h unity8-8.15+17.04.20170321/plugins/Unity/Launcher/launchermodel.h --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/launchermodel.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/launchermodel.h 2017-03-21 10:53:37.000000000 +0000 @@ -75,7 +75,9 @@ void applicationAdded(const QModelIndex &parent, int row); void applicationRemoved(const QModelIndex &parent, int row); void focusedAppIdChanged(); - void applicationSurfaceCountChanged(int); + void updateSurfaceList(); + void updateSurfaceListForApp(ApplicationInfoInterface *app); + void updateSurfaceListForSurface(); private: QList m_list; diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/quicklistentry.cpp unity8-8.15+17.04.20170321/plugins/Unity/Launcher/quicklistentry.cpp --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/quicklistentry.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/quicklistentry.cpp 2017-03-21 10:53:26.000000000 +0000 @@ -20,6 +20,7 @@ QuickListEntry::QuickListEntry() : m_hasSeparator(false) + , m_isPrivate(false) { } @@ -72,3 +73,13 @@ { return !other.actionId().isEmpty() && other.actionId() == m_actionId; } + +bool QuickListEntry::isPrivate() const +{ + return m_isPrivate; +} + +void QuickListEntry::setIsPrivate(bool isPrivate) +{ + m_isPrivate = isPrivate; +} diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/quicklistentry.h unity8-8.15+17.04.20170321/plugins/Unity/Launcher/quicklistentry.h --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/quicklistentry.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/quicklistentry.h 2017-03-21 10:53:26.000000000 +0000 @@ -42,11 +42,15 @@ bool operator==(const QuickListEntry & other); + bool isPrivate() const; + void setIsPrivate(bool isPrivate); + private: QString m_actionId; QString m_text; QString m_icon; bool m_hasSeparator; + bool m_isPrivate; }; #endif // QUICKLISTENTRY diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/quicklistmodel.cpp unity8-8.15+17.04.20170321/plugins/Unity/Launcher/quicklistmodel.cpp --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/quicklistmodel.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/quicklistmodel.cpp 2017-03-21 10:53:37.000000000 +0000 @@ -37,6 +37,13 @@ endInsertRows(); } +void QuickListModel::insertAction(const QuickListEntry &entry, int index) +{ + beginInsertRows(QModelIndex(), index, index); + m_list.insert(index, entry); + endInsertRows(); +} + void QuickListModel::updateAction(const QuickListEntry &entry) { for (int i = 0; i < m_list.count(); ++i) { @@ -81,6 +88,8 @@ return m_list.at(index.row()).clickable(); case RoleHasSeparator: return m_list.at(index.row()).hasSeparator(); + case RoleIsPrivate: + return m_list.at(index.row()).isPrivate(); } return QVariant(); } diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Launcher/quicklistmodel.h unity8-8.15+17.04.20170321/plugins/Unity/Launcher/quicklistmodel.h --- unity8-8.15+17.04.20170308/plugins/Unity/Launcher/quicklistmodel.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Launcher/quicklistmodel.h 2017-03-21 10:53:37.000000000 +0000 @@ -36,6 +36,7 @@ ~QuickListModel(); void appendAction(const QuickListEntry &entry); + void insertAction(const QuickListEntry &entry, int index); /** * @brief Update an existing action diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Session/dbusunitysessionservice.cpp unity8-8.15+17.04.20170321/plugins/Unity/Session/dbusunitysessionservice.cpp --- unity8-8.15+17.04.20170308/plugins/Unity/Session/dbusunitysessionservice.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Session/dbusunitysessionservice.cpp 2017-03-21 10:51:37.000000000 +0000 @@ -18,6 +18,7 @@ #include "dbusunitysessionservice.h" // system +#include #include #include #include @@ -211,6 +212,23 @@ QDBusConnection::SM_BUSNAME().asyncCall(msg); } + bool isUserInGroup(const QString &user, const QString &groupName) const + { + auto group = getgrnam(groupName.toUtf8().data()); + + if (group && group->gr_mem) + { + for (int i = 0; group->gr_mem[i]; ++i) + { + if (g_strcmp0(group->gr_mem[i], user.toUtf8().data()) == 0) { + return true; + } + } + } + + return false; + } + private Q_SLOTS: void onPropertiesChanged(const QString &iface, const QVariantMap &changedProps, const QStringList &invalidatedProps) { @@ -297,7 +315,13 @@ bool DBusUnitySessionService::CanLock() const { - return true; // FIXME + auto user = UserName(); + if (user.startsWith(QStringLiteral("guest-")) || + d->isUserInGroup(user, QStringLiteral("nopasswdlogin"))) { + return false; + } else { + return true; + } } QString DBusUnitySessionService::UserName() const @@ -335,8 +359,10 @@ // Prompt as in quick. No locking animation needed. Usually used by // indicator-session in combination with a switch to greeter or other // user session. - Q_EMIT LockRequested(); - Q_EMIT lockRequested(); + if (CanLock()) { + Q_EMIT LockRequested(); + Q_EMIT lockRequested(); + } } void DBusUnitySessionService::Lock() @@ -468,11 +494,56 @@ DBusGnomeSessionManagerWrapper::DBusGnomeSessionManagerWrapper() + : UnityDBusObject(QStringLiteral("/org/gnome/SessionManager"), QStringLiteral("org.gnome.SessionManager")) +{ +} + +void DBusGnomeSessionManagerWrapper::Logout(quint32 mode) +{ + auto call = QStringLiteral("RequestLogout"); + + // These modes are documented as bitwise flags, not an enum, even though + // they only ever seem to be used as enums. + + if (mode & 1) // without dialog + call = QStringLiteral("Logout"); + if (mode & 2) // without dialog, ignoring inhibitors (which we don't have) + call = QStringLiteral("Logout"); + + performAsyncUnityCall(call); +} + +void DBusGnomeSessionManagerWrapper::Reboot() +{ + // GNOME's Reboot means with dialog (they use Request differently than us). + performAsyncUnityCall(QStringLiteral("RequestReboot")); +} + +void DBusGnomeSessionManagerWrapper::RequestReboot() +{ + // GNOME's RequestReboot means no dialog (they use Request differently than us). + performAsyncUnityCall(QStringLiteral("Reboot")); +} + +void DBusGnomeSessionManagerWrapper::RequestShutdown() +{ + // GNOME's RequestShutdown means no dialog (they use Request differently than us). + performAsyncUnityCall(QStringLiteral("Shutdown")); +} + +void DBusGnomeSessionManagerWrapper::Shutdown() +{ + // GNOME's Shutdown means with dialog (they use Request differently than us). + performAsyncUnityCall(QStringLiteral("RequestShutdown")); +} + + +DBusGnomeSessionManagerDialogWrapper::DBusGnomeSessionManagerDialogWrapper() : UnityDBusObject(QStringLiteral("/org/gnome/SessionManager/EndSessionDialog"), QStringLiteral("com.canonical.Unity")) { } -void DBusGnomeSessionManagerWrapper::Open(const unsigned type, const unsigned arg_1, const unsigned max_wait, const QList &inhibitors) +void DBusGnomeSessionManagerDialogWrapper::Open(const unsigned type, const unsigned arg_1, const unsigned max_wait, const QList &inhibitors) { Q_UNUSED(arg_1); Q_UNUSED(max_wait); diff -Nru unity8-8.15+17.04.20170308/plugins/Unity/Session/dbusunitysessionservice.h unity8-8.15+17.04.20170321/plugins/Unity/Session/dbusunitysessionservice.h --- unity8-8.15+17.04.20170308/plugins/Unity/Session/dbusunitysessionservice.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Unity/Session/dbusunitysessionservice.h 2017-03-21 10:51:24.000000000 +0000 @@ -270,17 +270,31 @@ class DBusGnomeSessionManagerWrapper : public UnityDBusObject { Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.gnome.SessionManager.EndSessionDialog") + Q_CLASSINFO("D-Bus Interface", "org.gnome.SessionManager") public: DBusGnomeSessionManagerWrapper(); ~DBusGnomeSessionManagerWrapper() = default; public Q_SLOTS: - Q_SCRIPTABLE void Open(const unsigned int type, const unsigned int arg_1, const unsigned int max_wait, const QList &inhibitors); + Q_SCRIPTABLE void Logout(quint32 mode); + Q_SCRIPTABLE void Reboot(); + Q_SCRIPTABLE void RequestReboot(); + Q_SCRIPTABLE void RequestShutdown(); + Q_SCRIPTABLE void Shutdown(); +}; -private: - void performAsyncCall(const QString &method); +class DBusGnomeSessionManagerDialogWrapper : public UnityDBusObject +{ + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "org.gnome.SessionManager.EndSessionDialog") + +public: + DBusGnomeSessionManagerDialogWrapper(); + ~DBusGnomeSessionManagerDialogWrapper() = default; + +public Q_SLOTS: + Q_SCRIPTABLE void Open(const unsigned int type, const unsigned int arg_1, const unsigned int max_wait, const QList &inhibitors); }; class DBusGnomeScreensaverWrapper: public UnityDBusObject diff -Nru unity8-8.15+17.04.20170308/plugins/Utils/CMakeLists.txt unity8-8.15+17.04.20170321/plugins/Utils/CMakeLists.txt --- unity8-8.15+17.04.20170308/plugins/Utils/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Utils/CMakeLists.txt 2017-03-21 10:53:26.000000000 +0000 @@ -36,6 +36,7 @@ URLDispatcher.cpp tabfocusfence.cpp expressionfiltermodel.cpp + quicklistproxymodel.cpp plugin.cpp ) diff -Nru unity8-8.15+17.04.20170308/plugins/Utils/plugin.cpp unity8-8.15+17.04.20170321/plugins/Utils/plugin.cpp --- unity8-8.15+17.04.20170308/plugins/Utils/plugin.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Utils/plugin.cpp 2017-03-21 10:53:26.000000000 +0000 @@ -42,6 +42,7 @@ #include "appdrawerproxymodel.h" #include "tabfocusfence.h" #include "expressionfiltermodel.h" +#include "quicklistproxymodel.h" static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine) { @@ -88,4 +89,5 @@ qmlRegisterType(uri, 0, 1, "AppDrawerProxyModel"); qmlRegisterType(uri, 0, 1, "TabFocusFence"); qmlRegisterType(uri, 0, 1, "ExpressionFilterModel"); + qmlRegisterType(uri, 0, 1, "QuickListProxyModel"); } diff -Nru unity8-8.15+17.04.20170308/plugins/Utils/quicklistproxymodel.cpp unity8-8.15+17.04.20170321/plugins/Utils/quicklistproxymodel.cpp --- unity8-8.15+17.04.20170308/plugins/Utils/quicklistproxymodel.cpp 1970-01-01 00:00:00.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Utils/quicklistproxymodel.cpp 2017-03-21 10:53:26.000000000 +0000 @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2017 Canonical, Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "quicklistproxymodel.h" + +#include + +QuickListProxyModel::QuickListProxyModel(QObject *parent): + QSortFilterProxyModel(parent) +{ + connect(this, &QAbstractListModel::rowsInserted, this, &QuickListProxyModel::countChanged); + connect(this, &QAbstractListModel::rowsRemoved, this, &QuickListProxyModel::countChanged); + connect(this, &QAbstractListModel::layoutChanged, this, &QuickListProxyModel::countChanged); +} + +QAbstractItemModel *QuickListProxyModel::source() const +{ + return m_source; +} + +bool QuickListProxyModel::privateMode() const +{ + return m_privateMode; +} + +void QuickListProxyModel::setPrivateMode(bool privateMode) +{ + if (m_privateMode != privateMode) { + m_privateMode = privateMode; + invalidateFilter(); + Q_EMIT privateModeChanged(); + } +} + +void QuickListProxyModel::setSource(QAbstractItemModel *source) +{ + if (m_source != source) { + m_source = source; + setSourceModel(m_source); + connect(m_source, &QAbstractItemModel::rowsRemoved, this, &QuickListProxyModel::invalidate); + connect(m_source, &QAbstractItemModel::rowsInserted, this, &QuickListProxyModel::invalidate); + Q_EMIT sourceChanged(); + } +} + +int QuickListProxyModel::count() const +{ + return rowCount(); +} + +bool QuickListProxyModel::filterAcceptsRow(int source_row, const QModelIndex &source_parent) const +{ + Q_UNUSED(source_parent) + + if (m_privateMode) { + return !m_source->data(m_source->index(source_row, 0), QuickListModelInterface::RoleIsPrivate).toBool(); + } + return true; +} diff -Nru unity8-8.15+17.04.20170308/plugins/Utils/quicklistproxymodel.h unity8-8.15+17.04.20170321/plugins/Utils/quicklistproxymodel.h --- unity8-8.15+17.04.20170308/plugins/Utils/quicklistproxymodel.h 1970-01-01 00:00:00.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/Utils/quicklistproxymodel.h 2017-03-21 10:53:26.000000000 +0000 @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2017 Canonical, Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include + +#include + +using namespace unity::shell::launcher; + +class QuickListProxyModel: public QSortFilterProxyModel +{ + Q_OBJECT + Q_PROPERTY(QAbstractItemModel* source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(bool privateMode READ privateMode WRITE setPrivateMode NOTIFY privateModeChanged) + Q_PROPERTY(int count READ count NOTIFY countChanged) + +public: + QuickListProxyModel(QObject* parent = nullptr); + + QAbstractItemModel* source() const; + void setSource(QAbstractItemModel* source); + + bool privateMode() const; + void setPrivateMode(bool privateMode); + + int count() const; + +protected: + bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; + +Q_SIGNALS: + void sourceChanged(); + void privateModeChanged(); + void countChanged(); + +private: + QAbstractItemModel* m_source = nullptr; + bool m_privateMode; +}; diff -Nru unity8-8.15+17.04.20170308/plugins/WindowManager/CMakeLists.txt unity8-8.15+17.04.20170321/plugins/WindowManager/CMakeLists.txt --- unity8-8.15+17.04.20170308/plugins/WindowManager/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/WindowManager/CMakeLists.txt 2017-03-21 10:54:05.000000000 +0000 @@ -9,6 +9,8 @@ ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/SurfaceManagerInterface.h ) +add_definitions(-DWINDOWMANAGERQML_LIBRARY) + add_library(windowmanager-qml SHARED ${WINDOWMANAGER_SRC}) qt5_use_modules(windowmanager-qml Qml Quick Gui) diff -Nru unity8-8.15+17.04.20170308/plugins/WindowManager/TopLevelWindowModel.cpp unity8-8.15+17.04.20170321/plugins/WindowManager/TopLevelWindowModel.cpp --- unity8-8.15+17.04.20170308/plugins/WindowManager/TopLevelWindowModel.cpp 2017-03-08 09:48:26.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/WindowManager/TopLevelWindowModel.cpp 2017-03-21 10:54:05.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Canonical, Ltd. + * Copyright (C) 2016-2017 Canonical, Ltd. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License version 3, as published by @@ -130,7 +130,7 @@ int i = 0; while (i < m_windowModel.count()) { if (m_windowModel.at(i).application == application) { - removeAt(i); + deleteAt(i); } else { ++i; } @@ -148,12 +148,13 @@ { Q_ASSERT(surface != nullptr); + connectSurface(surface); + bool filledPlaceholder = false; for (int i = 0; i < m_windowModel.count() && !filledPlaceholder; ++i) { ModelEntry &entry = m_windowModel[i]; if (entry.application == application && entry.window->surface() == nullptr) { entry.window->setSurface(surface); - connectSurface(surface); INFO_MSG << " appId=" << application->appId() << " surface=" << surface << ", filling out placeholder. after: " << toString(); filledPlaceholder = true; @@ -168,6 +169,34 @@ void TopLevelWindowModel::prependSurfaceHelper(unityapi::MirSurfaceInterface *surface, unityapi::ApplicationInfoInterface *application) { + + Window *window = createWindow(surface); + + connect(window, &Window::stateChanged, this, [=](Mir::State newState) { + if (newState == Mir::HiddenState) { + // Comply, removing it from our model. Just as if it didn't exist anymore. + removeAt(indexForId(window->id())); + } else { + if (indexForId(window->id()) == -1) { + // was probably hidden before. put it back on the list + auto *application = m_applicationManager->findApplicationWithSurface(window->surface()); + Q_ASSERT(application); + prependWindow(window, application); + } + } + }); + + prependWindow(window, application); + + if (!surface) { + activateEmptyWindow(window); + } + + INFO_MSG << " after " << toString(); +} + +void TopLevelWindowModel::prependWindow(Window *window, unityapi::ApplicationInfoInterface *application) +{ if (m_modelState == IdleState) { m_modelState = InsertingState; beginInsertRows(QModelIndex(), 0 /*first*/, 0 /*last*/); @@ -176,12 +205,7 @@ // No point in signaling anything if we're resetting the whole model } - Window *window = createWindow(surface); - m_windowModel.prepend(ModelEntry(window, application)); - if (surface) { - connectSurface(surface); - } if (m_modelState == InsertingState) { endInsertRows(); @@ -189,12 +213,6 @@ Q_EMIT listChanged(); m_modelState = IdleState; } - - if (!surface) { - activateEmptyWindow(window); - } - - INFO_MSG << " after " << toString(); } void TopLevelWindowModel::connectWindow(Window *window) @@ -243,6 +261,13 @@ connect(window, &Window::emptyWindowActivated, this, [this, window]() { activateEmptyWindow(window); }); + + connect(window, &Window::liveChanged, this, [this, window](bool isAlive) { + if (!isAlive && window->state() == Mir::HiddenState) { + // Hidden windows are not in the model. So just delete it right away. + delete window; + } + }); } void TopLevelWindowModel::activateEmptyWindow(Window *window) @@ -308,7 +333,7 @@ } if (m_windowModel[i].removeOnceSurfaceDestroyed) { - removeAt(i); + deleteAt(i); } else { auto window = m_windowModel[i].window; window->setSurface(nullptr); @@ -346,7 +371,16 @@ } else { auto *application = m_applicationManager->findApplicationWithSurface(surface); if (application) { - prependSurface(surface, application); + if (surface->state() == Mir::HiddenState) { + // Ignore it until it's finally shown + connect(surface, &unityapi::MirSurfaceInterface::stateChanged, this, [=](Mir::State newState) { + Q_ASSERT(newState != Mir::HiddenState); + disconnect(surface, &unityapi::MirSurfaceInterface::stateChanged, this, 0); + prependSurface(surface, application); + }); + } else { + prependSurface(surface, application); + } } else { // Must be a prompt session. No need to do add it as a prompt surface is not top-level. // It will show up in the ApplicationInfoInterface::promptSurfaceList of some application. @@ -361,6 +395,17 @@ } } +void TopLevelWindowModel::deleteAt(int index) +{ + auto window = m_windowModel[index].window; + + removeAt(index); + + window->setSurface(nullptr); + + delete window; +} + void TopLevelWindowModel::removeAt(int index) { if (m_modelState == IdleState) { @@ -373,8 +418,9 @@ auto window = m_windowModel[index].window; - window->setSurface(nullptr); - window->setFocused(false); + if (!window->surface()) { + window->setFocused(false); + } m_windowModel.removeAt(index); @@ -385,11 +431,9 @@ m_modelState = IdleState; } - disconnect(window, 0, this, 0); if (m_focusedWindow == window) { setFocusedWindow(nullptr); } - delete window; INFO_MSG << " after " << toString(); } diff -Nru unity8-8.15+17.04.20170308/plugins/WindowManager/TopLevelWindowModel.h unity8-8.15+17.04.20170321/plugins/WindowManager/TopLevelWindowModel.h --- unity8-8.15+17.04.20170308/plugins/WindowManager/TopLevelWindowModel.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/WindowManager/TopLevelWindowModel.h 2017-03-21 10:54:05.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Canonical, Ltd. + * Copyright (C) 2016-2017 Canonical, Ltd. * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License version 3, as published by @@ -20,6 +20,8 @@ #include #include +#include "WindowManagerGlobal.h" + Q_DECLARE_LOGGING_CATEGORY(TOPLEVELWINDOWMODEL) class Window; @@ -47,7 +49,7 @@ * As applications can have multiple surfaces and you can also have entries without surfaces at all, * the only way to unambiguously refer to an entry in this model is through its id. */ -class TopLevelWindowModel : public QAbstractListModel +class WINDOWMANAGERQML_EXPORT TopLevelWindowModel : public QAbstractListModel { Q_OBJECT @@ -197,6 +199,7 @@ void setFocusedWindow(Window *window); void removeInputMethodWindow(); int findIndexOf(const unity::shell::application::MirSurfaceInterface *surface) const; + void deleteAt(int index); void removeAt(int index); void addApplication(unity::shell::application::ApplicationInfoInterface *application); @@ -207,6 +210,7 @@ unity::shell::application::ApplicationInfoInterface *application); void prependSurfaceHelper(unity::shell::application::MirSurfaceInterface *surface, unity::shell::application::ApplicationInfoInterface *application); + void prependWindow(Window *window, unity::shell::application::ApplicationInfoInterface *application); void connectWindow(Window *window); void connectSurface(unity::shell::application::MirSurfaceInterface *surface); diff -Nru unity8-8.15+17.04.20170308/plugins/WindowManager/Window.cpp unity8-8.15+17.04.20170321/plugins/WindowManager/Window.cpp --- unity8-8.15+17.04.20170308/plugins/WindowManager/Window.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/WindowManager/Window.cpp 2017-03-21 10:54:05.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Canonical, Ltd. + * Copyright (C) 2016-2017 Canonical, Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -67,6 +67,23 @@ } } +bool Window::allowClientResize() const +{ + return m_allowClientResize; +} + +void Window::setAllowClientResize(bool value) +{ + if (value != m_allowClientResize) { + DEBUG_MSG << "("<setAllowClientResize(value); + } + Q_EMIT allowClientResizeChanged(m_allowClientResize); + } +} + Mir::State Window::state() const { return m_state; @@ -154,6 +171,19 @@ updateFocused(); }); + connect(surface, &unityapi::MirSurfaceInterface::allowClientResizeChanged, this, [this]() { + if (m_surface->allowClientResize() != m_allowClientResize) { + m_allowClientResize = m_surface->allowClientResize(); + Q_EMIT allowClientResizeChanged(m_allowClientResize); + } + }); + + connect(surface, &unityapi::MirSurfaceInterface::liveChanged, this, &Window::liveChanged); + + connect(surface, &QObject::destroyed, this, [this]() { + setSurface(nullptr); + }); + // bring it up to speed if (m_positionRequested) { m_surface->setRequestedPosition(m_requestedPosition); @@ -161,6 +191,7 @@ if (m_stateRequested && m_surface->state() == Mir::RestoredState) { m_surface->requestState(m_state); } + m_surface->setAllowClientResize(m_allowClientResize); // and sync with surface updatePosition(); diff -Nru unity8-8.15+17.04.20170308/plugins/WindowManager/Window.h unity8-8.15+17.04.20170321/plugins/WindowManager/Window.h --- unity8-8.15+17.04.20170308/plugins/WindowManager/Window.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/WindowManager/Window.h 2017-03-21 10:54:05.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Canonical, Ltd. + * Copyright (C) 2016-2017 Canonical, Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,6 +24,8 @@ // Unity API #include +#include "WindowManagerGlobal.h" + namespace unity { namespace shell { namespace application { @@ -42,7 +44,7 @@ was killed to free up memory, as it should still remain in the window list since the user did not explicitly close it). */ -class Window : public QObject +class WINDOWMANAGERQML_EXPORT Window : public QObject { Q_OBJECT @@ -89,6 +91,13 @@ */ Q_PROPERTY(unity::shell::application::MirSurfaceInterface* surface READ surface NOTIFY surfaceChanged) + /** + * @brief Whether to comply to resize requests coming from the client side + * + * It's true by default + */ + Q_PROPERTY(bool allowClientResize READ allowClientResize WRITE setAllowClientResize NOTIFY allowClientResizeChanged) + public: Window(int id, QObject *parent = nullptr); virtual ~Window(); @@ -104,6 +113,9 @@ void setSurface(unity::shell::application::MirSurfaceInterface *surface); void setFocused(bool value); + bool allowClientResize() const; + void setAllowClientResize(bool); + QString toString() const; public Q_SLOTS: @@ -133,6 +145,8 @@ void focusedChanged(bool value); void confinesMousePointerChanged(bool value); void surfaceChanged(unity::shell::application::MirSurfaceInterface *surface); + void allowClientResizeChanged(bool value); + void liveChanged(bool value); /** * @brief Emitted when focus for this window is requested by an external party @@ -152,6 +166,8 @@ Mir::State m_state{Mir::RestoredState}; bool m_stateRequested{false}; unity::shell::application::MirSurfaceInterface *m_surface{nullptr}; + + bool m_allowClientResize{true}; }; QDebug operator<<(QDebug dbg, const Window *window); diff -Nru unity8-8.15+17.04.20170308/plugins/WindowManager/WindowManagerGlobal.h unity8-8.15+17.04.20170321/plugins/WindowManager/WindowManagerGlobal.h --- unity8-8.15+17.04.20170308/plugins/WindowManager/WindowManagerGlobal.h 1970-01-01 00:00:00.000000000 +0000 +++ unity8-8.15+17.04.20170321/plugins/WindowManager/WindowManagerGlobal.h 2017-03-21 10:54:05.000000000 +0000 @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2017 Canonical, Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include + +#if defined(WINDOWMANAGERQML_LIBRARY) +# define WINDOWMANAGERQML_EXPORT Q_DECL_EXPORT +#else +# define WINDOWMANAGERQML_EXPORT Q_DECL_IMPORT +#endif diff -Nru unity8-8.15+17.04.20170308/po/aa.po unity8-8.15+17.04.20170321/po/aa.po --- unity8-8.15+17.04.20170308/po/aa.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/aa.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-02-12 10:18+0000\n" "Last-Translator: Charif AYFARAH \n" "Language-Team: Afar \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/am.po unity8-8.15+17.04.20170321/po/am.po --- unity8-8.15+17.04.20170308/po/am.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/am.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-01-26 15:04+0000\n" "Last-Translator: samson \n" "Language-Team: Amharic \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "መተግበሪያዎችን በ ማስጀመሪያ መቀየሪያ" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 እስከ 9" +msgid "Super + 1 to 0" +msgstr "Super + 1 ወደ 0" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -528,7 +528,7 @@ msgid "A-Z" msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "ተጨማሪ መተግበሪያ በ ሱቅ ውስጥ" @@ -619,6 +619,10 @@ msgid "Call back" msgstr "መልሶ መደወያ" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "ወደ ኋላ" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "መጎተቻ 3 ጣቶች በ መጠቀም ማንኛውንም መተግበሪያ ከ አንድ መስኮት ወደ ሌላ" @@ -1362,3 +1366,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "የ መስኮት መመልከቻ ፎቶ ማንሻ" + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 እስከ 9" diff -Nru unity8-8.15+17.04.20170308/po/ar.po unity8-8.15+17.04.20170321/po/ar.po --- unity8-8.15+17.04.20170308/po/ar.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ar.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-01-14 05:20+0000\n" "Last-Translator: Ibrahim Saed \n" "Language-Team: Arabic \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= " "3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,8 +199,8 @@ msgstr "للتحويل بين التطبيقات عبر شريط بدء التطبيقات." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 to 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -535,7 +535,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -638,6 +638,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1301,3 +1305,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "أخذ لقطة شاشة للنافذة" + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 to 9" diff -Nru unity8-8.15+17.04.20170308/po/ast.po unity8-8.15+17.04.20170321/po/ast.po --- unity8-8.15+17.04.20170308/po/ast.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ast.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-12-16 02:13+0000\n" "Last-Translator: enolp \n" "Language-Team: Asturian \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Cambia d'aplicaciones col llanzador." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 a 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -531,7 +531,7 @@ msgid "A-Z" msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "Más aplicaciones na tienda" @@ -622,6 +622,10 @@ msgid "Call back" msgstr "Devolver llamada" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Abasnar cualquier aplicación d'una ventana a otra usando 3 deos" @@ -1382,3 +1386,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Saca una imaxe d'una ventana." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 a 9" diff -Nru unity8-8.15+17.04.20170308/po/az.po unity8-8.15+17.04.20170321/po/az.po --- unity8-8.15+17.04.20170308/po/az.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/az.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-09-03 16:39+0000\n" "Last-Translator: Nicat Məmmədov \n" "Language-Team: Azerbaijani \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/be.po unity8-8.15+17.04.20170321/po/be.po --- unity8-8.15+17.04.20170308/po/be.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/be.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-12-13 13:12+0000\n" "Last-Translator: Mikhail_SaTuRn \n" "Language-Team: Belarusian \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,7 +199,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -533,7 +533,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -627,6 +627,10 @@ msgid "Call back" msgstr "Патэлефанаваць" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/bg.po unity8-8.15+17.04.20170321/po/bg.po --- unity8-8.15+17.04.20170308/po/bg.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/bg.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-04-12 14:43+0000\n" "Last-Translator: George Karavasilev \n" "Language-Team: Bulgarian \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -528,7 +528,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -619,6 +619,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/bn.po unity8-8.15+17.04.20170321/po/bn.po --- unity8-8.15+17.04.20170308/po/bn.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/bn.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-11-27 19:38+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Bengali \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -528,7 +528,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -619,6 +619,10 @@ msgid "Call back" msgstr "কল ব্যাক" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/br.po unity8-8.15+17.04.20170321/po/br.po --- unity8-8.15+17.04.20170308/po/br.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/br.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-08-29 11:37+0000\n" "Last-Translator: Fohanno Thierry \n" "Language-Team: Breton \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "Mont d'un arload all dre al lañser." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -537,7 +537,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -628,6 +628,10 @@ msgid "Call back" msgstr "Gervel en-dro" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Riklit forzh peseurt arload gant tri biz eus an eil prenestr d'egile" diff -Nru unity8-8.15+17.04.20170308/po/bs.po unity8-8.15+17.04.20170321/po/bs.po --- unity8-8.15+17.04.20170308/po/bs.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/bs.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-12-01 20:06+0000\n" "Last-Translator: Kenan Gutić \n" "Language-Team: Bosnian \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,7 +199,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -532,7 +532,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -626,6 +626,10 @@ msgid "Call back" msgstr "Uzvrati poziv" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ca.po unity8-8.15+17.04.20170321/po/ca.po --- unity8-8.15+17.04.20170308/po/ca.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ca.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-11-11 06:30+0000\n" "Last-Translator: Walter Garcia-Fontes \n" "Language-Team: Catalan \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Commuta les aplicacions mitjançant el llançador." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 a 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -536,7 +536,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -627,6 +627,10 @@ msgid "Call back" msgstr "Retorna la trucada" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1406,3 +1410,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Crea una captura de pantalla d'una finestra" + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 a 9" diff -Nru unity8-8.15+17.04.20170308/po/ca@valencia.po unity8-8.15+17.04.20170321/po/ca@valencia.po --- unity8-8.15+17.04.20170308/po/ca@valencia.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ca@valencia.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-02-22 15:22+0000\n" "Last-Translator: David Planella \n" "Language-Team: Catalan \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -532,7 +532,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -623,6 +623,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ce.po unity8-8.15+17.04.20170321/po/ce.po --- unity8-8.15+17.04.20170308/po/ce.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ce.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-02-15 04:01+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Chechen \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ckb.po unity8-8.15+17.04.20170321/po/ckb.po --- unity8-8.15+17.04.20170308/po/ckb.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ckb.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-01-21 11:05+0000\n" "Last-Translator: Aras \n" "Language-Team: Kurdish (Sorani) \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/co.po unity8-8.15+17.04.20170321/po/co.po --- unity8-8.15+17.04.20170308/po/co.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/co.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-05-24 10:40+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Corsican \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -536,7 +536,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -627,6 +627,10 @@ msgid "Call back" msgstr "Richjamà" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/cs.po unity8-8.15+17.04.20170321/po/cs.po --- unity8-8.15+17.04.20170308/po/cs.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/cs.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-07 10:44+0000\n" "Last-Translator: Vojtěch Daněk \n" "Language-Team: Czech \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: cs\n" #: plugins/LightDM/Greeter.cpp:188 @@ -199,7 +199,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -532,7 +532,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -626,6 +626,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/cy.po unity8-8.15+17.04.20170321/po/cy.po --- unity8-8.15+17.04.20170308/po/cy.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/cy.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-31 13:21+0000\n" "Last-Translator: Owen Llywelyn \n" "Language-Team: Welsh \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? " "2 : 3;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,7 +199,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -533,7 +533,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -630,6 +630,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/da.po unity8-8.15+17.04.20170321/po/da.po --- unity8-8.15+17.04.20170308/po/da.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/da.po 2017-03-21 10:51:14.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-06 12:05+0000\n" "Last-Translator: Folmer Fredslund \n" "Language-Team: Danish \n" @@ -16,8 +16,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,7 +199,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -533,7 +533,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -624,6 +624,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/de.po unity8-8.15+17.04.20170321/po/de.po --- unity8-8.15+17.04.20170308/po/de.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/de.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-01-18 22:45+0000\n" "Last-Translator: Torsten Franz \n" "Language-Team: German \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Schaltet über den Starter zwischen Anwendungen um" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 bis 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -536,7 +536,7 @@ msgid "A-Z" msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -627,6 +627,10 @@ msgid "Call back" msgstr "Zurückrufen" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Eine Anwendung mit 3 Fingern von einem Fenster zum anderen ziehen" @@ -1387,6 +1391,9 @@ #~ msgstr "" #~ "Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen" +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 bis 9" + #~ msgid "Takes a screenshot of a window." #~ msgstr "Macht ein Bildschirmfoto eines Fensters." diff -Nru unity8-8.15+17.04.20170308/po/el.po unity8-8.15+17.04.20170321/po/el.po --- unity8-8.15+17.04.20170308/po/el.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/el.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-04-25 16:24+0000\n" "Last-Translator: Aggelos Arnaoutis \n" "Language-Team: Greek \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "Εναλλαγή εφαρμογών μέσω του εκκινητή εφαρμογών." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -536,7 +536,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -627,6 +627,10 @@ msgid "Call back" msgstr "Επανάκληση" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/en_AU.po unity8-8.15+17.04.20170321/po/en_AU.po --- unity8-8.15+17.04.20170308/po/en_AU.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/en_AU.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-03-27 10:09+0000\n" "Last-Translator: Jared Norris \n" "Language-Team: English (Australia) \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -530,7 +530,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "Call back" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Drag using 3 fingers any application from one window to the other" diff -Nru unity8-8.15+17.04.20170308/po/en_GB.po unity8-8.15+17.04.20170321/po/en_GB.po --- unity8-8.15+17.04.20170308/po/en_GB.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/en_GB.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-07-05 00:37+0000\n" "Last-Translator: Andi Chandler \n" "Language-Team: English (United Kingdom) \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Switches applications via the launcher." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 to 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -530,7 +530,7 @@ msgid "A-Z" msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "More apps in the store" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "Call back" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Drag using 3 fingers any application from one window to the other" @@ -1375,3 +1379,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Takes a screenshot of a window." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 to 9" diff -Nru unity8-8.15+17.04.20170308/po/eo.po unity8-8.15+17.04.20170321/po/eo.po --- unity8-8.15+17.04.20170308/po/eo.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/eo.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-06-06 23:37+0000\n" "Last-Translator: Eliovir \n" "Language-Team: Esperanto \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/es.po unity8-8.15+17.04.20170321/po/es.po --- unity8-8.15+17.04.20170308/po/es.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/es.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-03-05 14:59+0000\n" "Last-Translator: Adolfo Jayme \n" "Language-Team: Spanish \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-03-07 06:02+0000\n" -"X-Generator: Launchpad (build 18330)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Recorre las aplicaciones del Lanzador." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 a 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -535,7 +535,7 @@ msgid "A-Z" msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "Más aplicaciones en la tienda" @@ -626,6 +626,10 @@ msgid "Call back" msgstr "Devolver llamada" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1394,3 +1398,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Captura una ventana." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 a 9" diff -Nru unity8-8.15+17.04.20170308/po/et.po unity8-8.15+17.04.20170321/po/et.po --- unity8-8.15+17.04.20170308/po/et.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/et.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-12-28 06:29+0000\n" "Last-Translator: Karlis \n" "Language-Team: Estonian \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/eu.po unity8-8.15+17.04.20170321/po/eu.po --- unity8-8.15+17.04.20170308/po/eu.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/eu.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-13 23:29+0000\n" "Last-Translator: Ibai Oihanguren Sala \n" "Language-Team: Basque \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -529,7 +529,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -620,6 +620,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/fa.po unity8-8.15+17.04.20170321/po/fa.po --- unity8-8.15+17.04.20170308/po/fa.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/fa.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-10-18 07:03+0000\n" "Last-Translator: Danial Behzadi \n" "Language-Team: Persian \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "تعویض بین برنامه‌ها از طریق اجراگر" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "سوپر + ۰ تا ۹" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -531,7 +531,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -619,6 +619,10 @@ msgid "Call back" msgstr "پاسخ تماس" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "هر پنجره‌ای را با کشیدن سه‌انگشت از پنجره‌ای به ینجرهٔ دیگر ببرید" @@ -1379,3 +1383,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "نماگرفت از یک پنجره" + +#~ msgid "Super + 0 to 9" +#~ msgstr "سوپر + ۰ تا ۹" diff -Nru unity8-8.15+17.04.20170308/po/fi.po unity8-8.15+17.04.20170321/po/fi.po --- unity8-8.15+17.04.20170308/po/fi.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/fi.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-04 18:32+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Vaihtaa sovellusten välillä käynnistimessä." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0-9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -534,7 +534,7 @@ msgid "A-Z" msgstr "A-Ö" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "Lisää sovelluksia kaupassa" @@ -625,6 +625,10 @@ msgid "Call back" msgstr "Soita takaisin" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Vedä kolmea sormea käyttäen mikä tahansa sovellus ikkunasta toiseen" @@ -1387,3 +1391,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Ottaa kuvakaappauksen ikkunasta." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0-9" diff -Nru unity8-8.15+17.04.20170308/po/fo.po unity8-8.15+17.04.20170321/po/fo.po --- unity8-8.15+17.04.20170308/po/fo.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/fo.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-01-14 20:08+0000\n" "Last-Translator: Jógvan Olsen \n" "Language-Team: Faroese \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -530,7 +530,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "Ring aftur" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/fr.po unity8-8.15+17.04.20170321/po/fr.po --- unity8-8.15+17.04.20170308/po/fr.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/fr.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-02-07 18:31+0000\n" "Last-Translator: Anne017 \n" "Language-Team: French \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Bascule les applications via le lanceur." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 à 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -538,7 +538,7 @@ msgid "A-Z" msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "Plus d'applications dans la logithèque" @@ -629,6 +629,10 @@ msgid "Call back" msgstr "Rappeler" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1423,3 +1427,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Prends une capture d'écran d'une fenêtre." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 à 9" diff -Nru unity8-8.15+17.04.20170308/po/ga.po unity8-8.15+17.04.20170321/po/ga.po --- unity8-8.15+17.04.20170308/po/ga.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ga.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-01-25 11:33+0000\n" "Last-Translator: Joshua Kiley \n" "Language-Team: Irish \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -527,7 +527,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "Glaoch Ar Ais" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/gd.po unity8-8.15+17.04.20170321/po/gd.po --- unity8-8.15+17.04.20170308/po/gd.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/gd.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-04-08 18:34+0000\n" "Last-Translator: Akerbeltz \n" "Language-Team: Fòram na Gàidhlig\n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : " "(n > 2 && n < 20) ? 2 : 3;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: gd\n" #: plugins/LightDM/Greeter.cpp:188 @@ -200,8 +200,8 @@ msgstr "Nì seo suids eadar aplacaidean slighe an lòinseir." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 gu 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -541,7 +541,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -638,6 +638,10 @@ msgid "Call back" msgstr "Fònaig air ais" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1430,5 +1434,8 @@ #~ "Dèan grad-shlaighdeadh fada no goirid on oir dheas a dh’fhaicinn nan " #~ "aplacaidean fosgailte agad" +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 gu 9" + #~ msgid "Takes a screenshot of a window." #~ msgstr "Togaidh seo glacadh-sgrìn de dh'uinneag." diff -Nru unity8-8.15+17.04.20170308/po/gl.po unity8-8.15+17.04.20170321/po/gl.po --- unity8-8.15+17.04.20170308/po/gl.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/gl.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-02-02 07:25+0000\n" "Last-Translator: Marcos Lans \n" "Language-Team: Galician \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,8 +196,8 @@ msgstr "Cambia entre aplicativos co Iniciador." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 a 9" +msgid "Super + 1 to 0" +msgstr "Super + 1 a 0" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -367,7 +367,7 @@ #: qml/Components/VirtualTouchPad.qml:351 msgid "Swipe with two fingers to scroll." -msgstr "Esvare dous dedos para desprazar." +msgstr "Esvarar con dous dedos para desprazar." #: qml/Components/VirtualTouchPad.qml:396 msgid "Find more settings in the system settings." @@ -530,7 +530,7 @@ msgid "A-Z" msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "Máis aplicativos na tenda" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "Chamar de volta" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "Atrás" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Arrastre con 3 dedos calquera aplicativo dunha xanela á outra" @@ -628,6 +632,7 @@ #: qml/Tutorial/TutorialLeftLong.qml:49 msgid "Long swipe from the left edge to open the Application Drawer" msgstr "" +"Esvarar longo desde o bordo esquerdo para abrir o caixón dos aplicativos" #: qml/Tutorial/TutorialLeft.qml:47 msgid "Short swipe from the left edge to open the launcher" @@ -1384,3 +1389,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Capturar unha xanela da pantalla." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 a 9" diff -Nru unity8-8.15+17.04.20170308/po/gv.po unity8-8.15+17.04.20170321/po/gv.po --- unity8-8.15+17.04.20170308/po/gv.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/gv.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-04-02 14:24+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Manx \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : (n == 2 ? 1 : 2);\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -533,7 +533,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -624,6 +624,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/he.po unity8-8.15+17.04.20170321/po/he.po --- unity8-8.15+17.04.20170308/po/he.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/he.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-12 08:47+0000\n" "Last-Translator: Yaron \n" "Language-Team: Hebrew \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/hi.po unity8-8.15+17.04.20170321/po/hi.po --- unity8-8.15+17.04.20170308/po/hi.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/hi.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-01-15 01:49+0000\n" "Last-Translator: Siddhanathan Shanmugam \n" "Language-Team: Hindi \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/hr.po unity8-8.15+17.04.20170321/po/hr.po --- unity8-8.15+17.04.20170308/po/hr.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/hr.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-05-04 17:52+0000\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,8 +199,8 @@ msgstr "Prebacuje aplikacije putem pokretača." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 do 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -534,7 +534,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -628,6 +628,10 @@ msgid "Call back" msgstr "Uzvrati poziv" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1381,3 +1385,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Uslikava prozor." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 do 9" diff -Nru unity8-8.15+17.04.20170308/po/hu.po unity8-8.15+17.04.20170321/po/hu.po --- unity8-8.15+17.04.20170308/po/hu.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/hu.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-08-17 10:53+0000\n" "Last-Translator: Richard Somlói \n" "Language-Team: Hungarian \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Alkalmazás váltás az indítóval" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0-9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -532,7 +532,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -623,6 +623,10 @@ msgid "Call back" msgstr "Visszahívás" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1390,3 +1394,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Képernyőkép készítése az ablakról." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0-9" diff -Nru unity8-8.15+17.04.20170308/po/hy.po unity8-8.15+17.04.20170321/po/hy.po --- unity8-8.15+17.04.20170308/po/hy.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/hy.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-10-28 06:34+0000\n" "Last-Translator: Vahan Harutyunyan \n" "Language-Team: Armenian \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -197,7 +197,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -530,7 +530,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ia.po unity8-8.15+17.04.20170321/po/ia.po --- unity8-8.15+17.04.20170308/po/ia.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ia.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-08-25 19:31+0000\n" "Last-Translator: karm \n" "Language-Team: Interlingua \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Excambia le applicationes via le lanceator" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 a 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -532,7 +532,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -623,6 +623,10 @@ msgid "Call back" msgstr "Appellar retro" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Tirar per 3 digitos qualcunque application ab un fenestra al altere" @@ -1378,3 +1382,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Prende un imagine instantanee de un fenestra." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 a 9" diff -Nru unity8-8.15+17.04.20170308/po/id.po unity8-8.15+17.04.20170321/po/id.po --- unity8-8.15+17.04.20170308/po/id.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/id.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2013-06-26 22:35+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Indonesian \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -529,7 +529,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -620,6 +620,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/is.po unity8-8.15+17.04.20170321/po/is.po --- unity8-8.15+17.04.20170308/po/is.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/is.po 2017-03-21 10:51:14.000000000 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: po_unity8-is\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-11-13 09:32+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: Icelandic \n" @@ -17,8 +17,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: is\n" #: plugins/LightDM/Greeter.cpp:188 @@ -201,7 +201,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -535,7 +535,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -626,6 +626,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/it.po unity8-8.15+17.04.20170321/po/it.po --- unity8-8.15+17.04.20170308/po/it.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/it.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-02-14 10:03+0000\n" "Last-Translator: Milo Casagrande \n" "Language-Team: Italian \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Passa a un'altra applicazione attraverso il Launcher" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 fino a 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -211,7 +211,7 @@ #: qml/Components/KeyboardShortcutsOverlay.qml:182 msgid "Opens the Application Drawer." -msgstr "" +msgstr "Apre il cassetto delle applicazioni" #: qml/Components/KeyboardShortcutsOverlay.qml:194 msgid "Scopes" @@ -361,19 +361,19 @@ #: qml/Components/VirtualTouchPad.qml:327 msgid "Tap left button to click." -msgstr "" +msgstr "Toccare il pulsante sinistro per il clic" #: qml/Components/VirtualTouchPad.qml:339 msgid "Tap right button to right click." -msgstr "" +msgstr "Toccare il pulsante destro per il clic destro" #: qml/Components/VirtualTouchPad.qml:351 msgid "Swipe with two fingers to scroll." -msgstr "" +msgstr "Scorrere con due dita per lo scorrimento" #: qml/Components/VirtualTouchPad.qml:396 msgid "Find more settings in the system settings." -msgstr "" +msgstr "Trova ulteriori impostazioni nelle impostazioni di sistema" #: qml/Dash/DashPageHeader.qml:361 msgctxt "Button: Open the Ubuntu Store" @@ -505,15 +505,15 @@ #: qml/Greeter/Greeter.qml:562 msgid "Enter passphrase to unlock" -msgstr "" +msgstr "Digitare la passphrase per sbloccare" #: qml/Greeter/Greeter.qml:563 msgid "Enter passcode to unlock" -msgstr "" +msgstr "Digitare il codice per sbloccare" #: qml/Greeter/NarrowView.qml:242 msgid "Emergency" -msgstr "" +msgstr "Emergenza" #: qml/Greeter/PromptList.qml:126 msgid "Passphrase" @@ -525,20 +525,20 @@ #: qml/Greeter/SessionsList.qml:122 msgid "Select desktop environment" -msgstr "" +msgstr "Seleziona l'ambiente grafico" #: qml/Launcher/Drawer.qml:92 msgid "Search…" -msgstr "" +msgstr "Cerca…" #: qml/Launcher/Drawer.qml:127 msgctxt "Apps sorted alphabetically" msgid "A-Z" -msgstr "" +msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" -msgstr "" +msgstr "Maggiori applicazioni nello store" #: qml/Notifications/NotificationMenuItemFactory.qml:124 msgid "Show password" @@ -627,6 +627,10 @@ msgid "Call back" msgstr "Richiama" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -635,6 +639,8 @@ #: qml/Tutorial/TutorialLeftLong.qml:49 msgid "Long swipe from the left edge to open the Application Drawer" msgstr "" +"Scorrimento lungo dal bordo sinistro per aprire il cassetto delle " +"applicazioni" #: qml/Tutorial/TutorialLeft.qml:47 msgid "Short swipe from the left edge to open the launcher" @@ -1397,5 +1403,8 @@ #~ msgstr "" #~ "Posizionare il mouse sul bordo destro per vedere le applicazioni aperte" +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 fino a 9" + #~ msgid "Takes a screenshot of a window." #~ msgstr "Cattura una schermata di una finestra" diff -Nru unity8-8.15+17.04.20170308/po/ja.po unity8-8.15+17.04.20170321/po/ja.po --- unity8-8.15+17.04.20170308/po/ja.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ja.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-10-05 10:05+0000\n" "Last-Translator: Kentaro Kazuhama \n" "Language-Team: Japanese \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -525,7 +525,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -616,6 +616,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/km.po unity8-8.15+17.04.20170321/po/km.po --- unity8-8.15+17.04.20170308/po/km.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/km.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-08-20 02:48+0000\n" "Last-Translator: Sophea Sok \n" "Language-Team: Khmer \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -528,7 +528,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -616,6 +616,10 @@ msgid "Call back" msgstr "ហៅ​មកវិញ" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/kn.po unity8-8.15+17.04.20170321/po/kn.po --- unity8-8.15+17.04.20170308/po/kn.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/kn.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2013-06-27 05:43+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Kannada \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ko.po unity8-8.15+17.04.20170321/po/ko.po --- unity8-8.15+17.04.20170308/po/ko.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ko.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-08-19 13:02+0000\n" "Last-Translator: MinSik CHO \n" "Language-Team: Korean \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -525,7 +525,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -613,6 +613,10 @@ msgid "Call back" msgstr "부재중 번호로 전화" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ku.po unity8-8.15+17.04.20170321/po/ku.po --- unity8-8.15+17.04.20170308/po/ku.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ku.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-09-10 13:14+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Kurdish \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -528,7 +528,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -619,6 +619,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ky.po unity8-8.15+17.04.20170321/po/ky.po --- unity8-8.15+17.04.20170308/po/ky.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ky.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2013-06-27 06:17+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Kirghiz \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/lo.po unity8-8.15+17.04.20170321/po/lo.po --- unity8-8.15+17.04.20170308/po/lo.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/lo.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2013-10-02 10:00+0000\n" "Last-Translator: Anousak \n" "Language-Team: Lao \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/lt.po unity8-8.15+17.04.20170321/po/lt.po --- unity8-8.15+17.04.20170308/po/lt.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/lt.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-05-19 17:15+0000\n" "Last-Translator: Mantas Kriaučiūnas \n" "Language-Team: Lithuanian \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "(n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -197,7 +197,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -527,7 +527,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -618,6 +618,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/lv.po unity8-8.15+17.04.20170321/po/lv.po --- unity8-8.15+17.04.20170308/po/lv.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/lv.po 2017-03-21 10:51:14.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-11-22 19:13+0000\n" "Last-Translator: Klavs Anson \n" "Language-Team: Latvian \n" @@ -16,8 +16,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: lv\n" #: plugins/LightDM/Greeter.cpp:188 @@ -200,7 +200,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -531,7 +531,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -625,6 +625,10 @@ msgid "Call back" msgstr "Atzvanīt" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ml.po unity8-8.15+17.04.20170321/po/ml.po --- unity8-8.15+17.04.20170308/po/ml.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ml.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2013-11-23 11:44+0000\n" "Last-Translator: ST Alfas \n" "Language-Team: Malayalam \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/mr.po unity8-8.15+17.04.20170321/po/mr.po --- unity8-8.15+17.04.20170308/po/mr.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/mr.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-01-14 19:54+0000\n" "Last-Translator: Rohan Deshmukh \n" "Language-Team: Marathi \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ms.po unity8-8.15+17.04.20170321/po/ms.po --- unity8-8.15+17.04.20170308/po/ms.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ms.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-12-20 14:02+0000\n" "Last-Translator: abuyop \n" "Language-Team: Malay \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,8 +196,8 @@ msgstr "Tukar aplikasi melalui pelancar." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 hingga 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -530,7 +530,7 @@ msgid "A-Z" msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "Lagi apl di dalam kedai" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "Panggilan semula" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1393,3 +1397,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Ambil cekupan skrin bagi tetingkap." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 hingga 9" diff -Nru unity8-8.15+17.04.20170308/po/my.po unity8-8.15+17.04.20170321/po/my.po --- unity8-8.15+17.04.20170308/po/my.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/my.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2013-12-12 11:12+0000\n" "Last-Translator: Pyae Sone \n" "Language-Team: Burmese \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/nb.po unity8-8.15+17.04.20170321/po/nb.po --- unity8-8.15+17.04.20170308/po/nb.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/nb.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-01-27 07:01+0000\n" "Last-Translator: Åka Sikrom \n" "Language-Team: Norwegian Bokmal \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Bytter mellom programmer via oppstarteren." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 to 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -534,7 +534,7 @@ msgid "A-Z" msgstr "A-Å" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "Flere programmer i butikken" @@ -625,6 +625,10 @@ msgid "Call back" msgstr "Ring tilbake" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Dra et program fra et vindu til et annet med 3 fingre" @@ -1377,3 +1381,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Tar bilde av et vindu." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 to 9" diff -Nru unity8-8.15+17.04.20170308/po/ne.po unity8-8.15+17.04.20170321/po/ne.po --- unity8-8.15+17.04.20170308/po/ne.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ne.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-12-06 15:11+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Nepali \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/nl.po unity8-8.15+17.04.20170321/po/nl.po --- unity8-8.15+17.04.20170308/po/nl.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/nl.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-11-01 08:29+0000\n" "Last-Translator: Hannie Dumoleyn \n" "Language-Team: Dutch \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Wisselt toepassingen via de Starter." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 tot 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -537,7 +537,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -628,6 +628,10 @@ msgid "Call back" msgstr "Terugbellen" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1390,3 +1394,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Maakt een schermafdruk van een venster." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 tot 9" diff -Nru unity8-8.15+17.04.20170308/po/nn.po unity8-8.15+17.04.20170321/po/nn.po --- unity8-8.15+17.04.20170308/po/nn.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/nn.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-05-12 11:32+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Norwegian Nynorsk \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/oc.po unity8-8.15+17.04.20170321/po/oc.po --- unity8-8.15+17.04.20170308/po/oc.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/oc.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-10-27 13:43+0000\n" "Last-Translator: Cédric VALMARY (Tot en òc) \n" "Language-Team: Occitan (post 1500) \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Bascula las aplicacions via l'aviador." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 a 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -537,7 +537,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -628,6 +628,10 @@ msgid "Call back" msgstr "Rapelar" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1269,6 +1273,9 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Prend una captura d'ecran d'una fenèstra." +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 a 9" + #~ msgid "Long swipe from the left edge to open the Today scope" #~ msgstr "" #~ "Fasètz lisar a partir del bòrd esquèrre fins al bòrd dreit per dobrir lo " diff -Nru unity8-8.15+17.04.20170308/po/or.po unity8-8.15+17.04.20170321/po/or.po --- unity8-8.15+17.04.20170308/po/or.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/or.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-03-21 05:28+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Oriya \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n!=1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/pa.po unity8-8.15+17.04.20170321/po/pa.po --- unity8-8.15+17.04.20170308/po/pa.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/pa.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-04-24 04:29+0000\n" "Last-Translator: Gursharnjit_Singh \n" "Language-Team: Punjabi \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -528,7 +528,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -619,6 +619,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/pl.po unity8-8.15+17.04.20170321/po/pl.po --- unity8-8.15+17.04.20170308/po/pl.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/pl.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-11-01 15:06+0000\n" "Last-Translator: Krzysztof Tataradziński \n" "Language-Team: Polish \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:03+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -197,8 +197,8 @@ msgstr "Przełącza aplikacje poprzez panel uruchamiania" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0-9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -531,7 +531,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -625,6 +625,10 @@ msgid "Call back" msgstr "Oddzwoń" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1382,3 +1386,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Pobiera zrzut ekranu okna" + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0-9" diff -Nru unity8-8.15+17.04.20170308/po/pt_BR.po unity8-8.15+17.04.20170321/po/pt_BR.po --- unity8-8.15+17.04.20170308/po/pt_BR.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/pt_BR.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-08-05 04:40+0000\n" "Last-Translator: Julio Alexander Sieg \n" "Language-Team: Brazilian Portuguese \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -530,7 +530,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "Retornar chamada" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/pt.po unity8-8.15+17.04.20170321/po/pt.po --- unity8-8.15+17.04.20170308/po/pt.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/pt.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-06-20 11:37+0000\n" "Last-Translator: Ivo Xavier \n" "Language-Team: Portuguese \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "Muda aplicações através do Launcher." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 a 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -535,7 +535,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -626,6 +626,10 @@ msgid "Call back" msgstr "Ligar de volta" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Arraste qualquer app usando três dedos de uma janela para outra" @@ -1386,3 +1390,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Tira uma captura de uma janela." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 a 9" diff -Nru unity8-8.15+17.04.20170308/po/ro.po unity8-8.15+17.04.20170321/po/ro.po --- unity8-8.15+17.04.20170308/po/ro.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ro.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-06 17:47+0000\n" "Last-Translator: Meriuță Cornel \n" "Language-Team: Romanian \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 " "== 0) && (n != 0))) ? 2: 1));\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,7 +199,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -533,7 +533,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -627,6 +627,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ru.po unity8-8.15+17.04.20170321/po/ru.po --- unity8-8.15+17.04.20170308/po/ru.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ru.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-06 05:33+0000\n" "Last-Translator: ☠Jay ZDLin☠ \n" "Language-Team: Russian \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -25,15 +25,15 @@ #: plugins/LightDM/Greeter.cpp:203 msgid "Username" -msgstr "" +msgstr "Имя пользователя" #: plugins/LightDM/Greeter.cpp:242 msgid "Failed to authenticate" -msgstr "" +msgstr "Не удалось пройти проверку подлинности" #: plugins/LightDM/Greeter.cpp:244 msgid "Invalid password, please try again" -msgstr "" +msgstr "Неправильный пароль, пожалуйста повторите снова" #: plugins/LightDM/Greeter.cpp:254 msgid "Log In" @@ -197,8 +197,8 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + число от 0 до 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -370,7 +370,7 @@ #: qml/Components/VirtualTouchPad.qml:396 msgid "Find more settings in the system settings." -msgstr "" +msgstr "Дополнительные настройки в параметрах системы." #: qml/Dash/DashPageHeader.qml:361 msgctxt "Button: Open the Ubuntu Store" @@ -523,20 +523,20 @@ #: qml/Greeter/SessionsList.qml:122 msgid "Select desktop environment" -msgstr "" +msgstr "Выберите окружение рабочего стола" #: qml/Launcher/Drawer.qml:92 msgid "Search…" -msgstr "" +msgstr "Найти..." #: qml/Launcher/Drawer.qml:127 msgctxt "Apps sorted alphabetically" msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" -msgstr "" +msgstr "Ещё приложения в магазине" #: qml/Notifications/NotificationMenuItemFactory.qml:124 msgid "Show password" @@ -628,6 +628,10 @@ msgid "Call back" msgstr "Позвонить" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Передвигайте любое приложение с помощью трёх пальцев" @@ -1379,3 +1383,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Снимок окна." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + число от 0 до 9" diff -Nru unity8-8.15+17.04.20170308/po/shn.po unity8-8.15+17.04.20170321/po/shn.po --- unity8-8.15+17.04.20170308/po/shn.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/shn.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-11-10 12:09+0000\n" "Last-Translator: Rockworld \n" "Language-Team: Shan \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/si.po unity8-8.15+17.04.20170321/po/si.po --- unity8-8.15+17.04.20170308/po/si.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/si.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2013-06-26 22:36+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Sinhalese \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,7 +198,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -528,7 +528,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -619,6 +619,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/sk.po unity8-8.15+17.04.20170321/po/sk.po --- unity8-8.15+17.04.20170308/po/sk.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/sk.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-09-28 04:43+0000\n" "Last-Translator: P_E_T_O \n" "Language-Team: Slovak \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: sk\n" #: plugins/LightDM/Greeter.cpp:188 @@ -199,8 +199,8 @@ msgstr "Prepínanie aplikácií pomocou launchera." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 do 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -537,7 +537,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -631,6 +631,10 @@ msgid "Call back" msgstr "Zavolať naspäť" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1301,3 +1305,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Vytvorí snímku okna." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 do 9" diff -Nru unity8-8.15+17.04.20170308/po/sl.po unity8-8.15+17.04.20170321/po/sl.po --- unity8-8.15+17.04.20170308/po/sl.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/sl.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-01-31 18:34+0000\n" "Last-Translator: Bernard Banko \n" "Language-Team: Slovenian \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || " "n%100==4 ? 3 : 0);\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,7 +199,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -535,7 +535,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -632,6 +632,10 @@ msgid "Call back" msgstr "Pokliči nazaj" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "S tremi prsti povlecite program iz enega v drugo okno" diff -Nru unity8-8.15+17.04.20170308/po/sq.po unity8-8.15+17.04.20170321/po/sq.po --- unity8-8.15+17.04.20170308/po/sq.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/sq.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-04-21 06:03+0000\n" "Last-Translator: Indrit Bashkimi \n" "Language-Team: sq\n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:02+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:12+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: sq\n" #: plugins/LightDM/Greeter.cpp:188 @@ -197,7 +197,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -527,7 +527,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -618,6 +618,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/sr.po unity8-8.15+17.04.20170321/po/sr.po --- unity8-8.15+17.04.20170308/po/sr.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/sr.po 2017-03-21 10:51:14.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-08-22 20:43+0000\n" "Last-Translator: Bojan Bogdanović \n" "Language-Team: српски \n" @@ -17,8 +17,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: sr\n" #: plugins/LightDM/Greeter.cpp:188 @@ -201,8 +201,8 @@ msgstr "Пребацује програме преко покретача." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 до 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -534,7 +534,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -628,6 +628,10 @@ msgid "Call back" msgstr "Позови назад" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1384,3 +1388,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Slika prozor" + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 до 9" diff -Nru unity8-8.15+17.04.20170308/po/sv.po unity8-8.15+17.04.20170321/po/sv.po --- unity8-8.15+17.04.20170308/po/sv.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/sv.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-06-19 19:31+0000\n" "Last-Translator: Josef Andersson \n" "Language-Team: Swedish\n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: sv\n" #: plugins/LightDM/Greeter.cpp:188 @@ -199,8 +199,8 @@ msgstr "Byter program via Programstartaren." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 till 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -532,7 +532,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -623,6 +623,10 @@ msgid "Call back" msgstr "Ring upp" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Dra ett program från ett fönster till det andra med tre fingrar" @@ -1383,3 +1387,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Tar en skärmbild av ett fönster." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 till 9" diff -Nru unity8-8.15+17.04.20170308/po/sw.po unity8-8.15+17.04.20170321/po/sw.po --- unity8-8.15+17.04.20170308/po/sw.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/sw.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-17 20:02+0000\n" "Last-Translator: Valentine \n" "Language-Team: Swahili \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:13+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -528,7 +528,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -619,6 +619,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ta.po unity8-8.15+17.04.20170321/po/ta.po --- unity8-8.15+17.04.20170308/po/ta.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ta.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-03-02 04:54+0000\n" "Last-Translator: Arun Kumar - அருண் குமார் \n" "Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-03-03 05:54+0000\n" -"X-Generator: Launchpad (build 18329)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: ta\n" #: plugins/LightDM/Greeter.cpp:188 @@ -199,7 +199,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -529,7 +529,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -620,6 +620,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/te.po unity8-8.15+17.04.20170321/po/te.po --- unity8-8.15+17.04.20170308/po/te.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/te.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-07-19 10:04+0000\n" "Last-Translator: Praveen Illa \n" "Language-Team: Telugu \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/th.po unity8-8.15+17.04.20170321/po/th.po --- unity8-8.15+17.04.20170308/po/th.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/th.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-10-02 04:55+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Thai \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/tr.po unity8-8.15+17.04.20170321/po/tr.po --- unity8-8.15+17.04.20170308/po/tr.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/tr.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-03-22 15:56+0000\n" "Last-Translator: Arda Ünlü \n" "Language-Team: Turkish \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,8 +196,8 @@ msgstr "Başlatıcı üzerinden uygulamaları değiştirir." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0'dan 9'a" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -530,7 +530,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -621,6 +621,10 @@ msgid "Call back" msgstr "Geri ara" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1345,5 +1349,8 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Bir pencerenin ekran görüntüsünü alır." +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0'dan 9'a" + #~ msgid "Long swipe from the left edge to open the Today scope" #~ msgstr "Bugün kapsamını açmak için sol kenardan uzun kaydırın" diff -Nru unity8-8.15+17.04.20170308/po/ug.po unity8-8.15+17.04.20170321/po/ug.po --- unity8-8.15+17.04.20170308/po/ug.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ug.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-07-03 13:56+0000\n" "Last-Translator: Eltikin \n" "Language-Team: Uyghur Computer Science Association \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 to 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -527,7 +527,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -615,6 +615,10 @@ msgid "Call back" msgstr "تىلفۇن ئۇرلىۋاتىدۇ" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -1310,3 +1314,6 @@ #~ msgid "You almost got it!" #~ msgstr "ھازىرلا پۈتۈرىدۇ!" + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 to 9" diff -Nru unity8-8.15+17.04.20170308/po/uk.po unity8-8.15+17.04.20170321/po/uk.po --- unity8-8.15+17.04.20170308/po/uk.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/uk.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2017-01-17 10:58+0000\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -16,8 +16,8 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -199,8 +199,8 @@ msgstr "Перемкнути програму за допомогою засобу запуску." #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Win + 0-9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -538,7 +538,7 @@ msgid "A-Z" msgstr "А-Я" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "Інші програми можна знайти у крамниці" @@ -632,6 +632,10 @@ msgid "Call back" msgstr "Зворотний виклик" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "Пересувайте будь-який додаток за допомогою трьох пальців" @@ -1408,3 +1412,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "Зробити знімок вікна." + +#~ msgid "Super + 0 to 9" +#~ msgstr "Win + 0-9" diff -Nru unity8-8.15+17.04.20170308/po/unity8.pot unity8-8.15+17.04.20170321/po/unity8.pot --- unity8-8.15+17.04.20170308/po/unity8.pot 2017-03-08 09:56:47.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/unity8.pot 2017-03-21 10:58:13.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-03-08 09:56+0000\n" +"POT-Creation-Date: 2017-03-21 10:58+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -50,8 +50,8 @@ msgid "Guest Session" msgstr "" -#: plugins/Unity/Launcher/launcheritem.cpp:50 -#: plugins/Unity/Launcher/launcheritem.cpp:122 +#: plugins/Unity/Launcher/launcheritem.cpp:49 +#: plugins/Unity/Launcher/launcheritem.cpp:123 msgid "Pin shortcut" msgstr "" @@ -59,20 +59,20 @@ msgid "Quit" msgstr "" -#: plugins/Unity/Launcher/launcheritem.cpp:122 +#: plugins/Unity/Launcher/launcheritem.cpp:123 msgid "Unpin shortcut" msgstr "" -#: qml/Components/Dialogs.qml:177 +#: qml/Components/Dialogs.qml:176 msgctxt "Title: Lock/Log out dialog" msgid "Log out" msgstr "" -#: qml/Components/Dialogs.qml:178 +#: qml/Components/Dialogs.qml:177 msgid "Are you sure you want to log out?" msgstr "" -#: qml/Components/Dialogs.qml:181 +#: qml/Components/Dialogs.qml:180 msgctxt "Button: Lock the system" msgid "Lock" msgstr "" @@ -517,11 +517,11 @@ msgid "Select desktop environment" msgstr "" -#: qml/Launcher/Drawer.qml:92 +#: qml/Launcher/Drawer.qml:93 msgid "Search…" msgstr "" -#: qml/Launcher/Drawer.qml:127 +#: qml/Launcher/Drawer.qml:128 msgctxt "Apps sorted alphabetically" msgid "A-Z" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/ur.po unity8-8.15+17.04.20170321/po/ur.po --- unity8-8.15+17.04.20170308/po/ur.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/ur.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-05-05 03:12+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Urdu \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/uz.po unity8-8.15+17.04.20170321/po/uz.po --- unity8-8.15+17.04.20170308/po/uz.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/uz.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-07-04 16:03+0000\n" "Last-Translator: Learner \n" "Language-Team: Uzbek \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/vi.po unity8-8.15+17.04.20170321/po/vi.po --- unity8-8.15+17.04.20170308/po/vi.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/vi.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-01-15 01:19+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Vietnamese \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/wo.po unity8-8.15+17.04.20170321/po/wo.po --- unity8-8.15+17.04.20170308/po/wo.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/wo.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2015-10-29 11:16+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Wolof \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/xh.po unity8-8.15+17.04.20170321/po/xh.po --- unity8-8.15+17.04.20170308/po/xh.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/xh.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2013-09-28 13:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Xhosa \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/zh_CN.po unity8-8.15+17.04.20170321/po/zh_CN.po --- unity8-8.15+17.04.20170308/po/zh_CN.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/zh_CN.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-04-13 06:27+0000\n" "Last-Translator: YunQiang Su \n" "Language-Team: Chinese (Simplified) \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -198,8 +198,8 @@ msgstr "通过启动器切换应用程序。" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 至 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -527,7 +527,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -615,6 +615,10 @@ msgid "Call back" msgstr "回电" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "使用三指将任何应用从一个窗口拖拽至另一个" @@ -1330,3 +1334,6 @@ #~ msgid "Takes a screenshot of a window." #~ msgstr "给窗口截图。" + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 至 9" diff -Nru unity8-8.15+17.04.20170308/po/zh_HK.po unity8-8.15+17.04.20170321/po/zh_HK.po --- unity8-8.15+17.04.20170308/po/zh_HK.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/zh_HK.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2014-08-10 11:45+0000\n" "Last-Translator: Daniel Cheung \n" "Language-Team: Chinese (Hong Kong) \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" #: plugins/LightDM/Greeter.cpp:188 msgid "Password: " @@ -196,7 +196,7 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" +msgid "Super + 1 to 0" msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 @@ -526,7 +526,7 @@ msgid "A-Z" msgstr "" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -617,6 +617,10 @@ msgid "Call back" msgstr "" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" diff -Nru unity8-8.15+17.04.20170308/po/zh_TW.po unity8-8.15+17.04.20170321/po/zh_TW.po --- unity8-8.15+17.04.20170308/po/zh_TW.po 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/po/zh_TW.po 2017-03-21 10:51:14.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2017-02-21 13:23+0000\n" +"POT-Creation-Date: 2017-03-08 09:56+0000\n" "PO-Revision-Date: 2016-02-24 04:40+0000\n" "Last-Translator: Po-Hsu Lin \n" "Language-Team: Chinese (Traditional) \n" @@ -15,8 +15,8 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2017-02-25 06:04+0000\n" -"X-Generator: Launchpad (build 18328)\n" +"X-Launchpad-Export-Date: 2017-03-14 07:14+0000\n" +"X-Generator: Launchpad (build 18331)\n" "Language: zh_TW\n" #: plugins/LightDM/Greeter.cpp:188 @@ -25,15 +25,15 @@ #: plugins/LightDM/Greeter.cpp:203 msgid "Username" -msgstr "" +msgstr "使用者名稱" #: plugins/LightDM/Greeter.cpp:242 msgid "Failed to authenticate" -msgstr "" +msgstr "身分核對失敗" #: plugins/LightDM/Greeter.cpp:244 msgid "Invalid password, please try again" -msgstr "" +msgstr "密碼錯誤,請再試一次" #: plugins/LightDM/Greeter.cpp:254 msgid "Log In" @@ -45,11 +45,11 @@ #: plugins/LightDM/UsersModel.cpp:152 msgid "Login" -msgstr "" +msgstr "登入" #: plugins/LightDM/UsersModel.cpp:160 msgid "Guest Session" -msgstr "" +msgstr "訪客作業階段" #: plugins/Unity/Launcher/launcheritem.cpp:50 #: plugins/Unity/Launcher/launcheritem.cpp:122 @@ -197,8 +197,8 @@ msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:164 -msgid "Super + 0 to 9" -msgstr "Super + 0 到 9" +msgid "Super + 1 to 0" +msgstr "" #: qml/Components/KeyboardShortcutsOverlay.qml:169 msgid "Same as clicking on a launcher icon." @@ -206,7 +206,7 @@ #: qml/Components/KeyboardShortcutsOverlay.qml:177 msgid "Super + A" -msgstr "" +msgstr "Super + A" #: qml/Components/KeyboardShortcutsOverlay.qml:182 msgid "Opens the Application Drawer." @@ -218,7 +218,7 @@ #: qml/Components/KeyboardShortcutsOverlay.qml:201 msgid "Super (Tap)" -msgstr "" +msgstr "Super (輕觸)" #: qml/Components/KeyboardShortcutsOverlay.qml:206 msgid "Opens the Scopes home." @@ -282,7 +282,7 @@ #: qml/Components/KeyboardShortcutsOverlay.qml:318 msgid "Ctrl + Super + Left or Right" -msgstr "" +msgstr "Ctrl + Super + 左或右" #: qml/Components/KeyboardShortcutsOverlay.qml:323 msgid "Semi-maximizes the current window." @@ -519,14 +519,14 @@ #: qml/Launcher/Drawer.qml:92 msgid "Search…" -msgstr "" +msgstr "搜尋..." #: qml/Launcher/Drawer.qml:127 msgctxt "Apps sorted alphabetically" msgid "A-Z" -msgstr "" +msgstr "A-Z" -#: qml/Launcher/MoreAppsHeader.qml:39 +#: qml/Launcher/MoreAppsHeader.qml:55 msgid "More apps in the store" msgstr "" @@ -614,6 +614,10 @@ msgid "Call back" msgstr "回撥" +#: qml/Panel/PanelMenuPage.qml:92 +msgid "Back" +msgstr "" + #: qml/Stage/SideStage.qml:76 msgid "Drag using 3 fingers any application from one window to the other" msgstr "" @@ -659,15 +663,15 @@ #: qml/Wizard/Pages/20-keyboard.qml:31 msgid "Select Keyboard" -msgstr "" +msgstr "選取鍵盤" #: qml/Wizard/Pages/20-keyboard.qml:71 msgid "Keyboard language" -msgstr "" +msgstr "鍵盤語言" #: qml/Wizard/Pages/20-keyboard.qml:93 msgid "Keyboard layout" -msgstr "" +msgstr "鍵盤配置" #: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207 #: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152 @@ -776,7 +780,7 @@ #: qml/Wizard/Pages/77-system-update.qml:28 msgid "Update Device" -msgstr "" +msgstr "更新裝置" #: qml/Wizard/Pages/77-system-update.qml:55 msgid "" @@ -787,7 +791,7 @@ #: qml/Wizard/Pages/77-system-update.qml:76 msgctxt "string identifying name of the update" msgid "Ubuntu system" -msgstr "" +msgstr "Ubuntu 系統" #: qml/Wizard/Pages/77-system-update.qml:83 #, qt-format @@ -801,7 +805,7 @@ #: qml/Wizard/Pages/77-system-update.qml:116 msgid "Install and restart now" -msgstr "" +msgstr "馬上安裝並重新啟動" #: qml/Wizard/Pages/80-finished.qml:89 msgid "Welcome to Ubuntu" @@ -843,7 +847,7 @@ #: qml/Wizard/Pages/here-terms.qml:107 msgid "Service Terms" -msgstr "" +msgstr "服務條款" #: qml/Wizard/Pages/passcode-confirm.qml:43 #: qml/Wizard/Pages/passcode-desktop.qml:97 @@ -894,7 +898,7 @@ #: qml/Wizard/Pages/password-set.qml:62 msgid "Enter at least 8 characters" -msgstr "" +msgstr "輸入至少 8 個字元" #: qml/Wizard/Pages/password-set.qml:74 msgid "Choose password" @@ -1311,3 +1315,6 @@ #~ msgid "%a %d %b %l:%M %p" #~ msgstr "(%a) %d月%b日 %p %l:%M" + +#~ msgid "Super + 0 to 9" +#~ msgstr "Super + 0 到 9" diff -Nru unity8-8.15+17.04.20170308/qml/ApplicationMenus/MenuBar.qml unity8-8.15+17.04.20170321/qml/ApplicationMenus/MenuBar.qml --- unity8-8.15+17.04.20170308/qml/ApplicationMenus/MenuBar.qml 2017-03-08 09:53:20.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/ApplicationMenus/MenuBar.qml 2017-03-21 10:56:09.000000000 +0000 @@ -44,14 +44,14 @@ implicitWidth: row.width height: parent.height - function select(index) { - d.select(index); - } - function dismiss() { d.dismissAll(); } + function invokeMenu(mouseEvent) { + mouseArea.onClicked(mouseEvent); + } + GlobalShortcut { shortcut: Qt.Key_Alt|Qt.AltModifier active: enableKeyFilter @@ -132,17 +132,20 @@ function show() { if (!__popup) { + root.unityMenuModel.aboutToShow(visualItem.__ownIndex); __popup = menuComponent.createObject(root, { objectName: visualItem.objectName + "-menu", desiredX: Qt.binding(function() { return visualItem.x - units.gu(1); }), desiredY: Qt.binding(function() { return root.height; }), - unityMenuModel: Qt.binding(function() { return root.unityMenuModel.submenu(visualItem.__ownIndex); }) + unityMenuModel: Qt.binding(function() { return root.unityMenuModel.submenu(visualItem.__ownIndex); }), + selectFirstOnCountChange: false }); __popup.reset(); __popup.childActivated.connect(dismiss); // force the current item to be the newly popped up menu - } else { + } else if (!__popup.visible) { + root.unityMenuModel.aboutToShow(visualItem.__ownIndex); __popup.show(); } d.currentItem = visualItem; @@ -226,6 +229,7 @@ } // Row MouseArea { + id: mouseArea anchors.fill: parent hoverEnabled: d.currentItem diff -Nru unity8-8.15+17.04.20170308/qml/ApplicationMenus/MenuPopup.qml unity8-8.15+17.04.20170321/qml/ApplicationMenus/MenuPopup.qml --- unity8-8.15+17.04.20170308/qml/ApplicationMenus/MenuPopup.qml 2017-03-08 09:53:02.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/ApplicationMenus/MenuPopup.qml 2017-03-21 10:56:09.000000000 +0000 @@ -33,6 +33,8 @@ // if they don't fit when growing right property bool substractWidth: false + property bool selectFirstOnCountChange: true + property real desiredX x: { var dummy = visible; // force recalc when shown/hidden @@ -73,8 +75,8 @@ d.currentItem = null; } - function select(index) { - d.select(index) + function selectFirstIndex() { + d.selectNext(-1); } function reset() { @@ -302,6 +304,7 @@ if (hasSubmenu) { if (!popup) { + root.unityMenuModel.aboutToShow(__ownIndex); var model = root.unityMenuModel.submenu(__ownIndex); popup = submenuComponent.createObject(focusScope, { objectName: parent.objectName + "-", @@ -323,8 +326,10 @@ popup = null; root.childActivated(); }); - } else if (popup) { + } else if (!popup.visible) { + root.unityMenuModel.aboutToShow(__ownIndex); popup.visible = true; + popup.item.selectFirstIndex(); } } else { root.unityMenuModel.activate(__ownIndex); @@ -358,6 +363,12 @@ Repeater { id: repeater + onCountChanged: { + if (root.selectFirstOnCountChange && !d.currentItem && count > 0) { + root.selectFirstIndex(); + } + } + Loader { id: loader objectName: root.objectName + "-item" + __ownIndex @@ -484,9 +495,6 @@ target: item onChildActivated: childActivated(); } - - Component.onCompleted: item.select(0); - onVisibleChanged: if (visible) { item.select(0); } } } } diff -Nru unity8-8.15+17.04.20170308/qml/Components/Dialogs.qml unity8-8.15+17.04.20170321/qml/Components/Dialogs.qml --- unity8-8.15+17.04.20170308/qml/Components/Dialogs.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Components/Dialogs.qml 2017-03-21 10:51:37.000000000 +0000 @@ -22,7 +22,6 @@ import Ubuntu.Components 1.3 import Unity.Platform 1.0 import Utils 0.1 -import "../Greeter" MouseArea { id: root @@ -116,17 +115,17 @@ GlobalShortcut { // lock screen shortcut: Qt.Key_ScreenSaver - onTriggered: LightDMService.greeter.showGreeter() + onTriggered: root.unitySessionService.PromptLock() } GlobalShortcut { // lock screen shortcut: Qt.ControlModifier|Qt.AltModifier|Qt.Key_L - onTriggered: LightDMService.greeter.showGreeter() + onTriggered: root.unitySessionService.PromptLock() } GlobalShortcut { // lock screen shortcut: Qt.MetaModifier|Qt.Key_L - onTriggered: LightDMService.greeter.showGreeter() + onTriggered: root.unitySessionService.PromptLock() } QtObject { @@ -179,8 +178,9 @@ Button { width: parent.width text: i18n.ctr("Button: Lock the system", "Lock") + visible: root.unitySessionService.CanLock() onClicked: { - LightDMService.greeter.showGreeter() + root.unitySessionService.PromptLock(); logoutDialog.hide(); } Component.onCompleted: if (root.hasKeyboard) forceActiveFocus(Qt.TabFocusReason) diff -Nru unity8-8.15+17.04.20170308/qml/Launcher/Drawer.qml unity8-8.15+17.04.20170321/qml/Launcher/Drawer.qml --- unity8-8.15+17.04.20170308/qml/Launcher/Drawer.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Launcher/Drawer.qml 2017-03-21 10:54:58.000000000 +0000 @@ -27,6 +27,7 @@ property int panelWidth: 0 readonly property bool moving: listLoader.item && listLoader.item.moving + readonly property Item searchTextField: searchField signal applicationSelected(string appId) @@ -212,13 +213,16 @@ root.dragDistance += diff; oldX = mouseX } - onReleased: { + onReleased: reset(); + onCanceled: reset(); + function reset() { if (root.draggingHorizontally) { root.draggingHorizontally = false; parent.interactive = true; } reactivateTimer.start(); } + Timer { id: reactivateTimer interval: 0 diff -Nru unity8-8.15+17.04.20170308/qml/Launcher/LauncherPanel.qml unity8-8.15+17.04.20170321/qml/Launcher/LauncherPanel.qml --- unity8-8.15+17.04.20170308/qml/Launcher/LauncherPanel.qml 2017-03-08 09:51:31.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Launcher/LauncherPanel.qml 2017-03-21 10:53:37.000000000 +0000 @@ -19,6 +19,7 @@ import Ubuntu.Components 1.3 import Unity.Launcher 0.1 import Ubuntu.Components.Popups 1.3 +import Utils 0.1 import "../Components" Rectangle { @@ -29,6 +30,7 @@ property var model property bool inverted: false + property bool privateMode: false property bool dragging: false property bool moving: launcherListView.moving || launcherListView.flicking property bool preventHiding: moving || dndArea.draggedIndex >= 0 || quickList.state === "open" || dndArea.pressed @@ -811,7 +813,11 @@ Repeater { id: popoverRepeater - model: quickList.model + objectName: "popoverRepeater" + model: QuickListProxyModel { + source: quickList.model + privateMode: root.privateMode + } ListItem { objectName: "quickListEntry" + index @@ -835,6 +841,7 @@ fontSize: index == 0 ? "medium" : "small" font.weight: index == 0 ? Font.Medium : Font.Light color: model.clickable ? theme.palette.normal.backgroundText : theme.palette.disabled.backgroundText + elide: Text.ElideRight } onClicked: { diff -Nru unity8-8.15+17.04.20170308/qml/Launcher/Launcher.qml unity8-8.15+17.04.20170321/qml/Launcher/Launcher.qml --- unity8-8.15+17.04.20170308/qml/Launcher/Launcher.qml 2017-03-08 09:51:16.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Launcher/Launcher.qml 2017-03-21 10:54:58.000000000 +0000 @@ -33,6 +33,7 @@ property Item blurSource: null property int topPanelHeight: 0 property bool drawerEnabled: true + property alias privateMode: panel.privateMode property int panelWidth: units.gu(10) property int dragAreaWidth: units.gu(1) @@ -119,7 +120,14 @@ } return; } - switchToNextState("") + if (root.lockedVisible) { + // Due to binding updates when switching between modes + // it could happen that our request to show will be overwritten + // with a hide request. Rewrite it when we know hiding is not allowed. + switchToNextState("visible") + } else { + switchToNextState("") + } } function fadeOut() { @@ -155,6 +163,7 @@ function openForKeyboardNavigation() { panel.highlightIndex = -1; // The BFB + drawer.focus = false; root.focus = true; switchToNextState("visible") } @@ -257,13 +266,6 @@ interval: 1 property string nextState: "" onTriggered: { - if (root.lockedVisible && nextState == "") { - // Due to binding updates when switching between modes - // it could happen that our request to show will be overwritten - // with a hide request. Rewrite it when we know hiding is not allowed. - nextState = "visible" - } - // switching to an intermediate state here to make sure all the // values are restored, even if we were already in the target state root.state = "tmp" @@ -362,6 +364,13 @@ topMargin: root.inverted ? root.topPanelHeight : 0 bottom: parent.bottom right: parent.left + onRightMarginChanged: { + // Remove (and put back) the focus for the searchfield in + // order to hide the copy/paste popover when we move the drawer + var hadFocus = drawer.searchTextField.focus; + drawer.searchTextField.focus = false; + drawer.searchTextField.focus = hadFocus; + } } width: Math.min(root.width, units.gu(90)) * .9 panelWidth: panel.width @@ -382,8 +391,7 @@ } Keys.onEscapePressed: { - switchToNextState(""); - root.focus = false; + root.hide() } onDragDistanceChanged: { diff -Nru unity8-8.15+17.04.20170308/qml/Panel/Indicators/client/IndicatorRepresentation.qml unity8-8.15+17.04.20170321/qml/Panel/Indicators/client/IndicatorRepresentation.qml --- unity8-8.15+17.04.20170308/qml/Panel/Indicators/client/IndicatorRepresentation.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Panel/Indicators/client/IndicatorRepresentation.qml 2017-03-21 10:51:48.000000000 +0000 @@ -20,6 +20,7 @@ import QtQuick 2.4 import Ubuntu.Components 1.3 +import ".." import "../.." Page { @@ -77,11 +78,23 @@ Component { id: page - IndicatorPage { - identifier: model.identifier - busName: indicatorProperties.busName - actionsObjectPath: indicatorProperties.actionsObjectPath - menuObjectPath: indicatorProperties.menuObjectPath + PanelMenuPage { + objectName: model.identifier + "-page" + submenuIndex: 0 + + menuModel: delegate.menuModel + + factory: IndicatorMenuItemFactory { + indicator: model.identifier + rootModel: delegate.menuModel + } + + IndicatorDelegate { + id: delegate + busName: indicatorProperties.busName + actionsObjectPath: indicatorProperties.actionsObjectPath + menuObjectPath: indicatorProperties.menuObjectPath + } } } Component { diff -Nru unity8-8.15+17.04.20170308/qml/Panel/MenuContent.qml unity8-8.15+17.04.20170321/qml/Panel/MenuContent.qml --- unity8-8.15+17.04.20170308/qml/Panel/MenuContent.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Panel/MenuContent.qml 2017-03-21 10:55:35.000000000 +0000 @@ -44,9 +44,9 @@ anchors.fill: parent model: content.model - highlightFollowsCurrentItem: true + highlightFollowsCurrentItem: false + contentX: currentIndex * width interactive: false - highlightMoveDuration: 0 orientation: ListView.Horizontal // Load all the indicator menus (a big number) cacheBuffer: 1073741823 diff -Nru unity8-8.15+17.04.20170308/qml/Panel/PanelBar.qml unity8-8.15+17.04.20170321/qml/Panel/PanelBar.qml --- unity8-8.15+17.04.20170308/qml/Panel/PanelBar.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Panel/PanelBar.qml 2017-03-21 10:55:51.000000000 +0000 @@ -30,8 +30,7 @@ property real lateralPosition: -1 property int alignment: Qt.AlignRight - property alias showRowTitle: row.showRowTitle - property alias rowTitle: row.rowTitle + property alias hideRow: row.hideRow property alias rowItemDelegate: row.delegate implicitWidth: flickable.contentWidth @@ -44,6 +43,22 @@ row.selectItemAt(mapped.x); } + function selectPreviousItem() { + if (!expanded) { + row.resetCurrentItem(); + } + row.selectPreviousItem(); + d.alignIndicators(); + } + + function selectNextItem() { + if (!expanded) { + row.resetCurrentItem(); + } + row.selectNextItem(); + d.alignIndicators(); + } + function setCurrentItemIndex(index) { if (!expanded) { row.resetCurrentItem(); diff -Nru unity8-8.15+17.04.20170308/qml/Panel/PanelItemRow.qml unity8-8.15+17.04.20170321/qml/Panel/PanelItemRow.qml --- unity8-8.15+17.04.20170308/qml/Panel/PanelItemRow.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Panel/PanelItemRow.qml 2017-03-21 10:55:51.000000000 +0000 @@ -20,11 +20,10 @@ Item { id: root - implicitWidth: showRowTitle && !expanded ? rowTitle != "" ? rowLabel.width : 0 : row.width + implicitWidth: row.width implicitHeight: units.gu(3) - property bool showRowTitle: false - property alias rowTitle: rowLabel.text + property bool hideRow: false property QtObject model: null property real overFlowWidth: width property bool expanded: false @@ -96,31 +95,57 @@ row.currentIndex = -1; } + function selectPreviousItem() { + var indexToSelect = currentItemIndex - 1; + while (indexToSelect >= 0) { + if (setCurrentItemIndex(indexToSelect)) + return; + indexToSelect = indexToSelect - 1; + } + } + + function selectNextItem() { + var indexToSelect = currentItemIndex + 1; + while (indexToSelect < row.contentItem.children.length) { + if (setCurrentItemIndex(indexToSelect)) + return; + indexToSelect = indexToSelect + 1; + } + } + function setCurrentItemIndex(index) { for (var i = 0; i < row.contentItem.children.length; i++) { var item = row.contentItem.children[i]; - if (item.hasOwnProperty("ownIndex") && item.ownIndex === index) { - if (currentItem !== item) row.currentIndex = index; - break; + if (item.hasOwnProperty("ownIndex") && item.ownIndex === index && item.enabled) { + if (currentItem !== item) { + row.currentIndex = index; + } + return true; } } + return false; } function selectItemAt(lateralPosition) { var item = indicatorAt(lateralPosition, 0); - if (item && item.opacity > 0) { + if (item && item.opacity > 0 && item.enabled) { row.currentIndex = item.ownIndex; } else { // Select default item. var searchIndex = lateralPosition >= width ? row.count - 1 : 0; for (var i = 0; i < row.contentItem.children.length; i++) { - if (row.contentItem.children[i].hasOwnProperty("ownIndex") && row.contentItem.children[i].ownIndex === searchIndex) { + if (row.contentItem.children[i].hasOwnProperty("ownIndex") && + row.contentItem.children[i].ownIndex === searchIndex && + row.contentItem.children[i].enabled) + { item = row.contentItem.children[i]; break; } } - if (currentItem !== item) row.currentIndex = item ? item.ownIndex : -1; + if (item && currentItem !== item) { + row.currentIndex = item.ownIndex; + } } } @@ -138,31 +163,12 @@ d.previousItem = currentItem; } - Label { - id: rowLabel - objectName: "panelTitle" - anchors { - left: parent.left - leftMargin: units.gu(1) - verticalCenter: parent.verticalCenter - } - width: implicitWidth + units.gu(2) - elide: Text.ElideRight - maximumLineCount: 1 - fontSize: "medium" - font.weight: Font.Medium - color: Theme.palette.selected.backgroundText - opacity: showRowTitle ? 1 : 0 - visible: opacity != 0 - Behavior on opacity { NumberAnimation { duration: UbuntuAnimation.SnapDuration } } - } - ListView { id: row objectName: "panelRow" orientation: ListView.Horizontal model: root.model - opacity: showRowTitle ? 0 : 1 + opacity: hideRow ? 0 : 1 // dont set visible on basis of opacity; otherwise width will not be calculated correctly anchors { top: parent.top diff -Nru unity8-8.15+17.04.20170308/qml/Panel/PanelMenuPage.qml unity8-8.15+17.04.20170321/qml/Panel/PanelMenuPage.qml --- unity8-8.15+17.04.20170308/qml/Panel/PanelMenuPage.qml 2017-03-08 09:48:50.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Panel/PanelMenuPage.qml 2017-03-21 10:55:35.000000000 +0000 @@ -63,7 +63,7 @@ if (model) { push(pageComponent, { "menuModel": model }); } - } else { + } else if (root.currentPage) { root.currentPage.reset(); } } @@ -192,6 +192,7 @@ if (item.hasOwnProperty("clicked")) { item.clicked.connect(function() { if (model.hasSubmenu) { + page.menuModel.aboutToShow(modelIndex); root.push(pageComponent, { "isSubmenu": true, "title": model.label.replace(/_|&/, ""), diff -Nru unity8-8.15+17.04.20170308/qml/Panel/PanelMenu.qml unity8-8.15+17.04.20170321/qml/Panel/PanelMenu.qml --- unity8-8.15+17.04.20170308/qml/Panel/PanelMenu.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Panel/PanelMenu.qml 2017-03-21 10:55:51.000000000 +0000 @@ -32,11 +32,12 @@ property real openedHeight: units.gu(71) property bool enableHint: true property bool showOnClick: true + property bool adjustDragHandleSizeToContents: true property color panelColor: theme.palette.normal.background + property real menuContentX: 0 property alias alignment: bar.alignment - property alias rowTitle: bar.rowTitle - property alias showRowTitle: bar.showRowTitle + property alias hideRow: bar.hideRow property alias rowItemDelegate: bar.rowItemDelegate property alias pageDelegate: content.pageDelegate @@ -45,7 +46,8 @@ readonly property bool partiallyOpened: unitProgress > 0 && unitProgress < 1.0 readonly property bool fullyClosed: unitProgress == 0 readonly property alias expanded: bar.expanded - readonly property int barWidth: Math.min(bar.width, bar.implicitWidth) + readonly property int barWidth: adjustDragHandleSizeToContents ? Math.min(bar.width, bar.implicitWidth) : bar.width + readonly property alias currentMenuIndex: bar.currentItemIndex signal showTapped() @@ -77,33 +79,42 @@ shown: false height: minimizedPanelHeight - clip: root.partiallyOpened onUnitProgressChanged: d.updateState() - // eater - MouseArea { - anchors.fill: content - hoverEnabled: true - acceptedButtons: Qt.AllButtons - onWheel: wheel.accepted = true; - enabled: root.state != "initial" - visible: content.visible - } - - MenuContent { - id: content - objectName: "menuContent" - + Item { anchors { left: parent.left right: parent.right top: bar.bottom + bottom: parent.bottom + } + clip: root.partiallyOpened + + // eater + MouseArea { + anchors.fill: content + hoverEnabled: true + acceptedButtons: Qt.AllButtons + onWheel: wheel.accepted = true; + enabled: root.state != "initial" + visible: content.visible + } + + MenuContent { + id: content + objectName: "menuContent" + + anchors { + left: parent.left + right: parent.right + top: parent.top + } + height: openedHeight - bar.height - handle.height + model: root.model + visible: root.unitProgress > 0 + currentMenuIndex: bar.currentItemIndex } - height: openedHeight - bar.height - handle.height - model: root.model - visible: root.unitProgress > 0 - currentMenuIndex: bar.currentItemIndex } Handle { @@ -142,10 +153,10 @@ Keys.onPressed: { if (event.key === Qt.Key_Left) { - bar.setCurrentItemIndex(bar.currentItemIndex - 1); + bar.selectPreviousItem(); event.accepted = true; } else if (event.key === Qt.Key_Right) { - bar.setCurrentItemIndex(bar.currentItemIndex + 1); + bar.selectNextItem(); event.accepted = true; } else if (event.key === Qt.Key_Escape) { root.hide(); @@ -217,8 +228,9 @@ objectName: "showDragHandle" anchors.bottom: parent.bottom anchors.left: alignment == Qt.AlignLeft ? parent.left : undefined + anchors.leftMargin: -root.menuContentX anchors.right: alignment == Qt.AlignRight ? parent.right : undefined - width: root.barWidth // show handle should only cover panel items. + width: root.barWidth + root.menuContentX // show handle should only cover panel items. height: minimizedPanelHeight direction: Direction.Downwards enabled: !root.shown && root.available diff -Nru unity8-8.15+17.04.20170308/qml/Panel/Panel.qml unity8-8.15+17.04.20170321/qml/Panel/Panel.qml --- unity8-8.15+17.04.20170308/qml/Panel/Panel.qml 2017-03-08 09:53:20.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Panel/Panel.qml 2017-03-21 10:55:51.000000000 +0000 @@ -38,6 +38,7 @@ property real expandedPanelHeight: units.gu(7) property real indicatorMenuWidth: width property real applicationMenuWidth: width + property alias applicationMenuContentX: __applicationMenus.menuContentX property alias applicationMenus: __applicationMenus property alias indicators: __indicators @@ -174,6 +175,10 @@ // let it fall through to the window decoration of the maximized window behind, if any mouse.accepted = false; } + var menubar = menuBarLoader.item; + if (menubar) { + menubar.invokeMenu(mouse); + } } Row { @@ -200,16 +205,17 @@ Loader { id: menuBarLoader + objectName: "menuBarLoader" height: parent.height enabled: d.enablePointerMenu opacity: d.showPointerMenu ? 1 : 0 visible: opacity != 0 Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } } - active: __applicationMenus.model + active: __applicationMenus.model && !callHint.visible width: parent.width - windowControlButtons.width - units.gu(2) - __indicators.barWidth - property bool menusRequested: menuBarLoader.item ? menuBarLoader.item.showRequested : false + readonly property bool menusRequested: menuBarLoader.item ? menuBarLoader.item.showRequested : false sourceComponent: MenuBar { id: bar @@ -231,6 +237,7 @@ } onDoubleClicked: PanelState.restoreClicked() + onPressed: mouse.accepted = false // let the parent mouse area handle this, so it can both unsnap window and show menu } } } @@ -250,6 +257,7 @@ PanelMenu { id: __applicationMenus + x: menuContentX model: registeredMenuModel.model width: root.applicationMenuWidth minimizedPanelHeight: root.minimizedPanelHeight @@ -258,6 +266,7 @@ alignment: Qt.AlignLeft enableHint: !callHint.active && !fullscreenMode showOnClick: false + adjustDragHandleSizeToContents: false panelColor: panelAreaBackground.color onShowTapped: { @@ -266,12 +275,12 @@ } } - showRowTitle: !expanded - rowTitle: PanelState.title + hideRow: !expanded rowItemDelegate: ActionItem { id: actionItem property int ownIndex: index objectName: "appMenuItem"+index + enabled: model.sensitive width: _title.width + units.gu(2) height: parent.height @@ -290,6 +299,13 @@ } pageDelegate: PanelMenuPage { + readonly property bool isCurrent: modelIndex == __applicationMenus.currentMenuIndex + onIsCurrentChanged: { + if (isCurrent && menuModel) { + menuModel.aboutToShow(modelIndex); + } + } + menuModel: __applicationMenus.model submenuIndex: modelIndex @@ -308,6 +324,28 @@ } } + Label { + id: rowLabel + objectName: "panelTitle" + anchors { + left: parent.left + leftMargin: units.gu(1) + right: __indicators.left + rightMargin: units.gu(1) + } + height: root.minimizedPanelHeight + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + maximumLineCount: 1 + fontSize: "medium" + font.weight: Font.Medium + color: Theme.palette.selected.backgroundText + opacity: __applicationMenus.visible && !__applicationMenus.expanded ? 1 : 0 + visible: opacity != 0 + Behavior on opacity { NumberAnimation { duration: UbuntuAnimation.SnapDuration } } + text: PanelState.title + } + PanelMenu { id: __indicators objectName: "indicators" diff -Nru unity8-8.15+17.04.20170308/qml/Shell.qml unity8-8.15+17.04.20170321/qml/Shell.qml --- unity8-8.15+17.04.20170308/qml/Shell.qml 2017-03-08 09:50:21.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Shell.qml 2017-03-21 10:55:51.000000000 +0000 @@ -426,7 +426,9 @@ id: showGreeterDelayed interval: 1 onTriggered: { - greeter.forceShow(); + // Go through the dbus service, because it has checks for whether + // we are even allowed to lock or not. + DBusUnitySessionService.PromptLock(); } } @@ -500,6 +502,7 @@ expandedPanelHeight: units.gu(7) indicatorMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width applicationMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width + applicationMenuContentX: launcher.lockedVisible ? launcher.panelWidth : 0 indicators { hides: [launcher] @@ -559,6 +562,7 @@ blurSource: greeter.shown ? greeter : stages topPanelHeight: panel.panelHeight drawerEnabled: !greeter.active + privateMode: greeter.active onShowDashHome: showHome() onLauncherApplicationSelected: { @@ -567,7 +571,14 @@ } onShownChanged: { if (shown) { - panel.indicators.hide() + panel.indicators.hide(); + panel.applicationMenus.hide(); + } + } + onDrawerShownChanged: { + if (drawerShown) { + panel.indicators.hide(); + panel.applicationMenus.hide(); } } onFocusChanged: { diff -Nru unity8-8.15+17.04.20170308/qml/Stage/ChildWindowTree.qml unity8-8.15+17.04.20170321/qml/Stage/ChildWindowTree.qml --- unity8-8.15+17.04.20170308/qml/Stage/ChildWindowTree.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Stage/ChildWindowTree.qml 2017-03-21 10:52:08.000000000 +0000 @@ -60,10 +60,6 @@ property real windowedX: x property real windowedY: y - - property real restoredX - property real restoredY - state: "restored" // end of API expected by MoveHandler //// diff -Nru unity8-8.15+17.04.20170308/qml/Stage/DecoratedWindow.qml unity8-8.15+17.04.20170321/qml/Stage/DecoratedWindow.qml --- unity8-8.15+17.04.20170308/qml/Stage/DecoratedWindow.qml 2017-03-08 09:53:20.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Stage/DecoratedWindow.qml 2017-03-21 10:54:22.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2016 Canonical, Ltd. + * Copyright (C) 2014-2017 Canonical, Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -72,6 +72,8 @@ readonly property Item clientAreaItem: applicationWindow + property alias altDragEnabled: altDragHandler.enabled + signal closeClicked() signal maximizeClicked() signal maximizeHorizontallyClicked() @@ -212,6 +214,7 @@ opacity: root.hasDecoration ? Math.min(1, root.showDecoration) : 0 Behavior on opacity { UbuntuNumberAnimation { } } + visible: opacity > 0 // don't eat input when decoration is fully translucent onPressed: root.decorationPressed(); onPressedChanged: moveHandler.handlePressedChanged(pressed, pressedButtons, mouseX, mouseY) @@ -266,6 +269,7 @@ acceptedButtons: Qt.LeftButton property bool dragging: false cursorShape: undefined // don't interfere with the cursor shape set by the underlying MirSurfaceItem + visible: enabled onPressed: { if (mouse.button == Qt.LeftButton && mouse.modifiers == Qt.AltModifier) { root.decorationPressed(); // to raise it diff -Nru unity8-8.15+17.04.20170308/qml/Stage/MoveHandler.qml unity8-8.15+17.04.20170321/qml/Stage/MoveHandler.qml --- unity8-8.15+17.04.20170308/qml/Stage/MoveHandler.qml 2017-03-08 09:53:20.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Stage/MoveHandler.qml 2017-03-21 10:52:08.000000000 +0000 @@ -188,11 +188,6 @@ priv.progress = 0; priv.resetEdges(); } - if ((target.state == "normal" || target.state == "restored") && priv.progress == 0) { - // save the x/y to restore to - target.restoredX = target.x; - target.restoredY = target.y; - } } function cancelDrag() { diff -Nru unity8-8.15+17.04.20170308/qml/Stage/Spread/Spread.qml unity8-8.15+17.04.20170321/qml/Stage/Spread/Spread.qml --- unity8-8.15+17.04.20170308/qml/Stage/Spread/Spread.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Stage/Spread/Spread.qml 2017-03-21 10:52:34.000000000 +0000 @@ -40,6 +40,7 @@ property real rightEdgeBreakPoint: Math.min(units.gu(40) / root.width, .35) signal leaveSpread() + signal closeCurrentApp(); // Calculated stuff readonly property int totalItemCount: model.count @@ -118,6 +119,13 @@ Behavior on opacity { UbuntuNumberAnimation { } } } + readonly property int itemCount: root.model.count + onItemCountChanged: { + if (highlightedIndex >= itemCount) { + highlightedIndex = itemCount - 1 + } + } + Keys.onPressed: { switch (event.key) { case Qt.Key_Left: @@ -130,6 +138,9 @@ selectNext(event.isAutoRepeat) event.accepted = true; break; + case Qt.Key_Q: + closeCurrentApp(); + break; case Qt.Key_Escape: highlightedIndex = -1 // Falling through intentionally diff -Nru unity8-8.15+17.04.20170308/qml/Stage/Stage.qml unity8-8.15+17.04.20170321/qml/Stage/Stage.qml --- unity8-8.15+17.04.20170308/qml/Stage/Stage.qml 2017-03-08 09:51:56.000000000 +0000 +++ unity8-8.15+17.04.20170321/qml/Stage/Stage.qml 2017-03-21 10:54:22.000000000 +0000 @@ -575,6 +575,12 @@ onLeaveSpread: { priv.goneToSpread = false; } + + onCloseCurrentApp: { + if (!appRepeater.itemAt(highlightedIndex).isDash) { + appRepeater.itemAt(highlightedIndex).close(); + } + } } Connections { @@ -753,6 +759,14 @@ normalHeight = appDelegate.height; } } + function updateRestoredGeometry() { + if (appDelegate.state == "normal" || appDelegate.state == "restored") { + // save the x/y to restore to + restoredX = appDelegate.x; + restoredY = appDelegate.y; + } + } + Connections { target: appDelegate onXChanged: appDelegate.updateNormalGeometry(); @@ -1302,6 +1316,10 @@ target: stageMaths animateX: !focusAnimation.running && itemIndex !== spreadItem.highlightedIndex } + PropertyChanges { + target: appDelegate.window + allowClientResize: false + } }, State { name: "stagedWithSideStage"; when: root.state == "stagedWithSideStage" @@ -1327,6 +1345,10 @@ target: resizeArea enabled: false } + PropertyChanges { + target: appDelegate.window + allowClientResize: false + } }, State { name: "maximized"; when: appDelegate.maximized && !appDelegate.minimized @@ -1598,6 +1620,7 @@ height: implicitHeight highlightSize: windowInfoItem.iconMargin / 2 boundsItem: boundariesForWindowPlacement + altDragEnabled: root.mode == "windowed" requestedWidth: appDelegate.requestedWidth requestedHeight: appDelegate.requestedHeight @@ -1626,7 +1649,7 @@ } onMinimizeClicked: { appDelegate.requestMinimize(); } onDecorationPressed: { appDelegate.activate(); } - onDecorationReleased: fakeRectangle.commit(); + onDecorationReleased: fakeRectangle.visible ? fakeRectangle.commit() : appDelegate.updateRestoredGeometry() property real angle: 0 Behavior on angle { enabled: priv.closingIndex >= 0; UbuntuNumberAnimation {} } @@ -1670,7 +1693,7 @@ onFakeMaximizeBottomLeftAnimationRequested: if (!appDelegate.maximizedBottomLeft) fakeRectangle.maximizeBottomLeft(amount, true); onFakeMaximizeBottomRightAnimationRequested: if (!appDelegate.maximizedBottomRight) fakeRectangle.maximizeBottomRight(amount, true); onStopFakeAnimation: fakeRectangle.stop(); - onDragReleased: fakeRectangle.commit(); + onDragReleased: fakeRectangle.visible ? fakeRectangle.commit() : appDelegate.updateRestoredGeometry() } WindowedFullscreenPolicy { diff -Nru unity8-8.15+17.04.20170308/src/CMakeLists.txt unity8-8.15+17.04.20170321/src/CMakeLists.txt --- unity8-8.15+17.04.20170308/src/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/src/CMakeLists.txt 2017-03-21 10:51:56.000000000 +0000 @@ -1,11 +1,13 @@ add_subdirectory(libunity8-private) pkg_check_modules(CONNECTIVITY REQUIRED connectivity-qt1) +pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt) include_directories( SYSTEM ${Qt5Gui_PRIVATE_INCLUDE_DIRS} ${Qt5Quick_PRIVATE_INCLUDE_DIRS} + ${GSETTINGS_QT_INCLUDE_DIRS} ${CONNECTIVITY_INCLUDE_DIRS} ) @@ -47,7 +49,7 @@ if (NOT "${ANDROID_PROPERTIES_INCLUDE_DIRS}" STREQUAL "") set_target_properties(${SHELL_APP} PROPERTIES INCLUDE_DIRECTORIES ${ANDROID_PROPERTIES_INCLUDE_DIRS}) endif() -target_link_libraries(${SHELL_APP} ${ANDROID_PROPERTIES_LDFLAGS} UbuntuGestures connectivity-qt1 unity8-private) +target_link_libraries(${SHELL_APP} ${ANDROID_PROPERTIES_LDFLAGS} ${GSETTINGS_QT_LDFLAGS} UbuntuGestures connectivity-qt1 unity8-private) if (ENABLE_TOUCH_EMULATION) target_link_libraries(${SHELL_APP} ${MOUSETOUCHADAPTOR_LIBS_LDFLAGS}) diff -Nru unity8-8.15+17.04.20170308/src/ShellApplication.cpp unity8-8.15+17.04.20170321/src/ShellApplication.cpp --- unity8-8.15+17.04.20170308/src/ShellApplication.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/src/ShellApplication.cpp 2017-03-21 10:51:56.000000000 +0000 @@ -21,6 +21,8 @@ #include #include +#include + #include // libandroid-properties @@ -75,6 +77,9 @@ bindtextdomain("unity8", translationDirectory().toUtf8().data()); textdomain("unity8"); + QScopedPointer gSettings(new QGSettings("com.canonical.Unity8")); + gSettings->reset(QStringLiteral("alwaysShowOsk")); + m_shellView = new ShellView(m_qmlEngine, &m_qmlArgs); if (parser.windowGeometry().isValid()) { diff -Nru unity8-8.15+17.04.20170308/tests/mocks/QMenuModel/unitymenumodel.cpp unity8-8.15+17.04.20170321/tests/mocks/QMenuModel/unitymenumodel.cpp --- unity8-8.15+17.04.20170308/tests/mocks/QMenuModel/unitymenumodel.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/QMenuModel/unitymenumodel.cpp 2017-03-21 10:56:09.000000000 +0000 @@ -18,6 +18,8 @@ #include "unitymenumodel.h" +#include + enum MenuRoles { LabelRole = Qt::DisplayRole + 1, SensitiveRole, @@ -35,7 +37,8 @@ }; UnityMenuModel::UnityMenuModel(QObject *parent) -: QAbstractListModel(parent) + : QAbstractListModel(parent) + , m_rowCountStatus(NoRequestMade) { } @@ -60,7 +63,7 @@ void UnityMenuModel::insertRow(int row, const QVariant& data) { - row = qMin(row, rowCount()); + row = qMin(row, m_modelData.count()); beginInsertRows(QModelIndex(), row, row); @@ -71,12 +74,12 @@ void UnityMenuModel::appendRow(const QVariant& data) { - insertRow(rowCount(), data); + insertRow(m_modelData.count(), data); } void UnityMenuModel::removeRow(int row) { - if (row < 0 || rowCount() <= row) { + if (row < 0 || m_modelData.count() <= row) { return; } @@ -133,6 +136,22 @@ int UnityMenuModel::rowCount(const QModelIndex&) const { + // Fake the rowCount to be 0 for a while (100ms) + // This emulates menus in real world that don't load immediately + if (m_rowCountStatus == TimerRunning) + return 0; + + if (m_rowCountStatus == NoRequestMade) { + UnityMenuModel *that = const_cast(this); + that->m_rowCountStatus = TimerRunning; + QTimer::singleShot(100, that, [that] { + that->beginInsertRows(QModelIndex(), 0, that->m_modelData.count() - 1); + that->m_rowCountStatus = TimerFinished; + that->endInsertRows(); + }); + return 0; + } + return m_modelData.count(); } @@ -273,6 +292,11 @@ Q_EMIT activated(rd[roleNames()[ActionRole]].toString()); } +void UnityMenuModel::aboutToShow(int index) +{ + Q_EMIT aboutToShowCalled(index); +} + void UnityMenuModel::changeState(int, const QVariant&) { } diff -Nru unity8-8.15+17.04.20170308/tests/mocks/QMenuModel/unitymenumodel.h unity8-8.15+17.04.20170321/tests/mocks/QMenuModel/unitymenumodel.h --- unity8-8.15+17.04.20170308/tests/mocks/QMenuModel/unitymenumodel.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/QMenuModel/unitymenumodel.h 2017-03-21 10:56:09.000000000 +0000 @@ -73,6 +73,7 @@ Q_INVOKABLE QVariant get(int row, const QByteArray &role); Q_INVOKABLE void activate(int index, const QVariant& parameter = QVariant()); + Q_INVOKABLE void aboutToShow(int index); Q_INVOKABLE void changeState(int index, const QVariant& parameter); void registerAction(UnityMenuAction* action); @@ -87,6 +88,7 @@ // Internal mock usage void modelDataChanged(); + void aboutToShowCalled(int index); void activated(const QString& action); @@ -101,6 +103,13 @@ QByteArray m_busName; QVariantMap m_actions; QByteArray m_menuObjectPath; + + enum RowCountStatus { + NoRequestMade, + TimerRunning, + TimerFinished + }; + RowCountStatus m_rowCountStatus; }; #endif // MOCK_UNITYMENUMODEL_H diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Unity/Application/MirSurface.cpp unity8-8.15+17.04.20170321/tests/mocks/Unity/Application/MirSurface.cpp --- unity8-8.15+17.04.20170308/tests/mocks/Unity/Application/MirSurface.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Unity/Application/MirSurface.cpp 2017-03-21 10:53:37.000000000 +0000 @@ -127,6 +127,10 @@ return m_name+"Id"; } +QString MirSurface::appId() const +{ + return m_name+"appId"; +} Mir::Type MirSurface::type() const { return m_type; diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Unity/Application/MirSurface.h unity8-8.15+17.04.20170321/tests/mocks/Unity/Application/MirSurface.h --- unity8-8.15+17.04.20170308/tests/mocks/Unity/Application/MirSurface.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Unity/Application/MirSurface.h 2017-03-21 10:53:55.000000000 +0000 @@ -58,6 +58,7 @@ QString name() const override; QString persistentId() const override; + QString appId() const override; QPoint position() const override { return m_position; } @@ -92,6 +93,9 @@ bool confinesMousePointer() const override { return false; } + bool allowClientResize() const override { return true; } + void setAllowClientResize(bool) override {} + QPoint requestedPosition() const override { return m_requestedPosition; } void setRequestedPosition(const QPoint &) override; diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Unity/Application/MirSurfaceListModel.cpp unity8-8.15+17.04.20170321/tests/mocks/Unity/Application/MirSurfaceListModel.cpp --- unity8-8.15+17.04.20170308/tests/mocks/Unity/Application/MirSurfaceListModel.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Unity/Application/MirSurfaceListModel.cpp 2017-03-21 10:54:05.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Canonical, Ltd. + * Copyright (C) 2016-2017 Canonical, Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ #include "MirSurfaceListModel.h" #include "ApplicationInfo.h" -#include "MirSurface.h" +#include #define MIRSURFACELISTMODEL_DEBUG 0 @@ -46,14 +46,14 @@ return QVariant(); if (role == SurfaceRole) { - MirSurface *surface = m_surfaceList.at(index.row()); + MirSurfaceInterface *surface = m_surfaceList.at(index.row()); return QVariant::fromValue(static_cast(surface)); } else { return QVariant(); } } -void MirSurfaceListModel::raise(MirSurface *surface) +void MirSurfaceListModel::raise(MirSurfaceInterface *surface) { DEBUG_MSG("(" << surface << ")"); int i = m_surfaceList.indexOf(surface); @@ -62,7 +62,7 @@ } } -void MirSurfaceListModel::addSurface(MirSurface *surface) +void MirSurfaceListModel::addSurface(MirSurfaceInterface *surface) { DEBUG_MSG("(" << surface << ")"); beginInsertRows(QModelIndex(), 0, 0); @@ -73,7 +73,7 @@ Q_EMIT firstChanged(); } -void MirSurfaceListModel::connectSurface(MirSurface *surface) +void MirSurfaceListModel::connectSurface(MirSurfaceInterface *surface) { connect(surface, &QObject::destroyed, this, [this, surface](){ this->removeSurface(surface); }); connect(surface, &MirSurfaceInterface::focusedChanged, this, [this, surface](bool surfaceFocused){ @@ -83,7 +83,7 @@ }); } -void MirSurfaceListModel::removeSurface(MirSurface *surface) +void MirSurfaceListModel::removeSurface(MirSurfaceInterface *surface) { int i = m_surfaceList.indexOf(surface); if (i != -1) { diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Unity/Application/MirSurfaceListModel.h unity8-8.15+17.04.20170321/tests/mocks/Unity/Application/MirSurfaceListModel.h --- unity8-8.15+17.04.20170308/tests/mocks/Unity/Application/MirSurfaceListModel.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Unity/Application/MirSurfaceListModel.h 2017-03-21 10:54:05.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 Canonical, Ltd. + * Copyright (C) 2016-2017 Canonical, Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,8 +23,6 @@ #include #include -class MirSurface; - class MirSurfaceListModel : public unity::shell::application::MirSurfaceListInterface { Q_OBJECT @@ -38,17 +36,17 @@ int rowCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex& index, int role) const override; - void addSurface(MirSurface *surface); - void removeSurface(MirSurface *surface); + void addSurface(unity::shell::application::MirSurfaceInterface *surface); + void removeSurface(unity::shell::application::MirSurfaceInterface *surface); - bool contains(MirSurface *surface) const { return m_surfaceList.contains(surface); } + bool contains(unity::shell::application::MirSurfaceInterface *surface) const { return m_surfaceList.contains(surface); } private: - void raise(MirSurface *surface); + void raise(unity::shell::application::MirSurfaceInterface *surface); void moveSurface(int from, int to); - void connectSurface(MirSurface *surface); + void connectSurface(unity::shell::application::MirSurfaceInterface *surface); - QList m_surfaceList; + QList m_surfaceList; }; Q_DECLARE_METATYPE(MirSurfaceListModel*) diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Unity/Launcher/MockLauncherModel.h unity8-8.15+17.04.20170321/tests/mocks/Unity/Launcher/MockLauncherModel.h --- unity8-8.15+17.04.20170308/tests/mocks/Unity/Launcher/MockLauncherModel.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Unity/Launcher/MockLauncherModel.h 2017-03-21 10:53:26.000000000 +0000 @@ -28,7 +28,7 @@ class MockLauncherModel: public LauncherModelInterface { - Q_OBJECT + Q_OBJECT public: MockLauncherModel(QObject* parent = 0); diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Unity/Launcher/MockQuickListModel.cpp unity8-8.15+17.04.20170321/tests/mocks/Unity/Launcher/MockQuickListModel.cpp --- unity8-8.15+17.04.20170308/tests/mocks/Unity/Launcher/MockQuickListModel.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Unity/Launcher/MockQuickListModel.cpp 2017-03-21 10:53:26.000000000 +0000 @@ -39,6 +39,8 @@ return index.row() == 1 ? false : true; case RoleHasSeparator: return index.row() <= 1 ? true : false; + case RoleIsPrivate: + return index.row() == 4 ? true : false; } return QVariant(); } @@ -46,5 +48,5 @@ int MockQuickListModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent) - return 4; + return 5; } diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Unity/Launcher/MockQuickListModel.h unity8-8.15+17.04.20170321/tests/mocks/Unity/Launcher/MockQuickListModel.h --- unity8-8.15+17.04.20170308/tests/mocks/Unity/Launcher/MockQuickListModel.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Unity/Launcher/MockQuickListModel.h 2017-03-21 10:53:26.000000000 +0000 @@ -27,6 +27,8 @@ class MockQuickListModel: public QuickListModelInterface { Q_OBJECT + Q_PROPERTY(int count READ rowCount) + public: MockQuickListModel(QObject *parent = 0); diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Utils/CMakeLists.txt unity8-8.15+17.04.20170321/tests/mocks/Utils/CMakeLists.txt --- unity8-8.15+17.04.20170308/tests/mocks/Utils/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Utils/CMakeLists.txt 2017-03-21 10:53:26.000000000 +0000 @@ -27,6 +27,7 @@ ${CMAKE_SOURCE_DIR}/plugins/Utils/appdrawerproxymodel.cpp ${CMAKE_SOURCE_DIR}/plugins/Utils/tabfocusfence.cpp ${CMAKE_SOURCE_DIR}/plugins/Utils/expressionfiltermodel.cpp + ${CMAKE_SOURCE_DIR}/plugins/Utils/quicklistproxymodel.cpp ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h @@ -35,6 +36,7 @@ ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/AppDrawerModelInterface.h ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h + ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h constants.cpp plugin.cpp windowstatestorage.cpp diff -Nru unity8-8.15+17.04.20170308/tests/mocks/Utils/plugin.cpp unity8-8.15+17.04.20170321/tests/mocks/Utils/plugin.cpp --- unity8-8.15+17.04.20170308/tests/mocks/Utils/plugin.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/mocks/Utils/plugin.cpp 2017-03-21 10:53:26.000000000 +0000 @@ -43,6 +43,7 @@ #include #include #include +#include static QObject *createWindowStateStorage(QQmlEngine *engine, QJSEngine *scriptEngine) { @@ -88,4 +89,5 @@ qmlRegisterType(uri, 0, 1, "AppDrawerProxyModel"); qmlRegisterType(uri, 0, 1, "TabFocusFence"); qmlRegisterType(uri, 0, 1, "ExpressionFilterModel"); + qmlRegisterType(uri, 0, 1, "QuickListProxyModel"); } diff -Nru unity8-8.15+17.04.20170308/tests/plugins/CMakeLists.txt unity8-8.15+17.04.20170321/tests/plugins/CMakeLists.txt --- unity8-8.15+17.04.20170308/tests/plugins/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/CMakeLists.txt 2017-03-21 10:54:05.000000000 +0000 @@ -9,4 +9,5 @@ add_subdirectory(Ubuntu) add_subdirectory(Unity) add_subdirectory(Utils) +add_subdirectory(WindowManager) add_subdirectory(Wizard) diff -Nru unity8-8.15+17.04.20170308/tests/plugins/Unity/Launcher/CMakeLists.txt unity8-8.15+17.04.20170321/tests/plugins/Unity/Launcher/CMakeLists.txt --- unity8-8.15+17.04.20170308/tests/plugins/Unity/Launcher/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/Unity/Launcher/CMakeLists.txt 2017-03-21 10:53:37.000000000 +0000 @@ -34,6 +34,9 @@ ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h ${LAUNCHER_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h ) target_link_libraries(launchermodeltestExec diff -Nru unity8-8.15+17.04.20170308/tests/plugins/Unity/Launcher/launchermodeltest.cpp unity8-8.15+17.04.20170321/tests/plugins/Unity/Launcher/launchermodeltest.cpp --- unity8-8.15+17.04.20170308/tests/plugins/Unity/Launcher/launchermodeltest.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/Unity/Launcher/launchermodeltest.cpp 2017-03-21 10:53:55.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright 2013-2016 Canonical Ltd. + * Copyright 2013-2017 Canonical Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -17,6 +17,7 @@ // unity-api #include #include +#include #include "launcheritem.h" #include "launchermodel.h" @@ -37,11 +38,76 @@ namespace unityapi = unity::shell::application; // This is a mock, specifically to test the LauncherModel +class MockSurface: public unity::shell::application::MirSurfaceInterface +{ + Q_OBJECT +public: + MockSurface(const QString &id, const QString &appId, QObject* parent): unityapi::MirSurfaceInterface(parent), m_id(id), m_appId(appId) {} + Mir::Type type() const override { return Mir::NormalType;} + QString name() const override { return QStringLiteral("mock surface"); } + QString persistentId() const override { return m_id; } + QString appId() const override { return m_appId; } + QPoint position() const override { return QPoint(); } + QSize size() const override { return QSize(); } + void resize(const QSize &size) override { Q_UNUSED(size) } + void resize(int width, int height) override { Q_UNUSED(width); Q_UNUSED(height) } + Mir::State state() const override { return Mir::RestoredState; } + bool live() const override { return true; } + bool visible() const override { return true; } + Mir::OrientationAngle orientationAngle() const override { return Mir::Angle0; } + void setOrientationAngle(Mir::OrientationAngle angle) override { Q_UNUSED(angle); } + int minimumWidth() const override { return 0; } + int minimumHeight() const override { return 0; } + int maximumWidth() const override { return 0; } + int maximumHeight() const override { return 0; } + int widthIncrement() const override { return 0; } + int heightIncrement() const override { return 0; } + void setKeymap(const QString &) override {} + Mir::ShellChrome shellChrome() const override { return Mir::NormalChrome; } + QString keymap() const override { return QStringLiteral("de_DE"); } + bool focused() const override { return true; } + QRect inputBounds() const override { return QRect(); } + bool confinesMousePointer() const override { return false; } + bool allowClientResize() const override { return true; } + void setAllowClientResize(bool) override {} + QPoint requestedPosition() const override { return QPoint(); } + void setRequestedPosition(const QPoint &) override {} + MirSurfaceInterface* parentSurface() const override { return nullptr; } + MirSurfaceListInterface* childSurfaceList() const override { return nullptr; } + void close() override {} + void activate() override {} + void requestState(Mir::State) override {} + +private: + QString m_id; + QString m_appId; +}; + +class MockSurfaceList: public unity::shell::application::MirSurfaceListInterface +{ + Q_OBJECT +public: + MockSurfaceList(QObject *parent): unityapi::MirSurfaceListInterface(parent) {} + int rowCount(const QModelIndex & = QModelIndex()) const override { return m_list.count(); } + QVariant data(const QModelIndex &, int) const override { return QVariant(); } + Q_INVOKABLE MirSurfaceInterface* get(int index) override { return m_list.at(index); } + void append(MirSurfaceInterface* surface) { + beginInsertRows(QModelIndex(), m_list.count(), m_list.count()); + m_list.append(surface); + endInsertRows(); + } +private: + QList m_list; + +}; + class MockApp: public unity::shell::application::ApplicationInfoInterface { Q_OBJECT public: - MockApp(const QString &appId, QObject *parent = 0): ApplicationInfoInterface(appId, parent), m_appId(appId), m_focused(false) { } + MockApp(const QString &appId, QObject *parent = 0): ApplicationInfoInterface(appId, parent), m_appId(appId), m_focused(false) { + m_surfaces = new MockSurfaceList(this); + } RequestedState requestedState() const override { return RequestedRunning; } void setRequestedState(RequestedState) override {} @@ -64,10 +130,10 @@ void setExemptFromLifecycle(bool) override {} QSize initialSurfaceSize() const override { return QSize(); } void setInitialSurfaceSize(const QSize &) override {} - MirSurfaceListInterface* surfaceList() const override { return nullptr; } + MirSurfaceListInterface* surfaceList() const override { return m_surfaces; } MirSurfaceListInterface* promptSurfaceList() const override { return nullptr; } - int surfaceCount() const override { return m_surfaceCount; } - void setSurfaceCount(int count) { m_surfaceCount = count; Q_EMIT surfaceCountChanged(count); } + int surfaceCount() const override { return m_surfaces->count(); } + void setSurfaces(MockSurfaceList* surfaces) { m_surfaces = surfaces; Q_EMIT surfaceCountChanged(m_surfaces->count()); } void close() override {} // Methods used for mocking (not in the interface) @@ -75,7 +141,7 @@ private: QString m_appId; bool m_focused; - int m_surfaceCount = 0; + MockSurfaceList *m_surfaces; }; // This is a mock, specifically to test the LauncherModel @@ -748,8 +814,20 @@ QCOMPARE(launcherModel->get(0)->surfaceCount(), 0); MockApp *app = qobject_cast(appManager->findApplication(appId)); - app->setSurfaceCount(1); + MockSurfaceList* surfaces = new MockSurfaceList(appManager); + surfaces->append(new MockSurface("foobar", "foobar", surfaces)); + app->setSurfaces(surfaces); QCOMPARE(launcherModel->get(0)->surfaceCount(), 1); + + // Make sure the new surface appears in the quicklist + QuickListModel *quickList = qobject_cast(launcherModel->get(0)->quickList()); + bool found = false; + for (int i = 0; i < quickList->rowCount(); ++i) { + if (quickList->get(i).actionId() == "surface_foobar") { + found = true; + } + } + QCOMPARE(found, true); } }; diff -Nru unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/CMakeLists.txt unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/CMakeLists.txt --- unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/CMakeLists.txt 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/CMakeLists.txt 2017-03-21 10:51:37.000000000 +0000 @@ -33,6 +33,17 @@ DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/Unity/Session" ) +### Preload +add_library(SessionBackendTestPreload SHARED + preload.c +) +target_link_libraries(SessionBackendTestPreload + ${GLIB_LIBRARIES} + ) +install(TARGETS SessionBackendTestPreload + DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/Unity/Session" + ) + ### SessionBackendTest add_executable(sessionbackendtestExec sessionbackendtest.cpp @@ -48,7 +59,8 @@ ) add_unity8_unittest(SessionBackend dbus-test-runner - ENVIRONMENT XDG_SESSION_PATH=/session + ENVIRONMENT LD_PRELOAD=$ + XDG_SESSION_PATH=/session ARG_PREFIX "--parameter" ARGS --task $ diff -Nru unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/interfaces.xml unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/interfaces.xml --- unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/interfaces.xml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/interfaces.xml 2017-03-21 10:51:24.000000000 +0000 @@ -7,6 +7,18 @@ + + + + + + + + + + + + diff -Nru unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/LogindServer.cpp unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/LogindServer.cpp --- unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/LogindServer.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/LogindServer.cpp 2017-03-21 10:51:24.000000000 +0000 @@ -27,6 +27,16 @@ return QDBusObjectPath("/logindsession"); } +void LogindServer::Reboot(bool interactive) +{ + Q_EMIT RebootCalled(interactive); +} + +void LogindServer::PowerOff(bool interactive) +{ + Q_EMIT PowerOffCalled(interactive); +} + void LogindServer::MockEmitUnlock() { Q_EMIT Unlock(); diff -Nru unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/LogindServer.h unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/LogindServer.h --- unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/LogindServer.h 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/LogindServer.h 2017-03-21 10:51:24.000000000 +0000 @@ -31,6 +31,8 @@ public Q_SLOTS: QDBusObjectPath GetSessionByPID(quint32 pid); + void Reboot(bool interactive); + void PowerOff(bool interactive); void MockEmitUnlock(); // only in mock @@ -38,6 +40,9 @@ void Lock(); void Unlock(); void PrepareForSleep(); + + void RebootCalled(bool interactive); // only in mock + void PowerOffCalled(bool interactive); // only in mock }; #endif diff -Nru unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/preload.c unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/preload.c --- unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/preload.c 1970-01-01 00:00:00.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/preload.c 2017-03-21 10:51:37.000000000 +0000 @@ -0,0 +1,43 @@ +/* + * Copyright © 2017 Canonical Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +const gchar *g_get_user_name(void) +{ + // The normal glib version parses pwent entries + return g_getenv("TEST_USER"); +} + +struct group *getgrnam(const char *group_name) +{ + static struct group rv = {NULL, NULL, 0, NULL}; + + g_free(rv.gr_name); + g_strfreev(rv.gr_mem); + + rv.gr_name = g_strdup(group_name); + rv.gr_passwd = NULL; + rv.gr_gid = 9999; + rv.gr_mem = NULL; + if (g_strcmp0(group_name, "nopasswdlogin") == 0) { + rv.gr_mem = g_strsplit(g_getenv("TEST_NOPASSWD_USERS"), ",", 0); + } + return &rv; +} diff -Nru unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/sessionbackendtest.cpp unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/sessionbackendtest.cpp --- unity8-8.15+17.04.20170308/tests/plugins/Unity/Session/sessionbackendtest.cpp 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/Unity/Session/sessionbackendtest.cpp 2017-03-21 10:51:37.000000000 +0000 @@ -53,6 +53,11 @@ QDBusConnection::sessionBus()); } + void init() { + qputenv("TEST_USER", "testuser"); + qputenv("TEST_NOPASSWD_USERS", ""); + } + void testUnitySessionLogoutRequested_data() { QTest::addColumn("method"); QTest::addColumn("signal"); @@ -81,7 +86,99 @@ QTRY_COMPARE(spy.count(), 1); } - void testGnomeSessionWrapper_data() { + void testGnomeSessionWrapperWithoutConfirmation_data() { + QTest::addColumn("method"); + QTest::addColumn("signal"); + + QTest::newRow("Reboot") << "RequestReboot" << SIGNAL(RebootCalled(bool)); + QTest::newRow("Shutdown") << "RequestShutdown" << SIGNAL(PowerOffCalled(bool)); + } + + void testGnomeSessionWrapperWithoutConfirmation() { + QFETCH(QString, method); + QFETCH(QString, signal); + + DBusUnitySessionService dbusUnitySessionService; + DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper; + QCoreApplication::processEvents(); // to let the services register on DBus + + QDBusInterface login1Interface("org.freedesktop.login1", + "/logindsession", + "org.freedesktop.login1.Manager"); + QSignalSpy spy(&login1Interface, signal.toUtf8().data()); + + QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager", + "/org/gnome/SessionManager", + "org.gnome.SessionManager", + QDBusConnection::sessionBus()); + QVERIFY(dbusGnomeSessionWrapper.isValid()); + + QDBusReply reply = dbusGnomeSessionWrapper.call(method); + QVERIFY(reply.isValid()); + QTRY_COMPARE(spy.count(), 1); + } + + void testGnomeSessionWrapperWithConfirmation_data() { + QTest::addColumn("method"); + QTest::addColumn("signal"); + + QTest::newRow("Reboot") << "Reboot" << SIGNAL(RebootRequested(bool)); + QTest::newRow("Shutdown") << "Shutdown" << SIGNAL(ShutdownRequested(bool)); + } + + void testGnomeSessionWrapperWithConfirmation() { + QFETCH(QString, method); + QFETCH(QString, signal); + + DBusUnitySessionService dbusUnitySessionService; + DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper; + QCoreApplication::processEvents(); // to let the services register on DBus + + QSignalSpy spy(&dbusUnitySessionService, signal.toUtf8().data()); + + QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager", + "/org/gnome/SessionManager", + "org.gnome.SessionManager", + QDBusConnection::sessionBus()); + QVERIFY(dbusGnomeSessionWrapper.isValid()); + + QDBusReply reply = dbusGnomeSessionWrapper.call(method); + QVERIFY(reply.isValid()); + QCOMPARE(spy.count(), 1); + } + + void testGnomeSessionWrapperLogout_data() { + QTest::addColumn("mode"); + QTest::addColumn("signal"); + + QTest::newRow("Logout") << 0 << SIGNAL(LogoutRequested(bool)); + QTest::newRow("LogoutNoDialog") << 1 << SIGNAL(LogoutReady()); + QTest::newRow("LogoutNoInhibits") << 2 << SIGNAL(LogoutReady()); + QTest::newRow("LogoutNoDialogNoInhibits") << 3 << SIGNAL(LogoutReady()); + } + + void testGnomeSessionWrapperLogout() { + QFETCH(int, mode); + QFETCH(QString, signal); + + DBusUnitySessionService dbusUnitySessionService; + DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper; + QCoreApplication::processEvents(); // to let the services register on DBus + + QSignalSpy spy(&dbusUnitySessionService, signal.toUtf8().data()); + + QDBusInterface dbusGnomeSessionWrapper("org.gnome.SessionManager", + "/org/gnome/SessionManager", + "org.gnome.SessionManager", + QDBusConnection::sessionBus()); + QVERIFY(dbusGnomeSessionWrapper.isValid()); + + QDBusReply reply = dbusGnomeSessionWrapper.call("Logout", (quint32)mode); + QVERIFY(reply.isValid()); + QCOMPARE(spy.count(), 1); + } + + void testGnomeSessionDialogWrapper_data() { QTest::addColumn("method"); QTest::addColumn("signal"); @@ -90,7 +187,7 @@ QTest::newRow("Reboot") << (uint)Action::REBOOT << "RebootRequested(bool)"; } - void testGnomeSessionWrapper() { + void testGnomeSessionDialogWrapper() { QFETCH(uint, method); QFETCH(QString, signal); @@ -102,7 +199,7 @@ // .. because QSignalSpy checks the signal signature like this: "if (((aSignal[0] - '0') & 0x03) != QSIGNAL_CODE)" QSignalSpy spy(&dbusUnitySessionService, qPrintable(signal.prepend(QSIGNAL_CODE))); - DBusGnomeSessionManagerWrapper dbusGnomeSessionManagerWrapper; + DBusGnomeSessionManagerDialogWrapper dbusGnomeSessionManagerDialogWrapper; QCoreApplication::processEvents(); // to let the service register on DBus QDBusInterface dbusGnomeSessionWrapper("com.canonical.Unity", @@ -138,14 +235,7 @@ void testUserName() { DBusUnitySessionService dbusUnitySessionService; - QCoreApplication::processEvents(); // to let the service register on DBus - - QProcess * proc = new QProcess(this); - proc->start("id -un", QProcess::ReadOnly); - proc->waitForFinished(); - const QByteArray out = proc->readAll().trimmed(); - - QCOMPARE(dbusUnitySessionService.UserName(), QString::fromUtf8(out)); + QCOMPARE(dbusUnitySessionService.UserName(), QString("testuser")); } void testRealName() { @@ -162,6 +252,35 @@ } } + void testCanLock() { + DBusUnitySessionService dbusUnitySessionService; + + qputenv("TEST_USER", "testuser"); + QVERIFY(dbusUnitySessionService.CanLock()); + + qputenv("TEST_USER", "guest-abcdef"); // guest-* can't lock + QVERIFY(!dbusUnitySessionService.CanLock()); + + qputenv("TEST_USER", "testuser"); + qputenv("TEST_NOPASSWD_USERS", "testuser"); // nopasswdlogin can't lock + QVERIFY(!dbusUnitySessionService.CanLock()); + } + + void testPromptLockRespectsCanLock() { + DBusUnitySessionService dbusUnitySessionService; + + QSignalSpy spy(&dbusUnitySessionService, SIGNAL(lockRequested())); + QVERIFY(dbusUnitySessionService.CanLock()); + dbusUnitySessionService.PromptLock(); + QCOMPARE(spy.count(), 1); + + spy.clear(); + qputenv("TEST_USER", "guest-abcdef"); + QVERIFY(!dbusUnitySessionService.CanLock()); + dbusUnitySessionService.PromptLock(); + QCOMPARE(spy.count(), 0); + } + private: QDBusInterface *dbusUnitySession; }; diff -Nru unity8-8.15+17.04.20170308/tests/plugins/WindowManager/CMakeLists.txt unity8-8.15+17.04.20170321/tests/plugins/WindowManager/CMakeLists.txt --- unity8-8.15+17.04.20170308/tests/plugins/WindowManager/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/WindowManager/CMakeLists.txt 2017-03-21 10:54:05.000000000 +0000 @@ -0,0 +1,34 @@ +include_directories( + ${CMAKE_SOURCE_DIR}/plugins/WindowManager + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_SOURCE_DIR}/tests/mocks + ) + +add_executable(TopLevelWindowModelTestExec + tst_TopLevelWindowModel.cpp + UnityApplicationMocks.h + + ${CMAKE_SOURCE_DIR}/tests/mocks/Unity/Application/MirSurfaceListModel.cpp + + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/Mir.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/MirSurfaceListInterface.h + ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/SurfaceManagerInterface.h + ) +qt5_use_modules(TopLevelWindowModelTestExec Test Core Gui Qml Quick) + +target_link_libraries(TopLevelWindowModelTestExec windowmanager-qml) + +install(TARGETS TopLevelWindowModelTestExec + DESTINATION "${SHELL_PRIVATE_LIBDIR}/tests/plugins/WindowManager" +) + +# To find libwindowmanager-qml.so +set_target_properties(TopLevelWindowModelTestExec PROPERTIES + INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_PRIVATE_LIBDIR}") + +add_unity8_unittest(TopLevelWindowModel TopLevelWindowModelTestExec + ENVIRONMENT LD_LIBRARY_PATH=${UNITY_PLUGINPATH}/WindowManager +) diff -Nru unity8-8.15+17.04.20170308/tests/plugins/WindowManager/tst_TopLevelWindowModel.cpp unity8-8.15+17.04.20170321/tests/plugins/WindowManager/tst_TopLevelWindowModel.cpp --- unity8-8.15+17.04.20170308/tests/plugins/WindowManager/tst_TopLevelWindowModel.cpp 1970-01-01 00:00:00.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/WindowManager/tst_TopLevelWindowModel.cpp 2017-03-21 10:54:05.000000000 +0000 @@ -0,0 +1,130 @@ +/* + * Copyright (C) 2017 Canonical, Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include + +// WindowManager plugin +#include +#include + +#include "UnityApplicationMocks.h" + +class tst_TopLevelWindowModel : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + void init(); // called right before each and every test function is executed + void cleanup(); // called right after each and every test function is executed + + void singleSurfaceStartsHidden(); + void secondSurfaceIsHidden(); + +private: + ApplicationManager *applicationManager{nullptr}; + SurfaceManager *surfaceManager{nullptr}; + TopLevelWindowModel *topLevelWindowModel{nullptr}; +}; + +void tst_TopLevelWindowModel::init() +{ + applicationManager = new ApplicationManager; + surfaceManager = new SurfaceManager; + + topLevelWindowModel = new TopLevelWindowModel; + topLevelWindowModel->setApplicationManager(applicationManager); + topLevelWindowModel->setSurfaceManager(surfaceManager); +} + +void tst_TopLevelWindowModel::cleanup() +{ + delete topLevelWindowModel; + topLevelWindowModel = nullptr; + + delete surfaceManager; + surfaceManager = nullptr; + + delete applicationManager; + applicationManager = nullptr; +} + +void tst_TopLevelWindowModel::singleSurfaceStartsHidden() +{ + QCOMPARE(topLevelWindowModel->rowCount(), 0); + + auto application = static_cast(applicationManager->startApplication(QString("hello-world"), QStringList())); + + QCOMPARE(topLevelWindowModel->rowCount(), 1); + QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)nullptr); + + auto surface = new MirSurface; + surface->m_state = Mir::HiddenState; + application->m_surfaceList.addSurface(surface); + Q_EMIT surfaceManager->surfaceCreated(surface); + + QCOMPARE(topLevelWindowModel->rowCount(), 1); + // not showing the surface as it's still hidden + QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)nullptr); + + surface->requestState(Mir::RestoredState); + + QCOMPARE(topLevelWindowModel->rowCount(), 1); + // Now that the surface is no longer hidden, TopLevelWindowModel should expose it. + QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)surface); +} + +void tst_TopLevelWindowModel::secondSurfaceIsHidden() +{ + QCOMPARE(topLevelWindowModel->rowCount(), 0); + + auto application = static_cast(applicationManager->startApplication(QString("hello-world"), QStringList())); + + QCOMPARE(topLevelWindowModel->rowCount(), 1); + QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)nullptr); + + auto firstSurface = new MirSurface; + application->m_surfaceList.addSurface(firstSurface); + Q_EMIT surfaceManager->surfaceCreated(firstSurface); + + QCOMPARE(topLevelWindowModel->rowCount(), 1); + QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)firstSurface); + + auto secondSurface = new MirSurface; + secondSurface->m_state = Mir::HiddenState; + application->m_surfaceList.addSurface(secondSurface); + Q_EMIT surfaceManager->surfaceCreated(secondSurface); + + // still only the first surface is exposed by TopLevelWindowModel + QCOMPARE(topLevelWindowModel->rowCount(), 1); + QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)firstSurface); + + secondSurface->requestState(Mir::RestoredState); + + // now the second surface finally shows up + QCOMPARE(topLevelWindowModel->rowCount(), 2); + QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)secondSurface); + QCOMPARE((void*)topLevelWindowModel->windowAt(1)->surface(), (void*)firstSurface); + + secondSurface->requestState(Mir::HiddenState); + + // and it's gone again + QCOMPARE(topLevelWindowModel->rowCount(), 1); + QCOMPARE((void*)topLevelWindowModel->windowAt(0)->surface(), (void*)firstSurface); +} + +QTEST_MAIN(tst_TopLevelWindowModel) + +#include "tst_TopLevelWindowModel.moc" diff -Nru unity8-8.15+17.04.20170308/tests/plugins/WindowManager/UnityApplicationMocks.h unity8-8.15+17.04.20170321/tests/plugins/WindowManager/UnityApplicationMocks.h --- unity8-8.15+17.04.20170308/tests/plugins/WindowManager/UnityApplicationMocks.h 1970-01-01 00:00:00.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/plugins/WindowManager/UnityApplicationMocks.h 2017-03-21 10:54:05.000000000 +0000 @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2017 Canonical, Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef UNITYAPPLICATIONMOCKS_H +#define UNITYAPPLICATIONMOCKS_H + +#include +#include +#include +#include + +// from tests/mocks +#include + +using namespace unity::shell::application; + +class MirSurface : public MirSurfaceInterface +{ + Q_OBJECT +public: + Mir::Type type() const override { return m_type; } + QString name() const override { return QString("foo"); } + QString persistentId() const override { return QString("a-b-c-my-id"); } + QString appId() const override { return QString(); } + QPoint position() const override { return QPoint(); } + QSize size() const override { return QSize(); } + void resize(int, int) override {} + void resize(const QSize &) override {} + Mir::State state() const override { return m_state; } + bool live() const override { return m_live; } + bool visible() const override { return true; } + Mir::OrientationAngle orientationAngle() const override { return Mir::Angle0; } + void setOrientationAngle(Mir::OrientationAngle) override {} + + int minimumWidth() const override { return 0; } + int minimumHeight() const override { return 0; } + int maximumWidth() const override { return 0; } + int maximumHeight() const override { return 0; } + int widthIncrement() const override { return 0; } + int heightIncrement() const override { return 0; } + + void setKeymap(const QString &) override {} + QString keymap() const override { return QString(); } + Mir::ShellChrome shellChrome() const override { return Mir::NormalChrome; } + bool focused() const override { return true; } + QRect inputBounds() const override { return QRect(); } + bool confinesMousePointer() const override { return false; } + bool allowClientResize() const override { return true; } + void setAllowClientResize(bool) override {} + QPoint requestedPosition() const override { return QPoint(); } + void setRequestedPosition(const QPoint &) override {} + MirSurfaceInterface* parentSurface() const override { return nullptr; } + unity::shell::application::MirSurfaceListInterface* childSurfaceList() const override { return nullptr; } + void close() override {} + void activate() override {} + +public Q_SLOTS: + void requestState(Mir::State value) override + { + if (m_state != value) { + m_state = value; + Q_EMIT stateChanged(m_state); + } + } + +public: + Mir::Type m_type { Mir::NormalType }; + Mir::State m_state { Mir::RestoredState }; + bool m_live { true }; +}; + +class SurfaceManager : public SurfaceManagerInterface +{ + Q_OBJECT + +public: + void raise(MirSurfaceInterface *) override {} + void activate(MirSurfaceInterface *) override {} +}; + +class Application : public ApplicationInfoInterface +{ + Q_OBJECT +public: + Application(QString appId) : ApplicationInfoInterface(appId, nullptr), m_appId(std::move(appId)) {} + + void close() override {} + QString appId() const override { return m_appId;} + QString name() const override { return "foo"; } + QString comment() const override { return "bar"; } + QUrl icon() const override { return QUrl(); } + State state() const override { return m_state; } + RequestedState requestedState() const override { return m_requestedState; } + void setRequestedState(RequestedState value) override + { + if (value != m_requestedState) { + m_requestedState = value; + Q_EMIT requestedStateChanged(value); + } + } + bool focused() const override { return false; } + QString splashTitle() const override { return QString(); } + QUrl splashImage() const override { return QUrl(); } + bool splashShowHeader() const override { return false; } + QColor splashColor() const override { return QColor(); } + QColor splashColorHeader() const override { return QColor(); } + QColor splashColorFooter() const override { return QColor(); } + Qt::ScreenOrientations supportedOrientations() const override { return Qt::LandscapeOrientation; } + bool rotatesWindowContents() const override { return false; } + bool isTouchApp() const override { return false; } + bool exemptFromLifecycle() const override { return false; } + void setExemptFromLifecycle(bool) override {} + QSize initialSurfaceSize() const override { return QSize(); } + void setInitialSurfaceSize(const QSize &) override {} + MirSurfaceListInterface* surfaceList() const override { return &m_surfaceList; } + MirSurfaceListInterface* promptSurfaceList() const override { return nullptr; } + int surfaceCount() const override { return 0; } + + QString m_appId; + State m_state; + RequestedState m_requestedState; + mutable MirSurfaceListModel m_surfaceList; +}; + +class ApplicationManager : public ApplicationManagerInterface +{ + Q_OBJECT + +public: + + int rowCount(const QModelIndex &) const override + { + return m_applications.count(); + } + + QVariant data(const QModelIndex &/*index*/, int /*role*/) const override + { + return QVariant(); + } + + QString focusedApplicationId() const override {return QString();} + + ApplicationInfoInterface *get(int index) const override + { + return m_applications[index]; + } + + ApplicationInfoInterface *findApplication(const QString &appId) const override + { + Q_UNUSED(appId); + return nullptr; + } + + ApplicationInfoInterface *findApplicationWithSurface(MirSurfaceInterface* surface) const override + { + for (int i = 0; i < m_applications.count(); ++i) { + if (m_applications[i]->m_surfaceList.contains(surface)) { + return m_applications[i]; + } + } + return nullptr; + } + + bool requestFocusApplication(const QString &appId) override + { + Q_UNUSED(appId); + return false; + } + + ApplicationInfoInterface *startApplication(const QString &appId, const QStringList &/*arguments*/) override + { + Application *application = new Application(appId); + prepend(application); + return application; + } + + bool stopApplication(const QString &) override { return true; } + +private: + void prepend(Application *application) + { + beginInsertRows(QModelIndex(), 0 /*first*/, 0 /*last*/); + m_applications.append(application); + endInsertRows(); + } + + QList m_applications; +}; + +#endif // UNITYAPPLICATIONMOCKS_H diff -Nru unity8-8.15+17.04.20170308/tests/qmltests/ApplicationMenus/tst_MenuBar.qml unity8-8.15+17.04.20170321/tests/qmltests/ApplicationMenus/tst_MenuBar.qml --- unity8-8.15+17.04.20170308/tests/qmltests/ApplicationMenus/tst_MenuBar.qml 2017-03-08 09:53:20.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/qmltests/ApplicationMenus/tst_MenuBar.qml 2017-03-21 10:56:09.000000000 +0000 @@ -76,6 +76,12 @@ signalName: "activated" } + SignalSpy { + id: aboutToShowCalledSpy + target: menuBackend + signalName: "aboutToShowCalled" + } + UnityTestCase { id: testCase name: "MenuBar" @@ -115,6 +121,43 @@ compare(menuItem0.popupVisible, true, "Popup should be visible"); } + function test_aboutToShow() { + menuBackend.modelData = appMenuData.generateTestData(3,3,0,0, "menu"); + wait(50) // wait for row to build + var priv = findInvisibleChild(menuBar, "d"); + + var menuItem0 = findChild(menuBar, "menuBar-item0"); + var menuItem1 = findChild(menuBar, "menuBar-item1"); + + aboutToShowCalledSpy.clear(); + menuItem0.show(); + compare(aboutToShowCalledSpy.count, 1); + + menuItem0.show(); + // It's already shown so nothing happens + compare(aboutToShowCalledSpy.count, 1); + + menuItem0.hide(); + menuItem0.show(); + compare(aboutToShowCalledSpy.count, 2); + + menuItem0.dismiss(); + menuItem0.show(); + compare(aboutToShowCalledSpy.count, 3); + + menuItem1.show(); + compare(aboutToShowCalledSpy.count, 4); + + menuItem0.show(); + compare(aboutToShowCalledSpy.count, 5); + + compare(aboutToShowCalledSpy.signalArguments[0][0], 0); + compare(aboutToShowCalledSpy.signalArguments[1][0], 0); + compare(aboutToShowCalledSpy.signalArguments[2][0], 0); + compare(aboutToShowCalledSpy.signalArguments[3][0], 1); + compare(aboutToShowCalledSpy.signalArguments[4][0], 0); + } + function test_keyboardNavigation_RightKeySelectsNextMenuItem(data) { menuBackend.modelData = appMenuData.generateTestData(3,3,0,0, "menu"); var priv = findInvisibleChild(menuBar, "d"); @@ -183,6 +226,30 @@ keyRelease(data.tag, Qt.AltModifier, 100); } + function test_disabledTopLevel() { + var modelData = appMenuData.generateTestData(3,3,0,0,"menu"); + modelData[1].rowData.sensitive = false; + menuBackend.modelData = modelData; + + var priv = findInvisibleChild(menuBar, "d"); + + var menuItem0 = findChild(menuBar, "menuBar-item0"); verify(menuItem0); + var menuItem2 = findChild(menuBar, "menuBar-item2"); verify(menuItem2); + + menuItem0.show(); + compare(menuItem0.popupVisible, true, "Popup should be visible"); + + keyClick(Qt.Key_Right); + compare(priv.currentItem, menuItem2); + compare(menuItem2.popupVisible, true); + compare(menuItem0.popupVisible, false); + + keyClick(Qt.Key_Left); + compare(priv.currentItem, menuItem0); + compare(menuItem2.popupVisible, false); + compare(menuItem0.popupVisible, true); + } + function test_menuActivateClosesMenu() { menuBackend.modelData = appMenuData.generateTestData(3,3,0,0,"menu"); var priv = findInvisibleChild(menuBar, "d"); @@ -271,5 +338,39 @@ return false; }, true); } + + function test_firstDisabled() { + var data = appMenuData.generateTestData(10,5,2,3); + data[0].submenu[1].submenu[0].rowData.sensitive = false; + menuBackend.modelData = data; + + var menuItem = findChild(menuBar, "menuBar-item0"); + menuItem.show(); + + // waits for item to be created so the keyclick actually works + findChild(menuBar, "menuBar-item0-menu-item1-actionItem"); + + keyClick(Qt.Key_Down); + keyClick(Qt.Key_Down); + keyClick(Qt.Key_Right); + + var submenu = findChild(menuBar, "menuBar-item0-menu-item1-menu"); + var priv = findInvisibleChild(submenu, "d"); + var subActionItem1 = findChild(submenu, "menuBar-item0-menu-item1-menu-item1-actionItem"); + compare(priv.currentItem.item, subActionItem1); + + keyClick(Qt.Key_Down); + var subActionItem3 = findChild(submenu, "menuBar-item0-menu-item1-menu-item3-actionItem"); + compare(priv.currentItem.item, subActionItem3); + + // now move mouse over to a different item and back to exercise a different codepath + var actionItem0 = findChild(menuBar, "menuBar-item0-menu-item0-actionItem"); + mouseMove(actionItem0, actionItem0.width/2, actionItem0.height/2); + + var actionItem1 = findChild(menuBar, "menuBar-item0-menu-item1-actionItem"); + mouseMove(actionItem1, actionItem1.width/2, actionItem1.height/2); + + tryCompareFunction(function() { return priv.currentItem.item == subActionItem1; }, true); + } } } diff -Nru unity8-8.15+17.04.20170308/tests/qmltests/ApplicationMenus/tst_MenuPopup.qml unity8-8.15+17.04.20170321/tests/qmltests/ApplicationMenus/tst_MenuPopup.qml --- unity8-8.15+17.04.20170308/tests/qmltests/ApplicationMenus/tst_MenuPopup.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/qmltests/ApplicationMenus/tst_MenuPopup.qml 2017-03-21 10:56:09.000000000 +0000 @@ -59,18 +59,13 @@ }} ] } - - Binding { - target: activatedSpy - property: "target" - value: unityMenuModel - } } } SignalSpy { - id: activatedSpy - signalName: "activated" + id: aboutToShowCalledSpy + target: loader.item ? loader.item.unityMenuModel : undefined + signalName: "aboutToShowCalled" } UnityTestCase { @@ -88,7 +83,6 @@ function cleanup() { menu.reset(); wait(100); // let the page dismiss - activatedSpy.clear(); loader.active = false; tryCompare(loader, "item", null); @@ -160,9 +154,6 @@ var priv = findInvisibleChild(menu, "d"); keyClick(Qt.Key_Down, Qt.NoModifier); - compare(priv.currentItem, item0, "CurrentItem should have moved to item 0"); - - keyClick(Qt.Key_Down, Qt.NoModifier); compare(priv.currentItem, item1, "CurrentItem should have moved to item 1"); keyClick(Qt.Key_Down, Qt.NoModifier); @@ -170,6 +161,9 @@ keyClick(Qt.Key_Down, Qt.NoModifier); compare(priv.currentItem, item0, "CurrentItem should have moved to item 0"); + + keyClick(Qt.Key_Down, Qt.NoModifier); + compare(priv.currentItem, item1, "CurrentItem should have moved to item 1"); } function test_keyboardNavigation_UpKeySelectsAndOpensPreviousMenuItemAndRotates() { @@ -181,17 +175,48 @@ var priv = findInvisibleChild(menu, "d"); - keyClick(Qt.Key_Down, Qt.NoModifier); - compare(priv.currentItem, item0, "CurrentItem should have moved to item 2"); + keyClick(Qt.Key_Up, Qt.NoModifier); + compare(priv.currentItem, item2, "CurrentItem should have moved to item 2"); - keyClick(Qt.Key_Down, Qt.NoModifier); + keyClick(Qt.Key_Up, Qt.NoModifier); compare(priv.currentItem, item1, "CurrentItem should have moved to item 1"); - keyClick(Qt.Key_Down, Qt.NoModifier); - compare(priv.currentItem, item2, "CurrentItem should have moved to item 0"); + keyClick(Qt.Key_Up, Qt.NoModifier); + compare(priv.currentItem, item0, "CurrentItem should have moved to item 0"); - keyClick(Qt.Key_Down, Qt.NoModifier); - compare(priv.currentItem, item0, "CurrentItem should have moved to item 2"); + keyClick(Qt.Key_Up, Qt.NoModifier); + compare(priv.currentItem, item2, "CurrentItem should have moved to item 2"); + } + + function test_aboutToShow() { + menu.unityMenuModel.modelData = appMenuData.generateTestData(3,3,1,0,"menu",false); + + var item0 = findChild(menu, "menu-item0"); + var item1 = findChild(menu, "menu-item1"); + var item2 = findChild(menu, "menu-item2"); + + aboutToShowCalledSpy.clear(); + + mouseMove(item0, item0.width/2, item0.height/2); + tryCompare(aboutToShowCalledSpy, "count", 1); + + mouseMove(item1, item0.width/2, item0.height/2); + tryCompare(aboutToShowCalledSpy, "count", 2); + + mouseMove(item2, item0.width/2, item0.height/2); + tryCompare(aboutToShowCalledSpy, "count", 3); + + mouseMove(item0, item0.width/2, item0.height/2); + tryCompare(aboutToShowCalledSpy, "count", 4); + + item0.item.trigger(); + // it's already visible + tryCompare(aboutToShowCalledSpy, "count", 4); + + compare(aboutToShowCalledSpy.signalArguments[0][0], 0); + compare(aboutToShowCalledSpy.signalArguments[1][0], 1); + compare(aboutToShowCalledSpy.signalArguments[2][0], 2); + compare(aboutToShowCalledSpy.signalArguments[3][0], 0); } function test_keyboardNavigation_RightKeyEntersSubMenu() { @@ -217,7 +242,7 @@ var menuItem = findChild(menu, "menu-item0"); verify(menuItem); mouseClick(menuItem, menuItem.width/2, menuItem.height/2); - tryCompareFunction(function() { return menuItem.popup !== null && menuItem.popup.visible }, true); + tryCompareFunction(function() { return menuItem.popup !== null && findInvisibleChild(menuItem.popup, "d").currentItem !== null }, true); keyClick(Qt.Key_Left, Qt.NoModifier); tryCompareFunction(function() { return menuItem.popup !== null && menuItem.popup.visible }, false); @@ -245,13 +270,16 @@ menu.unityMenuModel.modelData = differentSizesMenu; - waitForRendering(menu); + // Wait for the two items to be there + tryCompareFunction(function() { return findChild(menu, "menu-item1") !== null; }, true); var longWidth = menu.width; + + // Now pop one item and make sure it's smaller differentSizesMenu.pop(); menu.unityMenuModel.modelData = differentSizesMenu; - waitForRendering(menu); - verify(menu.width < longWidth); + tryCompareFunction(function() { return findChild(menu, "menu-item0") !== null; }, true); + tryCompareFunction(function() { return menu.width < longWidth; }, true); } function test_minimumWidth() { diff -Nru unity8-8.15+17.04.20170308/tests/qmltests/Launcher/tst_Drawer.qml unity8-8.15+17.04.20170321/tests/qmltests/Launcher/tst_Drawer.qml --- unity8-8.15+17.04.20170308/tests/qmltests/Launcher/tst_Drawer.qml 2017-03-08 09:51:16.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/qmltests/Launcher/tst_Drawer.qml 2017-03-21 10:54:45.000000000 +0000 @@ -328,5 +328,44 @@ tryCompare(launcher, "state", "visibleTemporary"); } + + function test_focusMovesCorrectlyBetweenLauncherAndDrawer() { + var panel = findChild(launcher, "launcherPanel"); + var drawer = findChild(launcher, "drawer"); + var searchField = findChild(drawer, "searchField"); + + launcher.openForKeyboardNavigation(); + tryCompare(panel, "highlightIndex", -1); + keyClick(Qt.Key_Down); + tryCompare(panel, "highlightIndex", 0); + + launcher.openDrawer(true); + tryCompare(searchField, "focus", true); + + keyClick(Qt.Key_Escape); + + launcher.openForKeyboardNavigation(); + tryCompare(panel, "highlightIndex", -1); + keyClick(Qt.Key_Down); + tryCompare(panel, "highlightIndex", 0); + } + + function test_closeWhileDragging() { + launcher.openDrawer(true); + waitForRendering(launcher); + waitUntilTransitionsEnd(launcher); + + var drawer = findChild(launcher, "drawer"); + tryCompare(drawer.anchors, "rightMargin", -drawer.width); + + mousePress(drawer, drawer.width / 2, drawer.height / 2); + mouseMove(drawer, drawer.width / 4, drawer.height / 2); + tryCompare(drawer, "draggingHorizontally", true); + + keyPress(Qt.Key_Escape); + + tryCompare(launcher, "state", ""); + tryCompare(drawer, "draggingHorizontally", false); + } } } diff -Nru unity8-8.15+17.04.20170308/tests/qmltests/Launcher/tst_Launcher.qml unity8-8.15+17.04.20170321/tests/qmltests/Launcher/tst_Launcher.qml --- unity8-8.15+17.04.20170308/tests/qmltests/Launcher/tst_Launcher.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/qmltests/Launcher/tst_Launcher.qml 2017-03-21 10:53:26.000000000 +0000 @@ -97,6 +97,11 @@ } Binding { target: launcherLoader.item + property: "privateMode" + value: privateModeCheckBox.checked + } + Binding { + target: launcherLoader.item property: "panelWidth" value: units.gu(Math.round(widthSlider.value)) } @@ -120,6 +125,20 @@ } } + RowLayout { + CheckBox { + id: privateModeCheckBox + checked: false + } + Label { + text: "Private mode (lockscreen locked)" + AbstractButton { + anchors.fill: parent + onClicked: privateModeCheckBox.checked = !privateModeCheckBox.checked + } + } + } + Slider { id: widthSlider Layout.fillWidth: true @@ -1242,6 +1261,7 @@ keyClick(Qt.Key_Down); keyClick(Qt.Key_Down); keyClick(Qt.Key_Down); + keyClick(Qt.Key_Down); tryCompare(quickList, "selectedIndex", 0) // Left gets us back to the launcher @@ -1493,6 +1513,28 @@ compare(launcher.state, "visibleTemporary"); } + function test_hideQuicklistItemsInPrivateModel_data() { + return [ + { tag: "private mode", private: true }, + { tag: "normal mode", private: false } + ]; + } + + function test_hideQuicklistItemsInPrivateModel(data) { + privateModeCheckBox.checked = data.private; + + revealByEdgePush(); + + var item = findChild(launcher, "launcherDelegate4"); + var quickListShape = findChild(launcher, "quickListShape") + + mousePress(item) + tryCompare(quickListShape, "visible", true) + + var repeater = findChild(launcher, "popoverRepeater"); + tryCompare(repeater, "count", LauncherModel.get(4).quickList.count - (data.private ? 1 : 0)) + } + function test_hintOnSizeChange() { var oldSize = launcher.panelWidth; launcher.maxPanelX = -launcher.panelWidth; diff -Nru unity8-8.15+17.04.20170308/tests/qmltests/Panel/tst_Panel.qml unity8-8.15+17.04.20170321/tests/qmltests/Panel/tst_Panel.qml --- unity8-8.15+17.04.20170308/tests/qmltests/Panel/tst_Panel.qml 2017-03-08 09:50:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/qmltests/Panel/tst_Panel.qml 2017-03-21 10:55:51.000000000 +0000 @@ -57,6 +57,11 @@ color: "darkgrey" } + SignalSpy { + id: aboutToShowCalledSpy + signalName: "aboutToShowCalled" + } + RowLayout { anchors.fill: parent anchors.margins: units.gu(1) @@ -315,12 +320,15 @@ tryCompare(panel.indicators, "fullyOpened", true); } - function pullDownApplicationsMenu() { + function pullDownApplicationsMenu(xPos) { var showDragHandle = findChild(panel.applicationMenus, "showDragHandle"); + if (xPos === undefined) { + xPos = showDragHandle.width / 2; + } touchFlick(showDragHandle, - showDragHandle.width / 2, + xPos, showDragHandle.height / 2, - showDragHandle.width / 2, + xPos, showDragHandle.height / 2 + (showDragHandle.autoCompleteDragThreshold * 1.1)); tryCompare(panel.applicationMenus, "fullyOpened", true); } @@ -769,7 +777,7 @@ panel.mode = "staged"; mouseEmulation.checked = false; - var appTitle = findChild(panel.applicationMenus, "panelTitle"); verify(appTitle); + var appTitle = findChild(panel, "panelTitle"); verify(appTitle); var appMenuRow = findChild(panel.applicationMenus, "panelRow"); verify(appMenuRow); var appMenuBar = findChild(panel, "menuBar"); verify(appMenuBar); @@ -787,7 +795,7 @@ panel.mode = "windowed"; mouseEmulation.checked = false; - var appTitle = findChild(panel.applicationMenus, "panelTitle"); verify(appTitle); + var appTitle = findChild(panel, "panelTitle"); verify(appTitle); var appMenuRow = findChild(panel.applicationMenus, "panelRow"); verify(appMenuRow); var appMenuBar = findChild(panel, "menuBar"); verify(appMenuBar); @@ -838,5 +846,58 @@ keyClick(Qt.Key_Escape); tryCompare(panel.indicators, "fullyClosed", true); } + + function test_aboutToShowMenu() { + waitForRendering(panel); + + aboutToShowCalledSpy.target = panel.applicationMenus.model + aboutToShowCalledSpy.clear(); + + var indicatorsBar = findChild(panel.applicationMenus, "indicatorsBar"); + + PanelState.title = "Fake Title" + pullDownApplicationsMenu(0 /*xPos*/); + compare(aboutToShowCalledSpy.count, 1); + + keyClick(Qt.Key_Right); + tryCompare(indicatorsBar, "currentItemIndex", 1); + compare(aboutToShowCalledSpy.count, 2); + + compare(aboutToShowCalledSpy.signalArguments[0][0], 0); + compare(aboutToShowCalledSpy.signalArguments[1][0], 1); + + keyClick(Qt.Key_Tab); + keyClick(Qt.Key_Tab); + + aboutToShowCalledSpy.target = panel.applicationMenus.model.submenu(1); + aboutToShowCalledSpy.clear(); + + keyClick(Qt.Key_Enter); + compare(aboutToShowCalledSpy.count, 1); + } + + function test_disabledTopLevel() { + var modelData = appMenuData.generateTestData(3,3,0,0,"menu"); + modelData[1].rowData.sensitive = false; + panel.applicationMenus.model.modelData = modelData; + + waitForRendering(panel); + + aboutToShowCalledSpy.target = panel.applicationMenus.model + aboutToShowCalledSpy.clear(); + + var indicatorsBar = findChild(panel.applicationMenus, "indicatorsBar"); + + PanelState.title = "Fake Title" + pullDownApplicationsMenu(0 /*xPos*/); + + tryCompare(indicatorsBar, "currentItemIndex", 0); + + keyClick(Qt.Key_Right); + tryCompare(indicatorsBar, "currentItemIndex", 2); + + keyClick(Qt.Key_Left); + tryCompare(indicatorsBar, "currentItemIndex", 0); + } } } diff -Nru unity8-8.15+17.04.20170308/tests/qmltests/Stage/tst_TabletStage.qml unity8-8.15+17.04.20170321/tests/qmltests/Stage/tst_TabletStage.qml --- unity8-8.15+17.04.20170308/tests/qmltests/Stage/tst_TabletStage.qml 2017-03-08 09:48:06.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/qmltests/Stage/tst_TabletStage.qml 2017-03-21 10:52:45.000000000 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2015-2016 Canonical, Ltd. + * Copyright (C) 2015-2017 Canonical, Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -761,6 +761,38 @@ tryCompare(appDelegate, "stage", ApplicationInfoInterface.SideStage); } + /* + Regression test for https://bugs.launchpad.net/ubuntu/+source/unity8/+bug/1670361 + + Clicks near the top window edge (but still inside the window boundaries) should go to + the window (and not get eaten by some translucent decoration like in that bug). + */ + function test_clickNearTopEdgeGoesToWindow() { + compare(topLevelSurfaceList.count, 1); // assume unity8-dash is already there + + var appDelegate = findChild(stage, "appDelegate_" + topLevelSurfaceList.idAt(0)); + verify(appDelegate); + + var surfaceItem = findChild(appDelegate, "surfaceItem"); + verify(surfaceItem); + + compare(surfaceItem.mousePressCount, 0); + compare(surfaceItem.mouseReleaseCount, 0); + mouseClick(appDelegate, 1, 1); // near top left + + compare(surfaceItem.mousePressCount, 1); + compare(surfaceItem.mouseReleaseCount, 1); + + mouseClick(appDelegate, appDelegate.width / 2, 1); // near top + + compare(surfaceItem.mousePressCount, 2); + compare(surfaceItem.mouseReleaseCount, 2); + + mouseClick(appDelegate, appDelegate.width - 1, 1); // near top right + + compare(surfaceItem.mousePressCount, 3); + compare(surfaceItem.mouseReleaseCount, 3); + } } } diff -Nru unity8-8.15+17.04.20170308/tests/qmltests/tst_Shell.qml unity8-8.15+17.04.20170321/tests/qmltests/tst_Shell.qml --- unity8-8.15+17.04.20170308/tests/qmltests/tst_Shell.qml 2017-03-08 09:53:59.000000000 +0000 +++ unity8-8.15+17.04.20170321/tests/qmltests/tst_Shell.qml 2017-03-21 10:55:51.000000000 +0000 @@ -2513,27 +2513,44 @@ tryCompare(app2Surface, "keymap", "fr"); } - function test_dragPanelToRestoreMaximizedWindow() { + function test_dragPanelToRestoreMaximizedWindow_data() { + return [ + { tag: "with mouse", mouse: true }, + { tag: "with touch", mouse: false } + ] + } + + function test_dragPanelToRestoreMaximizedWindow(data) { loadShell("desktop"); shell.usageScenario = "desktop"; waitForRendering(shell); var panel = findChild(shell, "windowControlArea"); verify(panel); - var appSurfaceId = topLevelSurfaceList.nextId; - var app = ApplicationManager.startApplication("dialer-app") - waitUntilAppWindowIsFullyLoaded(appSurfaceId); - // start dialer, maximize it - var appContainer = findChild(shell, "appContainer"); - var appDelegate = findChild(appContainer, "appDelegate_" + appSurfaceId); + var appDelegate = startApplication("dialer-app"); verify(appDelegate); + var maximizeButton = findChild(appDelegate, "maximizeWindowButton"); - mouseClick(maximizeButton); + if (data.mouse) { + mouseClick(maximizeButton); + } else { + tap(maximizeButton); + } + waitUntilTransitionsEnd(appDelegate); tryCompare(appDelegate, "state", "maximized"); - mouseDrag(panel, panel.width/2, panel.height/2, 0, shell.height/3, Qt.LeftButton, Qt.NoModifier, 500); + if (data.mouse) { + mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus + var menuBarLoader = findInvisibleChild(panel, "menuBarLoader"); + verify(menuBarLoader); + tryCompare(menuBarLoader.item, "visible", true); + mouseDrag(panel, panel.width/2, panel.height/2, 0, shell.height/3, Qt.LeftButton, Qt.NoModifier, 500); + } else { + touchFlick(panel, panel.width/2, panel.panelHeight/2, panel.width/2, shell.height/3); + } + tryCompare(appDelegate, "state", "restored"); } @@ -2848,7 +2865,7 @@ loadShell(data.tag); var panel = findChild(shell, "panel"); verify(panel); - var panelTitle = findChild(panel.applicationMenus, "panelTitle"); verify(panelTitle); + var panelTitle = findChild(panel, "panelTitle"); verify(panelTitle); compare(panelTitle.visible, false, "Panel title should not be visible when greeter is shown"); swipeAwayGreeter(); @@ -2913,6 +2930,86 @@ tryCompare(appDelegate, "state", "maximizedRight"); } + + function test_closeAppsInSpreadWithQ() { + loadShell("desktop"); + shell.usageScenario = "desktop"; + waitForRendering(shell); + swipeAwayGreeter(); + + var appSurfaceId = topLevelSurfaceList.nextId; + var app = ApplicationManager.startApplication("dialer-app") + waitUntilAppWindowIsFullyLoaded(appSurfaceId); + + appSurfaceId = topLevelSurfaceList.nextId; + app = ApplicationManager.startApplication("calendar-app") + waitUntilAppWindowIsFullyLoaded(appSurfaceId); + + keyPress(Qt.Key_Alt); + keyClick(Qt.Key_Tab); + + var stage = findChild(shell, "stage"); + var spread = findChild(stage, "spreadItem"); + var appRepeater = findChild(stage, "appRepeater"); + + tryCompare(stage, "state", "spread"); + + tryCompare(ApplicationManager, "count", 3); + tryCompareFunction(function() {return appRepeater.itemAt(spread.highlightedIndex).appId == "dialer-app"}, true); + + // Close one app with Q while in spread + keyClick(Qt.Key_Q); + + tryCompare(ApplicationManager, "count", 2); + + // Now the dash should be highlighted + tryCompareFunction(function() {return appRepeater.itemAt(spread.highlightedIndex).appId == "unity8-dash"}, true); + + keyClick(Qt.Key_Q); + + // Dash is not closeable, should still be 2 + tryCompare(ApplicationManager, "count", 2); + + // Move to the next one, should be closable again + keyClick(Qt.Key_Tab); + tryCompareFunction(function() {return appRepeater.itemAt(spread.highlightedIndex).appId == "calendar-app"}, true); + + // close it + keyClick(Qt.Key_Q); + tryCompare(ApplicationManager, "count", 1); + + keyRelease(Qt.Key_Alt); + + // Now start the apps again + appSurfaceId = topLevelSurfaceList.nextId; + app = ApplicationManager.startApplication("dialer-app"); + waitUntilAppWindowIsFullyLoaded(appSurfaceId); + + appSurfaceId = topLevelSurfaceList.nextId; + app = ApplicationManager.startApplication("calendar-app"); + waitUntilAppWindowIsFullyLoaded(appSurfaceId); + + // First focus the dash so it'll be the leftmost in the spread + ApplicationManager.requestFocusApplication("unity8-dash"); + + keyPress(Qt.Key_Alt); + keyClick(Qt.Key_Tab); + tryCompare(stage, "state", "spread"); + + // Move to the last one + keyClick(Qt.Key_Tab); + + // Close the last one, make sure the highlight fixes itself to stick within the list + tryCompare(spread, "highlightedIndex", ApplicationManager.count - 1); + var oldHighlighted = spread.highlightedIndex; + + keyClick(Qt.Key_Q); + tryCompare(spread, "highlightedIndex", oldHighlighted - 1); + + keyRelease(Qt.Key_Alt); + + } + function test_altTabToMinimizedApp() { loadShell("desktop"); shell.usageScenario = "desktop"; @@ -2941,6 +3038,61 @@ tryCompare(topLevelSurfaceList.applicationAt(0), "appId", "dialer-app"); } + function test_touchMenuPosition_data() { + return [ + { tag: "launcher locked", lockLauncher: true }, + { tag: "launcher not locked", lockLauncher: false } + ]; + } + + function test_touchMenuPosition(data) { + loadShell("desktop"); + shell.usageScenario = "desktop"; + waitForRendering(shell); + swipeAwayGreeter(); + + var panel = findChild(shell, "panel"); + var launcher = testCase.findChild(shell, "launcher"); + launcher.lockedVisible = data.lockLauncher; + if (data.lockLauncher) { + compare(panel.applicationMenus.x, launcher.panelWidth); + } else { + compare(panel.applicationMenus.x, 0); + } + } + + function test_touchMenuHidesOnLauncherAppDrawer_data() { + return [ + { tag: "launcher locked", lockLauncher: true }, + { tag: "launcher not locked", lockLauncher: false } + ]; + } + + function test_touchMenuHidesOnLauncherAppDrawer(data) { + loadShell("desktop"); + shell.usageScenario = "desktop"; + waitForRendering(shell); + swipeAwayGreeter(); + + var panel = findChild(shell, "panel"); + var launcher = testCase.findChild(shell, "launcher"); + launcher.lockedVisible = data.lockLauncher; + + waitForRendering(panel.applicationMenus); + + if (data.lockLauncher) { + panel.applicationMenus.show(); + tryCompare(panel.applicationMenus, "fullyOpened", true); + launcher.openDrawer(); + } else { + tryCompare(launcher, "shown", false); + panel.applicationMenus.show(); + tryCompare(panel.applicationMenus, "fullyOpened", true); + launcher.switchToNextState("visible"); + } + tryCompare(panel.applicationMenus, "fullyClosed", true); + } + function test_doubleClickPanelRestoresWindow() { loadShell("desktop"); shell.usageScenario = "desktop"; @@ -2964,5 +3116,70 @@ mouseDoubleClickSequence(panel, panel.width/2, PanelState.panelHeight/2, Qt.LeftButton, Qt.NoModifier, 300); tryCompare(appDelegate, "state", "restored"); } + + function test_noMenusWithActiveCall() { + loadShell("desktop"); + shell.usageScenario = "desktop"; + waitForRendering(shell); + swipeAwayGreeter(); + + // start music-app, maximize it + var appDelegate = startApplication("music-app") + verify(appDelegate); + appDelegate.requestMaximize(); + + // move the mouse over panel to reveal the menus + var panel = findChild(shell, "panel"); + verify(panel); + mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus + var menuBarLoader = findInvisibleChild(panel, "menuBarLoader"); + verify(menuBarLoader); + tryCompare(menuBarLoader.item, "visible", true); + + // place a phone call + callManager.foregroundCall = phoneCall; + + // menu bar should be hidden + tryCompare(menuBarLoader, "active", false); + tryCompare(menuBarLoader, "item", null); + + // remove call + callManager.foregroundCall = null; + + // menu bar should be revealed + tryCompare(menuBarLoader, "active", true); + tryCompare(menuBarLoader.item, "visible", true); + } + + function test_maximizedWindowAndMenuInPanel() { + loadShell("desktop"); + shell.usageScenario = "desktop"; + waitForRendering(shell); + swipeAwayGreeter(); + + // start music-app, maximize it + var appDelegate = startApplication("music-app") + verify(appDelegate); + appDelegate.requestMaximize(); + tryCompare(appDelegate, "state", "maximized"); + + // move the mouse over panel to reveal the menus + var panel = findChild(shell, "panel"); + verify(panel); + mouseMove(panel, panel.width/2, panel.panelHeight/2); // to reveal the menus + var menuBar = findChild(panel, "menuBar"); + verify(menuBar); + tryCompare(menuBar, "visible", true); + + // check that the menu popup appears + var priv = findInvisibleChild(menuBar, "d"); + var menuItem0 = findChild(menuBar, "menuBar-item0"); + verify(menuItem0); + mouseMove(menuItem0, menuItem0.width/2, menuItem0.height/2, 200); + tryCompare(menuItem0, "visible", true); + mouseClick(menuItem0); + tryCompare(priv, "currentItem", menuItem0); + tryCompare(priv.currentItem, "popupVisible", true); + } } }