on xenial help sign in
Merge unity8
commit8478653974590a9bfeba26b309d37d4e204af556 authorAlbert Astals <albert.astals@canonical.com> dateTue 9 Dec 2014, 15:50 (12 years ago) parent918be281c9e60f
236 files changed+8046−4093
CMakeLists.txt+5 build.sh+1 debian/changelog+56 debian/control+9−2 debian/unity8-common.install+1 debian/unity8-private.install+1 debian/unity8.install+1 include/paths.h.in+2 plugins/AccountsService/AccountsService.cpp+61−2 plugins/AccountsService/AccountsService.h+20 plugins/CMakeLists.txt+1 plugins/Dash/CMakeLists.txt+3−2 plugins/Dash/CardCreator.js+8−10 plugins/Dash/CroppedImageMinimumSourceSize.qml+24−18 plugins/Dash/ScopeStyle.qml+1−1 plugins/Dash/abstractdashview.h+4 plugins/Dash/croppedimagesizer.cpp+136 plugins/Dash/croppedimagesizer.h+72 plugins/Dash/croppedimagesizerasyncworker.cpp+74 plugins/Dash/croppedimagesizerasyncworker.h+47 plugins/Dash/horizontaljournal.cpp+5−1 plugins/Dash/horizontaljournal.h+4 plugins/Dash/listviewwithpageheader.cpp+2−2 plugins/Dash/organicgrid.cpp+5−1 plugins/Dash/organicgrid.h+4 plugins/Dash/plugin.cpp+2 plugins/Dash/verticaljournal.cpp+5−1 plugins/Dash/verticaljournal.h+4 plugins/Unity/Launcher/desktopfilehandler.cpp+1−1 plugins/Unity/Launcher/launcheritem.cpp+11−4 plugins/Unity/Launcher/launchermodel.cpp+1 plugins/Unity/Launcher/launchermodel.h+1−1 plugins/Wizard/50-com.canonical.unity.wizard.pkla+6 plugins/Wizard/CMakeLists.txt+11 plugins/Wizard/PageList.cpp+112 plugins/Wizard/PageList.h+53 plugins/Wizard/System.cpp+99 plugins/Wizard/System.h+50 plugins/Wizard/Wizard.qmltypes+36 plugins/Wizard/plugin.cpp+35 plugins/Wizard/plugin.h+32 plugins/Wizard/qmldir+3 po/am.po+45−37 po/ar.po+30−34 po/ast.po+45−37 po/az.po+40−35 po/be.po+30−34 po/bg.po+30−34 po/br.po+45−37 po/bs.po+30−34 po/ca.po+45−37 po/ca@valencia.po+52−44 po/ckb.po+30−34 po/cs.po+30−34 po/da.po+30−34 po/de.po+46−38 po/el.po+42−37 po/en_AU.po+45−37 po/en_GB.po+45−37 po/eo.po+30−34 po/es.po+45−37 po/eu.po+45−37 po/fa.po+45−37 po/fi.po+45−37 po/fo.po+30−34 po/fr.po+45−37 po/gd.po+45−37 po/gl.po+46−38 po/he.po+41−36 po/hi.po+30−34 po/hr.po+30−34 po/hu.po+45−37 po/hy.po+41−36 po/id.po+133−101 po/is.po+52−44 po/it.po+45−37 po/ja.po+52−44 po/km.po+41−36 po/kn.po+30−34 po/ko.po+45−37 po/ku.po+41−36 po/ky.po+30−34 po/lo.po+30−34 po/lt.po+30−34 po/lv.po+41−36 po/ml.po+30−34 po/mr.po+30−34 po/ms.po+45−37 po/my.po+30−34 po/nb.po+52−44 po/nl.po+45−37 po/pa.po+30−34 po/pl.po+30−34 po/pt.po+45−37 po/pt_BR.po+45−37 po/ro.po+52−44 po/ru.po+45−37 po/shn.po+30−34 po/si.po+30−34 po/sl.po+41−36 po/sq.po+30−34 po/sr.po+41−36 po/sv.po+45−37 po/sw.po+30−34 po/ta.po+30−34 po/te.po+30−34 po/th.po+30−34 po/tr.po+33−34 po/ug.po+46−38 po/uk.po+45−37 po/unity8.pot+28−32 po/vi.po+30−34 po/xh.po+30−34 po/zh_CN.po+44−39 po/zh_HK.po+30−34 po/zh_TW.po+48−43 qml/CMakeLists.txt+1 qml/Components/Dialogs.qml+17−21 qml/Components/EdgeDemo.qml+19−6 qml/Dash/CardCarousel.qml+1 qml/Dash/CardGrid.qml+1−1 qml/Dash/CardHorizontalList.qml+1 qml/Dash/CardVerticalJournal.qml−1 qml/Dash/Dash.qml+100−130 qml/Dash/DashContent.qml+11−1 qml/Dash/DashRenderer.qml−4 qml/Dash/GenericScopeView.qml+23−26 qml/Dash/PageHeader.qml+11−1 qml/Dash/Previews/PreviewActions.qml+2−1 qml/Dash/Previews/PreviewPayments.qml+1−1 qml/Dash/Previews/PreviewZoomableImage.qml+1 qml/Dash/ScopesList.qml+127 qml/Dash/ScopesListCategory.qml+176 qml/Dash/ScopesListCategoryItem.qml+104 qml/Dash/ScopesOverview.qml−575 qml/Dash/ScopesOverviewAll.qml−56 qml/Dash/ScopesOverviewFavorites.qml−73 qml/Dash/ScopesOverviewTab.qml−74 qml/Greeter/Clock.qml+10 qml/Greeter/GreeterContent.qml+5 qml/Launcher/Launcher.qml+5 qml/Shell.qml+32−17 qml/Stages/PhoneStage.qml+17−33 qml/Stages/SpreadDelegate.qml+8−1 qml/Stages/TabletStage.qml+5−14 qml/Wizard/CheckableSetting.qml+84 qml/Wizard/Page.qml+108 qml/Wizard/Pages.qml+136 qml/Wizard/Pages/10-welcome.qml+99 qml/Wizard/Pages/20-sim.qml+73 qml/Wizard/Pages/30-passwd-type.qml+135 qml/Wizard/Pages/40-wifi.qml+201 qml/Wizard/Pages/50-location.qml+150 qml/Wizard/Pages/60-reporting.qml+54 qml/Wizard/Pages/80-finished.qml+57 qml/Wizard/Pages/data/meet_ubuntu_simcard@30.png qml/Wizard/Pages/here-terms.qml+121 qml/Wizard/Pages/passwd-confirm.qml+86 qml/Wizard/Pages/passwd-set.qml+94 qml/Wizard/StackButton.qml+47 qml/Wizard/Wizard.qml+55 qml/graphics/applicationIcons/dash@18.png → qml/graphics/applicationIcons/dash.png src/CMakeLists.txt+4−1 src/CachingNetworkManagerFactory.cpp+2−11 src/CachingNetworkManagerFactory.h+2−6 src/Dash/CMakeLists.txt+1−1 tests/autopilot/unity8/application_lifecycle/tests/test_application_lifecycle.py+1−1 tests/autopilot/unity8/shell/emulators/dash.py+1−1 tests/mocks/AccountsService/AccountsService.cpp+37−1 tests/mocks/AccountsService/AccountsService.h+20 tests/mocks/CMakeLists.txt+2 tests/mocks/MeeGo/CMakeLists.txt+1 tests/mocks/MeeGo/QOfono/CMakeLists.txt+10 tests/mocks/MeeGo/QOfono/MockOfonoManager.qml+23 tests/mocks/MeeGo/QOfono/MockOfonoSimManager.qml+42 tests/mocks/MeeGo/QOfono/MockQOfono.cpp+54 tests/mocks/MeeGo/QOfono/MockQOfono.h+52 tests/mocks/MeeGo/QOfono/plugin.cpp+33 tests/mocks/MeeGo/QOfono/plugin.h+31 tests/mocks/MeeGo/QOfono/qmldir+4 tests/mocks/QMenuModel/CMakeLists.txt+1 tests/mocks/QMenuModel/QDBusActionGroup.qml+12 tests/mocks/QMenuModel/dbus-enums.h+52 tests/mocks/QMenuModel/plugin.cpp+3 tests/mocks/Ubuntu/CMakeLists.txt+1 tests/mocks/Ubuntu/SystemSettings/CMakeLists.txt+2 tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/CMakeLists.txt+1 tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockLanguagePlugin.qml+23 tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/qmldir+2 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/CMakeLists.txt+10 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.cpp+28 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.h+42 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/plugin.cpp+26 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/plugin.h+31 tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/qmldir+2 tests/mocks/Unity/CMakeLists.txt+1−1 tests/mocks/Unity/fake_scopes.cpp+57−3 tests/mocks/Unity/fake_scopes.h+8−3 tests/mocks/Unity/fake_scopesoverview.cpp+77−11 tests/mocks/Unity/fake_scopesoverview.h+18−3 tests/mocks/Wizard/CMakeLists.txt+12 tests/mocks/Wizard/MockSystem.cpp+39 tests/mocks/Wizard/MockSystem.h+47 tests/mocks/Wizard/Wizard.qmltypes+36 tests/mocks/Wizard/mockplugin.cpp+35 tests/mocks/Wizard/mockplugin.h+32 tests/mocks/Wizard/qmldir+3 tests/plugins/CMakeLists.txt+1 tests/plugins/Dash/CMakeLists.txt+1 tests/plugins/Dash/cardcreator/1.res+4−4 tests/plugins/Dash/cardcreator/2.res+2−3 tests/plugins/Dash/cardcreator/3.res+10−10 tests/plugins/Dash/cardcreator/4.res+3−4 tests/plugins/Dash/cardcreator/5.res+10−10 tests/plugins/Dash/cardcreator/7.res+2−3 tests/plugins/Dash/tst_CroppedImageMinimumSourceSize.qml+56 tests/plugins/Dash/tst_ScopeStyle.qml+1−1 tests/plugins/Wizard/CMakeLists.txt+18 tests/plugins/Wizard/tst_pagelist.cpp+154 tests/plugins/Wizard/tst_system.cpp+124 tests/qmltests/CMakeLists.txt+1 tests/qmltests/Dash/tst_Card.qml−22 tests/qmltests/Dash/tst_Dash.qml+83−137 tests/qmltests/Dash/tst_GenericScopeView.qml+1−1 tests/qmltests/Panel/tst_IndicatorsMenu.qml+3−3 tests/qmltests/Panel/tst_Panel.qml+5−10 tests/qmltests/Stages/tst_PhoneStage.qml+8−3 tests/qmltests/Stages/tst_SpreadDelegate.qml+10−7 tests/qmltests/Wizard/licenses/en_US.html+1 tests/qmltests/Wizard/licenses/fr_CA.html+1 tests/qmltests/Wizard/licenses/fr_FR.html+1 tests/qmltests/Wizard/tst_Wizard.qml+479 tests/qmltests/tst_Shell.qml+3−2 tests/qmltests/tst_ShellWithPin.qml+1 tests/qmltests/tst_TabletShell.qml+1 tests/utils/modules/Unity/Test/UnityTestCase.qml+11−7
CMakeLists.txt+5
@@ -61,6 +61,11 @@ include(GNUInstallDirs)
6161set(SHELL_APP_DIR ${CMAKE_INSTALL_DATADIR}/unity8)
6262set(SHELL_PRIVATE_LIBDIR ${CMAKE_INSTALL_LIBDIR}/unity8)
6363
64+execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=plugin_private_module_dir SystemSettings OUTPUT_VARIABLE USS_PRIVATE_PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE)
65+if(USS_PRIVATE_PLUGINDIR STREQUAL "")
66+ message(FATAL_ERROR "Could not determine USS private plugin installation dir.")
67+endif()
68+
6469execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=plugindir_suffix unity-shell-api OUTPUT_VARIABLE SHELL_INSTALL_QML OUTPUT_STRIP_TRAILING_WHITESPACE)
6570if(SHELL_INSTALL_QML STREQUAL "")
6671 message(FATAL_ERROR "Could not determine plugin installation dir.")
build.sh+1
@@ -54,6 +54,7 @@ install_dependencies() {
5454 qtdeclarative5-unity-notifications-plugin \
5555 qml-module-ubuntu-connectivity \
5656 ubuntu-mobile-icons \
57+ ubuntu-system-settings \
5758 unity-plugin-scopes \
5859 xvfb \
5960 || exit 5
debian/changelog+56
@@ -1,3 +1,59 @@
1+unity8 (8.01+15.04.20141205-0ubuntu1) vivid; urgency=low
2+
3+ [ CI Train Bot ]
4+ * Resync trunk
5+
6+ [ Albert Astals ]
7+ * Replace Scopes Overview by the new Manage Dash (LP: #1386698,
8+ #1368670)
9+
10+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 05 Dec 2014 10:55:50 +0000
11+
12+unity8 (8.01+15.04.20141204-0ubuntu1) vivid; urgency=low
13+
14+ [ Michael Terry ]
15+ * Import wizard code from ubuntu-system-settings.
16+ * Convert the welcome wizard from a separate executable into a qml
17+ plugin (with a small C++ plugin for support).
18+ * Add tests for welcome wizard.
19+
20+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 04 Dec 2014 20:55:11 +0000
21+
22+unity8 (8.01+15.04.20141202-0ubuntu1) vivid; urgency=low
23+
24+ [ Michael Terry ]
25+ * Make sure that there is no window of opportunity for swiping away
26+ greeter before the lockscreen appears.
27+ * Don't allow dragging the greeter out from the left edge if it's
28+ hidden there. (LP: #1372952)
29+
30+ [ Michał Sawicz ]
31+ * Move from Theme colour to direct UbuntuColors.orange for activity
32+ indicator and preview buttons
33+
34+ [ Albert Astals ]
35+ * Use QImageReader not to load the image into memory twice (LP:
36+ #1384374)
37+ * Don't create the whole current scope delegates, just height * 3 (LP:
38+ #1384393, #1384374)
39+ * Make CroppedImageSizer async
40+ * Use ubuntu::connectivity::NetworkingStatus instead of
41+ QNetworkConfigurationManager
42+ * Compile with Qt 5.4 (LP: #1395636)
43+
44+ [ Michael Zanetti ]
45+ * close previews and temp scopes on left edge/BFB (LP: #1391798)
46+ * make spread reversible (LP: #1368668, #1355284, #1368677)
47+
48+ [ Andrea Cimitan ]
49+ * Different drag behaviour for not closable apps in spread (LP:
50+ #1368287)
51+
52+ [ Daniel d'Andrada ]
53+ * Make UnityTestCase.touchFlick properly map event coordinates
54+
55+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 02 Dec 2014 09:26:49 +0000
56+
157unity8 (8.01+15.04.20141125.2-0ubuntu1) vivid; urgency=low
258
359 [ Michael Zanetti ]
debian/control+9−2
@@ -12,6 +12,7 @@ Build-Depends: cmake,
1212# in libstdc++ causing us issues, we explicitly select a G++
1313# version.
1414 g++-4.9,
15+ libconnectivity-qt1-dev,
1516 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
1617 libgl1-mesa-dri,
1718 libgles2-mesa-dev[armhf],
@@ -23,7 +24,8 @@ Build-Depends: cmake,
2324 libpulse-dev,
2425 libqmenumodel-dev (>= 0.2.8),
2526 libqt5xmlpatterns5-dev,
26− libunity-api-dev (>= 7.93),
27+ libsystemsettings-dev,
28+ libunity-api-dev (>= 7.94),
2729 libusermetricsoutput1-dev,
2830 libxcb1-dev,
2931 pkg-config,
@@ -31,6 +33,7 @@ Build-Depends: cmake,
3133 python3-all:any,
3234 python3-setuptools,
3335 python:any (>= 2.7),
36+ qml-module-qt-labs-folderlistmodel,
3437 qml-module-qtquick-layouts,
3538 qml-module-qtquick-xmllistmodel,
3639 qml-module-qtquick2,
@@ -45,6 +48,7 @@ Build-Depends: cmake,
4548 qtdeclarative5-qtmultimedia-plugin,
4649 qtdeclarative5-ubuntu-settings-components (>= 0.4),
4750 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1.1239) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1.1239),
51+ qtdeclarative5-ubuntu-web-plugin,
4852 ttf-ubuntu-font-family,
4953Standards-Version: 3.9.4
5054Homepage: http://launchpad.net/unity
@@ -82,10 +86,13 @@ Depends: gsettings-desktop-schemas,
8286 libcap2-bin,
8387 libglib2.0-bin,
8488 qmenumodel-qml (>= 0.2.8),
89+ qml-module-qt-labs-folderlistmodel,
8590 qml-module-qtquick-xmllistmodel,
8691 qtdeclarative5-gsettings1.0,
8792 qtdeclarative5-qtmir-plugin (>= 0.4.4),
8893 qtdeclarative5-ubuntu-telephony0.1,
94+ qtdeclarative5-ubuntu-web-plugin,
95+ ubuntu-system-settings,
8996 unity-launcher-impl-4,
9097 unity8-common (= ${source:Version}),
9198 unity8-private (= ${binary:Version}),
@@ -100,6 +107,7 @@ Breaks: indicator-network (<< 0.5.1+14.10.20141014),
100107 unity8-greeter (<< 7.89),
101108Replaces: ubuntu-touch-session (<< 0.82~),
102109 unity8-greeter (<< 7.89),
110+Conflicts: ubuntu-system-settings-wizard,
103111Description: Unity 8 shell
104112 The Unity 8 shell is the primary user interface for Ubuntu devices.
105113
@@ -173,7 +181,6 @@ Depends: accountsservice-ubuntu-schemas (>= 0.0.3),
173181 libhardware2,
174182 unity-schemas (>= 7.3.1+14.10.20140915),
175183 pay-service,
176− qml-module-ubuntu-connectivity,
177184 ${misc:Depends},
178185 ${shlibs:Depends},
179186Provides: unity-launcher-impl,
debian/unity8-common.install+1
@@ -3,3 +3,4 @@ usr/share/unity8/Components
33usr/share/unity8/Dash
44usr/share/unity8/Notifications
55usr/share/unity8/graphics
6+var/lib/polkit-1/localauthority/10-vendor.d
debian/unity8-private.install+1
@@ -9,6 +9,7 @@ usr/lib/*/unity8/qml/ScreenGrabber
99usr/lib/*/unity8/qml/Ubuntu
1010usr/lib/*/unity8/qml/Unity
1111usr/lib/*/unity8/qml/Utils
12+usr/lib/*/unity8/qml/Wizard
1213usr/lib/*/unity8/libUbuntuGestures*
1314usr/share/accountsservice/interfaces
1415usr/share/dbus-1/interfaces
debian/unity8.install+1
@@ -10,4 +10,5 @@ usr/share/unity8/Launcher
1010usr/share/unity8/Panel
1111usr/share/unity8/Shell.qml
1212usr/share/unity8/Stages
13+usr/share/unity8/Wizard
1314usr/share/url-dispatcher/urls/unity8-dash.url-dispatcher
include/paths.h.in+2
@@ -71,9 +71,11 @@ inline QStringList fallbackImportPaths() {
7171 QStringList paths;
7272 if (isRunningInstalled()) {
7373 paths << QString("@CMAKE_INSTALL_PREFIX@/@SHELL_INSTALL_QML@");
74+ paths << QString("@USS_PRIVATE_PLUGINDIR@");
7475 paths << QString("@SHELL_PLUGINDIR@");
7576 paths << QString("@CMAKE_INSTALL_PREFIX@/@SHELL_INSTALL_QML@/mocks");
7677 } else {
78+ paths << QString("@USS_PRIVATE_PLUGINDIR@");
7779 paths << QString("@SHELL_PLUGINDIR@");
7880 paths << QString("@CMAKE_BINARY_DIR@/tests/mocks");
7981 }
plugins/AccountsService/AccountsService.cpp+61−2
@@ -19,23 +19,28 @@
1919#include "AccountsService.h"
2020#include "AccountsServiceDBusAdaptor.h"
2121
22+#include <QFile>
2223#include <QStringList>
2324
2425AccountsService::AccountsService(QObject* parent)
2526 : QObject(parent),
2627 m_service(new AccountsServiceDBusAdaptor(this)),
27− m_user(qgetenv("USER")),
28+ m_user(""),
2829 m_demoEdges(false),
2930 m_enableLauncherWhileLocked(false),
3031 m_enableIndicatorsWhileLocked(false),
3132 m_statsWelcomeScreen(false),
3233 m_passwordDisplayHint(Keyboard),
33− m_failedLogins(0)
34+ m_failedLogins(0),
35+ m_hereEnabled(false),
36+ m_hereLicensePath() // null means not set yet
3437{
3538 connect(m_service, SIGNAL(propertiesChanged(const QString &, const QString &, const QStringList &)),
3639 this, SLOT(propertiesChanged(const QString &, const QString &, const QStringList &)));
3740 connect(m_service, SIGNAL(maybeChanged(const QString &)),
3841 this, SLOT(maybeChanged(const QString &)));
42+
43+ setUser(qgetenv("USER"));
3944}
4045
4146QString AccountsService::user() const
@@ -45,6 +50,9 @@ QString AccountsService::user() const
4550
4651void AccountsService::setUser(const QString &user)
4752{
53+ if (user.isEmpty() || m_user == user)
54+ return;
55+
4856 m_user = user;
4957 Q_EMIT userChanged();
5058
@@ -55,6 +63,8 @@ void AccountsService::setUser(const QString &user)
5563 updateStatsWelcomeScreen();
5664 updatePasswordDisplayHint();
5765 updateFailedLogins();
66+ updateHereEnabled();
67+ updateHereLicensePath();
5868}
5969
6070bool AccountsService::demoEdges() const
@@ -93,6 +103,26 @@ AccountsService::PasswordDisplayHint AccountsService::passwordDisplayHint() cons
93103 return m_passwordDisplayHint;
94104}
95105
106+bool AccountsService::hereEnabled() const
107+{
108+ return m_hereEnabled;
109+}
110+
111+void AccountsService::setHereEnabled(bool enabled)
112+{
113+ m_service->setUserProperty(m_user, "com.ubuntu.location.providers.here.AccountsService", "LicenseAccepted", enabled);
114+}
115+
116+QString AccountsService::hereLicensePath() const
117+{
118+ return m_hereLicensePath;
119+}
120+
121+bool AccountsService::hereLicensePathValid() const
122+{
123+ return !m_hereLicensePath.isNull();
124+}
125+
96126void AccountsService::updateDemoEdges()
97127{
98128 auto demoEdges = m_service->getUserProperty(m_user, "com.canonical.unity.AccountsService", "demo-edges").toBool();
@@ -156,6 +186,28 @@ void AccountsService::updateFailedLogins()
156186 }
157187}
158188
189+void AccountsService::updateHereEnabled()
190+{
191+ bool hereEnabled = m_service->getUserProperty(m_user, "com.ubuntu.location.providers.here.AccountsService", "LicenseAccepted").toBool();
192+ if (m_hereEnabled != hereEnabled) {
193+ m_hereEnabled = hereEnabled;
194+ Q_EMIT hereEnabledChanged();
195+ }
196+}
197+
198+void AccountsService::updateHereLicensePath()
199+{
200+ QString hereLicensePath = m_service->getUserProperty(m_user, "com.ubuntu.location.providers.here.AccountsService", "LicenseBasePath").toString();
201+
202+ if (hereLicensePath.isEmpty() || !QFile::exists(hereLicensePath))
203+ hereLicensePath = "";
204+
205+ if (m_hereLicensePath.isNull() || m_hereLicensePath != hereLicensePath) {
206+ m_hereLicensePath = hereLicensePath;
207+ Q_EMIT hereLicensePathChanged();
208+ }
209+}
210+
159211uint AccountsService::failedLogins() const
160212{
161213 return m_failedLogins;
@@ -195,6 +247,13 @@ void AccountsService::propertiesChanged(const QString &user, const QString &inte
195247 if (changed.contains("EnableIndicatorsWhileLocked")) {
196248 updateEnableIndicatorsWhileLocked();
197249 }
250+ } else if (interface == "com.ubuntu.location.providers.here.AccountsService") {
251+ if (changed.contains("LicenseAccepted")) {
252+ updateHereEnabled();
253+ }
254+ if (changed.contains("LicenseBasePath")) {
255+ updateHereLicensePath();
256+ }
198257 }
199258}
200259
plugins/AccountsService/AccountsService.h+20
@@ -55,6 +55,16 @@ class AccountsService: public QObject
5555 READ failedLogins
5656 WRITE setFailedLogins
5757 NOTIFY failedLoginsChanged)
58+ Q_PROPERTY(bool hereEnabled
59+ READ hereEnabled
60+ WRITE setHereEnabled
61+ NOTIFY hereEnabledChanged)
62+ Q_PROPERTY(QString hereLicensePath
63+ READ hereLicensePath
64+ NOTIFY hereLicensePathChanged)
65+ Q_PROPERTY(bool hereLicensePathValid // qml sees a null string as "", so we use proxy setting for that
66+ READ hereLicensePathValid
67+ NOTIFY hereLicensePathChanged)
5868
5969public:
6070 enum PasswordDisplayHint {
@@ -75,6 +85,10 @@ public:
7585 PasswordDisplayHint passwordDisplayHint() const;
7686 uint failedLogins() const;
7787 void setFailedLogins(uint failedLogins);
88+ bool hereEnabled() const;
89+ void setHereEnabled(bool enabled);
90+ QString hereLicensePath() const;
91+ bool hereLicensePathValid() const;
7892
7993Q_SIGNALS:
8094 void userChanged();
@@ -85,6 +99,8 @@ Q_SIGNALS:
8599 void statsWelcomeScreenChanged();
86100 void passwordDisplayHintChanged();
87101 void failedLoginsChanged();
102+ void hereEnabledChanged();
103+ void hereLicensePathChanged();
88104
89105private Q_SLOTS:
90106 void propertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
@@ -98,6 +114,8 @@ private:
98114 void updateStatsWelcomeScreen();
99115 void updatePasswordDisplayHint();
100116 void updateFailedLogins();
117+ void updateHereEnabled();
118+ void updateHereLicensePath();
101119
102120 AccountsServiceDBusAdaptor *m_service;
103121 QString m_user;
@@ -108,6 +126,8 @@ private:
108126 bool m_statsWelcomeScreen;
109127 PasswordDisplayHint m_passwordDisplayHint;
110128 uint m_failedLogins;
129+ bool m_hereEnabled;
130+ QString m_hereLicensePath;
111131};
112132
113133#endif
plugins/CMakeLists.txt+1
@@ -21,3 +21,4 @@ add_subdirectory(ScreenGrabber)
2121add_subdirectory(Ubuntu)
2222add_subdirectory(Unity)
2323add_subdirectory(Utils)
24+add_subdirectory(Wizard)
plugins/Dash/CMakeLists.txt+3−2
@@ -11,7 +11,6 @@ include_directories(
1111 ${CMAKE_CURRENT_SOURCE_DIR}
1212 ${CMAKE_CURRENT_BINARY_DIR}
1313 ${Qt5Qml_PRIVATE_INCLUDE_DIRS}
14− ${Qt5Quick_INCLUDE_DIRS}
1514 ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
1615 ${Qt5V8_PRIVATE_INCLUDE_DIR}
1716)
@@ -25,6 +24,8 @@ set(QMLPLUGIN_SRC
2524 verticaljournal.cpp
2625 horizontaljournal.cpp
2726 organicgrid.cpp
27+ croppedimagesizer.cpp
28+ croppedimagesizerasyncworker.cpp
2829 )
2930
3031add_library(Dash-qml MODULE
@@ -36,6 +37,6 @@ target_link_libraries(Dash-qml
3637 ${Qt5Quick_LIBRARIES}
3738 )
3839
39−qt5_use_modules(Dash-qml Qml Quick)
40+qt5_use_modules(Dash-qml Qml Quick Concurrent)
4041
4142add_unity8_plugin(Dash 0.1 Dash TARGETS Dash-qml)
plugins/Dash/CardCreator.js+8−10
@@ -82,16 +82,16 @@ var kArtShapeHolderCode = 'Item { \n\
8282 height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height }); \n\
8383 } \n\
8484 } \n\
85− image: CroppedImageMinimumSourceSize { \n\
85+ CroppedImageMinimumSourceSize { \n\
86+ id: artImage; \n\
8687 objectName: "artImage"; \n\
87− property bool doLoadSource: !NetworkingStatus.limitedBandwith; \n\
88− source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["art"] || ""; } \n\
89− cache: true; \n\
88+ source: cardData && cardData["art"] || ""; \n\
9089 asynchronous: root.asynchronous; \n\
9190 visible: false; \n\
9291 width: %2; \n\
9392 height: %3; \n\
9493 } \n\
94+ image: artImage.image; \n\
9595 } \n\
9696 } \n\
9797 }\n';
@@ -181,11 +181,11 @@ var kMascotShapeLoaderCode = 'Loader { \n\
181181 id: mascotShapeLoader; \n\
182182 objectName: "mascotShapeLoader"; \n\
183183 asynchronous: root.asynchronous; \n\
184− active: mascotImage.status === Image.Ready; \n\
184+ active: mascotImage.image.status === Image.Ready; \n\
185185 visible: showHeader && active && status == Loader.Ready; \n\
186186 width: units.gu(6); \n\
187187 height: units.gu(5.625); \n\
188− sourceComponent: UbuntuShape { image: mascotImage } \n\
188+ sourceComponent: UbuntuShape { image: mascotImage.image } \n\
189189 anchors { %1 } \n\
190190 }\n';
191191
@@ -195,8 +195,7 @@ var kMascotImageCode = 'CroppedImageMinimumSourceSize { \n\
195195 id: mascotImage; \n\
196196 objectName: "mascotImage"; \n\
197197 anchors { %1 } \n\
198− property bool doLoadSource: !NetworkingStatus.limitedBandwith; \n\
199− source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["mascot"] || ""; } \n\
198+ source: cardData && cardData["mascot"] || ""; \n\
200199 width: units.gu(6); \n\
201200 height: units.gu(5.625); \n\
202201 horizontalAlignment: Image.AlignHCenter; \n\
@@ -435,7 +434,7 @@ function cardString(template, components) {
435434 mascotShapeCode = kMascotShapeLoaderCode.arg(mascotAnchors);
436435 }
437436
438− var mascotImageVisible = useMascotShape ? 'false' : 'showHeader && resized';
437+ var mascotImageVisible = useMascotShape ? 'false' : 'showHeader';
439438 mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible);
440439 }
441440
@@ -655,7 +654,6 @@ function createCardComponent(parent, template, components) {
655654 var imports = 'import QtQuick 2.2; \n\
656655 import Ubuntu.Components 1.1; \n\
657656 import Ubuntu.Settings.Components 0.1; \n\
658− import Ubuntu.Connectivity 1.0; \n\
659657 import Dash 0.1;\n\
660658 import Utils 0.1;\n';
661659 var card = cardString(template, components);
plugins/Dash/CroppedImageMinimumSourceSize.qml+24−18
@@ -15,24 +15,30 @@
1515 */
1616
1717import QtQuick 2.3
18+import Dash 0.1
1819
19−Image {
20− property bool resized: false
21− property bool resizing: false
22− fillMode: Image.PreserveAspectCrop
23− visible: resized
24− onSourceSizeChanged: {
25− if (!resized && !resizing) {
26− resizing = true;
27− var ar = width / height;
28− var ssar = sourceSize.width / sourceSize.height;
29− if (ar > ssar) {
30− sourceSize = Qt.size(width, 0);
31− } else {
32− sourceSize = Qt.size(0, height);
33− }
34− resizing = false;
35− resized = true;
36− }
20+Item {
21+ id: root
22+
23+ property string source
24+ property alias image: innerImage
25+ property alias asynchronous: innerImage.asynchronous
26+ property alias verticalAlignment: innerImage.verticalAlignment
27+ property alias horizontalAlignment: innerImage.horizontalAlignment
28+ property alias fillMode: innerImage.fillMode
29+
30+ CroppedImageSizer {
31+ id: sizer
32+ source: root.source
33+ width: root.width
34+ height: root.height
35+ }
36+
37+ Image {
38+ id: innerImage
39+ anchors.fill: parent
40+ fillMode: Image.PreserveAspectCrop
41+ sourceSize: sizer.sourceSize.width == 0 && sizer.sourceSize.height == 0 ? undefined : sizer.sourceSize
42+ source: sizer.sourceSize.width == -1 && sizer.sourceSize.height == -1 ? "" : root.source
3743 }
3844}
plugins/Dash/ScopeStyle.qml+1−1
@@ -70,7 +70,7 @@ QtObject {
7070 readonly property url navigationBackground: "navigation-background" in d.headerStyle ? d.headerStyle["navigation-background"] : "color:///#f5f5f5"
7171
7272 /// Color of the primary preview button
73− readonly property color previewButtonColor: "preview-button-color" in style ? style["preview-button-color"] : Theme.palette.selected.foreground
73+ readonly property color previewButtonColor: "preview-button-color" in style ? style["preview-button-color"] : UbuntuColors.orange
7474
7575 //! @cond
7676 property var d: QtObject {
plugins/Dash/abstractdashview.h+4
@@ -104,7 +104,11 @@ private:
104104 virtual void doRelayout() = 0;
105105 virtual void updateItemCulling(qreal visibleFromY, qreal visibleToY) = 0;
106106 virtual void calculateImplicitHeight() = 0;
107+#if (QT_VERSION < QT_VERSION_CHECK(5, 4, 0))
107108 virtual void processModelRemoves(const QVector<QQmlChangeSet::Remove> &removes) = 0;
109+#else
110+ virtual void processModelRemoves(const QVector<QQmlChangeSet::Change> &removes) = 0;
111+#endif
108112
109113 QQmlDelegateModel *m_delegateModel;
110114
plugins/Dash/croppedimagesizer.cppnew file+136
@@ -0,0 +1,136 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "croppedimagesizer.h"
18+
19+#include "croppedimagesizerasyncworker.h"
20+
21+#include <QNetworkAccessManager>
22+#include <QNetworkRequest>
23+#include <QQmlEngine>
24+#include <QQuickItem>
25+
26+CroppedImageSizer::CroppedImageSizer()
27+ : m_width(0),
28+ m_height(0),
29+ m_sourceSize(QSize(-1, -1)),
30+ m_worker(nullptr)
31+{
32+ connect(this, &CroppedImageSizer::inputParamsChanged, this, &CroppedImageSizer::calculateSourceSize);
33+ connect(this, &CroppedImageSizer::sourceChanged, this, &CroppedImageSizer::requestImage);
34+}
35+
36+CroppedImageSizer::~CroppedImageSizer()
37+{
38+ if (m_worker) {
39+ m_worker->abort();
40+ }
41+}
42+
43+QUrl CroppedImageSizer::source() const
44+{
45+ return m_source;
46+}
47+
48+void CroppedImageSizer::setSource(const QUrl &source)
49+{
50+ if (source != m_source) {
51+ m_source = source;
52+ Q_EMIT sourceChanged();
53+ }
54+}
55+
56+qreal CroppedImageSizer::width() const
57+{
58+ return m_width;
59+}
60+
61+void CroppedImageSizer::setWidth(qreal width)
62+{
63+ if (width != m_width) {
64+ m_width = width;
65+ Q_EMIT inputParamsChanged();
66+ }
67+}
68+
69+qreal CroppedImageSizer::height() const
70+{
71+ return m_height;
72+}
73+
74+void CroppedImageSizer::setHeight(qreal height)
75+{
76+ if (height != m_height) {
77+ m_height = height;
78+ Q_EMIT inputParamsChanged();
79+ }
80+}
81+
82+QSize CroppedImageSizer::sourceSize() const
83+{
84+ return m_sourceSize;
85+}
86+
87+void CroppedImageSizer::setSourceSize(const QSize &sourceSize)
88+{
89+ if (sourceSize != m_sourceSize) {
90+ m_sourceSize = sourceSize;
91+ Q_EMIT sourceSizeChanged();
92+ }
93+}
94+
95+void CroppedImageSizer::setImageSize(const QSize &imageSize)
96+{
97+ m_imageSize = imageSize;
98+ m_worker = nullptr;
99+ calculateSourceSize();
100+}
101+
102+void CroppedImageSizer::requestImage()
103+{
104+ if (m_worker) {
105+ m_worker->abort();
106+ m_worker = nullptr;
107+ }
108+
109+ if (m_source.isValid() && qmlEngine(this) && qmlEngine(this)->networkAccessManager()) {
110+ QNetworkRequest request(m_source);
111+ QNetworkReply *reply = qmlEngine(this)->networkAccessManager()->get(request);
112+ m_worker = new CroppedImageSizerAsyncWorker(this, reply);
113+ } else {
114+ setSourceSize(QSize(-1, -1));
115+ }
116+}
117+
118+void CroppedImageSizer::calculateSourceSize()
119+{
120+ if (m_source.isValid() && m_width > 0 && m_height > 0 && !m_worker) {
121+ if (!m_imageSize.isEmpty()) {
122+ const qreal ar = m_width / m_height;
123+ const qreal ssar = m_imageSize.width() / (qreal)m_imageSize.height();
124+ if (ar > ssar) {
125+ setSourceSize(QSize(m_width, 0));
126+ } else {
127+ setSourceSize(QSize(0, m_height));
128+ }
129+ } else {
130+ qWarning() << "Invalid size for " << m_source << m_imageSize;
131+ setSourceSize(QSize(0, 0));
132+ }
133+ } else {
134+ setSourceSize(QSize(-1, -1));
135+ }
136+}
plugins/Dash/croppedimagesizer.hnew file+72
@@ -0,0 +1,72 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef CROPPEDIMAGESIZER_H
18+#define CROPPEDIMAGESIZER_H
19+
20+#include <QImageReader>
21+#include <QObject>
22+#include <QSize>
23+#include <QUrl>
24+
25+class CroppedImageSizerAsyncWorker;
26+
27+class CroppedImageSizer : public QObject
28+{
29+ Q_OBJECT
30+
31+ Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
32+ Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY inputParamsChanged)
33+ Q_PROPERTY(qreal height READ height WRITE setHeight NOTIFY inputParamsChanged)
34+ Q_PROPERTY(QSize sourceSize READ sourceSize NOTIFY sourceSizeChanged)
35+
36+public:
37+ CroppedImageSizer();
38+ ~CroppedImageSizer();
39+
40+ QUrl source() const;
41+ void setSource(const QUrl &source);
42+
43+ qreal width() const;
44+ void setWidth(qreal width);
45+
46+ qreal height() const;
47+ void setHeight(qreal height);
48+
49+ QSize sourceSize() const;
50+ void setSourceSize(const QSize &sourceSize);
51+
52+ Q_INVOKABLE void setImageSize(const QSize &imageSize);
53+
54+Q_SIGNALS:
55+ void inputParamsChanged();
56+ void sourceChanged();
57+ void sourceSizeChanged();
58+
59+private Q_SLOT:
60+ void calculateSourceSize();
61+ void requestImage();
62+
63+private:
64+ QUrl m_source;
65+ qreal m_width;
66+ qreal m_height;
67+ QSize m_sourceSize;
68+ QSize m_imageSize;
69+ QPointer<CroppedImageSizerAsyncWorker> m_worker;
70+};
71+
72+#endif
plugins/Dash/croppedimagesizerasyncworker.cppnew file+74
@@ -0,0 +1,74 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "croppedimagesizerasyncworker.h"
18+
19+#include "croppedimagesizer.h"
20+
21+#include <QNetworkReply>
22+#include <QtConcurrentRun>
23+
24+CroppedImageSizerAsyncWorker::CroppedImageSizerAsyncWorker(CroppedImageSizer *sizer, QNetworkReply *reply)
25+ : m_sizer(sizer),
26+ m_reply(reply),
27+ m_ignoreAbort(false)
28+{
29+ connect(m_reply, &QNetworkReply::finished, this, &CroppedImageSizerAsyncWorker::requestFinished);
30+}
31+
32+void CroppedImageSizerAsyncWorker::abort()
33+{
34+ // This runs on main thread
35+ QMutexLocker locker(&m_mutex);
36+ m_sizer = nullptr;
37+ // If we already started the future run we can't abort the reply
38+ // since we don't know at which stage the future is, just let it finish
39+ if (!m_ignoreAbort) {
40+ QMetaObject::invokeMethod(m_reply, "abort", Qt::QueuedConnection);
41+ }
42+}
43+
44+void CroppedImageSizerAsyncWorker::requestFinished()
45+{
46+ // This runs on main thread
47+ QMutexLocker locker(&m_mutex);
48+ if (m_sizer) {
49+ m_ignoreAbort = true;
50+ QtConcurrent::run(processRequestFinished, this);
51+ } else {
52+ // We were aborted delete ourselves
53+ m_reply->deleteLater();
54+ deleteLater();
55+ }
56+}
57+
58+void CroppedImageSizerAsyncWorker::processRequestFinished(CroppedImageSizerAsyncWorker *worker)
59+{
60+ // This runs on non main thread
61+ // m_reply has finished at this point and is protected against change by m_ignoreAbort
62+ QImageReader reader(worker->m_reply);
63+ const QSize imageSize = reader.size();
64+
65+ worker->m_mutex.lock();
66+ if (worker->m_sizer) {
67+ QMetaObject::invokeMethod(worker->m_sizer, "setImageSize", Qt::QueuedConnection, Q_ARG(QSize, imageSize));
68+ }
69+ worker->m_mutex.unlock();
70+
71+ // All work is done, delete ourselves
72+ worker->m_reply->deleteLater();
73+ worker->deleteLater();
74+}
plugins/Dash/croppedimagesizerasyncworker.hnew file+47
@@ -0,0 +1,47 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef CROPPEDIMAGESIZERASYNCWORKER_H
18+#define CROPPEDIMAGESIZERASYNCWORKER_H
19+
20+#include <QMutex>
21+#include <QObject>
22+
23+class CroppedImageSizer;
24+
25+class QNetworkReply;
26+
27+class CroppedImageSizerAsyncWorker : public QObject
28+{
29+ Q_OBJECT
30+public:
31+ CroppedImageSizerAsyncWorker(CroppedImageSizer *sizer, QNetworkReply *reply);
32+
33+ void abort();
34+
35+private Q_SLOTS:
36+ void requestFinished();
37+
38+private:
39+ static void processRequestFinished(CroppedImageSizerAsyncWorker *worker);
40+
41+ QMutex m_mutex;
42+ CroppedImageSizer *m_sizer;
43+ QNetworkReply *m_reply;
44+ bool m_ignoreAbort;
45+};
46+
47+#endif
plugins/Dash/horizontaljournal.cpp+5−1
@@ -184,9 +184,13 @@ void HorizontalJournal::calculateImplicitHeight()
184184 }
185185}
186186
187+#if (QT_VERSION < QT_VERSION_CHECK(5, 4, 0))
187188void HorizontalJournal::processModelRemoves(const QVector<QQmlChangeSet::Remove> &removes)
189+#else
190+void HorizontalJournal::processModelRemoves(const QVector<QQmlChangeSet::Change> &removes)
191+#endif
188192{
189− Q_FOREACH(const QQmlChangeSet::Remove &remove, removes) {
193+ Q_FOREACH(const QQmlChangeSet::Change &remove, removes) {
190194 for (int i = remove.count - 1; i >= 0; --i) {
191195 const int indexToRemove = remove.index + i;
192196 // We only support removing from the end so
plugins/Dash/horizontaljournal.h+4
@@ -52,7 +52,11 @@ private:
5252 void calculateImplicitHeight() override;
5353 void doRelayout() override;
5454 void updateItemCulling(qreal visibleFromY, qreal visibleToY) override;
55+#if (QT_VERSION < QT_VERSION_CHECK(5, 4, 0))
5556 void processModelRemoves(const QVector<QQmlChangeSet::Remove> &removes) override;
57+#else
58+ void processModelRemoves(const QVector<QQmlChangeSet::Change> &removes) override;
59+#endif
5660
5761 int m_firstVisibleIndex;
5862 QList<QQuickItem*> m_visibleItems;
plugins/Dash/listviewwithpageheader.cpp+2−2
@@ -936,7 +936,7 @@ void ListViewWithPageHeader::onModelUpdated(const QQmlChangeSet &changeSet, bool
936936// qDebug() << "ListViewWithPageHeader::onModelUpdated" << changeSet << reset;
937937 const auto oldFirstVisibleIndex = m_firstVisibleIndex;
938938
939− Q_FOREACH(const QQmlChangeSet::Remove &remove, changeSet.removes()) {
939+ Q_FOREACH(const QQmlChangeSet::Change &remove, changeSet.removes()) {
940940// qDebug() << "ListViewWithPageHeader::onModelUpdated Remove" << remove.index << remove.count;
941941 if (remove.index + remove.count > m_firstVisibleIndex && remove.index < m_firstVisibleIndex + m_visibleItems.count()) {
942942 const qreal oldFirstValidIndexPos = m_visibleItems.first()->y();
@@ -990,7 +990,7 @@ void ListViewWithPageHeader::onModelUpdated(const QQmlChangeSet &changeSet, bool
990990 }
991991 }
992992
993− Q_FOREACH(const QQmlChangeSet::Insert &insert, changeSet.inserts()) {
993+ Q_FOREACH(const QQmlChangeSet::Change &insert, changeSet.inserts()) {
994994// qDebug() << "ListViewWithPageHeader::onModelUpdated Insert" << insert.index << insert.count;
995995 const bool insertingInValidIndexes = insert.index > m_firstVisibleIndex && insert.index < m_firstVisibleIndex + m_visibleItems.count();
996996 const bool firstItemWithViewOnTop = insert.index == 0 && m_firstVisibleIndex == 0 && m_visibleItems.first()->y() + m_clipItem->y() > contentY();
plugins/Dash/organicgrid.cpp+5−1
@@ -237,9 +237,13 @@ void OrganicGrid::calculateImplicitHeight()
237237 }
238238}
239239
240+#if (QT_VERSION < QT_VERSION_CHECK(5, 4, 0))
240241void OrganicGrid::processModelRemoves(const QVector<QQmlChangeSet::Remove> &removes)
242+#else
243+void OrganicGrid::processModelRemoves(const QVector<QQmlChangeSet::Change> &removes)
244+#endif
241245{
242− Q_FOREACH(const QQmlChangeSet::Remove &remove, removes) {
246+ Q_FOREACH(const QQmlChangeSet::Change &remove, removes) {
243247 for (int i = remove.count - 1; i >= 0; --i) {
244248 const int indexToRemove = remove.index + i;
245249 // We only support removing from the end
plugins/Dash/organicgrid.h+4
@@ -79,7 +79,11 @@ private:
7979 void doRelayout() override;
8080 void updateItemCulling(qreal visibleFromY, qreal visibleToY) override;
8181 void calculateImplicitHeight() override;
82+#if (QT_VERSION < QT_VERSION_CHECK(5, 4, 0))
8283 void processModelRemoves(const QVector<QQmlChangeSet::Remove> &removes) override;
84+#else
85+ void processModelRemoves(const QVector<QQmlChangeSet::Change> &removes) override;
86+#endif
8387
8488 QSizeF m_smallDelegateSize;
8589 QSizeF m_bigDelegateSize;
plugins/Dash/plugin.cpp+2
@@ -17,6 +17,7 @@
1717
1818#include "plugin.h"
1919
20+#include "croppedimagesizer.h"
2021#include "horizontaljournal.h"
2122#include "listviewwithpageheader.h"
2223#include "organicgrid.h"
@@ -32,4 +33,5 @@ void DashPlugin::registerTypes(const char *uri)
3233 qmlRegisterType<ListViewWithPageHeader>(uri, 0, 1, "ListViewWithPageHeader");
3334 qmlRegisterType<OrganicGrid>(uri, 0, 1, "OrganicGrid");
3435 qmlRegisterType<VerticalJournal>(uri, 0, 1, "VerticalJournal");
36+ qmlRegisterType<CroppedImageSizer>(uri, 0, 1, "CroppedImageSizer");
3537}
plugins/Dash/verticaljournal.cpp+5−1
@@ -239,9 +239,13 @@ void VerticalJournal::updateItemCulling(qreal visibleFromY, qreal visibleToY)
239239 }
240240}
241241
242+#if (QT_VERSION < QT_VERSION_CHECK(5, 4, 0))
242243void VerticalJournal::processModelRemoves(const QVector<QQmlChangeSet::Remove> &removes)
244+#else
245+void VerticalJournal::processModelRemoves(const QVector<QQmlChangeSet::Change> &removes)
246+#endif
243247{
244− Q_FOREACH(const QQmlChangeSet::Remove &remove, removes) {
248+ Q_FOREACH(const QQmlChangeSet::Change &remove, removes) {
245249 for (int i = remove.count - 1; i >= 0; --i) {
246250 const int indexToRemove = remove.index + i;
247251 // Since we only support removing from the end, indexToRemove
plugins/Dash/verticaljournal.h+4
@@ -90,7 +90,11 @@ private:
9090 void calculateImplicitHeight() override;
9191 void doRelayout() override;
9292 void updateItemCulling(qreal visibleFromY, qreal visibleToY) override;
93+#if (QT_VERSION < QT_VERSION_CHECK(5, 4, 0))
9394 void processModelRemoves(const QVector<QQmlChangeSet::Remove> &removes) override;
95+#else
96+ void processModelRemoves(const QVector<QQmlChangeSet::Change> &removes) override;
97+#endif
9498
9599 QVector<QList<ViewItem>> m_columnVisibleItems;
96100 QHash<int, int> m_indexColumnMap;
plugins/Unity/Launcher/desktopfilehandler.cpp+1−1
@@ -110,7 +110,7 @@ QString DesktopFileHandler::displayName() const
110110 settings.beginGroup("Desktop Entry");
111111
112112 // First try to find Name[xx_YY] and Name[xx] in .desktop file
113− QString locale = QLocale::system().name();
113+ QString locale = QLocale().name();
114114 QString shortLocale = locale.split('_').first();
115115
116116 if (locale != shortLocale && settings.contains(QString("Name[%1]").arg(locale))) {
plugins/Unity/Launcher/launcheritem.cpp+11−4
@@ -60,6 +60,10 @@ void LauncherItem::setName(const QString &name)
6060{
6161 if (m_name != name) {
6262 m_name = name;
63+ QuickListEntry entry;
64+ entry.setActionId("launch_item");
65+ entry.setText(m_name);
66+ m_quickList->updateAction(entry);
6367 Q_EMIT nameChanged(name);
6468 }
6569}
@@ -86,12 +90,15 @@ void LauncherItem::setPinned(bool pinned)
8690{
8791 if (m_pinned != pinned) {
8892 m_pinned = pinned;
89− QuickListEntry entry;
90− entry.setActionId("pin_item");
91− entry.setText(pinned ? gettext("Unpin shortcut") : gettext("Pin shortcut"));
92− m_quickList->updateAction(entry);
9393 Q_EMIT pinnedChanged(pinned);
9494 }
95+
96+ // Even if pinned status didn't change, we want to update text in case
97+ // the locale has changed since we last set pinned status.
98+ QuickListEntry entry;
99+ entry.setActionId("pin_item");
100+ entry.setText(pinned ? gettext("Unpin shortcut") : gettext("Pin shortcut"));
101+ m_quickList->updateAction(entry);
95102}
96103
97104bool LauncherItem::running() const
plugins/Unity/Launcher/launchermodel.cpp+1
@@ -370,6 +370,7 @@ void LauncherModel::refresh()
370370 int idx = m_list.indexOf(item);
371371 item->setName(desktopFile.displayName());
372372 item->setIcon(desktopFile.icon());
373+ item->setPinned(item->pinned()); // update pinned text if needed
373374 Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleName << RoleIcon);
374375 }
375376 }
plugins/Unity/Launcher/launchermodel.h+1−1
@@ -58,6 +58,7 @@ public:
5858
5959public Q_SLOTS:
6060 void requestRemove(const QString &appId);
61+ Q_INVOKABLE void refresh();
6162
6263private:
6364 void storeAppList();
@@ -68,7 +69,6 @@ private Q_SLOTS:
6869 void countChanged(const QString &appId, int count);
6970 void countVisibleChanged(const QString &appId, int count);
7071 void progressChanged(const QString &appId, int progress);
71− void refresh();
7272
7373 void applicationAdded(const QModelIndex &parent, int row);
7474 void applicationRemoved(const QModelIndex &parent, int row);
plugins/Wizard/50-com.canonical.unity.wizard.pklanew file+6
@@ -0,0 +1,6 @@
1+[Allow welcome wizard to set AccountsService fields]
2+Identity=unix-user:lightdm
3+Action=org.freedesktop.accounts.user-administration
4+ResultActive=yes
5+ResultInactive=no
6+ResultAny=no
plugins/Wizard/CMakeLists.txtnew file+11
@@ -0,0 +1,11 @@
1+add_library(Wizard-qml MODULE
2+ plugin.cpp
3+ PageList.cpp
4+ System.cpp
5+)
6+
7+qt5_use_modules(Wizard-qml DBus Qml)
8+add_unity8_plugin(Wizard 0.1 Wizard TARGETS Wizard-qml)
9+
10+set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
11+install(FILES 50-com.canonical.unity.wizard.pkla DESTINATION ${POLKIT_LIB_DIR}/localauthority/10-vendor.d)
plugins/Wizard/PageList.cppnew file+112
@@ -0,0 +1,112 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+/**
18+ * This class lets the list of wizard pages be dynamic.
19+ * - To add new ones, drop them into
20+ * $XDG_DATA_DIRS/Wizard/Pages with a numbered prefix,
21+ * like "21-custom-page.qml". The number determines the order in the page
22+ * sequence that your page will appear.
23+ * - To disable an existing page, add a file like "21-custom-page.qml.disabled"
24+ * - To go to the next page, use pageStack.next()
25+ * - To go back to the previous page, use pageStack.prev()
26+ * - To load a page outside of the normal flow (so that it doesn't affect the
27+ * back button), use pageStack.push(Qt.resolvedUrl("custom-page.qml")) in
28+ * your page.
29+ * - See default pages for plenty of examples.
30+ */
31+
32+#include "PageList.h"
33+#include <paths.h>
34+#include <QDir>
35+#include <QSet>
36+#include <QStandardPaths>
37+
38+PageList::PageList(QObject *parent)
39+ : QObject(parent),
40+ m_index(-1),
41+ m_pages()
42+{
43+ QString qmlSuffix = ".qml";
44+ QString disabledSuffix = ".disabled";
45+ QSet<QString> disabledPages;
46+ QStringList dataDirs;
47+
48+ if (!isRunningInstalled() && getenv("UNITY_TEST_ENV") == nullptr) {
49+ dataDirs = QStringList() << qmlDirectory();
50+ } else {
51+ dataDirs = shellDataDirs();
52+ }
53+
54+ Q_FOREACH(const QString &dataDir, dataDirs) {
55+ QDir dir(dataDir + "/Wizard/Pages");
56+ QStringList entries = dir.entryList(QStringList("[0-9]*"), QDir::Files | QDir::Readable);
57+ Q_FOREACH(const QString &entry, entries) {
58+ if (!m_pages.contains(entry) && entry.endsWith(qmlSuffix))
59+ m_pages.insert(entry, dir.absoluteFilePath(entry));
60+ else if (entry.endsWith(qmlSuffix + disabledSuffix))
61+ disabledPages.insert(entry.left(entry.size() - disabledSuffix.size()));
62+ }
63+ }
64+
65+ // Now remove any explicitly disabled entries
66+ Q_FOREACH(const QString &page, disabledPages) {
67+ m_pages.remove(page);
68+ }
69+}
70+
71+QStringList PageList::entries() const
72+{
73+ return m_pages.keys();
74+}
75+
76+QStringList PageList::paths() const
77+{
78+ return m_pages.values();
79+}
80+
81+int PageList::index() const
82+{
83+ return m_index;
84+}
85+
86+int PageList::numPages() const
87+{
88+ return m_pages.size();
89+}
90+
91+QString PageList::prev()
92+{
93+ if (m_index > 0)
94+ return m_pages.values()[setIndex(m_index - 1)];
95+ else
96+ return QString();
97+}
98+
99+QString PageList::next()
100+{
101+ if (m_index < m_pages.count() - 1)
102+ return m_pages.values()[setIndex(m_index + 1)];
103+ else
104+ return QString();
105+}
106+
107+int PageList::setIndex(int index)
108+{
109+ m_index = index;
110+ Q_EMIT indexChanged();
111+ return m_index;
112+}
plugins/Wizard/PageList.hnew file+53
@@ -0,0 +1,53 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef WIZARD_PAGELIST_H
18+#define WIZARD_PAGELIST_H
19+
20+#include <QMap>
21+#include <QObject>
22+#include <QString>
23+
24+class PageList : public QObject
25+{
26+ Q_OBJECT
27+ Q_PROPERTY(int index READ index NOTIFY indexChanged)
28+ Q_PROPERTY(int numPages READ numPages NOTIFY numPagesChanged)
29+
30+public:
31+ explicit PageList(QObject *parent = 0);
32+
33+ QStringList entries() const;
34+ QStringList paths() const;
35+ int index() const;
36+ int numPages() const;
37+
38+public Q_SLOTS:
39+ QString prev();
40+ QString next();
41+
42+Q_SIGNALS:
43+ void indexChanged();
44+ void numPagesChanged(); // never emitted, just here to quiet Qml warnings
45+
46+private:
47+ int setIndex(int index);
48+
49+ int m_index;
50+ QMap<QString, QString> m_pages;
51+};
52+
53+#endif // WIZARD_PAGELIST_H
plugins/Wizard/System.cppnew file+99
@@ -0,0 +1,99 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "System.h"
18+
19+#include <QDBusInterface>
20+#include <QDBusMetaType>
21+#include <QDir>
22+#include <QFile>
23+#include <QLocale>
24+#include <QMap>
25+#include <QProcess>
26+
27+System::System()
28+ : QObject(),
29+ m_fsWatcher()
30+{
31+ // Register the argument needed for UpdateActivationEnvironment below
32+ qDBusRegisterMetaType<QMap<QString,QString>>();
33+
34+ m_fsWatcher.addPath(wizardEnabledPath());
35+ connect(&m_fsWatcher, SIGNAL(fileChanged(const QString &)),
36+ this, SIGNAL(wizardEnabledChanged()));
37+}
38+
39+QString System::wizardEnabledPath()
40+{
41+ // Uses ubuntu-system-settings namespace for historic compatibility reasons
42+ return QDir::home().filePath(".config/ubuntu-system-settings/wizard-has-run");
43+}
44+
45+bool System::wizardEnabled() const
46+{
47+ return !QFile::exists(wizardEnabledPath());
48+}
49+
50+void System::setWizardEnabled(bool enabled)
51+{
52+ if (wizardEnabled() == enabled)
53+ return;
54+
55+ if (enabled) {
56+ QFile::remove(wizardEnabledPath());
57+ } else {
58+ QDir(wizardEnabledPath()).mkpath("..");
59+ QFile(wizardEnabledPath()).open(QIODevice::WriteOnly);
60+ m_fsWatcher.addPath(wizardEnabledPath());
61+ wizardEnabledChanged();
62+ }
63+}
64+
65+void System::setSessionVariable(const QString &variable, const QString &value)
66+{
67+ // We need to update both upstart's and DBus's environment
68+ QProcess::execute(QString("initctl set-env --global %1=%2").arg(variable, value));
69+
70+ QDBusInterface iface("org.freedesktop.DBus",
71+ "/org/freedesktop/DBus",
72+ "org.freedesktop.DBus",
73+ QDBusConnection::sessionBus());
74+
75+ QMap<QString,QString> valueMap;
76+ valueMap.insert(variable, value);
77+ iface.call("UpdateActivationEnvironment", QVariant::fromValue(valueMap));
78+}
79+
80+void System::updateSessionLanguage(const QString &locale)
81+{
82+ QString language = locale.split(".")[0];
83+
84+ setSessionVariable("LANGUAGE", language);
85+ setSessionVariable("LANG", locale);
86+ setSessionVariable("LC_ALL", locale);
87+
88+ // QLocale caches the default locale on startup, and Qt uses that cached
89+ // copy when formatting dates. So manually update it here.
90+ QLocale::setDefault(QLocale(locale));
91+
92+ // Restart bits of the session to pick up new language.
93+ QProcess::startDetached("sh -c \"initctl emit indicator-services-end; \
94+ initctl stop scope-registry; \
95+ initctl stop smart-scopes-proxy; \
96+ initctl emit --no-wait indicator-services-start; \
97+ initctl restart --no-wait maliit-server; \
98+ initctl restart --no-wait unity8-dash\"");
99+}
plugins/Wizard/System.hnew file+50
@@ -0,0 +1,50 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef WIZARD_SYSTEM_H
18+#define WIZARD_SYSTEM_H
19+
20+#include <QFileSystemWatcher>
21+#include <QObject>
22+#include <QString>
23+
24+class System : public QObject
25+{
26+ Q_OBJECT
27+ Q_PROPERTY(bool wizardEnabled READ wizardEnabled WRITE setWizardEnabled NOTIFY wizardEnabledChanged)
28+
29+public:
30+ System();
31+
32+ bool wizardEnabled() const;
33+ void setWizardEnabled(bool enabled);
34+
35+public Q_SLOTS:
36+ void updateSessionLanguage(const QString &locale);
37+
38+Q_SIGNALS:
39+ void wizardEnabledChanged();
40+
41+private:
42+ Q_DISABLE_COPY(System)
43+
44+ static QString wizardEnabledPath();
45+ static void setSessionVariable(const QString &variable, const QString &value);
46+
47+ QFileSystemWatcher m_fsWatcher;
48+};
49+
50+#endif
plugins/Wizard/Wizard.qmltypesnew file+36
@@ -0,0 +1,36 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Wizard 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "PageList"
12+ prototype: "QObject"
13+ exports: ["Wizard/PageList 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Property { name: "index"; type: "int"; isReadonly: true }
18+ Property { name: "numPages"; type: "int"; isReadonly: true }
19+ Method { name: "prev"; type: "string" }
20+ Method { name: "next"; type: "string" }
21+ }
22+ Component {
23+ name: "System"
24+ prototype: "QObject"
25+ exports: ["Wizard/System 0.1"]
26+ isCreatable: false
27+ isSingleton: true
28+ exportMetaObjectRevisions: [0]
29+ Property { name: "wizardEnabled"; type: "bool" }
30+ Method {
31+ name: "updateSessionLanguage"
32+ Parameter { name: "locale"; type: "string" }
33+ }
34+ }
35+}
36+
plugins/Wizard/plugin.cppnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "plugin.h"
18+#include "PageList.h"
19+#include "System.h"
20+
21+#include <QtQml/qqml.h>
22+
23+static QObject *system_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
24+{
25+ Q_UNUSED(engine)
26+ Q_UNUSED(scriptEngine)
27+ return new System();
28+}
29+
30+void WizardPlugin::registerTypes(const char *uri)
31+{
32+ Q_ASSERT(uri == QLatin1String("Wizard"));
33+ qmlRegisterType<PageList>(uri, 0, 1, "PageList");
34+ qmlRegisterSingletonType<System>(uri, 0, 1, "System", system_provider);
35+}
plugins/Wizard/plugin.hnew file+32
@@ -0,0 +1,32 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef WIZARD_PLUGIN_H
18+#define WIZARD_PLUGIN_H
19+
20+#include <QtQml/QQmlEngine>
21+#include <QtQml/QQmlExtensionPlugin>
22+
23+class WizardPlugin : public QQmlExtensionPlugin
24+{
25+ Q_OBJECT
26+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27+
28+public:
29+ void registerTypes(const char *uri);
30+};
31+
32+#endif
plugins/Wizard/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module Wizard
2+plugin Wizard-qml
3+typeinfo Wizard.qmltypes
po/am.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-06 00:53+0000\n"
1212"Last-Translator: samson <Unknown>\n"
1313"Language-Team: Amharic <am@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -175,20 +175,24 @@ msgstr "አነስተኛ መመልከቻ"
175175msgid "See all"
176176msgstr "ሁሉንም መመልከቻ"
177177
178−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
179179#: qml/Panel/SearchIndicator.qml:27
180180msgid "Search"
181181msgstr "መፈለጊያ"
182182
183−#: qml/Dash/PageHeader.qml:268
183+#: qml/Dash/PageHeader.qml:260
184+msgid "Store"
185+msgstr "ማስቀመጫ"
186+
187+#: qml/Dash/PageHeader.qml:277
184188msgid "Settings"
185189msgstr "ማሰናጃ"
186190
187−#: qml/Dash/PageHeader.qml:275
191+#: qml/Dash/PageHeader.qml:284
188192msgid "Remove from Favorites"
189193msgstr "ከምወዳቸው ማስወገጃ"
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Add to Favorites"
193197msgstr "ወደምወዳቸው መጨመሪያ"
194198
@@ -220,31 +224,23 @@ msgstr "ይሳቡ ለማነቃቃት…"
220224msgid "Release to refresh…"
221225msgstr "ይልቀቁ ለማነቃቃት…"
222226
223−#: qml/Dash/ScopesOverview.qml:215
224−msgid "Manage Scopes"
225−msgstr "የ ክልል አስተዳዳሪ"
226−
227−#: qml/Dash/ScopesOverview.qml:437
228−msgid "Done"
229−msgstr "ጨርሷል"
230−
231−#: qml/Dash/ScopesOverview.qml:463
232−msgid "Store"
233−msgstr "ማስቀመጫ"
227+#: qml/Dash/ScopesList.qml:63
228+msgid "Manage"
229+msgstr ""
234230
235−#: qml/Dash/ScopesOverviewTab.qml:36
236−msgid "Favorites"
237−msgstr "የምወዳቸው"
231+#: qml/Dash/ScopesList.qml:105
232+msgid "Home"
233+msgstr ""
238234
239−#: qml/Dash/ScopesOverviewTab.qml:54
240−msgid "All"
241−msgstr "ሁሉንም"
235+#: qml/Dash/ScopesList.qml:106
236+msgid "Also installed"
237+msgstr ""
242238
243239#: qml/Greeter/Greeter.qml:174
244240msgid "Unlock"
245241msgstr "መክፈቻ"
246242
247−#: qml/Notifications/NotificationMenuItemFactory.qml:116
243+#: qml/Notifications/NotificationMenuItemFactory.qml:128
248244msgid "Show password"
249245msgstr "የመግቢያ ቃል ማሳያ"
250246
@@ -292,49 +288,49 @@ msgstr "ሲም መክፈቻ"
292288msgid "Roaming"
293289msgstr "ማዘዋወሪያ"
294290
295−#: qml/Shell.qml:391
291+#: qml/Shell.qml:390
296292msgid "Enter passphrase"
297293msgstr "የ ማለፊያ ሀረግ ያስገቡ"
298294
299−#: qml/Shell.qml:392
295+#: qml/Shell.qml:391
300296msgid "Sorry, incorrect passphrase"
301297msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
302298
303−#: qml/Shell.qml:393
299+#: qml/Shell.qml:392
304300msgid "Please re-enter"
305301msgstr "እባክዎን እንደገና-ያስገቡ"
306302
307−#: qml/Shell.qml:395
303+#: qml/Shell.qml:394
308304msgid "Enter passcode"
309305msgstr "የ ማለፊያ ኮድ ያስገቡ"
310306
311−#: qml/Shell.qml:396
307+#: qml/Shell.qml:395
312308msgid "Sorry, incorrect passcode"
313309msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
314310
315−#: qml/Shell.qml:399
311+#: qml/Shell.qml:398
316312#, qt-format
317313msgid "Enter %1"
318314msgstr "ማስገቢያ %1"
319315
320−#: qml/Shell.qml:400
316+#: qml/Shell.qml:399
321317#, qt-format
322318msgid "Sorry, incorrect %1"
323319msgstr "አዝናለሁ: የተሳሳተ%1"
324320
325−#: qml/Shell.qml:441
321+#: qml/Shell.qml:440
326322msgid "Sorry, incorrect passphrase."
327323msgstr "አዝናለሁ የተሳሳተ የማለፊያ ሐረግ"
328324
329−#: qml/Shell.qml:442
325+#: qml/Shell.qml:441
330326msgid "Sorry, incorrect passcode."
331327msgstr "አዝናለሁ የተሳሳተ የማለፊያ ኮድ"
332328
333−#: qml/Shell.qml:443
329+#: qml/Shell.qml:442
334330msgid "This will be your last attempt."
335331msgstr "ይህ የመጨረሻ ሙከራዎ ነው"
336332
337−#: qml/Shell.qml:445
333+#: qml/Shell.qml:444
338334msgid ""
339335"If passphrase is entered incorrectly, your phone will conduct a factory "
340336"reset and all personal data will be deleted."
@@ -342,7 +338,7 @@ msgstr ""
342338"የተሳሳተ የማለፊያ ሐረግ ካስገቡ የ እርስዎ ስልክ ወደ ነበረበት ወደ ፋክቶሪው ዘዴ ይመለሳል: እና የ ግል ዳታ በሙሉ "
343339"ይጠፋል"
344340
345−#: qml/Shell.qml:446
341+#: qml/Shell.qml:445
346342msgid ""
347343"If passcode is entered incorrectly, your phone will conduct a factory reset "
348344"and all personal data will be deleted."
@@ -364,3 +360,15 @@ msgstr ""
364360
365361#~ msgid "Confirm"
366362#~ msgstr "ማረጋገጫ"
363+
364+#~ msgid "Favorites"
365+#~ msgstr "የምወዳቸው"
366+
367+#~ msgid "All"
368+#~ msgstr "ሁሉንም"
369+
370+#~ msgid "Done"
371+#~ msgstr "ጨርሷል"
372+
373+#~ msgid "Manage Scopes"
374+#~ msgstr "የ ክልል አስተዳዳሪ"
po/ar.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-05-22 08:22+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1818"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -176,20 +176,24 @@ msgstr "شاهد أقل"
176176msgid "See all"
177177msgstr ""
178178
179−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "ابحث"
183183
184−#: qml/Dash/PageHeader.qml:268
184+#: qml/Dash/PageHeader.qml:260
185+msgid "Store"
186+msgstr ""
187+
188+#: qml/Dash/PageHeader.qml:277
185189msgid "Settings"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Remove from Favorites"
190194msgstr ""
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Add to Favorites"
194198msgstr ""
195199
@@ -221,31 +225,23 @@ msgstr ""
221225msgid "Release to refresh…"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:215
225−msgid "Manage Scopes"
228+#: qml/Dash/ScopesList.qml:63
229+msgid "Manage"
226230msgstr ""
227231
228−#: qml/Dash/ScopesOverview.qml:437
229−msgid "Done"
230−msgstr ""
231−
232−#: qml/Dash/ScopesOverview.qml:463
233−msgid "Store"
232+#: qml/Dash/ScopesList.qml:105
233+msgid "Home"
234234msgstr ""
235235
236−#: qml/Dash/ScopesOverviewTab.qml:36
237−msgid "Favorites"
238−msgstr ""
239−
240−#: qml/Dash/ScopesOverviewTab.qml:54
241−msgid "All"
236+#: qml/Dash/ScopesList.qml:106
237+msgid "Also installed"
242238msgstr ""
243239
244240#: qml/Greeter/Greeter.qml:174
245241msgid "Unlock"
246242msgstr ""
247243
248−#: qml/Notifications/NotificationMenuItemFactory.qml:116
244+#: qml/Notifications/NotificationMenuItemFactory.qml:128
249245msgid "Show password"
250246msgstr "عرض كلمة السر"
251247
@@ -293,55 +289,55 @@ msgstr ""
293289msgid "Roaming"
294290msgstr ""
295291
296−#: qml/Shell.qml:391
292+#: qml/Shell.qml:390
297293msgid "Enter passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:392
296+#: qml/Shell.qml:391
301297msgid "Sorry, incorrect passphrase"
302298msgstr ""
303299
304−#: qml/Shell.qml:393
300+#: qml/Shell.qml:392
305301msgid "Please re-enter"
306302msgstr ""
307303
308−#: qml/Shell.qml:395
304+#: qml/Shell.qml:394
309305msgid "Enter passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:396
308+#: qml/Shell.qml:395
313309msgid "Sorry, incorrect passcode"
314310msgstr ""
315311
316−#: qml/Shell.qml:399
312+#: qml/Shell.qml:398
317313#, qt-format
318314msgid "Enter %1"
319315msgstr ""
320316
321−#: qml/Shell.qml:400
317+#: qml/Shell.qml:399
322318#, qt-format
323319msgid "Sorry, incorrect %1"
324320msgstr ""
325321
326−#: qml/Shell.qml:441
322+#: qml/Shell.qml:440
327323msgid "Sorry, incorrect passphrase."
328324msgstr ""
329325
330−#: qml/Shell.qml:442
326+#: qml/Shell.qml:441
331327msgid "Sorry, incorrect passcode."
332328msgstr ""
333329
334−#: qml/Shell.qml:443
330+#: qml/Shell.qml:442
335331msgid "This will be your last attempt."
336332msgstr ""
337333
338−#: qml/Shell.qml:445
334+#: qml/Shell.qml:444
339335msgid ""
340336"If passphrase is entered incorrectly, your phone will conduct a factory "
341337"reset and all personal data will be deleted."
342338msgstr ""
343339
344−#: qml/Shell.qml:446
340+#: qml/Shell.qml:445
345341msgid ""
346342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347343"and all personal data will be deleted."
po/ast.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-08 18:24+0000\n"
1212"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -179,20 +179,24 @@ msgstr "Ver menos"
179179msgid "See all"
180180msgstr "Ver too"
181181
182−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
182+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
183183#: qml/Panel/SearchIndicator.qml:27
184184msgid "Search"
185185msgstr "Guetar"
186186
187−#: qml/Dash/PageHeader.qml:268
187+#: qml/Dash/PageHeader.qml:260
188+msgid "Store"
189+msgstr "Tienda"
190+
191+#: qml/Dash/PageHeader.qml:277
188192msgid "Settings"
189193msgstr "Axustes"
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Remove from Favorites"
193197msgstr "Desaniciar de favoritos"
194198
195−#: qml/Dash/PageHeader.qml:275
199+#: qml/Dash/PageHeader.qml:284
196200msgid "Add to Favorites"
197201msgstr "Amestar a favoritos"
198202
@@ -224,31 +228,23 @@ msgstr "Tirar p'anovar..."
224228msgid "Release to refresh…"
225229msgstr "Soltar p'anovar..."
226230
227−#: qml/Dash/ScopesOverview.qml:215
228−msgid "Manage Scopes"
229−msgstr "Xestionar ámbitos"
230−
231−#: qml/Dash/ScopesOverview.qml:437
232−msgid "Done"
233−msgstr "Fecho"
234−
235−#: qml/Dash/ScopesOverview.qml:463
236−msgid "Store"
237−msgstr "Tienda"
231+#: qml/Dash/ScopesList.qml:63
232+msgid "Manage"
233+msgstr ""
238234
239−#: qml/Dash/ScopesOverviewTab.qml:36
240−msgid "Favorites"
241−msgstr "Favoritos"
235+#: qml/Dash/ScopesList.qml:105
236+msgid "Home"
237+msgstr ""
242238
243−#: qml/Dash/ScopesOverviewTab.qml:54
244−msgid "All"
245−msgstr "Too"
239+#: qml/Dash/ScopesList.qml:106
240+msgid "Also installed"
241+msgstr ""
246242
247243#: qml/Greeter/Greeter.qml:174
248244msgid "Unlock"
249245msgstr "Desbloquiar"
250246
251−#: qml/Notifications/NotificationMenuItemFactory.qml:116
247+#: qml/Notifications/NotificationMenuItemFactory.qml:128
252248msgid "Show password"
253249msgstr "Amosar contraseña"
254250
@@ -296,49 +292,49 @@ msgstr "Desbloquiar SIM"
296292msgid "Roaming"
297293msgstr "Roaming"
298294
299−#: qml/Shell.qml:391
295+#: qml/Shell.qml:390
300296msgid "Enter passphrase"
301297msgstr "Escribi la frase contraseña"
302298
303−#: qml/Shell.qml:392
299+#: qml/Shell.qml:391
304300msgid "Sorry, incorrect passphrase"
305301msgstr "Sentímoslo, contraseña incorreuta"
306302
307−#: qml/Shell.qml:393
303+#: qml/Shell.qml:392
308304msgid "Please re-enter"
309305msgstr "Vuelvi a escribila"
310306
311−#: qml/Shell.qml:395
307+#: qml/Shell.qml:394
312308msgid "Enter passcode"
313309msgstr "Escribi'l códigu de pasu"
314310
315−#: qml/Shell.qml:396
311+#: qml/Shell.qml:395
316312msgid "Sorry, incorrect passcode"
317313msgstr "Sentímoslo, códigu de pasu incorreutu"
318314
319−#: qml/Shell.qml:399
315+#: qml/Shell.qml:398
320316#, qt-format
321317msgid "Enter %1"
322318msgstr "Escribi %1"
323319
324−#: qml/Shell.qml:400
320+#: qml/Shell.qml:399
325321#, qt-format
326322msgid "Sorry, incorrect %1"
327323msgstr "Sentímoslo, %1 incorreutu"
328324
329−#: qml/Shell.qml:441
325+#: qml/Shell.qml:440
330326msgid "Sorry, incorrect passphrase."
331327msgstr "Fras de pasu incorreuta"
332328
333−#: qml/Shell.qml:442
329+#: qml/Shell.qml:441
334330msgid "Sorry, incorrect passcode."
335331msgstr "Códigu de pasu incorreutu"
336332
337−#: qml/Shell.qml:443
333+#: qml/Shell.qml:442
338334msgid "This will be your last attempt."
339335msgstr "Esti ye'l caberu intentu."
340336
341−#: qml/Shell.qml:445
337+#: qml/Shell.qml:444
342338msgid ""
343339"If passphrase is entered incorrectly, your phone will conduct a factory "
344340"reset and all personal data will be deleted."
@@ -346,7 +342,7 @@ msgstr ""
346342"Si s'inxerta la fras incorreutamente, el teléfonu va volver a la "
347343"configuración de fábrica y van perdese tolos datos personales."
348344
349−#: qml/Shell.qml:446
345+#: qml/Shell.qml:445
350346msgid ""
351347"If passcode is entered incorrectly, your phone will conduct a factory reset "
352348"and all personal data will be deleted."
@@ -368,3 +364,15 @@ msgstr ""
368364
369365#~ msgid "Speak Now..."
370366#~ msgstr "Fala agora…"
367+
368+#~ msgid "Done"
369+#~ msgstr "Fecho"
370+
371+#~ msgid "Favorites"
372+#~ msgstr "Favoritos"
373+
374+#~ msgid "All"
375+#~ msgstr "Too"
376+
377+#~ msgid "Manage Scopes"
378+#~ msgstr "Xestionar ámbitos"
po/az.po+40−35
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-09-03 16:39+0000\n"
1212"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -175,20 +175,24 @@ msgstr "Daha azını gör"
175175msgid "See all"
176176msgstr "Hamısını gör"
177177
178−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
179179#: qml/Panel/SearchIndicator.qml:27
180180msgid "Search"
181181msgstr "Axtar"
182182
183−#: qml/Dash/PageHeader.qml:268
183+#: qml/Dash/PageHeader.qml:260
184+msgid "Store"
185+msgstr ""
186+
187+#: qml/Dash/PageHeader.qml:277
184188msgid "Settings"
185189msgstr "Tənzimləmələr"
186190
187−#: qml/Dash/PageHeader.qml:275
191+#: qml/Dash/PageHeader.qml:284
188192msgid "Remove from Favorites"
189193msgstr "Seçilmişlәrdәn çıxart"
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Add to Favorites"
193197msgstr "Seçilmişlәrә әlavә et"
194198
@@ -220,31 +224,23 @@ msgstr ""
220224msgid "Release to refresh…"
221225msgstr ""
222226
223−#: qml/Dash/ScopesOverview.qml:215
224−msgid "Manage Scopes"
227+#: qml/Dash/ScopesList.qml:63
228+msgid "Manage"
225229msgstr ""
226230
227−#: qml/Dash/ScopesOverview.qml:437
228−msgid "Done"
229−msgstr "Başa çatdı"
230−
231−#: qml/Dash/ScopesOverview.qml:463
232−msgid "Store"
231+#: qml/Dash/ScopesList.qml:105
232+msgid "Home"
233233msgstr ""
234234
235−#: qml/Dash/ScopesOverviewTab.qml:36
236−msgid "Favorites"
237−msgstr "Seçilmişlər"
238−
239−#: qml/Dash/ScopesOverviewTab.qml:54
240−msgid "All"
241−msgstr "Hamısı"
235+#: qml/Dash/ScopesList.qml:106
236+msgid "Also installed"
237+msgstr ""
242238
243239#: qml/Greeter/Greeter.qml:174
244240msgid "Unlock"
245241msgstr ""
246242
247−#: qml/Notifications/NotificationMenuItemFactory.qml:116
243+#: qml/Notifications/NotificationMenuItemFactory.qml:128
248244msgid "Show password"
249245msgstr "Şifrәni göstәr"
250246
@@ -292,49 +288,49 @@ msgstr "SIM kilidini aç"
292288msgid "Roaming"
293289msgstr "Rominq"
294290
295−#: qml/Shell.qml:391
291+#: qml/Shell.qml:390
296292msgid "Enter passphrase"
297293msgstr ""
298294
299−#: qml/Shell.qml:392
295+#: qml/Shell.qml:391
300296msgid "Sorry, incorrect passphrase"
301297msgstr "Bağışlayın, açar söz yanlışdır"
302298
303−#: qml/Shell.qml:393
299+#: qml/Shell.qml:392
304300msgid "Please re-enter"
305301msgstr ""
306302
307−#: qml/Shell.qml:395
303+#: qml/Shell.qml:394
308304msgid "Enter passcode"
309305msgstr ""
310306
311−#: qml/Shell.qml:396
307+#: qml/Shell.qml:395
312308msgid "Sorry, incorrect passcode"
313309msgstr ""
314310
315−#: qml/Shell.qml:399
311+#: qml/Shell.qml:398
316312#, qt-format
317313msgid "Enter %1"
318314msgstr ""
319315
320−#: qml/Shell.qml:400
316+#: qml/Shell.qml:399
321317#, qt-format
322318msgid "Sorry, incorrect %1"
323319msgstr "Bağışlayın, %1 yanlışdır"
324320
325−#: qml/Shell.qml:441
321+#: qml/Shell.qml:440
326322msgid "Sorry, incorrect passphrase."
327323msgstr "Bağışlayın, açar söz yanlışdır."
328324
329−#: qml/Shell.qml:442
325+#: qml/Shell.qml:441
330326msgid "Sorry, incorrect passcode."
331327msgstr "Təəssüf ki, açar kod yanlışdır."
332328
333−#: qml/Shell.qml:443
329+#: qml/Shell.qml:442
334330msgid "This will be your last attempt."
335331msgstr "Bu sizin son cəhdiniz olacaq."
336332
337−#: qml/Shell.qml:445
333+#: qml/Shell.qml:444
338334msgid ""
339335"If passphrase is entered incorrectly, your phone will conduct a factory "
340336"reset and all personal data will be deleted."
@@ -342,7 +338,7 @@ msgstr ""
342338"Əgər açar söz yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
343339"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
344340
345−#: qml/Shell.qml:446
341+#: qml/Shell.qml:445
346342msgid ""
347343"If passcode is entered incorrectly, your phone will conduct a factory reset "
348344"and all personal data will be deleted."
@@ -362,5 +358,14 @@ msgstr ""
362358#~ msgid "Speak Now..."
363359#~ msgstr "Danışın..."
364360
361+#~ msgid "All"
362+#~ msgstr "Hamısı"
363+
364+#~ msgid "Favorites"
365+#~ msgstr "Seçilmişlər"
366+
367+#~ msgid "Done"
368+#~ msgstr "Başa çatdı"
369+
365370#~ msgid "Type or say a command"
366371#~ msgstr "Bir әmr söyləyin və ya yazın"
po/be.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-09-24 17:12+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Belarusian <be@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -173,20 +173,24 @@ msgstr ""
173173msgid "See all"
174174msgstr ""
175175
176−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
176+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
177177#: qml/Panel/SearchIndicator.qml:27
178178msgid "Search"
179179msgstr ""
180180
181−#: qml/Dash/PageHeader.qml:268
181+#: qml/Dash/PageHeader.qml:260
182+msgid "Store"
183+msgstr ""
184+
185+#: qml/Dash/PageHeader.qml:277
182186msgid "Settings"
183187msgstr ""
184188
185−#: qml/Dash/PageHeader.qml:275
189+#: qml/Dash/PageHeader.qml:284
186190msgid "Remove from Favorites"
187191msgstr ""
188192
189−#: qml/Dash/PageHeader.qml:275
193+#: qml/Dash/PageHeader.qml:284
190194msgid "Add to Favorites"
191195msgstr ""
192196
@@ -218,31 +222,23 @@ msgstr ""
218222msgid "Release to refresh…"
219223msgstr ""
220224
221−#: qml/Dash/ScopesOverview.qml:215
222−msgid "Manage Scopes"
225+#: qml/Dash/ScopesList.qml:63
226+msgid "Manage"
223227msgstr ""
224228
225−#: qml/Dash/ScopesOverview.qml:437
226−msgid "Done"
227−msgstr ""
228−
229−#: qml/Dash/ScopesOverview.qml:463
230−msgid "Store"
229+#: qml/Dash/ScopesList.qml:105
230+msgid "Home"
231231msgstr ""
232232
233−#: qml/Dash/ScopesOverviewTab.qml:36
234−msgid "Favorites"
235−msgstr ""
236−
237−#: qml/Dash/ScopesOverviewTab.qml:54
238−msgid "All"
233+#: qml/Dash/ScopesList.qml:106
234+msgid "Also installed"
239235msgstr ""
240236
241237#: qml/Greeter/Greeter.qml:174
242238msgid "Unlock"
243239msgstr ""
244240
245−#: qml/Notifications/NotificationMenuItemFactory.qml:116
241+#: qml/Notifications/NotificationMenuItemFactory.qml:128
246242msgid "Show password"
247243msgstr ""
248244
@@ -290,55 +286,55 @@ msgstr ""
290286msgid "Roaming"
291287msgstr ""
292288
293−#: qml/Shell.qml:391
289+#: qml/Shell.qml:390
294290msgid "Enter passphrase"
295291msgstr ""
296292
297−#: qml/Shell.qml:392
293+#: qml/Shell.qml:391
298294msgid "Sorry, incorrect passphrase"
299295msgstr ""
300296
301−#: qml/Shell.qml:393
297+#: qml/Shell.qml:392
302298msgid "Please re-enter"
303299msgstr ""
304300
305−#: qml/Shell.qml:395
301+#: qml/Shell.qml:394
306302msgid "Enter passcode"
307303msgstr ""
308304
309−#: qml/Shell.qml:396
305+#: qml/Shell.qml:395
310306msgid "Sorry, incorrect passcode"
311307msgstr ""
312308
313−#: qml/Shell.qml:399
309+#: qml/Shell.qml:398
314310#, qt-format
315311msgid "Enter %1"
316312msgstr ""
317313
318−#: qml/Shell.qml:400
314+#: qml/Shell.qml:399
319315#, qt-format
320316msgid "Sorry, incorrect %1"
321317msgstr ""
322318
323−#: qml/Shell.qml:441
319+#: qml/Shell.qml:440
324320msgid "Sorry, incorrect passphrase."
325321msgstr ""
326322
327−#: qml/Shell.qml:442
323+#: qml/Shell.qml:441
328324msgid "Sorry, incorrect passcode."
329325msgstr ""
330326
331−#: qml/Shell.qml:443
327+#: qml/Shell.qml:442
332328msgid "This will be your last attempt."
333329msgstr ""
334330
335−#: qml/Shell.qml:445
331+#: qml/Shell.qml:444
336332msgid ""
337333"If passphrase is entered incorrectly, your phone will conduct a factory "
338334"reset and all personal data will be deleted."
339335msgstr ""
340336
341−#: qml/Shell.qml:446
337+#: qml/Shell.qml:445
342338msgid ""
343339"If passcode is entered incorrectly, your phone will conduct a factory reset "
344340"and all personal data will be deleted."
po/bg.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-04-01 14:08+0000\n"
1212"Last-Translator: Atanas Kovachki <Unknown>\n"
1313"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -179,20 +179,24 @@ msgstr ""
179179msgid "See all"
180180msgstr ""
181181
182−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
182+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
183183#: qml/Panel/SearchIndicator.qml:27
184184msgid "Search"
185185msgstr "Търсене"
186186
187−#: qml/Dash/PageHeader.qml:268
187+#: qml/Dash/PageHeader.qml:260
188+msgid "Store"
189+msgstr ""
190+
191+#: qml/Dash/PageHeader.qml:277
188192msgid "Settings"
189193msgstr ""
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Remove from Favorites"
193197msgstr ""
194198
195−#: qml/Dash/PageHeader.qml:275
199+#: qml/Dash/PageHeader.qml:284
196200msgid "Add to Favorites"
197201msgstr ""
198202
@@ -224,31 +228,23 @@ msgstr ""
224228msgid "Release to refresh…"
225229msgstr ""
226230
227−#: qml/Dash/ScopesOverview.qml:215
228−msgid "Manage Scopes"
231+#: qml/Dash/ScopesList.qml:63
232+msgid "Manage"
229233msgstr ""
230234
231−#: qml/Dash/ScopesOverview.qml:437
232−msgid "Done"
233−msgstr ""
234−
235−#: qml/Dash/ScopesOverview.qml:463
236−msgid "Store"
235+#: qml/Dash/ScopesList.qml:105
236+msgid "Home"
237237msgstr ""
238238
239−#: qml/Dash/ScopesOverviewTab.qml:36
240−msgid "Favorites"
241−msgstr ""
242−
243−#: qml/Dash/ScopesOverviewTab.qml:54
244−msgid "All"
239+#: qml/Dash/ScopesList.qml:106
240+msgid "Also installed"
245241msgstr ""
246242
247243#: qml/Greeter/Greeter.qml:174
248244msgid "Unlock"
249245msgstr ""
250246
251−#: qml/Notifications/NotificationMenuItemFactory.qml:116
247+#: qml/Notifications/NotificationMenuItemFactory.qml:128
252248msgid "Show password"
253249msgstr "Покажи паролата"
254250
@@ -296,55 +292,55 @@ msgstr ""
296292msgid "Roaming"
297293msgstr ""
298294
299−#: qml/Shell.qml:391
295+#: qml/Shell.qml:390
300296msgid "Enter passphrase"
301297msgstr ""
302298
303−#: qml/Shell.qml:392
299+#: qml/Shell.qml:391
304300msgid "Sorry, incorrect passphrase"
305301msgstr ""
306302
307−#: qml/Shell.qml:393
303+#: qml/Shell.qml:392
308304msgid "Please re-enter"
309305msgstr ""
310306
311−#: qml/Shell.qml:395
307+#: qml/Shell.qml:394
312308msgid "Enter passcode"
313309msgstr ""
314310
315−#: qml/Shell.qml:396
311+#: qml/Shell.qml:395
316312msgid "Sorry, incorrect passcode"
317313msgstr ""
318314
319−#: qml/Shell.qml:399
315+#: qml/Shell.qml:398
320316#, qt-format
321317msgid "Enter %1"
322318msgstr ""
323319
324−#: qml/Shell.qml:400
320+#: qml/Shell.qml:399
325321#, qt-format
326322msgid "Sorry, incorrect %1"
327323msgstr ""
328324
329−#: qml/Shell.qml:441
325+#: qml/Shell.qml:440
330326msgid "Sorry, incorrect passphrase."
331327msgstr ""
332328
333−#: qml/Shell.qml:442
329+#: qml/Shell.qml:441
334330msgid "Sorry, incorrect passcode."
335331msgstr ""
336332
337−#: qml/Shell.qml:443
333+#: qml/Shell.qml:442
338334msgid "This will be your last attempt."
339335msgstr ""
340336
341−#: qml/Shell.qml:445
337+#: qml/Shell.qml:444
342338msgid ""
343339"If passphrase is entered incorrectly, your phone will conduct a factory "
344340"reset and all personal data will be deleted."
345341msgstr ""
346342
347−#: qml/Shell.qml:446
343+#: qml/Shell.qml:445
348344msgid ""
349345"If passcode is entered incorrectly, your phone will conduct a factory reset "
350346"and all personal data will be deleted."
po/br.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-05 07:24+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -185,20 +185,24 @@ msgstr "Gwelet nebeutoc'h"
185185msgid "See all"
186186msgstr "Gwelet pep tra"
187187
188−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
188+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
189189#: qml/Panel/SearchIndicator.qml:27
190190msgid "Search"
191191msgstr "Klask"
192192
193−#: qml/Dash/PageHeader.qml:268
193+#: qml/Dash/PageHeader.qml:260
194+msgid "Store"
195+msgstr "Enrollañ"
196+
197+#: qml/Dash/PageHeader.qml:277
194198msgid "Settings"
195199msgstr "Arventennoù"
196200
197−#: qml/Dash/PageHeader.qml:275
201+#: qml/Dash/PageHeader.qml:284
198202msgid "Remove from Favorites"
199203msgstr "Lemel eus ar sinedoù"
200204
201−#: qml/Dash/PageHeader.qml:275
205+#: qml/Dash/PageHeader.qml:284
202206msgid "Add to Favorites"
203207msgstr "Ouzhpennañ d'ar sinedoù"
204208
@@ -230,31 +234,23 @@ msgstr "Tennañ evit freskaat..."
230234msgid "Release to refresh…"
231235msgstr "Lezel da vont evit freskaat..."
232236
233−#: qml/Dash/ScopesOverview.qml:215
234−msgid "Manage Scopes"
235−msgstr "Merañ ar c'hefluskerioù enklask"
236−
237−#: qml/Dash/ScopesOverview.qml:437
238−msgid "Done"
239−msgstr "Graet eo"
240−
241−#: qml/Dash/ScopesOverview.qml:463
242−msgid "Store"
243−msgstr "Enrollañ"
237+#: qml/Dash/ScopesList.qml:63
238+msgid "Manage"
239+msgstr ""
244240
245−#: qml/Dash/ScopesOverviewTab.qml:36
246−msgid "Favorites"
247−msgstr "Gwellañ deuet"
241+#: qml/Dash/ScopesList.qml:105
242+msgid "Home"
243+msgstr ""
248244
249−#: qml/Dash/ScopesOverviewTab.qml:54
250−msgid "All"
251−msgstr "An holl anezho"
245+#: qml/Dash/ScopesList.qml:106
246+msgid "Also installed"
247+msgstr ""
252248
253249#: qml/Greeter/Greeter.qml:174
254250msgid "Unlock"
255251msgstr "Dibrennañ"
256252
257−#: qml/Notifications/NotificationMenuItemFactory.qml:116
253+#: qml/Notifications/NotificationMenuItemFactory.qml:128
258254msgid "Show password"
259255msgstr "Diskouez ar ger-tremen"
260256
@@ -302,49 +298,49 @@ msgstr "Dibrennañ ar gartenn SIM"
302298msgid "Roaming"
303299msgstr "O kantren"
304300
305−#: qml/Shell.qml:391
301+#: qml/Shell.qml:390
306302msgid "Enter passphrase"
307303msgstr "Merkañ ar frazenn-dremen"
308304
309−#: qml/Shell.qml:392
305+#: qml/Shell.qml:391
310306msgid "Sorry, incorrect passphrase"
311307msgstr "Siwazh, frazenn-dremen direizh"
312308
313−#: qml/Shell.qml:393
309+#: qml/Shell.qml:392
314310msgid "Please re-enter"
315311msgstr "Adverkañ, mar plij"
316312
317−#: qml/Shell.qml:395
313+#: qml/Shell.qml:394
318314msgid "Enter passcode"
319315msgstr "Merkañ ar c'hod-tremen"
320316
321−#: qml/Shell.qml:396
317+#: qml/Shell.qml:395
322318msgid "Sorry, incorrect passcode"
323319msgstr "Digarezit, kod-tremen direizh"
324320
325−#: qml/Shell.qml:399
321+#: qml/Shell.qml:398
326322#, qt-format
327323msgid "Enter %1"
328324msgstr "Merkañ %1"
329325
330−#: qml/Shell.qml:400
326+#: qml/Shell.qml:399
331327#, qt-format
332328msgid "Sorry, incorrect %1"
333329msgstr "Siwazh, %1 direizh"
334330
335−#: qml/Shell.qml:441
331+#: qml/Shell.qml:440
336332msgid "Sorry, incorrect passphrase."
337333msgstr "Siwazh, frazenn-dremen direizh"
338334
339−#: qml/Shell.qml:442
335+#: qml/Shell.qml:441
340336msgid "Sorry, incorrect passcode."
341337msgstr "Siwazh, kod-tremen direizh"
342338
343−#: qml/Shell.qml:443
339+#: qml/Shell.qml:442
344340msgid "This will be your last attempt."
345341msgstr "Ho taol-esae diwezhañ e vo."
346342
347−#: qml/Shell.qml:445
343+#: qml/Shell.qml:444
348344msgid ""
349345"If passphrase is entered incorrectly, your phone will conduct a factory "
350346"reset and all personal data will be deleted."
@@ -352,7 +348,7 @@ msgstr ""
352348"Ma vez ebarzhet ur frazenn-dremen direizh, e vo adderaouekaet ho pellgomzer "
353349"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel"
354350
355−#: qml/Shell.qml:446
351+#: qml/Shell.qml:445
356352msgid ""
357353"If passcode is entered incorrectly, your phone will conduct a factory reset "
358354"and all personal data will be deleted."
@@ -374,3 +370,15 @@ msgstr ""
374370
375371#~ msgid "Type or say a command"
376372#~ msgstr "Skrivit pe lavarit un urzhiad"
373+
374+#~ msgid "Done"
375+#~ msgstr "Graet eo"
376+
377+#~ msgid "All"
378+#~ msgstr "An holl anezho"
379+
380+#~ msgid "Favorites"
381+#~ msgstr "Gwellañ deuet"
382+
383+#~ msgid "Manage Scopes"
384+#~ msgstr "Merañ ar c'hefluskerioù enklask"
po/bs.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-16 22:33+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -173,20 +173,24 @@ msgstr ""
173173msgid "See all"
174174msgstr ""
175175
176−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
176+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
177177#: qml/Panel/SearchIndicator.qml:27
178178msgid "Search"
179179msgstr ""
180180
181−#: qml/Dash/PageHeader.qml:268
181+#: qml/Dash/PageHeader.qml:260
182+msgid "Store"
183+msgstr ""
184+
185+#: qml/Dash/PageHeader.qml:277
182186msgid "Settings"
183187msgstr ""
184188
185−#: qml/Dash/PageHeader.qml:275
189+#: qml/Dash/PageHeader.qml:284
186190msgid "Remove from Favorites"
187191msgstr ""
188192
189−#: qml/Dash/PageHeader.qml:275
193+#: qml/Dash/PageHeader.qml:284
190194msgid "Add to Favorites"
191195msgstr ""
192196
@@ -218,31 +222,23 @@ msgstr ""
218222msgid "Release to refresh…"
219223msgstr ""
220224
221−#: qml/Dash/ScopesOverview.qml:215
222−msgid "Manage Scopes"
225+#: qml/Dash/ScopesList.qml:63
226+msgid "Manage"
223227msgstr ""
224228
225−#: qml/Dash/ScopesOverview.qml:437
226−msgid "Done"
227−msgstr ""
228−
229−#: qml/Dash/ScopesOverview.qml:463
230−msgid "Store"
229+#: qml/Dash/ScopesList.qml:105
230+msgid "Home"
231231msgstr ""
232232
233−#: qml/Dash/ScopesOverviewTab.qml:36
234−msgid "Favorites"
235−msgstr ""
236−
237−#: qml/Dash/ScopesOverviewTab.qml:54
238−msgid "All"
233+#: qml/Dash/ScopesList.qml:106
234+msgid "Also installed"
239235msgstr ""
240236
241237#: qml/Greeter/Greeter.qml:174
242238msgid "Unlock"
243239msgstr ""
244240
245−#: qml/Notifications/NotificationMenuItemFactory.qml:116
241+#: qml/Notifications/NotificationMenuItemFactory.qml:128
246242msgid "Show password"
247243msgstr ""
248244
@@ -290,55 +286,55 @@ msgstr ""
290286msgid "Roaming"
291287msgstr ""
292288
293−#: qml/Shell.qml:391
289+#: qml/Shell.qml:390
294290msgid "Enter passphrase"
295291msgstr ""
296292
297−#: qml/Shell.qml:392
293+#: qml/Shell.qml:391
298294msgid "Sorry, incorrect passphrase"
299295msgstr ""
300296
301−#: qml/Shell.qml:393
297+#: qml/Shell.qml:392
302298msgid "Please re-enter"
303299msgstr ""
304300
305−#: qml/Shell.qml:395
301+#: qml/Shell.qml:394
306302msgid "Enter passcode"
307303msgstr ""
308304
309−#: qml/Shell.qml:396
305+#: qml/Shell.qml:395
310306msgid "Sorry, incorrect passcode"
311307msgstr ""
312308
313−#: qml/Shell.qml:399
309+#: qml/Shell.qml:398
314310#, qt-format
315311msgid "Enter %1"
316312msgstr ""
317313
318−#: qml/Shell.qml:400
314+#: qml/Shell.qml:399
319315#, qt-format
320316msgid "Sorry, incorrect %1"
321317msgstr ""
322318
323−#: qml/Shell.qml:441
319+#: qml/Shell.qml:440
324320msgid "Sorry, incorrect passphrase."
325321msgstr ""
326322
327−#: qml/Shell.qml:442
323+#: qml/Shell.qml:441
328324msgid "Sorry, incorrect passcode."
329325msgstr ""
330326
331−#: qml/Shell.qml:443
327+#: qml/Shell.qml:442
332328msgid "This will be your last attempt."
333329msgstr ""
334330
335−#: qml/Shell.qml:445
331+#: qml/Shell.qml:444
336332msgid ""
337333"If passphrase is entered incorrectly, your phone will conduct a factory "
338334"reset and all personal data will be deleted."
339335msgstr ""
340336
341−#: qml/Shell.qml:446
337+#: qml/Shell.qml:445
342338msgid ""
343339"If passcode is entered incorrectly, your phone will conduct a factory reset "
344340"and all personal data will be deleted."
po/ca.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-10 09:22+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-11 07:11+0000\n"
19−"X-Generator: Launchpad (build 17241)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -186,20 +186,24 @@ msgstr "Mostra'n menys"
186186msgid "See all"
187187msgstr "Mostra-ho tot"
188188
189−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
189+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
190190#: qml/Panel/SearchIndicator.qml:27
191191msgid "Search"
192192msgstr "Cerca"
193193
194−#: qml/Dash/PageHeader.qml:268
194+#: qml/Dash/PageHeader.qml:260
195+msgid "Store"
196+msgstr "Botiga"
197+
198+#: qml/Dash/PageHeader.qml:277
195199msgid "Settings"
196200msgstr "Paràmetres"
197201
198−#: qml/Dash/PageHeader.qml:275
202+#: qml/Dash/PageHeader.qml:284
199203msgid "Remove from Favorites"
200204msgstr "Suprimeix dels preferits"
201205
202−#: qml/Dash/PageHeader.qml:275
206+#: qml/Dash/PageHeader.qml:284
203207msgid "Add to Favorites"
204208msgstr "Afegeix als preferits"
205209
@@ -231,31 +235,23 @@ msgstr "Estireu per actualitzar..."
231235msgid "Release to refresh…"
232236msgstr "Deixeu anar per actualitzar..."
233237
234−#: qml/Dash/ScopesOverview.qml:215
235−msgid "Manage Scopes"
236−msgstr "Gestioneu les lents"
237−
238−#: qml/Dash/ScopesOverview.qml:437
239−msgid "Done"
240−msgstr "Fet"
241−
242−#: qml/Dash/ScopesOverview.qml:463
243−msgid "Store"
244−msgstr "Botiga"
238+#: qml/Dash/ScopesList.qml:63
239+msgid "Manage"
240+msgstr ""
245241
246−#: qml/Dash/ScopesOverviewTab.qml:36
247−msgid "Favorites"
248−msgstr "Preferides"
242+#: qml/Dash/ScopesList.qml:105
243+msgid "Home"
244+msgstr ""
249245
250−#: qml/Dash/ScopesOverviewTab.qml:54
251−msgid "All"
252−msgstr "Totes"
246+#: qml/Dash/ScopesList.qml:106
247+msgid "Also installed"
248+msgstr ""
253249
254250#: qml/Greeter/Greeter.qml:174
255251msgid "Unlock"
256252msgstr "Desbloca"
257253
258−#: qml/Notifications/NotificationMenuItemFactory.qml:116
254+#: qml/Notifications/NotificationMenuItemFactory.qml:128
259255msgid "Show password"
260256msgstr "Mostra la contrasenya"
261257
@@ -303,49 +299,49 @@ msgstr "Desbloca la SIM"
303299msgid "Roaming"
304300msgstr "Itinerància"
305301
306−#: qml/Shell.qml:391
302+#: qml/Shell.qml:390
307303msgid "Enter passphrase"
308304msgstr "Introduïu la contrasenya"
309305
310−#: qml/Shell.qml:392
306+#: qml/Shell.qml:391
311307msgid "Sorry, incorrect passphrase"
312308msgstr "La contrasenya no és correcta"
313309
314−#: qml/Shell.qml:393
310+#: qml/Shell.qml:392
315311msgid "Please re-enter"
316312msgstr "Torneu-ho a introduir"
317313
318−#: qml/Shell.qml:395
314+#: qml/Shell.qml:394
319315msgid "Enter passcode"
320316msgstr "Introduïu el codi d'accés"
321317
322−#: qml/Shell.qml:396
318+#: qml/Shell.qml:395
323319msgid "Sorry, incorrect passcode"
324320msgstr "El codi d'accés no és correcte"
325321
326−#: qml/Shell.qml:399
322+#: qml/Shell.qml:398
327323#, qt-format
328324msgid "Enter %1"
329325msgstr "Introduïu: %1"
330326
331−#: qml/Shell.qml:400
327+#: qml/Shell.qml:399
332328#, qt-format
333329msgid "Sorry, incorrect %1"
334330msgstr "Incorrecte (%1)"
335331
336−#: qml/Shell.qml:441
332+#: qml/Shell.qml:440
337333msgid "Sorry, incorrect passphrase."
338334msgstr "La contrasenya és incorrecta"
339335
340−#: qml/Shell.qml:442
336+#: qml/Shell.qml:441
341337msgid "Sorry, incorrect passcode."
342338msgstr "El codi d'accés no és correcte"
343339
344−#: qml/Shell.qml:443
340+#: qml/Shell.qml:442
345341msgid "This will be your last attempt."
346342msgstr "Aquest serà el darrer intent."
347343
348−#: qml/Shell.qml:445
344+#: qml/Shell.qml:444
349345msgid ""
350346"If passphrase is entered incorrectly, your phone will conduct a factory "
351347"reset and all personal data will be deleted."
@@ -354,7 +350,7 @@ msgstr ""
354350"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
355351"personals."
356352
357−#: qml/Shell.qml:446
353+#: qml/Shell.qml:445
358354msgid ""
359355"If passcode is entered incorrectly, your phone will conduct a factory reset "
360356"and all personal data will be deleted."
@@ -377,3 +373,15 @@ msgstr ""
377373
378374#~ msgid "Speaking..."
379375#~ msgstr "S'està parlant..."
376+
377+#~ msgid "Done"
378+#~ msgstr "Fet"
379+
380+#~ msgid "Favorites"
381+#~ msgstr "Preferides"
382+
383+#~ msgid "All"
384+#~ msgstr "Totes"
385+
386+#~ msgid "Manage Scopes"
387+#~ msgstr "Gestioneu les lents"
po/ca@valencia.po+52−44
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-23 07:17+0000\n"
1212"Last-Translator: Pau Iranzo <Unknown>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-24 06:20+0000\n"
19−"X-Generator: Launchpad (build 17252)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -186,20 +186,24 @@ msgstr "Mostra'n menys"
186186msgid "See all"
187187msgstr "Mostra-ho tot"
188188
189−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
189+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
190190#: qml/Panel/SearchIndicator.qml:27
191191msgid "Search"
192192msgstr "Cerca"
193193
194−#: qml/Dash/PageHeader.qml:268
194+#: qml/Dash/PageHeader.qml:260
195+msgid "Store"
196+msgstr "Botiga"
197+
198+#: qml/Dash/PageHeader.qml:277
195199msgid "Settings"
196200msgstr "Paràmetres"
197201
198−#: qml/Dash/PageHeader.qml:275
202+#: qml/Dash/PageHeader.qml:284
199203msgid "Remove from Favorites"
200204msgstr "Suprimeix dels preferits"
201205
202−#: qml/Dash/PageHeader.qml:275
206+#: qml/Dash/PageHeader.qml:284
203207msgid "Add to Favorites"
204208msgstr "Afig als preferits"
205209
@@ -231,31 +235,23 @@ msgstr "Estireu per actualitzar..."
231235msgid "Release to refresh…"
232236msgstr "Deixeu anar per actualitzar..."
233237
234−#: qml/Dash/ScopesOverview.qml:215
235−msgid "Manage Scopes"
236−msgstr "Gestioneu les lents"
237−
238−#: qml/Dash/ScopesOverview.qml:437
239−msgid "Done"
240−msgstr "Fet"
241−
242−#: qml/Dash/ScopesOverview.qml:463
243−msgid "Store"
244−msgstr "Botiga"
238+#: qml/Dash/ScopesList.qml:63
239+msgid "Manage"
240+msgstr ""
245241
246−#: qml/Dash/ScopesOverviewTab.qml:36
247−msgid "Favorites"
248−msgstr "Preferides"
242+#: qml/Dash/ScopesList.qml:105
243+msgid "Home"
244+msgstr ""
249245
250−#: qml/Dash/ScopesOverviewTab.qml:54
251−msgid "All"
252−msgstr "Totes"
246+#: qml/Dash/ScopesList.qml:106
247+msgid "Also installed"
248+msgstr ""
253249
254250#: qml/Greeter/Greeter.qml:174
255251msgid "Unlock"
256252msgstr "Desbloca"
257253
258−#: qml/Notifications/NotificationMenuItemFactory.qml:116
254+#: qml/Notifications/NotificationMenuItemFactory.qml:128
259255msgid "Show password"
260256msgstr "Mostra la contrasenya"
261257
@@ -267,31 +263,31 @@ msgstr "Feu un toc per tornar a la cridada..."
267263msgid "Conference"
268264msgstr "Conferència"
269265
270−#: qml/Panel/Indicators/MenuItemFactory.qml:615
266+#: qml/Panel/Indicators/MenuItemFactory.qml:643
271267msgid "Nothing is playing"
272268msgstr "No s'està reproduint res"
273269
274−#: qml/Panel/Indicators/MenuItemFactory.qml:763
270+#: qml/Panel/Indicators/MenuItemFactory.qml:791
275271msgid "In queue…"
276272msgstr "A la cua..."
277273
278−#: qml/Panel/Indicators/MenuItemFactory.qml:767
274+#: qml/Panel/Indicators/MenuItemFactory.qml:795
279275msgid "Downloading"
280276msgstr "S'està baixant"
281277
282−#: qml/Panel/Indicators/MenuItemFactory.qml:769
278+#: qml/Panel/Indicators/MenuItemFactory.qml:797
283279msgid "Paused, tap to resume"
284280msgstr "En pausa, feu un toc per continuar"
285281
286−#: qml/Panel/Indicators/MenuItemFactory.qml:771
282+#: qml/Panel/Indicators/MenuItemFactory.qml:799
287283msgid "Canceled"
288284msgstr "S'ha cancel·lat"
289285
290−#: qml/Panel/Indicators/MenuItemFactory.qml:773
286+#: qml/Panel/Indicators/MenuItemFactory.qml:801
291287msgid "Finished"
292288msgstr "S'ha finalitzat"
293289
294−#: qml/Panel/Indicators/MenuItemFactory.qml:775
290+#: qml/Panel/Indicators/MenuItemFactory.qml:803
295291msgid "Failed, tap to retry"
296292msgstr "Ha fallat, feu un toc per tornar-ho a intentar"
297293
@@ -303,49 +299,49 @@ msgstr "Desbloca la SIM"
303299msgid "Roaming"
304300msgstr "Itinerància"
305301
306−#: qml/Shell.qml:381
302+#: qml/Shell.qml:390
307303msgid "Enter passphrase"
308304msgstr "Introduïu la contrasenya"
309305
310−#: qml/Shell.qml:382
306+#: qml/Shell.qml:391
311307msgid "Sorry, incorrect passphrase"
312308msgstr "La contrasenya no és correcta"
313309
314−#: qml/Shell.qml:383
310+#: qml/Shell.qml:392
315311msgid "Please re-enter"
316312msgstr "Torneu-ho a introduir"
317313
318−#: qml/Shell.qml:385
314+#: qml/Shell.qml:394
319315msgid "Enter passcode"
320316msgstr "Introduïu el codi d'accés"
321317
322−#: qml/Shell.qml:386
318+#: qml/Shell.qml:395
323319msgid "Sorry, incorrect passcode"
324320msgstr "El codi d'accés no és correcte"
325321
326−#: qml/Shell.qml:389
322+#: qml/Shell.qml:398
327323#, qt-format
328324msgid "Enter %1"
329325msgstr "Introduïu: %1"
330326
331−#: qml/Shell.qml:390
327+#: qml/Shell.qml:399
332328#, qt-format
333329msgid "Sorry, incorrect %1"
334330msgstr "Incorrecte (%1)"
335331
336−#: qml/Shell.qml:431
332+#: qml/Shell.qml:440
337333msgid "Sorry, incorrect passphrase."
338334msgstr "La contrasenya és incorrecta"
339335
340−#: qml/Shell.qml:432
336+#: qml/Shell.qml:441
341337msgid "Sorry, incorrect passcode."
342338msgstr "El codi d'accés no és correcte"
343339
344−#: qml/Shell.qml:433
340+#: qml/Shell.qml:442
345341msgid "This will be your last attempt."
346342msgstr "Este serà el darrer intent."
347343
348−#: qml/Shell.qml:435
344+#: qml/Shell.qml:444
349345msgid ""
350346"If passphrase is entered incorrectly, your phone will conduct a factory "
351347"reset and all personal data will be deleted."
@@ -354,7 +350,7 @@ msgstr ""
354350"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
355351"personals."
356352
357−#: qml/Shell.qml:436
353+#: qml/Shell.qml:445
358354msgid ""
359355"If passcode is entered incorrectly, your phone will conduct a factory reset "
360356"and all personal data will be deleted."
@@ -363,6 +359,18 @@ msgstr ""
363359"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
364360"personals."
365361
362+#~ msgid "Manage Scopes"
363+#~ msgstr "Gestioneu les lents"
364+
365+#~ msgid "Done"
366+#~ msgstr "Fet"
367+
368+#~ msgid "Favorites"
369+#~ msgstr "Preferides"
370+
371+#~ msgid "All"
372+#~ msgstr "Totes"
373+
366374#~ msgid "Confirm"
367375#~ msgstr "Confirma"
368376
po/ckb.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-21 11:05+0000\n"
1212"Last-Translator: Aras <aras.noori@gmail.com>\n"
1313"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "گەڕان"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "تێپەڕەوشە پیشان بدە"
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/cs.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-08 10:11+0000\n"
1212"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
1313"Language-Team: Czech <cs@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "Hledat"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "Zobrazit heslo"
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/da.po+30−34
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
11+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1212"PO-Revision-Date: 2014-07-30 12:37+0000\n"
1313"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
1414"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -175,20 +175,24 @@ msgstr "Vis mindre"
175175msgid "See all"
176176msgstr "Se alle"
177177
178−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
179179#: qml/Panel/SearchIndicator.qml:27
180180msgid "Search"
181181msgstr "Søg"
182182
183−#: qml/Dash/PageHeader.qml:268
183+#: qml/Dash/PageHeader.qml:260
184+msgid "Store"
185+msgstr ""
186+
187+#: qml/Dash/PageHeader.qml:277
184188msgid "Settings"
185189msgstr ""
186190
187−#: qml/Dash/PageHeader.qml:275
191+#: qml/Dash/PageHeader.qml:284
188192msgid "Remove from Favorites"
189193msgstr ""
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Add to Favorites"
193197msgstr ""
194198
@@ -220,31 +224,23 @@ msgstr ""
220224msgid "Release to refresh…"
221225msgstr ""
222226
223−#: qml/Dash/ScopesOverview.qml:215
224−msgid "Manage Scopes"
227+#: qml/Dash/ScopesList.qml:63
228+msgid "Manage"
225229msgstr ""
226230
227−#: qml/Dash/ScopesOverview.qml:437
228−msgid "Done"
229−msgstr ""
230−
231−#: qml/Dash/ScopesOverview.qml:463
232−msgid "Store"
231+#: qml/Dash/ScopesList.qml:105
232+msgid "Home"
233233msgstr ""
234234
235−#: qml/Dash/ScopesOverviewTab.qml:36
236−msgid "Favorites"
237−msgstr ""
238−
239−#: qml/Dash/ScopesOverviewTab.qml:54
240−msgid "All"
235+#: qml/Dash/ScopesList.qml:106
236+msgid "Also installed"
241237msgstr ""
242238
243239#: qml/Greeter/Greeter.qml:174
244240msgid "Unlock"
245241msgstr ""
246242
247−#: qml/Notifications/NotificationMenuItemFactory.qml:116
243+#: qml/Notifications/NotificationMenuItemFactory.qml:128
248244msgid "Show password"
249245msgstr "Vis adgangskode"
250246
@@ -292,55 +288,55 @@ msgstr ""
292288msgid "Roaming"
293289msgstr ""
294290
295−#: qml/Shell.qml:391
291+#: qml/Shell.qml:390
296292msgid "Enter passphrase"
297293msgstr ""
298294
299−#: qml/Shell.qml:392
295+#: qml/Shell.qml:391
300296msgid "Sorry, incorrect passphrase"
301297msgstr ""
302298
303−#: qml/Shell.qml:393
299+#: qml/Shell.qml:392
304300msgid "Please re-enter"
305301msgstr ""
306302
307−#: qml/Shell.qml:395
303+#: qml/Shell.qml:394
308304msgid "Enter passcode"
309305msgstr ""
310306
311−#: qml/Shell.qml:396
307+#: qml/Shell.qml:395
312308msgid "Sorry, incorrect passcode"
313309msgstr ""
314310
315−#: qml/Shell.qml:399
311+#: qml/Shell.qml:398
316312#, qt-format
317313msgid "Enter %1"
318314msgstr ""
319315
320−#: qml/Shell.qml:400
316+#: qml/Shell.qml:399
321317#, qt-format
322318msgid "Sorry, incorrect %1"
323319msgstr ""
324320
325−#: qml/Shell.qml:441
321+#: qml/Shell.qml:440
326322msgid "Sorry, incorrect passphrase."
327323msgstr ""
328324
329−#: qml/Shell.qml:442
325+#: qml/Shell.qml:441
330326msgid "Sorry, incorrect passcode."
331327msgstr ""
332328
333−#: qml/Shell.qml:443
329+#: qml/Shell.qml:442
334330msgid "This will be your last attempt."
335331msgstr ""
336332
337−#: qml/Shell.qml:445
333+#: qml/Shell.qml:444
338334msgid ""
339335"If passphrase is entered incorrectly, your phone will conduct a factory "
340336"reset and all personal data will be deleted."
341337msgstr ""
342338
343−#: qml/Shell.qml:446
339+#: qml/Shell.qml:445
344340msgid ""
345341"If passcode is entered incorrectly, your phone will conduct a factory reset "
346342"and all personal data will be deleted."
po/de.po+46−38
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-10-21 11:26+0000\n"
1212"Last-Translator: Alexander Dobetsberger <Unknown>\n"
1313"Language-Team: German <de@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -165,7 +165,7 @@ msgstr ""
165165
166166#: qml/Components/Lockscreen.qml:223
167167msgid "Return to Call"
168−msgstr ""
168+msgstr "Zu Anruf zurückkehren"
169169
170170#: qml/Components/Lockscreen.qml:223
171171msgid "Emergency Call"
@@ -183,20 +183,24 @@ msgstr "Weniger ansehen"
183183msgid "See all"
184184msgstr "Alle anzeigen"
185185
186−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
186+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
187187#: qml/Panel/SearchIndicator.qml:27
188188msgid "Search"
189189msgstr "Suchen"
190190
191−#: qml/Dash/PageHeader.qml:268
191+#: qml/Dash/PageHeader.qml:260
192+msgid "Store"
193+msgstr "Store"
194+
195+#: qml/Dash/PageHeader.qml:277
192196msgid "Settings"
193197msgstr "Einstellungen"
194198
195−#: qml/Dash/PageHeader.qml:275
199+#: qml/Dash/PageHeader.qml:284
196200msgid "Remove from Favorites"
197201msgstr "Aus den Favoriten entfernen"
198202
199−#: qml/Dash/PageHeader.qml:275
203+#: qml/Dash/PageHeader.qml:284
200204msgid "Add to Favorites"
201205msgstr "Zu Favoriten hinzufügen"
202206
@@ -228,31 +232,23 @@ msgstr "Zum Aktualisieren ziehen …"
228232msgid "Release to refresh…"
229233msgstr "Zum Aktualisieren loslassen …"
230234
231−#: qml/Dash/ScopesOverview.qml:215
232−msgid "Manage Scopes"
233−msgstr "Filter verwalten"
234−
235−#: qml/Dash/ScopesOverview.qml:437
236−msgid "Done"
237−msgstr "Erledigt"
238−
239−#: qml/Dash/ScopesOverview.qml:463
240−msgid "Store"
241−msgstr "Store"
235+#: qml/Dash/ScopesList.qml:63
236+msgid "Manage"
237+msgstr ""
242238
243−#: qml/Dash/ScopesOverviewTab.qml:36
244−msgid "Favorites"
245−msgstr "Favoriten"
239+#: qml/Dash/ScopesList.qml:105
240+msgid "Home"
241+msgstr ""
246242
247−#: qml/Dash/ScopesOverviewTab.qml:54
248−msgid "All"
249−msgstr "Alle"
243+#: qml/Dash/ScopesList.qml:106
244+msgid "Also installed"
245+msgstr ""
250246
251247#: qml/Greeter/Greeter.qml:174
252248msgid "Unlock"
253249msgstr "Entsperren"
254250
255−#: qml/Notifications/NotificationMenuItemFactory.qml:116
251+#: qml/Notifications/NotificationMenuItemFactory.qml:128
256252msgid "Show password"
257253msgstr "Passwort anzeigen"
258254
@@ -300,49 +296,49 @@ msgstr "SIM-Karte entsperren"
300296msgid "Roaming"
301297msgstr "Roaming"
302298
303−#: qml/Shell.qml:391
299+#: qml/Shell.qml:390
304300msgid "Enter passphrase"
305301msgstr "Passwort eingeben"
306302
307−#: qml/Shell.qml:392
303+#: qml/Shell.qml:391
308304msgid "Sorry, incorrect passphrase"
309305msgstr "Das Passwort ist nicht korrekt"
310306
311−#: qml/Shell.qml:393
307+#: qml/Shell.qml:392
312308msgid "Please re-enter"
313309msgstr "Bitte erneut eingeben"
314310
315−#: qml/Shell.qml:395
311+#: qml/Shell.qml:394
316312msgid "Enter passcode"
317313msgstr "PIN eingeben"
318314
319−#: qml/Shell.qml:396
315+#: qml/Shell.qml:395
320316msgid "Sorry, incorrect passcode"
321317msgstr "Falsches Passwort"
322318
323−#: qml/Shell.qml:399
319+#: qml/Shell.qml:398
324320#, qt-format
325321msgid "Enter %1"
326322msgstr "%1 eingeben"
327323
328−#: qml/Shell.qml:400
324+#: qml/Shell.qml:399
329325#, qt-format
330326msgid "Sorry, incorrect %1"
331327msgstr "%1 falsch"
332328
333−#: qml/Shell.qml:441
329+#: qml/Shell.qml:440
334330msgid "Sorry, incorrect passphrase."
335331msgstr "Entschuldigung, falsches Passwort."
336332
337−#: qml/Shell.qml:442
333+#: qml/Shell.qml:441
338334msgid "Sorry, incorrect passcode."
339335msgstr "Falsche PIN"
340336
341−#: qml/Shell.qml:443
337+#: qml/Shell.qml:442
342338msgid "This will be your last attempt."
343339msgstr "Dies ist Ihr letzter Versuch."
344340
345−#: qml/Shell.qml:445
341+#: qml/Shell.qml:444
346342msgid ""
347343"If passphrase is entered incorrectly, your phone will conduct a factory "
348344"reset and all personal data will be deleted."
@@ -350,7 +346,7 @@ msgstr ""
350346"Wird das Passwort falsch eingegeben, wird das Telefon auf den Werkszustand "
351347"zurückgesetzt und alle Daten werden gelöscht."
352348
353−#: qml/Shell.qml:446
349+#: qml/Shell.qml:445
354350msgid ""
355351"If passcode is entered incorrectly, your phone will conduct a factory reset "
356352"and all personal data will be deleted."
@@ -372,3 +368,15 @@ msgstr ""
372368
373369#~ msgid "Speaking..."
374370#~ msgstr "Sprechen Sie …"
371+
372+#~ msgid "All"
373+#~ msgstr "Alle"
374+
375+#~ msgid "Done"
376+#~ msgstr "Erledigt"
377+
378+#~ msgid "Favorites"
379+#~ msgstr "Favoriten"
380+
381+#~ msgid "Manage Scopes"
382+#~ msgstr "Filter verwalten"
po/el.po+42−37
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-08 18:38+0000\n"
12−"Last-Translator: Stathis Iosifidis <Unknown>\n"
12+"Last-Translator: Efstathios Iosifidis <Unknown>\n"
1313"Language-Team: Greek <el@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -182,20 +182,24 @@ msgstr "Λιγότερα"
182182msgid "See all"
183183msgstr "Εμφάνιση όλων"
184184
185−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
185+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
186186#: qml/Panel/SearchIndicator.qml:27
187187msgid "Search"
188188msgstr "Αναζήτηση"
189189
190−#: qml/Dash/PageHeader.qml:268
190+#: qml/Dash/PageHeader.qml:260
191+msgid "Store"
192+msgstr "Κατάστημα"
193+
194+#: qml/Dash/PageHeader.qml:277
191195msgid "Settings"
192196msgstr "Ρυθμίσεις"
193197
194−#: qml/Dash/PageHeader.qml:275
198+#: qml/Dash/PageHeader.qml:284
195199msgid "Remove from Favorites"
196200msgstr "Αφαίρεση από τα αγαπημένα"
197201
198−#: qml/Dash/PageHeader.qml:275
202+#: qml/Dash/PageHeader.qml:284
199203msgid "Add to Favorites"
200204msgstr "Προσθήκη στα αγαπημένα"
201205
@@ -227,31 +231,23 @@ msgstr ""
227231msgid "Release to refresh…"
228232msgstr ""
229233
230−#: qml/Dash/ScopesOverview.qml:215
231−msgid "Manage Scopes"
234+#: qml/Dash/ScopesList.qml:63
235+msgid "Manage"
232236msgstr ""
233237
234−#: qml/Dash/ScopesOverview.qml:437
235−msgid "Done"
236−msgstr "Ολοκληρώθηκε"
237−
238−#: qml/Dash/ScopesOverview.qml:463
239−msgid "Store"
240−msgstr "Κατάστημα"
241−
242−#: qml/Dash/ScopesOverviewTab.qml:36
243−msgid "Favorites"
244−msgstr "Αγαπημένα"
238+#: qml/Dash/ScopesList.qml:105
239+msgid "Home"
240+msgstr ""
245241
246−#: qml/Dash/ScopesOverviewTab.qml:54
247−msgid "All"
248−msgstr "Όλα"
242+#: qml/Dash/ScopesList.qml:106
243+msgid "Also installed"
244+msgstr ""
249245
250246#: qml/Greeter/Greeter.qml:174
251247msgid "Unlock"
252248msgstr "Ξεκλείδωμα"
253249
254−#: qml/Notifications/NotificationMenuItemFactory.qml:116
250+#: qml/Notifications/NotificationMenuItemFactory.qml:128
255251msgid "Show password"
256252msgstr "Εμφάνιση κωδικού"
257253
@@ -299,55 +295,55 @@ msgstr "Ξεκλείδωμα SIM"
299295msgid "Roaming"
300296msgstr "Περιαγωγή"
301297
302−#: qml/Shell.qml:391
298+#: qml/Shell.qml:390
303299msgid "Enter passphrase"
304300msgstr "Εισαγωγή συνθηματικού"
305301
306−#: qml/Shell.qml:392
302+#: qml/Shell.qml:391
307303msgid "Sorry, incorrect passphrase"
308304msgstr "Συγνώμη, μη έγκυρο συνθηματικό"
309305
310−#: qml/Shell.qml:393
306+#: qml/Shell.qml:392
311307msgid "Please re-enter"
312308msgstr "Παρακαλώ πληκτρολογήστε ξανά"
313309
314−#: qml/Shell.qml:395
310+#: qml/Shell.qml:394
315311msgid "Enter passcode"
316312msgstr "Εισαγωγή κωδικού"
317313
318−#: qml/Shell.qml:396
314+#: qml/Shell.qml:395
319315msgid "Sorry, incorrect passcode"
320316msgstr ""
321317
322−#: qml/Shell.qml:399
318+#: qml/Shell.qml:398
323319#, qt-format
324320msgid "Enter %1"
325321msgstr "Εισάγετε %1"
326322
327−#: qml/Shell.qml:400
323+#: qml/Shell.qml:399
328324#, qt-format
329325msgid "Sorry, incorrect %1"
330326msgstr "Συγνώμη, μη έγκυρο %1"
331327
332−#: qml/Shell.qml:441
328+#: qml/Shell.qml:440
333329msgid "Sorry, incorrect passphrase."
334330msgstr ""
335331
336−#: qml/Shell.qml:442
332+#: qml/Shell.qml:441
337333msgid "Sorry, incorrect passcode."
338334msgstr ""
339335
340−#: qml/Shell.qml:443
336+#: qml/Shell.qml:442
341337msgid "This will be your last attempt."
342338msgstr ""
343339
344−#: qml/Shell.qml:445
340+#: qml/Shell.qml:444
345341msgid ""
346342"If passphrase is entered incorrectly, your phone will conduct a factory "
347343"reset and all personal data will be deleted."
348344msgstr ""
349345
350−#: qml/Shell.qml:446
346+#: qml/Shell.qml:445
351347msgid ""
352348"If passcode is entered incorrectly, your phone will conduct a factory reset "
353349"and all personal data will be deleted."
@@ -367,3 +363,12 @@ msgstr ""
367363
368364#~ msgid "Loading. Please Wait..."
369365#~ msgstr "Γίνεται φόρτωση. Παρακαλώ περιμένετε..."
366+
367+#~ msgid "All"
368+#~ msgstr "Όλα"
369+
370+#~ msgid "Favorites"
371+#~ msgstr "Αγαπημένα"
372+
373+#~ msgid "Done"
374+#~ msgstr "Ολοκληρώθηκε"
po/en_AU.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-10-12 09:41+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -176,20 +176,24 @@ msgstr "See less"
176176msgid "See all"
177177msgstr "See all"
178178
179−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "Search"
183183
184−#: qml/Dash/PageHeader.qml:268
184+#: qml/Dash/PageHeader.qml:260
185+msgid "Store"
186+msgstr "Store"
187+
188+#: qml/Dash/PageHeader.qml:277
185189msgid "Settings"
186190msgstr "Settings"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Remove from Favorites"
190194msgstr "Remove from Favourites"
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Add to Favorites"
194198msgstr "Add to Favourites"
195199
@@ -221,31 +225,23 @@ msgstr "Pull to refresh…"
221225msgid "Release to refresh…"
222226msgstr "Release to refresh…"
223227
224−#: qml/Dash/ScopesOverview.qml:215
225−msgid "Manage Scopes"
226−msgstr "Manage Scopes"
227−
228−#: qml/Dash/ScopesOverview.qml:437
229−msgid "Done"
230−msgstr "Done"
231−
232−#: qml/Dash/ScopesOverview.qml:463
233−msgid "Store"
234−msgstr "Store"
228+#: qml/Dash/ScopesList.qml:63
229+msgid "Manage"
230+msgstr ""
235231
236−#: qml/Dash/ScopesOverviewTab.qml:36
237−msgid "Favorites"
238−msgstr "Favourites"
232+#: qml/Dash/ScopesList.qml:105
233+msgid "Home"
234+msgstr ""
239235
240−#: qml/Dash/ScopesOverviewTab.qml:54
241−msgid "All"
242−msgstr "All"
236+#: qml/Dash/ScopesList.qml:106
237+msgid "Also installed"
238+msgstr ""
243239
244240#: qml/Greeter/Greeter.qml:174
245241msgid "Unlock"
246242msgstr "Unlock"
247243
248−#: qml/Notifications/NotificationMenuItemFactory.qml:116
244+#: qml/Notifications/NotificationMenuItemFactory.qml:128
249245msgid "Show password"
250246msgstr "Show password"
251247
@@ -293,49 +289,49 @@ msgstr "Unlock SIM"
293289msgid "Roaming"
294290msgstr "Roaming"
295291
296−#: qml/Shell.qml:391
292+#: qml/Shell.qml:390
297293msgid "Enter passphrase"
298294msgstr "Enter passphrase"
299295
300−#: qml/Shell.qml:392
296+#: qml/Shell.qml:391
301297msgid "Sorry, incorrect passphrase"
302298msgstr "Sorry, incorrect passphrase"
303299
304−#: qml/Shell.qml:393
300+#: qml/Shell.qml:392
305301msgid "Please re-enter"
306302msgstr "Please re-enter"
307303
308−#: qml/Shell.qml:395
304+#: qml/Shell.qml:394
309305msgid "Enter passcode"
310306msgstr "Enter passcode"
311307
312−#: qml/Shell.qml:396
308+#: qml/Shell.qml:395
313309msgid "Sorry, incorrect passcode"
314310msgstr "Sorry, incorrect passcode"
315311
316−#: qml/Shell.qml:399
312+#: qml/Shell.qml:398
317313#, qt-format
318314msgid "Enter %1"
319315msgstr "Enter %1"
320316
321−#: qml/Shell.qml:400
317+#: qml/Shell.qml:399
322318#, qt-format
323319msgid "Sorry, incorrect %1"
324320msgstr "Sorry, incorrect %1"
325321
326−#: qml/Shell.qml:441
322+#: qml/Shell.qml:440
327323msgid "Sorry, incorrect passphrase."
328324msgstr "Sorry, incorrect passphrase."
329325
330−#: qml/Shell.qml:442
326+#: qml/Shell.qml:441
331327msgid "Sorry, incorrect passcode."
332328msgstr "Sorry, incorrect passcode."
333329
334−#: qml/Shell.qml:443
330+#: qml/Shell.qml:442
335331msgid "This will be your last attempt."
336332msgstr "This will be your last attempt."
337333
338−#: qml/Shell.qml:445
334+#: qml/Shell.qml:444
339335msgid ""
340336"If passphrase is entered incorrectly, your phone will conduct a factory "
341337"reset and all personal data will be deleted."
@@ -343,7 +339,7 @@ msgstr ""
343339"If passphrase is entered incorrectly, your phone will conduct a factory "
344340"reset and all personal data will be deleted."
345341
346−#: qml/Shell.qml:446
342+#: qml/Shell.qml:445
347343msgid ""
348344"If passcode is entered incorrectly, your phone will conduct a factory reset "
349345"and all personal data will be deleted."
@@ -365,3 +361,15 @@ msgstr ""
365361
366362#~ msgid "Speaking..."
367363#~ msgstr "Speaking..."
364+
365+#~ msgid "All"
366+#~ msgstr "All"
367+
368+#~ msgid "Favorites"
369+#~ msgstr "Favourites"
370+
371+#~ msgid "Done"
372+#~ msgstr "Done"
373+
374+#~ msgid "Manage Scopes"
375+#~ msgstr "Manage Scopes"
po/en_GB.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-05 18:59+0000\n"
1212"Last-Translator: Andi Chandler <Unknown>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -176,20 +176,24 @@ msgstr "See less"
176176msgid "See all"
177177msgstr "See all"
178178
179−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "Search"
183183
184−#: qml/Dash/PageHeader.qml:268
184+#: qml/Dash/PageHeader.qml:260
185+msgid "Store"
186+msgstr "Store"
187+
188+#: qml/Dash/PageHeader.qml:277
185189msgid "Settings"
186190msgstr "Settings"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Remove from Favorites"
190194msgstr "Remove from Favourites"
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Add to Favorites"
194198msgstr "Add to Favourites"
195199
@@ -221,31 +225,23 @@ msgstr "Pull to refresh…"
221225msgid "Release to refresh…"
222226msgstr "Release to refresh…"
223227
224−#: qml/Dash/ScopesOverview.qml:215
225−msgid "Manage Scopes"
226−msgstr "Manage Scopes"
227−
228−#: qml/Dash/ScopesOverview.qml:437
229−msgid "Done"
230−msgstr "Done"
231−
232−#: qml/Dash/ScopesOverview.qml:463
233−msgid "Store"
234−msgstr "Store"
228+#: qml/Dash/ScopesList.qml:63
229+msgid "Manage"
230+msgstr "Manage"
235231
236−#: qml/Dash/ScopesOverviewTab.qml:36
237−msgid "Favorites"
238−msgstr "Favourites"
232+#: qml/Dash/ScopesList.qml:105
233+msgid "Home"
234+msgstr "Home"
239235
240−#: qml/Dash/ScopesOverviewTab.qml:54
241−msgid "All"
242−msgstr "All"
236+#: qml/Dash/ScopesList.qml:106
237+msgid "Also installed"
238+msgstr "Also installed"
243239
244240#: qml/Greeter/Greeter.qml:174
245241msgid "Unlock"
246242msgstr "Unlock"
247243
248−#: qml/Notifications/NotificationMenuItemFactory.qml:116
244+#: qml/Notifications/NotificationMenuItemFactory.qml:128
249245msgid "Show password"
250246msgstr "Show password"
251247
@@ -293,49 +289,49 @@ msgstr "Unlock SIM"
293289msgid "Roaming"
294290msgstr "Roaming"
295291
296−#: qml/Shell.qml:391
292+#: qml/Shell.qml:390
297293msgid "Enter passphrase"
298294msgstr "Enter passphrase"
299295
300−#: qml/Shell.qml:392
296+#: qml/Shell.qml:391
301297msgid "Sorry, incorrect passphrase"
302298msgstr "Sorry, incorrect passphrase"
303299
304−#: qml/Shell.qml:393
300+#: qml/Shell.qml:392
305301msgid "Please re-enter"
306302msgstr "Please re-enter"
307303
308−#: qml/Shell.qml:395
304+#: qml/Shell.qml:394
309305msgid "Enter passcode"
310306msgstr "Enter passcode"
311307
312−#: qml/Shell.qml:396
308+#: qml/Shell.qml:395
313309msgid "Sorry, incorrect passcode"
314310msgstr "Sorry, incorrect passcode"
315311
316−#: qml/Shell.qml:399
312+#: qml/Shell.qml:398
317313#, qt-format
318314msgid "Enter %1"
319315msgstr "Enter %1"
320316
321−#: qml/Shell.qml:400
317+#: qml/Shell.qml:399
322318#, qt-format
323319msgid "Sorry, incorrect %1"
324320msgstr "Sorry, incorrect %1"
325321
326−#: qml/Shell.qml:441
322+#: qml/Shell.qml:440
327323msgid "Sorry, incorrect passphrase."
328324msgstr "Sorry, incorrect passphrase."
329325
330−#: qml/Shell.qml:442
326+#: qml/Shell.qml:441
331327msgid "Sorry, incorrect passcode."
332328msgstr "Sorry, incorrect passcode."
333329
334−#: qml/Shell.qml:443
330+#: qml/Shell.qml:442
335331msgid "This will be your last attempt."
336332msgstr "This will be your last attempt."
337333
338−#: qml/Shell.qml:445
334+#: qml/Shell.qml:444
339335msgid ""
340336"If passphrase is entered incorrectly, your phone will conduct a factory "
341337"reset and all personal data will be deleted."
@@ -343,7 +339,7 @@ msgstr ""
343339"If passphrase is entered incorrectly, your phone will conduct a factory "
344340"reset and all personal data will be deleted."
345341
346−#: qml/Shell.qml:446
342+#: qml/Shell.qml:445
347343msgid ""
348344"If passcode is entered incorrectly, your phone will conduct a factory reset "
349345"and all personal data will be deleted."
@@ -365,3 +361,15 @@ msgstr ""
365361
366362#~ msgid "Speaking..."
367363#~ msgstr "Speaking..."
364+
365+#~ msgid "All"
366+#~ msgstr "All"
367+
368+#~ msgid "Favorites"
369+#~ msgstr "Favourites"
370+
371+#~ msgid "Done"
372+#~ msgstr "Done"
373+
374+#~ msgid "Manage Scopes"
375+#~ msgstr "Manage Scopes"
po/eo.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/es.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-08 08:01+0000\n"
1212"Last-Translator: Paco Molinero <paco@byasl.com>\n"
1313"Language-Team: Spanish <es@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -183,20 +183,24 @@ msgstr "Ver menos"
183183msgid "See all"
184184msgstr "Ver todo"
185185
186−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
186+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
187187#: qml/Panel/SearchIndicator.qml:27
188188msgid "Search"
189189msgstr "Buscar"
190190
191−#: qml/Dash/PageHeader.qml:268
191+#: qml/Dash/PageHeader.qml:260
192+msgid "Store"
193+msgstr "Tienda"
194+
195+#: qml/Dash/PageHeader.qml:277
192196msgid "Settings"
193197msgstr "Configuración"
194198
195−#: qml/Dash/PageHeader.qml:275
199+#: qml/Dash/PageHeader.qml:284
196200msgid "Remove from Favorites"
197201msgstr "Quitar de favoritos"
198202
199−#: qml/Dash/PageHeader.qml:275
203+#: qml/Dash/PageHeader.qml:284
200204msgid "Add to Favorites"
201205msgstr "Añadir a favoritos"
202206
@@ -228,31 +232,23 @@ msgstr "Deslice para actualizar…"
228232msgid "Release to refresh…"
229233msgstr "Suelte para actualizar…"
230234
231−#: qml/Dash/ScopesOverview.qml:215
232−msgid "Manage Scopes"
233−msgstr "Administrar Scopes"
234−
235−#: qml/Dash/ScopesOverview.qml:437
236−msgid "Done"
237−msgstr "Hecho"
238−
239−#: qml/Dash/ScopesOverview.qml:463
240−msgid "Store"
241−msgstr "Tienda"
235+#: qml/Dash/ScopesList.qml:63
236+msgid "Manage"
237+msgstr ""
242238
243−#: qml/Dash/ScopesOverviewTab.qml:36
244−msgid "Favorites"
245−msgstr "Favoritos"
239+#: qml/Dash/ScopesList.qml:105
240+msgid "Home"
241+msgstr ""
246242
247−#: qml/Dash/ScopesOverviewTab.qml:54
248−msgid "All"
249−msgstr "Todo"
243+#: qml/Dash/ScopesList.qml:106
244+msgid "Also installed"
245+msgstr ""
250246
251247#: qml/Greeter/Greeter.qml:174
252248msgid "Unlock"
253249msgstr "Desbloquear"
254250
255−#: qml/Notifications/NotificationMenuItemFactory.qml:116
251+#: qml/Notifications/NotificationMenuItemFactory.qml:128
256252msgid "Show password"
257253msgstr "Mostrar contraseña"
258254
@@ -300,49 +296,49 @@ msgstr "Desbloquear SIM"
300296msgid "Roaming"
301297msgstr "Itinerancia"
302298
303−#: qml/Shell.qml:391
299+#: qml/Shell.qml:390
304300msgid "Enter passphrase"
305301msgstr "Introduzca la contraseña"
306302
307−#: qml/Shell.qml:392
303+#: qml/Shell.qml:391
308304msgid "Sorry, incorrect passphrase"
309305msgstr "La contraseña es incorrecta"
310306
311−#: qml/Shell.qml:393
307+#: qml/Shell.qml:392
312308msgid "Please re-enter"
313309msgstr "Reintroduzca"
314310
315−#: qml/Shell.qml:395
311+#: qml/Shell.qml:394
316312msgid "Enter passcode"
317313msgstr "Introduzca el código"
318314
319−#: qml/Shell.qml:396
315+#: qml/Shell.qml:395
320316msgid "Sorry, incorrect passcode"
321317msgstr "El código es incorrecto"
322318
323−#: qml/Shell.qml:399
319+#: qml/Shell.qml:398
324320#, qt-format
325321msgid "Enter %1"
326322msgstr "Introduzca %1"
327323
328−#: qml/Shell.qml:400
324+#: qml/Shell.qml:399
329325#, qt-format
330326msgid "Sorry, incorrect %1"
331327msgstr "Incorrecto (%1)"
332328
333−#: qml/Shell.qml:441
329+#: qml/Shell.qml:440
334330msgid "Sorry, incorrect passphrase."
335331msgstr "La contraseña es incorrecta."
336332
337−#: qml/Shell.qml:442
333+#: qml/Shell.qml:441
338334msgid "Sorry, incorrect passcode."
339335msgstr "Código de acceso incorrecto."
340336
341−#: qml/Shell.qml:443
337+#: qml/Shell.qml:442
342338msgid "This will be your last attempt."
343339msgstr "Este será su último intento."
344340
345−#: qml/Shell.qml:445
341+#: qml/Shell.qml:444
346342msgid ""
347343"If passphrase is entered incorrectly, your phone will conduct a factory "
348344"reset and all personal data will be deleted."
@@ -350,7 +346,7 @@ msgstr ""
350346"Si se introduce la frase incorrectamente, el teléfono volverá a la "
351347"configuración de fábrica y se perderán todos los datos personales."
352348
353−#: qml/Shell.qml:446
349+#: qml/Shell.qml:445
354350msgid ""
355351"If passcode is entered incorrectly, your phone will conduct a factory reset "
356352"and all personal data will be deleted."
@@ -372,3 +368,15 @@ msgstr ""
372368
373369#~ msgid "Speaking..."
374370#~ msgstr "Hablando…"
371+
372+#~ msgid "All"
373+#~ msgstr "Todo"
374+
375+#~ msgid "Favorites"
376+#~ msgstr "Favoritos"
377+
378+#~ msgid "Done"
379+#~ msgstr "Hecho"
380+
381+#~ msgid "Manage Scopes"
382+#~ msgstr "Administrar Scopes"
po/eu.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-08 14:44+0000\n"
1212"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
1313"Language-Team: Basque <eu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -180,20 +180,24 @@ msgstr "Ikusi gutxiago"
180180msgid "See all"
181181msgstr "Ikusi guztiak"
182182
183−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
183+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
184184#: qml/Panel/SearchIndicator.qml:27
185185msgid "Search"
186186msgstr "Bilatu"
187187
188−#: qml/Dash/PageHeader.qml:268
188+#: qml/Dash/PageHeader.qml:260
189+msgid "Store"
190+msgstr "Denda"
191+
192+#: qml/Dash/PageHeader.qml:277
189193msgid "Settings"
190194msgstr "Ezarpenak"
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Remove from Favorites"
194198msgstr "Kendu gogokoetatik"
195199
196−#: qml/Dash/PageHeader.qml:275
200+#: qml/Dash/PageHeader.qml:284
197201msgid "Add to Favorites"
198202msgstr "Gehitu gogokoetara"
199203
@@ -225,31 +229,23 @@ msgstr "Tiratu freskatzeko…"
225229msgid "Release to refresh…"
226230msgstr "Askatu freskatzeko…"
227231
228−#: qml/Dash/ScopesOverview.qml:215
229−msgid "Manage Scopes"
230−msgstr "Kudeatu eremuak"
231−
232−#: qml/Dash/ScopesOverview.qml:437
233−msgid "Done"
234−msgstr "Eginda"
235−
236−#: qml/Dash/ScopesOverview.qml:463
237−msgid "Store"
238−msgstr "Denda"
232+#: qml/Dash/ScopesList.qml:63
233+msgid "Manage"
234+msgstr ""
239235
240−#: qml/Dash/ScopesOverviewTab.qml:36
241−msgid "Favorites"
242−msgstr "Gogokoak"
236+#: qml/Dash/ScopesList.qml:105
237+msgid "Home"
238+msgstr ""
243239
244−#: qml/Dash/ScopesOverviewTab.qml:54
245−msgid "All"
246−msgstr "Guztiak"
240+#: qml/Dash/ScopesList.qml:106
241+msgid "Also installed"
242+msgstr ""
247243
248244#: qml/Greeter/Greeter.qml:174
249245msgid "Unlock"
250246msgstr "Desblokeatu"
251247
252−#: qml/Notifications/NotificationMenuItemFactory.qml:116
248+#: qml/Notifications/NotificationMenuItemFactory.qml:128
253249msgid "Show password"
254250msgstr "Erakutsi pasahitza"
255251
@@ -297,49 +293,49 @@ msgstr "Desblokeatu SIMa"
297293msgid "Roaming"
298294msgstr "Ibiltaritza"
299295
300−#: qml/Shell.qml:391
296+#: qml/Shell.qml:390
301297msgid "Enter passphrase"
302298msgstr "Sartu pasaesaldia"
303299
304−#: qml/Shell.qml:392
300+#: qml/Shell.qml:391
305301msgid "Sorry, incorrect passphrase"
306302msgstr "Sentitzen dugu, pasaesaldia okerrekoa da"
307303
308−#: qml/Shell.qml:393
304+#: qml/Shell.qml:392
309305msgid "Please re-enter"
310306msgstr "Errepikatu"
311307
312−#: qml/Shell.qml:395
308+#: qml/Shell.qml:394
313309msgid "Enter passcode"
314310msgstr "Sartu pasakodea"
315311
316−#: qml/Shell.qml:396
312+#: qml/Shell.qml:395
317313msgid "Sorry, incorrect passcode"
318314msgstr "Sentitzen dugu, pasakodea okerra da"
319315
320−#: qml/Shell.qml:399
316+#: qml/Shell.qml:398
321317#, qt-format
322318msgid "Enter %1"
323319msgstr "Sartu %1"
324320
325−#: qml/Shell.qml:400
321+#: qml/Shell.qml:399
326322#, qt-format
327323msgid "Sorry, incorrect %1"
328324msgstr "Sentitzen dugu, %1 okerra da"
329325
330−#: qml/Shell.qml:441
326+#: qml/Shell.qml:440
331327msgid "Sorry, incorrect passphrase."
332328msgstr "Sentitzen dugu, pasaesaldia okerra da."
333329
334−#: qml/Shell.qml:442
330+#: qml/Shell.qml:441
335331msgid "Sorry, incorrect passcode."
336332msgstr "Sentitzen dugu, pasakodea okerra da."
337333
338−#: qml/Shell.qml:443
334+#: qml/Shell.qml:442
339335msgid "This will be your last attempt."
340336msgstr "Hau duzu azken saiakera."
341337
342−#: qml/Shell.qml:445
338+#: qml/Shell.qml:444
343339msgid ""
344340"If passphrase is entered incorrectly, your phone will conduct a factory "
345341"reset and all personal data will be deleted."
@@ -347,7 +343,7 @@ msgstr ""
347343"Okerreko pasaesaldia sartzen baduzu, telefonoaren jatorrizko ezarpenak "
348344"berrezarri eta datu pertsonal guztiak ezabatuko dira."
349345
350−#: qml/Shell.qml:446
346+#: qml/Shell.qml:445
351347msgid ""
352348"If passcode is entered incorrectly, your phone will conduct a factory reset "
353349"and all personal data will be deleted."
@@ -367,5 +363,17 @@ msgstr ""
367363#~ msgid "Speaking..."
368364#~ msgstr "Hitz egiten..."
369365
366+#~ msgid "Done"
367+#~ msgstr "Eginda"
368+
369+#~ msgid "All"
370+#~ msgstr "Guztiak"
371+
372+#~ msgid "Favorites"
373+#~ msgstr "Gogokoak"
374+
370375#~ msgid "Confirm"
371376#~ msgstr "Berretsi"
377+
378+#~ msgid "Manage Scopes"
379+#~ msgstr "Kudeatu eremuak"
po/fa.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-07 12:53+0000\n"
1212"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
1313"Language-Team: Persian <fa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -176,20 +176,24 @@ msgstr "کم‌تر ببینید"
176176msgid "See all"
177177msgstr "دیدن همه"
178178
179−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "جست‌وجو"
183183
184−#: qml/Dash/PageHeader.qml:268
184+#: qml/Dash/PageHeader.qml:260
185+msgid "Store"
186+msgstr "فروشگاه"
187+
188+#: qml/Dash/PageHeader.qml:277
185189msgid "Settings"
186190msgstr "تنظیمات"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Remove from Favorites"
190194msgstr "برداشتن از برگزیده‌ها"
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Add to Favorites"
194198msgstr "افزودن به برگزیده‌ها"
195199
@@ -221,31 +225,23 @@ msgstr "برای تازه‌سازی بکشید…"
221225msgid "Release to refresh…"
222226msgstr "برای تازه‌سازی رها کنید…"
223227
224−#: qml/Dash/ScopesOverview.qml:215
225−msgid "Manage Scopes"
226−msgstr "مدیریت حوزه‌ها"
227−
228−#: qml/Dash/ScopesOverview.qml:437
229−msgid "Done"
230−msgstr "انجام شد"
231−
232−#: qml/Dash/ScopesOverview.qml:463
233−msgid "Store"
234−msgstr "فروشگاه"
228+#: qml/Dash/ScopesList.qml:63
229+msgid "Manage"
230+msgstr ""
235231
236−#: qml/Dash/ScopesOverviewTab.qml:36
237−msgid "Favorites"
238−msgstr "برگزیده‌ها"
232+#: qml/Dash/ScopesList.qml:105
233+msgid "Home"
234+msgstr ""
239235
240−#: qml/Dash/ScopesOverviewTab.qml:54
241−msgid "All"
242−msgstr "همه"
236+#: qml/Dash/ScopesList.qml:106
237+msgid "Also installed"
238+msgstr ""
243239
244240#: qml/Greeter/Greeter.qml:174
245241msgid "Unlock"
246242msgstr "بازکردن قفل"
247243
248−#: qml/Notifications/NotificationMenuItemFactory.qml:116
244+#: qml/Notifications/NotificationMenuItemFactory.qml:128
249245msgid "Show password"
250246msgstr "نمایش گذرواژه"
251247
@@ -293,49 +289,49 @@ msgstr "باز کردن قفل سیم‌کارت"
293289msgid "Roaming"
294290msgstr "رومینگ"
295291
296−#: qml/Shell.qml:391
292+#: qml/Shell.qml:390
297293msgid "Enter passphrase"
298294msgstr "عبارت‌عبور را وارد کنید"
299295
300−#: qml/Shell.qml:392
296+#: qml/Shell.qml:391
301297msgid "Sorry, incorrect passphrase"
302298msgstr "متأسّفیم، عبارت‌عبور نادرست بود"
303299
304−#: qml/Shell.qml:393
300+#: qml/Shell.qml:392
305301msgid "Please re-enter"
306302msgstr "لطفاً دوباره وارد کنید"
307303
308−#: qml/Shell.qml:395
304+#: qml/Shell.qml:394
309305msgid "Enter passcode"
310306msgstr "رمزعبور را وارد کنید"
311307
312−#: qml/Shell.qml:396
308+#: qml/Shell.qml:395
313309msgid "Sorry, incorrect passcode"
314310msgstr "متأسّفیم، رمزعبور نادرست بود"
315311
316−#: qml/Shell.qml:399
312+#: qml/Shell.qml:398
317313#, qt-format
318314msgid "Enter %1"
319315msgstr "%1 را وارد کنید"
320316
321−#: qml/Shell.qml:400
317+#: qml/Shell.qml:399
322318#, qt-format
323319msgid "Sorry, incorrect %1"
324320msgstr "متأسّفیم، %1 نادرست بود"
325321
326−#: qml/Shell.qml:441
322+#: qml/Shell.qml:440
327323msgid "Sorry, incorrect passphrase."
328324msgstr "متأسّفیم، عبارت‌عبور نادرست است."
329325
330−#: qml/Shell.qml:442
326+#: qml/Shell.qml:441
331327msgid "Sorry, incorrect passcode."
332328msgstr "متأسّفیم، رمزعبور نادرست است."
333329
334−#: qml/Shell.qml:443
330+#: qml/Shell.qml:442
335331msgid "This will be your last attempt."
336332msgstr "این آخرین تلاش شما خواهد بود."
337333
338−#: qml/Shell.qml:445
334+#: qml/Shell.qml:444
339335msgid ""
340336"If passphrase is entered incorrectly, your phone will conduct a factory "
341337"reset and all personal data will be deleted."
@@ -343,7 +339,7 @@ msgstr ""
343339"اگر عبارت‌عبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
344340"اطّلاعات شخصی حذف خواهند شد."
345341
346−#: qml/Shell.qml:446
342+#: qml/Shell.qml:445
347343msgid ""
348344"If passcode is entered incorrectly, your phone will conduct a factory reset "
349345"and all personal data will be deleted."
@@ -365,3 +361,15 @@ msgstr ""
365361
366362#~ msgid "Speak Now..."
367363#~ msgstr "اکنون صحبت کنید…"
364+
365+#~ msgid "All"
366+#~ msgstr "همه"
367+
368+#~ msgid "Favorites"
369+#~ msgstr "برگزیده‌ها"
370+
371+#~ msgid "Done"
372+#~ msgstr "انجام شد"
373+
374+#~ msgid "Manage Scopes"
375+#~ msgstr "مدیریت حوزه‌ها"
po/fi.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-05 11:49+0000\n"
1212"Last-Translator: Jiri Grönroos <Unknown>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -178,20 +178,24 @@ msgstr "Näytä vähemmän"
178178msgid "See all"
179179msgstr "Näytä kaikki"
180180
181−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
182182#: qml/Panel/SearchIndicator.qml:27
183183msgid "Search"
184184msgstr "Hae"
185185
186−#: qml/Dash/PageHeader.qml:268
186+#: qml/Dash/PageHeader.qml:260
187+msgid "Store"
188+msgstr "Kauppa"
189+
190+#: qml/Dash/PageHeader.qml:277
187191msgid "Settings"
188192msgstr "Asetukset"
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Remove from Favorites"
192196msgstr "Poista suosikeista"
193197
194−#: qml/Dash/PageHeader.qml:275
198+#: qml/Dash/PageHeader.qml:284
195199msgid "Add to Favorites"
196200msgstr "Lisää suosikkeihin"
197201
@@ -223,31 +227,23 @@ msgstr "Vedä päivittääksesi…"
223227msgid "Release to refresh…"
224228msgstr "Vapauta päivittääksesi…"
225229
226−#: qml/Dash/ScopesOverview.qml:215
227−msgid "Manage Scopes"
228−msgstr "Näkymien hallinta"
229−
230−#: qml/Dash/ScopesOverview.qml:437
231−msgid "Done"
232−msgstr "Valmis"
233−
234−#: qml/Dash/ScopesOverview.qml:463
235−msgid "Store"
236−msgstr "Kauppa"
230+#: qml/Dash/ScopesList.qml:63
231+msgid "Manage"
232+msgstr ""
237233
238−#: qml/Dash/ScopesOverviewTab.qml:36
239−msgid "Favorites"
240−msgstr "Suosikit"
234+#: qml/Dash/ScopesList.qml:105
235+msgid "Home"
236+msgstr ""
241237
242−#: qml/Dash/ScopesOverviewTab.qml:54
243−msgid "All"
244−msgstr "Kaikki"
238+#: qml/Dash/ScopesList.qml:106
239+msgid "Also installed"
240+msgstr ""
245241
246242#: qml/Greeter/Greeter.qml:174
247243msgid "Unlock"
248244msgstr "Avaa lukitus"
249245
250−#: qml/Notifications/NotificationMenuItemFactory.qml:116
246+#: qml/Notifications/NotificationMenuItemFactory.qml:128
251247msgid "Show password"
252248msgstr "Näytä salasana"
253249
@@ -295,49 +291,49 @@ msgstr "Avaa SIM-kortin lukitus"
295291msgid "Roaming"
296292msgstr "Verkkovierailu"
297293
298−#: qml/Shell.qml:391
294+#: qml/Shell.qml:390
299295msgid "Enter passphrase"
300296msgstr "Anna tunnuslause"
301297
302−#: qml/Shell.qml:392
298+#: qml/Shell.qml:391
303299msgid "Sorry, incorrect passphrase"
304300msgstr "Virheellinen tunnuslause"
305301
306−#: qml/Shell.qml:393
302+#: qml/Shell.qml:392
307303msgid "Please re-enter"
308304msgstr "Anna uudelleen"
309305
310−#: qml/Shell.qml:395
306+#: qml/Shell.qml:394
311307msgid "Enter passcode"
312308msgstr "Anna suojakoodi"
313309
314−#: qml/Shell.qml:396
310+#: qml/Shell.qml:395
315311msgid "Sorry, incorrect passcode"
316312msgstr "Väärä suojakoodi"
317313
318−#: qml/Shell.qml:399
314+#: qml/Shell.qml:398
319315#, qt-format
320316msgid "Enter %1"
321317msgstr "Anna %1"
322318
323−#: qml/Shell.qml:400
319+#: qml/Shell.qml:399
324320#, qt-format
325321msgid "Sorry, incorrect %1"
326322msgstr "Väärä %1"
327323
328−#: qml/Shell.qml:441
324+#: qml/Shell.qml:440
329325msgid "Sorry, incorrect passphrase."
330326msgstr "Virheellinen tunnuslause."
331327
332−#: qml/Shell.qml:442
328+#: qml/Shell.qml:441
333329msgid "Sorry, incorrect passcode."
334330msgstr "Virheellinen suojakoodi."
335331
336−#: qml/Shell.qml:443
332+#: qml/Shell.qml:442
337333msgid "This will be your last attempt."
338334msgstr "Tämä on viimeinen yritys."
339335
340−#: qml/Shell.qml:445
336+#: qml/Shell.qml:444
341337msgid ""
342338"If passphrase is entered incorrectly, your phone will conduct a factory "
343339"reset and all personal data will be deleted."
@@ -345,7 +341,7 @@ msgstr ""
345341"Jos kirjoitat tunnuslauseen virheellisesti, puhelimesi palautetaan "
346342"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
347343
348−#: qml/Shell.qml:446
344+#: qml/Shell.qml:445
349345msgid ""
350346"If passcode is entered incorrectly, your phone will conduct a factory reset "
351347"and all personal data will be deleted."
@@ -367,3 +363,15 @@ msgstr ""
367363
368364#~ msgid "Loading. Please Wait..."
369365#~ msgstr "Ladataan, pieni hetki..."
366+
367+#~ msgid "All"
368+#~ msgstr "Kaikki"
369+
370+#~ msgid "Favorites"
371+#~ msgstr "Suosikit"
372+
373+#~ msgid "Done"
374+#~ msgstr "Valmis"
375+
376+#~ msgid "Manage Scopes"
377+#~ msgstr "Näkymien hallinta"
po/fo.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-14 20:08+0000\n"
1212"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
1313"Language-Team: Faroese <fo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "Leita"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/fr.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-05 17:30+0000\n"
1212"Last-Translator: Sébastien Maes <nautilussebastien@gmail.com>\n"
1313"Language-Team: French <fr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -187,20 +187,24 @@ msgstr "Voir moins"
187187msgid "See all"
188188msgstr "Tout voir"
189189
190−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
190+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
191191#: qml/Panel/SearchIndicator.qml:27
192192msgid "Search"
193193msgstr "Rechercher"
194194
195−#: qml/Dash/PageHeader.qml:268
195+#: qml/Dash/PageHeader.qml:260
196+msgid "Store"
197+msgstr "Logithèque"
198+
199+#: qml/Dash/PageHeader.qml:277
196200msgid "Settings"
197201msgstr "Paramètres"
198202
199−#: qml/Dash/PageHeader.qml:275
203+#: qml/Dash/PageHeader.qml:284
200204msgid "Remove from Favorites"
201205msgstr "Retirer des favoris"
202206
203−#: qml/Dash/PageHeader.qml:275
207+#: qml/Dash/PageHeader.qml:284
204208msgid "Add to Favorites"
205209msgstr "Ajouter aux favoris"
206210
@@ -232,31 +236,23 @@ msgstr "Tirer pour actualiser..."
232236msgid "Release to refresh…"
233237msgstr "Relâcher pour actualiser..."
234238
235−#: qml/Dash/ScopesOverview.qml:215
236−msgid "Manage Scopes"
237−msgstr "Gérer les moteurs de recherche"
238−
239−#: qml/Dash/ScopesOverview.qml:437
240−msgid "Done"
241−msgstr "Terminé"
242−
243−#: qml/Dash/ScopesOverview.qml:463
244−msgid "Store"
245−msgstr "Logithèque"
239+#: qml/Dash/ScopesList.qml:63
240+msgid "Manage"
241+msgstr ""
246242
247−#: qml/Dash/ScopesOverviewTab.qml:36
248−msgid "Favorites"
249−msgstr "Favorites"
243+#: qml/Dash/ScopesList.qml:105
244+msgid "Home"
245+msgstr ""
250246
251−#: qml/Dash/ScopesOverviewTab.qml:54
252−msgid "All"
253−msgstr "Toutes"
247+#: qml/Dash/ScopesList.qml:106
248+msgid "Also installed"
249+msgstr ""
254250
255251#: qml/Greeter/Greeter.qml:174
256252msgid "Unlock"
257253msgstr "Déverrouiller"
258254
259−#: qml/Notifications/NotificationMenuItemFactory.qml:116
255+#: qml/Notifications/NotificationMenuItemFactory.qml:128
260256msgid "Show password"
261257msgstr "Afficher le mot de passe"
262258
@@ -304,49 +300,49 @@ msgstr "Déverrouiller la carte SIM"
304300msgid "Roaming"
305301msgstr "Roaming"
306302
307−#: qml/Shell.qml:391
303+#: qml/Shell.qml:390
308304msgid "Enter passphrase"
309305msgstr "Saisissez la phrase de passe"
310306
311−#: qml/Shell.qml:392
307+#: qml/Shell.qml:391
312308msgid "Sorry, incorrect passphrase"
313309msgstr "Désolé, phrase secrète incorrecte"
314310
315−#: qml/Shell.qml:393
311+#: qml/Shell.qml:392
316312msgid "Please re-enter"
317313msgstr "Veuillez ressaisir"
318314
319−#: qml/Shell.qml:395
315+#: qml/Shell.qml:394
320316msgid "Enter passcode"
321317msgstr "Saisissez le mot de passe"
322318
323−#: qml/Shell.qml:396
319+#: qml/Shell.qml:395
324320msgid "Sorry, incorrect passcode"
325321msgstr "Désolé, code incorrect"
326322
327−#: qml/Shell.qml:399
323+#: qml/Shell.qml:398
328324#, qt-format
329325msgid "Enter %1"
330326msgstr "Saisissez %1"
331327
332−#: qml/Shell.qml:400
328+#: qml/Shell.qml:399
333329#, qt-format
334330msgid "Sorry, incorrect %1"
335331msgstr "Désolé, %1 incorrect"
336332
337−#: qml/Shell.qml:441
333+#: qml/Shell.qml:440
338334msgid "Sorry, incorrect passphrase."
339335msgstr "Désolé, phrase secrète incorrecte."
340336
341−#: qml/Shell.qml:442
337+#: qml/Shell.qml:441
342338msgid "Sorry, incorrect passcode."
343339msgstr "Désolé, code incorrect."
344340
345−#: qml/Shell.qml:443
341+#: qml/Shell.qml:442
346342msgid "This will be your last attempt."
347343msgstr "Ceci sera votre dernière tentative."
348344
349−#: qml/Shell.qml:445
345+#: qml/Shell.qml:444
350346msgid ""
351347"If passphrase is entered incorrectly, your phone will conduct a factory "
352348"reset and all personal data will be deleted."
@@ -355,7 +351,7 @@ msgstr ""
355351"effectuera une réinitialisation aux paramètres d'usine et toutes les données "
356352"personnelles seront supprimées."
357353
358−#: qml/Shell.qml:446
354+#: qml/Shell.qml:445
359355msgid ""
360356"If passcode is entered incorrectly, your phone will conduct a factory reset "
361357"and all personal data will be deleted."
@@ -378,3 +374,15 @@ msgstr ""
378374
379375#~ msgid "Speak Now..."
380376#~ msgstr "Parlez maintenant…"
377+
378+#~ msgid "All"
379+#~ msgstr "Toutes"
380+
381+#~ msgid "Done"
382+#~ msgstr "Terminé"
383+
384+#~ msgid "Favorites"
385+#~ msgstr "Favorites"
386+
387+#~ msgid "Manage Scopes"
388+#~ msgstr "Gérer les moteurs de recherche"
po/gd.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-09 08:18+0000\n"
1212"Last-Translator: GunChleoc <Unknown>\n"
1313"Language-Team: Fòram na Gàidhlig\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
1818"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2014-11-10 06:09+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121"Language: gd\n"
2222
2323#: plugins/LightDM/Greeter.cpp:130
@@ -190,20 +190,24 @@ msgstr "Seall nas lugha"
190190msgid "See all"
191191msgstr "Seall na h-uile"
192192
193−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
193+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
194194#: qml/Panel/SearchIndicator.qml:27
195195msgid "Search"
196196msgstr "Lorg"
197197
198−#: qml/Dash/PageHeader.qml:268
198+#: qml/Dash/PageHeader.qml:260
199+msgid "Store"
200+msgstr "Am bùth"
201+
202+#: qml/Dash/PageHeader.qml:277
199203msgid "Settings"
200204msgstr "Roghainnean"
201205
202−#: qml/Dash/PageHeader.qml:275
206+#: qml/Dash/PageHeader.qml:284
203207msgid "Remove from Favorites"
204208msgstr "Thoir air falbh o na h-annsachdan"
205209
206−#: qml/Dash/PageHeader.qml:275
210+#: qml/Dash/PageHeader.qml:284
207211msgid "Add to Favorites"
208212msgstr "Cuir ris na h-annsachdan"
209213
@@ -235,31 +239,23 @@ msgstr "Tarraing airson ath-nuadhachadh…"
235239msgid "Release to refresh…"
236240msgstr "Leig às airson ath-nuadhachadh…"
237241
238−#: qml/Dash/ScopesOverview.qml:215
239−msgid "Manage Scopes"
240−msgstr "Stiùirich na sgòpaichean"
241−
242−#: qml/Dash/ScopesOverview.qml:437
243−msgid "Done"
244−msgstr "Deiseil"
245−
246−#: qml/Dash/ScopesOverview.qml:463
247−msgid "Store"
248−msgstr "Am bùth"
242+#: qml/Dash/ScopesList.qml:63
243+msgid "Manage"
244+msgstr ""
249245
250−#: qml/Dash/ScopesOverviewTab.qml:36
251−msgid "Favorites"
252−msgstr "Annsachdan"
246+#: qml/Dash/ScopesList.qml:105
247+msgid "Home"
248+msgstr ""
253249
254−#: qml/Dash/ScopesOverviewTab.qml:54
255−msgid "All"
256−msgstr "Na h-uile"
250+#: qml/Dash/ScopesList.qml:106
251+msgid "Also installed"
252+msgstr ""
257253
258254#: qml/Greeter/Greeter.qml:174
259255msgid "Unlock"
260256msgstr "Thoir a' ghlas dheth"
261257
262−#: qml/Notifications/NotificationMenuItemFactory.qml:116
258+#: qml/Notifications/NotificationMenuItemFactory.qml:128
263259msgid "Show password"
264260msgstr "Seall am facal-faire"
265261
@@ -307,49 +303,49 @@ msgstr "Thoir a' ghlas far an SIM"
307303msgid "Roaming"
308304msgstr "Air fàrsan"
309305
310−#: qml/Shell.qml:391
306+#: qml/Shell.qml:390
311307msgid "Enter passphrase"
312308msgstr "Cuir abairt-fhaire a-steach"
313309
314−#: qml/Shell.qml:392
310+#: qml/Shell.qml:391
315311msgid "Sorry, incorrect passphrase"
316312msgstr "Duilich ach tha an abairt-fhaire cearr"
317313
318−#: qml/Shell.qml:393
314+#: qml/Shell.qml:392
319315msgid "Please re-enter"
320316msgstr "Cuir a-steach e a-rithist"
321317
322−#: qml/Shell.qml:395
318+#: qml/Shell.qml:394
323319msgid "Enter passcode"
324320msgstr "Cuir còd-faire a-steach"
325321
326−#: qml/Shell.qml:396
322+#: qml/Shell.qml:395
327323msgid "Sorry, incorrect passcode"
328324msgstr "Duilich ach tha an còd-faire cearr"
329325
330−#: qml/Shell.qml:399
326+#: qml/Shell.qml:398
331327#, qt-format
332328msgid "Enter %1"
333329msgstr "Cuir a-steach %1"
334330
335−#: qml/Shell.qml:400
331+#: qml/Shell.qml:399
336332#, qt-format
337333msgid "Sorry, incorrect %1"
338334msgstr "Duilich ach tha a' %1 cearr"
339335
340−#: qml/Shell.qml:441
336+#: qml/Shell.qml:440
341337msgid "Sorry, incorrect passphrase."
342338msgstr "Duilich ach tha an abairt-fhaire cearr."
343339
344−#: qml/Shell.qml:442
340+#: qml/Shell.qml:441
345341msgid "Sorry, incorrect passcode."
346342msgstr "Duilich ach tha an còd-faire cearr."
347343
348−#: qml/Shell.qml:443
344+#: qml/Shell.qml:442
349345msgid "This will be your last attempt."
350346msgstr "Seo an oidhirp mu dheireadh agad."
351347
352−#: qml/Shell.qml:445
348+#: qml/Shell.qml:444
353349msgid ""
354350"If passphrase is entered incorrectly, your phone will conduct a factory "
355351"reset and all personal data will be deleted."
@@ -358,7 +354,7 @@ msgstr ""
358354"ath-shuidheachadh air roghainnean an fhactaraidh agus thèid gach dàta "
359355"pearsanta a sguabadh às."
360356
361−#: qml/Shell.qml:446
357+#: qml/Shell.qml:445
362358msgid ""
363359"If passcode is entered incorrectly, your phone will conduct a factory reset "
364360"and all personal data will be deleted."
@@ -381,3 +377,15 @@ msgstr ""
381377
382378#~ msgid "Speak Now..."
383379#~ msgstr "Can rud a-nis..."
380+
381+#~ msgid "All"
382+#~ msgstr "Na h-uile"
383+
384+#~ msgid "Favorites"
385+#~ msgstr "Annsachdan"
386+
387+#~ msgid "Done"
388+#~ msgstr "Deiseil"
389+
390+#~ msgid "Manage Scopes"
391+#~ msgstr "Stiùirich na sgòpaichean"
po/gl.po+46−38
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
11−"PO-Revision-Date: 2014-11-06 13:30+0000\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
11+"PO-Revision-Date: 2014-12-09 02:29+0000\n"
1212"Last-Translator: Marcos Lans <Unknown>\n"
1313"Language-Team: Galician <gl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -176,20 +176,24 @@ msgstr "Ver menos"
176176msgid "See all"
177177msgstr "Ver todo"
178178
179−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "Buscar"
183183
184−#: qml/Dash/PageHeader.qml:268
184+#: qml/Dash/PageHeader.qml:260
185+msgid "Store"
186+msgstr "Tenda"
187+
188+#: qml/Dash/PageHeader.qml:277
185189msgid "Settings"
186190msgstr "Axustes"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Remove from Favorites"
190194msgstr "Eliminar dos favoritos"
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Add to Favorites"
194198msgstr "Engadir aos favoritos"
195199
@@ -221,31 +225,23 @@ msgstr "Tirar para actualizar..."
221225msgid "Release to refresh…"
222226msgstr "Soltar para actualizar"
223227
224−#: qml/Dash/ScopesOverview.qml:215
225−msgid "Manage Scopes"
226−msgstr "Xestionar os Ámbitos"
227−
228−#: qml/Dash/ScopesOverview.qml:437
229−msgid "Done"
230−msgstr "Feito"
231−
232−#: qml/Dash/ScopesOverview.qml:463
233−msgid "Store"
234−msgstr "Tenda"
228+#: qml/Dash/ScopesList.qml:63
229+msgid "Manage"
230+msgstr "Xestionar"
235231
236−#: qml/Dash/ScopesOverviewTab.qml:36
237−msgid "Favorites"
238−msgstr "Favoritos"
232+#: qml/Dash/ScopesList.qml:105
233+msgid "Home"
234+msgstr "Inicio"
239235
240−#: qml/Dash/ScopesOverviewTab.qml:54
241−msgid "All"
242−msgstr "Todos"
236+#: qml/Dash/ScopesList.qml:106
237+msgid "Also installed"
238+msgstr "Tamén instalado"
243239
244240#: qml/Greeter/Greeter.qml:174
245241msgid "Unlock"
246242msgstr "Desbloquear"
247243
248−#: qml/Notifications/NotificationMenuItemFactory.qml:116
244+#: qml/Notifications/NotificationMenuItemFactory.qml:128
249245msgid "Show password"
250246msgstr "Mostrar contrasinal"
251247
@@ -293,49 +289,49 @@ msgstr "Desbloquear a SIM"
293289msgid "Roaming"
294290msgstr "Itinerancia"
295291
296−#: qml/Shell.qml:391
292+#: qml/Shell.qml:390
297293msgid "Enter passphrase"
298294msgstr "Introduza a frase secreta"
299295
300−#: qml/Shell.qml:392
296+#: qml/Shell.qml:391
301297msgid "Sorry, incorrect passphrase"
302298msgstr "Sentímolo a frase é incorrecta"
303299
304−#: qml/Shell.qml:393
300+#: qml/Shell.qml:392
305301msgid "Please re-enter"
306302msgstr "Introducir de novo"
307303
308−#: qml/Shell.qml:395
304+#: qml/Shell.qml:394
309305msgid "Enter passcode"
310306msgstr "Introduza a clave"
311307
312−#: qml/Shell.qml:396
308+#: qml/Shell.qml:395
313309msgid "Sorry, incorrect passcode"
314310msgstr "Sentímolo, a clave é incorrecta"
315311
316−#: qml/Shell.qml:399
312+#: qml/Shell.qml:398
317313#, qt-format
318314msgid "Enter %1"
319315msgstr "Introducir %1"
320316
321−#: qml/Shell.qml:400
317+#: qml/Shell.qml:399
322318#, qt-format
323319msgid "Sorry, incorrect %1"
324320msgstr "Sentímolo, %1 non coincide"
325321
326−#: qml/Shell.qml:441
322+#: qml/Shell.qml:440
327323msgid "Sorry, incorrect passphrase."
328324msgstr "Sentímolo a frase é incorrecta."
329325
330−#: qml/Shell.qml:442
326+#: qml/Shell.qml:441
331327msgid "Sorry, incorrect passcode."
332328msgstr "Sentímolo, a clave é incorrecta."
333329
334−#: qml/Shell.qml:443
330+#: qml/Shell.qml:442
335331msgid "This will be your last attempt."
336332msgstr "Este será o seu último intento."
337333
338−#: qml/Shell.qml:445
334+#: qml/Shell.qml:444
339335msgid ""
340336"If passphrase is entered incorrectly, your phone will conduct a factory "
341337"reset and all personal data will be deleted."
@@ -343,7 +339,7 @@ msgstr ""
343339"Se a frase de paso introducida é incorrecta, o teléfono restabelecerá os "
344340"valores de fábrica e perderá todos os datos persoais."
345341
346−#: qml/Shell.qml:446
342+#: qml/Shell.qml:445
347343msgid ""
348344"If passcode is entered incorrectly, your phone will conduct a factory reset "
349345"and all personal data will be deleted."
@@ -365,3 +361,15 @@ msgstr ""
365361
366362#~ msgid "Loading. Please Wait..."
367363#~ msgstr "Cargando, agarde…"
364+
365+#~ msgid "All"
366+#~ msgstr "Todos"
367+
368+#~ msgid "Favorites"
369+#~ msgstr "Favoritos"
370+
371+#~ msgid "Done"
372+#~ msgstr "Feito"
373+
374+#~ msgid "Manage Scopes"
375+#~ msgstr "Xestionar os Ámbitos"
po/he.po+41−36
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-08-23 14:19+0000\n"
1212"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
1313"Language-Team: Hebrew <he@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -174,20 +174,24 @@ msgstr "לראות פחות"
174174msgid "See all"
175175msgstr "להציג הכול"
176176
177−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
177+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
178178#: qml/Panel/SearchIndicator.qml:27
179179msgid "Search"
180180msgstr "חיפוש"
181181
182−#: qml/Dash/PageHeader.qml:268
182+#: qml/Dash/PageHeader.qml:260
183+msgid "Store"
184+msgstr "אחסון"
185+
186+#: qml/Dash/PageHeader.qml:277
183187msgid "Settings"
184188msgstr ""
185189
186−#: qml/Dash/PageHeader.qml:275
190+#: qml/Dash/PageHeader.qml:284
187191msgid "Remove from Favorites"
188192msgstr ""
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Add to Favorites"
192196msgstr ""
193197
@@ -219,31 +223,23 @@ msgstr ""
219223msgid "Release to refresh…"
220224msgstr ""
221225
222−#: qml/Dash/ScopesOverview.qml:215
223−msgid "Manage Scopes"
226+#: qml/Dash/ScopesList.qml:63
227+msgid "Manage"
224228msgstr ""
225229
226−#: qml/Dash/ScopesOverview.qml:437
227−msgid "Done"
228−msgstr "סיימתי"
229−
230−#: qml/Dash/ScopesOverview.qml:463
231−msgid "Store"
232−msgstr "אחסון"
233−
234−#: qml/Dash/ScopesOverviewTab.qml:36
235−msgid "Favorites"
236−msgstr "מועדפים"
230+#: qml/Dash/ScopesList.qml:105
231+msgid "Home"
232+msgstr ""
237233
238−#: qml/Dash/ScopesOverviewTab.qml:54
239−msgid "All"
240−msgstr "הכול"
234+#: qml/Dash/ScopesList.qml:106
235+msgid "Also installed"
236+msgstr ""
241237
242238#: qml/Greeter/Greeter.qml:174
243239msgid "Unlock"
244240msgstr ""
245241
246−#: qml/Notifications/NotificationMenuItemFactory.qml:116
242+#: qml/Notifications/NotificationMenuItemFactory.qml:128
247243msgid "Show password"
248244msgstr "הצגת הססמה"
249245
@@ -291,55 +287,55 @@ msgstr ""
291287msgid "Roaming"
292288msgstr "נדידה"
293289
294−#: qml/Shell.qml:391
290+#: qml/Shell.qml:390
295291msgid "Enter passphrase"
296292msgstr ""
297293
298−#: qml/Shell.qml:392
294+#: qml/Shell.qml:391
299295msgid "Sorry, incorrect passphrase"
300296msgstr "מילת הצופן שגויה, עמך הסליחה."
301297
302−#: qml/Shell.qml:393
298+#: qml/Shell.qml:392
303299msgid "Please re-enter"
304300msgstr ""
305301
306−#: qml/Shell.qml:395
302+#: qml/Shell.qml:394
307303msgid "Enter passcode"
308304msgstr ""
309305
310−#: qml/Shell.qml:396
306+#: qml/Shell.qml:395
311307msgid "Sorry, incorrect passcode"
312308msgstr ""
313309
314−#: qml/Shell.qml:399
310+#: qml/Shell.qml:398
315311#, qt-format
316312msgid "Enter %1"
317313msgstr ""
318314
319−#: qml/Shell.qml:400
315+#: qml/Shell.qml:399
320316#, qt-format
321317msgid "Sorry, incorrect %1"
322318msgstr ""
323319
324−#: qml/Shell.qml:441
320+#: qml/Shell.qml:440
325321msgid "Sorry, incorrect passphrase."
326322msgstr "מילת הצופן שגויה, עמך הסליחה."
327323
328−#: qml/Shell.qml:442
324+#: qml/Shell.qml:441
329325msgid "Sorry, incorrect passcode."
330326msgstr "הצופן שגוי, עם הסליחה."
331327
332−#: qml/Shell.qml:443
328+#: qml/Shell.qml:442
333329msgid "This will be your last attempt."
334330msgstr "זה יהיה הניסיון האחרון שלך."
335331
336−#: qml/Shell.qml:445
332+#: qml/Shell.qml:444
337333msgid ""
338334"If passphrase is entered incorrectly, your phone will conduct a factory "
339335"reset and all personal data will be deleted."
340336msgstr ""
341337
342−#: qml/Shell.qml:446
338+#: qml/Shell.qml:445
343339msgid ""
344340"If passcode is entered incorrectly, your phone will conduct a factory reset "
345341"and all personal data will be deleted."
@@ -359,3 +355,12 @@ msgstr ""
359355
360356#~ msgid "Speaking..."
361357#~ msgstr "הדיבור מושמע…"
358+
359+#~ msgid "Done"
360+#~ msgstr "סיימתי"
361+
362+#~ msgid "All"
363+#~ msgstr "הכול"
364+
365+#~ msgid "Favorites"
366+#~ msgstr "מועדפים"
po/hi.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-15 01:49+0000\n"
1212"Last-Translator: Siddhanathan S. <Unknown>\n"
1313"Language-Team: Hindi <hi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "खोजें"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/hr.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-06-27 04:14+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Croatian <hr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -173,20 +173,24 @@ msgstr ""
173173msgid "See all"
174174msgstr ""
175175
176−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
176+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
177177#: qml/Panel/SearchIndicator.qml:27
178178msgid "Search"
179179msgstr "Pretraživanje"
180180
181−#: qml/Dash/PageHeader.qml:268
181+#: qml/Dash/PageHeader.qml:260
182+msgid "Store"
183+msgstr ""
184+
185+#: qml/Dash/PageHeader.qml:277
182186msgid "Settings"
183187msgstr ""
184188
185−#: qml/Dash/PageHeader.qml:275
189+#: qml/Dash/PageHeader.qml:284
186190msgid "Remove from Favorites"
187191msgstr ""
188192
189−#: qml/Dash/PageHeader.qml:275
193+#: qml/Dash/PageHeader.qml:284
190194msgid "Add to Favorites"
191195msgstr ""
192196
@@ -218,31 +222,23 @@ msgstr ""
218222msgid "Release to refresh…"
219223msgstr ""
220224
221−#: qml/Dash/ScopesOverview.qml:215
222−msgid "Manage Scopes"
225+#: qml/Dash/ScopesList.qml:63
226+msgid "Manage"
223227msgstr ""
224228
225−#: qml/Dash/ScopesOverview.qml:437
226−msgid "Done"
227−msgstr ""
228−
229−#: qml/Dash/ScopesOverview.qml:463
230−msgid "Store"
229+#: qml/Dash/ScopesList.qml:105
230+msgid "Home"
231231msgstr ""
232232
233−#: qml/Dash/ScopesOverviewTab.qml:36
234−msgid "Favorites"
235−msgstr ""
236−
237−#: qml/Dash/ScopesOverviewTab.qml:54
238−msgid "All"
233+#: qml/Dash/ScopesList.qml:106
234+msgid "Also installed"
239235msgstr ""
240236
241237#: qml/Greeter/Greeter.qml:174
242238msgid "Unlock"
243239msgstr ""
244240
245−#: qml/Notifications/NotificationMenuItemFactory.qml:116
241+#: qml/Notifications/NotificationMenuItemFactory.qml:128
246242msgid "Show password"
247243msgstr ""
248244
@@ -290,55 +286,55 @@ msgstr ""
290286msgid "Roaming"
291287msgstr ""
292288
293−#: qml/Shell.qml:391
289+#: qml/Shell.qml:390
294290msgid "Enter passphrase"
295291msgstr ""
296292
297−#: qml/Shell.qml:392
293+#: qml/Shell.qml:391
298294msgid "Sorry, incorrect passphrase"
299295msgstr ""
300296
301−#: qml/Shell.qml:393
297+#: qml/Shell.qml:392
302298msgid "Please re-enter"
303299msgstr ""
304300
305−#: qml/Shell.qml:395
301+#: qml/Shell.qml:394
306302msgid "Enter passcode"
307303msgstr ""
308304
309−#: qml/Shell.qml:396
305+#: qml/Shell.qml:395
310306msgid "Sorry, incorrect passcode"
311307msgstr ""
312308
313−#: qml/Shell.qml:399
309+#: qml/Shell.qml:398
314310#, qt-format
315311msgid "Enter %1"
316312msgstr ""
317313
318−#: qml/Shell.qml:400
314+#: qml/Shell.qml:399
319315#, qt-format
320316msgid "Sorry, incorrect %1"
321317msgstr ""
322318
323−#: qml/Shell.qml:441
319+#: qml/Shell.qml:440
324320msgid "Sorry, incorrect passphrase."
325321msgstr ""
326322
327−#: qml/Shell.qml:442
323+#: qml/Shell.qml:441
328324msgid "Sorry, incorrect passcode."
329325msgstr ""
330326
331−#: qml/Shell.qml:443
327+#: qml/Shell.qml:442
332328msgid "This will be your last attempt."
333329msgstr ""
334330
335−#: qml/Shell.qml:445
331+#: qml/Shell.qml:444
336332msgid ""
337333"If passphrase is entered incorrectly, your phone will conduct a factory "
338334"reset and all personal data will be deleted."
339335msgstr ""
340336
341−#: qml/Shell.qml:446
337+#: qml/Shell.qml:445
342338msgid ""
343339"If passcode is entered incorrectly, your phone will conduct a factory reset "
344340"and all personal data will be deleted."
po/hu.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-05 15:45+0000\n"
1212"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
1313"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -178,20 +178,24 @@ msgstr "Kevesebb"
178178msgid "See all"
179179msgstr "Összes megtekintése"
180180
181−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
182182#: qml/Panel/SearchIndicator.qml:27
183183msgid "Search"
184184msgstr "Keresés"
185185
186−#: qml/Dash/PageHeader.qml:268
186+#: qml/Dash/PageHeader.qml:260
187+msgid "Store"
188+msgstr "Áruház"
189+
190+#: qml/Dash/PageHeader.qml:277
187191msgid "Settings"
188192msgstr "Beállítások"
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Remove from Favorites"
192196msgstr "Eltávolítás a kedvencek közül"
193197
194−#: qml/Dash/PageHeader.qml:275
198+#: qml/Dash/PageHeader.qml:284
195199msgid "Add to Favorites"
196200msgstr "Hozzáadás a kedvencekhez"
197201
@@ -223,31 +227,23 @@ msgstr "Húzza a frissítéshez…"
223227msgid "Release to refresh…"
224228msgstr "Engedje el a frissítéshez…"
225229
226−#: qml/Dash/ScopesOverview.qml:215
227−msgid "Manage Scopes"
228−msgstr "Lencsék kezelése"
229−
230−#: qml/Dash/ScopesOverview.qml:437
231−msgid "Done"
232−msgstr "Kész"
233−
234−#: qml/Dash/ScopesOverview.qml:463
235−msgid "Store"
236−msgstr "Áruház"
230+#: qml/Dash/ScopesList.qml:63
231+msgid "Manage"
232+msgstr ""
237233
238−#: qml/Dash/ScopesOverviewTab.qml:36
239−msgid "Favorites"
240−msgstr "Kedvencek"
234+#: qml/Dash/ScopesList.qml:105
235+msgid "Home"
236+msgstr ""
241237
242−#: qml/Dash/ScopesOverviewTab.qml:54
243−msgid "All"
244−msgstr "Összes"
238+#: qml/Dash/ScopesList.qml:106
239+msgid "Also installed"
240+msgstr ""
245241
246242#: qml/Greeter/Greeter.qml:174
247243msgid "Unlock"
248244msgstr "Feloldás"
249245
250−#: qml/Notifications/NotificationMenuItemFactory.qml:116
246+#: qml/Notifications/NotificationMenuItemFactory.qml:128
251247msgid "Show password"
252248msgstr "Jelszó megjelenítése"
253249
@@ -295,49 +291,49 @@ msgstr "SIM feloldása"
295291msgid "Roaming"
296292msgstr "Barangolás"
297293
298−#: qml/Shell.qml:391
294+#: qml/Shell.qml:390
299295msgid "Enter passphrase"
300296msgstr "Jelmondat megadása"
301297
302−#: qml/Shell.qml:392
298+#: qml/Shell.qml:391
303299msgid "Sorry, incorrect passphrase"
304300msgstr "Sajnáljuk, helytelen jelmondat"
305301
306−#: qml/Shell.qml:393
302+#: qml/Shell.qml:392
307303msgid "Please re-enter"
308304msgstr "Kérjük próbálja újra"
309305
310−#: qml/Shell.qml:395
306+#: qml/Shell.qml:394
311307msgid "Enter passcode"
312308msgstr "Jelkód megadása"
313309
314−#: qml/Shell.qml:396
310+#: qml/Shell.qml:395
315311msgid "Sorry, incorrect passcode"
316312msgstr "Sajnáljuk, helytelen jelkód"
317313
318−#: qml/Shell.qml:399
314+#: qml/Shell.qml:398
319315#, qt-format
320316msgid "Enter %1"
321317msgstr "Adja meg: %1"
322318
323−#: qml/Shell.qml:400
319+#: qml/Shell.qml:399
324320#, qt-format
325321msgid "Sorry, incorrect %1"
326322msgstr "Sajnáljuk, helytelen %1"
327323
328−#: qml/Shell.qml:441
324+#: qml/Shell.qml:440
329325msgid "Sorry, incorrect passphrase."
330326msgstr "Sajnáljuk, helytelen jelmondat."
331327
332−#: qml/Shell.qml:442
328+#: qml/Shell.qml:441
333329msgid "Sorry, incorrect passcode."
334330msgstr "Sajnáljuk, helytelen jelkód."
335331
336−#: qml/Shell.qml:443
332+#: qml/Shell.qml:442
337333msgid "This will be your last attempt."
338334msgstr "Ez az utolsó próbálkozási lehetősége."
339335
340−#: qml/Shell.qml:445
336+#: qml/Shell.qml:444
341337msgid ""
342338"If passphrase is entered incorrectly, your phone will conduct a factory "
343339"reset and all personal data will be deleted."
@@ -345,7 +341,7 @@ msgstr ""
345341"Ha helytelen jelmondatot ad meg, a telefonja visszaállítja a gyári "
346342"beállításokat és törli minden személyes adatát."
347343
348−#: qml/Shell.qml:446
344+#: qml/Shell.qml:445
349345msgid ""
350346"If passcode is entered incorrectly, your phone will conduct a factory reset "
351347"and all personal data will be deleted."
@@ -367,3 +363,15 @@ msgstr ""
367363
368364#~ msgid "Speak Now..."
369365#~ msgstr "Most beszéljen…"
366+
367+#~ msgid "All"
368+#~ msgstr "Összes"
369+
370+#~ msgid "Favorites"
371+#~ msgstr "Kedvencek"
372+
373+#~ msgid "Done"
374+#~ msgstr "Kész"
375+
376+#~ msgid "Manage Scopes"
377+#~ msgstr "Lencsék kezelése"
po/hy.po+41−36
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-10-28 06:34+0000\n"
1212"Last-Translator: Vahan Harutyunyan <Unknown>\n"
1313"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -176,20 +176,24 @@ msgstr ""
176176msgid "See all"
177177msgstr "Տեսնել բոլորը"
178178
179−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "Որոնում"
183183
184−#: qml/Dash/PageHeader.qml:268
184+#: qml/Dash/PageHeader.qml:260
185+msgid "Store"
186+msgstr "Խանութ"
187+
188+#: qml/Dash/PageHeader.qml:277
185189msgid "Settings"
186190msgstr "Կարգավորումներ"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Remove from Favorites"
190194msgstr "Հեռացնել ընտրյալների ցուցակից"
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Add to Favorites"
194198msgstr "Ավելացնել ընտրյալների ցուցակում"
195199
@@ -221,31 +225,23 @@ msgstr ""
221225msgid "Release to refresh…"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:215
225−msgid "Manage Scopes"
228+#: qml/Dash/ScopesList.qml:63
229+msgid "Manage"
226230msgstr ""
227231
228−#: qml/Dash/ScopesOverview.qml:437
229−msgid "Done"
230−msgstr "Կատարված է"
231−
232−#: qml/Dash/ScopesOverview.qml:463
233−msgid "Store"
234−msgstr "Խանութ"
235−
236−#: qml/Dash/ScopesOverviewTab.qml:36
237−msgid "Favorites"
238−msgstr "Նախընտրելի"
232+#: qml/Dash/ScopesList.qml:105
233+msgid "Home"
234+msgstr ""
239235
240−#: qml/Dash/ScopesOverviewTab.qml:54
241−msgid "All"
242−msgstr "Բոլորը"
236+#: qml/Dash/ScopesList.qml:106
237+msgid "Also installed"
238+msgstr ""
243239
244240#: qml/Greeter/Greeter.qml:174
245241msgid "Unlock"
246242msgstr "Ապաբլոկավորել"
247243
248−#: qml/Notifications/NotificationMenuItemFactory.qml:116
244+#: qml/Notifications/NotificationMenuItemFactory.qml:128
249245msgid "Show password"
250246msgstr "Ցույց տալ գաղտնաբառը"
251247
@@ -293,55 +289,55 @@ msgstr "Ապաբլոկավորել SIM-ը"
293289msgid "Roaming"
294290msgstr "Ռոումինգ"
295291
296−#: qml/Shell.qml:391
292+#: qml/Shell.qml:390
297293msgid "Enter passphrase"
298294msgstr "Մուտքագրե՛ք անցաբառը"
299295
300−#: qml/Shell.qml:392
296+#: qml/Shell.qml:391
301297msgid "Sorry, incorrect passphrase"
302298msgstr "Ներեցեք, սխալ անցաբառ է"
303299
304−#: qml/Shell.qml:393
300+#: qml/Shell.qml:392
305301msgid "Please re-enter"
306302msgstr "Խնդրում ենք նորից մուտքագրել"
307303
308−#: qml/Shell.qml:395
304+#: qml/Shell.qml:394
309305msgid "Enter passcode"
310306msgstr "Մոտքագրեք ծածկագիրը"
311307
312−#: qml/Shell.qml:396
308+#: qml/Shell.qml:395
313309msgid "Sorry, incorrect passcode"
314310msgstr "Ներեցեք, սխալ ծածկագիր է"
315311
316−#: qml/Shell.qml:399
312+#: qml/Shell.qml:398
317313#, qt-format
318314msgid "Enter %1"
319315msgstr "Մուտքագրեք %1"
320316
321−#: qml/Shell.qml:400
317+#: qml/Shell.qml:399
322318#, qt-format
323319msgid "Sorry, incorrect %1"
324320msgstr "Ներեցեք, սխալ %1"
325321
326−#: qml/Shell.qml:441
322+#: qml/Shell.qml:440
327323msgid "Sorry, incorrect passphrase."
328324msgstr "Ներեցեք, սխալ անցաբառ է"
329325
330−#: qml/Shell.qml:442
326+#: qml/Shell.qml:441
331327msgid "Sorry, incorrect passcode."
332328msgstr "Ներեցեք, սխալ ծածկագիր է:"
333329
334−#: qml/Shell.qml:443
330+#: qml/Shell.qml:442
335331msgid "This will be your last attempt."
336332msgstr "Սա կլինի ձեր վերջին փորձը"
337333
338−#: qml/Shell.qml:445
334+#: qml/Shell.qml:444
339335msgid ""
340336"If passphrase is entered incorrectly, your phone will conduct a factory "
341337"reset and all personal data will be deleted."
342338msgstr ""
343339
344−#: qml/Shell.qml:446
340+#: qml/Shell.qml:445
345341msgid ""
346342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347343"and all personal data will be deleted."
@@ -356,8 +352,17 @@ msgstr ""
356352#~ msgid "Speaking..."
357353#~ msgstr "Խոսում եմ..."
358354
355+#~ msgid "Favorites"
356+#~ msgstr "Նախընտրելի"
357+
358+#~ msgid "Done"
359+#~ msgstr "Կատարված է"
360+
359361#~ msgid "Loading. Please Wait..."
360362#~ msgstr "Բեռնվում է: Խնդրում ենք սպասել..."
361363
362364#~ msgid "Speak Now..."
363365#~ msgstr "Հիմա խոսեք..."
366+
367+#~ msgid "All"
368+#~ msgstr "Բոլորը"
po/id.po+133−101
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Indonesian <id@li.org>\n"
@@ -15,330 +15,362 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
23−msgstr ""
23+msgstr "Sandi: "
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:45
2626#: plugins/Unity/Launcher/launcheritem.cpp:91
2727msgid "Pin shortcut"
28−msgstr ""
28+msgstr "Paku pintasan"
2929
3030#: plugins/Unity/Launcher/launcheritem.cpp:91
3131msgid "Unpin shortcut"
32−msgstr ""
32+msgstr "Lepas pintasan"
3333
3434#: qml/Components/DelayedLockscreen.qml:47
3535msgid "Device Locked"
36−msgstr ""
36+msgstr "Perangkat Terkunci"
3737
3838#: qml/Components/DelayedLockscreen.qml:62
3939msgid "You have been locked out due to too many failed passphrase attempts."
4040msgstr ""
41+"Anda telah terkunci karena terlalu banyak percobaan frasa sandi yang gagal."
4142
4243#: qml/Components/DelayedLockscreen.qml:63
4344msgid "You have been locked out due to too many failed passcode attempts."
4445msgstr ""
46+"Anda telah terkunci karena terlalu banyak percobaan kode sandi yang gagal."
4547
4648#: qml/Components/DelayedLockscreen.qml:72
4749#, qt-format
4850msgid "Please wait %1 minute and then try again…"
4951msgid_plural "Please wait %1 minutes and then try again…"
50−msgstr[0] ""
51−msgstr[1] ""
52+msgstr[0] "Harap tunggu %1 menit lalu coba lagi..."
5253
5354#: qml/Components/Dialogs.qml:74
5455msgid "Log out"
55−msgstr ""
56+msgstr "Log keluar"
5657
5758#: qml/Components/Dialogs.qml:75
5859msgid "Are you sure you want to log out?"
59−msgstr ""
60+msgstr "Anda yakin ingin log keluar?"
6061
6162#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
6263#: qml/Components/Dialogs.qml:126
6364msgid "No"
64−msgstr ""
65+msgstr "Tidak"
6566
6667#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
6768#: qml/Components/Dialogs.qml:133
6869msgid "Yes"
69−msgstr ""
70+msgstr "Ya"
7071
7172#: qml/Components/Dialogs.qml:98
7273msgid "Shut down"
73−msgstr ""
74+msgstr "Matikan"
7475
7576#: qml/Components/Dialogs.qml:99
7677msgid "Are you sure you want to shut down?"
77−msgstr ""
78+msgstr "Anda yakin ingin mematikan?"
7879
7980#: qml/Components/Dialogs.qml:123
8081msgid "Reboot"
81−msgstr ""
82+msgstr "Boot ulang"
8283
8384#: qml/Components/Dialogs.qml:124
8485msgid "Are you sure you want to reboot?"
85−msgstr ""
86+msgstr "Anda yakin ingin boot ulang?"
8687
8788#: qml/Components/Dialogs.qml:148
8889msgid "Power"
89−msgstr ""
90+msgstr "Daya"
9091
9192#: qml/Components/Dialogs.qml:149
9293msgid ""
9394"Are you sure you would like\n"
9495"to power off?"
9596msgstr ""
97+"Anda yakin ingin\n"
98+"mematikan daya?"
9699
97100#: qml/Components/Dialogs.qml:151
98101msgid "Power off"
99−msgstr ""
102+msgstr "Matikan"
100103
101104#: qml/Components/Dialogs.qml:161
102105msgid "Restart"
103−msgstr ""
106+msgstr "Nyalakan ulang"
104107
105108#: qml/Components/Dialogs.qml:171
106109msgid "Cancel"
107−msgstr ""
110+msgstr "Batal"
108111
109112#: qml/Components/EdgeDemoOverlay.qml:151
110113msgid "Skip intro"
111−msgstr ""
114+msgstr "Lewati pengenalan"
112115
113116#: qml/Components/EdgeDemo.qml:112
114117msgid "Right edge"
115−msgstr ""
118+msgstr "Tepi kanan"
116119
117120#: qml/Components/EdgeDemo.qml:113
118121msgid "Try swiping from the right edge to unlock the phone"
119−msgstr ""
122+msgstr "Coba usap dari tepi kanan untuk membuka kunci telepon"
120123
121124#: qml/Components/EdgeDemo.qml:144
122125msgid "Top edge"
123−msgstr ""
126+msgstr "Tepi atas"
124127
125128#: qml/Components/EdgeDemo.qml:145
126129msgid "Try swiping from the top edge to access the indicators"
127−msgstr ""
130+msgstr "Coba usap dari tepi atas untuk mengakses indikator"
128131
129132#: qml/Components/EdgeDemo.qml:170
130133msgid "Close"
131−msgstr ""
134+msgstr "Tutup"
132135
133136#: qml/Components/EdgeDemo.qml:171
134137msgid "Swipe up again to close the settings screen"
135−msgstr ""
138+msgstr "Usap ke atas lagi untuk menutup layar pengaturan"
136139
137140#: qml/Components/EdgeDemo.qml:201
138141msgid "Left edge"
139−msgstr ""
142+msgstr "Tepi kiri"
140143
141144#: qml/Components/EdgeDemo.qml:202
142145msgid "Swipe from the left to reveal the launcher for quick access to apps"
143−msgstr ""
146+msgstr "Usap dari tepi kiri menampilkan peluncur untuk akses cepat aplikasi"
144147
145148#: qml/Components/EdgeDemo.qml:229
146149msgid "Well done"
147−msgstr ""
150+msgstr "Bagus sekali"
148151
149152#: qml/Components/EdgeDemo.qml:230
150153msgid ""
151154"You have now mastered the edge gestures and can start using the "
152155"phone<br><br>Tap on the screen to start"
153156msgstr ""
157+"Anda kini telah menguasai gestur tepi dan dapat mulai memakai "
158+"telepon<br><br>Ketuk pada layar untuk mulai"
154159
155160#: qml/Components/Lockscreen.qml:223
156161msgid "Return to Call"
157−msgstr ""
162+msgstr "Kembali ke Panggilan"
158163
159164#: qml/Components/Lockscreen.qml:223
160165msgid "Emergency Call"
161−msgstr ""
166+msgstr "Panggilan Darurat"
162167
163168#: qml/Components/Lockscreen.qml:255
164169msgid "OK"
165−msgstr ""
170+msgstr "OK"
166171
167172#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
168173msgid "See less"
169−msgstr ""
174+msgstr "Lihat lebih sedikit"
170175
171176#: qml/Dash/GenericScopeView.qml:434
172177msgid "See all"
173−msgstr ""
178+msgstr "Lihat semua"
174179
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
180+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176181#: qml/Panel/SearchIndicator.qml:27
177182msgid "Search"
178−msgstr ""
183+msgstr "Cari"
184+
185+#: qml/Dash/PageHeader.qml:260
186+msgid "Store"
187+msgstr "Simpan"
179188
180−#: qml/Dash/PageHeader.qml:268
189+#: qml/Dash/PageHeader.qml:277
181190msgid "Settings"
182−msgstr ""
191+msgstr "Pengaturan"
183192
184−#: qml/Dash/PageHeader.qml:275
193+#: qml/Dash/PageHeader.qml:284
185194msgid "Remove from Favorites"
186−msgstr ""
195+msgstr "Hapus dari Favorit"
187196
188−#: qml/Dash/PageHeader.qml:275
197+#: qml/Dash/PageHeader.qml:284
189198msgid "Add to Favorites"
190−msgstr ""
199+msgstr "Tambah ke Favorit"
191200
192201#: qml/Dash/Previews/PreviewActionCombo.qml:35
193202msgid "More..."
194−msgstr ""
203+msgstr "Lebih..."
195204
196205#: qml/Dash/Previews/PreviewActionCombo.qml:35
197206msgid "Less..."
198−msgstr ""
207+msgstr "Kurang..."
199208
200209#: qml/Dash/Previews/PreviewRatingInput.qml:81
201210msgid "Rate this"
202−msgstr ""
211+msgstr "Beri peringkat"
203212
204213#: qml/Dash/Previews/PreviewRatingInput.qml:126
205214msgid "Add a review"
206−msgstr ""
215+msgstr "Berikan ulasan"
207216
208217#: qml/Dash/Previews/PreviewRatingInput.qml:166
209218msgid "Send"
210−msgstr ""
219+msgstr "Kirim"
211220
212221#: qml/Dash/PullToRefreshScopeStyle.qml:55
213222msgid "Pull to refresh…"
214−msgstr ""
223+msgstr "Tarik untuk menyegarkan..."
215224
216225#: qml/Dash/PullToRefreshScopeStyle.qml:60
217226msgid "Release to refresh…"
218−msgstr ""
219−
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
222−msgstr ""
227+msgstr "Lepas untuk menyegarkan..."
223228
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
229+#: qml/Dash/ScopesList.qml:63
230+msgid "Manage"
226231msgstr ""
227232
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
233+#: qml/Dash/ScopesList.qml:105
234+msgid "Home"
230235msgstr ""
231236
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
237+#: qml/Dash/ScopesList.qml:106
238+msgid "Also installed"
238239msgstr ""
239240
240241#: qml/Greeter/Greeter.qml:174
241242msgid "Unlock"
242−msgstr ""
243+msgstr "Buka kunci"
243244
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
245+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245246msgid "Show password"
246−msgstr ""
247+msgstr "Tampilkan sandi"
247248
248249#: qml/Panel/ActiveCallHint.qml:79
249250msgid "Tap to return to call..."
250−msgstr ""
251+msgstr "Ketuk untuk kembali ke panggilan..."
251252
252253#: qml/Panel/ActiveCallHint.qml:92
253254msgid "Conference"
254−msgstr ""
255+msgstr "Konferensi"
255256
256257#: qml/Panel/Indicators/MenuItemFactory.qml:643
257258msgid "Nothing is playing"
258−msgstr ""
259+msgstr "Tak ada yang sedang diputar"
259260
260261#: qml/Panel/Indicators/MenuItemFactory.qml:791
261262msgid "In queue…"
262−msgstr ""
263+msgstr "Dalam antrian..."
263264
264265#: qml/Panel/Indicators/MenuItemFactory.qml:795
265266msgid "Downloading"
266−msgstr ""
267+msgstr "Sedang mengunduh"
267268
268269#: qml/Panel/Indicators/MenuItemFactory.qml:797
269270msgid "Paused, tap to resume"
270−msgstr ""
271+msgstr "Jeda, ketuk untuk melanjutkan"
271272
272273#: qml/Panel/Indicators/MenuItemFactory.qml:799
273274msgid "Canceled"
274−msgstr ""
275+msgstr "Dibatalkan"
275276
276277#: qml/Panel/Indicators/MenuItemFactory.qml:801
277278msgid "Finished"
278−msgstr ""
279+msgstr "Selesai"
279280
280281#: qml/Panel/Indicators/MenuItemFactory.qml:803
281282msgid "Failed, tap to retry"
282−msgstr ""
283+msgstr "Gagal, ketuk untuk mencoba ulang"
283284
284285#: qml/Panel/Indicators/ModemInfoItem.qml:105
285286msgid "Unlock SIM"
286−msgstr ""
287+msgstr "Buka Kunci SIM"
287288
288289#: qml/Panel/Indicators/RoamingIndication.qml:27
289290msgid "Roaming"
290−msgstr ""
291+msgstr "Roaming"
291292
292−#: qml/Shell.qml:391
293+#: qml/Shell.qml:390
293294msgid "Enter passphrase"
294−msgstr ""
295+msgstr "Masukkan frasa sandi"
295296
296−#: qml/Shell.qml:392
297+#: qml/Shell.qml:391
297298msgid "Sorry, incorrect passphrase"
298−msgstr ""
299+msgstr "Maaf, frasa sandi salah"
299300
300−#: qml/Shell.qml:393
301+#: qml/Shell.qml:392
301302msgid "Please re-enter"
302−msgstr ""
303+msgstr "Harap masukkan lagi"
303304
304−#: qml/Shell.qml:395
305+#: qml/Shell.qml:394
305306msgid "Enter passcode"
306−msgstr ""
307+msgstr "Masukkan kode sandi"
307308
308−#: qml/Shell.qml:396
309+#: qml/Shell.qml:395
309310msgid "Sorry, incorrect passcode"
310−msgstr ""
311+msgstr "Maaf, kode sandi salah"
311312
312−#: qml/Shell.qml:399
313+#: qml/Shell.qml:398
313314#, qt-format
314315msgid "Enter %1"
315−msgstr ""
316+msgstr "Masukkan %1"
316317
317−#: qml/Shell.qml:400
318+#: qml/Shell.qml:399
318319#, qt-format
319320msgid "Sorry, incorrect %1"
320−msgstr ""
321+msgstr "Maaf, %1 salah"
321322
322−#: qml/Shell.qml:441
323+#: qml/Shell.qml:440
323324msgid "Sorry, incorrect passphrase."
324−msgstr ""
325+msgstr "Maaf, frasa sandi salah."
325326
326−#: qml/Shell.qml:442
327+#: qml/Shell.qml:441
327328msgid "Sorry, incorrect passcode."
328−msgstr ""
329+msgstr "Maaf, kode sandi salah."
329330
330−#: qml/Shell.qml:443
331+#: qml/Shell.qml:442
331332msgid "This will be your last attempt."
332−msgstr ""
333+msgstr "Ini akan menjadi upaya terakhir Anda."
333334
334−#: qml/Shell.qml:445
335+#: qml/Shell.qml:444
335336msgid ""
336337"If passphrase is entered incorrectly, your phone will conduct a factory "
337338"reset and all personal data will be deleted."
338339msgstr ""
340+"Bila frasa sandi salah dimasukkan, telepon Anda akan melakukan reset pabrik "
341+"dan semua data pribadi akan dihapus."
339342
340−#: qml/Shell.qml:446
343+#: qml/Shell.qml:445
341344msgid ""
342345"If passcode is entered incorrectly, your phone will conduct a factory reset "
343346"and all personal data will be deleted."
344347msgstr ""
348+"Bila kode sandi salah dimasukkan, telepon Anda akan melakukan reset pabrik "
349+"dan semua data pribadi akan dihapus."
350+
351+#~ msgid "Loading. Please Wait..."
352+#~ msgstr "Memuat. Mohon Tunggu..."
353+
354+#~ msgid "Speaking..."
355+#~ msgstr "Berbicara..."
356+
357+#~ msgid "Confirm"
358+#~ msgstr "Konfirmasi"
359+
360+#~ msgid "Done"
361+#~ msgstr "Selesai"
362+
363+#~ msgid "Type or say a command"
364+#~ msgstr "Ketik atau ucapkan sebuah perintah"
365+
366+#~ msgid "Speak Now..."
367+#~ msgstr "Bicaralah Sekarang..."
368+
369+#~ msgid "All"
370+#~ msgstr "Semua"
371+
372+#~ msgid "Favorites"
373+#~ msgstr "Favorit"
374+
375+#~ msgid "Manage Scopes"
376+#~ msgstr "Kelola Skup"
po/is.po+52−44
@@ -9,7 +9,7 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: po_unity8-is\n"
1111"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
12−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
12+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1313"PO-Revision-Date: 2014-11-13 09:32+0000\n"
1414"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
1515"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
@@ -17,8 +17,8 @@ msgstr ""
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
1919"Plural-Forms: nplurals=2; plural=n != 1;\n"
20−"X-Launchpad-Export-Date: 2014-11-14 06:34+0000\n"
21−"X-Generator: Launchpad (build 17241)\n"
20+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
21+"X-Generator: Launchpad (build 17283)\n"
2222"Language: is\n"
2323
2424#: plugins/LightDM/Greeter.cpp:130
@@ -184,20 +184,24 @@ msgstr "Sjá minna"
184184msgid "See all"
185185msgstr "Sjá allt"
186186
187−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
187+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
188188#: qml/Panel/SearchIndicator.qml:27
189189msgid "Search"
190190msgstr "Leita"
191191
192−#: qml/Dash/PageHeader.qml:268
192+#: qml/Dash/PageHeader.qml:260
193+msgid "Store"
194+msgstr "Geyma"
195+
196+#: qml/Dash/PageHeader.qml:277
193197msgid "Settings"
194198msgstr "Stillingar"
195199
196−#: qml/Dash/PageHeader.qml:275
200+#: qml/Dash/PageHeader.qml:284
197201msgid "Remove from Favorites"
198202msgstr "Fjarlægja úr Eftirlæti"
199203
200−#: qml/Dash/PageHeader.qml:275
204+#: qml/Dash/PageHeader.qml:284
201205msgid "Add to Favorites"
202206msgstr "Bæta við Eftirlæti"
203207
@@ -229,31 +233,23 @@ msgstr "Toga til að endurlesa..."
229233msgid "Release to refresh…"
230234msgstr "Slepptu til að endurlesa..."
231235
232−#: qml/Dash/ScopesOverview.qml:215
233−msgid "Manage Scopes"
234−msgstr "Sýsla með leitarsvið"
235−
236−#: qml/Dash/ScopesOverview.qml:437
237−msgid "Done"
238−msgstr "Lokið"
239−
240−#: qml/Dash/ScopesOverview.qml:463
241−msgid "Store"
242−msgstr "Geyma"
236+#: qml/Dash/ScopesList.qml:63
237+msgid "Manage"
238+msgstr ""
243239
244−#: qml/Dash/ScopesOverviewTab.qml:36
245−msgid "Favorites"
246−msgstr "Eftirlæti"
240+#: qml/Dash/ScopesList.qml:105
241+msgid "Home"
242+msgstr ""
247243
248−#: qml/Dash/ScopesOverviewTab.qml:54
249−msgid "All"
250−msgstr "Allt"
244+#: qml/Dash/ScopesList.qml:106
245+msgid "Also installed"
246+msgstr ""
251247
252248#: qml/Greeter/Greeter.qml:174
253249msgid "Unlock"
254250msgstr "Aflæsa"
255251
256−#: qml/Notifications/NotificationMenuItemFactory.qml:116
252+#: qml/Notifications/NotificationMenuItemFactory.qml:128
257253msgid "Show password"
258254msgstr "Birta lykilorð"
259255
@@ -265,31 +261,31 @@ msgstr "Slá til að svara símtali..."
265261msgid "Conference"
266262msgstr "Ráðstefna"
267263
268−#: qml/Panel/Indicators/MenuItemFactory.qml:615
264+#: qml/Panel/Indicators/MenuItemFactory.qml:643
269265msgid "Nothing is playing"
270266msgstr "Ekkert er í afspilun"
271267
272−#: qml/Panel/Indicators/MenuItemFactory.qml:763
268+#: qml/Panel/Indicators/MenuItemFactory.qml:791
273269msgid "In queue…"
274270msgstr "Í biðröð..."
275271
276−#: qml/Panel/Indicators/MenuItemFactory.qml:767
272+#: qml/Panel/Indicators/MenuItemFactory.qml:795
277273msgid "Downloading"
278274msgstr "Sæki"
279275
280−#: qml/Panel/Indicators/MenuItemFactory.qml:769
276+#: qml/Panel/Indicators/MenuItemFactory.qml:797
281277msgid "Paused, tap to resume"
282278msgstr "Í bið, sláðu létt til að halda áfram"
283279
284−#: qml/Panel/Indicators/MenuItemFactory.qml:771
280+#: qml/Panel/Indicators/MenuItemFactory.qml:799
285281msgid "Canceled"
286282msgstr "Hætt við"
287283
288−#: qml/Panel/Indicators/MenuItemFactory.qml:773
284+#: qml/Panel/Indicators/MenuItemFactory.qml:801
289285msgid "Finished"
290286msgstr "Lokið"
291287
292−#: qml/Panel/Indicators/MenuItemFactory.qml:775
288+#: qml/Panel/Indicators/MenuItemFactory.qml:803
293289msgid "Failed, tap to retry"
294290msgstr "Mistókst, sláðu létt til að reyna aftur"
295291
@@ -301,49 +297,49 @@ msgstr "Aflæsa SIM-korti"
301297msgid "Roaming"
302298msgstr "Ráphamur"
303299
304−#: qml/Shell.qml:381
300+#: qml/Shell.qml:390
305301msgid "Enter passphrase"
306302msgstr "Settu inn lykilfrasa"
307303
308−#: qml/Shell.qml:382
304+#: qml/Shell.qml:391
309305msgid "Sorry, incorrect passphrase"
310306msgstr "Því miður, rangt lykilorð"
311307
312−#: qml/Shell.qml:383
308+#: qml/Shell.qml:392
313309msgid "Please re-enter"
314310msgstr "Settu aftur inn"
315311
316−#: qml/Shell.qml:385
312+#: qml/Shell.qml:394
317313msgid "Enter passcode"
318314msgstr "Settu inn aðgangskóða"
319315
320−#: qml/Shell.qml:386
316+#: qml/Shell.qml:395
321317msgid "Sorry, incorrect passcode"
322318msgstr "Því miður, rangur aðgangskóði"
323319
324−#: qml/Shell.qml:389
320+#: qml/Shell.qml:398
325321#, qt-format
326322msgid "Enter %1"
327323msgstr "Settu inn %1"
328324
329−#: qml/Shell.qml:390
325+#: qml/Shell.qml:399
330326#, qt-format
331327msgid "Sorry, incorrect %1"
332328msgstr "Því miður, rangt %1"
333329
334−#: qml/Shell.qml:431
330+#: qml/Shell.qml:440
335331msgid "Sorry, incorrect passphrase."
336332msgstr "Því miður, rangt lykilorð."
337333
338−#: qml/Shell.qml:432
334+#: qml/Shell.qml:441
339335msgid "Sorry, incorrect passcode."
340336msgstr "Því miður, rangur aðgangskóði."
341337
342−#: qml/Shell.qml:433
338+#: qml/Shell.qml:442
343339msgid "This will be your last attempt."
344340msgstr "Þetta mun verða síðasta tilraunin þín."
345341
346−#: qml/Shell.qml:435
342+#: qml/Shell.qml:444
347343msgid ""
348344"If passphrase is entered incorrectly, your phone will conduct a factory "
349345"reset and all personal data will be deleted."
@@ -351,7 +347,7 @@ msgstr ""
351347"Ef lykilorð er rangt, mun síminn frumstilla allt á verksmiðjustillingar og "
352348"öllum einkagögnum verður eytt."
353349
354−#: qml/Shell.qml:436
350+#: qml/Shell.qml:445
355351msgid ""
356352"If passcode is entered incorrectly, your phone will conduct a factory reset "
357353"and all personal data will be deleted."
@@ -373,3 +369,15 @@ msgstr ""
373369
374370#~ msgid "Speak Now..."
375371#~ msgstr "Tala núna..."
372+
373+#~ msgid "All"
374+#~ msgstr "Allt"
375+
376+#~ msgid "Favorites"
377+#~ msgstr "Eftirlæti"
378+
379+#~ msgid "Done"
380+#~ msgstr "Lokið"
381+
382+#~ msgid "Manage Scopes"
383+#~ msgstr "Sýsla með leitarsvið"
po/it.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-09-30 10:56+0000\n"
1212"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -185,20 +185,24 @@ msgstr "Mostra meno"
185185msgid "See all"
186186msgstr "Mostra tutto"
187187
188−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
188+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
189189#: qml/Panel/SearchIndicator.qml:27
190190msgid "Search"
191191msgstr "Cerca"
192192
193−#: qml/Dash/PageHeader.qml:268
193+#: qml/Dash/PageHeader.qml:260
194+msgid "Store"
195+msgstr "Store"
196+
197+#: qml/Dash/PageHeader.qml:277
194198msgid "Settings"
195199msgstr "Impostazioni"
196200
197−#: qml/Dash/PageHeader.qml:275
201+#: qml/Dash/PageHeader.qml:284
198202msgid "Remove from Favorites"
199203msgstr "Rimuovi dai preferiti"
200204
201−#: qml/Dash/PageHeader.qml:275
205+#: qml/Dash/PageHeader.qml:284
202206msgid "Add to Favorites"
203207msgstr "Aggiungi ai preferiti"
204208
@@ -230,31 +234,23 @@ msgstr "Scorrere per aggiornare…"
230234msgid "Release to refresh…"
231235msgstr "Rilasciare per aggiornare…"
232236
233−#: qml/Dash/ScopesOverview.qml:215
234−msgid "Manage Scopes"
235−msgstr "Gestisci Scope"
236−
237−#: qml/Dash/ScopesOverview.qml:437
238−msgid "Done"
239−msgstr "Fatto"
240−
241−#: qml/Dash/ScopesOverview.qml:463
242−msgid "Store"
243−msgstr "Store"
237+#: qml/Dash/ScopesList.qml:63
238+msgid "Manage"
239+msgstr ""
244240
245−#: qml/Dash/ScopesOverviewTab.qml:36
246−msgid "Favorites"
247−msgstr "Preferiti"
241+#: qml/Dash/ScopesList.qml:105
242+msgid "Home"
243+msgstr ""
248244
249−#: qml/Dash/ScopesOverviewTab.qml:54
250−msgid "All"
251−msgstr "Tutto"
245+#: qml/Dash/ScopesList.qml:106
246+msgid "Also installed"
247+msgstr ""
252248
253249#: qml/Greeter/Greeter.qml:174
254250msgid "Unlock"
255251msgstr "Sblocca"
256252
257−#: qml/Notifications/NotificationMenuItemFactory.qml:116
253+#: qml/Notifications/NotificationMenuItemFactory.qml:128
258254msgid "Show password"
259255msgstr "Mostra password"
260256
@@ -302,49 +298,49 @@ msgstr "Sblocca SIM"
302298msgid "Roaming"
303299msgstr "Roaming"
304300
305−#: qml/Shell.qml:391
301+#: qml/Shell.qml:390
306302msgid "Enter passphrase"
307303msgstr "Inserire passphrase"
308304
309−#: qml/Shell.qml:392
305+#: qml/Shell.qml:391
310306msgid "Sorry, incorrect passphrase"
311307msgstr "Passphrase errata"
312308
313−#: qml/Shell.qml:393
309+#: qml/Shell.qml:392
314310msgid "Please re-enter"
315311msgstr "Inserire nuovamente"
316312
317−#: qml/Shell.qml:395
313+#: qml/Shell.qml:394
318314msgid "Enter passcode"
319315msgstr "Inserire codice"
320316
321−#: qml/Shell.qml:396
317+#: qml/Shell.qml:395
322318msgid "Sorry, incorrect passcode"
323319msgstr "Passcode non corretto"
324320
325−#: qml/Shell.qml:399
321+#: qml/Shell.qml:398
326322#, qt-format
327323msgid "Enter %1"
328324msgstr "Inserire %1"
329325
330−#: qml/Shell.qml:400
326+#: qml/Shell.qml:399
331327#, qt-format
332328msgid "Sorry, incorrect %1"
333329msgstr "%1 non corretto"
334330
335−#: qml/Shell.qml:441
331+#: qml/Shell.qml:440
336332msgid "Sorry, incorrect passphrase."
337333msgstr "Passphrase non corretta"
338334
339−#: qml/Shell.qml:442
335+#: qml/Shell.qml:441
340336msgid "Sorry, incorrect passcode."
341337msgstr "Passcode non corretto"
342338
343−#: qml/Shell.qml:443
339+#: qml/Shell.qml:442
344340msgid "This will be your last attempt."
345341msgstr "Questo sarà l'ultimo tentativo."
346342
347−#: qml/Shell.qml:445
343+#: qml/Shell.qml:444
348344msgid ""
349345"If passphrase is entered incorrectly, your phone will conduct a factory "
350346"reset and all personal data will be deleted."
@@ -352,7 +348,7 @@ msgstr ""
352348"Se verrà inserita una passphrase errata, il telefono eseguirà un ripristino "
353349"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
354350
355−#: qml/Shell.qml:446
351+#: qml/Shell.qml:445
356352msgid ""
357353"If passcode is entered incorrectly, your phone will conduct a factory reset "
358354"and all personal data will be deleted."
@@ -374,3 +370,15 @@ msgstr ""
374370
375371#~ msgid "Speaking..."
376372#~ msgstr "Sto parlando..."
373+
374+#~ msgid "All"
375+#~ msgstr "Tutto"
376+
377+#~ msgid "Favorites"
378+#~ msgstr "Preferiti"
379+
380+#~ msgid "Done"
381+#~ msgstr "Fatto"
382+
383+#~ msgid "Manage Scopes"
384+#~ msgstr "Gestisci Scope"
po/ja.po+52−44
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-20 05:08+0000\n"
1212"Last-Translator: Kentaro Kazuhama <Unknown>\n"
1313"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-21 06:49+0000\n"
19−"X-Generator: Launchpad (build 17252)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr "隠す"
172172msgid "See all"
173173msgstr "すべて表示する"
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "検索"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr "保存"
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr "設定"
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr "お気に入りから削除する"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr "お気に入りに追加する"
191195
@@ -217,31 +221,23 @@ msgstr "引いて更新…"
217221msgid "Release to refresh…"
218222msgstr "指を離して更新…"
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
222−msgstr "Scopeの管理"
223−
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr "完了"
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
230−msgstr "保存"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
226+msgstr ""
231227
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr "お気に入り"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230+msgstr ""
235231
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
238−msgstr "すべて"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
234+msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr "ロックの解除"
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "パスワードを表示"
247243
@@ -253,31 +249,31 @@ msgstr "タップすると通話に戻ります..."
253249msgid "Conference"
254250msgstr "グループ通話"
255251
256−#: qml/Panel/Indicators/MenuItemFactory.qml:615
252+#: qml/Panel/Indicators/MenuItemFactory.qml:643
257253msgid "Nothing is playing"
258254msgstr ""
259255
260−#: qml/Panel/Indicators/MenuItemFactory.qml:763
256+#: qml/Panel/Indicators/MenuItemFactory.qml:791
261257msgid "In queue…"
262258msgstr "開始待ち..."
263259
264−#: qml/Panel/Indicators/MenuItemFactory.qml:767
260+#: qml/Panel/Indicators/MenuItemFactory.qml:795
265261msgid "Downloading"
266262msgstr "ダウンロード中"
267263
268−#: qml/Panel/Indicators/MenuItemFactory.qml:769
264+#: qml/Panel/Indicators/MenuItemFactory.qml:797
269265msgid "Paused, tap to resume"
270266msgstr "停止中、再開するにはタップしてください"
271267
272−#: qml/Panel/Indicators/MenuItemFactory.qml:771
268+#: qml/Panel/Indicators/MenuItemFactory.qml:799
273269msgid "Canceled"
274270msgstr "中止しました"
275271
276−#: qml/Panel/Indicators/MenuItemFactory.qml:773
272+#: qml/Panel/Indicators/MenuItemFactory.qml:801
277273msgid "Finished"
278274msgstr "完了しました"
279275
280−#: qml/Panel/Indicators/MenuItemFactory.qml:775
276+#: qml/Panel/Indicators/MenuItemFactory.qml:803
281277msgid "Failed, tap to retry"
282278msgstr "失敗しました、再試行するにはタップしてください"
283279
@@ -289,55 +285,55 @@ msgstr "SIMのアンロック"
289285msgid "Roaming"
290286msgstr "ローミング"
291287
292−#: qml/Shell.qml:381
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr "パスフレーズを入力"
295291
296−#: qml/Shell.qml:382
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr "パスフレーズが違います"
299295
300−#: qml/Shell.qml:383
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr "再入力してください"
303299
304−#: qml/Shell.qml:385
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr "パスコードを入力"
307303
308−#: qml/Shell.qml:386
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr "パスコードが違います"
311307
312−#: qml/Shell.qml:389
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr "%1 を入力"
316312
317−#: qml/Shell.qml:390
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr "%1が違います"
321317
322−#: qml/Shell.qml:431
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr "パスフレーズが間違っています。"
325321
326−#: qml/Shell.qml:432
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr "パスコードが間違っています。"
329325
330−#: qml/Shell.qml:433
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr "これが最後のチャンスです。"
333329
334−#: qml/Shell.qml:435
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr "パスフレーズが間違っている場合、ファクトリーリセットを実施し、すべての個人データは削除されます。"
339335
340−#: qml/Shell.qml:436
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
@@ -355,5 +351,17 @@ msgstr "パスコードが間違っている場合、ファクトリーリセッ
355351#~ msgid "Confirm"
356352#~ msgstr "確認"
357353
354+#~ msgid "All"
355+#~ msgstr "すべて"
356+
357+#~ msgid "Favorites"
358+#~ msgstr "お気に入り"
359+
360+#~ msgid "Done"
361+#~ msgstr "完了"
362+
358363#~ msgid "Type or say a command"
359364#~ msgstr "コマンドを音声かキーボードから入力"
365+
366+#~ msgid "Manage Scopes"
367+#~ msgstr "Scopeの管理"
po/km.po+41−36
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-08-20 02:48+0000\n"
1212"Last-Translator: Sophea Sok <sksophea@gmail.com>\n"
1313"Language-Team: Khmer <km@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -178,20 +178,24 @@ msgstr "មើល​តិច​ជាង"
178178msgid "See all"
179179msgstr "មើល​ទាំងអស់"
180180
181−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
182182#: qml/Panel/SearchIndicator.qml:27
183183msgid "Search"
184184msgstr "ស្វែង​រក"
185185
186−#: qml/Dash/PageHeader.qml:268
186+#: qml/Dash/PageHeader.qml:260
187+msgid "Store"
188+msgstr "រក្សាទុក"
189+
190+#: qml/Dash/PageHeader.qml:277
187191msgid "Settings"
188192msgstr "ការកំណត់"
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Remove from Favorites"
192196msgstr "យក​ចេញពី​សំណព្វ"
193197
194−#: qml/Dash/PageHeader.qml:275
198+#: qml/Dash/PageHeader.qml:284
195199msgid "Add to Favorites"
196200msgstr "បន្ថែម​ទៅ​សណព្វ"
197201
@@ -223,31 +227,23 @@ msgstr ""
223227msgid "Release to refresh…"
224228msgstr ""
225229
226−#: qml/Dash/ScopesOverview.qml:215
227−msgid "Manage Scopes"
230+#: qml/Dash/ScopesList.qml:63
231+msgid "Manage"
228232msgstr ""
229233
230−#: qml/Dash/ScopesOverview.qml:437
231−msgid "Done"
232−msgstr "ធ្វើរួច"
233−
234−#: qml/Dash/ScopesOverview.qml:463
235−msgid "Store"
236−msgstr "រក្សាទុក"
237−
238−#: qml/Dash/ScopesOverviewTab.qml:36
239−msgid "Favorites"
240−msgstr "និយម"
234+#: qml/Dash/ScopesList.qml:105
235+msgid "Home"
236+msgstr ""
241237
242−#: qml/Dash/ScopesOverviewTab.qml:54
243−msgid "All"
244−msgstr "ទាំងអស់"
238+#: qml/Dash/ScopesList.qml:106
239+msgid "Also installed"
240+msgstr ""
245241
246242#: qml/Greeter/Greeter.qml:174
247243msgid "Unlock"
248244msgstr ""
249245
250−#: qml/Notifications/NotificationMenuItemFactory.qml:116
246+#: qml/Notifications/NotificationMenuItemFactory.qml:128
251247msgid "Show password"
252248msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
253249
@@ -295,49 +291,49 @@ msgstr "ដោះ​សោ​ស៊ីម"
295291msgid "Roaming"
296292msgstr "រ៉ូមីង"
297293
298−#: qml/Shell.qml:391
294+#: qml/Shell.qml:390
299295msgid "Enter passphrase"
300296msgstr ""
301297
302−#: qml/Shell.qml:392
298+#: qml/Shell.qml:391
303299msgid "Sorry, incorrect passphrase"
304300msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ"
305301
306−#: qml/Shell.qml:393
302+#: qml/Shell.qml:392
307303msgid "Please re-enter"
308304msgstr ""
309305
310−#: qml/Shell.qml:395
306+#: qml/Shell.qml:394
311307msgid "Enter passcode"
312308msgstr ""
313309
314−#: qml/Shell.qml:396
310+#: qml/Shell.qml:395
315311msgid "Sorry, incorrect passcode"
316312msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ"
317313
318−#: qml/Shell.qml:399
314+#: qml/Shell.qml:398
319315#, qt-format
320316msgid "Enter %1"
321317msgstr ""
322318
323−#: qml/Shell.qml:400
319+#: qml/Shell.qml:399
324320#, qt-format
325321msgid "Sorry, incorrect %1"
326322msgstr "សូមទោស! %1 មិន​ត្រឹមត្រូវ"
327323
328−#: qml/Shell.qml:441
324+#: qml/Shell.qml:440
329325msgid "Sorry, incorrect passphrase."
330326msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
331327
332−#: qml/Shell.qml:442
328+#: qml/Shell.qml:441
333329msgid "Sorry, incorrect passcode."
334330msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
335331
336−#: qml/Shell.qml:443
332+#: qml/Shell.qml:442
337333msgid "This will be your last attempt."
338334msgstr "នេះ​គឺ​ការ​ព្យាយាម​លើក​ចុងក្រោយ។"
339335
340−#: qml/Shell.qml:445
336+#: qml/Shell.qml:444
341337msgid ""
342338"If passphrase is entered incorrectly, your phone will conduct a factory "
343339"reset and all personal data will be deleted."
@@ -346,7 +342,7 @@ msgstr ""
346342"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
347343"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
348344
349−#: qml/Shell.qml:446
345+#: qml/Shell.qml:445
350346msgid ""
351347"If passcode is entered incorrectly, your phone will conduct a factory reset "
352348"and all personal data will be deleted."
@@ -369,3 +365,12 @@ msgstr ""
369365
370366#~ msgid "Speaking..."
371367#~ msgstr "កំពុង​និយាយ..."
368+
369+#~ msgid "All"
370+#~ msgstr "ទាំងអស់"
371+
372+#~ msgid "Favorites"
373+#~ msgstr "និយម"
374+
375+#~ msgid "Done"
376+#~ msgstr "ធ្វើរួច"
po/kn.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-06-27 05:43+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "ಹುಡುಕು"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/ko.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-08-19 13:02+0000\n"
1212"Last-Translator: MinSik CHO <Unknown>\n"
1313"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr "간단히 표시"
172172msgid "See all"
173173msgstr "모두 보기"
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "검색"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr "장터"
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr "설정"
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr "즐겨찾기에서 제거"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr "즐겨찾기에 추가"
191195
@@ -217,31 +221,23 @@ msgstr "당기면 새로 고침..."
217221msgid "Release to refresh…"
218222msgstr "놓으면 새로 고침..."
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
222−msgstr "스코프 관리"
223−
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr "완료"
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
230−msgstr "장터"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
226+msgstr ""
231227
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr "즐겨찾기"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230+msgstr ""
235231
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
238−msgstr "모두"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
234+msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr "잠금 해제"
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "암호 표시"
247243
@@ -289,55 +285,55 @@ msgstr "심 카드 잠금 해제"
289285msgid "Roaming"
290286msgstr "로밍"
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr "패스프레이즈를 입력해주십시오."
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr "죄송합니다. 패스프레이즈가 올바르지 않습니다."
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr "다시 입력해주십시오."
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr "패스코드를 입력해주십시오."
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr "죄송합니다. 패스코드가 올바르지 않습니다."
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr "%1 입력"
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr "죄송합니다. %1이(가) 올바르지 않습니다."
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr "올바르지 않은 패스프레이즈입니다."
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr "최송합니다. 패스코드가 올바르지 않습니다."
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr "마지막 시도입니다."
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr "이번에도 올바르지 않은 패스프레이즈를 입력하면 휴대 전화를 공장 초기화하여 모든 개인 정보를 삭제합니다."
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
@@ -355,5 +351,17 @@ msgstr "이번에도 올바르지 않은 패스코드를 입력하면 휴대 전
355351#~ msgid "Speaking..."
356352#~ msgstr "말하는 중..."
357353
354+#~ msgid "Done"
355+#~ msgstr "완료"
356+
357+#~ msgid "All"
358+#~ msgstr "모두"
359+
360+#~ msgid "Favorites"
361+#~ msgstr "즐겨찾기"
362+
358363#~ msgid "Loading. Please Wait..."
359364#~ msgstr "불러오는 중 입니다. 짐시 기다려주십시오..."
365+
366+#~ msgid "Manage Scopes"
367+#~ msgstr "스코프 관리"
po/ku.po+41−36
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-09-10 13:14+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Kurdish <ku@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -175,20 +175,24 @@ msgstr "Hindiktir bibîne"
175175msgid "See all"
176176msgstr "Tevî bibîne"
177177
178−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
179179#: qml/Panel/SearchIndicator.qml:27
180180msgid "Search"
181181msgstr "Lêgerîn"
182182
183−#: qml/Dash/PageHeader.qml:268
183+#: qml/Dash/PageHeader.qml:260
184+msgid "Store"
185+msgstr "Firoşgeh"
186+
187+#: qml/Dash/PageHeader.qml:277
184188msgid "Settings"
185189msgstr "Eyar"
186190
187−#: qml/Dash/PageHeader.qml:275
191+#: qml/Dash/PageHeader.qml:284
188192msgid "Remove from Favorites"
189193msgstr "Ji nav Bijareyan rake"
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Add to Favorites"
193197msgstr "Li Bijareyan zêde bike"
194198
@@ -220,31 +224,23 @@ msgstr ""
220224msgid "Release to refresh…"
221225msgstr ""
222226
223−#: qml/Dash/ScopesOverview.qml:215
224−msgid "Manage Scopes"
227+#: qml/Dash/ScopesList.qml:63
228+msgid "Manage"
225229msgstr ""
226230
227−#: qml/Dash/ScopesOverview.qml:437
228−msgid "Done"
229−msgstr "Qediya"
230−
231−#: qml/Dash/ScopesOverview.qml:463
232−msgid "Store"
233−msgstr "Firoşgeh"
234−
235−#: qml/Dash/ScopesOverviewTab.qml:36
236−msgid "Favorites"
237−msgstr "Bijare"
231+#: qml/Dash/ScopesList.qml:105
232+msgid "Home"
233+msgstr ""
238234
239−#: qml/Dash/ScopesOverviewTab.qml:54
240−msgid "All"
241−msgstr "Hemû"
235+#: qml/Dash/ScopesList.qml:106
236+msgid "Also installed"
237+msgstr ""
242238
243239#: qml/Greeter/Greeter.qml:174
244240msgid "Unlock"
245241msgstr ""
246242
247−#: qml/Notifications/NotificationMenuItemFactory.qml:116
243+#: qml/Notifications/NotificationMenuItemFactory.qml:128
248244msgid "Show password"
249245msgstr "Şîfreyê nîşan bide"
250246
@@ -292,49 +288,49 @@ msgstr "Kilîda SIMê veke"
292288msgid "Roaming"
293289msgstr "Geriyan"
294290
295−#: qml/Shell.qml:391
291+#: qml/Shell.qml:390
296292msgid "Enter passphrase"
297293msgstr ""
298294
299−#: qml/Shell.qml:392
295+#: qml/Shell.qml:391
300296msgid "Sorry, incorrect passphrase"
301297msgstr "Bibore, parola çewt e"
302298
303−#: qml/Shell.qml:393
299+#: qml/Shell.qml:392
304300msgid "Please re-enter"
305301msgstr ""
306302
307−#: qml/Shell.qml:395
303+#: qml/Shell.qml:394
308304msgid "Enter passcode"
309305msgstr ""
310306
311−#: qml/Shell.qml:396
307+#: qml/Shell.qml:395
312308msgid "Sorry, incorrect passcode"
313309msgstr "Bibore, parola çewrt e"
314310
315−#: qml/Shell.qml:399
311+#: qml/Shell.qml:398
316312#, qt-format
317313msgid "Enter %1"
318314msgstr ""
319315
320−#: qml/Shell.qml:400
316+#: qml/Shell.qml:399
321317#, qt-format
322318msgid "Sorry, incorrect %1"
323319msgstr "Bibore, %1 çewt e"
324320
325−#: qml/Shell.qml:441
321+#: qml/Shell.qml:440
326322msgid "Sorry, incorrect passphrase."
327323msgstr "Bibore, parola çewt e."
328324
329−#: qml/Shell.qml:442
325+#: qml/Shell.qml:441
330326msgid "Sorry, incorrect passcode."
331327msgstr "Bibore, parola çewt e."
332328
333−#: qml/Shell.qml:443
329+#: qml/Shell.qml:442
334330msgid "This will be your last attempt."
335331msgstr "Ev ê ceribandina dawiyê be."
336332
337−#: qml/Shell.qml:445
333+#: qml/Shell.qml:444
338334msgid ""
339335"If passphrase is entered incorrectly, your phone will conduct a factory "
340336"reset and all personal data will be deleted."
@@ -342,7 +338,7 @@ msgstr ""
342338"Eger parola çewt bê nivîsandin, telefona te dê vegere eyarên fabrîkayê û "
343339"hemû daneyên te yên taybet dê bên jêbirin."
344340
345−#: qml/Shell.qml:446
341+#: qml/Shell.qml:445
346342msgid ""
347343"If passcode is entered incorrectly, your phone will conduct a factory reset "
348344"and all personal data will be deleted."
@@ -359,8 +355,17 @@ msgstr ""
359355#~ msgid "Speak Now..."
360356#~ msgstr "Niha biaxive..."
361357
358+#~ msgid "All"
359+#~ msgstr "Hemû"
360+
362361#~ msgid "Confirm"
363362#~ msgstr "Erê bike"
364363
364+#~ msgid "Favorites"
365+#~ msgstr "Bijare"
366+
367+#~ msgid "Done"
368+#~ msgstr "Qediya"
369+
365370#~ msgid "Speaking..."
366371#~ msgstr "Diaxive..."
po/ky.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-06-27 06:17+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "Издөө"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/lo.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-10-02 10:00+0000\n"
1212"Last-Translator: Anousak <anousak@gmail.com>\n"
1313"Language-Team: Lao <lo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "ຊອກຫາ"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/lt.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-05-19 17:15+0000\n"
1212"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
1313"Language-Team: Lithuanian <lt@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"(n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -176,20 +176,24 @@ msgstr ""
176176msgid "See all"
177177msgstr ""
178178
179−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "Paieška"
183183
184−#: qml/Dash/PageHeader.qml:268
184+#: qml/Dash/PageHeader.qml:260
185+msgid "Store"
186+msgstr ""
187+
188+#: qml/Dash/PageHeader.qml:277
185189msgid "Settings"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Remove from Favorites"
190194msgstr ""
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Add to Favorites"
194198msgstr ""
195199
@@ -221,31 +225,23 @@ msgstr ""
221225msgid "Release to refresh…"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:215
225−msgid "Manage Scopes"
228+#: qml/Dash/ScopesList.qml:63
229+msgid "Manage"
226230msgstr ""
227231
228−#: qml/Dash/ScopesOverview.qml:437
229−msgid "Done"
230−msgstr ""
231−
232−#: qml/Dash/ScopesOverview.qml:463
233−msgid "Store"
232+#: qml/Dash/ScopesList.qml:105
233+msgid "Home"
234234msgstr ""
235235
236−#: qml/Dash/ScopesOverviewTab.qml:36
237−msgid "Favorites"
238−msgstr ""
239−
240−#: qml/Dash/ScopesOverviewTab.qml:54
241−msgid "All"
236+#: qml/Dash/ScopesList.qml:106
237+msgid "Also installed"
242238msgstr ""
243239
244240#: qml/Greeter/Greeter.qml:174
245241msgid "Unlock"
246242msgstr ""
247243
248−#: qml/Notifications/NotificationMenuItemFactory.qml:116
244+#: qml/Notifications/NotificationMenuItemFactory.qml:128
249245msgid "Show password"
250246msgstr "Rodyti slaptažodį"
251247
@@ -293,55 +289,55 @@ msgstr ""
293289msgid "Roaming"
294290msgstr ""
295291
296−#: qml/Shell.qml:391
292+#: qml/Shell.qml:390
297293msgid "Enter passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:392
296+#: qml/Shell.qml:391
301297msgid "Sorry, incorrect passphrase"
302298msgstr ""
303299
304−#: qml/Shell.qml:393
300+#: qml/Shell.qml:392
305301msgid "Please re-enter"
306302msgstr ""
307303
308−#: qml/Shell.qml:395
304+#: qml/Shell.qml:394
309305msgid "Enter passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:396
308+#: qml/Shell.qml:395
313309msgid "Sorry, incorrect passcode"
314310msgstr ""
315311
316−#: qml/Shell.qml:399
312+#: qml/Shell.qml:398
317313#, qt-format
318314msgid "Enter %1"
319315msgstr ""
320316
321−#: qml/Shell.qml:400
317+#: qml/Shell.qml:399
322318#, qt-format
323319msgid "Sorry, incorrect %1"
324320msgstr ""
325321
326−#: qml/Shell.qml:441
322+#: qml/Shell.qml:440
327323msgid "Sorry, incorrect passphrase."
328324msgstr ""
329325
330−#: qml/Shell.qml:442
326+#: qml/Shell.qml:441
331327msgid "Sorry, incorrect passcode."
332328msgstr ""
333329
334−#: qml/Shell.qml:443
330+#: qml/Shell.qml:442
335331msgid "This will be your last attempt."
336332msgstr ""
337333
338−#: qml/Shell.qml:445
334+#: qml/Shell.qml:444
339335msgid ""
340336"If passphrase is entered incorrectly, your phone will conduct a factory "
341337"reset and all personal data will be deleted."
342338msgstr ""
343339
344−#: qml/Shell.qml:446
340+#: qml/Shell.qml:445
345341msgid ""
346342"If passcode is entered incorrectly, your phone will conduct a factory reset "
347343"and all personal data will be deleted."
po/lv.po+41−36
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-08-21 09:46+0000\n"
1212"Last-Translator: Jānis Marks Gailis <jm-gailis@fai-vianet.fr>\n"
1313"Language-Team: Latvian <lv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr "Redzēt mazāk"
172172msgid "See all"
173173msgstr "Skatīt visus"
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "Meklēt"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr "Veikals"
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr "Iestatījumi"
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr "Izņemt no izlases"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr "Pievienot izlasei"
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr "Pabeigts"
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
230−msgstr "Veikals"
231−
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr "Iecienītās"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230+msgstr ""
235231
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
238−msgstr "Visi"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
234+msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "Rādīt paroli"
247243
@@ -289,55 +285,55 @@ msgstr "Atbloķēt SIM"
289285msgid "Roaming"
290286msgstr "Viesabonēšana"
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr "Šīs būs jūs pēdējais mēģinājums."
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
@@ -357,3 +353,12 @@ msgstr ""
357353
358354#~ msgid "Speaking..."
359355#~ msgstr "Runa..."
356+
357+#~ msgid "All"
358+#~ msgstr "Visi"
359+
360+#~ msgid "Favorites"
361+#~ msgstr "Iecienītās"
362+
363+#~ msgid "Done"
364+#~ msgstr "Pabeigts"
po/ml.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-11-23 11:44+0000\n"
1212"Last-Translator: ST Alfas <Unknown>\n"
1313"Language-Team: Malayalam <ml@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -174,20 +174,24 @@ msgstr ""
174174msgid "See all"
175175msgstr ""
176176
177−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
177+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
178178#: qml/Panel/SearchIndicator.qml:27
179179msgid "Search"
180180msgstr "തിരയുക"
181181
182−#: qml/Dash/PageHeader.qml:268
182+#: qml/Dash/PageHeader.qml:260
183+msgid "Store"
184+msgstr ""
185+
186+#: qml/Dash/PageHeader.qml:277
183187msgid "Settings"
184188msgstr ""
185189
186−#: qml/Dash/PageHeader.qml:275
190+#: qml/Dash/PageHeader.qml:284
187191msgid "Remove from Favorites"
188192msgstr ""
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Add to Favorites"
192196msgstr ""
193197
@@ -219,31 +223,23 @@ msgstr ""
219223msgid "Release to refresh…"
220224msgstr ""
221225
222−#: qml/Dash/ScopesOverview.qml:215
223−msgid "Manage Scopes"
226+#: qml/Dash/ScopesList.qml:63
227+msgid "Manage"
224228msgstr ""
225229
226−#: qml/Dash/ScopesOverview.qml:437
227−msgid "Done"
228−msgstr ""
229−
230−#: qml/Dash/ScopesOverview.qml:463
231−msgid "Store"
230+#: qml/Dash/ScopesList.qml:105
231+msgid "Home"
232232msgstr ""
233233
234−#: qml/Dash/ScopesOverviewTab.qml:36
235−msgid "Favorites"
236−msgstr ""
237−
238−#: qml/Dash/ScopesOverviewTab.qml:54
239−msgid "All"
234+#: qml/Dash/ScopesList.qml:106
235+msgid "Also installed"
240236msgstr ""
241237
242238#: qml/Greeter/Greeter.qml:174
243239msgid "Unlock"
244240msgstr ""
245241
246−#: qml/Notifications/NotificationMenuItemFactory.qml:116
242+#: qml/Notifications/NotificationMenuItemFactory.qml:128
247243msgid "Show password"
248244msgstr "രഹസ്യവാക്ക് കാണിക്കുക"
249245
@@ -291,55 +287,55 @@ msgstr ""
291287msgid "Roaming"
292288msgstr ""
293289
294−#: qml/Shell.qml:391
290+#: qml/Shell.qml:390
295291msgid "Enter passphrase"
296292msgstr ""
297293
298−#: qml/Shell.qml:392
294+#: qml/Shell.qml:391
299295msgid "Sorry, incorrect passphrase"
300296msgstr ""
301297
302−#: qml/Shell.qml:393
298+#: qml/Shell.qml:392
303299msgid "Please re-enter"
304300msgstr ""
305301
306−#: qml/Shell.qml:395
302+#: qml/Shell.qml:394
307303msgid "Enter passcode"
308304msgstr ""
309305
310−#: qml/Shell.qml:396
306+#: qml/Shell.qml:395
311307msgid "Sorry, incorrect passcode"
312308msgstr ""
313309
314−#: qml/Shell.qml:399
310+#: qml/Shell.qml:398
315311#, qt-format
316312msgid "Enter %1"
317313msgstr ""
318314
319−#: qml/Shell.qml:400
315+#: qml/Shell.qml:399
320316#, qt-format
321317msgid "Sorry, incorrect %1"
322318msgstr ""
323319
324−#: qml/Shell.qml:441
320+#: qml/Shell.qml:440
325321msgid "Sorry, incorrect passphrase."
326322msgstr ""
327323
328−#: qml/Shell.qml:442
324+#: qml/Shell.qml:441
329325msgid "Sorry, incorrect passcode."
330326msgstr ""
331327
332−#: qml/Shell.qml:443
328+#: qml/Shell.qml:442
333329msgid "This will be your last attempt."
334330msgstr ""
335331
336−#: qml/Shell.qml:445
332+#: qml/Shell.qml:444
337333msgid ""
338334"If passphrase is entered incorrectly, your phone will conduct a factory "
339335"reset and all personal data will be deleted."
340336msgstr ""
341337
342−#: qml/Shell.qml:446
338+#: qml/Shell.qml:445
343339msgid ""
344340"If passcode is entered incorrectly, your phone will conduct a factory reset "
345341"and all personal data will be deleted."
po/mr.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-14 19:54+0000\n"
1212"Last-Translator: Rohan Deshmukh <Unknown>\n"
1313"Language-Team: Marathi <mr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/ms.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-17 09:05+0000\n"
1212"Last-Translator: abuyop <Unknown>\n"
1313"Language-Team: Malay <ms@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -176,20 +176,24 @@ msgstr "Lihat kurang"
176176msgid "See all"
177177msgstr "Lihat semua"
178178
179−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "Gelintar"
183183
184−#: qml/Dash/PageHeader.qml:268
184+#: qml/Dash/PageHeader.qml:260
185+msgid "Store"
186+msgstr "Kedai"
187+
188+#: qml/Dash/PageHeader.qml:277
185189msgid "Settings"
186190msgstr "Tetapan"
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Remove from Favorites"
190194msgstr "Buang dari Kegemaran"
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Add to Favorites"
194198msgstr "Tambah ke Kegemaran"
195199
@@ -221,31 +225,23 @@ msgstr "Tarik untuk segar semula..."
221225msgid "Release to refresh…"
222226msgstr "Lepas untuk segar semula..."
223227
224−#: qml/Dash/ScopesOverview.qml:215
225−msgid "Manage Scopes"
226−msgstr "Urus Skop"
227−
228−#: qml/Dash/ScopesOverview.qml:437
229−msgid "Done"
230−msgstr "Selesai"
231−
232−#: qml/Dash/ScopesOverview.qml:463
233−msgid "Store"
234−msgstr "Kedai"
228+#: qml/Dash/ScopesList.qml:63
229+msgid "Manage"
230+msgstr ""
235231
236−#: qml/Dash/ScopesOverviewTab.qml:36
237−msgid "Favorites"
238−msgstr "Kegemaran"
232+#: qml/Dash/ScopesList.qml:105
233+msgid "Home"
234+msgstr ""
239235
240−#: qml/Dash/ScopesOverviewTab.qml:54
241−msgid "All"
242−msgstr "Semua"
236+#: qml/Dash/ScopesList.qml:106
237+msgid "Also installed"
238+msgstr ""
243239
244240#: qml/Greeter/Greeter.qml:174
245241msgid "Unlock"
246242msgstr "Buka"
247243
248−#: qml/Notifications/NotificationMenuItemFactory.qml:116
244+#: qml/Notifications/NotificationMenuItemFactory.qml:128
249245msgid "Show password"
250246msgstr "Tunjuk kata laluan"
251247
@@ -293,49 +289,49 @@ msgstr "Buka SIM"
293289msgid "Roaming"
294290msgstr "Perayauan"
295291
296−#: qml/Shell.qml:391
292+#: qml/Shell.qml:390
297293msgid "Enter passphrase"
298294msgstr "Masukkan frasa laluan"
299295
300−#: qml/Shell.qml:392
296+#: qml/Shell.qml:391
301297msgid "Sorry, incorrect passphrase"
302298msgstr "Maaf, frasa laluan salah"
303299
304−#: qml/Shell.qml:393
300+#: qml/Shell.qml:392
305301msgid "Please re-enter"
306302msgstr "Sila masuk-semula"
307303
308−#: qml/Shell.qml:395
304+#: qml/Shell.qml:394
309305msgid "Enter passcode"
310306msgstr "Masukkan kod laluan"
311307
312−#: qml/Shell.qml:396
308+#: qml/Shell.qml:395
313309msgid "Sorry, incorrect passcode"
314310msgstr "Maaf, kod laluan salah"
315311
316−#: qml/Shell.qml:399
312+#: qml/Shell.qml:398
317313#, qt-format
318314msgid "Enter %1"
319315msgstr "Masuk %1"
320316
321−#: qml/Shell.qml:400
317+#: qml/Shell.qml:399
322318#, qt-format
323319msgid "Sorry, incorrect %1"
324320msgstr "Maaf, %1 salah"
325321
326−#: qml/Shell.qml:441
322+#: qml/Shell.qml:440
327323msgid "Sorry, incorrect passphrase."
328324msgstr "Maaf, frasa laluan salah."
329325
330−#: qml/Shell.qml:442
326+#: qml/Shell.qml:441
331327msgid "Sorry, incorrect passcode."
332328msgstr "Maaf, kod laluan salah."
333329
334−#: qml/Shell.qml:443
330+#: qml/Shell.qml:442
335331msgid "This will be your last attempt."
336332msgstr "Ini merupakan percubaan terakhir anda."
337333
338−#: qml/Shell.qml:445
334+#: qml/Shell.qml:444
339335msgid ""
340336"If passphrase is entered incorrectly, your phone will conduct a factory "
341337"reset and all personal data will be deleted."
@@ -343,7 +339,7 @@ msgstr ""
343339"Jika frasa laluan masih salah, telefon anda akan membuat tetapan semula "
344340"kilang dan semua data peribadi anda akan dipadam."
345341
346−#: qml/Shell.qml:446
342+#: qml/Shell.qml:445
347343msgid ""
348344"If passcode is entered incorrectly, your phone will conduct a factory reset "
349345"and all personal data will be deleted."
@@ -365,3 +361,15 @@ msgstr ""
365361
366362#~ msgid "Confirm"
367363#~ msgstr "Sahkan"
364+
365+#~ msgid "All"
366+#~ msgstr "Semua"
367+
368+#~ msgid "Favorites"
369+#~ msgstr "Kegemaran"
370+
371+#~ msgid "Done"
372+#~ msgstr "Selesai"
373+
374+#~ msgid "Manage Scopes"
375+#~ msgstr "Urus Skop"
po/my.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-12-12 11:12+0000\n"
1212"Last-Translator: Pyae Sone <Unknown>\n"
1313"Language-Team: Burmese <my@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "ရှာဖွေ"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "စကားဝှက်ကိုပြ"
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/nb.po+52−44
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-12 19:57+0000\n"
1212"Last-Translator: Ari Börde Kröyer <Unknown>\n"
1313"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-13 06:37+0000\n"
19−"X-Generator: Launchpad (build 17241)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -178,20 +178,24 @@ msgstr "Vis mindre"
178178msgid "See all"
179179msgstr "Vis alt"
180180
181−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
182182#: qml/Panel/SearchIndicator.qml:27
183183msgid "Search"
184184msgstr "Søk"
185185
186−#: qml/Dash/PageHeader.qml:268
186+#: qml/Dash/PageHeader.qml:260
187+msgid "Store"
188+msgstr "Butikk"
189+
190+#: qml/Dash/PageHeader.qml:277
187191msgid "Settings"
188192msgstr "Innstillinger"
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Remove from Favorites"
192196msgstr "Fjern fra favoritter"
193197
194−#: qml/Dash/PageHeader.qml:275
198+#: qml/Dash/PageHeader.qml:284
195199msgid "Add to Favorites"
196200msgstr "Legg til i favoritter"
197201
@@ -223,31 +227,23 @@ msgstr "Dra for å oppdatere …"
223227msgid "Release to refresh…"
224228msgstr "Slipp for å oppdatere …"
225229
226−#: qml/Dash/ScopesOverview.qml:215
227−msgid "Manage Scopes"
228−msgstr "Håndter virkefelt"
229−
230−#: qml/Dash/ScopesOverview.qml:437
231−msgid "Done"
232−msgstr "Ferdig"
233−
234−#: qml/Dash/ScopesOverview.qml:463
235−msgid "Store"
236−msgstr "Butikk"
230+#: qml/Dash/ScopesList.qml:63
231+msgid "Manage"
232+msgstr ""
237233
238−#: qml/Dash/ScopesOverviewTab.qml:36
239−msgid "Favorites"
240−msgstr "Favoritter"
234+#: qml/Dash/ScopesList.qml:105
235+msgid "Home"
236+msgstr ""
241237
242−#: qml/Dash/ScopesOverviewTab.qml:54
243−msgid "All"
244−msgstr "Alt"
238+#: qml/Dash/ScopesList.qml:106
239+msgid "Also installed"
240+msgstr ""
245241
246242#: qml/Greeter/Greeter.qml:174
247243msgid "Unlock"
248244msgstr "Lås opp"
249245
250−#: qml/Notifications/NotificationMenuItemFactory.qml:116
246+#: qml/Notifications/NotificationMenuItemFactory.qml:128
251247msgid "Show password"
252248msgstr "Vis passord"
253249
@@ -259,31 +255,31 @@ msgstr "Trykk for å gå tilbake til anrop …"
259255msgid "Conference"
260256msgstr "Konferanse"
261257
262−#: qml/Panel/Indicators/MenuItemFactory.qml:615
258+#: qml/Panel/Indicators/MenuItemFactory.qml:643
263259msgid "Nothing is playing"
264260msgstr "Ingenting spilles nå"
265261
266−#: qml/Panel/Indicators/MenuItemFactory.qml:763
262+#: qml/Panel/Indicators/MenuItemFactory.qml:791
267263msgid "In queue…"
268264msgstr "I kø …"
269265
270−#: qml/Panel/Indicators/MenuItemFactory.qml:767
266+#: qml/Panel/Indicators/MenuItemFactory.qml:795
271267msgid "Downloading"
272268msgstr "Laster ned"
273269
274−#: qml/Panel/Indicators/MenuItemFactory.qml:769
270+#: qml/Panel/Indicators/MenuItemFactory.qml:797
275271msgid "Paused, tap to resume"
276272msgstr "Satt på pause (trykk for å fortsette)"
277273
278−#: qml/Panel/Indicators/MenuItemFactory.qml:771
274+#: qml/Panel/Indicators/MenuItemFactory.qml:799
279275msgid "Canceled"
280276msgstr "Avbrutt"
281277
282−#: qml/Panel/Indicators/MenuItemFactory.qml:773
278+#: qml/Panel/Indicators/MenuItemFactory.qml:801
283279msgid "Finished"
284280msgstr "Ferdig"
285281
286−#: qml/Panel/Indicators/MenuItemFactory.qml:775
282+#: qml/Panel/Indicators/MenuItemFactory.qml:803
287283msgid "Failed, tap to retry"
288284msgstr "Feilet. Trykk for å prøve på nytt"
289285
@@ -295,49 +291,49 @@ msgstr "Lås opp SIM"
295291msgid "Roaming"
296292msgstr "Fremmednett"
297293
298−#: qml/Shell.qml:381
294+#: qml/Shell.qml:390
299295msgid "Enter passphrase"
300296msgstr "Skriv inn passordfrase"
301297
302−#: qml/Shell.qml:382
298+#: qml/Shell.qml:391
303299msgid "Sorry, incorrect passphrase"
304300msgstr "Feil passordfrase"
305301
306−#: qml/Shell.qml:383
302+#: qml/Shell.qml:392
307303msgid "Please re-enter"
308304msgstr "Skriv inn på nytt"
309305
310−#: qml/Shell.qml:385
306+#: qml/Shell.qml:394
311307msgid "Enter passcode"
312308msgstr "Tast kode"
313309
314−#: qml/Shell.qml:386
310+#: qml/Shell.qml:395
315311msgid "Sorry, incorrect passcode"
316312msgstr "Feil kode"
317313
318−#: qml/Shell.qml:389
314+#: qml/Shell.qml:398
319315#, qt-format
320316msgid "Enter %1"
321317msgstr "Skriv inn %1"
322318
323−#: qml/Shell.qml:390
319+#: qml/Shell.qml:399
324320#, qt-format
325321msgid "Sorry, incorrect %1"
326322msgstr "Feil %1"
327323
328−#: qml/Shell.qml:431
324+#: qml/Shell.qml:440
329325msgid "Sorry, incorrect passphrase."
330326msgstr "Feil passordfrase."
331327
332−#: qml/Shell.qml:432
328+#: qml/Shell.qml:441
333329msgid "Sorry, incorrect passcode."
334330msgstr "Feil kode."
335331
336−#: qml/Shell.qml:433
332+#: qml/Shell.qml:442
337333msgid "This will be your last attempt."
338334msgstr "Dette er ditt siste forsøk."
339335
340−#: qml/Shell.qml:435
336+#: qml/Shell.qml:444
341337msgid ""
342338"If passphrase is entered incorrectly, your phone will conduct a factory "
343339"reset and all personal data will be deleted."
@@ -345,7 +341,7 @@ msgstr ""
345341"Hvis du skriver feil passordfrase en gang til, tilbakestilles telefonen til "
346342"fabrikkinnstillinger, og alle personlige data slettes."
347343
348−#: qml/Shell.qml:436
344+#: qml/Shell.qml:445
349345msgid ""
350346"If passcode is entered incorrectly, your phone will conduct a factory reset "
351347"and all personal data will be deleted."
@@ -367,3 +363,15 @@ msgstr ""
367363
368364#~ msgid "Speaking..."
369365#~ msgstr "Snakker …"
366+
367+#~ msgid "All"
368+#~ msgstr "Alt"
369+
370+#~ msgid "Favorites"
371+#~ msgstr "Favoritter"
372+
373+#~ msgid "Done"
374+#~ msgstr "Ferdig"
375+
376+#~ msgid "Manage Scopes"
377+#~ msgstr "Håndter virkefelt"
po/nl.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-05 08:19+0000\n"
1212"Last-Translator: rob <linuxned@gmail.com>\n"
1313"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -180,20 +180,24 @@ msgstr "Minder zien"
180180msgid "See all"
181181msgstr "Alles zien"
182182
183−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
183+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
184184#: qml/Panel/SearchIndicator.qml:27
185185msgid "Search"
186186msgstr "Zoeken"
187187
188−#: qml/Dash/PageHeader.qml:268
188+#: qml/Dash/PageHeader.qml:260
189+msgid "Store"
190+msgstr "Winkel"
191+
192+#: qml/Dash/PageHeader.qml:277
189193msgid "Settings"
190194msgstr "Instellingen"
191195
192−#: qml/Dash/PageHeader.qml:275
196+#: qml/Dash/PageHeader.qml:284
193197msgid "Remove from Favorites"
194198msgstr "Verwijderen uit favorieten"
195199
196−#: qml/Dash/PageHeader.qml:275
200+#: qml/Dash/PageHeader.qml:284
197201msgid "Add to Favorites"
198202msgstr "Toevoegen aan favorieten"
199203
@@ -225,31 +229,23 @@ msgstr "Trekken om te verversen…"
225229msgid "Release to refresh…"
226230msgstr "Loslaten om te verversen…"
227231
228−#: qml/Dash/ScopesOverview.qml:215
229−msgid "Manage Scopes"
230−msgstr "Scopes-beheer"
231−
232−#: qml/Dash/ScopesOverview.qml:437
233−msgid "Done"
234−msgstr "Klaar"
235−
236−#: qml/Dash/ScopesOverview.qml:463
237−msgid "Store"
238−msgstr "Winkel"
232+#: qml/Dash/ScopesList.qml:63
233+msgid "Manage"
234+msgstr ""
239235
240−#: qml/Dash/ScopesOverviewTab.qml:36
241−msgid "Favorites"
242−msgstr "Favorieten"
236+#: qml/Dash/ScopesList.qml:105
237+msgid "Home"
238+msgstr ""
243239
244−#: qml/Dash/ScopesOverviewTab.qml:54
245−msgid "All"
246−msgstr "Alles"
240+#: qml/Dash/ScopesList.qml:106
241+msgid "Also installed"
242+msgstr ""
247243
248244#: qml/Greeter/Greeter.qml:174
249245msgid "Unlock"
250246msgstr "Ontgrendelen"
251247
252−#: qml/Notifications/NotificationMenuItemFactory.qml:116
248+#: qml/Notifications/NotificationMenuItemFactory.qml:128
253249msgid "Show password"
254250msgstr "Wachtwoord tonen"
255251
@@ -297,49 +293,49 @@ msgstr "Simkaart deblokkeren"
297293msgid "Roaming"
298294msgstr "Roaming"
299295
300−#: qml/Shell.qml:391
296+#: qml/Shell.qml:390
301297msgid "Enter passphrase"
302298msgstr "Voer wachtwoordzin in"
303299
304−#: qml/Shell.qml:392
300+#: qml/Shell.qml:391
305301msgid "Sorry, incorrect passphrase"
306302msgstr "Sorry, onjuiste wachtwoordzin"
307303
308−#: qml/Shell.qml:393
304+#: qml/Shell.qml:392
309305msgid "Please re-enter"
310306msgstr "Herhaal deze a.u.b."
311307
312−#: qml/Shell.qml:395
308+#: qml/Shell.qml:394
313309msgid "Enter passcode"
314310msgstr "Voer toegangscode in"
315311
316−#: qml/Shell.qml:396
312+#: qml/Shell.qml:395
317313msgid "Sorry, incorrect passcode"
318314msgstr "Sorry, onjuiste toegangscode"
319315
320−#: qml/Shell.qml:399
316+#: qml/Shell.qml:398
321317#, qt-format
322318msgid "Enter %1"
323319msgstr "Voer %1 in"
324320
325−#: qml/Shell.qml:400
321+#: qml/Shell.qml:399
326322#, qt-format
327323msgid "Sorry, incorrect %1"
328324msgstr "Sorry, onjuiste %1"
329325
330−#: qml/Shell.qml:441
326+#: qml/Shell.qml:440
331327msgid "Sorry, incorrect passphrase."
332328msgstr "Sorry, onjuiste wachtwoordzin."
333329
334−#: qml/Shell.qml:442
330+#: qml/Shell.qml:441
335331msgid "Sorry, incorrect passcode."
336332msgstr "Sorry, onjuiste toegangscode."
337333
338−#: qml/Shell.qml:443
334+#: qml/Shell.qml:442
339335msgid "This will be your last attempt."
340336msgstr "Dit zal uw laatste poging worden."
341337
342−#: qml/Shell.qml:445
338+#: qml/Shell.qml:444
343339msgid ""
344340"If passphrase is entered incorrectly, your phone will conduct a factory "
345341"reset and all personal data will be deleted."
@@ -347,7 +343,7 @@ msgstr ""
347343"Wanneer de wachtwoordzin nu opnieuw onjuist wordt ingevoerd, zal uw telefoon "
348344"teruggaan naar de fabrieksinstellingen en zal al uw eigen data verloren gaan."
349345
350−#: qml/Shell.qml:446
346+#: qml/Shell.qml:445
351347msgid ""
352348"If passcode is entered incorrectly, your phone will conduct a factory reset "
353349"and all personal data will be deleted."
@@ -369,3 +365,15 @@ msgstr ""
369365
370366#~ msgid "Speaking..."
371367#~ msgstr "Inspreken…"
368+
369+#~ msgid "All"
370+#~ msgstr "Alles"
371+
372+#~ msgid "Favorites"
373+#~ msgstr "Favorieten"
374+
375+#~ msgid "Done"
376+#~ msgstr "Klaar"
377+
378+#~ msgid "Manage Scopes"
379+#~ msgstr "Scopes-beheer"
po/pa.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-10-16 03:04+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Punjabi <pa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -174,20 +174,24 @@ msgstr ""
174174msgid "See all"
175175msgstr ""
176176
177−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
177+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
178178#: qml/Panel/SearchIndicator.qml:27
179179msgid "Search"
180180msgstr ""
181181
182−#: qml/Dash/PageHeader.qml:268
182+#: qml/Dash/PageHeader.qml:260
183+msgid "Store"
184+msgstr ""
185+
186+#: qml/Dash/PageHeader.qml:277
183187msgid "Settings"
184188msgstr ""
185189
186−#: qml/Dash/PageHeader.qml:275
190+#: qml/Dash/PageHeader.qml:284
187191msgid "Remove from Favorites"
188192msgstr ""
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Add to Favorites"
192196msgstr ""
193197
@@ -219,31 +223,23 @@ msgstr ""
219223msgid "Release to refresh…"
220224msgstr ""
221225
222−#: qml/Dash/ScopesOverview.qml:215
223−msgid "Manage Scopes"
226+#: qml/Dash/ScopesList.qml:63
227+msgid "Manage"
224228msgstr ""
225229
226−#: qml/Dash/ScopesOverview.qml:437
227−msgid "Done"
228−msgstr ""
229−
230−#: qml/Dash/ScopesOverview.qml:463
231−msgid "Store"
230+#: qml/Dash/ScopesList.qml:105
231+msgid "Home"
232232msgstr ""
233233
234−#: qml/Dash/ScopesOverviewTab.qml:36
235−msgid "Favorites"
236−msgstr ""
237−
238−#: qml/Dash/ScopesOverviewTab.qml:54
239−msgid "All"
234+#: qml/Dash/ScopesList.qml:106
235+msgid "Also installed"
240236msgstr ""
241237
242238#: qml/Greeter/Greeter.qml:174
243239msgid "Unlock"
244240msgstr ""
245241
246−#: qml/Notifications/NotificationMenuItemFactory.qml:116
242+#: qml/Notifications/NotificationMenuItemFactory.qml:128
247243msgid "Show password"
248244msgstr ""
249245
@@ -291,55 +287,55 @@ msgstr ""
291287msgid "Roaming"
292288msgstr ""
293289
294−#: qml/Shell.qml:391
290+#: qml/Shell.qml:390
295291msgid "Enter passphrase"
296292msgstr ""
297293
298−#: qml/Shell.qml:392
294+#: qml/Shell.qml:391
299295msgid "Sorry, incorrect passphrase"
300296msgstr ""
301297
302−#: qml/Shell.qml:393
298+#: qml/Shell.qml:392
303299msgid "Please re-enter"
304300msgstr ""
305301
306−#: qml/Shell.qml:395
302+#: qml/Shell.qml:394
307303msgid "Enter passcode"
308304msgstr ""
309305
310−#: qml/Shell.qml:396
306+#: qml/Shell.qml:395
311307msgid "Sorry, incorrect passcode"
312308msgstr ""
313309
314−#: qml/Shell.qml:399
310+#: qml/Shell.qml:398
315311#, qt-format
316312msgid "Enter %1"
317313msgstr ""
318314
319−#: qml/Shell.qml:400
315+#: qml/Shell.qml:399
320316#, qt-format
321317msgid "Sorry, incorrect %1"
322318msgstr ""
323319
324−#: qml/Shell.qml:441
320+#: qml/Shell.qml:440
325321msgid "Sorry, incorrect passphrase."
326322msgstr ""
327323
328−#: qml/Shell.qml:442
324+#: qml/Shell.qml:441
329325msgid "Sorry, incorrect passcode."
330326msgstr ""
331327
332−#: qml/Shell.qml:443
328+#: qml/Shell.qml:442
333329msgid "This will be your last attempt."
334330msgstr ""
335331
336−#: qml/Shell.qml:445
332+#: qml/Shell.qml:444
337333msgid ""
338334"If passphrase is entered incorrectly, your phone will conduct a factory "
339335"reset and all personal data will be deleted."
340336msgstr ""
341337
342−#: qml/Shell.qml:446
338+#: qml/Shell.qml:445
343339msgid ""
344340"If passcode is entered incorrectly, your phone will conduct a factory reset "
345341"and all personal data will be deleted."
po/pl.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-08-18 20:25+0000\n"
1212"Last-Translator: Paweł Stroka <pawstr@gmail.com>\n"
1313"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1818"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -177,20 +177,24 @@ msgstr "Zobacz mniej"
177177msgid "See all"
178178msgstr "Zobacz wszystko"
179179
180−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
180+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
181181#: qml/Panel/SearchIndicator.qml:27
182182msgid "Search"
183183msgstr "Szukaj"
184184
185−#: qml/Dash/PageHeader.qml:268
185+#: qml/Dash/PageHeader.qml:260
186+msgid "Store"
187+msgstr ""
188+
189+#: qml/Dash/PageHeader.qml:277
186190msgid "Settings"
187191msgstr ""
188192
189−#: qml/Dash/PageHeader.qml:275
193+#: qml/Dash/PageHeader.qml:284
190194msgid "Remove from Favorites"
191195msgstr ""
192196
193−#: qml/Dash/PageHeader.qml:275
197+#: qml/Dash/PageHeader.qml:284
194198msgid "Add to Favorites"
195199msgstr ""
196200
@@ -222,31 +226,23 @@ msgstr ""
222226msgid "Release to refresh…"
223227msgstr ""
224228
225−#: qml/Dash/ScopesOverview.qml:215
226−msgid "Manage Scopes"
229+#: qml/Dash/ScopesList.qml:63
230+msgid "Manage"
227231msgstr ""
228232
229−#: qml/Dash/ScopesOverview.qml:437
230−msgid "Done"
231−msgstr ""
232−
233−#: qml/Dash/ScopesOverview.qml:463
234−msgid "Store"
233+#: qml/Dash/ScopesList.qml:105
234+msgid "Home"
235235msgstr ""
236236
237−#: qml/Dash/ScopesOverviewTab.qml:36
238−msgid "Favorites"
239−msgstr ""
240−
241−#: qml/Dash/ScopesOverviewTab.qml:54
242−msgid "All"
237+#: qml/Dash/ScopesList.qml:106
238+msgid "Also installed"
243239msgstr ""
244240
245241#: qml/Greeter/Greeter.qml:174
246242msgid "Unlock"
247243msgstr ""
248244
249−#: qml/Notifications/NotificationMenuItemFactory.qml:116
245+#: qml/Notifications/NotificationMenuItemFactory.qml:128
250246msgid "Show password"
251247msgstr "Wyświetl hasło"
252248
@@ -294,55 +290,55 @@ msgstr ""
294290msgid "Roaming"
295291msgstr ""
296292
297−#: qml/Shell.qml:391
293+#: qml/Shell.qml:390
298294msgid "Enter passphrase"
299295msgstr ""
300296
301−#: qml/Shell.qml:392
297+#: qml/Shell.qml:391
302298msgid "Sorry, incorrect passphrase"
303299msgstr ""
304300
305−#: qml/Shell.qml:393
301+#: qml/Shell.qml:392
306302msgid "Please re-enter"
307303msgstr ""
308304
309−#: qml/Shell.qml:395
305+#: qml/Shell.qml:394
310306msgid "Enter passcode"
311307msgstr ""
312308
313−#: qml/Shell.qml:396
309+#: qml/Shell.qml:395
314310msgid "Sorry, incorrect passcode"
315311msgstr ""
316312
317−#: qml/Shell.qml:399
313+#: qml/Shell.qml:398
318314#, qt-format
319315msgid "Enter %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:400
318+#: qml/Shell.qml:399
323319#, qt-format
324320msgid "Sorry, incorrect %1"
325321msgstr ""
326322
327−#: qml/Shell.qml:441
323+#: qml/Shell.qml:440
328324msgid "Sorry, incorrect passphrase."
329325msgstr "Niestety, błędne hasło"
330326
331−#: qml/Shell.qml:442
327+#: qml/Shell.qml:441
332328msgid "Sorry, incorrect passcode."
333329msgstr "Niestety, błędny kod"
334330
335−#: qml/Shell.qml:443
331+#: qml/Shell.qml:442
336332msgid "This will be your last attempt."
337333msgstr ""
338334
339−#: qml/Shell.qml:445
335+#: qml/Shell.qml:444
340336msgid ""
341337"If passphrase is entered incorrectly, your phone will conduct a factory "
342338"reset and all personal data will be deleted."
343339msgstr ""
344340
345−#: qml/Shell.qml:446
341+#: qml/Shell.qml:445
346342msgid ""
347343"If passcode is entered incorrectly, your phone will conduct a factory reset "
348344"and all personal data will be deleted."
po/pt.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-06 10:25+0000\n"
1212"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
1313"Language-Team: Portuguese <pt@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -178,20 +178,24 @@ msgstr "Ver menos"
178178msgid "See all"
179179msgstr "Ver todos"
180180
181−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
182182#: qml/Panel/SearchIndicator.qml:27
183183msgid "Search"
184184msgstr "Procurar"
185185
186−#: qml/Dash/PageHeader.qml:268
186+#: qml/Dash/PageHeader.qml:260
187+msgid "Store"
188+msgstr "Loja"
189+
190+#: qml/Dash/PageHeader.qml:277
187191msgid "Settings"
188192msgstr "Definições"
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Remove from Favorites"
192196msgstr "Remover dos favoritos"
193197
194−#: qml/Dash/PageHeader.qml:275
198+#: qml/Dash/PageHeader.qml:284
195199msgid "Add to Favorites"
196200msgstr "Adicionar aos favoritos"
197201
@@ -223,31 +227,23 @@ msgstr "Puxe para atualizar..."
223227msgid "Release to refresh…"
224228msgstr "Solte para atualizar..."
225229
226−#: qml/Dash/ScopesOverview.qml:215
227−msgid "Manage Scopes"
228−msgstr "Gerir Scopes"
229−
230−#: qml/Dash/ScopesOverview.qml:437
231−msgid "Done"
232−msgstr "Concluído"
233−
234−#: qml/Dash/ScopesOverview.qml:463
235−msgid "Store"
236−msgstr "Loja"
230+#: qml/Dash/ScopesList.qml:63
231+msgid "Manage"
232+msgstr ""
237233
238−#: qml/Dash/ScopesOverviewTab.qml:36
239−msgid "Favorites"
240−msgstr "Favoritos"
234+#: qml/Dash/ScopesList.qml:105
235+msgid "Home"
236+msgstr ""
241237
242−#: qml/Dash/ScopesOverviewTab.qml:54
243−msgid "All"
244−msgstr "Todos"
238+#: qml/Dash/ScopesList.qml:106
239+msgid "Also installed"
240+msgstr ""
245241
246242#: qml/Greeter/Greeter.qml:174
247243msgid "Unlock"
248244msgstr "Desbloquear"
249245
250−#: qml/Notifications/NotificationMenuItemFactory.qml:116
246+#: qml/Notifications/NotificationMenuItemFactory.qml:128
251247msgid "Show password"
252248msgstr "Mostrar senha"
253249
@@ -295,49 +291,49 @@ msgstr "Desbloquear SIM"
295291msgid "Roaming"
296292msgstr "Roaming"
297293
298−#: qml/Shell.qml:391
294+#: qml/Shell.qml:390
299295msgid "Enter passphrase"
300296msgstr "Indique a frase-senha"
301297
302−#: qml/Shell.qml:392
298+#: qml/Shell.qml:391
303299msgid "Sorry, incorrect passphrase"
304300msgstr "Desculpe, frase-senha incorreta"
305301
306−#: qml/Shell.qml:393
302+#: qml/Shell.qml:392
307303msgid "Please re-enter"
308304msgstr "Por favor, volte a introduzir"
309305
310−#: qml/Shell.qml:395
306+#: qml/Shell.qml:394
311307msgid "Enter passcode"
312308msgstr "Introduza senha"
313309
314−#: qml/Shell.qml:396
310+#: qml/Shell.qml:395
315311msgid "Sorry, incorrect passcode"
316312msgstr "Desculpe, senha incorreta"
317313
318−#: qml/Shell.qml:399
314+#: qml/Shell.qml:398
319315#, qt-format
320316msgid "Enter %1"
321317msgstr "Introduziu %1"
322318
323−#: qml/Shell.qml:400
319+#: qml/Shell.qml:399
324320#, qt-format
325321msgid "Sorry, incorrect %1"
326322msgstr "Desculpe, incorreto %1"
327323
328−#: qml/Shell.qml:441
324+#: qml/Shell.qml:440
329325msgid "Sorry, incorrect passphrase."
330326msgstr "Desculpe, frase de acesso incorreta."
331327
332−#: qml/Shell.qml:442
328+#: qml/Shell.qml:441
333329msgid "Sorry, incorrect passcode."
334330msgstr "Desculpe, senha incorreta."
335331
336−#: qml/Shell.qml:443
332+#: qml/Shell.qml:442
337333msgid "This will be your last attempt."
338334msgstr "Esta será a sua última tentativa."
339335
340−#: qml/Shell.qml:445
336+#: qml/Shell.qml:444
341337msgid ""
342338"If passphrase is entered incorrectly, your phone will conduct a factory "
343339"reset and all personal data will be deleted."
@@ -345,7 +341,7 @@ msgstr ""
345341"Se a frase de acesso for introduzida incorretamente, o seu telemóvel vai "
346342"proceder ao restauro de fábrica e apagará toda a sua informação pessoal."
347343
348−#: qml/Shell.qml:446
344+#: qml/Shell.qml:445
349345msgid ""
350346"If passcode is entered incorrectly, your phone will conduct a factory reset "
351347"and all personal data will be deleted."
@@ -367,3 +363,15 @@ msgstr ""
367363
368364#~ msgid "Speak Now..."
369365#~ msgstr "Fale agora..."
366+
367+#~ msgid "All"
368+#~ msgstr "Todos"
369+
370+#~ msgid "Favorites"
371+#~ msgstr "Favoritos"
372+
373+#~ msgid "Done"
374+#~ msgstr "Concluído"
375+
376+#~ msgid "Manage Scopes"
377+#~ msgstr "Gerir Scopes"
po/pt_BR.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-09-30 17:37+0000\n"
1212"Last-Translator: Rafael Neri <Unknown>\n"
1313"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -178,20 +178,24 @@ msgstr "Ver menos"
178178msgid "See all"
179179msgstr "Ver todos"
180180
181−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
181+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
182182#: qml/Panel/SearchIndicator.qml:27
183183msgid "Search"
184184msgstr "Pesquisar"
185185
186−#: qml/Dash/PageHeader.qml:268
186+#: qml/Dash/PageHeader.qml:260
187+msgid "Store"
188+msgstr "Loja"
189+
190+#: qml/Dash/PageHeader.qml:277
187191msgid "Settings"
188192msgstr "Configurações"
189193
190−#: qml/Dash/PageHeader.qml:275
194+#: qml/Dash/PageHeader.qml:284
191195msgid "Remove from Favorites"
192196msgstr "Remover dos favoritos"
193197
194−#: qml/Dash/PageHeader.qml:275
198+#: qml/Dash/PageHeader.qml:284
195199msgid "Add to Favorites"
196200msgstr "Adicionar aos favoritos"
197201
@@ -223,31 +227,23 @@ msgstr ""
223227msgid "Release to refresh…"
224228msgstr ""
225229
226−#: qml/Dash/ScopesOverview.qml:215
227−msgid "Manage Scopes"
228−msgstr "Gerenciar Plugins"
229−
230−#: qml/Dash/ScopesOverview.qml:437
231−msgid "Done"
232−msgstr "Concluído"
233−
234−#: qml/Dash/ScopesOverview.qml:463
235−msgid "Store"
236−msgstr "Loja"
230+#: qml/Dash/ScopesList.qml:63
231+msgid "Manage"
232+msgstr ""
237233
238−#: qml/Dash/ScopesOverviewTab.qml:36
239−msgid "Favorites"
240−msgstr "Favoritos"
234+#: qml/Dash/ScopesList.qml:105
235+msgid "Home"
236+msgstr ""
241237
242−#: qml/Dash/ScopesOverviewTab.qml:54
243−msgid "All"
244−msgstr "Tudo"
238+#: qml/Dash/ScopesList.qml:106
239+msgid "Also installed"
240+msgstr ""
245241
246242#: qml/Greeter/Greeter.qml:174
247243msgid "Unlock"
248244msgstr ""
249245
250−#: qml/Notifications/NotificationMenuItemFactory.qml:116
246+#: qml/Notifications/NotificationMenuItemFactory.qml:128
251247msgid "Show password"
252248msgstr "Exibir senha"
253249
@@ -295,49 +291,49 @@ msgstr "Desbloquear SIM"
295291msgid "Roaming"
296292msgstr "Roaming"
297293
298−#: qml/Shell.qml:391
294+#: qml/Shell.qml:390
299295msgid "Enter passphrase"
300296msgstr ""
301297
302−#: qml/Shell.qml:392
298+#: qml/Shell.qml:391
303299msgid "Sorry, incorrect passphrase"
304300msgstr "Desculpe, senha incorreta"
305301
306−#: qml/Shell.qml:393
302+#: qml/Shell.qml:392
307303msgid "Please re-enter"
308304msgstr ""
309305
310−#: qml/Shell.qml:395
306+#: qml/Shell.qml:394
311307msgid "Enter passcode"
312308msgstr ""
313309
314−#: qml/Shell.qml:396
310+#: qml/Shell.qml:395
315311msgid "Sorry, incorrect passcode"
316312msgstr "Desculpe, senha incorreta"
317313
318−#: qml/Shell.qml:399
314+#: qml/Shell.qml:398
319315#, qt-format
320316msgid "Enter %1"
321317msgstr ""
322318
323−#: qml/Shell.qml:400
319+#: qml/Shell.qml:399
324320#, qt-format
325321msgid "Sorry, incorrect %1"
326322msgstr "Desculpe, %1 incorreto"
327323
328−#: qml/Shell.qml:441
324+#: qml/Shell.qml:440
329325msgid "Sorry, incorrect passphrase."
330326msgstr "Desculpe, senha incorreta."
331327
332−#: qml/Shell.qml:442
328+#: qml/Shell.qml:441
333329msgid "Sorry, incorrect passcode."
334330msgstr "Desculpe, código de acesso incorreto."
335331
336−#: qml/Shell.qml:443
332+#: qml/Shell.qml:442
337333msgid "This will be your last attempt."
338334msgstr "Esta será a sua última tentativa."
339335
340−#: qml/Shell.qml:445
336+#: qml/Shell.qml:444
341337msgid ""
342338"If passphrase is entered incorrectly, your phone will conduct a factory "
343339"reset and all personal data will be deleted."
@@ -345,7 +341,7 @@ msgstr ""
345341"Se a senha for digitada incorretamente, o telefone será restaurado aos "
346342"padrões de fábrica e todos os dados pessoais serão apagados."
347343
348−#: qml/Shell.qml:446
344+#: qml/Shell.qml:445
349345msgid ""
350346"If passcode is entered incorrectly, your phone will conduct a factory reset "
351347"and all personal data will be deleted."
@@ -367,3 +363,15 @@ msgstr ""
367363
368364#~ msgid "Speaking..."
369365#~ msgstr "Falando..."
366+
367+#~ msgid "Done"
368+#~ msgstr "Concluído"
369+
370+#~ msgid "Favorites"
371+#~ msgstr "Favoritos"
372+
373+#~ msgid "All"
374+#~ msgstr "Tudo"
375+
376+#~ msgid "Manage Scopes"
377+#~ msgstr "Gerenciar Plugins"
po/ro.po+52−44
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-18 12:09+0000\n"
1212"Last-Translator: Marian Vasile <marianvasile1972@gmail.com>\n"
1313"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
1818"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2014-11-19 06:24+0000\n"
20−"X-Generator: Launchpad (build 17252)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -184,20 +184,24 @@ msgstr "Afișează mai puține"
184184msgid "See all"
185185msgstr "Afișează tot"
186186
187−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
187+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
188188#: qml/Panel/SearchIndicator.qml:27
189189msgid "Search"
190190msgstr "Căutare"
191191
192−#: qml/Dash/PageHeader.qml:268
192+#: qml/Dash/PageHeader.qml:260
193+msgid "Store"
194+msgstr "Magazin"
195+
196+#: qml/Dash/PageHeader.qml:277
193197msgid "Settings"
194198msgstr "Configurări"
195199
196−#: qml/Dash/PageHeader.qml:275
200+#: qml/Dash/PageHeader.qml:284
197201msgid "Remove from Favorites"
198202msgstr "Șterge din favorite"
199203
200−#: qml/Dash/PageHeader.qml:275
204+#: qml/Dash/PageHeader.qml:284
201205msgid "Add to Favorites"
202206msgstr "Adaugă la favorite"
203207
@@ -229,31 +233,23 @@ msgstr "Trageți pentru a actualiza..."
229233msgid "Release to refresh…"
230234msgstr "Eliberați pentru a actualiza..."
231235
232−#: qml/Dash/ScopesOverview.qml:215
233−msgid "Manage Scopes"
234−msgstr "Administrare domenii"
235−
236−#: qml/Dash/ScopesOverview.qml:437
237−msgid "Done"
238−msgstr "Finalizat"
239−
240−#: qml/Dash/ScopesOverview.qml:463
241−msgid "Store"
242−msgstr "Magazin"
236+#: qml/Dash/ScopesList.qml:63
237+msgid "Manage"
238+msgstr ""
243239
244−#: qml/Dash/ScopesOverviewTab.qml:36
245−msgid "Favorites"
246−msgstr "Favorite"
240+#: qml/Dash/ScopesList.qml:105
241+msgid "Home"
242+msgstr ""
247243
248−#: qml/Dash/ScopesOverviewTab.qml:54
249−msgid "All"
250−msgstr "Tot"
244+#: qml/Dash/ScopesList.qml:106
245+msgid "Also installed"
246+msgstr ""
251247
252248#: qml/Greeter/Greeter.qml:174
253249msgid "Unlock"
254250msgstr "Deblocare"
255251
256−#: qml/Notifications/NotificationMenuItemFactory.qml:116
252+#: qml/Notifications/NotificationMenuItemFactory.qml:128
257253msgid "Show password"
258254msgstr "Arată parola"
259255
@@ -265,31 +261,31 @@ msgstr "Atingeți pentru a vă întoarce la convorbire..."
265261msgid "Conference"
266262msgstr "Conferință"
267263
268−#: qml/Panel/Indicators/MenuItemFactory.qml:615
264+#: qml/Panel/Indicators/MenuItemFactory.qml:643
269265msgid "Nothing is playing"
270266msgstr "Nu se redă nimic"
271267
272−#: qml/Panel/Indicators/MenuItemFactory.qml:763
268+#: qml/Panel/Indicators/MenuItemFactory.qml:791
273269msgid "In queue…"
274270msgstr "În așteptare..."
275271
276−#: qml/Panel/Indicators/MenuItemFactory.qml:767
272+#: qml/Panel/Indicators/MenuItemFactory.qml:795
277273msgid "Downloading"
278274msgstr "Se descarcă"
279275
280−#: qml/Panel/Indicators/MenuItemFactory.qml:769
276+#: qml/Panel/Indicators/MenuItemFactory.qml:797
281277msgid "Paused, tap to resume"
282278msgstr "În pauză, atingeți pentru a relua"
283279
284−#: qml/Panel/Indicators/MenuItemFactory.qml:771
280+#: qml/Panel/Indicators/MenuItemFactory.qml:799
285281msgid "Canceled"
286282msgstr "Anulată"
287283
288−#: qml/Panel/Indicators/MenuItemFactory.qml:773
284+#: qml/Panel/Indicators/MenuItemFactory.qml:801
289285msgid "Finished"
290286msgstr "Finalizată"
291287
292−#: qml/Panel/Indicators/MenuItemFactory.qml:775
288+#: qml/Panel/Indicators/MenuItemFactory.qml:803
293289msgid "Failed, tap to retry"
294290msgstr "Eșec, atingeți pentru a încerca din nou"
295291
@@ -301,49 +297,49 @@ msgstr "Deblocare SIM"
301297msgid "Roaming"
302298msgstr "Roaming"
303299
304−#: qml/Shell.qml:381
300+#: qml/Shell.qml:390
305301msgid "Enter passphrase"
306302msgstr "Introduceți fraza parolă"
307303
308−#: qml/Shell.qml:382
304+#: qml/Shell.qml:391
309305msgid "Sorry, incorrect passphrase"
310306msgstr "Frază secretă incorectă"
311307
312−#: qml/Shell.qml:383
308+#: qml/Shell.qml:392
313309msgid "Please re-enter"
314310msgstr "Introduceți din nou"
315311
316−#: qml/Shell.qml:385
312+#: qml/Shell.qml:394
317313msgid "Enter passcode"
318314msgstr "Introduceți parola"
319315
320−#: qml/Shell.qml:386
316+#: qml/Shell.qml:395
321317msgid "Sorry, incorrect passcode"
322318msgstr "Parolă incorectă"
323319
324−#: qml/Shell.qml:389
320+#: qml/Shell.qml:398
325321#, qt-format
326322msgid "Enter %1"
327323msgstr "Introducere %1"
328324
329−#: qml/Shell.qml:390
325+#: qml/Shell.qml:399
330326#, qt-format
331327msgid "Sorry, incorrect %1"
332328msgstr "%1 incorectă"
333329
334−#: qml/Shell.qml:431
330+#: qml/Shell.qml:440
335331msgid "Sorry, incorrect passphrase."
336332msgstr "Frază parolă greșită"
337333
338−#: qml/Shell.qml:432
334+#: qml/Shell.qml:441
339335msgid "Sorry, incorrect passcode."
340336msgstr "Parolă greșită"
341337
342−#: qml/Shell.qml:433
338+#: qml/Shell.qml:442
343339msgid "This will be your last attempt."
344340msgstr "Aceasta va fi ultima încercare"
345341
346−#: qml/Shell.qml:435
342+#: qml/Shell.qml:444
347343msgid ""
348344"If passphrase is entered incorrectly, your phone will conduct a factory "
349345"reset and all personal data will be deleted."
@@ -352,7 +348,7 @@ msgstr ""
352348"configurările inițiale, ale fabricantului, iar toate datele personale vor fi "
353349"șterse."
354350
355−#: qml/Shell.qml:436
351+#: qml/Shell.qml:445
356352msgid ""
357353"If passcode is entered incorrectly, your phone will conduct a factory reset "
358354"and all personal data will be deleted."
@@ -375,3 +371,15 @@ msgstr ""
375371
376372#~ msgid "Speaking..."
377373#~ msgstr "Vorbire..."
374+
375+#~ msgid "All"
376+#~ msgstr "Tot"
377+
378+#~ msgid "Favorites"
379+#~ msgstr "Favorite"
380+
381+#~ msgid "Done"
382+#~ msgstr "Finalizat"
383+
384+#~ msgid "Manage Scopes"
385+#~ msgstr "Administrare domenii"
po/ru.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-08-29 08:06+0000\n"
1212"Last-Translator: ☠Jay ZDLin☠ <Unknown>\n"
1313"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -30,7 +30,7 @@ msgstr "Закрепить ярлык"
3030
3131#: plugins/Unity/Launcher/launcheritem.cpp:91
3232msgid "Unpin shortcut"
33−msgstr "Изъять ярлык"
33+msgstr "Открепить ярлык"
3434
3535#: qml/Components/DelayedLockscreen.qml:47
3636msgid "Device Locked"
@@ -167,7 +167,7 @@ msgstr ""
167167
168168#: qml/Components/Lockscreen.qml:223
169169msgid "Return to Call"
170−msgstr ""
170+msgstr "Вернуться к вызову"
171171
172172#: qml/Components/Lockscreen.qml:223
173173msgid "Emergency Call"
@@ -185,20 +185,24 @@ msgstr "Вкратце"
185185msgid "See all"
186186msgstr "Показать всё"
187187
188−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
188+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
189189#: qml/Panel/SearchIndicator.qml:27
190190msgid "Search"
191191msgstr "Поиск"
192192
193−#: qml/Dash/PageHeader.qml:268
193+#: qml/Dash/PageHeader.qml:260
194+msgid "Store"
195+msgstr "Магазин"
196+
197+#: qml/Dash/PageHeader.qml:277
194198msgid "Settings"
195199msgstr "Настройки"
196200
197−#: qml/Dash/PageHeader.qml:275
201+#: qml/Dash/PageHeader.qml:284
198202msgid "Remove from Favorites"
199203msgstr "Удалить из избранного"
200204
201−#: qml/Dash/PageHeader.qml:275
205+#: qml/Dash/PageHeader.qml:284
202206msgid "Add to Favorites"
203207msgstr "Добавить в избранное"
204208
@@ -230,31 +234,23 @@ msgstr "Потяните для обновления…"
230234msgid "Release to refresh…"
231235msgstr "Отпустите для обновления…"
232236
233−#: qml/Dash/ScopesOverview.qml:215
234−msgid "Manage Scopes"
237+#: qml/Dash/ScopesList.qml:63
238+msgid "Manage"
235239msgstr ""
236240
237−#: qml/Dash/ScopesOverview.qml:437
238−msgid "Done"
239−msgstr "Готово"
240−
241−#: qml/Dash/ScopesOverview.qml:463
242−msgid "Store"
241+#: qml/Dash/ScopesList.qml:105
242+msgid "Home"
243243msgstr ""
244244
245−#: qml/Dash/ScopesOverviewTab.qml:36
246−msgid "Favorites"
247−msgstr "Избранное"
248−
249−#: qml/Dash/ScopesOverviewTab.qml:54
250−msgid "All"
251−msgstr "Все"
245+#: qml/Dash/ScopesList.qml:106
246+msgid "Also installed"
247+msgstr ""
252248
253249#: qml/Greeter/Greeter.qml:174
254250msgid "Unlock"
255251msgstr "Разблокировать"
256252
257−#: qml/Notifications/NotificationMenuItemFactory.qml:116
253+#: qml/Notifications/NotificationMenuItemFactory.qml:128
258254msgid "Show password"
259255msgstr "Показать пароль"
260256
@@ -302,49 +298,49 @@ msgstr "Разблокировать SIM-карту"
302298msgid "Roaming"
303299msgstr "Роуминг"
304300
305−#: qml/Shell.qml:391
301+#: qml/Shell.qml:390
306302msgid "Enter passphrase"
307303msgstr "Введите кодовую фразу"
308304
309−#: qml/Shell.qml:392
305+#: qml/Shell.qml:391
310306msgid "Sorry, incorrect passphrase"
311307msgstr "Введена неверная кодовая фраза"
312308
313−#: qml/Shell.qml:393
309+#: qml/Shell.qml:392
314310msgid "Please re-enter"
315311msgstr "Повторите ввод"
316312
317−#: qml/Shell.qml:395
313+#: qml/Shell.qml:394
318314msgid "Enter passcode"
319315msgstr "Введите секретный код"
320316
321−#: qml/Shell.qml:396
317+#: qml/Shell.qml:395
322318msgid "Sorry, incorrect passcode"
323319msgstr "Секретный код введён неверно"
324320
325−#: qml/Shell.qml:399
321+#: qml/Shell.qml:398
326322#, qt-format
327323msgid "Enter %1"
328324msgstr "Введите %1"
329325
330−#: qml/Shell.qml:400
326+#: qml/Shell.qml:399
331327#, qt-format
332328msgid "Sorry, incorrect %1"
333329msgstr "Некорректный ввод %1"
334330
335−#: qml/Shell.qml:441
331+#: qml/Shell.qml:440
336332msgid "Sorry, incorrect passphrase."
337333msgstr "Неверная ключевая фраза."
338334
339−#: qml/Shell.qml:442
335+#: qml/Shell.qml:441
340336msgid "Sorry, incorrect passcode."
341337msgstr "Неверный секретный код."
342338
343−#: qml/Shell.qml:443
339+#: qml/Shell.qml:442
344340msgid "This will be your last attempt."
345341msgstr "Осталась последняя попытка."
346342
347−#: qml/Shell.qml:445
343+#: qml/Shell.qml:444
348344msgid ""
349345"If passphrase is entered incorrectly, your phone will conduct a factory "
350346"reset and all personal data will be deleted."
@@ -352,7 +348,7 @@ msgstr ""
352348"Если ключевая фраза будет введена неверно, то телефон вернётся к заводским "
353349"настройкам, а все личные данные будут удалены."
354350
355−#: qml/Shell.qml:446
351+#: qml/Shell.qml:445
356352msgid ""
357353"If passcode is entered incorrectly, your phone will conduct a factory reset "
358354"and all personal data will be deleted."
@@ -374,3 +370,15 @@ msgstr ""
374370
375371#~ msgid "Confirm"
376372#~ msgstr "Подтвердить"
373+
374+#~ msgid "All"
375+#~ msgstr "Все"
376+
377+#~ msgid "Favorites"
378+#~ msgstr "Избранное"
379+
380+#~ msgid "Done"
381+#~ msgstr "Готово"
382+
383+#~ msgid "Manage Scopes"
384+#~ msgstr "Настройки поиска"
po/shn.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-10-07 11:46+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Shan <shn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/si.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/sl.po+41−36
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-05 09:41+0000\n"
1212"Last-Translator: Damir Jerovšek <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
1818"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -181,20 +181,24 @@ msgstr "Pokaži manj"
181181msgid "See all"
182182msgstr "Pokaži vse"
183183
184−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
184+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
185185#: qml/Panel/SearchIndicator.qml:27
186186msgid "Search"
187187msgstr "Iskanje"
188188
189−#: qml/Dash/PageHeader.qml:268
189+#: qml/Dash/PageHeader.qml:260
190+msgid "Store"
191+msgstr "Trgovina"
192+
193+#: qml/Dash/PageHeader.qml:277
190194msgid "Settings"
191195msgstr "Nastavitve"
192196
193−#: qml/Dash/PageHeader.qml:275
197+#: qml/Dash/PageHeader.qml:284
194198msgid "Remove from Favorites"
195199msgstr "Odstrani iz priljubljenih"
196200
197−#: qml/Dash/PageHeader.qml:275
201+#: qml/Dash/PageHeader.qml:284
198202msgid "Add to Favorites"
199203msgstr "Dodaj med priljubljene"
200204
@@ -226,31 +230,23 @@ msgstr "Povlecite za osvežitev ..."
226230msgid "Release to refresh…"
227231msgstr "Spustite za osvežitev ..."
228232
229−#: qml/Dash/ScopesOverview.qml:215
230−msgid "Manage Scopes"
233+#: qml/Dash/ScopesList.qml:63
234+msgid "Manage"
231235msgstr ""
232236
233−#: qml/Dash/ScopesOverview.qml:437
234−msgid "Done"
235−msgstr "Končano"
236−
237−#: qml/Dash/ScopesOverview.qml:463
238−msgid "Store"
239−msgstr "Trgovina"
240−
241−#: qml/Dash/ScopesOverviewTab.qml:36
242−msgid "Favorites"
243−msgstr "Priljubljeni"
237+#: qml/Dash/ScopesList.qml:105
238+msgid "Home"
239+msgstr ""
244240
245−#: qml/Dash/ScopesOverviewTab.qml:54
246−msgid "All"
247−msgstr "Vse"
241+#: qml/Dash/ScopesList.qml:106
242+msgid "Also installed"
243+msgstr ""
248244
249245#: qml/Greeter/Greeter.qml:174
250246msgid "Unlock"
251247msgstr "Odkleni"
252248
253−#: qml/Notifications/NotificationMenuItemFactory.qml:116
249+#: qml/Notifications/NotificationMenuItemFactory.qml:128
254250msgid "Show password"
255251msgstr "Pokaži geslo"
256252
@@ -298,49 +294,49 @@ msgstr "Odkleni SIM"
298294msgid "Roaming"
299295msgstr "Gostovanje"
300296
301−#: qml/Shell.qml:391
297+#: qml/Shell.qml:390
302298msgid "Enter passphrase"
303299msgstr "Vnesite šifrirno reklo"
304300
305−#: qml/Shell.qml:392
301+#: qml/Shell.qml:391
306302msgid "Sorry, incorrect passphrase"
307303msgstr "Oprostite, napačno šifrirno reklo"
308304
309−#: qml/Shell.qml:393
305+#: qml/Shell.qml:392
310306msgid "Please re-enter"
311307msgstr "Ponovno vnesite"
312308
313−#: qml/Shell.qml:395
309+#: qml/Shell.qml:394
314310msgid "Enter passcode"
315311msgstr "Vnesite geslo"
316312
317−#: qml/Shell.qml:396
313+#: qml/Shell.qml:395
318314msgid "Sorry, incorrect passcode"
319315msgstr "Nepravilno geslo"
320316
321−#: qml/Shell.qml:399
317+#: qml/Shell.qml:398
322318#, qt-format
323319msgid "Enter %1"
324320msgstr "Vnesite %1"
325321
326−#: qml/Shell.qml:400
322+#: qml/Shell.qml:399
327323#, qt-format
328324msgid "Sorry, incorrect %1"
329325msgstr "Oprostite, napačen %1"
330326
331−#: qml/Shell.qml:441
327+#: qml/Shell.qml:440
332328msgid "Sorry, incorrect passphrase."
333329msgstr "Nepravilno geslo."
334330
335−#: qml/Shell.qml:442
331+#: qml/Shell.qml:441
336332msgid "Sorry, incorrect passcode."
337333msgstr "Nepravilno geslo."
338334
339−#: qml/Shell.qml:443
335+#: qml/Shell.qml:442
340336msgid "This will be your last attempt."
341337msgstr "To je vaš zadnji poskus"
342338
343−#: qml/Shell.qml:445
339+#: qml/Shell.qml:444
344340msgid ""
345341"If passphrase is entered incorrectly, your phone will conduct a factory "
346342"reset and all personal data will be deleted."
@@ -348,7 +344,7 @@ msgstr ""
348344"Če je vneseno nepravilno šifrirno reklo, bo telefon ponastavljen na "
349345"tovarniške nastavitve ter vsi osebni podatki bodo izbrisani."
350346
351−#: qml/Shell.qml:446
347+#: qml/Shell.qml:445
352348msgid ""
353349"If passcode is entered incorrectly, your phone will conduct a factory reset "
354350"and all personal data will be deleted."
@@ -370,3 +366,12 @@ msgstr ""
370366
371367#~ msgid "Speaking..."
372368#~ msgstr "Govorjenje ..."
369+
370+#~ msgid "Done"
371+#~ msgstr "Končano"
372+
373+#~ msgid "All"
374+#~ msgstr "Vse"
375+
376+#~ msgid "Favorites"
377+#~ msgstr "Priljubljeni"
po/sq.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-15 13:51+0000\n"
1212"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
1313"Language-Team: Albanian <sq@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -173,20 +173,24 @@ msgstr ""
173173msgid "See all"
174174msgstr ""
175175
176−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
176+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
177177#: qml/Panel/SearchIndicator.qml:27
178178msgid "Search"
179179msgstr ""
180180
181−#: qml/Dash/PageHeader.qml:268
181+#: qml/Dash/PageHeader.qml:260
182+msgid "Store"
183+msgstr ""
184+
185+#: qml/Dash/PageHeader.qml:277
182186msgid "Settings"
183187msgstr ""
184188
185−#: qml/Dash/PageHeader.qml:275
189+#: qml/Dash/PageHeader.qml:284
186190msgid "Remove from Favorites"
187191msgstr ""
188192
189−#: qml/Dash/PageHeader.qml:275
193+#: qml/Dash/PageHeader.qml:284
190194msgid "Add to Favorites"
191195msgstr ""
192196
@@ -218,31 +222,23 @@ msgstr ""
218222msgid "Release to refresh…"
219223msgstr ""
220224
221−#: qml/Dash/ScopesOverview.qml:215
222−msgid "Manage Scopes"
225+#: qml/Dash/ScopesList.qml:63
226+msgid "Manage"
223227msgstr ""
224228
225−#: qml/Dash/ScopesOverview.qml:437
226−msgid "Done"
227−msgstr ""
228−
229−#: qml/Dash/ScopesOverview.qml:463
230−msgid "Store"
229+#: qml/Dash/ScopesList.qml:105
230+msgid "Home"
231231msgstr ""
232232
233−#: qml/Dash/ScopesOverviewTab.qml:36
234−msgid "Favorites"
235−msgstr ""
236−
237−#: qml/Dash/ScopesOverviewTab.qml:54
238−msgid "All"
233+#: qml/Dash/ScopesList.qml:106
234+msgid "Also installed"
239235msgstr ""
240236
241237#: qml/Greeter/Greeter.qml:174
242238msgid "Unlock"
243239msgstr ""
244240
245−#: qml/Notifications/NotificationMenuItemFactory.qml:116
241+#: qml/Notifications/NotificationMenuItemFactory.qml:128
246242msgid "Show password"
247243msgstr ""
248244
@@ -290,55 +286,55 @@ msgstr ""
290286msgid "Roaming"
291287msgstr ""
292288
293−#: qml/Shell.qml:391
289+#: qml/Shell.qml:390
294290msgid "Enter passphrase"
295291msgstr ""
296292
297−#: qml/Shell.qml:392
293+#: qml/Shell.qml:391
298294msgid "Sorry, incorrect passphrase"
299295msgstr ""
300296
301−#: qml/Shell.qml:393
297+#: qml/Shell.qml:392
302298msgid "Please re-enter"
303299msgstr ""
304300
305−#: qml/Shell.qml:395
301+#: qml/Shell.qml:394
306302msgid "Enter passcode"
307303msgstr ""
308304
309−#: qml/Shell.qml:396
305+#: qml/Shell.qml:395
310306msgid "Sorry, incorrect passcode"
311307msgstr ""
312308
313−#: qml/Shell.qml:399
309+#: qml/Shell.qml:398
314310#, qt-format
315311msgid "Enter %1"
316312msgstr ""
317313
318−#: qml/Shell.qml:400
314+#: qml/Shell.qml:399
319315#, qt-format
320316msgid "Sorry, incorrect %1"
321317msgstr ""
322318
323−#: qml/Shell.qml:441
319+#: qml/Shell.qml:440
324320msgid "Sorry, incorrect passphrase."
325321msgstr ""
326322
327−#: qml/Shell.qml:442
323+#: qml/Shell.qml:441
328324msgid "Sorry, incorrect passcode."
329325msgstr ""
330326
331−#: qml/Shell.qml:443
327+#: qml/Shell.qml:442
332328msgid "This will be your last attempt."
333329msgstr ""
334330
335−#: qml/Shell.qml:445
331+#: qml/Shell.qml:444
336332msgid ""
337333"If passphrase is entered incorrectly, your phone will conduct a factory "
338334"reset and all personal data will be deleted."
339335msgstr ""
340336
341−#: qml/Shell.qml:446
337+#: qml/Shell.qml:445
342338msgid ""
343339"If passcode is entered incorrectly, your phone will conduct a factory reset "
344340"and all personal data will be deleted."
po/sr.po+41−36
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-09-24 13:29+0000\n"
1212"Last-Translator: Данило Шеган <Unknown>\n"
1313"Language-Team: Serbian <sr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -177,20 +177,24 @@ msgstr "Сажетије"
177177msgid "See all"
178178msgstr "Опширније"
179179
180−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
180+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
181181#: qml/Panel/SearchIndicator.qml:27
182182msgid "Search"
183183msgstr "Претрага"
184184
185−#: qml/Dash/PageHeader.qml:268
185+#: qml/Dash/PageHeader.qml:260
186+msgid "Store"
187+msgstr "Продавница"
188+
189+#: qml/Dash/PageHeader.qml:277
186190msgid "Settings"
187191msgstr "Подешавања"
188192
189−#: qml/Dash/PageHeader.qml:275
193+#: qml/Dash/PageHeader.qml:284
190194msgid "Remove from Favorites"
191195msgstr "Уклони из омиљених"
192196
193−#: qml/Dash/PageHeader.qml:275
197+#: qml/Dash/PageHeader.qml:284
194198msgid "Add to Favorites"
195199msgstr "Додај међу омиљене"
196200
@@ -222,31 +226,23 @@ msgstr ""
222226msgid "Release to refresh…"
223227msgstr ""
224228
225−#: qml/Dash/ScopesOverview.qml:215
226−msgid "Manage Scopes"
229+#: qml/Dash/ScopesList.qml:63
230+msgid "Manage"
227231msgstr ""
228232
229−#: qml/Dash/ScopesOverview.qml:437
230−msgid "Done"
231−msgstr "Готово"
232−
233−#: qml/Dash/ScopesOverview.qml:463
234−msgid "Store"
235−msgstr "Продавница"
236−
237−#: qml/Dash/ScopesOverviewTab.qml:36
238−msgid "Favorites"
239−msgstr "Омиљени"
233+#: qml/Dash/ScopesList.qml:105
234+msgid "Home"
235+msgstr ""
240236
241−#: qml/Dash/ScopesOverviewTab.qml:54
242−msgid "All"
243−msgstr "Сви"
237+#: qml/Dash/ScopesList.qml:106
238+msgid "Also installed"
239+msgstr ""
244240
245241#: qml/Greeter/Greeter.qml:174
246242msgid "Unlock"
247243msgstr ""
248244
249−#: qml/Notifications/NotificationMenuItemFactory.qml:116
245+#: qml/Notifications/NotificationMenuItemFactory.qml:128
250246msgid "Show password"
251247msgstr "Прикажи лозинку"
252248
@@ -294,49 +290,49 @@ msgstr "Откључај СИМ картицу"
294290msgid "Roaming"
295291msgstr "Роминг"
296292
297−#: qml/Shell.qml:391
293+#: qml/Shell.qml:390
298294msgid "Enter passphrase"
299295msgstr ""
300296
301−#: qml/Shell.qml:392
297+#: qml/Shell.qml:391
302298msgid "Sorry, incorrect passphrase"
303299msgstr "Жао ми је, погрешна лозинка"
304300
305−#: qml/Shell.qml:393
301+#: qml/Shell.qml:392
306302msgid "Please re-enter"
307303msgstr ""
308304
309−#: qml/Shell.qml:395
305+#: qml/Shell.qml:394
310306msgid "Enter passcode"
311307msgstr ""
312308
313−#: qml/Shell.qml:396
309+#: qml/Shell.qml:395
314310msgid "Sorry, incorrect passcode"
315311msgstr "Жао ми је, погрешан код"
316312
317−#: qml/Shell.qml:399
313+#: qml/Shell.qml:398
318314#, qt-format
319315msgid "Enter %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:400
318+#: qml/Shell.qml:399
323319#, qt-format
324320msgid "Sorry, incorrect %1"
325321msgstr "Жао ми је, погрешан %1"
326322
327−#: qml/Shell.qml:441
323+#: qml/Shell.qml:440
328324msgid "Sorry, incorrect passphrase."
329325msgstr "Жао ми је, погрешна лозинка."
330326
331−#: qml/Shell.qml:442
327+#: qml/Shell.qml:441
332328msgid "Sorry, incorrect passcode."
333329msgstr "Жао ми је, погрешан код."
334330
335−#: qml/Shell.qml:443
331+#: qml/Shell.qml:442
336332msgid "This will be your last attempt."
337333msgstr "Ово је ваш последњи покушај."
338334
339−#: qml/Shell.qml:445
335+#: qml/Shell.qml:444
340336msgid ""
341337"If passphrase is entered incorrectly, your phone will conduct a factory "
342338"reset and all personal data will be deleted."
@@ -344,7 +340,7 @@ msgstr ""
344340"Ако се унесе погрешна лозинка, ваш телефон ће се ресетовати и сви лични "
345341"подаци ће бити обрисани."
346342
347−#: qml/Shell.qml:446
343+#: qml/Shell.qml:445
348344msgid ""
349345"If passcode is entered incorrectly, your phone will conduct a factory reset "
350346"and all personal data will be deleted."
@@ -366,3 +362,12 @@ msgstr ""
366362
367363#~ msgid "Speaking..."
368364#~ msgstr "Говор..."
365+
366+#~ msgid "All"
367+#~ msgstr "Сви"
368+
369+#~ msgid "Favorites"
370+#~ msgstr "Омиљени"
371+
372+#~ msgid "Done"
373+#~ msgstr "Готово"
po/sv.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-10-07 14:28+0000\n"
1212"Last-Translator: Josef Andersson <Unknown>\n"
1313"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020"Language: sv\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
@@ -177,20 +177,24 @@ msgstr "Visa mindre"
177177msgid "See all"
178178msgstr "Visa alla"
179179
180−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
180+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
181181#: qml/Panel/SearchIndicator.qml:27
182182msgid "Search"
183183msgstr "Sök"
184184
185−#: qml/Dash/PageHeader.qml:268
185+#: qml/Dash/PageHeader.qml:260
186+msgid "Store"
187+msgstr "Butik"
188+
189+#: qml/Dash/PageHeader.qml:277
186190msgid "Settings"
187191msgstr "Inställningar"
188192
189−#: qml/Dash/PageHeader.qml:275
193+#: qml/Dash/PageHeader.qml:284
190194msgid "Remove from Favorites"
191195msgstr "Ta bort från Favoriter"
192196
193−#: qml/Dash/PageHeader.qml:275
197+#: qml/Dash/PageHeader.qml:284
194198msgid "Add to Favorites"
195199msgstr "Lägg till Favoriter"
196200
@@ -222,31 +226,23 @@ msgstr "Dra för att uppdatera..."
222226msgid "Release to refresh…"
223227msgstr "Släpp för uppdatera..."
224228
225−#: qml/Dash/ScopesOverview.qml:215
226−msgid "Manage Scopes"
227−msgstr "Hantera vyer"
228−
229−#: qml/Dash/ScopesOverview.qml:437
230−msgid "Done"
231−msgstr "Klar"
232−
233−#: qml/Dash/ScopesOverview.qml:463
234−msgid "Store"
235−msgstr "Butik"
229+#: qml/Dash/ScopesList.qml:63
230+msgid "Manage"
231+msgstr ""
236232
237−#: qml/Dash/ScopesOverviewTab.qml:36
238−msgid "Favorites"
239−msgstr "Favoriter"
233+#: qml/Dash/ScopesList.qml:105
234+msgid "Home"
235+msgstr ""
240236
241−#: qml/Dash/ScopesOverviewTab.qml:54
242−msgid "All"
243−msgstr "Alla"
237+#: qml/Dash/ScopesList.qml:106
238+msgid "Also installed"
239+msgstr ""
244240
245241#: qml/Greeter/Greeter.qml:174
246242msgid "Unlock"
247243msgstr "Lås upp"
248244
249−#: qml/Notifications/NotificationMenuItemFactory.qml:116
245+#: qml/Notifications/NotificationMenuItemFactory.qml:128
250246msgid "Show password"
251247msgstr "Visa lösenord"
252248
@@ -294,49 +290,49 @@ msgstr "Lås upp SIM-kort"
294290msgid "Roaming"
295291msgstr "Roaming"
296292
297−#: qml/Shell.qml:391
293+#: qml/Shell.qml:390
298294msgid "Enter passphrase"
299295msgstr "Ange lösenfras"
300296
301−#: qml/Shell.qml:392
297+#: qml/Shell.qml:391
302298msgid "Sorry, incorrect passphrase"
303299msgstr "Felaktig lösenfras"
304300
305−#: qml/Shell.qml:393
301+#: qml/Shell.qml:392
306302msgid "Please re-enter"
307303msgstr "Ange igen"
308304
309−#: qml/Shell.qml:395
305+#: qml/Shell.qml:394
310306msgid "Enter passcode"
311307msgstr "Ange lösenkod"
312308
313−#: qml/Shell.qml:396
309+#: qml/Shell.qml:395
314310msgid "Sorry, incorrect passcode"
315311msgstr "Felaktig lösenkod"
316312
317−#: qml/Shell.qml:399
313+#: qml/Shell.qml:398
318314#, qt-format
319315msgid "Enter %1"
320316msgstr "Ange %1"
321317
322−#: qml/Shell.qml:400
318+#: qml/Shell.qml:399
323319#, qt-format
324320msgid "Sorry, incorrect %1"
325321msgstr "Felaktig %1"
326322
327−#: qml/Shell.qml:441
323+#: qml/Shell.qml:440
328324msgid "Sorry, incorrect passphrase."
329325msgstr "Felaktig lösenfras."
330326
331−#: qml/Shell.qml:442
327+#: qml/Shell.qml:441
332328msgid "Sorry, incorrect passcode."
333329msgstr "Felaktig lösenkod."
334330
335−#: qml/Shell.qml:443
331+#: qml/Shell.qml:442
336332msgid "This will be your last attempt."
337333msgstr "Detta är ditt sista försök."
338334
339−#: qml/Shell.qml:445
335+#: qml/Shell.qml:444
340336msgid ""
341337"If passphrase is entered incorrectly, your phone will conduct a factory "
342338"reset and all personal data will be deleted."
@@ -344,7 +340,7 @@ msgstr ""
344340"Om lösenfrasen anges inkorrekt kommer telefonen att fabrikåterställas och "
345341"all personlig data kommer att tas bort."
346342
347−#: qml/Shell.qml:446
343+#: qml/Shell.qml:445
348344msgid ""
349345"If passcode is entered incorrectly, your phone will conduct a factory reset "
350346"and all personal data will be deleted."
@@ -366,3 +362,15 @@ msgstr ""
366362
367363#~ msgid "Speaking..."
368364#~ msgstr "Talar…"
365+
366+#~ msgid "Favorites"
367+#~ msgstr "Favoriter"
368+
369+#~ msgid "All"
370+#~ msgstr "Alla"
371+
372+#~ msgid "Done"
373+#~ msgstr "Klar"
374+
375+#~ msgid "Manage Scopes"
376+#~ msgstr "Hantera vyer"
po/sw.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-14 19:28+0000\n"
1212"Last-Translator: Damas <Unknown>\n"
1313"Language-Team: Swahili <sw@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "Tafuta"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/ta.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-10-24 11:36+0000\n"
1212"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
1313"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020"Language: ta\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
@@ -175,20 +175,24 @@ msgstr ""
175175msgid "See all"
176176msgstr ""
177177
178−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
179179#: qml/Panel/SearchIndicator.qml:27
180180msgid "Search"
181181msgstr "தெடு"
182182
183−#: qml/Dash/PageHeader.qml:268
183+#: qml/Dash/PageHeader.qml:260
184+msgid "Store"
185+msgstr ""
186+
187+#: qml/Dash/PageHeader.qml:277
184188msgid "Settings"
185189msgstr ""
186190
187−#: qml/Dash/PageHeader.qml:275
191+#: qml/Dash/PageHeader.qml:284
188192msgid "Remove from Favorites"
189193msgstr ""
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Add to Favorites"
193197msgstr ""
194198
@@ -220,31 +224,23 @@ msgstr ""
220224msgid "Release to refresh…"
221225msgstr ""
222226
223−#: qml/Dash/ScopesOverview.qml:215
224−msgid "Manage Scopes"
227+#: qml/Dash/ScopesList.qml:63
228+msgid "Manage"
225229msgstr ""
226230
227−#: qml/Dash/ScopesOverview.qml:437
228−msgid "Done"
229−msgstr ""
230−
231−#: qml/Dash/ScopesOverview.qml:463
232−msgid "Store"
231+#: qml/Dash/ScopesList.qml:105
232+msgid "Home"
233233msgstr ""
234234
235−#: qml/Dash/ScopesOverviewTab.qml:36
236−msgid "Favorites"
237−msgstr ""
238−
239−#: qml/Dash/ScopesOverviewTab.qml:54
240−msgid "All"
235+#: qml/Dash/ScopesList.qml:106
236+msgid "Also installed"
241237msgstr ""
242238
243239#: qml/Greeter/Greeter.qml:174
244240msgid "Unlock"
245241msgstr ""
246242
247−#: qml/Notifications/NotificationMenuItemFactory.qml:116
243+#: qml/Notifications/NotificationMenuItemFactory.qml:128
248244msgid "Show password"
249245msgstr ""
250246
@@ -292,55 +288,55 @@ msgstr ""
292288msgid "Roaming"
293289msgstr ""
294290
295−#: qml/Shell.qml:391
291+#: qml/Shell.qml:390
296292msgid "Enter passphrase"
297293msgstr ""
298294
299−#: qml/Shell.qml:392
295+#: qml/Shell.qml:391
300296msgid "Sorry, incorrect passphrase"
301297msgstr ""
302298
303−#: qml/Shell.qml:393
299+#: qml/Shell.qml:392
304300msgid "Please re-enter"
305301msgstr ""
306302
307−#: qml/Shell.qml:395
303+#: qml/Shell.qml:394
308304msgid "Enter passcode"
309305msgstr ""
310306
311−#: qml/Shell.qml:396
307+#: qml/Shell.qml:395
312308msgid "Sorry, incorrect passcode"
313309msgstr ""
314310
315−#: qml/Shell.qml:399
311+#: qml/Shell.qml:398
316312#, qt-format
317313msgid "Enter %1"
318314msgstr ""
319315
320−#: qml/Shell.qml:400
316+#: qml/Shell.qml:399
321317#, qt-format
322318msgid "Sorry, incorrect %1"
323319msgstr ""
324320
325−#: qml/Shell.qml:441
321+#: qml/Shell.qml:440
326322msgid "Sorry, incorrect passphrase."
327323msgstr ""
328324
329−#: qml/Shell.qml:442
325+#: qml/Shell.qml:441
330326msgid "Sorry, incorrect passcode."
331327msgstr ""
332328
333−#: qml/Shell.qml:443
329+#: qml/Shell.qml:442
334330msgid "This will be your last attempt."
335331msgstr ""
336332
337−#: qml/Shell.qml:445
333+#: qml/Shell.qml:444
338334msgid ""
339335"If passphrase is entered incorrectly, your phone will conduct a factory "
340336"reset and all personal data will be deleted."
341337msgstr ""
342338
343−#: qml/Shell.qml:446
339+#: qml/Shell.qml:445
344340msgid ""
345341"If passcode is entered incorrectly, your phone will conduct a factory reset "
346342"and all personal data will be deleted."
po/te.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-07-19 10:04+0000\n"
1212"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
1313"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "వెతుకు"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "సంకేతపదాన్ని చూపించు"
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/th.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-10-02 04:55+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Thai <th@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/tr.po+33−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-07-16 17:58+0000\n"
1212"Last-Translator: Volkan Gezer <Unknown>\n"
1313"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:21+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -175,20 +175,24 @@ msgstr "Daha azını gör"
175175msgid "See all"
176176msgstr "Tümünü gör"
177177
178−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
179179#: qml/Panel/SearchIndicator.qml:27
180180msgid "Search"
181181msgstr "Ara"
182182
183−#: qml/Dash/PageHeader.qml:268
183+#: qml/Dash/PageHeader.qml:260
184+msgid "Store"
185+msgstr "Mağaza"
186+
187+#: qml/Dash/PageHeader.qml:277
184188msgid "Settings"
185189msgstr ""
186190
187−#: qml/Dash/PageHeader.qml:275
191+#: qml/Dash/PageHeader.qml:284
188192msgid "Remove from Favorites"
189193msgstr ""
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Add to Favorites"
193197msgstr "Yer İmlerine Ekle"
194198
@@ -220,31 +224,23 @@ msgstr ""
220224msgid "Release to refresh…"
221225msgstr ""
222226
223−#: qml/Dash/ScopesOverview.qml:215
224−msgid "Manage Scopes"
227+#: qml/Dash/ScopesList.qml:63
228+msgid "Manage"
225229msgstr ""
226230
227−#: qml/Dash/ScopesOverview.qml:437
228−msgid "Done"
229−msgstr "Bitti"
230−
231−#: qml/Dash/ScopesOverview.qml:463
232−msgid "Store"
233−msgstr "Mağaza"
234−
235−#: qml/Dash/ScopesOverviewTab.qml:36
236−msgid "Favorites"
231+#: qml/Dash/ScopesList.qml:105
232+msgid "Home"
237233msgstr ""
238234
239−#: qml/Dash/ScopesOverviewTab.qml:54
240−msgid "All"
235+#: qml/Dash/ScopesList.qml:106
236+msgid "Also installed"
241237msgstr ""
242238
243239#: qml/Greeter/Greeter.qml:174
244240msgid "Unlock"
245241msgstr ""
246242
247−#: qml/Notifications/NotificationMenuItemFactory.qml:116
243+#: qml/Notifications/NotificationMenuItemFactory.qml:128
248244msgid "Show password"
249245msgstr "Parolayı göster"
250246
@@ -292,49 +288,49 @@ msgstr "SIM kilidini aç"
292288msgid "Roaming"
293289msgstr ""
294290
295−#: qml/Shell.qml:391
291+#: qml/Shell.qml:390
296292msgid "Enter passphrase"
297293msgstr ""
298294
299−#: qml/Shell.qml:392
295+#: qml/Shell.qml:391
300296msgid "Sorry, incorrect passphrase"
301297msgstr "Üzgünüm, hatalı parola"
302298
303−#: qml/Shell.qml:393
299+#: qml/Shell.qml:392
304300msgid "Please re-enter"
305301msgstr ""
306302
307−#: qml/Shell.qml:395
303+#: qml/Shell.qml:394
308304msgid "Enter passcode"
309305msgstr ""
310306
311−#: qml/Shell.qml:396
307+#: qml/Shell.qml:395
312308msgid "Sorry, incorrect passcode"
313309msgstr "Üzgünüm, hatalı parola"
314310
315−#: qml/Shell.qml:399
311+#: qml/Shell.qml:398
316312#, qt-format
317313msgid "Enter %1"
318314msgstr ""
319315
320−#: qml/Shell.qml:400
316+#: qml/Shell.qml:399
321317#, qt-format
322318msgid "Sorry, incorrect %1"
323319msgstr "Üzgünüm, hatalı %1"
324320
325−#: qml/Shell.qml:441
321+#: qml/Shell.qml:440
326322msgid "Sorry, incorrect passphrase."
327323msgstr "Üzgünüm, hatalı parola."
328324
329−#: qml/Shell.qml:442
325+#: qml/Shell.qml:441
330326msgid "Sorry, incorrect passcode."
331327msgstr "Üzgünüm, hatalı parola."
332328
333−#: qml/Shell.qml:443
329+#: qml/Shell.qml:442
334330msgid "This will be your last attempt."
335331msgstr "Bu son denemeniz olacak."
336332
337−#: qml/Shell.qml:445
333+#: qml/Shell.qml:444
338334msgid ""
339335"If passphrase is entered incorrectly, your phone will conduct a factory "
340336"reset and all personal data will be deleted."
@@ -342,7 +338,7 @@ msgstr ""
342338"Eğer hatalı parola girilirse, telefonunuz fabrika ayarlarına dönecek ve tüm "
343339"kişisel verileriniz silinecek."
344340
345−#: qml/Shell.qml:446
341+#: qml/Shell.qml:445
346342msgid ""
347343"If passcode is entered incorrectly, your phone will conduct a factory reset "
348344"and all personal data will be deleted."
@@ -364,3 +360,6 @@ msgstr ""
364360
365361#~ msgid "Speaking..."
366362#~ msgstr "Konuşuyor..."
363+
364+#~ msgid "Done"
365+#~ msgstr "Bitti"
po/ug.po+46−38
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-10-07 09:00+0000\n"
1212"Last-Translator: Gheyret T.Kenji <Unknown>\n"
1313"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -157,7 +157,7 @@ msgstr ""
157157
158158#: qml/Components/Lockscreen.qml:223
159159msgid "Return to Call"
160−msgstr ""
160+msgstr "سۆزلىشىشكە قايت"
161161
162162#: qml/Components/Lockscreen.qml:223
163163msgid "Emergency Call"
@@ -175,20 +175,24 @@ msgstr "ئازراق كۆرۈش"
175175msgid "See all"
176176msgstr "ھەممىنى كۆرۈش…"
177177
178−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
178+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
179179#: qml/Panel/SearchIndicator.qml:27
180180msgid "Search"
181181msgstr "ئىزدە"
182182
183−#: qml/Dash/PageHeader.qml:268
183+#: qml/Dash/PageHeader.qml:260
184+msgid "Store"
185+msgstr "ساقلا"
186+
187+#: qml/Dash/PageHeader.qml:277
184188msgid "Settings"
185189msgstr "تەڭشەكلەر"
186190
187−#: qml/Dash/PageHeader.qml:275
191+#: qml/Dash/PageHeader.qml:284
188192msgid "Remove from Favorites"
189193msgstr "يىغقۇچتىن چىقىرىۋەت"
190194
191−#: qml/Dash/PageHeader.qml:275
195+#: qml/Dash/PageHeader.qml:284
192196msgid "Add to Favorites"
193197msgstr "يىغقۇچقا قوش"
194198
@@ -220,31 +224,23 @@ msgstr "تارتسا يېڭىلىنىدۇ…"
220224msgid "Release to refresh…"
221225msgstr "قويۇۋەتسە يېڭىلىنىدۇ…"
222226
223−#: qml/Dash/ScopesOverview.qml:215
224−msgid "Manage Scopes"
225−msgstr "دائىرە باشقۇرۇش"
226−
227−#: qml/Dash/ScopesOverview.qml:437
228−msgid "Done"
229−msgstr "تامام"
230−
231−#: qml/Dash/ScopesOverview.qml:463
232−msgid "Store"
233−msgstr "ساقلا"
227+#: qml/Dash/ScopesList.qml:63
228+msgid "Manage"
229+msgstr ""
234230
235−#: qml/Dash/ScopesOverviewTab.qml:36
236−msgid "Favorites"
237−msgstr "يىغقۇچ"
231+#: qml/Dash/ScopesList.qml:105
232+msgid "Home"
233+msgstr ""
238234
239−#: qml/Dash/ScopesOverviewTab.qml:54
240−msgid "All"
241−msgstr "ھەممىسى"
235+#: qml/Dash/ScopesList.qml:106
236+msgid "Also installed"
237+msgstr ""
242238
243239#: qml/Greeter/Greeter.qml:174
244240msgid "Unlock"
245241msgstr "قۇلۇپسىزلا"
246242
247−#: qml/Notifications/NotificationMenuItemFactory.qml:116
243+#: qml/Notifications/NotificationMenuItemFactory.qml:128
248244msgid "Show password"
249245msgstr "ئىم كۆرسەت"
250246
@@ -292,49 +288,49 @@ msgstr "SIM نى قۇلۇپسىزلاش"
292288msgid "Roaming"
293289msgstr "كەزمە"
294290
295−#: qml/Shell.qml:391
291+#: qml/Shell.qml:390
296292msgid "Enter passphrase"
297293msgstr "ئىم كىرگۈزۈڭ"
298294
299−#: qml/Shell.qml:392
295+#: qml/Shell.qml:391
300296msgid "Sorry, incorrect passphrase"
301297msgstr "كەچۈرۈڭ، ئىم توغرا ئەمەس"
302298
303−#: qml/Shell.qml:393
299+#: qml/Shell.qml:392
304300msgid "Please re-enter"
305301msgstr "قايتا كىرگۈزۈڭ"
306302
307−#: qml/Shell.qml:395
303+#: qml/Shell.qml:394
308304msgid "Enter passcode"
309305msgstr "ئىم كودى(passcode)نى كىرگۈزۈڭ"
310306
311−#: qml/Shell.qml:396
307+#: qml/Shell.qml:395
312308msgid "Sorry, incorrect passcode"
313309msgstr "كەچۈرۈڭ، ئىم توغرا ئەمەس"
314310
315−#: qml/Shell.qml:399
311+#: qml/Shell.qml:398
316312#, qt-format
317313msgid "Enter %1"
318314msgstr "%1 نى كىرگۈزۈڭ"
319315
320−#: qml/Shell.qml:400
316+#: qml/Shell.qml:399
321317#, qt-format
322318msgid "Sorry, incorrect %1"
323319msgstr "كەچۈرۈڭ، %1 توغرا ئەمەس"
324320
325−#: qml/Shell.qml:441
321+#: qml/Shell.qml:440
326322msgid "Sorry, incorrect passphrase."
327323msgstr "كەچۈرۈڭ، ئىم توغرا ئەمەس"
328324
329−#: qml/Shell.qml:442
325+#: qml/Shell.qml:441
330326msgid "Sorry, incorrect passcode."
331327msgstr "كەچۈرۈڭ، ئىم كودى ئەمەس"
332328
333−#: qml/Shell.qml:443
329+#: qml/Shell.qml:442
334330msgid "This will be your last attempt."
335331msgstr "بۇ سىزنىڭ ئەڭ ئاخىرقى پۇرسىتىڭىز"
336332
337−#: qml/Shell.qml:445
333+#: qml/Shell.qml:444
338334msgid ""
339335"If passphrase is entered incorrectly, your phone will conduct a factory "
340336"reset and all personal data will be deleted."
@@ -342,7 +338,7 @@ msgstr ""
342338"ئەگەر ئىم توغرا بولمىسا، تېلېفونىڭىز ئەسلىگە قايتۇرۇلۇپ، زاۋۇتتىن چىققان "
343339"ھالەتكە كېلىپ قالىدۇ. بارلىق مەزمۇنلار يوقىلىدۇ."
344340
345−#: qml/Shell.qml:446
341+#: qml/Shell.qml:445
346342msgid ""
347343"If passcode is entered incorrectly, your phone will conduct a factory reset "
348344"and all personal data will be deleted."
@@ -364,3 +360,15 @@ msgstr ""
364360
365361#~ msgid "Speaking..."
366362#~ msgstr "سۆزلەۋاتىسىز…"
363+
364+#~ msgid "Done"
365+#~ msgstr "تامام"
366+
367+#~ msgid "Favorites"
368+#~ msgstr "يىغقۇچ"
369+
370+#~ msgid "All"
371+#~ msgstr "ھەممىسى"
372+
373+#~ msgid "Manage Scopes"
374+#~ msgstr "دائىرە باشقۇرۇش"
po/uk.po+45−37
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-07 16:47+0000\n"
1212"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
1313"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
20−"X-Generator: Launchpad (build 17231)\n"
19+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
20+"X-Generator: Launchpad (build 17283)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:130
2323msgid "Password: "
@@ -185,20 +185,24 @@ msgstr "Стисліше"
185185msgid "See all"
186186msgstr "Детальніше"
187187
188−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
188+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
189189#: qml/Panel/SearchIndicator.qml:27
190190msgid "Search"
191191msgstr "Пошук"
192192
193−#: qml/Dash/PageHeader.qml:268
193+#: qml/Dash/PageHeader.qml:260
194+msgid "Store"
195+msgstr "Крамниця"
196+
197+#: qml/Dash/PageHeader.qml:277
194198msgid "Settings"
195199msgstr "Параметри"
196200
197−#: qml/Dash/PageHeader.qml:275
201+#: qml/Dash/PageHeader.qml:284
198202msgid "Remove from Favorites"
199203msgstr "Вилучити з вибраного"
200204
201−#: qml/Dash/PageHeader.qml:275
205+#: qml/Dash/PageHeader.qml:284
202206msgid "Add to Favorites"
203207msgstr "Додати до вибраного"
204208
@@ -230,31 +234,23 @@ msgstr "Потягніть для оновлення…"
230234msgid "Release to refresh…"
231235msgstr "Відпустіть для оновлення…"
232236
233−#: qml/Dash/ScopesOverview.qml:215
234−msgid "Manage Scopes"
235−msgstr "Керування областями"
236−
237−#: qml/Dash/ScopesOverview.qml:437
238−msgid "Done"
239−msgstr "Виконано"
240−
241−#: qml/Dash/ScopesOverview.qml:463
242−msgid "Store"
243−msgstr "Крамниця"
237+#: qml/Dash/ScopesList.qml:63
238+msgid "Manage"
239+msgstr "Керування"
244240
245−#: qml/Dash/ScopesOverviewTab.qml:36
246−msgid "Favorites"
247−msgstr "Улюблене"
241+#: qml/Dash/ScopesList.qml:105
242+msgid "Home"
243+msgstr "Домівка"
248244
249−#: qml/Dash/ScopesOverviewTab.qml:54
250−msgid "All"
251−msgstr "Все"
245+#: qml/Dash/ScopesList.qml:106
246+msgid "Also installed"
247+msgstr "Також встановлено"
252248
253249#: qml/Greeter/Greeter.qml:174
254250msgid "Unlock"
255251msgstr "Розблокувати"
256252
257−#: qml/Notifications/NotificationMenuItemFactory.qml:116
253+#: qml/Notifications/NotificationMenuItemFactory.qml:128
258254msgid "Show password"
259255msgstr "Показати пароль"
260256
@@ -302,49 +298,49 @@ msgstr "Розблокувати SIM"
302298msgid "Roaming"
303299msgstr "Роумінг"
304300
305−#: qml/Shell.qml:391
301+#: qml/Shell.qml:390
306302msgid "Enter passphrase"
307303msgstr "Введіть пароль"
308304
309−#: qml/Shell.qml:392
305+#: qml/Shell.qml:391
310306msgid "Sorry, incorrect passphrase"
311307msgstr "Вибачте, помилковий пароль"
312308
313−#: qml/Shell.qml:393
309+#: qml/Shell.qml:392
314310msgid "Please re-enter"
315311msgstr "Ввведіть ще раз"
316312
317−#: qml/Shell.qml:395
313+#: qml/Shell.qml:394
318314msgid "Enter passcode"
319315msgstr "Введіть код"
320316
321−#: qml/Shell.qml:396
317+#: qml/Shell.qml:395
322318msgid "Sorry, incorrect passcode"
323319msgstr "Вибачте, помилковий код-пароль"
324320
325−#: qml/Shell.qml:399
321+#: qml/Shell.qml:398
326322#, qt-format
327323msgid "Enter %1"
328324msgstr "Введіть %1"
329325
330−#: qml/Shell.qml:400
326+#: qml/Shell.qml:399
331327#, qt-format
332328msgid "Sorry, incorrect %1"
333329msgstr "Вибачте, помилковий %1"
334330
335−#: qml/Shell.qml:441
331+#: qml/Shell.qml:440
336332msgid "Sorry, incorrect passphrase."
337333msgstr "Вибачте, помилковий пароль."
338334
339−#: qml/Shell.qml:442
335+#: qml/Shell.qml:441
340336msgid "Sorry, incorrect passcode."
341337msgstr "Вибачте, помилковий код-пароль."
342338
343−#: qml/Shell.qml:443
339+#: qml/Shell.qml:442
344340msgid "This will be your last attempt."
345341msgstr "Ця спроба буде останньою."
346342
347−#: qml/Shell.qml:445
343+#: qml/Shell.qml:444
348344msgid ""
349345"If passphrase is entered incorrectly, your phone will conduct a factory "
350346"reset and all personal data will be deleted."
@@ -352,7 +348,7 @@ msgstr ""
352348"Якщо пароль буде вказано неправильно, телефон повернеться до початкового "
353349"стану, усі особисті дані буде вилучено."
354350
355−#: qml/Shell.qml:446
351+#: qml/Shell.qml:445
356352msgid ""
357353"If passcode is entered incorrectly, your phone will conduct a factory reset "
358354"and all personal data will be deleted."
@@ -374,3 +370,15 @@ msgstr ""
374370
375371#~ msgid "Speaking..."
376372#~ msgstr "Мовлення…"
373+
374+#~ msgid "All"
375+#~ msgstr "Все"
376+
377+#~ msgid "Favorites"
378+#~ msgstr "Улюблене"
379+
380+#~ msgid "Done"
381+#~ msgstr "Виконано"
382+
383+#~ msgid "Manage Scopes"
384+#~ msgstr "Керування областями"
po/unity8.pot+28−32
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
11+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/vi.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-01-15 01:19+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Vietnamese <vi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/xh.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2013-09-28 13:20+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Xhosa <xh@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr ""
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr ""
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/zh_CN.po+44−39
@@ -7,20 +7,20 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
11−"PO-Revision-Date: 2014-08-12 14:09+0000\n"
12−"Last-Translator: Anthony Wong <anthony.wong@ubuntu.com>\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
11+"PO-Revision-Date: 2014-12-04 11:57+0000\n"
12+"Last-Translator: Mo <alimo199x@gmail.com>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
23−msgstr ""
23+msgstr "密码: "
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:45
2626#: plugins/Unity/Launcher/launcheritem.cpp:91
@@ -172,20 +172,24 @@ msgstr "显示更少"
172172msgid "See all"
173173msgstr "查看全部"
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "搜索"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr "商店"
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr "完成"
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
230−msgstr "商店"
231−
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr "收藏夹"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230+msgstr ""
235231
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
238−msgstr "所有"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
234+msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "显示密码"
247243
@@ -289,55 +285,55 @@ msgstr "解开 SIM"
289285msgid "Roaming"
290286msgstr "漫游"
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
@@ -357,3 +353,12 @@ msgstr ""
357353
358354#~ msgid "Speaking..."
359355#~ msgstr "讲话中..."
356+
357+#~ msgid "All"
358+#~ msgstr "所有"
359+
360+#~ msgid "Favorites"
361+#~ msgstr "收藏夹"
362+
363+#~ msgid "Done"
364+#~ msgstr "完成"
po/zh_HK.po+30−34
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-08-10 11:45+0000\n"
1212"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
1313"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-09 06:54+0000\n"
19−"X-Generator: Launchpad (build 17231)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -172,20 +172,24 @@ msgstr "縮減查看"
172172msgid "See all"
173173msgstr "查看全部"
174174
175−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
175+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr "搜尋"
179179
180−#: qml/Dash/PageHeader.qml:268
180+#: qml/Dash/PageHeader.qml:260
181+msgid "Store"
182+msgstr ""
183+
184+#: qml/Dash/PageHeader.qml:277
181185msgid "Settings"
182186msgstr ""
183187
184−#: qml/Dash/PageHeader.qml:275
188+#: qml/Dash/PageHeader.qml:284
185189msgid "Remove from Favorites"
186190msgstr ""
187191
188−#: qml/Dash/PageHeader.qml:275
192+#: qml/Dash/PageHeader.qml:284
189193msgid "Add to Favorites"
190194msgstr ""
191195
@@ -217,31 +221,23 @@ msgstr ""
217221msgid "Release to refresh…"
218222msgstr ""
219223
220−#: qml/Dash/ScopesOverview.qml:215
221−msgid "Manage Scopes"
224+#: qml/Dash/ScopesList.qml:63
225+msgid "Manage"
222226msgstr ""
223227
224−#: qml/Dash/ScopesOverview.qml:437
225−msgid "Done"
226−msgstr ""
227−
228−#: qml/Dash/ScopesOverview.qml:463
229−msgid "Store"
228+#: qml/Dash/ScopesList.qml:105
229+msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesOverviewTab.qml:36
233−msgid "Favorites"
234−msgstr ""
235−
236−#: qml/Dash/ScopesOverviewTab.qml:54
237−msgid "All"
232+#: qml/Dash/ScopesList.qml:106
233+msgid "Also installed"
238234msgstr ""
239235
240236#: qml/Greeter/Greeter.qml:174
241237msgid "Unlock"
242238msgstr ""
243239
244−#: qml/Notifications/NotificationMenuItemFactory.qml:116
240+#: qml/Notifications/NotificationMenuItemFactory.qml:128
245241msgid "Show password"
246242msgstr "顯示密碼"
247243
@@ -289,55 +285,55 @@ msgstr ""
289285msgid "Roaming"
290286msgstr ""
291287
292−#: qml/Shell.qml:391
288+#: qml/Shell.qml:390
293289msgid "Enter passphrase"
294290msgstr ""
295291
296−#: qml/Shell.qml:392
292+#: qml/Shell.qml:391
297293msgid "Sorry, incorrect passphrase"
298294msgstr ""
299295
300−#: qml/Shell.qml:393
296+#: qml/Shell.qml:392
301297msgid "Please re-enter"
302298msgstr ""
303299
304−#: qml/Shell.qml:395
300+#: qml/Shell.qml:394
305301msgid "Enter passcode"
306302msgstr ""
307303
308−#: qml/Shell.qml:396
304+#: qml/Shell.qml:395
309305msgid "Sorry, incorrect passcode"
310306msgstr ""
311307
312−#: qml/Shell.qml:399
308+#: qml/Shell.qml:398
313309#, qt-format
314310msgid "Enter %1"
315311msgstr ""
316312
317−#: qml/Shell.qml:400
313+#: qml/Shell.qml:399
318314#, qt-format
319315msgid "Sorry, incorrect %1"
320316msgstr ""
321317
322−#: qml/Shell.qml:441
318+#: qml/Shell.qml:440
323319msgid "Sorry, incorrect passphrase."
324320msgstr ""
325321
326−#: qml/Shell.qml:442
322+#: qml/Shell.qml:441
327323msgid "Sorry, incorrect passcode."
328324msgstr ""
329325
330−#: qml/Shell.qml:443
326+#: qml/Shell.qml:442
331327msgid "This will be your last attempt."
332328msgstr ""
333329
334−#: qml/Shell.qml:445
330+#: qml/Shell.qml:444
335331msgid ""
336332"If passphrase is entered incorrectly, your phone will conduct a factory "
337333"reset and all personal data will be deleted."
338334msgstr ""
339335
340−#: qml/Shell.qml:446
336+#: qml/Shell.qml:445
341337msgid ""
342338"If passcode is entered incorrectly, your phone will conduct a factory reset "
343339"and all personal data will be deleted."
po/zh_TW.po+48−43
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-11-07 10:59+0100\n"
10+"POT-Creation-Date: 2014-11-20 12:00+0100\n"
1111"PO-Revision-Date: 2014-11-19 15:05+0000\n"
1212"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-11-20 06:27+0000\n"
19−"X-Generator: Launchpad (build 17252)\n"
18+"X-Launchpad-Export-Date: 2014-12-09 06:22+0000\n"
19+"X-Generator: Launchpad (build 17283)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -171,20 +171,24 @@ msgstr "縮減查看"
171171msgid "See all"
172172msgstr "查看全部"
173173
174−#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:258
174+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:267
175175#: qml/Panel/SearchIndicator.qml:27
176176msgid "Search"
177177msgstr "搜尋"
178178
179−#: qml/Dash/PageHeader.qml:268
179+#: qml/Dash/PageHeader.qml:260
180+msgid "Store"
181+msgstr "商城"
182+
183+#: qml/Dash/PageHeader.qml:277
180184msgid "Settings"
181185msgstr "設定"
182186
183−#: qml/Dash/PageHeader.qml:275
187+#: qml/Dash/PageHeader.qml:284
184188msgid "Remove from Favorites"
185189msgstr "自「最愛」移除"
186190
187−#: qml/Dash/PageHeader.qml:275
191+#: qml/Dash/PageHeader.qml:284
188192msgid "Add to Favorites"
189193msgstr "加入到「最愛」"
190194
@@ -216,31 +220,23 @@ msgstr "下拉以重新整理..."
216220msgid "Release to refresh…"
217221msgstr "放開以重新整理..."
218222
219−#: qml/Dash/ScopesOverview.qml:215
220−msgid "Manage Scopes"
223+#: qml/Dash/ScopesList.qml:63
224+msgid "Manage"
221225msgstr ""
222226
223−#: qml/Dash/ScopesOverview.qml:437
224−msgid "Done"
225−msgstr "完成"
226−
227−#: qml/Dash/ScopesOverview.qml:463
228−msgid "Store"
229−msgstr "商城"
230−
231−#: qml/Dash/ScopesOverviewTab.qml:36
232−msgid "Favorites"
233−msgstr "最愛"
227+#: qml/Dash/ScopesList.qml:105
228+msgid "Home"
229+msgstr ""
234230
235−#: qml/Dash/ScopesOverviewTab.qml:54
236−msgid "All"
237−msgstr "全部"
231+#: qml/Dash/ScopesList.qml:106
232+msgid "Also installed"
233+msgstr ""
238234
239235#: qml/Greeter/Greeter.qml:174
240236msgid "Unlock"
241237msgstr "解鎖"
242238
243−#: qml/Notifications/NotificationMenuItemFactory.qml:116
239+#: qml/Notifications/NotificationMenuItemFactory.qml:128
244240msgid "Show password"
245241msgstr "顯示密碼"
246242
@@ -252,31 +248,31 @@ msgstr "輕觸可返回通話…"
252248msgid "Conference"
253249msgstr "會議"
254250
255−#: qml/Panel/Indicators/MenuItemFactory.qml:615
251+#: qml/Panel/Indicators/MenuItemFactory.qml:643
256252msgid "Nothing is playing"
257253msgstr "無影音播放中"
258254
259−#: qml/Panel/Indicators/MenuItemFactory.qml:763
255+#: qml/Panel/Indicators/MenuItemFactory.qml:791
260256msgid "In queue…"
261257msgstr "佇列中…"
262258
263−#: qml/Panel/Indicators/MenuItemFactory.qml:767
259+#: qml/Panel/Indicators/MenuItemFactory.qml:795
264260msgid "Downloading"
265261msgstr "下載中"
266262
267−#: qml/Panel/Indicators/MenuItemFactory.qml:769
263+#: qml/Panel/Indicators/MenuItemFactory.qml:797
268264msgid "Paused, tap to resume"
269265msgstr "已暫停,輕觸可繼續"
270266
271−#: qml/Panel/Indicators/MenuItemFactory.qml:771
267+#: qml/Panel/Indicators/MenuItemFactory.qml:799
272268msgid "Canceled"
273269msgstr "已取消"
274270
275−#: qml/Panel/Indicators/MenuItemFactory.qml:773
271+#: qml/Panel/Indicators/MenuItemFactory.qml:801
276272msgid "Finished"
277273msgstr "已完成"
278274
279−#: qml/Panel/Indicators/MenuItemFactory.qml:775
275+#: qml/Panel/Indicators/MenuItemFactory.qml:803
280276msgid "Failed, tap to retry"
281277msgstr "失敗,輕觸可重試"
282278
@@ -288,55 +284,55 @@ msgstr "為 SIM 卡解鎖"
288284msgid "Roaming"
289285msgstr "漫遊"
290286
291−#: qml/Shell.qml:381
287+#: qml/Shell.qml:390
292288msgid "Enter passphrase"
293289msgstr "輸入密語"
294290
295−#: qml/Shell.qml:382
291+#: qml/Shell.qml:391
296292msgid "Sorry, incorrect passphrase"
297293msgstr "抱歉,密語不對"
298294
299−#: qml/Shell.qml:383
295+#: qml/Shell.qml:392
300296msgid "Please re-enter"
301297msgstr "請再輸入"
302298
303−#: qml/Shell.qml:385
299+#: qml/Shell.qml:394
304300msgid "Enter passcode"
305301msgstr "輸入 passcode"
306302
307−#: qml/Shell.qml:386
303+#: qml/Shell.qml:395
308304msgid "Sorry, incorrect passcode"
309305msgstr "抱歉,passcode 不對"
310306
311−#: qml/Shell.qml:389
307+#: qml/Shell.qml:398
312308#, qt-format
313309msgid "Enter %1"
314310msgstr "輸入 %1"
315311
316−#: qml/Shell.qml:390
312+#: qml/Shell.qml:399
317313#, qt-format
318314msgid "Sorry, incorrect %1"
319315msgstr "抱歉,%1不對"
320316
321−#: qml/Shell.qml:431
317+#: qml/Shell.qml:440
322318msgid "Sorry, incorrect passphrase."
323319msgstr "抱歉,密語不對"
324320
325−#: qml/Shell.qml:432
321+#: qml/Shell.qml:441
326322msgid "Sorry, incorrect passcode."
327323msgstr "抱歉,passcode 不對。"
328324
329−#: qml/Shell.qml:433
325+#: qml/Shell.qml:442
330326msgid "This will be your last attempt."
331327msgstr "這將會是您最後一次嘗試的機會。"
332328
333−#: qml/Shell.qml:435
329+#: qml/Shell.qml:444
334330msgid ""
335331"If passphrase is entered incorrectly, your phone will conduct a factory "
336332"reset and all personal data will be deleted."
337333msgstr "如輸入的密語不對,本電話會進行重設,所有個人資料都會刪除。"
338334
339−#: qml/Shell.qml:436
335+#: qml/Shell.qml:445
340336msgid ""
341337"If passcode is entered incorrectly, your phone will conduct a factory reset "
342338"and all personal data will be deleted."
@@ -356,3 +352,12 @@ msgstr "如輸入的 passcode 不對,本電話會進行重設,所有個人
356352
357353#~ msgid "Type or say a command"
358354#~ msgstr "輸入或說出指令"
355+
356+#~ msgid "All"
357+#~ msgstr "全部"
358+
359+#~ msgid "Favorites"
360+#~ msgstr "最愛"
361+
362+#~ msgid "Done"
363+#~ msgstr "完成"
qml/CMakeLists.txt+1
@@ -13,6 +13,7 @@ set(QML_DIRS
1313 Launcher
1414 Stages
1515 Notifications
16+ Wizard
1617 )
1718
1819install(DIRECTORY ${QML_DIRS}
qml/Components/Dialogs.qml+17−21
@@ -24,10 +24,6 @@ import Ubuntu.Components.Popups 0.1
2424Item {
2525 id: root
2626
27− // Explicitly use the right domain for this widget because it might be used
28− // in other applications like the welcome wizard.
29− readonly property string domain: "unity8"
30−
3127 function onPowerKeyPressed() {
3228 // FIXME: event.isAutoRepeat is always false on Nexus 4.
3329 // So we use powerKeyTimer.running to avoid the PowerOff key repeat
@@ -71,17 +67,17 @@ Item {
7167 id: logoutDialog
7268 Dialog {
7369 id: dialogueLogout
74− title: i18n.dtr(root.domain, "Log out")
75− text: i18n.dtr(root.domain, "Are you sure you want to log out?")
70+ title: i18n.tr("Log out")
71+ text: i18n.tr("Are you sure you want to log out?")
7672 Button {
77− text: i18n.dtr(root.domain, "No")
73+ text: i18n.tr("No")
7874 onClicked: {
7975 PopupUtils.close(dialogueLogout);
8076 d.dialogShown = false;
8177 }
8278 }
8379 Button {
84− text: i18n.dtr(root.domain, "Yes")
80+ text: i18n.tr("Yes")
8581 onClicked: {
8682 DBusUnitySessionService.Logout();
8783 PopupUtils.close(dialogueLogout);
@@ -95,17 +91,17 @@ Item {
9591 id: shutdownDialog
9692 Dialog {
9793 id: dialogueShutdown
98− title: i18n.dtr(root.domain, "Shut down")
99− text: i18n.dtr(root.domain, "Are you sure you want to shut down?")
94+ title: i18n.tr("Shut down")
95+ text: i18n.tr("Are you sure you want to shut down?")
10096 Button {
101− text: i18n.dtr(root.domain, "No")
97+ text: i18n.tr("No")
10298 onClicked: {
10399 PopupUtils.close(dialogueShutdown);
104100 d.dialogShown = false;
105101 }
106102 }
107103 Button {
108− text: i18n.dtr(root.domain, "Yes")
104+ text: i18n.tr("Yes")
109105 onClicked: {
110106 dBusUnitySessionServiceConnection.closeAllApps();
111107 DBusUnitySessionService.Shutdown();
@@ -120,17 +116,17 @@ Item {
120116 id: rebootDialog
121117 Dialog {
122118 id: dialogueReboot
123− title: i18n.dtr(root.domain, "Reboot")
124− text: i18n.dtr(root.domain, "Are you sure you want to reboot?")
119+ title: i18n.tr("Reboot")
120+ text: i18n.tr("Are you sure you want to reboot?")
125121 Button {
126− text: i18n.dtr(root.domain, "No")
122+ text: i18n.tr("No")
127123 onClicked: {
128124 PopupUtils.close(dialogueReboot)
129125 d.dialogShown = false;
130126 }
131127 }
132128 Button {
133− text: i18n.dtr(root.domain, "Yes")
129+ text: i18n.tr("Yes")
134130 onClicked: {
135131 dBusUnitySessionServiceConnection.closeAllApps();
136132 DBusUnitySessionService.Reboot();
@@ -145,10 +141,10 @@ Item {
145141 id: powerDialog
146142 Dialog {
147143 id: dialoguePower
148− title: i18n.dtr(root.domain, "Power")
149− text: i18n.dtr(root.domain, "Are you sure you would like\nto power off?")
144+ title: i18n.tr("Power")
145+ text: i18n.tr("Are you sure you would like\nto power off?")
150146 Button {
151− text: i18n.dtr(root.domain, "Power off")
147+ text: i18n.tr("Power off")
152148 onClicked: {
153149 dBusUnitySessionServiceConnection.closeAllApps();
154150 PopupUtils.close(dialoguePower);
@@ -158,7 +154,7 @@ Item {
158154 color: UbuntuColors.red
159155 }
160156 Button {
161− text: i18n.dtr(root.domain, "Restart")
157+ text: i18n.tr("Restart")
162158 onClicked: {
163159 dBusUnitySessionServiceConnection.closeAllApps();
164160 DBusUnitySessionService.Reboot();
@@ -168,7 +164,7 @@ Item {
168164 color: UbuntuColors.green
169165 }
170166 Button {
171− text: i18n.dtr(root.domain, "Cancel")
167+ text: i18n.tr("Cancel")
172168 onClicked: {
173169 PopupUtils.close(dialoguePower);
174170 d.dialogShown = false;
qml/Components/EdgeDemo.qml+19−6
@@ -17,6 +17,7 @@
1717import AccountsService 0.1
1818import LightDM 0.1 as LightDM
1919import QtQuick 2.0
20+import Ubuntu.Components 1.1
2021
2122Item {
2223 id: demo
@@ -61,11 +62,16 @@ Item {
6162 stagesEnabled = true
6263 panelEnabled = true
6364 panelContentEnabled = true
64− if (d.rightEdgeDemo) d.rightEdgeDemo.destroy()
65− if (d.topEdgeDemo) d.topEdgeDemo.destroy()
66− if (d.bottomEdgeDemo) d.bottomEdgeDemo.destroy()
67− if (d.leftEdgeDemo) d.leftEdgeDemo.destroy()
68− if (d.finalEdgeDemo) d.finalEdgeDemo.destroy()
65+
66+ // Use a tiny delay for these destroy() calls because if a lot is
67+ // happening at once (like creating and being destroyed in same event
68+ // loop, as might happen when answering a call while demo is open),
69+ // the destroy() call will be ignored.
70+ if (d.rightEdgeDemo) d.rightEdgeDemo.destroy(1);
71+ if (d.topEdgeDemo) d.topEdgeDemo.destroy(1);
72+ if (d.bottomEdgeDemo) d.bottomEdgeDemo.destroy(1);
73+ if (d.leftEdgeDemo) d.leftEdgeDemo.destroy(1);
74+ if (d.finalEdgeDemo) d.finalEdgeDemo.destroy(1);
6975 }
7076
7177 function startDemo() {
@@ -97,12 +103,19 @@ Item {
97103 property bool showEdgeDemo: AccountsService.demoEdges
98104 property bool showEdgeDemoInGreeter: AccountsService.demoEdges // TODO: AccountsService.demoEdges as lightdm user
99105
100− onShowEdgeDemoChanged: {
106+ function restartDemo() {
101107 stopDemo()
102108 if (d.showEdgeDemo) {
103109 startDemo()
104110 }
105111 }
112+
113+ onShowEdgeDemoChanged: restartDemo()
114+ }
115+
116+ Connections {
117+ target: i18n
118+ onLanguageChanged: d.restartDemo()
106119 }
107120
108121 function startRightEdgeDemo() {
qml/Dash/CardCarousel.qml+1
@@ -52,6 +52,7 @@ DashRenderer {
5252 function pressAndHold() { cardCarousel.pressAndHold(index, model.result, model) }
5353
5454 sourceComponent: cardTool.cardComponent
55+ asynchronous: true
5556 onLoaded: {
5657 item.fixedHeaderHeight = Qt.binding(function() { return carousel.headerHeight; });
5758 item.height = Qt.binding(function() { return cardTool.cardHeight; });
qml/Dash/CardGrid.qml+1−1
@@ -55,11 +55,11 @@ DashRenderer {
5555 delegate: Item {
5656 width: grid.cellWidth
5757 height: grid.cellHeight
58− visible: y + height >= root.visibleRangeBegin && y <= root.visibleRangeEnd
5958 Loader {
6059 id: loader
6160 sourceComponent: cardTool.cardComponent
6261 anchors.horizontalCenter: parent.horizontalCenter
62+ asynchronous: true
6363 onLoaded: {
6464 item.objectName = "delegate" + index;
6565 item.width = Qt.binding(function() { return cardTool.cardWidth; });
qml/Dash/CardHorizontalList.qml+1
@@ -42,6 +42,7 @@ DashRenderer {
4242 sourceComponent: cardTool.cardComponent
4343 anchors { top: parent.top; bottom: parent.bottom }
4444 width: cardTool.cardWidth
45+ asynchronous: true
4546 onLoaded: {
4647 item.objectName = "delegate" + index;
4748 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
qml/Dash/CardVerticalJournal.qml−1
@@ -66,7 +66,6 @@ DashRenderer {
6666 id: loader
6767 sourceComponent: cardTool.cardComponent
6868 width: cardTool.cardWidth
69− visible: y + height >= root.visibleRangeBegin && y <= root.visibleRangeEnd
7069 onLoaded: {
7170 item.objectName = "delegate" + index;
7271 item.fixedArtShapeSize = Qt.binding(function() { return cardTool.artShapeSize; });
qml/Dash/Dash.qml+100−130
@@ -31,17 +31,23 @@ Showable {
3131 DashCommunicatorService {
3232 objectName: "dashCommunicatorService"
3333 onSetCurrentScopeRequested: {
34− if (!isSwipe || !window.active || overviewController.progress != 0) {
35− if (overviewController.progress != 0 && window.active) animate = false;
34+ if (!isSwipe || !window.active || bottomEdgeController.progress != 0 || scopeItem.scope || dashContent.subPageShown) {
35+ if (bottomEdgeController.progress != 0 && window.active) animate = false;
3636 dashContent.setCurrentScopeAtIndex(index, animate, isSwipe)
37− if (overviewController.progress != 0) {
38− if (window.active) {
39− dashContentCache.scheduleUpdate();
40− }
41− overviewController.enableAnimation = window.active && !scopesOverview.showingNonFavoriteScope;
42− overviewController.progress = 0;
37+ // Close dash overview and nested temp scopes in it
38+ if (bottomEdgeController.progress != 0) {
39+ bottomEdgeController.enableAnimation = window.active && !scopesOverview.showingNonFavoriteScope;
40+ bottomEdgeController.progress = 0;
4341 scopesOverview.closeTempScope();
4442 }
43+ // Close normal temp scopes (e.g. App Store)
44+ if (scopeItem.scope) {
45+ scopeItem.backClicked();
46+ }
47+ // Close previews
48+ if (dashContent.subPageShown) {
49+ dashContent.closePreview();
50+ }
4551 }
4652 }
4753 }
@@ -83,8 +89,8 @@ Showable {
8389 }
8490
8591 QtObject {
86− id: overviewController
87− objectName: "overviewController"
92+ id: bottomEdgeController
93+ objectName: "bottomEdgeController"
8894
8995 property alias enableAnimation: progressAnimation.enabled
9096 property real progress: 0
@@ -92,108 +98,40 @@ Showable {
9298 id: progressAnimation
9399 UbuntuNumberAnimation { }
94100 }
95− }
96101
97− ScopesOverview {
98− id: scopesOverview
99− objectName: "scopesOverview"
100− anchors.fill: parent
101− scope: scopes.overviewScope
102− progress: overviewController.progress
103− scopeScale: scopeItem.scope ? 0.4 : (1 - overviewController.progress * 0.6)
104− visible: scopeScale != 1
105− currentIndex: dashContent.currentIndex
106− onDone: {
107− if (currentTab == 1) {
108− animateDashFromAll(dashContent.currentScopeId);
109− }
110− hide();
111− }
112− onFavoriteSelected: {
113− setCurrentScope(scopeId, false, false);
114− dashContentCache.scheduleUpdate();
115− hide();
116− }
117− onAllFavoriteSelected: {
118− setCurrentScope(scopeId, false, false);
119− dashContentCache.scheduleUpdate();
120− animateDashFromAll(dashContent.currentScopeId);
121− hide();
122− }
123− onSearchSelected: {
124− var scopeIndex = -1;
125− for (var i = 0; i < scopes.count; ++i) {
126− if (scopes.getScope(i).id == scopeId) {
127− scopeIndex = i;
128− break;
129− }
130− }
131− if (scopeIndex >= 0) {
132− // Is a favorite one
133− setCurrentScope(scopeId, false, false);
134− dashContentCache.scheduleUpdate();
135− showDashFromPos(pos, size);
136− hide();
137− } else {
138− // Is not a favorite one, activate and get openScope
139− scope.activate(result);
140− }
141− }
142− function hide() {
143− overviewController.enableAnimation = true;
144− overviewController.progress = 0;
145− }
146102 onProgressChanged: {
147− if (progress == 0) {
148− currentTab = scopeItem.scope ? 1 : 0;
103+ // FIXME This is to workaround a Qt bug with the model moving the current item
104+ // when the list is ListView.SnapOneItem and ListView.StrictlyEnforceRange
105+ // together with the code in DashContent.qml
106+ if (dashContent.workaroundRestoreIndex != -1) {
107+ dashContent.currentIndex = dashContent.workaroundRestoreIndex;
108+ dashContent.workaroundRestoreIndex = -1;
149109 }
150110 }
151111 }
152112
153− ShaderEffectSource {
154− id: dashContentCache
155− parent: scopesOverview.dashItemEater
156− z: 1
157− sourceItem: dashContent
158− height: sourceItem.height
159− width: sourceItem.width
160− opacity: 1 - overviewController.progress
161− visible: overviewController.progress != 0 && scopeItem.scope === null
162− live: false
163− }
164−
165113 DashContent {
166114 id: dashContent
167115
168− property var scopeThatOpenedScope: null
169−
170116 objectName: "dashContent"
171117 width: dash.width
172118 height: dash.height
173119 scopes: scopes
174− visible: !scopesOverview.showingNonFavoriteScope && x != -width
120+ visible: x != -width
175121 onGotoScope: {
176122 dash.setCurrentScope(scopeId, true, false);
177123 }
178124 onOpenScope: {
179− scopeThatOpenedScope = currentScope;
125+ scopeItem.scopeThatOpenedScope = currentScope;
180126 scopeItem.scope = scope;
181− scopesOverview.currentTab = 1;
182− scopesOverview.ensureAllScopeVisible(scope.id);
183127 x = -width;
184128 }
185− clip: scale != 1.0 || scopeItem.visible || overviewController.progress != 0
186129 Behavior on x {
187130 UbuntuNumberAnimation {
188− duration: overviewController.progress != 0 ? 0 : UbuntuAnimation.FastDuration
189131 onRunningChanged: {
190132 if (!running && dashContent.x == 0) {
191− dashContent.scopeThatOpenedScope.closeScope(scopeItem.scope);
133+ scopeItem.scopeThatOpenedScope.closeScope(scopeItem.scope);
192134 scopeItem.scope = null;
193− if (overviewController.progress == 0) {
194− // Set tab to Favorites only if we are not showing the overview
195− scopesOverview.currentTab = 0;
196− }
197135 }
198136 }
199137 }
@@ -205,47 +143,78 @@ Showable {
205143 // about whether that touch was indeed performing a directional drag gesture.
206144 forceNonInteractive: overviewDragHandle.status != DirectionalDragArea.WaitingForTouch
207145
208− enabled: overviewController.progress == 0
209− opacity: enabled ? 1 : 0
146+ enabled: bottomEdgeController.progress == 0
147+ }
148+
149+ Rectangle {
150+ color: "black"
151+ opacity: bottomEdgeController.progress
152+ anchors.fill: dashContent
153+ }
154+
155+ ScopesList {
156+ id: scopesList
157+ objectName: "scopesList"
158+ width: dash.width
159+ height: dash.height
160+ scope: scopes.overviewScope
161+ y: dash.height * (1 - bottomEdgeController.progress)
162+ visible: bottomEdgeController.progress != 0
163+ onBackClicked: {
164+ bottomEdgeController.enableAnimation = true;
165+ bottomEdgeController.progress = 0;
166+ }
167+ onStoreClicked: {
168+ bottomEdgeController.enableAnimation = true;
169+ bottomEdgeController.progress = 0;
170+ dashContent.currentScope.performQuery("scope://com.canonical.scopes.clickstore");
171+ }
172+ onRequestFavorite: {
173+ scopes.setFavorite(scopeId, favorite);
174+ }
175+ onRequestFavoriteMoveTo: {
176+ scopes.moveFavoriteTo(scopeId, index);
177+ }
178+
179+ Binding {
180+ target: scopesList.scope
181+ property: "isActive"
182+ value: bottomEdgeController.progress === 1
183+ }
184+
185+ Connections {
186+ target: scopesList.scope
187+ onOpenScope: {
188+ bottomEdgeController.enableAnimation = true;
189+ bottomEdgeController.progress = 0;
190+ scopeItem.scopeThatOpenedScope = scopesList.scope;
191+ scopeItem.scope = scope;
192+ dashContent.x = -dashContent.width;
193+ }
194+ onGotoScope: {
195+ bottomEdgeController.enableAnimation = true;
196+ bottomEdgeController.progress = 0;
197+ dashContent.gotoScope(scopeId);
198+ }
199+ }
210200 }
211201
212202 DashBackground
213203 {
214204 anchors.fill: scopeItem
215205 visible: scopeItem.visible
216− parent: scopeItem.parent
217− scale: scopeItem.scale
218− opacity: scopeItem.opacity
219206 }
220207
221208 GenericScopeView {
222209 id: scopeItem
223210 objectName: "dashTempScopeItem"
224211
225− readonly property real targetOverviewScale: {
226− if (scopesOverview.currentTab == 0) {
227− return 0.4;
228− } else {
229− return scopesOverview.allCardSize.width / scopeItem.width;
230− }
231− }
232− readonly property real overviewProgressScale: (1 - overviewController.progress * (1 - targetOverviewScale))
233− readonly property var targetOverviewPosition: scope ? scopesOverview.allScopeCardPosition(scope.id) : null
234− readonly property real overviewProgressX: scope && scopesOverview.currentTab == 1 && targetOverviewPosition ?
235− overviewController.progress * (targetOverviewPosition.x - (width - scopesOverview.allCardSize.width) / 2)
236− : 0
237− readonly property real overviewProgressY: scope && scopesOverview.currentTab == 1 && targetOverviewPosition ?
238− overviewController.progress * (targetOverviewPosition.y - (height - scopesOverview.allCardSize.height) / 2)
239− : 0
240−
241− x: overviewController.progress == 0 ? dashContent.x + width : overviewProgressX
242− y: overviewController.progress == 0 ? dashContent.y : overviewProgressY
212+ property var scopeThatOpenedScope: null
213+
214+ x: dashContent.x + width
215+ y: dashContent.y
243216 width: parent.width
244217 height: parent.height
245− scale: overviewProgressScale
246− enabled: opacity == 1
247− opacity: 1 - overviewController.progress
248− clip: scale != 1.0
249218 visible: scope != null
250219 hasBackAction: true
251220 isCurrent: visible
@@ -279,7 +248,7 @@ Showable {
279248 opacity: 0
280249 visible: opacity > 0
281250
282− readonly property bool processing: dashContent.processing || scopeItem.processing || scopesOverview.processing
251+ readonly property bool processing: dashContent.processing || scopeItem.processing || scopesList.processing
283252
284253 Behavior on opacity {
285254 UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
@@ -309,7 +278,7 @@ Showable {
309278 id: orange
310279 anchors { top: parent.top; bottom: parent.bottom }
311280 width: parent.width / 4
312− color: Theme.palette.selected.foreground
281+ color: UbuntuColors.orange
313282
314283 SequentialAnimation {
315284 running: indicator.visible
@@ -336,12 +305,17 @@ Showable {
336305 source: "graphics/overview_hint.png"
337306 anchors.horizontalCenter: parent.horizontalCenter
338307 opacity: (scopeItem.scope ? scopeItem.pageHeaderTotallyVisible : dashContent.pageHeaderTotallyVisible) &&
339− (overviewDragHandle.enabled || overviewController.progress != 0) ? 1 : 0
308+ (overviewDragHandle.enabled || bottomEdgeController.progress != 0) ? 1 : 0
340309 Behavior on opacity {
341− enabled: overviewController.progress == 0
310+ enabled: bottomEdgeController.progress == 0
342311 UbuntuNumberAnimation {}
343312 }
344− y: parent.height - height * (1 - overviewController.progress * 4)
313+ y: parent.height - height * (1 - bottomEdgeController.progress * 4)
314+ MouseArea {
315+ // Eat direct presses on the overview hint so that they do not end up in the card below
316+ anchors.fill: parent
317+ enabled: parent.opacity != 0
318+ }
345319 }
346320
347321 EdgeDragArea {
@@ -352,22 +326,19 @@ Showable {
352326 enabled: !dashContent.subPageShown &&
353327 dashContent.currentScope &&
354328 dashContent.currentScope.searchQuery == "" &&
355− !scopeItem.subPageShown &&
356− (overviewController.progress == 0 || dragging)
329+ !scopeItem.scope &&
330+ (bottomEdgeController.progress == 0 || dragging)
357331
358− readonly property real fullMovement: units.gu(20)
332+ readonly property real fullMovement: dash.height
359333
360334 anchors { left: parent.left; right: parent.right; bottom: parent.bottom }
361335 height: units.gu(2)
362336
363337 onSceneDistanceChanged: {
364338 if (status == DirectionalDragArea.Recognized && initialSceneDistance != -1) {
365− if (overviewController.enableAnimation) {
366− dashContentCache.scheduleUpdate();
367− }
368− overviewController.enableAnimation = false;
339+ bottomEdgeController.enableAnimation = false;
369340 var deltaDistance = sceneDistance - initialSceneDistance;
370− overviewController.progress = Math.max(0, Math.min(1, deltaDistance / fullMovement));
341+ bottomEdgeController.progress = Math.max(0, Math.min(1, deltaDistance / fullMovement));
371342 }
372343 }
373344
@@ -383,11 +354,10 @@ Showable {
383354 initialSceneDistance = sceneDistance;
384355 } else if (status == DirectionalDragArea.WaitingForTouch &&
385356 previousStatus == DirectionalDragArea.Recognized) {
386− overviewController.enableAnimation = true;
387− overviewController.progress = (overviewController.progress > 0.7) ? 1 : 0;
357+ bottomEdgeController.enableAnimation = true;
358+ bottomEdgeController.progress = (bottomEdgeController.progress > 0.2) ? 1 : 0;
388359 initialSceneDistance = -1;
389360 }
390361 }
391362 }
392−
393363}
qml/Dash/DashContent.qml+11−1
@@ -25,7 +25,8 @@ Item {
2525
2626 property bool forceNonInteractive: false
2727 property alias scopes: dashContentList.model
28− readonly property alias currentIndex: dashContentList.currentIndex
28+ property alias currentIndex: dashContentList.currentIndex
29+ property int workaroundRestoreIndex: -1
2930 readonly property string currentScopeId: dashContentList.currentItem ? dashContentList.currentItem.scopeId : ""
3031 readonly property var currentScope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
3132 readonly property bool subPageShown: dashContentList.currentItem && dashContentList.currentItem.item ?
@@ -51,6 +52,15 @@ Item {
5152 set_current_index = undefined;
5253 }
5354 }
55+ onRowsMoved: {
56+ // FIXME This is to workaround a Qt bug with the model moving the current item
57+ // when the list is ListView.SnapOneItem and ListView.StrictlyEnforceRange
58+ // together with the code in Dash.qml
59+ if (row == dashContentList.currentIndex || start == dashContentList.currentIndex) {
60+ dashContent.workaroundRestoreIndex = dashContentList.currentIndex;
61+ dashContentList.currentIndex = -1;
62+ }
63+ }
5464 }
5565
5666 Connections {
qml/Dash/DashRenderer.qml−4
@@ -27,10 +27,6 @@ Item {
2727
2828 property int displayMarginEnd: 0
2929
30− property int visibleRangeBegin: 0
31−
32− property int visibleRangeEnd: 0
33−
3430 property real originY: 0
3531
3632 // The model to renderer
qml/Dash/GenericScopeView.qml+23−26
@@ -379,32 +379,29 @@ FocusScope {
379379 }
380380 }
381381
382− if (item && item.hasOwnProperty("visibleRangeBegin")) {
383− item.visibleRangeBegin = Math.max(-baseItem.y, 0)
384− item.visibleRangeEnd = item.visibleRangeBegin + Math.min(categoryView.height, rendererLoader.height)
385− }
386−
387382 if (item && item.hasOwnProperty("displayMarginBeginning")) {
388− // TODO do we need item.originY here, test 1300302 once we have a silo
389− // and we can run it on the phone
390− if (scopeView.isCurrent) {
391− // 1073741823 is s^30 -1. A quite big number so that you have "infinite" display margin, but not so
392− // big so that if you add if with itself you're outside the 2^31 int range
393− item.displayMarginBeginning = 1073741823;
394− item.displayMarginEnd = 1073741823;
395− } else if (baseItem.y + baseItem.height <= 0) {
396− // Not visible (item at top of the list viewport)
397− item.displayMarginBeginning = -baseItem.height;
398− item.displayMarginEnd = 0;
399− } else if (baseItem.y >= categoryView.height) {
400− // Not visible (item at bottom of the list viewport)
401− item.displayMarginBeginning = 0;
402− item.displayMarginEnd = -baseItem.height;
403− } else {
404− item.displayMarginBeginning = Math.round(-Math.max(-baseItem.y, 0));
405− item.displayMarginEnd = -Math.round(Math.max(baseItem.height - seeAll.height -
406− categoryView.height + baseItem.y, 0));
407− }
383+ // A item view is considered visible from
384+ // -displayMarginBeginning
385+ // to
386+ // height + item.displayMarginEnd
387+ // We adjust displayMarginBeginning and displayMarginEnd so
388+ // * In non visible scopes only the viewport is considered visible
389+ // that way when you switch to it the visible items are there
390+ // * For visible scopes we increase the visible range by categoryView.height * 1.5
391+ // in both directions to make scrolling nicer by mantaining a higher number of
392+ // cached items
393+ // TODO Improvements
394+ // - For non visible scopes we should always have a visible range of 0 and
395+ // make sure the items in the viewport are created with the cache buffer feature
396+ // - For visible scopes we should always the have a visible range be exactly the
397+ // viewport and make sure the rest of items are created with the cache buffer feature
398+ // To be able to implement that feature VerticalJournal/AbstractDashView needs to
399+ // make the cache buffer value setable externally
400+ var extraMargins = scopeView.isCurrent ? categoryView.height * 1.5 : 0;
401+
402+ item.displayMarginBeginning = Math.round(-Math.max(-baseItem.y - extraMargins, 0));
403+ item.displayMarginEnd = -Math.round(Math.max(baseItem.height - extraMargins - seeAll.height -
404+ categoryView.height + baseItem.y, 0));
408405 }
409406 }
410407 }
@@ -497,7 +494,7 @@ FocusScope {
497494 showBackButton: scopeView.hasBackAction
498495 searchEntryEnabled: true
499496 settingsEnabled: scopeView.scope && scopeView.scope.settings && scopeView.scope.settings.count > 0 || false
500− favoriteEnabled: scopeView.scope && scopeView.scope.id !== "clickscope"
497+ favoriteEnabled: scopeView.scope
501498 favorite: scopeView.scope && scopeView.scope.favorite
502499 scopeStyle: scopeView.scopeStyle
503500 paginationCount: scopeView.paginationCount
qml/Dash/PageHeader.qml+11−1
@@ -28,8 +28,10 @@ Item {
2828 implicitHeight: headerContainer.height + bottomContainer.height + (showSignatureLine ? units.gu(2) : 0)
2929
3030 property bool showBackButton: false
31+ property bool backIsClose: false
3132 property string title
3233
34+ property bool storeEntryEnabled: false
3335 property bool searchEntryEnabled: false
3436 property bool settingsEnabled: false
3537 property bool favoriteEnabled: false
@@ -46,6 +48,7 @@ Item {
4648 property var scopeStyle: null
4749
4850 signal backClicked()
51+ signal storeClicked()
4952 signal settingsClicked()
5053 signal favoriteClicked()
5154
@@ -251,12 +254,19 @@ Item {
251254 property var config: PageHeadConfiguration {
252255 foregroundColor: root.scopeStyle ? root.scopeStyle.headerForeground : Theme.palette.normal.baseText
253256 backAction: Action {
254− iconName: "back"
257+ iconName: backIsClose ? "close" : "back"
255258 visible: root.showBackButton
256259 onTriggered: root.backClicked()
257260 }
258261
259262 actions: [
263+ Action {
264+ objectName: "store"
265+ text: i18n.tr("Store")
266+ iconName: "ubuntu-store-symbolic"
267+ visible: root.storeEntryEnabled
268+ onTriggered: root.storeClicked();
269+ },
260270 Action {
261271 objectName: "search"
262272 text: i18n.tr("Search")
qml/Dash/Previews/PreviewActions.qml+2−1
@@ -15,6 +15,7 @@
1515 */
1616
1717import QtQuick 2.1
18+import Ubuntu.Components 1.1
1819
1920/*! This preview widget shows either one button, two buttons or one button
2021 * and a combo button depending on the number of items in widgetData["actions"].
@@ -64,7 +65,7 @@ PreviewWidget {
6465 visible: row.actions && row.actions.length > 0
6566 onTriggeredAction: root.triggered(root.widgetId, actionData.id, actionData)
6667 width: (root.width - units.gu(1)) / 2
67− color: root.scopeStyle ? root.scopeStyle.previewButtonColor : Theme.palette.selected.foreground
68+ color: root.scopeStyle ? root.scopeStyle.previewButtonColor : UbuntuColors.orange
6869 }
6970 }
7071}
qml/Dash/Previews/PreviewPayments.qml+1−1
@@ -35,7 +35,7 @@ PreviewWidget {
3535 id: paymentButton
3636 objectName: "paymentButton"
3737
38− color: Theme.palette.selected.foreground
38+ color: UbuntuColors.orange
3939 text: paymentClient.formattedPrice
4040 onClicked: {
4141 paymentClient.start();
qml/Dash/Previews/PreviewZoomableImage.qml+1
@@ -40,6 +40,7 @@ PreviewWidget {
4040 }
4141 scaleTo: "height"
4242 source: widgetData["source"]
43+ asynchronous: true
4344
4445 borderSource: mouseArea.pressed ? "radius_pressed.sci" : "radius_idle.sci"
4546
qml/Dash/ScopesList.qmlnew file+127
@@ -0,0 +1,127 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Dash 0.1
19+
20+Item {
21+ id: root
22+
23+ // Properties set by parent
24+ property var scope: null
25+
26+ // Properties used by parent
27+ readonly property bool processing: scope ? scope.searchInProgress : false
28+
29+ // Signals
30+ signal backClicked()
31+ signal storeClicked()
32+ signal requestFavorite(string scopeId, bool favorite)
33+ signal requestFavoriteMoveTo(string scopeId, int index)
34+
35+ state: "browse"
36+
37+ onStateChanged: {
38+ if (state == "edit") {
39+ // As per design entering edit mode clears the possible existing search
40+ header.resetSearch(false /* false == unfocus */);
41+ }
42+ }
43+
44+ DashBackground {
45+ anchors.fill: parent
46+ }
47+
48+ Binding {
49+ target: root.scope
50+ property: "searchQuery"
51+ value: header.searchQuery
52+ }
53+
54+ Binding {
55+ target: header
56+ property: "searchQuery"
57+ value: root.scope ? root.scope.searchQuery : ""
58+ }
59+
60+ PageHeader {
61+ id: header
62+ objectName: "pageHeader"
63+ title: i18n.tr("Manage")
64+ width: parent.width
65+ showBackButton: true
66+ backIsClose: root.state == "edit"
67+ storeEntryEnabled: root.state == "browse"
68+ searchEntryEnabled: false // Disable search for now
69+ onBackClicked: {
70+ if (backIsClose) {
71+ root.state = "browse"
72+ } else {
73+ root.backClicked()
74+ }
75+ }
76+ onStoreClicked: root.storeClicked();
77+ z: 1
78+ }
79+
80+ Flickable {
81+ anchors {
82+ top: header.bottom
83+ bottom: parent.bottom
84+ left: parent.left
85+ right: parent.right
86+ }
87+ clip: true
88+ contentWidth: root.width
89+ contentHeight: column.height
90+ onContentHeightChanged: returnToBounds();
91+ Column {
92+ id: column
93+ Repeater {
94+ model: scope ? scope.categories : null
95+
96+ delegate: Loader {
97+ asynchronous: true
98+ width: root.width
99+ active: results.count > 0
100+ visible: active
101+ sourceComponent: ScopesListCategory {
102+ objectName: "scopesListCategory" + categoryId
103+
104+ model: results
105+
106+ title: {
107+ if (isFavoritesFeed) return i18n.tr("Home");
108+ else if (isAlsoInstalled) return i18n.tr("Also installed");
109+ else return name;
110+ }
111+
112+ editMode: root.state == "edit"
113+
114+ scopeStyle: root.scope.scopeStyle
115+ isFavoritesFeed: categoryId == "favorites"
116+ isAlsoInstalled: categoryId == "other"
117+
118+ onRequestFavorite: root.requestFavorite(scopeId, favorite);
119+ onRequestEditMode: root.state = "edit";
120+ onRequestScopeMoveTo: root.requestFavoriteMoveTo(scopeId, index);
121+ onRequestActivate: root.scope.activate(result);
122+ }
123+ }
124+ }
125+ }
126+ }
127+}
qml/Dash/ScopesListCategory.qmlnew file+176
@@ -0,0 +1,176 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+import Dash 0.1
20+import "../Components/ListItems" as ListItems
21+
22+Item {
23+ id: root
24+
25+ property alias model: list.model
26+ property alias title: header.text
27+ property var scopeStyle
28+ property bool editMode: false
29+ property bool isFavoritesFeed: false
30+ property bool isAlsoInstalled: false
31+
32+ visible: !editMode || isFavoritesFeed
33+
34+ signal requestFavorite(string scopeId, bool favorite)
35+ signal requestEditMode()
36+ signal requestScopeMoveTo(string scopeId, int index)
37+ signal requestActivate(var result)
38+
39+ implicitHeight: visible ? childrenRect.height : 0
40+
41+ ListItems.Header {
42+ id: header
43+ width: root.width
44+ height: units.gu(5)
45+ color: scopeStyle ? scopeStyle.foreground : Theme.palette.normal.baseText
46+ }
47+
48+ readonly property double listItemHeight: units.gu(6)
49+
50+ ListView {
51+ id: list
52+ objectName: "scopesListCategoryInnerList"
53+
54+ readonly property double targetHeight: model.count * listItemHeight
55+ clip: height != targetHeight
56+ height: targetHeight
57+ Behavior on height { enabled: visible; UbuntuNumberAnimation { } }
58+ width: parent.width
59+ interactive: false
60+
61+ anchors.top: header.bottom
62+ delegate: Loader {
63+ id: loader
64+ readonly property bool addDropHint: {
65+ if (dragMarker.visible) {
66+ if (dragItem.originalIndex > index) {
67+ return dragMarker.index == index;
68+ } else {
69+ return dragMarker.index == index - 1;
70+ }
71+ } else {
72+ return false;
73+ }
74+ }
75+ asynchronous: true
76+ width: root.width
77+ height: listItemHeight + (addDropHint ? units.gu(2) : 0)
78+ clip: height < listItemHeight
79+ Behavior on height { enabled: visible; UbuntuNumberAnimation { } }
80+ sourceComponent: ScopesListCategoryItem {
81+ objectName: "delegate" + index
82+
83+ width: root.width
84+ topMargin: height > listItemHeight ? height - listItemHeight : 0
85+
86+ icon: model.art || model.mascot || ""
87+ text: model.title || ""
88+ subtext: model.subtitle || ""
89+ showStar: root.isFavoritesFeed || root.isAlsoInstalled
90+ isFavorite: root.isFavoritesFeed
91+
92+ hideChildren: dragItem.loaderToShrink == loader
93+
94+ onClicked: {
95+ if (!editMode) {
96+ root.requestActivate(result);
97+ }
98+ }
99+ onPressAndHold: {
100+ if (!editMode) {
101+ root.requestEditMode();
102+ }
103+ }
104+ onRequestFavorite: root.requestFavorite(model.scopeId, favorite);
105+ onHandlePressed: {
106+ if (editMode) {
107+ handle.drag.target = dragItem;
108+ handle.drag.maximumX = units.gu(1);
109+ handle.drag.minimumX = units.gu(1);
110+ handle.drag.minimumY = list.y - dragItem.height / 2;
111+ handle.drag.maximumY = list.y + list.height - dragItem.height / 2
112+ dragItem.icon = icon;
113+ dragItem.text = text;
114+ dragItem.subtext = subtext;
115+ dragItem.originalY = mapToItem(root, 0, 0).y;
116+ dragItem.originalIndex = index;
117+ dragItem.y = dragItem.originalY;
118+ dragItem.x = units.gu(1);
119+ dragItem.visible = true;
120+ dragItem.loaderToShrink = loader;
121+ }
122+ }
123+ onHandleReleased: {
124+ if (dragItem.visible) {
125+ handle.drag.target = undefined;
126+ dragItem.visible = false;
127+ if (dragMarker.visible && dragMarker.index != index) {
128+ root.requestScopeMoveTo(model.scopeId, dragMarker.index);
129+ }
130+ dragMarker.visible = false;
131+ dragItem.loaderToShrink.height = listItemHeight;
132+ dragItem.loaderToShrink = null;
133+ }
134+ }
135+ }
136+ }
137+ }
138+
139+ ListItems.ThinDivider {
140+ id: dragMarker
141+ visible: false
142+ anchors {
143+ leftMargin: units.gu(1)
144+ rightMargin: units.gu(1)
145+ }
146+ property int index: {
147+ var i = Math.round((dragItem.y - list.y + dragItem.height/2) / listItemHeight);
148+ if (i < 0) i = 0;
149+ if (i >= model.count - 1) i = model.count - 1;
150+ return i;
151+ }
152+ y: list.y + index * listItemHeight + units.gu(1)
153+ }
154+
155+ ScopesListCategoryItem {
156+ id: dragItem
157+
158+ property real originalY
159+ property int originalIndex
160+ property var loaderToShrink: null
161+
162+ objectName: "dragItem"
163+ visible: false
164+ showStar: false
165+ width: root.width
166+ height: listItemHeight
167+ opacity: 0.9
168+
169+ onYChanged: {
170+ if (!dragMarker.visible && Math.abs(y - originalY) > height / 2) {
171+ dragMarker.visible = true;
172+ loaderToShrink.height = 0;
173+ }
174+ }
175+ }
176+}
qml/Dash/ScopesListCategoryItem.qmlnew file+104
@@ -0,0 +1,104 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import QtQuick.Layouts 1.1
19+import Ubuntu.Components 1.1
20+
21+MouseArea {
22+ id: root
23+
24+ signal requestFavorite(string scopeId, bool favorite)
25+ signal handlePressed(var handle)
26+ signal handleReleased(var handle)
27+
28+ property real topMargin: 0
29+ property alias icon: shapeImage.source
30+ property alias text: titleLabel.text
31+ property alias subtext: subtitleLabel.text
32+ property alias showStar: star.visible
33+
34+ property bool isFavorite: false
35+ property bool hideChildren: false
36+
37+ Item {
38+ id: holder
39+ anchors.fill: parent
40+ anchors.topMargin: root.topMargin
41+
42+ UbuntuShape {
43+ id: shape
44+ anchors {
45+ left: parent.left
46+ leftMargin: units.gu(1)
47+ verticalCenter: parent.verticalCenter
48+ }
49+ width: units.gu(5)
50+ height: units.gu(5)
51+ visible: !hideChildren
52+ image: Image {
53+ id: shapeImage
54+ cache: true
55+ fillMode: Image.PreserveAspectCrop
56+ }
57+ }
58+
59+ ColumnLayout {
60+ visible: !hideChildren
61+ anchors {
62+ left: shape.right
63+ leftMargin: units.gu(1)
64+ right: starArea.right
65+ rightMargin: units.gu(1)
66+ verticalCenter: parent.verticalCenter
67+ }
68+ Label {
69+ id: titleLabel
70+ elide: Text.ElideRight
71+ wrapMode: Text.Wrap
72+ maximumLineCount: 1
73+ verticalAlignment: Text.AlignHCenter
74+ }
75+ Label {
76+ id: subtitleLabel
77+ elide: Text.ElideRight
78+ fontSize: "xx-small"
79+ wrapMode: Text.Wrap
80+ maximumLineCount: 1
81+ verticalAlignment: Text.AlignHCenter
82+ visible: text != ""
83+ }
84+ }
85+ MouseArea {
86+ id: starArea
87+ height: parent.height
88+ width: height
89+ anchors.right: parent.right
90+ onClicked: if (!editMode) root.requestFavorite(model.scopeId, !isFavorite);
91+ onPressed: if (editMode) root.handlePressed(starArea);
92+ onReleased: if (editMode) root.handleReleased(starArea);
93+ Icon {
94+ id: star
95+ anchors.centerIn: parent
96+ height: units.gu(2)
97+ width: units.gu(2)
98+ visible: !hideChildren
99+ // TODO is view-grid-symbolic what we really want here? Looks good but seems semantically wrong
100+ source: editMode ? "image://theme/view-grid-symbolic" : isFavorite ? "image://theme/starred" : "image://theme/non-starred"
101+ }
102+ }
103+ }
104+}
qml/Dash/ScopesOverview.qmldeleted−575
@@ -1,575 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Dash 0.1
19−import Ubuntu.Components 0.1
20−import "../Components"
21−
22−Item {
23− id: root
24−
25− // Properties set by parent
26− property real progress: 0
27− property var scope: null
28− property int currentIndex: 0
29− property real scopeScale: 1
30−
31− // Properties set and used by parent
32− property alias currentTab: tabBar.currentTab
33−
34− // Properties used by parent
35− readonly property bool processing: searchResultsViewer.processing || tempScopeItem.processing || previewListView.processing
36− property bool growingDashFromPos: false
37− readonly property bool searching: scope && scope.searchQuery == ""
38− readonly property bool showingNonFavoriteScope: tempScopeItem.scope != null
39− readonly property var dashItemEater: {
40− if (!forceXYScalerEater && tabBar.currentTab == 0 && middleItems.count > 0) {
41− var loaderItem = middleItems.itemAt(0).item;
42− return loaderItem && loaderItem.currentItem ? loaderItem.currentItem : null;
43− }
44− return scopesOverviewXYScaler;
45− }
46− readonly property size allCardSize: {
47− if (middleItems.count > 1) {
48− var loaderItem = middleItems.itemAt(1).item;
49− if (loaderItem) {
50− var cardTool = loaderItem.cardTool;
51− return Qt.size(cardTool.cardWidth, cardTool.cardHeight);
52− }
53− }
54− return Qt.size(0, 0);
55− }
56−
57− // Internal properties
58− property bool forceXYScalerEater: false
59−
60− signal done()
61− signal favoriteSelected(var scopeId)
62− signal allFavoriteSelected(var scopeId)
63− signal searchSelected(var scopeId, var result, var pos, var size)
64−
65− Connections {
66− target: scope
67− onOpenScope: {
68− var itemPos = scopesOverviewXYScaler.restorePosition;
69− var itemSize = scopesOverviewXYScaler.restoreSize;
70− scopesOverviewXYScaler.scale = itemSize.width / scopesOverviewXYScaler.width;
71− if (itemPos) {
72− scopesOverviewXYScaler.x = itemPos.x -(scopesOverviewXYScaler.width - scopesOverviewXYScaler.width * scopesOverviewXYScaler.scale) / 2;
73− scopesOverviewXYScaler.y = itemPos.y -(scopesOverviewXYScaler.height - scopesOverviewXYScaler.height * scopesOverviewXYScaler.scale) / 2;
74− } else {
75− scopesOverviewXYScaler.x = 0;
76− scopesOverviewXYScaler.y = 0;
77− }
78− scopesOverviewXYScaler.opacity = 0;
79− tempScopeItem.scope = scope;
80− middleItems.overrideOpacity = 0;
81− scopesOverviewXYScaler.scale = 1;
82− scopesOverviewXYScaler.x = 0;
83− scopesOverviewXYScaler.y = 0;
84− scopesOverviewXYScaler.opacity = 1;
85− }
86− onGotoScope: {
87− if (tabBar.currentTab == 0) {
88− root.favoriteSelected(scopeId);
89− } else {
90− root.allFavoriteSelected(scopeId);
91− }
92− previewListView.open = false;
93− }
94− }
95−
96− Binding {
97− target: scope
98− property: "isActive"
99− value: progress === 1
100− }
101−
102− function closeTempScope() {
103− if (tempScopeItem.scope) {
104− root.scope.closeScope(tempScopeItem.scope);
105− tempScopeItem.scope = null;
106− tempScopeItem.backClicked()
107− }
108− }
109−
110− function animateDashFromAll(scopeId) {
111− var currentScopePos = allScopeCardPosition(scopeId);
112− if (currentScopePos) {
113− showDashFromPos(currentScopePos, allCardSize);
114− } else {
115− console.log("Warning: Could not find Dash OverView All card position for scope", dashContent.currentScopeId);
116− }
117− }
118−
119− function showDashFromPos(itemPos, itemSize) {
120− scopesOverviewXYScaler.scale = itemSize.width / scopesOverviewXYScaler.width;
121− scopesOverviewXYScaler.x = itemPos.x -(scopesOverviewXYScaler.width - scopesOverviewXYScaler.width * scopesOverviewXYScaler.scale) / 2;
122− scopesOverviewXYScaler.y = itemPos.y -(scopesOverviewXYScaler.height - scopesOverviewXYScaler.height * scopesOverviewXYScaler.scale) / 2;
123− scopesOverviewXYScaler.opacity = 0;
124− root.growingDashFromPos = true;
125− scopesOverviewXYScaler.scale = 1;
126− scopesOverviewXYScaler.x = 0;
127− scopesOverviewXYScaler.y = 0;
128− scopesOverviewXYScaler.opacity = 1;
129− }
130−
131− function allScopeCardPosition(scopeId) {
132− if (middleItems.count > 1) {
133− var loaderItem = middleItems.itemAt(1).item;
134− if (loaderItem) {
135− var pos = loaderItem.scopeCardPosition(scopeId);
136− return loaderItem.mapToItem(null, pos.x, pos.y);
137− }
138− }
139− }
140−
141− function ensureAllScopeVisible(scopeId) {
142− if (middleItems.count > 1) {
143− var loaderItem = middleItems.itemAt(1).item;
144− if (loaderItem) {
145− var pos = loaderItem.scopeCardPosition(scopeId);
146− loaderItem.contentY = Math.min(pos.y, loaderItem.contentHeight - loaderItem.height);
147− }
148− }
149− }
150−
151− onProgressChanged: {
152− if (progress == 0) {
153− pageHeader.resetSearch();
154− pageHeader.unfocus(); // Shouldn't the previous call do this too?
155− }
156− }
157−
158− ScopeStyle {
159− id: overviewScopeStyle
160− style: { "foreground-color" : "white",
161− "background-color" : "transparent",
162− "page-header": {
163− "background": "color:///transparent"
164− }
165− }
166− }
167−
168− DashBackground {
169− anchors.fill: parent
170− source: "graphics/dark_background.jpg"
171− }
172−
173− Connections {
174− target: pageHeader
175− onSearchQueryChanged: {
176− // Need this in order, otherwise something gets unhappy in rendering
177− // of the overlay in carousels because the parent of the dash dies for
178− // a moment, this way we make sure it's reparented first
179− // by forceXYScalerEater making dashItemEater return scopesOverviewXYScaler
180− // before we kill the previous parent by scope.searchQuery
181− root.forceXYScalerEater = true;
182− root.scope.searchQuery = pageHeader.searchQuery;
183− root.forceXYScalerEater = false;
184− }
185− }
186−
187− Binding {
188− target: pageHeader
189− property: "searchQuery"
190− value: scope ? scope.searchQuery : ""
191− }
192−
193− Item {
194− id: scopesOverviewContent
195− x: previewListView.open ? -width : 0
196− Behavior on x { UbuntuNumberAnimation { } }
197− width: parent.width
198− height: parent.height
199−
200− PageHeader {
201− id: pageHeader
202− objectName: "scopesOverviewPageHeader"
203−
204− readonly property real yDisplacement: pageHeader.height + tabBar.height + tabBar.anchors.margins
205−
206− y: {
207− if (root.progress < 0.5) {
208− return -yDisplacement;
209− } else {
210− return -yDisplacement + (root.progress - 0.5) * yDisplacement * 2;
211− }
212− }
213− width: parent.width
214− clip: true
215− title: i18n.tr("Manage Scopes")
216− scopeStyle: overviewScopeStyle
217− showSignatureLine: false
218− searchEntryEnabled: true
219− }
220−
221− ScopesOverviewTab {
222− id: tabBar
223− anchors {
224− left: parent.left
225− right: parent.right
226− top: pageHeader.bottom
227− margins: units.gu(2)
228− }
229− height: units.gu(4)
230−
231− enabled: opacity == 1
232− opacity: !scope || scope.searchQuery == "" ? 1 : 0
233− Behavior on opacity { UbuntuNumberAnimation { } }
234− }
235−
236− Repeater {
237− id: middleItems
238− objectName: "scopesOverviewRepeater"
239− property real overrideOpacity: -1
240− model: scope && scope.searchQuery == "" ? scope.categories : null
241− delegate: Loader {
242− id: loader
243− objectName: "scopesOverviewRepeaterChild" + index
244−
245− height: {
246− if (index == 0) {
247− return root.height;
248− } else {
249− return root.height - pageHeader.height - tabBar.height - tabBar.anchors.margins - units.gu(2);
250− }
251− }
252− width: {
253− if (index == 0) {
254− return root.width / scopeScale;
255− } else {
256− return root.width;
257− }
258− }
259− x: {
260− if (index == 0) {
261− return (root.width - width) / 2;
262− } else {
263− return 0;
264− }
265− }
266− anchors {
267− bottom: scopesOverviewContent.bottom
268− }
269−
270− scale: index == 0 ? scopeScale : 1
271−
272− opacity: {
273− if (middleItems.overrideOpacity >= 0)
274− return middleItems.overrideOpacity;
275−
276− if (tabBar.currentTab != index)
277− return 0;
278−
279− return index == 0 ? 1 : root.progress;
280− }
281− Behavior on opacity {
282− enabled: root.progress == 1
283− UbuntuNumberAnimation { }
284− }
285− enabled: opacity == 1
286−
287− clip: index == 1
288−
289− CardTool {
290− id: cardTool
291− objectName: "cardTool"
292− count: results.count
293− template: model.renderer
294− components: model.components
295− viewWidth: parent.width
296− }
297−
298− source: {
299− if (index == 0 && categoryId == "favorites") return "ScopesOverviewFavorites.qml";
300− else if (index == 1 && categoryId == "all") return "ScopesOverviewAll.qml";
301− else return "";
302− }
303−
304− onLoaded: {
305− item.model = Qt.binding(function() { return results; });
306− item.cardTool = cardTool;
307− if (index == 0) {
308− item.scopeWidth = Qt.binding(function() { return root.width; });
309− item.scopeHeight = Qt.binding(function() { return root.height; });
310− item.appliedScale = Qt.binding(function() { return loader.scale });
311− item.currentIndex = Qt.binding(function() { return root.currentIndex });
312− } else if (index == 1) {
313− item.extraHeight = bottomBar.height;
314− }
315− }
316−
317− Connections {
318− target: loader.item
319− onClicked: {
320− pageHeader.unfocus();
321− if (tabBar.currentTab == 0) {
322− root.favoriteSelected(itemModel.scopeId);
323− } else {
324− var favoriteScopesItem = middleItems.itemAt(0).item;
325− var scopeIndex = favoriteScopesItem.model.scopeIndex(itemModel.scopeId);
326− if (scopeIndex >= 0) {
327− root.allFavoriteSelected(itemModel.scopeId);
328− } else {
329− // Will result in an openScope from root.scope
330− scopesOverviewXYScaler.restorePosition = item.mapToItem(null, 0, 0);
331− scopesOverviewXYScaler.restoreSize = allCardSize;
332− root.scope.activate(result);
333− }
334− }
335− }
336− onPressAndHold: {
337− // Preview can call openScope so make sure restorePosition and restoreSize are set
338− scopesOverviewXYScaler.restorePosition = undefined;
339− scopesOverviewXYScaler.restoreSize = allCardSize;
340−
341− previewListView.model = target.model;
342− previewListView.currentIndex = -1;
343− previewListView.currentIndex = index;
344− previewListView.open = true;
345− }
346− }
347− }
348− }
349−
350− GenericScopeView {
351− id: searchResultsViewer
352− objectName: "searchResultsViewer"
353− anchors {
354− top: pageHeader.bottom
355− right: parent.right
356− left: parent.left
357− bottom: parent.bottom
358− }
359− scope: root.scope && root.scope.searchQuery != "" ? root.scope : null
360− scopeStyle: overviewScopeStyle
361− enabled: opacity == 1
362− showPageHeader: false
363− clip: true
364− opacity: searchResultsViewer.scope ? 1 : 0
365− isCurrent: true
366− Behavior on opacity { UbuntuNumberAnimation { } }
367−
368− function itemClicked(index, result, item, itemModel, resultsModel, limitedCategoryItemCount) {
369− pageHeader.unfocus();
370− pageHeader.closePopup();
371− if (itemModel.scopeId) {
372− // This can end up in openScope so save restorePosition and restoreSize
373− scopesOverviewXYScaler.restorePosition = item.mapToItem(null, 0, 0);
374− scopesOverviewXYScaler.restoreSize = Qt.size(item.width, item.height);
375− root.searchSelected(itemModel.scopeId, result, item.mapToItem(null, 0, 0), Qt.size(item.width, item.height));
376− } else {
377− // Not a scope, just activate it
378− searchResultsViewer.scope.activate(result);
379− }
380− }
381−
382− function itemPressedAndHeld(index, itemModel, resultsModel, limitedCategoryItemCount) {
383− if (itemModel.uri.indexOf("scope://") === 0) {
384− // Preview can call openScope so make sure restorePosition and restoreSize are set
385− scopesOverviewXYScaler.restorePosition = undefined;
386− scopesOverviewXYScaler.restoreSize = allCardSize;
387−
388− previewListView.model = resultsModel;
389− previewListView.currentIndex = -1;
390− previewListView.currentIndex = index;
391− previewListView.open = true;
392− }
393− }
394− }
395−
396− Rectangle {
397− id: bottomBar
398− objectName: "bottomBar"
399− color: "black"
400− height: units.gu(8)
401− width: parent.width
402− enabled: opacity == 1
403− opacity: scope && scope.searchQuery == "" ? 1 : 0
404− Behavior on opacity { UbuntuNumberAnimation { } }
405− y: {
406− if (root.progress < 0.5) {
407− return parent.height;
408− } else {
409− return parent.height - (root.progress - 0.5) * height * 2;
410− }
411− }
412−
413− MouseArea {
414− // Just eat any other press since this parent is black opaque
415− anchors.fill: parent
416− }
417−
418− AbstractButton {
419− objectName: "scopesOverviewDoneButton"
420− width: Math.max(label.width + units.gu(2), units.gu(10))
421− height: units.gu(4)
422− anchors {
423− left: parent.left
424− leftMargin: units.gu(2)
425− verticalCenter: parent.verticalCenter
426− }
427− Rectangle {
428− anchors.fill: parent
429− border.color: "white"
430− border.width: units.dp(1)
431− radius: units.dp(10)
432− color: parent.pressed ? Theme.palette.normal.baseText : "transparent"
433− }
434− Label {
435− id: label
436− anchors.centerIn: parent
437− text: i18n.tr("Done")
438− color: parent.pressed ? "black" : "white"
439− }
440− onClicked: root.done();
441− }
442−
443− AbstractButton {
444− objectName: "scopesOverviewStoreButton"
445− width: Math.max(storeLabel.width, units.gu(10))
446− height: units.gu(4)
447− anchors {
448− right: parent.right
449− verticalCenter: parent.verticalCenter
450− }
451− Icon {
452− id: storeImage
453− name: "ubuntu-store-symbolic"
454− color: "white"
455− anchors.horizontalCenter: parent.horizontalCenter
456− width: units.gu(2)
457− height: units.gu(2)
458− }
459− Label {
460− id: storeLabel
461− anchors.horizontalCenter: parent.horizontalCenter
462− anchors.top: storeImage.bottom
463− text: i18n.tr("Store")
464− color: "white"
465− }
466− onClicked: {
467− // Just zoom from the middle
468− scopesOverviewXYScaler.restorePosition = undefined;
469− scopesOverviewXYScaler.restoreSize = allCardSize;
470− scope.performQuery("scope://com.canonical.scopes.clickstore");
471− }
472− }
473− }
474− }
475−
476− PreviewListView {
477− id: previewListView
478− objectName: "scopesOverviewPreviewListView"
479− scope: root.scope
480− scopeStyle: overviewScopeStyle
481− showSignatureLine: false
482− visible: x != width
483− width: parent.width
484− height: parent.height
485− anchors.left: scopesOverviewContent.right
486−
487− onBackClicked: open = false
488− }
489−
490− Item {
491− id: scopesOverviewXYScaler
492− width: parent.width
493− height: parent.height
494−
495− clip: scale != 1.0
496− enabled: scale == 1
497−
498− property bool animationsEnabled: root.showingNonFavoriteScope || root.growingDashFromPos
499−
500− property var restorePosition
501− property var restoreSize
502−
503− Behavior on x {
504− enabled: scopesOverviewXYScaler.animationsEnabled
505− UbuntuNumberAnimation { }
506− }
507− Behavior on y {
508− enabled: scopesOverviewXYScaler.animationsEnabled
509− UbuntuNumberAnimation { }
510− }
511− Behavior on opacity {
512− enabled: scopesOverviewXYScaler.animationsEnabled
513− UbuntuNumberAnimation { }
514− }
515− Behavior on scale {
516− enabled: scopesOverviewXYScaler.animationsEnabled
517− UbuntuNumberAnimation {
518− onRunningChanged: {
519− if (!running) {
520− if (root.showingNonFavoriteScope && scopesOverviewXYScaler.scale != 1) {
521− root.scope.closeScope(tempScopeItem.scope);
522− tempScopeItem.scope = null;
523− } else if (root.growingDashFromPos) {
524− root.growingDashFromPos = false;
525− }
526− }
527− }
528− }
529− }
530−
531− DashBackground {
532− anchors.fill: tempScopeItem
533− visible: tempScopeItem.visible
534− parent: tempScopeItem.parent
535− }
536−
537− GenericScopeView {
538− id: tempScopeItem
539− objectName: "scopesOverviewTempScopeItem"
540−
541− width: parent.width
542− height: parent.height
543− clip: scale != 1.0
544− visible: scope != null
545− hasBackAction: true
546− isCurrent: visible
547− onBackClicked: {
548− var v = scopesOverviewXYScaler.restoreSize.width / tempScopeItem.width;
549− scopesOverviewXYScaler.scale = v;
550− if (scopesOverviewXYScaler.restorePosition) {
551− scopesOverviewXYScaler.x = scopesOverviewXYScaler.restorePosition.x -(tempScopeItem.width - tempScopeItem.width * v) / 2;
552− scopesOverviewXYScaler.y = scopesOverviewXYScaler.restorePosition.y -(tempScopeItem.height - tempScopeItem.height * v) / 2;
553− } else {
554− scopesOverviewXYScaler.x = 0;
555− scopesOverviewXYScaler.y = 0;
556− }
557− scopesOverviewXYScaler.opacity = 0;
558− middleItems.overrideOpacity = -1;
559− }
560− // TODO Add tests for these connections
561− Connections {
562− target: tempScopeItem.scope
563− onOpenScope: {
564− // TODO Animate the newly opened scope into the foreground (stacked on top of the current scope)
565− tempScopeItem.scope = scope;
566− }
567− onGotoScope: {
568− tempScopeItem.backClicked();
569− root.currentTab = 0;
570− root.scope.gotoScope(scopeId);
571− }
572− }
573− }
574− }
575−}
qml/Dash/ScopesOverviewAll.qmldeleted−56
@@ -1,56 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−
20−Flickable {
21− id: root
22−
23− property alias model: cardGrid.model
24− property alias cardTool: cardGrid.cardTool
25−
26− property real extraHeight: 0
27−
28− signal clicked(int index, var result, var item, var itemModel)
29− signal pressAndHold(int index)
30−
31− contentHeight: cardGrid.expandedHeight + extraHeight
32− contentWidth: cardGrid.width
33− flickableDirection: Flickable.VerticalFlick
34−
35− function scopeCardPosition(scopeId) {
36− var index = model.scopeIndex(scopeId);
37− var pos = cardGrid.cardPosition(index);
38− pos.y = pos.y - root.contentY;
39− return pos;
40− }
41−
42− CardGrid {
43− id: cardGrid
44− width: root.width
45− height: parent.height
46− visibleRangeBegin: root.contentY
47− visibleRangeEnd: root.contentY + root.height
48−
49− onClicked: {
50− root.clicked(index, result, item, itemModel);
51− }
52− onPressAndHold: {
53− root.pressAndHold(index);
54− }
55− }
56−}
qml/Dash/ScopesOverviewFavorites.qmldeleted−73
@@ -1,73 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−
19−Flickable {
20− id: root
21−
22− signal clicked(int index, var result, var itemModel)
23− signal pressAndHold(int index)
24−
25− property var cardTool: null
26− property real scopeHeight: 0
27− property real scopeWidth: 0
28− property real appliedScale: 1
29− property int currentIndex: -1
30− property var currentItem: currentIndex < repeater.count ? repeater.itemAt(currentIndex) : null
31−
32− property alias model: repeater.model
33−
34− contentHeight: height
35− contentWidth: repeater.count * root.scopeWidth + units.gu(2) / appliedScale * (repeater.count - 1)
36−
37− contentX: {
38− var indexX = currentIndex * scopeWidth + units.gu(2) / appliedScale * currentIndex;
39− var newContentX = indexX - (width - scopeWidth) / 2;
40− newContentX = Math.min(Math.max(newContentX, 0), contentWidth - width);
41− return newContentX;
42− }
43−
44− Repeater {
45− id: repeater
46− objectName: "scopesOverviewFavoritesRepeater"
47−
48− delegate: Loader {
49− id: loader
50−
51− x: index * root.scopeWidth + units.gu(2) / appliedScale * index
52− asynchronous: true
53−
54− sourceComponent: cardTool.cardComponent
55− onLoaded: {
56− item.fixedArtShapeSize = Qt.binding(function() { return Qt.size(root.scopeWidth, root.scopeHeight); });
57− item.fixedHeaderHeight = Qt.binding(function() { return cardTool.headerHeight / appliedScale; });
58− item.fontScale = Qt.binding(function() { return 1 / appliedScale; });
59− item.height = Qt.binding(function() { return root.scopeHeight; });
60− item.width = Qt.binding(function() { return root.scopeWidth; });
61− item.cardData = Qt.binding(function() { return model; });
62− item.template = Qt.binding(function() { return cardTool.template; });
63− item.components = Qt.binding(function() { return cardTool.components; });
64− item.titleAlignment = Qt.binding(function() { return cardTool.titleAlignment; });
65− }
66−
67− Connections {
68− target: loader.item
69− onClicked: root.clicked(index, result, model)
70− }
71− }
72− }
73−}
qml/Dash/ScopesOverviewTab.qmldeleted−74
@@ -1,74 +0,0 @@
1−/*
2− * Copyright (C) 2014 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.3
18−import Ubuntu.Components 0.1
19−
20−Item {
21− id: root
22−
23− property int currentTab: 0
24−
25− AbstractButton {
26− id: tab1
27− height: parent.height
28− width: parent.width / 2
29− Rectangle {
30− anchors.fill: parent
31− color: root.currentTab == 0 && root.enabled ? "white" : "transparent"
32− radius: units.dp(10)
33− }
34− Label {
35− anchors.centerIn: parent
36− text: i18n.tr("Favorites")
37− color: root.currentTab == 0 && root.enabled ? "black" : "white"
38− }
39− onClicked: root.currentTab = 0
40− }
41− AbstractButton {
42− id: tab2
43− objectName: "scopesOverviewAllTabButton"
44− x: width
45− height: parent.height
46− width: parent.width / 2
47− Rectangle {
48− anchors.fill: parent
49− color: root.currentTab == 1 && root.enabled ? "white" : "transparent"
50− radius: units.dp(10)
51− }
52− Label {
53− anchors.centerIn: parent
54− text: i18n.tr("All")
55− color: root.currentTab == 1 && root.enabled ? "black" : "white"
56− }
57− onClicked: root.currentTab = 1
58− }
59− Rectangle {
60− id: centerPiece
61− width: root.enabled ? units.dp(10) : units.dp(1)
62− height: parent.height
63− color: "white"
64− x: root.currentTab == 1 ? tab2.x : tab2.x - width
65− }
66− Rectangle {
67− id: border
68− anchors.fill: parent
69− radius: units.dp(10)
70− color: "transparent"
71− border.color: centerPiece.color
72− border.width: units.dp(1)
73− }
74−}
qml/Greeter/Clock.qml+10
@@ -34,6 +34,16 @@ Item {
3434 }
3535 }
3636
37+ Connections {
38+ target: i18n
39+ onLanguageChanged: {
40+ if (visible) {
41+ timeLabel.text = Qt.formatTime(clock.currentDate); // kicks time
42+ clock.currentDate = new Date(); // kicks date
43+ }
44+ }
45+ }
46+
3747 Indicators.SharedUnityMenuModel {
3848 id: timeModel
3949 objectName: "timeModel"
qml/Greeter/GreeterContent.qml+5
@@ -133,6 +133,11 @@ Item {
133133 onSelected: infographics.selectedUser = greeterContentLoader.model.data(uid, LightDM.UserRoles.NameRole)
134134 }
135135
136+ Connections {
137+ target: i18n
138+ onLanguageChanged: greeterContentLoader.infographicModel.readyForDataChange()
139+ }
140+
136141 anchors {
137142 verticalCenter: parent.verticalCenter
138143 left: narrowMode ? root.left : loginLoader.right
qml/Launcher/Launcher.qml+5
@@ -118,6 +118,11 @@ Item {
118118 onHint: hint();
119119 }
120120
121+ Connections {
122+ target: i18n
123+ onLanguageChanged: LauncherModel.refresh()
124+ }
125+
121126 SequentialAnimation {
122127 id: fadeOutAnimation
123128 ScriptAction {
qml/Shell.qml+32−17
@@ -37,6 +37,7 @@ import "Components"
3737import "Notifications"
3838import "Stages"
3939import "Panel/Indicators"
40+import "Wizard"
4041import Unity.Notifications 1.0 as NotificationBackend
4142import Unity.Session 0.1
4243import Unity.DashCommunicator 0.1
@@ -44,6 +45,10 @@ import Unity.DashCommunicator 0.1
4445Item {
4546 id: shell
4647
48+ // Disable everything so that user can't swipe greeter or launcher until
49+ // we get first prompt/authenticate, which will re-enable the shell.
50+ enabled: false
51+
4752 // this is only here to select the width / height of the window if not running fullscreen
4853 property bool tablet: false
4954 width: tablet ? units.gu(160) : applicationArguments.hasGeometry() ? applicationArguments.width() : units.gu(40)
@@ -232,6 +237,14 @@ Item {
232237 onApplicationAdded: {
233238 if (greeter.shown && appId != "unity8-dash") {
234239 greeter.startUnlock()
240+
241+ // If this happens on first boot, we may be in edge
242+ // tutorial or wizard while receiving a call. But a call
243+ // is more important than wizard so just bail out of those.
244+ if (edgeDemo.running) {
245+ edgeDemo.hideEdgeDemos();
246+ wizard.hide();
247+ }
235248 }
236249 if (greeter.narrowMode && greeter.hasLockedApp && appId === greeter.lockedApp) {
237250 lockscreen.hide() // show locked app
@@ -350,6 +363,15 @@ Item {
350363 minPinLength: 4
351364 maxPinLength: 4
352365
366+ property string promptText
367+ infoText: promptText !== "" ? i18n.tr("Enter %1").arg(promptText) :
368+ alphaNumeric ? i18n.tr("Enter passphrase") :
369+ i18n.tr("Enter passcode")
370+ errorText: promptText !== "" ? i18n.tr("Sorry, incorrect %1").arg(promptText) :
371+ alphaNumeric ? i18n.tr("Sorry, incorrect passphrase") + "\n" +
372+ i18n.tr("Please re-enter") :
373+ i18n.tr("Sorry, incorrect passcode")
374+
353375 // FIXME: We *should* show emergency dialer if there is a SIM present,
354376 // regardless of whether the side stage is enabled. But right now,
355377 // the assumption is that narrow screens are phones which have SIMs
@@ -403,20 +425,7 @@ Item {
403425 return; // could happen if hideGreeter() comes in before we prompt
404426 }
405427 if (greeter.narrowMode) {
406− if (isDefaultPrompt) {
407− if (lockscreen.alphaNumeric) {
408− lockscreen.infoText = i18n.tr("Enter passphrase")
409− lockscreen.errorText = i18n.tr("Sorry, incorrect passphrase") + "\n" +
410− i18n.tr("Please re-enter")
411− } else {
412− lockscreen.infoText = i18n.tr("Enter passcode")
413− lockscreen.errorText = i18n.tr("Sorry, incorrect passcode")
414− }
415− } else {
416− lockscreen.infoText = i18n.tr("Enter %1").arg(text.toLowerCase())
417− lockscreen.errorText = i18n.tr("Sorry, incorrect %1").arg(text.toLowerCase())
418− }
419−
428+ lockscreen.promptText = isDefaultPrompt ? "" : text.toLowerCase();
420429 lockscreen.maybeShow();
421430 }
422431 }
@@ -495,7 +504,7 @@ Item {
495504 // Just a tiny wrapper to adjust greeter's x without messing with its own dragging
496505 id: greeterWrapper
497506 objectName: "greeterWrapper"
498− x: greeter.narrowMode ? launcher.progress : 0
507+ x: (greeter.narrowMode && greeter.showProgress > 0) ? launcher.progress : 0
499508 y: panel.panelHeight
500509 width: parent.width
501510 height: parent.height - panel.panelHeight
@@ -574,7 +583,7 @@ Item {
574583 onShownChanged: {
575584 if (shown) {
576585 // Disable everything so that user can't swipe greeter or
577− // launcher until we get first prompt/authenticate, which
586+ // launcher until we get the next prompt/authenticate, which
578587 // will re-enable the shell.
579588 shell.enabled = false;
580589
@@ -744,6 +753,12 @@ Item {
744753 }
745754 }
746755
756+ Wizard {
757+ id: wizard
758+ anchors.fill: parent
759+ background: shell.background
760+ }
761+
747762 Rectangle {
748763 id: modalNotificationBackground
749764
@@ -805,7 +820,7 @@ Item {
805820 id: edgeDemo
806821 objectName: "edgeDemo"
807822 z: dialogs.z + 10
808− paused: Powerd.status === Powerd.Off // Saves power
823+ paused: Powerd.status === Powerd.Off || wizard.active // Saves power
809824 greeter: greeter
810825 launcher: launcher
811826 panel: panel
qml/Stages/PhoneStage.qml+17−33
@@ -145,16 +145,16 @@ Rectangle {
145145
146146 // Those markers mark the various positions in the spread (ratio to screen width from right to left):
147147 // 0 - 1: following finger, snap back to the beginning on release
148− property real positionMarker1: 0.3
148+ property real positionMarker1: 0.2
149149 // 1 - 2: curved snapping movement, snap to app 1 on release
150− property real positionMarker2: 0.45
150+ property real positionMarker2: 0.3
151151 // 2 - 3: movement follows finger, snaps back to app 1 on release
152− property real positionMarker3: 0.6
152+ property real positionMarker3: 0.35
153153 // passing 3, we detach movement from the finger and snap to 4
154154 property real positionMarker4: 0.9
155155
156156 // This is where the first app snaps to when bringing it in from the right edge.
157− property real snapPosition: 0.75
157+ property real snapPosition: 0.7
158158
159159 // Phase of the animation:
160160 // 0: Starting from right edge, a new app (index 1) comes in from the right
@@ -178,7 +178,7 @@ Rectangle {
178178 case 1:
179179 if (shiftedContentX < width * positionMarker2) {
180180 phase = 0;
181− } else if (shiftedContentX >= width * positionMarker4) {
181+ } else if (shiftedContentX >= width * positionMarker4 && !spreadDragArea.dragging) {
182182 phase = 2;
183183 }
184184 break;
@@ -270,6 +270,7 @@ Rectangle {
270270
271271 Repeater {
272272 id: spreadRepeater
273+ objectName: "spreadRepeater"
273274 model: ApplicationManager
274275 delegate: TransformedSpreadDelegate {
275276 id: appDelegate
@@ -367,8 +368,9 @@ Rectangle {
367368 if (spreadView.phase == 0 && index < 2) {
368369 if (progress < spreadView.positionMarker1) {
369370 return progress;
370− } else if (progress < spreadView.positionMarker1 + snappingCurve.period){
371− return spreadView.positionMarker1 + snappingCurve.value * 3;
371+ } else if (progress < spreadView.positionMarker1 + 0.05){
372+ // p : 0.05 = x : pm2
373+ return spreadView.positionMarker1 + (progress - spreadView.positionMarker1) * (spreadView.positionMarker2 - spreadView.positionMarker1) / 0.05
372374 } else {
373375 return spreadView.positionMarker2;
374376 }
@@ -380,13 +382,6 @@ Rectangle {
380382 visible: (progress >= 0 && progress < 1.7) ||
381383 (isDash && priv.focusedAppDelegate.x !== 0)
382384
383− EasingCurve {
384− id: snappingCurve
385− type: EasingCurve.Linear
386− period: 0.05
387− progress: appDelegate.progress - spreadView.positionMarker1
388− }
389−
390385 Binding {
391386 target: appDelegate
392387 property: "orientation"
@@ -425,16 +420,11 @@ Rectangle {
425420 id: spreadDragArea
426421 objectName: "spreadDragArea"
427422 direction: Direction.Leftwards
428− enabled: spreadView.phase != 2 && root.spreadEnabled
423+ enabled: (spreadView.phase != 2 && root.spreadEnabled) || dragging
429424
430425 anchors { top: parent.top; right: parent.right; bottom: parent.bottom }
431426 width: root.dragAreaWidth
432427
433− // Sitting at the right edge of the screen, this EdgeDragArea directly controls the spreadView when
434− // attachedToView is true. When the finger movement passes positionMarker3 we detach it from the
435− // spreadView and make the spreadView snap to positionMarker4.
436− property bool attachedToView: true
437−
438428 property var gesturePoints: new Array()
439429
440430 onTouchXChanged: {
@@ -443,15 +433,13 @@ Rectangle {
443433 spreadView.phase = 0;
444434 spreadView.contentX = -spreadView.shift;
445435 }
446− if (dragging && status == DirectionalDragArea.Recognized && attachedToView) {
436+ if (dragging && status == DirectionalDragArea.Recognized) {
447437 // Gesture recognized. Let's move the spreadView with the finger
448− var finalX = Math.min(touchX + width, width);
449− spreadView.contentX = -finalX + spreadDragArea.width - spreadView.shift;
450− }
451− if (attachedToView && spreadView.shiftedContentX >= spreadView.width * spreadView.positionMarker3) {
452− // We passed positionMarker3. Detach from spreadView and snap it.
453− attachedToView = false;
454− spreadView.snap();
438+ var dragX = Math.min(touchX + width, width); // Prevent dragging rightwards
439+ dragX = -dragX + spreadDragArea.width - spreadView.shift;
440+ // Don't allow dragging further than the animation crossing with phase2's animation
441+ var maxMovement = spreadView.width * spreadView.positionMarker4 - spreadView.shift;
442+ spreadView.contentX = Math.min(dragX, maxMovement);
455443 }
456444 gesturePoints.push(touchX);
457445 }
@@ -462,10 +450,6 @@ Rectangle {
462450 onStatusChanged: {
463451 previousStatus = currentStatus;
464452 currentStatus = status;
465−
466− if (status == DirectionalDragArea.Recognized) {
467− attachedToView = true;
468− }
469453 }
470454
471455 onDraggingChanged: {
@@ -493,7 +477,7 @@ Rectangle {
493477 // If it was a short one-way movement, do the Alt+Tab switch
494478 // no matter if we didn't cross positionMarker1 yet.
495479 spreadView.snapTo(1);
496− } else if (!dragging && attachedToView) {
480+ } else if (!dragging) {
497481 // otherwise snap to the closest snap position we can find
498482 // (might be back to start, to app 1 or to spread)
499483 spreadView.snap();
qml/Stages/SpreadDelegate.qml+8−1
@@ -41,10 +41,17 @@ Item {
4141 Item {
4242 objectName: "appWindowWithShadow"
4343
44− y: dragArea.distance
44+ readonly property real limit: root.height / 4
45+
46+ y: root.closeable ? dragArea.distance : elastic(dragArea.distance)
4547 width: parent.width
4648 height: parent.height
4749
50+ function elastic(distance) {
51+ var k = distance < 0 ? -limit : limit
52+ return k * (1 - Math.pow((k - 1) / k, distance))
53+ }
54+
4855 BorderImage {
4956 anchors {
5057 fill: appWindow
qml/Stages/TabletStage.qml+5−14
@@ -590,7 +590,6 @@ Rectangle {
590590 width: root.dragAreaWidth
591591 direction: Direction.Leftwards
592592
593− property bool attachedToView: false
594593 property var gesturePoints: new Array()
595594
596595 onTouchXChanged: {
@@ -599,22 +598,14 @@ Rectangle {
599598 spreadView.contentX = -spreadView.shift;
600599 }
601600
602− if (dragging && attachedToView) {
603− spreadView.contentX = -touchX + spreadDragArea.width - spreadView.shift;
604− if (spreadView.shiftedContentX > spreadView.phase0Width + spreadView.phase1Width / 2) {
605− attachedToView = false;
606− spreadView.snap();
607− }
601+ if (dragging) {
602+ var dragX = -touchX + spreadDragArea.width - spreadView.shift;
603+ var maxDrag = spreadView.width * spreadView.positionMarker4 - spreadView.shift;
604+ spreadView.contentX = Math.min(dragX, maxDrag);
608605 }
609606 gesturePoints.push(touchX);
610607 }
611608
612− onStatusChanged: {
613− if (status == DirectionalDragArea.Recognized) {
614− attachedToView = true;
615− }
616− }
617−
618609 onDraggingChanged: {
619610 if (dragging) {
620611 // Gesture recognized. Start recording this gesture
@@ -630,7 +621,7 @@ Rectangle {
630621 // If it was a short one-way movement, do the Alt+Tab switch
631622 // no matter if we didn't cross positionMarker1 yet.
632623 spreadView.snapTo(spreadView.nextInStack);
633− } else if (!dragging && attachedToView) {
624+ } else if (!dragging) {
634625 if (spreadView.shiftedContentX < spreadView.width * spreadView.positionMarker1) {
635626 spreadView.snap();
636627 } else if (spreadView.shiftedContentX < spreadView.width * spreadView.positionMarker2) {
qml/Wizard/CheckableSetting.qmlnew file+84
@@ -0,0 +1,84 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+import Ubuntu.Components.ListItems 1.0 as ListItem
20+
21+ListItem.Empty {
22+ id: listItem
23+
24+ property alias text: label.text
25+ property bool checked: false
26+ property real leftMargin
27+ property real rightMargin
28+
29+ readonly property real labelOffset: label.x
30+
31+ signal linkActivated(string link)
32+
33+ implicitHeight: Math.max(label.height, checkBox.height)
34+
35+ Item {
36+ anchors.fill: parent
37+
38+ CheckBox {
39+ id: checkBox
40+
41+ anchors {
42+ left: parent.left
43+ top: parent.top
44+ leftMargin: listItem.leftMargin
45+ }
46+
47+ Component.onCompleted: {
48+ checked = listItem.checked;
49+ }
50+
51+ onClicked: {
52+ listItem.checked = checked
53+ listItem.triggered(listItem.checked)
54+ }
55+
56+ Connections {
57+ target: listItem
58+ onCheckedChanged: checkBox.checked = listItem.checked
59+ }
60+
61+ Connections {
62+ target: listItem.__mouseArea
63+ onClicked: {
64+ listItem.checked = !listItem.checked
65+ listItem.triggered(listItem.checked)
66+ }
67+ }
68+ }
69+
70+ Label {
71+ id: label
72+ anchors {
73+ left: checkBox.right
74+ right: parent.right
75+ verticalCenter: parent.verticalCenter
76+ leftMargin: units.gu(2)
77+ rightMargin: listItem.rightMargin
78+ }
79+ wrapMode: Text.Wrap
80+ linkColor: Theme.palette.normal.foregroundText
81+ onLinkActivated: listItem.linkActivated(link)
82+ }
83+ }
84+}
qml/Wizard/Page.qmlnew file+108
@@ -0,0 +1,108 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+
20+Item {
21+ readonly property real buttonMargin: units.gu(2)
22+ readonly property real buttonWidth: (width - buttonMargin * 2) / 2 -
23+ buttonMargin / 2
24+ readonly property real topMargin: units.gu(8)
25+ readonly property real leftMargin: units.gu(2)
26+ readonly property real rightMargin: units.gu(2)
27+
28+ // If you want to skip a page, mark skipValid false while you figure out
29+ // whether to skip, then set it to true once you've determined the value
30+ // of the skip property.
31+ property bool skipValid: true
32+ property bool skip: false
33+
34+ property bool hasBackButton: true
35+ property bool customBack: false
36+ property alias forwardButtonSourceComponent: forwardButton.sourceComponent
37+ property alias content: contentHolder
38+
39+ property string title: ""
40+
41+ signal backClicked()
42+
43+ visible: false
44+ anchors.fill: parent
45+
46+ // We want larger than even fontSize: "x-large", so we use a Text instead
47+ // of a Label.
48+ Text {
49+ id: titleLabel
50+ anchors {
51+ top: parent.top
52+ left: parent.left
53+ right: parent.right
54+ topMargin: topMargin
55+ leftMargin: leftMargin
56+ rightMargin: rightMargin
57+ }
58+ wrapMode: Text.Wrap
59+ text: title
60+ color: Theme.palette.normal.baseText
61+ font.pixelSize: units.gu(4)
62+ }
63+
64+ Item {
65+ id: contentHolder
66+ anchors {
67+ top: titleLabel.bottom
68+ left: parent.left
69+ right: parent.right
70+ bottom: backButton.top
71+ topMargin: units.gu(4)
72+ leftMargin: leftMargin
73+ rightMargin: rightMargin
74+ bottomMargin: buttonMargin
75+ }
76+ }
77+
78+ StackButton {
79+ id: backButton
80+ objectName: "backButton"
81+ width: buttonWidth
82+ anchors {
83+ left: parent.left
84+ bottom: parent.bottom
85+ leftMargin: buttonMargin
86+ bottomMargin: buttonMargin
87+ }
88+ z: 1
89+ text: i18n.tr("Back")
90+ visible: pageStack.depth > 1 && hasBackButton
91+ backArrow: true
92+
93+ onClicked: customBack ? backClicked() : pageStack.prev()
94+ }
95+
96+ Loader {
97+ id: forwardButton
98+ objectName: "forwardButton"
99+ width: buttonWidth
100+ anchors {
101+ right: parent.right
102+ bottom: parent.bottom
103+ rightMargin: buttonMargin
104+ bottomMargin: buttonMargin
105+ }
106+ z: 1
107+ }
108+}
qml/Wizard/Pages.qmlnew file+136
@@ -0,0 +1,136 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+import Ubuntu.SystemSettings.SecurityPrivacy 1.0
20+import Wizard 0.1
21+import "../Components"
22+
23+Item {
24+ id: root
25+ objectName: "wizardPages"
26+ focus: true
27+
28+ // The background wallpaper to use
29+ property string background
30+
31+ signal quit()
32+
33+ // These should be set by a security page and we apply the settings when
34+ // the user exits the wizard.
35+ property int passwordMethod: UbuntuSecurityPrivacyPanel.Passcode
36+ property string password: ""
37+
38+ UbuntuSecurityPrivacyPanel {
39+ id: securityPrivacy
40+ objectName: "securityPrivacy"
41+ }
42+
43+ function quitWizard() {
44+ var errorMsg = securityPrivacy.setSecurity("", password, passwordMethod)
45+ if (errorMsg !== "") {
46+ // Ignore (but log) any errors, since we're past where the user set
47+ // the method. Worst case, we just leave the user with a swipe
48+ // security method and they fix it in the system settings.
49+ console.log("Error setting security method:", errorMsg)
50+ }
51+
52+ quit();
53+ }
54+
55+ MouseArea { // eat anything that gets past widgets
56+ anchors.fill: parent
57+ }
58+
59+ Image {
60+ id: image
61+ // Use x/y/height/width instead of anchors so that we don't adjust
62+ // the image when the OSK appears.
63+ x: 0
64+ y: 0
65+ height: root.height
66+ width: root.width
67+ sourceSize.height: height
68+ sourceSize.width: width
69+ source: root.background
70+ fillMode: Image.PreserveAspectCrop
71+ visible: status === Image.Ready
72+ }
73+
74+ PageList {
75+ id: pageList
76+ }
77+
78+ PageStack {
79+ id: pageStack
80+ objectName: "pageStack"
81+ anchors.fill: parent
82+
83+ function next() {
84+ // If we've opened any extra (non-main) pages, pop them before
85+ // continuing so back button returns to the previous main page.
86+ while (pageList.index < pageStack.depth - 1)
87+ pop()
88+ load(pageList.next())
89+ }
90+
91+ function prev() {
92+ if (pageList.index >= pageStack.depth - 1)
93+ pageList.prev() // update pageList.index, but not for extra pages
94+ pop()
95+ if (!currentPage || currentPage.opacity === 0) { // undo skipped pages
96+ prev()
97+ } else {
98+ currentPage.enabled = true
99+ }
100+ }
101+
102+ function load(path) {
103+ if (currentPage) {
104+ currentPage.enabled = false
105+ }
106+
107+ // First load it invisible, check that we should actually use
108+ // this page, and either skip it or continue.
109+ push(path, {"opacity": 0, "enabled": false})
110+
111+ // Check for immediate skip or not. We may have to wait for
112+ // skipValid to be assigned (see Connections object below)
113+ checkSkip()
114+ }
115+
116+ function checkSkip() {
117+ if (!currentPage) { // may have had a parse error
118+ next()
119+ } else if (currentPage.skipValid) {
120+ if (currentPage.skip) {
121+ next()
122+ } else {
123+ currentPage.opacity = 1
124+ currentPage.enabled = true
125+ }
126+ }
127+ }
128+
129+ Connections {
130+ target: pageStack.currentPage
131+ onSkipValidChanged: pageStack.checkSkip()
132+ }
133+
134+ Component.onCompleted: next()
135+ }
136+}
qml/Wizard/Pages/10-welcome.qmlnew file+99
@@ -0,0 +1,99 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+import Ubuntu.Components.ListItems 0.1
20+import Ubuntu.SystemSettings.LanguagePlugin 1.0
21+import Wizard 0.1
22+import ".." as LocalComponents
23+
24+LocalComponents.Page {
25+ objectName: "languagePage"
26+
27+ title: i18n.tr("Hi!")
28+ forwardButtonSourceComponent: forwardButton
29+
30+ UbuntuLanguagePlugin {
31+ id: plugin
32+ }
33+
34+ Column {
35+ id: column
36+ anchors.fill: content
37+ spacing: units.gu(1)
38+
39+ Label {
40+ id: label1
41+ anchors.left: parent.left
42+ anchors.right: parent.right
43+ wrapMode: Text.Wrap
44+ text: i18n.tr("Welcome to your Ubuntu phone.")
45+ }
46+
47+ Label {
48+ id: label2
49+ anchors.left: parent.left
50+ anchors.right: parent.right
51+ wrapMode: Text.Wrap
52+ text: i18n.tr("Let’s get started.")
53+ }
54+
55+ Item { // spacer
56+ height: units.gu(2)
57+ width: units.gu(1) // needed else it will be ignored
58+ }
59+
60+ ComboButton {
61+ id: combo
62+ objectName: "languageCombo"
63+ anchors.left: parent.left
64+ anchors.right: parent.right
65+ text: listview.currentItem.text
66+ onClicked: expanded = !expanded
67+ expandedHeight: column.height - combo.y
68+ UbuntuListView {
69+ id: listview
70+ model: plugin.languageNames
71+ currentIndex: plugin.currentLanguage
72+ delegate: Standard {
73+ objectName: "languageDelegate" + index
74+ text: modelData
75+ onClicked: {
76+ listview.currentIndex = index
77+ combo.expanded = false
78+ i18n.language = plugin.languageCodes[index]
79+ }
80+ }
81+ }
82+ }
83+ }
84+
85+ Component {
86+ id: forwardButton
87+ LocalComponents.StackButton {
88+ text: i18n.tr("Continue")
89+ onClicked: {
90+ if (plugin.currentLanguage !== listview.currentIndex) {
91+ plugin.currentLanguage = listview.currentIndex;
92+ System.updateSessionLanguage(plugin.languageCodes[listview.currentIndex]);
93+ i18n.language = i18n.language; // re-notify of change after above call (for qlocale change)
94+ }
95+ pageStack.next()
96+ }
97+ }
98+ }
99+}
qml/Wizard/Pages/20-sim.qmlnew file+73
@@ -0,0 +1,73 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import MeeGo.QOfono 0.2
19+import Ubuntu.Components 0.1
20+import ".." as LocalComponents
21+
22+LocalComponents.Page {
23+ objectName: "simPage"
24+
25+ title: i18n.tr("Add a SIM card and restart your device")
26+ forwardButtonSourceComponent: forwardButton
27+
28+ // No need for skipValid, since OfonoManager does everything synchronously
29+ skip: !manager.available || manager.modems.length === 0 || simManager0.present || simManager1.present
30+
31+ OfonoManager {
32+ id: manager
33+ }
34+
35+ // Ideally we would query the system more cleverly than hardcoding two
36+ // modems. But we don't yet have a more clever way. :(
37+ OfonoSimManager {
38+ id: simManager0
39+ modemPath: manager.modems.length >= 1 ? manager.modems[0] : ""
40+ }
41+
42+ OfonoSimManager {
43+ id: simManager1
44+ modemPath: manager.modems.length >= 2 ? manager.modems[1] : ""
45+ }
46+
47+ Column {
48+ anchors.fill: content
49+ spacing: units.gu(4)
50+
51+ Label {
52+ anchors.left: parent.left
53+ anchors.right: parent.right
54+ wrapMode: Text.Wrap
55+ text: i18n.tr("Without it, you won’t be able to make calls or use text messaging.")
56+ }
57+
58+ Image {
59+ id: image
60+ source: "data/meet_ubuntu_simcard@30.png"
61+ height: units.gu(6.5)
62+ width: units.gu(9)
63+ }
64+ }
65+
66+ Component {
67+ id: forwardButton
68+ LocalComponents.StackButton {
69+ text: i18n.tr("Skip")
70+ onClicked: pageStack.next()
71+ }
72+ }
73+}
qml/Wizard/Pages/30-passwd-type.qmlnew file+135
@@ -0,0 +1,135 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+import Ubuntu.Components.ListItems 1.0
20+import Ubuntu.SystemSettings.SecurityPrivacy 1.0
21+import ".." as LocalComponents
22+
23+/**
24+ * One quirk with this page: we don't actually set the password. We avoid
25+ * doing it here because the user can come back to this page and change their
26+ * answer. We don't run as root, so if we did set the password immediately,
27+ * we'd need to prompt for their previous password when they came back and
28+ * changed their answer. Which is silly UX. So instead, we just keep track
29+ * of their choice and set the password at the end (see main.qml).
30+ * Setting the password shouldn't fail, since Ubuntu Touch has loose password
31+ * requirements, but we'll check what we can here. Ideally we'd be able to ask
32+ * the system if a password is legal without actually setting that password.
33+ */
34+
35+LocalComponents.Page {
36+ id: passwdPage
37+ objectName: "passwdPage"
38+
39+ title: i18n.tr("Lock security")
40+ forwardButtonSourceComponent: forwardButton
41+
42+ function indexToMethod(index) {
43+ if (index === 0)
44+ return UbuntuSecurityPrivacyPanel.Swipe
45+ else if (index === 1)
46+ return UbuntuSecurityPrivacyPanel.Passcode
47+ else
48+ return UbuntuSecurityPrivacyPanel.Passphrase
49+ }
50+
51+ function methodToIndex(method) {
52+ if (method === UbuntuSecurityPrivacyPanel.Swipe)
53+ return 0
54+ else if (method === UbuntuSecurityPrivacyPanel.Passcode)
55+ return 1
56+ else
57+ return 2
58+ }
59+
60+ Connections {
61+ target: root
62+ onPasswordMethodChanged: selector.selectedIndex = methodToIndex(root.passwordMethod)
63+ }
64+
65+ Column {
66+ id: column
67+ anchors.fill: content
68+ spacing: units.gu(4)
69+
70+ Label {
71+ anchors.left: parent.left
72+ anchors.right: parent.right
73+ wrapMode: Text.Wrap
74+ text: i18n.tr("Please select how you’d like to unlock your phone.")
75+ }
76+
77+ ItemSelector {
78+ id: selector
79+ expanded: true
80+ anchors.left: parent.left
81+ anchors.right: parent.right
82+ property color originalBackground
83+
84+ model: ["", "", ""] // otherwise the delegate will show the text itself and we only want subText
85+
86+ selectedIndex: methodToIndex(root.passwordMethod)
87+
88+ delegate: OptionSelectorDelegate {
89+ objectName: "passwdDelegate" + index
90+
91+ // use subText because we want the text to be small, and we have no other way to control it
92+ subText: {
93+ var method = indexToMethod(index)
94+ var name = ""
95+ var desc = ""
96+ if (method === UbuntuSecurityPrivacyPanel.Swipe) {
97+ name = i18n.tr("Swipe")
98+ desc = i18n.tr("No security")
99+ } else if (method === UbuntuSecurityPrivacyPanel.Passcode) {
100+ name = i18n.tr("Passcode")
101+ desc = i18n.tr("4 digits only")
102+ } else {
103+ name = i18n.tr("Passphrase")
104+ desc = i18n.tr("Numbers and letters")
105+ }
106+ return "<b>%1</b> (%2)".arg(name).arg(desc)
107+ }
108+ }
109+
110+ style: Item {}
111+
112+ Component.onCompleted: {
113+ // A visible selected background looks bad in ListItem widgets with our theme
114+ originalBackground = Theme.palette.selected.background
115+ Theme.palette.selected.background = "transparent"
116+ }
117+
118+ Component.onDestruction: {
119+ // Restore original theme background
120+ Theme.palette.selected.background = originalBackground
121+ }
122+ }
123+ }
124+
125+ Component {
126+ id: forwardButton
127+ LocalComponents.StackButton {
128+ text: i18n.tr("Continue")
129+ onClicked: {
130+ root.passwordMethod = indexToMethod(selector.selectedIndex)
131+ pageStack.load(Qt.resolvedUrl("passwd-set.qml"))
132+ }
133+ }
134+ }
135+}
qml/Wizard/Pages/40-wifi.qmlnew file+201
@@ -0,0 +1,201 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import QMenuModel 0.1 as QMenuModel
19+import Ubuntu.Components 0.1
20+import Ubuntu.Components.ListItems 0.1 as ListItem
21+import Ubuntu.Settings.Menus 0.1 as Menus
22+import ".." as LocalComponents
23+
24+LocalComponents.Page {
25+ id: wifiPage
26+ objectName: "wifiPage"
27+
28+ title: i18n.tr("Connect to Wi‑Fi")
29+ forwardButtonSourceComponent: forwardButton
30+
31+ readonly property bool connected: mainMenu.connectedAPs === 1
32+
33+ function getExtendedProperty(object, propertyName, defaultValue) {
34+ if (object && object.hasOwnProperty(propertyName)) {
35+ return object[propertyName];
36+ }
37+ return defaultValue;
38+ }
39+
40+ QMenuModel.UnityMenuModel {
41+ id: menuModel
42+ busName: "com.canonical.indicator.network"
43+ actions: { "indicator": "/com/canonical/indicator/network" }
44+ menuObjectPath: "/com/canonical/indicator/network/phone_wifi_settings"
45+ }
46+
47+ Component {
48+ id: accessPointComponent
49+ ListItem.Standard {
50+ id: accessPoint
51+ objectName: "accessPoint"
52+
53+ property QtObject menuData: null
54+ property var unityMenuModel: menuModel
55+ property var extendedData: menuData && menuData.ext || undefined
56+ property var strengthAction: QMenuModel.UnityMenuAction {
57+ model: unityMenuModel
58+ index: menuIndex
59+ name: getExtendedProperty(extendedData, "xCanonicalWifiApStrengthAction", "")
60+ }
61+ property bool checked: menuData && menuData.isToggled || false
62+ property bool secure: getExtendedProperty(extendedData, "xCanonicalWifiApIsSecure", false)
63+ property bool adHoc: getExtendedProperty(extendedData, "xCanonicalWifiApIsAdhoc", false)
64+ property int signalStrength: strengthAction.valid ? strengthAction.state : 0
65+ property int menuIndex: -1
66+
67+ function loadAttributes() {
68+ if (!unityMenuModel || menuIndex == -1) return;
69+ unityMenuModel.loadExtendedAttributes(menuIndex, {'x-canonical-wifi-ap-is-adhoc': 'bool',
70+ 'x-canonical-wifi-ap-is-secure': 'bool',
71+ 'x-canonical-wifi-ap-strength-action': 'string'});
72+ }
73+
74+ signal activate()
75+
76+ text: menuData && menuData.label || ""
77+ enabled: menuData && menuData.sensitive || false
78+ iconName: {
79+ var imageName = "nm-signal-100";
80+
81+ if (adHoc) {
82+ imageName = "nm-adhoc";
83+ } else if (signalStrength == 0) {
84+ imageName = "nm-signal-00";
85+ } else if (signalStrength <= 25) {
86+ imageName = "nm-signal-25";
87+ } else if (signalStrength <= 50) {
88+ imageName = "nm-signal-50";
89+ } else if (signalStrength <= 75) {
90+ imageName = "nm-signal-75";
91+ }
92+
93+ if (secure) {
94+ imageName += "-secure";
95+ }
96+ return imageName;
97+ }
98+ iconFrame: false
99+ control: CheckBox {
100+ id: checkBoxActive
101+
102+ onClicked: {
103+ accessPoint.activate();
104+ }
105+ }
106+ style: Rectangle {
107+ color: "#4c000000"
108+ }
109+
110+ Component.onCompleted: {
111+ loadAttributes();
112+ }
113+ onUnityMenuModelChanged: {
114+ loadAttributes();
115+ }
116+ onMenuIndexChanged: {
117+ loadAttributes();
118+ }
119+ onCheckedChanged: {
120+ // Can't rely on binding. Checked is assigned on click.
121+ checkBoxActive.checked = checked;
122+ if (checked) {
123+ mainMenu.connectedAPs++
124+ } else {
125+ mainMenu.connectedAPs--
126+ }
127+ }
128+ onActivate: unityMenuModel.activate(menuIndex);
129+ }
130+ }
131+
132+ Column {
133+ id: column
134+ spacing: units.gu(2)
135+ anchors.top: content.top
136+ anchors.bottom: content.bottom
137+ anchors.left: wifiPage.left
138+ anchors.right: wifiPage.right
139+
140+ Label {
141+ id: label
142+ anchors.left: parent.left
143+ anchors.leftMargin: leftMargin
144+ anchors.right: parent.right
145+ anchors.rightMargin: rightMargin
146+ fontSize: "small"
147+ text: mainMenu.count > 0 ? i18n.tr("Available networks…")
148+ : i18n.tr("No available networks.")
149+ }
150+
151+ Flickable {
152+ anchors.left: parent.left
153+ anchors.right: parent.right
154+ height: column.height - label.height - column.spacing
155+ contentHeight: contentItem.childrenRect.height
156+ clip: true
157+ flickDeceleration: 1500 * units.gridUnit / 8
158+ maximumFlickVelocity: 2500 * units.gridUnit / 8
159+ boundsBehavior: (contentHeight > height) ? Flickable.DragAndOvershootBounds : Flickable.StopAtBounds
160+
161+ Column {
162+ anchors.left: parent.left
163+ anchors.right: parent.right
164+
165+ Repeater {
166+ id: mainMenu
167+
168+ // FIXME Check connection better https://bugs.launchpad.net/indicator-network/+bug/1349371
169+ property int connectedAPs: 0
170+
171+ model: menuModel
172+
173+ delegate: Loader {
174+ id: loader
175+
176+ readonly property bool isAccessPoint: model.type === "unity.widgets.systemsettings.tablet.accesspoint"
177+
178+ anchors.left: parent.left
179+ anchors.right: parent.right
180+ height: isAccessPoint ? units.gu(6) : 0
181+ asynchronous: true
182+ sourceComponent: isAccessPoint ? accessPointComponent : null
183+
184+ onLoaded: {
185+ item.menuData = Qt.binding(function() { return model; });
186+ item.menuIndex = Qt.binding(function() { return index; });
187+ }
188+ }
189+ }
190+ }
191+ }
192+ }
193+
194+ Component {
195+ id: forwardButton
196+ LocalComponents.StackButton {
197+ text: (connected || mainMenu.count === 0) ? i18n.tr("Continue") : i18n.tr("Skip")
198+ onClicked: pageStack.next()
199+ }
200+ }
201+}
qml/Wizard/Pages/50-location.qmlnew file+150
@@ -0,0 +1,150 @@
1+/*
2+ * Copyright (C) 2013,2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import AccountsService 0.1
19+import QMenuModel 0.1 as QMenuModel
20+import Qt.labs.folderlistmodel 2.1
21+import Ubuntu.Components 1.1
22+import ".." as LocalComponents
23+
24+LocalComponents.Page {
25+ objectName: "locationPage"
26+
27+ title: i18n.tr("Location")
28+ forwardButtonSourceComponent: forwardButton
29+
30+ property bool pathSet: AccountsService.hereLicensePathValid
31+ skipValid: pathSet && (AccountsService.hereLicensePath === "" || termsModel.count > 0)
32+ skip: skipValid && (AccountsService.hereLicensePath === "" || termsModel.count === 2) // no files but . and ..
33+
34+ FolderListModel {
35+ id: termsModel
36+ folder: AccountsService.hereLicensePath
37+ nameFilters: ["*.html"]
38+ showOnlyReadable: true
39+ showDotAndDotDot: true // so that count == 0 means we're not done scanning yet
40+ }
41+
42+ QMenuModel.QDBusActionGroup {
43+ id: locationActionGroup
44+ objectName: "locationActionGroup"
45+ busType: QMenuModel.DBus.SessionBus
46+ busName: "com.canonical.indicator.location"
47+ objectPath: "/com/canonical/indicator/location"
48+ property variant location: action("location-detection-enabled")
49+ property variant gps: action("gps-detection-enabled")
50+ Component.onCompleted: start()
51+ }
52+
53+ Column {
54+ id: column
55+ anchors.fill: content
56+ spacing: units.gu(3)
57+
58+ Label {
59+ anchors.left: parent.left
60+ anchors.right: parent.right
61+ wrapMode: Text.Wrap
62+ text: i18n.tr("Let the phone detect your location:")
63+ }
64+
65+ LocalComponents.CheckableSetting {
66+ id: gpsCheck
67+ objectName: "gpsCheck"
68+ showDivider: false
69+ text: i18n.tr("Using GPS only (less accurate)")
70+ onTriggered: {
71+ gpsCheck.checked = true;
72+ hereCheck.checked = false;
73+ nopeCheck.checked = false;
74+ }
75+ }
76+
77+ Column {
78+ anchors.left: parent.left
79+ anchors.right: parent.right
80+ height: childrenRect.height
81+
82+ LocalComponents.CheckableSetting {
83+ id: hereCheck
84+ objectName: "hereCheck"
85+ showDivider: false
86+ text: i18n.tr("Using GPS, anonymized Wi-Fi and cellular network info (recommended)")
87+ checked: true
88+ onTriggered: {
89+ gpsCheck.checked = false;
90+ hereCheck.checked = true;
91+ nopeCheck.checked = false;
92+ }
93+ }
94+
95+ Label {
96+ objectName: "hereTermsLink"
97+ anchors.left: parent.left
98+ anchors.leftMargin: hereCheck.labelOffset
99+ anchors.right: parent.right
100+ wrapMode: Text.Wrap
101+ linkColor: Theme.palette.normal.foregroundText
102+ // TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
103+ text: i18n.tr("By selecting this option you agree to the Nokia HERE <a href='#'>terms and conditions</a>.")
104+ onLinkActivated: pageStack.load(Qt.resolvedUrl("here-terms.qml"))
105+ }
106+ }
107+
108+ LocalComponents.CheckableSetting {
109+ id: nopeCheck
110+ objectName: "nopeCheck"
111+ showDivider: false
112+ text: i18n.tr("Not at all")
113+ onTriggered: {
114+ gpsCheck.checked = false;
115+ hereCheck.checked = false;
116+ nopeCheck.checked = true;
117+ }
118+ }
119+
120+ Label {
121+ anchors.left: parent.left
122+ anchors.right: parent.right
123+ wrapMode: Text.Wrap
124+ text: i18n.tr("You can change your mind later in <b>System Settings</b>.")
125+ }
126+ }
127+
128+ Component {
129+ id: forwardButton
130+ LocalComponents.StackButton {
131+ text: i18n.tr("Continue")
132+ onClicked: {
133+ var locationOn = gpsCheck.checked || hereCheck.checked;
134+ var gpsOn = gpsCheck.checked || hereCheck.checked;
135+ var hereOn = hereCheck.checked;
136+
137+ // location service doesn't currently listen to updateState
138+ // requests, so we activate the actions if needed.
139+ if (locationActionGroup.location.state != locationOn) {
140+ locationActionGroup.location.activate();
141+ }
142+ if (locationActionGroup.gps.state != gpsOn) {
143+ locationActionGroup.gps.activate();
144+ }
145+ AccountsService.hereEnabled = hereOn;
146+ pageStack.next()
147+ }
148+ }
149+ }
150+}
qml/Wizard/Pages/60-reporting.qmlnew file+54
@@ -0,0 +1,54 @@
1+/*
2+ * Copyright (C) 2013,2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+import ".." as LocalComponents
20+
21+LocalComponents.Page {
22+ objectName: "reportingPage"
23+
24+ title: i18n.tr("Improving your experience")
25+ forwardButtonSourceComponent: forwardButton
26+
27+ Column {
28+ id: column
29+ anchors.fill: content
30+ spacing: units.gu(2)
31+
32+ Label {
33+ anchors.left: parent.left
34+ anchors.right: parent.right
35+ wrapMode: Text.Wrap
36+ text: i18n.tr("Your phone is set up to automatically report errors to Canonical and its partners, the makers of the operating system.")
37+ }
38+
39+ Label {
40+ anchors.left: parent.left
41+ anchors.right: parent.right
42+ wrapMode: Text.Wrap
43+ text: i18n.tr("This can be disabled in <b>System Settings</b> under <b>Security &amp; Privacy</b>")
44+ }
45+ }
46+
47+ Component {
48+ id: forwardButton
49+ LocalComponents.StackButton {
50+ text: i18n.tr("Continue")
51+ onClicked: pageStack.next()
52+ }
53+ }
54+}
qml/Wizard/Pages/80-finished.qmlnew file+57
@@ -0,0 +1,57 @@
1+/*
2+ * Copyright (C) 2013,2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import Ubuntu.Components 0.1
19+import ".." as LocalComponents
20+
21+LocalComponents.Page {
22+ objectName: "finishedPage"
23+
24+ title: i18n.tr("All done")
25+ forwardButtonSourceComponent: forwardButton
26+ hasBackButton: false
27+
28+ Column {
29+ id: column
30+ anchors.fill: content
31+ spacing: units.gu(1)
32+
33+ Label {
34+ anchors.left: parent.left
35+ anchors.right: parent.right
36+ wrapMode: Text.Wrap
37+ fontSize: "large"
38+ font.bold: true
39+ text: i18n.tr("Nice work!")
40+ }
41+
42+ Label {
43+ anchors.left: parent.left
44+ anchors.right: parent.right
45+ wrapMode: Text.Wrap
46+ text: i18n.tr("Your phone is now ready to use.")
47+ }
48+ }
49+
50+ Component {
51+ id: forwardButton
52+ LocalComponents.StackButton {
53+ text: i18n.tr("Finish")
54+ onClicked: root.quitWizard()
55+ }
56+ }
57+}
qml/Wizard/Pages/data/meet_ubuntu_simcard@30.pngnew file

Binary file not shown.

qml/Wizard/Pages/here-terms.qmlnew file+121
@@ -0,0 +1,121 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import AccountsService 0.1
19+import Qt.labs.folderlistmodel 2.1
20+import Ubuntu.Components 1.1
21+import Ubuntu.Web 0.2
22+import ".." as LocalComponents
23+
24+LocalComponents.Page {
25+ objectName: "hereTermsPage"
26+
27+ title: i18n.tr("Terms & Conditions")
28+ customBack: true
29+
30+ FolderListModel {
31+ id: termsModel
32+ folder: AccountsService.hereLicensePath
33+ nameFilters: ["*.html"]
34+ showDirs: false
35+ showOnlyReadable: true
36+ onCountChanged: loadFileContent()
37+ }
38+
39+ function makeFileName(lang, country) {
40+ return lang + "_" + country + ".html"
41+ }
42+
43+ function defaultCountryForLanguage(lang) {
44+ if (lang === "da") return "DK"
45+ if (lang === "en") return "US"
46+ if (lang === "ko") return "KR"
47+ if (lang === "zh") return "CN"
48+ return lang.toUpperCase()
49+ }
50+
51+ function determineFileName() {
52+ var codes = i18n.language.split(".")[0].split("_")
53+ var defaultCountry = defaultCountryForLanguage(codes[0])
54+ if (codes.count === 1)
55+ codes = [codes[0], defaultCountry]
56+ var perfectMatch = makeFileName(codes[0], codes[1])
57+ var nearMatch = makeFileName(codes[0], defaultCountry)
58+ var nearMatchExists = false
59+
60+ for (var i = 0; i < termsModel.count; i++) {
61+ var fileName = termsModel.get(i, "fileName")
62+ if (fileName == perfectMatch) {
63+ return perfectMatch
64+ } else if (fileName == nearMatch) {
65+ nearMatchExists = true
66+ }
67+ }
68+
69+ if (nearMatchExists) {
70+ return nearMatch
71+ } else {
72+ return makeFileName("en", "US")
73+ }
74+ }
75+
76+ function loadFileContent() {
77+ var xhr = new XMLHttpRequest
78+ xhr.open("GET", AccountsService.hereLicensePath + "/" + determineFileName())
79+ xhr.onreadystatechange = function() {
80+ if (xhr.readyState == XMLHttpRequest.DONE) {
81+ termsLabel.text = xhr.responseText
82+ }
83+ }
84+ xhr.send()
85+ }
86+
87+ onBackClicked: {
88+ if (webview.visible) {
89+ termsLabel.visible = true
90+ } else {
91+ pageStack.prev()
92+ }
93+ }
94+
95+ Column {
96+ id: column
97+ anchors.fill: content
98+
99+ Label {
100+ id: termsLabel
101+ objectName: "termsLabel"
102+ anchors.left: parent.left
103+ anchors.right: parent.right
104+ wrapMode: Text.Wrap
105+ linkColor: Theme.palette.normal.foregroundText
106+ onLinkActivated: {
107+ webview.url = link
108+ termsLabel.visible = false
109+ }
110+ }
111+
112+ WebView {
113+ id: webview
114+ objectName: "webview"
115+ anchors.left: parent.left
116+ anchors.right: parent.right
117+ height: parent.height
118+ visible: !termsLabel.visible
119+ }
120+ }
121+}
qml/Wizard/Pages/passwd-confirm.qmlnew file+86
@@ -0,0 +1,86 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+import Ubuntu.SystemSettings.SecurityPrivacy 1.0
20+import ".." as LocalComponents
21+import "../../Components" as UnityComponents
22+
23+/**
24+ * See the main passwd-type page for an explanation of why we don't actually
25+ * directly set the password here.
26+ */
27+
28+LocalComponents.Page {
29+ id: passwdConfirmPage
30+ objectName: "passwdConfirmPage"
31+ forwardButtonSourceComponent: forwardButton
32+
33+ skip: root.passwordMethod === UbuntuSecurityPrivacyPanel.Swipe
34+
35+ // If we are entering this page, clear any saved password and get focus
36+ onEnabledChanged: if (enabled) lockscreen.clear(false)
37+
38+ UnityComponents.Lockscreen {
39+ id: lockscreen
40+ anchors {
41+ fill: parent
42+ topMargin: topMargin
43+ leftMargin: leftMargin
44+ rightMargin: rightMargin
45+ bottomMargin: buttonMargin
46+ }
47+
48+ infoText: root.passwordMethod === UbuntuSecurityPrivacyPanel.Passphrase ?
49+ i18n.tr("Confirm passphrase") :
50+ i18n.tr("Confirm passcode")
51+
52+ errorText: root.passwordMethod === UbuntuSecurityPrivacyPanel.Passphrase ?
53+ i18n.tr("Sorry, incorrect passphrase.") + "\n" + i18n.tr("Please try again.") :
54+ i18n.tr("Sorry, incorrect passcode.") + "\n" + i18n.tr("Please try again.")
55+
56+ showEmergencyCallButton: false
57+ showCancelButton: false
58+ alphaNumeric: root.passwordMethod === UbuntuSecurityPrivacyPanel.Passphrase
59+ minPinLength: 4
60+ maxPinLength: 4
61+
62+ onEntered: {
63+ if (passphrase === root.password) {
64+ confirmTimer.start()
65+ } else {
66+ clear(true)
67+ }
68+ }
69+
70+ Timer {
71+ id: confirmTimer
72+ interval: UbuntuAnimation.SnapDuration
73+ onTriggered: pageStack.next()
74+ }
75+ }
76+
77+ Component {
78+ id: forwardButton
79+ LocalComponents.StackButton {
80+ visible: root.passwordMethod === UbuntuSecurityPrivacyPanel.Passphrase
81+ enabled: root.password === lockscreen.passphrase
82+ text: i18n.tr("Continue")
83+ onClicked: pageStack.next()
84+ }
85+ }
86+}
qml/Wizard/Pages/passwd-set.qmlnew file+94
@@ -0,0 +1,94 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+import Ubuntu.SystemSettings.SecurityPrivacy 1.0
20+import ".." as LocalComponents
21+import "../../Components" as UnityComponents
22+
23+/**
24+ * See the main passwd-type page for an explanation of why we don't actually
25+ * directly set the password here.
26+ */
27+
28+LocalComponents.Page {
29+ id: passwdSetPage
30+ objectName: "passwdSetPage"
31+ forwardButtonSourceComponent: forwardButton
32+
33+ skip: root.passwordMethod === UbuntuSecurityPrivacyPanel.Swipe
34+
35+ // If we are entering this page, clear any saved password and get focus
36+ onEnabledChanged: if (enabled) lockscreen.clear(false)
37+
38+ function confirm() {
39+ root.password = lockscreen.passphrase;
40+ confirmTimer.start()
41+ }
42+
43+ Timer {
44+ id: confirmTimer
45+ interval: UbuntuAnimation.SnapDuration
46+ onTriggered: pageStack.load(Qt.resolvedUrl("passwd-confirm.qml"));
47+ }
48+
49+ UnityComponents.Lockscreen {
50+ id: lockscreen
51+ anchors {
52+ fill: parent
53+ topMargin: topMargin
54+ leftMargin: leftMargin
55+ rightMargin: rightMargin
56+ bottomMargin: buttonMargin
57+ }
58+
59+ infoText: root.passwordMethod === UbuntuSecurityPrivacyPanel.Passphrase ?
60+ i18n.tr("Enter passphrase") :
61+ i18n.tr("Choose your passcode")
62+
63+ // Note that the number four comes from PAM settings,
64+ // which we don't have a good way to interrogate. We
65+ // only do this matching instead of PAM because we want
66+ // to set the password via PAM in a different place
67+ // than this page. See comments at top of passwd-type file.
68+ errorText: i18n.tr("Passphrase must be 4 characters long")
69+
70+ showEmergencyCallButton: false
71+ showCancelButton: false
72+ alphaNumeric: root.passwordMethod === UbuntuSecurityPrivacyPanel.Passphrase
73+ minPinLength: 4
74+ maxPinLength: 4
75+
76+ onEntered: {
77+ if (passphrase.length >= 4) {
78+ passwdSetPage.confirm();
79+ } else {
80+ lockscreen.clear(true)
81+ }
82+ }
83+ }
84+
85+ Component {
86+ id: forwardButton
87+ LocalComponents.StackButton {
88+ visible: root.passwordMethod === UbuntuSecurityPrivacyPanel.Passphrase
89+ enabled: lockscreen.passphrase.length >= 4
90+ text: i18n.tr("Continue")
91+ onClicked: passwdSetPage.confirm()
92+ }
93+ }
94+}
qml/Wizard/StackButton.qmlnew file+47
@@ -0,0 +1,47 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+
20+AbstractButton {
21+ id: stackButton
22+
23+ property string text
24+
25+ property bool backArrow: false
26+
27+ width: label.width
28+ height: label.height + units.gu(4)
29+
30+ Label {
31+ id: label
32+ anchors.verticalCenter: parent.verticalCenter
33+ anchors.left: parent.left
34+ anchors.right: parent.right
35+ color: enabled ? Theme.palette.selected.backgroundText : Qt.darker(Theme.palette.selected.backgroundText, 1.5)
36+ text: {
37+ if (backArrow) {
38+ // Translators: This is the arrow for "Back" buttons
39+ return i18n.tr("〈 %1".arg(stackButton.text))
40+ } else {
41+ // Translators: This is the arrow for "Forward" buttons
42+ return i18n.tr("%1 〉".arg(stackButton.text))
43+ }
44+ }
45+ horizontalAlignment: backArrow ? Text.AlignLeft : Text.AlignRight
46+ }
47+}
qml/Wizard/Wizard.qmlnew file+55
@@ -0,0 +1,55 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import Ubuntu.Components 1.1
19+import Wizard 0.1
20+import "../Components"
21+
22+Showable {
23+ id: root
24+
25+ // The background wallpaper to use
26+ property string background
27+
28+ readonly property alias active: loader.active
29+
30+ hideAnimation: StandardAnimation { property: "opacity"; to: 0 }
31+
32+ onRequiredChanged: {
33+ if (!required) {
34+ System.wizardEnabled = false;
35+ }
36+ }
37+
38+ Loader {
39+ id: loader
40+ anchors.fill: parent
41+ active: System.wizardEnabled
42+ source: "Pages.qml"
43+
44+ Binding {
45+ target: loader.item
46+ property: "background"
47+ value: root.background
48+ }
49+
50+ Connections {
51+ target: loader.item
52+ onQuit: root.hide()
53+ }
54+ }
55+}
qml/graphics/applicationIcons/dash@18.png → qml/graphics/applicationIcons/dash.pngrenamed

Binary file not shown.

src/CMakeLists.txt+4−1
@@ -1,6 +1,9 @@
1+pkg_check_modules(CONNECTIVITY REQUIRED connectivity-qt1)
2+
13include_directories(
24 ${Qt5Gui_PRIVATE_INCLUDE_DIRS}
35 ${CMAKE_SOURCE_DIR}/libs/UbuntuGestures
6+ ${CONNECTIVITY_INCLUDE_DIRS}
47)
58
69file(GLOB_RECURSE QML_FILES
@@ -30,7 +33,7 @@ if (NOT "${XCB_INCLUDE_DIRS}" STREQUAL "")
3033 target_link_libraries(${SHELL_APP} ${XCB_LDFLAGS})
3134endif()
3235
33−target_link_libraries(${SHELL_APP} UbuntuGestures)
36+target_link_libraries(${SHELL_APP} UbuntuGestures connectivity-qt1)
3437
3538# For it to find libUbuntuGestures.so
3639set_target_properties(${SHELL_APP} PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_PRIVATE_LIBDIR}")
src/CachingNetworkManagerFactory.cpp+2−11
@@ -20,25 +20,16 @@
2020#include <QNetworkDiskCache>
2121#include <QNetworkAccessManager>
2222#include <QStandardPaths>
23−#include <QNetworkConfigurationManager>
2423
2524CachingNetworkAccessManager::CachingNetworkAccessManager(QObject *parent)
2625 : QNetworkAccessManager(parent)
2726{
28− m_networkManager = new QNetworkConfigurationManager(this);
29−
30− QObject::connect(m_networkManager, &QNetworkConfigurationManager::onlineStateChanged, this, &CachingNetworkAccessManager::onlineStateChanged);
31− m_isOnline = m_networkManager->isOnline();
32−}
33−
34−void CachingNetworkAccessManager::onlineStateChanged(bool isOnline)
35−{
36− m_isOnline = isOnline;
27+ m_networkingStatus = new ubuntu::connectivity::NetworkingStatus(this);
3728}
3829
3930QNetworkReply* CachingNetworkAccessManager::createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData)
4031{
41− if (!m_isOnline) {
32+ if (m_networkingStatus->status() != ubuntu::connectivity::NetworkingStatus::Status::Online) {
4233 QNetworkRequest req(request);
4334 req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::AlwaysCache);
4435 return QNetworkAccessManager::createRequest(op, req, outgoingData);
src/CachingNetworkManagerFactory.h+2−6
@@ -21,7 +21,7 @@
2121#include <QQmlNetworkAccessManagerFactory>
2222#include <QNetworkAccessManager>
2323
24−class QNetworkConfigurationManager;
24+#include <ubuntu/connectivity/networking-status.h>
2525
2626class CachingNetworkAccessManager : public QNetworkAccessManager
2727{
@@ -31,12 +31,8 @@ public:
3131protected:
3232 QNetworkReply* createRequest(Operation op, const QNetworkRequest &req, QIODevice *outgoingData = 0) override;
3333
34−private Q_SLOTS:
35− void onlineStateChanged(bool isOnline);
36−
3734private:
38− QNetworkConfigurationManager* m_networkManager;
39− bool m_isOnline;
35+ ubuntu::connectivity::NetworkingStatus* m_networkingStatus;
4036};
4137
4238class CachingNetworkManagerFactory : public QQmlNetworkAccessManagerFactory
src/Dash/CMakeLists.txt+1−1
@@ -12,7 +12,7 @@ qt5_use_modules(unity8-dash Gui Qml Quick Test)
1212# For it to find libUbuntuGestures.so, needed by Ubuntu.Gestures QML module.
1313set_target_properties(unity8-dash PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${SHELL_PRIVATE_LIBDIR}")
1414
15−target_link_libraries(unity8-dash UbuntuGestures)
15+target_link_libraries(unity8-dash UbuntuGestures connectivity-qt1)
1616
1717set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
1818
tests/autopilot/unity8/application_lifecycle/tests/test_application_lifecycle.py+1−1
@@ -47,7 +47,7 @@ class ApplicationLifecycleTests(tests.ApplicationLifeCycleTestCase):
4747 height = self.main_window.height
4848 start_x = width
4949 start_y = int(height/2)
50− end_x = int(width/2)
50+ end_x = int(width*3/4)
5151 end_y = start_y
5252
5353 logger.info("Swiping screen from the right edge")
tests/autopilot/unity8/shell/emulators/dash.py+1−1
@@ -204,7 +204,7 @@ class GenericScopeView(emulators.UnityEmulatorBase):
204204
205205 """
206206 category_element = self._get_category_element(category)
207− icon = category_element.select_single('AbstractButton', title=title)
207+ icon = category_element.wait_select_single('AbstractButton', title=title)
208208 self.pointing_device.click_object(icon)
209209
210210 def _get_category_element(self, category):
tests/mocks/AccountsService/AccountsService.cpp+37−1
@@ -27,7 +27,9 @@ AccountsService::AccountsService(QObject* parent)
2727 m_backgroundFile(qmlDirectory() + "graphics/phone_background.jpg"),
2828 m_statsWelcomeScreen(true),
2929 m_failedLogins(0),
30− m_demoEdges(false)
30+ m_demoEdges(false),
31+ m_hereEnabled(false),
32+ m_hereLicensePath("")
3133{
3234}
3335
@@ -116,3 +118,37 @@ void AccountsService::setFailedLogins(uint failedLogins)
116118 m_failedLogins = failedLogins;
117119 failedLoginsChanged();
118120}
121+
122+bool AccountsService::hereEnabled() const
123+{
124+ return m_hereEnabled;
125+}
126+
127+void AccountsService::setHereEnabled(bool enabled)
128+{
129+ m_hereEnabled = enabled;
130+ hereEnabledChanged();
131+}
132+
133+QString AccountsService::hereLicensePath() const
134+{
135+ return m_hereLicensePath;
136+}
137+
138+void AccountsService::setHereLicensePath(const QString &path)
139+{
140+ // Path should always be valid (this code is all synchronous)
141+ if (path == " ") {
142+ m_hereLicensePath = QString::null;
143+ } else if (path.isNull()) { // because qml collapses null and empty
144+ m_hereLicensePath = "";
145+ } else {
146+ m_hereLicensePath = path;
147+ }
148+ hereLicensePathChanged();
149+}
150+
151+bool AccountsService::hereLicensePathValid() const
152+{
153+ return !m_hereLicensePath.isNull();
154+}
tests/mocks/AccountsService/AccountsService.h+20
@@ -59,6 +59,17 @@ class AccountsService: public QObject
5959 READ failedLogins
6060 WRITE setFailedLogins
6161 NOTIFY failedLoginsChanged)
62+ Q_PROPERTY(bool hereEnabled
63+ READ hereEnabled
64+ WRITE setHereEnabled
65+ NOTIFY hereEnabledChanged)
66+ Q_PROPERTY(QString hereLicensePath
67+ READ hereLicensePath
68+ WRITE setHereLicensePath // only available in mock
69+ NOTIFY hereLicensePathChanged)
70+ Q_PROPERTY(bool hereLicensePathValid // qml sees a null string as "", so we use proxy setting for that
71+ READ hereLicensePathValid
72+ NOTIFY hereLicensePathChanged)
6273
6374public:
6475 enum PasswordDisplayHint {
@@ -83,6 +94,11 @@ public:
8394 PasswordDisplayHint passwordDisplayHint() const;
8495 uint failedLogins() const;
8596 void setFailedLogins(uint failedLogins);
97+ bool hereEnabled() const;
98+ void setHereEnabled(bool enabled);
99+ QString hereLicensePath() const;
100+ void setHereLicensePath(const QString &path);
101+ bool hereLicensePathValid() const;
86102
87103Q_SIGNALS:
88104 void userChanged();
@@ -93,6 +109,8 @@ Q_SIGNALS:
93109 void statsWelcomeScreenChanged();
94110 void passwordDisplayHintChanged();
95111 void failedLoginsChanged();
112+ void hereEnabledChanged();
113+ void hereLicensePathChanged();
96114
97115private:
98116 bool m_enableLauncherWhileLocked;
@@ -102,6 +120,8 @@ private:
102120 bool m_statsWelcomeScreen;
103121 uint m_failedLogins;
104122 bool m_demoEdges;
123+ bool m_hereEnabled;
124+ QString m_hereLicensePath;
105125};
106126
107127#endif
tests/mocks/CMakeLists.txt+2
@@ -32,11 +32,13 @@ add_subdirectory(AccountsService)
3232add_subdirectory(GSettings.1.0)
3333add_subdirectory(libusermetrics)
3434add_subdirectory(LightDM)
35+add_subdirectory(MeeGo)
3536add_subdirectory(Powerd)
3637add_subdirectory(QMenuModel)
3738add_subdirectory(Ubuntu)
3839add_subdirectory(Unity)
3940add_subdirectory(QtMultimedia)
41+add_subdirectory(Wizard)
4042
4143install(
4244 DIRECTORY data
tests/mocks/MeeGo/CMakeLists.txtnew file+1
@@ -0,0 +1 @@
1+add_subdirectory(QOfono)
tests/mocks/MeeGo/QOfono/CMakeLists.txtnew file+10
@@ -0,0 +1,10 @@
1+set(MOCK_QOFONO_SOURCES
2+ plugin.cpp
3+ MockQOfono.cpp
4+)
5+
6+add_library(MockQOfono MODULE ${MOCK_QOFONO_SOURCES})
7+
8+qt5_use_modules(MockQOfono Qml Quick Core)
9+
10+add_unity8_mock(MeeGo.QOfono 0.2 MeeGo/QOfono TARGETS MockQOfono)
tests/mocks/MeeGo/QOfono/MockOfonoManager.qmlnew file+23
@@ -0,0 +1,23 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import MeeGo.QOfono 0.2
19+
20+Item {
21+ readonly property var modems: MockQOfono.modems
22+ readonly property bool available: MockQOfono.available
23+}
tests/mocks/MeeGo/QOfono/MockOfonoSimManager.qmlnew file+42
@@ -0,0 +1,42 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import MeeGo.QOfono 0.2
19+
20+Item {
21+ id: simManager
22+
23+ property string modemPath
24+ readonly property alias present: d.present
25+
26+ QtObject {
27+ id: d
28+
29+ property bool present: false
30+
31+ function updatePresence() {
32+ d.present = MockQOfono.isModemPresent(simManager.modemPath)
33+ }
34+ }
35+
36+ onModemPathChanged: d.updatePresence()
37+
38+ Connections {
39+ target: MockQOfono
40+ onModemsChanged: d.updatePresence()
41+ }
42+}
tests/mocks/MeeGo/QOfono/MockQOfono.cppnew file+54
@@ -0,0 +1,54 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "MockQOfono.h"
18+
19+MockQOfono::MockQOfono(QObject *parent)
20+ : QObject(parent),
21+ m_available(false),
22+ m_modems()
23+{
24+}
25+
26+bool MockQOfono::available() const
27+{
28+ return m_available;
29+}
30+
31+void MockQOfono::setAvailable(bool available)
32+{
33+ m_available = available;
34+ Q_EMIT availableChanged();
35+}
36+
37+QStringList MockQOfono::modems() const
38+{
39+ return m_modems.keys();
40+}
41+
42+void MockQOfono::setModems(const QStringList &modems, const QList<bool> &present)
43+{
44+ m_modems.clear();
45+ for (int i = 0; i < modems.length(); i++) {
46+ m_modems[modems[i]] = present[i];
47+ }
48+ Q_EMIT modemsChanged();
49+}
50+
51+bool MockQOfono::isModemPresent(const QString &modem)
52+{
53+ return m_modems.value(modem, false);
54+}
tests/mocks/MeeGo/QOfono/MockQOfono.hnew file+52
@@ -0,0 +1,52 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+// This class just exists as a backend for the instantiable Qml objects to pull
18+// from. It exists only for this mock plugin.
19+
20+#ifndef MOCK_QOFONO_H
21+#define MOCK_QOFONO_H
22+
23+#include <QObject>
24+#include <QMap>
25+#include <QStringList>
26+
27+class MockQOfono : public QObject
28+{
29+ Q_OBJECT
30+ Q_PROPERTY(bool available READ available WRITE setAvailable NOTIFY availableChanged)
31+ Q_PROPERTY(QStringList modems READ modems NOTIFY modemsChanged)
32+
33+public:
34+ explicit MockQOfono(QObject *parent = 0);
35+
36+ bool available() const;
37+ void setAvailable(bool available);
38+ QStringList modems() const;
39+
40+ Q_INVOKABLE void setModems(const QStringList &modems, const QList<bool> &present);
41+ Q_INVOKABLE bool isModemPresent(const QString &modem);
42+
43+Q_SIGNALS:
44+ void availableChanged();
45+ void modemsChanged();
46+
47+private:
48+ bool m_available;
49+ QMap<QString, bool> m_modems;
50+};
51+
52+#endif // MOCK_QOFONO_H
tests/mocks/MeeGo/QOfono/plugin.cppnew file+33
@@ -0,0 +1,33 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "plugin.h"
18+#include "MockQOfono.h"
19+
20+#include <QtQml>
21+
22+static QObject *mock_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
23+{
24+ Q_UNUSED(engine)
25+ Q_UNUSED(scriptEngine)
26+ return new MockQOfono();
27+}
28+
29+void BackendPlugin::registerTypes(const char *uri)
30+{
31+ Q_ASSERT(uri == QLatin1String("MeeGo.QOfono"));
32+ qmlRegisterSingletonType<MockQOfono>(uri, 0, 2, "MockQOfono", mock_provider); // just for mock
33+}
tests/mocks/MeeGo/QOfono/plugin.hnew file+31
@@ -0,0 +1,31 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef MOCK_QOFONO_PLUGIN_H
18+#define MOCK_QOFONO_PLUGIN_H
19+
20+#include <QQmlExtensionPlugin>
21+
22+class BackendPlugin : public QQmlExtensionPlugin
23+{
24+ Q_OBJECT
25+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
26+
27+public:
28+ void registerTypes(const char *uri);
29+};
30+
31+#endif // MOCK_QOFONO_PLUGIN_H
tests/mocks/MeeGo/QOfono/qmldirnew file+4
@@ -0,0 +1,4 @@
1+module MeeGo.QOfono
2+plugin MockQOfono
3+OfonoManager 0.2 MockOfonoManager.qml
4+OfonoSimManager 0.2 MockOfonoSimManager.qml
tests/mocks/QMenuModel/CMakeLists.txt+1
@@ -5,6 +5,7 @@ include_directories(
55
66set(QMenuModelQml_SOURCES
77 actionstateparser.cpp
8+ dbus-enums.h
89 plugin.cpp
910 unitymenumodel.cpp
1011)
tests/mocks/QMenuModel/QDBusActionGroup.qml+12
@@ -21,6 +21,7 @@ import QtQuick 2.0
2121import Ubuntu.Settings.Menus 0.1 as Menus
2222
2323QtObject {
24+ id: actionGroup
2425 property int busType
2526 property string busName
2627 property string objectPath
@@ -78,6 +79,17 @@ QtObject {
7879 'percent': 0.0
7980 }
8081 }
82+ case "gps-detection-enabled":
83+ case "location-detection-enabled":
84+ return Qt.createQmlObject("
85+import QtQuick 2.3
86+QtObject {
87+ property bool valid: true
88+ property bool state: false
89+ function activate() {
90+ state = !state;
91+ }
92+}", actionGroup);
8193 default:
8294 break;
8395 }
tests/mocks/QMenuModel/dbus-enums.hnew file+52
@@ -0,0 +1,52 @@
1+/*
2+ * Copyright 2012 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Olivier Tilloy <olivier.tilloy@canonical.com>
18+ */
19+
20+#ifndef __DBUS_ENUMS__
21+#define __DBUS_ENUMS__
22+
23+#include <QObject>
24+
25+// This class acts as a namespace only, with the addition that its enums
26+// are registered to be exposed on the QML side.
27+class DBusEnums : public QObject
28+{
29+ Q_OBJECT
30+
31+ Q_ENUMS(BusType)
32+ Q_ENUMS(ConnectionStatus)
33+
34+public:
35+ enum BusType {
36+ None = 0,
37+ SessionBus,
38+ SystemBus,
39+ LastBusType
40+ };
41+
42+ enum ConnectionStatus {
43+ Disconnected = 0,
44+ Connecting,
45+ Connected
46+ };
47+
48+private:
49+ DBusEnums() {}
50+};
51+
52+#endif // __DBUS_ENUMS__
tests/mocks/QMenuModel/plugin.cpp+3
@@ -19,12 +19,15 @@
1919#include "plugin.h"
2020#include "unitymenumodel.h"
2121#include "actionstateparser.h"
22+#include "dbus-enums.h"
2223
2324#include <QtQml/qqml.h>
2425
2526void QMenuModelPlugin::registerTypes(const char *uri)
2627{
2728 Q_ASSERT(uri == QLatin1String("QMenuModel"));
29+ qmlRegisterUncreatableType<DBusEnums>(uri, 0, 1, "DBus",
30+ "DBus is only a namespace");
2831 qmlRegisterType<UnityMenuModel>(uri, 0, 1, "UnityMenuModel");
2932 qmlRegisterType<ActionStateParser>(uri, 0, 1, "ActionStateParser");
3033}
tests/mocks/Ubuntu/CMakeLists.txt+1
@@ -2,5 +2,6 @@ add_subdirectory(Connectivity)
22add_subdirectory(DownloadDaemonListener)
33add_subdirectory(Payments)
44add_subdirectory(SystemImage)
5+add_subdirectory(SystemSettings)
56add_subdirectory(Telephony)
67add_subdirectory(Thumbnailer)
tests/mocks/Ubuntu/SystemSettings/CMakeLists.txtnew file+2
@@ -0,0 +1,2 @@
1+add_subdirectory(LanguagePlugin)
2+add_subdirectory(SecurityPrivacy)
tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/CMakeLists.txtnew file+1
@@ -0,0 +1 @@
1+add_unity8_mock(Ubuntu.SystemSettings.LanguagePlugin 1.0 Ubuntu/SystemSettings/LanguagePlugin)
tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/MockLanguagePlugin.qmlnew file+23
@@ -0,0 +1,23 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+
19+Item {
20+ property var languageNames: ["English", "French", "Spanish"]
21+ property var languageCodes: ["en", "fr", "es"]
22+ property int currentLanguage: 0
23+}
tests/mocks/Ubuntu/SystemSettings/LanguagePlugin/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module Ubuntu.SystemSettings.LanguagePlugin
2+UbuntuLanguagePlugin 1.0 MockLanguagePlugin.qml
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/CMakeLists.txtnew file+10
@@ -0,0 +1,10 @@
1+set(MOCK_SECURITYPRIVACY_SOURCES
2+ plugin.cpp
3+ MockSecurityPrivacy.cpp
4+)
5+
6+add_library(MockSecurityPrivacy MODULE ${MOCK_SECURITYPRIVACY_SOURCES})
7+
8+qt5_use_modules(MockSecurityPrivacy Qml Quick Core)
9+
10+add_unity8_mock(Ubuntu.SystemSettings.SecurityPrivacy 1.0 Ubuntu/SystemSettings/SecurityPrivacy TARGETS MockSecurityPrivacy)
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.cppnew file+28
@@ -0,0 +1,28 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "MockSecurityPrivacy.h"
18+
19+MockSecurityPrivacy::MockSecurityPrivacy(QObject *parent)
20+ : QObject(parent)
21+{
22+}
23+
24+QString MockSecurityPrivacy::setSecurity(const QString &oldPasswd, const QString &newPasswd, SecurityType newType)
25+{
26+ Q_EMIT setSecurityCalled(oldPasswd, newPasswd, newType);
27+ return "";
28+}
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/MockSecurityPrivacy.hnew file+42
@@ -0,0 +1,42 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef MOCK_SECURITYPRIVACY_H
18+#define MOCK_SECURITYPRIVACY_H
19+
20+#include <QObject>
21+
22+class MockSecurityPrivacy : public QObject
23+{
24+ Q_OBJECT
25+ Q_ENUMS(SecurityType)
26+
27+public:
28+ enum SecurityType {
29+ Swipe,
30+ Passcode,
31+ Passphrase,
32+ };
33+
34+ MockSecurityPrivacy(QObject *parent = 0);
35+
36+ Q_INVOKABLE QString setSecurity(const QString &oldPasswd, const QString &newPasswd, SecurityType newType);
37+
38+Q_SIGNALS:
39+ void setSecurityCalled(const QString &oldPasswd, const QString &newPasswd, SecurityType newType); // only in mock
40+};
41+
42+#endif // MOCK_SECURITYPRIVACY_H
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/plugin.cppnew file+26
@@ -0,0 +1,26 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "plugin.h"
18+#include "MockSecurityPrivacy.h"
19+
20+#include <QtQml>
21+
22+void BackendPlugin::registerTypes(const char *uri)
23+{
24+ Q_ASSERT(uri == QLatin1String("Ubuntu.SystemSettings.SecurityPrivacy"));
25+ qmlRegisterType<MockSecurityPrivacy>(uri, 1, 0, "UbuntuSecurityPrivacyPanel");
26+}
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/plugin.hnew file+31
@@ -0,0 +1,31 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef MOCK_SECURITYPRIVACY_PLUGIN_H
18+#define MOCK_SECURITYPRIVACY_PLUGIN_H
19+
20+#include <QQmlExtensionPlugin>
21+
22+class BackendPlugin : public QQmlExtensionPlugin
23+{
24+ Q_OBJECT
25+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
26+
27+public:
28+ void registerTypes(const char *uri);
29+};
30+
31+#endif // MOCK_SECURITYPRIVACY_PLUGIN_H
tests/mocks/Ubuntu/SystemSettings/SecurityPrivacy/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module Ubuntu.SystemSettings.SecurityPrivacy
2+plugin MockSecurityPrivacy
tests/mocks/Unity/CMakeLists.txt+1−1
@@ -6,7 +6,7 @@ add_subdirectory(Notifications)
66add_subdirectory(DashCommunicator)
77
88pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
9−pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=4)
9+pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=5)
1010
1111include_directories(
1212 ${CMAKE_CURRENT_BINARY_DIR}
tests/mocks/Unity/fake_scopes.cpp+57−3
@@ -165,14 +165,68 @@ unity::shell::scopes::ScopeInterface* Scopes::overviewScope() const
165165 return m_scopesOverview;
166166}
167167
168−QList<Scope*> Scopes::scopes() const
168+void Scopes::setFavorite(const QString& scopeId, bool favorite)
169+{
170+ if (favorite) {
171+ for (Scope *scope : m_scopes) {
172+ // Check it's not already there
173+ Q_ASSERT(scope->id() != scopeId);
174+ }
175+ for (Scope *scope : m_allScopes) {
176+ if (scope->id() == scopeId) {
177+ const int index = rowCount();
178+ beginInsertRows(QModelIndex(), index, index);
179+ m_scopes << scope;
180+ endInsertRows();
181+ m_scopesOverview->setFavorite(scope, true);
182+ return;
183+ }
184+ }
185+ Q_ASSERT(false && "Unknown scopeId");
186+ } else {
187+ for (Scope *scope : m_scopes) {
188+ if (scope->id() == scopeId) {
189+ const int index = m_scopes.indexOf(scope);
190+ beginRemoveRows(QModelIndex(), index, index);
191+ m_scopes.removeAt(index);
192+ endRemoveRows();
193+ m_scopesOverview->setFavorite(scope, false);
194+ return;
195+ }
196+ }
197+ Q_ASSERT(false && "Unknown scopeId");
198+ }
199+}
200+
201+void Scopes::moveFavoriteTo(const QString& scopeId, int to)
202+{
203+ int from = -1;
204+ for (int i = 0; i < m_scopes.count(); ++i) {
205+ if (m_scopes[i]->id() == scopeId) {
206+ from = i;
207+ break;
208+ }
209+ }
210+ Q_ASSERT(from != -1);
211+ beginMoveRows(QModelIndex(), from, from, QModelIndex(), to + (to > from ? 1 : 0));
212+ m_scopes.move(from, to);
213+ endMoveRows();
214+ m_scopesOverview->moveFavoriteTo(m_scopes[to], to);
215+}
216+
217+QList<Scope*> Scopes::favScopes() const
169218{
170219 return m_scopes;
171220}
172221
173−QList<Scope*> Scopes::allScopes() const
222+QList<Scope*> Scopes::nonFavScopes() const
174223{
175− return m_allScopes;
224+ QList<Scope*> res;
225+ for (Scope *scope : m_allScopes) {
226+ if (!m_scopes.contains(scope))
227+ res << scope;
228+ }
229+ return res;
176230}
177231
178232void Scopes::addScope(Scope* scope)
tests/mocks/Unity/fake_scopes.h+8−3
@@ -28,6 +28,8 @@
2828#include <QList>
2929#include <QTimer>
3030
31+class ScopesOverview;
32+
3133class Scopes : public unity::shell::scopes::ScopesInterface
3234{
3335 Q_OBJECT
@@ -53,9 +55,12 @@ public:
5355 int count() const override;
5456 unity::shell::scopes::ScopeInterface* overviewScope() const override;
5557
58+ Q_INVOKABLE void setFavorite(const QString& scopeId, bool favorite) override;
59+ Q_INVOKABLE void moveFavoriteTo(const QString& scopeId, int index) override;
60+
5661 // This is used as part of implementation of the other C++ code, not API
57− QList<Scope*> scopes() const;
58− QList<Scope*> allScopes() const;
62+ QList<Scope*> favScopes() const;
63+ QList<Scope*> nonFavScopes() const;
5964 Q_INVOKABLE Scope* getScopeFromAll(const QString& scope_id) const;
6065
6166private Q_SLOTS:
@@ -64,7 +69,7 @@ private Q_SLOTS:
6469private:
6570 QList<Scope*> m_scopes; // the favorite ones
6671 QList<Scope*> m_allScopes;
67− Scope *m_scopesOverview;
72+ ScopesOverview *m_scopesOverview;
6873 bool m_loaded;
6974 QTimer timer;
7075};
tests/mocks/Unity/fake_scopesoverview.cpp+77−11
@@ -44,8 +44,22 @@ void ScopesOverview::setSearchQuery(const QString& search_query)
4444Q_INVOKABLE void ScopesOverview::activate(QVariant const& result)
4545{
4646 Scopes *scopes = dynamic_cast<Scopes*>(parent());
47− m_openScope = scopes->getScopeFromAll(result.toString());
48− Q_EMIT openScope(m_openScope);
47+ if (scopes->getScope(result.toString())) {
48+ Q_EMIT gotoScope(result.toString());
49+ } else {
50+ m_openScope = scopes->getScopeFromAll(result.toString());
51+ Q_EMIT openScope(m_openScope);
52+ }
53+}
54+
55+void ScopesOverview::setFavorite(Scope *scope, bool favorite)
56+{
57+ m_scopesOverviewCategories->setFavorite(scope, favorite);
58+}
59+
60+void ScopesOverview::moveFavoriteTo(Scope *scope, int index)
61+{
62+ m_scopesOverviewCategories->moveFavoriteTo(scope, index);
4963}
5064
5165ScopesOverviewCategories::ScopesOverviewCategories(Scopes *scopes, QObject* parent)
@@ -69,19 +83,41 @@ bool ScopesOverviewCategories::overrideCategoryJson(QString const& /* categoryId
6983 qFatal("Using un-implemented ScopesOverviewCategories::overrideCategoryJson");
7084}
7185
72−QVariant
73−ScopesOverviewCategories::data(const QModelIndex& index, int role) const
86+void ScopesOverviewCategories::setFavorite(Scope *scope, bool favorite)
87+{
88+ if (m_resultsModels.value(0)) {
89+ if (favorite) {
90+ m_resultsModels[0]->appendScope(scope);
91+ } else {
92+ m_resultsModels[0]->removeScope(scope);
93+ }
94+ }
95+ if (m_resultsModels.value(1)) {
96+ if (favorite) {
97+ m_resultsModels[1]->removeScope(scope);
98+ } else {
99+ m_resultsModels[1]->appendScope(scope);
100+ }
101+ }
102+}
103+
104+void ScopesOverviewCategories::moveFavoriteTo(Scope *scope, int index)
105+{
106+ m_resultsModels[0]->moveScopeTo(scope, index);
107+}
108+
109+QVariant ScopesOverviewCategories::data(const QModelIndex& index, int role) const
74110{
75111 if (!index.isValid()) {
76112 return QVariant();
77113 }
78114
79− const QString categoryId = index.row() == 0 ? "favorites" : "all";
115+ const QString categoryId = index.row() == 0 ? "favorites" : "other";
80116
81− unity::shell::scopes::ResultsModelInterface *resultsModel = m_resultsModels[index.row()];
117+ ScopesOverviewResultsModel *resultsModel = m_resultsModels[index.row()];
82118 if (!resultsModel) {
83119 QObject *that = const_cast<ScopesOverviewCategories*>(this);
84− QList<Scope*> scopes = index.row() == 0 ? m_scopes->scopes() : m_scopes->allScopes();
120+ QList<Scope*> scopes = index.row() == 0 ? m_scopes->favScopes() : m_scopes->nonFavScopes();
85121 resultsModel = new ScopesOverviewResultsModel(scopes, categoryId, that);
86122 m_resultsModels[index.row()] = resultsModel;
87123 }
@@ -89,7 +125,7 @@ ScopesOverviewCategories::data(const QModelIndex& index, int role) const
89125 case RoleCategoryId:
90126 return categoryId;
91127 case RoleName:
92− return index.row() == 0 ? "Favorites" : "All";
128+ return index.row() == 0 ? "Favorites" : "Non Favorites";
93129 case RoleIcon:
94130 return QVariant();
95131 case RoleRawRendererTemplate:
@@ -157,7 +193,7 @@ ScopesOverviewSearchCategories::data(const QModelIndex& index, int role) const
157193
158194 const QString categoryId = index.row() == 0 ? "searchA" : "searchB";
159195
160− unity::shell::scopes::ResultsModelInterface *resultsModel = m_resultsModels[index.row()];
196+ ScopesOverviewResultsModel *resultsModel = m_resultsModels[index.row()];
161197 if (!resultsModel) {
162198 QObject *that = const_cast<ScopesOverviewSearchCategories*>(this);
163199 QList<Scope *> scopes;
@@ -256,8 +292,7 @@ int ScopesOverviewResultsModel::count() const
256292 return rowCount();
257293}
258294
259−QVariant
260−ScopesOverviewResultsModel::data(const QModelIndex& index, int role) const
295+QVariant ScopesOverviewResultsModel::data(const QModelIndex& index, int role) const
261296{
262297 unity::shell::scopes::ScopeInterface *scope = m_scopes[index.row()];
263298 switch (role) {
@@ -269,6 +304,8 @@ ScopesOverviewResultsModel::data(const QModelIndex& index, int role) const
269304 return scope ? scope->id() : QString("Result.%1.%2").arg(categoryId()).arg(index.row());
270305 case RoleTitle:
271306 return scope ? scope->name() : QString("Title.%1.%2").arg(categoryId()).arg(index.row());
307+ case RoleSubtitle:
308+ return scope && scope->name() == "Videos" ? "tube, movies, cinema" : QString();
272309 case RoleArt:
273310 return qmlDirectory() + "graphics/applicationIcons/dash.png";
274311 case RoleMascot:
@@ -281,3 +318,32 @@ ScopesOverviewResultsModel::data(const QModelIndex& index, int role) const
281318 return QVariant();
282319 }
283320}
321+
322+void ScopesOverviewResultsModel::appendScope(Scope *scope)
323+{
324+ Q_ASSERT(!m_scopes.contains(scope));
325+ const int index = rowCount();
326+ beginInsertRows(QModelIndex(), index, index);
327+ m_scopes << scope;
328+ endInsertRows();
329+ Q_EMIT countChanged();
330+}
331+
332+void ScopesOverviewResultsModel::removeScope(Scope *scope)
333+{
334+ const int index = m_scopes.indexOf(scope);
335+ Q_ASSERT(index != -1);
336+ beginRemoveRows(QModelIndex(), index, index);
337+ m_scopes.removeAt(index);
338+ endRemoveRows();
339+ Q_EMIT countChanged();
340+}
341+
342+void ScopesOverviewResultsModel::moveScopeTo(Scope *scope, int to)
343+{
344+ const int from = m_scopes.indexOf(scope);
345+ Q_ASSERT(from!= -1);
346+ beginMoveRows(QModelIndex(), from, from, QModelIndex(), to + (to > from ? 1 : 0));
347+ m_scopes.move(from, to);
348+ endMoveRows();
349+}
tests/mocks/Unity/fake_scopesoverview.h+18−3
@@ -21,6 +21,8 @@
2121#include <unity/shell/scopes/ResultsModelInterface.h>
2222
2323class Scopes;
24+class ScopesOverviewCategories;
25+class ScopesOverviewResultsModel;
2426
2527class ScopesOverview : public Scope
2628{
@@ -32,8 +34,12 @@ public:
3234 void setSearchQuery(const QString& search_query) override;
3335 Q_INVOKABLE void activate(QVariant const& result) override;
3436
37+ // This is implementation detail
38+ void setFavorite(Scope *scope, bool favorite);
39+ void moveFavoriteTo(Scope *scope, int index);
40+
3541private:
36− unity::shell::scopes::CategoriesInterface *m_scopesOverviewCategories;
42+ ScopesOverviewCategories *m_scopesOverviewCategories;
3743 unity::shell::scopes::CategoriesInterface *m_searchCategories;
3844};
3945
@@ -50,8 +56,12 @@ public:
5056 Q_INVOKABLE void addSpecialCategory(QString const& categoryId, QString const& name, QString const& icon, QString const& rawTemplate, QObject* countObject) override;
5157 Q_INVOKABLE bool overrideCategoryJson(QString const& categoryId, QString const& json) override;
5258
59+ // This is implementation detail
60+ void setFavorite(Scope *scope, bool favorite);
61+ void moveFavoriteTo(Scope *scope, int index);
62+
5363private:
54− mutable QHash<int, unity::shell::scopes::ResultsModelInterface*> m_resultsModels;
64+ mutable QHash<int, ScopesOverviewResultsModel*> m_resultsModels;
5565
5666 Scopes *m_scopes;
5767};
@@ -70,7 +80,7 @@ public:
7080 Q_INVOKABLE bool overrideCategoryJson(QString const& categoryId, QString const& json) override;
7181
7282private:
73− mutable QHash<int, unity::shell::scopes::ResultsModelInterface*> m_resultsModels;
83+ mutable QHash<int, ScopesOverviewResultsModel*> m_resultsModels;
7484
7585 Scopes *m_scopes;
7686};
@@ -96,6 +106,11 @@ public:
96106 Q_INVOKABLE int scopeIndex(QString const& id) const;
97107 QHash<int, QByteArray> roleNames() const override;
98108
109+ // This is implementation detail
110+ void appendScope(Scope *scope);
111+ void removeScope(Scope *scope);
112+ void moveScopeTo(Scope *scope, int index);
113+
99114private:
100115 QList<Scope *> m_scopes;
101116 QString m_categoryId;
tests/mocks/Wizard/CMakeLists.txtnew file+12
@@ -0,0 +1,12 @@
1+include_directories(
2+ ${CMAKE_SOURCE_DIR}/plugins/Wizard
3+)
4+
5+add_library(MockWizard-qml MODULE
6+ mockplugin.cpp
7+ MockSystem.cpp
8+ ${CMAKE_SOURCE_DIR}/plugins/Wizard/PageList.cpp
9+)
10+
11+qt5_use_modules(MockWizard-qml Qml)
12+add_unity8_mock(Wizard 0.1 Wizard TARGETS MockWizard-qml)
tests/mocks/Wizard/MockSystem.cppnew file+39
@@ -0,0 +1,39 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "MockSystem.h"
18+
19+MockSystem::MockSystem()
20+ : QObject(),
21+ m_wizardEnabled(false)
22+{
23+}
24+
25+bool MockSystem::wizardEnabled() const
26+{
27+ return m_wizardEnabled;
28+}
29+
30+void MockSystem::setWizardEnabled(bool enabled)
31+{
32+ m_wizardEnabled = enabled;
33+ Q_EMIT wizardEnabledChanged();
34+}
35+
36+void MockSystem::updateSessionLanguage(const QString &locale)
37+{
38+ Q_EMIT updateSessionLanguageCalled(locale);
39+}
tests/mocks/Wizard/MockSystem.hnew file+47
@@ -0,0 +1,47 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef WIZARD_MOCK_SYSTEM_H
18+#define WIZARD_MOCK_SYSTEM_H
19+
20+#include <QObject>
21+#include <QString>
22+
23+class MockSystem : public QObject
24+{
25+ Q_OBJECT
26+ Q_PROPERTY(bool wizardEnabled READ wizardEnabled WRITE setWizardEnabled NOTIFY wizardEnabledChanged)
27+
28+public:
29+ MockSystem();
30+
31+ bool wizardEnabled() const;
32+ void setWizardEnabled(bool enabled);
33+
34+public Q_SLOTS:
35+ void updateSessionLanguage(const QString &locale);
36+
37+Q_SIGNALS:
38+ void wizardEnabledChanged();
39+ void updateSessionLanguageCalled(const QString &locale); // only in mock
40+
41+private:
42+ Q_DISABLE_COPY(MockSystem)
43+
44+ bool m_wizardEnabled;
45+};
46+
47+#endif
tests/mocks/Wizard/Wizard.qmltypesnew file+36
@@ -0,0 +1,36 @@
1+import QtQuick.tooling 1.1
2+
3+// This file describes the plugin-supplied types contained in the library.
4+// It is used for QML tooling purposes only.
5+//
6+// This file was auto-generated by:
7+// 'qmlplugindump -notrelocatable Wizard 0.1 tests/mocks'
8+
9+Module {
10+ Component {
11+ name: "MockSystem"
12+ prototype: "QObject"
13+ exports: ["Wizard/System 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Property { name: "wizardEnabled"; type: "bool" }
18+ Method {
19+ name: "updateSessionLanguage"
20+ Parameter { name: "locale"; type: "string" }
21+ }
22+ }
23+ Component {
24+ name: "PageList"
25+ prototype: "QObject"
26+ exports: ["Wizard/PageList 0.1"]
27+ isCreatable: false
28+ isSingleton: true
29+ exportMetaObjectRevisions: [0]
30+ Property { name: "index"; type: "int"; isReadonly: true }
31+ Property { name: "numPages"; type: "int"; isReadonly: true }
32+ Method { name: "prev"; type: "string" }
33+ Method { name: "next"; type: "string" }
34+ }
35+}
36+
tests/mocks/Wizard/mockplugin.cppnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "mockplugin.h"
18+#include "MockSystem.h"
19+#include "PageList.h"
20+
21+#include <QtQml/qqml.h>
22+
23+static QObject *system_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
24+{
25+ Q_UNUSED(engine)
26+ Q_UNUSED(scriptEngine)
27+ return new MockSystem();
28+}
29+
30+void MockWizardPlugin::registerTypes(const char *uri)
31+{
32+ Q_ASSERT(uri == QLatin1String("Wizard"));
33+ qmlRegisterType<PageList>(uri, 0, 1, "PageList");
34+ qmlRegisterSingletonType<MockSystem>(uri, 0, 1, "System", system_provider);
35+}
tests/mocks/Wizard/mockplugin.hnew file+32
@@ -0,0 +1,32 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#ifndef MOCK_WIZARD_PLUGIN_H
18+#define MOCK_WIZARD_PLUGIN_H
19+
20+#include <QtQml/QQmlEngine>
21+#include <QtQml/QQmlExtensionPlugin>
22+
23+class MockWizardPlugin : public QQmlExtensionPlugin
24+{
25+ Q_OBJECT
26+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
27+
28+public:
29+ void registerTypes(const char *uri);
30+};
31+
32+#endif
tests/mocks/Wizard/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module Wizard
2+plugin MockWizard-qml
3+typeinfo Wizard.qmltypes
tests/plugins/CMakeLists.txt+1
@@ -4,3 +4,4 @@ add_subdirectory(Dash)
44add_subdirectory(Ubuntu)
55add_subdirectory(Unity)
66add_subdirectory(Utils)
7+add_subdirectory(Wizard)
tests/plugins/Dash/CMakeLists.txt+1
@@ -80,3 +80,4 @@ set(qmltest_DEFAULT_PROPERTIES ENVIRONMENT "LC_ALL=C")
8080add_qml_test(. ScopeStyle IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
8181add_qml_test(. ListViewWithPageHeaderQML IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
8282add_qml_test(. CardAttributes IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
83+add_qml_test(. CroppedImageMinimumSourceSize IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
tests/plugins/Dash/cardcreator/1.res+4−4
@@ -46,16 +46,16 @@ Item {
4646 height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
4747 }
4848 }
49− image: CroppedImageMinimumSourceSize {
49+ CroppedImageMinimumSourceSize {
50+ id: artImage;
5051 objectName: "artImage";
51− property bool doLoadSource: !NetworkingStatus.limitedBandwith;
52− source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["art"] || ""; }
53− cache: true;
52+ source: cardData && cardData["art"] || "";
5453 asynchronous: root.asynchronous;
5554 visible: false;
5655 width: root.width;
5756 height: width / artShape.aspect;
5857 }
58+ image: artImage.image;
5959 }
6060 }
6161 }
tests/plugins/Dash/cardcreator/2.res+2−3
@@ -68,13 +68,12 @@ CroppedImageMinimumSourceSize {
6868 id: mascotImage;
6969 objectName: "mascotImage";
7070 anchors { verticalCenter: parent.verticalCenter; }
71− property bool doLoadSource: !NetworkingStatus.limitedBandwith;
72− source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["mascot"] || ""; }
71+ source: cardData && cardData["mascot"] || "";
7372 width: units.gu(6);
7473 height: units.gu(5.625);
7574 horizontalAlignment: Image.AlignHCenter;
7675 verticalAlignment: Image.AlignVCenter;
77− visible: showHeader && resized;
76+ visible: showHeader;
7877 }
7978,Item {
8079 id: headerTitleContainer;
tests/plugins/Dash/cardcreator/3.res+10−10
@@ -46,16 +46,16 @@ Item {
4646 height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
4747 }
4848 }
49− image: CroppedImageMinimumSourceSize {
50− objectName: "artImage";
51− property bool doLoadSource: !NetworkingStatus.limitedBandwith;
52− source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["art"] || ""; }
53− cache: true;
54− asynchronous: root.asynchronous;
55− visible: false;
56− width: root.width;
57− height: width / artShape.aspect;
58− }
49+ CroppedImageMinimumSourceSize {
50+ id: artImage;
51+ objectName: "artImage";
52+ source: cardData && cardData["art"] || "";
53+ asynchronous: root.asynchronous;
54+ visible: false;
55+ width: root.width;
56+ height: width / artShape.aspect;
57+ }
58+ image: artImage.image;
5959 }
6060 }
6161 }
tests/plugins/Dash/cardcreator/4.res+3−4
@@ -35,11 +35,11 @@ Loader {
3535 id: mascotShapeLoader;
3636 objectName: "mascotShapeLoader";
3737 asynchronous: root.asynchronous;
38− active: mascotImage.status === Image.Ready;
38+ active: mascotImage.image.status === Image.Ready;
3939 visible: showHeader && active && status == Loader.Ready;
4040 width: units.gu(6);
4141 height: units.gu(5.625);
42− sourceComponent: UbuntuShape { image: mascotImage }
42+ sourceComponent: UbuntuShape { image: mascotImage.image }
4343 anchors { verticalCenter: parent.verticalCenter; }
4444 }
4545
@@ -47,8 +47,7 @@ Loader {
4747 id: mascotImage;
4848 objectName: "mascotImage";
4949 anchors { verticalCenter: parent.verticalCenter; }
50− property bool doLoadSource: !NetworkingStatus.limitedBandwith;
51− source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["mascot"] || ""; }
50+ source: cardData && cardData["mascot"] || "";
5251 width: units.gu(6);
5352 height: units.gu(5.625);
5453 horizontalAlignment: Image.AlignHCenter;
tests/plugins/Dash/cardcreator/5.res+10−10
@@ -46,16 +46,16 @@ Item {
4646 height = Qt.binding(function() { return image.status !== Image.Ready ? 0 : image.height });
4747 }
4848 }
49− image: CroppedImageMinimumSourceSize {
50− objectName: "artImage";
51− property bool doLoadSource: !NetworkingStatus.limitedBandwith;
52− source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["art"] || ""; }
53− cache: true;
54− asynchronous: root.asynchronous;
55− visible: false;
56− width: root.width;
57− height: width / artShape.aspect;
58− }
49+ CroppedImageMinimumSourceSize {
50+ id: artImage;
51+ objectName: "artImage";
52+ source: cardData && cardData["art"] || "";
53+ asynchronous: root.asynchronous;
54+ visible: false;
55+ width: root.width;
56+ height: width / artShape.aspect;
57+ }
58+ image: artImage.image;
5959 }
6060 }
6161 }
tests/plugins/Dash/cardcreator/7.res+2−3
@@ -68,13 +68,12 @@ CroppedImageMinimumSourceSize {
6868 id: mascotImage;
6969 objectName: "mascotImage";
7070 anchors { verticalCenter: parent.verticalCenter; }
71− property bool doLoadSource: !NetworkingStatus.limitedBandwith;
72− source: { if (root.visible) doLoadSource = true; return doLoadSource && cardData && cardData["mascot"] || ""; }
71+ source: cardData && cardData["mascot"] || "";
7372 width: units.gu(6);
7473 height: units.gu(5.625);
7574 horizontalAlignment: Image.AlignHCenter;
7675 verticalAlignment: Image.AlignVCenter;
77− visible: showHeader && resized;
76+ visible: showHeader;
7877 }
7978
8079,Item {
tests/plugins/Dash/tst_CroppedImageMinimumSourceSize.qmlnew file+56
@@ -0,0 +1,56 @@
1+/*
2+ * Copyright (C) 2014 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.3
18+import QtTest 1.0
19+import Ubuntu.Components 1.1
20+import Dash 0.1
21+
22+Rectangle {
23+ width: 500
24+ height: 300
25+
26+ color: "red"
27+
28+ CroppedImageMinimumSourceSize {
29+ id: cimss
30+ x: 100
31+ y: 100
32+ width: 100
33+ height: 100
34+ source: Qt.resolvedUrl("../../qmltests/Dash/artwork/music-player-design.png")
35+ asynchronous: true
36+ }
37+
38+ TestCase {
39+ id: testCase
40+ name: "ScopeStyle"
41+ when: windowShown
42+
43+ function test_croppedSource() {
44+ tryCompare(cimss.image.sourceSize, "width", 100);
45+ tryCompare(cimss.image.sourceSize, "height", 0);
46+
47+ cimss.width = 40;
48+ tryCompare(cimss.image.sourceSize, "width", 0);
49+ tryCompare(cimss.image.sourceSize, "height", 100);
50+
51+ cimss.width = 100;
52+ tryCompare(cimss.image.sourceSize, "width", 100);
53+ tryCompare(cimss.image.sourceSize, "height", 0);
54+ }
55+ }
56+}
tests/plugins/Dash/tst_ScopeStyle.qml+1−1
@@ -174,7 +174,7 @@ Rectangle {
174174
175175 function test_previewButtonColor_data() {
176176 return [
177− { tag: "default", index: 0, previewButtonColor: Theme.palette.selected.foreground },
177+ { tag: "default", index: 0, previewButtonColor: UbuntuColors.orange },
178178 { tag: "red", index: 1, previewButtonColor: "red" },
179179 ];
180180 }
tests/plugins/Wizard/CMakeLists.txtnew file+18
@@ -0,0 +1,18 @@
1+include_directories(
2+ ${CMAKE_CURRENT_BINARY_DIR}
3+ ${CMAKE_SOURCE_DIR}/plugins/Wizard
4+)
5+
6+add_executable(tst-wizard-pagelist
7+ tst_pagelist.cpp
8+ ${CMAKE_SOURCE_DIR}/plugins/Wizard/PageList.cpp
9+)
10+qt5_use_modules(tst-wizard-pagelist Core Qml Test)
11+add_test(NAME wizardpagelisttest COMMAND env UNITY_TEST_ENV=1 ${CMAKE_CURRENT_BINARY_DIR}/tst-wizard-pagelist)
12+
13+add_executable(tst-wizard-system
14+ tst_system.cpp
15+ ${CMAKE_SOURCE_DIR}/plugins/Wizard/System.cpp
16+)
17+qt5_use_modules(tst-wizard-system Core DBus Qml Test)
18+add_test(NAME wizardsystemtest COMMAND ${CMAKE_CURRENT_BINARY_DIR}/tst-wizard-system)
tests/plugins/Wizard/tst_pagelist.cppnew file+154
@@ -0,0 +1,154 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "PageList.h"
18+
19+#include <QDebug>
20+#include <QObject>
21+#include <QTemporaryDir>
22+#include <QTest>
23+
24+#define PAGES_PATH "Wizard/Pages"
25+
26+class PageListTest: public QObject
27+{
28+ Q_OBJECT
29+
30+public:
31+ PageListTest() {};
32+
33+private Q_SLOTS:
34+ void testCollect();
35+ void testIterate();
36+ void testIgnoreNonNumbered();
37+ void testIgnoreNonQml();
38+ void testIgnoreDuplicates();
39+ void testDisabled();
40+
41+private:
42+ void fillRoot(const QTemporaryDir &root);
43+ void makeFile(const QTemporaryDir &root, const QString &dir, const QString &filename);
44+};
45+
46+void PageListTest::fillRoot(const QTemporaryDir &root)
47+{
48+ QVERIFY(root.isValid());
49+ QDir rootDir = root.path();
50+ QVERIFY(rootDir.mkpath(QString("a/") + PAGES_PATH));
51+ QVERIFY(rootDir.mkpath(QString("b/") + PAGES_PATH));
52+ QVERIFY(rootDir.mkpath(QString("c/") + PAGES_PATH));
53+ qputenv("XDG_DATA_DIRS", QString(rootDir.path() + "/a:" +
54+ rootDir.path() + "/b:" +
55+ rootDir.path() + "/c").toLatin1());
56+}
57+
58+void PageListTest::makeFile(const QTemporaryDir &root, const QString &dir, const QString &filename)
59+{
60+ QFile file(root.path() + "/" + dir + "/" + PAGES_PATH + "/" + filename);
61+ QVERIFY(file.open(QIODevice::WriteOnly));
62+ file.close();
63+ QVERIFY(file.exists());
64+}
65+
66+void PageListTest::testCollect()
67+{
68+ QTemporaryDir root;
69+ fillRoot(root);
70+ makeFile(root, "a", "3.qml");
71+ makeFile(root, "b", "1.qml");
72+ makeFile(root, "c", "2.qml");
73+
74+ PageList pageList;
75+ QCOMPARE(pageList.entries(), QStringList() << "1.qml" << "2.qml" << "3.qml");
76+ QCOMPARE(pageList.paths(), QStringList() << root.path() + "/b/" + PAGES_PATH + "/1.qml"
77+ << root.path() + "/c/" + PAGES_PATH + "/2.qml"
78+ << root.path() + "/a/" + PAGES_PATH + "/3.qml");
79+}
80+
81+void PageListTest::testIterate()
82+{
83+ QTemporaryDir root;
84+ fillRoot(root);
85+ makeFile(root, "a", "1.qml");
86+ makeFile(root, "a", "2.qml");
87+ makeFile(root, "a", "3.qml");
88+
89+ PageList pageList;
90+ QCOMPARE(pageList.index(), -1);
91+ QCOMPARE(pageList.next(), root.path() + "/a/" + PAGES_PATH + "/1.qml");
92+ QCOMPARE(pageList.prev(), QString());
93+ QCOMPARE(pageList.next(), root.path() + "/a/" + PAGES_PATH + "/2.qml");
94+ QCOMPARE(pageList.prev(), root.path() + "/a/" + PAGES_PATH + "/1.qml");
95+ QCOMPARE(pageList.index(), 0);
96+ QCOMPARE(pageList.next(), root.path() + "/a/" + PAGES_PATH + "/2.qml");
97+ QCOMPARE(pageList.next(), root.path() + "/a/" + PAGES_PATH + "/3.qml");
98+ QCOMPARE(pageList.index(), 2);
99+ QCOMPARE(pageList.next(), QString());
100+ QCOMPARE(pageList.index(), 2);
101+}
102+
103+void PageListTest::testIgnoreNonNumbered()
104+{
105+ QTemporaryDir root;
106+ fillRoot(root);
107+ makeFile(root, "a", "1.qml");
108+ makeFile(root, "a", "nope.qml");
109+
110+ PageList pageList;
111+ QCOMPARE(pageList.entries(), QStringList() << "1.qml");
112+}
113+
114+void PageListTest::testIgnoreNonQml()
115+{
116+ QTemporaryDir root;
117+ fillRoot(root);
118+ makeFile(root, "a", "1.qml");
119+ makeFile(root, "a", "2");
120+ makeFile(root, "a", "2.txt");
121+
122+ PageList pageList;
123+ QCOMPARE(pageList.entries(), QStringList() << "1.qml");
124+}
125+
126+void PageListTest::testIgnoreDuplicates()
127+{
128+ QTemporaryDir root;
129+ fillRoot(root);
130+ makeFile(root, "a", "1.qml");
131+ makeFile(root, "b", "1.qml");
132+
133+ PageList pageList;
134+ QCOMPARE(pageList.paths(), QStringList() << root.path() + "/a/" + PAGES_PATH + "/1.qml");
135+}
136+
137+void PageListTest::testDisabled()
138+{
139+ QTemporaryDir root;
140+ fillRoot(root);
141+ makeFile(root, "a", "1.qml.disabled"); // before the fact
142+ makeFile(root, "b", "1.qml");
143+ makeFile(root, "b", "2.qml");
144+ makeFile(root, "b", "2.qml.disabled"); // same dir
145+ makeFile(root, "b", "3.qml");
146+ makeFile(root, "b", "4.qml"); // only survivor
147+ makeFile(root, "c", "3.qml.disabled"); // after the fact
148+
149+ PageList pageList;
150+ QCOMPARE(pageList.entries(), QStringList() << "4.qml");
151+}
152+
153+QTEST_MAIN(PageListTest)
154+#include "tst_pagelist.moc"
tests/plugins/Wizard/tst_system.cppnew file+124
@@ -0,0 +1,124 @@
1+/*
2+ * Copyright (C) 2014 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License along
14+ * with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+#include "System.h"
18+
19+#include <QDebug>
20+#include <QObject>
21+#include <QSignalSpy>
22+#include <QTemporaryDir>
23+#include <QTest>
24+
25+class SystemTest: public QObject
26+{
27+ Q_OBJECT
28+
29+public:
30+ SystemTest();
31+
32+private Q_SLOTS:
33+ void testEnable();
34+ void testDisable();
35+ void testNoticeChanges();
36+
37+private:
38+ void enable();
39+ void disable();
40+ bool isEnabled();
41+
42+ QTemporaryDir dir;
43+ QDir enableDir;
44+ QFile enableFile;
45+};
46+
47+SystemTest::SystemTest()
48+{
49+ qputenv("HOME", dir.path().toUtf8());
50+ enableDir.setPath(dir.path() + "/.config/ubuntu-system-settings");
51+ enableFile.setFileName(enableDir.filePath("wizard-has-run"));
52+}
53+
54+void SystemTest::enable()
55+{
56+ enableFile.remove();
57+ QCOMPARE(isEnabled(), true);
58+}
59+
60+void SystemTest::disable()
61+{
62+ enableDir.mkpath(".");
63+ enableFile.open(QIODevice::WriteOnly);
64+ enableFile.close();
65+ QCOMPARE(isEnabled(), false);
66+}
67+
68+bool SystemTest::isEnabled()
69+{
70+ return !enableFile.exists();
71+}
72+
73+void SystemTest::testEnable()
74+{
75+ disable();
76+
77+ System system;
78+ QVERIFY(!system.wizardEnabled());
79+
80+ system.setWizardEnabled(true);
81+ QVERIFY(system.wizardEnabled());
82+ QVERIFY(isEnabled());
83+}
84+
85+void SystemTest::testDisable()
86+{
87+ enable();
88+
89+ System system;
90+ QVERIFY(system.wizardEnabled());
91+
92+ system.setWizardEnabled(false);
93+ QVERIFY(!system.wizardEnabled());
94+ QVERIFY(!isEnabled());
95+}
96+
97+void SystemTest::testNoticeChanges()
98+{
99+ enable();
100+
101+ System system;
102+ QSignalSpy spy(&system, SIGNAL(wizardEnabledChanged()));
103+
104+ // System only guarantees its signals work correcty when using its own set
105+ // methods (i.e. it won't necessarily notice if we modify the file behind
106+ // the scenes). This is because watching all parent directories of the
107+ // wizard-has-run file with QFileSystemWatcher is a nightmare and waste of
108+ // resources for the corner case it is. So we'll just test the set method.
109+
110+ system.setWizardEnabled(false);
111+ QTRY_COMPARE(spy.count(), 1);
112+
113+ system.setWizardEnabled(true);
114+ QTRY_COMPARE(spy.count(), 2);
115+
116+ system.setWizardEnabled(false);
117+ QTRY_COMPARE(spy.count(), 3);
118+
119+ system.setWizardEnabled(true);
120+ QTRY_COMPARE(spy.count(), 4);
121+}
122+
123+QTEST_MAIN(SystemTest)
124+#include "tst_system.moc"
tests/qmltests/CMakeLists.txt+1
@@ -87,3 +87,4 @@ add_qml_test(Stages SpreadDelegate ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_D
8787add_qml_test(Stages SurfaceContainer ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
8888add_qml_test(Stages SessionContainer ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
8989add_qml_test(Stages Splash)
90+add_qml_test(Wizard Wizard)
tests/qmltests/Dash/tst_Card.qml−22
@@ -17,7 +17,6 @@
1717import QtQuick 2.0
1818import QtTest 1.0
1919import Ubuntu.Components 0.1
20−import Ubuntu.Connectivity 1.0
2120import Unity.Test 0.1 as UT
2221import "../../../qml/Dash"
2322import "CardHelpers.js" as Helpers
@@ -221,7 +220,6 @@ Rectangle {
221220
222221 function init() {
223222 loader.visible = true;
224− NetworkingStatus.limitedBandwith = false;
225223 }
226224
227225 function cleanup() {
@@ -585,25 +583,5 @@ Rectangle {
585583 verify((card.width - titleToCard.x - titleToCard.width) === units.gu(1));
586584 }
587585 }
588−
589− function test_load_images_visibility_network_data() {
590− return [
591− { tag: "Visible, network", visible: true, limitedBandwith: false },
592− { tag: "Visible, no network", visible: true, limitedBandwith: true },
593− { tag: "Not Visible, network", visible: false, limitedBandwith: false },
594− { tag: "Not Visible, no network", visible: false, limitedBandwith: true }
595− ];
596− }
597−
598− function test_load_images_visibility_network(data) {
599− loader.visible = data.visible;
600− NetworkingStatus.limitedBandwith = data.limitedBandwith;
601−
602− selector.selectedIndex = 0;
603− waitForRendering(selector);
604− waitForRendering(card);
605−
606− verify(data.visible || !data.limitedBandwith || artImage.source == "");
607− }
608586 }
609587}
tests/qmltests/Dash/tst_Dash.qml+83−137
@@ -79,173 +79,108 @@ Item {
7979 return get_scope_data()
8080 }
8181
82− function test_dash_overview_show_select_same_favorite() {
83− // Show the overview
84− touchFlick(dash, dash.width / 2, dash.height - 1, dash.width / 2, dash.height - units.gu(18));
85− var overviewController = findInvisibleChild(dash, "overviewController");
86− tryCompare(overviewController, "progress", 1);
87−
88− // Make sure tab is where it should
89− var scopesOverview = findChild(dash, "scopesOverview");
90− compare(scopesOverview.currentTab, 0);
82+ function test_manage_dash_select_same_favorite() {
83+ // Show the manage dash
84+ touchFlick(dash, dash.width / 2, dash.height - 1, dash.width / 2, units.gu(2));
85+ var bottomEdgeController = findInvisibleChild(dash, "bottomEdgeController");
86+ tryCompare(bottomEdgeController, "progress", 1);
9187
9288 // Make sure stuff is loaded
93− var scopesOverviewFavoritesRepeater = findChild(dash, "scopesOverviewFavoritesRepeater");
94− tryCompare(scopesOverviewFavoritesRepeater, "count", 6);
95− tryCompareFunction(function() { return scopesOverviewFavoritesRepeater.itemAt(0).item != null; }, true);
96− waitForRendering(scopesOverviewFavoritesRepeater.itemAt(0).item);
89+ var favScopesListCategory = findChild(dash, "scopesListCategoryfavorites");
90+ var favScopesListCategoryList = findChild(favScopesListCategory, "scopesListCategoryInnerList");
91+ tryCompare(favScopesListCategoryList, "currentIndex", 0);
9792
9893 // Click in first item
99− mouseClick(scopesOverviewFavoritesRepeater.itemAt(0).item, 0, 0);
94+ mouseClick(favScopesListCategoryList.currentItem, 0, 0);
10095
10196 // Make sure animation went back
102− tryCompare(overviewController, "progress", 0);
97+ tryCompare(bottomEdgeController, "progress", 0);
10398
10499 var dashContentList = findChild(dash, "dashContentList");
105100 compare(dashContentList.currentIndex, 0);
106101 }
107102
108− function test_dash_overview_show_select_different_favorite() {
109− // Show the overview
110− touchFlick(dash, dash.width / 2, dash.height - 1, dash.width / 2, dash.height - units.gu(18));
111− var overviewController = findInvisibleChild(dash, "overviewController");
112− tryCompare(overviewController, "progress", 1);
113−
114− // Make sure tab is where it should
115− var scopesOverview = findChild(dash, "scopesOverview");
116− compare(scopesOverview.currentTab, 0);
103+ function test_manage_dash_select_different_favorite() {
104+ // Show the manage dash
105+ touchFlick(dash, dash.width / 2, dash.height - 1, dash.width / 2, units.gu(2));
106+ var bottomEdgeController = findInvisibleChild(dash, "bottomEdgeController");
107+ tryCompare(bottomEdgeController, "progress", 1);
117108
118109 // Make sure stuff is loaded
119− var scopesOverviewFavoritesRepeater = findChild(dash, "scopesOverviewFavoritesRepeater");
120− tryCompare(scopesOverviewFavoritesRepeater, "count", 6);
121− tryCompareFunction(function() { return scopesOverviewFavoritesRepeater.itemAt(0).item != null; }, true);
122− waitForRendering(scopesOverviewFavoritesRepeater.itemAt(1).item);
110+ var favScopesListCategory = findChild(dash, "scopesListCategoryfavorites");
111+ var favScopesListCategoryList = findChild(favScopesListCategory, "scopesListCategoryInnerList");
112+ tryCompare(favScopesListCategoryList, "currentIndex", 0);
123113
124− // Click in first item
125− mouseClick(scopesOverviewFavoritesRepeater.itemAt(1).item, 0, 0);
114+ // Click in second item
115+ favScopesListCategoryList.currentIndex = 1;
116+ mouseClick(favScopesListCategoryList.currentItem, 0, 0);
126117
127118 // Make sure animation went back
128− tryCompare(overviewController, "progress", 0);
119+ tryCompare(bottomEdgeController, "progress", 0);
129120 var dashContentList = findChild(dash, "dashContentList");
130121 compare(dashContentList.currentIndex, 1);
131122 }
132123
133− function test_dash_overview_all_temp_scope_done_from_all() {
134− // Show the overview
135− touchFlick(dash, dash.width / 2, dash.height - 1, dash.width / 2, dash.height - units.gu(18));
136− var overviewController = findInvisibleChild(dash, "overviewController");
137− tryCompare(overviewController, "progress", 1);
138−
139− // Make sure tab is where it should
140− var scopesOverview = findChild(dash, "scopesOverview");
141− compare(scopesOverview.currentTab, 0);
124+ function test_manage_dash_select_non_favorite() {
125+ // Show the manage dash
126+ touchFlick(dash, dash.width / 2, dash.height - 1, dash.width / 2, units.gu(2));
127+ var bottomEdgeController = findInvisibleChild(dash, "bottomEdgeController");
128+ tryCompare(bottomEdgeController, "progress", 1);
142129
143130 // Make sure stuff is loaded
144− var scopesOverviewFavoritesRepeater = findChild(dash, "scopesOverviewFavoritesRepeater");
145− tryCompare(scopesOverviewFavoritesRepeater, "count", 6);
146− tryCompareFunction(function() { return scopesOverviewFavoritesRepeater.itemAt(0).item != null; }, true);
147− waitForRendering(scopesOverviewFavoritesRepeater.itemAt(1).item);
148−
149− // Click on the all tab
150− var scopesOverviewAllTabButton = findChild(dash, "scopesOverviewAllTabButton");
151− mouseClick(scopesOverviewAllTabButton, 0, 0);
152−
153− // Wait for all tab to be enabled (animation finish)
154− var scopesOverviewAllView = findChild(dash, "scopesOverviewRepeaterChild1");
155− tryCompare(scopesOverviewAllView, "enabled", true);
156−
157− // Click in the middle of the black bar (nothing happens)
158− var bottomBar = findChild(scopesOverview, "bottomBar");
159− mouseClick(bottomBar, bottomBar.width / 2, bottomBar.height / 2);
160− // Check temp scope is not there
161− var scopesOverviewTempScopeItem = findChild(dash, "scopesOverviewTempScopeItem");
162− expectFailContinue("", "Clicking in the middle of bottom bar should not open a temp scope");
163− tryCompareFunction( function() { return scopesOverviewTempScopeItem.scope != null; }, true);
164−
165− // Click on a temp scope
166− var tempScopeCard = findChild(scopesOverviewAllView, "delegate1");
167− mouseClick(tempScopeCard, 0, 0);
131+ var nonfavScopesListCategory = findChild(dash, "scopesListCategoryother");
132+ var nonfavScopesListCategoryList = findChild(nonfavScopesListCategory, "scopesListCategoryInnerList");
133+ tryCompare(nonfavScopesListCategoryList, "currentIndex", 0);
168134
169− // Check the bottom edge (overview) is disabled from temp scope
135+ // Click on a non favorite scope
136+ mouseClick(nonfavScopesListCategoryList.currentItem, 0, 0);
137+
138+ // Check the bottom edge (manage dash) is disabled from temp scope
170139 var overviewDragHandle = findChild(dash, "overviewDragHandle");
171140 compare(overviewDragHandle.enabled, false);
172141
173142 // Check temp scope is there
174− tryCompareFunction( function() { return scopesOverviewTempScopeItem.scope != null; }, true);
175− tryCompare(scopesOverviewTempScopeItem, "enabled", true);
143+ var dashTempScopeItem = findChild(dash, "dashTempScopeItem");
144+ tryCompare(dashTempScopeItem, "x", 0);
145+ tryCompare(dashTempScopeItem, "visible", true);
146+
147+ // Check the manage dash is gone
148+ tryCompare(bottomEdgeController, "progress", 0);
176149
177150 // Go back
178− var scopesOverviewTempScopeItemHeader = findChild(scopesOverviewTempScopeItem, "scopePageHeader");
179− var backButton = findChild(findChild(scopesOverviewTempScopeItemHeader, "innerPageHeader"), "backButton");
151+ var dashTempScopeItemHeader = findChild(dashTempScopeItem, "scopePageHeader");
152+ var backButton = findChild(findChild(dashTempScopeItemHeader, "innerPageHeader"), "backButton");
180153 mouseClick(backButton, 0, 0);
181154
182155 // Check temp scope is gone
183− var scopesOverviewTempScopeItem = findChild(dash, "scopesOverviewTempScopeItem");
184− tryCompareFunction( function() { return scopesOverviewTempScopeItem.scope == null; }, true);
185− tryCompare(scopesOverviewTempScopeItem, "enabled", false);
186−
187− // Press on done
188− var scopesOverviewDoneButton = findChild(scopesOverview, "scopesOverviewDoneButton");
189− mouseClick(scopesOverviewDoneButton, 0, 0);
190−
191− // Check the dash overview is gone
192− tryCompare(overviewController, "progress", 0);
156+ tryCompare(dashTempScopeItem, "x", dash.width);
157+ tryCompare(dashTempScopeItem, "visible", false);
193158
194159 // Original list is still on 0
195160 var dashContentList = findChild(dash, "dashContentList");
196161 compare(dashContentList.currentIndex, 0);
197162 }
198163
199− function test_temp_scope_dash_overview_all_search_temp_scope_favorite_from_all() {
200− // Swipe right to Apps scope
201− var dashContentList = findChild(dash, "dashContentList");
202− touchFlick(dash, dash.width - 1, units.gu(1), dash.width - units.gu(10), units.gu(1));
203− tryCompare(dashContentList, "contentX", dashContentList.width);
204− tryCompare(dashContentList, "currentIndex", 1);
205−
206− // Click on card that opens temp scope
207− var categoryListView = findChild(dashContentList.currentItem, "categoryListView");
208− var dashCategory2 = findChild(categoryListView, "dashCategory2");
209− tryCompareFunction(function() {
210− if (dashCategory2.y < 200) return true;
211− categoryListView.contentY += 100;
212− return false;
213− }, true);
214− var card2 = findChild(dashCategory2, "delegate2");
215− waitForRendering(card2);
216− mouseClick(card2, card2.width / 2, card2.height / 2);
217−
218− // Wait for temp scope to be there
219− var dashTempScopeItem = findChild(dash, "dashTempScopeItem");
220− tryCompare(dashTempScopeItem, "x", 0);
221−
222− // Show the overview
223− touchFlick(dash, dash.width / 2, dash.height - 1, dash.width / 2, dash.height - units.gu(18));
224− var overviewController = findInvisibleChild(dash, "overviewController");
225− tryCompare(overviewController, "progress", 1);
226−
227− // Make sure tab is where it should
228− var scopesOverview = findChild(dash, "scopesOverview");
229− compare(scopesOverview.currentTab, 1);
164+ function test_manage_dash_search_temp_scope() {
165+ // Show the manage dash
166+ touchFlick(dash, dash.width / 2, dash.height - 1, dash.width / 2, units.gu(2));
167+ var bottomEdgeController = findInvisibleChild(dash, "bottomEdgeController");
168+ tryCompare(bottomEdgeController, "progress", 1);
230169
231170 // Do a search
232− var scopesOverviewPageHeader = findChild(scopesOverview, "scopesOverviewPageHeader");
233− var searchButton = findChild(scopesOverviewPageHeader, "search_header_button");
171+ var scopesList = findChild(dash, "scopesList");
172+ var scopesListPageHeader = findChild(scopesList, "pageHeader");
173+ var searchButton = findChild(scopesListPageHeader, "search_header_button");
234174 mouseClick(searchButton, 0, 0);
235175
236176 // Type something
237177 keyClick(Qt.Key_H);
238178
239− // Check results grid is there and the other lists are not
240− var searchResultsViewer = findChild(scopesOverview, "searchResultsViewer");
241− var scopesOverviewRepeater = findChild(dash, "scopesOverviewRepeater");
242− tryCompare(searchResultsViewer, "opacity", 1);
243− tryCompare(scopesOverviewRepeater, "count", 0);
244−
245179 // Click on a temp scope in the search
246− var dashCategorysearchA = findChild(searchResultsViewer, "dashCategorysearchA");
180+ tryCompareFunction( function() { return findChild(scopesList, "scopesListCategorysearchA") != null; }, true);
181+ var dashCategorysearchA = findChild(scopesList, "scopesListCategorysearchA");
182+ tryCompareFunction( function() { return findChild(dashCategorysearchA, "delegate2") != null; }, true);
247183 var cardTempScope = findChild(dashCategorysearchA, "delegate2");
248− verify(cardTempScope, "Could not find delegate2");
249184
250185 waitForRendering(cardTempScope);
251186 mouseClick(cardTempScope, cardTempScope.width / 2, cardTempScope.height / 2);
@@ -255,29 +190,24 @@ Item {
255190 compare(overviewDragHandle.enabled, false);
256191
257192 // Check temp scope is there
258− var scopesOverviewTempScopeItem = findChild(dash, "scopesOverviewTempScopeItem");
259− tryCompareFunction( function() { return scopesOverviewTempScopeItem.scope != null; }, true);
260− tryCompare(scopesOverviewTempScopeItem, "enabled", true);
193+ var dashTempScopeItem = findChild(dash, "dashTempScopeItem");
194+ tryCompare(dashTempScopeItem, "x", 0);
195+ tryCompare(dashTempScopeItem, "visible", true);
196+
197+ // Check the manage dash is gone
198+ tryCompare(bottomEdgeController, "progress", 0);
261199
262200 // Go back
263− var scopesOverviewTempScopeItemHeader = findChild(scopesOverviewTempScopeItem, "scopePageHeader");
264− var backButton = findChild(findChild(scopesOverviewTempScopeItemHeader, "innerPageHeader"), "backButton");
201+ var dashTempScopeItemHeader = findChild(dashTempScopeItem, "scopePageHeader");
202+ var backButton = findChild(findChild(dashTempScopeItemHeader, "innerPageHeader"), "backButton");
265203 mouseClick(backButton, 0, 0);
266204
267205 // Check temp scope is gone
268− var scopesOverviewTempScopeItem = findChild(dash, "scopesOverviewTempScopeItem");
269− tryCompareFunction( function() { return scopesOverviewTempScopeItem.scope == null; }, true);
270− tryCompare(scopesOverviewTempScopeItem, "enabled", false);
206+ tryCompare(dashTempScopeItem, "x", dash.width);
207+ tryCompare(dashTempScopeItem, "visible", false);
271208
272− // Press on a favorite
273− var dashCategorysearchB = findChild(searchResultsViewer, "dashCategorysearchB");
274− var cardFavSearch = findChild(dashCategorysearchB, "delegate3");
275− mouseClick(cardFavSearch, 0, 0);
276−
277− // Check the dash overview is gone
278− tryCompare(overviewController, "progress", 0);
279−
280− // Original list went to the favorite
209+ // Original list is still on 0
210+ var dashContentList = findChild(dash, "dashContentList");
281211 compare(dashContentList.currentIndex, 0);
282212 }
283213
@@ -298,6 +228,22 @@ Item {
298228 tryCompare(dashContentList, "currentIndex", 1)
299229 }
300230
231+ function test_setCurrentScopeClosesPreview() {
232+ var dashContent = findChild(dash, "dashContent");
233+ waitForRendering(dash)
234+
235+ var delegate0 = findChild(dash, "delegate0");
236+ mouseClick(delegate0, delegate0.width / 2, delegate0.height / 2);
237+
238+ tryCompare(dashContent, "subPageShown", true)
239+ waitForRendering(dash);
240+
241+ var dashCommunicatorService = findInvisibleChild(dash, "dashCommunicatorService");
242+ dashCommunicatorService.mockSetCurrentScope(0, true, false);
243+
244+ tryCompare(dashContent, "subPageShown", false)
245+ }
246+
301247 function test_processing_indicator() {
302248 var processingIndicator = findChild(dash, "processingIndicator");
303249 verify(processingIndicator, "Can't find the processing indicator.");
tests/qmltests/Dash/tst_GenericScopeView.qml+1−1
@@ -293,6 +293,7 @@ Item {
293293 },
294294 true);
295295 var tile = findChild(findChild(genericScopeView, "dashCategory"+category), "delegate"+delegate);
296+ waitForRendering(tile);
296297 mouseClick(tile, tile.width / 2, tile.height / 2);
297298 tryCompare(testCase.subPageLoader, "open", true);
298299 tryCompare(testCase.subPageLoader, "x", 0);
@@ -573,7 +574,6 @@ Item {
573574 var innerHeader = findChild(header, "innerPageHeader");
574575 verify(innerHeader, "Could not find the inner header");
575576
576− expectFail("Apps", "Click scope should not have a favorite button");
577577 var favoriteAction = findChild(innerHeader, "favorite_header_button");
578578 verify(favoriteAction, "Could not find the favorite action.");
579579 mouseClick(favoriteAction, favoriteAction.width / 2, favoriteAction.height / 2);
tests/qmltests/Panel/tst_IndicatorsMenu.qml+3−3
@@ -174,7 +174,7 @@ IndicatorTest {
174174 // and expose the header
175175 function test_hint() {
176176 var indicatorItem = get_indicator_item(0);
177− var mappedPosition = root.mapFromItem(indicatorItem, indicatorItem.width/2, indicatorItem.height/2);
177+ var mappedPosition = indicatorsMenu.mapFromItem(indicatorItem, indicatorItem.width/2, indicatorItem.height/2);
178178
179179 touchPress(indicatorsMenu, mappedPosition.x, indicatorsMenu.minimizedPanelHeight / 2);
180180
@@ -195,7 +195,7 @@ IndicatorTest {
195195 for (var i = 0; i < root.originalModelData.length; i++) {
196196 var indicatorItem = get_indicator_item(i);
197197
198− var mappedPosition = root.mapFromItem(indicatorItem, indicatorItem.width/2, indicatorItem.height/2);
198+ var mappedPosition = indicatorsMenu.mapFromItem(indicatorItem, indicatorItem.width/2, indicatorItem.height/2);
199199
200200 touchFlick(indicatorsMenu,
201201 mappedPosition.x, mappedPosition.y,
@@ -227,7 +227,7 @@ IndicatorTest {
227227
228228 // Get the first indicator
229229 var firstItem = get_indicator_item(0);
230− var firstItemMappedPosition = root.mapFromItem(firstItem, firstItem.width/2, firstItem.height/2);
230+ var firstItemMappedPosition = indicatorsMenu.mapFromItem(firstItem, firstItem.width/2, firstItem.height/2);
231231
232232 // 1) Drag the mouse down to hint a bit
233233 touchFlick(indicatorsMenu,
tests/qmltests/Panel/tst_Panel.qml+5−10
@@ -186,11 +186,10 @@ IndicatorTest {
186186 for (var i = 0; i < root.originalModelData.length; i++) {
187187 var indicatorItem = get_indicator_item(i);
188188
189− var startXPosition = root.mapFromItem(indicatorItem, indicatorItem.width / 2, 0).x;
190− var startYPosition = root.mapFromItem(panel, 0, 0).y;
189+ var startXPosition = panel.mapFromItem(indicatorItem, indicatorItem.width / 2, 0).x;
191190
192191 touchFlick(panel,
193− startXPosition, startYPosition,
192+ startXPosition, 0,
194193 startXPosition, panel.height,
195194 true /* beginTouch */, false /* endTouch */, units.gu(5), 15);
196195
@@ -244,17 +243,13 @@ IndicatorTest {
244243 // (switches between normal and fullscreen modes are animated)
245244 tryCompareFunction(function() { return indicatorArea.y }, data.indicatorY);
246245
247− var startXPosition = root.mapFromItem(panel.indicators, panel.indicators.width / 2, 0).x;
248− var startYPosition = root.mapFromItem(panel, 0, panel.height).y;
249−
250246 panel.indicators.show();
251247 tryCompare(panel.indicators.showAnimation, "running", false);
252248 tryCompare(panel.indicators, "unitProgress", 1);
253249
254−
255250 touchFlick(panel.indicators,
256− startXPosition, startYPosition,
257− startXPosition, 0,
251+ panel.indicators.width / 2, panel.height,
252+ panel.indicators.width / 2, 0,
258253 true /* beginTouch */, false /* endTouch */, units.gu(5), 15);
259254
260255 // Indicators height should follow the drag, and therefore increase accordingly.
@@ -263,7 +258,7 @@ IndicatorTest {
263258 function() {return panel.indicators.height <= panel.height * 0.5},
264259 true);
265260
266− touchRelease(panel.indicators, startXPosition, 0);
261+ touchRelease(panel.indicators, panel.indicators.width / 2, 0);
267262
268263 tryCompare(panel.indicators.hideAnimation, "running", true);
269264 tryCompare(panel.indicators.hideAnimation, "running", false);
tests/qmltests/Stages/tst_PhoneStage.qml+8−3
@@ -128,17 +128,20 @@ Item {
128128 var startX = phoneStage.width - 2;
129129 var startY = phoneStage.height / 2;
130130 var endY = startY;
131− var endX = units.gu(2);
131+ var endX = phoneStage.width / 2;
132132
133133 touchFlick(phoneStage, startX, startY, endX, endY,
134134 true /* beginTouch */, true /* endTouch */, units.gu(10), 50);
135+
136+ tryCompare(spreadView, "phase", 2);
137+ waitForRendering(phoneStage);
135138 }
136139
137140 function test_shortFlick() {
138141 addApps(2)
139142 var startX = phoneStage.width - units.gu(1);
140143 var startY = phoneStage.height / 2;
141− var endX = phoneStage.width / 2;
144+ var endX = startX - units.gu(4);
142145 var endY = startY;
143146
144147 var activeApp = ApplicationManager.get(0);
@@ -164,7 +167,7 @@ Item {
164167 {tag: "<position2 (non-linear)", positionMarker: "positionMarker2", linear: false, offset: -1, endPhase: 0, targetPhase: 0, newFocusedIndex: 1 },
165168 {tag: ">position2", positionMarker: "positionMarker2", linear: true, offset: +1, endPhase: 1, targetPhase: 0, newFocusedIndex: 1 },
166169 {tag: "<position3", positionMarker: "positionMarker3", linear: true, offset: -1, endPhase: 1, targetPhase: 0, newFocusedIndex: 1 },
167− {tag: ">position3", positionMarker: "positionMarker3", linear: true, offset: +1, endPhase: 2, targetPhase: 2, newFocusedIndex: 2 },
170+ {tag: ">position3", positionMarker: "positionMarker3", linear: true, offset: +1, endPhase: 1, targetPhase: 2, newFocusedIndex: 2 },
168171 ];
169172 }
170173
@@ -386,6 +389,8 @@ Item {
386389 compare(dragArea0.enabled, false);
387390 compare(dragArea1.enabled, false);
388391 compare(dragArea2.enabled, false);
392+
393+ tryCompare(spreadView, "contentX", -spreadView.shift)
389394 }
390395 }
391396}
tests/qmltests/Stages/tst_SpreadDelegate.qml+10−7
@@ -110,7 +110,7 @@ Rectangle {
110110 {tag: "swipeToClose=true closeable=true -> appWindow moves away",
111111 swipeToClose: true, closeable: true },
112112
113− {tag: "swipeToClose=true closeable=alse -> appWindow bounces back",
113+ {tag: "swipeToClose=true closeable=false -> appWindow bounces back",
114114 swipeToClose: true, closeable: false },
115115
116116 {tag: "swipeToClose=false -> appWindow stays put",
@@ -126,21 +126,24 @@ Rectangle {
126126 swipeToCloseCheckbox.checked = data.swipeToClose;
127127 closeableCheckbox.checked = data.closeable;
128128
129− var dragDistance = spreadDelegateLoader.item.height / 2;
129+ var dragDistance = spreadDelegateLoader.item.height * 0.8;
130130 var touchX = spreadDelegateLoader.item.width / 2;
131− var fromY = spreadDelegateLoader.item.height / 2;
131+ var fromY = spreadDelegateLoader.item.height * 0.9;
132132 var toY = fromY - dragDistance;
133133 touchFlick(spreadDelegateLoader.item,
134134 touchX /* fromX */, fromY, touchX /* toX */, toY,
135135 true /* beginTouch */, false /* endTouch */, dragArea.minSpeedToClose * 1.1 /* speed */);
136136
137−
138137 if (data.swipeToClose) {
139138 verify(appWindowWithShadow.y < 0);
140139 var threshold = findChild(spreadDelegateLoader.item, "dragArea").threshold
141− // Verify that the delegate started moving exactly "threshold" after the finger movement
142− // and did not jump up to the finger, but lags the threshold behind
143− compare(Math.abs(Math.abs(appWindowWithShadow.y) - dragDistance), threshold);
140+ if (data.closeable) {
141+ // Verify that the delegate started moving exactly "threshold" after the finger movement
142+ // and did not jump up to the finger, but lags the threshold behind
143+ compare(Math.abs(Math.abs(appWindowWithShadow.y) - dragDistance), threshold);
144+ } else {
145+ verify(Math.abs(Math.abs(appWindowWithShadow.y) - dragDistance) > threshold);
146+ }
144147
145148 touchRelease(spreadDelegateLoader.item, touchX, toY - units.gu(1));
146149
tests/qmltests/Wizard/licenses/en_US.htmlnew file+1
@@ -0,0 +1 @@
1+en_US
tests/qmltests/Wizard/licenses/fr_CA.htmlnew file+1
@@ -0,0 +1 @@
1+fr_CA
tests/qmltests/Wizard/licenses/fr_FR.htmlnew file+1
@@ -0,0 +1 @@
1+fr_FR
tests/qmltests/Wizard/tst_Wizard.qmlnew file+479

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+3−2

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+1

This diff is too big to show here.

tests/qmltests/tst_TabletShell.qml+1

This diff is too big to show here.

tests/utils/modules/Unity/Test/UnityTestCase.qml+11−7

This diff is too big to show here.