diff -Nru unity8-7.84+14.04.20140327.1/build unity8-7.85+14.04.20140401.3/build --- unity8-7.84+14.04.20140327.1/build 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/build 2014-04-01 22:56:02.000000000 +0000 @@ -41,11 +41,13 @@ sudo apt-get install devscripts \ equivs \ gsettings-desktop-schemas \ + gsettings-ubuntu-schemas \ qmenumodel-qml \ qtdeclarative5-dee-plugin \ qtdeclarative5-gsettings1.0 \ qtdeclarative5-ubuntu-ui-toolkit-plugin \ qtdeclarative5-ubuntu-settings-components \ + qtdeclarative5-ubuntu-thumbnailer0.1 \ unity-notifications-impl \ qtdeclarative5-xmllistmodel-plugin \ ubuntu-mobile-icons \ diff -Nru unity8-7.84+14.04.20140327.1/debian/changelog unity8-7.85+14.04.20140401.3/debian/changelog --- unity8-7.84+14.04.20140327.1/debian/changelog 2014-04-02 03:27:16.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/debian/changelog 2014-04-02 03:27:16.000000000 +0000 @@ -1,3 +1,46 @@ +unity8 (7.85+14.04.20140401.3-0ubuntu1) trusty; urgency=medium + + [ Michał Sawicz ] + * Bump version to ensure incompatibility with previous Unity.Application + implementations. + * We'll only have the unity-mir and mock Ubuntu.Application plugins + now, no need for mangling the import paths. + + [ Michal Hruby ] + * Remove the albumart image provider. (LP: #1262711) + * Don't reset search string after 2 seconds. (LP: #1297246) + + [ James Henstridge ] + * Remove the albumart image provider. (LP: #1262711) + + [ Albert Astals ] + * Carousel: Add test to make sure we only create the needed delegates + and not more + * LVWPH: Remove processEvents() call from updatePolish() It causes + some reentrancy issues and in some times you end up in polishItems() + with items that have been deleted because you called processEvents() + This means i need a small tweak in itemGeometryChanged to not + reposition items if we are inside a setContentHeight call and two + small tweaks to tests since now things happen in a different order + and numbers are different (though equivalent) (LP: #1297240) + * Card.qml binding loops are gone. hooray \o/ Also made the aspect + properties readonly + + [ Mirco Müller ] + * A potential fix for "Cannot read property 'state' of null"-failure + on Jenkins with the VisualSnapDecisionsQueue QML-test of + notifications. + + [ Michael Terry ] + * Pass user's preference for auto-brightness on to powerd. (LP: + #1273174) + + [ Michael Zanetti ] + * Registers a dummy QObject as QTestRootObject in uqmlscene in order + to fix make trySomething with Qt 5.2. + + -- Ubuntu daily release Tue, 01 Apr 2014 22:56:52 +0000 + unity8 (7.84+14.04.20140327.1-0ubuntu2) trusty; urgency=medium * For now, have libunity-private depending on libunity-core-6.0-9 as the diff -Nru unity8-7.84+14.04.20140327.1/debian/control unity8-7.85+14.04.20140401.3/debian/control --- unity8-7.84+14.04.20140327.1/debian/control 2014-04-02 03:27:16.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/debian/control 2014-04-02 03:27:16.000000000 +0000 @@ -17,7 +17,7 @@ libnih-dev, libpulse-dev, libqmenumodel-dev (>= 0.2.7), - libunity-api-dev (>= 7.80.4), + libunity-api-dev (>= 7.80.6), libunity-mir-dev, libupstart-dev, libusermetricsoutput1-dev, @@ -80,12 +80,15 @@ qtdeclarative5-dee-plugin, qtdeclarative5-gsettings1.0, qtdeclarative5-ubuntu-settings-components, + qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl, + ubuntu-thumbnailer-impl-0, qtdeclarative5-ubuntu-ui-toolkit-plugin, qtdeclarative5-unity-notifications-plugin | unity-notifications-impl, qtdeclarative5-xmllistmodel-plugin, + unity-application-impl-2, unity-launcher-impl-3, unity-notifications-impl-2, - unity8-fake-env | qtubuntu-shell, + unity8-fake-env | unity-application-impl, unity8-private (= ${binary:Version}), unity8-private | unity-launcher-impl, unity-plugin-scopes | unity-scopes-impl, @@ -97,7 +100,8 @@ Recommends: unity-scope-click, unity-scope-mediascanner2, unity-scope-scopes, -Breaks: indicator-network (<< 0.5.1) +Breaks: indicator-network (<< 0.5.1), + ubuntu-touch-session (<< 0.107), Replaces: ubuntu-touch-session (<< 0.82~) Description: Unity 8 shell The Unity 8 shell is the primary user interface for Ubuntu devices. @@ -134,7 +138,8 @@ Pre-Depends: ${misc:Pre-Depends}, Depends: ${misc:Depends}, ${shlibs:Depends}, -Provides: qtubuntu-shell, +Provides: unity-application-impl, + unity-application-impl-2, Description: Fake environment for running Unity 8 shell Provides fake implementations of some QML modules used by Unity 8 shell (e.g Ubuntu.Application) so that you can run it in a sandboxed environment. @@ -143,7 +148,8 @@ Architecture: any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends}, -Depends: ${misc:Depends}, +Depends: gsettings-ubuntu-schemas, + ${misc:Depends}, ${shlibs:Depends}, libunity-core-6.0-9, Provides: unity-launcher-impl, diff -Nru unity8-7.84+14.04.20140327.1/debian/unity8.install unity8-7.85+14.04.20140401.3/debian/unity8.install --- unity8-7.84+14.04.20140327.1/debian/unity8.install 2014-04-02 03:27:16.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/debian/unity8.install 2014-04-02 03:27:16.000000000 +0000 @@ -10,6 +10,6 @@ usr/share/unity8/Notifications usr/share/unity8/Panel usr/share/unity8/Shell.qml -usr/share/unity8/SideStage +usr/share/unity8/Stages usr/share/unity8/graphics data/unity8.conf usr/share/upstart/sessions/ diff -Nru unity8-7.84+14.04.20140327.1/plugins/DashViews/listviewwithpageheader.cpp unity8-7.85+14.04.20140401.3/plugins/DashViews/listviewwithpageheader.cpp --- unity8-7.84+14.04.20140327.1/plugins/DashViews/listviewwithpageheader.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/DashViews/listviewwithpageheader.cpp 2014-04-01 22:55:54.000000000 +0000 @@ -1097,7 +1097,7 @@ { const qreal heightDiff = newGeometry.height() - oldGeometry.height(); if (heightDiff != 0) { - if (oldGeometry.y() + oldGeometry.height() + m_clipItem->y() <= contentY() && !m_visibleItems.isEmpty()) { + if (!m_inContentHeightKeepHeaderShown && oldGeometry.y() + oldGeometry.height() + m_clipItem->y() <= contentY() && !m_visibleItems.isEmpty()) { ListItem *firstItem = m_visibleItems.first(); firstItem->setY(firstItem->y() - heightDiff); adjustMinYExtent(); @@ -1293,11 +1293,6 @@ refill(); if (m_contentHeightDirty) { - // We need to make sure all bindings have updated otherwise - // we may end up with bindings updating when we call setContentHeight - // and then everything gets out of sync, i.e. testHeaderPositionBug1240118 - QCoreApplication::instance()->processEvents(); - qreal contentHeight; if (m_visibleItems.isEmpty()) { contentHeight = m_headerItem ? m_headerItem->height() : 0; diff -Nru unity8-7.84+14.04.20140327.1/plugins/Utils/albumartprovider.cpp unity8-7.85+14.04.20140401.3/plugins/Utils/albumartprovider.cpp --- unity8-7.84+14.04.20140327.1/plugins/Utils/albumartprovider.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/Utils/albumartprovider.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,236 +0,0 @@ -/* - * Copyright 2013 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 - * 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 Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Authors: Jussi Pakkanen - * Pawel Stolowski -*/ - -#include "albumartprovider.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using namespace std; - -const std::string AlbumArtProvider::DEFAULT_ALBUM_ART = "/usr/share/unity/icons/album_missing.png"; -const std::string AlbumArtProvider::UNITY_LENS_SCHEMA = "com.canonical.Unity.Lenses"; - -static QByteArray download(QString url) { - QScopedPointer am(new QNetworkAccessManager); - QNetworkReply *reply = am->get(QNetworkRequest(QUrl(url))); - QEventLoop loop; - QObject::connect(am.data(), &QNetworkAccessManager::finished, &loop, &QEventLoop::quit); - loop.exec(); - - if (reply->error() != QNetworkReply::NoError) { - qWarning() << "Error downloading from the network:" << reply->errorString(); - return QByteArray(); - } - return reply->readAll(); -} - -AlbumArtProvider::AlbumArtProvider() - : QQuickImageProvider(QQmlImageProviderBase::Image, QQmlImageProviderBase::ForceAsynchronousImageLoading), - m_settings(nullptr) -{ - auto schemas = g_settings_list_schemas(); - if (schemas) { - for (int i = 0; schemas[i]; i++) { - if (g_strcmp0(schemas[i], UNITY_LENS_SCHEMA.c_str()) == 0) { - m_settings = g_settings_new(UNITY_LENS_SCHEMA.c_str()); - break; - } - } - } - if (m_settings == nullptr) { - qWarning() << "Missing" << QString::fromStdString(UNITY_LENS_SCHEMA) << "schema"; - } -} - -AlbumArtProvider::~AlbumArtProvider() -{ - if (m_settings) - g_object_unref(m_settings); -} - -std::string AlbumArtProvider::get_lastfm_url(const albuminfo &ai) { - QString artist = QString::fromStdString(ai.artist); - QString album = QString::fromStdString(ai.album); - // audioscrobbler wants it without any / (as it would break the URL) - artist.remove('/'); - album.remove('/'); - - /// @todo: this is the old API which will probably get axed at some point in the future - /// The new 2.0 API requires an API key, but supports JSON output, etc, so switching - /// to it should be done ASAP. - QString request = QString("http://ws.audioscrobbler.com/1.0/album/%1/%2/info.xml").arg(artist) - .arg(album) - .toHtmlEscaped(); - QFuture future = QtConcurrent::run(download, request); - QByteArray arr = future.result(); - if(arr.size() == 0) { - return ""; - } - QXmlQuery query; - QBuffer tmp; - tmp.setData(arr); - tmp.open(QIODevice::ReadOnly); - query.bindVariable("reply", &tmp); - query.setQuery("doc($reply)/album/coverart/large[1]/text()"); - QString image; - query.evaluateTo(&image); - image = image.trimmed(); - - // return empty if last.fm tries to offer their default - // fallback artwork - if (image.contains("catalogue/noimage")) { - return ""; - } - - return image.toStdString(); -} - -bool AlbumArtProvider::download_and_store(const std::string &image_url, const std::string &output_file) { - QString url = QString::fromStdString(image_url); - QString fileName = QString::fromStdString(output_file); - QFuture future = QtConcurrent::run(download, url); - QByteArray arr = future.result(); - if (arr.size() == 0) { - return false; - } - QFile file(fileName); - if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { - qWarning() << "Could not open file for writing:" << file.errorString(); - return false; - } - if (file.write(arr) == -1){ - qWarning() << "Could not write the image:" << file.error(); - return false; - } - - return true; -} - -void AlbumArtProvider::fix_format(const std::string &fname) { - // MediaArtSpec requires jpg. Convert to it if necessary. - FILE *f = fopen(fname.c_str(), "r"); - if(!f) - return; - unsigned char buf[2]; - fread(buf, 1, 2, f); - fclose(f); - if(buf[0] == 0xff && buf[1] == 0xd8) { - return; - } - QImage im(fname.c_str()); - im.save(fname.c_str(), "JPEG"); -} - -std::string AlbumArtProvider::get_image(const std::string &artist, const std::string &album) { - albuminfo info; - - info.artist = artist; - info.album = album; - - if(info.album.empty() || info.artist.empty()) { - return DEFAULT_ALBUM_ART; - } - if(cache.has_art(info.artist, info.album)) { - // Image may have expired from cache between these two lines. - // It might expire before we return. C'est la vie. - return cache.get_art_file(info.artist, info.album); - } - - if (m_settings != nullptr && g_strcmp0(g_settings_get_string(m_settings, "remote-content-search"), "all") !=0) { - qDebug() << "Remote content disabled"; - return DEFAULT_ALBUM_ART; - } - - std::string image_url = get_lastfm_url(info); - if(image_url.empty()) { - return DEFAULT_ALBUM_ART; - } - QTemporaryFile tempFile; - tempFile.open(); - tempFile.setAutoRemove(true); - QString fname = tempFile.fileName(); - std::string tmpname = fname.toUtf8().data(); - - if(!download_and_store(image_url, tmpname)) { - return DEFAULT_ALBUM_ART; - } - fix_format(tmpname.c_str()); - QFile f(fname); - if(!f.open(QIODevice::ReadWrite)) { - return DEFAULT_ALBUM_ART; - } - QByteArray arr = f.readAll(); - f.close(); - - cache.add_art(info.artist, info.album, arr.data(), arr.size()); - try { - std::string res = cache.get_art_file(info.artist, info.album); - if(res.empty()) - return DEFAULT_ALBUM_ART; - return res; - } catch(...) { - } - return DEFAULT_ALBUM_ART; -} - -QImage AlbumArtProvider::requestImage(const QString &id, QSize *realSize, const QSize &requestedSize) { - Q_UNUSED(requestedSize) - - QUrlQuery query(id); - if (!query.hasQueryItem(QStringLiteral("artist")) || !query.hasQueryItem(QStringLiteral("album"))) { - qWarning() << "Invalid albumart uri:" << id; - return QImage(QString::fromStdString(DEFAULT_ALBUM_ART)); - } - const QString artist = query.queryItemValue(QStringLiteral("artist"), QUrl::FullyEncoded); - const QString album = query.queryItemValue(QStringLiteral("album"), QUrl::FullyEncoded); - - std::string tgt_path; - try { - tgt_path = get_image(artist.toStdString(), album.toStdString()); - if(!tgt_path.empty()) { - QImage image; - image.load(QString::fromStdString(tgt_path)); - // FIXME: Rescale to requested size preserving aspect. - *realSize = image.size(); - return image; - } - } catch(std::exception &e) { - qDebug() << "Album art loader failed: " << e.what(); - } catch(...) { - qDebug() << "Unknown error when generating image."; - } - - QImage fallback(QString::fromStdString(DEFAULT_ALBUM_ART)); - *realSize = fallback.size(); - return fallback; -} diff -Nru unity8-7.84+14.04.20140327.1/plugins/Utils/albumartprovider.h unity8-7.85+14.04.20140401.3/plugins/Utils/albumartprovider.h --- unity8-7.84+14.04.20140327.1/plugins/Utils/albumartprovider.h 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/Utils/albumartprovider.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,56 +0,0 @@ -/* - * Copyright 2013 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 - * 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 Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Authors: Jussi Pakkanen -*/ - -#ifndef ALBUMART_PROVIDER_H_ -#define ALBUMART_PROVIDER_H_ - -#include -#include -#include -#include - -#include "mediaartcache.h" - -struct albuminfo { - std::string artist; - std::string album; -}; - -class AlbumArtProvider : public QQuickImageProvider -{ -public: - AlbumArtProvider(); - ~AlbumArtProvider(); - QImage requestImage(const QString &id, QSize *size, const QSize &requestedSize); - - std::string get_image(const std::string &artist, const std::string &album); - - const static std::string DEFAULT_ALBUM_ART; - const static std::string UNITY_LENS_SCHEMA; -private: - MediaArtCache cache; - GSettings *m_settings; - - void fix_format(const std::string &fname); - - std::string get_lastfm_url(const albuminfo &ai); - - bool download_and_store(const std::string &image_url, const std::string &output_file); -}; - -#endif diff -Nru unity8-7.84+14.04.20140327.1/plugins/Utils/CMakeLists.txt unity8-7.85+14.04.20140401.3/plugins/Utils/CMakeLists.txt --- unity8-7.84+14.04.20140327.1/plugins/Utils/CMakeLists.txt 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/Utils/CMakeLists.txt 2014-04-01 22:56:02.000000000 +0000 @@ -11,13 +11,12 @@ ) set(QMLPLUGIN_SRC - albumartprovider.cpp bottombarvisibilitycommunicatorshell.cpp - mediaartcache.cpp qlimitproxymodelqml.cpp qsortfilterproxymodelqml.cpp timeformatter.cpp unitymenumodelpaths.cpp + easingcurve.cpp plugin.cpp ) @@ -33,7 +32,7 @@ # files directly in targets. set_target_properties(Utils-qml PROPERTIES COMPILE_FLAGS -fvisibility=default) -qt5_use_modules(Utils-qml Qml Quick DBus Network XmlPatterns Concurrent) +qt5_use_modules(Utils-qml Qml Quick DBus Network XmlPatterns Gui Concurrent) # export the qmldir qmltypes and plugin files export_qmlfiles(Utils Utils) diff -Nru unity8-7.84+14.04.20140327.1/plugins/Utils/easingcurve.cpp unity8-7.85+14.04.20140401.3/plugins/Utils/easingcurve.cpp --- unity8-7.84+14.04.20140327.1/plugins/Utils/easingcurve.cpp 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/Utils/easingcurve.cpp 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,67 @@ +/* + * Copyright 2014 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 + * 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Authors: Michael Zanetti +*/ + +#include "easingcurve.h" + + +EasingCurve::EasingCurve(QObject *parent): + QObject(parent) +{ + +} + +QEasingCurve::Type EasingCurve::type() const +{ + return m_easingCurve.type(); +} + +void EasingCurve::setType(const QEasingCurve::Type &type) +{ + m_easingCurve.setType(type); + Q_EMIT typeChanged(); +} + +qreal EasingCurve::period() const +{ + return m_easingCurve.period(); +} + +void EasingCurve::setPeriod(qreal period) +{ + m_easingCurve.setPeriod(period); + Q_EMIT periodChanged(); +} + +qreal EasingCurve::progress() const +{ + return m_progress; +} + +void EasingCurve::setProgress(qreal progress) +{ + if (m_progress != progress) { + m_progress = progress; + m_value = m_easingCurve.valueForProgress(m_progress); + Q_EMIT progressChanged(); + } +} + +qreal EasingCurve::value() const +{ + return m_value; +} diff -Nru unity8-7.84+14.04.20140327.1/plugins/Utils/easingcurve.h unity8-7.85+14.04.20140401.3/plugins/Utils/easingcurve.h --- unity8-7.84+14.04.20140327.1/plugins/Utils/easingcurve.h 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/Utils/easingcurve.h 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,70 @@ +/* + * Copyright 2014 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 + * 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Authors: Michael Zanetti +*/ + +#ifndef EASINGCURVE_H +#define EASINGCURVE_H + +#include +#include + +/** + * @brief The EasingCurve class + * + * This class exposes the QEasingCurve C++ API to QML. + * This is useful for user interactive animations. While the QML Animation types + * all require a "from", "to" and "duration", this one is based on "period" and + * "progress". So you can control the position of the aimation by changing the + * progress, also going back and forward in the animation. Depending on the type + * of the easing curve, value will return the transformed progress. + */ + +class EasingCurve: public QObject +{ + Q_OBJECT + Q_ENUMS(QEasingCurve::Type) + Q_PROPERTY(QEasingCurve::Type type READ type WRITE setType NOTIFY typeChanged) + Q_PROPERTY(qreal period READ period WRITE setPeriod NOTIFY periodChanged) + Q_PROPERTY(qreal progress READ progress WRITE setProgress NOTIFY progressChanged) + Q_PROPERTY(qreal value READ value NOTIFY progressChanged) + +public: + EasingCurve(QObject *parent = 0); + + QEasingCurve::Type type() const; + void setType(const QEasingCurve::Type &type); + + qreal period() const; + void setPeriod(qreal period); + + qreal progress() const; + void setProgress(qreal progress); + + qreal value() const; + +Q_SIGNALS: + void typeChanged(); + void periodChanged(); + void progressChanged(); + +private: + QEasingCurve m_easingCurve; + qreal m_progress; + qreal m_value; +}; + +#endif diff -Nru unity8-7.84+14.04.20140327.1/plugins/Utils/mediaartcache.cpp unity8-7.85+14.04.20140401.3/plugins/Utils/mediaartcache.cpp --- unity8-7.84+14.04.20140327.1/plugins/Utils/mediaartcache.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/Utils/mediaartcache.cpp 1970-01-01 00:00:00.000000000 +0000 @@ -1,178 +0,0 @@ -/* - * This file is part of the Ubuntu TV Media Scanner - * Copyright (C) 2012-2013 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 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 Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Authored by: Jussi Pakkanen - */ - -#include"mediaartcache.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - -using namespace std; - -static string md5(const string &str) { - const unsigned char *buf = (const unsigned char *)str.c_str(); - char *normalized = g_utf8_normalize((const gchar*)buf, str.size(), G_NORMALIZE_ALL); - string final; - gchar *result; - - if(normalized) { - buf = (const unsigned char*)normalized; - } - gssize bytes = str.length(); - - result = g_compute_checksum_for_data(G_CHECKSUM_MD5, buf, bytes); - final = result; - g_free((gpointer)normalized); - g_free(result); - return final; -} - -MediaArtCache::MediaArtCache() { - string xdg_base = g_get_user_cache_dir(); - - if (xdg_base == "") { - string s("Could not determine cache dir."); - throw runtime_error(s); - } - int ec = mkdir(xdg_base.c_str(), S_IRUSR | S_IWUSR | S_IXUSR); - if (ec < 0 && errno != EEXIST) { - string s("Could not create base dir."); - throw runtime_error(s); - } - root_dir = xdg_base + "/media-art"; - ec = mkdir(root_dir.c_str(), S_IRUSR | S_IWUSR | S_IXUSR); - if (ec < 0 && errno != EEXIST) { - string s("Could not create cache dir."); - throw runtime_error(s); - } -} - -bool MediaArtCache::has_art(const std::string &artist, const std::string &album) const { - string fname = get_art_file(artist, album); - return access(fname.c_str(), R_OK) == 0; -} - -void MediaArtCache::add_art(const std::string &artist, const std::string &album, - char *data, unsigned int datalen) { - string abs_fname = get_full_filename(artist, album); - GError *err = nullptr; - if(!g_file_set_contents(abs_fname.c_str(), data, datalen, &err)) { - string e("Could not write file "); - e += abs_fname; - e += ": "; - e += err->message; - g_error_free(err); - throw runtime_error(e); - } -} - -string MediaArtCache::get_art_file(const std::string &artist, const std::string &album) const { - string abs_fname = get_full_filename(artist, album); - - if (access(abs_fname.c_str(), R_OK) == 0) { - utime(abs_fname.c_str(), nullptr); // update access times to current time - return abs_fname; - } - return ""; -} - -std::string MediaArtCache::get_full_filename(const std::string &artist, const std::string & album) const { - return root_dir + "/" + compute_base_name(artist, album); -} - - -std::string MediaArtCache::compute_base_name(const std::string &artist, const std::string &album) const { - string type = "album"; - string h1 = md5(artist); - string h2 = md5(album); - return type + "-" + h1 + "-" + h2 + ".jpg"; -} - - -void MediaArtCache::clear() const { - DIR *d = opendir(root_dir.c_str()); - if(!d) { - string s = "Something went wrong."; - throw runtime_error(s); - } - struct dirent *entry, *de; - entry = (dirent*)malloc(sizeof(dirent) + NAME_MAX); - while(readdir_r(d, entry, &de) == 0 && de) { - string basename = entry->d_name; - if (basename == "." || basename == "..") - continue; - string fname = root_dir + "/" + basename; - if(remove(fname.c_str()) < 0) { - // This is not really an error worth - // halting everything for. - fprintf(stderr, "Could not delete file %s: %s.\n", fname.c_str(), - strerror(errno)); - } - } - free(entry); - closedir(d); -} - -void MediaArtCache::prune() { - vector> mtimes; - DIR *d = opendir(root_dir.c_str()); - if(!d) { - string s = "Something went wrong."; - throw runtime_error(s); - } - struct dirent *entry, *de; - entry = (dirent*)malloc(sizeof(dirent) + NAME_MAX); - while(readdir_r(d, entry, &de) == 0 && de) { - string basename = entry->d_name; - if (basename == "." || basename == "..") - continue; - string fname = root_dir + "/" + basename; - struct stat sbuf; - if(stat(fname.c_str(), &sbuf) != 0) { - continue; - } - // Use mtime because atime is not guaranteed to work if, for example - // the filesystem is mounted with noatime or relatime. - mtimes.push_back(make_pair(sbuf.st_mtim.tv_sec + sbuf.st_mtim.tv_nsec/1000000000.0, fname)); - } - free(entry); - closedir(d); - if (mtimes.size() <= MAX_SIZE) - return; - sort(mtimes.begin(), mtimes.end()); - for(size_t i=0; i < mtimes.size()-MAX_SIZE; i++) { - if(remove(mtimes[i].second.c_str()) < 0) { - fprintf(stderr, "Could not remove file %s: %s.\n", - mtimes[i].second.c_str(), strerror(errno)); - } - } -} diff -Nru unity8-7.84+14.04.20140327.1/plugins/Utils/mediaartcache.h unity8-7.85+14.04.20140401.3/plugins/Utils/mediaartcache.h --- unity8-7.84+14.04.20140327.1/plugins/Utils/mediaartcache.h 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/Utils/mediaartcache.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,54 +0,0 @@ -/* - * This file is part of the Ubuntu TV Media Scanner - * Copyright (C) 2012-2013 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 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 Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program. If not, see . - * - * Authored by: Jussi Pakkanen - */ - -#ifndef MEDIAARTCACHE_H -#define MEDIAARTCACHE_H - -#include - -/* - * A class to store thumbnails for files according to - * https://wiki.gnome.org/MediaArtStorageSpec - * - * As this class deals mostly with the filesystem, all - * errors are reported with runtime_error exceptions. - */ - - -class MediaArtCache { -private: - std::string root_dir; - - std::string compute_base_name(const std::string &artist, const std::string &album) const; - std::string get_full_filename(const std::string &artist, const std::string & album) const; - -public: - static const unsigned int MAX_SIZE = 200; - - MediaArtCache(); - bool has_art(const std::string &artist, const std::string &album) const; - void add_art(const std::string &artist, const std::string &album, - char *data, unsigned int datalen); - std::string get_art_file(const std::string &artist, const std::string &album) const; - void clear() const; - void prune(); - std::string get_cache_dir() const { return root_dir; } -}; - -#endif diff -Nru unity8-7.84+14.04.20140327.1/plugins/Utils/plugin.cpp unity8-7.85+14.04.20140401.3/plugins/Utils/plugin.cpp --- unity8-7.84+14.04.20140327.1/plugins/Utils/plugin.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/plugins/Utils/plugin.cpp 2014-04-01 22:56:02.000000000 +0000 @@ -26,12 +26,12 @@ #include "plugin.h" // local -#include "albumartprovider.h" #include "bottombarvisibilitycommunicatorshell.h" #include "qlimitproxymodelqml.h" #include "qsortfilterproxymodelqml.h" #include "timeformatter.h" #include "unitymenumodelpaths.h" +#include "easingcurve.h" static const char* BOTTOM_BAR_VISIBILITY_COMMUNICATOR_DBUS_PATH = "/BottomBarVisibilityCommunicator"; static const char* DBUS_SERVICE = "com.canonical.Shell.BottomBarVisibilityCommunicator"; @@ -46,25 +46,13 @@ qmlRegisterType(uri, 0, 1, "TimeFormatter"); qmlRegisterType(uri, 0, 1, "GDateTimeFormatter"); qmlRegisterUncreatableType(uri, 0, 1, "BottomBarVisibilityCommunicatorShell", "Can't create BottomBarVisibilityCommunicatorShell"); + qmlRegisterType(uri, 0, 1, "EasingCurve"); } void UtilsPlugin::initializeEngine(QQmlEngine *engine, const char *uri) { QQmlExtensionPlugin::initializeEngine(engine, uri); - try - { - engine->addImageProvider(QLatin1String("albumart"), new AlbumArtProvider); - } - catch (const std::runtime_error &e) - { - qWarning() << "Failed to register image provider for albumart:" << e.what(); - } - catch (...) - { - qWarning() << "Failed to register image provider for albumart (unknown error)"; - } - QDBusConnection::sessionBus().registerService(DBUS_SERVICE); BottomBarVisibilityCommunicatorShell *bottomBarVisibilityCommunicator = &BottomBarVisibilityCommunicatorShell::instance(); QDBusConnection::sessionBus().registerObject(BOTTOM_BAR_VISIBILITY_COMMUNICATOR_DBUS_PATH, bottomBarVisibilityCommunicator, QDBusConnection::ExportAllContents); diff -Nru unity8-7.84+14.04.20140327.1/po/am.po unity8-7.85+14.04.20140401.3/po/am.po --- unity8-7.84+14.04.20140327.1/po/am.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/am.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-18 19:28+0000\n" "Last-Translator: samson \n" "Language-Team: Amharic \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" - -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "መላኪያ" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "አስተያየቶች:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "" @@ -172,7 +159,14 @@ msgid "Search" msgstr "መፈለጊያ" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "እባክዎን ያስገቡ %1" + +#~ msgid "Comments:" +#~ msgstr "አስተያየቶች:" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/ar.po unity8-7.85+14.04.20140401.3/po/ar.po --- unity8-7.84+14.04.20140327.1/po/ar.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ar.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-02-21 11:19+0000\n" "Last-Translator: Ibrahim Saed \n" "Language-Team: Arabic \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -77,7 +77,7 @@ "أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك

انقر على " "الشاشة للبدء" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "عمليات البحث الأخيرة" @@ -85,31 +85,18 @@ msgid "See more" msgstr "شاهد المزيد" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "شاهد أقل" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "قيّم ذلك" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "لا تعليقات (%1)" -msgstr[1] "تعليق واحد (%1)" -msgstr[2] "تعليقان (%1)" -msgstr[3] "%1 تعليقات" -msgstr[4] "%1 تعليقا" -msgstr[5] "%1 تعليق" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -119,22 +106,18 @@ msgid "Less..." msgstr "أقل..." -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "قيّم ذلك" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "أضف تعليق" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "أرسل" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "التعليق" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "التعليقات:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "مكالمة طوارئ" @@ -180,7 +163,27 @@ msgid "Search" msgstr "ابحث" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "من فضلك أدخِل %1" + +#~ msgid "Review" +#~ msgstr "التعليق" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "التعليقات:" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "لا تعليقات (%1)" +#~ msgstr[1] "تعليق واحد (%1)" +#~ msgstr[2] "تعليقان (%1)" +#~ msgstr[3] "%1 تعليقات" +#~ msgstr[4] "%1 تعليقا" +#~ msgstr[5] "%1 تعليق" diff -Nru unity8-7.84+14.04.20140327.1/po/ast.po unity8-7.85+14.04.20140401.3/po/ast.po --- unity8-7.84+14.04.20140327.1/po/ast.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ast.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-03-01 16:51+0000\n" "Last-Translator: Xuacu Saturio \n" "Language-Team: Asturian \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -77,7 +77,7 @@ "Agora domina los xestos de los bordes y pue principiar a usar el " "teléfonu

Toque la pantalla pa comenzar" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Busques recientes" @@ -85,27 +85,18 @@ msgid "See more" msgstr "Ver más" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "Ver menos" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Valorar esto" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 reseña" -msgstr[1] "%1 reseñes" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -115,22 +106,18 @@ msgid "Less..." msgstr "Menos…" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Valorar esto" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Amestar una reseña" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Unviar" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Revisar" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Comentarios:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Llamada d'emerxencia" @@ -176,7 +163,23 @@ msgid "Search" msgstr "Guetar" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Introduz %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Comentarios:" + +#~ msgid "Review" +#~ msgstr "Revisar" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 reseña" +#~ msgstr[1] "%1 reseñes" diff -Nru unity8-7.84+14.04.20140327.1/po/az.po unity8-7.85+14.04.20140401.3/po/az.po --- unity8-7.84+14.04.20140327.1/po/az.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/az.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-15 09:50+0000\n" "Last-Translator: Turan Mahmudov \n" "Language-Team: Azerbaijani \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -74,7 +74,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Son axtarışlar" @@ -82,27 +82,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Qiymət ver" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 rəy" -msgstr[1] "%1 rəy" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -112,22 +103,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Qiymət ver" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Rəy yaz" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Göndər" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Rəy" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Şərhlər:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Zərurət zəngi" @@ -173,7 +160,23 @@ msgid "Search" msgstr "Axtar" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Xahiş edirik daxil edin: %1" + +#~ msgid "Comments:" +#~ msgstr "Şərhlər:" + +#~ msgid "Review" +#~ msgstr "Rəy" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 rəy" +#~ msgstr[1] "%1 rəy" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/bg.po unity8-7.85+14.04.20140401.3/po/bg.po --- unity8-7.84+14.04.20140327.1/po/bg.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/bg.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-28 19:22+0000\n" "Last-Translator: Atanas Kovachki \n" "Language-Team: Bulgarian \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -80,7 +80,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Последни търсения" @@ -88,27 +88,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Оценете това" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 отзив" -msgstr[1] "%1 отзива" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -118,22 +109,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Оценете това" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Добави отзив" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Изпрати" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Отзив" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Коментари:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Спешно повикване" @@ -179,7 +166,23 @@ msgid "Search" msgstr "Търсене" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Моля, въведете %1" + +#~ msgid "Review" +#~ msgstr "Отзив" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 отзив" +#~ msgstr[1] "%1 отзива" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Коментари:" diff -Nru unity8-7.84+14.04.20140327.1/po/bs.po unity8-7.85+14.04.20140401.3/po/bs.po --- unity8-7.84+14.04.20140327.1/po/bs.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/bs.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-16 22:33+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Bosnian \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -74,7 +74,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -82,28 +82,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -112,20 +103,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -173,7 +160,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/ca.po unity8-7.85+14.04.20140401.3/po/ca.po --- unity8-7.84+14.04.20140327.1/po/ca.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ca.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-10 07:45+0000\n" "Last-Translator: Adolfo Jayme \n" "Language-Team: Catalan \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -79,7 +79,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Cerques recents" @@ -87,27 +87,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" - -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 ressenya" -msgstr[1] "%1 ressenyes" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -117,22 +108,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Afegiu una ressenya" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Envia" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Ressenya" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Comentaris:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Trucada d'emergència" @@ -178,7 +165,23 @@ msgid "Search" msgstr "Cerca" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Introduïu %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Comentaris:" + +#~ msgid "Review" +#~ msgstr "Ressenya" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 ressenya" +#~ msgstr[1] "%1 ressenyes" diff -Nru unity8-7.84+14.04.20140327.1/po/ckb.po unity8-7.85+14.04.20140401.3/po/ckb.po --- unity8-7.84+14.04.20140327.1/po/ckb.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ckb.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-21 11:05+0000\n" "Last-Translator: Aras \n" "Language-Team: Kurdish (Sorani) \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "دوایین گەڕانەکان" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "پلە دابنی بۆی" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 پێداچوونەوە" -msgstr[1] "%1 پێداچوونەوەکان" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "پلە دابنی بۆی" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "پێداچوونەوە زۆر بکە" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "ناردن" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "پێداچوونەوە" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "لێدوانەکان:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "هێڵی فریاگوزاری" @@ -172,7 +159,23 @@ msgid "Search" msgstr "گەڕان" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "تکایە %1 بنووسە" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "لێدوانەکان:" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 پێداچوونەوە" +#~ msgstr[1] "%1 پێداچوونەوەکان" + +#~ msgid "Review" +#~ msgstr "پێداچوونەوە" diff -Nru unity8-7.84+14.04.20140327.1/po/cs.po unity8-7.85+14.04.20140401.3/po/cs.po --- unity8-7.84+14.04.20140327.1/po/cs.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/cs.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-08 10:11+0000\n" "Last-Translator: Tadeáš Pařík \n" "Language-Team: Czech \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Poslední vyhledávání" @@ -81,28 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Ohodnoťte to" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 recenze" -msgstr[1] "%1 recenze" -msgstr[2] "%1 recenzí" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -112,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Ohodnoťte to" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Přidat recenzi" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Odeslat" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Recenze" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Komentáře:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Tísňové volání" @@ -173,7 +159,24 @@ msgid "Search" msgstr "Hledat" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Zadejte prosím %1" + +#~ msgid "Comments:" +#~ msgstr "Komentáře:" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Review" +#~ msgstr "Recenze" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 recenze" +#~ msgstr[1] "%1 recenze" +#~ msgstr[2] "%1 recenzí" diff -Nru unity8-7.84+14.04.20140327.1/po/da.po unity8-7.85+14.04.20140401.3/po/da.po --- unity8-7.84+14.04.20140327.1/po/da.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/da.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-14 20:16+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Danish \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/de.po unity8-7.85+14.04.20140401.3/po/de.po --- unity8-7.84+14.04.20140327.1/po/de.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/de.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-15 11:01+0000\n" "Last-Translator: Dennis Baudys \n" "Language-Team: German \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -75,7 +75,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Letzte Suchbegriffe" @@ -83,27 +83,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Bewerten" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 Bewertung" -msgstr[1] "%1 Bewertungen" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -113,22 +104,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Bewerten" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Bewertung hinzufügen" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Senden" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Bewertung" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Kommentare:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Notruf" @@ -174,7 +161,23 @@ msgid "Search" msgstr "Suchen" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Bitte geben Sie %1 ein" + +#~ msgid "Comments:" +#~ msgstr "Kommentare:" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Review" +#~ msgstr "Bewertung" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 Bewertung" +#~ msgstr[1] "%1 Bewertungen" diff -Nru unity8-7.84+14.04.20140327.1/po/el.po unity8-7.85+14.04.20140401.3/po/el.po --- unity8-7.84+14.04.20140327.1/po/el.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/el.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-02-26 09:58+0000\n" "Last-Translator: j3lc \n" "Language-Team: Greek \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -77,7 +77,7 @@ "Πλέον γνωρίζετε τις χειρονομίες από τα άκρα και μπορείτε να ξεκινήσετε να " "χρησιμοποιείτε το τηλέφωνο

Αγγίξτε την οθόνη για να ξεκινήσετε" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Πρόσφατες αναζητήσεις" @@ -85,27 +85,18 @@ msgid "See more" msgstr "Περρισότερα" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "Λιγότερα" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Βαθμολογήστε το" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 αξιολόγηση" -msgstr[1] "%1 αξιολογήσεις" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -115,22 +106,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Βαθμολογήστε το" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Προσθέστε την αξιολόγησή σας" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Αποστολή" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Αξιολόγηση" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Σχόλια:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Κλήση έκτακτης ανάγκης" @@ -176,7 +163,23 @@ msgid "Search" msgstr "Αναζήτηση" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Πληκτρολογήστε %1" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 αξιολόγηση" +#~ msgstr[1] "%1 αξιολογήσεις" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Σχόλια:" + +#~ msgid "Review" +#~ msgstr "Αξιολόγηση" diff -Nru unity8-7.84+14.04.20140327.1/po/en_AU.po unity8-7.85+14.04.20140401.3/po/en_AU.po --- unity8-7.84+14.04.20140327.1/po/en_AU.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/en_AU.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-09-28 07:46+0000\n" "Last-Translator: Jared Norris \n" "Language-Team: English (Australia) \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Recent searches" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Rate this" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 review" -msgstr[1] "%1 reviews" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Rate this" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Add a review" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Send" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Review" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Comments:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Emergency Call" @@ -172,7 +159,23 @@ msgid "Search" msgstr "Search" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Please enter %1" + +#~ msgid "Comments:" +#~ msgstr "Comments:" + +#~ msgid "Review" +#~ msgstr "Review" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 review" +#~ msgstr[1] "%1 reviews" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/en_GB.po unity8-7.85+14.04.20140401.3/po/en_GB.po --- unity8-7.84+14.04.20140327.1/po/en_GB.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/en_GB.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-03-07 13:27+0000\n" "Last-Translator: Andi Chandler \n" "Language-Team: English (United Kingdom) \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -75,7 +75,7 @@ "You have now mastered the edge gestures and can start using the " "phone

Tap on the screen to start" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Recent searches" @@ -83,27 +83,18 @@ msgid "See more" msgstr "See more" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "See less" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Rate this" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 review" -msgstr[1] "%1 reviews" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -113,22 +104,18 @@ msgid "Less..." msgstr "Less..." -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Rate this" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Add a review" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Send" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Review" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Comments:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Emergency Call" @@ -174,7 +161,23 @@ msgid "Search" msgstr "Search" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Please enter %1" + +#~ msgid "Comments:" +#~ msgstr "Comments:" + +#~ msgid "Review" +#~ msgstr "Review" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 review" +#~ msgstr[1] "%1 reviews" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/eo.po unity8-7.85+14.04.20140401.3/po/eo.po --- unity8-7.84+14.04.20140327.1/po/eo.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/eo.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-26 22:35+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Esperanto \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/es.po unity8-7.85+14.04.20140401.3/po/es.po --- unity8-7.84+14.04.20140327.1/po/es.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/es.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,15 +7,14 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" -"PO-Revision-Date: 2014-02-20 05:43+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" +"PO-Revision-Date: 2014-03-28 22:37+0000\n" "Last-Translator: Adolfo Jayme \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-29 07:34+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -78,7 +77,7 @@ "Ahora domina los gestos de los bordes y puede usar el teléfono

Toque " "la pantalla para comenzar" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Búsquedas recientes" @@ -86,27 +85,18 @@ msgid "See more" msgstr "Ver más" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "Ver menos" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Valorar esto" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "Recientes" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 reseña" -msgstr[1] "%1 reseñas" +msgid "%1 Preview" +msgstr "Previsualización de %1" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -116,22 +106,18 @@ msgid "Less..." msgstr "Menos…" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Valorar esto" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Añadir una reseña" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Enviar" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Reseñar" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Comentarios:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Llamada de emergencia" @@ -177,7 +163,7 @@ msgid "Search" msgstr "Buscar" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Introduzca %1" diff -Nru unity8-7.84+14.04.20140327.1/po/eu.po unity8-7.85+14.04.20140401.3/po/eu.po --- unity8-7.84+14.04.20140327.1/po/eu.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/eu.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,15 +7,14 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" -"PO-Revision-Date: 2014-03-17 20:56+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" +"PO-Revision-Date: 2014-03-30 12:44+0000\n" "Last-Translator: Ibai Oihanguren Sala \n" "Language-Team: Basque \n" "MIME-Version: 1.0\n" "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-31 06:44+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -77,7 +76,7 @@ "Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has " "zaitezke

Ukitu pantaila hasteko" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Azken bilaketak" @@ -85,27 +84,18 @@ msgid "See more" msgstr "Ikusi gehiago" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "Ikusi gutxiago" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Puntuatu hau" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "Azkenak" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "kritika %1" -msgstr[1] "%1 kritika" +msgid "%1 Preview" +msgstr "%1 aurrebista" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -115,22 +105,18 @@ msgid "Less..." msgstr "Gutxiago..." -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Puntuatu hau" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Gehitu kritika" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Bidali" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Egin kritika" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Iruzkinak:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Larrialdi-deia" @@ -176,7 +162,7 @@ msgid "Search" msgstr "Bilatu" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Sartu %1" diff -Nru unity8-7.84+14.04.20140327.1/po/fa.po unity8-7.85+14.04.20140401.3/po/fa.po --- unity8-7.84+14.04.20140327.1/po/fa.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/fa.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-10-31 19:02+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Persian \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/fi.po unity8-7.85+14.04.20140401.3/po/fi.po --- unity8-7.84+14.04.20140327.1/po/fi.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/fi.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-03-09 19:22+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -75,7 +75,7 @@ "Hallitset nyt reunaeleet, joten voit aloittaa puhelimen " "käytön

Napauta näyttöä aloittaaksesi" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Viimeisimmät haut" @@ -83,27 +83,18 @@ msgid "See more" msgstr "Näytä lisää" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "Näytä vähemmän" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Arvioi tämä" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 arvostelu" -msgstr[1] "%1 arvostelua" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -113,22 +104,18 @@ msgid "Less..." msgstr "Vähemmän..." -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Arvioi tämä" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Lisää arvostelu" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Lähetä" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Arvostelu" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Kommentit:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Hätäpuhelu" @@ -174,7 +161,23 @@ msgid "Search" msgstr "Hae" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Kirjoita %1" + +#~ msgid "Comments:" +#~ msgstr "Kommentit:" + +#~ msgid "Review" +#~ msgstr "Arvostelu" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 arvostelu" +#~ msgstr[1] "%1 arvostelua" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/fo.po unity8-7.85+14.04.20140401.3/po/fo.po --- unity8-7.84+14.04.20140327.1/po/fo.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/fo.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-14 20:08+0000\n" "Last-Translator: Jógvan Olsen \n" "Language-Team: Faroese \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "Leita" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/fr.po unity8-7.85+14.04.20140401.3/po/fr.po --- unity8-7.84+14.04.20140327.1/po/fr.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/fr.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-28 00:34+0000\n" "Last-Translator: Pierre \n" "Language-Team: French \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Recherches récentes" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Evaluez ceci" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 avis" -msgstr[1] "%1 avis" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Evaluez ceci" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Ajouter un avis" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Envoyer" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Avis" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Commentaires :" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Appel d'urgence" @@ -172,7 +159,23 @@ msgid "Search" msgstr "Rechercher" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Veuillez saisir %1" + +#~ msgid "Review" +#~ msgstr "Avis" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 avis" +#~ msgstr[1] "%1 avis" + +#~ msgid "Comments:" +#~ msgstr "Commentaires :" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/gd.po unity8-7.85+14.04.20140401.3/po/gd.po --- unity8-7.84+14.04.20140327.1/po/gd.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/gd.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-09-30 10:34+0000\n" "Last-Translator: Akerbeltz \n" "Language-Team: Gaelic; Scottish \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -80,7 +80,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Na lorg thu o chionn goirid" @@ -88,29 +88,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Rangaich seo" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 lèirmheas" -msgstr[1] "%1 lèirmheas" -msgstr[2] "%1 lèirmheasan" -msgstr[3] "%1 lèirmheas" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -120,22 +109,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Rangaich seo" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Cuir lèirmheas ris" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Cuir" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Lèirmheas" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Beachdan" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Gairm èiginn" @@ -181,7 +166,25 @@ msgid "Search" msgstr "Lorg" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Cuir a-steach %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Beachdan" + +#~ msgid "Review" +#~ msgstr "Lèirmheas" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 lèirmheas" +#~ msgstr[1] "%1 lèirmheas" +#~ msgstr[2] "%1 lèirmheasan" +#~ msgstr[3] "%1 lèirmheas" diff -Nru unity8-7.84+14.04.20140327.1/po/gl.po unity8-7.85+14.04.20140401.3/po/gl.po --- unity8-7.84+14.04.20140327.1/po/gl.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/gl.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-03-08 06:58+0000\n" "Last-Translator: Marcos Lans \n" "Language-Team: Galician \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -75,7 +75,7 @@ "Agora xa domina os xestos do bordo e pode comezar a usar o " "teléfono

Toque na pantalla para comezar" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Buscas recentes" @@ -83,27 +83,18 @@ msgid "See more" msgstr "Ver máis" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "Ver menos" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Valore isto" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 opinión" -msgstr[1] "%1 opinións" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -113,22 +104,18 @@ msgid "Less..." msgstr "Menos..." -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Valore isto" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Engadir unha opinión" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Enviar" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Opinión" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Comentarios:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Chamada de emerxencia" @@ -174,7 +161,23 @@ msgid "Search" msgstr "Buscar" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Introduza %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Comentarios:" + +#~ msgid "Review" +#~ msgstr "Opinión" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 opinión" +#~ msgstr[1] "%1 opinións" diff -Nru unity8-7.84+14.04.20140327.1/po/he.po unity8-7.85+14.04.20140401.3/po/he.po --- unity8-7.84+14.04.20140327.1/po/he.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/he.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-11-20 08:30+0000\n" "Last-Translator: Yaron \n" "Language-Team: Hebrew \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "חיפושים אחרונים" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "דירוג היישום" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "סקירה %1" -msgstr[1] "%1 סקירות" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "דירוג היישום" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "הוספת סקירה" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "שליחה" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "סקירה" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "הערות:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "שיחת חירום" @@ -172,7 +159,23 @@ msgid "Search" msgstr "חיפוש" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "נא להזין %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "הערות:" + +#~ msgid "Review" +#~ msgstr "סקירה" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "סקירה %1" +#~ msgstr[1] "%1 סקירות" diff -Nru unity8-7.84+14.04.20140327.1/po/hi.po unity8-7.85+14.04.20140401.3/po/hi.po --- unity8-7.84+14.04.20140327.1/po/hi.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/hi.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-15 01:49+0000\n" "Last-Translator: Siddhanathan S. \n" "Language-Team: Hindi \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "पिछले खोजों" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "समीक्षा दे" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "भेजें" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "समीक्षा" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "आपातकालीन कॉल" @@ -172,7 +159,10 @@ msgid "Search" msgstr "खोजें" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" + +#~ msgid "Review" +#~ msgstr "समीक्षा" diff -Nru unity8-7.84+14.04.20140327.1/po/hr.po unity8-7.85+14.04.20140401.3/po/hr.po --- unity8-7.84+14.04.20140327.1/po/hr.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/hr.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-27 04:14+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Croatian \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -74,7 +74,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Nedavne pretrage" @@ -82,28 +82,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -112,20 +103,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -173,7 +160,7 @@ msgid "Search" msgstr "Pretraživanje" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/hu.po unity8-7.85+14.04.20140401.3/po/hu.po --- unity8-7.84+14.04.20140327.1/po/hu.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/hu.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-14 23:02+0000\n" "Last-Translator: Kristóf Kiszel \n" "Language-Team: Hungarian \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -75,7 +75,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Legutóbbi keresések" @@ -83,27 +83,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Osztályzás" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 értékelés" -msgstr[1] "%1 értékelés" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -113,22 +104,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Osztályzás" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Értékelés hozzáadása" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Küldés" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Értékelés" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Hozzászólások:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Vészhívás" @@ -174,7 +161,23 @@ msgid "Search" msgstr "Keresés" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Adja meg a következőt: %1" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 értékelés" +#~ msgstr[1] "%1 értékelés" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Hozzászólások:" + +#~ msgid "Review" +#~ msgstr "Értékelés" diff -Nru unity8-7.84+14.04.20140327.1/po/hy.po unity8-7.85+14.04.20140401.3/po/hy.po --- unity8-7.84+14.04.20140327.1/po/hy.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/hy.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-27 04:43+0000\n" "Last-Translator: iAbaS \n" "Language-Team: Armenian \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Վերջին որոնումներ" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "Որոնում" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/id.po unity8-7.85+14.04.20140401.3/po/id.po --- unity8-7.84+14.04.20140327.1/po/id.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/id.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-26 22:35+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Indonesian \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/is.po unity8-7.85+14.04.20140401.3/po/is.po --- unity8-7.84+14.04.20140327.1/po/is.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/is.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-09-18 16:22+0000\n" "Last-Translator: Andri Thorlacius \n" "Language-Team: Icelandic \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -74,7 +74,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Nýlegar leitir" @@ -82,27 +82,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Gefa þessu einkunn" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 ummæli" -msgstr[1] "%1 ummæli" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -112,22 +103,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Gefa þessu einkunn" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Gefa umsögn" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Senda" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Umsögn" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Athugasemdir:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Neyðarsímtal" @@ -173,7 +160,23 @@ msgid "Search" msgstr "Leita" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Athugasemdir:" + +#~ msgid "Review" +#~ msgstr "Umsögn" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 ummæli" +#~ msgstr[1] "%1 ummæli" diff -Nru unity8-7.84+14.04.20140327.1/po/it.po unity8-7.85+14.04.20140401.3/po/it.po --- unity8-7.84+14.04.20140327.1/po/it.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/it.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-22 09:15+0000\n" "Last-Translator: Domenico \n" "Language-Team: Italian \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -78,7 +78,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Ricerche recenti" @@ -86,27 +86,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Valuta" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 recensione" -msgstr[1] "%1 recensioni" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -116,22 +107,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Valuta" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Aggiungi una recensione" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Invia" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Recensisci" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Commenti:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Chiamata di emergenza" @@ -177,7 +164,23 @@ msgid "Search" msgstr "Cerca" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Inserire %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 recensione" +#~ msgstr[1] "%1 recensioni" + +#~ msgid "Comments:" +#~ msgstr "Commenti:" + +#~ msgid "Review" +#~ msgstr "Recensisci" diff -Nru unity8-7.84+14.04.20140327.1/po/ja.po unity8-7.85+14.04.20140401.3/po/ja.po --- unity8-7.84+14.04.20140327.1/po/ja.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ja.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-18 07:01+0000\n" "Last-Translator: Shushi Kurose \n" "Language-Team: Japanese \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "最近の検索" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" - -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "送信" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "コメント:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "" @@ -172,7 +159,14 @@ msgid "Search" msgstr "検索" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" + +#~ msgid "Comments:" +#~ msgstr "コメント:" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/km.po unity8-7.85+14.04.20140401.3/po/km.po --- unity8-7.84+14.04.20140327.1/po/km.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/km.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-03-04 02:32+0000\n" "Last-Translator: Khoem Sokhem \n" "Language-Team: Khmer \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -77,7 +77,7 @@ "ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ " "និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ

ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "ការ​ស្វែងរក​ថ្មី" @@ -85,26 +85,18 @@ msgid "See more" msgstr "មើល​ច្រើន​ទៀត" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "មើល​តិច​ជាង" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "វាយតម្លៃ​វា" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "ពិនិត្យ​មើល %1" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -114,22 +106,18 @@ msgid "Less..." msgstr "តិច​ជាង..." -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "វាយតម្លៃ​វា" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "បន្ថែម​ការ​ពិនិត្យ" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "ផ្ញើ" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "ការ​ពិនិត្យ" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "មតិយោបល់៖" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "ការ​ហៅ​ពេល​អាសន្ន" @@ -175,7 +163,22 @@ msgid "Search" msgstr "ស្វែង​រក" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "សូម​បញ្ចូល %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "ពិនិត្យ​មើល %1" + +#~ msgid "Comments:" +#~ msgstr "មតិយោបល់៖" + +#~ msgid "Review" +#~ msgstr "ការ​ពិនិត្យ" diff -Nru unity8-7.84+14.04.20140327.1/po/kn.po unity8-7.85+14.04.20140401.3/po/kn.po --- unity8-7.84+14.04.20140327.1/po/kn.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/kn.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-27 05:43+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Kannada \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "ಹುಡುಕು" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/ko.po unity8-7.85+14.04.20140401.3/po/ko.po --- unity8-7.84+14.04.20140327.1/po/ko.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ko.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-10-10 07:04+0000\n" "Last-Translator: Kim Boram \n" "Language-Team: Korean \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "최근 검색" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "검색" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/ky.po unity8-7.85+14.04.20140401.3/po/ky.po --- unity8-7.84+14.04.20140327.1/po/ky.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ky.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-27 06:17+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Kirghiz \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Соңку издөөлөр" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "Издөө" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/lo.po unity8-7.85+14.04.20140401.3/po/lo.po --- unity8-7.84+14.04.20140327.1/po/lo.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/lo.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-10-02 10:00+0000\n" "Last-Translator: Anousak \n" "Language-Team: Lao \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" - -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "ສົ່ງ" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "ຄໍ່ເຫັນ" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "" @@ -172,7 +159,14 @@ msgid "Search" msgstr "ຊອກຫາ" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "ກະລູນາປ້ອນ %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "ຄໍ່ເຫັນ" diff -Nru unity8-7.84+14.04.20140327.1/po/lt.po unity8-7.85+14.04.20140401.3/po/lt.po --- unity8-7.84+14.04.20140327.1/po/lt.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/lt.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-15 12:42+0000\n" "Last-Translator: Gediminas Paulauskas \n" "Language-Team: Lithuanian \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -77,7 +77,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Paskiausios paieškos" @@ -85,28 +85,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Įvertinkite tai" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 apžvalga" -msgstr[1] "%1 apžvalgos" -msgstr[2] "%1 apžvalgų" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -116,22 +106,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Įvertinkite tai" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Pridėkite apžvalgą" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Siųsti" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Apžvalga" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Komentarai:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Pagalbos skambutis" @@ -177,7 +163,24 @@ msgid "Search" msgstr "Paieška" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Prašom įvesti %1" + +#~ msgid "Comments:" +#~ msgstr "Komentarai:" + +#~ msgid "Review" +#~ msgstr "Apžvalga" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 apžvalga" +#~ msgstr[1] "%1 apžvalgos" +#~ msgstr[2] "%1 apžvalgų" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/lv.po unity8-7.85+14.04.20140401.3/po/lv.po --- unity8-7.84+14.04.20140327.1/po/lv.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/lv.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-11 16:48+0000\n" "Last-Translator: Jānis-Marks Gailis \n" "Language-Team: Latvian \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Nesen veiktās meklēšanas" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "Meklēt" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/ml.po unity8-7.85+14.04.20140401.3/po/ml.po --- unity8-7.84+14.04.20140327.1/po/ml.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ml.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-11-23 11:44+0000\n" "Last-Translator: STyM Alfazz \n" "Language-Team: Malayalam \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -75,7 +75,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "സമീപകാല തിരയലുകള്‍" @@ -83,27 +83,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "ഇത് അവലോകനം ചെയ്യുക" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 അവലോകനം" -msgstr[1] "%1 അവലോകനങ്ങള്‍" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -113,22 +104,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "ഇത് അവലോകനം ചെയ്യുക" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "ഒരു അവലോകനം ചേര്‍ക്കുക" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "അയയ്‌ക്കുക" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "അവലോകനം" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "അഭിപ്രായങ്ങള്‍:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "അടിയന്തിര വിളി" @@ -174,7 +161,23 @@ msgid "Search" msgstr "തിരയുക" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "ദയവായി %1 നല്‍കുക" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "അഭിപ്രായങ്ങള്‍:" + +#~ msgid "Review" +#~ msgstr "അവലോകനം" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 അവലോകനം" +#~ msgstr[1] "%1 അവലോകനങ്ങള്‍" diff -Nru unity8-7.84+14.04.20140327.1/po/mr.po unity8-7.85+14.04.20140401.3/po/mr.po --- unity8-7.84+14.04.20140327.1/po/mr.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/mr.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-14 19:54+0000\n" "Last-Translator: Rohan Deshmukh \n" "Language-Team: Marathi \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/ms.po unity8-7.85+14.04.20140401.3/po/ms.po --- unity8-7.84+14.04.20140327.1/po/ms.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ms.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-17 09:05+0000\n" "Last-Translator: abuyop \n" "Language-Team: Malay \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Gelintar baru-baru ini" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Kadar ini" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 ulasan" -msgstr[1] "%1 ulasan" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Kadar ini" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Tambah ulasan" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Hantar" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Tinjauan" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Ulasan:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "panggilan Kecemasan" @@ -172,7 +159,23 @@ msgid "Search" msgstr "Gelintar" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Sila masukkan %1" + +#~ msgid "Comments:" +#~ msgstr "Ulasan:" + +#~ msgid "Review" +#~ msgstr "Tinjauan" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 ulasan" +#~ msgstr[1] "%1 ulasan" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/my.po unity8-7.85+14.04.20140401.3/po/my.po --- unity8-7.84+14.04.20140327.1/po/my.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/my.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-12-12 11:12+0000\n" "Last-Translator: Pyae Sone \n" "Language-Team: Burmese \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "မကြာသေးခင်က ရှာဖွေခြင်း" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "ဒီဟာကိုအမှတ်ပေးမည်" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "ဒီဟာကိုအမှတ်ပေးမည်" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "ပို့မည်" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "မှတ်ချက်များ-" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "အရေးပေါ်ခေါ်မည်" @@ -172,7 +159,14 @@ msgid "Search" msgstr "ရှာဖွေ" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "%1ကိုရိုက်ထည့်ပါ" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "မှတ်ချက်များ-" diff -Nru unity8-7.84+14.04.20140327.1/po/nb.po unity8-7.85+14.04.20140401.3/po/nb.po --- unity8-7.84+14.04.20140327.1/po/nb.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/nb.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-27 07:02+0000\n" "Last-Translator: Joakim Langvand \n" "Language-Team: Norwegian Bokmal \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Siste søk" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "Søk" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/nl.po unity8-7.85+14.04.20140401.3/po/nl.po --- unity8-7.84+14.04.20140327.1/po/nl.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/nl.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-15 16:42+0000\n" "Last-Translator: Hannie Dumoleyn \n" "Language-Team: Dutch \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Recente zoekopdrachten" @@ -81,27 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Beoordeel dit" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 recensie" -msgstr[1] "%1 recensies" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Beoordeel dit" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Voeg recensie toe" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Versturen" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Recensie" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Reacties:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Noodoproep" @@ -172,7 +159,23 @@ msgid "Search" msgstr "Zoeken" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Voer %1 in" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 recensie" +#~ msgstr[1] "%1 recensies" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Reacties:" + +#~ msgid "Review" +#~ msgstr "Recensie" diff -Nru unity8-7.84+14.04.20140327.1/po/pl.po unity8-7.85+14.04.20140401.3/po/pl.po --- unity8-7.84+14.04.20140327.1/po/pl.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/pl.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-10 11:38+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Polish \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -76,7 +76,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Ostatnie wyszukiwania" @@ -84,28 +84,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Oceń to" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 opinia" -msgstr[1] "%1 opinie" -msgstr[2] "%1 opinii" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -115,22 +105,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Oceń to" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Dodaj recenzję" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Wyślij" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Recenzja" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Komentarze:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Telefon ratunkowy" @@ -176,7 +162,24 @@ msgid "Search" msgstr "Szukaj" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Wprowadź %1" + +#~ msgid "Comments:" +#~ msgstr "Komentarze:" + +#~ msgid "Review" +#~ msgstr "Recenzja" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 opinia" +#~ msgstr[1] "%1 opinie" +#~ msgstr[2] "%1 opinii" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/pt_BR.po unity8-7.85+14.04.20140401.3/po/pt_BR.po --- unity8-7.84+14.04.20140327.1/po/pt_BR.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/pt_BR.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-18 23:24+0000\n" "Last-Translator: Fábio Nogueira \n" "Language-Team: Brazilian Portuguese \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -75,7 +75,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Pesquisas recentes" @@ -83,27 +83,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Avaliar isto" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 análise" -msgstr[1] "%1 análises" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -113,22 +104,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Avaliar isto" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Adicionar uma análise" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Enviar" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Revisão" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Comentários:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Chamada de emergência" @@ -174,7 +161,23 @@ msgid "Search" msgstr "Pesquisar" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Por favor, digite %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 análise" +#~ msgstr[1] "%1 análises" + +#~ msgid "Comments:" +#~ msgstr "Comentários:" + +#~ msgid "Review" +#~ msgstr "Revisão" diff -Nru unity8-7.84+14.04.20140327.1/po/pt.po unity8-7.85+14.04.20140401.3/po/pt.po --- unity8-7.84+14.04.20140327.1/po/pt.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/pt.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-14 19:18+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Portuguese \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/ro.po unity8-7.85+14.04.20140401.3/po/ro.po --- unity8-7.84+14.04.20140327.1/po/ro.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ro.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-27 07:53+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Romanian \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -74,7 +74,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Căutări recente" @@ -82,28 +82,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -112,20 +103,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -173,7 +160,7 @@ msgid "Search" msgstr "Căutare" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/ru.po unity8-7.85+14.04.20140401.3/po/ru.po --- unity8-7.84+14.04.20140327.1/po/ru.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ru.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-26 15:56+0000\n" "Last-Translator: Zonov Roman \n" "Language-Team: Russian \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -79,7 +79,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Последние поисковые запросы" @@ -87,28 +87,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Оцените это" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 отзыв" -msgstr[1] "%1 отзыва" -msgstr[2] "%1 отзывов" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -118,22 +108,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Оцените это" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Добавьте отзыв" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Отправить" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Отзыв" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Комментарии:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Экстренный вызов" @@ -179,7 +165,24 @@ msgid "Search" msgstr "Поиск" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Пожалуйста, введите %1" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Комментарии:" + +#~ msgid "Review" +#~ msgstr "Отзыв" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 отзыв" +#~ msgstr[1] "%1 отзыва" +#~ msgstr[2] "%1 отзывов" diff -Nru unity8-7.84+14.04.20140327.1/po/shn.po unity8-7.85+14.04.20140401.3/po/shn.po --- unity8-7.84+14.04.20140327.1/po/shn.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/shn.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-10-07 11:46+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Shan \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/si.po unity8-7.85+14.04.20140401.3/po/si.po --- unity8-7.84+14.04.20140327.1/po/si.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/si.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-26 22:36+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Sinhalese \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/sl.po unity8-7.85+14.04.20140401.3/po/sl.po --- unity8-7.84+14.04.20140327.1/po/sl.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/sl.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-02-21 16:38+0000\n" "Last-Translator: Damir Jerovšek \n" "Language-Team: Slovenian \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -78,7 +78,7 @@ "Sedaj, ko ste osvojili poteze robov, lahko začnete uporabljati " "telefon

Tapnite na zaslon za začetek" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Nedavna iskanja" @@ -86,29 +86,18 @@ msgid "See more" msgstr "Pokaži več" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "Pokaži manj" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Ocenite" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 ocen" -msgstr[1] "%1 ocena" -msgstr[2] "%1 oceni" -msgstr[3] "%1 ocene" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -118,22 +107,18 @@ msgid "Less..." msgstr "Manj ..." -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Ocenite" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Dodaj oceno" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Pošlji" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Ocena" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Opombe:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Klic v sili" @@ -179,7 +164,25 @@ msgid "Search" msgstr "Iskanje" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Vnesite %1" + +#~ msgid "Review" +#~ msgstr "Ocena" + +#~ msgid "Comments:" +#~ msgstr "Opombe:" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 ocen" +#~ msgstr[1] "%1 ocena" +#~ msgstr[2] "%1 oceni" +#~ msgstr[3] "%1 ocene" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/sq.po unity8-7.85+14.04.20140401.3/po/sq.po --- unity8-7.84+14.04.20140327.1/po/sq.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/sq.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-15 13:51+0000\n" "Last-Translator: Besmir Zanaj \n" "Language-Team: Albanian \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:48+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -74,7 +74,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -82,27 +82,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Vlerësoje këtë" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 rishikim" -msgstr[1] "%1 rishikime" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -112,22 +103,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Vlerësoje këtë" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Shto një rishikim" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "" @@ -173,7 +160,17 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 rishikim" +#~ msgstr[1] "%1 rishikime" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/sr.po unity8-7.85+14.04.20140401.3/po/sr.po --- unity8-7.84+14.04.20140327.1/po/sr.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/sr.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-27 09:19+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Serbian \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -74,7 +74,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Скорашње претраге" @@ -82,28 +82,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -112,20 +103,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -173,7 +160,7 @@ msgid "Search" msgstr "Претрага" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/sv.po unity8-7.85+14.04.20140401.3/po/sv.po --- unity8-7.84+14.04.20140327.1/po/sv.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/sv.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-26 22:36+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Swedish \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/sw.po unity8-7.85+14.04.20140401.3/po/sw.po --- unity8-7.84+14.04.20140327.1/po/sw.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/sw.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-14 19:28+0000\n" "Last-Translator: Damas Mlabwa \n" "Language-Team: Swahili \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Tuma" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Maoni:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "" @@ -172,7 +159,10 @@ msgid "Search" msgstr "Tafuta" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" + +#~ msgid "Comments:" +#~ msgstr "Maoni:" diff -Nru unity8-7.84+14.04.20140327.1/po/ta.po unity8-7.85+14.04.20140401.3/po/ta.po --- unity8-7.84+14.04.20140327.1/po/ta.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ta.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,15 +7,15 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-10-24 11:36+0000\n" -"Last-Translator: Thangamani Arun - தங்கமணி அருண் \n" +"Last-Translator: Arun Kumar -அருண் குமார் \n" "Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n" "MIME-Version: 1.0\n" "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" "Language: ta\n" @@ -76,7 +76,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "கடையாக தேடப்பட்டவைகள்" @@ -84,27 +84,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "இதை மதிப்பிடு" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 பரிசீலனை" -msgstr[1] "%1 பரிசீலனைகள்" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -114,22 +105,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "இதை மதிப்பிடு" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "ஒரு பரிசீலனையை சேர்" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "அனுப்பு" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "மறுஆய்வு" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "கருத்துகள்:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "அவசர அழைப்பு" @@ -175,7 +162,23 @@ msgid "Search" msgstr "தெடு" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "தயவுச்செய்து %1 உள்ளிடு" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 பரிசீலனை" +#~ msgstr[1] "%1 பரிசீலனைகள்" + +#~ msgid "Review" +#~ msgstr "மறுஆய்வு" + +#~ msgid "Comments:" +#~ msgstr "கருத்துகள்:" diff -Nru unity8-7.84+14.04.20140327.1/po/te.po unity8-7.85+14.04.20140401.3/po/te.po --- unity8-7.84+14.04.20140327.1/po/te.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/te.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-06-27 09:57+0000\n" "Last-Translator: Michał Sawicz \n" "Language-Team: Telugu \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/tr.po unity8-7.85+14.04.20140401.3/po/tr.po --- unity8-7.84+14.04.20140327.1/po/tr.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/tr.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-03-05 08:54+0000\n" "Last-Translator: Muhammed Yüce \n" "Language-Team: Turkish \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -76,7 +76,7 @@ "Kenar haraketlerini öğrendiniz ve telefonu kullanmaya " "başlayabilirsiniz

Başlamak için ekrana dokunun" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Son aramalar" @@ -84,27 +84,18 @@ msgid "See more" msgstr "Daha fazlası" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "Daha azını gör" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Oyla" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 inceleme" -msgstr[1] "%1 inceleme" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -114,22 +105,18 @@ msgid "Less..." msgstr "Daha az.." -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Oyla" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Bir inceleme ekle" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Gönder" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "İnceleme" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Yorumlar:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Acil Arama" @@ -175,7 +162,23 @@ msgid "Search" msgstr "Ara" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Lütfen %1 girin" + +#~ msgid "Review" +#~ msgstr "İnceleme" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 inceleme" +#~ msgstr[1] "%1 inceleme" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "Yorumlar:" diff -Nru unity8-7.84+14.04.20140327.1/po/ug.po unity8-7.85+14.04.20140401.3/po/ug.po --- unity8-7.84+14.04.20140327.1/po/ug.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/ug.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-02-15 12:09+0000\n" "Last-Translator: Gheyret T.Kenji \n" "Language-Team: Uyghur \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -75,7 +75,7 @@ "ئېكراننى چېكىپ باشلاڭ

سىز ھازىر گىرۋەك بارماق ئىشارەتلىرىنى ئىگەللەپ " "بولدىڭىز،ئەمدى تېلېفوننى ئىشلىتىشنى باشلىسىڭىز بولىدۇ" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "يېقىنقى ئىزدەشلەر" @@ -83,26 +83,18 @@ msgid "See more" msgstr "جىقراق كۆرۈش" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "ئازراق كۆرۈش" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "بۇنى باھالاڭ" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 باھا" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -112,22 +104,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "بۇنى باھالاڭ" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "باھا قوشۇش" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "ئەۋەت" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "تەكشۈر" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "ئىنكاس:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "جىددىي تېلېفون" @@ -173,7 +161,22 @@ msgid "Search" msgstr "ئىزدە" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "%1 نى كىرگۈزۈڭ" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 باھا" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" + +#~ msgid "Comments:" +#~ msgstr "ئىنكاس:" + +#~ msgid "Review" +#~ msgstr "تەكشۈر" diff -Nru unity8-7.84+14.04.20140327.1/po/uk.po unity8-7.85+14.04.20140401.3/po/uk.po --- unity8-7.84+14.04.20140327.1/po/uk.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/uk.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-11-23 12:37+0000\n" "Last-Translator: Ignat Kizenko \n" "Language-Team: Ukrainian \n" @@ -16,7 +16,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -77,7 +77,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "Нещодавні пошуки" @@ -85,28 +85,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "Оцінити" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 рецензія" -msgstr[1] "%1 рецензії" -msgstr[2] "%1 рецензій" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -116,22 +106,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "Оцінити" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "Додати рецензію" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "Надіслати" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "Рецензія" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "Коментарі:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "Терміновий виклик" @@ -177,7 +163,24 @@ msgid "Search" msgstr "Пошук" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "Будь ласка, введіть %1" + +#~ msgid "Comments:" +#~ msgstr "Коментарі:" + +#~ msgid "Review" +#~ msgstr "Рецензія" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 рецензія" +#~ msgstr[1] "%1 рецензії" +#~ msgstr[2] "%1 рецензій" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/vi.po unity8-7.85+14.04.20140401.3/po/vi.po --- unity8-7.84+14.04.20140327.1/po/vi.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/vi.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-15 01:19+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Vietnamese \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/xh.po unity8-7.85+14.04.20140401.3/po/xh.po --- unity8-7.84+14.04.20140327.1/po/xh.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/xh.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-09-28 13:20+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: Xhosa \n" @@ -15,7 +15,7 @@ "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: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/zh_CN.po unity8-7.85+14.04.20140401.3/po/zh_CN.po --- unity8-7.84+14.04.20140327.1/po/zh_CN.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/zh_CN.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2013-10-09 13:51+0000\n" "Last-Translator: Aron Xu \n" "Language-Team: Chinese (Simplified) \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "近期搜索" @@ -81,28 +81,19 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" msgstr "" -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "(%1)" +msgid "%1 Preview" msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 -#, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "" -msgstr[1] "" - #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." msgstr "" @@ -111,20 +102,16 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 -msgid "Add a review" -msgstr "" - -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 -msgid "Send" +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" msgstr "" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" +#: qml/Dash/Previews/PreviewRatingInput.qml:126 +msgid "Add a review" msgstr "" -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" +#: qml/Dash/Previews/PreviewRatingInput.qml:166 +msgid "Send" msgstr "" #: qml/Greeter/Lockscreen.qml:149 @@ -172,7 +159,7 @@ msgid "Search" msgstr "搜索" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" diff -Nru unity8-7.84+14.04.20140327.1/po/zh_HK.po unity8-7.85+14.04.20140401.3/po/zh_HK.po --- unity8-7.84+14.04.20140327.1/po/zh_HK.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/zh_HK.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity8\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-25 13:32+0000\n" "Last-Translator: Daniel Cheung \n" "Language-Team: Chinese (Hong Kong) \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "最近的搜尋" @@ -81,26 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "評價" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 評論" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -110,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "評價" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "新增評論" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "傳送" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "評論" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "評論:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "緊急電話" @@ -171,7 +159,22 @@ msgid "Search" msgstr "搜尋" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "請輸入 %1" + +#~ msgid "Comments:" +#~ msgstr "評論:" + +#~ msgid "Review" +#~ msgstr "評論" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 評論" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/po/zh_TW.po unity8-7.85+14.04.20140401.3/po/zh_TW.po --- unity8-7.84+14.04.20140327.1/po/zh_TW.po 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/po/zh_TW.po 2014-04-01 22:54:50.000000000 +0000 @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: unity\n" "Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2014-02-13 18:37+0000\n" +"POT-Creation-Date: 2014-03-25 16:48+0100\n" "PO-Revision-Date: 2014-01-16 06:04+0000\n" "Last-Translator: Henry Yang \n" "Language-Team: Chinese (Traditional) \n" @@ -15,7 +15,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Launchpad-Export-Date: 2014-03-27 08:17+0000\n" +"X-Launchpad-Export-Date: 2014-03-28 06:49+0000\n" "X-Generator: Launchpad (build 16967)\n" #: plugins/Unity/Launcher/launcheritem.cpp:43 @@ -73,7 +73,7 @@ "phone

Tap on the screen to start" msgstr "" -#: qml/Components/PageHeader.qml:340 +#: qml/Components/PageHeader.qml:365 msgid "Recent searches" msgstr "最近搜尋" @@ -81,26 +81,18 @@ msgid "See more" msgstr "" -#: qml/Components/SeeMore.qml:57 +#: qml/Components/SeeMore.qml:58 msgid "See less" msgstr "" -#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70 -msgid "Rate this" -msgstr "對此評比" - -#. TRANSLATORS: Number of persons who rated this app/video/whatever -#: qml/Dash/Previews/Header.qml:93 -#, qt-format -msgid "(%1)" -msgstr "(%1)" +#: qml/Dash/DashApps.qml:38 +msgid "Recent" +msgstr "" -#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever -#: qml/Dash/Previews/Header.qml:105 +#: qml/Dash/PreviewListView.qml:52 #, qt-format -msgid "%1 review" -msgid_plural "%1 reviews" -msgstr[0] "%1 回覆" +msgid "%1 Preview" +msgstr "" #: qml/Dash/Previews/PreviewActionCombo.qml:34 msgid "More..." @@ -110,22 +102,18 @@ msgid "Less..." msgstr "" -#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74 +#: qml/Dash/Previews/PreviewRatingInput.qml:81 +msgid "Rate this" +msgstr "對此評比" + +#: qml/Dash/Previews/PreviewRatingInput.qml:126 msgid "Add a review" msgstr "新增回覆" -#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121 +#: qml/Dash/Previews/PreviewRatingInput.qml:166 msgid "Send" msgstr "發送" -#: qml/Dash/Previews/Reviews.qml:86 -msgid "Review" -msgstr "回覆" - -#: qml/Dash/Previews/Reviews.qml:139 -msgid "Comments:" -msgstr "備註:" - #: qml/Greeter/Lockscreen.qml:149 msgid "Emergency Call" msgstr "緊急連絡" @@ -171,7 +159,22 @@ msgid "Search" msgstr "搜尋" -#: qml/Shell.qml:440 +#: qml/Shell.qml:417 #, qt-format msgid "Please enter %1" msgstr "" + +#~ msgid "Comments:" +#~ msgstr "備註:" + +#~ msgid "Review" +#~ msgstr "回覆" + +#, qt-format +#~ msgid "%1 review" +#~ msgid_plural "%1 reviews" +#~ msgstr[0] "%1 回覆" + +#, qt-format +#~ msgid "(%1)" +#~ msgstr "(%1)" diff -Nru unity8-7.84+14.04.20140327.1/qml/CMakeLists.txt unity8-7.85+14.04.20140401.3/qml/CMakeLists.txt --- unity8-7.84+14.04.20140327.1/qml/CMakeLists.txt 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/CMakeLists.txt 2014-04-01 22:55:19.000000000 +0000 @@ -13,7 +13,7 @@ Hud Panel Launcher - SideStage + Stages Notifications ) diff -Nru unity8-7.84+14.04.20140327.1/qml/Components/ApplicationManagerWrapper.qml unity8-7.85+14.04.20140401.3/qml/Components/ApplicationManagerWrapper.qml --- unity8-7.84+14.04.20140327.1/qml/Components/ApplicationManagerWrapper.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Components/ApplicationManagerWrapper.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,169 +0,0 @@ -/* - * Copyright (C) 2013 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 . - */ - -import QtQuick 2.0 -import Unity.Application 0.1 - -Item { - id: root - - property alias mainStageApplications: mainStageModel - property alias sideStageApplications: sideStageModel - property variant mainStageFocusedApplication: null - property variant sideStageFocusedApplication: null - property bool sideStageEnabled: true - property bool keyboardVisible: ApplicationManager.keyboardVisible - property int keyboardHeight: ApplicationManager.keyboardHeight - - property bool fake: ApplicationManager.fake ? ApplicationManager.fake : false - - signal focusRequested(string appId) - - ApplicationsModelStageFiltered { - id: mainStageModel - stage: ApplicationInfo.MainStage - } - - ApplicationsModelStageFiltered { - id: sideStageModel - stage: ApplicationInfo.SideStage - } - - Connections { - target: ApplicationManager - onFocusedApplicationIdChanged: { - var app = ApplicationManager.findApplication(ApplicationManager.focusedApplicationId) - if (!app) { //nothing at all focused, so clear all - mainStageFocusedApplication = null; - sideStageFocusedApplication = null; - } else { - if (app.stage == ApplicationInfo.MainStage) { - mainStageFocusedApplication = app; - // possible the side stage app being unfocused fired this signal, so check for it - if (sideStageFocusedApplication && !sideStageFocusedApplication.focused) - sideStageFocusedApplication = null; - } else { - sideStageFocusedApplication = app; - // possible the main stage app being unfocused fired this signal, so check for it - if (mainStageFocusedApplication && !mainStageFocusedApplication.focused) - mainStageFocusedApplication = null; - } - } - } - - onFocusRequested: { - // if no side stage enabled, override application's stage parameter - var app = ApplicationManager.findApplication(appId); - if (app && app.stage === ApplicationInfo.SideStage && !sideStageEnabled) { - app.stage = ApplicationInfo.MainStage; - } - - root.focusRequested(appId); - } - } - - function activateApplication(desktopFile, argument) { - var appId; - - // HACK: Applications identified sometimes with with appId, but mostly with desktopFile. - // TODO: convert entire shell to use appId only. - if (desktopFile.indexOf(".desktop") >= 0) { - appId = desktopFileToAppId(desktopFile); - } else { - appId = desktopFile; - } - - var application = ApplicationManager.findApplication(appId); - if (application !== null) { - return application; - } - - var execFlags = sideStageEnabled ? ApplicationManager.NoFlag : ApplicationManager.ForceMainStage; - - if (argument) { - return ApplicationManager.startApplication(appId, execFlags, [argument]); - } else { - return ApplicationManager.startApplication(appId, execFlags); - } - } - - function stopApplication(application) { - var appId; - - // HACK: Applications identified sometimes with with appId, but mostly with desktopFile. - // TODO: convert entire shell to use appId only. - if (typeof application == "string") { - appId = application; - } else { - appId = desktopFileToAppId(application.desktopFile); - } - - ApplicationManager.stopApplication(appId); - } - - function focusApplication(application) { - if (application == null || application == undefined) { - return; - } - - ApplicationManager.focusApplication(application.appId); - } - - function unfocusCurrentApplication() { - ApplicationManager.unfocusCurrentApplication(); - } - - function moveRunningApplicationStackPosition(from, to, stage) { - if (from == to || from < 0 || to < 0) return; - - if (stage == ApplicationInfo.SideStage) { - sideStageModel.move(from, to); - } else { - mainStageModel.move(from, to); - } - } - - function getApplicationFromDesktopFile(desktopFile, stage) { - var appId; - - // HACK: Applications identified sometimes with with appId, but mostly with desktopFile. - // TODO: convert entire shell to use appId only. - if (desktopFile.indexOf(".desktop") >= 0) { - appId = desktopFileToAppId(desktopFile); - } else { - appId = desktopFile; - } - - for (var i = 0, len = ApplicationManager.count; i < len; i++ ) { - var app = ApplicationManager.get(i); - - // if stage not specified, return whichever app running on either stage - if (app.appId == appId && (stage == undefined || app.stage == stage)) { - return app; - } - } - } - - function desktopFileToAppId(desktopFile) { - var right = desktopFile.lastIndexOf(".desktop"); - var left = desktopFile.lastIndexOf("/"); - if (left == -1 || right == -1 || left == right) { - console.log("ApplicationManagerWrapper: unable to extract appId from '" + desktopFile + "'"); - return ""; - } - return desktopFile.substring(left+1, right); - } -} diff -Nru unity8-7.84+14.04.20140327.1/qml/Components/ApplicationScreenshot.qml unity8-7.85+14.04.20140401.3/qml/Components/ApplicationScreenshot.qml --- unity8-7.84+14.04.20140327.1/qml/Components/ApplicationScreenshot.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Components/ApplicationScreenshot.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2013 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 . - */ - -import QtQuick 2.0 -import Ubuntu.Components 0.1 -import Unity.Application 0.1 - -Item { - id: applicationScreenshot - - property var application: null - property bool withBackground: false - property bool ready: applicationImage.ready || withBackground - - function setApplication(application) { - applicationScreenshot.application = application - } - - function clearApplication() { - applicationScreenshot.withBackground = false; - applicationScreenshot.application = null - applicationScreenshot.scheduleUpdate(); - } - - function scheduleUpdate() { - applicationImage.scheduleUpdate() - } - - function updateFromCache() { - applicationImage.updateFromCache() - } - - Rectangle { - id: background - anchors.fill: parent - color: "white" // FIXME should use normal background color of Suru theme - visible: applicationScreenshot.withBackground - } - - ApplicationImage { - id: applicationImage - objectName: "screenshot image" - width: applicationScreenshot.application ? parent.width : 0 - height: applicationScreenshot.application ? parent.height : 0 - visible: applicationScreenshot.application != null && ready - source: ApplicationManager.findApplication((application) ? application.appId : "") - } -} diff -Nru unity8-7.84+14.04.20140327.1/qml/Components/ApplicationsModelStageFiltered.qml unity8-7.85+14.04.20140401.3/qml/Components/ApplicationsModelStageFiltered.qml --- unity8-7.84+14.04.20140327.1/qml/Components/ApplicationsModelStageFiltered.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Components/ApplicationsModelStageFiltered.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2013 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 . - */ - -import QtQuick 2.0 -import Utils 0.1 -import Unity.Application 0.1 - -SortFilterProxyModel { - id: root - property int stage - - function get(index) { - return model.get(mapRowToSource(index)); - } - - function move(from, to) { - var realFrom = mapRowToSource(from); - if (realFrom == -1) { - console.log("ERROR; invalid from=" + from + " index in move operation"); - return; - } - var realTo = mapRowToSource(to); - if (realTo == -1) { - // assuming wanting to move to end of list - realTo = model.count - 1; - } - - if (realFrom == realTo) return; - model.move(realFrom, realTo); - } - - model: ApplicationManager - dynamicSortFilter: true - filterRole: ApplicationManager.RoleStage - filterRegExp: RegExp(stage) -} diff -Nru unity8-7.84+14.04.20140327.1/qml/Components/Carousel.qml unity8-7.85+14.04.20140401.3/qml/Components/Carousel.qml --- unity8-7.84+14.04.20140327.1/qml/Components/Carousel.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Components/Carousel.qml 2014-04-01 22:55:27.000000000 +0000 @@ -261,77 +261,83 @@ listView.gapToEndPhase, listView.translationXViewFactor) - delegate: Loader { - property bool explicitlyScaled: explicitScaleFactor == carousel.selectedItemScaleFactor - property real explicitScaleFactor: explicitScale ? carousel.selectedItemScaleFactor : 1.0 - readonly property bool explicitScale: (!listView.moving || - listView.realContentX <= 0 || - listView.realContentX >= listView.realContentWidth - listView.realWidth) && - listView.newContentX === listView.disabledNewContentX && - index === listView.selectedIndex - readonly property real cachedTiles: listView.realPathItemCount + carousel.drawBuffer / listView.tileWidth - readonly property real distance: listView.continuousIndex - index - readonly property real itemTranslationScale: CarouselJS.getItemScale(0.5, - (index + 0.5), // good approximation of scale while changing selected item - listView.count, - listView.visibleTilesScaleFactor) - readonly property real itemScale: CarouselJS.getItemScale(distance, - listView.continuousIndex, - listView.count, - listView.visibleTilesScaleFactor) - readonly property real translationX: CarouselJS.getItemTranslation(index, - listView.selectedIndex, - distance, - itemScale, - itemTranslationScale, - listView.maximumItemTranslation) - - readonly property real xTransform: listView.viewTranslation + translationX * listView.scaleFactor - readonly property real center: x - listView.contentX + xTransform - drawBuffer + (width/2) - - width: listView.tileWidth - height: listView.tileHeight - scale: itemScale * explicitScaleFactor - sourceComponent: itemComponent - z: cachedTiles - Math.abs(index - listView.selectedIndex) + delegate: tileWidth > 0 && tileHeight > 0 ? loaderComponent : undefined - transform: Translate { - x: xTransform - } + Component { + id: loaderComponent - Behavior on explicitScaleFactor { - SequentialAnimation { - ScriptAction { - script: if (!explicitScale) - explicitlyScaled = false - } - NumberAnimation { - duration: explicitScaleFactor === 1.0 ? 250 : 150 - easing.type: Easing.InOutQuad - } - ScriptAction { - script: if (explicitScale) - explicitlyScaled = true + Loader { + property bool explicitlyScaled: explicitScaleFactor == carousel.selectedItemScaleFactor + property real explicitScaleFactor: explicitScale ? carousel.selectedItemScaleFactor : 1.0 + readonly property bool explicitScale: (!listView.moving || + listView.realContentX <= 0 || + listView.realContentX >= listView.realContentWidth - listView.realWidth) && + listView.newContentX === listView.disabledNewContentX && + index === listView.selectedIndex + readonly property real cachedTiles: listView.realPathItemCount + carousel.drawBuffer / listView.tileWidth + readonly property real distance: listView.continuousIndex - index + readonly property real itemTranslationScale: CarouselJS.getItemScale(0.5, + (index + 0.5), // good approximation of scale while changing selected item + listView.count, + listView.visibleTilesScaleFactor) + readonly property real itemScale: CarouselJS.getItemScale(distance, + listView.continuousIndex, + listView.count, + listView.visibleTilesScaleFactor) + readonly property real translationX: CarouselJS.getItemTranslation(index, + listView.selectedIndex, + distance, + itemScale, + itemTranslationScale, + listView.maximumItemTranslation) + + readonly property real xTransform: listView.viewTranslation + translationX * listView.scaleFactor + readonly property real center: x - listView.contentX + xTransform - drawBuffer + (width/2) + + width: listView.tileWidth + height: listView.tileHeight + scale: itemScale * explicitScaleFactor + sourceComponent: itemComponent + z: cachedTiles - Math.abs(index - listView.selectedIndex) + + transform: Translate { + x: xTransform + } + + Behavior on explicitScaleFactor { + SequentialAnimation { + ScriptAction { + script: if (!explicitScale) + explicitlyScaled = false + } + NumberAnimation { + duration: explicitScaleFactor === 1.0 ? 250 : 150 + easing.type: Easing.InOutQuad + } + ScriptAction { + script: if (explicitScale) + explicitlyScaled = true + } } } - } - onLoaded: { - item.explicitlyScaled = Qt.binding(function() { return explicitlyScaled; }) - item.model = Qt.binding(function() { return model; }) - } + onLoaded: { + item.explicitlyScaled = Qt.binding(function() { return explicitlyScaled; }) + item.model = Qt.binding(function() { return model; }) + } - MouseArea { - id: mouseArea + MouseArea { + id: mouseArea - anchors.fill: parent + anchors.fill: parent - onClicked: { - listView.itemClicked(index, item) - } + onClicked: { + listView.itemClicked(index, item) + } - onPressAndHold: { - listView.itemPressAndHold(index, item) + onPressAndHold: { + listView.itemPressAndHold(index, item) + } } } } diff -Nru unity8-7.84+14.04.20140327.1/qml/Components/ResponsiveFlowView.qml unity8-7.85+14.04.20140401.3/qml/Components/ResponsiveFlowView.qml --- unity8-7.84+14.04.20140327.1/qml/Components/ResponsiveFlowView.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Components/ResponsiveFlowView.qml 2014-04-01 22:55:19.000000000 +0000 @@ -27,9 +27,8 @@ property alias verticalSpacing: flow.verticalSpacing property alias horizontalSpacing: flow.horizontalSpacing property int referenceDelegateWidth - property alias firstModel: repeater1.model - property alias secondModel: repeater2.model - property alias delegate: repeater1.delegate + property alias model: repeater.model + property alias delegate: repeater.delegate readonly property int cellWidth: referenceDelegateWidth + horizontalSpacing readonly property int cellHeight: referenceDelegateWidth + verticalSpacing property alias move: flow.move @@ -69,13 +68,7 @@ property int margin: allocatableVerticalSpace - columns * horizontalSpacing Repeater { - id: repeater1 - model: (root.model) ? root.model[0] : null - } - Repeater { - id: repeater2 - model: (root.model) ? root.model[1] : null - delegate: repeater1.delegate + id: repeater } } } diff -Nru unity8-7.84+14.04.20140327.1/qml/Dash/Apps/RunningApplicationsGrid.qml unity8-7.85+14.04.20140401.3/qml/Dash/Apps/RunningApplicationsGrid.qml --- unity8-7.84+14.04.20140327.1/qml/Dash/Apps/RunningApplicationsGrid.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Dash/Apps/RunningApplicationsGrid.qml 2014-04-01 22:55:19.000000000 +0000 @@ -18,6 +18,7 @@ import "../../Components" import Ubuntu.Gestures 0.1 +import Unity.Application 0.1 ResponsiveFlowView { id: root @@ -25,13 +26,7 @@ signal updateScreenshots property alias enableHeightBehavior: heightBehaviour.enabled - property bool enableHeightBehaviorOnNextCreation: firstModel.count + secondModel.count == 0 - - Connections { - target: shell - onDashShownChanged: if (shell.dashShown && shell.stageScreenshotsReady) updateScreenshots(); - onStageScreenshotsReadyChanged: if (shell.dashShown && shell.stageScreenshotsReady) updateScreenshots(); - } + property bool enableHeightBehaviorOnNextCreation: model.count === 0 Behavior on height { id: heightBehaviour @@ -40,13 +35,7 @@ } Connections { - target: root.firstModel - onCountChanged: { - heightBehaviour.enabled = true; - } - } - Connections { - target: root.secondModel + target: root.model onCountChanged: { heightBehaviour.enabled = true; } @@ -85,17 +74,13 @@ root.terminationModeEnabled = true } onRequestedApplicationTermination: { - shell.applicationManager.stopApplication(model.appId) + ApplicationManager.stopApplication(model.appId) } onRequestedApplicationActivation: { - shell.activateApplication(model.appId) + ApplicationManager.requestFocusApplication(model.appId) } terminationModeEnabled: root.terminationModeEnabled - - Component.onCompleted: { - root.updateScreenshots.connect(updateScreenshotFromCache); - } } } diff -Nru unity8-7.84+14.04.20140327.1/qml/Dash/Apps/RunningApplicationTile.qml unity8-7.85+14.04.20140401.3/qml/Dash/Apps/RunningApplicationTile.qml --- unity8-7.84+14.04.20140327.1/qml/Dash/Apps/RunningApplicationTile.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Dash/Apps/RunningApplicationTile.qml 2014-04-01 22:55:19.000000000 +0000 @@ -23,7 +23,6 @@ AbstractButton { id: root property var application - property bool __sideStageEnabled: shell.applicationManager.sideStageEnabled signal requestedApplicationActivation(var application) signal requestedApplicationTermination(var application) @@ -34,7 +33,7 @@ // To avoid "binding loop" warning height: shapedApplicationImage.height + labelContainer.height - width: shapedApplicationImage.width + width: shapedApplicationImage.width <= units.gu(11) ? units.gu(11) : height property bool terminationModeEnabled: false @@ -51,32 +50,23 @@ } } - function updateScreenshotFromCache() { - applicationImage.updateFromCache(); - } - - // FIXME: should use UbuntuShape from SDK - UbuntuShapeForItem { + UbuntuShape { id: shapedApplicationImage - anchors { - top: parent.top - horizontalCenter: parent.horizontalCenter - } + anchors { top: parent.top; horizontalCenter: parent.horizontalCenter } - // FIXME: width and height should be defined according to the - // application window's aspect ratio. - width: (application.stage === ApplicationInfo.MainStage && __sideStageEnabled) ? - units.gu(22) : units.gu(11) - height: (__sideStageEnabled) ? units.gu(22) : units.gu(19) + height: units.gu(17) + width: applicationImage.width radius: "medium" - image: applicationImage - } - ApplicationImage { - id: applicationImage - source: ApplicationManager.findApplication((application) ? application.appId : "") - width: shapedApplicationImage.width - height: shapedApplicationImage.height + image: Image { + id: applicationImage + source: application.screenshot + // height : width = ss.height : ss.width + height: shapedApplicationImage.height + fillMode: Image.PreserveAspectCrop + width: Math.min(height, height * sourceSize.width / sourceSize.height) + } + } UbuntuShape { diff -Nru unity8-7.84+14.04.20140327.1/qml/Dash/Card.qml unity8-7.85+14.04.20140401.3/qml/Dash/Card.qml --- unity8-7.84+14.04.20140327.1/qml/Dash/Card.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Dash/Card.qml 2014-04-01 22:56:37.000000000 +0000 @@ -16,6 +16,8 @@ import QtQuick 2.0 import Ubuntu.Components 0.1 +// For image://albumart and image://thumbnailer image providers +import Ubuntu.Thumbnailer 0.1 AbstractButton { id: root @@ -71,23 +73,27 @@ id: artShape radius: "medium" objectName: "artShape" - width: { - if (!visible) return 0 - return image.fillMode === Image.PreserveAspectCrop || aspect < image.aspect ? image.width : height * image.aspect - } - height: { - if (!visible) return 0 - return image.fillMode === Image.PreserveAspectCrop || aspect > image.aspect ? image.height : width / image.aspect - } anchors.horizontalCenter: template && template["card-layout"] === "horizontal" ? undefined : parent.horizontalCenter anchors.left: template && template["card-layout"] === "horizontal" ? parent.left : undefined visible: cardData && cardData["art"] || false - property real aspect: components !== undefined ? components["art"]["aspect-ratio"] : 1 + readonly property real aspect: components !== undefined ? components["art"]["aspect-ratio"] : 1 + readonly property bool aspectSmallerThanImageAspect: aspect < image.aspect + + Component.onCompleted: updateWidthHeightBindings(); + onAspectSmallerThanImageAspectChanged: updateWidthHeightBindings(); + + function updateWidthHeightBindings() { + if (aspectSmallerThanImageAspect) { + width = Qt.binding(function() { return !visible ? 0 : image.width }); + height = Qt.binding(function() { return !visible ? 0 : image.fillMode === Image.PreserveAspectCrop ? image.height : width / image.aspect }); + } else { + width = Qt.binding(function() { return !visible ? 0 : image.fillMode === Image.PreserveAspectCrop ? image.width : height * image.aspect }); + height = Qt.binding(function() { return !visible ? 0 : image.height }); + } + } image: Image { - width: template && template["card-layout"] === "horizontal" ? height * artShape.aspect : root.width - height: template && template["card-layout"] === "horizontal" ? header.height : width / artShape.aspect objectName: "artImage" source: cardData && cardData["art"] || "" cache: true @@ -96,7 +102,21 @@ //sourceSize.height: height > width ? height : 0 fillMode: components && components["art"]["fill-mode"] === "fit" ? Image.PreserveAspectFit: Image.PreserveAspectCrop - property real aspect: implicitWidth / implicitHeight + readonly property real aspect: implicitWidth / implicitHeight + readonly property bool isHorizontal: template && template["card-layout"] === "horizontal" + + Component.onCompleted: updateWidthHeightBindings(); + onIsHorizontalChanged: updateWidthHeightBindings(); + + function updateWidthHeightBindings() { + if (isHorizontal) { + width = Qt.binding(function() { return height * artShape.aspect }); + height = Qt.binding(function() { return header.height }); + } else { + width = Qt.binding(function() { return root.width }); + height = Qt.binding(function() { return width / artShape.aspect }); + } + } } } diff -Nru unity8-7.84+14.04.20140327.1/qml/Dash/DashApps.qml unity8-7.85+14.04.20140401.3/qml/Dash/DashApps.qml --- unity8-7.84+14.04.20140327.1/qml/Dash/DashApps.qml 2014-03-27 12:37:52.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Dash/DashApps.qml 2014-04-01 22:55:19.000000000 +0000 @@ -17,6 +17,7 @@ import QtQuick 2.0 import Ubuntu.Components 0.1 import Utils 0.1 +import Unity.Application 0.1 import "../Components" import "../Components/ListItems" import "Apps" @@ -25,17 +26,15 @@ id: scopeView objectName: "DashApps" - // FIXME: a way to aggregate these models would be ideal - property var mainStageApplicationsModel: shell.applicationManager.mainStageApplications - property var sideStageApplicationModel: shell.applicationManager.sideStageApplications + property var runningApps: ApplicationManager QtObject { id: countObject - property int count: scopeView.scope.searchQuery.length == 0 ? (mainStageApplicationsModel.count + sideStageApplicationModel.count) : 0 + property int count: scopeView.scope.searchQuery.length == 0 ? scopeView.runningApps.count : 0 } onScopeChanged: { scopeView.scope.categories.addSpecialCategory("running.apps.category", i18n.tr("Recent"), "", "{ \"template\": { \"category-layout\": \"running-apps\" } }", countObject); - enableHeightBehaviorOnNextCreation = (mainStageApplicationsModel.count + sideStageApplicationModel.count == 0) + enableHeightBehaviorOnNextCreation = scopeView.runningApps.count === 0 } } diff -Nru unity8-7.84+14.04.20140327.1/qml/Dash/GenericScopeView.qml unity8-7.85+14.04.20140401.3/qml/Dash/GenericScopeView.qml --- unity8-7.84+14.04.20140327.1/qml/Dash/GenericScopeView.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Dash/GenericScopeView.qml 2014-04-01 22:56:21.000000000 +0000 @@ -18,6 +18,7 @@ import Ubuntu.Components 0.1 import Utils 0.1 import Unity 0.2 +import Unity.Application 0.1 import "../Components" import "../Components/ListItems" as ListItems @@ -38,11 +39,8 @@ property bool enableHeightBehaviorOnNextCreation: false property var categoryView: categoryView - // FIXME delay the search so that daemons have time to settle, note that - // removing this will break ScopeView::test_changeScope onScopeChanged: { if (scope) { - timer.restart(); scope.activateApplication.connect(activateApp); } } @@ -57,12 +55,6 @@ value: isCurrent && !previewListView.open } - Timer { - id: timer - interval: 2000 - onTriggered: scope.searchQuery = "" - } - SortFilterProxyModel { id: categoryFilter model: scope ? scope.categories : null @@ -167,8 +159,7 @@ if (source.toString().indexOf("Apps/RunningApplicationsGrid.qml") != -1) { // TODO: this is still a kludge :D Ideally add some kind of hook so that we // can do this from DashApps.qml or think a better way that needs no special casing - item.firstModel = Qt.binding(function() { return mainStageApplicationsModel }) - item.secondModel = Qt.binding(function() { return sideStageApplicationModel }) + item.model = Qt.binding(function() { return runningApps; }) item.canEnableTerminationMode = Qt.binding(function() { return scopeView.isCurrent }) } else { item.model = Qt.binding(function() { return results }) diff -Nru unity8-7.84+14.04.20140327.1/qml/Dash/Previews/PreviewVideoPlayback.qml unity8-7.85+14.04.20140401.3/qml/Dash/Previews/PreviewVideoPlayback.qml --- unity8-7.84+14.04.20140327.1/qml/Dash/Previews/PreviewVideoPlayback.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Dash/Previews/PreviewVideoPlayback.qml 2014-04-01 22:56:02.000000000 +0000 @@ -16,6 +16,7 @@ import QtQuick 2.0 import Ubuntu.Components 0.1 +import Ubuntu.Thumbnailer 0.1 import "../../Components" /*! \brief Preview widget for video. diff -Nru unity8-7.84+14.04.20140327.1/qml/Launcher/Launcher.qml unity8-7.85+14.04.20140401.3/qml/Launcher/Launcher.qml --- unity8-7.84+14.04.20140327.1/qml/Launcher/Launcher.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Launcher/Launcher.qml 2014-04-01 22:55:19.000000000 +0000 @@ -29,7 +29,8 @@ property int dragAreaWidth: units.gu(1) property int minimizeDistance: units.gu(26) property real progress: dragArea.dragging && dragArea.touchX > panelWidth ? - (width * (dragArea.touchX-panelWidth) / (width - panelWidth)) : 0 + (width * (dragArea.touchX-panelWidth) / (width - panelWidth)) : + (dragArea.dragging ? 0.001 : 0) readonly property bool shown: panel.x > -panel.width diff -Nru unity8-7.84+14.04.20140327.1/qml/Panel/Panel.qml unity8-7.85+14.04.20140401.3/qml/Panel/Panel.qml --- unity8-7.84+14.04.20140327.1/qml/Panel/Panel.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Panel/Panel.qml 2014-04-01 22:55:19.000000000 +0000 @@ -62,7 +62,7 @@ height: __panelMinusSeparatorLineHeight y: 0 - Behavior on y { StandardAnimation {} } + Behavior on y { StandardAnimation { duration: UbuntuAnimation.FastDuration } } } PanelSeparatorLine { diff -Nru unity8-7.84+14.04.20140327.1/qml/Shell.qml unity8-7.85+14.04.20140401.3/qml/Shell.qml --- unity8-7.84+14.04.20140327.1/qml/Shell.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Shell.qml 2014-04-01 22:55:19.000000000 +0000 @@ -31,7 +31,6 @@ import "Hud" import "Components" import "Bottombar" -import "SideStage" import "Notifications" import Unity.Notifications 1.0 as NotificationBackend @@ -49,20 +48,24 @@ readonly property real panelHeight: panel.panelHeight property bool dashShown: dash.shown - property bool stageScreenshotsReady: { - if (sideStage.shown) { - if (mainStage.applications.count > 0) { - return mainStage.usingScreenshots && sideStage.usingScreenshots; - } else { - return sideStage.usingScreenshots; + + property bool sideStageEnabled: shell.width >= units.gu(100) + readonly property string focusedApplicationId: ApplicationManager.focusedApplicationId + + function activateApplication(appId) { + if (ApplicationManager.findApplication(appId)) { + ApplicationManager.requestFocusApplication(appId); + stages.show(true); + if (stages.locked && ApplicationManager.focusedApplicationId == appId) { + applicationsDisplayLoader.item.select(appId); } } else { - return mainStage.usingScreenshots; + var execFlags = shell.sideStageEnabled ? ApplicationManager.NoFlag : ApplicationManager.ForceMainStage; + ApplicationManager.startApplication(appId, execFlags); + stages.show(false); } } - property var applicationManager: ApplicationManagerWrapper {} - Binding { target: LauncherModel property: "applicationManager" @@ -71,49 +74,6 @@ Component.onCompleted: { Theme.name = "Ubuntu.Components.Themes.SuruGradient" - - applicationManager.sideStageEnabled = Qt.binding(function() { return sideStage.enabled }) - - // FIXME: if application focused before shell starts, shell draws on top of it only. - // We should detect already running applications on shell start and bring them to the front. - applicationManager.unfocusCurrentApplication(); - } - - readonly property bool applicationFocused: !!applicationManager.mainStageFocusedApplication - || !!applicationManager.sideStageFocusedApplication - // Used for autopilot testing. - readonly property string currentFocusedAppId: ApplicationManager.focusedApplicationId - - readonly property bool fullscreenMode: { - if (greeter.shown || lockscreen.shown) { - return false; - } else if (mainStage.usingScreenshots) { // Window Manager animating so want to re-evaluate fullscreen mode - return mainStage.switchingFromFullscreenToFullscreen; - } else if (applicationManager.mainStageFocusedApplication) { - return applicationManager.mainStageFocusedApplication.fullscreen; - } else { - return false; - } - } - - function activateApplication(appId, argument) { - if (applicationManager) { - // For newly started applications, as it takes them time to draw their first frame - // we add a delay before we hide the animation screenshots to compensate. - var addDelay = !applicationManager.getApplicationFromDesktopFile(appId); - - var application; - application = applicationManager.activateApplication(appId, argument); - if (application == null) { - return; - } - if (application.stage == ApplicationInfo.MainStage || !sideStage.enabled) { - mainStage.activateApplication(appId, addDelay); - } else { - sideStage.activateApplication(appId, addDelay); - } - stages.show(); - } } GSettings { @@ -133,244 +93,219 @@ Keys.onVolumeDownPressed: volumeControl.volumeDown() Item { - id: underlay - objectName: "underlay" + id: underlayClipper anchors.fill: parent + anchors.rightMargin: stages.overlayWidth + clip: stages.overlayMode && !stages.painting - // Whether the underlay is fully covered by opaque UI elements. - property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth + InputFilterArea { + anchors.fill: parent + blockInput: parent.clip + } - readonly property bool applicationRunning: ((mainStage.applications && mainStage.applications.count > 0) - || (sideStage.applications && sideStage.applications.count > 0)) + Item { + id: underlay + objectName: "underlay" + anchors.fill: parent + anchors.rightMargin: -parent.anchors.rightMargin - // Whether the user should see the topmost application surface (if there's one at all). - readonly property bool applicationSurfaceShouldBeSeen: applicationRunning && !stages.fullyHidden - && !mainStage.usingScreenshots // but want sideStage animating over app surface + // Whether the underlay is fully covered by opaque UI elements. + property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth + // Whether the user should see the topmost application surface (if there's one at all). + readonly property bool applicationSurfaceShouldBeSeen: stages.shown && !stages.painting && !stages.overlayMode + // NB! Application surfaces are stacked behind the shell one. So they can only be seen by the user + // through the translucent parts of the shell surface. + visible: !fullyCovered && !applicationSurfaceShouldBeSeen - // NB! Application surfaces are stacked behing the shell one. So they can only be seen by the user - // through the translucent parts of the shell surface. - visible: !fullyCovered && !applicationSurfaceShouldBeSeen + CrossFadeImage { + id: backgroundImage + objectName: "backgroundImage" - Rectangle { - anchors.fill: parent - color: "black" - opacity: dash.disappearingAnimationProgress - } + anchors.fill: parent + source: shell.background + fillMode: Image.PreserveAspectCrop + } - Image { - anchors.fill: dash - source: shell.width > shell.height ? "Dash/graphics/paper_landscape.png" : "Dash/graphics/paper_portrait.png" - fillMode: Image.PreserveAspectCrop - horizontalAlignment: Image.AlignRight - verticalAlignment: Image.AlignTop - } - - Dash { - id: dash - objectName: "dash" - - available: !greeter.shown && !lockscreen.shown - hides: [stages, launcher, panel.indicators] - shown: disappearingAnimationProgress !== 1.0 - enabled: disappearingAnimationProgress === 0.0 && edgeDemo.dashEnabled - // FIXME: unfocus all applications when going back to the dash - onEnabledChanged: { - if (enabled) { - shell.applicationManager.unfocusCurrentApplication() - } + Rectangle { + anchors.fill: parent + color: "black" + opacity: dash.disappearingAnimationProgress } - anchors { - fill: parent - topMargin: panel.panelHeight + Image { + anchors.fill: dash + source: shell.width > shell.height ? "Dash/graphics/paper_landscape.png" : "Dash/graphics/paper_portrait.png" + fillMode: Image.PreserveAspectCrop + horizontalAlignment: Image.AlignRight + verticalAlignment: Image.AlignTop + } + + Dash { + id: dash + objectName: "dash" + + available: !greeter.shown && !lockscreen.shown + hides: [stages, launcher, panel.indicators] + shown: disappearingAnimationProgress !== 1.0 + enabled: disappearingAnimationProgress === 0.0 && edgeDemo.dashEnabled + + anchors { + fill: parent + topMargin: panel.panelHeight + } + + contentScale: 1.0 - 0.2 * disappearingAnimationProgress + opacity: 1.0 - disappearingAnimationProgress + property real disappearingAnimationProgress: { + if (greeter.shown) { + return greeter.showProgress; + } else { + if (stages.overlayMode) { + return 0; + } + return stages.showProgress + } + } + + // FIXME: only necessary because stages.showProgress and + // greeterRevealer.animatedProgress are not animated + Behavior on disappearingAnimationProgress { SmoothedAnimation { velocity: 5 }} } + } + } + + EdgeDragArea { + id: stagesDragHandle + direction: Direction.Leftwards + + anchors { top: parent.top; right: parent.right; bottom: parent.bottom } + width: shell.edgeSize + + property real progress: stages.width - contentScale: 1.0 - 0.2 * disappearingAnimationProgress - opacity: 1.0 - disappearingAnimationProgress - property real disappearingAnimationProgress: { - if (greeter.shown) { - return greeter.showProgress; + onTouchXChanged: { + if (status == DirectionalDragArea.Recognized) { + if (ApplicationManager.count == 0) { + progress = Math.max(stages.width - stagesDragHandle.width + touchX, stages.width * .3) } else { - return stagesOuterContainer.showProgress; + progress = stages.width - stagesDragHandle.width + touchX } } + } - // FIXME: only necessary because stagesOuterContainer.showProgress and - // greeterRevealer.animatedProgress are not animated - Behavior on disappearingAnimationProgress { SmoothedAnimation { velocity: 5 }} + onDraggingChanged: { + if (!dragging) { + if (ApplicationManager.count > 0 && progress < stages.width - units.gu(10)) { + stages.show(true) + } + stagesDragHandle.progress = stages.width; + } } } Item { - id: stagesOuterContainer - + id: stages + objectName: "stages" width: parent.width height: parent.height - x: launcher.progress - Behavior on x {SmoothedAnimation{velocity: 600}} - property real showProgress: - MathUtils.clamp(1 - (x + stages.x) / shell.width, 0, 1) + x: { + if (shown) { + if (overlayMode || locked) { + return 0; + } + return launcher.progress + } else { + return stagesDragHandle.progress + } + } - Showable { - id: stages - objectName: "stages" - - x: width - - property bool fullyShown: shown && x == 0 && parent.x == 0 - property bool fullyHidden: !shown && x == width - available: !greeter.shown - hides: [panel.indicators] - shown: false - opacity: 1.0 - showAnimation: StandardAnimation { property: "x"; duration: 350; to: 0; easing.type: Easing.OutCubic } - hideAnimation: StandardAnimation { property: "x"; duration: 350; to: width; easing.type: Easing.OutCubic } + Behavior on x { SmoothedAnimation { velocity: 600; duration: UbuntuAnimation.FastDuration } } - width: parent.width - height: parent.height + property bool shown: false - // close the stages when no focused application remains - Connections { - target: shell.applicationManager - onMainStageFocusedApplicationChanged: stages.closeIfNoApplications() - onSideStageFocusedApplicationChanged: stages.closeIfNoApplications() - ignoreUnknownSignals: true + property real showProgress: overlayMode ? 0 : MathUtils.clamp(1 - x / shell.width, 0, 1) + + property bool fullyShown: x == 0 + property bool fullyHidden: x == width + + property bool painting: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.painting : false + property bool fullscreen: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.fullscreen : false + property bool overlayMode: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.overlayMode : false + property int overlayWidth: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.overlayWidth : false + property bool locked: applicationsDisplayLoader.item ? applicationsDisplayLoader.item.locked : false + + function show(focusApp) { + shown = true; + panel.indicators.hide(); + if (!ApplicationManager.focusedApplicationId && ApplicationManager.count > 0 && focusApp) { + ApplicationManager.focusApplication(ApplicationManager.get(0).appId); } + } - function closeIfNoApplications() { - if (!shell.applicationManager.mainStageFocusedApplication - && !shell.applicationManager.sideStageFocusedApplication - && shell.applicationManager.mainStageApplications.count == 0 - && shell.applicationManager.sideStageApplications.count == 0) { - stages.hide(); - } + function hide() { + shown = false; + if (ApplicationManager.focusedApplicationId) { + ApplicationManager.unfocusCurrentApplication(); } + } - // show the stages when an application gets the focus - Connections { - target: shell.applicationManager - onMainStageFocusedApplicationChanged: { - if (shell.applicationManager.mainStageFocusedApplication) { - mainStage.show(); - stages.show(); - } - } - onSideStageFocusedApplicationChanged: { - if (shell.applicationManager.sideStageFocusedApplication) { - sideStage.show(); - stages.show(); + Connections { + target: ApplicationManager + + onFocusRequested: { + stages.show(true); + } + + onFocusedApplicationIdChanged: { + if (ApplicationManager.focusedApplicationId.length > 0) { + stages.show(false); + } else { + if (!stages.overlayMode) { + stages.hide(); } } - ignoreUnknownSignals: true + + // If any app is focused when greeter is open, it's due to a user action + // like a snap decision (say, an incoming call). + // TODO: these should be protected to only unlock for certain applications / certain usecases + // potentially only in connection with a notification. + greeter.hide() } - Stage { - id: mainStage + onApplicationAdded: { + stages.show(false); + } - anchors.fill: parent - fullyShown: stages.fullyShown - fullyHidden: stages.fullyHidden - shouldUseScreenshots: !fullyShown - rightEdgeEnabled: !sideStage.enabled - - applicationManager: shell.applicationManager - rightEdgeDraggingAreaWidth: shell.edgeSize - normalApplicationY: shell.panelHeight - - shown: true - function show() { - stages.show(); - } - function hide() { - } - - // FIXME: workaround the fact that focusing a main stage application - // raises its surface on top of all other surfaces including the ones - // that belong to side stage applications. - onFocusedApplicationChanged: { - if (focusedApplication && sideStage.focusedApplication && sideStage.fullyShown) { - shell.applicationManager.focusApplication(sideStage.focusedApplication); - } + onApplicationRemoved: { + if (ApplicationManager.focusedApplicationId.length == 0) { + stages.hide(); } } + } - SideStage { - id: sideStage - - applicationManager: shell.applicationManager - rightEdgeDraggingAreaWidth: shell.edgeSize - normalApplicationY: shell.panelHeight + Loader { + id: applicationsDisplayLoader + anchors.fill: parent - onShownChanged: { - if (!shown && mainStage.applications.count == 0) { - stages.hide(); - } - } - // FIXME: when hiding the side stage, refocus the main stage - // application so that it goes in front of the side stage - // application and hides it - onFullyShownChanged: { - if (!fullyShown && stages.fullyShown && sideStage.focusedApplication != null) { - shell.applicationManager.focusApplication(mainStage.focusedApplication); - } - } + source: shell.sideStageEnabled ? "Stages/StageWithSideStage.qml" : "Stages/PhoneStage.qml" - enabled: shell.width >= units.gu(100) - visible: enabled - fullyShown: stages.fullyShown && shown - && sideStage[sideStageRevealer.boundProperty] == sideStageRevealer.openedValue - shouldUseScreenshots: !fullyShown || mainStage.usingScreenshots || sideStageRevealer.pressed - - available: !greeter.shown && !lockscreen.shown && enabled - hides: [launcher, panel.indicators] - shown: false - showAnimation: StandardAnimation { property: "x"; duration: 350; to: sideStageRevealer.openedValue; easing.type: Easing.OutQuint } - hideAnimation: StandardAnimation { property: "x"; duration: 350; to: sideStageRevealer.closedValue; easing.type: Easing.OutQuint } - - width: units.gu(40) - height: stages.height - handleExpanded: sideStageRevealer.pressed - } - - Revealer { - id: sideStageRevealer - - enabled: mainStage.applications.count > 0 && sideStage.applications.count > 0 - && sideStage.available - direction: Qt.RightToLeft - openedValue: parent.width - sideStage.width - hintDisplacement: units.gu(3) - /* The size of the sidestage handle needs to be bigger than the - typical size used for edge detection otherwise it is really - hard to grab. - */ - handleSize: sideStage.shown ? units.gu(4) : shell.edgeSize - closedValue: parent.width + sideStage.handleSizeCollapsed - target: sideStage - x: parent.width - width - width: sideStage.width + handleSize * 0.7 - height: sideStage.height - orientation: Qt.Horizontal - } - - DragHandle { - id: stagesDragHandle - - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.right: parent.left - - width: shell.edgeSize - direction: Direction.Leftwards - enabled: greeter.showProgress == 0 && edgeDemo.dashEnabled - property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0 - - maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7 - // Make autocompletion impossible when !haveApps - edgeDragEvaluator.minDragDistance: haveApps ? maxTotalDragDistance * 0.1 : Number.MAX_VALUE + Binding { + target: applicationsDisplayLoader.item + property: "moving" + value: !stages.fullyShown + } + Binding { + target: applicationsDisplayLoader.item + property: "shown" + value: stages.shown + } + Binding { + target: applicationsDisplayLoader.item + property: "dragAreaWidth" + value: shell.edgeSize } } } @@ -447,26 +382,6 @@ dragHandleWidth: shell.edgeSize - property var previousMainApp: null - property var previousSideApp: null - - function removeApplicationFocus() { - greeter.previousMainApp = applicationManager.mainStageFocusedApplication; - greeter.previousSideApp = applicationManager.sideStageFocusedApplication; - applicationManager.unfocusCurrentApplication(); - } - - function restoreApplicationFocus() { - if (greeter.previousMainApp) { - applicationManager.focusApplication(greeter.previousMainApp); - greeter.previousMainApp = null; - } - if (greeter.previousSideApp) { - applicationManager.focusApplication(greeter.previousSideApp); - greeter.previousSideApp = null; - } - } - onShownChanged: { if (shown) { lockscreen.reset(); @@ -476,9 +391,6 @@ LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole)); } greeter.forceActiveFocus(); - removeApplicationFocus(); - } else { - restoreApplicationFocus(); } } @@ -496,33 +408,16 @@ } } - Connections { - target: applicationManager - ignoreUnknownSignals: true - // If any app is focused when greeter is open, it's due to a user action - // like a snap decision (say, an incoming call). - // TODO: these should be protected to only unlock for certain applications / certain usecases - // potentially only in connection with a notification. - onMainStageFocusedApplicationChanged: { - if (greeter.shown && applicationManager.mainStageFocusedApplication) { - greeter.previousMainApp = null // make way for new focused app - greeter.previousSideApp = null - greeter.hide() - } - } - onSideStageFocusedApplicationChanged: { - if (greeter.shown && applicationManager.sideStageFocusedApplication) { - greeter.previousMainApp = null // make way for new focused app - greeter.previousSideApp = null - greeter.hide() - } - } + Binding { + target: ApplicationManager + property: "suspended" + value: greeter.shown && greeter.showProgress == 1 } } InputFilterArea { anchors.fill: parent - blockInput: !applicationFocused || greeter.shown || lockscreen.shown || launcher.shown + blockInput: ApplicationManager.focusedApplicationId.length === 0 || greeter.shown || lockscreen.shown || launcher.shown || panel.indicators.shown || hud.shown } @@ -571,7 +466,9 @@ available: edgeDemo.panelEnabled contentEnabled: edgeDemo.panelContentEnabled } - fullscreenMode: shell.fullscreenMode + property string focusedAppId: ApplicationManager.focusedApplicationId + property var focusedApplication: ApplicationManager.findApplication(focusedAppId) + fullscreenMode: focusedApplication && stages.fullscreen && !greeter.shown && !lockscreen.shown searchVisible: !greeter.shown && !lockscreen.shown && dash.shown && dash.searchable InputFilterArea { @@ -597,9 +494,8 @@ hideAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: hudRevealer.closedValue; easing.type: Easing.Linear } Connections { - target: shell.applicationManager - onMainStageFocusedApplicationChanged: hud.hide() - onSideStageFocusedApplicationChanged: hud.hide() + target: ApplicationManager + onFocusedApplicationIdChanged: hud.hide() } } @@ -624,7 +520,7 @@ theHud: hud anchors.fill: parent enabled: hud.available - applicationIsOnForeground: applicationFocused + applicationIsOnForeground: ApplicationManager.focusedApplicationId } InputFilterArea { @@ -655,9 +551,11 @@ showHome() } onDash: { - if (stages.shown) { - stages.hide(); - launcher.hide(); + if (stages.shown && !stages.overlayMode) { + if (!stages.locked) { + stages.hide(); + launcher.hide(); + } } } onDashSwipeChanged: if (dashSwipe && stages.shown) dash.setCurrentScope("clickscope", false, true) @@ -750,14 +648,14 @@ anchors.bottom: parent.bottom anchors.left: parent.left anchors.right: parent.right - height: shell.applicationManager ? shell.applicationManager.keyboardHeight : 0 + height: ApplicationManager.keyboardVisible ? ApplicationManager.keyboardHeight : 0 - enabled: shell.applicationManager && shell.applicationManager.keyboardVisible + enabled: ApplicationManager.keyboardVisible } Label { anchors.centerIn: parent - visible: applicationManager.fake + visible: ApplicationManager.fake ? ApplicationManager.fake : false text: "EARLY ALPHA\nNOT READY FOR USE" color: "lightgrey" opacity: 0.2 Binary files /tmp/x3Vnx6DY8u/unity8-7.84+14.04.20140327.1/qml/SideStage/graphics/sidestage_handle@20.png and /tmp/9ZUzqxL1CP/unity8-7.85+14.04.20140401.3/qml/SideStage/graphics/sidestage_handle@20.png differ diff -Nru unity8-7.84+14.04.20140327.1/qml/SideStage/graphics/sidestage_handle@20.sci unity8-7.85+14.04.20140401.3/qml/SideStage/graphics/sidestage_handle@20.sci --- unity8-7.84+14.04.20140327.1/qml/SideStage/graphics/sidestage_handle@20.sci 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/SideStage/graphics/sidestage_handle@20.sci 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -border.left: 24 -border.top: 2 -border.bottom: 2 -border.right: 2 -source: sidestage_handle@20.png \ No newline at end of file diff -Nru unity8-7.84+14.04.20140327.1/qml/SideStage/SidestageHandle.qml unity8-7.85+14.04.20140401.3/qml/SideStage/SidestageHandle.qml --- unity8-7.84+14.04.20140327.1/qml/SideStage/SidestageHandle.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/SideStage/SidestageHandle.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2013 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 . - */ - -import QtQuick 2.0 -import Ubuntu.Components 0.1 - -BorderImage { - source: "graphics/sidestage_handle.sci" -} diff -Nru unity8-7.84+14.04.20140327.1/qml/SideStage/SideStage.qml unity8-7.85+14.04.20140401.3/qml/SideStage/SideStage.qml --- unity8-7.84+14.04.20140327.1/qml/SideStage/SideStage.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/SideStage/SideStage.qml 1970-01-01 00:00:00.000000000 +0000 @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2013 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 . - */ - -import QtQuick 2.0 -import Unity.Application 0.1 -import Ubuntu.Components 0.1 -import "../Components" - -Stage { - id: stage - - type: ApplicationInfo.SideStage - property real handleSizeCollapsed: units.gu(2.5) - property real handleSizeExpanded: units.gu(4) - property bool handleExpanded - - /* FIXME: workaround so that when a main stage app goes fullscreen - the sidestage's top is not transparent. Proper fix would be to - resize the side stage app. - */ - Rectangle { - id: backgroundBeneathPanel - anchors { - top: parent.top - left: parent.left - right: parent.right - } - height: shell.panelHeight - color: background.color - z: -1 - } - - Rectangle { - id: background - anchors.fill: parent - color: "#2c2924" - z: -1 - visible: stage.usingScreenshots - } - - SidestageHandle { - id: handle - objectName: "sideStageHandle" - - anchors { - top: parent.top - bottom: parent.bottom - left: parent.left - leftMargin: -width - } - width: handleExpanded ? handleSizeExpanded : handleSizeCollapsed - Behavior on width { NumberAnimation { easing.type: Easing.OutQuart} } - z: -1 - } - - InputFilterArea { - anchors.fill: handle - blockInput: visible - } -} Binary files /tmp/x3Vnx6DY8u/unity8-7.84+14.04.20140327.1/qml/Stages/graphics/dropshadow.png and /tmp/9ZUzqxL1CP/unity8-7.85+14.04.20140401.3/qml/Stages/graphics/dropshadow.png differ Binary files /tmp/x3Vnx6DY8u/unity8-7.84+14.04.20140327.1/qml/Stages/graphics/sidestage_handle@20.png and /tmp/9ZUzqxL1CP/unity8-7.85+14.04.20140401.3/qml/Stages/graphics/sidestage_handle@20.png differ diff -Nru unity8-7.84+14.04.20140327.1/qml/Stages/graphics/sidestage_handle@20.sci unity8-7.85+14.04.20140401.3/qml/Stages/graphics/sidestage_handle@20.sci --- unity8-7.84+14.04.20140327.1/qml/Stages/graphics/sidestage_handle@20.sci 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Stages/graphics/sidestage_handle@20.sci 2014-04-01 22:54:50.000000000 +0000 @@ -0,0 +1,5 @@ +border.left: 24 +border.top: 2 +border.bottom: 2 +border.right: 2 +source: sidestage_handle@20.png \ No newline at end of file diff -Nru unity8-7.84+14.04.20140327.1/qml/Stages/PhoneStage.qml unity8-7.85+14.04.20140401.3/qml/Stages/PhoneStage.qml --- unity8-7.84+14.04.20140327.1/qml/Stages/PhoneStage.qml 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Stages/PhoneStage.qml 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,499 @@ +/* + * Copyright (C) 2014 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 . + */ + +import QtQuick 2.0 +import Ubuntu.Components 0.1 +import Ubuntu.Gestures 0.1 +import Unity.Application 0.1 +import Utils 0.1 +import "../Components" + +Item { + id: root + + // Controls to be set from outside + property bool shown: false + property bool moving: false + property int dragAreaWidth + + // State information propagated to the outside + readonly property bool painting: mainScreenshotImage.visible || fadeInScreenshotImage.visible || appSplash.visible || spreadView.visible + property bool fullscreen: priv.focusedApplication ? priv.focusedApplication.fullscreen : false + property bool locked: spreadView.visible + + // Not used for PhoneStage, only useful for SideStage and similar + property bool overlayMode: false + property int overlayWidth: 0 + + function select(appId) { + spreadView.snapTo(priv.indexOf(appId)) + } + + onMovingChanged: { + if (moving) { + if (ApplicationManager.focusedApplicationId) { + priv.requestNewScreenshot(); + } else { + mainScreenshotImage.anchors.leftMargin = 0; + mainScreenshotImage.source = ApplicationManager.get(0).screenshot; + mainScreenshotImage.visible = true; + } + } else { + mainScreenshotImage.visible = false; + } + } + + Connections { + target: ApplicationManager + + onFocusRequested: { + if (spreadView.visible) { + spreadView.snapTo(priv.indexOf(appId)); + } else { + priv.switchToApp(appId); + } + } + + onFocusedApplicationIdChanged: { + if (ApplicationManager.focusedApplicationId.length > 0) { + if (priv.secondApplicationStarting || priv.applicationStarting) { + appSplashTimer.restart(); + } else { + var application = priv.focusedApplication; + root.fullscreen = application.fullscreen; + mainScreenshotImage.source = application.screenshot; + } + } else { + spreadView.selectedIndex = -1; + spreadView.phase = 0; + spreadView.contentX = -spreadView.shift; + } + } + + onApplicationAdded: { + if (!priv.focusedApplication) { + mainScreenshotImage.source = ""; + mainScreenshotImage.visible = false; + priv.applicationStarting = true; + } else { + mainScreenshotImage.source = ""; + priv.newFocusedAppId = appId; + priv.secondApplicationStarting = true; + priv.requestNewScreenshot(); + } + + if (spreadView.visible) { + spreadView.snapTo(0); + } + } + + onApplicationRemoved: { + if (ApplicationManager.count == 0) { + mainScreenshotImage.source = "" + mainScreenshotImage.visible = false; + } else { + mainScreenshotImage.source = ApplicationManager.get(0).screenshot; + } + } + } + + QtObject { + id: priv + + property string focusedAppId: ApplicationManager.focusedApplicationId + property var focusedApplication: ApplicationManager.findApplication(focusedAppId) + property url focusedScreenshot: focusedApplication ? focusedApplication.screenshot : "" + + property bool waitingForScreenshot: false + + property bool applicationStarting: false + property bool secondApplicationStarting: false + + property string newFocusedAppId + + onFocusedScreenshotChanged: { + if (root.moving && priv.waitingForScreenshot) { + mainScreenshotImage.anchors.leftMargin = 0; + mainScreenshotImage.source = priv.focusedScreenshot + mainScreenshotImage.visible = true; + } else if (priv.secondApplicationStarting && priv.waitingForScreenshot) { + applicationSwitchingAnimation.start(); + } + waitingForScreenshot = false; + } + + function requestNewScreenshot() { + waitingForScreenshot = true; + ApplicationManager.updateScreenshot(focusedAppId); + } + + function switchToApp(appId) { + if (priv.focusedAppId) { + priv.newFocusedAppId = appId; + root.fullscreen = ApplicationManager.findApplication(appId).fullscreen; + applicationSwitchingAnimation.start(); + } else { + ApplicationManager.focusApplication(appId); + } + } + + function indexOf(appId) { + for (var i = 0; i < ApplicationManager.count; i++) { + if (ApplicationManager.get(i).appId == appId) { + return i; + } + } + return -1; + } + + } + + // FIXME: the signal connections seems to get lost. + Connections { + target: priv.focusedApplication + onScreenshotChanged: priv.focusedScreenshot = priv.focusedApplication.screenshot + } + Binding { + target: root + property: "fullscreen" + value: priv.focusedApplication ? priv.focusedApplication.fullscreen : false + } + + Timer { + id: appSplashTimer + // FIXME: We really need to show something meaningful in the app surface instead of guessing + // when it might be ready + interval: 500 + repeat: false + onTriggered: { + priv.applicationStarting = false; + priv.secondApplicationStarting = false; + } + } + + SequentialAnimation { + id: applicationSwitchingAnimation + // setup + PropertyAction { target: mainScreenshotImage; property: "anchors.leftMargin"; value: 0 } + PropertyAction { target: mainScreenshotImage; property: "source"; value: priv.focusedScreenshot } + PropertyAction { targets: [mainScreenshotImage, fadeInScreenshotImage]; property: "visible"; value: true } + PropertyAction { target: fadeInScreenshotImage; property: "source"; value: { + var newFocusedApp = ApplicationManager.findApplication(priv.newFocusedAppId); + return newFocusedApp ? newFocusedApp.screenshot : "" } + } + PropertyAction { target: fadeInScreenshotImage; property: "opacity"; value: 0 } + PropertyAction { target: fadeInScreenshotImage; property: "scale"; value: .8 } + + + // The actual animation + ParallelAnimation { + UbuntuNumberAnimation { target: mainScreenshotImage; property: "anchors.leftMargin"; to: root.width; duration: UbuntuAnimation.SlowDuration } + UbuntuNumberAnimation { target: fadeInScreenshotImage; properties: "opacity,scale"; to: 1; duration: UbuntuAnimation.SlowDuration } + } + + // restore stuff + ScriptAction { script: ApplicationManager.focusApplication(priv.newFocusedAppId); } + PropertyAction { target: fadeInScreenshotImage; property: "visible"; value: false } + PropertyAction { target: mainScreenshotImage; property: "visible"; value: false } + } + + // FIXME: Drop this and make the imageprovider show a splashscreen instead + Rectangle { + id: appSplash2 + anchors.fill: parent + color: "white" + visible: priv.secondApplicationStarting + } + Image { + id: fadeInScreenshotImage + anchors { left: parent.left; bottom: parent.bottom } + width: parent.width + scale: .7 + visible: false + } + + Rectangle { + id: appSplash + anchors.fill: parent + color: "white" + visible: priv.applicationStarting + } + Image { + id: mainScreenshotImage + anchors { left: parent.left; bottom: parent.bottom } + width: parent.width + visible: false + } + + EdgeDragArea { + id: spreadDragArea + direction: Direction.Leftwards + enabled: ApplicationManager.count > 1 && spreadView.phase != 2 + + anchors { top: parent.top; right: parent.right; bottom: parent.bottom } + width: root.dragAreaWidth + + // Sitting at the right edge of the screen, this EdgeDragArea directly controls the spreadView when + // attachedToView is true. When the finger movement passes positionMarker3 we detach it from the + // spreadView and make the spreadView snap to positionMarker4. + property bool attachedToView: true + + property var gesturePoints: new Array() + + onTouchXChanged: { + if (!dragging && !priv.waitingForScreenshot) { + // Initial touch. Let's update the screenshot and reset the spreadView to the starting position. + priv.requestNewScreenshot(); + spreadView.phase = 0; + spreadView.contentX = -spreadView.shift; + } + if (dragging && attachedToView) { + // Gesture recognized. Let's move the spreadView with the finger + spreadView.contentX = -touchX - spreadView.shift; + } + if (attachedToView && spreadView.shiftedContentX >= spreadView.width * spreadView.positionMarker3) { + // We passed positionMarker3. Detach from spreadView and snap it. + attachedToView = false; + spreadView.snap(); + } + gesturePoints.push(touchX); + } + + onStatusChanged: { + if (status == DirectionalDragArea.Recognized) { + attachedToView = true; + } + } + + onDraggingChanged: { + if (dragging) { + // Gesture recognized. Start recording this gesture + gesturePoints = []; + return; + } + + // Ok. The user released. Find out if it was a one-way movement. + var oneWayFlick = true; + var smallestX = spreadDragArea.width; + for (var i = 0; i < gesturePoints.length; i++) { + if (gesturePoints[i] >= smallestX) { + oneWayFlick = false; + break; + } + smallestX = gesturePoints[i]; + } + gesturePoints = []; + + if (oneWayFlick && spreadView.shiftedContentX > units.gu(2) && + spreadView.shiftedContentX < spreadView.positionMarker1 * spreadView.width) { + // If it was a short one-way movement, do the Alt+Tab switch + // no matter if we didn't cross positionMarker1 yet. + spreadView.snapTo(1); + } else if (!dragging && attachedToView) { + // otherwise snap to the closest snap position we can find + // (might be back to start, to app 1 or to spread) + spreadView.snap(); + } + } + } + + Rectangle { + id: coverFlipBackground + anchors.fill: parent + color: "black" + visible: spreadView.visible + } + + InputFilterArea { + anchors.fill: root + blockInput: spreadView.visible + } + + Flickable { + id: spreadView + objectName: "spreadView" + anchors.fill: parent + visible: spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1 || snapAnimation.running + contentWidth: spreadRow.width - shift + contentX: -shift + + // The flickable needs to fill the screen in order to get touch events all over. + // However, we don't want to the user to be able to scroll back all the way. For + // that, the beginning of the gesture starts with a negative value for contentX + // so the flickable wants to pull it into the view already. "shift" tunes the + // distance where to "lock" the content. + property real shift: width / 2 + property real shiftedContentX: contentX + shift + + property int tileDistance: width / 4 + + // Those markers mark the various positions in the spread (ratio to screen width from right to left): + // 0 - 1: following finger, snap back to the beginning on release + property real positionMarker1: 0.3 + // 1 - 2: curved snapping movement, snap to app 1 on release + property real positionMarker2: 0.45 + // 2 - 3: movement follows finger, snaps back to app 1 on release + property real positionMarker3: 0.6 + // passing 3, we detach movement from the finger and snap to 4 + property real positionMarker4: 0.9 + + // This is where the first app snaps to when bringing it in from the right edge. + property real snapPosition: 0.75 + + // Phase of the animation: + // 0: Starting from right edge, a new app (index 1) comes in from the right + // 1: The app has reached the first snap position. + // 2: The list is dragged further and snaps into the spread view when entering phase 2 + property int phase: 0 + + property int selectedIndex: -1 + + onShiftedContentXChanged: { + switch (phase) { + case 0: + if (shiftedContentX > width * positionMarker2) { + phase = 1; + } + break; + case 1: + if (shiftedContentX < width * positionMarker2) { + phase = 0; + } else if (shiftedContentX >= width * positionMarker4) { + phase = 2; + } + break; + } + } + + function snap() { + if (shiftedContentX < positionMarker1 * width) { + snapAnimation.targetContentX = -shift; + snapAnimation.start(); + } else if (shiftedContentX < positionMarker2 * width) { + snapTo(1) + } else if (shiftedContentX < positionMarker3 * width) { + snapTo(1) + } else if (phase < 2){ + // Add 1 pixel to make sure we definitely hit positionMarker4 even with rounding errors of the animation. + snapAnimation.targetContentX = width * positionMarker4 + 1 - shift; + snapAnimation.start(); + } + } + function snapTo(index) { + spreadView.selectedIndex = index; + root.fullscreen = ApplicationManager.get(index).fullscreen; + snapAnimation.targetContentX = -shift; + snapAnimation.start(); + } + + SequentialAnimation { + id: snapAnimation + property int targetContentX: -spreadView.shift + + UbuntuNumberAnimation { + target: spreadView + property: "contentX" + to: snapAnimation.targetContentX + duration: UbuntuAnimation.FastDuration + } + + ScriptAction { + script: { + if (spreadView.selectedIndex >= 0) { + ApplicationManager.focusApplication(ApplicationManager.get(spreadView.selectedIndex).appId); + spreadView.selectedIndex = -1 + spreadView.phase = 0; + spreadView.contentX = -spreadView.shift; + } + } + } + } + + Item { + id: spreadRow + // This width controls how much the spread can be flicked left/right. It's composed of: + // tileDistance * app count (with a minimum of 3 apps, in order to also allow moving 1 and 2 apps a bit) + // + some constant value (still scales with the screen width) which looks good and somewhat fills the screen + width: Math.max(3, ApplicationManager.count) * spreadView.tileDistance + (spreadView.width - spreadView.tileDistance) * 1.5 + + x: spreadView.contentX + + Repeater { + id: spreadRepeater + model: ApplicationManager + delegate: TransformedSpreadDelegate { + id: appDelegate + objectName: "appDelegate" + index + startAngle: 45 + endAngle: 5 + startScale: 1.1 + endScale: 0.7 + startDistance: spreadView.tileDistance + endDistance: units.gu(.5) + width: spreadView.width + height: spreadView.height + selected: spreadView.selectedIndex == index + otherSelected: spreadView.selectedIndex >= 0 && !selected + + z: index + x: index == 0 ? 0 : spreadView.width + (index - 1) * spreadView.tileDistance + + // Each tile has a different progress value running from 0 to 1. + // A progress value of 0 means the tile is at the right edge. 1 means the tile has reched the left edge. + progress: { + var tileProgress = (spreadView.shiftedContentX - index * spreadView.tileDistance) / spreadView.width; + // Tile 1 needs to move directly from the beginning... + if (index == 1 && spreadView.phase < 2) { + tileProgress += spreadView.tileDistance / spreadView.width; + } + return tileProgress; + } + + // This mostly is the same as progress, just adds the snapping to phase 1 for tiles 0 and 1 + animatedProgress: { + if (spreadView.phase == 0 && index < 2) { + if (progress < spreadView.positionMarker1) { + return progress; + } else if (progress < spreadView.positionMarker1 + snappingCurve.period){ + return spreadView.positionMarker1 + snappingCurve.value * 3; + } else { + return spreadView.positionMarker2; + } + } + return progress; + } + + EasingCurve { + id: snappingCurve + type: EasingCurve.OutQuad + period: 0.05 + progress: appDelegate.progress - spreadView.positionMarker1 + } + + onClicked: { + if (spreadView.phase == 2) { + if (ApplicationManager.focusedApplicationId == ApplicationManager.get(index).appId) { + spreadView.snapTo(index); + } else { + ApplicationManager.requestFocusApplication(ApplicationManager.get(index).appId); + } + } + } + } + } + } + } +} diff -Nru unity8-7.84+14.04.20140327.1/qml/Stages/SidestageHandle.qml unity8-7.85+14.04.20140401.3/qml/Stages/SidestageHandle.qml --- unity8-7.84+14.04.20140327.1/qml/Stages/SidestageHandle.qml 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Stages/SidestageHandle.qml 2014-04-01 22:54:50.000000000 +0000 @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2013 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 . + */ + +import QtQuick 2.0 +import Ubuntu.Components 0.1 + +BorderImage { + source: "graphics/sidestage_handle.sci" +} diff -Nru unity8-7.84+14.04.20140327.1/qml/Stages/SpreadDelegate.qml unity8-7.85+14.04.20140401.3/qml/Stages/SpreadDelegate.qml --- unity8-7.84+14.04.20140327.1/qml/Stages/SpreadDelegate.qml 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Stages/SpreadDelegate.qml 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,55 @@ +/* + * Copyright 2014 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 + * 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Authors: Michael Zanetti +*/ + +import QtQuick 2.0 + +Item { + id: root + + signal clicked() + + property real topMarginProgress + + QtObject { + id: priv + property real heightDifference: root.height - appImage.implicitHeight + } + + Image { + id: dropShadow + anchors.fill: appImage + anchors.margins: -units.gu(2) + source: "graphics/dropshadow.png" + opacity: .4 + } + Image { + id: appImage + anchors { + left: parent.left; + bottom: parent.bottom; + top: parent.top; + topMargin: priv.heightDifference * Math.max(0, 1 - root.topMarginProgress) + } + source: model.screenshot + antialiasing: true + } + MouseArea { + anchors.fill: appImage + onClicked: root.clicked() + } +} diff -Nru unity8-7.84+14.04.20140327.1/qml/Stages/StageWithSideStage.qml unity8-7.85+14.04.20140401.3/qml/Stages/StageWithSideStage.qml --- unity8-7.84+14.04.20140327.1/qml/Stages/StageWithSideStage.qml 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Stages/StageWithSideStage.qml 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,407 @@ +/* + * Copyright (C) 2014 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 . + */ + +import QtQuick 2.0 +import Ubuntu.Components 0.1 +import "../Components" +import Unity.Application 0.1 +import Ubuntu.Gestures 0.1 + +Item { + id: root + objectName: "stages" + anchors.fill: parent + + // Controls to be set from outside + property bool shown: false + property bool moving: false + property int dragAreaWidth + + // State information propagated to the outside + readonly property bool painting: mainStageImage.visible || sideStageImage.visible || sideStageSnapAnimation.running + property bool fullscreen: priv.focusedApplication ? priv.focusedApplication.fullscreen : false + property bool overlayMode: (sideStageImage.shown && priv.mainStageAppId.length == 0) || priv.overlayOverride + || (priv.mainStageAppId.length == 0 && sideStageSnapAnimation.running) + + readonly property int overlayWidth: priv.overlayOverride ? 0 : priv.sideStageWidth + + onShownChanged: { + if (!shown) { + priv.mainStageAppId = ""; + } + } + + onMovingChanged: { + if (moving) { + if (!priv.mainStageAppId && !priv.sideStageAppId) { + // Pulling in from the right, make the last used (topmost) app visible + var application = ApplicationManager.get(0); + if (application.stage == ApplicationInfoInterface.SideStage) { + sideStageImage.application = application; + sideStageImage.x = root.width - sideStageImage.width + sideStageImage.visible = true; + } else { + mainStageImage.application = application; + mainStageImage.visible = true; + } + } else { + priv.requestNewScreenshot(ApplicationInfoInterface.MainStage) + if (priv.focusedApplicationId == priv.sideStageAppId) { + priv.requestNewScreenshot(ApplicationInfoInterface.SideStage) + } + } + } else { + mainStageImage.visible = false; + sideStageImage.visible = false; + } + } + + QtObject { + id: priv + + property int sideStageWidth: units.gu(40) + + + property string sideStageAppId + property string mainStageAppId + + + property var sideStageApp: ApplicationManager.findApplication(sideStageAppId) + property var mainStageApp: ApplicationManager.findApplication(mainStageAppId) + + property string sideStageScreenshot: sideStageApp ? sideStageApp.screenshot : "" + property string mainStageScreenshot: mainStageApp ? mainStageApp.screenshot : "" + + property string focusedApplicationId: ApplicationManager.focusedApplicationId + property var focusedApplication: ApplicationManager.findApplication(focusedApplicationId) + property url focusedScreenshot: focusedApplication ? focusedApplication.screenshot : "" + + property bool waitingForMainScreenshot: false + property bool waitingForSideScreenshot: false + property bool waitingForScreenshots: waitingForMainScreenshot || waitingForSideScreenshot + + property string startingAppId: "" + + // Keep overlayMode even if there is no focused app (to allow pulling in the sidestage from the right) + property bool overlayOverride: false + + onFocusedApplicationChanged: { + if (focusedApplication) { + if (focusedApplication.stage == ApplicationInfoInterface.MainStage) { + mainStageAppId = focusedApplicationId; + priv.overlayOverride = false; + if (priv.startingAppId == focusedApplicationId && sideStageImage.shown) { + // There was already a sidestage app on top. bring it back! + ApplicationManager.focusApplication(priv.sideStageAppId) + priv.startingAppId = ""; + } + } else if (focusedApplication.stage == ApplicationInfoInterface.SideStage) { + sideStageAppId = focusedApplicationId; + if (priv.startingAppId == focusedApplicationId && !sideStageImage.shown) { + sideStageImage.snapToApp(focusedApplication); + priv.startingAppId = ""; + } + } + } else if (root.overlayMode){ + sideStageImage.snapTo(root.width) + } + } + + onMainStageScreenshotChanged: { + waitingForMainScreenshot = false; + } + + onSideStageScreenshotChanged: { + waitingForSideScreenshot = false; + } + + onFocusedScreenshotChanged: { + waitingForSideScreenshot = false; + } + + onWaitingForScreenshotsChanged: { + if (waitingForScreenshots) { + return; + } + + if (root.moving) { + if (mainStageAppId) { + mainStageImage.application = mainStageApp + mainStageImage.visible = true; + } + if (sideStageAppId && focusedApplicationId == sideStageAppId) { + sideStageImage.application = sideStageApp; + sideStageImage.x = root.width - sideStageImage.width + sideStageImage.visible = true; + } + } + if (sideStageHandleMouseArea.pressed) { + if (sideStageAppId) { + sideStageImage.application = sideStageApp; + sideStageImage.x = root.width - sideStageImage.width + sideStageImage.visible = true; + } + if (mainStageAppId) { + mainStageImage.application = mainStageApp + mainStageImage.visible = true; + } + } + } + + function requestNewScreenshot(stage) { + if (stage == ApplicationInfoInterface.MainStage && mainStageAppId) { + waitingForMainScreenshot = true; + ApplicationManager.updateScreenshot(mainStageAppId); + } else if (stage == ApplicationInfoInterface.SideStage && sideStageAppId) { + waitingForSideScreenshot = true; + ApplicationManager.updateScreenshot(sideStageAppId); + } + } + + } + // FIXME: the signal connection seems to get lost with the fake application manager. + Connections { + target: priv.sideStageApp + onScreenshotChanged: priv.sideStageScreenshot = priv.sideStageApp.screenshot + } + Connections { + target: priv.mainStageApp + onScreenshotChanged: priv.mainStageScreenshot = priv.mainStageApp.screenshot + } + + Connections { + target: ApplicationManager + + onApplicationAdded: { + priv.startingAppId = appId; + splashScreenTimer.start(); + var application = ApplicationManager.findApplication(appId) + if (application.stage == ApplicationInfoInterface.SideStage) { + sideStageSplash.visible = true; + } else if (application.stage == ApplicationInfoInterface.MainStage) { + mainStageSplash.visible = true; + } + } + + onFocusRequested: { + var application = ApplicationManager.findApplication(appId) + if (application.stage == ApplicationInfoInterface.SideStage) { + if (!root.shown) { + priv.mainStageAppId = ""; + mainStageImage.application = null + } + if (sideStageImage.shown) { + sideStageImage.switchTo(application); + if (priv.mainStageAppId) { + mainStageImage.application = priv.mainStageApp; + mainStageImage.visible = true; + } + } else { + sideStageImage.application = application; + sideStageImage.snapToApp(application); + } + } else if (application.stage == ApplicationInfoInterface.MainStage) { + if (root.shown) { + if (sideStageImage.shown) { + sideStageImage.application = priv.sideStageApp; + sideStageImage.visible = true; + } + priv.mainStageAppId = application.appId; + mainStageImage.switchTo(application) + ApplicationManager.focusApplication(appId) + if (sideStageImage.shown) { + // There was already a focused SS app. Bring it back + ApplicationManager.focusApplication(priv.sideStageAppId) + } + } else { + if (sideStageImage.shown) { + sideStageImage.visible = false; + sideStageImage.x = root.width; + } + + mainStageImage.application = application; + ApplicationManager.focusApplication(appId) + } + } + } + + onApplicationRemoved: { + if (priv.mainStageAppId == appId) { + priv.mainStageAppId = ""; + } + if (priv.sideStageAppId == appId) { + priv.sideStageAppId = ""; + } + if (priv.sideStageAppId.length == 0) { + sideStageImage.shown = false; + priv.overlayOverride = false; + } + } + + } + + Timer { + id: splashScreenTimer + // FIXME: apart from removing this completely in the future and make the app surface paint + // meaningful stuff, also check for colin's stuff to land so we can shape 1.4 secs away from here + // https://code.launchpad.net/~cjwatson/upstart-app-launch/libclick-manifest/+merge/210520 + // https://code.launchpad.net/~cjwatson/upstart-app-launch/libclick-pkgdir/+merge/209909 + interval: 1700 + repeat: false + onTriggered: { + mainStageSplash.visible = false; + sideStageSplash.visible = false; + } + } + + SwitchingApplicationImage { + id: mainStageImage + anchors.bottom: parent.bottom + width: parent.width + visible: false + + onSwitched: { + sideStageImage.visible = false; + } + } + + Rectangle { + id: mainStageSplash + anchors.fill: root + anchors.rightMargin: root.width - sideStageImage.x + color: "white" + } + + SidestageHandle { + id: sideStageHandle + anchors { top: parent.top; right: sideStageImage.left; bottom: parent.bottom } + width: root.dragAreaWidth + visible: root.shown && priv.sideStageAppId && sideStageImage.x < root.width + + } + MouseArea { + id: sideStageHandleMouseArea + anchors { top: parent.top; right: parent.right; bottom: parent.bottom; rightMargin: sideStageImage.shown ? sideStageImage.width : 0} + width: root.dragAreaWidth + visible: priv.sideStageAppId + + property var dragPoints: new Array() + + onPressed: { + priv.requestNewScreenshot(ApplicationInfoInterface.SideStage) + if (priv.mainStageAppId) { + priv.requestNewScreenshot(ApplicationInfoInterface.MainStage) + } + } + + onMouseXChanged: { + dragPoints.push(mouseX) + + var dragPoint = root.width + mouseX; + if (sideStageImage.shown) { + dragPoint -= sideStageImage.width + } + sideStageImage.x = Math.max(root.width - sideStageImage.width, dragPoint) + } + + onReleased: { + var distance = 0; + var lastX = dragPoints[0]; + var oneWayFlick = true; + for (var i = 0; i < dragPoints.length; ++i) { + if (dragPoints[i] < lastX) { + oneWayFlick = false; + } + distance += dragPoints[i] - lastX; + lastX = dragPoints[i]; + } + dragPoints = []; + + if (oneWayFlick || distance > sideStageImage.width / 2) { + sideStageImage.snapTo(root.width) + } else { + sideStageImage.snapToApp(priv.sideStageApp) + } + } + } + + SwitchingApplicationImage { + id: sideStageImage + width: priv.sideStageWidth + height: root.height + x: root.width + anchors.bottom: parent.bottom + visible: true + property bool shown: false + + onSwitched: { + mainStageImage.visible = false; + ApplicationManager.focusApplication(application.appId) + } + + function snapTo(targetX) { + sideStageSnapAnimation.targetX = targetX + sideStageImage.visible = true; + if (priv.mainStageAppId) { + mainStageImage.application = priv.mainStageApp + mainStageImage.visible = true; + } + sideStageSnapAnimation.start(); + } + + function snapToApp(application) { + sideStageImage.application = application + sideStageSnapAnimation.snapToId = application.appId; + snapTo(root.width - sideStageImage.width); + } + + SequentialAnimation { + id: sideStageSnapAnimation + property int targetX: root.width + property string snapToId + + UbuntuNumberAnimation { target: sideStageImage; property: "x"; to: sideStageSnapAnimation.targetX; duration: UbuntuAnimation.SlowDuration } + ScriptAction { + script: { + if (sideStageSnapAnimation.targetX == root.width) { + if (priv.mainStageAppId) { + ApplicationManager.focusApplication(priv.mainStageAppId) + } else { + priv.overlayOverride = true; + ApplicationManager.unfocusCurrentApplication(); + } + sideStageImage.shown = false; + } + if (sideStageSnapAnimation.snapToId) { + ApplicationManager.focusApplication(sideStageSnapAnimation.snapToId) + sideStageSnapAnimation.snapToId = ""; + sideStageImage.shown = true; + priv.overlayOverride = false; + } + sideStageImage.visible = false; + mainStageImage.visible = false; + } + } + } + } + + Rectangle { + id: sideStageSplash + anchors.fill: parent + anchors.leftMargin: sideStageImage.x + color: "white" + } +} diff -Nru unity8-7.84+14.04.20140327.1/qml/Stages/SwitchingApplicationImage.qml unity8-7.85+14.04.20140401.3/qml/Stages/SwitchingApplicationImage.qml --- unity8-7.84+14.04.20140327.1/qml/Stages/SwitchingApplicationImage.qml 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Stages/SwitchingApplicationImage.qml 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,81 @@ +/* + * Copyright 2014 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 + * 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Authors: Michael Zanetti +*/ + +import QtQuick 2.0 +import Ubuntu.Components 0.1 + +Rectangle { + id: root + implicitHeight: image.implicitHeight + implicitWidth: image.implicitWidth + color: "black" + + property var application + + signal switched() + + function switchTo(application) { + if (root.application == application) { + root.switched(); + return; + } + + priv.newApplication = application + root.visible = true; + switchToAnimation.start() + } + + QtObject { + id: priv + property var newApplication + } + + Image { + id: newImage + anchors.bottom: parent.bottom + width: root.width + source: priv.newApplication ? priv.newApplication.screenshot : "" + } + + Image { + id: image + visible: true + source: root.application ? root.application.screenshot : "" + width: root.width + height: sourceSize.height + anchors.bottom: parent.bottom + + } + + SequentialAnimation { + id: switchToAnimation + ParallelAnimation { + UbuntuNumberAnimation { target: image; property: "x"; from: 0; to: root.width; duration: UbuntuAnimation.SlowDuration } + UbuntuNumberAnimation { target: newImage; property: "scale"; from: 0.7; to: 1; duration: UbuntuAnimation.SlowDuration } + } + ScriptAction { + script: { + image.x = 0 + root.application = priv.newApplication + root.visible = false; + priv.newApplication = null + root.switched(); + } + } + } +} diff -Nru unity8-7.84+14.04.20140327.1/qml/Stages/TransformedSpreadDelegate.qml unity8-7.85+14.04.20140401.3/qml/Stages/TransformedSpreadDelegate.qml --- unity8-7.84+14.04.20140327.1/qml/Stages/TransformedSpreadDelegate.qml 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/qml/Stages/TransformedSpreadDelegate.qml 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,327 @@ +/* + * Copyright 2014 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 + * 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 Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Authors: Michael Zanetti +*/ + +import QtQuick 2.0 +import Utils 0.1 +import Ubuntu.Components 0.1 + +SpreadDelegate { + id: root + + property bool selected: false + property bool otherSelected: false + + // The progress animates the tiles. A value > 0 makes it appear from the right edge. At 1 it reaches the end position. + property real progress: 0 + // This is required to snap tile 1 during phase 1 and 2. + property real animatedProgress: 0 + + property real startAngle: 0 + property real endAngle: 0 + + property real startScale: 1 + property real endScale: 1 + + // Specific to just one tile + property real tile1StartScale: startScale + .4 + property real tile0SnapAngle: 10 + + property real startDistance: units.gu(5) + property real endDistance: units.gu(.5) + + onSelectedChanged: { + if (selected) { + priv.snapshot(); + } + priv.isSelected = selected; + } + + onOtherSelectedChanged: { + if (otherSelected) { + priv.snapshot(); + } + priv.otherSelected = otherSelected; + } + + Connections { + target: spreadView + onPhaseChanged: { + if (spreadView.phase == 1) { + if (index == 0) { + priv.phase2startTranslate = priv.easingAnimation(0, spreadView.positionMarker4, 0, -spreadView.width, spreadView.positionMarker4) + spreadView.width; + priv.phase2startAngle = priv.easingAnimation(0, spreadView.positionMarker4, root.startAngle, root.endAngle, spreadView.positionMarker4); + priv.phase2startScale = priv.easingAnimation(0, spreadView.positionMarker4, root.startScale, root.endScale, spreadView.positionMarker4); + priv.phase2startTopMarginProgress = priv.easingAnimation(0, 1, 0, 1, spreadView.positionMarker4); + } else if (index == 1) { + // find where the main easing for Tile 1 would be when reaching phase 2 + var phase2Progress = spreadView.positionMarker4 - spreadView.tileDistance / spreadView.width; + priv.phase2startTranslate = priv.easingAnimation(0, phase2Progress, 0, -spreadView.width + root.endDistance, phase2Progress); + priv.phase2startAngle = priv.easingAnimation(0, phase2Progress, root.startAngle, root.endAngle, phase2Progress); + priv.phase2startScale = priv.easingAnimation(0, phase2Progress, root.startScale, root.endScale, phase2Progress); + priv.phase2startTopMarginProgress = priv.easingAnimation(0, 1, 0, spreadView.positionMarker4, phase2Progress); + } + } + } + } + + QtObject { + id: priv + property bool isSelected: false + property bool otherSelected: false + property real selectedProgress + property real selectedXTranslate + property real selectedAngle + property real selectedScale + property real selectedOpacity + property real selectedTopMarginProgress + + // Those values are needed as target values for the end of phase 1. + // As they are static values, lets calculate them once when entering phase 1 instead of calculating them in each animation pass. + property real phase2startTranslate + property real phase2startAngle + property real phase2startScale + property real phase2startTopMarginProgress + + function snapshot() { + selectedProgress = root.progress; + selectedXTranslate = xTranslate; + selectedAngle = angle; + selectedScale = scale; + selectedOpacity = opacity; + selectedTopMarginProgress = topMarginProgress; + } + + // This calculates how much negative progress there can be if unwinding the spread completely + // the progress for each tile starts at 0 when it crosses the right edge, so the later a tile comes in, + // the bigger its negativeProgress can be. + property real negativeProgress: { + if (index == 1 && spreadView.phase < 2) { + return 0; + } + return -index * spreadView.tileDistance / spreadView.width; + } + + function linearAnimation(startProgress, endProgress, startValue, endValue, progress) { + // progress : progressDiff = value : valueDiff => value = progress * valueDiff / progressDiff + return (progress - startProgress) * (endValue - startValue) / (endProgress - startProgress) + startValue; + } + + function easingAnimation(startProgress, endProgress, startValue, endValue, progress) { + helperEasingCurve.progress = progress - startProgress; + helperEasingCurve.period = endProgress - startProgress; + return helperEasingCurve.value * (endValue - startValue) + startValue; + } + + property real animatedEndDistance: linearAnimation(0, 2, root.endDistance, 0, root.progress) + + // The following blocks handle the animation of the tile in the spread. + // At the beginning, each tile is attached at the right edge, outside the screen. + // The progress for each tile starts at 0 and it reaches its end position at a progress of 1. + // The first phases are handled special for the first 2 tiles. as we do the alt-tab and snapping in there + // Once we reached phase 3, the animation is the same for all tiles. + // When a tile is selected, the animation state is snapshotted, and the spreadView is unwound (progress animates + // back to negativeProgress). All tiles are kept in place and faded out to 0 opacity except + // the selected tile, which is animated from the snapshotted position to be fullscreen. + + property real xTranslate: { + if (otherSelected) { + if (spreadView.phase < 2 && index == 0) { + return linearAnimation(selectedProgress, negativeProgress, + selectedXTranslate, selectedXTranslate - spreadView.tileDistance, root.progress); + } + + return selectedXTranslate; + } + + switch (index) { + case 0: + if (spreadView.phase == 0) { + return Math.min(0, linearAnimation(0, spreadView.positionMarker2, + 0, -spreadView.width * .25, root.animatedProgress)); + } else if (spreadView.phase == 1){ + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + -spreadView.width * .25, priv.phase2startTranslate, root.progress); + } else if (!priv.isSelected){ // phase 2 + // Apply the same animation as with the rest but add spreadView.width to align it with the others. + return -easingCurve.value * spreadView.width + spreadView.width; + } else if (priv.isSelected) { + return linearAnimation(selectedProgress, negativeProgress, selectedXTranslate, 0, root.progress); + } + + case 1: + if (spreadView.phase == 0 && !priv.isSelected) { + return linearAnimation(0, spreadView.positionMarker2, + 0, -spreadView.width * spreadView.snapPosition, root.animatedProgress); + } else if (spreadView.phase == 1 && !priv.isSelected) { + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + -spreadView.width * spreadView.snapPosition, priv.phase2startTranslate, + root.progress); + } + } + + if (priv.isSelected) { + // Distance to left edge + var targetTranslate = -spreadView.width - ((index - 1) * root.startDistance); + return linearAnimation(selectedProgress, negativeProgress, + selectedXTranslate, targetTranslate, root.progress); + } + + // Fix it at the right edge... + var rightEdgeOffset = -((index - 1) * root.startDistance); + // ...and use our easing to move them to the left. Stop a bit earlier for each tile + return -easingCurve.value * spreadView.width + (index * animatedEndDistance) + rightEdgeOffset; + + } + + property real angle: { + if (priv.otherSelected) { + return priv.selectedAngle; + } + if (priv.isSelected) { + return linearAnimation(selectedProgress, negativeProgress, selectedAngle, 0, root.progress); + } + switch (index) { + case 0: + if (spreadView.phase == 0) { + return Math.max(0, linearAnimation(0, spreadView.positionMarker2, + 0, root.tile0SnapAngle, root.animatedProgress)); + } else if (spreadView.phase == 1) { + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + root.tile0SnapAngle, phase2startAngle, root.progress); + } + case 1: + if (spreadView.phase == 0) { + return linearAnimation(0, spreadView.positionMarker2, root.startAngle, + root.startAngle * (1-spreadView.snapPosition), root.animatedProgress); + } else if (spreadView.phase == 1) { + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + root.startAngle * (1-spreadView.snapPosition), priv.phase2startAngle, + root.progress); + } + } + return root.startAngle - easingCurve.value * (root.startAngle - root.endAngle); + } + + property real scale: { + if (priv.otherSelected) { + return priv.selectedScale; + } + if (priv.isSelected) { + return linearAnimation(selectedProgress, negativeProgress, selectedScale, 1, root.progress); + } + + switch (index) { + case 0: + if (spreadView.phase == 0) { + return 1; + } else if (spreadView.phase == 1) { + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + 1, phase2startScale, root.progress); + } + case 1: + if (spreadView.phase == 0) { + var targetScale = tile1StartScale - ((tile1StartScale - 1) * spreadView.snapPosition); + return linearAnimation(0, spreadView.positionMarker2, + root.tile1StartScale, targetScale, root.animatedProgress); + } else if (spreadView.phase == 1) { + var startScale = tile1StartScale - ((tile1StartScale - 1) * spreadView.snapPosition); + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + startScale, priv.phase2startScale, root.progress); + } + } + return root.startScale - easingCurve.value * (root.startScale - root.endScale); + } + + property real opacity: { + if (priv.otherSelected) { + return linearAnimation (selectedProgress, Math.max(0, selectedProgress - .5), + selectedOpacity, 0, root.progress); + } + if (index == 0) { + switch (spreadView.phase) { + case 0: + return linearAnimation(0, spreadView.positionMarker2, 1, .3, root.animatedProgress); + case 1: + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + .3, 1, root.animatedProgress); + } + } + + return 1; + } + + property real topMarginProgress: { + if (priv.isSelected) { + return linearAnimation(selectedProgress, negativeProgress, selectedTopMarginProgress, 0, root.progress); + } + + switch (index) { + case 0: + if (spreadView.phase == 0) { + return 0; + } else if (spreadView.phase == 1) { + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + 0, priv.phase2startTopMarginProgress, root.progress); + } + break; + case 1: + if (spreadView.phase == 0) { + return 0; + } else if (spreadView.phase == 1) { + return linearAnimation(spreadView.positionMarker2, spreadView.positionMarker4, + 0, priv.phase2startTopMarginProgress, root.progress); + } + } + + return easingCurve.value; + } + } + + transform: [ + Rotation { + origin { x: 0; y: spreadView.height / 2 } + axis { x: 0; y: 1; z: 0 } + angle: priv.angle + }, + Scale { + origin { x: 0; y: spreadView.height / 2 } + xScale: priv.scale + yScale: xScale + }, + Translate { + x: priv.xTranslate + } + ] + opacity: priv.opacity + topMarginProgress: priv.topMarginProgress + + EasingCurve { + id: easingCurve + type: EasingCurve.OutSine + period: 1 - spreadView.positionMarker2 + progress: root.animatedProgress + } + + // This is used as a calculation helper to figure values for progress other than the current one + // Do not bind anything to this... + EasingCurve { + id: helperEasingCurve + type: easingCurve.type + period: easingCurve.period + } +} diff -Nru unity8-7.84+14.04.20140327.1/src/main.cpp unity8-7.85+14.04.20140401.3/src/main.cpp --- unity8-7.84+14.04.20140327.1/src/main.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/src/main.cpp 2014-04-01 22:55:36.000000000 +0000 @@ -119,12 +119,6 @@ prependImportPaths(view->engine(), ::overrideImportPaths()); appendImportPaths(view->engine(), ::fallbackImportPaths()); - if (isUbuntuMirServer) { - QStringList importPaths = view->engine()->importPathList(); - importPaths.replaceInStrings(QRegExp("qt5/imports$"), "qt5/imports/Unity-Mir"); - view->engine()->setImportPathList(importPaths); - } - view->setSource(source); view->setColor("transparent"); diff -Nru unity8-7.84+14.04.20140327.1/tests/autopilot/unity8/shell/emulators/dash.py unity8-7.85+14.04.20140401.3/tests/autopilot/unity8/shell/emulators/dash.py --- unity8-7.84+14.04.20140327.1/tests/autopilot/unity8/shell/emulators/dash.py 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/autopilot/unity8/shell/emulators/dash.py 2014-04-01 22:55:19.000000000 +0000 @@ -80,10 +80,7 @@ 'No scope found with id {0}'.format(scope_id)) def _get_scope_from_loader(self, loader): - if loader.scopeId == 'clickscope': - return loader.select_single(DashApps) - else: - return loader.select_single(GenericScopeView) + return loader.get_children()[0] def _open_scope_scrolling(self, scope_loader): scroll = self._get_scroll_direction(scope_loader) diff -Nru unity8-7.84+14.04.20140327.1/tests/autopilot/unity8/shell/emulators/main_window.py unity8-7.85+14.04.20140401.3/tests/autopilot/unity8/shell/emulators/main_window.py --- unity8-7.84+14.04.20140327.1/tests/autopilot/unity8/shell/emulators/main_window.py 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/autopilot/unity8/shell/emulators/main_window.py 2014-04-01 22:55:19.000000000 +0000 @@ -112,4 +112,4 @@ def get_current_focused_app_id(self): """Return the id of the focused application.""" - return self.select_single('Shell').currentFocusedAppId + return self.select_single('Shell').focusedApplicationId diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Ubuntu/CMakeLists.txt unity8-7.85+14.04.20140401.3/tests/mocks/Ubuntu/CMakeLists.txt --- unity8-7.84+14.04.20140327.1/tests/mocks/Ubuntu/CMakeLists.txt 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Ubuntu/CMakeLists.txt 2014-04-01 22:56:02.000000000 +0000 @@ -1 +1,2 @@ add_subdirectory(DownloadDaemonListener) +add_subdirectory(Thumbnailer) diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Ubuntu/Thumbnailer/CMakeLists.txt unity8-7.85+14.04.20140401.3/tests/mocks/Ubuntu/Thumbnailer/CMakeLists.txt --- unity8-7.84+14.04.20140327.1/tests/mocks/Ubuntu/Thumbnailer/CMakeLists.txt 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Ubuntu/Thumbnailer/CMakeLists.txt 2014-04-01 22:56:02.000000000 +0000 @@ -0,0 +1,7 @@ +# copy files into build directory for shadow builds +add_custom_target(UbuntuThumbnailerQmlDirFile ALL + COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/qmldir" ${CMAKE_CURRENT_BINARY_DIR} + DEPENDS qmldir +) + +install(FILES qmldir DESTINATION ${SHELL_INSTALL_QML}/mocks/Ubuntu/Thumbnailer) diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Ubuntu/Thumbnailer/qmldir unity8-7.85+14.04.20140401.3/tests/mocks/Ubuntu/Thumbnailer/qmldir --- unity8-7.84+14.04.20140327.1/tests/mocks/Ubuntu/Thumbnailer/qmldir 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Ubuntu/Thumbnailer/qmldir 2014-04-01 22:56:02.000000000 +0000 @@ -0,0 +1,2 @@ +module Ubuntu.Thumbnailer +Dummy 0.1 Dummy.qml diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationInfo.cpp unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationInfo.cpp --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationInfo.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationInfo.cpp 2014-04-01 22:55:19.000000000 +0000 @@ -20,6 +20,7 @@ #include #include #include +#include ApplicationInfo::ApplicationInfo(const QString &appId, QObject *parent) : ApplicationInfoInterface(appId, parent) @@ -32,6 +33,7 @@ ,m_windowComponent(0) ,m_parentItem(0) { + QTimer::singleShot(300, this, SLOT(setRunning())); } ApplicationInfo::ApplicationInfo(QObject *parent) @@ -44,6 +46,7 @@ ,m_windowComponent(0) ,m_parentItem(0) { + QTimer::singleShot(300, this, SLOT(setRunning())); } void ApplicationInfo::onWindowComponentStatusChanged(QQmlComponent::Status status) @@ -52,6 +55,12 @@ doCreateWindowItem(); } +void ApplicationInfo::setRunning() +{ + m_state = Running; + Q_EMIT stateChanged(); +} + void ApplicationInfo::createWindowComponent() { // The assumptions I make here really should hold. diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationInfo.h unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationInfo.h --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationInfo.h 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationInfo.h 2014-04-01 22:55:19.000000000 +0000 @@ -74,6 +74,7 @@ IMPLEMENT_PROPERTY(fullscreen, Fullscreen, bool) IMPLEMENT_PROPERTY(imageQml, ImageQml, QString) IMPLEMENT_PROPERTY(windowQml, WindowQml, QString) + IMPLEMENT_PROPERTY(screenshot, Screenshot, QUrl) #undef IMPLEMENT_PROPERTY @@ -83,6 +84,7 @@ private Q_SLOTS: void onWindowComponentStatusChanged(QQmlComponent::Status status); + void setRunning(); private: void createWindowItem(); diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationManager.cpp unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationManager.cpp --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationManager.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationManager.cpp 2014-04-01 22:55:19.000000000 +0000 @@ -24,13 +24,17 @@ #include #include #include +#include +#include ApplicationManager::ApplicationManager(QObject *parent) : ApplicationManagerInterface(parent) + , m_suspended(false) , m_mainStageComponent(0) , m_mainStage(0) , m_sideStageComponent(0) , m_sideStage(0) + , m_rightMargin(0) { buildListOfAvailableApplications(); } @@ -63,6 +67,8 @@ return app->state(); case RoleFocused: return app->focused(); + case RoleScreenshot: + return app->screenshot(); default: return QVariant(); } @@ -84,13 +90,16 @@ } void ApplicationManager::add(ApplicationInfo *application) { - if (!application) + if (!application) { return; + } beginInsertRows(QModelIndex(), m_runningApplications.size(), m_runningApplications.size()); m_runningApplications.append(application); endInsertRows(); + Q_EMIT applicationAdded(application->appId()); Q_EMIT countChanged(); + Q_EMIT focusRequested(application->appId()); } void ApplicationManager::remove(ApplicationInfo *application) { @@ -99,6 +108,7 @@ beginRemoveRows(QModelIndex(), i, i); m_runningApplications.removeAt(i); endRemoveRows(); + Q_EMIT applicationRemoved(application->appId()); Q_EMIT countChanged(); } } @@ -171,6 +181,8 @@ } add(application); + QMetaObject::invokeMethod(this, "focusApplication", Qt::QueuedConnection, Q_ARG(QString, appId)); + return application; } @@ -180,8 +192,32 @@ if (application == nullptr) return false; + if (application->appId() == focusedApplicationId()) { + unfocusCurrentApplication(); + } remove(application); - Q_EMIT focusedApplicationIdChanged(); + return true; +} + +bool ApplicationManager::updateScreenshot(const QString &appId) +{ + int idx = -1; + ApplicationInfo *application = nullptr; + for (int i = 0; i < m_availableApplications.count(); ++i) { + application = m_availableApplications.at(i); + if (application->appId() == appId) { + idx = i; + break; + } + } + + if (idx == -1) { + return false; + } + + application->setScreenshot(QString("image://application/%1/%2").arg(appId).arg(QDateTime::currentMSecsSinceEpoch())); + QModelIndex appIndex = index(idx); + Q_EMIT dataChanged(appIndex, appIndex, QVector() << RoleScreenshot); return true; } @@ -194,6 +230,25 @@ return QString(); } +bool ApplicationManager::suspended() const +{ + return m_suspended; +} + +void ApplicationManager::setSuspended(bool suspended) +{ + ApplicationInfo *focusedApp = findApplication(focusedApplicationId()); + if (focusedApp) { + if (suspended) { + focusedApp->setState(ApplicationInfo::Suspended); + } else { + focusedApp->setState(ApplicationInfo::Running); + } + } + m_suspended = suspended; + Q_EMIT suspendedChanged(); +} + bool ApplicationManager::focusApplication(const QString &appId) { ApplicationInfo *application = findApplication(appId); @@ -242,6 +297,15 @@ return true; } +bool ApplicationManager::requestFocusApplication(const QString &appId) +{ + if (appId != focusedApplicationId()) { + QMetaObject::invokeMethod(this, "focusRequested", Qt::QueuedConnection, Q_ARG(QString, appId)); + return true; + } + return false; +} + void ApplicationManager::unfocusCurrentApplication() { for (ApplicationInfo *app : m_runningApplications) { @@ -270,10 +334,12 @@ "Image {\n" " anchors.fill: parent\n" " anchors.topMargin: %1\n" - " source: \"file://%2/Dash/graphics/phone/screenshots/%3.png\"\n" + " anchors.rightMargin: %2\n" + " source: \"file://%3/Dash/graphics/phone/screenshots/%4.png\"\n" " smooth: true\n" " fillMode: Image.PreserveAspectCrop\n" "}").arg(topMargin) + .arg(m_rightMargin) .arg(qmlDirectory()) .arg(application->icon().toString()); application->setWindowQml(windowQml); @@ -299,6 +365,7 @@ application->setName("Phone"); application->setIcon(QUrl("phone")); application->setStage(ApplicationInfo::SideStage); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); generateQmlStrings(application); m_availableApplications.append(application); @@ -307,6 +374,7 @@ application->setName("Camera"); application->setIcon(QUrl("camera")); application->setFullscreen(true); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); generateQmlStrings(application); m_availableApplications.append(application); @@ -314,6 +382,7 @@ application->setAppId("gallery-app"); application->setName("Gallery"); application->setIcon(QUrl("gallery")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); generateQmlStrings(application); m_availableApplications.append(application); @@ -322,13 +391,16 @@ application->setName("Facebook"); application->setIcon(QUrl("facebook")); application->setStage(ApplicationInfo::SideStage); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); generateQmlStrings(application); m_availableApplications.append(application); application = new ApplicationInfo(this); application->setAppId("webbrowser-app"); + application->setFullscreen(true); application->setName("Browser"); application->setIcon(QUrl("browser")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); generateQmlStrings(application); m_availableApplications.append(application); @@ -337,6 +409,7 @@ application->setName("Twitter"); application->setIcon(QUrl("twitter")); application->setStage(ApplicationInfo::SideStage); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); generateQmlStrings(application); m_availableApplications.append(application); @@ -344,6 +417,7 @@ application->setAppId("gmail-webapp"); application->setName("GMail"); application->setIcon(QUrl("gmail")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); application = new ApplicationInfo(this); @@ -351,6 +425,7 @@ application->setName("Weather"); application->setIcon(QUrl("weather")); application->setStage(ApplicationInfo::SideStage); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); generateQmlStrings(application); m_availableApplications.append(application); @@ -359,6 +434,7 @@ application->setName("Notepad"); application->setIcon(QUrl("notepad")); application->setStage(ApplicationInfo::SideStage); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); application = new ApplicationInfo(this); @@ -366,6 +442,7 @@ application->setName("Calendar"); application->setIcon(QUrl("calendar")); application->setStage(ApplicationInfo::SideStage); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); application = new ApplicationInfo(this); @@ -373,18 +450,21 @@ application->setName("Media Player"); application->setIcon(QUrl("mediaplayer-app")); application->setFullscreen(true); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); application = new ApplicationInfo(this); application->setAppId("evernote"); application->setName("Evernote"); application->setIcon(QUrl("evernote")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); application = new ApplicationInfo(this); application->setAppId("map"); application->setName("Map"); application->setIcon(QUrl("map")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); generateQmlStrings(application); m_availableApplications.append(application); @@ -392,24 +472,28 @@ application->setAppId("pinterest"); application->setName("Pinterest"); application->setIcon(QUrl("pinterest")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); application = new ApplicationInfo(this); application->setAppId("soundcloud"); application->setName("SoundCloud"); application->setIcon(QUrl("soundcloud")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); application = new ApplicationInfo(this); application->setAppId("wikipedia"); application->setName("Wikipedia"); application->setIcon(QUrl("wikipedia")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); application = new ApplicationInfo(this); application->setAppId("youtube"); application->setName("YouTube"); application->setIcon(QUrl("youtube")); + application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch())); m_availableApplications.append(application); } @@ -484,3 +568,25 @@ m_sideStage->setParentItem(shell); m_sideStage->setFlag(QQuickItem::ItemHasContents, false); } + +QStringList ApplicationManager::availableApplications() +{ + QStringList appIds; + Q_FOREACH(ApplicationInfo *app, m_availableApplications) { + appIds << app->appId(); + } + return appIds; +} + +int ApplicationManager::rightMargin() const +{ + return m_rightMargin; +} + +void ApplicationManager::setRightMargin(int rightMargin) +{ + m_rightMargin = rightMargin; + Q_FOREACH(ApplicationInfo *app, m_availableApplications) { + generateQmlStrings(app); + } +} diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationManager.h unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationManager.h --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationManager.h 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationManager.h 2014-04-01 22:55:19.000000000 +0000 @@ -45,6 +45,10 @@ Q_PROPERTY(bool fake READ fake CONSTANT) + // Only for testing + // This can be used to place some controls to right, like make tryPhoneStage for example + Q_PROPERTY(int rightMargin READ rightMargin WRITE setRightMargin) + public: ApplicationManager(QObject *parent = NULL); virtual ~ApplicationManager(); @@ -87,13 +91,22 @@ Q_INVOKABLE void move(int from, int to); // Application control methods + Q_INVOKABLE bool requestFocusApplication(const QString &appId) override; Q_INVOKABLE bool focusApplication(const QString &appId) override; Q_INVOKABLE void unfocusCurrentApplication() override; Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, const QStringList &arguments = QStringList()) override; Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, ExecFlags flags, const QStringList &arguments = QStringList()); Q_INVOKABLE bool stopApplication(const QString &appId) override; + Q_INVOKABLE bool updateScreenshot(const QString &appId) override; QString focusedApplicationId() const override; + bool suspended() const; + void setSuspended(bool suspended); + + // Only for testing + Q_INVOKABLE QStringList availableApplications(); + int rightMargin() const; + void setRightMargin(int rightMargin); Q_SIGNALS: void keyboardHeightChanged(); @@ -113,12 +126,15 @@ void createSideStage(); int m_keyboardHeight; bool m_keyboardVisible; + bool m_suspended; QList m_runningApplications; QList m_availableApplications; QQmlComponent *m_mainStageComponent; QQuickItem *m_mainStage; QQmlComponent *m_sideStageComponent; QQuickItem *m_sideStage; + + int m_rightMargin; }; Q_DECLARE_OPERATORS_FOR_FLAGS(ApplicationManager::ExecFlags) diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationScreenshotProvider.cpp unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationScreenshotProvider.cpp --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationScreenshotProvider.cpp 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationScreenshotProvider.cpp 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2014 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 + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, + * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +#include "ApplicationScreenshotProvider.h" +#include "ApplicationManager.h" +#include "ApplicationInfo.h" + +#include "paths.h" + +#include +#include +#include +#include + +ApplicationScreenshotProvider::ApplicationScreenshotProvider(ApplicationManager *appManager) + : QQuickImageProvider(QQuickImageProvider::Image) + , m_appManager(appManager) +{ +} + +QImage ApplicationScreenshotProvider::requestImage(const QString &imageId, QSize * size, + const QSize &requestedSize) +{ + // We ignore requestedSize here intentionally to avoid keeping scaled copies around + Q_UNUSED(requestedSize) + + QString appId = imageId.split('/').first(); + + ApplicationInfo* app = static_cast(m_appManager->findApplication(appId)); + if (app == nullptr) { + return QImage(); + } + + QString filePath = QString("%1/Dash/graphics/phone/screenshots/%2@12.png").arg(qmlDirectory()).arg(app->icon().toString()); + + QImage image; + if (!image.load(filePath)) { + qWarning() << "failed loading app image" << filePath; + } + + + if (app->stage() == ApplicationInfo::SideStage) { + QByteArray gus = qgetenv("GRID_UNIT_PX"); + image = image.scaledToWidth(gus.toInt() * 48); + } else { + // Lets scale main stage applications to be the size of the screen/window. + QGuiApplication *unity = qobject_cast(qApp); + Q_FOREACH (QWindow *win, unity->allWindows()) { + QQuickWindow *quickWin = qobject_cast(win); + if (quickWin) { + image = image.scaledToWidth(quickWin->width() - m_appManager->rightMargin()); + break; + } + } + } + + size->setWidth(image.width()); + size->setHeight(image.height()); + + return image; +} diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationScreenshotProvider.h unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationScreenshotProvider.h --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/ApplicationScreenshotProvider.h 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/ApplicationScreenshotProvider.h 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,34 @@ +/* + * Copyright (C) 201 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 + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, + * SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +#ifndef APPLICATIONSCREENSHOTPROVIDER_H +#define APPLICATIONSCREENSHOTPROVIDER_H + +#include + +class ApplicationManager; +class ApplicationScreenshotProvider : public QQuickImageProvider +{ +public: + explicit ApplicationScreenshotProvider(ApplicationManager *appManager); + + QImage requestImage(const QString &appId, QSize *size, const QSize &requestedSize) override; + +private: + ApplicationManager* m_appManager; +}; + +#endif // APPLICATIONSCREENSHOTPROVIDER_H diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/CMakeLists.txt unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/CMakeLists.txt --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/CMakeLists.txt 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/CMakeLists.txt 2014-04-01 22:55:19.000000000 +0000 @@ -5,6 +5,7 @@ ApplicationInfo.cpp ApplicationImage.cpp ApplicationManager.cpp + ApplicationScreenshotProvider.cpp ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h ) diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/plugin.cpp unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/plugin.cpp --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/plugin.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/plugin.cpp 2014-04-01 22:55:19.000000000 +0000 @@ -18,13 +18,20 @@ #include "ApplicationInfo.h" #include "ApplicationImage.h" #include "ApplicationManager.h" +#include "ApplicationScreenshotProvider.h" #include +#include + +ApplicationManager *s_appManager = 0; static QObject* applicationManagerSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) { - Q_UNUSED(engine); - Q_UNUSED(scriptEngine); - return new ApplicationManager(); + Q_UNUSED(engine); + Q_UNUSED(scriptEngine); + if (!s_appManager) { + s_appManager = new ApplicationManager(); + } + return s_appManager; } void FakeUnityApplicationQmlPlugin::registerTypes(const char *uri) @@ -37,3 +44,11 @@ qmlRegisterType(uri, 0, 1, "ApplicationImage"); } + +void FakeUnityApplicationQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri) +{ + QQmlExtensionPlugin::initializeEngine(engine, uri); + + ApplicationManager* appManager = static_cast(applicationManagerSingleton(engine, NULL)); + engine->addImageProvider(QLatin1String("application"), new ApplicationScreenshotProvider(appManager)); +} diff -Nru unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/plugin.h unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/plugin.h --- unity8-7.84+14.04.20140327.1/tests/mocks/Unity/Application/plugin.h 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/mocks/Unity/Application/plugin.h 2014-04-01 22:55:19.000000000 +0000 @@ -25,6 +25,7 @@ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface") public: void registerTypes(const char *uri); + void initializeEngine(QQmlEngine *engine, const char *uri); }; #endif diff -Nru unity8-7.84+14.04.20140327.1/tests/plugins/DashViews/listviewwithpageheadertest.cpp unity8-7.85+14.04.20140401.3/tests/plugins/DashViews/listviewwithpageheadertest.cpp --- unity8-7.84+14.04.20140327.1/tests/plugins/DashViews/listviewwithpageheadertest.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/plugins/DashViews/listviewwithpageheadertest.cpp 2014-04-01 22:55:54.000000000 +0000 @@ -1855,7 +1855,6 @@ scrollToBottom(); lvwph->showHeader(); QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning()); - QTest::qWait(100); // Make sure stuff is stable QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 100)); model->setProperty(3, "size", 10); model->setProperty(4, "size", 10); diff -Nru unity8-7.84+14.04.20140327.1/tests/plugins/DashViews/listviewwithpageheadertestsection.cpp unity8-7.85+14.04.20140401.3/tests/plugins/DashViews/listviewwithpageheadertestsection.cpp --- unity8-7.84+14.04.20140327.1/tests/plugins/DashViews/listviewwithpageheadertestsection.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/plugins/DashViews/listviewwithpageheadertestsection.cpp 2014-04-01 22:55:54.000000000 +0000 @@ -1680,12 +1680,11 @@ verifyItem(18, 700, 50., false, QString(), true); verifyItem(19, 750, 50., false, QString(), true); verifyItem(20, 800, 50., false, QString(), true); - QCOMPARE(lvwph->m_minYExtent, 5 * 1510./21. + 660 - 1970 + 50); - QCOMPARE(lvwph->m_clipItem->y(), 1970.); + QCOMPARE(lvwph->m_clipItem->y(), lvwph->contentY()); + QCOMPARE(lvwph->m_minYExtent, 5 * 1510./21. + 660 - lvwph->contentY() + 50); QCOMPARE(lvwph->m_clipItem->clip(), false); QCOMPARE(lvwph->m_headerItem->y(), 0.); QCOMPARE(lvwph->m_headerItem->height(), 50.); - QCOMPARE(lvwph->contentY(), 1970.); QCOMPARE(lvwph->m_headerItemShownHeight, 0.); } @@ -2108,6 +2107,7 @@ QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled); QTest::qWait(1); + QCoreApplication::instance()->processEvents(); changeContentY(-15); diff -Nru unity8-7.84+14.04.20140327.1/tests/plugins/Unity/Launcher/launchermodeltest.cpp unity8-7.85+14.04.20140401.3/tests/plugins/Unity/Launcher/launchermodeltest.cpp --- unity8-7.84+14.04.20140327.1/tests/plugins/Unity/Launcher/launchermodeltest.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/plugins/Unity/Launcher/launchermodeltest.cpp 2014-04-01 22:55:19.000000000 +0000 @@ -39,6 +39,7 @@ ApplicationInfoInterface::Stage stage() const { return ApplicationInfoInterface::MainStage; } ApplicationInfoInterface::State state() const { return ApplicationInfoInterface::Running; } bool focused() const { return m_focused; } + QUrl screenshot() const { return QUrl(); } // Methods used for mocking (not in the interface) void setFocused(bool focused) { m_focused = focused; Q_EMIT focusedChanged(focused); } @@ -92,6 +93,10 @@ m_list.takeAt(index)->deleteLater(); endRemoveRows(); } + bool updateScreenshot(const QString &appId) { Q_UNUSED(appId); return true; } + bool requestFocusApplication(const QString &appId) { Q_UNUSED(appId); return true; } + bool suspended() const { return false; } + void setSuspended(bool) {} private: QList m_list; diff -Nru unity8-7.84+14.04.20140327.1/tests/qmltests/CMakeLists.txt unity8-7.85+14.04.20140401.3/tests/qmltests/CMakeLists.txt --- unity8-7.84+14.04.20140327.1/tests/qmltests/CMakeLists.txt 2014-03-27 12:37:27.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/qmltests/CMakeLists.txt 2014-04-01 22:55:27.000000000 +0000 @@ -12,7 +12,6 @@ set(qmltest_DEFAULT_NO_ADD_TEST FALSE) set(qmltest_DEFAULT_PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=minimal") add_qml_test(Components AnimationControllerWithSignals) -add_qml_test(Components Carousel) add_qml_test(Panel IndicatorItem) add_qml_test(utils/Unity/Test UnityTest) @@ -23,6 +22,7 @@ add_qml_test(. Shell IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single") add_manual_qml_test(Components DragHandle IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins) +add_qml_test(Components Carousel) add_qml_test(Components DraggingArea) add_qml_test(Components EdgeDemoOverlay) add_qml_test(Components FilterGrid IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins) @@ -84,6 +84,6 @@ ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel") add_qml_test(Panel/Indicators MenuItemFactory IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins) add_qml_test(Panel/Indicators MessageMenuItemFactory IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins) -add_qml_test(SideStage SideStage IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} +add_qml_test(Stages PhoneStage IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks ${CMAKE_BINARY_DIR}/plugins) diff -Nru unity8-7.84+14.04.20140327.1/tests/qmltests/Components/tst_Carousel.qml unity8-7.85+14.04.20140401.3/tests/qmltests/Components/tst_Carousel.qml --- unity8-7.84+14.04.20140327.1/tests/qmltests/Components/tst_Carousel.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/qmltests/Components/tst_Carousel.qml 2014-04-01 22:55:27.000000000 +0000 @@ -16,179 +16,205 @@ import QtQuick 2.0 import QtTest 1.0 +import "../../../qml/Components/" import "../../../qml/Components/carousel.js" as Carousel -TestCase { - id: root - name: "Carousel" - - property real carouselWidth - property int itemCount - property real tileWidth - - property real contentWidth: itemCount * tileWidth - // following variables are copied from Carousel.qml - // I'm not using the variables directly from there, as then tileWidth and others would be affected as well - property real gapToMiddlePhase: Math.min(carouselWidth / 2 - tileWidth / 2, (contentWidth - carouselWidth) / 2) - property real gapToEndPhase: contentWidth - carouselWidth - gapToMiddlePhase - property real kMiddleIndex: (carouselWidth / 2) / tileWidth - 0.5 - property real kGapEnd: kMiddleIndex * (1 - gapToEndPhase / gapToMiddlePhase) - property real kXBeginningEnd: 1 / tileWidth + kMiddleIndex / gapToMiddlePhase - - // test for the getContinuousIndex() function - function test_getContinuousIndex_data() { - // testing for 10 items of size 100 pixel - return [ {tag:"at start", - x: 0, carouselWidth:400, tileWidth:100, itemCount:10, result: 0}, - {tag:"in startup", - x: 100, carouselWidth:400, tileWidth:100, itemCount:10, result: 2}, - {tag:"in the middle", - x: 350, carouselWidth:400, tileWidth:100, itemCount:10, result: 5}, - {tag:"at end", - x: 600, carouselWidth:400, tileWidth:100, itemCount:10, result: 9}, - ] - } - - function test_getContinuousIndex(data) { - root.carouselWidth = data.carouselWidth - root.tileWidth = data.tileWidth - root.itemCount = data.itemCount +Item { + width: 700 + height: 400 + + Carousel { + anchors.fill: parent + id: carousel + model: 40 + + property int createdDelegates: 0 + property int destroyedDelegates: 0 + + itemComponent: Rectangle { + color: "red" + Component.onCompleted: carousel.createdDelegates++ + Component.onDestruction: carousel.destroyedDelegates++ + } + } + TestCase { + id: root + name: "Carousel" + when: windowShown + + property real carouselWidth + property int itemCount + property real tileWidth + + property real contentWidth: itemCount * tileWidth + // following variables are copied from Carousel.qml + // I'm not using the variables directly from there, as then tileWidth and others would be affected as well + property real gapToMiddlePhase: Math.min(carouselWidth / 2 - tileWidth / 2, (contentWidth - carouselWidth) / 2) + property real gapToEndPhase: contentWidth - carouselWidth - gapToMiddlePhase + property real kMiddleIndex: (carouselWidth / 2) / tileWidth - 0.5 + property real kGapEnd: kMiddleIndex * (1 - gapToEndPhase / gapToMiddlePhase) + property real kXBeginningEnd: 1 / tileWidth + kMiddleIndex / gapToMiddlePhase + + function test_onlyNeededItemsCreated() { + compare(carousel.createdDelegates, 10); + compare(carousel.destroyedDelegates, 0); + } + + // test for the getContinuousIndex() function + function test_getContinuousIndex_data() { + // testing for 10 items of size 100 pixel + return [ {tag:"at start", + x: 0, carouselWidth:400, tileWidth:100, itemCount:10, result: 0}, + {tag:"in startup", + x: 100, carouselWidth:400, tileWidth:100, itemCount:10, result: 2}, + {tag:"in the middle", + x: 350, carouselWidth:400, tileWidth:100, itemCount:10, result: 5}, + {tag:"at end", + x: 600, carouselWidth:400, tileWidth:100, itemCount:10, result: 9}, + ] + } + + function test_getContinuousIndex(data) { + root.carouselWidth = data.carouselWidth + root.tileWidth = data.tileWidth + root.itemCount = data.itemCount + + var index = Carousel.getContinuousIndex(data.x, + data.tileWidth, + gapToMiddlePhase, + gapToEndPhase, + kGapEnd, + kMiddleIndex, + kXBeginningEnd) + compare(index, data.result) + } + + // test for the getXFromContinuousIndex() function + function test_getXFromContinuousIndex_data() { + return [ {tag:"at start", + index: 0, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:0, result: 0}, + {tag:"in startup", + index: 2, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:0, result: 100}, + {tag:"in startup with drawBuffer", + index: 2, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:100, result: 0}, + {tag:"in the middle", + index: 5, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:0, result: 350}, + {tag:"in the middle with drawBuffer", + index: 5, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:100, result: 250}, + {tag:"at end", + index: 9, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:0, result: 600}, + {tag:"at end with drawBuffer", + index: 9, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:100, result: 500}, + ] + } + + function test_getXFromContinuousIndex(data) { + root.carouselWidth = data.carouselWidth + root.tileWidth = data.tileWidth + root.itemCount = data.itemCount + + var x = Carousel.getXFromContinuousIndex(data.index, + data.carouselWidth, + contentWidth, + data.tileWidth, + gapToMiddlePhase, + gapToEndPhase, + data.drawBuffer) + compare(x, data.result) + } + + // test for the getViewTranslation() function + function test_getViewTranslation_data() { + return [ {tag:"at start - viewfactor 1", + x: 0, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:1, result: 150}, + {tag:"at start - viewfactor 2", + x: 0, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:2, result: 300}, + {tag:"in startup", + x: 100, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:1, result: 50}, + {tag:"in the middle", + x: 350, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:1, result: 0}, + {tag:"at end", + x: 600, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:1, result: -150}, + ] + } + + function test_getViewTranslation(data) { + root.carouselWidth = data.carouselWidth + root.tileWidth = data.tileWidth + root.itemCount = data.itemCount - var index = Carousel.getContinuousIndex(data.x, + var x = Carousel.getViewTranslation(data.x, data.tileWidth, - gapToMiddlePhase, - gapToEndPhase, - kGapEnd, - kMiddleIndex, - kXBeginningEnd) - compare(index, data.result) - } - - // test for the getXFromContinuousIndex() function - function test_getXFromContinuousIndex_data() { - return [ {tag:"at start", - index: 0, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:0, result: 0}, - {tag:"in startup", - index: 2, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:0, result: 100}, - {tag:"in startup with drawBuffer", - index: 2, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:100, result: 0}, - {tag:"in the middle", - index: 5, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:0, result: 350}, - {tag:"in the middle with drawBuffer", - index: 5, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:100, result: 250}, - {tag:"at end", - index: 9, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:0, result: 600}, - {tag:"at end with drawBuffer", - index: 9, carouselWidth:400, tileWidth:100, itemCount:10, drawBuffer:100, result: 500}, - ] - } - - function test_getXFromContinuousIndex(data) { - root.carouselWidth = data.carouselWidth - root.tileWidth = data.tileWidth - root.itemCount = data.itemCount - - var x = Carousel.getXFromContinuousIndex(data.index, - data.carouselWidth, - contentWidth, - data.tileWidth, - gapToMiddlePhase, - gapToEndPhase, - data.drawBuffer) - compare(x, data.result) - } - - // test for the getViewTranslation() function - function test_getViewTranslation_data() { - return [ {tag:"at start - viewfactor 1", - x: 0, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:1, result: 150}, - {tag:"at start - viewfactor 2", - x: 0, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:2, result: 300}, - {tag:"in startup", - x: 100, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:1, result: 50}, - {tag:"in the middle", - x: 350, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:1, result: 0}, - {tag:"at end", - x: 600, carouselWidth:400, tileWidth:100, itemCount:10, translationXViewFactor:1, result: -150}, - ] - } - - function test_getViewTranslation(data) { - root.carouselWidth = data.carouselWidth - root.tileWidth = data.tileWidth - root.itemCount = data.itemCount - - var x = Carousel.getViewTranslation(data.x, - data.tileWidth, - root.gapToMiddlePhase, - root.gapToEndPhase, - data.translationXViewFactor) - compare(x, data.result) - } - - // test for the getItemScale() function - function test_getItemScale_data() { - return [ // tests for distance - {distance: 0, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 1}, - {distance: 9, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.01}, - {distance: 999, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.01}, - {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.98}, // = 1 - (1 / 50) - {distance: 3, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.688230855}, // = 1 - (3^2.5 / 50) - // tests for continuousIndex - {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.98}, // = 1 - (1 / 50) - {distance: 1, continuousIndex: 97, numberOfItems: 100, scaleFactor: 1, result: 0.99}, // = 1 - (1 / 100) - distanceToBounds is used - // tests for numberOfItems - {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.98}, // = 1 - (1 / 50) - {distance: 1, continuousIndex: 50, numberOfItems: 53, scaleFactor: 1, result: 0.99}, // = 1 - (1 / 100) - distanceToBounds is used - // tests for scaleFactor - {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.98}, // = 1 - (1 / 50) - {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 2, result: 0.99}, // = 1 - (1 / 100) - {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 0.5, result: 0.96}, // = 1 - (1 / 25) - {distance: 1, continuousIndex: 50, numberOfItems: 53, scaleFactor: 1, result: 0.99}, // = 1 - (1 / 100) - distanceToBounds is used - {distance: 1, continuousIndex: 50, numberOfItems: 53, scaleFactor: 2, result: 0.996666666}, // = 1 - (1 / 300) - distanceToBounds is used - ] - } - - function test_getItemScale(data) { - var scale = Carousel.getItemScale(data.distance, - data.continuousIndex, - data.numberOfItems, - data.scaleFactor) - compare(scale, data.result) - } - - // test for the getItemTranslation() function - function test_getItemTranslation_data() { - return [ // tests for index and selectedIndex - {index: 1, selectedIndex: 1, distance: 1, scale: 1, maxScale: 1, maxTranslation: 10, result: 0}, - // tests if distance only affects the sign - {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 10, result: 10}, - {index: 1, selectedIndex: 2, distance: 99, scale: 0, maxScale: 1, maxTranslation: 10, result: 10}, - {index: 1, selectedIndex: 2, distance: -1, scale: 0, maxScale: 1, maxTranslation: 10, result: -10}, - {index: 1, selectedIndex: 2, distance: -99, scale: 0, maxScale: 1, maxTranslation: 10, result: -10}, - // tests for the scale - {index: 1, selectedIndex: 2, distance: 1, scale: 1, maxScale: 1, maxTranslation: 10, result: 0}, - {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 10, result: 10}, - {index: 1, selectedIndex: 2, distance: 1, scale: 0.5, maxScale: 1, maxTranslation: 10, result: 5}, - // tests for maxScale - {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 0.98, maxTranslation: 10, result: 9.8}, - {index: 1, selectedIndex: 2, distance: 1, scale: 0.5, maxScale: 0.95, maxTranslation: 10, result: 4.5}, - {index: 1, selectedIndex: 2, distance: 1, scale: 0.8, maxScale: 0.93, maxTranslation: 10, result: 1.3}, - // test for maxTranslation - {index: 1, selectedIndex: 2, distance: 1, scale: 1, maxScale: 1, maxTranslation: 1, result: 0}, - {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 1, result: 1}, - {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 10, result: 10}, - {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 0, result: 0}, - ] - } - - function test_getItemTranslation(data) { - var scale = Carousel.getItemTranslation(data.index, - data.selectedIndex, - data.distance, - data.scale, - data.maxScale, - data.maxTranslation) - compare(scale, data.result) + root.gapToMiddlePhase, + root.gapToEndPhase, + data.translationXViewFactor) + compare(x, data.result) + } + + // test for the getItemScale() function + function test_getItemScale_data() { + return [ // tests for distance + {distance: 0, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 1}, + {distance: 9, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.01}, + {distance: 999, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.01}, + {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.98}, // = 1 - (1 / 50) + {distance: 3, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.688230855}, // = 1 - (3^2.5 / 50) + // tests for continuousIndex + {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.98}, // = 1 - (1 / 50) + {distance: 1, continuousIndex: 97, numberOfItems: 100, scaleFactor: 1, result: 0.99}, // = 1 - (1 / 100) - distanceToBounds is used + // tests for numberOfItems + {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.98}, // = 1 - (1 / 50) + {distance: 1, continuousIndex: 50, numberOfItems: 53, scaleFactor: 1, result: 0.99}, // = 1 - (1 / 100) - distanceToBounds is used + // tests for scaleFactor + {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 1, result: 0.98}, // = 1 - (1 / 50) + {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 2, result: 0.99}, // = 1 - (1 / 100) + {distance: 1, continuousIndex: 50, numberOfItems: 100, scaleFactor: 0.5, result: 0.96}, // = 1 - (1 / 25) + {distance: 1, continuousIndex: 50, numberOfItems: 53, scaleFactor: 1, result: 0.99}, // = 1 - (1 / 100) - distanceToBounds is used + {distance: 1, continuousIndex: 50, numberOfItems: 53, scaleFactor: 2, result: 0.996666666}, // = 1 - (1 / 300) - distanceToBounds is used + ] + } + + function test_getItemScale(data) { + var scale = Carousel.getItemScale(data.distance, + data.continuousIndex, + data.numberOfItems, + data.scaleFactor) + compare(scale, data.result) + } + + // test for the getItemTranslation() function + function test_getItemTranslation_data() { + return [ // tests for index and selectedIndex + {index: 1, selectedIndex: 1, distance: 1, scale: 1, maxScale: 1, maxTranslation: 10, result: 0}, + // tests if distance only affects the sign + {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 10, result: 10}, + {index: 1, selectedIndex: 2, distance: 99, scale: 0, maxScale: 1, maxTranslation: 10, result: 10}, + {index: 1, selectedIndex: 2, distance: -1, scale: 0, maxScale: 1, maxTranslation: 10, result: -10}, + {index: 1, selectedIndex: 2, distance: -99, scale: 0, maxScale: 1, maxTranslation: 10, result: -10}, + // tests for the scale + {index: 1, selectedIndex: 2, distance: 1, scale: 1, maxScale: 1, maxTranslation: 10, result: 0}, + {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 10, result: 10}, + {index: 1, selectedIndex: 2, distance: 1, scale: 0.5, maxScale: 1, maxTranslation: 10, result: 5}, + // tests for maxScale + {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 0.98, maxTranslation: 10, result: 9.8}, + {index: 1, selectedIndex: 2, distance: 1, scale: 0.5, maxScale: 0.95, maxTranslation: 10, result: 4.5}, + {index: 1, selectedIndex: 2, distance: 1, scale: 0.8, maxScale: 0.93, maxTranslation: 10, result: 1.3}, + // test for maxTranslation + {index: 1, selectedIndex: 2, distance: 1, scale: 1, maxScale: 1, maxTranslation: 1, result: 0}, + {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 1, result: 1}, + {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 10, result: 10}, + {index: 1, selectedIndex: 2, distance: 1, scale: 0, maxScale: 1, maxTranslation: 0, result: 0}, + ] + } + + function test_getItemTranslation(data) { + var scale = Carousel.getItemTranslation(data.index, + data.selectedIndex, + data.distance, + data.scale, + data.maxScale, + data.maxTranslation) + compare(scale, data.result) + } } } diff -Nru unity8-7.84+14.04.20140327.1/tests/qmltests/Components/tst_ResponsiveFlowView.qml unity8-7.85+14.04.20140401.3/tests/qmltests/Components/tst_ResponsiveFlowView.qml --- unity8-7.84+14.04.20140327.1/tests/qmltests/Components/tst_ResponsiveFlowView.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/qmltests/Components/tst_ResponsiveFlowView.qml 2014-04-01 22:55:19.000000000 +0000 @@ -82,8 +82,7 @@ ResponsiveFlowView { id: flow anchors.fill: parent - firstModel: fakeModel - secondModel: fakeModel + model: fakeModel minimumHorizontalSpacing: minHSpacingSelector.values[minHSpacingSelector.selectedIndex] verticalSpacing: units.gu(2) diff -Nru unity8-7.84+14.04.20140327.1/tests/qmltests/Dash/Apps/tst_RunningApplicationsGrid.qml unity8-7.85+14.04.20140401.3/tests/qmltests/Dash/Apps/tst_RunningApplicationsGrid.qml --- unity8-7.84+14.04.20140327.1/tests/qmltests/Dash/Apps/tst_RunningApplicationsGrid.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/qmltests/Dash/Apps/tst_RunningApplicationsGrid.qml 2014-04-01 22:55:19.000000000 +0000 @@ -18,87 +18,20 @@ import QtTest 1.0 import "../../../../qml/Dash/Apps" import Unity.Test 0.1 as UT +import Unity.Application 0.1 -Item { +// Using Rectangle to have an opaque surface because AppManager paints app surfaces behind it. +Rectangle { width: units.gu(50) height: units.gu(40) - QtObject { - id: fakeApplicationManager - - property bool sideStageEnabled: false - - function stopApplication(appId) { - for (var i=0, len=fakeRunningAppsModel.count; i 0) { + ApplicationManager.stopApplication(ApplicationManager.get(0).appId) } - } - function resetRunningApplications() { - fakeRunningAppsModel.clear() - fakeRunningAppsModel.rePopulate() + ApplicationManager.startApplication("phone-app"); + ApplicationManager.startApplication("webbrowser-app"); } Component.onCompleted: { @@ -109,7 +42,7 @@ RunningApplicationsGrid { id: runningApplicationsGrid anchors.fill: parent - firstModel: fakeRunningAppsModel + model: ApplicationManager } UT.UnityTestCase { @@ -121,11 +54,11 @@ resetRunningApplications() } - property var calendarTile + property var browserTile property var phoneTile - property var isCalendarLongPressed: false - function onCalendarLongPressed() {isCalendarLongPressed = true} + property var isBrowserLongPressed: false + function onBrowserLongPressed() {isBrowserLongPressed = true} property var isPhoneLongPressed: false function onPhoneLongPressed() {isPhoneLongPressed = true} @@ -133,25 +66,25 @@ // Tiles should go to termination mode when any one of them is long-pressed. // Long-pressing when they're in termination mode brings them back to activation mode function test_enterTerminationMode() { - calendarTile = findChild(runningApplicationsGrid, "runningAppTile Calendar") - verify(calendarTile != undefined) - calendarTile.onPressAndHold.connect(onCalendarLongPressed) + browserTile = findChild(runningApplicationsGrid, "runningAppTile Browser") + verify(browserTile != undefined) + browserTile.onPressAndHold.connect(onBrowserLongPressed) phoneTile = findChild(runningApplicationsGrid, "runningAppTile Phone") verify(phoneTile != undefined) phoneTile.onPressAndHold.connect(onPhoneLongPressed) - compare(calendarTile.terminationModeEnabled, false) + compare(browserTile.terminationModeEnabled, false) compare(phoneTile.terminationModeEnabled, false) compare(runningApplicationsGrid.terminationModeEnabled, false) - isCalendarLongPressed = false - mousePress(calendarTile, calendarTile.width/2, calendarTile.height/2) + isBrowserLongPressed = false + mousePress(browserTile, browserTile.width/2, browserTile.height/2) tryCompareFunction(checkSwitchToTerminationModeAfterLongPress, true) - mouseRelease(calendarTile, calendarTile.width/2, calendarTile.height/2) + mouseRelease(browserTile, browserTile.width/2, browserTile.height/2) - compare(calendarTile.terminationModeEnabled, true) + compare(browserTile.terminationModeEnabled, true) compare(phoneTile.terminationModeEnabled, true) compare(runningApplicationsGrid.terminationModeEnabled, true) @@ -161,23 +94,23 @@ mouseRelease(phoneTile, phoneTile.width/2, phoneTile.height/2) - compare(calendarTile.terminationModeEnabled, false) + compare(browserTile.terminationModeEnabled, false) compare(phoneTile.terminationModeEnabled, false) compare(runningApplicationsGrid.terminationModeEnabled, false) - calendarTile.onPressAndHold.disconnect(onCalendarLongPressed) + browserTile.onPressAndHold.disconnect(onBrowserLongPressed) phoneTile.onPressAndHold.disconnect(onPhoneLongPressed) } // Checks that components swicth to termination mode after (and only after) a long - // press happens on Calendar tile. + // press happens on Browser tile. function checkSwitchToTerminationModeAfterLongPress() { - compare(calendarTile.terminationModeEnabled, isCalendarLongPressed) - compare(phoneTile.terminationModeEnabled, isCalendarLongPressed) - compare(runningApplicationsGrid.terminationModeEnabled, isCalendarLongPressed) + compare(browserTile.terminationModeEnabled, isBrowserLongPressed) + compare(phoneTile.terminationModeEnabled, isBrowserLongPressed) + compare(runningApplicationsGrid.terminationModeEnabled, isBrowserLongPressed) - return isCalendarLongPressed && - calendarTile.terminationModeEnabled && + return isBrowserLongPressed && + browserTile.terminationModeEnabled && phoneTile.terminationModeEnabled && runningApplicationsGrid.terminationModeEnabled } @@ -185,12 +118,12 @@ // Checks that components swicth to activation mode after (and only after) a long // press happens on Phone tile. function checkSwitchToActivationModeAfterLongPress() { - compare(calendarTile.terminationModeEnabled, !isPhoneLongPressed) + compare(browserTile.terminationModeEnabled, !isPhoneLongPressed) compare(phoneTile.terminationModeEnabled, !isPhoneLongPressed) compare(runningApplicationsGrid.terminationModeEnabled, !isPhoneLongPressed) return isPhoneLongPressed && - !calendarTile.terminationModeEnabled && + !browserTile.terminationModeEnabled && !phoneTile.terminationModeEnabled && !runningApplicationsGrid.terminationModeEnabled } @@ -200,17 +133,17 @@ function test_clickTileNotClose() { runningApplicationsGrid.terminationModeEnabled = true - var calendarTile = findChild(runningApplicationsGrid, "runningAppTile Calendar") - verify(calendarTile != undefined) + var browserTile = findChild(runningApplicationsGrid, "runningAppTile Browser") + verify(browserTile != undefined) - verify(fakeRunningAppsModel.contains("calendar")) + verify(ApplicationManager.findApplication("webbrowser-app") !== null) - mouseClick(calendarTile, calendarTile.width/2, calendarTile.height/2) + mouseClick(browserTile, browserTile.width/2, browserTile.height/2) - verify(fakeRunningAppsModel.contains("calendar")) + verify(ApplicationManager.findApplication("webbrowser-app") !== null) - // The tile for the Calendar app should stay there - tryCompareFunction(checkCalendarTileExists, true) + // The tile for the Browser app should stay there + tryCompareFunction(checkBrowserTileExists, true) } // While in termination mode, clicking on a running application tile's close icon @@ -218,25 +151,25 @@ function test_clickCloseIconToTerminateApp() { runningApplicationsGrid.terminationModeEnabled = true - var calendarTile = findChild(runningApplicationsGrid, "runningAppTile Calendar") - var calendarTileCloseButton = findChild(runningApplicationsGrid, "closeIcon Calendar") + var browserTile = findChild(runningApplicationsGrid, "runningAppTile Browser") + var browserTileCloseButton = findChild(runningApplicationsGrid, "closeIcon Browser") - verify(calendarTile != undefined) - verify(calendarTileCloseButton != undefined) - verify(fakeRunningAppsModel.contains("calendar")) + verify(browserTile != undefined) + verify(browserTileCloseButton != undefined) + verify(ApplicationManager.findApplication("webbrowser-app") !== 0) - mouseClick(calendarTileCloseButton, calendarTileCloseButton.width/2, calendarTileCloseButton.height/2) + mouseClick(browserTileCloseButton, browserTileCloseButton.width/2, browserTileCloseButton.height/2) wait(0) // spin event loop to start any pending animation - verify(!fakeRunningAppsModel.contains("calendar")) + verify(ApplicationManager.findApplication("webbrowser-app") === null) - // The tile for the Calendar app should eventually vanish since the + // The tile for the Browser app should eventually vanish since the // application has been terminated. - tryCompareFunction(checkCalendarTileExists, false) + tryCompareFunction(checkBrowserTileExists, false) } - function checkCalendarTileExists() { - return findChild(runningApplicationsGrid, "runningAppTile Calendar") + function checkBrowserTileExists() { + return findChild(runningApplicationsGrid, "runningAppTile Browser") != undefined } @@ -245,8 +178,8 @@ function test_clickOutsideTilesDisablesTerminationMode() { runningApplicationsGrid.terminationModeEnabled = true - var calendarTile = findChild(runningApplicationsGrid, "runningAppTile Calendar") - verify(calendarTile != undefined) + var browserTile = findChild(runningApplicationsGrid, "runningAppTile Browser") + verify(browserTile != undefined) verify(runningApplicationsGrid.terminationModeEnabled); diff -Nru unity8-7.84+14.04.20140327.1/tests/qmltests/Dash/tst_GenericScopeView.qml unity8-7.85+14.04.20140401.3/tests/qmltests/Dash/tst_GenericScopeView.qml --- unity8-7.84+14.04.20140327.1/tests/qmltests/Dash/tst_GenericScopeView.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/qmltests/Dash/tst_GenericScopeView.qml 2014-04-01 22:56:21.000000000 +0000 @@ -105,11 +105,22 @@ tryCompare(previewListView, "open", false); } + function test_searchQuery() { + genericScopeView.scope = scopes.get(0); + genericScopeView.scope.searchQuery = "test"; + genericScopeView.scope = scopes.get(1); + genericScopeView.scope.searchQuery = "test2"; + genericScopeView.scope = scopes.get(0); + tryCompare(genericScopeView.scope, "searchQuery", "test"); + genericScopeView.scope = scopes.get(1); + tryCompare(genericScopeView.scope, "searchQuery", "test2"); + } + function test_changeScope() { genericScopeView.scope.searchQuery = "test" genericScopeView.scope = scopes.get(1) genericScopeView.scope = scopes.get(2) - tryCompare(genericScopeView.scope, "searchQuery", "") + tryCompare(genericScopeView.scope, "searchQuery", "test") } function test_filter_expand_collapse() { diff -Nru unity8-7.84+14.04.20140327.1/tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml unity8-7.85+14.04.20140401.3/tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml --- unity8-7.84+14.04.20140327.1/tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml 2014-03-27 12:37:27.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml 2014-04-01 22:56:29.000000000 +0000 @@ -193,6 +193,7 @@ addSomeSnapDecisionNotifications(); // make sure the view is properly updated before going on + notifications.forceLayout(); waitForRendering(notifications); var snap_decision = [findChild(notifications, "notification1"), diff -Nru unity8-7.84+14.04.20140327.1/tests/qmltests/Stages/tst_PhoneStage.qml unity8-7.85+14.04.20140401.3/tests/qmltests/Stages/tst_PhoneStage.qml --- unity8-7.84+14.04.20140327.1/tests/qmltests/Stages/tst_PhoneStage.qml 1970-01-01 00:00:00.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/qmltests/Stages/tst_PhoneStage.qml 2014-04-01 22:55:19.000000000 +0000 @@ -0,0 +1,288 @@ +/* + * Copyright 2014 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 . + */ + +import QtQuick 2.0 +import QtTest 1.0 +import Unity.Test 0.1 as UT +import ".." +import "../../../qml/Stages" +import Ubuntu.Components 0.1 +import Unity.Application 0.1 + +Item { + width: units.gu(70) + height: units.gu(70) + + Rectangle { + + } + + PhoneStage { + id: phoneStage + anchors { fill: parent; rightMargin: units.gu(30) } + shown: true + dragAreaWidth: units.gu(2) + } + + Binding { + target: ApplicationManager + property: "rightMargin" + value: phoneStage.anchors.rightMargin + } + + Rectangle { + anchors { fill: parent; leftMargin: phoneStage.width } +// color: "blue" + + Column { + anchors { left: parent.left; right: parent.right; top: parent.top; margins: units.gu(1) } + spacing: units.gu(1) + Button { + anchors { left: parent.left; right: parent.right } + text: "Add App" + onClicked: { + testCase.addApps(); + } + } + Button { + anchors { left: parent.left; right: parent.right } + text: "Add App" + } + } + } + + UT.UnityTestCase { + id: testCase + name: "PhoneStage" + when: windowShown + + function addApps(count) { + if (count == undefined) count = 1; + for (var i = 0; i < count; i++) { + var app = ApplicationManager.startApplication(ApplicationManager.availableApplications()[ApplicationManager.count]) + tryCompare(app, "state", ApplicationInfoInterface.Running) + // Fixme: Right now there is a timeout in the PhoneStage that displays a white splash + // screen rectangle when an app starts. This is because we don't yet have a way of + // knowing when an app has finished launching. That workaround and this wait() should + // go away at some point and the app's state only changing to Running when ready for real. +// wait(1000) + waitForRendering(phoneStage) + } + } + + function goToSpread() { + var spreadView = findChild(phoneStage, "spreadView"); + + var startX = phoneStage.width; + var startY = phoneStage.height / 2; + var endY = startY; + var endX = units.gu(2); + + touchFlick(phoneStage, startX, startY, endX, endY, + true /* beginTouch */, true /* endTouch */, units.gu(10), 50); + } + + function test_shortFlick() { + addApps(2) + var startX = phoneStage.width - units.gu(1); + var startY = phoneStage.height / 2; + var endX = phoneStage.width / 2; + var endY = startY; + + var activeApp = ApplicationManager.get(0); + var inactiveApp = ApplicationManager.get(1); + + touchFlick(phoneStage, startX, startY, endX, endY, + true /* beginTouch */, true /* endTouch */, units.gu(10), 50); + + tryCompare(ApplicationManager, "focusedApplicationId", inactiveApp.appId) + + touchFlick(phoneStage, startX, startY, endX, endY, + true /* beginTouch */, true /* endTouch */, units.gu(10), 50); + + tryCompare(ApplicationManager, "focusedApplicationId", activeApp.appId) + + tryCompare(phoneStage, "painting", false); + } + + function test_enterSpread_data() { + return [ + {tag: "position1", positionMarker: "positionMarker1", linear: true, offset: +1, endPhase: 0, targetPhase: 0, newFocusedIndex: 1 }, + {tag: "position2", positionMarker: "positionMarker2", linear: true, offset: +1, endPhase: 1, targetPhase: 0, newFocusedIndex: 1 }, + {tag: "position3", positionMarker: "positionMarker3", linear: true, offset: +1, endPhase: 2, targetPhase: 2, newFocusedIndex: 2 }, + ]; + } + + function test_enterSpread(data) { + addApps(5) + + var spreadView = findChild(phoneStage, "spreadView"); + + var startX = phoneStage.width; + var startY = phoneStage.height / 2; + var endY = startY; + var endX = spreadView.width - (spreadView.width * spreadView[data.positionMarker]) - data.offset - phoneStage.dragAreaWidth; + + var oldFocusedApp = ApplicationManager.get(0); + var newFocusedApp = ApplicationManager.get(data.newFocusedIndex); + + touchFlick(phoneStage, startX, startY, endX, endY, + true /* beginTouch */, false /* endTouch */, units.gu(10), 50); + + tryCompare(spreadView, "phase", data.endPhase) + + if (!data.linear) { + touchFlick(phoneStage, endX, endY, endX + units.gu(.5), endY, + false /* beginTouch */, false /* endTouch */, units.gu(10), 50); + touchFlick(phoneStage, endY + units.gu(.5), endY, endX, endY, + false /* beginTouch */, false /* endTouch */, units.gu(10), 50); + } + + touchRelease(phoneStage, endX, endY); + + tryCompare(spreadView, "phase", data.targetPhase) + + if (data.targetPhase == 2) { + var app2 = findChild(spreadView, "appDelegate2"); + mouseClick(app2, units.gu(1), units.gu(1)); + } + + tryCompare(phoneStage, "painting", false); + tryCompare(ApplicationManager, "focusedApplicationId", newFocusedApp.appId); + } + + function test_selectAppFromSpread_data() { + var appsToTest = 6; + var apps = new Array(); + for (var i = 0; i < appsToTest; i++) { + var item = new Object(); + item.tag = "App " + i; + item.index = i; + item.total = appsToTest; + apps.push(item) + } + return apps; + } + + function test_selectAppFromSpread(data) { + addApps(data.total) + + var spreadView = findChild(phoneStage, "spreadView"); + + goToSpread(); + + tryCompare(spreadView, "phase", 2); + + var tile = findChild(spreadView, "appDelegate" + data.index); + var appId = ApplicationManager.get(data.index).appId; + + if (tile.mapToItem(spreadView).x > spreadView.width) { + // Item is not visible... Need to flick the spread + var startX = phoneStage.width - units.gu(1); + var startY = phoneStage.height / 2; + var endY = startY; + var endX = units.gu(2); + touchFlick(phoneStage, startX, startY, endX, endY, true, true, units.gu(10), 50) + tryCompare(spreadView, "flicking", false); + tryCompare(spreadView, "moving", false); +// waitForRendering(phoneStage); + } + + console.log("clicking app", data.index, "(", appId, ")") + mouseClick(spreadView, tile.mapToItem(spreadView).x + units.gu(1), spreadView.height / 2) + tryCompare(ApplicationManager, "focusedApplicationId", appId); + tryCompare(spreadView, "phase", 0); + } + + function test_animateAppStartup() { + compare(phoneStage.painting, false); + addApps(2); + tryCompare(phoneStage, "painting", true); + tryCompare(phoneStage, "painting", false); + addApps(1); + tryCompare(phoneStage, "painting", true); + tryCompare(phoneStage, "painting", false); + } + + function test_select_data() { + return [ + { tag: "0", index: 0 }, + { tag: "2", index: 2 }, + { tag: "4", index: 4 }, + ] + } + + function test_select(data) { + addApps(5); + + var spreadView = findChild(phoneStage, "spreadView"); + var selectedApp = ApplicationManager.get(data.index); + + goToSpread(); + + phoneStage.select(selectedApp.appId); + + tryCompare(phoneStage, "painting", false); + compare(ApplicationManager.focusedApplicationId, selectedApp.appId); + } + + function test_fullscreenMode() { + var fullscreenApp = null; + var normalApp = null; + + for (var i = 0; i < 5; i++) { + addApps(1); + var newApp = ApplicationManager.get(0); + tryCompare(phoneStage, "fullscreen", newApp.fullscreen); + if (newApp.fullscreen && fullscreenApp == null) { + fullscreenApp = newApp; + } else if (!newApp.fullscreen && normalApp == null){ + normalApp = newApp; + } + } + verify(fullscreenApp != null); // Can't continue the test without having a fullscreen app + verify(normalApp != null); // Can't continue the test without having a non-fullscreen app + + // Select a normal app + goToSpread(); + phoneStage.select(normalApp.appId); + tryCompare(phoneStage, "fullscreen", false); + + // Select a fullscreen app + goToSpread(); + phoneStage.select(fullscreenApp.appId); + tryCompare(phoneStage, "fullscreen", true); + + // Select a normal app + goToSpread(); + phoneStage.select(normalApp.appId); + tryCompare(phoneStage, "fullscreen", false); + } + + function cleanup() { + while (ApplicationManager.count > 0) { + var oldCount = ApplicationManager.count; + ApplicationManager.stopApplication(ApplicationManager.get(0).appId) + tryCompare(ApplicationManager, "count", oldCount - 1) + } + } + } +} diff -Nru unity8-7.84+14.04.20140327.1/tests/qmltests/tst_Shell.qml unity8-7.85+14.04.20140401.3/tests/qmltests/tst_Shell.qml --- unity8-7.84+14.04.20140327.1/tests/qmltests/tst_Shell.qml 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/qmltests/tst_Shell.qml 2014-04-01 22:55:19.000000000 +0000 @@ -117,6 +117,7 @@ while (apps.count > 0) { ApplicationManager.stopApplication(apps.get(0).appId); } + compare(ApplicationManager.count, 0) } /* @@ -187,26 +188,34 @@ tapOnAppIconInLauncher(); waitUntilApplicationWindowIsFullyVisible(); - var mainApp = ApplicationManager.focusedApplicationId; - verify(mainApp != ""); + var mainAppId = ApplicationManager.focusedApplicationId; + verify(mainAppId != ""); + var mainApp = ApplicationManager.findApplication(mainAppId); + verify(mainApp); + tryCompare(mainApp.state, ApplicationInfo.Running); // Try to suspend while proximity is engaged... Powerd.displayPowerStateChange(Powerd.Off, Powerd.UseProximity); tryCompare(greeter, "showProgress", 0); // Now really suspend + print("suspending") Powerd.displayPowerStateChange(Powerd.Off, 0); + print("done suspending") tryCompare(greeter, "showProgress", 1); - tryCompare(ApplicationManager, "focusedApplicationId", ""); + + tryCompare(ApplicationManager, "suspended", true); + compare(mainApp.state, ApplicationInfo.Suspended); // And wake up Powerd.displayPowerStateChange(Powerd.On, 0); - tryCompare(ApplicationManager, "focusedApplicationId", ""); tryCompare(greeter, "showProgress", 1); // Swipe away greeter to focus app swipeAwayGreeter(); - tryCompare(ApplicationManager, "focusedApplicationId", mainApp); + tryCompare(ApplicationManager, "suspended", false); + compare(mainApp.state, ApplicationInfo.Running); + tryCompare(ApplicationManager, "focusedApplicationId", mainAppId); } function swipeAwayGreeter() { @@ -239,7 +248,7 @@ tryCompare(dash, "opacity", 1.0); touchFlick(shell, touchX, touchY, shell.width * 0.1, touchY, - true /* beginTouch */, false /* endTouch */); + true /* beginTouch */, false /* endTouch */, units.gu(10), 50); // check that Dash has been scaled down and had its opacity reduced tryCompareFunction(function() { return dash.contentScale <= 0.9; }, true); @@ -270,7 +279,7 @@ tryCompare(dash, "opacity", 1.0); touchFlick(shell, touchX, touchY, shell.width * 0.1, touchY, - true /* beginTouch */, false /* endTouch */); + true /* beginTouch */, false /* endTouch */, units.gu(10), 50); // check that Dash has been scaled down and had its opacity reduced tryCompareFunction(function() { return dash.contentScale <= 0.9; }, true); @@ -486,7 +495,6 @@ } function test_DashShown(data) { - if (data.greeter) { // Swipe the greeter in var greeter = findChild(shell, "greeter"); diff -Nru unity8-7.84+14.04.20140327.1/tests/uqmlscene/main.cpp unity8-7.85+14.04.20140401.3/tests/uqmlscene/main.cpp --- unity8-7.84+14.04.20140327.1/tests/uqmlscene/main.cpp 2014-03-27 12:37:08.000000000 +0000 +++ unity8-7.85+14.04.20140401.3/tests/uqmlscene/main.cpp 2014-04-01 22:56:11.000000000 +0000 @@ -341,6 +341,16 @@ } } +static QObject *s_testRootObject = nullptr; +static QObject *testRootObject(QQmlEngine *engine, QJSEngine *jsEngine) +{ + Q_UNUSED(jsEngine); + if (!s_testRootObject) { + s_testRootObject = new QObject(engine); + } + return s_testRootObject; +} + static void usage() { qWarning("Usage: uqmlscene [options] "); @@ -470,6 +480,9 @@ loadDummyDataFiles(engine, fi.path()); } QObject::connect(&engine, SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit())); + + qmlRegisterSingletonType("Qt.test.qtestroot", 1, 0, "QTestRootObject", testRootObject); + component->loadUrl(options.file); if ( !component->isReady() ) { qWarning("%s", qPrintable(component->errorString()));