on xenial help sign in
Merged from trunk
commitdd4acd8c22b46da5f02939b78e9d1550e941ffc8 authorFlorian Boucault <florian.boucault@canonical.com> dateWed 27 Aug 2014, 15:26 (12 years ago) parent8fd1fd62b59b8e
246 files changed+8462−4689
data/CMakeLists.txt+3 data/unity8-dash.conf+2 data/unity8-dash.url-dispatcher+6 debian/changelog+126 debian/control+5−4 debian/unity8.install+1 include/paths.h.in+9−1 plugins/AccountsService/AccountsServiceDBusAdaptor.cpp+1−1 plugins/Dash/CardAttributes.qml+7−3 plugins/Dash/CardCreator.js+9−5 plugins/Dash/ScopeStyle.qml+38−40 plugins/HudClient/hudclient.cpp+12−12 plugins/HudClient/volumepeakdetector.cpp+9−9 plugins/LightDM/Greeter.cpp+2 plugins/LightDM/Greeter.h+2−1 plugins/Powerd/Powerd.cpp+17−1 plugins/Unity/CMakeLists.txt+1 plugins/Unity/Connectivity/CMakeLists.txt+10 plugins/Unity/Connectivity/Connectivity.cpp+33 tests/mocks/Unity/Application/VirtualKeyboard.h → plugins/Unity/Connectivity/Connectivity.h+9−11 plugins/Unity/Connectivity/Connectivity.qmltypes+19 plugins/Unity/Connectivity/plugin.cpp+34 plugins/Unity/Connectivity/plugin.h+31 plugins/Unity/Connectivity/qmldir+3 plugins/Unity/Indicators/CachedUnityMenuModel.qml−60 plugins/Unity/Indicators/menucontentactivator.cpp+2−2 plugins/Unity/Indicators/menucontentactivator.h+1−1 plugins/Unity/Indicators/modelprinter.cpp+3−3 plugins/Unity/Indicators/qmldir−3 plugins/Unity/Indicators/rootactionstate.cpp+4−4 plugins/Unity/Indicators/unitymenumodelcache.cpp+22−7 plugins/Unity/Indicators/unitymenumodelcache.h+6−4 plugins/Unity/Indicators/unitymenumodelstack.cpp+4−4 plugins/Unity/Indicators/unitymenumodelstack.h+1−1 plugins/Unity/Launcher/CMakeLists.txt+1−1 plugins/Utils/Style.js+37 plugins/Utils/qlimitproxymodelqml.cpp+6−6 plugins/Utils/qmldir+1 plugins/Utils/qsortfilterproxymodelqml.cpp+7−7 plugins/Utils/timeformatter.cpp+8−8 po/am.po+49−40 po/ar.po+37−38 po/ast.po+43−38 po/az.po+99−75 po/bg.po+33−37 po/br.po+82−60 po/bs.po+33−37 po/ca.po+61−43 po/ckb.po+33−37 po/cs.po+33−37 po/da.po+43−38 po/de.po+74−52 po/el.po+61−53 po/en_AU.po+60−42 po/en_GB.po+61−43 po/eo.po+33−37 po/es.po+60−42 po/eu.po+43−38 po/fa.po+60−42 po/fi.po+61−43 po/fo.po+33−37 po/fr.po+62−44 po/gd.po+43−38 po/gl.po+64−46 po/he.po+61−56 po/hi.po+33−37 po/hr.po+33−37 po/hu.po+64−46 po/hy.po+33−37 po/id.po+33−37 po/is.po+43−38 po/it.po+61−43 po/ja.po+65−47 po/km.po+64−46 po/kn.po+33−37 po/ko.po+64−46 po/ky.po+33−37 po/lo.po+33−37 po/lt.po+37−38 po/lv.po+60−48 po/ml.po+33−37 po/mr.po+33−37 po/ms.po+33−37 po/my.po+33−37 po/nb.po+60−42 po/nl.po+60−42 po/pl.po+59−45 po/pt.po+61−44 po/pt_BR.po+65−47 po/ro.po+62−44 po/ru.po+80−58 po/shn.po+33−37 po/si.po+33−37 po/sl.po+64−46 po/sq.po+33−37 po/sr.po+33−37 po/sv.po+48−39 po/sw.po+33−37 po/ta.po+33−37 po/te.po+43−38 po/tr.po+43−38 po/ug.po+43−38 po/uk.po+60−42 po/unity8.pot+95−46 po/vi.po+33−37 po/xh.po+33−37 po/zh_CN.po+43−38 po/zh_HK.po+43−38 po/zh_TW.po+43−38 qml/Components/Background.qml+10 qml/Components/Lockscreen.qml+33−75 qml/Components/PassphraseLockscreen.qml+3−3 qml/Components/PinLockscreen.qml+151−163 qml/Components/PinPadButton.qml+31−45 qml/Dash/Dash.qml+1−1 qml/Dash/DashContent.qml+29−4 qml/Dash/DashNavigation.qml+62−159 qml/Dash/DashNavigationButton.qml+226 qml/Dash/DashNavigationList.qml+21−4 qml/Dash/GenericScopeView.qml+136−38 qml/Dash/PageHeader.qml+81−27 qml/Dash/PreviewListView.qml+13−1 qml/Dash/Previews/PreviewActionButton.qml+1−4 qml/Dash/Previews/PreviewActionCombo.qml+4−2 qml/Dash/Previews/PreviewActions.qml+6 qml/Dash/Previews/PreviewExpandable.qml+6−5 qml/Dash/Previews/PreviewPayments.qml+22−3 qml/Dash/Previews/PreviewTable.qml+80 qml/Dash/Previews/PreviewWidgetFactory.qml+2−1 qml/Dash/ScopeSettings/ScopeSetting.qml+37 qml/Dash/ScopeSettings/ScopeSettingBoolean.qml+61 qml/Dash/ScopeSettings/ScopeSettingList.qml+50 tests/mocks/Unity/Application/OSKController.qml → qml/Dash/ScopeSettings/ScopeSettingNumber.qml+4−3 qml/Dash/ScopeSettings/ScopeSettingString.qml+83 qml/Dash/ScopeSettings/ScopeSettingsWidgetFactory.qml+57 qml/Dash/ScopeSettingsPage.qml+62 qml/Dash/ScopesOverview.qml+22−1 qml/Dash/graphics/PageHeaderBaseDivider@18.png qml/Dash/graphics/PageHeaderBaseDivider@18.sci−5 qml/Dash/graphics/navigation_shadow@18.png qml/Dash/graphics/navigation_shadow_light@18.png qml/Dash/graphics/phone/screenshots/vkb_portrait.png qml/Greeter/Clock.qml+2−1 qml/Greeter/GreeterContent.qml−1 qml/Notifications/Notification.qml+4−3 qml/Notifications/NotificationMenuItemFactory.qml+9−1 qml/Notifications/Notifications.qml+5−3 tests/mocks/Unity/Indicators/CachedUnityMenuModel.qml → qml/Panel/Indicators/CachedUnityMenuModel.qml+14−5 qml/Panel/Indicators/DefaultIndicatorWidget.qml+2−1 qml/Panel/Indicators/IndicatorBase.qml+4−2 qml/Shell.qml+17−7 qml/Stages/AppSurfaceContainer.qml−141 qml/Stages/ApplicationWindow.qml+258 qml/Stages/PhoneStage.qml+16−4 qml/Stages/SpreadDelegate.qml+33−63 qml/Stages/SurfaceContainer.qml+5−11 qml/Stages/TabletStage.qml+13−3 qml/Stages/TransformedSpreadDelegate.qml+1−1 qml/Stages/graphics/dropshadow.png qml/Stages/graphics/dropshadow2gu@30.png qml/Stages/graphics/dropshadow2gu@30.sci+5 tests/autopilot/unity8/shell/emulators/dash.py+5−5 tests/autopilot/unity8/shell/tests/test_lock_screen.py+2−2 tests/mocks/GSettings.1.0/fake_gsettings.h+2−2 tests/mocks/HudClient/fake_libhud_client.cpp+9−9 tests/mocks/LightDM/demo/GreeterPrivate.cpp+63−24 tests/mocks/QMenuModel/unitymenumodel.cpp+8−9 tests/mocks/QMenuModel/unitymenumodel.h+2−2 tests/mocks/QtMultimedia/audio.cpp+1−1 tests/mocks/Unity/Application/Application.qmltypes−19 tests/mocks/Unity/Application/ApplicationDBusAdaptor.cpp+1−1 tests/mocks/Unity/Application/ApplicationImage.cpp−123 tests/mocks/Unity/Application/ApplicationImage.h−79 tests/mocks/Unity/Application/ApplicationInfo.cpp+83−14 tests/mocks/Unity/Application/ApplicationInfo.h+52−46 tests/mocks/Unity/Application/ApplicationManager.cpp+87−102 tests/mocks/Unity/Application/ApplicationManager.h+9−5 tests/mocks/Unity/Application/ApplicationScreenshotProvider.cpp+2−4 tests/mocks/Unity/Application/CMakeLists.txt+1−3 tests/mocks/Unity/Application/MirSurfaceItem.cpp+87−16 tests/mocks/Unity/Application/MirSurfaceItem.h+14−11 tests/mocks/Unity/Application/MirSurfaceItem.qml+57 tests/mocks/Unity/Application/SurfaceManager.cpp+14−3 tests/mocks/Unity/Application/SurfaceManager.h+1−2 tests/mocks/Unity/Application/VirtualKeyboard.cpp−55 tests/mocks/Unity/Application/VirtualKeyboard.qml+40 tests/mocks/Unity/Application/plugin.cpp−3 tests/mocks/Unity/Application/qmldir−3 tests/mocks/Unity/CMakeLists.txt+3 tests/mocks/Unity/Connectivity/CMakeLists.txt+10 tests/mocks/Unity/Connectivity/Connectivity.qmltypes+20 tests/mocks/Unity/Application/InputFilterArea.qml → tests/mocks/Unity/Connectivity/MockConnectivity.cpp+10−4 tests/mocks/Unity/Connectivity/MockConnectivity.h+36 tests/mocks/Unity/Connectivity/plugin.cpp+34 tests/mocks/Unity/Connectivity/plugin.h+31 tests/mocks/Unity/Connectivity/qmldir+3 tests/mocks/Unity/Indicators/CMakeLists.txt+6−1 tests/mocks/Unity/Indicators/fakeplugin.cpp+9 tests/mocks/Unity/Indicators/qmldir−1 tests/mocks/Unity/fake_navigation.cpp+6−1 tests/mocks/Unity/fake_scope.cpp+18−3 tests/mocks/Unity/fake_scope.h+1 tests/mocks/Unity/fake_scopes.h+1−1 tests/mocks/Unity/fake_settingsmodel.cpp+95 tests/mocks/Unity/fake_settingsmodel.h+54 tests/mocks/Unity/fake_unity_plugin.cpp+2 tests/plugins/Dash/cardcreator/2.res+3−3 tests/plugins/Dash/cardcreator/5.res+5−3 tests/plugins/Dash/cardcreator/6.res+4−4 tests/plugins/Dash/cardcreator/7.res+5−4 tests/plugins/Dash/tst_CardAttributes.qml+4−1 tests/plugins/Dash/tst_ScopeStyle.qml+73−68 tests/plugins/Unity/Indicators/rootactionstatetest.cpp+4−4 tests/plugins/Unity/Indicators/unitymenumodelstacktest.cpp+1−1 tests/plugins/Unity/Launcher/CMakeLists.txt+1−1 tests/plugins/Unity/Launcher/launchermodeltest.cpp−1 tests/plugins/Utils/CMakeLists.txt+5 tests/plugins/Utils/tst_UtilsStyle.qml+47 tests/qmltests/CMakeLists.txt+10 tests/qmltests/Components/tst_Background.qml+5−4 tests/qmltests/Dash/Previews/tst_PreviewActions.qml+8−8 tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+16−6 tests/qmltests/Dash/Previews/tst_PreviewPayments.qml+24 tests/qmltests/Dash/Previews/tst_PreviewTable.qml+114 tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+2−1 tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingBoolean.qml+62 tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingList.qml+84 tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingNumber.qml+98 tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingString.qml+88 tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingsWidgetFactory.qml+65 tests/qmltests/Dash/artwork/background.png tests/qmltests/Dash/tst_Card.qml+62−1 tests/qmltests/Dash/tst_Dash.qml+12−6 tests/qmltests/Dash/tst_DashContent.qml+152−48 tests/qmltests/Dash/tst_GenericScopeView.qml+102−39 tests/qmltests/Dash/tst_PageHeader.qml+3−1 tests/qmltests/Greeter/tst_Lockscreen.qml+65−46 tests/qmltests/Panel/Indicators/tst_CachedUnityMenuModel.qml+137 tests/qmltests/Stages/tst_ApplicationWindow.qml+346 tests/qmltests/Stages/tst_PhoneStage.qml+34−8 tests/qmltests/Stages/tst_SpreadDelegate.qml+167 tests/qmltests/Stages/tst_SurfaceContainer.qml+154 tests/qmltests/tst_Shell.qml+36−2 tests/qmltests/tst_ShellWithPin.qml+26−11 tests/uqmlscene/main.cpp+1−1 tests/utils/modules/Unity/Test/UnityTestCase.qml+5−2
data/CMakeLists.txt+3
@@ -8,3 +8,6 @@ install(FILES
88 ${CMAKE_CURRENT_BINARY_DIR}/${DASH_APP}.desktop
99 DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
1010 )
11+
12+# install url dispatcher files
13+install(FILES unity8-dash.url-dispatcher DESTINATION ${CMAKE_INSTALL_DATADIR}/url-dispatcher/urls)
data/unity8-dash.conf+2
@@ -10,6 +10,8 @@ kill timeout 120
1010
1111respawn
1212
13+env APP_ID=unity8-dash
14+
1315pre-start script
1416 if [ -z "$UNITY_SCOPES_LIST" ]; then
1517 # FIXME: remove once we have this in dconf
data/unity8-dash.url-dispatchernew file+6
@@ -0,0 +1,6 @@
1+[
2+ {
3+ "protocol": "scope"
4+ }
5+]
6+
debian/changelog+126
@@ -1,3 +1,129 @@
1+unity8 (8.00+14.10.20140827.2-0ubuntu1) utopic; urgency=low
2+
3+ [ Michał Sawicz ]
4+ * Implement scope header customization options
5+ * Don't ignore empty attributes in CardAttributes.qml and improve its
6+ encapsulation (LP: #1355901)
7+ * Add support for preview button color customization. Deprecate
8+ support for action icons.
9+ * Add table preview widget
10+ * Make "See Less" get stuck at the bottom of the view
11+ * Support alternative navigation in the dash.
12+ * Add scope settings UI
13+ * Add scope favoriting support
14+ * Passcode, not PIN (LP: #1361114)
15+
16+ [ Jussi Pakkanen ]
17+ * Use nullptr instead of NULL.
18+
19+ [ Albert Astals ]
20+ * Add table preview widget
21+ * Make "See Less" get stuck at the bottom of the view
22+ * Support alternative navigation in the dash.
23+ * Make the PageHeaderLabelTest pass under valgrind
24+
25+ [ Benjamin Zeller ]
26+ * Add support for scope:// url in the dash (LP: #1361349)
27+
28+ [ Marcus Tomlinson ]
29+ * Handle the openScope signal in "tempScopeItem" (ScopesOverview.qml)
30+ as is done with "scopeItem" (Dash.qml) (LP: #1356410)
31+
32+ [ Daniel d'Andrada ]
33+ * Make "See Less" get stuck at the bottom of the view
34+
35+ [ Andrea Cimitan ]
36+ * Fix right padding on overlay card
37+ * Add scope settings UI
38+
39+ [ Michael Zanetti ]
40+ * use a smaller asset for the app's dropshadow (LP: #1359157)
41+
42+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 27 Aug 2014 15:37:05 +0000
43+
44+unity8 (8.00+14.10.20140825.3-0ubuntu1) utopic; urgency=low
45+
46+ [ Daniel d'Andrada ]
47+ * SpreadDelegate - properly transition between splash screen, surface
48+ and screenshot
49+
50+ [ Michał Sawicz ]
51+ * Rename Ubuntu.Connectivity to Unity.Connectivity to avoid name clash
52+
53+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 25 Aug 2014 13:10:57 +0000
54+
55+unity8 (8.00+14.10.20140822-0ubuntu1) utopic; urgency=low
56+
57+ [ Albert Astals ]
58+ * More stable dash overview tests
59+ * PreviewExpandable: "widgets" is a model, not an array
60+
61+ [ Alberto Aguirre ]
62+ * Proxy inactivity timeout values from gsettings into Unity.Screen
63+ (LP: #1230345)
64+
65+ [ Gerry Boland ]
66+ * Cancel open PAM interactions on shutdown - fixes hang on logout on
67+ desktop (LP: #1353041)
68+
69+ [ Diego Sarmentero ]
70+ * Show progress bar on payment button click The payment process has a
71+ small delay before the UI comes up which might cause confusion. Show
72+ a progress bar with unknown value to indicate activity. (LP:
73+ #1354139)
74+
75+ [ Mirco Müller ]
76+ * Made notification qml-test pass again by using Component.onCompleted
77+ instead of onOpacityChanged for the time being.
78+
79+ [ Michael Zanetti ]
80+ * Implement new lockscreen designs
81+
82+ [ Michael Terry ]
83+ * Show the SIM unlock dialog immediately after booting, and enable its
84+ emergency call button.
85+ * Always keep indicator/launcher locked state in sync with whether the
86+ user is authenticated. (LP:# 1357230) (LP: #1357230)
87+ * Allow logging into a desktop or tablet session again, by properly
88+ dismissing old PAM conversations. (LP: #1350878) In a desktop or
89+ tablet, we were accidentally starting two PAM conversations in
90+ sequence on startup. Which is a small bug; it shouldn't normally be
91+ a problem, since each new PAM conversation should kill the old
92+ one.But the way we were killing the old one was subject to a thread
93+ race condition. See, a PAM conversation thread won't exit until all
94+ its prompts are answered. And what we do when we kill a PAM
95+ conversation is to answer all prompts with empty strings.But it's
96+ possible that when we want to kill a PAM conversation that it hasn't
97+ actually gotten to the point of prompting us yet. And when those
98+ prompts do come through, we were treating them as prompts for the
99+ new PAM conversation.So I've changed the PAM conversation logic to
100+ include a pam_handle and compare the handle with the current handle
101+ when being prompted. If it's an old handle, we just dismiss the
102+ prompt with an empty string response.Oh, and I fixed the bug that
103+ caused two prompts on startup in the first place. (But we still need
104+ the above logic anyway, for when you switch users quickly.) (LP:
105+ #1350878)
106+
107+ [ Martin Pitt ]
108+ * Mark for using language packs.
109+
110+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 22 Aug 2014 09:29:41 +0000
111+
112+unity8 (8.00+14.10.20140820-0ubuntu1) utopic; urgency=low
113+
114+ [ CI bot ]
115+ * Resync trunk
116+
117+ [ Nick Dedekind ]
118+ * Fixed CachedUnityMenuModel destruction unhinging indicators. (LP:
119+ #1328646)
120+
121+ [ Mirco Müller ]
122+ * Temporarily disable any opacity-animation for notifications to
123+ unblock the train due to LP: 1354406. (LP: #1354406)
124+
125+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 20 Aug 2014 20:03:55 +0000
126+
1127unity8 (8.00+14.10.20140817-0ubuntu1) utopic; urgency=low
2128
3129 [ CI bot ]
debian/control+5−4
@@ -24,7 +24,7 @@ Build-Depends: cmake,
2424 libpulse-dev,
2525 libqmenumodel-dev (>= 0.2.8),
2626 libqt5xmlpatterns5-dev,
27− libunity-api-dev (>= 7.88),
27+ libunity-api-dev (>= 7.89),
2828 libusermetricsoutput1-dev,
2929 libxcb1-dev,
3030 pkg-config,
@@ -54,6 +54,7 @@ Homepage: http://launchpad.net/unity
5454# and sync up the code again.
5555Vcs-Bzr: https://code.launchpad.net/unity8
5656Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
57+X-Ubuntu-Use-Langpack: yes
5758
5859Package: indicators-client
5960Architecture: amd64 armhf i386
@@ -111,7 +112,7 @@ Depends: qml-module-qtquick-layouts,
111112 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
112113 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
113114 ubuntu-thumbnailer-impl-0,
114− unity-application-impl-2,
115+ unity-application-impl-3,
115116 unity-notifications-impl-3,
116117 unity-plugin-scopes | unity-scopes-impl,
117118 unity-scopes-impl-4,
@@ -158,7 +159,7 @@ Pre-Depends: ${misc:Pre-Depends},
158159Depends: ${misc:Depends},
159160 ${shlibs:Depends},
160161Provides: unity-application-impl,
161− unity-application-impl-2,
162+ unity-application-impl-3,
162163Description: Fake environment for running Unity 8 shell
163164 Provides fake implementations of some QML modules used by Unity 8 shell
164165 (e.g Ubuntu.Application) so that you can run it in a sandboxed environment.
@@ -168,7 +169,7 @@ Architecture: any
168169Multi-Arch: same
169170Pre-Depends: ${misc:Pre-Depends},
170171Depends: accountsservice-ubuntu-schemas,
171− gsettings-ubuntu-schemas,
172+ gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
172173 libhardware2,
173174 libunity-core-6.0-9,
174175 pay-service,
debian/unity8.install+1
@@ -10,3 +10,4 @@ usr/share/unity8/Launcher
1010usr/share/unity8/Panel
1111usr/share/unity8/Shell.qml
1212usr/share/unity8/Stages
13+usr/share/url-dispatcher/urls/unity8-dash.url-dispatcher
include/paths.h.in+9−1
@@ -80,10 +80,18 @@ inline QStringList fallbackImportPaths() {
8080 return paths;
8181}
8282
83+inline QString mockPluginsDir() {
84+ if (isRunningInstalled()) {
85+ return QString("@CMAKE_INSTALL_PREFIX@/@SHELL_INSTALL_QML@/mocks");
86+ } else {
87+ return QString("@CMAKE_BINARY_DIR@/tests/mocks");
88+ }
89+}
90+
8391inline QStringList shellDataDirs() {
8492 QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
8593 if (!isRunningInstalled()) {
86− if (getenv("UNITY_TEST_ENV")==NULL) {
94+ if (getenv("UNITY_TEST_ENV")==nullptr) {
8795 dirs.prepend("@CMAKE_BINARY_DIR@/share");
8896 }
8997 }
plugins/AccountsService/AccountsServiceDBusAdaptor.cpp+1−1
@@ -24,7 +24,7 @@
2424
2525AccountsServiceDBusAdaptor::AccountsServiceDBusAdaptor(QObject* parent)
2626 : QObject(parent),
27− m_accountsManager(NULL),
27+ m_accountsManager(nullptr),
2828 m_users()
2929{
3030 QDBusConnection connection = QDBusConnection::SM_BUSNAME();
plugins/Dash/CardAttributes.qml+7−3
@@ -26,8 +26,10 @@ GridLayout {
2626 right: parent.right;
2727 }
2828 columns: 2 + repeater.count % 2
29+ rowSpacing: units.gu(.5)
2930 property alias model: repeater.model
30− property var color
31+ property color color: Theme.palette.normal.baseText
32+ property real fontScale: 1.0
3133
3234 Repeater {
3335 id: repeater
@@ -42,17 +44,19 @@ GridLayout {
4244 Layout.columnSpan: index == repeater.count - 1 && grid.columns == 3 && column == 1 ? 2 : 1
4345 Layout.maximumWidth: Math.max(icon.width, label.x + label.implicitWidth)
4446 Layout.fillWidth: true
47+ height: units.gu(2)
4548 StatusIcon {
4649 id: icon
4750 height: units.gu(2)
4851 sets: ["actions", "status", "apps"]
49− source: "icon" in modelData ? modelData["icon"] : ""
52+ source: "icon" in modelData && modelData["icon"] || ""
53+ color: grid.color
5054 }
5155 Label {
5256 id: label
5357 width: parent.width - x
5458 anchors.verticalCenter: parent.verticalCenter
55− text: "value" in modelData ? modelData["value"] : "";
59+ text: "value" in modelData && modelData["value"] || "";
5660 elide: Text.ElideRight
5761 maximumLineCount: 1
5862 font.weight: "style" in modelData && modelData["style"] == "highlighted" ? Font.DemiBold : Font.Light
plugins/Dash/CardCreator.js+9−5
@@ -29,7 +29,7 @@ var kBackgroundLoaderCode = 'Loader {\n\
2929 gradientColor: getColor(1) || color; \n\
3030 anchors.fill: parent; \n\
3131 image: backgroundImage.source ? backgroundImage : null; \n\
32− property real luminance: 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b; \n\
32+ property real luminance: Style.luminance(color); \n\
3333 property Image backgroundImage: Image { \n\
3434 objectName: "backgroundImage"; \n\
3535 source: { \n\
@@ -108,7 +108,7 @@ var kOverlayLoaderCode = 'Loader { \n\
108108 sourceComponent: ShaderEffect { \n\
109109 id: overlay; \n\
110110 height: (fixedHeaderHeight > 0 ? fixedHeaderHeight : headerHeight) + units.gu(2); \n\
111− property real luminance: 0.2126 * overlayColor.r + 0.7152 * overlayColor.g + 0.0722 * overlayColor.b; \n\
111+ property real luminance: Style.luminance(overlayColor); \n\
112112 property color overlayColor: cardData && cardData["overlayColor"] || "#99000000"; \n\
113113 property var source: ShaderEffectSource { \n\
114114 id: shaderSource; \n\
@@ -274,6 +274,7 @@ var kAttributesRowCode = 'CardAttributes { \n\
274274 objectName: "attributesRow"; \n\
275275 anchors { %1 } \n\
276276 color: %2; \n\
277+ fontScale: root.fontScale; \n\
277278 model: cardData && cardData["attributes"]; \n\
278279 }\n';
279280
@@ -439,14 +440,14 @@ function cardString(template, components) {
439440 mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible);
440441 }
441442
442− var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText)';
443+ var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white")';
443444
444445 var hasTitleContainer = hasTitle && (hasEmblem || (hasMascot && (hasSubtitle || hasAttributes)));
445446 var titleSubtitleCode = '';
446447 if (hasTitle) {
447448 var titleColor;
448449 if (headerAsOverlay) {
449− titleColor = 'overlayLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText)';
450+ titleColor = 'root.scopeStyle ? root.scopeStyle.getTextColor(overlayLoader.item.luminance) : (overlayLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white")';
450451 } else if (hasSummary) {
451452 titleColor = 'summary.color';
452453 } else if (hasBackground) {
@@ -466,6 +467,8 @@ function cardString(template, components) {
466467 if (!touchdownOnArtShape) {
467468 extraRightAnchor = 'rightMargin: units.gu(1); \n';
468469 extraLeftAnchor = 'leftMargin: units.gu(1); \n';
470+ } else if (headerAsOverlay && !hasEmblem) {
471+ extraRightAnchor = 'rightMargin: units.gu(1); \n';
469472 }
470473
471474 if (hasMascot) {
@@ -652,7 +655,8 @@ function cardString(template, components) {
652655function createCardComponent(parent, template, components) {
653656 var imports = 'import QtQuick 2.2; \n\
654657 import Ubuntu.Components 1.1; \n\
655− import Dash 0.1;\n';
658+ import Dash 0.1;\n\
659+ import Utils 0.1;\n';
656660 var card = cardString(template, components);
657661 var code = imports + 'Component {\n' + card + '}\n';
658662
plugins/Dash/ScopeStyle.qml+38−40
@@ -15,6 +15,8 @@
1515 */
1616
1717import QtQuick 2.2
18+import Utils 0.1
19+import Ubuntu.Components 1.1
1820
1921/*! \brief Helper for processing scope customization options.
2022
@@ -27,69 +29,65 @@ QtObject {
2729 /// Style object passed from the scope
2830 property var style: Object()
2931
30− /*! \brief Calculate luminance of the passed color
31−
32− \note If not fully opaque, luminance is dependant on blending.
33− */
34− function luminance(color) {
35− return 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
36− }
37−
3832 /// Color used for text and symbolic icons
3933 readonly property color foreground: "foreground-color" in style ? style["foreground-color"] : d.defaultDark
4034
4135 /// Luminance of the foreground color
42− readonly property real foregroundLuminance: foreground ? luminance(foreground) : d.defaultForegroundLuminance
36+ readonly property real foregroundLuminance: foreground ? Style.luminance(foreground) : Style.luminance(d.defaultDark)
4337
4438 /// Color used for the overall background
45− readonly property color background: "background-color" in style ? style["background-color"] : "transparent"
46−
47− /// Luminance of the foreground color
48− readonly property real backgroundLuminance: background ? luminance(background) : d.defaultBackgroundLuminance
49−
50− /*! \brief Luminance threshold for switching between fore and background color
51−
52− \note If background colour is not fully opaque, the defaultLightLuminance it's taken into account instead of it.
53− */
54− readonly property real threshold: background.a !== 1.0 ? (foregroundLuminance + d.defaultLightLuminance) / 2
55− : (foregroundLuminance + backgroundLuminance) / 2
56−
57− /*! \brief The lighter of foreground and background colors
58−
59− \note If background color is not fully opaque, it's not taken into account
60− and defaults to the theme-provided light color.
61− */
62− readonly property color light: {
63− if (background.a !== 1.0) return foregroundLuminance > d.defaultLightLuminance ? foreground : d.defaultLight;
64− return foregroundLuminance > backgroundLuminance ? foreground : background;
65− }
39+ readonly property color background: "background-color" in style ? style["background-color"] : "#00f5f5f5"
6640
67− /*! \brief The darker of foreground and background colors
41+ /// Luminance of the background color
42+ readonly property real backgroundLuminance: background ? Style.luminance(background) : Style.luminance(d.defaultLight)
6843
69− \note If background color is not fully opaque, it's not taken into account
70− and defaults to the theme-provided dark color.
44+ /*! \brief Get the most contrasting available color based on luminance
45+ *
46+ * If background color is transparent, theme provided colors are taken into account
7147 */
72− readonly property color dark: {
73− if (background.a !== 1.0) return foregroundLuminance < d.defaultDarkLuminance ? foreground : d.defaultDark;
74− return foregroundLuminance < backgroundLuminance ? foreground : background;
48+ function getTextColor(luminance) {
49+ if (Math.abs(foregroundLuminance - luminance) >
50+ Math.abs(d.opaqueBackgroundLuminance - luminance)) {
51+ return foreground;
52+ } else {
53+ return d.opaqueBackground;
54+ }
7555 }
7656
7757 /// Source of the logo image for the header
7858 readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
7959
8060 /// Background style for the header
81− readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : ""
61+ readonly property url headerBackground: "background" in d.headerStyle ? d.headerStyle["background"] : "color:///#f5f5f5"
8262
8363 /// Foreground color for the header
8464 readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
8565
66+ /// Color of the header divider
67+ readonly property color headerDividerColor: "divider-color" in d.headerStyle ? d.headerStyle["divider-color"] : "#e0e0e0"
68+
69+ /// Background style for the navigation
70+ readonly property url navigationBackground: "navigation-background" in d.headerStyle ? d.headerStyle["navigation-background"] : "color:///#f5f5f5"
71+
72+ /// Color of the primary preview button
73+ readonly property color previewButtonColor: "preview-button-color" in style ? style["preview-button-color"] : Theme.palette.selected.foreground
74+
8675 //! @cond
8776 property var d: QtObject {
8877 // FIXME: should be taken from the theme
8978 readonly property color defaultLight: "white"
90− readonly property color defaultDark: Theme.palette.normal.baseText
91− readonly property real defaultLightLuminance: luminance(defaultLight)
92− readonly property real defaultDarkLuminance: luminance(defaultDark)
79+ readonly property color defaultDark: UbuntuColors.darkGrey
80+ readonly property real defaultLightLuminance: Style.luminance(defaultLight)
81+ readonly property real defaultDarkLuminance: Style.luminance(defaultDark)
82+
83+ readonly property color opaqueBackground: {
84+ background.a > 0 ?
85+ background :
86+ (Math.abs(foregroundLuminance - defaultLightLuminance) >
87+ Math.abs(foregroundLuminance - defaultDarkLuminance)) ?
88+ defaultLight : defaultDark
89+ }
90+ readonly property real opaqueBackgroundLuminance: Style.luminance(opaqueBackground)
9391
9492 readonly property var headerStyle: "page-header" in style ? style["page-header"] : { }
9593 }
plugins/HudClient/hudclient.cpp+12−12
@@ -82,7 +82,7 @@ HudClient::HudClient()
8282 m_results = new DeeListModel();
8383 m_clientQuery = hud_client_query_new("");
8484 m_toolBarModel = new HudToolBarModel(m_clientQuery);
85− m_currentActionParam = NULL;
85+ m_currentActionParam = nullptr;
8686 m_results->setModel(hud_client_query_get_results_model(m_clientQuery));
8787
8888 g_signal_connect(G_OBJECT(m_clientQuery), "voice-query-loading", G_CALLBACK(loadingCB), this);
@@ -151,13 +151,13 @@ void HudClient::executeParametrizedAction(const QVariant &values)
151151 updateParametrizedAction(values);
152152 hud_client_param_send_commit(m_currentActionParam);
153153 g_object_unref(m_currentActionParam);
154− m_currentActionParam = NULL;
154+ m_currentActionParam = nullptr;
155155 Q_EMIT commandExecuted();
156156}
157157
158158void HudClient::updateParametrizedAction(const QVariant &values)
159159{
160− if (m_currentActionParam != NULL) {
160+ if (m_currentActionParam != nullptr) {
161161 const QVariantMap map = values.value<QVariantMap>();
162162 GActionGroup *ag = hud_client_param_get_actions(m_currentActionParam);
163163
@@ -179,10 +179,10 @@ void HudClient::updateParametrizedAction(const QVariant &values)
179179
180180void HudClient::cancelParametrizedAction()
181181{
182− if (m_currentActionParam != NULL) {
182+ if (m_currentActionParam != nullptr) {
183183 hud_client_param_send_cancel(m_currentActionParam);
184184 g_object_unref(m_currentActionParam);
185− m_currentActionParam = NULL;
185+ m_currentActionParam = nullptr;
186186 }
187187}
188188
@@ -212,9 +212,9 @@ void HudClient::executeCommand(int index)
212212 GVariant *is_parametrized = dee_model_get_value(model, iter, 7);
213213 if (g_variant_get_boolean(is_parametrized)) {
214214 m_currentActionParam = hud_client_query_execute_param_command(m_clientQuery, command_key, /* timestamp */ 0);
215− if (m_currentActionParam != NULL) {
215+ if (m_currentActionParam != nullptr) {
216216 GMenuModel *menuModel = hud_client_param_get_model (m_currentActionParam);
217− if (menuModel == NULL) {
217+ if (menuModel == nullptr) {
218218 g_signal_connect(m_currentActionParam, HUD_CLIENT_PARAM_SIGNAL_MODEL_READY, G_CALLBACK(modelReadyCB), this);
219219 } else {
220220 modelReady(false);
@@ -244,9 +244,9 @@ void HudClient::modelReady(bool needDisconnect)
244244}
245245
246246static void addAttribute(QVariantMap &properties, GMenuModel *menuModel, int item, const char *attribute) {
247− GVariant *v = g_menu_model_get_item_attribute_value(menuModel, item, attribute, NULL);
247+ GVariant *v = g_menu_model_get_item_attribute_value(menuModel, item, attribute, nullptr);
248248
249− if (v == NULL)
249+ if (v == nullptr)
250250 return;
251251
252252 properties.insert(attribute, DeeListModel::VariantForData(v));
@@ -264,10 +264,10 @@ void HudClient::modelReallyReady(bool needDisconnect)
264264 for (int i = 0; i < g_menu_model_get_n_items(menuModel); i++) {
265265 GVariant *v = g_menu_model_get_item_attribute_value(menuModel, i, "parameter-type", G_VARIANT_TYPE_STRING);
266266
267− if (v == NULL)
267+ if (v == nullptr)
268268 continue;
269269
270− const QString type = QString::fromUtf8(g_variant_get_string(v, NULL));
270+ const QString type = QString::fromUtf8(g_variant_get_string(v, nullptr));
271271 if (type == "slider") {
272272 const char *sliderAttributes[] = { "label", "min", "max", "step", "value", "live", "action" };
273273 QVariantMap properties;
@@ -283,7 +283,7 @@ void HudClient::modelReallyReady(bool needDisconnect)
283283 DeeModel *model = hud_client_query_get_results_model(m_clientQuery);
284284 DeeModelIter *iter = dee_model_get_iter_at_row(model, m_currentActionIndex);
285285 GVariant *actionTextVariant = dee_model_get_value(model, iter, 1);
286− const QString actionText = QString::fromUtf8(g_variant_get_string(actionTextVariant, NULL));
286+ const QString actionText = QString::fromUtf8(g_variant_get_string(actionTextVariant, nullptr));
287287 g_variant_unref(actionTextVariant);
288288 Q_EMIT showParametrizedAction(actionText, QVariant::fromValue(items));
289289}
plugins/HudClient/volumepeakdetector.cpp+9−9
@@ -45,15 +45,15 @@ PulseAudioVolumePeakDetector::PulseAudioVolumePeakDetector()
4545 : m_accumulatedValue(0)
4646 , m_nAccumulatedValues(0)
4747 , m_accumulatedValuesLimit(1)
48− , m_context(NULL)
49− , m_mainloop_api(NULL)
50− , m_stream(NULL)
48+ , m_context(nullptr)
49+ , m_mainloop_api(nullptr)
50+ , m_stream(nullptr)
5151{
5252}
5353
5454void PulseAudioVolumePeakDetector::start()
5555{
56− pa_mainloop *mainloop = NULL;
56+ pa_mainloop *mainloop = nullptr;
5757
5858 /* Set up a new main loop */
5959 mainloop = pa_mainloop_new();
@@ -63,7 +63,7 @@ void PulseAudioVolumePeakDetector::start()
6363 m_mainloop_api = pa_mainloop_get_api(mainloop);
6464
6565 /* Create a new connection context */
66− m_context = pa_context_new(m_mainloop_api, NULL);
66+ m_context = pa_context_new(m_mainloop_api, nullptr);
6767 if (!m_context) {
6868 goto quit;
6969 }
@@ -71,12 +71,12 @@ void PulseAudioVolumePeakDetector::start()
7171 pa_context_set_state_callback(m_context, context_state_callback, this);
7272
7373 /* Connect the context */
74− if (pa_context_connect(m_context, NULL, PA_CONTEXT_NOFLAGS, NULL) < 0) {
74+ if (pa_context_connect(m_context, nullptr, PA_CONTEXT_NOFLAGS, nullptr) < 0) {
7575 goto quit;
7676 }
7777
7878 /* Run the main loop */
79− if (pa_mainloop_run(mainloop, NULL) < 0) {
79+ if (pa_mainloop_run(mainloop, nullptr) < 0) {
8080 goto quit;
8181 }
8282
@@ -130,7 +130,7 @@ void PulseAudioVolumePeakDetector::startStream()
130130 pa_channel_map_init_extend(&channel_map, sample_spec.channels, PA_CHANNEL_MAP_DEFAULT);
131131 pa_proplist_sets(proplist, PA_PROP_MEDIA_NAME, "HUD Peak Detector");
132132
133− m_stream = pa_stream_new_with_proplist(m_context, NULL, &sample_spec, &channel_map, proplist);
133+ m_stream = pa_stream_new_with_proplist(m_context, nullptr, &sample_spec, &channel_map, proplist);
134134 if (!m_stream) {
135135 pa_proplist_free(proplist);
136136 quit();
@@ -144,7 +144,7 @@ void PulseAudioVolumePeakDetector::startStream()
144144 buffer_attr.maxlength = (uint32_t) -1;
145145 buffer_attr.fragsize = sizeof(float);
146146
147− if (pa_stream_connect_record(m_stream, NULL, &buffer_attr, (pa_stream_flags_t)(PA_STREAM_PEAK_DETECT | PA_STREAM_ADJUST_LATENCY)) < 0) {
147+ if (pa_stream_connect_record(m_stream, nullptr, &buffer_attr, (pa_stream_flags_t)(PA_STREAM_PEAK_DETECT | PA_STREAM_ADJUST_LATENCY)) < 0) {
148148 quit();
149149 }
150150}
plugins/LightDM/Greeter.cpp+2
@@ -106,6 +106,7 @@ void Greeter::authenticate(const QString &username)
106106 }
107107
108108 d->m_greeter->authenticate(username);
109+ Q_EMIT isAuthenticatedChanged();
109110 Q_EMIT authenticationUserChanged(username);
110111}
111112
@@ -150,5 +151,6 @@ void Greeter::authenticationCompleteFilter()
150151 Q_EMIT promptlessChanged();
151152 }
152153
154+ Q_EMIT isAuthenticatedChanged();
153155 Q_EMIT authenticationComplete();
154156}
plugins/LightDM/Greeter.h+2−1
@@ -35,7 +35,7 @@ class Greeter : public QObject
3535 Q_OBJECT
3636
3737 Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
38− Q_PROPERTY(bool authenticated READ isAuthenticated)
38+ Q_PROPERTY(bool authenticated READ isAuthenticated NOTIFY isAuthenticatedChanged)
3939 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
4040 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
4141
@@ -59,6 +59,7 @@ Q_SIGNALS:
5959 void authenticationComplete();
6060 void authenticationUserChanged(const QString &user);
6161 void isActiveChanged();
62+ void isAuthenticatedChanged();
6263 void promptlessChanged();
6364 void showGreeter();
6465
plugins/Powerd/Powerd.cpp+17−1
@@ -25,9 +25,21 @@ void autoBrightnessChanged(GSettings *settings, const gchar *key, QDBusInterface
2525 unityScreen->asyncCall("userAutobrightnessEnable", QVariant(value));
2626}
2727
28+void activityTimeoutChanged(GSettings *settings, const gchar *key, QDBusInterface *unityScreen)
29+{
30+ int value = g_settings_get_uint(settings, key);
31+ unityScreen->asyncCall("setInactivityTimeouts", QVariant(value), QVariant(-1));
32+}
33+
34+void dimTimeoutChanged(GSettings *settings, const gchar *key, QDBusInterface *unityScreen)
35+{
36+ int value = g_settings_get_uint(settings, key);
37+ unityScreen->asyncCall("setInactivityTimeouts", QVariant(-1), QVariant(value));
38+}
39+
2840Powerd::Powerd(QObject* parent)
2941 : QObject(parent),
30− unityScreen(NULL)
42+ unityScreen(nullptr)
3143{
3244 unityScreen = new QDBusInterface("com.canonical.Unity.Screen",
3345 "/com/canonical/Unity/Screen",
@@ -43,7 +55,11 @@ Powerd::Powerd(QObject* parent)
4355
4456 systemSettings = g_settings_new("com.ubuntu.touch.system");
4557 g_signal_connect(systemSettings, "changed::auto-brightness", G_CALLBACK(autoBrightnessChanged), unityScreen);
58+ g_signal_connect(systemSettings, "changed::activity-timeout", G_CALLBACK(activityTimeoutChanged), unityScreen);
59+ g_signal_connect(systemSettings, "changed::dim-timeout", G_CALLBACK(dimTimeoutChanged), unityScreen);
4660 autoBrightnessChanged(systemSettings, "auto-brightness", unityScreen);
61+ activityTimeoutChanged(systemSettings, "activity-timeout", unityScreen);
62+ dimTimeoutChanged(systemSettings, "dim-timeout", unityScreen);
4763}
4864
4965Powerd::~Powerd()
plugins/Unity/CMakeLists.txt+1
@@ -1,3 +1,4 @@
1+add_subdirectory(Connectivity)
12add_subdirectory(Indicators)
23add_subdirectory(Launcher)
34add_subdirectory(Session)
plugins/Unity/Connectivity/CMakeLists.txtnew file+10
@@ -0,0 +1,10 @@
1+set(CONNECTIVITY_SOURCES
2+ plugin.cpp
3+ Connectivity.cpp
4+)
5+
6+add_library(Connectivity MODULE ${CONNECTIVITY_SOURCES})
7+
8+qt5_use_modules(Connectivity Qml DBus Core)
9+
10+add_unity8_plugin(Unity.Connectivity 0.1 Unity/Connectivity TARGETS Connectivity)
plugins/Unity/Connectivity/Connectivity.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 "Connectivity.h"
18+#include <QDBusConnection>
19+#include <QDBusInterface>
20+#include <QDBusPendingCall>
21+
22+Connectivity::Connectivity(QObject *parent)
23+ : QObject(parent)
24+{
25+}
26+
27+void Connectivity::unlockAllModems()
28+{
29+ QDBusInterface iface("com.ubuntu.connectivity1",
30+ "/com/ubuntu/connectivity1/Private",
31+ "com.ubuntu.connectivity1.Private");
32+ iface.asyncCall("UnlockAllModems");
33+}
tests/mocks/Unity/Application/VirtualKeyboard.h → plugins/Unity/Connectivity/Connectivity.hrenamed+9−11
@@ -14,22 +14,20 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−#ifndef VIRTUALKEYBOARD_H
18−#define VIRTUALKEYBOARD_H
17+#ifndef CONNECTIVITY_H
18+#define CONNECTIVITY_H
1919
20−#include "MirSurfaceItem.h"
20+#include <QObject>
2121
22−class VirtualKeyboard : public MirSurfaceItem
22+class Connectivity : public QObject
2323{
2424 Q_OBJECT
25−public:
26− VirtualKeyboard(State state,
27− QQuickItem *parent = 0);
25+ Q_DISABLE_COPY(Connectivity)
2826
29− void touchEvent(QTouchEvent * event) override;
27+public:
28+ explicit Connectivity(QObject *parent = 0);
3029
31−private:
32− bool hasTouchInsideKeyboard(QTouchEvent *event);
30+ Q_INVOKABLE void unlockAllModems();
3331};
3432
35−#endif // VIRTUALKEYBOARD_H
33+#endif // CONNECTIVITY_H
plugins/Unity/Connectivity/Connectivity.qmltypesnew file+19
@@ -0,0 +1,19 @@
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 Unity.Connectivity 0.1 plugins'
8+
9+Module {
10+ Component {
11+ name: "Connectivity"
12+ prototype: "QObject"
13+ exports: ["Unity.Connectivity/Connectivity 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Method { name: "unlockAllModems" }
18+ }
19+}
plugins/Unity/Connectivity/plugin.cppnew file+34
@@ -0,0 +1,34 @@
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 "Connectivity.h"
19+
20+#include <QtQml>
21+
22+static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
23+{
24+ Q_UNUSED(engine)
25+ Q_UNUSED(scriptEngine)
26+ return new Connectivity();
27+}
28+
29+void BackendPlugin::registerTypes(const char *uri)
30+{
31+ Q_ASSERT(uri == QLatin1String("Unity.Connectivity"));
32+
33+ qmlRegisterSingletonType<Connectivity>(uri, 0, 1, "Connectivity", service_provider);
34+}
plugins/Unity/Connectivity/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 CONNECTIVITY_PLUGIN_H
18+#define CONNECTIVITY_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 // CONNECTIVITY_PLUGIN_H
plugins/Unity/Connectivity/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module Unity.Connectivity
2+plugin Connectivity
3+typeinfo Connectivity.qmltypes
plugins/Unity/Indicators/CachedUnityMenuModel.qmldeleted−60
@@ -1,60 +0,0 @@
1−/*
2− * Copyright 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 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− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import QMenuModel 0.1 as QMenuModel
22−import Unity.Indicators 0.1 as Indicators
23−
24−// Make sure we don't duplicate models.
25−Item {
26− id: cachedModel
27− property string busName: ""
28− property string actionsObjectPath: ""
29− property string menuObjectPath: ""
30−
31− readonly property bool ready: busName!=="" && actionsObjectPath!=="" && menuObjectPath!==""
32−
33− property QtObject model: {
34− if (!ready) {
35− return null;
36− }
37−
38− var component = Indicators.UnityMenuModelCache.model(menuObjectPath);
39− if (!component) {
40− component = modelComponent.createObject(cachedModel);
41− return component;
42− }
43− return component;
44− }
45−
46− Component {
47− id: modelComponent
48−
49− QMenuModel.UnityMenuModel {
50− id: unityModel
51− busName: cachedModel.busName
52− actions: { "indicator": cachedModel.actionsObjectPath }
53− menuObjectPath: cachedModel.menuObjectPath
54−
55− Component.onCompleted: {
56− Indicators.UnityMenuModelCache.registerModel(cachedModel.menuObjectPath, unityModel);
57− }
58− }
59− }
60−}
plugins/Unity/Indicators/menucontentactivator.cpp+2−2
@@ -45,7 +45,7 @@ public:
4545 m_baseIndex(0),
4646 m_delta(0),
4747 m_count(0),
48− m_timer(NULL),
48+ m_timer(nullptr),
4949 q(parent)
5050 {}
5151
@@ -55,7 +55,7 @@ public:
5555 m_content.clear();
5656 }
5757
58− int findNextInactiveDelta(bool* finished = NULL);
58+ int findNextInactiveDelta(bool* finished = nullptr);
5959
6060 static int content_count(QQmlListProperty<MenuContentState> *prop);
6161 static MenuContentState* content_at(QQmlListProperty<MenuContentState> *prop, int index);
plugins/Unity/Indicators/menucontentactivator.h+1−1
@@ -71,7 +71,7 @@ class UNITYINDICATORS_EXPORT MenuContentActivator : public QObject
7171 Q_PROPERTY(int count READ count WRITE setCount NOTIFY countChanged)
7272 Q_PROPERTY(QQmlListProperty<MenuContentState> content READ content NOTIFY contentChanged DESIGNABLE false)
7373public:
74− MenuContentActivator(QObject* parent = NULL);
74+ MenuContentActivator(QObject* parent = nullptr);
7575 ~MenuContentActivator();
7676
7777 Q_INVOKABLE void restart();
plugins/Unity/Indicators/modelprinter.cpp+3−3
@@ -27,13 +27,13 @@
2727
2828ModelPrinter::ModelPrinter(QObject *parent)
2929 : QObject(parent)
30− , m_model(NULL)
30+ , m_model(nullptr)
3131{
3232}
3333
3434void ModelPrinter::setSourceModel(UnityMenuModel * sourceModel)
3535{
36− if (m_model != NULL) {
36+ if (m_model != nullptr) {
3737 disconnect(m_model);
3838 }
3939 if (m_model != sourceModel) {
@@ -41,7 +41,7 @@ void ModelPrinter::setSourceModel(UnityMenuModel * sourceModel)
4141 Q_EMIT modelChanged();
4242 Q_EMIT textChanged();
4343 }
44− if (m_model != NULL) {
44+ if (m_model != nullptr) {
4545 connect(m_model, SIGNAL(rowsInserted(QModelIndex,int,int)), SIGNAL(textChanged()));
4646 connect(m_model, SIGNAL(rowsRemoved(QModelIndex,int,int)), SIGNAL(textChanged()));
4747 connect(m_model, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&, const QVector<int>&)), SIGNAL(textChanged()));
plugins/Unity/Indicators/qmldir−3
@@ -1,6 +1,3 @@
11module Unity.Indicators
22plugin IndicatorsQml
33typeinfo Indicators.qmltypes
4−
5−CachedUnityMenuModel 0.1 CachedUnityMenuModel.qml
6−IndicatorBase 0.1 IndicatorBase.qml
plugins/Unity/Indicators/rootactionstate.cpp+4−4
@@ -31,7 +31,7 @@ extern "C" {
3131
3232RootActionState::RootActionState(QObject *parent)
3333 : ActionStateParser(parent),
34− m_menu(NULL)
34+ m_menu(nullptr)
3535{
3636}
3737
@@ -95,7 +95,7 @@ void RootActionState::onModelDataChanged(const QModelIndex& topLeft, const QMode
9595void RootActionState::reset()
9696{
9797 m_cachedState.clear();
98− m_menu = NULL;
98+ m_menu = nullptr;
9999
100100 Q_EMIT menuChanged();
101101 Q_EMIT updated();
@@ -171,7 +171,7 @@ static QString iconUri(GIcon *icon)
171171 const gchar* const* iconNames = g_themed_icon_get_names (G_THEMED_ICON (icon));
172172
173173 QStringList iconNameList;
174− for (uint index = 0; iconNames[index] != NULL; index++) {
174+ for (uint index = 0; iconNames[index] != nullptr; index++) {
175175 iconNameList << iconNames[index];
176176 }
177177
@@ -282,7 +282,7 @@ QVariant RootActionState::toQVariant(GVariant* state) const
282282 qmap["accessible-desc"] = accessible_name ? QString::fromUtf8(accessible_name) : "";
283283 qmap["visible"] = visible;
284284
285− gicon = g_icon_new_for_string (icon, NULL);
285+ gicon = g_icon_new_for_string (icon, nullptr);
286286 if (gicon) {
287287 qmap["icons"] = QStringList() << iconUri(gicon);
288288 g_object_unref (gicon);
plugins/Unity/Indicators/unitymenumodelcache.cpp+22−7
@@ -29,14 +29,29 @@ UnityMenuModelCache::~UnityMenuModelCache()
2929{
3030}
3131
32−
33−UnityMenuModel* UnityMenuModelCache::model(const QString& path) const
32+UnityMenuModel* UnityMenuModelCache::model(const QByteArray& bus,
33+ const QByteArray& path,
34+ const QVariantMap& actions)
3435{
35− return m_menuModels.value(path, NULL);
36+ if (m_registry.contains(path))
37+ return m_registry[path];
38+
39+ UnityMenuModel* menuModel = new UnityMenuModel;
40+ connect(menuModel, &QObject::destroyed, this, [menuModel, this](QObject*) {
41+ QList<QByteArray> keys = m_registry.keys(menuModel);
42+ Q_FOREACH(const QByteArray& key, keys) {
43+ m_registry.remove(key);
44+ }
45+ });
46+ m_registry[path] = menuModel;
47+
48+ menuModel->setBusName(bus);
49+ menuModel->setMenuObjectPath(path);
50+ menuModel->setActions(actions);
51+ return menuModel;
3652}
3753
38−void UnityMenuModelCache::registerModel(const QString& path, UnityMenuModel* menuModel)
54+bool UnityMenuModelCache::contains(const QByteArray& path)
3955{
40− menuModel->setParent(this);
41− m_menuModels[path] = menuModel;
42−}
56+ return m_registry.contains(path);
57+}
plugins/Unity/Indicators/unitymenumodelcache.h+6−4
@@ -31,14 +31,16 @@ class UNITYINDICATORS_EXPORT UnityMenuModelCache : public QObject
3131{
3232 Q_OBJECT
3333public:
34− UnityMenuModelCache(QObject*parent=NULL);
34+ UnityMenuModelCache(QObject*parent=nullptr);
3535 ~UnityMenuModelCache();
3636
37− Q_INVOKABLE UnityMenuModel* model(const QString& path) const;
38− Q_INVOKABLE void registerModel(const QString& path, UnityMenuModel* menuModel);
37+ Q_INVOKABLE UnityMenuModel* model(const QByteArray& bus,
38+ const QByteArray& path,
39+ const QVariantMap& actions);
40+ Q_INVOKABLE bool contains(const QByteArray& path);
3941
4042private:
41− QHash<QString, UnityMenuModel*> m_menuModels;
43+ QHash<QByteArray, UnityMenuModel*> m_registry;
4244};
4345
4446#endif // UNITYMENUMODELCACHE_H
plugins/Unity/Indicators/unitymenumodelstack.cpp+4−4
@@ -90,7 +90,7 @@ UnityMenuModelStack::~UnityMenuModelStack()
9090
9191UnityMenuModel* UnityMenuModelStack::head() const
9292{
93− return !m_menuModels.isEmpty() ? m_menuModels.first()->model() : NULL;
93+ return !m_menuModels.isEmpty() ? m_menuModels.first()->model() : nullptr;
9494}
9595
9696void UnityMenuModelStack::setHead(UnityMenuModel* model)
@@ -106,7 +106,7 @@ void UnityMenuModelStack::setHead(UnityMenuModel* model)
106106
107107UnityMenuModel* UnityMenuModelStack::tail() const
108108{
109− return !m_menuModels.isEmpty() ? m_menuModels.last()->model() : NULL;
109+ return !m_menuModels.isEmpty() ? m_menuModels.last()->model() : nullptr;
110110}
111111
112112int UnityMenuModelStack::count() const
@@ -127,7 +127,7 @@ void UnityMenuModelStack::push(UnityMenuModel* model, int index)
127127UnityMenuModel* UnityMenuModelStack::pop()
128128{
129129 if (m_menuModels.isEmpty()) {
130− return NULL;
130+ return nullptr;
131131 }
132132 UnityMenuModelEntry* entry = m_menuModels.takeLast();
133133 UnityMenuModel* model = entry->model();
@@ -135,7 +135,7 @@ UnityMenuModel* UnityMenuModelStack::pop()
135135
136136 Q_EMIT tailChanged(tail());
137137 if (m_menuModels.isEmpty()) {
138− Q_EMIT headChanged(NULL);
138+ Q_EMIT headChanged(nullptr);
139139 }
140140 Q_EMIT countChanged(m_menuModels.count());
141141
plugins/Unity/Indicators/unitymenumodelstack.h+1−1
@@ -40,7 +40,7 @@ class UNITYINDICATORS_EXPORT UnityMenuModelStack : public QObject
4040 Q_PROPERTY(UnityMenuModel* tail READ tail NOTIFY tailChanged)
4141 Q_PROPERTY(int count READ count NOTIFY countChanged)
4242public:
43− UnityMenuModelStack(QObject*parent=NULL);
43+ UnityMenuModelStack(QObject*parent=nullptr);
4444 ~UnityMenuModelStack();
4545
4646 UnityMenuModel* head() const;
plugins/Unity/Launcher/CMakeLists.txt+1−1
@@ -1,6 +1,6 @@
11include(FindPkgConfig)
22pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=3)
3−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=1)
3+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=3)
44pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
55
66add_definitions(-DSM_BUSNAME=systemBus)
plugins/Utils/Style.jsnew file+37
@@ -0,0 +1,37 @@
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+.pragma library
18+
19+/*! \brief Calculate average luminance of the passed colors
20+
21+ \note If not fully opaque, luminance is dependant on blending.
22+ */
23+function luminance() {
24+ var sum = 0;
25+ // TODO this was originally
26+ // for (var k in arguments) {
27+ // but for some unkown reason was causing crashes in testDash/testDashContent
28+ // investigate when we have some time
29+ for (var k = 0; k < arguments.length; ++k) {
30+ // only way to convert string to color
31+ var c = Qt.lighter(arguments[k], 1.0);
32+
33+ sum += 0.2126 * c.r + 0.7152 * c.g + 0.0722 * c.b;
34+ }
35+
36+ return sum / arguments.length;
37+}
plugins/Utils/qlimitproxymodelqml.cpp+6−6
@@ -42,18 +42,18 @@ void
4242QLimitProxyModelQML::setModel(QAbstractItemModel *itemModel)
4343{
4444 if (itemModel != sourceModel()) {
45− if (sourceModel() != NULL) {
45+ if (sourceModel() != nullptr) {
4646 sourceModel()->disconnect(this);
4747 }
4848
4949 setSourceModel(itemModel);
5050
51− if (sourceModel() != NULL) {
51+ if (sourceModel() != nullptr) {
5252 // Disconnect the QIdentityProxyModel handling for rows removed/added...
53− disconnect(sourceModel(), SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), this, NULL);
54− disconnect(sourceModel(), SIGNAL(rowsInserted(QModelIndex,int,int)), this, NULL);
55− disconnect(sourceModel(), SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), this, NULL);
56− disconnect(sourceModel(), SIGNAL(rowsRemoved(QModelIndex,int,int)), this, NULL);
53+ disconnect(sourceModel(), SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), this, nullptr);
54+ disconnect(sourceModel(), SIGNAL(rowsInserted(QModelIndex,int,int)), this, nullptr);
55+ disconnect(sourceModel(), SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), this, nullptr);
56+ disconnect(sourceModel(), SIGNAL(rowsRemoved(QModelIndex,int,int)), this, nullptr);
5757
5858 // ... and use our own
5959 connect(sourceModel(), SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
plugins/Utils/qmldir+1
@@ -1,3 +1,4 @@
11module Utils
22plugin Utils-qml
33typeinfo Utils.qmltypes
4+Style 0.1 Style.js
plugins/Utils/qsortfilterproxymodelqml.cpp+7−7
@@ -34,7 +34,7 @@ QSortFilterProxyModelQML::QSortFilterProxyModelQML(QObject *parent)
3434 */
3535int QSortFilterProxyModelQML::mapRowToSource(int row)
3636{
37− if (sourceModel() == NULL)
37+ if (sourceModel() == nullptr)
3838 return -1;
3939
4040 return QSortFilterProxyModel::mapToSource(index(row, 0)).row();
@@ -48,12 +48,12 @@ QHash<int, QByteArray> QSortFilterProxyModelQML::roleNames() const
4848void
4949QSortFilterProxyModelQML::setModel(QAbstractItemModel *itemModel)
5050{
51− if (itemModel == NULL) {
51+ if (itemModel == nullptr) {
5252 return;
5353 }
5454
5555 if (itemModel != sourceModel()) {
56− if (sourceModel() != NULL) {
56+ if (sourceModel() != nullptr) {
5757 sourceModel()->disconnect(this);
5858 }
5959
@@ -83,7 +83,7 @@ QSortFilterProxyModelQML::get(int row)
8383QVariant
8484QSortFilterProxyModelQML::data(int row, int role)
8585{
86− if (sourceModel() == NULL) {
86+ if (sourceModel() == nullptr) {
8787 return QVariant();
8888 }
8989
@@ -93,7 +93,7 @@ QSortFilterProxyModelQML::data(int row, int role)
9393int
9494QSortFilterProxyModelQML::totalCount() const
9595{
96− if (sourceModel() != NULL) {
96+ if (sourceModel() != nullptr) {
9797 return sourceModel()->rowCount();
9898 } else {
9999 return 0;
@@ -149,7 +149,7 @@ QSortFilterProxyModelQML::findFirst(int role, const QVariant& value) const
149149int
150150QSortFilterProxyModelQML::mapFromSource(int row)
151151{
152− if (sourceModel() != NULL) {
152+ if (sourceModel() != nullptr) {
153153 return QSortFilterProxyModel::mapFromSource(sourceModel()->index(row, 0)).row();
154154 } else {
155155 return -1;
@@ -159,7 +159,7 @@ QSortFilterProxyModelQML::mapFromSource(int row)
159159int
160160QSortFilterProxyModelQML::mapToSource(int row)
161161{
162− if (sourceModel() != NULL) {
162+ if (sourceModel() != nullptr) {
163163 return QSortFilterProxyModel::mapToSource(index(row, 0)).row();
164164 } else {
165165 return -1;
plugins/Utils/timeformatter.cpp+8−8
@@ -57,9 +57,9 @@ timedate1_properties_changed (GDBusConnection *connection,
5757 if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(sa{sv}as)")))
5858 return;
5959
60− g_variant_get (parameters, "(s@a{sv}as)", NULL, &changed, &iter);
60+ g_variant_get (parameters, "(s@a{sv}as)", nullptr, &changed, &iter);
6161
62− if (g_variant_lookup (changed, "Timezone", "s", NULL)) {
62+ if (g_variant_lookup (changed, "Timezone", "s", nullptr)) {
6363 priv->formatter->update();
6464 }
6565 else {
@@ -81,10 +81,10 @@ got_bus(GObject *object, GAsyncResult *result, gpointer user_data)
8181 Q_UNUSED(object);
8282
8383 TimeFormatterPrivate *priv = (TimeFormatterPrivate *)user_data;
84− GError *error = NULL;
84+ GError *error = nullptr;
8585
8686 priv->system_bus = g_bus_get_finish (result, &error);
87− if (priv->system_bus == NULL) {
87+ if (priv->system_bus == nullptr) {
8888 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
8989 qWarning("TimeFormatter: cannot connect to the system bus: %s", error->message);
9090 g_error_free (error);
@@ -98,14 +98,14 @@ got_bus(GObject *object, GAsyncResult *result, gpointer user_data)
9898 * and keep the process alive.
9999 */
100100 priv->subscription_id = g_dbus_connection_signal_subscribe (priv->system_bus,
101− NULL, /* sender */
101+ nullptr, /* sender */
102102 "org.freedesktop.DBus.Properties",
103103 "PropertiesChanged",
104− NULL,
104+ nullptr,
105105 "org.freedesktop.timedate1",
106106 G_DBUS_SIGNAL_FLAGS_NONE,
107107 timedate1_properties_changed,
108− priv, NULL);
108+ priv, nullptr);
109109}
110110
111111TimeFormatter::TimeFormatter(QObject *parent): QObject(parent)
@@ -114,7 +114,7 @@ TimeFormatter::TimeFormatter(QObject *parent): QObject(parent)
114114 priv->formatter = this;
115115 priv->time = 0;
116116 priv->format = "yyyy-MM-dd hh:mm";
117− priv->system_bus = NULL;
117+ priv->system_bus = nullptr;
118118 priv->subscription_id = 0;
119119 priv->cancellable = g_cancellable_new ();
120120
po/am.po+49−40
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-16 20:11+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-23 17:14+0000\n"
1212"Last-Translator: samson <Unknown>\n"
1313"Language-Team: Amharic <am@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-24 06:46+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
97−msgstr "በርካታ የተሳሳቱ ሙከራዎች"
98−
99−#: qml/Components/Lockscreen.qml:163
95+#: qml/Components/Lockscreen.qml:167
10096msgid "Please wait"
10197msgstr "እባክዎን ይቆዩ"
10298
103−#: qml/Components/Lockscreen.qml:245
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101+msgstr "በርካታ የተሳሳቱ ሙከራዎች"
102+
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "የ ድንገተኛ ጥሪ"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr "እሺ"
110110
@@ -117,23 +117,15 @@ msgstr "ሰላም %1"
117117msgid "Hello"
118118msgstr "ሰላም"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr "መሰረዣ"
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr "ጨርሷል"
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr "አነስተኛ መመልከቻ"
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr "ሁሉንም መመልከቻ"
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "መፈለጊያ"
139131
@@ -201,12 +193,16 @@ msgstr "አሁን ይናገሩ..."
201193msgid "Speaking..."
202194msgstr "በመናገር ላይ..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "የመግቢያ ቃል ማሳያ"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,48 +245,61 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
257+msgid "Enter your PIN"
258+msgstr ""
259+
260+#: qml/Shell.qml:273
261261#, qt-format
262262msgid "Enter your %1"
263263msgstr "ያስገቡ የ እርስዎን %1"
264264
265−#: qml/Shell.qml:270
265+#: qml/Shell.qml:274
266266#, qt-format
267−msgid "Incorrect %1"
268−msgstr "የተሳሳተ %1"
269−
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
272−msgstr "እባክዎን እንደ ገና-ያስገቡ"
267+msgid "Sorry, incorrect %1"
268+msgstr "አዝናለሁ: የተሳሳተ%1"
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr "ይህ የመጨረሻ ሙከራዎ ነው"
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
296292msgstr ""
293+
294+#~ msgid "CANCEL"
295+#~ msgstr "መሰረዣ"
296+
297+#~ msgid "DONE"
298+#~ msgstr "ጨርሷል"
299+
300+#, qt-format
301+#~ msgid "Incorrect %1"
302+#~ msgstr "የተሳሳተ %1"
303+
304+#~ msgid "Please re-enter"
305+#~ msgstr "እባክዎን እንደ ገና-ያስገቡ"
po/ar.po+37−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -95,19 +95,19 @@ msgstr ""
9595"أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر على "
9696"الشاشة للبدء"
9797
98−#: qml/Components/Lockscreen.qml:161
99−msgid "Too many incorrect attempts"
98+#: qml/Components/Lockscreen.qml:167
99+msgid "Please wait"
100100msgstr ""
101101
102−#: qml/Components/Lockscreen.qml:163
103−msgid "Please wait"
102+#: qml/Components/Lockscreen.qml:172
103+msgid "Too many incorrect attempts"
104104msgstr ""
105105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107107msgid "Emergency Call"
108108msgstr "مكالمة طوارئ"
109109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111111msgid "OK"
112112msgstr ""
113113
@@ -120,23 +120,15 @@ msgstr "مرحبا %1"
120120msgid "Hello"
121121msgstr "مرحبًا"
122122
123−#: qml/Components/PinLockscreen.qml:197
124−msgid "CANCEL"
125−msgstr ""
126−
127−#: qml/Components/PinLockscreen.qml:215
128−msgid "DONE"
129−msgstr ""
130−
131−#: qml/Dash/GenericScopeView.qml:360
123+#: qml/Dash/GenericScopeView.qml:361
132124msgid "See less"
133125msgstr "شاهد أقل"
134126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See all"
137129msgstr ""
138130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140132msgid "Search"
141133msgstr "ابحث"
142134
@@ -204,13 +196,17 @@ msgstr "تكلم الآن..."
204196msgid "Speaking..."
205197msgstr "تتكلم الآن..."
206198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208200msgid "Show password"
209201msgstr "عرض كلمة السر"
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
212−msgid "Please enter SIM PIN"
213−msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
204+msgid "Enter SIM PIN"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214210
215211#: qml/Panel/ActiveCallHint.qml:77
216212msgid "Tap to return to call..."
@@ -252,48 +248,51 @@ msgstr ""
252248msgid "Roaming"
253249msgstr ""
254250
255−#: qml/Shell.qml:267
256−msgid "passphrase"
251+#: qml/Shell.qml:266
252+msgid "Enter your passphrase"
257253msgstr ""
258254
259255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261257msgstr ""
262258
263259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266261msgstr ""
267262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271266msgstr ""
272267
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
268+#: qml/Shell.qml:274
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275271msgstr ""
276272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278274msgid "Sorry, incorrect passphrase."
279275msgstr ""
280276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282278msgid "Sorry, incorrect passcode."
283279msgstr ""
284280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286282msgid "This will be your last attempt."
287283msgstr ""
288284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290286msgid ""
291287"If passphrase is entered incorrectly, your phone will conduct a factory "
292288"reset and all personal data will be deleted."
293289msgstr ""
294290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296292msgid ""
297293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298294"and all personal data will be deleted."
299295msgstr ""
296+
297+#~ msgid "Please enter SIM PIN"
298+#~ msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
po/ast.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-07-25 16:51+0000\n"
1212"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -96,19 +96,19 @@ msgstr ""
9696"Agora yá domines los xestos de los berbesos y pues entamar a usar el "
9797"teléfonu<br><br>Toca la pantalla pa comenzar"
9898
99−#: qml/Components/Lockscreen.qml:161
100−msgid "Too many incorrect attempts"
99+#: qml/Components/Lockscreen.qml:167
100+msgid "Please wait"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:163
104−msgid "Please wait"
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:245
107+#: qml/Components/Lockscreen.qml:206
108108msgid "Emergency Call"
109109msgstr "Llamada d'emerxencia"
110110
111−#: qml/Components/Lockscreen.qml:268
111+#: qml/Components/Lockscreen.qml:226
112112msgid "OK"
113113msgstr "Aceutar"
114114
@@ -121,23 +121,15 @@ msgstr "Hola %1"
121121msgid "Hello"
122122msgstr "Hola"
123123
124−#: qml/Components/PinLockscreen.qml:197
125−msgid "CANCEL"
126−msgstr "ENCABOXAR"
127−
128−#: qml/Components/PinLockscreen.qml:215
129−msgid "DONE"
130−msgstr "FECHO"
131−
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See less"
134126msgstr "Ver menos"
135127
136−#: qml/Dash/GenericScopeView.qml:360
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See all"
138130msgstr "Ver too"
139131
140−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141133msgid "Search"
142134msgstr "Guetar"
143135
@@ -205,13 +197,17 @@ msgstr "Fala agora…"
205197msgid "Speaking..."
206198msgstr "Falando…"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209201msgid "Show password"
210202msgstr "Amosar contraseña"
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
213−msgid "Please enter SIM PIN"
214−msgstr "Escribi'l PIN de la SIM"
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
205+msgid "Enter SIM PIN"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215211
216212#: qml/Panel/ActiveCallHint.qml:77
217213msgid "Tap to return to call..."
@@ -253,48 +249,57 @@ msgstr ""
253249msgid "Roaming"
254250msgstr ""
255251
256−#: qml/Shell.qml:267
257−msgid "passphrase"
252+#: qml/Shell.qml:266
253+msgid "Enter your passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262258msgstr ""
263259
264260#: qml/Shell.qml:269
265−#, qt-format
266−msgid "Enter your %1"
261+msgid "Enter your PIN"
267262msgstr ""
268263
269−#: qml/Shell.qml:270
264+#: qml/Shell.qml:273
270265#, qt-format
271−msgid "Incorrect %1"
266+msgid "Enter your %1"
272267msgstr ""
273268
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
269+#: qml/Shell.qml:274
270+#, qt-format
271+msgid "Sorry, incorrect %1"
276272msgstr ""
277273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279275msgid "Sorry, incorrect passphrase."
280276msgstr ""
281277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283279msgid "Sorry, incorrect passcode."
284280msgstr ""
285281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287283msgid "This will be your last attempt."
288284msgstr ""
289285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291287msgid ""
292288"If passphrase is entered incorrectly, your phone will conduct a factory "
293289"reset and all personal data will be deleted."
294290msgstr ""
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
297+
298+#~ msgid "CANCEL"
299+#~ msgstr "ENCABOXAR"
300+
301+#~ msgid "DONE"
302+#~ msgstr "FECHO"
303+
304+#~ msgid "Please enter SIM PIN"
305+#~ msgstr "Escribi'l PIN de la SIM"
po/az.po+99−75
@@ -7,44 +7,44 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-01-15 09:50+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 22:12+0000\n"
1212"Last-Translator: Turan Mahmudov <turan.mahmudov@gmail.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
22−msgstr ""
22+msgstr "Parol: "
2323
2424#: plugins/Unity/Launcher/launcheritem.cpp:43
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
2626msgid "Pin shortcut"
27−msgstr ""
27+msgstr "Pin qısayolu"
2828
2929#: plugins/Unity/Launcher/launcheritem.cpp:73
3030msgid "Unpin shortcut"
31−msgstr ""
31+msgstr "Açma qısayolu"
3232
3333#: qml/Components/Dialogs.qml:142
3434msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Söndürmək istədiyinizə əminsiniz?"
3636
3737#: qml/Components/Dialogs.qml:144
3838msgid "Power off"
39−msgstr ""
39+msgstr "Söndür"
4040
4141#: qml/Components/Dialogs.qml:153
4242msgid "Restart"
43−msgstr ""
43+msgstr "Yenidən Başlat"
4444
4545#: qml/Components/Dialogs.qml:162
4646msgid "Cancel"
47−msgstr ""
47+msgstr "İmtina"
4848
4949#: qml/Components/EdgeDemoOverlay.qml:151
5050msgid "Skip intro"
@@ -92,22 +92,24 @@ msgid ""
9292"You have now mastered the edge gestures and can start using the "
9393"phone<br><br>Tap on the screen to start"
9494msgstr ""
95+"Siz künc jestlərini mənimsəmisiniz və telefonu istifadə etməyə başlaya "
96+"bilərsiniz.<br><br>Başlamaq üçün ekrana toxunun"
9597
96−#: qml/Components/Lockscreen.qml:161
97−msgid "Too many incorrect attempts"
98−msgstr ""
99−
100−#: qml/Components/Lockscreen.qml:163
98+#: qml/Components/Lockscreen.qml:167
10199msgid "Please wait"
102−msgstr ""
100+msgstr "Lütfən gözləyin"
101+
102+#: qml/Components/Lockscreen.qml:172
103+msgid "Too many incorrect attempts"
104+msgstr "Çoxlu yanlış cəhd"
103105
104−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
105107msgid "Emergency Call"
106108msgstr "Zərurət zəngi"
107109
108−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
109111msgid "OK"
110−msgstr ""
112+msgstr "ОК"
111113
112114#: qml/Components/PassphraseLockscreen.qml:61
113115#, qt-format
@@ -118,33 +120,25 @@ msgstr "Xoş gördük %1"
118120msgid "Hello"
119121msgstr "Xoş gördük"
120122
121−#: qml/Components/PinLockscreen.qml:197
122−msgid "CANCEL"
123−msgstr ""
124−
125−#: qml/Components/PinLockscreen.qml:215
126−msgid "DONE"
127−msgstr ""
128−
129−#: qml/Dash/GenericScopeView.qml:360
123+#: qml/Dash/GenericScopeView.qml:361
130124msgid "See less"
131−msgstr ""
125+msgstr "Daha az gör"
132126
133−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
134128msgid "See all"
135−msgstr ""
129+msgstr "Hamısını gör"
136130
137−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
138132msgid "Search"
139133msgstr "Axtar"
140134
141135#: qml/Dash/Previews/PreviewActionCombo.qml:34
142136msgid "More..."
143−msgstr ""
137+msgstr "Ətraflı..."
144138
145139#: qml/Dash/Previews/PreviewActionCombo.qml:34
146140msgid "Less..."
147−msgstr ""
141+msgstr "Az..."
148142
149143#: qml/Dash/Previews/PreviewRatingInput.qml:81
150144msgid "Rate this"
@@ -164,23 +158,23 @@ msgstr ""
164158
165159#: qml/Dash/ScopesOverview.qml:408
166160msgid "Done"
167−msgstr ""
161+msgstr "Başa çatdı"
168162
169163#: qml/Dash/ScopesOverview.qml:434
170164msgid "Store"
171−msgstr ""
165+msgstr "Saxla"
172166
173167#: qml/Dash/ScopesOverviewTab.qml:36
174168msgid "Favorites"
175−msgstr ""
169+msgstr "Seçilmişlər"
176170
177171#: qml/Dash/ScopesOverviewTab.qml:54
178172msgid "All"
179−msgstr ""
173+msgstr "Hamısı"
180174
181175#: qml/Greeter/Greeter.qml:157
182176msgid "Swipe to unlock"
183−msgstr ""
177+msgstr "Kilidi açmaq üçün sürüşdürün"
184178
185179#: qml/Hud/HudParametrizedActionsPage.qml:132
186180msgid "Confirm"
@@ -202,96 +196,126 @@ msgstr "Danışın..."
202196msgid "Speaking..."
203197msgstr "Danışır..."
204198
205−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
206200msgid "Show password"
207201msgstr "Parolu göstər"
208202
209−#: qml/Notifications/NotificationMenuItemFactory.qml:115
210−msgid "Please enter SIM PIN"
211−msgstr ""
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
204+msgid "Enter SIM PIN"
205+msgstr "SIM PIN kodunuzu daxil edin"
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr "Təəssüf ki, PIN yanlışdır"
212210
213211#: qml/Panel/ActiveCallHint.qml:77
214212msgid "Tap to return to call..."
215−msgstr ""
213+msgstr "Zəngə qayıtmaq üçün toxunun..."
216214
217215#: qml/Panel/ActiveCallHint.qml:90
218216msgid "Conference"
219−msgstr ""
217+msgstr "Konfrans"
220218
221219#: qml/Panel/Indicators/MenuItemFactory.qml:651
222220msgid "In queue…"
223−msgstr ""
221+msgstr "Növbədədir..."
224222
225223#: qml/Panel/Indicators/MenuItemFactory.qml:655
226224msgid "Downloading"
227−msgstr ""
225+msgstr "Endirilir"
228226
229227#: qml/Panel/Indicators/MenuItemFactory.qml:657
230228msgid "Paused, tap to resume"
231−msgstr ""
229+msgstr "Saxlanıldı, davam etmək üçün toxunun"
232230
233231#: qml/Panel/Indicators/MenuItemFactory.qml:659
234232msgid "Canceled"
235−msgstr ""
233+msgstr "İmtina edildi"
236234
237235#: qml/Panel/Indicators/MenuItemFactory.qml:661
238236msgid "Finished"
239−msgstr ""
237+msgstr "Bitdi"
240238
241239#: qml/Panel/Indicators/MenuItemFactory.qml:663
242240msgid "Failed, tap to retry"
243−msgstr ""
241+msgstr "Alınmadı, davam etmək üçün toxunun"
244242
245243#: qml/Panel/Indicators/ModemInfoItem.qml:105
246244msgid "Unlock SIM"
247−msgstr ""
245+msgstr "SIM kilidini aç"
248246
249247#: qml/Panel/Indicators/RoamingIndication.qml:27
250248msgid "Roaming"
251−msgstr ""
249+msgstr "Rominq"
252250
253−#: qml/Shell.qml:267
254−msgid "passphrase"
255−msgstr ""
251+#: qml/Shell.qml:266
252+msgid "Enter your passphrase"
253+msgstr "Açar sözünüzü daxil edin"
256254
257255#: qml/Shell.qml:267
258−msgid "passcode"
259−msgstr ""
256+msgid "Sorry, incorrect passphrase"
257+msgstr "Təəssüf ki, açar söz yanlışdır"
260258
261259#: qml/Shell.qml:269
260+msgid "Enter your PIN"
261+msgstr "PIN kodunuzu daxil edin"
262+
263+#: qml/Shell.qml:273
262264#, qt-format
263265msgid "Enter your %1"
264−msgstr ""
266+msgstr "%1 daxil edin"
265267
266−#: qml/Shell.qml:270
268+#: qml/Shell.qml:274
267269#, qt-format
268−msgid "Incorrect %1"
269−msgstr ""
270−
271−#: qml/Shell.qml:272
272−msgid "Please re-enter"
273−msgstr ""
270+msgid "Sorry, incorrect %1"
271+msgstr "Təəssüf ki, %1 yanlışdır"
274272
275−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
276274msgid "Sorry, incorrect passphrase."
277−msgstr ""
275+msgstr "Təəssüf ki, açar söz yanlışdır."
278276
279−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
280278msgid "Sorry, incorrect passcode."
281−msgstr ""
279+msgstr "Təəssüf ki, açar kod yanlışdır."
282280
283−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
284282msgid "This will be your last attempt."
285−msgstr ""
283+msgstr "Bu sizin son cəhdiniz olacaq."
286284
287−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
288286msgid ""
289287"If passphrase is entered incorrectly, your phone will conduct a factory "
290288"reset and all personal data will be deleted."
291289msgstr ""
290+"Əgər açar söz yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
291+"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
292292
293−#: qml/Shell.qml:311
293+#: qml/Shell.qml:315
294294msgid ""
295295"If passcode is entered incorrectly, your phone will conduct a factory reset "
296296"and all personal data will be deleted."
297297msgstr ""
298+"Əgər açar kod yanlış daxil edilibsə, onda telefonunuz fabrika parametrlərinə "
299+"geri qayıdacaq və bütün şəxsi məlumatlarınız silinəcək."
300+
301+#~ msgid "DONE"
302+#~ msgstr "OLDU"
303+
304+#~ msgid "CANCEL"
305+#~ msgstr "İMTİNA"
306+
307+#~ msgid "Please enter SIM PIN"
308+#~ msgstr "SIM PIN kodunu yazın"
309+
310+#, qt-format
311+#~ msgid "Incorrect %1"
312+#~ msgstr "Yanlış %1"
313+
314+#~ msgid "Please re-enter"
315+#~ msgstr "Lütfən yenidən daxil edin"
316+
317+#~ msgid "passphrase"
318+#~ msgstr "açar söz"
319+
320+#~ msgid "passcode"
321+#~ msgstr "açar kod"
po/bg.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -99,19 +99,19 @@ msgid ""
9999"phone<br><br>Tap on the screen to start"
100100msgstr ""
101101
102−#: qml/Components/Lockscreen.qml:161
103−msgid "Too many incorrect attempts"
102+#: qml/Components/Lockscreen.qml:167
103+msgid "Please wait"
104104msgstr ""
105105
106−#: qml/Components/Lockscreen.qml:163
107−msgid "Please wait"
106+#: qml/Components/Lockscreen.qml:172
107+msgid "Too many incorrect attempts"
108108msgstr ""
109109
110−#: qml/Components/Lockscreen.qml:245
110+#: qml/Components/Lockscreen.qml:206
111111msgid "Emergency Call"
112112msgstr "Спешно повикване"
113113
114−#: qml/Components/Lockscreen.qml:268
114+#: qml/Components/Lockscreen.qml:226
115115msgid "OK"
116116msgstr ""
117117
@@ -124,23 +124,15 @@ msgstr "Здравей, %1"
124124msgid "Hello"
125125msgstr "Здравей"
126126
127−#: qml/Components/PinLockscreen.qml:197
128−msgid "CANCEL"
129−msgstr ""
130−
131−#: qml/Components/PinLockscreen.qml:215
132−msgid "DONE"
133−msgstr ""
134−
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See less"
137129msgstr ""
138130
139−#: qml/Dash/GenericScopeView.qml:360
131+#: qml/Dash/GenericScopeView.qml:361
140132msgid "See all"
141133msgstr ""
142134
143−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
135+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
144136msgid "Search"
145137msgstr "Търсене"
146138
@@ -208,12 +200,16 @@ msgstr "Говорете сега..."
208200msgid "Speaking..."
209201msgstr "Говорете..."
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:100
203+#: qml/Notifications/NotificationMenuItemFactory.qml:105
212204msgid "Show password"
213205msgstr "Покажи паролата"
214206
215−#: qml/Notifications/NotificationMenuItemFactory.qml:115
216−msgid "Please enter SIM PIN"
207+#: qml/Notifications/NotificationMenuItemFactory.qml:120
208+msgid "Enter SIM PIN"
209+msgstr ""
210+
211+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
212+msgid "Sorry, incorrect PIN"
217213msgstr ""
218214
219215#: qml/Panel/ActiveCallHint.qml:77
@@ -256,47 +252,47 @@ msgstr ""
256252msgid "Roaming"
257253msgstr ""
258254
259−#: qml/Shell.qml:267
260−msgid "passphrase"
255+#: qml/Shell.qml:266
256+msgid "Enter your passphrase"
261257msgstr ""
262258
263259#: qml/Shell.qml:267
264−msgid "passcode"
260+msgid "Sorry, incorrect passphrase"
265261msgstr ""
266262
267263#: qml/Shell.qml:269
268−#, qt-format
269−msgid "Enter your %1"
264+msgid "Enter your PIN"
270265msgstr ""
271266
272−#: qml/Shell.qml:270
267+#: qml/Shell.qml:273
273268#, qt-format
274−msgid "Incorrect %1"
269+msgid "Enter your %1"
275270msgstr ""
276271
277−#: qml/Shell.qml:272
278−msgid "Please re-enter"
272+#: qml/Shell.qml:274
273+#, qt-format
274+msgid "Sorry, incorrect %1"
279275msgstr ""
280276
281−#: qml/Shell.qml:306
277+#: qml/Shell.qml:310
282278msgid "Sorry, incorrect passphrase."
283279msgstr ""
284280
285−#: qml/Shell.qml:307
281+#: qml/Shell.qml:311
286282msgid "Sorry, incorrect passcode."
287283msgstr ""
288284
289−#: qml/Shell.qml:308
285+#: qml/Shell.qml:312
290286msgid "This will be your last attempt."
291287msgstr ""
292288
293−#: qml/Shell.qml:310
289+#: qml/Shell.qml:314
294290msgid ""
295291"If passphrase is entered incorrectly, your phone will conduct a factory "
296292"reset and all personal data will be deleted."
297293msgstr ""
298294
299−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
300296msgid ""
301297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302298"and all personal data will be deleted."
po/br.po+82−60
@@ -7,19 +7,19 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-07-28 06:44+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 08:28+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
22−msgstr ""
22+msgstr "Ger-tremen : "
2323
2424#: plugins/Unity/Launcher/launcheritem.cpp:43
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,19 +32,19 @@ msgstr "Dispilhennañ ar verradenn"
3232
3333#: qml/Components/Dialogs.qml:142
3434msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Ha sur oc'h e fell deoc'h lazhañ ar benveg ?"
3636
3737#: qml/Components/Dialogs.qml:144
3838msgid "Power off"
39−msgstr ""
39+msgstr "Lazhañ"
4040
4141#: qml/Components/Dialogs.qml:153
4242msgid "Restart"
43−msgstr ""
43+msgstr "Adloc'hañ"
4444
4545#: qml/Components/Dialogs.qml:162
4646msgid "Cancel"
47−msgstr ""
47+msgstr "Nullañ"
4848
4949#: qml/Components/EdgeDemoOverlay.qml:151
5050msgid "Skip intro"
@@ -99,19 +99,19 @@ msgstr ""
9999"Mestroniañ a rit ar jestroù ha gallout a rit kregiñ da implijout ar "
100100"pellgomzer<br><br>Touchit d'ar skramm evit kregiñ ganti"
101101
102−#: qml/Components/Lockscreen.qml:161
103−msgid "Too many incorrect attempts"
104−msgstr ""
105−
106−#: qml/Components/Lockscreen.qml:163
102+#: qml/Components/Lockscreen.qml:167
107103msgid "Please wait"
108−msgstr ""
104+msgstr "Gortozit, mar plij"
105+
106+#: qml/Components/Lockscreen.qml:172
107+msgid "Too many incorrect attempts"
108+msgstr "Re a daolioù-esae direizh"
109109
110−#: qml/Components/Lockscreen.qml:245
110+#: qml/Components/Lockscreen.qml:206
111111msgid "Emergency Call"
112112msgstr "Pellgomzadenn vallus"
113113
114−#: qml/Components/Lockscreen.qml:268
114+#: qml/Components/Lockscreen.qml:226
115115msgid "OK"
116116msgstr "Mat eo"
117117
@@ -124,23 +124,15 @@ msgstr "Demat %1"
124124msgid "Hello"
125125msgstr "Demat"
126126
127−#: qml/Components/PinLockscreen.qml:197
128−msgid "CANCEL"
129−msgstr "NULLAÑ"
130−
131−#: qml/Components/PinLockscreen.qml:215
132−msgid "DONE"
133−msgstr "ECHU"
134−
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See less"
137129msgstr "Gwelet nebeutoc'h"
138130
139−#: qml/Dash/GenericScopeView.qml:360
131+#: qml/Dash/GenericScopeView.qml:361
140132msgid "See all"
141133msgstr "Gwelet pep tra"
142134
143−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
135+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
144136msgid "Search"
145137msgstr "Klask"
146138
@@ -166,23 +158,23 @@ msgstr "Kas"
166158
167159#: qml/Dash/ScopesOverview.qml:201
168160msgid "Manage Dash"
169−msgstr ""
161+msgstr "Merañ an daolenn-vourzh"
170162
171163#: qml/Dash/ScopesOverview.qml:408
172164msgid "Done"
173−msgstr ""
165+msgstr "Graet eo"
174166
175167#: qml/Dash/ScopesOverview.qml:434
176168msgid "Store"
177−msgstr ""
169+msgstr "Enrollañ"
178170
179171#: qml/Dash/ScopesOverviewTab.qml:36
180172msgid "Favorites"
181−msgstr ""
173+msgstr "Gwellañ deuet"
182174
183175#: qml/Dash/ScopesOverviewTab.qml:54
184176msgid "All"
185−msgstr ""
177+msgstr "An holl anezho"
186178
187179#: qml/Greeter/Greeter.qml:157
188180msgid "Swipe to unlock"
@@ -208,13 +200,17 @@ msgstr "Komzit bremañ..."
208200msgid "Speaking..."
209201msgstr "O komz..."
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:100
203+#: qml/Notifications/NotificationMenuItemFactory.qml:105
212204msgid "Show password"
213205msgstr "Diskouez ar ger-tremen"
214206
215−#: qml/Notifications/NotificationMenuItemFactory.qml:115
216−msgid "Please enter SIM PIN"
217−msgstr "Ebarzhit kod PIN ho kartenn SIM, mar plij"
207+#: qml/Notifications/NotificationMenuItemFactory.qml:120
208+msgid "Enter SIM PIN"
209+msgstr "Ebarzhit kod PIN ar gartenn SIM"
210+
211+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
212+msgid "Sorry, incorrect PIN"
213+msgstr "Siwazh, kod PIN direizh"
218214
219215#: qml/Panel/ActiveCallHint.qml:77
220216msgid "Tap to return to call..."
@@ -250,54 +246,80 @@ msgstr "C'hwitet, touchit evit adkregiñ"
250246
251247#: qml/Panel/Indicators/ModemInfoItem.qml:105
252248msgid "Unlock SIM"
253−msgstr ""
249+msgstr "Dibrennañ ar gartenn SIM"
254250
255251#: qml/Panel/Indicators/RoamingIndication.qml:27
256252msgid "Roaming"
257−msgstr ""
253+msgstr "O kantren"
258254
259−#: qml/Shell.qml:267
260−msgid "passphrase"
261−msgstr ""
255+#: qml/Shell.qml:266
256+msgid "Enter your passphrase"
257+msgstr "Ebarzhit ho frazenn-dremen"
262258
263259#: qml/Shell.qml:267
264−msgid "passcode"
265−msgstr ""
260+msgid "Sorry, incorrect passphrase"
261+msgstr "Siwazh, frazenn-dremen direizh"
266262
267263#: qml/Shell.qml:269
264+msgid "Enter your PIN"
265+msgstr "Ebarzhit ho kod PIN"
266+
267+#: qml/Shell.qml:273
268268#, qt-format
269269msgid "Enter your %1"
270−msgstr ""
270+msgstr "Ebarzhit ho %1"
271271
272−#: qml/Shell.qml:270
272+#: qml/Shell.qml:274
273273#, qt-format
274−msgid "Incorrect %1"
275−msgstr ""
274+msgid "Sorry, incorrect %1"
275+msgstr "Siwazh, %1 direizh"
276276
277−#: qml/Shell.qml:272
278−msgid "Please re-enter"
279−msgstr ""
280−
281−#: qml/Shell.qml:306
277+#: qml/Shell.qml:310
282278msgid "Sorry, incorrect passphrase."
283−msgstr ""
279+msgstr "Siwazh, frazenn-dremen direizh"
284280
285−#: qml/Shell.qml:307
281+#: qml/Shell.qml:311
286282msgid "Sorry, incorrect passcode."
287−msgstr ""
283+msgstr "Siwazh, kod-tremen direizh"
288284
289−#: qml/Shell.qml:308
285+#: qml/Shell.qml:312
290286msgid "This will be your last attempt."
291−msgstr ""
287+msgstr "Ho taol-esae diwezhañ e vo."
292288
293−#: qml/Shell.qml:310
289+#: qml/Shell.qml:314
294290msgid ""
295291"If passphrase is entered incorrectly, your phone will conduct a factory "
296292"reset and all personal data will be deleted."
297293msgstr ""
294+"Ma vez ebarzhet ur frazenn-dremen direizh, e vo adderaouekaet ho pellgomzer "
295+"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel"
298296
299−#: qml/Shell.qml:311
297+#: qml/Shell.qml:315
300298msgid ""
301299"If passcode is entered incorrectly, your phone will conduct a factory reset "
302300"and all personal data will be deleted."
303301msgstr ""
302+"Ma vez ebarzhet ur c'hod-tremen direizh, e vo adderaouekaet ho pellgomzer "
303+"gant arventennoù al labouradeg hag e vo diverket an holl roadennoù personel."
304+
305+#~ msgid "CANCEL"
306+#~ msgstr "NULLAÑ"
307+
308+#~ msgid "DONE"
309+#~ msgstr "ECHU"
310+
311+#~ msgid "Please enter SIM PIN"
312+#~ msgstr "Ebarzhit kod PIN ho kartenn SIM, mar plij"
313+
314+#~ msgid "passcode"
315+#~ msgstr "kod-tremen"
316+
317+#~ msgid "passphrase"
318+#~ msgstr "frazenn-dremen"
319+
320+#, qt-format
321+#~ msgid "Incorrect %1"
322+#~ msgstr "%1 direizh"
323+
324+#~ msgid "Please re-enter"
325+#~ msgstr "Ebarzhit en-dro, mar plij"
po/bs.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr ""
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/ca.po+61−43
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-17 03:42+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 17:37+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -100,19 +100,19 @@ msgstr ""
100100"Ja heu après com utilitzar els gestos de les vores per fer servir el "
101101"telèfon<br><br>Feu un toc a la pantalla per començar"
102102
103−#: qml/Components/Lockscreen.qml:161
104−msgid "Too many incorrect attempts"
105−msgstr "Massa intents incorrectes"
106−
107−#: qml/Components/Lockscreen.qml:163
103+#: qml/Components/Lockscreen.qml:167
108104msgid "Please wait"
109105msgstr "Espereu"
110106
111−#: qml/Components/Lockscreen.qml:245
107+#: qml/Components/Lockscreen.qml:172
108+msgid "Too many incorrect attempts"
109+msgstr "Massa intents incorrectes"
110+
111+#: qml/Components/Lockscreen.qml:206
112112msgid "Emergency Call"
113113msgstr "Trucada d'emergència"
114114
115−#: qml/Components/Lockscreen.qml:268
115+#: qml/Components/Lockscreen.qml:226
116116msgid "OK"
117117msgstr "D'acord"
118118
@@ -125,23 +125,15 @@ msgstr "Hola %1"
125125msgid "Hello"
126126msgstr "Hola"
127127
128−#: qml/Components/PinLockscreen.qml:197
129−msgid "CANCEL"
130−msgstr "Cancel·la"
131−
132−#: qml/Components/PinLockscreen.qml:215
133−msgid "DONE"
134−msgstr "Fet"
135−
136−#: qml/Dash/GenericScopeView.qml:360
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See less"
138130msgstr "Mostra'n menys"
139131
140−#: qml/Dash/GenericScopeView.qml:360
132+#: qml/Dash/GenericScopeView.qml:361
141133msgid "See all"
142134msgstr "Mostra-ho tot"
143135
144−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
136+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
145137msgid "Search"
146138msgstr "Cerca"
147139
@@ -209,13 +201,17 @@ msgstr "Parleu..."
209201msgid "Speaking..."
210202msgstr "S'està parlant..."
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:100
204+#: qml/Notifications/NotificationMenuItemFactory.qml:105
213205msgid "Show password"
214206msgstr "Mostra la contrasenya"
215207
216−#: qml/Notifications/NotificationMenuItemFactory.qml:115
217−msgid "Please enter SIM PIN"
218−msgstr "Introduïu el PIN de la targeta SIM"
208+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209+msgid "Enter SIM PIN"
210+msgstr "Introduïu el PIN de la tarjeta SIM"
211+
212+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
213+msgid "Sorry, incorrect PIN"
214+msgstr ""
219215
220216#: qml/Panel/ActiveCallHint.qml:77
221217msgid "Tap to return to call..."
@@ -257,41 +253,41 @@ msgstr "Desbloca la SIM"
257253msgid "Roaming"
258254msgstr "Itinerància"
259255
260−#: qml/Shell.qml:267
261−msgid "passphrase"
262−msgstr "contrasenya"
256+#: qml/Shell.qml:266
257+msgid "Enter your passphrase"
258+msgstr ""
263259
264260#: qml/Shell.qml:267
265−msgid "passcode"
266−msgstr "clau"
261+msgid "Sorry, incorrect passphrase"
262+msgstr ""
267263
268264#: qml/Shell.qml:269
265+msgid "Enter your PIN"
266+msgstr ""
267+
268+#: qml/Shell.qml:273
269269#, qt-format
270270msgid "Enter your %1"
271271msgstr "Introduïu la %1"
272272
273−#: qml/Shell.qml:270
273+#: qml/Shell.qml:274
274274#, qt-format
275−msgid "Incorrect %1"
276−msgstr "La %1 és incorrecta"
277−
278−#: qml/Shell.qml:272
279−msgid "Please re-enter"
280−msgstr "Torneu-la a introduir"
275+msgid "Sorry, incorrect %1"
276+msgstr ""
281277
282−#: qml/Shell.qml:306
278+#: qml/Shell.qml:310
283279msgid "Sorry, incorrect passphrase."
284280msgstr "La contrasenya és incorrecta"
285281
286−#: qml/Shell.qml:307
282+#: qml/Shell.qml:311
287283msgid "Sorry, incorrect passcode."
288284msgstr "La clau és incorrecta"
289285
290−#: qml/Shell.qml:308
286+#: qml/Shell.qml:312
291287msgid "This will be your last attempt."
292288msgstr "Aquest serà el darrer intent."
293289
294−#: qml/Shell.qml:310
290+#: qml/Shell.qml:314
295291msgid ""
296292"If passphrase is entered incorrectly, your phone will conduct a factory "
297293"reset and all personal data will be deleted."
@@ -300,10 +296,32 @@ msgstr ""
300296"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
301297"personals."
302298
303−#: qml/Shell.qml:311
299+#: qml/Shell.qml:315
304300msgid ""
305301"If passcode is entered incorrectly, your phone will conduct a factory reset "
306302"and all personal data will be deleted."
307303msgstr ""
308304"Si la clau s'introdueix de manera incorrecta, el telèfon es reinicialitzarà "
309305"a l'estat de fàbrica i se suprimiran totes les dades personals."
306+
307+#~ msgid "Please enter SIM PIN"
308+#~ msgstr "Introduïu el PIN de la targeta SIM"
309+
310+#~ msgid "DONE"
311+#~ msgstr "Fet"
312+
313+#~ msgid "CANCEL"
314+#~ msgstr "Cancel·la"
315+
316+#~ msgid "passphrase"
317+#~ msgstr "contrasenya"
318+
319+#~ msgid "Please re-enter"
320+#~ msgstr "Torneu-la a introduir"
321+
322+#~ msgid "passcode"
323+#~ msgstr "clau"
324+
325+#, qt-format
326+#~ msgid "Incorrect %1"
327+#~ msgstr "La %1 és incorrecta"
po/ckb.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:29+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "هێڵی فریاگوزاری"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr "سڵاو %1"
117117msgid "Hello"
118118msgstr "سڵاو"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "گەڕان"
139131
@@ -201,12 +193,16 @@ msgstr "ئێستا قسە بکە"
201193msgid "Speaking..."
202194msgstr "قسە دەکات..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "تێپەڕەوشە پیشان بدە"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/cs.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "Tísňové volání"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr "Ahoj %1"
117117msgid "Hello"
118118msgstr "Ahoj"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Hledat"
139131
@@ -201,12 +193,16 @@ msgstr "Mluvte..."
201193msgid "Speaking..."
202194msgstr "Mluvte..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "Zobrazit heslo"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/da.po+43−38
@@ -8,15 +8,15 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1515"MIME-Version: 1.0\n"
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
18−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
19−"X-Generator: Launchpad (build 17156)\n"
18+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
19+"X-Generator: Launchpad (build 17163)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:129
2222msgid "Password: "
@@ -95,19 +95,19 @@ msgstr ""
9595"Du mestrer nu kantbevægelserne og kan begynde at bruge telefonen<br><br>Tryk "
9696"på skærmen for at starte"
9797
98−#: qml/Components/Lockscreen.qml:161
99−msgid "Too many incorrect attempts"
98+#: qml/Components/Lockscreen.qml:167
99+msgid "Please wait"
100100msgstr ""
101101
102−#: qml/Components/Lockscreen.qml:163
103−msgid "Please wait"
102+#: qml/Components/Lockscreen.qml:172
103+msgid "Too many incorrect attempts"
104104msgstr ""
105105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107107msgid "Emergency Call"
108108msgstr "Nødopkald"
109109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111111msgid "OK"
112112msgstr "O.k."
113113
@@ -120,23 +120,15 @@ msgstr "Hej %1"
120120msgid "Hello"
121121msgstr "Hej"
122122
123−#: qml/Components/PinLockscreen.qml:197
124−msgid "CANCEL"
125−msgstr "ANNULLÉR"
126−
127−#: qml/Components/PinLockscreen.qml:215
128−msgid "DONE"
129−msgstr "FÆRDIG"
130−
131−#: qml/Dash/GenericScopeView.qml:360
123+#: qml/Dash/GenericScopeView.qml:361
132124msgid "See less"
133125msgstr "Vis mindre"
134126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See all"
137129msgstr "Se alle"
138130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140132msgid "Search"
141133msgstr "Søg"
142134
@@ -204,13 +196,17 @@ msgstr "Tal nu..."
204196msgid "Speaking..."
205197msgstr "Taler..."
206198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208200msgid "Show password"
209201msgstr "Vis adgangskode"
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
212−msgid "Please enter SIM PIN"
213−msgstr "Indtast venligst PIN for SIM"
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
204+msgid "Enter SIM PIN"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214210
215211#: qml/Panel/ActiveCallHint.qml:77
216212msgid "Tap to return to call..."
@@ -252,48 +248,57 @@ msgstr ""
252248msgid "Roaming"
253249msgstr ""
254250
255−#: qml/Shell.qml:267
256−msgid "passphrase"
251+#: qml/Shell.qml:266
252+msgid "Enter your passphrase"
257253msgstr ""
258254
259255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261257msgstr ""
262258
263259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266261msgstr ""
267262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271266msgstr ""
272267
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
268+#: qml/Shell.qml:274
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275271msgstr ""
276272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278274msgid "Sorry, incorrect passphrase."
279275msgstr ""
280276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282278msgid "Sorry, incorrect passcode."
283279msgstr ""
284280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286282msgid "This will be your last attempt."
287283msgstr ""
288284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290286msgid ""
291287"If passphrase is entered incorrectly, your phone will conduct a factory "
292288"reset and all personal data will be deleted."
293289msgstr ""
294290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296292msgid ""
297293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298294"and all personal data will be deleted."
299295msgstr ""
296+
297+#~ msgid "CANCEL"
298+#~ msgstr "ANNULLÉR"
299+
300+#~ msgid "DONE"
301+#~ msgstr "FÆRDIG"
302+
303+#~ msgid "Please enter SIM PIN"
304+#~ msgstr "Indtast venligst PIN for SIM"
po/de.po+74−52
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-17 21:46+0000\n"
12−"Last-Translator: Phillip Sz <Unknown>\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 10:17+0000\n"
12+"Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n"
1313"Language-Team: German <de@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -32,7 +32,7 @@ msgstr "Verknüpfung entfernen"
3232
3333#: qml/Components/Dialogs.qml:142
3434msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Sind Sie sicher dass das Telefon ausgeschaltet werden soll?"
3636
3737#: qml/Components/Dialogs.qml:144
3838msgid "Power off"
@@ -97,19 +97,19 @@ msgstr ""
9797"Sie haben nun die Kantengesten erfolgreich erlernt und können das Telefon "
9898"nun nutzen<br><br>Zum Starten auf den Bildschirm tippen"
9999
100−#: qml/Components/Lockscreen.qml:161
101−msgid "Too many incorrect attempts"
102−msgstr ""
103−
104−#: qml/Components/Lockscreen.qml:163
100+#: qml/Components/Lockscreen.qml:167
105101msgid "Please wait"
106102msgstr "Bitte warten"
107103
108−#: qml/Components/Lockscreen.qml:245
104+#: qml/Components/Lockscreen.qml:172
105+msgid "Too many incorrect attempts"
106+msgstr "Zu viele falsche Versuche"
107+
108+#: qml/Components/Lockscreen.qml:206
109109msgid "Emergency Call"
110110msgstr "Notruf"
111111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113113msgid "OK"
114114msgstr "OK"
115115
@@ -122,23 +122,15 @@ msgstr "Hallo %1"
122122msgid "Hello"
123123msgstr "Hallo"
124124
125−#: qml/Components/PinLockscreen.qml:197
126−msgid "CANCEL"
127−msgstr "ABBRECHEN"
128−
129−#: qml/Components/PinLockscreen.qml:215
130−msgid "DONE"
131−msgstr "ERLEDIGT"
132−
133−#: qml/Dash/GenericScopeView.qml:360
125+#: qml/Dash/GenericScopeView.qml:361
134126msgid "See less"
135127msgstr "Weniger ansehen"
136128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138130msgid "See all"
139131msgstr "Alle anzeigen"
140132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142134msgid "Search"
143135msgstr "Suchen"
144136
@@ -164,7 +156,7 @@ msgstr "Senden"
164156
165157#: qml/Dash/ScopesOverview.qml:201
166158msgid "Manage Dash"
167−msgstr ""
159+msgstr "Dash verwalten"
168160
169161#: qml/Dash/ScopesOverview.qml:408
170162msgid "Done"
@@ -172,7 +164,7 @@ msgstr "Erledigt"
172164
173165#: qml/Dash/ScopesOverview.qml:434
174166msgid "Store"
175−msgstr ""
167+msgstr "Store"
176168
177169#: qml/Dash/ScopesOverviewTab.qml:36
178170msgid "Favorites"
@@ -206,13 +198,17 @@ msgstr "Sprechen Sie jetzt …"
206198msgid "Speaking..."
207199msgstr "Sprechen Sie …"
208200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210202msgid "Show password"
211203msgstr "Passwort anzeigen"
212204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
214−msgid "Please enter SIM PIN"
215−msgstr "Bitte die PIN der SIM eingeben"
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
206+msgid "Enter SIM PIN"
207+msgstr "Geben Sie die SIM-PIN ein"
208+
209+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
210+msgid "Sorry, incorrect PIN"
211+msgstr "Die PIN ist nicht korrekt"
216212
217213#: qml/Panel/ActiveCallHint.qml:77
218214msgid "Tap to return to call..."
@@ -248,54 +244,80 @@ msgstr "Fehlgeschlagen, tippen Sie zum Wiederholen"
248244
249245#: qml/Panel/Indicators/ModemInfoItem.qml:105
250246msgid "Unlock SIM"
251−msgstr ""
247+msgstr "SIM-Karte entsprerren"
252248
253249#: qml/Panel/Indicators/RoamingIndication.qml:27
254250msgid "Roaming"
255251msgstr "Roaming"
256252
257−#: qml/Shell.qml:267
258−msgid "passphrase"
259−msgstr "Passwort"
253+#: qml/Shell.qml:266
254+msgid "Enter your passphrase"
255+msgstr "Geben Sie Ihr Passwort ein"
260256
261257#: qml/Shell.qml:267
262−msgid "passcode"
263−msgstr ""
258+msgid "Sorry, incorrect passphrase"
259+msgstr "Das Passwort ist nicht korrekt"
264260
265261#: qml/Shell.qml:269
262+msgid "Enter your PIN"
263+msgstr "Geben Sie Ihre PIN ein"
264+
265+#: qml/Shell.qml:273
266266#, qt-format
267267msgid "Enter your %1"
268−msgstr ""
268+msgstr "%1 eingeben"
269269
270−#: qml/Shell.qml:270
270+#: qml/Shell.qml:274
271271#, qt-format
272−msgid "Incorrect %1"
273−msgstr ""
272+msgid "Sorry, incorrect %1"
273+msgstr "%1 falsch"
274274
275−#: qml/Shell.qml:272
276−msgid "Please re-enter"
277−msgstr ""
278−
279−#: qml/Shell.qml:306
275+#: qml/Shell.qml:310
280276msgid "Sorry, incorrect passphrase."
281−msgstr ""
277+msgstr "Falsches Passwort."
282278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284280msgid "Sorry, incorrect passcode."
285−msgstr ""
281+msgstr "Falsche PIN"
286282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288284msgid "This will be your last attempt."
289−msgstr ""
285+msgstr "Dies ist Ihr letzter Versuch."
290286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292288msgid ""
293289"If passphrase is entered incorrectly, your phone will conduct a factory "
294290"reset and all personal data will be deleted."
295291msgstr ""
292+"Wird das Passwort falsch eingegeben, wird das Telefon auf den Werkszustand "
293+"zurückgesetzt und alle Daten werden gelöscht."
296294
297−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
298296msgid ""
299297"If passcode is entered incorrectly, your phone will conduct a factory reset "
300298"and all personal data will be deleted."
301299msgstr ""
300+"Wird die PIN falsch eingegeben, wird das Telefon auf den Werkszustand "
301+"zurückgesetzt und alle Daten werden gelöscht."
302+
303+#~ msgid "Please enter SIM PIN"
304+#~ msgstr "Bitte die PIN der SIM eingeben"
305+
306+#~ msgid "CANCEL"
307+#~ msgstr "ABBRECHEN"
308+
309+#~ msgid "DONE"
310+#~ msgstr "ERLEDIGT"
311+
312+#~ msgid "passphrase"
313+#~ msgstr "Passwort"
314+
315+#, qt-format
316+#~ msgid "Incorrect %1"
317+#~ msgstr "%1 falsch"
318+
319+#~ msgid "passcode"
320+#~ msgstr "Passwort"
321+
322+#~ msgid "Please re-enter"
323+#~ msgstr "Bitte neu eingeben"
po/el.po+61−53
@@ -7,19 +7,19 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-08 13:03+0000\n"
12−"Last-Translator: Simos Xenitellis <Unknown>\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-21 12:06+0000\n"
12+"Last-Translator: Chris Taklis (aka Kailor) <ctaklis@gmail.com>\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"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
22−msgstr ""
22+msgstr "Κωδικός πρόσβασης: "
2323
2424#: plugins/Unity/Launcher/launcheritem.cpp:43
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -36,15 +36,15 @@ msgstr ""
3636
3737#: qml/Components/Dialogs.qml:144
3838msgid "Power off"
39−msgstr ""
39+msgstr "Τερματισμός"
4040
4141#: qml/Components/Dialogs.qml:153
4242msgid "Restart"
43−msgstr ""
43+msgstr "Επανεκκίνηση"
4444
4545#: qml/Components/Dialogs.qml:162
4646msgid "Cancel"
47−msgstr ""
47+msgstr "Ακύρωση"
4848
4949#: qml/Components/EdgeDemoOverlay.qml:151
5050msgid "Skip intro"
@@ -96,19 +96,19 @@ msgstr ""
9696"Πλέον γνωρίζετε τις χειρονομίες από τα άκρα και μπορείτε να ξεκινήσετε να "
9797"χρησιμοποιείτε το τηλέφωνο<br><br>Αγγίξτε την οθόνη για να ξεκινήσετε"
9898
99−#: qml/Components/Lockscreen.qml:161
100−msgid "Too many incorrect attempts"
101−msgstr ""
102−
103−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:167
104100msgid "Please wait"
105−msgstr ""
101+msgstr "Παρακαλώ περιμένετε"
102+
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105+msgstr "Πολλές άκυρες προσπάθειες"
106106
107−#: qml/Components/Lockscreen.qml:245
107+#: qml/Components/Lockscreen.qml:206
108108msgid "Emergency Call"
109109msgstr "Κλήση έκτακτης ανάγκης"
110110
111−#: qml/Components/Lockscreen.qml:268
111+#: qml/Components/Lockscreen.qml:226
112112msgid "OK"
113113msgstr "OK"
114114
@@ -121,23 +121,15 @@ msgstr "Γεια σας %1"
121121msgid "Hello"
122122msgstr "Γεια σας"
123123
124−#: qml/Components/PinLockscreen.qml:197
125−msgid "CANCEL"
126−msgstr "ΑΚΥΡΩΣΗ"
127−
128−#: qml/Components/PinLockscreen.qml:215
129−msgid "DONE"
130−msgstr "ΟΛΟΚΛΗΡΩΣΗ"
131−
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See less"
134126msgstr "Λιγότερα"
135127
136−#: qml/Dash/GenericScopeView.qml:360
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See all"
138130msgstr "Εμφάνιση όλων"
139131
140−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141133msgid "Search"
142134msgstr "Αναζήτηση"
143135
@@ -167,19 +159,19 @@ msgstr ""
167159
168160#: qml/Dash/ScopesOverview.qml:408
169161msgid "Done"
170−msgstr ""
162+msgstr "Ολοκληρώθηκε"
171163
172164#: qml/Dash/ScopesOverview.qml:434
173165msgid "Store"
174−msgstr ""
166+msgstr "Κατάστημα"
175167
176168#: qml/Dash/ScopesOverviewTab.qml:36
177169msgid "Favorites"
178−msgstr ""
170+msgstr "Αγαπημένα"
179171
180172#: qml/Dash/ScopesOverviewTab.qml:54
181173msgid "All"
182−msgstr ""
174+msgstr "Όλα"
183175
184176#: qml/Greeter/Greeter.qml:157
185177msgid "Swipe to unlock"
@@ -205,13 +197,17 @@ msgstr "Μιλήστε τώρα..."
205197msgid "Speaking..."
206198msgstr "Ομιλία..."
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209201msgid "Show password"
210202msgstr "Εμφάνιση κωδικού"
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
213−msgid "Please enter SIM PIN"
214−msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
205+msgid "Enter SIM PIN"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215211
216212#: qml/Panel/ActiveCallHint.qml:77
217213msgid "Tap to return to call..."
@@ -247,54 +243,66 @@ msgstr "Αποτυχία, πατήστε για να ξαναπροσπαθήσ
247243
248244#: qml/Panel/Indicators/ModemInfoItem.qml:105
249245msgid "Unlock SIM"
250−msgstr ""
246+msgstr "Ξεκλείδωμα SIM"
251247
252248#: qml/Panel/Indicators/RoamingIndication.qml:27
253249msgid "Roaming"
254−msgstr ""
250+msgstr "Περιαγωγή"
255251
256−#: qml/Shell.qml:267
257−msgid "passphrase"
252+#: qml/Shell.qml:266
253+msgid "Enter your passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262258msgstr ""
263259
264260#: qml/Shell.qml:269
265−#, qt-format
266−msgid "Enter your %1"
261+msgid "Enter your PIN"
267262msgstr ""
268263
269−#: qml/Shell.qml:270
264+#: qml/Shell.qml:273
270265#, qt-format
271−msgid "Incorrect %1"
272−msgstr ""
266+msgid "Enter your %1"
267+msgstr "Εισάγετε το %1"
273268
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
269+#: qml/Shell.qml:274
270+#, qt-format
271+msgid "Sorry, incorrect %1"
276272msgstr ""
277273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279275msgid "Sorry, incorrect passphrase."
280276msgstr ""
281277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283279msgid "Sorry, incorrect passcode."
284280msgstr ""
285281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287283msgid "This will be your last attempt."
288284msgstr ""
289285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291287msgid ""
292288"If passphrase is entered incorrectly, your phone will conduct a factory "
293289"reset and all personal data will be deleted."
294290msgstr ""
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
297+
298+#~ msgid "Please enter SIM PIN"
299+#~ msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
300+
301+#~ msgid "DONE"
302+#~ msgstr "ΟΛΟΚΛΗΡΩΣΗ"
303+
304+#~ msgid "CANCEL"
305+#~ msgstr "ΑΚΥΡΩΣΗ"
306+
307+#~ msgid "Please re-enter"
308+#~ msgstr "Παρακαλούμε εισάγετε ξανά"
po/en_AU.po+60−42
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-17 09:06+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
9494"You have now mastered the edge gestures and can start using the "
9595"phone<br><br>Tap on the screen to start"
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
99−msgstr "Too many incorrect attempts"
100−
101−#: qml/Components/Lockscreen.qml:163
97+#: qml/Components/Lockscreen.qml:167
10298msgid "Please wait"
10399msgstr "Please wait"
104100
105−#: qml/Components/Lockscreen.qml:245
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103+msgstr "Too many incorrect attempts"
104+
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "Emergency Call"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "OK"
112112
@@ -119,23 +119,15 @@ msgstr "Hello %1"
119119msgid "Hello"
120120msgstr "Hello"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr "CANCEL"
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr "DONE"
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "See less"
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "See all"
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "Search"
141133
@@ -203,13 +195,17 @@ msgstr "Speak Now..."
203195msgid "Speaking..."
204196msgstr "Speaking..."
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "Show password"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
212−msgstr "Please enter SIM PIN"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213209
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
@@ -251,41 +247,41 @@ msgstr "Unlock SIM"
251247msgid "Roaming"
252248msgstr "Roaming"
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
256−msgstr "passphrase"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
252+msgstr ""
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
260−msgstr "passcode"
255+msgid "Sorry, incorrect passphrase"
256+msgstr ""
261257
262258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr ""
261+
262+#: qml/Shell.qml:273
263263#, qt-format
264264msgid "Enter your %1"
265265msgstr "Enter your %1"
266266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268268#, qt-format
269−msgid "Incorrect %1"
270−msgstr "Incorrect %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "Please re-enter"
269+msgid "Sorry, incorrect %1"
270+msgstr ""
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr "Sorry, incorrect passphrase."
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr "Sorry, incorrect passcode."
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr "This will be your last attempt."
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293289"If passphrase is entered incorrectly, your phone will conduct a factory "
294290"reset and all personal data will be deleted."
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
301297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302298"and all personal data will be deleted."
299+
300+#~ msgid "CANCEL"
301+#~ msgstr "CANCEL"
302+
303+#~ msgid "DONE"
304+#~ msgstr "DONE"
305+
306+#~ msgid "Please enter SIM PIN"
307+#~ msgstr "Please enter SIM PIN"
308+
309+#~ msgid "passphrase"
310+#~ msgstr "passphrase"
311+
312+#, qt-format
313+#~ msgid "Incorrect %1"
314+#~ msgstr "Incorrect %1"
315+
316+#~ msgid "Please re-enter"
317+#~ msgstr "Please re-enter"
318+
319+#~ msgid "passcode"
320+#~ msgstr "passcode"
po/en_GB.po+61−43
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-15 10:01+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-23 13:48+0000\n"
1212"Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-24 06:46+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
9494"You have now mastered the edge gestures and can start using the "
9595"phone<br><br>Tap on the screen to start"
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
99−msgstr "Too many incorrect attempts"
100−
101−#: qml/Components/Lockscreen.qml:163
97+#: qml/Components/Lockscreen.qml:167
10298msgid "Please wait"
10399msgstr "Please wait"
104100
105−#: qml/Components/Lockscreen.qml:245
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103+msgstr "Too many incorrect attempts"
104+
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "Emergency Call"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "OK"
112112
@@ -119,23 +119,15 @@ msgstr "Hello %1"
119119msgid "Hello"
120120msgstr "Hello"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr "CANCEL"
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr "DONE"
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "See less"
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "See all"
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "Search"
141133
@@ -203,13 +195,17 @@ msgstr "Speak Now..."
203195msgid "Speaking..."
204196msgstr "Speaking..."
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "Show password"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
212−msgstr "Please enter SIM PIN"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
204+msgstr "Enter SIM PIN"
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr "Sorry, incorrect PIN"
213209
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
@@ -251,41 +247,41 @@ msgstr "Unlock SIM"
251247msgid "Roaming"
252248msgstr "Roaming"
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
256−msgstr "passphrase"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
252+msgstr "Enter your passphrase"
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
260−msgstr "passcode"
255+msgid "Sorry, incorrect passphrase"
256+msgstr "Sorry, incorrect passphrase"
261257
262258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr "Enter your PIN"
261+
262+#: qml/Shell.qml:273
263263#, qt-format
264264msgid "Enter your %1"
265265msgstr "Enter your %1"
266266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268268#, qt-format
269−msgid "Incorrect %1"
270−msgstr "Incorrect %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "Please re-enter"
269+msgid "Sorry, incorrect %1"
270+msgstr "Sorry, incorrect %1"
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr "Sorry, incorrect passphrase."
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr "Sorry, incorrect passcode."
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr "This will be your last attempt."
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293289"If passphrase is entered incorrectly, your phone will conduct a factory "
294290"reset and all personal data will be deleted."
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
301297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302298"and all personal data will be deleted."
299+
300+#~ msgid "Please enter SIM PIN"
301+#~ msgstr "Please enter SIM PIN"
302+
303+#~ msgid "CANCEL"
304+#~ msgstr "CANCEL"
305+
306+#~ msgid "DONE"
307+#~ msgstr "DONE"
308+
309+#~ msgid "passphrase"
310+#~ msgstr "passphrase"
311+
312+#, qt-format
313+#~ msgid "Incorrect %1"
314+#~ msgstr "Incorrect %1"
315+
316+#~ msgid "Please re-enter"
317+#~ msgstr "Please re-enter"
318+
319+#~ msgid "passcode"
320+#~ msgstr "passcode"
po/eo.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr ""
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/es.po+60−42
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-17 04:37+0000\n"
1212"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
1313"Language-Team: Spanish <es@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -97,19 +97,19 @@ msgstr ""
9797"Ahora domina los gestos de los bordes y puede usar el teléfono<br><br>Toque "
9898"la pantalla para comenzar"
9999
100−#: qml/Components/Lockscreen.qml:161
101−msgid "Too many incorrect attempts"
102−msgstr "Demasiados intentos incorrectos"
103−
104−#: qml/Components/Lockscreen.qml:163
100+#: qml/Components/Lockscreen.qml:167
105101msgid "Please wait"
106102msgstr "Espere un momento"
107103
108−#: qml/Components/Lockscreen.qml:245
104+#: qml/Components/Lockscreen.qml:172
105+msgid "Too many incorrect attempts"
106+msgstr "Demasiados intentos incorrectos"
107+
108+#: qml/Components/Lockscreen.qml:206
109109msgid "Emergency Call"
110110msgstr "Llamada de emergencia"
111111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113113msgid "OK"
114114msgstr "Aceptar"
115115
@@ -122,23 +122,15 @@ msgstr "Hola, %1"
122122msgid "Hello"
123123msgstr "Hola"
124124
125−#: qml/Components/PinLockscreen.qml:197
126−msgid "CANCEL"
127−msgstr "CANCELAR"
128−
129−#: qml/Components/PinLockscreen.qml:215
130−msgid "DONE"
131−msgstr "HECHO"
132−
133−#: qml/Dash/GenericScopeView.qml:360
125+#: qml/Dash/GenericScopeView.qml:361
134126msgid "See less"
135127msgstr "Ver menos"
136128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138130msgid "See all"
139131msgstr "Ver todo"
140132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142134msgid "Search"
143135msgstr "Buscar"
144136
@@ -206,13 +198,17 @@ msgstr "Hable ahora…"
206198msgid "Speaking..."
207199msgstr "Hablando…"
208200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210202msgid "Show password"
211203msgstr "Mostrar contraseña"
212204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
214−msgid "Please enter SIM PIN"
215−msgstr "Escriba el PIN de la SIM"
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
206+msgid "Enter SIM PIN"
207+msgstr ""
208+
209+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
210+msgid "Sorry, incorrect PIN"
211+msgstr ""
216212
217213#: qml/Panel/ActiveCallHint.qml:77
218214msgid "Tap to return to call..."
@@ -254,41 +250,41 @@ msgstr "Desbloquear SIM"
254250msgid "Roaming"
255251msgstr "Itinerancia"
256252
257−#: qml/Shell.qml:267
258−msgid "passphrase"
259−msgstr "frase de paso"
253+#: qml/Shell.qml:266
254+msgid "Enter your passphrase"
255+msgstr ""
260256
261257#: qml/Shell.qml:267
262−msgid "passcode"
263−msgstr "Código de paso"
258+msgid "Sorry, incorrect passphrase"
259+msgstr ""
264260
265261#: qml/Shell.qml:269
262+msgid "Enter your PIN"
263+msgstr ""
264+
265+#: qml/Shell.qml:273
266266#, qt-format
267267msgid "Enter your %1"
268268msgstr "Introduzca su %1"
269269
270−#: qml/Shell.qml:270
270+#: qml/Shell.qml:274
271271#, qt-format
272−msgid "Incorrect %1"
273−msgstr "%1 incorrecta"
274−
275−#: qml/Shell.qml:272
276−msgid "Please re-enter"
277−msgstr "Vuelva a introducirla"
272+msgid "Sorry, incorrect %1"
273+msgstr ""
278274
279−#: qml/Shell.qml:306
275+#: qml/Shell.qml:310
280276msgid "Sorry, incorrect passphrase."
281277msgstr "Frase de paso incorrecta"
282278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284280msgid "Sorry, incorrect passcode."
285281msgstr "Código de paso incorrecto"
286282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288284msgid "This will be your last attempt."
289285msgstr "Este será su último intento."
290286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292288msgid ""
293289"If passphrase is entered incorrectly, your phone will conduct a factory "
294290"reset and all personal data will be deleted."
@@ -296,10 +292,32 @@ msgstr ""
296292"Si se introduce la frase incorrectamente, el teléfono volverá a la "
297293"configuración de fábrica y se perderán todos los datos personales."
298294
299−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
300296msgid ""
301297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302298"and all personal data will be deleted."
303299msgstr ""
304300"Si se introduce el código incorrectamente, el teléfono volverá a la "
305301"configuración de fábrica y se perderán todos los datos personales."
302+
303+#~ msgid "Please enter SIM PIN"
304+#~ msgstr "Escriba el PIN de la SIM"
305+
306+#~ msgid "DONE"
307+#~ msgstr "HECHO"
308+
309+#~ msgid "CANCEL"
310+#~ msgstr "CANCELAR"
311+
312+#~ msgid "passphrase"
313+#~ msgstr "frase de paso"
314+
315+#~ msgid "Please re-enter"
316+#~ msgstr "Vuelva a introducirla"
317+
318+#~ msgid "passcode"
319+#~ msgstr "Código de paso"
320+
321+#, qt-format
322+#~ msgid "Incorrect %1"
323+#~ msgstr "%1 incorrecta"
po/eu.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-06 22:51+0000\n"
1212"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
1313"Language-Team: Basque <eu@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -97,19 +97,19 @@ msgstr ""
9797"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
9898"zaitezke<br><br>Sakatu pantailan hasteko"
9999
100−#: qml/Components/Lockscreen.qml:161
101−msgid "Too many incorrect attempts"
100+#: qml/Components/Lockscreen.qml:167
101+msgid "Please wait"
102102msgstr ""
103103
104−#: qml/Components/Lockscreen.qml:163
105−msgid "Please wait"
104+#: qml/Components/Lockscreen.qml:172
105+msgid "Too many incorrect attempts"
106106msgstr ""
107107
108−#: qml/Components/Lockscreen.qml:245
108+#: qml/Components/Lockscreen.qml:206
109109msgid "Emergency Call"
110110msgstr "Larrialdi-deia"
111111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113113msgid "OK"
114114msgstr "Ados"
115115
@@ -122,23 +122,15 @@ msgstr "Kaixo %1"
122122msgid "Hello"
123123msgstr "Kaixo"
124124
125−#: qml/Components/PinLockscreen.qml:197
126−msgid "CANCEL"
127−msgstr "UTZI"
128−
129−#: qml/Components/PinLockscreen.qml:215
130−msgid "DONE"
131−msgstr "EGINDA"
132−
133−#: qml/Dash/GenericScopeView.qml:360
125+#: qml/Dash/GenericScopeView.qml:361
134126msgid "See less"
135127msgstr "Ikusi gutxiago"
136128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138130msgid "See all"
139131msgstr "Ikusi guztiak"
140132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142134msgid "Search"
143135msgstr "Bilatu"
144136
@@ -206,13 +198,17 @@ msgstr "Hitz egin orain..."
206198msgid "Speaking..."
207199msgstr "Hitz egiten..."
208200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210202msgid "Show password"
211203msgstr "Erakutsi pasahitza"
212204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
214−msgid "Please enter SIM PIN"
215−msgstr "Sartu SIMaren PINa"
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
206+msgid "Enter SIM PIN"
207+msgstr ""
208+
209+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
210+msgid "Sorry, incorrect PIN"
211+msgstr ""
216212
217213#: qml/Panel/ActiveCallHint.qml:77
218214msgid "Tap to return to call..."
@@ -254,48 +250,57 @@ msgstr ""
254250msgid "Roaming"
255251msgstr ""
256252
257−#: qml/Shell.qml:267
258−msgid "passphrase"
253+#: qml/Shell.qml:266
254+msgid "Enter your passphrase"
259255msgstr ""
260256
261257#: qml/Shell.qml:267
262−msgid "passcode"
258+msgid "Sorry, incorrect passphrase"
263259msgstr ""
264260
265261#: qml/Shell.qml:269
266−#, qt-format
267−msgid "Enter your %1"
262+msgid "Enter your PIN"
268263msgstr ""
269264
270−#: qml/Shell.qml:270
265+#: qml/Shell.qml:273
271266#, qt-format
272−msgid "Incorrect %1"
267+msgid "Enter your %1"
273268msgstr ""
274269
275−#: qml/Shell.qml:272
276−msgid "Please re-enter"
270+#: qml/Shell.qml:274
271+#, qt-format
272+msgid "Sorry, incorrect %1"
277273msgstr ""
278274
279−#: qml/Shell.qml:306
275+#: qml/Shell.qml:310
280276msgid "Sorry, incorrect passphrase."
281277msgstr ""
282278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284280msgid "Sorry, incorrect passcode."
285281msgstr ""
286282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288284msgid "This will be your last attempt."
289285msgstr ""
290286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292288msgid ""
293289"If passphrase is entered incorrectly, your phone will conduct a factory "
294290"reset and all personal data will be deleted."
295291msgstr ""
296292
297−#: qml/Shell.qml:311
293+#: qml/Shell.qml:315
298294msgid ""
299295"If passcode is entered incorrectly, your phone will conduct a factory reset "
300296"and all personal data will be deleted."
301297msgstr ""
298+
299+#~ msgid "Please enter SIM PIN"
300+#~ msgstr "Sartu SIMaren PINa"
301+
302+#~ msgid "CANCEL"
303+#~ msgstr "UTZI"
304+
305+#~ msgid "DONE"
306+#~ msgstr "EGINDA"
po/fa.po+60−42
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-15 14:00+0000\n"
1212"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
1313"Language-Team: Persian <fa@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
9494"هم اکنون در استفاده از ژست های حرکتی مهارت لازم را دارید و می‌توانید استفاده "
9595"از تلفن را آغاز کنید<br><br>برای شروع صفحه را لمس کنید"
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
99−msgstr "تلاش‌های ناموفّق زیاد"
100−
101−#: qml/Components/Lockscreen.qml:163
97+#: qml/Components/Lockscreen.qml:167
10298msgid "Please wait"
10399msgstr "لطفاً صبر کنید"
104100
105−#: qml/Components/Lockscreen.qml:245
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103+msgstr "تلاش‌های ناموفّق زیاد"
104+
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "تماس اضطراری"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "قبول"
112112
@@ -119,23 +119,15 @@ msgstr "سلام %1"
119119msgid "Hello"
120120msgstr "سلام"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr "لغو"
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr "انجام شد"
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "کم‌تر ببینید"
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "دیدن همه"
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "جست‌وجو"
141133
@@ -203,13 +195,17 @@ msgstr "اکنون صحبت کنید…"
203195msgid "Speaking..."
204196msgstr "در حال صحبت کردن…"
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "نمایش گذرواژه"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
212−msgstr "لطفاً PIN سیم‌کارت را وارد کنید"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213209
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
@@ -251,41 +247,41 @@ msgstr "باز کردن قفل سیم‌کارت"
251247msgid "Roaming"
252248msgstr "رومینگ"
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
256−msgstr "عبارت‌عبور"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
252+msgstr ""
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
260−msgstr "رمزعبور"
255+msgid "Sorry, incorrect passphrase"
256+msgstr ""
261257
262258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr ""
261+
262+#: qml/Shell.qml:273
263263#, qt-format
264264msgid "Enter your %1"
265265msgstr "%1 خود را وارد کنید"
266266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268268#, qt-format
269−msgid "Incorrect %1"
270−msgstr "%1 نادرست"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "لطفاً دوباره وارد کنید"
269+msgid "Sorry, incorrect %1"
270+msgstr ""
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr "متأسّفیم، عبارت‌عبور نادرست است."
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr "متأسّفیم، رمزعبور نادرست است."
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr "این آخرین تلاش شما خواهد بود."
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293289"اگر عبارت‌عبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
294290"اطّلاعات شخصی حذف خواهند شد."
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
301297"اگر رمزعبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
302298"اطّلاعات شخصی حذف خواهند شد."
299+
300+#~ msgid "DONE"
301+#~ msgstr "انجام شد"
302+
303+#~ msgid "CANCEL"
304+#~ msgstr "لغو"
305+
306+#~ msgid "Please enter SIM PIN"
307+#~ msgstr "لطفاً PIN سیم‌کارت را وارد کنید"
308+
309+#~ msgid "passphrase"
310+#~ msgstr "عبارت‌عبور"
311+
312+#, qt-format
313+#~ msgid "Incorrect %1"
314+#~ msgstr "%1 نادرست"
315+
316+#~ msgid "Please re-enter"
317+#~ msgstr "لطفاً دوباره وارد کنید"
318+
319+#~ msgid "passcode"
320+#~ msgstr "رمزعبور"
po/fi.po+61−43
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-17 16:53+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 18:32+0000\n"
1212"Last-Translator: Jiri Grönroos <Unknown>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
9494"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
9595"käytön<br><br>Napauta näyttöä aloittaaksesi"
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
99−msgstr "Liian monta virheellistä yritystä"
100−
101−#: qml/Components/Lockscreen.qml:163
97+#: qml/Components/Lockscreen.qml:167
10298msgid "Please wait"
10399msgstr "Odota hetki"
104100
105−#: qml/Components/Lockscreen.qml:245
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103+msgstr "Liian monta virheellistä yritystä"
104+
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "Hätäpuhelu"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "OK"
112112
@@ -119,23 +119,15 @@ msgstr "Hei %1!"
119119msgid "Hello"
120120msgstr "Hei"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr "PERU"
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr "VALMIS"
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "Näytä vähemmän"
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "Näytä kaikki"
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "Hae"
141133
@@ -161,7 +153,7 @@ msgstr "Lähetä"
161153
162154#: qml/Dash/ScopesOverview.qml:201
163155msgid "Manage Dash"
164−msgstr "Dashin hallinta"
156+msgstr "Unityn hallinta"
165157
166158#: qml/Dash/ScopesOverview.qml:408
167159msgid "Done"
@@ -203,14 +195,18 @@ msgstr "Puhu nyt..."
203195msgid "Speaking..."
204196msgstr "Puhutaan..."
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "Näytä salasana"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
212204msgstr "Anna SIM-kortin PIN-koodi"
213205
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr "Väärä PIN-koodi"
209+
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
216212msgstr "Napauta palataksesi puheluun..."
@@ -251,41 +247,41 @@ msgstr "Avaa SIM-kortin lukitus"
251247msgid "Roaming"
252248msgstr "Verkkovierailu"
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
256−msgstr "tunnuslause"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
252+msgstr "Anna tunnuslause"
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
260−msgstr "tunnuskoodi"
255+msgid "Sorry, incorrect passphrase"
256+msgstr "Virheellinen tunnuslause"
261257
262258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr "Anna PIN-koodi"
261+
262+#: qml/Shell.qml:273
263263#, qt-format
264264msgid "Enter your %1"
265265msgstr "Anna %1"
266266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268268#, qt-format
269−msgid "Incorrect %1"
270−msgstr "Virheellinen %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "Anna uudelleen"
269+msgid "Sorry, incorrect %1"
270+msgstr "Väärä %1"
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr "Virheellinen tunnuslause."
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr "Virheellinen tunnuskoodi."
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr "Tämä on viimeinen yritys."
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293289"Jos kirjoitat tunnuslauseen virheellisesti, puhelimesi palautetaan "
294290"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
301297"Jos kirjoitat tunnuskoodin virheellisesti, puhelimesi palautetaan "
302298"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
299+
300+#~ msgid "Please enter SIM PIN"
301+#~ msgstr "Anna SIM-kortin PIN-koodi"
302+
303+#~ msgid "CANCEL"
304+#~ msgstr "PERU"
305+
306+#~ msgid "DONE"
307+#~ msgstr "VALMIS"
308+
309+#, qt-format
310+#~ msgid "Incorrect %1"
311+#~ msgstr "Virheellinen %1"
312+
313+#~ msgid "passphrase"
314+#~ msgstr "tunnuslause"
315+
316+#~ msgid "passcode"
317+#~ msgstr "tunnuskoodi"
318+
319+#~ msgid "Please re-enter"
320+#~ msgstr "Anna uudelleen"
po/fo.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Leita"
139131
@@ -201,12 +193,16 @@ msgstr "Snakka nú..."
201193msgid "Speaking..."
202194msgstr "Snakkar..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/fr.po+62−44
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-16 12:13+0000\n"
12−"Last-Translator: Jean Marc <Unknown>\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-27 07:33+0000\n"
12+"Last-Translator: Sébastien Maes <nautilussebastien@gmail.com>\n"
1313"Language-Team: French <fr@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -101,19 +101,19 @@ msgstr ""
101101"Vous maîtrisez maintenant les différents gestes et pouvez commencer à "
102102"utiliser le téléphone<br><br>Appuyez sur l'écran pour commencer"
103103
104−#: qml/Components/Lockscreen.qml:161
105−msgid "Too many incorrect attempts"
106−msgstr "Trop de tentatives incorrectes"
107−
108−#: qml/Components/Lockscreen.qml:163
104+#: qml/Components/Lockscreen.qml:167
109105msgid "Please wait"
110106msgstr "Veuillez patienter"
111107
112−#: qml/Components/Lockscreen.qml:245
108+#: qml/Components/Lockscreen.qml:172
109+msgid "Too many incorrect attempts"
110+msgstr "Trop de tentatives incorrectes"
111+
112+#: qml/Components/Lockscreen.qml:206
113113msgid "Emergency Call"
114114msgstr "Appel d'urgence"
115115
116−#: qml/Components/Lockscreen.qml:268
116+#: qml/Components/Lockscreen.qml:226
117117msgid "OK"
118118msgstr "OK"
119119
@@ -126,23 +126,15 @@ msgstr "Bonjour %1"
126126msgid "Hello"
127127msgstr "Bonjour"
128128
129−#: qml/Components/PinLockscreen.qml:197
130−msgid "CANCEL"
131−msgstr "ANNULER"
132−
133−#: qml/Components/PinLockscreen.qml:215
134−msgid "DONE"
135−msgstr "VALIDER"
136−
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138130msgid "See less"
139131msgstr "Voir moins"
140132
141−#: qml/Dash/GenericScopeView.qml:360
133+#: qml/Dash/GenericScopeView.qml:361
142134msgid "See all"
143135msgstr "Tout voir"
144136
145−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
137+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
146138msgid "Search"
147139msgstr "Rechercher"
148140
@@ -210,13 +202,17 @@ msgstr "Parlez maintenant…"
210202msgid "Speaking..."
211203msgstr "En cours d'écoute..."
212204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:100
205+#: qml/Notifications/NotificationMenuItemFactory.qml:105
214206msgid "Show password"
215207msgstr "Afficher le mot de passe"
216208
217−#: qml/Notifications/NotificationMenuItemFactory.qml:115
218−msgid "Please enter SIM PIN"
219−msgstr "Entrez le code PIN"
209+#: qml/Notifications/NotificationMenuItemFactory.qml:120
210+msgid "Enter SIM PIN"
211+msgstr ""
212+
213+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
214+msgid "Sorry, incorrect PIN"
215+msgstr "Désolé, code PIN incorrect"
220216
221217#: qml/Panel/ActiveCallHint.qml:77
222218msgid "Tap to return to call..."
@@ -258,41 +254,41 @@ msgstr "Déverrouiller la carte SIM"
258254msgid "Roaming"
259255msgstr "Roaming"
260256
261−#: qml/Shell.qml:267
262−msgid "passphrase"
263−msgstr "phrase secrète"
257+#: qml/Shell.qml:266
258+msgid "Enter your passphrase"
259+msgstr ""
264260
265261#: qml/Shell.qml:267
266−msgid "passcode"
267−msgstr "code"
262+msgid "Sorry, incorrect passphrase"
263+msgstr ""
268264
269265#: qml/Shell.qml:269
266+msgid "Enter your PIN"
267+msgstr "Entrez votre code PIN"
268+
269+#: qml/Shell.qml:273
270270#, qt-format
271271msgid "Enter your %1"
272272msgstr "Saisissez votre %1"
273273
274−#: qml/Shell.qml:270
274+#: qml/Shell.qml:274
275275#, qt-format
276−msgid "Incorrect %1"
277−msgstr "%1 non valide"
278−
279−#: qml/Shell.qml:272
280−msgid "Please re-enter"
281−msgstr "Veuillez recommencer"
276+msgid "Sorry, incorrect %1"
277+msgstr ""
282278
283−#: qml/Shell.qml:306
279+#: qml/Shell.qml:310
284280msgid "Sorry, incorrect passphrase."
285281msgstr "Désolé, phrase secrète incorrecte."
286282
287−#: qml/Shell.qml:307
283+#: qml/Shell.qml:311
288284msgid "Sorry, incorrect passcode."
289285msgstr "Désolé, code incorrect."
290286
291−#: qml/Shell.qml:308
287+#: qml/Shell.qml:312
292288msgid "This will be your last attempt."
293289msgstr "Ceci sera votre dernière tentative."
294290
295−#: qml/Shell.qml:310
291+#: qml/Shell.qml:314
296292msgid ""
297293"If passphrase is entered incorrectly, your phone will conduct a factory "
298294"reset and all personal data will be deleted."
@@ -301,7 +297,7 @@ msgstr ""
301297"effectuera une réinitialisation aux paramètres d'usine et toutes les données "
302298"personnelles seront supprimées."
303299
304−#: qml/Shell.qml:311
300+#: qml/Shell.qml:315
305301msgid ""
306302"If passcode is entered incorrectly, your phone will conduct a factory reset "
307303"and all personal data will be deleted."
@@ -309,3 +305,25 @@ msgstr ""
309305"Si le code est saisi de manière incorrecte, votre téléphone effectuera une "
310306"réinitialisation aux paramètres d'usine et toutes les données personnelles "
311307"seront supprimées."
308+
309+#~ msgid "CANCEL"
310+#~ msgstr "ANNULER"
311+
312+#~ msgid "DONE"
313+#~ msgstr "VALIDER"
314+
315+#~ msgid "Please enter SIM PIN"
316+#~ msgstr "Entrez le code PIN"
317+
318+#~ msgid "passphrase"
319+#~ msgstr "phrase secrète"
320+
321+#~ msgid "passcode"
322+#~ msgstr "code"
323+
324+#, qt-format
325+#~ msgid "Incorrect %1"
326+#~ msgstr "%1 non valide"
327+
328+#~ msgid "Please re-enter"
329+#~ msgstr "Veuillez recommencer"
po/gd.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-13 00:21+0000\n"
1212"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
1313"Language-Team: Fòram na Gàidhlig http://www.foramnagaidhlig.net\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919"Language: gd\n"
2020
2121#: plugins/LightDM/Greeter.cpp:129
@@ -101,19 +101,19 @@ msgstr ""
101101"Fhuair thu air na gluasadan oire ceart a dhèanamh a-nis agus is urrainn dhut "
102102"am fòn a chleachdadh<br><br>Thoir gnogag air an sgrìn airson tòiseachadh"
103103
104−#: qml/Components/Lockscreen.qml:161
105−msgid "Too many incorrect attempts"
104+#: qml/Components/Lockscreen.qml:167
105+msgid "Please wait"
106106msgstr ""
107107
108−#: qml/Components/Lockscreen.qml:163
109−msgid "Please wait"
108+#: qml/Components/Lockscreen.qml:172
109+msgid "Too many incorrect attempts"
110110msgstr ""
111111
112−#: qml/Components/Lockscreen.qml:245
112+#: qml/Components/Lockscreen.qml:206
113113msgid "Emergency Call"
114114msgstr "Gairm èiginn"
115115
116−#: qml/Components/Lockscreen.qml:268
116+#: qml/Components/Lockscreen.qml:226
117117msgid "OK"
118118msgstr "Ceart ma-thà"
119119
@@ -126,23 +126,15 @@ msgstr "Shin thu, %1"
126126msgid "Hello"
127127msgstr "Shin thu"
128128
129−#: qml/Components/PinLockscreen.qml:197
130−msgid "CANCEL"
131−msgstr "SGUIR DHETH"
132−
133−#: qml/Components/PinLockscreen.qml:215
134−msgid "DONE"
135−msgstr "DÈANTA"
136−
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138130msgid "See less"
139131msgstr "Seall nas lugha"
140132
141−#: qml/Dash/GenericScopeView.qml:360
133+#: qml/Dash/GenericScopeView.qml:361
142134msgid "See all"
143135msgstr "Seall na h-uile"
144136
145−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
137+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
146138msgid "Search"
147139msgstr "Lorg"
148140
@@ -210,13 +202,17 @@ msgstr "Can rud a-nis..."
210202msgid "Speaking..."
211203msgstr "A' bruidhinn..."
212204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:100
205+#: qml/Notifications/NotificationMenuItemFactory.qml:105
214206msgid "Show password"
215207msgstr "Seall am facal-faire"
216208
217−#: qml/Notifications/NotificationMenuItemFactory.qml:115
218−msgid "Please enter SIM PIN"
219−msgstr "Cuir a-steach SIM PIN"
209+#: qml/Notifications/NotificationMenuItemFactory.qml:120
210+msgid "Enter SIM PIN"
211+msgstr ""
212+
213+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
214+msgid "Sorry, incorrect PIN"
215+msgstr ""
220216
221217#: qml/Panel/ActiveCallHint.qml:77
222218msgid "Tap to return to call..."
@@ -258,48 +254,57 @@ msgstr "Thoir a' ghlas far an SIM"
258254msgid "Roaming"
259255msgstr "Air fàrsan"
260256
261−#: qml/Shell.qml:267
262−msgid "passphrase"
257+#: qml/Shell.qml:266
258+msgid "Enter your passphrase"
263259msgstr ""
264260
265261#: qml/Shell.qml:267
266−msgid "passcode"
262+msgid "Sorry, incorrect passphrase"
267263msgstr ""
268264
269265#: qml/Shell.qml:269
270−#, qt-format
271−msgid "Enter your %1"
266+msgid "Enter your PIN"
272267msgstr ""
273268
274−#: qml/Shell.qml:270
269+#: qml/Shell.qml:273
275270#, qt-format
276−msgid "Incorrect %1"
271+msgid "Enter your %1"
277272msgstr ""
278273
279−#: qml/Shell.qml:272
280−msgid "Please re-enter"
274+#: qml/Shell.qml:274
275+#, qt-format
276+msgid "Sorry, incorrect %1"
281277msgstr ""
282278
283−#: qml/Shell.qml:306
279+#: qml/Shell.qml:310
284280msgid "Sorry, incorrect passphrase."
285281msgstr ""
286282
287−#: qml/Shell.qml:307
283+#: qml/Shell.qml:311
288284msgid "Sorry, incorrect passcode."
289285msgstr ""
290286
291−#: qml/Shell.qml:308
287+#: qml/Shell.qml:312
292288msgid "This will be your last attempt."
293289msgstr ""
294290
295−#: qml/Shell.qml:310
291+#: qml/Shell.qml:314
296292msgid ""
297293"If passphrase is entered incorrectly, your phone will conduct a factory "
298294"reset and all personal data will be deleted."
299295msgstr ""
300296
301−#: qml/Shell.qml:311
297+#: qml/Shell.qml:315
302298msgid ""
303299"If passcode is entered incorrectly, your phone will conduct a factory reset "
304300"and all personal data will be deleted."
305301msgstr ""
302+
303+#~ msgid "Please enter SIM PIN"
304+#~ msgstr "Cuir a-steach SIM PIN"
305+
306+#~ msgid "CANCEL"
307+#~ msgstr "SGUIR DHETH"
308+
309+#~ msgid "DONE"
310+#~ msgstr "DÈANTA"
po/gl.po+64−46
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-14 14:23+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-22 15:16+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"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -96,19 +96,19 @@ msgstr ""
9696"Agora xa domina os xestos dos bordos e pode comezar a usar o "
9797"teléfono<br><br>Toque na pantalla para comezar"
9898
99−#: qml/Components/Lockscreen.qml:161
100−msgid "Too many incorrect attempts"
101−msgstr "Demasiados erros"
102−
103−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:167
104100msgid "Please wait"
105101msgstr "Agarde"
106102
107−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105+msgstr "Demasiados erros"
106+
107+#: qml/Components/Lockscreen.qml:206
108108msgid "Emergency Call"
109109msgstr "Chamada de emerxencia"
110110
111−#: qml/Components/Lockscreen.qml:268
111+#: qml/Components/Lockscreen.qml:226
112112msgid "OK"
113113msgstr "Aceptar"
114114
@@ -121,23 +121,15 @@ msgstr "Ola %1"
121121msgid "Hello"
122122msgstr "Ola"
123123
124−#: qml/Components/PinLockscreen.qml:197
125−msgid "CANCEL"
126−msgstr "CANCELAR"
127−
128−#: qml/Components/PinLockscreen.qml:215
129−msgid "DONE"
130−msgstr "FEITO"
131−
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See less"
134126msgstr "Ver menos"
135127
136−#: qml/Dash/GenericScopeView.qml:360
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See all"
138130msgstr "Ver todo"
139131
140−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141133msgid "Search"
142134msgstr "Buscar"
143135
@@ -163,7 +155,7 @@ msgstr "Enviar"
163155
164156#: qml/Dash/ScopesOverview.qml:201
165157msgid "Manage Dash"
166−msgstr "Xestionar o Panel"
158+msgstr "Xestión do Panel"
167159
168160#: qml/Dash/ScopesOverview.qml:408
169161msgid "Done"
@@ -205,14 +197,18 @@ msgstr "Fale agora…"
205197msgid "Speaking..."
206198msgstr "Falando…"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209201msgid "Show password"
210202msgstr "Mostrar contrasinal"
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
213−msgid "Please enter SIM PIN"
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
205+msgid "Enter SIM PIN"
214206msgstr "Introduza o PIN da SIM"
215207
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr "Sentímolo, o PIN é incorrecto"
211+
216212#: qml/Panel/ActiveCallHint.qml:77
217213msgid "Tap to return to call..."
218214msgstr "Toque para volver a chamar..."
@@ -253,41 +249,41 @@ msgstr "Desbloquear a SIM"
253249msgid "Roaming"
254250msgstr "Itinerancia"
255251
256−#: qml/Shell.qml:267
257−msgid "passphrase"
258−msgstr "Frase de paso"
252+#: qml/Shell.qml:266
253+msgid "Enter your passphrase"
254+msgstr "Introduza a frase de paso"
259255
260256#: qml/Shell.qml:267
261−msgid "passcode"
262−msgstr "código"
257+msgid "Sorry, incorrect passphrase"
258+msgstr "Sentímolo a frase é incorrecta"
263259
264260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr "Introduza o PIN"
263+
264+#: qml/Shell.qml:273
265265#, qt-format
266266msgid "Enter your %1"
267−msgstr "Introduza %1"
267+msgstr "Introducir %1"
268268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270270#, qt-format
271−msgid "Incorrect %1"
272−msgstr "Incorrecto %1"
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Introducir de novo"
271+msgid "Sorry, incorrect %1"
272+msgstr "Sentímolo, %1 incorrecto"
277273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279275msgid "Sorry, incorrect passphrase."
280276msgstr "Sentímolo é incorrecta."
281277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283279msgid "Sorry, incorrect passcode."
284−msgstr "Sentímolo é incorrecto."
280+msgstr "Sentímolo, a clave é incorrecta."
285281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287283msgid "This will be your last attempt."
288284msgstr "Este será o seu último intento."
289285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291287msgid ""
292288"If passphrase is entered incorrectly, your phone will conduct a factory "
293289"reset and all personal data will be deleted."
@@ -295,10 +291,32 @@ msgstr ""
295291"Se a frase de paso introducida é incorrecta, o teléfono restabelecerá os "
296292"valores de fábrica e perderá todos os datos persoais."
297293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299295msgid ""
300296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301297"and all personal data will be deleted."
302298msgstr ""
303−"Se o código introducido é incorrecto, o teléfono restabelecerá os valores de "
299+"Se a clave introducida é incorrecta, o teléfono restabelecerá os valores de "
304300"fábrica e perderá todos os datos persoais."
301+
302+#~ msgid "Please enter SIM PIN"
303+#~ msgstr "Introduza o PIN da SIM"
304+
305+#~ msgid "DONE"
306+#~ msgstr "FEITO"
307+
308+#~ msgid "CANCEL"
309+#~ msgstr "CANCELAR"
310+
311+#~ msgid "passphrase"
312+#~ msgstr "Frase de paso"
313+
314+#, qt-format
315+#~ msgid "Incorrect %1"
316+#~ msgstr "Incorrecto %1"
317+
318+#~ msgid "Please re-enter"
319+#~ msgstr "Introducir de novo"
320+
321+#~ msgid "passcode"
322+#~ msgstr "código"
po/he.po+61−56
@@ -7,19 +7,19 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-07-25 16:26+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-24 06:46+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
22−msgstr ""
22+msgstr "ססמה: "
2323
2424#: plugins/Unity/Launcher/launcheritem.cpp:43
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,19 +32,19 @@ msgstr "הפרדת קיצור הדרך"
3232
3333#: qml/Components/Dialogs.qml:142
3434msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "האם ברצונך לכבות את המכשיר?"
3636
3737#: qml/Components/Dialogs.qml:144
3838msgid "Power off"
39−msgstr ""
39+msgstr "כיבוי"
4040
4141#: qml/Components/Dialogs.qml:153
4242msgid "Restart"
43−msgstr ""
43+msgstr "הפעלה מחדש"
4444
4545#: qml/Components/Dialogs.qml:162
4646msgid "Cancel"
47−msgstr ""
47+msgstr "ביטול"
4848
4949#: qml/Components/EdgeDemoOverlay.qml:151
5050msgid "Skip intro"
@@ -94,19 +94,19 @@ msgstr ""
9494"ברגעים אלו סיימת את התמחותך בשימוש במחוות קצה והטלפון פתוח לשימושך<br><br>נא "
9595"לגעת במסך כדי להתחיל"
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
99−msgstr ""
100−
101−#: qml/Components/Lockscreen.qml:163
97+#: qml/Components/Lockscreen.qml:167
10298msgid "Please wait"
103−msgstr ""
99+msgstr "נא להמתין"
104100
105−#: qml/Components/Lockscreen.qml:245
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103+msgstr "יותר מדי ניסיונות שגויים"
104+
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "שיחת חירום"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "אישור"
112112
@@ -119,23 +119,15 @@ msgstr "שלום %1"
119119msgid "Hello"
120120msgstr "שלום"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr "ביטול"
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr "בוצע"
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "לראות פחות"
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "להציג הכול"
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "חיפוש"
141133
@@ -165,19 +157,19 @@ msgstr ""
165157
166158#: qml/Dash/ScopesOverview.qml:408
167159msgid "Done"
168−msgstr ""
160+msgstr "סיימתי"
169161
170162#: qml/Dash/ScopesOverview.qml:434
171163msgid "Store"
172−msgstr ""
164+msgstr "אחסון"
173165
174166#: qml/Dash/ScopesOverviewTab.qml:36
175167msgid "Favorites"
176−msgstr ""
168+msgstr "מועדפים"
177169
178170#: qml/Dash/ScopesOverviewTab.qml:54
179171msgid "All"
180−msgstr ""
172+msgstr "הכול"
181173
182174#: qml/Greeter/Greeter.qml:157
183175msgid "Swipe to unlock"
@@ -203,13 +195,17 @@ msgstr "יש לדבר כעת..."
203195msgid "Speaking..."
204196msgstr "הדיבור מושמע…"
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "הצגת הססמה"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
212−msgstr "נא להזין את קוד ה־<U+200F>SIM"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213209
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
@@ -249,50 +245,59 @@ msgstr ""
249245
250246#: qml/Panel/Indicators/RoamingIndication.qml:27
251247msgid "Roaming"
252−msgstr ""
248+msgstr "נדידה"
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
256−msgstr ""
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
252+msgstr "נא להזין את מילת הצופן שלך"
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
260−msgstr ""
255+msgid "Sorry, incorrect passphrase"
256+msgstr "מילת הצופן שגויה, עמך הסליחה."
261257
262258#: qml/Shell.qml:269
263−#, qt-format
264−msgid "Enter your %1"
259+msgid "Enter your PIN"
265260msgstr ""
266261
267−#: qml/Shell.qml:270
262+#: qml/Shell.qml:273
268263#, qt-format
269−msgid "Incorrect %1"
264+msgid "Enter your %1"
270265msgstr ""
271266
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
267+#: qml/Shell.qml:274
268+#, qt-format
269+msgid "Sorry, incorrect %1"
274270msgstr ""
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278−msgstr ""
274+msgstr "מילת הצופן שגויה, עמך הסליחה."
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282−msgstr ""
278+msgstr "הצופן שגוי, עם הסליחה."
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286−msgstr ""
282+msgstr "זה יהיה הניסיון האחרון שלך."
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
292288msgstr ""
293289
294−#: qml/Shell.qml:311
290+#: qml/Shell.qml:315
295291msgid ""
296292"If passcode is entered incorrectly, your phone will conduct a factory reset "
297293"and all personal data will be deleted."
298294msgstr ""
295+
296+#~ msgid "Please enter SIM PIN"
297+#~ msgstr "נא להזין את קוד ה־<U+200F>SIM"
298+
299+#~ msgid "CANCEL"
300+#~ msgstr "ביטול"
301+
302+#~ msgid "DONE"
303+#~ msgstr "בוצע"
po/hi.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "आपातकालीन कॉल"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr "नमस्ते"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "खोजें"
139131
@@ -201,12 +193,16 @@ msgstr "अब बात करें"
201193msgid "Speaking..."
202194msgstr "अब बोल रहे हैं"
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/hr.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Pretraživanje"
139131
@@ -201,12 +193,16 @@ msgstr "Recite..."
201193msgid "Speaking..."
202194msgstr "Govor..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/hu.po+64−46
@@ -7,14 +7,14 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-19 07:08+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-24 11:17+0000\n"
1212"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
1313"Language-Team: Hungarian <hu@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-20 06:23+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-25 08:06+0000\n"
1818"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
@@ -96,48 +96,40 @@ msgstr ""
9696"Elsajátította a gesztusokat, és megkezdheti a telefon "
9797"használatát.<br><br>Koppintson a képernyőre a kezdéshez."
9898
99−#: qml/Components/Lockscreen.qml:161
100−msgid "Too many incorrect attempts"
101−msgstr "Túl sok sikertelen kísérlet"
102−
103−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:167
104100msgid "Please wait"
105101msgstr "Kérem várjon"
106102
107−#: qml/Components/Lockscreen.qml:220
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105+msgstr "Túl sok sikertelen kísérlet"
106+
107+#: qml/Components/Lockscreen.qml:206
108108msgid "Emergency Call"
109109msgstr "Vészhívás"
110110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112112msgid "OK"
113113msgstr "Ok"
114114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116116#, qt-format
117117msgid "Hello %1"
118118msgstr "Üdv %1"
119119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121121msgid "Hello"
122122msgstr "Üdvözöljük"
123123
124−#: qml/Components/PinLockscreen.qml:198
125−msgid "CANCEL"
126−msgstr "MÉGSE"
127−
128−#: qml/Components/PinLockscreen.qml:216
129−msgid "DONE"
130−msgstr "KÉSZ"
131−
132−#: qml/Dash/GenericScopeView.qml:358
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See less"
134126msgstr "Kevesebb"
135127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See all"
138130msgstr "Összes megtekintése"
139131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141133msgid "Search"
142134msgstr "Keresés"
143135
@@ -161,15 +153,15 @@ msgstr "Értékelés hozzáadása"
161153msgid "Send"
162154msgstr "Küldés"
163155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165157msgid "Manage Dash"
166158msgstr "Dash kezelése"
167159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169161msgid "Done"
170162msgstr "Kész"
171163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173165msgid "Store"
174166msgstr "Áruház"
175167
@@ -205,14 +197,18 @@ msgstr "Most beszéljen…"
205197msgid "Speaking..."
206198msgstr "Beszéd…"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209201msgid "Show password"
210202msgstr "Jelszó megjelenítése"
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
213−msgid "Please enter SIM PIN"
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
205+msgid "Enter SIM PIN"
214206msgstr "Adja meg a SIM PIN kódját"
215207
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr "Sajnáljuk, helytelen PIN"
211+
216212#: qml/Panel/ActiveCallHint.qml:77
217213msgid "Tap to return to call..."
218214msgstr "Érintse meg, hogy visszatérjen a híváshoz..."
@@ -253,41 +249,41 @@ msgstr "SIM feloldása"
253249msgid "Roaming"
254250msgstr "Barangolás"
255251
256−#: qml/Shell.qml:267
257−msgid "passphrase"
258−msgstr "jelmondat"
252+#: qml/Shell.qml:266
253+msgid "Enter your passphrase"
254+msgstr "Adja meg a jelmondatot"
259255
260256#: qml/Shell.qml:267
261−msgid "passcode"
262−msgstr "jelkód"
257+msgid "Sorry, incorrect passphrase"
258+msgstr "Sajnáljuk, helytelen jelmondat"
263259
264260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr "Adja meg a PIN kódot"
263+
264+#: qml/Shell.qml:273
265265#, qt-format
266266msgid "Enter your %1"
267267msgstr "Adja meg a következőt: %1"
268268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270270#, qt-format
271−msgid "Incorrect %1"
272−msgstr "Helytelen %1"
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Kérjük adja meg újra"
271+msgid "Sorry, incorrect %1"
272+msgstr "Sajnáljuk, helytelen %1"
277273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279275msgid "Sorry, incorrect passphrase."
280276msgstr "Sajnáljuk, helytelen jelmondat."
281277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283279msgid "Sorry, incorrect passcode."
284280msgstr "Sajnáljuk, helytelen jelkód."
285281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287283msgid "This will be your last attempt."
288284msgstr "Ez az utolsó próbálkozási lehetősége."
289285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291287msgid ""
292288"If passphrase is entered incorrectly, your phone will conduct a factory "
293289"reset and all personal data will be deleted."
@@ -295,10 +291,32 @@ msgstr ""
295291"Ha helytelen jelmondatot ad meg, a telefonja visszaállítja a gyári "
296292"beállításokat és törli minden személyes adatát."
297293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299295msgid ""
300296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301297"and all personal data will be deleted."
302298msgstr ""
303299"Ha helytelen jelkódot ad meg, a telefonja visszaállítja a gyári "
304300"beállításokat és törli minden személyes adatát."
301+
302+#~ msgid "CANCEL"
303+#~ msgstr "MÉGSE"
304+
305+#~ msgid "DONE"
306+#~ msgstr "KÉSZ"
307+
308+#~ msgid "Please enter SIM PIN"
309+#~ msgstr "Adja meg a SIM PIN kódját"
310+
311+#~ msgid "passphrase"
312+#~ msgstr "jelmondat"
313+
314+#, qt-format
315+#~ msgid "Incorrect %1"
316+#~ msgstr "Helytelen %1"
317+
318+#~ msgid "Please re-enter"
319+#~ msgstr "Kérjük adja meg újra"
320+
321+#~ msgid "passcode"
322+#~ msgstr "jelkód"
po/hy.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2013-06-27 04:43+0000\n"
1212"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
1313"Language-Team: Armenian <hy@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Որոնում"
139131
@@ -201,12 +193,16 @@ msgstr "Խոսի՛ր"
201193msgid "Speaking..."
202194msgstr "Խոսում եմ..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/id.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr ""
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/is.po+43−38
@@ -9,15 +9,15 @@ 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-08-13 14:09-0400\n"
12+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1313"PO-Revision-Date: 2014-07-31 16:10+0000\n"
1414"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
1515"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
1616"MIME-Version: 1.0\n"
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
19−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
20−"X-Generator: Launchpad (build 17156)\n"
19+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
20+"X-Generator: Launchpad (build 17163)\n"
2121"Language: is\n"
2222
2323#: plugins/LightDM/Greeter.cpp:129
@@ -98,19 +98,19 @@ msgstr ""
9898"Þú ert núna með æfingu í að nota skjáhreyfingar og getur því farið að nota "
9999"símann<br><br>Sláðu létt á skjáinn til að byrja"
100100
101−#: qml/Components/Lockscreen.qml:161
102−msgid "Too many incorrect attempts"
101+#: qml/Components/Lockscreen.qml:167
102+msgid "Please wait"
103103msgstr ""
104104
105−#: qml/Components/Lockscreen.qml:163
106−msgid "Please wait"
105+#: qml/Components/Lockscreen.qml:172
106+msgid "Too many incorrect attempts"
107107msgstr ""
108108
109−#: qml/Components/Lockscreen.qml:245
109+#: qml/Components/Lockscreen.qml:206
110110msgid "Emergency Call"
111111msgstr "Neyðarsímtal"
112112
113−#: qml/Components/Lockscreen.qml:268
113+#: qml/Components/Lockscreen.qml:226
114114msgid "OK"
115115msgstr "Í lagi"
116116
@@ -123,23 +123,15 @@ msgstr "Hæ %1"
123123msgid "Hello"
124124msgstr "Hæ"
125125
126−#: qml/Components/PinLockscreen.qml:197
127−msgid "CANCEL"
128−msgstr "HÆTTA VIÐ"
129−
130−#: qml/Components/PinLockscreen.qml:215
131−msgid "DONE"
132−msgstr "BÚIÐ"
133−
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See less"
136128msgstr "Sjá minna"
137129
138−#: qml/Dash/GenericScopeView.qml:360
130+#: qml/Dash/GenericScopeView.qml:361
139131msgid "See all"
140132msgstr "Sjá allt"
141133
142−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
134+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
143135msgid "Search"
144136msgstr "Leita"
145137
@@ -207,13 +199,17 @@ msgstr "Tala núna..."
207199msgid "Speaking..."
208200msgstr "Tala..."
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:100
202+#: qml/Notifications/NotificationMenuItemFactory.qml:105
211203msgid "Show password"
212204msgstr "Birta lykilorð"
213205
214−#: qml/Notifications/NotificationMenuItemFactory.qml:115
215−msgid "Please enter SIM PIN"
216−msgstr "Settu inn PIN fyrir SIM"
206+#: qml/Notifications/NotificationMenuItemFactory.qml:120
207+msgid "Enter SIM PIN"
208+msgstr ""
209+
210+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
211+msgid "Sorry, incorrect PIN"
212+msgstr ""
217213
218214#: qml/Panel/ActiveCallHint.qml:77
219215msgid "Tap to return to call..."
@@ -255,48 +251,57 @@ msgstr ""
255251msgid "Roaming"
256252msgstr ""
257253
258−#: qml/Shell.qml:267
259−msgid "passphrase"
254+#: qml/Shell.qml:266
255+msgid "Enter your passphrase"
260256msgstr ""
261257
262258#: qml/Shell.qml:267
263−msgid "passcode"
259+msgid "Sorry, incorrect passphrase"
264260msgstr ""
265261
266262#: qml/Shell.qml:269
267−#, qt-format
268−msgid "Enter your %1"
263+msgid "Enter your PIN"
269264msgstr ""
270265
271−#: qml/Shell.qml:270
266+#: qml/Shell.qml:273
272267#, qt-format
273−msgid "Incorrect %1"
268+msgid "Enter your %1"
274269msgstr ""
275270
276−#: qml/Shell.qml:272
277−msgid "Please re-enter"
271+#: qml/Shell.qml:274
272+#, qt-format
273+msgid "Sorry, incorrect %1"
278274msgstr ""
279275
280−#: qml/Shell.qml:306
276+#: qml/Shell.qml:310
281277msgid "Sorry, incorrect passphrase."
282278msgstr ""
283279
284−#: qml/Shell.qml:307
280+#: qml/Shell.qml:311
285281msgid "Sorry, incorrect passcode."
286282msgstr ""
287283
288−#: qml/Shell.qml:308
284+#: qml/Shell.qml:312
289285msgid "This will be your last attempt."
290286msgstr ""
291287
292−#: qml/Shell.qml:310
288+#: qml/Shell.qml:314
293289msgid ""
294290"If passphrase is entered incorrectly, your phone will conduct a factory "
295291"reset and all personal data will be deleted."
296292msgstr ""
297293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299295msgid ""
300296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301297"and all personal data will be deleted."
302298msgstr ""
299+
300+#~ msgid "DONE"
301+#~ msgstr "BÚIÐ"
302+
303+#~ msgid "CANCEL"
304+#~ msgstr "HÆTTA VIÐ"
305+
306+#~ msgid "Please enter SIM PIN"
307+#~ msgstr "Settu inn PIN fyrir SIM"
po/it.po+61−43
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-14 11:35+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-23 07:47+0000\n"
1212"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-24 06:46+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -99,19 +99,19 @@ msgstr ""
9999"L'apprendimento dei gesti è stato completato. È ora possibile iniziare a "
100100"usare il telefono.<br><br>Toccare lo schermo per iniziare"
101101
102−#: qml/Components/Lockscreen.qml:161
103−msgid "Too many incorrect attempts"
104−msgstr "Troppi tentativi errati"
105−
106−#: qml/Components/Lockscreen.qml:163
102+#: qml/Components/Lockscreen.qml:167
107103msgid "Please wait"
108104msgstr "Attendere"
109105
110−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:172
107+msgid "Too many incorrect attempts"
108+msgstr "Troppi tentativi errati"
109+
110+#: qml/Components/Lockscreen.qml:206
111111msgid "Emergency Call"
112112msgstr "Chiamata di emergenza"
113113
114−#: qml/Components/Lockscreen.qml:268
114+#: qml/Components/Lockscreen.qml:226
115115msgid "OK"
116116msgstr "OK"
117117
@@ -124,23 +124,15 @@ msgstr "Ciao %1"
124124msgid "Hello"
125125msgstr "Ciao"
126126
127−#: qml/Components/PinLockscreen.qml:197
128−msgid "CANCEL"
129−msgstr "Annulla"
130−
131−#: qml/Components/PinLockscreen.qml:215
132−msgid "DONE"
133−msgstr "Fatto"
134−
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See less"
137129msgstr "Mostra meno"
138130
139−#: qml/Dash/GenericScopeView.qml:360
131+#: qml/Dash/GenericScopeView.qml:361
140132msgid "See all"
141133msgstr "Mostra tutto"
142134
143−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
135+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
144136msgid "Search"
145137msgstr "Cerca"
146138
@@ -208,13 +200,17 @@ msgstr "Parla ora..."
208200msgid "Speaking..."
209201msgstr "Sto parlando..."
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:100
203+#: qml/Notifications/NotificationMenuItemFactory.qml:105
212204msgid "Show password"
213205msgstr "Mostra password"
214206
215−#: qml/Notifications/NotificationMenuItemFactory.qml:115
216−msgid "Please enter SIM PIN"
217−msgstr "Inserire il codice PIN"
207+#: qml/Notifications/NotificationMenuItemFactory.qml:120
208+msgid "Enter SIM PIN"
209+msgstr "Inserire il PIN della SIM"
210+
211+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
212+msgid "Sorry, incorrect PIN"
213+msgstr "PIN errato"
218214
219215#: qml/Panel/ActiveCallHint.qml:77
220216msgid "Tap to return to call..."
@@ -256,41 +252,41 @@ msgstr "Sblocca SIM"
256252msgid "Roaming"
257253msgstr "Roaming"
258254
259−#: qml/Shell.qml:267
260−msgid "passphrase"
261−msgstr "passphrase"
255+#: qml/Shell.qml:266
256+msgid "Enter your passphrase"
257+msgstr "Digitare la passphrase"
262258
263259#: qml/Shell.qml:267
264−msgid "passcode"
265−msgstr "passcode"
260+msgid "Sorry, incorrect passphrase"
261+msgstr "Passphrase errata"
266262
267263#: qml/Shell.qml:269
264+msgid "Enter your PIN"
265+msgstr "Inserire il PIN"
266+
267+#: qml/Shell.qml:273
268268#, qt-format
269269msgid "Enter your %1"
270270msgstr "Inserire %1"
271271
272−#: qml/Shell.qml:270
272+#: qml/Shell.qml:274
273273#, qt-format
274−msgid "Incorrect %1"
275−msgstr "Errore %1"
274+msgid "Sorry, incorrect %1"
275+msgstr "%1 non corretto"
276276
277−#: qml/Shell.qml:272
278−msgid "Please re-enter"
279−msgstr "Inserire nuovamente"
280−
281−#: qml/Shell.qml:306
277+#: qml/Shell.qml:310
282278msgid "Sorry, incorrect passphrase."
283279msgstr "Passphrase non corretta"
284280
285−#: qml/Shell.qml:307
281+#: qml/Shell.qml:311
286282msgid "Sorry, incorrect passcode."
287283msgstr "Passcode non corretto"
288284
289−#: qml/Shell.qml:308
285+#: qml/Shell.qml:312
290286msgid "This will be your last attempt."
291287msgstr "Questo sarà l'ultimo tentativo."
292288
293−#: qml/Shell.qml:310
289+#: qml/Shell.qml:314
294290msgid ""
295291"If passphrase is entered incorrectly, your phone will conduct a factory "
296292"reset and all personal data will be deleted."
@@ -298,10 +294,32 @@ msgstr ""
298294"Se verrà inserita una passphrase errata, il telefono eseguirà un ripristino "
299295"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
300296
301−#: qml/Shell.qml:311
297+#: qml/Shell.qml:315
302298msgid ""
303299"If passcode is entered incorrectly, your phone will conduct a factory reset "
304300"and all personal data will be deleted."
305301msgstr ""
306302"Se verrà inserito una passcode errato, il telefono eseguirà un ripristino "
307303"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
304+
305+#~ msgid "Please enter SIM PIN"
306+#~ msgstr "Inserire il codice PIN"
307+
308+#~ msgid "CANCEL"
309+#~ msgstr "Annulla"
310+
311+#~ msgid "DONE"
312+#~ msgstr "Fatto"
313+
314+#~ msgid "passphrase"
315+#~ msgstr "passphrase"
316+
317+#, qt-format
318+#~ msgid "Incorrect %1"
319+#~ msgstr "Errore %1"
320+
321+#~ msgid "Please re-enter"
322+#~ msgstr "Inserire nuovamente"
323+
324+#~ msgid "passcode"
325+#~ msgstr "passcode"
po/ja.po+65−47
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-18 15:03+0000\n"
1212"Last-Translator: Mitsuya Shibata <mty.shibata@gmail.com>\n"
1313"Language-Team: Japanese <ja@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-19 06:59+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -93,48 +93,40 @@ msgid ""
9393msgstr ""
9494"これでスマートフォンの操作に必要な、画面端を用いたジェスチャーを習得できました。<br><br>利用を開始するなら画面をタップしてください"
9595
96−#: qml/Components/Lockscreen.qml:161
97−msgid "Too many incorrect attempts"
98−msgstr "失敗回数が上限に達しました"
99−
100−#: qml/Components/Lockscreen.qml:163
96+#: qml/Components/Lockscreen.qml:167
10197msgid "Please wait"
10298msgstr "お待ちください"
10399
104−#: qml/Components/Lockscreen.qml:220
100+#: qml/Components/Lockscreen.qml:172
101+msgid "Too many incorrect attempts"
102+msgstr "失敗回数が上限に達しました"
103+
104+#: qml/Components/Lockscreen.qml:206
105105msgid "Emergency Call"
106106msgstr "緊急通報"
107107
108−#: qml/Components/Lockscreen.qml:243
108+#: qml/Components/Lockscreen.qml:226
109109msgid "OK"
110110msgstr "OK"
111111
112−#: qml/Components/PassphraseLockscreen.qml:62
112+#: qml/Components/PassphraseLockscreen.qml:61
113113#, qt-format
114114msgid "Hello %1"
115115msgstr "こんにちは %1 さん"
116116
117−#: qml/Components/PassphraseLockscreen.qml:62
117+#: qml/Components/PassphraseLockscreen.qml:61
118118msgid "Hello"
119119msgstr "こんにちは"
120120
121−#: qml/Components/PinLockscreen.qml:198
122−msgid "CANCEL"
123−msgstr "キャンセル"
124−
125−#: qml/Components/PinLockscreen.qml:216
126−msgid "DONE"
127−msgstr "完了"
128−
129−#: qml/Dash/GenericScopeView.qml:358
121+#: qml/Dash/GenericScopeView.qml:361
130122msgid "See less"
131123msgstr ""
132124
133−#: qml/Dash/GenericScopeView.qml:358
125+#: qml/Dash/GenericScopeView.qml:361
134126msgid "See all"
135127msgstr "すべて表示する"
136128
137−#: qml/Panel/SearchIndicator.qml:27
129+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
138130msgid "Search"
139131msgstr "検索"
140132
@@ -158,15 +150,15 @@ msgstr "レビューを追加"
158150msgid "Send"
159151msgstr "送信"
160152
161−#: qml/Dash/ScopesOverview.qml:200
153+#: qml/Dash/ScopesOverview.qml:201
162154msgid "Manage Dash"
163155msgstr "Dashの管理"
164156
165−#: qml/Dash/ScopesOverview.qml:405
157+#: qml/Dash/ScopesOverview.qml:408
166158msgid "Done"
167159msgstr "完了"
168160
169−#: qml/Dash/ScopesOverview.qml:431
161+#: qml/Dash/ScopesOverview.qml:434
170162msgid "Store"
171163msgstr "保存"
172164
@@ -202,13 +194,17 @@ msgstr "音声入力を開始..."
202194msgid "Speaking..."
203195msgstr "入力中..."
204196
205−#: qml/Notifications/NotificationMenuItemFactory.qml:100
197+#: qml/Notifications/NotificationMenuItemFactory.qml:105
206198msgid "Show password"
207199msgstr "パスワードを表示"
208200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:115
210−msgid "Please enter SIM PIN"
211−msgstr "SIM PINを入力してください"
201+#: qml/Notifications/NotificationMenuItemFactory.qml:120
202+msgid "Enter SIM PIN"
203+msgstr ""
204+
205+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
206+msgid "Sorry, incorrect PIN"
207+msgstr ""
212208
213209#: qml/Panel/ActiveCallHint.qml:77
214210msgid "Tap to return to call..."
@@ -250,48 +246,70 @@ msgstr "SIMのアンロック"
250246msgid "Roaming"
251247msgstr "ローミング"
252248
253−#: qml/Shell.qml:267
254−msgid "passphrase"
255−msgstr "パスフレーズ"
249+#: qml/Shell.qml:266
250+msgid "Enter your passphrase"
251+msgstr ""
256252
257253#: qml/Shell.qml:267
258−msgid "passcode"
259−msgstr "パスコード"
254+msgid "Sorry, incorrect passphrase"
255+msgstr ""
260256
261257#: qml/Shell.qml:269
258+msgid "Enter your PIN"
259+msgstr ""
260+
261+#: qml/Shell.qml:273
262262#, qt-format
263263msgid "Enter your %1"
264264msgstr "%1を入力してください"
265265
266−#: qml/Shell.qml:270
266+#: qml/Shell.qml:274
267267#, qt-format
268−msgid "Incorrect %1"
269−msgstr "%1が間違っています"
270−
271−#: qml/Shell.qml:272
272−msgid "Please re-enter"
273−msgstr "再入力してください"
268+msgid "Sorry, incorrect %1"
269+msgstr ""
274270
275−#: qml/Shell.qml:306
271+#: qml/Shell.qml:310
276272msgid "Sorry, incorrect passphrase."
277273msgstr "パスフレーズが間違っています。"
278274
279−#: qml/Shell.qml:307
275+#: qml/Shell.qml:311
280276msgid "Sorry, incorrect passcode."
281277msgstr "パスコードが間違っています。"
282278
283−#: qml/Shell.qml:308
279+#: qml/Shell.qml:312
284280msgid "This will be your last attempt."
285281msgstr "これが最後のチャンスです。"
286282
287−#: qml/Shell.qml:310
283+#: qml/Shell.qml:314
288284msgid ""
289285"If passphrase is entered incorrectly, your phone will conduct a factory "
290286"reset and all personal data will be deleted."
291287msgstr ""
292288
293−#: qml/Shell.qml:311
289+#: qml/Shell.qml:315
294290msgid ""
295291"If passcode is entered incorrectly, your phone will conduct a factory reset "
296292"and all personal data will be deleted."
297293msgstr ""
294+
295+#~ msgid "CANCEL"
296+#~ msgstr "キャンセル"
297+
298+#~ msgid "DONE"
299+#~ msgstr "完了"
300+
301+#~ msgid "Please enter SIM PIN"
302+#~ msgstr "SIM PINを入力してください"
303+
304+#~ msgid "passphrase"
305+#~ msgstr "パスフレーズ"
306+
307+#, qt-format
308+#~ msgid "Incorrect %1"
309+#~ msgstr "%1が間違っています"
310+
311+#~ msgid "passcode"
312+#~ msgstr "パスコード"
313+
314+#~ msgid "Please re-enter"
315+#~ msgstr "再入力してください"
po/km.po+64−46
@@ -7,14 +7,14 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-20 02:48+0000\n"
1212"Last-Translator: Sok Sophea <sksophea@gmail.com>\n"
1313"Language-Team: Khmer <km@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-20 06:23+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
1818"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
@@ -96,48 +96,40 @@ msgstr ""
9696"ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ "
9797"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
9898
99−#: qml/Components/Lockscreen.qml:161
100−msgid "Too many incorrect attempts"
101−msgstr "បាន​ព្យាយាម​ខុស​ច្រើន​ដង​ពេក"
102−
103−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:167
104100msgid "Please wait"
105101msgstr "សូមរង់ចាំ"
106102
107−#: qml/Components/Lockscreen.qml:220
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105+msgstr "បាន​ព្យាយាម​ខុស​ច្រើន​ដង​ពេក"
106+
107+#: qml/Components/Lockscreen.qml:206
108108msgid "Emergency Call"
109109msgstr "ការ​ហៅ​ពេល​អាសន្ន"
110110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112112msgid "OK"
113113msgstr "យល់ព្រម"
114114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116116#, qt-format
117117msgid "Hello %1"
118118msgstr "សួស្ដី %1"
119119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121121msgid "Hello"
122122msgstr "សួស្តី"
123123
124−#: qml/Components/PinLockscreen.qml:198
125−msgid "CANCEL"
126−msgstr "បោះបង់"
127−
128−#: qml/Components/PinLockscreen.qml:216
129−msgid "DONE"
130−msgstr "រួចរាល់"
131−
132−#: qml/Dash/GenericScopeView.qml:358
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See less"
134126msgstr "មើល​តិច​ជាង"
135127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See all"
138130msgstr "មើល​ទាំងអស់"
139131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141133msgid "Search"
142134msgstr "ស្វែង​រក"
143135
@@ -161,15 +153,15 @@ msgstr "បន្ថែម​ការ​ពិនិត្យ"
161153msgid "Send"
162154msgstr "ផ្ញើ"
163155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165157msgid "Manage Dash"
166158msgstr "គ្រប់គ្រង​ផ្ទាំង"
167159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169161msgid "Done"
170162msgstr "ធ្វើរួច"
171163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173165msgid "Store"
174166msgstr "រក្សាទុក"
175167
@@ -205,13 +197,17 @@ msgstr "និយាយ​ឥឡូវ..."
205197msgid "Speaking..."
206198msgstr "កំពុង​និយាយ..."
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209201msgid "Show password"
210202msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
213−msgid "Please enter SIM PIN"
214−msgstr "បញ្ចូល​កូដ PIN របស់​ស៊ីមកាត"
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
205+msgid "Enter SIM PIN"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215211
216212#: qml/Panel/ActiveCallHint.qml:77
217213msgid "Tap to return to call..."
@@ -253,41 +249,41 @@ msgstr "ដោះ​សោ​ស៊ីម"
253249msgid "Roaming"
254250msgstr "រ៉ូមីង"
255251
256−#: qml/Shell.qml:267
257−msgid "passphrase"
258−msgstr "ឃ្លា​សម្ងាត់"
252+#: qml/Shell.qml:266
253+msgid "Enter your passphrase"
254+msgstr ""
259255
260256#: qml/Shell.qml:267
261−msgid "passcode"
262−msgstr "កូដ​សម្ងាត់"
257+msgid "Sorry, incorrect passphrase"
258+msgstr ""
263259
264260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr ""
263+
264+#: qml/Shell.qml:273
265265#, qt-format
266266msgid "Enter your %1"
267267msgstr "បញ្ចូល %1 របស់​អ្នក"
268268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270270#, qt-format
271−msgid "Incorrect %1"
272−msgstr "មិន​ត្រឹមត្រូវ %1"
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "សូម​បញ្ចូល​ឡើងវិញ"
271+msgid "Sorry, incorrect %1"
272+msgstr ""
277273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279275msgid "Sorry, incorrect passphrase."
280276msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
281277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283279msgid "Sorry, incorrect passcode."
284280msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
285281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287283msgid "This will be your last attempt."
288284msgstr "នេះ​គឺ​ការ​ព្យាយាម​លើក​ចុងក្រោយ។"
289285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291287msgid ""
292288"If passphrase is entered incorrectly, your phone will conduct a factory "
293289"reset and all personal data will be deleted."
@@ -296,7 +292,7 @@ msgstr ""
296292"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
297293"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
298294
299−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
300296msgid ""
301297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302298"and all personal data will be deleted."
@@ -304,3 +300,25 @@ msgstr ""
304300"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ "
305301"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
306302"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
303+
304+#~ msgid "Please enter SIM PIN"
305+#~ msgstr "បញ្ចូល​កូដ PIN របស់​ស៊ីមកាត"
306+
307+#~ msgid "CANCEL"
308+#~ msgstr "បោះបង់"
309+
310+#~ msgid "DONE"
311+#~ msgstr "រួចរាល់"
312+
313+#~ msgid "passphrase"
314+#~ msgstr "ឃ្លា​សម្ងាត់"
315+
316+#, qt-format
317+#~ msgid "Incorrect %1"
318+#~ msgstr "មិន​ត្រឹមត្រូវ %1"
319+
320+#~ msgid "Please re-enter"
321+#~ msgstr "សូម​បញ្ចូល​ឡើងវិញ"
322+
323+#~ msgid "passcode"
324+#~ msgstr "កូដ​សម្ងាត់"
po/kn.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "ಹುಡುಕು"
139131
@@ -201,12 +193,16 @@ msgstr "ಈಗ ಮಾತನಾಡಿ ..."
201193msgid "Speaking..."
202194msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/ko.po+64−46
@@ -7,14 +7,14 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-20 06:23+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
1818"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
@@ -94,48 +94,40 @@ msgstr ""
9494"여러분은 끝에서 끌어오기 제스쳐를 완벽히 익히셨기 때문에 휴대 전화를 사용하기 시작할 수 있습니다. <br><br> 스크린을 터치해서 "
9595"시작하세요."
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
99−msgstr "너무 많이 틀리셨습니다"
100−
101−#: qml/Components/Lockscreen.qml:163
97+#: qml/Components/Lockscreen.qml:167
10298msgid "Please wait"
10399msgstr "기다려주십시오"
104100
105−#: qml/Components/Lockscreen.qml:220
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103+msgstr "너무 많이 틀리셨습니다"
104+
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "긴급 통화"
108108
109−#: qml/Components/Lockscreen.qml:243
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "확인"
112112
113−#: qml/Components/PassphraseLockscreen.qml:62
113+#: qml/Components/PassphraseLockscreen.qml:61
114114#, qt-format
115115msgid "Hello %1"
116116msgstr "안녕하세요 %1"
117117
118−#: qml/Components/PassphraseLockscreen.qml:62
118+#: qml/Components/PassphraseLockscreen.qml:61
119119msgid "Hello"
120120msgstr "안녕하세요"
121121
122−#: qml/Components/PinLockscreen.qml:198
123−msgid "CANCEL"
124−msgstr "취소"
125−
126−#: qml/Components/PinLockscreen.qml:216
127−msgid "DONE"
128−msgstr "완료"
129−
130−#: qml/Dash/GenericScopeView.qml:358
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "간단히 표시하기"
133125
134−#: qml/Dash/GenericScopeView.qml:358
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "모두 보기"
137129
138−#: qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "검색"
141133
@@ -159,15 +151,15 @@ msgstr "평가 제출하기"
159151msgid "Send"
160152msgstr "보내기"
161153
162−#: qml/Dash/ScopesOverview.qml:200
154+#: qml/Dash/ScopesOverview.qml:201
163155msgid "Manage Dash"
164156msgstr "대시 관리"
165157
166−#: qml/Dash/ScopesOverview.qml:405
158+#: qml/Dash/ScopesOverview.qml:408
167159msgid "Done"
168160msgstr "완료"
169161
170−#: qml/Dash/ScopesOverview.qml:431
162+#: qml/Dash/ScopesOverview.qml:434
171163msgid "Store"
172164msgstr "장터"
173165
@@ -203,13 +195,17 @@ msgstr "지금 말하세요..."
203195msgid "Speaking..."
204196msgstr "말하는 중..."
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "비밀 번호 보기"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
212−msgstr "심카드의 PIN 번호를 입력하세요."
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213209
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
@@ -251,50 +247,72 @@ msgstr "SIM 카드 보안 해제"
251247msgid "Roaming"
252248msgstr "로밍"
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
256−msgstr "비밀번호"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
252+msgstr ""
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
260−msgstr "비밀번호"
255+msgid "Sorry, incorrect passphrase"
256+msgstr ""
261257
262258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr ""
261+
262+#: qml/Shell.qml:273
263263#, qt-format
264264msgid "Enter your %1"
265265msgstr "%1를 입력하세요"
266266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268268#, qt-format
269−msgid "Incorrect %1"
270−msgstr "잘못된 %1입니다"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "다시 입력하세요"
269+msgid "Sorry, incorrect %1"
270+msgstr ""
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr "잘못된 비밀번호입니다."
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr "잘못된 비밀번호입니다."
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr "마지막 시도입니다."
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
292288msgstr ""
293289"만약 이번 시도에서 잘못 입력하면, 보안을 위해 휴대 전화가 공장 초기화 과정을 거쳐 모든 사용자 데이터를 삭제할 것입니다."
294290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296292msgid ""
297293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298294"and all personal data will be deleted."
299295msgstr ""
300296"만약 이번 시도에서 잘못 입력하면, 보안을 위해 휴대 전화가 공장 초기화 과정을 거쳐 모든 사용자 데이터를 삭제할 것입니다."
297+
298+#~ msgid "CANCEL"
299+#~ msgstr "취소"
300+
301+#~ msgid "DONE"
302+#~ msgstr "완료"
303+
304+#~ msgid "Please enter SIM PIN"
305+#~ msgstr "심카드의 PIN 번호를 입력하세요."
306+
307+#~ msgid "passphrase"
308+#~ msgstr "비밀번호"
309+
310+#~ msgid "passcode"
311+#~ msgstr "비밀번호"
312+
313+#, qt-format
314+#~ msgid "Incorrect %1"
315+#~ msgstr "잘못된 %1입니다"
316+
317+#~ msgid "Please re-enter"
318+#~ msgstr "다시 입력하세요"
po/ky.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Издөө"
139131
@@ -201,12 +193,16 @@ msgstr "Азыр сүйлөңүз..."
201193msgid "Speaking..."
202194msgstr "Сүйлөнүүдө..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/lo.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr "ສະບາຍດີ %1"
117117msgid "Hello"
118118msgstr "ສະບາຍດີ"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "ຊອກຫາ"
139131
@@ -201,12 +193,16 @@ msgstr "ເວົ້າໂລດ"
201193msgid "Speaking..."
202194msgstr "ກໍາລັງເວົ້າ"
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/lt.po+37−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -95,19 +95,19 @@ msgid ""
9595"phone<br><br>Tap on the screen to start"
9696msgstr ""
9797
98−#: qml/Components/Lockscreen.qml:161
99−msgid "Too many incorrect attempts"
98+#: qml/Components/Lockscreen.qml:167
99+msgid "Please wait"
100100msgstr ""
101101
102−#: qml/Components/Lockscreen.qml:163
103−msgid "Please wait"
102+#: qml/Components/Lockscreen.qml:172
103+msgid "Too many incorrect attempts"
104104msgstr ""
105105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107107msgid "Emergency Call"
108108msgstr "Pagalbos skambutis"
109109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111111msgid "OK"
112112msgstr ""
113113
@@ -120,23 +120,15 @@ msgstr "Laba diena, %1"
120120msgid "Hello"
121121msgstr "Sveiki"
122122
123−#: qml/Components/PinLockscreen.qml:197
124−msgid "CANCEL"
125−msgstr ""
126−
127−#: qml/Components/PinLockscreen.qml:215
128−msgid "DONE"
129−msgstr ""
130−
131−#: qml/Dash/GenericScopeView.qml:360
123+#: qml/Dash/GenericScopeView.qml:361
132124msgid "See less"
133125msgstr ""
134126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See all"
137129msgstr ""
138130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140132msgid "Search"
141133msgstr "Paieška"
142134
@@ -204,13 +196,17 @@ msgstr "Kalbėkite..."
204196msgid "Speaking..."
205197msgstr "Kalbama..."
206198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208200msgid "Show password"
209201msgstr "Rodyti slaptažodį"
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
212−msgid "Please enter SIM PIN"
213−msgstr "Įveskite SIM kortelės PIN kodą"
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
204+msgid "Enter SIM PIN"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214210
215211#: qml/Panel/ActiveCallHint.qml:77
216212msgid "Tap to return to call..."
@@ -252,48 +248,51 @@ msgstr ""
252248msgid "Roaming"
253249msgstr ""
254250
255−#: qml/Shell.qml:267
256−msgid "passphrase"
251+#: qml/Shell.qml:266
252+msgid "Enter your passphrase"
257253msgstr ""
258254
259255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261257msgstr ""
262258
263259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266261msgstr ""
267262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271266msgstr ""
272267
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
268+#: qml/Shell.qml:274
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275271msgstr ""
276272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278274msgid "Sorry, incorrect passphrase."
279275msgstr ""
280276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282278msgid "Sorry, incorrect passcode."
283279msgstr ""
284280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286282msgid "This will be your last attempt."
287283msgstr ""
288284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290286msgid ""
291287"If passphrase is entered incorrectly, your phone will conduct a factory "
292288"reset and all personal data will be deleted."
293289msgstr ""
294290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296292msgid ""
297293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298294"and all personal data will be deleted."
299295msgstr ""
296+
297+#~ msgid "Please enter SIM PIN"
298+#~ msgstr "Įveskite SIM kortelės PIN kodą"
po/lv.po+60−48
@@ -7,19 +7,19 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-12 19:07+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
22−msgstr ""
22+msgstr "Parole: "
2323
2424#: plugins/Unity/Launcher/launcheritem.cpp:43
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,7 +32,7 @@ msgstr ""
3232
3333#: qml/Components/Dialogs.qml:142
3434msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Vai esat drošs ka vēlaties izslēgt?"
3636
3737#: qml/Components/Dialogs.qml:144
3838msgid "Power off"
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
97−msgstr ""
98−
99−#: qml/Components/Lockscreen.qml:163
95+#: qml/Components/Lockscreen.qml:167
10096msgid "Please wait"
97+msgstr "Lūdzu, uzgaidiet"
98+
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "Neatliekamās Palīdzības zvans"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr "LABI"
110110
@@ -117,23 +117,15 @@ msgstr "Sveiki, %1"
117117msgid "Hello"
118118msgstr "Sveiki"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr "ATCELT"
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr "IZDARĪTS"
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr "Redzēt mazāk"
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr "Skatīt visus"
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Meklēt"
139131
@@ -167,7 +159,7 @@ msgstr "Pabeigts"
167159
168160#: qml/Dash/ScopesOverview.qml:434
169161msgid "Store"
170−msgstr ""
162+msgstr "Veikals"
171163
172164#: qml/Dash/ScopesOverviewTab.qml:36
173165msgid "Favorites"
@@ -201,13 +193,17 @@ msgstr "Runajiet Tagad"
201193msgid "Speaking..."
202194msgstr "Runa..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "Rādīt paroli"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
210−msgstr "Lūdzu ievadiet SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
213209msgid "Tap to return to call..."
@@ -219,7 +215,7 @@ msgstr "Konference"
219215
220216#: qml/Panel/Indicators/MenuItemFactory.qml:651
221217msgid "In queue…"
222−msgstr ""
218+msgstr "Sarakstā..."
223219
224220#: qml/Panel/Indicators/MenuItemFactory.qml:655
225221msgid "Downloading"
@@ -239,7 +235,7 @@ msgstr "Pabeigts"
239235
240236#: qml/Panel/Indicators/MenuItemFactory.qml:663
241237msgid "Failed, tap to retry"
242−msgstr ""
238+msgstr "Neizdevās, spiest lai mēģināt vēlreiz"
243239
244240#: qml/Panel/Indicators/ModemInfoItem.qml:105
245241msgid "Unlock SIM"
@@ -247,50 +243,66 @@ msgstr "Atbloķēt SIM"
247243
248244#: qml/Panel/Indicators/RoamingIndication.qml:27
249245msgid "Roaming"
250−msgstr ""
246+msgstr "Viesabonēšana"
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
268−msgstr ""
262+msgid "Enter your %1"
263+msgstr "Ievadiet jūsu %1"
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284−msgstr ""
280+msgstr "Šīs būs jūs pēdējais mēģinājums."
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
296292msgstr ""
293+
294+#~ msgid "Please enter SIM PIN"
295+#~ msgstr "Lūdzu ievadiet SIM PIN"
296+
297+#~ msgid "DONE"
298+#~ msgstr "IZDARĪTS"
299+
300+#~ msgid "CANCEL"
301+#~ msgstr "ATCELT"
302+
303+#~ msgid "Please re-enter"
304+#~ msgstr "Lūdzu ievadiet vēlreiz"
305+
306+#, qt-format
307+#~ msgid "Incorrect %1"
308+#~ msgstr "Nepareizs %1"
po/ml.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -94,19 +94,19 @@ msgid ""
9494"phone<br><br>Tap on the screen to start"
9595msgstr ""
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
97+#: qml/Components/Lockscreen.qml:167
98+msgid "Please wait"
9999msgstr ""
100100
101−#: qml/Components/Lockscreen.qml:163
102−msgid "Please wait"
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103103msgstr ""
104104
105−#: qml/Components/Lockscreen.qml:245
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "അടിയന്തിര വിളി"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr ""
112112
@@ -119,23 +119,15 @@ msgstr "ഹലോ %1"
119119msgid "Hello"
120120msgstr "ഹലോ"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr ""
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr ""
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr ""
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr ""
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "തിരയുക"
141133
@@ -203,12 +195,16 @@ msgstr "ഇപ്പോള്‍ സംസാരിക്കുക..."
203195msgid "Speaking..."
204196msgstr "സംസാരിക്കുന്നു..."
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "രഹസ്യവാക്ക് കാണിക്കുക"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
212208msgstr ""
213209
214210#: qml/Panel/ActiveCallHint.qml:77
@@ -251,47 +247,47 @@ msgstr ""
251247msgid "Roaming"
252248msgstr ""
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
256252msgstr ""
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260256msgstr ""
261257
262258#: qml/Shell.qml:269
263−#, qt-format
264−msgid "Enter your %1"
259+msgid "Enter your PIN"
265260msgstr ""
266261
267−#: qml/Shell.qml:270
262+#: qml/Shell.qml:273
268263#, qt-format
269−msgid "Incorrect %1"
264+msgid "Enter your %1"
270265msgstr ""
271266
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
267+#: qml/Shell.qml:274
268+#, qt-format
269+msgid "Sorry, incorrect %1"
274270msgstr ""
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr ""
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr ""
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr ""
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
292288msgstr ""
293289
294−#: qml/Shell.qml:311
290+#: qml/Shell.qml:315
295291msgid ""
296292"If passcode is entered incorrectly, your phone will conduct a factory reset "
297293"and all personal data will be deleted."
po/mr.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr ""
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/ms.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "panggilan Kecemasan"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr "Hai %1"
117117msgid "Hello"
118118msgstr "Hello"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Gelintar"
139131
@@ -201,12 +193,16 @@ msgstr "Cakap Sekarang..."
201193msgid "Speaking..."
202194msgstr "Bercakap..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "Tunjuk kata laluan"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/my.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "အရေးပေါ်ခေါ်မည်"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr "ဟဲလို %1"
117117msgid "Hello"
118118msgstr "ဟဲလို"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "ရှာဖွေ"
139131
@@ -201,12 +193,16 @@ msgstr "ယခုပြောပါ"
201193msgid "Speaking..."
202194msgstr "ပြောနေသည်"
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "စကားဝှက်ကိုပြ"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/nb.po+60−42
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-14 16:56+0000\n"
1212"Last-Translator: Åka Sikrom <Unknown>\n"
1313"Language-Team: Norwegian Bokmal <nb@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
9494"Du har nå mestret kantbevegelsene, og er klar til å bruke "
9595"telefonen<br><br>Trykk på skjermen for å begynne"
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
99−msgstr "Du har tastet feil for mange ganger"
100−
101−#: qml/Components/Lockscreen.qml:163
97+#: qml/Components/Lockscreen.qml:167
10298msgid "Please wait"
10399msgstr "Vent litt"
104100
105−#: qml/Components/Lockscreen.qml:245
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103+msgstr "Du har tastet feil for mange ganger"
104+
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "Nødanrop"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "OK"
112112
@@ -119,23 +119,15 @@ msgstr "Hei, %1"
119119msgid "Hello"
120120msgstr "Hei"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr "AVBRYT"
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr "FERDIG"
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "Vis mindre"
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "Vis alt"
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "Søk"
141133
@@ -203,13 +195,17 @@ msgstr "Snakk nå …"
203195msgid "Speaking..."
204196msgstr "Snakker …"
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "Vis passord"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
212−msgstr "Skriv inn PIN-koden til SIM-kortet"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213209
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
@@ -251,41 +247,41 @@ msgstr "Lås opp SIM"
251247msgid "Roaming"
252248msgstr "Fremmednett"
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
256−msgstr "passordfrase"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
252+msgstr ""
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
260−msgstr "kode"
255+msgid "Sorry, incorrect passphrase"
256+msgstr ""
261257
262258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr ""
261+
262+#: qml/Shell.qml:273
263263#, qt-format
264264msgid "Enter your %1"
265265msgstr "Skriv inn %1"
266266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268268#, qt-format
269−msgid "Incorrect %1"
270−msgstr "Feil %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "Prøv på nytt"
269+msgid "Sorry, incorrect %1"
270+msgstr ""
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr "Feil passordfrase."
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr "Feil kode."
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr "Dette er ditt siste forsøk."
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293289"Hvis du skriver feil passordfrase en gang til, tilbakestilles telefonen til "
294290"fabrikkinnstillinger, og alle personlige data slettes."
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
301297"Hvis du skriver feil kode en gang til, tilbakestilles telefonen til "
302298"fabrikkinnstillinger, og alle personlige data slettes."
299+
300+#~ msgid "Please enter SIM PIN"
301+#~ msgstr "Skriv inn PIN-koden til SIM-kortet"
302+
303+#~ msgid "CANCEL"
304+#~ msgstr "AVBRYT"
305+
306+#~ msgid "DONE"
307+#~ msgstr "FERDIG"
308+
309+#~ msgid "passphrase"
310+#~ msgstr "passordfrase"
311+
312+#, qt-format
313+#~ msgid "Incorrect %1"
314+#~ msgstr "Feil %1"
315+
316+#~ msgid "Please re-enter"
317+#~ msgstr "Prøv på nytt"
318+
319+#~ msgid "passcode"
320+#~ msgstr "kode"
po/nl.po+60−42
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-14 19:08+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 19:39+0000\n"
1212"Last-Translator: rob <linuxned@gmail.com>\n"
1313"Language-Team: Dutch <nl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
9494"Nu u de bewegingen vanuit de randen onder de knie heeft, kunt u beginnen met "
9595"het gebruiken van de telefoon<br><br>Tik op het scherm om te beginnen"
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
99−msgstr "Te veel mislukte pogingen"
100−
101−#: qml/Components/Lockscreen.qml:163
97+#: qml/Components/Lockscreen.qml:167
10298msgid "Please wait"
10399msgstr "Even geduld a.u.b."
104100
105−#: qml/Components/Lockscreen.qml:245
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103+msgstr "Te veel mislukte pogingen"
104+
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "Noodoproep"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "Ok"
112112
@@ -119,23 +119,15 @@ msgstr "Hallo %1"
119119msgid "Hello"
120120msgstr "Hallo"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr "ANNULEREN"
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr "KLAAR"
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "Minder zien"
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "Alles zien"
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "Zoeken"
141133
@@ -203,14 +195,18 @@ msgstr "Nu inspreken…"
203195msgid "Speaking..."
204196msgstr "Inspreken…"
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "Wachtwoord tonen"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
212204msgstr "Voer SIM-pincode in"
213205
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr "Sorry, onjuiste pincode"
209+
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
216212msgstr "Tik om terug te keren naar gesprek…"
@@ -251,41 +247,41 @@ msgstr "SIM-kaart deblokkeren"
251247msgid "Roaming"
252248msgstr "Roaming"
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
256−msgstr "wachtwoordzin"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
252+msgstr "Voer uw wachtwoordzin in"
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
260−msgstr "toegangscode"
255+msgid "Sorry, incorrect passphrase"
256+msgstr "Sorry, onjuiste wachtwoordzin"
261257
262258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr "Voer uw pincode in"
261+
262+#: qml/Shell.qml:273
263263#, qt-format
264264msgid "Enter your %1"
265265msgstr "Voer uw %1 in"
266266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268268#, qt-format
269−msgid "Incorrect %1"
270−msgstr "%1 onjuist"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "A.u.b. opnieuw invoeren"
269+msgid "Sorry, incorrect %1"
270+msgstr "Sorry, onjuiste %1"
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr "Sorry, onjuiste wachtwoordzin."
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr "Sorry, onjuiste toegangscode."
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr "Dit zal uw laatste poging worden."
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293289"Wanneer de wachtwoordzin nu opnieuw onjuist wordt ingevoerd, zal uw telefoon "
294290"teruggaan naar de fabrieksinstellingen en zal al uw eigen data verloren gaan."
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
301297"Wanneer de toegangscode nu opnieuw onjuist wordt ingevoerd, zal uw telefoon "
302298"teruggaan naar de fabrieksinstellingen en zal al uw eigen data verloren gaan."
299+
300+#~ msgid "DONE"
301+#~ msgstr "KLAAR"
302+
303+#~ msgid "CANCEL"
304+#~ msgstr "ANNULEREN"
305+
306+#~ msgid "Please enter SIM PIN"
307+#~ msgstr "Voer SIM-pincode in"
308+
309+#~ msgid "passphrase"
310+#~ msgstr "wachtwoordzin"
311+
312+#, qt-format
313+#~ msgid "Incorrect %1"
314+#~ msgstr "%1 onjuist"
315+
316+#~ msgid "Please re-enter"
317+#~ msgstr "A.u.b. opnieuw invoeren"
318+
319+#~ msgid "passcode"
320+#~ msgstr "toegangscode"
po/pl.po+59−45
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-19 06:59+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -96,48 +96,40 @@ msgstr ""
9696"Wydawanie poleceń krawędzi zostało opanowane. Urządzenie gotowe do "
9797"pracy.<br><br>Dotknij ekranu by rozpocząć"
9898
99−#: qml/Components/Lockscreen.qml:161
100−msgid "Too many incorrect attempts"
99+#: qml/Components/Lockscreen.qml:167
100+msgid "Please wait"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:163
104−msgid "Please wait"
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:220
107+#: qml/Components/Lockscreen.qml:206
108108msgid "Emergency Call"
109109msgstr "Telefon ratunkowy"
110110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112112msgid "OK"
113113msgstr "OK"
114114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116116#, qt-format
117117msgid "Hello %1"
118118msgstr "Witaj %1"
119119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121121msgid "Hello"
122122msgstr "Witaj"
123123
124−#: qml/Components/PinLockscreen.qml:198
125−msgid "CANCEL"
126−msgstr "ANULUJ"
127−
128−#: qml/Components/PinLockscreen.qml:216
129−msgid "DONE"
130−msgstr "ZROBIONE"
131−
132−#: qml/Dash/GenericScopeView.qml:358
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See less"
134126msgstr "Zobacz mniej"
135127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See all"
138130msgstr "Zobacz wszystko"
139131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141133msgid "Search"
142134msgstr "Szukaj"
143135
@@ -161,15 +153,15 @@ msgstr "Dodaj recenzję"
161153msgid "Send"
162154msgstr "Wyślij"
163155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165157msgid "Manage Dash"
166158msgstr ""
167159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169161msgid "Done"
170162msgstr ""
171163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173165msgid "Store"
174166msgstr ""
175167
@@ -205,13 +197,17 @@ msgstr "Mów teraz..."
205197msgid "Speaking..."
206198msgstr "Rozpoznanie..."
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209201msgid "Show password"
210202msgstr "Wyświetl hasło"
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
213−msgid "Please enter SIM PIN"
214−msgstr "Wprowadź kod PIN karty SIM"
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
205+msgid "Enter SIM PIN"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215211
216212#: qml/Panel/ActiveCallHint.qml:77
217213msgid "Tap to return to call..."
@@ -253,48 +249,66 @@ msgstr ""
253249msgid "Roaming"
254250msgstr ""
255251
256−#: qml/Shell.qml:267
257−msgid "passphrase"
258−msgstr "hasło"
252+#: qml/Shell.qml:266
253+msgid "Enter your passphrase"
254+msgstr ""
259255
260256#: qml/Shell.qml:267
261−msgid "passcode"
262−msgstr "kod"
257+msgid "Sorry, incorrect passphrase"
258+msgstr ""
263259
264260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr ""
263+
264+#: qml/Shell.qml:273
265265#, qt-format
266266msgid "Enter your %1"
267267msgstr ""
268268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270270#, qt-format
271−msgid "Incorrect %1"
271+msgid "Sorry, incorrect %1"
272272msgstr ""
273273
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Proszę wprowadzić ponownie"
277−
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279275msgid "Sorry, incorrect passphrase."
280276msgstr "Niestety, błędne hasło"
281277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283279msgid "Sorry, incorrect passcode."
284280msgstr "Niestety, błędny kod"
285281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287283msgid "This will be your last attempt."
288284msgstr ""
289285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291287msgid ""
292288"If passphrase is entered incorrectly, your phone will conduct a factory "
293289"reset and all personal data will be deleted."
294290msgstr ""
295291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297293msgid ""
298294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299295"and all personal data will be deleted."
300296msgstr ""
297+
298+#~ msgid "Please enter SIM PIN"
299+#~ msgstr "Wprowadź kod PIN karty SIM"
300+
301+#~ msgid "CANCEL"
302+#~ msgstr "ANULUJ"
303+
304+#~ msgid "DONE"
305+#~ msgstr "ZROBIONE"
306+
307+#~ msgid "passcode"
308+#~ msgstr "kod"
309+
310+#~ msgid "passphrase"
311+#~ msgstr "hasło"
312+
313+#~ msgid "Please re-enter"
314+#~ msgstr "Proszę wprowadzić ponownie"
po/pt.po+61−44
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-17 20:27+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-25 16:51+0000\n"
1212"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
1313"Language-Team: Portuguese <pt@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-26 07:47+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -95,19 +95,19 @@ msgstr ""
9595"Já domina os gestos dos limites e pode começar a usar o "
9696"telefone<br><br>Toque no ecrã para começar"
9797
98−#: qml/Components/Lockscreen.qml:161
99−msgid "Too many incorrect attempts"
100−msgstr "Demasiadas tentativas incorrectas"
101−
102−#: qml/Components/Lockscreen.qml:163
98+#: qml/Components/Lockscreen.qml:167
10399msgid "Please wait"
104100msgstr "Por favor aguarde"
105101
106−#: qml/Components/Lockscreen.qml:245
102+#: qml/Components/Lockscreen.qml:172
103+msgid "Too many incorrect attempts"
104+msgstr "Demasiadas tentativas incorrectas"
105+
106+#: qml/Components/Lockscreen.qml:206
107107msgid "Emergency Call"
108108msgstr "Chamada de emergência"
109109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111111msgid "OK"
112112msgstr "OK"
113113
@@ -120,23 +120,15 @@ msgstr "Olá %1"
120120msgid "Hello"
121121msgstr "Olá"
122122
123−#: qml/Components/PinLockscreen.qml:197
124−msgid "CANCEL"
125−msgstr "CANCELAR"
126−
127−#: qml/Components/PinLockscreen.qml:215
128−msgid "DONE"
129−msgstr "FEITO"
130−
131−#: qml/Dash/GenericScopeView.qml:360
123+#: qml/Dash/GenericScopeView.qml:361
132124msgid "See less"
133125msgstr "Ver menos"
134126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See all"
137129msgstr "Ver todos"
138130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140132msgid "Search"
141133msgstr "Procurar"
142134
@@ -204,13 +196,17 @@ msgstr "Fale agora..."
204196msgid "Speaking..."
205197msgstr "A falar..."
206198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208200msgid "Show password"
209201msgstr "Mostrar palavra-passe"
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
212−msgid "Please enter SIM PIN"
213−msgstr "Por favor insira o PIN"
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
204+msgid "Enter SIM PIN"
205+msgstr "Introduza o PIN do SIM"
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr "Desculpe, PIN incorreto"
214210
215211#: qml/Panel/ActiveCallHint.qml:77
216212msgid "Tap to return to call..."
@@ -252,41 +248,41 @@ msgstr "Desbloquear SIM"
252248msgid "Roaming"
253249msgstr "Roaming"
254250
255−#: qml/Shell.qml:267
256−msgid "passphrase"
257−msgstr "frase de acesso"
251+#: qml/Shell.qml:266
252+msgid "Enter your passphrase"
253+msgstr "Introduza a sua frase-senha"
258254
259255#: qml/Shell.qml:267
260−msgid "passcode"
261−msgstr ""
256+msgid "Sorry, incorrect passphrase"
257+msgstr "Desculpe, frase-senha incorreta"
262258
263259#: qml/Shell.qml:269
260+msgid "Enter your PIN"
261+msgstr "Introduza o seu PIN"
262+
263+#: qml/Shell.qml:273
264264#, qt-format
265265msgid "Enter your %1"
266266msgstr "Introduza o seu %1"
267267
268−#: qml/Shell.qml:270
268+#: qml/Shell.qml:274
269269#, qt-format
270−msgid "Incorrect %1"
271−msgstr "Incorreto %1"
272−
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
275−msgstr "Por favor, volte a reintroduzir"
270+msgid "Sorry, incorrect %1"
271+msgstr "Desculpe, incorreto %1"
276272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278274msgid "Sorry, incorrect passphrase."
279275msgstr "Desculpe, frase de acesso incorreta."
280276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282278msgid "Sorry, incorrect passcode."
283−msgstr ""
279+msgstr "Desculpe, senha incorreta."
284280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286282msgid "This will be your last attempt."
287283msgstr "Esta será a sua última tentativa."
288284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290286msgid ""
291287"If passphrase is entered incorrectly, your phone will conduct a factory "
292288"reset and all personal data will be deleted."
@@ -294,8 +290,29 @@ msgstr ""
294290"Se a frase de acesso for introduzida incorretamente, o seu telemóvel vai "
295291"proceder ao restauro de fábrica e apagará toda a sua informação pessoal."
296292
297−#: qml/Shell.qml:311
293+#: qml/Shell.qml:315
298294msgid ""
299295"If passcode is entered incorrectly, your phone will conduct a factory reset "
300296"and all personal data will be deleted."
301297msgstr ""
298+"Se a senha for introduzida incorretamente, o seu telemóvel vai apagar todos "
299+"os seus dados pessoais."
300+
301+#~ msgid "Please enter SIM PIN"
302+#~ msgstr "Por favor insira o PIN"
303+
304+#~ msgid "CANCEL"
305+#~ msgstr "CANCELAR"
306+
307+#~ msgid "DONE"
308+#~ msgstr "FEITO"
309+
310+#~ msgid "passphrase"
311+#~ msgstr "frase de acesso"
312+
313+#, qt-format
314+#~ msgid "Incorrect %1"
315+#~ msgstr "Incorreto %1"
316+
317+#~ msgid "Please re-enter"
318+#~ msgstr "Por favor, volte a reintroduzir"
po/pt_BR.po+65−47
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-18 14:14+0000\n"
1212"Last-Translator: Rafael Neri <Unknown>\n"
1313"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-19 06:59+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -96,48 +96,40 @@ msgstr ""
9696"Agora você já domina os gestos das bordas e pode começar a usar o "
9797"telefone<br><br>Toque na tela para iniciar"
9898
99−#: qml/Components/Lockscreen.qml:161
100−msgid "Too many incorrect attempts"
101−msgstr "Muitas tentativas incorretas"
102−
103−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:167
104100msgid "Please wait"
105101msgstr "Por favor, aguarde"
106102
107−#: qml/Components/Lockscreen.qml:220
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105+msgstr "Muitas tentativas incorretas"
106+
107+#: qml/Components/Lockscreen.qml:206
108108msgid "Emergency Call"
109109msgstr "Chamada de emergência"
110110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112112msgid "OK"
113113msgstr "OK"
114114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116116#, qt-format
117117msgid "Hello %1"
118118msgstr "Olá %1"
119119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121121msgid "Hello"
122122msgstr "Olá"
123123
124−#: qml/Components/PinLockscreen.qml:198
125−msgid "CANCEL"
126−msgstr "CANCELAR"
127−
128−#: qml/Components/PinLockscreen.qml:216
129−msgid "DONE"
130−msgstr "FEITO"
131−
132−#: qml/Dash/GenericScopeView.qml:358
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See less"
134126msgstr "Ver menos"
135127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See all"
138130msgstr "Ver todos"
139131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141133msgid "Search"
142134msgstr "Pesquisar"
143135
@@ -161,15 +153,15 @@ msgstr "Adicionar uma análise"
161153msgid "Send"
162154msgstr "Enviar"
163155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165157msgid "Manage Dash"
166158msgstr "Gerencia painel"
167159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169161msgid "Done"
170162msgstr "Concluído"
171163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173165msgid "Store"
174166msgstr "Loja"
175167
@@ -205,13 +197,17 @@ msgstr "Fale agora..."
205197msgid "Speaking..."
206198msgstr "Falando..."
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209201msgid "Show password"
210202msgstr "Exibir senha"
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
213−msgid "Please enter SIM PIN"
214−msgstr "Por favor, digite o PIN do cartão SIM"
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
205+msgid "Enter SIM PIN"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215211
216212#: qml/Panel/ActiveCallHint.qml:77
217213msgid "Tap to return to call..."
@@ -253,41 +249,41 @@ msgstr "Desbloquear SIM"
253249msgid "Roaming"
254250msgstr "Roaming"
255251
256−#: qml/Shell.qml:267
257−msgid "passphrase"
258−msgstr "senha"
252+#: qml/Shell.qml:266
253+msgid "Enter your passphrase"
254+msgstr ""
259255
260256#: qml/Shell.qml:267
261−msgid "passcode"
262−msgstr "código de acesso"
257+msgid "Sorry, incorrect passphrase"
258+msgstr ""
263259
264260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr ""
263+
264+#: qml/Shell.qml:273
265265#, qt-format
266266msgid "Enter your %1"
267267msgstr "Digite o seu %1"
268268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270270#, qt-format
271−msgid "Incorrect %1"
272−msgstr "%1 incorreto"
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Por favor, digite novamente"
271+msgid "Sorry, incorrect %1"
272+msgstr ""
277273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279275msgid "Sorry, incorrect passphrase."
280276msgstr "Desculpe, senha incorreta."
281277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283279msgid "Sorry, incorrect passcode."
284280msgstr "Desculpe, código de acesso incorreto."
285281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287283msgid "This will be your last attempt."
288284msgstr "Esta será a sua última tentativa."
289285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291287msgid ""
292288"If passphrase is entered incorrectly, your phone will conduct a factory "
293289"reset and all personal data will be deleted."
@@ -295,10 +291,32 @@ msgstr ""
295291"Se a senha for digitada incorretamente, o telefone será restaurado aos "
296292"padrões de fábrica e todos os dados pessoais serão apagados."
297293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299295msgid ""
300296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301297"and all personal data will be deleted."
302298msgstr ""
303299"Se o código de acesso for digitado incorretamente, o telefone será "
304300"restaurado aos padrões de fábrica e todos os dados pessoais serão apagados."
301+
302+#~ msgid "Please enter SIM PIN"
303+#~ msgstr "Por favor, digite o PIN do cartão SIM"
304+
305+#~ msgid "CANCEL"
306+#~ msgstr "CANCELAR"
307+
308+#~ msgid "DONE"
309+#~ msgstr "FEITO"
310+
311+#~ msgid "passcode"
312+#~ msgstr "código de acesso"
313+
314+#~ msgid "passphrase"
315+#~ msgstr "senha"
316+
317+#, qt-format
318+#~ msgid "Incorrect %1"
319+#~ msgstr "%1 incorreto"
320+
321+#~ msgid "Please re-enter"
322+#~ msgstr "Por favor, digite novamente"
po/ro.po+62−44
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-14 19:34+0000\n"
12−"Last-Translator: Marian Vasile <marianvasile1972@gmail.com>\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 18:53+0000\n"
12+"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n"
1313"Language-Team: Romanian <ro@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -97,19 +97,19 @@ msgstr ""
9797"De acum stăpâniți gesturile de control și puteți începe să utilizați "
9898"telefonul<br><br>Atingeți ecranul pentru a începe"
9999
100−#: qml/Components/Lockscreen.qml:161
101−msgid "Too many incorrect attempts"
102−msgstr "Prea multe încercări greșite"
103−
104−#: qml/Components/Lockscreen.qml:163
100+#: qml/Components/Lockscreen.qml:167
105101msgid "Please wait"
106102msgstr "Așteptați"
107103
108−#: qml/Components/Lockscreen.qml:245
104+#: qml/Components/Lockscreen.qml:172
105+msgid "Too many incorrect attempts"
106+msgstr "Prea multe încercări greșite"
107+
108+#: qml/Components/Lockscreen.qml:206
109109msgid "Emergency Call"
110110msgstr "Apel de urgență"
111111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113113msgid "OK"
114114msgstr "În regulă"
115115
@@ -122,23 +122,15 @@ msgstr "Salutări %1"
122122msgid "Hello"
123123msgstr "Salutări"
124124
125−#: qml/Components/PinLockscreen.qml:197
126−msgid "CANCEL"
127−msgstr "ANULEAZĂ"
128−
129−#: qml/Components/PinLockscreen.qml:215
130−msgid "DONE"
131−msgstr "EFECTUAT"
132−
133−#: qml/Dash/GenericScopeView.qml:360
125+#: qml/Dash/GenericScopeView.qml:361
134126msgid "See less"
135127msgstr "Afișează mai puține"
136128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138130msgid "See all"
139131msgstr "Afișează tot"
140132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142134msgid "Search"
143135msgstr "Căutare"
144136
@@ -206,13 +198,17 @@ msgstr "Vorbiți acum..."
206198msgid "Speaking..."
207199msgstr "Vorbire..."
208200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210202msgid "Show password"
211203msgstr "Arată parola"
212204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
214−msgid "Please enter SIM PIN"
215−msgstr "Introduceți PIN pentru SIM"
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
206+msgid "Enter SIM PIN"
207+msgstr "Introduceți codul PIN pentru SIM"
208+
209+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
210+msgid "Sorry, incorrect PIN"
211+msgstr ""
216212
217213#: qml/Panel/ActiveCallHint.qml:77
218214msgid "Tap to return to call..."
@@ -254,41 +250,41 @@ msgstr "Deblocare SIM"
254250msgid "Roaming"
255251msgstr "Roaming"
256252
257−#: qml/Shell.qml:267
258−msgid "passphrase"
259−msgstr "frază parolă"
253+#: qml/Shell.qml:266
254+msgid "Enter your passphrase"
255+msgstr "Introduceți fraza dumneavoastră secretă"
260256
261257#: qml/Shell.qml:267
262−msgid "passcode"
263−msgstr "parolă"
258+msgid "Sorry, incorrect passphrase"
259+msgstr ""
264260
265261#: qml/Shell.qml:269
262+msgid "Enter your PIN"
263+msgstr ""
264+
265+#: qml/Shell.qml:273
266266#, qt-format
267267msgid "Enter your %1"
268268msgstr "Introduceți %1"
269269
270−#: qml/Shell.qml:270
270+#: qml/Shell.qml:274
271271#, qt-format
272−msgid "Incorrect %1"
273−msgstr "%1 greșit"
274−
275−#: qml/Shell.qml:272
276−msgid "Please re-enter"
277−msgstr "Vă rugăm să încercați din nou"
272+msgid "Sorry, incorrect %1"
273+msgstr ""
278274
279−#: qml/Shell.qml:306
275+#: qml/Shell.qml:310
280276msgid "Sorry, incorrect passphrase."
281277msgstr "Frază parolă greșită"
282278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284280msgid "Sorry, incorrect passcode."
285281msgstr "Parolă greșită"
286282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288284msgid "This will be your last attempt."
289285msgstr "Aceasta va fi ultima încercare"
290286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292288msgid ""
293289"If passphrase is entered incorrectly, your phone will conduct a factory "
294290"reset and all personal data will be deleted."
@@ -297,7 +293,7 @@ msgstr ""
297293"configurările inițiale, ale fabricantului, iar toate datele personale vor fi "
298294"șterse."
299295
300−#: qml/Shell.qml:311
296+#: qml/Shell.qml:315
301297msgid ""
302298"If passcode is entered incorrectly, your phone will conduct a factory reset "
303299"and all personal data will be deleted."
@@ -305,3 +301,25 @@ msgstr ""
305301"Dacă parola este introdusă greșit, telefonul va iniția o resetare la "
306302"configurările inițiale, ale fabricantului, iar toate datele personale vor fi "
307303"șterse."
304+
305+#~ msgid "CANCEL"
306+#~ msgstr "ANULEAZĂ"
307+
308+#~ msgid "DONE"
309+#~ msgstr "EFECTUAT"
310+
311+#~ msgid "Please enter SIM PIN"
312+#~ msgstr "Introduceți PIN pentru SIM"
313+
314+#~ msgid "passphrase"
315+#~ msgstr "frază parolă"
316+
317+#, qt-format
318+#~ msgid "Incorrect %1"
319+#~ msgstr "%1 greșit"
320+
321+#~ msgid "Please re-enter"
322+#~ msgstr "Vă rugăm să încercați din nou"
323+
324+#~ msgid "passcode"
325+#~ msgstr "parolă"
po/ru.po+80−58
@@ -7,19 +7,19 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-07-31 09:39+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 10:01+0000\n"
1212"Last-Translator: Jay ZDLin <Unknown>\n"
1313"Language-Team: Russian <ru@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
22−msgstr ""
22+msgstr "Пароль: "
2323
2424#: plugins/Unity/Launcher/launcheritem.cpp:43
2525#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,19 +32,19 @@ msgstr "Изъять ярлык"
3232
3333#: qml/Components/Dialogs.qml:142
3434msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Отключить питание?"
3636
3737#: qml/Components/Dialogs.qml:144
3838msgid "Power off"
39−msgstr ""
39+msgstr "Отключить"
4040
4141#: qml/Components/Dialogs.qml:153
4242msgid "Restart"
43−msgstr ""
43+msgstr "Перезапустить"
4444
4545#: qml/Components/Dialogs.qml:162
4646msgid "Cancel"
47−msgstr ""
47+msgstr "Отменить"
4848
4949#: qml/Components/EdgeDemoOverlay.qml:151
5050msgid "Skip intro"
@@ -99,19 +99,19 @@ msgstr ""
9999"Вы научились пользоваться Ubuntu и можете начать использовать свой "
100100"телефон<br><br>Нажмите на экран"
101101
102−#: qml/Components/Lockscreen.qml:161
103−msgid "Too many incorrect attempts"
104−msgstr ""
105−
106−#: qml/Components/Lockscreen.qml:163
102+#: qml/Components/Lockscreen.qml:167
107103msgid "Please wait"
108−msgstr ""
104+msgstr "Подождите"
105+
106+#: qml/Components/Lockscreen.qml:172
107+msgid "Too many incorrect attempts"
108+msgstr "Слишком много ошибок ввода"
109109
110−#: qml/Components/Lockscreen.qml:245
110+#: qml/Components/Lockscreen.qml:206
111111msgid "Emergency Call"
112112msgstr "Экстренный вызов"
113113
114−#: qml/Components/Lockscreen.qml:268
114+#: qml/Components/Lockscreen.qml:226
115115msgid "OK"
116116msgstr "ОК"
117117
@@ -124,23 +124,15 @@ msgstr "Привет, %1"
124124msgid "Hello"
125125msgstr "Привет"
126126
127−#: qml/Components/PinLockscreen.qml:197
128−msgid "CANCEL"
129−msgstr "ОТМЕНИТЬ"
130−
131−#: qml/Components/PinLockscreen.qml:215
132−msgid "DONE"
133−msgstr "ГОТОВО"
134−
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See less"
137129msgstr "Вкратце"
138130
139−#: qml/Dash/GenericScopeView.qml:360
131+#: qml/Dash/GenericScopeView.qml:361
140132msgid "See all"
141133msgstr "Показать всё"
142134
143−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
135+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
144136msgid "Search"
145137msgstr "Поиск"
146138
@@ -170,7 +162,7 @@ msgstr ""
170162
171163#: qml/Dash/ScopesOverview.qml:408
172164msgid "Done"
173−msgstr ""
165+msgstr "Готово"
174166
175167#: qml/Dash/ScopesOverview.qml:434
176168msgid "Store"
@@ -178,11 +170,11 @@ msgstr ""
178170
179171#: qml/Dash/ScopesOverviewTab.qml:36
180172msgid "Favorites"
181−msgstr ""
173+msgstr "Избранное"
182174
183175#: qml/Dash/ScopesOverviewTab.qml:54
184176msgid "All"
185−msgstr ""
177+msgstr "Все"
186178
187179#: qml/Greeter/Greeter.qml:157
188180msgid "Swipe to unlock"
@@ -208,13 +200,17 @@ msgstr "Говорите..."
208200msgid "Speaking..."
209201msgstr "Говорите..."
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:100
203+#: qml/Notifications/NotificationMenuItemFactory.qml:105
212204msgid "Show password"
213205msgstr "Показать пароль"
214206
215−#: qml/Notifications/NotificationMenuItemFactory.qml:115
216−msgid "Please enter SIM PIN"
217−msgstr "Введите PIN код"
207+#: qml/Notifications/NotificationMenuItemFactory.qml:120
208+msgid "Enter SIM PIN"
209+msgstr "Введите ПИН-код SIM-карты"
210+
211+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
212+msgid "Sorry, incorrect PIN"
213+msgstr "Введён неверный ПИН-код"
218214
219215#: qml/Panel/ActiveCallHint.qml:77
220216msgid "Tap to return to call..."
@@ -250,54 +246,80 @@ msgstr "Сбой, коснитесь для повтора"
250246
251247#: qml/Panel/Indicators/ModemInfoItem.qml:105
252248msgid "Unlock SIM"
253−msgstr ""
249+msgstr "Разблокировать SIM-карту"
254250
255251#: qml/Panel/Indicators/RoamingIndication.qml:27
256252msgid "Roaming"
257−msgstr ""
253+msgstr "Роуминг"
258254
259−#: qml/Shell.qml:267
260−msgid "passphrase"
261−msgstr ""
255+#: qml/Shell.qml:266
256+msgid "Enter your passphrase"
257+msgstr "Введите кодовую фразу"
262258
263259#: qml/Shell.qml:267
264−msgid "passcode"
265−msgstr ""
260+msgid "Sorry, incorrect passphrase"
261+msgstr "Введена неверная кодовая фраза"
266262
267263#: qml/Shell.qml:269
264+msgid "Enter your PIN"
265+msgstr "Введите ПИН-код"
266+
267+#: qml/Shell.qml:273
268268#, qt-format
269269msgid "Enter your %1"
270−msgstr ""
270+msgstr "Введите %1"
271271
272−#: qml/Shell.qml:270
272+#: qml/Shell.qml:274
273273#, qt-format
274−msgid "Incorrect %1"
275−msgstr ""
276−
277−#: qml/Shell.qml:272
278−msgid "Please re-enter"
279−msgstr ""
274+msgid "Sorry, incorrect %1"
275+msgstr "Некорректный ввод %1"
280276
281−#: qml/Shell.qml:306
277+#: qml/Shell.qml:310
282278msgid "Sorry, incorrect passphrase."
283−msgstr ""
279+msgstr "Неверная ключевая фраза."
284280
285−#: qml/Shell.qml:307
281+#: qml/Shell.qml:311
286282msgid "Sorry, incorrect passcode."
287−msgstr ""
283+msgstr "Неверный секретный код."
288284
289−#: qml/Shell.qml:308
285+#: qml/Shell.qml:312
290286msgid "This will be your last attempt."
291−msgstr ""
287+msgstr "Осталась последняя попытка."
292288
293−#: qml/Shell.qml:310
289+#: qml/Shell.qml:314
294290msgid ""
295291"If passphrase is entered incorrectly, your phone will conduct a factory "
296292"reset and all personal data will be deleted."
297293msgstr ""
294+"Если ключевая фраза будет введена неверно, то телефон вернётся к заводским "
295+"настройкам, а все личные данные будут удалены."
298296
299−#: qml/Shell.qml:311
297+#: qml/Shell.qml:315
300298msgid ""
301299"If passcode is entered incorrectly, your phone will conduct a factory reset "
302300"and all personal data will be deleted."
303301msgstr ""
302+"Если секретный код будет введен неверно, то телефон вернётся к заводским "
303+"настройкам, а все личные данные будут удалены."
304+
305+#~ msgid "Please enter SIM PIN"
306+#~ msgstr "Введите PIN код"
307+
308+#~ msgid "CANCEL"
309+#~ msgstr "ОТМЕНИТЬ"
310+
311+#~ msgid "DONE"
312+#~ msgstr "ГОТОВО"
313+
314+#~ msgid "passphrase"
315+#~ msgstr "ключевая фраза"
316+
317+#~ msgid "passcode"
318+#~ msgstr "секретный код"
319+
320+#~ msgid "Please re-enter"
321+#~ msgstr "Повторите ввод"
322+
323+#, qt-format
324+#~ msgid "Incorrect %1"
325+#~ msgstr "Некорректно введён %1"
po/shn.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr ""
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/si.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr ""
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/sl.po+64−46
@@ -7,14 +7,14 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-19 12:54+0000\n"
1212"Last-Translator: Damir Jerovšek <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-20 06:23+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
1818"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
@@ -96,48 +96,40 @@ msgstr ""
9696"Sedaj, ko ste osvojili poteze robov, lahko začnete uporabljati "
9797"telefon<br><br>Tapnite na zaslon za začetek"
9898
99−#: qml/Components/Lockscreen.qml:161
100−msgid "Too many incorrect attempts"
101−msgstr "Preveč nepravilnih poskusov"
102−
103−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:167
104100msgid "Please wait"
105101msgstr "Počakajte"
106102
107−#: qml/Components/Lockscreen.qml:220
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105+msgstr "Preveč nepravilnih poskusov"
106+
107+#: qml/Components/Lockscreen.qml:206
108108msgid "Emergency Call"
109109msgstr "Klic v sili"
110110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112112msgid "OK"
113113msgstr "V REDU"
114114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116116#, qt-format
117117msgid "Hello %1"
118118msgstr "Pozdravljeni, %1"
119119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121121msgid "Hello"
122122msgstr "Pozdravljeni"
123123
124−#: qml/Components/PinLockscreen.qml:198
125−msgid "CANCEL"
126−msgstr "PREKLIČI"
127−
128−#: qml/Components/PinLockscreen.qml:216
129−msgid "DONE"
130−msgstr "KONČANO"
131−
132−#: qml/Dash/GenericScopeView.qml:358
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See less"
134126msgstr "Pokaži manj"
135127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137129msgid "See all"
138130msgstr "Ogled vsega"
139131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141133msgid "Search"
142134msgstr "Iskanje"
143135
@@ -161,15 +153,15 @@ msgstr "Dodaj oceno"
161153msgid "Send"
162154msgstr "Pošlji"
163155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165157msgid "Manage Dash"
166158msgstr "Upravljaj s pregledno ploščo"
167159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169161msgid "Done"
170162msgstr "Končano"
171163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173165msgid "Store"
174166msgstr "Trgovina"
175167
@@ -205,13 +197,17 @@ msgstr "Govorite zdaj ..."
205197msgid "Speaking..."
206198msgstr "Govorjenje ..."
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209201msgid "Show password"
210202msgstr "Pokaži geslo"
211203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
213−msgid "Please enter SIM PIN"
214−msgstr "Vnesite PIN kartice SIM"
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
205+msgid "Enter SIM PIN"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215211
216212#: qml/Panel/ActiveCallHint.qml:77
217213msgid "Tap to return to call..."
@@ -253,41 +249,41 @@ msgstr "Odkleni SIM"
253249msgid "Roaming"
254250msgstr "Gostovanje"
255251
256−#: qml/Shell.qml:267
257−msgid "passphrase"
258−msgstr "šifrirno reklo"
252+#: qml/Shell.qml:266
253+msgid "Enter your passphrase"
254+msgstr ""
259255
260256#: qml/Shell.qml:267
261−msgid "passcode"
262−msgstr "geslo"
257+msgid "Sorry, incorrect passphrase"
258+msgstr ""
263259
264260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr ""
263+
264+#: qml/Shell.qml:273
265265#, qt-format
266266msgid "Enter your %1"
267267msgstr "Vnesite vaš %1"
268268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270270#, qt-format
271−msgid "Incorrect %1"
272−msgstr "Nepravilen %1"
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Ponovno vnesite"
271+msgid "Sorry, incorrect %1"
272+msgstr ""
277273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279275msgid "Sorry, incorrect passphrase."
280276msgstr "Nepravilno geslo."
281277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283279msgid "Sorry, incorrect passcode."
284280msgstr "Nepravilno geslo."
285281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287283msgid "This will be your last attempt."
288284msgstr "To je vaš zadnji poskus"
289285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291287msgid ""
292288"If passphrase is entered incorrectly, your phone will conduct a factory "
293289"reset and all personal data will be deleted."
@@ -295,10 +291,32 @@ msgstr ""
295291"Če je vneseno nepravilno šifrirno reklo, bo telefon ponastavljen na "
296292"tovarniške nastavitve ter vsi osebni podatki bodo izbrisani."
297293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299295msgid ""
300296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301297"and all personal data will be deleted."
302298msgstr ""
303299"Če je vneseno nepravilno geslo, bo telefon ponastavljen na tovarniške "
304300"nastavitve ter vsi osebni podatki bodo izbrisani."
301+
302+#~ msgid "Please enter SIM PIN"
303+#~ msgstr "Vnesite PIN kartice SIM"
304+
305+#~ msgid "DONE"
306+#~ msgstr "KONČANO"
307+
308+#~ msgid "CANCEL"
309+#~ msgstr "PREKLIČI"
310+
311+#~ msgid "passphrase"
312+#~ msgstr "šifrirno reklo"
313+
314+#, qt-format
315+#~ msgid "Incorrect %1"
316+#~ msgstr "Nepravilen %1"
317+
318+#~ msgid "Please re-enter"
319+#~ msgstr "Ponovno vnesite"
320+
321+#~ msgid "passcode"
322+#~ msgstr "geslo"
po/sq.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -93,19 +93,19 @@ msgid ""
9393"phone<br><br>Tap on the screen to start"
9494msgstr ""
9595
96−#: qml/Components/Lockscreen.qml:161
97−msgid "Too many incorrect attempts"
96+#: qml/Components/Lockscreen.qml:167
97+msgid "Please wait"
9898msgstr ""
9999
100−#: qml/Components/Lockscreen.qml:163
101−msgid "Please wait"
100+#: qml/Components/Lockscreen.qml:172
101+msgid "Too many incorrect attempts"
102102msgstr ""
103103
104−#: qml/Components/Lockscreen.qml:245
104+#: qml/Components/Lockscreen.qml:206
105105msgid "Emergency Call"
106106msgstr ""
107107
108−#: qml/Components/Lockscreen.qml:268
108+#: qml/Components/Lockscreen.qml:226
109109msgid "OK"
110110msgstr ""
111111
@@ -118,23 +118,15 @@ msgstr ""
118118msgid "Hello"
119119msgstr ""
120120
121−#: qml/Components/PinLockscreen.qml:197
122−msgid "CANCEL"
123−msgstr ""
124−
125−#: qml/Components/PinLockscreen.qml:215
126−msgid "DONE"
127−msgstr ""
128−
129−#: qml/Dash/GenericScopeView.qml:360
121+#: qml/Dash/GenericScopeView.qml:361
130122msgid "See less"
131123msgstr ""
132124
133−#: qml/Dash/GenericScopeView.qml:360
125+#: qml/Dash/GenericScopeView.qml:361
134126msgid "See all"
135127msgstr ""
136128
137−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
129+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
138130msgid "Search"
139131msgstr ""
140132
@@ -202,12 +194,16 @@ msgstr ""
202194msgid "Speaking..."
203195msgstr ""
204196
205−#: qml/Notifications/NotificationMenuItemFactory.qml:100
197+#: qml/Notifications/NotificationMenuItemFactory.qml:105
206198msgid "Show password"
207199msgstr ""
208200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:115
210−msgid "Please enter SIM PIN"
201+#: qml/Notifications/NotificationMenuItemFactory.qml:120
202+msgid "Enter SIM PIN"
203+msgstr ""
204+
205+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
206+msgid "Sorry, incorrect PIN"
211207msgstr ""
212208
213209#: qml/Panel/ActiveCallHint.qml:77
@@ -250,47 +246,47 @@ msgstr ""
250246msgid "Roaming"
251247msgstr ""
252248
253−#: qml/Shell.qml:267
254−msgid "passphrase"
249+#: qml/Shell.qml:266
250+msgid "Enter your passphrase"
255251msgstr ""
256252
257253#: qml/Shell.qml:267
258−msgid "passcode"
254+msgid "Sorry, incorrect passphrase"
259255msgstr ""
260256
261257#: qml/Shell.qml:269
262−#, qt-format
263−msgid "Enter your %1"
258+msgid "Enter your PIN"
264259msgstr ""
265260
266−#: qml/Shell.qml:270
261+#: qml/Shell.qml:273
267262#, qt-format
268−msgid "Incorrect %1"
263+msgid "Enter your %1"
269264msgstr ""
270265
271−#: qml/Shell.qml:272
272−msgid "Please re-enter"
266+#: qml/Shell.qml:274
267+#, qt-format
268+msgid "Sorry, incorrect %1"
273269msgstr ""
274270
275−#: qml/Shell.qml:306
271+#: qml/Shell.qml:310
276272msgid "Sorry, incorrect passphrase."
277273msgstr ""
278274
279−#: qml/Shell.qml:307
275+#: qml/Shell.qml:311
280276msgid "Sorry, incorrect passcode."
281277msgstr ""
282278
283−#: qml/Shell.qml:308
279+#: qml/Shell.qml:312
284280msgid "This will be your last attempt."
285281msgstr ""
286282
287−#: qml/Shell.qml:310
283+#: qml/Shell.qml:314
288284msgid ""
289285"If passphrase is entered incorrectly, your phone will conduct a factory "
290286"reset and all personal data will be deleted."
291287msgstr ""
292288
293−#: qml/Shell.qml:311
289+#: qml/Shell.qml:315
294290msgid ""
295291"If passcode is entered incorrectly, your phone will conduct a factory reset "
296292"and all personal data will be deleted."
po/sr.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2013-06-27 09:19+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Serbian <sr@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Претрага"
139131
@@ -201,12 +193,16 @@ msgstr "Изговорите сада..."
201193msgid "Speaking..."
202194msgstr "Говор..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/sv.po+48−39
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-14 18:22+0000\n"
1212"Last-Translator: Erik Simmesgård <Unknown>\n"
1313"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919"Language: sv\n"
2020
2121#: plugins/LightDM/Greeter.cpp:129
@@ -95,19 +95,19 @@ msgstr ""
9595"Du har nu bemästrat kantgesterna och kan börja använda "
9696"telefonen<br><br>Tryck på skärmen för att starta"
9797
98−#: qml/Components/Lockscreen.qml:161
99−msgid "Too many incorrect attempts"
100−msgstr ""
101−
102−#: qml/Components/Lockscreen.qml:163
98+#: qml/Components/Lockscreen.qml:167
10399msgid "Please wait"
104100msgstr "Var god vänta"
105101
106−#: qml/Components/Lockscreen.qml:245
102+#: qml/Components/Lockscreen.qml:172
103+msgid "Too many incorrect attempts"
104+msgstr ""
105+
106+#: qml/Components/Lockscreen.qml:206
107107msgid "Emergency Call"
108108msgstr "Nödsamtal"
109109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111111msgid "OK"
112112msgstr "Ok"
113113
@@ -120,23 +120,15 @@ msgstr "Hej %1"
120120msgid "Hello"
121121msgstr "Hej"
122122
123−#: qml/Components/PinLockscreen.qml:197
124−msgid "CANCEL"
125−msgstr "AVBRYT"
126−
127−#: qml/Components/PinLockscreen.qml:215
128−msgid "DONE"
129−msgstr "KLAR"
130−
131−#: qml/Dash/GenericScopeView.qml:360
123+#: qml/Dash/GenericScopeView.qml:361
132124msgid "See less"
133125msgstr "Visa mindre"
134126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See all"
137129msgstr "Visa alla"
138130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140132msgid "Search"
141133msgstr "Sök"
142134
@@ -204,13 +196,17 @@ msgstr "Tala nu…"
204196msgid "Speaking..."
205197msgstr "Talar…"
206198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208200msgid "Show password"
209201msgstr "Visa lösenord"
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
212−msgid "Please enter SIM PIN"
213−msgstr "Ange SIM PIN-kod"
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
204+msgid "Enter SIM PIN"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214210
215211#: qml/Panel/ActiveCallHint.qml:77
216212msgid "Tap to return to call..."
@@ -252,48 +248,61 @@ msgstr "Lås upp SIM-kort"
252248msgid "Roaming"
253249msgstr "Roaming"
254250
255−#: qml/Shell.qml:267
256−msgid "passphrase"
251+#: qml/Shell.qml:266
252+msgid "Enter your passphrase"
257253msgstr ""
258254
259255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261257msgstr ""
262258
263259#: qml/Shell.qml:269
260+msgid "Enter your PIN"
261+msgstr ""
262+
263+#: qml/Shell.qml:273
264264#, qt-format
265265msgid "Enter your %1"
266266msgstr "Skriv in din %1"
267267
268−#: qml/Shell.qml:270
268+#: qml/Shell.qml:274
269269#, qt-format
270−msgid "Incorrect %1"
271−msgstr "Inkorrekt %1"
272−
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
270+msgid "Sorry, incorrect %1"
275271msgstr ""
276272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278274msgid "Sorry, incorrect passphrase."
279275msgstr ""
280276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282278msgid "Sorry, incorrect passcode."
283279msgstr ""
284280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286282msgid "This will be your last attempt."
287283msgstr ""
288284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290286msgid ""
291287"If passphrase is entered incorrectly, your phone will conduct a factory "
292288"reset and all personal data will be deleted."
293289msgstr ""
294290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296292msgid ""
297293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298294"and all personal data will be deleted."
299295msgstr ""
296+
297+#~ msgid "Please enter SIM PIN"
298+#~ msgstr "Ange SIM PIN-kod"
299+
300+#~ msgid "CANCEL"
301+#~ msgstr "AVBRYT"
302+
303+#~ msgid "DONE"
304+#~ msgstr "KLAR"
305+
306+#, qt-format
307+#~ msgid "Incorrect %1"
308+#~ msgstr "Inkorrekt %1"
po/sw.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "Tafuta"
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/ta.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919"Language: ta\n"
2020
2121#: plugins/LightDM/Greeter.cpp:129
@@ -95,19 +95,19 @@ msgid ""
9595"phone<br><br>Tap on the screen to start"
9696msgstr ""
9797
98−#: qml/Components/Lockscreen.qml:161
99−msgid "Too many incorrect attempts"
98+#: qml/Components/Lockscreen.qml:167
99+msgid "Please wait"
100100msgstr ""
101101
102−#: qml/Components/Lockscreen.qml:163
103−msgid "Please wait"
102+#: qml/Components/Lockscreen.qml:172
103+msgid "Too many incorrect attempts"
104104msgstr ""
105105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107107msgid "Emergency Call"
108108msgstr "அவசர அழைப்பு"
109109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111111msgid "OK"
112112msgstr ""
113113
@@ -120,23 +120,15 @@ msgstr "வணக்கம் %1"
120120msgid "Hello"
121121msgstr "வணக்கம்"
122122
123−#: qml/Components/PinLockscreen.qml:197
124−msgid "CANCEL"
125−msgstr ""
126−
127−#: qml/Components/PinLockscreen.qml:215
128−msgid "DONE"
129−msgstr ""
130−
131−#: qml/Dash/GenericScopeView.qml:360
123+#: qml/Dash/GenericScopeView.qml:361
132124msgid "See less"
133125msgstr ""
134126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See all"
137129msgstr ""
138130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140132msgid "Search"
141133msgstr "தெடு"
142134
@@ -204,12 +196,16 @@ msgstr "இப்பொது பேசு..."
204196msgid "Speaking..."
205197msgstr "பேசுகிறது..."
206198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208200msgid "Show password"
209201msgstr ""
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
212−msgid "Please enter SIM PIN"
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
204+msgid "Enter SIM PIN"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
213209msgstr ""
214210
215211#: qml/Panel/ActiveCallHint.qml:77
@@ -252,47 +248,47 @@ msgstr ""
252248msgid "Roaming"
253249msgstr ""
254250
255−#: qml/Shell.qml:267
256−msgid "passphrase"
251+#: qml/Shell.qml:266
252+msgid "Enter your passphrase"
257253msgstr ""
258254
259255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261257msgstr ""
262258
263259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266261msgstr ""
267262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271266msgstr ""
272267
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
268+#: qml/Shell.qml:274
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275271msgstr ""
276272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278274msgid "Sorry, incorrect passphrase."
279275msgstr ""
280276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282278msgid "Sorry, incorrect passcode."
283279msgstr ""
284280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286282msgid "This will be your last attempt."
287283msgstr ""
288284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290286msgid ""
291287"If passphrase is entered incorrectly, your phone will conduct a factory "
292288"reset and all personal data will be deleted."
293289msgstr ""
294290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296292msgid ""
297293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298294"and all personal data will be deleted."
po/te.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "అత్యవసర పిలుపు"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr "సరే"
110110
@@ -117,23 +117,15 @@ msgstr "హలో %1"
117117msgid "Hello"
118118msgstr "హలో"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr "రద్దుచేయి"
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr "పూర్తయ్యింది"
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "వెతుకు"
139131
@@ -201,13 +193,17 @@ msgstr "ఇప్పుడు మాట్లాడండి..."
201193msgid "Speaking..."
202194msgstr "మాట్లాడుతున్నారు..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "సంకేతపదాన్ని చూపించు"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
210−msgstr "దయచేసి సిమ్ పిన్ ఇవ్వండి"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
213209msgid "Tap to return to call..."
@@ -249,48 +245,57 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
296292msgstr ""
293+
294+#~ msgid "CANCEL"
295+#~ msgstr "రద్దుచేయి"
296+
297+#~ msgid "DONE"
298+#~ msgstr "పూర్తయ్యింది"
299+
300+#~ msgid "Please enter SIM PIN"
301+#~ msgstr "దయచేసి సిమ్ పిన్ ఇవ్వండి"
po/tr.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -95,19 +95,19 @@ msgstr ""
9595"Kenar haraketlerini öğrendiniz ve telefonu kullanmaya "
9696"başlayabilirsiniz<br><br>Başlamak için ekrana dokunun"
9797
98−#: qml/Components/Lockscreen.qml:161
99−msgid "Too many incorrect attempts"
98+#: qml/Components/Lockscreen.qml:167
99+msgid "Please wait"
100100msgstr ""
101101
102−#: qml/Components/Lockscreen.qml:163
103−msgid "Please wait"
102+#: qml/Components/Lockscreen.qml:172
103+msgid "Too many incorrect attempts"
104104msgstr ""
105105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107107msgid "Emergency Call"
108108msgstr "Acil Arama"
109109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111111msgid "OK"
112112msgstr "Tamam"
113113
@@ -120,23 +120,15 @@ msgstr "Merhaba %1"
120120msgid "Hello"
121121msgstr "Merhaba"
122122
123−#: qml/Components/PinLockscreen.qml:197
124−msgid "CANCEL"
125−msgstr "İPTAL"
126−
127−#: qml/Components/PinLockscreen.qml:215
128−msgid "DONE"
129−msgstr "BİTTİ"
130−
131−#: qml/Dash/GenericScopeView.qml:360
123+#: qml/Dash/GenericScopeView.qml:361
132124msgid "See less"
133125msgstr "Daha azını gör"
134126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136128msgid "See all"
137129msgstr ""
138130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140132msgid "Search"
141133msgstr "Ara"
142134
@@ -204,13 +196,17 @@ msgstr "Şimdi Konuşun..."
204196msgid "Speaking..."
205197msgstr "Konuşuyor..."
206198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208200msgid "Show password"
209201msgstr "Parolayı göster"
210202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
212−msgid "Please enter SIM PIN"
213−msgstr "Lütfen SIM PIN'inizi girin"
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
204+msgid "Enter SIM PIN"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214210
215211#: qml/Panel/ActiveCallHint.qml:77
216212msgid "Tap to return to call..."
@@ -252,48 +248,57 @@ msgstr ""
252248msgid "Roaming"
253249msgstr ""
254250
255−#: qml/Shell.qml:267
256−msgid "passphrase"
251+#: qml/Shell.qml:266
252+msgid "Enter your passphrase"
257253msgstr ""
258254
259255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261257msgstr ""
262258
263259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266261msgstr ""
267262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271266msgstr ""
272267
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
268+#: qml/Shell.qml:274
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275271msgstr ""
276272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278274msgid "Sorry, incorrect passphrase."
279275msgstr ""
280276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282278msgid "Sorry, incorrect passcode."
283279msgstr ""
284280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286282msgid "This will be your last attempt."
287283msgstr ""
288284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290286msgid ""
291287"If passphrase is entered incorrectly, your phone will conduct a factory "
292288"reset and all personal data will be deleted."
293289msgstr ""
294290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296292msgid ""
297293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298294"and all personal data will be deleted."
299295msgstr ""
296+
297+#~ msgid "Please enter SIM PIN"
298+#~ msgstr "Lütfen SIM PIN'inizi girin"
299+
300+#~ msgid "CANCEL"
301+#~ msgstr "İPTAL"
302+
303+#~ msgid "DONE"
304+#~ msgstr "BİTTİ"
po/ug.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-07-29 04:06+0000\n"
1212"Last-Translator: Gheyret T.Kenji <Unknown>\n"
1313"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
9494"ئېكراننى چېكىپ باشلاڭ<br><br>سىز ھازىر گىرۋەك بارماق ئىشارەتلىرىنى ئىگىلەپ "
9595"بولدىڭىز،ئەمدى تېلېفوننى ئىشلىتىشنى باشلىسىڭىز بولىدۇ"
9696
97−#: qml/Components/Lockscreen.qml:161
98−msgid "Too many incorrect attempts"
97+#: qml/Components/Lockscreen.qml:167
98+msgid "Please wait"
9999msgstr ""
100100
101−#: qml/Components/Lockscreen.qml:163
102−msgid "Please wait"
101+#: qml/Components/Lockscreen.qml:172
102+msgid "Too many incorrect attempts"
103103msgstr ""
104104
105−#: qml/Components/Lockscreen.qml:245
105+#: qml/Components/Lockscreen.qml:206
106106msgid "Emergency Call"
107107msgstr "جىددىي تېلېفون"
108108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110110msgid "OK"
111111msgstr "تامام"
112112
@@ -119,23 +119,15 @@ msgstr "سالام %1"
119119msgid "Hello"
120120msgstr "ئەسسالامۇئەلەيكۇم"
121121
122−#: qml/Components/PinLockscreen.qml:197
123−msgid "CANCEL"
124−msgstr "ۋاز كەچ"
125−
126−#: qml/Components/PinLockscreen.qml:215
127−msgid "DONE"
128−msgstr "تامام"
129−
130−#: qml/Dash/GenericScopeView.qml:360
122+#: qml/Dash/GenericScopeView.qml:361
131123msgid "See less"
132124msgstr "ئازراق كۆرۈش"
133125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135127msgid "See all"
136128msgstr "ھەممىنى كۆرۈش…"
137129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139131msgid "Search"
140132msgstr "ئىزدە"
141133
@@ -203,13 +195,17 @@ msgstr "ئەمدى سۆزلەڭ…"
203195msgid "Speaking..."
204196msgstr "سۆزلەۋاتىسىز…"
205197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207199msgid "Show password"
208200msgstr "ئىم كۆرسەت"
209201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
211−msgid "Please enter SIM PIN"
212−msgstr "سىم(SIM) كارتىڭىزنىڭ PIN نومۇرىنى كىرگۈزۈڭ"
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
203+msgid "Enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213209
214210#: qml/Panel/ActiveCallHint.qml:77
215211msgid "Tap to return to call..."
@@ -251,48 +247,57 @@ msgstr ""
251247msgid "Roaming"
252248msgstr ""
253249
254−#: qml/Shell.qml:267
255−msgid "passphrase"
250+#: qml/Shell.qml:266
251+msgid "Enter your passphrase"
256252msgstr ""
257253
258254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260256msgstr ""
261257
262258#: qml/Shell.qml:269
263−#, qt-format
264−msgid "Enter your %1"
259+msgid "Enter your PIN"
265260msgstr ""
266261
267−#: qml/Shell.qml:270
262+#: qml/Shell.qml:273
268263#, qt-format
269−msgid "Incorrect %1"
264+msgid "Enter your %1"
270265msgstr ""
271266
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
267+#: qml/Shell.qml:274
268+#, qt-format
269+msgid "Sorry, incorrect %1"
274270msgstr ""
275271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277273msgid "Sorry, incorrect passphrase."
278274msgstr ""
279275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281277msgid "Sorry, incorrect passcode."
282278msgstr ""
283279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285281msgid "This will be your last attempt."
286282msgstr ""
287283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289285msgid ""
290286"If passphrase is entered incorrectly, your phone will conduct a factory "
291287"reset and all personal data will be deleted."
292288msgstr ""
293289
294−#: qml/Shell.qml:311
290+#: qml/Shell.qml:315
295291msgid ""
296292"If passcode is entered incorrectly, your phone will conduct a factory reset "
297293"and all personal data will be deleted."
298294msgstr ""
295+
296+#~ msgid "CANCEL"
297+#~ msgstr "ۋاز كەچ"
298+
299+#~ msgid "DONE"
300+#~ msgstr "تامام"
301+
302+#~ msgid "Please enter SIM PIN"
303+#~ msgstr "سىم(SIM) كارتىڭىزنىڭ PIN نومۇرىنى كىرگۈزۈڭ"
po/uk.po+60−42
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11−"PO-Revision-Date: 2014-08-17 14:49+0000\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
11+"PO-Revision-Date: 2014-08-26 19:06+0000\n"
1212"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
1313"Language-Team: Ukrainian <uk@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18+"X-Generator: Launchpad (build 17174)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -97,19 +97,19 @@ msgstr ""
9797"Вами налаштовано дії у відповідь на дотики на краях екрана. Тепер телефоном "
9898"можна користуватися.<br><br>Торкніться екрана, щоб розпочати."
9999
100−#: qml/Components/Lockscreen.qml:161
101−msgid "Too many incorrect attempts"
102−msgstr "Забагато помилкових спроб"
103−
104−#: qml/Components/Lockscreen.qml:163
100+#: qml/Components/Lockscreen.qml:167
105101msgid "Please wait"
106102msgstr "Будь ласка, зачекайте"
107103
108−#: qml/Components/Lockscreen.qml:245
104+#: qml/Components/Lockscreen.qml:172
105+msgid "Too many incorrect attempts"
106+msgstr "Забагато помилкових спроб"
107+
108+#: qml/Components/Lockscreen.qml:206
109109msgid "Emergency Call"
110110msgstr "Терміновий виклик"
111111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113113msgid "OK"
114114msgstr "Гаразд"
115115
@@ -122,23 +122,15 @@ msgstr "Привіт, %1"
122122msgid "Hello"
123123msgstr "Привіт!"
124124
125−#: qml/Components/PinLockscreen.qml:197
126−msgid "CANCEL"
127−msgstr "Скасувати"
128−
129−#: qml/Components/PinLockscreen.qml:215
130−msgid "DONE"
131−msgstr "Виконано"
132−
133−#: qml/Dash/GenericScopeView.qml:360
125+#: qml/Dash/GenericScopeView.qml:361
134126msgid "See less"
135127msgstr "Стисліше"
136128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138130msgid "See all"
139131msgstr "Детальніше"
140132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142134msgid "Search"
143135msgstr "Пошук"
144136
@@ -206,14 +198,18 @@ msgstr "Можна говорити…"
206198msgid "Speaking..."
207199msgstr "Мовлення…"
208200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210202msgid "Show password"
211203msgstr "Показати пароль"
212204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
214−msgid "Please enter SIM PIN"
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
206+msgid "Enter SIM PIN"
215207msgstr "Введіть PIN-код SIM-картки"
216208
209+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
210+msgid "Sorry, incorrect PIN"
211+msgstr "Вибачте, помилковий PIN-код"
212+
217213#: qml/Panel/ActiveCallHint.qml:77
218214msgid "Tap to return to call..."
219215msgstr "Торкніться, щоб повернутися до дзвінка…"
@@ -254,41 +250,41 @@ msgstr "Розблокувати SIM"
254250msgid "Roaming"
255251msgstr "Роумінг"
256252
257−#: qml/Shell.qml:267
258−msgid "passphrase"
259−msgstr "пароль"
253+#: qml/Shell.qml:266
254+msgid "Enter your passphrase"
255+msgstr "Введіть ваш пароль"
260256
261257#: qml/Shell.qml:267
262−msgid "passcode"
263−msgstr "код-пароль"
258+msgid "Sorry, incorrect passphrase"
259+msgstr "Вибачте, помилковий пароль"
264260
265261#: qml/Shell.qml:269
262+msgid "Enter your PIN"
263+msgstr "Введіть ваш PIN-код"
264+
265+#: qml/Shell.qml:273
266266#, qt-format
267267msgid "Enter your %1"
268268msgstr "Вкажіть ваш %1"
269269
270−#: qml/Shell.qml:270
270+#: qml/Shell.qml:274
271271#, qt-format
272−msgid "Incorrect %1"
273−msgstr "Помилковий %1"
272+msgid "Sorry, incorrect %1"
273+msgstr "Вибачте, помилковий %1"
274274
275−#: qml/Shell.qml:272
276−msgid "Please re-enter"
277−msgstr "Будь ласка, вкажіть ще раз"
278−
279−#: qml/Shell.qml:306
275+#: qml/Shell.qml:310
280276msgid "Sorry, incorrect passphrase."
281277msgstr "Вибачте, помилковий пароль."
282278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284280msgid "Sorry, incorrect passcode."
285281msgstr "Вибачте, помилковий код-пароль."
286282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288284msgid "This will be your last attempt."
289285msgstr "Ця спроба буде останньою."
290286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292288msgid ""
293289"If passphrase is entered incorrectly, your phone will conduct a factory "
294290"reset and all personal data will be deleted."
@@ -296,10 +292,32 @@ msgstr ""
296292"Якщо пароль буде вказано неправильно, телефон повернеться до початкового "
297293"стану, усі особисті дані буде вилучено."
298294
299−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
300296msgid ""
301297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302298"and all personal data will be deleted."
303299msgstr ""
304300"Якщо код-пароль буде вказано неправильно, телефон повернеться до початкового "
305301"стану, усі особисті дані буде вилучено."
302+
303+#~ msgid "Please enter SIM PIN"
304+#~ msgstr "Введіть PIN-код SIM-картки"
305+
306+#~ msgid "DONE"
307+#~ msgstr "Виконано"
308+
309+#~ msgid "CANCEL"
310+#~ msgstr "Скасувати"
311+
312+#~ msgid "passphrase"
313+#~ msgstr "пароль"
314+
315+#, qt-format
316+#~ msgid "Incorrect %1"
317+#~ msgstr "Помилковий %1"
318+
319+#~ msgid "Please re-enter"
320+#~ msgstr "Будь ласка, вкажіть ще раз"
321+
322+#~ msgid "passcode"
323+#~ msgstr "код-пароль"
po/unity8.pot+95−46
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
11+"POT-Creation-Date: 2014-08-26 18:24+0200\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"
@@ -17,7 +17,7 @@ msgstr ""
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
1919
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
2121msgid "Password: "
2222msgstr ""
2323
@@ -30,19 +30,55 @@ msgstr ""
3030msgid "Unpin shortcut"
3131msgstr ""
3232
33−#: qml/Components/Dialogs.qml:142
34−msgid "Are you sure you would like to turn power off?"
33+#: qml/Components/Dialogs.qml:70
34+msgid "Log out"
35+msgstr ""
36+
37+#: qml/Components/Dialogs.qml:71
38+msgid "Are you sure you want to log out?"
39+msgstr ""
40+
41+#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
42+#: qml/Components/Dialogs.qml:122
43+msgid "No"
44+msgstr ""
45+
46+#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
47+#: qml/Components/Dialogs.qml:129
48+msgid "Yes"
49+msgstr ""
50+
51+#: qml/Components/Dialogs.qml:94
52+msgid "Shut down"
53+msgstr ""
54+
55+#: qml/Components/Dialogs.qml:95
56+msgid "Are you sure you want to shut down?"
57+msgstr ""
58+
59+#: qml/Components/Dialogs.qml:119
60+msgid "Reboot"
61+msgstr ""
62+
63+#: qml/Components/Dialogs.qml:120
64+msgid "Are you sure you want to reboot?"
3565msgstr ""
3666
3767#: qml/Components/Dialogs.qml:144
38−msgid "Power off"
68+msgid "Power"
3969msgstr ""
4070
41−#: qml/Components/Dialogs.qml:153
42−msgid "Restart"
71+#: qml/Components/Dialogs.qml:145
72+msgid ""
73+"Are you sure you would like\n"
74+"to power off?"
4375msgstr ""
4476
45−#: qml/Components/Dialogs.qml:162
77+#: qml/Components/Dialogs.qml:147
78+msgid "Power off"
79+msgstr ""
80+
81+#: qml/Components/Dialogs.qml:157
4682msgid "Cancel"
4783msgstr ""
4884
@@ -92,19 +128,19 @@ msgid ""
92128"phone<br><br>Tap on the screen to start"
93129msgstr ""
94130
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
131+#: qml/Components/Lockscreen.qml:167
132+msgid "Please wait"
97133msgstr ""
98134
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
135+#: qml/Components/Lockscreen.qml:172
136+msgid "Too many incorrect attempts"
101137msgstr ""
102138
103−#: qml/Components/Lockscreen.qml:245
139+#: qml/Components/Lockscreen.qml:206
104140msgid "Emergency Call"
105141msgstr ""
106142
107−#: qml/Components/Lockscreen.qml:268
143+#: qml/Components/Lockscreen.qml:226
108144msgid "OK"
109145msgstr ""
110146
@@ -117,24 +153,29 @@ msgstr ""
117153msgid "Hello"
118154msgstr ""
119155
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
156+#: qml/Dash/GenericScopeView.qml:361
157+msgid "See less"
122158msgstr ""
123159
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
160+#: qml/Dash/GenericScopeView.qml:361
161+msgid "See all"
126162msgstr ""
127163
128−#: qml/Dash/GenericScopeView.qml:360
129−msgid "See less"
164+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
165+#: qml/Panel/SearchIndicator.qml:27
166+msgid "Search"
130167msgstr ""
131168
132−#: qml/Dash/GenericScopeView.qml:360
133−msgid "See all"
169+#: qml/Dash/PageHeader.qml:270
170+msgid "Settings"
134171msgstr ""
135172
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
137−msgid "Search"
173+#: qml/Dash/PageHeader.qml:279
174+msgid "Remove from Favorites"
175+msgstr ""
176+
177+#: qml/Dash/PageHeader.qml:279
178+msgid "Add to Favorites"
138179msgstr ""
139180
140181#: qml/Dash/Previews/PreviewActionCombo.qml:34
@@ -161,11 +202,11 @@ msgstr ""
161202msgid "Manage Dash"
162203msgstr ""
163204
164−#: qml/Dash/ScopesOverview.qml:408
205+#: qml/Dash/ScopesOverview.qml:417
165206msgid "Done"
166207msgstr ""
167208
168−#: qml/Dash/ScopesOverview.qml:434
209+#: qml/Dash/ScopesOverview.qml:443
169210msgid "Store"
170211msgstr ""
171212
@@ -181,7 +222,7 @@ msgstr ""
181222msgid "Swipe to unlock"
182223msgstr ""
183224
184−#: qml/Hud/HudParametrizedActionsPage.qml:132
225+#: qml/Hud/HudParametrizedActionsPage.qml:139
185226msgid "Confirm"
186227msgstr ""
187228
@@ -201,12 +242,16 @@ msgstr ""
201242msgid "Speaking..."
202243msgstr ""
203244
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
245+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205246msgid "Show password"
206247msgstr ""
207248
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
249+#: qml/Notifications/NotificationMenuItemFactory.qml:120
250+msgid "Enter SIM PIN"
251+msgstr ""
252+
253+#: qml/Notifications/NotificationMenuItemFactory.qml:121
254+msgid "Sorry, incorrect PIN"
210255msgstr ""
211256
212257#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +294,51 @@ msgstr ""
249294msgid "Roaming"
250295msgstr ""
251296
252−#: qml/Shell.qml:267
253−msgid "passphrase"
297+#: qml/Shell.qml:279
298+msgid "Enter your passphrase"
254299msgstr ""
255300
256−#: qml/Shell.qml:267
257−msgid "passcode"
301+#: qml/Shell.qml:280
302+msgid "Sorry, incorrect passphrase"
258303msgstr ""
259304
260−#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
305+#: qml/Shell.qml:282
306+msgid "Enter your passcode"
263307msgstr ""
264308
265−#: qml/Shell.qml:270
309+#: qml/Shell.qml:283
310+msgid "Sorry, incorrect passcode"
311+msgstr ""
312+
313+#: qml/Shell.qml:286
266314#, qt-format
267−msgid "Incorrect %1"
315+msgid "Enter your %1"
268316msgstr ""
269317
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
318+#: qml/Shell.qml:287
319+#, qt-format
320+msgid "Sorry, incorrect %1"
272321msgstr ""
273322
274−#: qml/Shell.qml:306
323+#: qml/Shell.qml:323
275324msgid "Sorry, incorrect passphrase."
276325msgstr ""
277326
278−#: qml/Shell.qml:307
327+#: qml/Shell.qml:324
279328msgid "Sorry, incorrect passcode."
280329msgstr ""
281330
282−#: qml/Shell.qml:308
331+#: qml/Shell.qml:325
283332msgid "This will be your last attempt."
284333msgstr ""
285334
286−#: qml/Shell.qml:310
335+#: qml/Shell.qml:327
287336msgid ""
288337"If passphrase is entered incorrectly, your phone will conduct a factory "
289338"reset and all personal data will be deleted."
290339msgstr ""
291340
292−#: qml/Shell.qml:311
341+#: qml/Shell.qml:328
293342msgid ""
294343"If passcode is entered incorrectly, your phone will conduct a factory reset "
295344"and all personal data will be deleted."
po/vi.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr ""
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/xh.po+33−37
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr ""
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr ""
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr ""
110110
@@ -117,23 +117,15 @@ msgstr ""
117117msgid "Hello"
118118msgstr ""
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr ""
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr ""
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr ""
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr ""
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr ""
139131
@@ -201,12 +193,16 @@ msgstr ""
201193msgid "Speaking..."
202194msgstr ""
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr ""
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210206msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
po/zh_CN.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-08-12 14:09+0000\n"
1212"Last-Translator: Anthony Wong <anthony.wong@ubuntu.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"
17−"X-Launchpad-Export-Date: 2014-08-15 06:29+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr "您现在已经掌握了边缘滑动手势,可以开始使用手机了<br><br>请点击屏幕开始使用"
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "紧急电话"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr "确定"
110110
@@ -117,23 +117,15 @@ msgstr "你好,%1"
117117msgid "Hello"
118118msgstr "你好"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr "取消"
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr "完成"
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr "显示更少"
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr "查看全部"
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "搜索"
139131
@@ -201,13 +193,17 @@ msgstr "现在请讲..."
201193msgid "Speaking..."
202194msgstr "讲话中..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "显示密码"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
210−msgstr "请输入 SIM PIN"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
213209msgid "Tap to return to call..."
@@ -249,48 +245,57 @@ msgstr "解开 SIM"
249245msgid "Roaming"
250246msgstr "漫游"
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
296292msgstr ""
293+
294+#~ msgid "Please enter SIM PIN"
295+#~ msgstr "请输入 SIM PIN"
296+
297+#~ msgid "CANCEL"
298+#~ msgstr "取消"
299+
300+#~ msgid "DONE"
301+#~ msgstr "完成"
po/zh_HK.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\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"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr "您現在已熟練邊緣手勢,可以開始使用手機了<br><br>輕觸螢幕開始使用"
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "緊急電話"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr "確定"
110110
@@ -117,23 +117,15 @@ msgstr "您好 %1"
117117msgid "Hello"
118118msgstr "您好"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr "取消"
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr "完成"
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr "縮減查看"
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr "查看全部"
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "搜尋"
139131
@@ -201,13 +193,17 @@ msgstr "請講..."
201193msgid "Speaking..."
202194msgstr "正在講..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "顯示密碼"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
210−msgstr "請輸入 SIM 卡 PIN 碼"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
213209msgid "Tap to return to call..."
@@ -249,48 +245,57 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
296292msgstr ""
293+
294+#~ msgid "CANCEL"
295+#~ msgstr "取消"
296+
297+#~ msgid "DONE"
298+#~ msgstr "完成"
299+
300+#~ msgid "Please enter SIM PIN"
301+#~ msgstr "請輸入 SIM 卡 PIN 碼"
po/zh_TW.po+43−38
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-08-13 14:09-0400\n"
10+"POT-Creation-Date: 2014-08-21 11:36+0200\n"
1111"PO-Revision-Date: 2014-07-26 16:21+0000\n"
1212"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18+"X-Generator: Launchpad (build 17163)\n"
1919
2020#: plugins/LightDM/Greeter.cpp:129
2121msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
9292"phone<br><br>Tap on the screen to start"
9393msgstr "您現在已熟練邊緣手勢,可以開始使用手機了<br><br>輕觸螢幕開始使用"
9494
95−#: qml/Components/Lockscreen.qml:161
96−msgid "Too many incorrect attempts"
95+#: qml/Components/Lockscreen.qml:167
96+msgid "Please wait"
9797msgstr ""
9898
99−#: qml/Components/Lockscreen.qml:163
100−msgid "Please wait"
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101101msgstr ""
102102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104104msgid "Emergency Call"
105105msgstr "緊急通話"
106106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108108msgid "OK"
109109msgstr "確定"
110110
@@ -117,23 +117,15 @@ msgstr "%1 您好"
117117msgid "Hello"
118118msgstr "您好"
119119
120−#: qml/Components/PinLockscreen.qml:197
121−msgid "CANCEL"
122−msgstr "取消"
123−
124−#: qml/Components/PinLockscreen.qml:215
125−msgid "DONE"
126−msgstr "完成"
127−
128−#: qml/Dash/GenericScopeView.qml:360
120+#: qml/Dash/GenericScopeView.qml:361
129121msgid "See less"
130122msgstr "縮減查看"
131123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133125msgid "See all"
134126msgstr "查看全部"
135127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137129msgid "Search"
138130msgstr "搜尋"
139131
@@ -201,13 +193,17 @@ msgstr "請說..."
201193msgid "Speaking..."
202194msgstr "說話中..."
203195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205197msgid "Show password"
206198msgstr "顯示密碼"
207199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209−msgid "Please enter SIM PIN"
210−msgstr "請輸入 SIM 卡 PIN 碼"
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211207
212208#: qml/Panel/ActiveCallHint.qml:77
213209msgid "Tap to return to call..."
@@ -249,48 +245,57 @@ msgstr ""
249245msgid "Roaming"
250246msgstr ""
251247
252−#: qml/Shell.qml:267
253−msgid "passphrase"
248+#: qml/Shell.qml:266
249+msgid "Enter your passphrase"
254250msgstr ""
255251
256252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258254msgstr ""
259255
260256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263258msgstr ""
264259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268263msgstr ""
269264
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
265+#: qml/Shell.qml:274
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272268msgstr ""
273269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275271msgid "Sorry, incorrect passphrase."
276272msgstr ""
277273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279275msgid "Sorry, incorrect passcode."
280276msgstr ""
281277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283279msgid "This will be your last attempt."
284280msgstr ""
285281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287283msgid ""
288284"If passphrase is entered incorrectly, your phone will conduct a factory "
289285"reset and all personal data will be deleted."
290286msgstr ""
291287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293289msgid ""
294290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295291"and all personal data will be deleted."
296292msgstr ""
293+
294+#~ msgid "CANCEL"
295+#~ msgstr "取消"
296+
297+#~ msgid "DONE"
298+#~ msgstr "完成"
299+
300+#~ msgid "Please enter SIM PIN"
301+#~ msgstr "請輸入 SIM 卡 PIN 碼"
qml/Components/Background.qml+10
@@ -15,6 +15,8 @@
1515 */
1616
1717import QtQuick 2.0
18+import Ubuntu.Components 1.1
19+import Utils 0.1 as Utils
1820
1921Loader {
2022 id: root
@@ -23,6 +25,14 @@ Loader {
2325 property url style
2426 readonly property var parsedStyle: String(style)
2527 .match(/^(color|gradient):\/\/\/(?:(#(?:[0-9a-f]{3,4}){1,2}|[a-z]{3,}))(?:\/(#(?:[0-9a-f]{3,4}){1,2}|[a-z]{3,}))?\/?$/i)
28+ readonly property var luminance: {
29+ if (!parsedStyle) return 0.5;
30+ if (parsedStyle[1] === "color") return Utils.Style.luminance(parsedStyle[2]);
31+ else if (parsedStyle[1] === "gradient") return Utils.Style.luminance(parsedStyle[2], parsedStyle[3]);
32+ }
33+
34+ // FIXME this is only here for highlight purposes (see DashNavigation.qml, too)
35+ readonly property color topColor: parsedStyle ? parsedStyle[2] : UbuntuColors.lightGrey
2636
2737 sourceComponent: {
2838 if (style == "") return null;
qml/Components/Lockscreen.qml+33−75
@@ -24,15 +24,14 @@ Showable {
2424 // Determine if a numeric or alphanumeric pad is used.
2525 property bool alphaNumeric: false
2626
27− // Placeholder text
28− property string placeholderText: ""
29− // Placeholder text while shaking (e.g. Incorrect passprase)
30− property string wrongPlaceholderText: ""
27+ // Informational text. (e.g. some text to tell which domain this is pin is entered for)
28+ property string infoText: ""
29+
3130 // Retries text (e.g. 3 retries left)
3231 property string retryText: ""
3332
34− // Informational text. (e.g. some text to tell which domain this is pin is entered for.
35− property string infoText: ""
33+ // The text to be displayed in case the login failed
34+ property string errorText: ""
3635
3736 // In case the Lockscreen can show a greeter message, this is the username
3837 property string username: ""
@@ -110,41 +109,6 @@ Showable {
110109 anchors.fill: root
111110 }
112111
113− Column {
114− spacing: units.gu(2)
115− anchors {
116− left: parent.left
117− right: parent.right
118− bottom: pinPadLoader.top
119− bottomMargin: units.gu(2)
120− }
121− Label {
122− objectName: "retryCountLabel"
123− anchors {
124− left: parent.left
125− right: parent.right
126− }
127− text: root.retryText
128− horizontalAlignment: Text.AlignHCenter
129− color: "#f3f3e7"
130− opacity: 0.6
131− visible: root.retryText.length > 0
132− }
133− Label {
134− id: infoTextLabel
135− objectName: "infoTextLabel"
136− anchors {
137− left: parent.left
138− right: parent.right
139− }
140− text: root.infoText
141− horizontalAlignment: Text.AlignHCenter
142− color: "#f3f3e7"
143− opacity: 0.6
144− visible: root.infoText.length > 0
145− }
146− }
147−
148112 Loader {
149113 id: pinPadLoader
150114 objectName: "pinPadLoader"
@@ -152,21 +116,22 @@ Showable {
152116 left: parent.left
153117 right: parent.right
154118 verticalCenter: parent.verticalCenter
155− verticalCenterOffset: root.alphaNumeric ? -units.gu(10) : -units.gu(4)
119+ verticalCenterOffset: root.alphaNumeric ? -units.gu(10) : 0
156120 }
157121 property bool resetting: false
158122 property bool waiting: false
159123 property bool showWrongText: false
160124
161− readonly property string forcedDelayText: i18n.tr("Too many incorrect attempts") +
162− "\n" +
163− i18n.tr("Please wait")
164−
165125 source: (!resetting && root.required) ? (root.alphaNumeric ? "PassphraseLockscreen.qml" : "PinLockscreen.qml") : ""
166126 onSourceChanged: {
167127 waiting = false
168128 showWrongText = false
169129 }
130+ onLoaded: {
131+ if (forcedDelayTimer.running) {
132+ pinPadLoader.item.clear(true)
133+ }
134+ }
170135
171136 Connections {
172137 target: pinPadLoader.item
@@ -193,10 +158,19 @@ Showable {
193158 }
194159 Binding {
195160 target: pinPadLoader.item
196− property: "placeholderText"
197− value: forcedDelayTimer.running ? pinPadLoader.forcedDelayText :
198− (pinPadLoader.showWrongText ? root.wrongPlaceholderText :
199− root.placeholderText)
161+ property: "infoText"
162+ value: root.infoText
163+ }
164+ Binding {
165+ target: pinPadLoader.item
166+ property: "retryText"
167+ value: forcedDelayTimer.running ? i18n.tr("Please wait") : root.retryText
168+ }
169+ Binding {
170+ target: pinPadLoader.item
171+ property: "errorText"
172+ value: forcedDelayTimer.running ? i18n.tr("Too many incorrect attempts") :
173+ (pinPadLoader.showWrongText ? root.errorText : "")
200174 }
201175 Binding {
202176 target: pinPadLoader.item
@@ -210,8 +184,9 @@ Showable {
210184 }
211185 }
212186
213− Column {
214− id: emergencyCallColumn
187+ Label {
188+ id: emergencyCallLabel
189+ objectName: "emergencyCallLabel"
215190
216191 // FIXME: We *should* show emergency dialer if there is a SIM present,
217192 // regardless of whether the side stage is enabled. But right now,
@@ -223,37 +198,20 @@ Showable {
223198 visible: !shell.sideStageEnabled
224199
225200 anchors {
226− left: parent.left
227201 bottom: parent.bottom
228202 bottomMargin: units.gu(4)
229− right: parent.right
230− }
231− height: childrenRect.height
232− spacing: units.gu(1)
233−
234− Icon {
235− objectName: "emergencyCallIcon"
236− height: units.gu(3)
237− width: height
238− anchors.horizontalCenter: parent.horizontalCenter
239− name: "phone-app-call-symbolic"
240− color: "#f3f3e7"
241− opacity: 0.6
203+ horizontalCenter: parent.horizontalCenter
242204 }
243205
244− Label {
245− text: i18n.tr("Emergency Call")
246− color: "#f3f3e7"
247− opacity: 0.6
248− fontSize: "medium"
249− anchors.horizontalCenter: parent.horizontalCenter
250− }
206+ text: i18n.tr("Emergency Call")
207+ color: "#f3f3e7"
208+ opacity: 0.6
251209 }
252210
253211 MouseArea {
254− anchors.fill: emergencyCallColumn
212+ anchors.fill: emergencyCallLabel
255213 onClicked: root.emergencyCall()
256− enabled: emergencyCallColumn.visible
214+ enabled: emergencyCallLabel.visible
257215 }
258216
259217 Component {
qml/Components/PassphraseLockscreen.qml+3−3
@@ -22,7 +22,7 @@ Item {
2222 id: root
2323 height: highlightItem.height
2424
25− property string placeholderText
25+ property string infoText
2626 property string username: ""
2727 property bool entryEnabled: true
2828
@@ -75,8 +75,8 @@ Item {
7575 echoMode: TextInput.Password
7676 opacity: 0.9
7777 hasClearButton: false
78− enabled: entryEnabled
79− placeholderText: root.placeholderText
78+ enabled: root.entryEnabled
79+ placeholderText: root.infoText
8080
8181 onAccepted: {
8282 if (pinentryField.text) {
qml/Components/PinLockscreen.qml+151−163
@@ -22,9 +22,11 @@ import "../Components"
2222Column {
2323 id: root
2424 anchors.centerIn: parent
25− spacing: units.gu(3.5)
25+ spacing: units.gu(2)
2626
27− property alias placeholderText: pinentryField.placeholderText
27+ property string infoText
28+ property string retryText
29+ property string errorText
2830 property int padWidth: units.gu(34)
2931 property int padHeight: units.gu(28)
3032 property int minPinLength: -1
@@ -35,199 +37,185 @@ Column {
3537
3638 property bool entryEnabled: true
3739
38− function clear(playAnimation) {
40+ function clear(showAnimation) {
3941 pinentryField.text = "";
40− if (playAnimation) {
42+ if (showAnimation) {
43+ pinentryField.incorrectOverride = true;
4144 wrongPasswordAnimation.start();
4245 }
4346 }
4447
45− QtObject {
46− id: priv
47− property bool autoConfirm: root.minPinLength == root.maxPinLength && root.minPinLength != -1
48− }
49−
50− UbuntuShape {
51− id: pinentryField
52− objectName: "pinentryField"
48+ Column {
49+ id: shakeContainer
5350 anchors.horizontalCenter: parent.horizontalCenter
54− color: "#55000000"
55− width:root.padWidth
56− height: units.gu(5)
57− radius: "medium"
58− property string text: ""
59− property string placeholderText: ""
60−
61− function appendChar(character) {
62− if (root.maxPinLength == -1 || pinentryField.text.length < root.maxPinLength) {
63− pinentryField.text = pinentryField.text + character;
64− }
65− }
66−
67− onTextChanged: {
68− pinentryFieldLabel.text = "";
69− for (var i = 0; i < text.length; ++i) {
70− pinentryFieldLabel.text += "•";
71− }
72− if (priv.autoConfirm && text.length === root.maxPinLength) {
73− root.entered(text);
74− }
75− }
51+ width: parent.width
52+ spacing: units.gu(2)
7653
7754 Label {
78− id: pinentryFieldLabel
79− anchors.centerIn: parent
80− width: parent.width - (backspaceIcon.width + backspaceIcon.anchors.rightMargin) * 2
81− elide: Text.ElideMiddle
82− horizontalAlignment: Text.AlignHCenter
83− font.pixelSize: units.dp(44)
55+ id: infoField
56+ objectName: "infoTextLabel"
57+ fontSize: "large"
8458 color: "#f3f3e7"
85− opacity: 0.6
86− }
87− Label {
88− id: pinentryFieldPlaceHolder
89− objectName: "pinentryFieldPlaceHolder"
90− anchors.centerIn: parent
91− horizontalAlignment: Text.AlignHCenter
92− color: "#f3f3e7"
93− opacity: 0.6
94− text: parent.placeholderText
95− visible: pinentryFieldLabel.text.length == 0
59+ anchors.horizontalCenter: parent.horizontalCenter
60+ text: root.infoText
9661 }
9762
98− Icon {
99− id: backspaceIcon
100− objectName: "backspaceIcon"
101− anchors {
102− top: parent.top
103− topMargin: units.gu(1)
104− right: parent.right
105− rightMargin: units.gu(2)
106− bottom: parent.bottom
107− bottomMargin: units.gu(1)
108− }
109− visible: entryEnabled && !priv.autoConfirm
110− width: height
111− name: "erase"
112− color: "#f3f3e7"
113− opacity: 0.6
114− MouseArea {
115− anchors.fill: parent
116− onClicked: pinentryField.text = pinentryField.text.substring(0, pinentryField.text.length-1);
117− }
118− }
119− }
63+ Item {
64+ id: pinContainer
65+ anchors { left: parent.left; right: parent.right; margins: units.gu(2) }
66+ height: units.gu(4)
67+
68+ Row {
69+ id: pinentryField
70+ objectName: "pinentryField"
71+ anchors.horizontalCenter: parent.horizontalCenter
72+ anchors.verticalCenter: parent.verticalCenter
73+ spacing: Math.max(0, Math.min(units.gu(3), (parent.width / root.maxPinLength) - units.gu(3)))
74+
75+ property string text
76+ property bool incorrectOverride: false
77+
78+ Repeater {
79+ model: pinentryField.text.length
80+ delegate: Rectangle {
81+ color: "#f3f3e7"
82+ width: Math.min(units.gu(2), (pinContainer.width - pinContainer.height*2 ) / (root.maxPinLength >= 0 ? root.maxPinLength : 16))
83+ height: width
84+ radius: width / 2
85+ }
86+ }
12087
121− UbuntuShape {
122− anchors {
123− left: parent.left
124− right: parent.right
125− margins: (parent.width - root.padWidth) / 2
126− }
127− height: root.padHeight
128− color: "#55000000"
129− radius: "medium"
130−
131− ThinDivider {
132− anchors {
133− left: parent.left
134− right: parent.right
135− top: parent.top
136− topMargin: root.padHeight / 4
137− }
138− }
139− ThinDivider {
140− anchors {
141− left: parent.left
142− right: parent.right
143− verticalCenter: parent.verticalCenter
144− }
145− }
146− ThinDivider {
147− anchors {
148− left: parent.left
149− right: parent.right
150− bottom: parent.bottom
151− bottomMargin: root.padHeight / 4
152− }
153− }
88+ function appendNumber(number) {
89+ if (incorrectOverride) {
90+ incorrectOverride = false;
91+ }
15492
155− ThinDivider {
156− anchors.centerIn: parent
157− anchors.horizontalCenterOffset: -root.padWidth / 6
158− width: root.padHeight
159− rotation: -90
160− }
161− ThinDivider {
162− anchors.centerIn: parent
163− anchors.horizontalCenterOffset: root.padWidth / 6
164− width: root.padHeight
165− rotation: -90
166− }
93+ pinentryField.text = pinentryField.text + number
94+
95+ if (root.minPinLength > 0 && root.maxPinLength > 0
96+ && root.minPinLength == root.maxPinLength && pinentryField.text.length == root.minPinLength) {
97+ root.entered(pinentryField.text)
98+ }
99+ }
167100
168− Grid {
169− anchors {
170− left: parent.left
171− right: parent.right
172− margins: (parent.width - root.padWidth) / 2
101+ function backspace() {
102+ pinentryField.text = pinentryField.text.substring(0, pinentryField.text.length-1)
103+ }
104+ }
105+ Label {
106+ id: wrongNoticeLabel
107+ objectName: "wrongNoticeLabel"
108+ fontSize: "x-large"
109+ color: "#f3f3e7"
110+ anchors.horizontalCenter: parent.horizontalCenter
111+ text: root.errorText
112+ visible: pinentryField.incorrectOverride
173113 }
174114
175− columns: 3
115+ AbstractButton {
116+ objectName: "backspaceIcon"
117+ anchors { right: parent.right; top: parent.top; bottom: parent.bottom }
118+ width: height
176119
177− Repeater {
178− model: 9
120+ Icon {
121+ anchors.fill: parent
122+ name: "erase"
123+ color: "#f3f3e7"
124+ }
179125
180− PinPadButton {
181− objectName: "pinPadButton" + (index + 1)
182− width: root.padWidth / 3
183− height: root.padHeight / 4
184− text: index + 1
185− enabled: entryEnabled
126+ opacity: (pinentryField.text.length && !pinentryField.incorrectOverride) > 0 ? 1 : 0
186127
187− onClicked: {
188− pinentryField.appendChar(text);
189− }
128+ Behavior on opacity {
129+ UbuntuNumberAnimation {}
190130 }
191− }
192131
193− PinPadButton {
194− objectName: "pinPadButtonBack"
195− width: root.padWidth / 3
196− height: root.padHeight / 4
197− subText: i18n.tr("CANCEL")
198− onClicked: root.cancel();
132+ onClicked: pinentryField.backspace()
199133 }
134+ }
200135
201− PinPadButton {
202− objectName: "pinPadButton0"
203− width: root.padWidth / 3
204− height: root.padHeight / 4
205− text: "0"
206− onClicked: pinentryField.appendChar(text);
207− enabled: entryEnabled
208− }
136+ Label {
137+ objectName: "retryLabel"
138+ fontSize: "x-small"
139+ color: "#f3f3e7"
140+ anchors.horizontalCenter: parent.horizontalCenter
141+ text: root.retryText || " "
142+ }
143+ }
144+
145+ ThinDivider {
146+ anchors { left: parent.left; right: parent.right; margins: units.gu(2) }
147+ }
148+
149+ Grid {
150+ id: numbersGrid
151+ anchors { horizontalCenter: parent.horizontalCenter }
152+ columns: 3
153+
154+ property int buttonHeight: units.gu(8)
155+ property int buttonWidth: units.gu(12)
156+
157+ Repeater {
158+ model: 9
209159
210160 PinPadButton {
211− objectName: "pinPadButtonErase"
212− width: root.padWidth / 3
213− height: root.padHeight / 4
214− iconName: priv.autoConfirm ? "erase" : ""
215− subText: priv.autoConfirm ? "" : i18n.tr("DONE")
161+ objectName: "pinPadButton" + text
162+ text: index + 1
163+ height: numbersGrid.buttonHeight
164+ width: numbersGrid.buttonWidth
165+ enabled: root.entryEnabled && (root.maxPinLength == -1 ||
166+ pinentryField.text.length < root.maxPinLength ||
167+ pinentryField.incorrectOverride)
168+
216169 onClicked: {
217− if (priv.autoConfirm) {
218− pinentryField.text = pinentryField.text.substring(0, pinentryField.text.length-1);
219− } else {
220− root.entered(pinentryField.text);
221− }
170+ pinentryField.appendNumber(index + 1)
222171 }
223− enabled: priv.autoConfirm ? entryEnabled : pinentryField.text.length >= root.minPinLength
224172 }
225173 }
226− }
174+ Item {
175+ height: numbersGrid.buttonHeight
176+ width: numbersGrid.buttonWidth
177+ }
178+ PinPadButton {
179+ text: "0"
180+ height: numbersGrid.buttonHeight
181+ width: numbersGrid.buttonWidth
182+ enabled: root.entryEnabled && (root.maxPinLength == -1 ||
183+ pinentryField.text.length < root.maxPinLength ||
184+ pinentryField.incorrectOverride)
185+
186+ onClicked: {
187+ pinentryField.appendNumber(0)
188+ }
189+ }
190+ Item {
191+ height: numbersGrid.buttonHeight
192+ width: numbersGrid.buttonWidth
193+ }
194+ PinPadButton {
195+ iconName: "close"
196+ height: numbersGrid.buttonHeight
197+ width: numbersGrid.buttonWidth
227198
199+ onClicked: root.cancel()
200+ }
201+ Item {
202+ height: numbersGrid.buttonHeight
203+ width: numbersGrid.buttonWidth
204+ }
205+ PinPadButton {
206+ iconName: "tick"
207+ objectName: "confirmButton"
208+ height: numbersGrid.buttonHeight
209+ width: numbersGrid.buttonWidth
210+ enabled: root.enabled && pinentryField.text.length >= root.minPinLength
211+ visible: root.minPinLength == -1 || root.minPinLength !== root.maxPinLength
212+
213+ onClicked: root.entered(pinentryField.text)
214+ }
215+ }
228216 WrongPasswordAnimation {
229217 id: wrongPasswordAnimation
230218 objectName: "wrongPasswordAnimation"
231− target: pinentryField
219+ target: shakeContainer
232220 }
233221}
qml/Components/PinPadButton.qml+31−45
@@ -15,62 +15,48 @@
1515 */
1616
1717import QtQuick 2.0
18−import Ubuntu.Components 0.1
18+import Ubuntu.Components 1.1
1919
20−Item {
20+AbstractButton {
2121 id: root
2222 opacity: enabled ? 1 : 0.6
2323
2424 property alias text: label.text
25− property alias subText: subTextLabel.text
2625 property string iconName
2726
28− signal clicked()
27+ UbuntuShape {
28+ anchors.fill: parent
29+ opacity: root.pressed ? 1 : 0
30+ Behavior on opacity {
31+ UbuntuNumberAnimation {}
32+ }
33+ }
2934
30− Column {
35+ Label {
36+ id: label
3137 anchors.centerIn: parent
32− width: parent.width
33− height: childrenRect.height
34−
35− Item {
36− anchors {
37− left: parent.left
38− right: parent.right
39− }
40− height: label.visible || icon.visible ? Math.max(label.height, icon.height) : 0
41−
42− Label {
43− id: label
44− anchors.centerIn: parent
45− width: parent.width
46− horizontalAlignment: Text.AlignHCenter
47− color: "#f3f3e7"
48− fontSize: "large"
49− font.weight: Font.DemiBold
50− visible: text.length > 0
51− }
52−
53− Icon {
54− id: icon
55− height: units.gu(3)
56− width: height
57− anchors.centerIn: parent
58− name: root.iconName
59− color: "#f3f3e7"
60− visible: name.length > 0
61− }
62− }
63− Label {
64− id: subTextLabel
65− fontSize: "small"
66− color: "#f3f3e7"
67− anchors.horizontalCenter: parent.horizontalCenter
68− visible: text.length > 0
38+ horizontalAlignment: Text.AlignHCenter
39+ color: "#f3f3e7"
40+ fontSize: "x-large"
41+ font.weight: Font.DemiBold
42+ visible: text.length > 0
43+ scale: root.pressed ? 0.9 : 1
44+ Behavior on scale {
45+ UbuntuNumberAnimation {}
6946 }
7047 }
7148
72− MouseArea {
73− anchors.fill: parent
74− onClicked: root.clicked()
49+ Icon {
50+ id: icon
51+ height: units.gu(3)
52+ width: height
53+ anchors.centerIn: parent
54+ name: root.iconName
55+ color: "#f3f3e7"
56+ visible: name.length > 0
57+ scale: root.pressed ? 0.9 : 1
58+ Behavior on scale {
59+ UbuntuNumberAnimation { duration: UbuntuAnimation.SlowDuration }
60+ }
7561 }
7662}
qml/Dash/Dash.qml+1−1
@@ -341,7 +341,7 @@ Showable {
341341 objectName: "overviewDragHandle"
342342 z: 1
343343 direction: Direction.Upwards
344− enabled: !dashContent.previewShown &&
344+ enabled: !dashContent.subPageShown &&
345345 dashContent.currentScope &&
346346 dashContent.currentScope.searchQuery == "" &&
347347 (overviewController.progress == 0 || dragging)
qml/Dash/DashContent.qml+29−4
@@ -27,8 +27,8 @@ Item {
2727 readonly property alias currentIndex: dashContentList.currentIndex
2828 readonly property string currentScopeId: dashContentList.currentItem ? dashContentList.currentItem.scopeId : ""
2929 readonly property var currentScope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
30− readonly property bool previewShown: dashContentList.currentItem && dashContentList.currentItem.item ?
31− dashContentList.currentItem.item.previewShown : false
30+ readonly property bool subPageShown: dashContentList.currentItem && dashContentList.currentItem.item ?
31+ dashContentList.currentItem.item.subPageShown : false
3232 readonly property bool processing: dashContentList.currentItem && dashContentList.currentItem.item
3333 && dashContentList.currentItem.item.processing || false
3434 readonly property bool pageHeaderTotallyVisible: dashContentList.currentItem && dashContentList.currentItem.item
@@ -52,6 +52,11 @@ Item {
5252 }
5353 }
5454
55+ Connections {
56+ target: UriHandler
57+ onOpened: dashContentList.currentItem.theScope.performQuery(uris[0])
58+ }
59+
5560 function setCurrentScopeAtIndex(index, animate, reset) {
5661 // if the scopes haven't loaded yet, then wait until they are.
5762 if (!scopes.loaded) {
@@ -96,8 +101,7 @@ Item {
96101 id: dashContentList
97102 objectName: "dashContentList"
98103
99− interactive: dashContent.scopes.loaded && currentItem && !currentItem.moving && !currentItem.navigationShown
100−
104+ interactive: dashContent.scopes.loaded && currentItem && !currentItem.moving && !currentItem.navigationShown && !currentItem.subPageShown
101105 anchors.fill: parent
102106 orientation: ListView.Horizontal
103107 boundsBehavior: Flickable.DragAndOvershootBounds
@@ -111,6 +115,26 @@ Item {
111115 onMovementStarted: currentItem.item.showHeader();
112116 clip: parent.x != 0
113117
118+ // TODO QTBUG-40846 and QTBUG-40848
119+ // The remove transition doesn't happen when removing the last item
120+ // And can't work around it because index is reset to -1 regardless of
121+ // ListView.delayRemove
122+
123+ remove: Transition {
124+ SequentialAnimation {
125+ PropertyAction { property: "layer.enabled"; value: true }
126+ PropertyAction { property: "ListView.delayRemove"; value: true }
127+ ParallelAnimation {
128+ PropertyAnimation { properties: "scale"; to: 0.25; duration: UbuntuAnimation.SnapDuration }
129+ PropertyAnimation { properties: "y"; to: dashContent.height; duration: UbuntuAnimation.SnapDuration }
130+ }
131+ PropertyAction { property: "ListView.delayRemove"; value: false }
132+ }
133+ }
134+ removeDisplaced: Transition {
135+ PropertyAnimation { property: "x"; duration: UbuntuAnimation.SnapDecision }
136+ }
137+
114138 // If the number of items is less than the current index, then need to reset to another item.
115139 onCountChanged: {
116140 if (count > 0) {
@@ -137,6 +161,7 @@ Item {
137161
138162 readonly property bool moving: item ? item.moving : false
139163 readonly property bool navigationShown: item ? item.navigationShown : false
164+ readonly property bool subPageShown: item ? item.subPageShown : false
140165 readonly property var categoryView: item ? item.categoryView : null
141166 readonly property var theScope: scope
142167
qml/Dash/DashNavigation.qml+62−159
@@ -16,195 +16,98 @@
1616
1717import QtQuick 2.2
1818import Ubuntu.Components 1.1
19+import Dash 0.1
20+import "../Components"
1921
20−AbstractButton {
22+Item {
2123 id: root
2224 objectName: "dashNavigation"
2325
2426 property var scope: null
25−
26− property bool showList: false
27−
28− readonly property var currentNavigation: scope && scope.hasNavigation ? scope.getNavigation(scope.currentNavigationId) : null
27+ property var scopeStyle: null
2928
3029 property alias windowWidth: blackRect.width
3130 property alias windowHeight: blackRect.height
32− property var scopeStyle: null
31+ readonly property var openList: {
32+ if (navigationButton.showList) return navigationButton.listView;
33+ if (altNavigationButton.showList) return altNavigationButton.listView;
34+ return null;
35+ }
3336
34− // Are we drilling down the tree or up?
35− property bool isGoingBack: false
37+ // FIXME this is only here for highlight purposes (see Background.qml, too)
38+ readonly property var background: backgroundItem
3639
37− visible: root.currentNavigation != null
40+ visible: navigationButton.currentNavigation || altNavigationButton.currentNavigation
3841
3942 height: visible ? units.gu(5) : 0
4043
41− onClicked: {
42− navigationListView.updateMaxHeight();
43− root.showList = !root.showList;
44+ QtObject {
45+ id: d
46+ readonly property color foregroundColor: root.scopeStyle
47+ ? root.scopeStyle.getTextColor(backgroundItem.luminance)
48+ : Theme.palette.normal.baseText
49+ readonly property bool bothVisible: altNavigationButton.visible && navigationButton.visible
50+ readonly property real navigationWidth: root.width >= units.gu(60) ? units.gu(40) : root.width
51+ readonly property real buttonWidth: navigationWidth / (bothVisible ? 2 : 1)
4452 }
4553
4654 Rectangle {
4755 id: blackRect
4856 color: "black"
49− opacity: navigationListView.currentItem && navigationListView.currentItem.visible ? 0.3 : 0
57+ opacity: openList && openList.currentItem && openList.currentItem.visible ? 0.5 : 0
5058 Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } }
51− anchors.top: navigationListView.top
52− anchors.right: parent.right
53− visible: opacity != 0
59+ anchors { left: parent.left; right: parent.right }
60+ visible: opacity > 0
5461 }
5562
56− Image {
57− anchors {
58− top: parent.top
59− left: parent.left
60− right: parent.right
61− }
62− fillMode: Image.Stretch
63− source: "graphics/dash_divider_top_lightgrad.png"
64− z: -1
63+ Background {
64+ id: backgroundItem
65+ anchors.fill: parent
66+ style: scopeStyle ? scopeStyle.navigationBackground : "color:///#f5f5f5"
6567 }
6668
6769 Image {
68− anchors {
69− bottom: parent.bottom
70− left: parent.left
71− right: parent.right
72− }
7370 fillMode: Image.Stretch
74− source: "graphics/dash_divider_top_darkgrad.png"
75− z: -1
71+ source: scopeStyle.backgroundLuminance > 0.2 ? "graphics/navigation_shadow.png" : "graphics/navigation_shadow_light.png"
72+ anchors { top: parent.bottom; left: parent.left; right: parent.right }
7673 }
7774
78− Label {
79− anchors.fill: parent
80− anchors.margins: units.gu(2)
81− verticalAlignment: Text.AlignVCenter
82− text: root.currentNavigation ? root.currentNavigation.label : ""
83− color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
75+ DashNavigationButton {
76+ id: altNavigationButton
77+ objectName: "altNavigationButton"
78+ height: root.height
79+ width: d.buttonWidth
80+ scope: root.scope
81+ scopeStyle: root.scopeStyle
82+ foregroundColor: d.foregroundColor
83+ listView.width: d.navigationWidth
84+ isAltNavigation: true
85+ showDivider: navigationButton.visible || root.width > d.navigationWidth
86+ // needed so that InverseMouseArea is above navigationButton
87+ z: listView.height > 0 ? 1 : 0
8488 }
8589
86− Icon {
87− anchors.verticalCenter: parent.verticalCenter
88− anchors.right: parent.right
89− anchors.rightMargin: units.gu(2)
90− name: showList ? "up" : "down"
91− height: units.gu(2)
92− width: height
93− color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
90+ DashNavigationButton {
91+ id: navigationButton
92+ objectName: "navigationButton"
93+ height: root.height
94+ width: altNavigationButton.visible ? d.buttonWidth : d.navigationWidth
95+ x: altNavigationButton.visible ? d.buttonWidth : 0
96+ scope: root.scope
97+ scopeStyle: root.scopeStyle
98+ foregroundColor: d.foregroundColor
99+ listView.width: d.navigationWidth
100+ listView.x: -x
101+ showDivider: root.width > d.navigationWidth
94102 }
95103
96− // navigationListView is outside root
97− ListView {
98− id: navigationListView
99− objectName: "navigationListView"
100− orientation: ListView.Horizontal
101− interactive: false
102− clip: root.width != windowWidth
103− model: ListModel {
104− id: navigationModel
105− // We have two roles
106− // navigationId: the navigation id of the navigation the list represents
107− // nullifyNavigation: overrides navigationId to be null
108− // This is used to "clear" the delegate when going "right" on the tree
109− }
110− anchors {
111− left: parent.left
112− right: parent.right
113− top: root.bottom
114− }
115− property int maxHeight: -1
116− Component.onCompleted: updateMaxHeight();
117− function updateMaxHeight()
118− {
119− maxHeight = (windowHeight - mapToItem(null, 0, 0).y) - units.gu(8);
120− }
121− property int prevHeight: maxHeight
122− height: currentItem ? currentItem.height : maxHeight
123− onHeightChanged: {
124− if (root.showList) {
125− prevHeight = currentItem.desiredHeight;
126− }
127− }
128− highlightMoveDuration: UbuntuAnimation.FastDuration
129− delegate: DashNavigationList {
130− objectName: "navigation" + index
131− visible: height != 0
132− width: navigationListView.width
133− scopeStyle: root.scopeStyle
134− property real desiredHeight: {
135− if (root.showList) {
136− if (navigation && navigation.loaded && x == navigationListView.contentX)
137− {
138− navigationListView.updateMaxHeight();
139− return Math.min(implicitHeight, navigationListView.maxHeight);
140− } else {
141− return navigationListView.prevHeight;
142− }
143− } else {
144− return 0;
145− }
146− }
147− height: desiredHeight
148− navigation: (nullifyNavigation || !scope) ? null : scope.getNavigation(navigationId)
149− currentNavigation: root.currentNavigation
150− onEnterNavigation: {
151− scope.setNavigationState(newNavigationId, false);
152− // We only need to add a new item to the model
153− // if we have children, otherwise just load it
154− if (hasChildren) {
155− isGoingBack = false;
156− navigationModel.append({"navigationId": newNavigationId, "nullifyNavigation": false});
157− navigationListView.currentIndex++;
158− } else {
159− showList = false;
160− }
161− }
162− onGoBackToParentClicked: {
163− scope.setNavigationState(navigation.parentNavigationId, false);
164− isGoingBack = true;
165− navigationModel.setProperty(navigationListView.currentIndex - 1, "nullifyNavigation", false);
166− navigationListView.currentIndex--;
167− }
168− onAllNavigationClicked: {
169− showList = false;
170− if (root.currentNavigation.parentNavigationId == navigation.navigationId) {
171− // For leaves we have to go to the parent too
172− scope.setNavigationState(root.currentNavigation.parentNavigationId, false);
173− }
174− }
175− }
176− onContentXChanged: {
177− if (contentX == width * navigationListView.currentIndex) {
178− if (isGoingBack) {
179− navigationModel.remove(navigationListView.currentIndex + 1);
180− } else {
181− navigationModel.setProperty(navigationListView.currentIndex - 1, "nullifyNavigation", true);
182− }
183− }
184− }
185− }
186−
187− InverseMouseArea {
188− anchors.fill: navigationListView
189− enabled: root.showList
190− onClicked: root.showList = false
191− }
192−
193− onScopeChanged: {
194− navigationModel.clear();
195− if (scope && scope.hasNavigation) {
196− navigationModel.append({"navigationId": scope.currentNavigationId, "nullifyNavigation": false});
197− }
198− }
199−
200− Connections {
201− target: scope
202− onHasNavigationChanged: {
203− if (scope.hasNavigation) {
204− navigationModel.append({"navigationId": scope.currentNavigationId, "nullifyNavigation": false});
205− } else {
206− navigationModel.clear();
207− }
208− }
104+ Image {
105+ fillMode: Image.Stretch
106+ source: backgroundItem.luminance > 0.7 ? "graphics/navigation_shadow.png" : "graphics/navigation_shadow_light.png"
107+ x: navigationButton.listView.height > 0 ? altNavigationButton.x : navigationButton.x
108+ width: d.buttonWidth
109+ rotation: 180
110+ anchors.bottom: parent.bottom
111+ visible: d.bothVisible && (navigationButton.listView.height > 0 || altNavigationButton.listView.height > 0)
209112 }
210113}
qml/Dash/DashNavigationButton.qmlnew file+226
@@ -0,0 +1,226 @@
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.2
18+import Ubuntu.Components 1.1
19+
20+AbstractButton {
21+ id: root
22+ objectName: "dashNavigation"
23+
24+ // Set by parent
25+ property var scope: null
26+ property var scopeStyle: null
27+ property color foregroundColor: Theme.palette.normal.baseText
28+ property bool isAltNavigation: false
29+ property bool showDivider: false
30+
31+ // Used by parent
32+ readonly property var currentNavigation: scope && scope[hasNavigation] ? getNavigation(scope[currentNavigationId]) : null
33+ readonly property alias listView: navigationListView
34+ property bool showList: false
35+
36+ // Internal
37+ // Are we drilling down the tree or up?
38+ property bool isGoingBack: false
39+ readonly property string hasNavigation: isAltNavigation ? "hasAltNavigation" : "hasNavigation"
40+ readonly property string currentNavigationId: isAltNavigation ? "currentAltNavigationId" : "currentNavigationId"
41+ function getNavigation(navId) {
42+ if (isAltNavigation) {
43+ return scope.getAltNavigation(navId);
44+ } else {
45+ return scope.getNavigation(navId);
46+ }
47+ }
48+
49+ visible: root.currentNavigation != null
50+
51+ onClicked: {
52+ navigationListView.updateMaxHeight();
53+ root.showList = !root.showList;
54+ }
55+
56+ Label {
57+ anchors.fill: parent
58+ anchors.margins: units.gu(2)
59+ anchors.rightMargin: units.gu(5)
60+ verticalAlignment: Text.AlignVCenter
61+ text: root.currentNavigation ? root.currentNavigation.label : ""
62+ color: root.foregroundColor
63+ elide: Text.ElideRight
64+ maximumLineCount: 1
65+ }
66+
67+ Icon {
68+ anchors.verticalCenter: parent.verticalCenter
69+ anchors.right: parent.right
70+ anchors.rightMargin: units.gu(2)
71+ name: showList ? "up" : "down"
72+ height: units.gu(2)
73+ width: height
74+ color: root.foregroundColor
75+ }
76+
77+ // navigationListView is outside root
78+ ListView {
79+ id: navigationListView
80+ objectName: "navigationListView"
81+ visible: height > 0
82+ orientation: ListView.Horizontal
83+ interactive: false
84+ clip: root.width != windowWidth
85+ model: ListModel {
86+ id: navigationModel
87+ // We have two roles
88+ // navigationId: the navigation id of the navigation the list represents
89+ // nullifyNavigation: overrides navigationId to be null
90+ // This is used to "clear" the delegate when going "right" on the tree
91+ }
92+ anchors.top: root.bottom
93+ property int maxHeight: -1
94+ Component.onCompleted: updateMaxHeight();
95+ function updateMaxHeight()
96+ {
97+ maxHeight = (windowHeight - mapToItem(null, 0, 0).y) - units.gu(8);
98+ }
99+ property int prevHeight: maxHeight
100+ height: currentItem ? currentItem.height : maxHeight
101+ onHeightChanged: {
102+ if (root.showList) {
103+ prevHeight = currentItem.desiredHeight;
104+ }
105+ }
106+ highlightMoveDuration: UbuntuAnimation.FastDuration
107+ delegate: DashNavigationList {
108+ objectName: "navigation" + index
109+ visible: height > 0
110+ width: navigationListView.width
111+ scopeStyle: root.scopeStyle
112+ foregroundColor: root.foregroundColor
113+ property real desiredHeight: {
114+ if (root.showList) {
115+ if (navigation && navigation.loaded && x == navigationListView.contentX)
116+ {
117+ navigationListView.updateMaxHeight();
118+ return Math.min(implicitHeight, navigationListView.maxHeight);
119+ } else {
120+ return navigationListView.prevHeight;
121+ }
122+ } else {
123+ return 0;
124+ }
125+ }
126+ height: desiredHeight
127+ navigation: (nullifyNavigation || !scope) ? null : getNavigation(navigationId)
128+ currentNavigation: root.currentNavigation
129+ onEnterNavigation: {
130+ scope.setNavigationState(newNavigationId, isAltNavigation);
131+ // We only need to add a new item to the model
132+ // if we have children, otherwise just load it
133+ if (hasChildren) {
134+ isGoingBack = false;
135+ navigationModel.append({"navigationId": newNavigationId, "nullifyNavigation": false});
136+ navigationListView.currentIndex++;
137+ } else {
138+ showList = false;
139+ }
140+ }
141+ onGoBackToParentClicked: {
142+ scope.setNavigationState(navigation.parentNavigationId, isAltNavigation);
143+ isGoingBack = true;
144+ navigationModel.setProperty(navigationListView.currentIndex - 1, "nullifyNavigation", false);
145+ navigationListView.currentIndex--;
146+ }
147+ onAllNavigationClicked: {
148+ showList = false;
149+ if (root.currentNavigation.parentNavigationId == navigation.navigationId) {
150+ // For leaves we have to go to the parent too
151+ scope.setNavigationState(root.currentNavigation.parentNavigationId, isAltNavigation);
152+ }
153+ }
154+ }
155+ onContentXChanged: {
156+ if (contentX == width * navigationListView.currentIndex) {
157+ if (isGoingBack) {
158+ navigationModel.remove(navigationListView.currentIndex + 1);
159+ } else {
160+ navigationModel.setProperty(navigationListView.currentIndex - 1, "nullifyNavigation", true);
161+ }
162+ }
163+ }
164+ }
165+
166+ Image {
167+ anchors {
168+ top: navigationListView.bottom
169+ left: navigationListView.left
170+ right: navigationListView.right
171+ }
172+ fillMode: Image.Stretch
173+ source: "graphics/navigation_shadow.png"
174+ visible: root.showList
175+ }
176+
177+ onScopeChanged: {
178+ navigationModel.clear();
179+ if (scope && scope[hasNavigation]) {
180+ navigationModel.append({"navigationId": scope[currentNavigationId], "nullifyNavigation": false});
181+ }
182+ }
183+
184+ Connections {
185+ target: scope
186+ // This is duplicated since we can't have something based on the dynamic hasNavigation string property
187+ onHasNavigationChanged: {
188+ if (!root.isAltNavigation) {
189+ if (scope.hasNavigation) {
190+ navigationModel.append({"navigationId": scope.currentNavigationId, "nullifyNavigation": false});
191+ } else {
192+ navigationModel.clear();
193+ }
194+ }
195+ }
196+ onHasAltNavigationChanged: {
197+ if (root.isAltNavigation) {
198+ if (scope.hasAltNavigation) {
199+ navigationModel.append({"navigationId": scope.currentAltNavigationId, "nullifyNavigation": false});
200+ } else {
201+ navigationModel.clear();
202+ }
203+ }
204+ }
205+ }
206+
207+ InverseMouseArea {
208+ anchors.fill: navigationListView
209+ enabled: root.showList
210+ onPressed: root.showList = false
211+ }
212+
213+ Rectangle {
214+ visible: root.showDivider
215+ anchors {
216+ top: parent.top
217+ topMargin: units.dp(1)
218+ bottom: parent.bottom
219+ left: parent.right
220+ leftMargin: -units.dp(0.5)
221+ }
222+ width: units.dp(1)
223+ color: root.foregroundColor
224+ opacity: 0.2
225+ }
226+}
qml/Dash/DashNavigationList.qml+21−4
@@ -16,22 +16,23 @@
1616
1717import QtQuick 2.2
1818import Ubuntu.Components 1.1
19+import "../Components"
1920
2021Item {
2122 id: root
2223 property var navigation: null
2324 property var currentNavigation: null
2425 property var scopeStyle: null
26+ property color foregroundColor: Theme.palette.normal.baseText
2527 signal enterNavigation(var newNavigationId, bool hasChildren)
2628 signal goBackToParentClicked()
2729 signal allNavigationClicked()
2830
2931 readonly property int itemHeight: units.gu(5)
30− readonly property color foregroundColor: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
3132 implicitHeight: flickable.contentHeight
3233
33− Rectangle {
34− color: !root.scopeStyle || Qt.colorEqual(root.scopeStyle.background, "transparent") ? "white" : root.scopeStyle.background
34+ Background {
35+ style: root.scopeStyle ? root.scopeStyle.navigationBackground : "color:///#f5f5f5"
3536 anchors.fill: parent
3637 }
3738
@@ -86,10 +87,15 @@ Item {
8687 anchors {
8788 verticalCenter: parent.verticalCenter
8889 left: backImage.right
90+ right: parent.right
8991 leftMargin: units.gu(0.5)
92+ rightMargin: units.gu(2)
9093 }
9194 text: navigation ? navigation.parentLabel : ""
9295 color: root.foregroundColor
96+ wrapMode: Text.Wrap
97+ maximumLineCount: 2
98+ elide: Text.ElideMiddle
9399 }
94100
95101 Rectangle {
@@ -110,18 +116,23 @@ Item {
110116 id: allButton
111117 objectName: "allButton"
112118 width: parent.width
113− visible: navigation && (!navigation.isRoot || (root.currentNavigation && !root.currentNavigation.isRoot && root.currentNavigation.parentNavigationId == navigation.navigationId)) || false
119+ visible: navigation && (!navigation.isRoot || (!navigation.hidden && root.currentNavigation && !root.currentNavigation.isRoot && root.currentNavigation.parentNavigationId == navigation.navigationId)) || false
114120 height: itemHeight
115121
116122 Label {
117123 anchors {
118124 verticalCenter: parent.verticalCenter
119125 left: parent.left
126+ right: parent.right
120127 leftMargin: units.gu(2)
128+ rightMargin: units.gu(2)
121129 }
122130 text: navigation ? (navigation.allLabel != "" ? navigation.allLabel : navigation.label) : ""
123131 font.bold: true
124132 color: root.foregroundColor
133+ wrapMode: Text.Wrap
134+ maximumLineCount: 2
135+ elide: Text.ElideMiddle
125136 }
126137
127138 Rectangle {
@@ -155,12 +166,18 @@ Item {
155166 verticalCenter: parent.verticalCenter
156167 left: parent.left
157168 leftMargin: units.gu(2)
169+ right: rightIcon.visible ? rightIcon.left : parent.right
170+ rightMargin: rightIcon.visible ? units.gu(0.5) : units.gu(2)
158171 }
159172 text: label
160173 color: root.foregroundColor
174+ wrapMode: Text.Wrap
175+ maximumLineCount: 2
176+ elide: Text.ElideMiddle
161177 }
162178
163179 Icon {
180+ id: rightIcon
164181 anchors {
165182 verticalCenter: parent.verticalCenter
166183 right: parent.right
qml/Dash/GenericScopeView.qml+136−38
@@ -34,7 +34,7 @@ FocusScope {
3434 property bool enableHeightBehaviorOnNextCreation: false
3535 property var categoryView: categoryView
3636 property bool showPageHeader: true
37− readonly property alias previewShown: previewListView.open
37+ readonly property alias subPageShown: subPageLoader.subPageShown
3838 property int paginationCount: 0
3939 property int paginationIndex: 0
4040 property alias pageHeaderTotallyVisible: categoryView.pageHeaderTotallyVisible
@@ -43,7 +43,7 @@ FocusScope {
4343 style: scope ? scope.customizations : {}
4444 }
4545
46− readonly property bool processing: scope ? scope.searchInProgress || previewListView.processing : false
46+ readonly property bool processing: scope ? scope.searchInProgress || subPageLoader.processing : false
4747
4848 signal backClicked()
4949
@@ -56,7 +56,7 @@ FocusScope {
5656 }
5757
5858 function closePreview() {
59− previewListView.open = false;
59+ subPageLoader.closeSubPage()
6060 }
6161
6262 function itemClicked(index, result, item, itemModel, resultsModel, limitedCategoryItemCount) {
@@ -80,19 +80,19 @@ FocusScope {
8080 if (limitedCategoryItemCount > 0) {
8181 previewLimitModel.model = resultsModel;
8282 previewLimitModel.limit = limitedCategoryItemCount;
83− previewListView.model = previewLimitModel;
83+ subPageLoader.model = previewLimitModel;
8484 } else {
85− previewListView.model = resultsModel;
85+ subPageLoader.model = resultsModel;
8686 }
87− previewListView.currentIndex = -1;
88− previewListView.currentIndex = index;
89− previewListView.open = true;
87+ subPageLoader.initialIndex = -1;
88+ subPageLoader.initialIndex = index;
89+ subPageLoader.openSubPage("preview");
9090 }
9191
9292 Binding {
9393 target: scope
9494 property: "isActive"
95− value: isCurrent && !previewListView.open
95+ value: isCurrent && !subPageLoader.open
9696 }
9797
9898 SortFilterProxyModel {
@@ -105,10 +105,10 @@ FocusScope {
105105 }
106106
107107 onIsCurrentChanged: {
108− if (showPageHeader) {
108+ if (pageHeaderLoader.item && showPageHeader) {
109109 pageHeaderLoader.item.resetSearch();
110110 }
111− previewListView.open = false;
111+ subPageLoader.closeSubPage();
112112 }
113113
114114 Binding {
@@ -127,8 +127,8 @@ FocusScope {
127127
128128 Connections {
129129 target: scopeView.scope
130− onShowDash: previewListView.open = false;
131− onHideDash: previewListView.open = false;
130+ onShowDash: subPageLoader.closeSubPage()
131+ onHideDash: subPageLoader.closeSubPage()
132132 }
133133
134134 Rectangle {
@@ -141,17 +141,19 @@ FocusScope {
141141 id: categoryView
142142 objectName: "categoryListView"
143143
144− x: previewListView.open ? -width : 0
144+ x: subPageLoader.open ? -width : 0
145145 Behavior on x { UbuntuNumberAnimation { } }
146146 width: parent.width
147− height: parent.height
147+ height: floatingSeeLess.visible ? parent.height - floatingSeeLess.height + floatingSeeLess.yOffset
148+ : parent.height
149+ clip: height != parent.height
148150
149151 model: scopeView.categories
150− forceNoClip: previewListView.open
152+ forceNoClip: subPageLoader.open
151153 pixelAligned: true
152154 interactive: !navigationShown
153155
154− property string expandedCategoryId: ""
156+ property Item expandedCategoryItem: null
155157
156158 readonly property bool pageHeaderTotallyVisible: scopeView.showPageHeader &&
157159 ((headerItemShownHeight == 0 && categoryView.contentY <= categoryView.originY) || (headerItemShownHeight == pageHeaderLoader.item.height))
@@ -162,6 +164,8 @@ FocusScope {
162164 highlightWhenPressed: false
163165 showDivider: false
164166
167+ property Item seeAllButton: seeAll
168+
165169 readonly property bool expandable: {
166170 if (categoryView.model.count === 1) return false;
167171 if (cardTool.template && cardTool.template["collapsed-rows"] === 0) return false;
@@ -191,7 +195,7 @@ FocusScope {
191195 // This can happen with the VJ that doesn't know how height it will be on creation
192196 // so doesn't set expandable until a bit too late for onLoaded
193197 if (expandable) {
194− var shouldExpand = baseItem.category === categoryView.expandedCategoryId;
198+ var shouldExpand = baseItem === categoryView.expandedCategoryItem;
195199 baseItem.expand(shouldExpand, false /*animate*/);
196200 }
197201 }
@@ -242,7 +246,7 @@ FocusScope {
242246 item.objectName = Qt.binding(function() { return categoryId })
243247 item.scopeStyle = scopeView.scopeStyle;
244248 if (baseItem.expandable) {
245− var shouldExpand = categoryId === categoryView.expandedCategoryId;
249+ var shouldExpand = baseItem === categoryView.expandedCategoryItem;
246250 baseItem.expand(shouldExpand, false /*animate*/);
247251 }
248252 updateDelegateCreationRange();
@@ -279,21 +283,21 @@ FocusScope {
279283 }
280284 Connections {
281285 target: categoryView
282− onExpandedCategoryIdChanged: {
286+ onExpandedCategoryItemChanged: {
283287 collapseAllButExpandedCategory();
284288 }
285289 function collapseAllButExpandedCategory() {
286290 var item = rendererLoader.item;
287291 if (baseItem.expandable) {
288− var shouldExpand = categoryId === categoryView.expandedCategoryId;
292+ var shouldExpand = baseItem === categoryView.expandedCategoryItem;
289293 if (shouldExpand != baseItem.expanded) {
290294 // If the filter animation will be seen start it, otherwise, just flip the switch
291295 var shrinkingVisible = !shouldExpand && y + item.collapsedHeight + seeAll.height < categoryView.height;
292296 var growingVisible = shouldExpand && y + height < categoryView.height;
293− if (!previewListView.open || shouldExpand) {
297+ if (!subPageLoader.open || shouldExpand) {
294298 var animate = shrinkingVisible || growingVisible;
295299 baseItem.expand(shouldExpand, animate)
296− if (shouldExpand && !previewListView.open) {
300+ if (shouldExpand && !subPageLoader.open) {
297301 categoryView.maximizeVisibleArea(index, item.expandedHeight + seeAll.height);
298302 }
299303 }
@@ -346,13 +350,13 @@ FocusScope {
346350 left: parent.left
347351 right: parent.right
348352 }
349− height: seeAllLabel.visible ? seeAllLabel.font.pixelSize + units.gu(6) : 0
353+ height: seeAllLabel.visible ? seeAllLabel.font.pixelSize + units.gu(4) : 0
350354
351355 onClicked: {
352− if (categoryView.expandedCategoryId != baseItem.category) {
353− categoryView.expandedCategoryId = baseItem.category;
356+ if (categoryView.expandedCategoryItem !== baseItem) {
357+ categoryView.expandedCategoryItem = baseItem;
354358 } else {
355− categoryView.expandedCategoryId = "";
359+ categoryView.expandedCategoryItem = null;
356360 }
357361 }
358362
@@ -424,44 +428,138 @@ FocusScope {
424428 searchHint: scopeView.scope && scopeView.scope.searchHint || i18n.tr("Search")
425429 showBackButton: scopeView.hasBackAction
426430 searchEntryEnabled: true
431+ settingsEnabled: scopeView.scope && scopeView.scope.settings && scopeView.scope.settings.count > 0 || false
432+ favoriteEnabled: scopeView.scope && scopeView.scope.id !== "clickscope"
433+ favorite: scopeView.scope && scopeView.scope.favorite
427434 scopeStyle: scopeView.scopeStyle
428435 paginationCount: scopeView.paginationCount
429436 paginationIndex: scopeView.paginationIndex
430437
431438 bottomItem: DashNavigation {
432439 scope: scopeView.scope
433− width: parent.width <= units.gu(60) ? parent.width : units.gu(40)
434− anchors.right: parent.right
440+ anchors { left: parent.left; right: parent.right }
435441 windowHeight: scopeView.height
436442 windowWidth: scopeView.width
437443 scopeStyle: scopeView.scopeStyle
438444 }
439445
440446 onBackClicked: scopeView.backClicked()
447+ onSettingsClicked: subPageLoader.openSubPage("settings")
448+ onFavoriteClicked: scopeView.scope.favorite = !scopeView.scope.favorite
441449 }
442450 }
443451 }
444452 }
445453
454+ AbstractButton {
455+ id: floatingSeeLess
456+ objectName: "floatingSeeLess"
457+
458+ property Item companionTo: companionBase ? companionBase.seeAllButton : null
459+ property Item companionBase: categoryView.expandedCategoryItem
460+ property bool showBecausePosition: false
461+ property real yOffset: 0
462+
463+ anchors {
464+ left: categoryView.left
465+ right: categoryView.right
466+ }
467+ y: parent.height - height + yOffset
468+ height: seeLessLabel.font.pixelSize + units.gu(4)
469+ visible: companionTo && showBecausePosition
470+
471+ onClicked: categoryView.expandedCategoryItem = null;
472+
473+ function updateVisibility() {
474+ var companionPos = companionTo.mapToItem(floatingSeeLess, 0, 0);
475+ showBecausePosition = companionPos.y > 0;
476+
477+ var posToBase = floatingSeeLess.mapToItem(companionBase, 0, -yOffset).y;
478+ yOffset = Math.max(0, companionBase.item.collapsedHeight - posToBase);
479+ yOffset = Math.min(yOffset, height);
480+ }
481+
482+ Label {
483+ id: seeLessLabel
484+ text: i18n.tr("See less")
485+ anchors {
486+ centerIn: parent
487+ verticalCenterOffset: units.gu(-0.5)
488+ }
489+ fontSize: "small"
490+ font.weight: Font.Bold
491+ color: scopeStyle ? scopeStyle.foreground : Theme.palette.normal.baseText
492+ }
493+
494+ Connections {
495+ target: floatingSeeLess.companionTo ? categoryView : null
496+ onContentYChanged: floatingSeeLess.updateVisibility();
497+ }
498+
499+ Connections {
500+ target: floatingSeeLess.companionTo
501+ onYChanged: floatingSeeLess.updateVisibility();
502+ }
503+ }
504+
446505 LimitProxyModel {
447506 id: previewLimitModel
448507 }
449508
450− PreviewListView {
451− id: previewListView
452− objectName: "previewListView"
509+ Loader {
510+ id: subPageLoader
511+ objectName: "subPageLoader"
453512 visible: x != width
454− scope: scopeView.scope
455− scopeStyle: scopeView.scopeStyle
456513 width: parent.width
457514 height: parent.height
458515 anchors.left: categoryView.right
459516
460− onOpenChanged: {
461− if (showPageHeader) {
462− pageHeaderLoader.item.unfocus();
517+ property bool open: false
518+ property var scope: scopeView.scope
519+ property var scopeStyle: scopeView.scopeStyle
520+ property int initialIndex: -1
521+ property var model: null
522+
523+ readonly property bool processing: item && item.processing || false
524+ readonly property int count: item && item.count || 0
525+ readonly property int currentIndex: item && item.currentIndex || 0
526+ readonly property var currentItem: item && item.currentItem || null
527+
528+ property string subPage: ""
529+ readonly property bool subPageShown: visible && status === Loader.Ready
530+
531+ function openSubPage(page) {
532+ subPage = page;
533+ }
534+
535+ function closeSubPage() {
536+ open = false;
537+ }
538+
539+ source: switch(subPage) {
540+ case "preview": return "PreviewListView.qml";
541+ case "settings": return "ScopeSettingsPage.qml";
542+ default: return "";
543+ }
544+
545+ onLoaded: {
546+ item.scope = Qt.binding(function() { return subPageLoader.scope; } )
547+ item.scopeStyle = Qt.binding(function() { return subPageLoader.scopeStyle; } )
548+ if (subPage == "preview") {
549+ item.open = Qt.binding(function() { return subPageLoader.open; } )
550+ item.initialIndex = Qt.binding(function() { return subPageLoader.initialIndex; } )
551+ item.model = Qt.binding(function() { return subPageLoader.model; } )
463552 }
553+ open = true;
464554 }
465− }
466555
556+ onOpenChanged: pageHeaderLoader.item.unfocus()
557+
558+ onVisibleChanged: if (!visible) subPage = ""
559+
560+ Connections {
561+ target: subPageLoader.item
562+ onBackClicked: subPageLoader.closeSubPage()
563+ }
564+ }
467565}
qml/Dash/PageHeader.qml+81−27
@@ -31,6 +31,9 @@ Item {
3131 property string title
3232
3333 property bool searchEntryEnabled: false
34+ property bool settingsEnabled: false
35+ property bool favoriteEnabled: false
36+ property bool favorite: false
3437 property ListModel searchHistory: SearchHistoryModel
3538 property alias searchQuery: searchTextField.text
3639 property alias searchHint: searchTextField.placeholderText
@@ -40,12 +43,11 @@ Item {
4043 property int paginationCount: 0
4144 property int paginationIndex: -1
4245
43− // TODO We should use foreground for the icons
44− // of the toolbar but unfortunately Action does not have
45− // the keyColor property as Icon does :-/
4646 property var scopeStyle: null
4747
4848 signal backClicked()
49+ signal settingsClicked()
50+ signal favoriteClicked()
4951
5052 onScopeStyleChanged: refreshLogo()
5153 onSearchQueryChanged: {
@@ -240,6 +242,7 @@ Item {
240242 contentHeight: height
241243 opacity: headerContainer.clip || !headerContainer.showSearch ? 1 : 0 // setting visible false cause column to relayout
242244 separatorSource: ""
245+ separatorBottomSource: ""
243246 property var styledItem: header
244247 property string title: root.title
245248 property var config: PageHeadConfiguration {
@@ -247,20 +250,33 @@ Item {
247250 backAction: Action {
248251 iconName: "back"
249252 visible: root.showBackButton
250− onTriggered: {
251− root.backClicked();
252− }
253+ onTriggered: root.backClicked()
253254 }
254255
255256 actions: [
256257 Action {
257258 objectName: "search"
259+ text: i18n.tr("Search")
258260 iconName: "search"
259261 visible: root.searchEntryEnabled
260262 onTriggered: {
261263 headerContainer.showSearch = true;
262264 searchTextField.forceActiveFocus();
263265 }
266+ },
267+ Action {
268+ objectName: "settings"
269+ text: i18n.tr("Settings")
270+ iconName: "settings"
271+ visible: root.settingsEnabled
272+ onTriggered: root.settingsClicked()
273+ },
274+ Action {
275+ objectName: "favorite"
276+ text: root.favorite ? i18n.tr("Remove from Favorites") : i18n.tr("Add to Favorites")
277+ iconName: root.favorite ? "starred" : "non-starred"
278+ visible: root.favoriteEnabled
279+ onTriggered: root.favoriteClicked()
264280 }
265281 ]
266282 }
@@ -288,25 +304,6 @@ Item {
288304 }
289305 }
290306
291− Row {
292− spacing: units.gu(.5)
293− Repeater {
294− objectName: "paginationRepeater"
295− model: root.paginationCount
296− Image {
297− objectName: "paginationDots_" + index
298− height: units.gu(1)
299− width: height
300− source: (index == root.paginationIndex) ? "graphics/pagination_dot_on.png" : "graphics/pagination_dot_off.png"
301− }
302− }
303− anchors {
304− top: headerContainer.bottom
305− horizontalCenter: headerContainer.horizontalCenter
306− topMargin: units.gu(.5)
307− }
308− }
309−
310307 Component {
311308 id: popoverComponent
312309 Popover {
@@ -344,7 +341,7 @@ Item {
344341 }
345342 }
346343
347− BorderImage {
344+ Rectangle {
348345 id: bottomBorder
349346 anchors {
350347 top: headerContainer.bottom
@@ -353,7 +350,64 @@ Item {
353350 bottom: bottomContainer.top
354351 }
355352
356− source: "graphics/PageHeaderBaseDivider.sci"
353+ color: scopeStyle ? scopeStyle.headerDividerColor : "#e0e0e0"
354+
355+ Rectangle {
356+ anchors {
357+ top: parent.top
358+ left: parent.left
359+ right: parent.right
360+ }
361+ height: units.dp(1)
362+ color: Qt.darker(parent.color, 1.1)
363+ }
364+ }
365+
366+ Row {
367+ visible: bottomBorder.visible
368+ spacing: units.gu(.5)
369+ Repeater {
370+ objectName: "paginationRepeater"
371+ model: root.paginationCount
372+ Image {
373+ objectName: "paginationDots_" + index
374+ height: units.gu(1)
375+ width: height
376+ source: (index == root.paginationIndex) ? "graphics/pagination_dot_on.png" : "graphics/pagination_dot_off.png"
377+ }
378+ }
379+ anchors {
380+ top: headerContainer.bottom
381+ horizontalCenter: headerContainer.horizontalCenter
382+ topMargin: units.gu(.5)
383+ }
384+ }
385+
386+ // FIXME this doesn't work with solid scope backgrounds due to z-ordering
387+ Item {
388+ id: bottomHighlight
389+ visible: bottomBorder.visible
390+ anchors {
391+ top: bottomContainer.top
392+ left: parent.left
393+ right: parent.right
394+ }
395+ z: 1
396+ height: units.dp(1)
397+ opacity: 0.6
398+
399+ // FIXME this should be a shader when bottomItem exists
400+ // to support image backgrounds
401+ Rectangle {
402+ anchors.fill: parent
403+ color: if (bottomItem && bottomItem.background) {
404+ Qt.lighter(Qt.rgba(bottomItem.background.topColor.r,
405+ bottomItem.background.topColor.g,
406+ bottomItem.background.topColor.b, 1.0), 1.2);
407+ } else if (!bottomItem && scopeStyle) {
408+ Qt.lighter(Qt.rgba(scopeStyle.background.r, scopeStyle.background.g, scopeStyle.background.b, 1.0), 1.2);
409+ } else "#CCFFFFFF"
410+ }
357411 }
358412
359413 Item {
qml/Dash/PreviewListView.qml+13−1
@@ -23,9 +23,12 @@ import "Previews" as Previews
2323Item {
2424 id: root
2525
26+ property int initialIndex: -1
2627 property var scope: null
2728 property var scopeStyle: null
2829
30+ property alias showSignatureLine: header.showSignatureLine
31+
2932 property alias open: previewListView.open
3033 property alias model: previewListView.model
3134 property alias currentIndex: previewListView.currentIndex
@@ -35,6 +38,8 @@ Item {
3538 readonly property bool processing: currentItem && (!currentItem.previewModel.loaded
3639 || currentItem.previewModel.processingAction)
3740
41+ signal backClicked()
42+
3843 PageHeader {
3944 id: header
4045 objectName: "pageHeader"
@@ -44,7 +49,7 @@ Item {
4449 searchEntryEnabled: false
4550 scopeStyle: root.scopeStyle
4651
47− onBackClicked: root.open = false
52+ onBackClicked: root.backClicked()
4853 }
4954
5055 ListView {
@@ -78,6 +83,13 @@ Item {
7883 }
7984 }
8085
86+ onCountChanged: {
87+ if (count > 0 && initialIndex >= 0) {
88+ currentIndex = initialIndex;
89+ initialIndex = -1;
90+ }
91+ }
92+
8193 delegate: Previews.Preview {
8294 id: preview
8395 objectName: "preview" + index
qml/Dash/Previews/PreviewActionButton.qml+1−4
@@ -15,16 +15,13 @@
1515 */
1616
1717import QtQuick 2.0
18−import Ubuntu.Components 0.1
18+import Ubuntu.Components 1.1
1919
2020Button {
2121 signal triggeredAction(var actionData)
2222
2323 property var data: null
2424 objectName: "button" + (data && data.id || "")
25− color: Theme.palette.selected.foreground
2625 text: data && data.label || ""
27− iconSource: data && data.icon || ""
28− iconPosition: "left"
2926 onClicked: triggeredAction(data)
3027}
qml/Dash/Previews/PreviewActionCombo.qml+4−2
@@ -15,7 +15,7 @@
1515 */
1616
1717import QtQuick 2.0
18−import Ubuntu.Components 0.1
18+import Ubuntu.Components 1.1
1919
2020Item {
2121 id: root
@@ -25,6 +25,7 @@ Item {
2525 signal triggeredAction(var actionData)
2626
2727 property alias model: actionRepeater.model
28+ property alias strokeColor: moreButton.strokeColor
2829
2930 Button {
3031 id: moreButton
@@ -32,7 +33,7 @@ Item {
3233
3334 objectName: "moreLessButton"
3435 text: !expanded ? i18n.tr("More...") : i18n.tr("Less...")
35− color: Theme.palette.selected.foreground
36+ strokeColor: Theme.palette.normal.baseText
3637 onClicked: expanded = !expanded
3738 width: parent.width
3839 }
@@ -60,6 +61,7 @@ Item {
6061 data: modelData
6162 width: implicitWidth < parent.width ? parent.width : implicitWidth
6263 onClicked: root.triggeredAction(modelData)
64+ strokeColor: moreButton.strokeColor
6365 }
6466 }
6567 }
qml/Dash/Previews/PreviewActions.qml+6
@@ -46,6 +46,11 @@ PreviewWidget {
4646 item.model = row.actions.slice(1);
4747 }
4848 }
49+ Binding {
50+ target: loader.item
51+ property: "strokeColor"
52+ value: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
53+ }
4954 Connections {
5055 target: loader.item
5156 onTriggeredAction: {
@@ -59,6 +64,7 @@ PreviewWidget {
5964 visible: row.actions && row.actions.length > 0
6065 onTriggeredAction: root.triggered(root.widgetId, actionData.id, actionData)
6166 width: (root.width - units.gu(1)) / 2
67+ color: root.scopeStyle ? root.scopeStyle.previewButtonColor : Theme.palette.selected.foreground
6268 }
6369 }
6470}
qml/Dash/Previews/PreviewExpandable.qml+6−5
@@ -59,9 +59,10 @@ PreviewWidget {
5959 }
6060 Icon {
6161 anchors.fill: parent
62− width: 64
63− height: 64
62+ width: units.gu(3)
63+ height: units.gu(3)
6464 name: root.expanded ? "view-collapse" : "view-expand"
65+ color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
6566 }
6667 }
6768
@@ -80,9 +81,9 @@ PreviewWidget {
8081 delegate: PreviewWidgetFactory {
8182 height: visible ? implicitHeight : 0
8283 width: parent.width
83− widgetId: modelData.widgetId
84− widgetType: modelData.type
85− widgetData: modelData.properties
84+ widgetId: model.widgetId
85+ widgetType: model.type
86+ widgetData: model.properties
8687 isCurrentPreview: root.isCurrentPreview
8788 scopeStyle: root.scopeStyle
8889 anchors {
qml/Dash/Previews/PreviewPayments.qml+22−3
@@ -37,9 +37,15 @@ PreviewWidget {
3737
3838 color: Theme.palette.selected.foreground
3939 text: paymentClient.formattedPrice
40− onClicked: paymentClient.start()
40+ onClicked: {
41+ paymentClient.start();
42+ paymentButton.opacity = 0;
43+ }
4144 anchors.right: parent.right
4245 width: (root.width - units.gu(1)) / 2
46+ opacity: 1
47+ visible: paymentButton.opacity == 0 ? false : true
48+ Behavior on opacity { PropertyAnimation { duration: UbuntuAnimation.FastDuration } }
4349
4450 Payments {
4551 id: paymentClient
@@ -49,8 +55,21 @@ PreviewWidget {
4955 price: source["price"]
5056 currency: source["currency"]
5157 storeItemId: source["store_item_id"]
52− onPurchaseCompleted: root.triggered(widgetId, "purchaseCompleted", source)
53− onPurchaseError: root.triggered(widgetId, "purchaseError", source)
58+ onPurchaseCompleted: {
59+ root.triggered(widgetId, "purchaseCompleted", source);
60+ }
61+ onPurchaseError: {
62+ root.triggered(widgetId, "purchaseError", source);
63+ }
5464 }
5565 }
66+
67+ ProgressBar {
68+ id: loadingBar
69+ objectName: "loadingBar"
70+ indeterminate: true
71+ anchors.fill: paymentButton
72+ opacity: 1 - paymentButton.opacity
73+ visible: !paymentButton.visible
74+ }
5675}
qml/Dash/Previews/PreviewTable.qmlnew file+80
@@ -0,0 +1,80 @@
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 QtQuick.Layouts 1.1
19+import Ubuntu.Components 0.1
20+import "../../Components"
21+
22+/*! \brief Preview widget for table.
23+
24+ This widget shows two columns contained in widgetData["values"]
25+ as arrays of label,value along with a title that comes from widgetData["title"].
26+
27+ In case the widget is collapsed it only shows 3 lines of values.
28+ */
29+
30+PreviewWidget {
31+ id: root
32+ implicitHeight: column.implicitHeight
33+
34+ readonly property int maximumCollapsedRowCount: 3
35+
36+ Column {
37+ id: column
38+ objectName: "column"
39+ spacing: units.gu(1)
40+
41+ Label {
42+ id: titleLabel
43+ objectName: "titleLabel"
44+ anchors {
45+ left: parent.left
46+ right: parent.right
47+ }
48+ height: visible ? implicitHeight : 0
49+ fontSize: "large"
50+ color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
51+ visible: text !== ""
52+ opacity: .8
53+ text: widgetData["title"] || ""
54+ }
55+
56+ GridLayout {
57+ objectName: "gridLayout"
58+ columns: 2
59+ columnSpacing: units.gu(2)
60+ Repeater {
61+ id: rowsRepeater
62+ model: widgetData["values"]
63+
64+ delegate: Repeater {
65+ id: perRowRepeater
66+ readonly property int rowIndex: index
67+ model: widgetData["values"][index]
68+ delegate: Label {
69+ objectName: "label"+rowIndex+index
70+ fontSize: "small"
71+ text: perRowRepeater.model[index]
72+ visible: root.expanded || rowIndex < maximumCollapsedRowCount
73+ color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
74+ font.bold: index == 0
75+ }
76+ }
77+ }
78+ }
79+ }
80+}
qml/Dash/Previews/PreviewWidgetFactory.qml+2−1
@@ -58,6 +58,7 @@ Loader {
5858 case "payments": return "PreviewPayments.qml";
5959 case "rating-input": return "PreviewRatingInput.qml";
6060 case "reviews": return "PreviewRatingDisplay.qml";
61+ case "table": return "PreviewTable.qml";
6162 case "text": return "PreviewTextSummary.qml";
6263 case "video": return "PreviewVideoPlayback.qml";
6364 default: return "";
@@ -70,7 +71,7 @@ Loader {
7071 item.widgetData = Qt.binding(function() { return root.widgetData } )
7172 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
7273 item.expanded = Qt.binding(function() { return root.expanded } )
73− if (item.hasOwnProperty("scopeStyle")) item.scopeStyle = root.scopeStyle;
74+ item.scopeStyle = Qt.binding(function() { return root.scopeStyle } )
7475 }
7576
7677 Connections {
qml/Dash/ScopeSettings/ScopeSetting.qmlnew file+37
@@ -0,0 +1,37 @@
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.2
18+import Ubuntu.Components 1.1
19+
20+/*! Interface for settings widgets. */
21+
22+Item {
23+ //! The ScopeStyle component.
24+ property var scopeStyle: null
25+
26+ //! Variable used to contain widget's data
27+ property var widgetData: null
28+
29+ /*! \brief This signal should be emitted when a setting action was updated.
30+ *
31+ * \param value the new setting value.
32+ */
33+ signal updated(var value)
34+
35+ //! \internal
36+ readonly property real settingMargins: units.gu(2)
37+}
qml/Dash/ScopeSettings/ScopeSettingBoolean.qmlnew file+61
@@ -0,0 +1,61 @@
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.2
18+import Ubuntu.Components 1.1
19+import Ubuntu.Components.ListItems 1.0 as ListItem
20+
21+ScopeSetting {
22+ id: root
23+ height: listItem.height
24+
25+ ListItem.Empty {
26+ id: listItem
27+
28+ onClicked: {
29+ control.checked = !control.checked;
30+ updated(control.checked);
31+ }
32+
33+ Label {
34+ anchors {
35+ left: parent.left
36+ leftMargin: settingMargins
37+ right: control.left
38+ rightMargin: units.gu(1)
39+ verticalCenter: parent.verticalCenter
40+ }
41+ text: widgetData.displayName
42+ elide: Text.ElideMiddle
43+ maximumLineCount: 2
44+ wrapMode: Text.Wrap
45+ color: scopeStyle ? scopeStyle.foreground : Theme.palette.normal.baseText
46+ }
47+
48+ CheckBox {
49+ id: control
50+ objectName: "control"
51+ anchors {
52+ right: parent.right
53+ rightMargin: settingMargins
54+ verticalCenter: parent.verticalCenter
55+ }
56+ checked: widgetData.value
57+
58+ onTriggered: root.updated(checked)
59+ }
60+ }
61+}
qml/Dash/ScopeSettings/ScopeSettingList.qmlnew 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
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.2
18+import Ubuntu.Components 1.1
19+import Ubuntu.Components.ListItems 1.0 as ListItem
20+
21+ScopeSetting {
22+ id: root
23+
24+ // FIXME workaround for: https://bugs.launchpad.net/ubuntu/+source/ubuntu-ui-toolkit/+bug/1355830
25+ height: listItem.currentlyExpanded ? listItem.itemHeight * widgetData.properties["values"].length + units.gu(6) : listItem.height
26+
27+ property int initialValue: -1
28+
29+ ListItem.ItemSelector {
30+ id: listItem
31+ objectName: "control"
32+ anchors {
33+ left: parent.left
34+ right: parent.right
35+ }
36+ text: widgetData.displayName
37+ model: widgetData.properties["values"]
38+
39+ onSelectedIndexChanged: {
40+ if (root.initialValue >= 0) {
41+ var tmpValue = root.initialValue;
42+ root.initialValue = -1;
43+ selectedIndex = tmpValue;
44+ return;
45+ }
46+
47+ root.updated(selectedIndex);
48+ }
49+ }
50+}
tests/mocks/Unity/Application/OSKController.qml → qml/Dash/ScopeSettings/ScopeSettingNumber.qmlrenamed+4−3
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -14,7 +14,8 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−import QtQuick 2.0;
17+import QtQuick 2.2
1818
19−Item {
19+ScopeSettingString {
20+ mode: "number"
2021}
qml/Dash/ScopeSettings/ScopeSettingString.qmlnew file+83
@@ -0,0 +1,83 @@
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.2
18+import Ubuntu.Components 1.1
19+import Ubuntu.Components.ListItems 1.0 as ListItem
20+
21+ScopeSetting {
22+ id: root
23+ height: listItem.height
24+
25+ property string mode: "string"
26+
27+ ListItem.Empty {
28+ id: listItem
29+ onClicked: {
30+ control.forceActiveFocus();
31+ control.selectAll();
32+ }
33+
34+ Label {
35+ id: label
36+ anchors {
37+ left: parent.left
38+ leftMargin: settingMargins
39+ right: control.left
40+ rightMargin: units.gu(1)
41+ verticalCenter: parent.verticalCenter
42+ }
43+ text: widgetData.displayName
44+ elide: Text.ElideMiddle
45+ maximumLineCount: 2
46+ wrapMode: Text.Wrap
47+ color: scopeStyle ? scopeStyle.foreground : Theme.palette.normal.baseText
48+ }
49+
50+ TextField {
51+ id: control
52+ objectName: "control"
53+ anchors {
54+ right: parent.right
55+ rightMargin: settingMargins
56+ verticalCenter: parent.verticalCenter
57+ }
58+ width: root.mode == "number" ? units.gu(8) : units.gu(12)
59+ text: widgetData.value
60+ color: scopeStyle ? scopeStyle.foreground : Theme.palette.normal.fieldText
61+ validator: root.mode == "number" ? doubleValidator : null
62+ hasClearButton: root.mode == "number" ? false : true
63+
64+ DoubleValidator {
65+ id: doubleValidator
66+ }
67+
68+ function updateText() {
69+ if (acceptableInput) {
70+ text = displayText;
71+ root.updated(text);
72+ }
73+ }
74+
75+ onAccepted: updateText()
76+ onActiveFocusChanged: {
77+ if (!activeFocus) {
78+ updateText();
79+ }
80+ }
81+ }
82+ }
83+}
qml/Dash/ScopeSettings/ScopeSettingsWidgetFactory.qmlnew file+57
@@ -0,0 +1,57 @@
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.2
18+
19+//! \brief This component loads the widgets based on type.
20+
21+Loader {
22+ id: root
23+
24+ //! The ScopeStyle component.
25+ property var scopeStyle: null
26+
27+ //! Variable used to contain widget's data
28+ property var widgetData: null
29+
30+ //! Triggered signal forwarded from the widgets.
31+ signal updated(var value)
32+
33+ source: widgetSource
34+
35+ //! \cond private
36+ property url widgetSource: {
37+ switch (widgetData.type) {
38+ case "boolean": return "ScopeSettingBoolean.qml";
39+ case "list": return "ScopeSettingList.qml";
40+ case "number": return "ScopeSettingNumber.qml";
41+ case "string": return "ScopeSettingString.qml";
42+ default: return "";
43+ }
44+ }
45+ //! \endcond
46+
47+ onLoaded: {
48+ if (item.hasOwnProperty("initialValue")) item.initialValue = root.widgetData.value;
49+ item.widgetData = Qt.binding(function() { return root.widgetData; } )
50+ item.scopeStyle = Qt.binding(function() { return root.scopeStyle; } )
51+ }
52+
53+ Connections {
54+ target: root.item
55+ onUpdated: if (value !== widgetData.value) root.updated(value)
56+ }
57+}
qml/Dash/ScopeSettingsPage.qmlnew file+62
@@ -0,0 +1,62 @@
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.2
18+import Ubuntu.Components 1.1
19+import Unity 0.2
20+import "../Components"
21+import "ScopeSettings"
22+
23+Item {
24+ id: root
25+
26+ property var scope: null
27+ property var scopeStyle: null
28+
29+ signal backClicked()
30+
31+ PageHeader {
32+ id: header
33+ objectName: "pageHeader"
34+ width: parent.width
35+ title: scope ? scope.name : ""
36+ showBackButton: true
37+ scopeStyle: root.scopeStyle
38+
39+ onBackClicked: root.backClicked()
40+ }
41+
42+ ListView {
43+ id: scopeSettings
44+ objectName: "scopeSettings"
45+ anchors {
46+ top: header.bottom
47+ bottom: parent.bottom
48+ left: parent.left
49+ right: parent.right
50+ }
51+ model: root.scope ? root.scope.settings : null
52+
53+ delegate: ScopeSettingsWidgetFactory {
54+ objectName: "scopeSettingItem" + index
55+ width: root.width
56+ widgetData: model
57+ scopeStyle: root.scopeStyle
58+
59+ onUpdated: model.value = value;
60+ }
61+ }
62+}
qml/Dash/ScopesOverview.qml+22−1
@@ -148,7 +148,12 @@ Item {
148148
149149 ScopeStyle {
150150 id: overviewScopeStyle
151− style: { "foreground-color" : "white", "background-color" : "transparent" }
151+ style: { "foreground-color" : "white",
152+ "background-color" : "transparent",
153+ "page-header": {
154+ "background": "color:///transparent"
155+ }
156+ }
152157 }
153158
154159 DashBackground {
@@ -458,10 +463,13 @@ Item {
458463 objectName: "scopesOverviewPreviewListView"
459464 scope: root.scope
460465 scopeStyle: overviewScopeStyle
466+ showSignatureLine: false
461467 visible: x != width
462468 width: parent.width
463469 height: parent.height
464470 anchors.left: scopesOverviewContent.right
471+
472+ onBackClicked: open = false
465473 }
466474
467475 Item {
@@ -535,6 +543,19 @@ Item {
535543 scopesOverviewXYScaler.opacity = 0;
536544 middleItems.overrideOpacity = -1;
537545 }
546+ // TODO Add tests for these connections
547+ Connections {
548+ target: tempScopeItem.scope
549+ onOpenScope: {
550+ // TODO Animate the newly opened scope into the foreground (stacked on top of the current scope)
551+ tempScopeItem.scope = scope;
552+ }
553+ onGotoScope: {
554+ tempScopeItem.backClicked();
555+ root.currentTab = 0;
556+ root.scope.gotoScope(scopeId);
557+ }
558+ }
538559 }
539560 }
540561}
qml/Dash/graphics/PageHeaderBaseDivider@18.pngdeleted

Binary file not shown.

qml/Dash/graphics/PageHeaderBaseDivider@18.scideleted−5
@@ -1,5 +0,0 @@
1−border.top: 4
2−border.bottom: 4
3−border.left: 0
4−border.right: 0
5−source: PageHeaderBaseDivider@18.png
qml/Dash/graphics/navigation_shadow@18.pngnew file

Binary file not shown.

qml/Dash/graphics/navigation_shadow_light@18.pngnew file

Binary file not shown.

qml/Dash/graphics/phone/screenshots/vkb_portrait.png

Binary file not shown.

qml/Greeter/Clock.qml+2−1
@@ -16,6 +16,7 @@
1616
1717import QtQuick 2.0
1818import Ubuntu.Components 0.1
19+import "../Panel/Indicators"
1920import Unity.Indicators 0.1 as Indicators
2021
2122Item {
@@ -33,7 +34,7 @@ Item {
3334 }
3435 }
3536
36− Indicators.CachedUnityMenuModel {
37+ CachedUnityMenuModel {
3738 id: timeModel
3839 objectName: "timeModel"
3940
qml/Greeter/GreeterContent.qml−1
@@ -87,7 +87,6 @@ Item {
8787
8888 onLoaded: {
8989 item.currentIndex = greeterContentLoader.currentIndex;
90− item.resetAuthentication();
9190 }
9291
9392 Binding {
qml/Notifications/Notification.qml+4−3
@@ -52,7 +52,7 @@ Item {
5252 implicitHeight: type !== Notification.PlaceHolder ? (fullscreen ? maxHeight : contentColumn.height + contentColumn.spacing * 2) : 0
5353
5454 color: Qt.rgba(0.132, 0.117, 0.109, 0.97)
55− opacity: 0
55+ opacity: 1 // FIXME: 1 because of LP: #1354406 workaround, has to be 0 really
5656
5757 state: {
5858 var result = "";
@@ -82,7 +82,8 @@ Item {
8282 source: hints["suppress-sound"] != "true" && hints["sound-file"] != undefined ? hints["sound-file"] : ""
8383 }
8484
85− onOpacityChanged: {
85+ // FIXME: using onCompleted because of LP: #1354406 workaround, has to be onOpacityChanged really
86+ Component.onCompleted: {
8687 if (opacity == 1.0 && hints["suppress-sound"] != "true" && sound.source) {
8788 sound.play();
8889 }
@@ -380,7 +381,7 @@ Item {
380381 id: comboRepeater
381382
382383 onVisibleChanged: {
383− comboButton.text = comboRepeater.itemAt(2).actionLabel
384+ comboButton.text = comboRepeater.count >= 3 ? comboRepeater.itemAt(2).actionLabel : ""
384385 }
385386
386387 model: notification.actions
qml/Notifications/NotificationMenuItemFactory.qml+9−1
@@ -117,7 +117,10 @@ Loader {
117117 right: parent.right
118118 }
119119 height: menuFactory.maxHeight
120− placeholderText: i18n.tr("Please enter SIM PIN")
120+ infoText: i18n.tr("Enter SIM PIN")
121+ errorText: i18n.tr("Sorry, incorrect PIN")
122+ minPinLength: 4
123+ maxPinLength: 8
121124 background: shell.background
122125
123126 onEntered: {
@@ -127,6 +130,11 @@ Loader {
127130 onCancel: {
128131 menuModel.activate(menuIndex, false);
129132 }
133+
134+ onEmergencyCall: {
135+ shell.activateApplication("dialer-app")
136+ menuModel.activate(menuIndex, false)
137+ }
130138 }
131139 }
132140}
qml/Notifications/Notifications.qml+5−3
@@ -63,7 +63,8 @@ ListView {
6363
6464 // make sure there's no opacity-difference between the several
6565 // elements in a notification
66− layer.enabled: add.running || remove.running || populate.running
66+ // FIXME: disabled all transitions because of LP: #1354406 workaround
67+ //layer.enabled: add.running || remove.running || populate.running
6768
6869 Component.onCompleted: {
6970 if (index == 1) {
@@ -79,7 +80,8 @@ ListView {
7980 }
8081 }
8182
82− populate: Transition {
83+ // FIXME: disabled all transitions because of LP: #1354406 workaround
84+ /*populate: Transition {
8385 UbuntuNumberAnimation {
8486 property: "opacity"
8587 to: 1
@@ -107,5 +109,5 @@ ListView {
107109 properties: "x,y"
108110 duration: UbuntuAnimation.SnapDuration
109111 }
110− }
112+ }*/
111113}
tests/mocks/Unity/Indicators/CachedUnityMenuModel.qml → qml/Panel/Indicators/CachedUnityMenuModel.qmlrenamed+14−5
@@ -18,13 +18,22 @@
1818 */
1919
2020import QtQuick 2.0
21+import QMenuModel 0.1
22+import Unity.Indicators 0.1 as Indicators
2123
24+// Make sure we don't duplicate models.
2225Item {
23− property string busName: ""
24− property string actionsObjectPath: ""
25− property string menuObjectPath: ""
26+ id: cachedModel
27+ property string busName
28+ property string actionsObjectPath
29+ property string menuObjectPath
30+ readonly property bool ready: busName!=="" && actionsObjectPath!=="" && menuObjectPath!==""
2631
27− readonly property bool ready: false
32+ property var model: {
33+ if (!ready) return null;
2834
29− property QtObject model: null
35+ return Indicators.UnityMenuModelCache.model(cachedModel.busName,
36+ cachedModel.menuObjectPath,
37+ { "indicator": cachedModel.actionsObjectPath });
38+ }
3039}
qml/Panel/Indicators/DefaultIndicatorWidget.qml+2−1
@@ -63,6 +63,7 @@ IndicatorBase {
6363 }
6464
6565 Row {
66+ id: iconRow
6667 anchors {
6768 top: parent.top
6869 bottom: parent.bottom
@@ -73,7 +74,7 @@ IndicatorBase {
7374
7475 Item {
7576 width: itemImage.width + units.gu(1)
76− anchors { top: parent.top; bottom: parent.bottom }
77+ height: iconRow.height
7778
7879 StatusIcon {
7980 id: itemImage
qml/Panel/Indicators/IndicatorBase.qml+4−2
@@ -34,6 +34,7 @@ Item {
3434 property string deviceMenuObjectPath: menuObjectPath
3535
3636 property alias menuModel: cachedModel.model
37+ property alias rootActionState: rootAction
3738
3839 CachedUnityMenuModel {
3940 id: cachedModel
@@ -42,8 +43,9 @@ Item {
4243 menuObjectPath: indicatorItem.deviceMenuObjectPath
4344 }
4445
45− property RootActionState rootActionState: RootActionState {
46− menu: menuModel
46+ RootActionState {
47+ id: rootAction
48+ menu: menuModel ? menuModel : null
4749 onUpdated: indicatorItem.rootActionStateChanged()
4850 }
4951}
qml/Shell.qml+17−7
@@ -22,6 +22,7 @@ import Ubuntu.Components 0.1
2222import Ubuntu.Components.Popups 1.0
2323import Ubuntu.Gestures 0.1
2424import Ubuntu.SystemImage 0.1
25+import Unity.Connectivity 0.1
2526import Unity.Launcher 0.1
2627import Utils 0.1
2728import LightDM 0.1 as LightDM
@@ -273,15 +274,19 @@ Item {
273274
274275 onShowPrompt: {
275276 if (greeter.narrowMode) {
276− var promptText = text.toLowerCase()
277277 if (isDefaultPrompt) {
278− promptText = lockscreen.alphaNumeric ?
279− i18n.tr("passphrase") : i18n.tr("passcode")
278+ if (lockscreen.alphaNumeric) {
279+ lockscreen.infoText = i18n.tr("Enter your passphrase")
280+ lockscreen.errorText = i18n.tr("Sorry, incorrect passphrase")
281+ } else {
282+ lockscreen.infoText = i18n.tr("Enter your passcode")
283+ lockscreen.errorText = i18n.tr("Sorry, incorrect passcode")
284+ }
285+ } else {
286+ lockscreen.infoText = i18n.tr("Enter your %1").arg(text.toLowerCase())
287+ lockscreen.errorText = i18n.tr("Sorry, incorrect %1").arg(text.toLowerCase())
280288 }
281− lockscreen.placeholderText = i18n.tr("Enter your %1").arg(promptText)
282− lockscreen.wrongPlaceholderText = i18n.tr("Incorrect %1").arg(promptText) +
283− "\n" +
284− i18n.tr("Please re-enter")
289+
285290 lockscreen.show();
286291 }
287292 }
@@ -416,6 +421,11 @@ Item {
416421 }
417422 }
418423
424+ /* TODO re-enable when the corresponding changes in the service land (LP: #1361074)
425+ Component.onCompleted: {
426+ Connectivity.unlockAllModems()
427+ } */
428+
419429 onUnlocked: greeter.hide()
420430 onSelected: {
421431 // Update launcher items for new user
qml/Stages/AppSurfaceContainer.qmldeleted−141
@@ -1,141 +0,0 @@
1−/*
2− * Copyright 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 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−
17−import QtQuick 2.2
18−import Ubuntu.Components 1.1
19−import "Animations"
20−
21−SurfaceContainer {
22− id: container
23− property var promptSurfaces
24−
25− property bool appHasCreatedASurface: false
26− property real maximizedAppTopMargin
27−
28− onSurfaceChanged: {
29− if (surface) {
30− if (!appHasCreatedASurface) {
31− surface.visible = false; // hide until splash screen removed
32− appHasCreatedASurface = true;
33− }
34− }
35− }
36−
37− function revealSurface() {
38− revealAnimation.start();
39− }
40−
41− SequentialAnimation {
42− id: revealAnimation
43−
44− PropertyAction {
45− target: surface
46− property: "opacity"
47− value: 0.0
48− }
49− PropertyAction {
50− target: surface
51− property: "visible"
52− value: true
53− }
54− OpacityAnimator {
55− duration: UbuntuAnimation.FastDuration
56− easing: UbuntuAnimation.StandardEasing
57− target: surface
58− from: 0.0
59− to: 1.0
60− }
61− PropertyAction {
62− target: splashLoader
63− property: "source"
64− value: ""
65− }
66− }
67−
68− Timer { //FIXME - need to delay removing splash screen to allow surface resize to complete
69− id: surfaceRevealDelay
70− interval: 400
71− onTriggered: surfaceContainer.revealSurface()
72− }
73−
74− Loader {
75− id: splashLoader
76− anchors.fill: parent
77− anchors.topMargin: maximizedAppTopMargin
78− z: 0 // so that it is under the surface
79− }
80−
81− Repeater {
82− model: container.promptSurfaces
83−
84− delegate: SurfaceContainer {
85− anchors {
86− fill: container
87− topMargin: container.surface.anchors.topMargin
88− rightMargin: container.surface.anchors.rightMargin
89− bottomMargin: container.surface.anchors.bottomMargin
90− leftMargin: container.surface.anchors.leftMargin
91− }
92−
93− z: 4 + index
94− surface: modelData
95−
96− Component.onCompleted: {
97− animateIn();
98− }
99− }
100− }
101−
102− StateGroup {
103− id: appSurfaceState
104− states: [
105− State {
106− name: "noSurfaceYet"
107− when: !surfaceContainer.appHasCreatedASurface
108− StateChangeScript {
109− script: {
110− var properties = { "title": model.splashTitle ? model.splashTitle : model.name,
111− "image": model.splashImage,
112− "showHeader": model.splashShowHeader
113− };
114−
115− if (model.splashColor.a == 1) {
116− properties["backgroundColor"] = model.splashColor;
117− }
118− if (model.splashColorHeader.a == 1) {
119− properties["headerColor"] = model.splashColorHeader;
120− }
121− if (model.splashColorFooter.a == 1) {
122− properties["footerColor"] = model.splashColorFooter;
123− }
124− splashLoader.setSource("Splash.qml", properties);
125− }
126− }
127− },
128− State {
129− name: "hasSurface"
130− when: surfaceContainer.appHasCreatedASurface && (surfaceContainer.surface !== null)
131− StateChangeScript { script: { surfaceRevealDelay.start(); } }
132− },
133− State {
134− name: "surfaceLostButAppStillAlive"
135− when: surfaceContainer.appHasCreatedASurface && (surfaceContainer.surface === null)
136− // TODO - use app snapshot
137− }
138− ]
139− state: "noSurfaceYet"
140− }
141−}
qml/Stages/ApplicationWindow.qmlnew file+258
@@ -0,0 +1,258 @@
1+/*
2+ * Copyright 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 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+
17+import QtQuick 2.0
18+import Ubuntu.Components 1.1
19+import Unity.Application 0.1
20+
21+Item {
22+ id: root
23+
24+ // to be read from outside
25+ readonly property bool fullscreen: application ? application.fullscreen : false
26+
27+ // to be set from outside
28+ property bool interactive: true
29+ property QtObject application
30+
31+ QtObject {
32+ id: d
33+
34+ // helpers so that we don't have to check for the existence of an application everywhere
35+ // (in order to avoid breaking qml binding due to a javascript exception)
36+ readonly property string name: root.application ? root.application.name : ""
37+ readonly property url icon: root.application ? root.application.icon : ""
38+ readonly property Item surface: root.application ? root.application.surface : null
39+ readonly property int applicationState: root.application ? root.application.state : -1
40+ readonly property var promptSurfaces: root.application ? root.application.promptSurfaces : null
41+
42+ // Whether the Application had a surface before but lost it.
43+ property bool hadSurface: false
44+
45+ property bool needToTakeScreenshot:
46+ d.surface && d.surfaceInitialized && screenshotImage.status === Image.Null
47+ && d.applicationState === ApplicationInfo.Stopped
48+ onNeedToTakeScreenshotChanged: {
49+ if (needToTakeScreenshot) {
50+ screenshotImage.take();
51+ }
52+ }
53+
54+ //FIXME - this is a hack to avoid the first few rendered frames as they
55+ // might show the UI accommodating due to surface resizes on startup.
56+ // Remove this when possible
57+ property bool surfaceInitialized: false
58+ onSurfaceChanged: {
59+ if (surface) {
60+ surfaceInitTimer.start();
61+ } else {
62+ hadSurface = true;
63+ surfaceInitialized = false;
64+ }
65+ }
66+ }
67+
68+ Timer {
69+ id: surfaceInitTimer
70+ interval: 100
71+ onTriggered: { if (d.surface) {d.surfaceInitialized = true;} }
72+ }
73+
74+ Binding {
75+ target: d.surface
76+ when: d.surface
77+ property: "enabled"
78+ value: root.interactive
79+ }
80+ Binding {
81+ target: d.surface
82+ when: d.surface
83+ property: "focus"
84+ value: root.interactive
85+ }
86+ Connections {
87+ target: d.surface
88+ // FIXME: I would rather not need to do this, but currently it doesn't get
89+ // active focus without it and I don't know why.
90+ onFocusChanged: forceSurfaceActiveFocusIfReady();
91+ onParentChanged: forceSurfaceActiveFocusIfReady();
92+ onEnabledChanged: forceSurfaceActiveFocusIfReady();
93+ function forceSurfaceActiveFocusIfReady() {
94+ if (d.surface.focus && d.surface.parent === surfaceContainer && d.surface.enabled) {
95+ d.surface.forceActiveFocus();
96+ }
97+ }
98+ }
99+
100+ SurfaceContainer {
101+ id: surfaceContainer
102+ objectName: "surfaceContainer"
103+ anchors.fill: parent
104+ surface: d.surface
105+ }
106+
107+ Image {
108+ id: screenshotImage
109+ objectName: "screenshotImage"
110+ source: ""
111+ anchors.fill: parent
112+
113+ function take() {
114+ // Format: "image://application/$APP_ID/$CURRENT_TIME_MS"
115+ // eg: "image://application/calculator-app/123456"
116+ var timeMs = new Date().getTime();
117+ source = "image://application/" + root.application.appId + "/" + timeMs;
118+ }
119+
120+ // Save memory by using a half-resolution (thus quarter size) screenshot
121+ sourceSize.width: root.width / 2
122+ sourceSize.height: root.height / 2
123+ }
124+
125+ Loader {
126+ id: splashLoader
127+ visible: active
128+ active: false
129+ anchors.fill: surfaceContainer
130+ sourceComponent: Component {
131+ Splash { name: d.name; image: d.icon }
132+ }
133+ }
134+
135+ Repeater {
136+ model: d.promptSurfaces
137+
138+ delegate: SurfaceContainer {
139+ anchors {
140+ fill: surfaceContainer
141+ }
142+
143+ surface: modelData
144+
145+ Component.onCompleted: {
146+ animateIn();
147+ }
148+ }
149+ }
150+
151+ StateGroup {
152+ objectName: "applicationWindowStateGroup"
153+ states: [
154+ State {
155+ name: "void"
156+ when:
157+ d.hadSurface && (!d.surface || !d.surfaceInitialized)
158+ &&
159+ screenshotImage.status !== Image.Ready
160+ },
161+ State {
162+ name: "splashScreen"
163+ when:
164+ !d.hadSurface && (!d.surface || !d.surfaceInitialized)
165+ &&
166+ screenshotImage.status !== Image.Ready
167+ },
168+ State {
169+ name: "surface"
170+ when:
171+ (d.surface && d.surfaceInitialized)
172+ &&
173+ (d.applicationState !== ApplicationInfo.Stopped
174+ || screenshotImage.status !== Image.Ready)
175+ },
176+ State {
177+ name: "screenshot"
178+ when:
179+ screenshotImage.status === Image.Ready
180+ &&
181+ (d.applicationState === ApplicationInfo.Stopped
182+ || !d.surface || !d.surfaceInitialized)
183+ }
184+ ]
185+
186+ transitions: [
187+ Transition {
188+ from: ""; to: "splashScreen"
189+ PropertyAction { target: splashLoader; property: "active"; value: true }
190+ },
191+ Transition {
192+ from: "splashScreen"; to: "surface"
193+ SequentialAnimation {
194+ PropertyAction { target: surfaceContainer
195+ property: "visible"; value: true }
196+ UbuntuNumberAnimation { target: splashLoader; property: "opacity";
197+ from: 1.0; to: 0.0
198+ duration: UbuntuAnimation.BriskDuration }
199+ PropertyAction { target: splashLoader; property: "active"; value: false }
200+ }
201+ },
202+ Transition {
203+ from: "surface"; to: "splashScreen"
204+ SequentialAnimation {
205+ PropertyAction { target: splashLoader; property: "active"; value: true }
206+ PropertyAction { target: surfaceContainer
207+ property: "visible"; value: true }
208+ UbuntuNumberAnimation { target: splashLoader; property: "opacity";
209+ from: 0.0; to: 1.0
210+ duration: UbuntuAnimation.BriskDuration }
211+ }
212+ },
213+ Transition {
214+ from: "surface"; to: "screenshot"
215+ SequentialAnimation {
216+ PropertyAction { target: screenshotImage
217+ property: "visible"; value: true }
218+ UbuntuNumberAnimation { target: screenshotImage; property: "opacity";
219+ from: 0.0; to: 1.0
220+ duration: UbuntuAnimation.BriskDuration }
221+ PropertyAction { target: surfaceContainer
222+ property: "visible"; value: false }
223+ ScriptAction { script: { if (d.surface) { d.surface.release(); } } }
224+ }
225+ },
226+ Transition {
227+ from: "screenshot"; to: "surface"
228+ SequentialAnimation {
229+ PropertyAction { target: surfaceContainer
230+ property: "visible"; value: true }
231+ UbuntuNumberAnimation { target: screenshotImage; property: "opacity";
232+ from: 1.0; to: 0.0
233+ duration: UbuntuAnimation.BriskDuration }
234+ PropertyAction { target: screenshotImage; property: "visible"; value: false }
235+ PropertyAction { target: screenshotImage; property: "source"; value: "" }
236+ }
237+ },
238+ Transition {
239+ from: "surface"; to: "void"
240+ SequentialAnimation {
241+ PropertyAction { target: surfaceContainer; property: "visible"; value: false }
242+ ScriptAction { script: { if (d.surface) { d.surface.release(); } } }
243+ }
244+ },
245+ Transition {
246+ from: "void"; to: "surface"
247+ SequentialAnimation {
248+ PropertyAction { target: surfaceContainer; property: "opacity"; value: 0.0 }
249+ PropertyAction { target: surfaceContainer; property: "visible"; value: true }
250+ UbuntuNumberAnimation { target: surfaceContainer; property: "opacity";
251+ from: 0.0; to: 1.0
252+ duration: UbuntuAnimation.BriskDuration }
253+ }
254+ }
255+ ]
256+ }
257+
258+}
qml/Stages/PhoneStage.qml+16−4
@@ -110,7 +110,8 @@ Rectangle {
110110 id: spreadView
111111 objectName: "spreadView"
112112 anchors.fill: parent
113− interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1) && draggedIndex == -1
113+ interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1)
114+ && draggedDelegateCount === 0
114115 contentWidth: spreadRow.width - shift
115116 contentX: -shift
116117
@@ -148,7 +149,7 @@ Rectangle {
148149 property int phase: 0
149150
150151 property int selectedIndex: -1
151− property int draggedIndex: -1
152+ property int draggedDelegateCount: 0
152153 property int closingIndex: -1
153154
154155 property bool focusChanging: false
@@ -269,7 +270,7 @@ Rectangle {
269270 swipeToCloseEnabled: spreadView.interactive
270271 maximizedAppTopMargin: root.maximizedAppTopMargin
271272 dropShadow: spreadView.active ||
272− priv.focusedAppDelegate.x !== 0
273+ (priv.focusedAppDelegate && priv.focusedAppDelegate.x !== 0)
273274
274275 readonly property bool isDash: model.appId == "unity8-dash"
275276
@@ -290,6 +291,10 @@ Rectangle {
290291 // Otherwise line up for the spread
291292 return spreadView.width + (index - 1) * spreadView.tileDistance;
292293 }
294+
295+ application: ApplicationManager.get(index)
296+ closeable: !isDash
297+
293298 property real behavioredIndex: index
294299 Behavior on behavioredIndex {
295300 enabled: spreadView.closingIndex >= 0
@@ -372,8 +377,15 @@ Rectangle {
372377 }
373378 }
374379
380+ onDraggedChanged: {
381+ if (dragged) {
382+ spreadView.draggedDelegateCount++;
383+ } else {
384+ spreadView.draggedDelegateCount--;
385+ }
386+ }
387+
375388 onClosed: {
376− spreadView.draggedIndex = -1;
377389 spreadView.closingIndex = index;
378390 ApplicationManager.stopApplication(ApplicationManager.get(index).appId);
379391 }
qml/Stages/SpreadDelegate.qml+33−63
@@ -14,98 +14,66 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 *
1616 * Authors: Michael Zanetti <michael.zanetti@canonical.com>
17−*/
17+ * Daniel d'Andrada <daniel.dandrada@canonical.com>
18+ */
1819
1920import QtQuick 2.0
20−import Unity.Application 0.1
2121import Ubuntu.Components 1.1
2222import "../Components"
2323
2424Item {
2525 id: root
2626
27+ // to be read from outside
28+ readonly property bool dragged: dragArea.moving
29+ signal clicked()
30+ signal closed()
31+
2732 // to be set from outside
2833 property bool interactive: true
2934 property bool dropShadow: true
3035 property real maximizedAppTopMargin
3136 property alias swipeToCloseEnabled: dragArea.enabled
37+ property bool closeable
38+ property alias application: appWindow.application
3239
33− readonly property bool isFullscreen: surface !== null && surfaceContainer.surface.anchors.topMargin == 0
34−
35− signal clicked()
36− signal closed()
37−
38− AppSurfaceContainer {
39− id: surfaceContainer
40− objectName: "surfaceContainer"
41− anchors.fill: parent
42− surface: model.surface
43− maximizedAppTopMargin: root.maximizedAppTopMargin
44− promptSurfaces: model.application.promptSurfaces
45−
46− Binding {
47− target: surfaceContainer.surface
48− property: "anchors.topMargin"
49− value: {
50− return surfaceContainer.surface.state === MirSurfaceItem.Fullscreen ? 0 : maximizedAppTopMargin;
51− }
52− }
40+ Item {
41+ objectName: "appWindowWithShadow"
5342
54− Binding {
55− target: surface
56− property: "enabled"
57− value: root.interactive
58− }
59− Binding {
60− target: surface
61− property: "focus"
62− value: root.interactive
63− }
43+ y: dragArea.distance
44+ width: parent.width
45+ height: parent.height
6446
65− Connections {
66− target: surface
67− // FIXME: I would rather not need to do this, but currently it doesn't get
68− // active focus without it and I don't know why.
69− onFocusChanged: forceSurfaceActiveFocusIfReady();
70− onParentChanged: forceSurfaceActiveFocusIfReady();
71− onEnabledChanged: forceSurfaceActiveFocusIfReady();
72− function forceSurfaceActiveFocusIfReady() {
73− if (surface.focus && surface.parent === surfaceContainer && surface.enabled) {
74− surface.forceActiveFocus();
75− }
47+ BorderImage {
48+ anchors {
49+ fill: appWindow
50+ margins: -units.gu(2)
7651 }
52+ source: "graphics/dropshadow2gu.sci"
53+ opacity: root.dropShadow ? .3 : 0
54+ Behavior on opacity { UbuntuNumberAnimation {} }
7755 }
7856
79− BorderImage {
80− id: dropShadowImage
57+ ApplicationWindow {
58+ id: appWindow
8159 anchors {
8260 fill: parent
83− leftMargin: -units.gu(2)
84− rightMargin: -units.gu(2)
85− bottomMargin: -units.gu(2)
86− topMargin: -units.gu(2) + (root.isFullscreen ? 0 : maximizedAppTopMargin)
61+ topMargin: appWindow.fullscreen ? 0 : maximizedAppTopMargin
8762 }
88− source: "graphics/dropshadow.png"
89− border { left: 50; right: 50; top: 50; bottom: 50 }
90− opacity: root.dropShadow ? .4 : 0
91− Behavior on opacity { UbuntuNumberAnimation {} }
92− }
9363
94− transform: Translate {
95− y: dragArea.distance
64+ interactive: root.interactive
9665 }
9766 }
9867
9968 DraggingArea {
10069 id: dragArea
70+ objectName: "dragArea"
10171 anchors.fill: parent
10272
10373 property bool moving: false
10474 property real distance: 0
10575
106− onMovingChanged: {
107− spreadView.draggedIndex = moving ? index : -1
108− }
76+ readonly property real minSpeedToClose: units.gu(40)
10977
11078 onDragValueChanged: {
11179 if (!dragging) {
@@ -124,15 +92,15 @@ Item {
12492 }
12593
12694 onDragEnd: {
127− if (model.appId == "unity8-dash") {
95+ if (!root.closeable) {
12896 animation.animate("center")
12997 return;
13098 }
13199
132100 // velocity and distance values specified by design prototype
133− if ((dragVelocity < -units.gu(40) && distance < -units.gu(8)) || distance < -root.height / 2) {
101+ if ((dragVelocity < -minSpeedToClose && distance < -units.gu(8)) || distance < -root.height / 2) {
134102 animation.animate("up")
135− } else if ((dragVelocity > units.gu(40) && distance > units.gu(8)) || distance > root.height / 2) {
103+ } else if ((dragVelocity > minSpeedToClose && distance > units.gu(8)) || distance > root.height / 2) {
136104 animation.animate("down")
137105 } else {
138106 animation.animate("center")
@@ -141,6 +109,7 @@ Item {
141109
142110 UbuntuNumberAnimation {
143111 id: animation
112+ objectName: "closeAnimation"
144113 target: dragArea
145114 property: "distance"
146115 property bool requestClose: false
@@ -165,9 +134,10 @@ Item {
165134 onRunningChanged: {
166135 if (!running) {
167136 dragArea.moving = false;
168− dragArea.distance = 0;
169137 if (requestClose) {
170138 root.closed();
139+ } else {
140+ dragArea.distance = 0;
171141 }
172142 }
173143 }
qml/Stages/SurfaceContainer.qml+5−11
@@ -26,9 +26,12 @@ Item {
2626 if (surface) {
2727 surface.parent = container;
2828 surface.z = 1;
29− state = "initial"
3029 }
3130 }
31+ Binding {
32+ target: surface
33+ property: "anchors.fill"; value: container
34+ }
3235
3336 Connections {
3437 target: surface
@@ -45,7 +48,7 @@ Item {
4548 }
4649
4750 Repeater {
48− model: surface.childSurfaces
51+ model: surface ? surface.childSurfaces : null
4952
5053 delegate: Loader {
5154 z: 2
@@ -81,8 +84,6 @@ Item {
8184 var popped = tmp.pop();
8285 popped.end();
8386 d.animations = tmp;
84− } else {
85− container.state = "initial";
8687 }
8788 }
8889
@@ -96,11 +97,4 @@ Item {
9697 id: swipeFromBottom
9798 SwipeFromBottomAnimation {}
9899 }
99−
100− states: [
101− State {
102− name: "initial"
103− PropertyChanges { target: surface; anchors.fill: container }
104− }
105− ]
106100}
qml/Stages/TabletStage.qml+13−3
@@ -145,7 +145,8 @@ Rectangle {
145145 Flickable {
146146 id: spreadView
147147 anchors.fill: parent
148− interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1) && draggedIndex == -1
148+ interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1)
149+ && draggedDelegateCount === 0
149150 contentWidth: spreadRow.width - shift
150151 contentX: -shift
151152
@@ -189,7 +190,7 @@ Rectangle {
189190 readonly property real snapPosition: 0.75
190191
191192 property int selectedIndex: -1
192− property int draggedIndex: -1
193+ property int draggedDelegateCount: 0
193194 property int closingIndex: -1
194195
195196 property bool sideStageDragging: sideStageDragHandle.dragging
@@ -475,6 +476,8 @@ Rectangle {
475476 swipeToCloseEnabled: spreadView.interactive
476477 maximizedAppTopMargin: root.maximizedAppTopMargin
477478 dragOffset: !isDash && model.appId == priv.mainStageAppId && root.inverseProgress > 0 ? root.inverseProgress : 0
479+ application: ApplicationManager.get(index)
480+ closeable: !isDash
478481
479482 readonly property bool isDash: model.appId == "unity8-dash"
480483
@@ -533,8 +536,15 @@ Rectangle {
533536 }
534537 }
535538
539+ onDraggedChanged: {
540+ if (dragged) {
541+ spreadView.draggedDelegateCount++;
542+ } else {
543+ spreadView.draggedDelegateCount--;
544+ }
545+ }
546+
536547 onClosed: {
537− spreadView.draggedIndex = -1;
538548 spreadView.closingIndex = index;
539549 ApplicationManager.stopApplication(ApplicationManager.get(index).appId);
540550 }
qml/Stages/TransformedSpreadDelegate.qml+1−1
@@ -309,7 +309,7 @@ SpreadDelegate {
309309 Scale {
310310 origin { x: 0; y: (spreadView.height * priv.scale) + maximizedAppTopMargin * 3 }
311311 xScale: 1
312− yScale: isFullscreen ? 1 - priv.topMarginProgress * maximizedAppTopMargin / spreadView.height : 1
312+ yScale: fullscreen ? 1 - priv.topMarginProgress * maximizedAppTopMargin / spreadView.height : 1
313313 },
314314 Translate {
315315 x: priv.xTranslate
qml/Stages/graphics/dropshadow.pngdeleted

Binary file not shown.

qml/Stages/graphics/dropshadow2gu@30.pngnew file

Binary file not shown.

qml/Stages/graphics/dropshadow2gu@30.scinew file+5
@@ -0,0 +1,5 @@
1+border.left: 60
2+border.top: 60
3+border.bottom: 60
4+border.right: 60
5+source: dropshadow2gu@30.png
tests/autopilot/unity8/shell/emulators/dash.py+5−5
@@ -140,10 +140,9 @@ class Dash(emulators.UnityEmulatorBase):
140140
141141 def enter_search_query(self, query):
142142 current_header = self._get_current_page_header()
143− self.pointing_device.move(current_header.globalRect.x +
144− current_header.width - current_header.height / 4,
145− current_header.globalRect.y +
146− current_header.height / 4)
143+ search_button = current_header.select_single(objectName="search_header_button")
144+ self.pointing_device.move(search_button.globalRect.x + search_button.width / 2,
145+ search_button.globalRect.y + search_button.height / 2)
147146 self.pointing_device.click()
148147 headerContainer = current_header.select_single(
149148 objectName="headerContainer")
@@ -186,7 +185,8 @@ class GenericScopeView(emulators.UnityEmulatorBase):
186185 # --elopio - 2014-1-14
187186 self.click_scope_item(category, app_name)
188187 preview_list = self.wait_select_single(
189− 'PreviewListView', objectName='previewListView')
188+ 'QQuickLoader', objectName='subPageLoader')
189+ preview_list.subPageShown.wait_for(True)
190190 preview_list.x.wait_for(0)
191191 return preview_list.select_single(
192192 Preview, objectName='preview{}'.format(preview_list.currentIndex))
tests/autopilot/unity8/shell/tests/test_lock_screen.py+2−2
@@ -54,7 +54,7 @@ class TestLockscreen(UnityTestCase):
5454 self.main_window.enter_pin_code("1234")
5555 self.assertThat(lockscreen.shown, Eventually(Equals(False)))
5656 else:
57− self._enter_prompt_passphrase("1234")
57+ self._enter_prompt_passphrase("1234\n")
5858 self.assertThat(greeter.shown, Eventually(Equals(False)))
5959
6060 @with_lightdm_mock("single-passphrase")
@@ -86,7 +86,7 @@ class TestLockscreen(UnityTestCase):
8686 self.assertThat(pinentryField.text, Eventually(Equals("")))
8787 self.assertThat(lockscreen.shown, Eventually(Equals(True)))
8888 else:
89− self._enter_prompt_passphrase("4231")
89+ self._enter_prompt_passphrase("4231\n")
9090 prompt = self.main_window.get_greeter().get_prompt()
9191 self.assertThat(prompt.text, Eventually(Equals("")))
9292 self.assertThat(greeter.shown, Eventually(Equals(True)))
tests/mocks/GSettings.1.0/fake_gsettings.h+2−2
@@ -27,7 +27,7 @@ class GSettingsSchemaQml: public QObject
2727 Q_PROPERTY(QByteArray id READ id WRITE setId)
2828
2929public:
30− GSettingsSchemaQml(QObject *parent = NULL);
30+ GSettingsSchemaQml(QObject *parent = nullptr);
3131
3232 QByteArray id() const;
3333 void setId(const QByteArray &id);
@@ -48,7 +48,7 @@ class GSettingsQml: public QObject
4848 Q_PROPERTY(QString pictureUri READ pictureUri WRITE setPictureUri NOTIFY pictureUriChanged)
4949
5050public:
51− GSettingsQml(QObject *parent = NULL);
51+ GSettingsQml(QObject *parent = nullptr);
5252 ~GSettingsQml();
5353
5454 GSettingsSchemaQml * schema() const;
tests/mocks/HudClient/fake_libhud_client.cpp+9−9
@@ -48,7 +48,7 @@ static void hud_client_query_class_init(HudClientQueryClass * /*klass*/)
4848 HUD_CLIENT_TYPE_QUERY,
4949 G_SIGNAL_RUN_LAST,
5050 0, /* offset */
51− NULL, NULL, /* Accumulator */
51+ nullptr, nullptr, /* Accumulator */
5252 g_cclosure_marshal_VOID__VOID,
5353 G_TYPE_NONE, 0, G_TYPE_NONE);
5454}
@@ -56,7 +56,7 @@ static void hud_client_query_class_init(HudClientQueryClass * /*klass*/)
5656HudClientQuery *hud_client_query_new(const gchar *query)
5757{
5858 HudClientStub::m_lastSetQuery = QString::fromUtf8(query);
59− HudClientStub::m_query = HUD_CLIENT_QUERY(g_object_new(HUD_CLIENT_TYPE_QUERY, NULL));
59+ HudClientStub::m_query = HUD_CLIENT_QUERY(g_object_new(HUD_CLIENT_TYPE_QUERY, nullptr));
6060 return HudClientStub::m_query;
6161}
6262
@@ -70,13 +70,13 @@ DeeModel *hud_client_query_get_results_model(HudClientQuery *cquery)
7070 GVariant * columns[G_N_ELEMENTS(results_model_schema) + 1];
7171 columns[0] = g_variant_new_variant(g_variant_new_uint64(0));
7272 columns[1] = g_variant_new_string("Help");
73− columns[2] = g_variant_new_array(G_VARIANT_TYPE("(ii)"), NULL, 0);
73+ columns[2] = g_variant_new_array(G_VARIANT_TYPE("(ii)"), nullptr, 0);
7474 columns[3] = g_variant_new_string("Get Help");
75− columns[4] = g_variant_new_array(G_VARIANT_TYPE("(ii)"), NULL, 0);
75+ columns[4] = g_variant_new_array(G_VARIANT_TYPE("(ii)"), nullptr, 0);
7676 columns[5] = g_variant_new_string("");
7777 columns[6] = g_variant_new_uint32(3);
7878 columns[7] = g_variant_new_boolean(false);
79− columns[8] = NULL;
79+ columns[8] = nullptr;
8080 dee_model_append_row(resultsModel, columns);
8181
8282 columns[0] = g_variant_new_variant(g_variant_new_uint64(1));
@@ -153,13 +153,13 @@ HudClientParam *hud_client_query_execute_param_command(HudClientQuery *cquery, G
153153 HudClientStub::m_lastExecutedParametrizedCommandRow = i;
154154 g_variant_unref(it_command);
155155 // No need to create a real HudClientParam since it's always passed down to us
156− return (HudClientParam *)g_object_new(G_TYPE_OBJECT, NULL);
156+ return (HudClientParam *)g_object_new(G_TYPE_OBJECT, nullptr);
157157 }
158158 g_variant_unref(it_command);
159159 }
160160 }
161161 HudClientStub::m_lastExecutedParametrizedCommandRow = -1;
162− return NULL;
162+ return nullptr;
163163}
164164
165165void hud_client_query_voice_query(HudClientQuery *cquery)
@@ -183,7 +183,7 @@ GMenuModel *hud_client_param_get_model(HudClientParam *param)
183183
184184 if (!parametrizedActionModel) {
185185 GMenu *menu = g_menu_new();
186− GMenuItem *item = g_menu_item_new("Item1Label", NULL);
186+ GMenuItem *item = g_menu_item_new("Item1Label", nullptr);
187187 g_menu_item_set_attribute_value(item, "parameter-type", g_variant_new_string("slider"));
188188 g_menu_item_set_attribute_value(item, "min", g_variant_new_double(10));
189189 g_menu_item_set_attribute_value(item, "max", g_variant_new_double(80));
@@ -220,7 +220,7 @@ GActionGroup *hud_client_param_get_actions(HudClientParam *param)
220220 GSimpleAction *action = g_simple_action_new("costAction", G_VARIANT_TYPE_DOUBLE);
221221 g_simple_action_group_insert(actionGroup, G_ACTION(action));
222222
223− g_signal_connect (action, "activate", G_CALLBACK (on_signal_activated), NULL);
223+ g_signal_connect (action, "activate", G_CALLBACK (on_signal_activated), nullptr);
224224
225225
226226 parametrizedActionGroup = G_ACTION_GROUP(actionGroup);
tests/mocks/LightDM/demo/GreeterPrivate.cpp+63−24
@@ -33,6 +33,12 @@ class GreeterImpl : public QObject
3333{
3434 Q_OBJECT
3535
36+ struct AppData
37+ {
38+ GreeterImpl *impl;
39+ pam_handle *handle;
40+ };
41+
3642 typedef QFutureInterface<QString> ResponseFuture;
3743
3844public:
@@ -40,38 +46,42 @@ public:
4046 : QObject(parent),
4147 greeter(parent),
4248 greeterPrivate(greeterPrivate),
43− pamHandle(NULL)
49+ pamHandle(nullptr)
4450 {
4551 qRegisterMetaType<QLightDM::GreeterImpl::ResponseFuture>("QLightDM::GreeterImpl::ResponseFuture");
4652
4753 connect(&futureWatcher, SIGNAL(finished()),
4854 this, SLOT(finishPam()));
49− connect(this, SIGNAL(showMessage(QString, QLightDM::Greeter::MessageType)),
50− greeter, SIGNAL(showMessage(QString, QLightDM::Greeter::MessageType)));
55+ connect(this, SIGNAL(showMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)),
56+ this, SLOT(handleMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)));
5157 // This next connect is how we pass ResponseFutures between threads
52− connect(this, SIGNAL(showPrompt(QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)),
53− this, SLOT(handlePrompt(QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)));
58+ connect(this, SIGNAL(showPrompt(pam_handle *, QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)),
59+ this, SLOT(handlePrompt(pam_handle *, QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)));
60+ }
61+
62+ ~GreeterImpl()
63+ {
64+ cancelPam();
5465 }
5566
5667 void start(QString username)
5768 {
58− // Clear out any existing PAM interactions first (we can't simply
59− // cancel our QFuture because QtConcurrent::run doesn't support cancel)
60− if (pamHandle != NULL) {
61− pam_handle *handle = pamHandle;
62− pamHandle = NULL; // to disable normal finishPam() handling
63− while (respond(QString())); // clear our local queue of QFutures
64− pam_end(handle, PAM_CONV_ERR);
65− }
69+ // Clear out any existing PAM interactions first
70+ cancelPam();
71+
72+ AppData *appData = new AppData();
73+ appData->impl = this;
6674
6775 // Now actually start a new conversation with PAM
6876 pam_conv conversation;
6977 conversation.conv = converseWithPam;
70− conversation.appdata_ptr = static_cast<void*>(this);
78+ conversation.appdata_ptr = static_cast<void*>(appData);
7179
7280 if (pam_start("lightdm", username.toUtf8(), &conversation, &pamHandle) == PAM_SUCCESS) {
81+ appData->handle = pamHandle;
7382 futureWatcher.setFuture(QtConcurrent::run(authenticateWithPam, pamHandle));
7483 } else {
84+ delete appData;
7585 greeterPrivate->authenticated = false;
7686 Q_EMIT greeter->showMessage("Internal error: could not start PAM authentication", QLightDM::Greeter::MessageTypeError);
7787 Q_EMIT greeter->authenticationComplete();
@@ -103,7 +113,9 @@ public:
103113 if (!tmp_response)
104114 return PAM_CONV_ERR;
105115
106− GreeterImpl* impl = static_cast<GreeterImpl*>(appdata_ptr);
116+ AppData *appData = static_cast<AppData*>(appdata_ptr);
117+ GreeterImpl *impl = appData->impl;
118+ pam_handle *handle = appData->handle;
107119
108120 int count;
109121 QVector<ResponseFuture> responses;
@@ -117,7 +129,7 @@ public:
117129 QString message(msg[count]->msg);
118130 responses.append(ResponseFuture());
119131 responses.last().reportStarted();
120− Q_EMIT impl->showPrompt(message, Greeter::PromptTypeQuestion, responses.last());
132+ Q_EMIT impl->showPrompt(handle, message, Greeter::PromptTypeQuestion, responses.last());
121133 break;
122134 }
123135 case PAM_PROMPT_ECHO_OFF:
@@ -125,19 +137,19 @@ public:
125137 QString message(msg[count]->msg);
126138 responses.append(ResponseFuture());
127139 responses.last().reportStarted();
128− Q_EMIT impl->showPrompt(message, Greeter::PromptTypeSecret, responses.last());
140+ Q_EMIT impl->showPrompt(handle, message, Greeter::PromptTypeSecret, responses.last());
129141 break;
130142 }
131143 case PAM_TEXT_INFO:
132144 {
133145 QString message(msg[count]->msg);
134− Q_EMIT impl->showMessage(message, Greeter::MessageTypeInfo);
146+ Q_EMIT impl->showMessage(handle, message, Greeter::MessageTypeInfo);
135147 break;
136148 }
137149 default:
138150 {
139151 QString message(msg[count]->msg);
140− Q_EMIT impl->showMessage(message, Greeter::MessageTypeError);
152+ Q_EMIT impl->showMessage(handle, message, Greeter::MessageTypeError);
141153 break;
142154 }
143155 }
@@ -159,6 +171,8 @@ public:
159171 }
160172 }
161173
174+ delete appData;
175+
162176 if (raise_error)
163177 {
164178 for (int i = 0; i < count; ++i)
@@ -186,32 +200,57 @@ public Q_SLOTS:
186200 }
187201
188202Q_SIGNALS:
189− void showMessage(QString text, QLightDM::Greeter::MessageType type);
190− void showPrompt(QString text, QLightDM::Greeter::PromptType type, QLightDM::GreeterImpl::ResponseFuture response);
203+ void showMessage(pam_handle *handle, QString text, QLightDM::Greeter::MessageType type);
204+ void showPrompt(pam_handle *handle, QString text, QLightDM::Greeter::PromptType type, QLightDM::GreeterImpl::ResponseFuture response);
191205
192206private Q_SLOTS:
193207 void finishPam()
194208 {
195− if (pamHandle == NULL) {
209+ if (pamHandle == nullptr) {
196210 return;
197211 }
198212
199213 int pamStatus = futureWatcher.result();
200214
201215 pam_end(pamHandle, pamStatus);
202− pamHandle = NULL;
216+ pamHandle = nullptr;
203217
204218 greeterPrivate->authenticated = (pamStatus == PAM_SUCCESS);
205219 Q_EMIT greeter->authenticationComplete();
206220 }
207221
208− void handlePrompt(QString text, QLightDM::Greeter::PromptType type, QLightDM::GreeterImpl::ResponseFuture future)
222+ void handleMessage(pam_handle *handle, QString text, QLightDM::Greeter::MessageType type)
223+ {
224+ if (handle != pamHandle)
225+ return;
226+
227+ Q_EMIT greeter->showMessage(text, type);
228+ }
229+
230+ void handlePrompt(pam_handle *handle, QString text, QLightDM::Greeter::PromptType type, QLightDM::GreeterImpl::ResponseFuture future)
209231 {
232+ if (handle != pamHandle) {
233+ future.reportResult(QString());
234+ future.reportFinished();
235+ return;
236+ }
237+
210238 futures.enqueue(future);
211239 Q_EMIT greeter->showPrompt(text, type);
212240 }
213241
214242private:
243+ void cancelPam()
244+ {
245+ // Unfortunately we can't simply cancel our QFuture because QtConcurrent::run doesn't support cancel
246+ if (pamHandle != nullptr) {
247+ pam_handle *handle = pamHandle;
248+ pamHandle = nullptr; // to disable normal finishPam() handling
249+ while (respond(QString())); // clear our local queue of QFutures
250+ pam_end(handle, PAM_CONV_ERR);
251+ }
252+ }
253+
215254 Greeter *greeter;
216255 GreeterPrivate *greeterPrivate;
217256 pam_handle* pamHandle;
tests/mocks/QMenuModel/unitymenumodel.cpp+8−9
@@ -17,7 +17,6 @@
1717 */
1818
1919#include "unitymenumodel.h"
20−#include <QDebug>
2120
2221enum MenuRoles {
2322 LabelRole = Qt::DisplayRole + 1,
@@ -38,6 +37,10 @@ UnityMenuModel::UnityMenuModel(QObject *parent)
3837{
3938}
4039
40+UnityMenuModel::~UnityMenuModel()
41+{
42+}
43+
4144QVariant UnityMenuModel::modelData() const
4245{
4346 return m_modelData;
@@ -83,10 +86,6 @@ void UnityMenuModel::removeRow(int row)
8386 endRemoveRows();
8487}
8588
86−UnityMenuModel::~UnityMenuModel()
87−{
88−}
89−
9089QByteArray UnityMenuModel::busName() const
9190{
9291 return m_busName;
@@ -119,7 +118,7 @@ void UnityMenuModel::setMenuObjectPath(const QByteArray &path)
119118
120119ActionStateParser* UnityMenuModel::actionStateParser() const
121120{
122− return NULL;
121+ return nullptr;
123122}
124123
125124void UnityMenuModel::setActionStateParser(ActionStateParser*)
@@ -191,11 +190,11 @@ QHash<int, QByteArray> UnityMenuModel::roleNames() const
191190QObject * UnityMenuModel::submenu(int position, QQmlComponent*)
192191{
193192 if (position < 0 || m_modelData.count() < position) {
194− return NULL;
193+ return nullptr;
195194 }
196195
197196 while (submenus.count() <= position) {
198− submenus.append(NULL);
197+ submenus.append(nullptr);
199198 }
200199
201200 QVariant submenuData = subMenuData(position);
@@ -210,7 +209,7 @@ QObject * UnityMenuModel::submenu(int position, QQmlComponent*)
210209 return model;
211210 }
212211
213− return NULL;
212+ return nullptr;
214213}
215214
216215bool UnityMenuModel::loadExtendedAttributes(int, const QVariantMap &)
tests/mocks/QMenuModel/unitymenumodel.h+2−2
@@ -35,7 +35,7 @@ class Q_DECL_EXPORT UnityMenuModel : public QAbstractListModel
3535 Q_PROPERTY(QString nameOwner READ nameOwner NOTIFY nameOwnerChanged)
3636
3737public:
38− UnityMenuModel(QObject *parent = NULL);
38+ UnityMenuModel(QObject *parent = nullptr);
3939 virtual ~UnityMenuModel();
4040
4141 Q_INVOKABLE void insertRow(int row, const QVariant& data);
@@ -66,7 +66,7 @@ public:
6666 QModelIndex parent(const QModelIndex &index) const;
6767 QHash<int, QByteArray> roleNames() const;
6868
69− Q_INVOKABLE QObject * submenu(int position, QQmlComponent* actionStateParser = NULL);
69+ Q_INVOKABLE QObject * submenu(int position, QQmlComponent* actionStateParser = nullptr);
7070 Q_INVOKABLE bool loadExtendedAttributes(int position, const QVariantMap &schema);
7171 Q_INVOKABLE QVariant get(int row, const QByteArray &role);
7272
tests/mocks/QtMultimedia/audio.cpp+1−1
@@ -22,7 +22,7 @@ Audio::Audio(QObject* parent):
2222 QObject(parent),
2323 m_playbackState(StoppedState)
2424{
25− qsrand(time(NULL));
25+ qsrand(time(nullptr));
2626 m_timer.setInterval(1000);
2727 connect(&m_timer, SIGNAL(timeout()), SLOT(timerEvent()));
2828}
tests/mocks/Unity/Application/Application.qmltypes−19
@@ -7,25 +7,6 @@ import QtQuick.tooling 1.1
77// 'qmlplugindump -notrelocatable Unity.Application 0.1 tests/mocks'
88
99Module {
10− Component {
11− name: "ApplicationImage"
12− defaultProperty: "data"
13− prototype: "QQuickItem"
14− exports: ["Unity.Application/ApplicationImage 0.1"]
15− exportMetaObjectRevisions: [0]
16− Enum {
17− name: "FillMode"
18− values: {
19− "Stretch": 0,
20− "PreserveAspectCrop": 1
21− }
22− }
23− Property { name: "source"; type: "ApplicationInfo"; isPointer: true }
24− Property { name: "fillMode"; type: "FillMode" }
25− Property { name: "ready"; type: "bool" }
26− Method { name: "scheduleUpdate" }
27− Method { name: "updateFromCache" }
28− }
2910 Component {
3011 name: "ApplicationInfo"
3112 prototype: "unity::shell::application::ApplicationInfoInterface"
tests/mocks/Unity/Application/ApplicationDBusAdaptor.cpp+1−1
@@ -33,7 +33,7 @@ MirSurfaceItem* topSurface(MirSurfaceItem* surface)
3333 if (!surface)
3434 return nullptr;
3535
36− MirSurfaceItem* child = NULL;
36+ MirSurfaceItem* child = nullptr;
3737 Q_FOREACH (MirSurfaceItem *childSurface, surface->childSurfaceList()) {
3838 child = topSurface(childSurface);
3939 if (child) {
tests/mocks/Unity/Application/ApplicationImage.cppdeleted−123
@@ -1,123 +0,0 @@
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−#include "ApplicationImage.h"
18−#include "ApplicationInfo.h"
19−
20−#include <QQmlEngine>
21−#include <QQmlComponent>
22−#include <QQmlContext>
23−
24−ApplicationImage::ApplicationImage(QQuickItem* parent)
25− : QQuickItem(parent),
26− m_source(NULL),
27− m_fillMode(Stretch),
28− m_ready(false),
29− m_imageComponent(0),
30− m_imageItem(0)
31−{
32−}
33−
34−void ApplicationImage::setSource(ApplicationInfo* source)
35−{
36− if (m_source != source) {
37− if (m_source)
38− disconnect(m_source, &ApplicationInfo::imageQmlChanged,
39− this, &ApplicationImage::updateImage);
40−
41− m_source = source;
42−
43− if (m_source) {
44− connect(m_source, &ApplicationInfo::imageQmlChanged,
45− this, &ApplicationImage::updateImage);
46− }
47− updateImage();
48−
49− Q_EMIT sourceChanged();
50− }
51−}
52−
53−void ApplicationImage::setFillMode(FillMode newFillMode)
54−{
55− if (m_fillMode != newFillMode) {
56− m_fillMode = newFillMode;
57− Q_EMIT fillModeChanged();
58− }
59−}
60−
61−void ApplicationImage::setReady(bool value)
62−{
63− if (value != m_ready) {
64− m_ready = value;
65− Q_EMIT readyChanged();
66− }
67−}
68−
69−void ApplicationImage::destroyImage()
70−{
71− delete m_imageItem;
72− m_imageItem = 0;
73− delete m_imageComponent;
74− m_imageComponent = 0;
75− m_qmlUsed.clear();
76− setReady(false);
77−}
78−
79−void ApplicationImage::updateImage()
80−{
81− if (!m_source || m_source->imageQml().isEmpty()) {
82− destroyImage();
83− } else if (m_source->imageQml() != m_qmlUsed) {
84− destroyImage();
85− createImageItem();
86− }
87−}
88−
89−void ApplicationImage::createImageItem()
90−{
91−
92− if (!m_imageComponent)
93− createImageComponent();
94−
95− // only create the windowItem one the component is ready
96− if (!m_imageComponent->isReady()) {
97− connect(m_imageComponent, &QQmlComponent::statusChanged,
98− this, &ApplicationImage::onImageComponentStatusChanged);
99− } else {
100− doCreateImageItem();
101− }
102−
103−}
104−
105−void ApplicationImage::createImageComponent()
106−{
107− QQmlEngine *engine = QQmlEngine::contextForObject(this)->engine();
108− m_imageComponent = new QQmlComponent(engine, this);
109− m_imageComponent->setData(m_source->imageQml().toLatin1(), QUrl());
110−}
111−
112−void ApplicationImage::doCreateImageItem()
113−{
114− m_imageItem = qobject_cast<QQuickItem *>(m_imageComponent->create());
115− m_imageItem->setParentItem(this);
116− setReady(true);
117−}
118−
119−void ApplicationImage::onImageComponentStatusChanged(QQmlComponent::Status status)
120−{
121− if (status == QQmlComponent::Ready && !m_imageItem)
122− doCreateImageItem();
123−}
tests/mocks/Unity/Application/ApplicationImage.hdeleted−79
@@ -1,79 +0,0 @@
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−#ifndef APPLICATION_IMAGE_H
18−#define APPLICATION_IMAGE_H
19−
20−#include <QQuickItem>
21−
22−class ApplicationInfo;
23−
24−/* Fake implementation of ApplicationImage
25−
26− That fake implementation is not made in QML just because we can only declare
27− enumerations in C++. We can't even make readonly properties to mimic an enum
28− because properties must begin with a lower case letter.
29−*/
30−class ApplicationImage : public QQuickItem {
31− Q_OBJECT
32− Q_ENUMS(FillMode)
33− Q_PROPERTY(ApplicationInfo* source READ source WRITE setSource NOTIFY sourceChanged)
34− Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged)
35− Q_PROPERTY(bool ready READ ready WRITE setReady NOTIFY readyChanged)
36−
37−public:
38− explicit ApplicationImage(QQuickItem* parent = 0);
39− virtual ~ApplicationImage() {}
40−
41− enum FillMode { Stretch, PreserveAspectCrop };
42−
43− ApplicationInfo* source() const { return m_source; }
44− void setSource(ApplicationInfo* source);
45−
46− FillMode fillMode() const { return m_fillMode; }
47− void setFillMode(FillMode);
48−
49− void setReady(bool value);
50− bool ready() const { return m_ready; }
51−
52− Q_INVOKABLE void scheduleUpdate() {}
53− Q_INVOKABLE void updateFromCache() {}
54−
55−Q_SIGNALS:
56− void sourceChanged();
57− void fillModeChanged();
58− void readyChanged();
59−
60−private Q_SLOTS:
61− void updateImage();
62− void onImageComponentStatusChanged(QQmlComponent::Status status);
63−
64−private:
65− void createImageItem();
66− void createImageComponent();
67− void doCreateImageItem();
68− void destroyImage();
69−
70− ApplicationInfo* m_source;
71− FillMode m_fillMode;
72− bool m_ready;
73− QQmlComponent *m_imageComponent;
74− QQuickItem* m_imageItem;
75− // the QML script used to create the current m_imageItem
76− QString m_qmlUsed;
77−};
78−
79−#endif // APPLICATION_IMAGE_H
tests/mocks/Unity/Application/ApplicationInfo.cpp+83−14
@@ -18,6 +18,8 @@
1818#include "MirSurfaceItem.h"
1919#include "SurfaceManager.h"
2020
21+#include <paths.h>
22+
2123#include <QGuiApplication>
2224#include <QQuickItem>
2325#include <QQuickView>
@@ -31,10 +33,10 @@ ApplicationInfo::ApplicationInfo(const QString &appId, QObject *parent)
3133 , m_state(Starting)
3234 , m_focused(false)
3335 , m_fullscreen(false)
34− , m_parentItem(0)
3536 , m_surface(0)
37+ , m_manualSurfaceCreation(false)
38+ , m_parentItem(0)
3639{
37− connect(this, &ApplicationInfo::stateChanged, this, &ApplicationInfo::onStateChanged);
3840}
3941
4042ApplicationInfo::ApplicationInfo(QObject *parent)
@@ -43,10 +45,10 @@ ApplicationInfo::ApplicationInfo(QObject *parent)
4345 , m_state(Starting)
4446 , m_focused(false)
4547 , m_fullscreen(false)
46− , m_parentItem(0)
4748 , m_surface(0)
49+ , m_manualSurfaceCreation(false)
50+ , m_parentItem(0)
4851{
49− connect(this, &ApplicationInfo::stateChanged, this, &ApplicationInfo::onStateChanged);
5052}
5153
5254ApplicationInfo::~ApplicationInfo()
@@ -58,23 +60,16 @@ ApplicationInfo::~ApplicationInfo()
5860 }
5961}
6062
61−void ApplicationInfo::onStateChanged(State state)
62−{
63− if (state == ApplicationInfo::Running) {
64− QTimer::singleShot(1000, this, SLOT(createSurface()));
65− } else if (state == ApplicationInfo::Stopped) {
66− setSurface(nullptr);
67− }
68−}
69−
7063void ApplicationInfo::createSurface()
7164{
7265 if (m_surface || state() == ApplicationInfo::Stopped) return;
7366
67+ QUrl screenshotUrl = QString("file://%1").arg(m_screenshotFileName);
68+
7469 setSurface(new MirSurfaceItem(name(),
7570 MirSurfaceItem::Normal,
7671 fullscreen() ? MirSurfaceItem::Fullscreen : MirSurfaceItem::Maximized,
77− screenshot()));
72+ screenshotUrl));
7873}
7974
8075void ApplicationInfo::setSurface(MirSurfaceItem* surface)
@@ -152,3 +147,77 @@ MirSurfaceItem* ApplicationInfo::promptSurfaceAt(QQmlListProperty<MirSurfaceItem
152147 return nullptr;
153148 return p->m_promptSurfaces[index];
154149}
150+
151+void ApplicationInfo::setIconId(const QString &iconId)
152+{
153+ setIcon(QString("file://%1/graphics/applicationIcons/%2@18.png")
154+ .arg(qmlDirectory())
155+ .arg(iconId));
156+}
157+
158+void ApplicationInfo::setScreenshotId(const QString &screenshotId)
159+{
160+ m_screenshotFileName = QString("%1/Dash/graphics/phone/screenshots/%2@12.png")
161+ .arg(qmlDirectory())
162+ .arg(screenshotId);
163+}
164+
165+void ApplicationInfo::setName(const QString &value)
166+{
167+ if (value != m_name) {
168+ m_name = value;
169+ Q_EMIT nameChanged(value);
170+ }
171+}
172+
173+void ApplicationInfo::setIcon(const QUrl &value)
174+{
175+ if (value != m_icon) {
176+ m_icon = value;
177+ Q_EMIT iconChanged(value);
178+ }
179+}
180+
181+void ApplicationInfo::setStage(Stage value)
182+{
183+ if (value != m_stage) {
184+ m_stage = value;
185+ Q_EMIT stageChanged(value);
186+ }
187+}
188+
189+void ApplicationInfo::setState(State value)
190+{
191+ if (value != m_state) {
192+ m_state = value;
193+ Q_EMIT stateChanged(value);
194+
195+ if (!m_manualSurfaceCreation && m_state == ApplicationInfo::Running) {
196+ QTimer::singleShot(1000, this, SLOT(createSurface()));
197+ }
198+ }
199+}
200+
201+void ApplicationInfo::setFocused(bool value)
202+{
203+ if (value != m_focused) {
204+ m_focused = value;
205+ Q_EMIT focusedChanged(value);
206+ }
207+}
208+
209+void ApplicationInfo::setFullscreen(bool value)
210+{
211+ if (value != m_fullscreen) {
212+ m_fullscreen = value;
213+ Q_EMIT fullscreenChanged(value);
214+ }
215+}
216+
217+void ApplicationInfo::setManualSurfaceCreation(bool value)
218+{
219+ if (value != m_manualSurfaceCreation) {
220+ m_manualSurfaceCreation = value;
221+ Q_EMIT manualSurfaceCreationChanged(value);
222+ }
223+}
tests/mocks/Unity/Application/ApplicationInfo.h+52−46
@@ -26,63 +26,52 @@ class MirSurfaceItem;
2626// unity-api
2727#include <unity/shell/application/ApplicationInfoInterface.h>
2828
29−// A pretty dumb file. Just a container for properties.
30−// Implemented in C++ instead of QML just because of the enumerations
31−// See QTBUG-14861
32−
3329using namespace unity::shell::application;
3430
3531class ApplicationInfo : public ApplicationInfoInterface {
3632 Q_OBJECT
3733
3834 Q_PROPERTY(bool fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
39− Q_PROPERTY(Stage stage READ stage WRITE setStage NOTIFY stageChanged)
4035 Q_PROPERTY(MirSurfaceItem* surface READ surface NOTIFY surfaceChanged)
4136 Q_PROPERTY(QQmlListProperty<MirSurfaceItem> promptSurfaces READ promptSurfaces NOTIFY promptSurfacesChanged DESIGNABLE false)
4237
4338 // Only exists in this fake implementation
4439
45− // QML component used to represent its image/screenhot
46− Q_PROPERTY(QString imageQml READ imageQml WRITE setImageQml NOTIFY imageQmlChanged)
47−
48− // QML component used to represent the application window
49− Q_PROPERTY(QString windowQml READ windowQml WRITE setWindowQml NOTIFY windowQmlChanged)
40+ // whether the test code will explicitly control the creation of the application surface
41+ Q_PROPERTY(bool manualSurfaceCreation READ manualSurfaceCreation WRITE setManualSurfaceCreation NOTIFY manualSurfaceCreationChanged)
5042
5143public:
52− ApplicationInfo(QObject *parent = NULL);
53− ApplicationInfo(const QString &appId, QObject *parent = NULL);
44+ ApplicationInfo(QObject *parent = nullptr);
45+ ApplicationInfo(const QString &appId, QObject *parent = nullptr);
5446 ~ApplicationInfo();
5547
56− #define IMPLEMENT_PROPERTY(name, Name, type) \
57− public: \
58− type name() const { return m_##name; } \
59− void set##Name(const type& value) \
60− { \
61− if (m_##name != value) { \
62− m_##name = value; \
63− Q_EMIT name##Changed(value); \
64− } \
65− } \
66− Q_SIGNALS: \
67− void name##Changed(const type&); \
68− private: \
69− type m_##name;
70−
71− IMPLEMENT_PROPERTY(appId, AppId, QString)
72− IMPLEMENT_PROPERTY(name, Name, QString)
73− IMPLEMENT_PROPERTY(comment, Comment, QString)
74− IMPLEMENT_PROPERTY(icon, Icon, QUrl)
75− IMPLEMENT_PROPERTY(stage, Stage, Stage)
76− IMPLEMENT_PROPERTY(state, State, State)
77− IMPLEMENT_PROPERTY(focused, Focused, bool)
78− IMPLEMENT_PROPERTY(fullscreen, Fullscreen, bool)
79− IMPLEMENT_PROPERTY(imageQml, ImageQml, QString)
80− IMPLEMENT_PROPERTY(windowQml, WindowQml, QString)
81− IMPLEMENT_PROPERTY(screenshot, Screenshot, QUrl)
82−
83− #undef IMPLEMENT_PROPERTY
48+ void setIconId(const QString &iconId);
49+ void setScreenshotId(const QString &screenshotId);
50+
51+ void setAppId(const QString &value) { m_appId = value; }
52+ QString appId() const override { return m_appId; }
53+
54+ void setName(const QString &value);
55+ QString name() const override { return m_name; }
56+
57+ QString comment() const override { return QString(); }
58+
59+ QUrl icon() const override { return m_icon; }
60+
61+ void setStage(Stage value);
62+ Stage stage() const override { return m_stage; }
63+
64+ Q_INVOKABLE void setState(State value);
65+ State state() const override { return m_state; }
66+
67+ void setFocused(bool value);
68+ bool focused() const override { return m_focused; }
69+
70+ QString screenshot() const { return m_screenshotFileName; }
71+
72+ void setFullscreen(bool value);
73+ bool fullscreen() const { return m_fullscreen; }
8474
85−public:
8675 void setSurface(MirSurfaceItem* surface);
8776 MirSurfaceItem* surface() const { return m_surface; }
8877
@@ -92,21 +81,38 @@ public:
9281 QList<MirSurfaceItem*> promptSurfaceList() const;
9382 QQmlListProperty<MirSurfaceItem> promptSurfaces();
9483
84+ bool manualSurfaceCreation() const { return m_manualSurfaceCreation; }
85+ void setManualSurfaceCreation(bool value);
86+
9587Q_SIGNALS:
9688 void surfaceChanged(MirSurfaceItem*);
9789 void promptSurfacesChanged();
90+ void fullscreenChanged(bool value);
91+ void manualSurfaceCreationChanged(bool value);
9892
99−private Q_SLOTS:
100− void onStateChanged(State state);
101−
102− void createSurface();
93+public Q_SLOTS:
94+ Q_INVOKABLE void createSurface();
10395
10496private:
10597 static int promptSurfaceCount(QQmlListProperty<MirSurfaceItem> *prop);
10698 static MirSurfaceItem* promptSurfaceAt(QQmlListProperty<MirSurfaceItem> *prop, int index);
99+ void setIcon(const QUrl &value);
100+ void setScreenshot(const QUrl &value);
101+
102+ QString m_screenshotFileName;
103+
104+ QString m_appId;
105+ QString m_name;
106+ QUrl m_icon;
107+ Stage m_stage;
108+ State m_state;
109+ bool m_focused;
110+ bool m_fullscreen;
111+ MirSurfaceItem* m_surface;
112+
113+ bool m_manualSurfaceCreation;
107114
108115 QQuickItem *m_parentItem;
109− MirSurfaceItem* m_surface;
110116 QList<MirSurfaceItem*> m_promptSurfaces;
111117};
112118
tests/mocks/Unity/Application/ApplicationManager.cpp+87−102
@@ -55,14 +55,32 @@ ApplicationManager::ApplicationManager(QObject *parent)
5555
5656 buildListOfAvailableApplications();
5757
58− startApplication("unity8-dash");
59− focusApplication("unity8-dash");
58+ // polling to find out when the toplevel window has been created as there's
59+ // no signal telling us that
60+ connect(&m_windowCreatedTimer, &QTimer::timeout,
61+ this, &ApplicationManager::onWindowCreatedTimerTimeout);
62+ m_windowCreatedTimer.setSingleShot(false);
63+ m_windowCreatedTimer.start(200);
6064}
6165
6266ApplicationManager::~ApplicationManager()
6367{
6468}
6569
70+void ApplicationManager::onWindowCreatedTimerTimeout()
71+{
72+ if (QGuiApplication::topLevelWindows().count() > 0) {
73+ m_windowCreatedTimer.stop();
74+ onWindowCreated();
75+ }
76+}
77+
78+void ApplicationManager::onWindowCreated()
79+{
80+ startApplication("unity8-dash");
81+ focusApplication("unity8-dash");
82+}
83+
6684int ApplicationManager::rowCount(const QModelIndex& parent) const {
6785 return !parent.isValid() ? m_runningApplications.size() : 0;
6886}
@@ -87,8 +105,6 @@ QVariant ApplicationManager::data(const QModelIndex& index, int role) const {
87105 return app->state();
88106 case RoleFocused:
89107 return app->focused();
90− case RoleScreenshot:
91− return app->screenshot();
92108 case RoleSurface:
93109 return QVariant::fromValue(app->surface());
94110 case RoleFullscreen:
@@ -143,6 +159,16 @@ void ApplicationManager::add(ApplicationInfo *application) {
143159 if (!appIndex.isValid()) return;
144160 Q_EMIT dataChanged(appIndex, appIndex, QVector<int>() << ApplicationManager::RoleSurface);
145161 });
162+ connect(application, &ApplicationInfo::focusedChanged, this, [application, this]() {
163+ QModelIndex appIndex = findIndex(application);
164+ if (!appIndex.isValid()) return;
165+ Q_EMIT dataChanged(appIndex, appIndex, QVector<int>() << ApplicationManager::RoleFocused);
166+ });
167+ connect(application, &ApplicationInfo::stateChanged, this, [application, this]() {
168+ QModelIndex appIndex = findIndex(application);
169+ if (!appIndex.isValid()) return;
170+ Q_EMIT dataChanged(appIndex, appIndex, QVector<int>() << ApplicationManager::RoleState);
171+ });
146172}
147173
148174void ApplicationManager::remove(ApplicationInfo *application) {
@@ -155,7 +181,7 @@ void ApplicationManager::remove(ApplicationInfo *application) {
155181 Q_EMIT countChanged();
156182 if (isEmpty()) Q_EMIT emptyChanged(isEmpty());
157183 }
158− disconnect(application, &ApplicationInfo::surfaceChanged, this, 0);
184+ disconnect(application, 0, this, 0);
159185}
160186
161187void ApplicationManager::move(int from, int to) {
@@ -198,6 +224,21 @@ ApplicationInfo* ApplicationManager::startApplication(const QString &appId,
198224 const QStringList &arguments)
199225{
200226 Q_UNUSED(arguments)
227+ ApplicationInfo *application = add(appId);
228+ if (!application)
229+ return 0;
230+
231+ if (flags.testFlag(ApplicationManager::ForceMainStage)
232+ && application->stage() == ApplicationInfo::SideStage) {
233+ application->setStage(ApplicationInfo::MainStage);
234+ }
235+ application->setState(ApplicationInfo::Running);
236+
237+ return application;
238+}
239+
240+ApplicationInfo* ApplicationManager::add(QString appId)
241+{
201242 ApplicationInfo *application = 0;
202243
203244 for (ApplicationInfo *availableApp : m_availableApplications) {
@@ -207,15 +248,8 @@ ApplicationInfo* ApplicationManager::startApplication(const QString &appId,
207248 }
208249 }
209250
210− if (!application)
211− return 0;
212−
213− if (flags.testFlag(ApplicationManager::ForceMainStage)
214− && application->stage() == ApplicationInfo::SideStage) {
215− application->setStage(ApplicationInfo::MainStage);
216− }
217− add(application);
218− application->setState(ApplicationInfo::Running);
251+ if (application)
252+ add(application);
219253
220254 return application;
221255}
@@ -238,27 +272,6 @@ bool ApplicationManager::stopApplication(const QString &appId)
238272 return true;
239273}
240274
241−bool ApplicationManager::updateScreenshot(const QString &appId)
242−{
243− int idx = -1;
244− ApplicationInfo *application = nullptr;
245− for (int i = 0; i < m_availableApplications.count(); ++i) {
246− application = m_availableApplications.at(i);
247− if (application->appId() == appId) {
248− idx = i;
249− break;
250− }
251− }
252−
253− if (idx == -1) {
254− return false;
255− }
256−
257− QModelIndex appIndex = index(idx);
258− Q_EMIT dataChanged(appIndex, appIndex, QVector<int>() << RoleScreenshot);
259− return true;
260−}
261−
262275QString ApplicationManager::focusedApplicationId() const {
263276 for (ApplicationInfo *app : m_runningApplications) {
264277 if (app->focused()) {
@@ -293,32 +306,18 @@ bool ApplicationManager::focusApplication(const QString &appId)
293306 if (application == nullptr)
294307 return false;
295308
296− if (application->stage() == ApplicationInfo::MainStage) {
297− // unfocus currently focused mainstage app
298− for (ApplicationInfo *app : m_runningApplications) {
299− if (app->focused() && app->stage() == ApplicationInfo::MainStage) {
300− app->setFocused(false);
301− app->setState(ApplicationInfo::Suspended);
302− }
303− }
304−
305− // focus this app
306− application->setFocused(true);
307− application->setState(ApplicationInfo::Running);
308− } else if (application->stage() == ApplicationInfo::SideStage) {
309− // unfocus currently focused sidestage app
310− for (ApplicationInfo *app : m_runningApplications) {
311− if (app->focused() && app->stage() == ApplicationInfo::SideStage) {
312− app->setFocused(false);
313− app->setState(ApplicationInfo::Suspended);
314− }
309+ // unfocus currently focused app
310+ for (ApplicationInfo *app : m_runningApplications) {
311+ if (app->focused()) {
312+ app->setFocused(false);
313+ app->setState(ApplicationInfo::Suspended);
315314 }
316−
317− // focus this app
318− application->setFocused(true);
319− application->setState(ApplicationInfo::Running);
320315 }
321316
317+ // focus this app
318+ application->setFocused(true);
319+ application->setState(ApplicationInfo::Running);
320+
322321 // move app to top of stack
323322 move(m_runningApplications.indexOf(application), 0);
324323 Q_EMIT focusedApplicationIdChanged();
@@ -341,12 +340,6 @@ void ApplicationManager::unfocusCurrentApplication()
341340 Q_EMIT focusedApplicationIdChanged();
342341}
343342
344−void ApplicationManager::generateQmlStrings(ApplicationInfo *application)
345−{
346− application->setScreenshot(QString("file://%1/Dash/graphics/phone/screenshots/%2@12.png").arg(qmlDirectory())
347− .arg(application->icon().toString()));
348−}
349−
350343void ApplicationManager::buildListOfAvailableApplications()
351344{
352345 ApplicationInfo *application;
@@ -354,128 +347,120 @@ void ApplicationManager::buildListOfAvailableApplications()
354347 application = new ApplicationInfo(this);
355348 application->setAppId("unity8-dash");
356349 application->setName("Unity 8 Mock Dash");
357− application->setIcon(QUrl("unity8-dash"));
350+ application->setScreenshotId("unity8-dash");
358351 application->setStage(ApplicationInfo::MainStage);
359− generateQmlStrings(application);
360352 m_availableApplications.append(application);
361353
362354 application = new ApplicationInfo(this);
363355 application->setAppId("dialer-app");
364356 application->setName("Dialer");
365− application->setIcon(QUrl("dialer"));
357+ application->setScreenshotId("dialer");
358+ application->setIconId("dialer-app");
366359 application->setStage(ApplicationInfo::SideStage);
367− generateQmlStrings(application);
368360 m_availableApplications.append(application);
369361
370362 application = new ApplicationInfo(this);
371363 application->setAppId("camera-app");
372364 application->setName("Camera");
373− application->setIcon(QUrl("camera"));
365+ application->setScreenshotId("camera");
366+ application->setIconId("camera");
374367 application->setFullscreen(true);
375− generateQmlStrings(application);
376368 m_availableApplications.append(application);
377369
378370 application = new ApplicationInfo(this);
379371 application->setAppId("gallery-app");
380372 application->setName("Gallery");
381− application->setIcon(QUrl("gallery"));
382− generateQmlStrings(application);
373+ application->setScreenshotId("gallery");
374+ application->setIconId("gallery");
375+ application->setFullscreen(true);
383376 m_availableApplications.append(application);
384377
385378 application = new ApplicationInfo(this);
386379 application->setAppId("facebook-webapp");
387380 application->setName("Facebook");
388− application->setIcon(QUrl("facebook"));
381+ application->setScreenshotId("facebook");
382+ application->setIconId("facebook");
389383 application->setStage(ApplicationInfo::SideStage);
390− generateQmlStrings(application);
391384 m_availableApplications.append(application);
392385
393386 application = new ApplicationInfo(this);
394387 application->setAppId("webbrowser-app");
395388 application->setFullscreen(true);
396389 application->setName("Browser");
397− application->setIcon(QUrl("browser"));
398− generateQmlStrings(application);
390+ application->setScreenshotId("browser");
391+ application->setIconId("browser");
399392 m_availableApplications.append(application);
400393
401394 application = new ApplicationInfo(this);
402395 application->setAppId("twitter-webapp");
403396 application->setName("Twitter");
404− application->setIcon(QUrl("twitter"));
397+ application->setScreenshotId("twitter");
398+ application->setIconId("twitter");
405399 application->setStage(ApplicationInfo::SideStage);
406− generateQmlStrings(application);
400+ m_availableApplications.append(application);
401+
402+ application = new ApplicationInfo(this);
403+ application->setAppId("map");
404+ application->setName("Map");
405+ application->setIconId("map");
406+ application->setScreenshotId("map");
407407 m_availableApplications.append(application);
408408
409409 application = new ApplicationInfo(this);
410410 application->setAppId("gmail-webapp");
411411 application->setName("GMail");
412− application->setIcon(QUrl("gmail"));
412+ application->setIconId("gmail");
413413 m_availableApplications.append(application);
414414
415415 application = new ApplicationInfo(this);
416416 application->setAppId("ubuntu-weather-app");
417417 application->setName("Weather");
418− application->setIcon(QUrl("weather"));
418+ application->setIconId("weather");
419419 application->setStage(ApplicationInfo::SideStage);
420− generateQmlStrings(application);
421420 m_availableApplications.append(application);
422421
423422 application = new ApplicationInfo(this);
424423 application->setAppId("notes-app");
425424 application->setName("Notepad");
426− application->setIcon(QUrl("notepad"));
425+ application->setIconId("notepad");
427426 application->setStage(ApplicationInfo::SideStage);
428427 m_availableApplications.append(application);
429428
430429 application = new ApplicationInfo(this);
431430 application->setAppId("calendar-app");
432431 application->setName("Calendar");
433− application->setIcon(QUrl("calendar"));
432+ application->setIconId("calendar");
434433 application->setStage(ApplicationInfo::SideStage);
435434 m_availableApplications.append(application);
436435
437− application = new ApplicationInfo(this);
438− application->setAppId("mediaplayer-app");
439− application->setName("Media Player");
440− application->setIcon(QUrl("mediaplayer-app"));
441− application->setFullscreen(true);
442− m_availableApplications.append(application);
443−
444436 application = new ApplicationInfo(this);
445437 application->setAppId("evernote");
446438 application->setName("Evernote");
447− application->setIcon(QUrl("evernote"));
448− m_availableApplications.append(application);
449−
450− application = new ApplicationInfo(this);
451− application->setAppId("map");
452− application->setName("Map");
453− application->setIcon(QUrl("map"));
454− generateQmlStrings(application);
439+ application->setIconId("evernote");
455440 m_availableApplications.append(application);
456441
457442 application = new ApplicationInfo(this);
458443 application->setAppId("pinterest");
459444 application->setName("Pinterest");
460− application->setIcon(QUrl("pinterest"));
445+ application->setIconId("pinterest");
461446 m_availableApplications.append(application);
462447
463448 application = new ApplicationInfo(this);
464449 application->setAppId("soundcloud");
465450 application->setName("SoundCloud");
466− application->setIcon(QUrl("soundcloud"));
451+ application->setIconId("soundcloud");
467452 m_availableApplications.append(application);
468453
469454 application = new ApplicationInfo(this);
470455 application->setAppId("wikipedia");
471456 application->setName("Wikipedia");
472− application->setIcon(QUrl("wikipedia"));
457+ application->setIconId("wikipedia");
473458 m_availableApplications.append(application);
474459
475460 application = new ApplicationInfo(this);
476461 application->setAppId("youtube");
477462 application->setName("YouTube");
478− application->setIcon(QUrl("youtube"));
463+ application->setIconId("youtube");
479464 m_availableApplications.append(application);
480465}
481466
tests/mocks/Unity/Application/ApplicationManager.h+9−5
@@ -20,6 +20,7 @@
2020#include <QObject>
2121#include <QList>
2222#include <QStringList>
23+#include <QTimer>
2324#include "ApplicationInfo.h"
2425
2526// unity-api
@@ -45,13 +46,13 @@ class ApplicationManager : public ApplicationManagerInterface {
4546 Q_PROPERTY(bool fake READ fake CONSTANT)
4647
4748 public:
48− ApplicationManager(QObject *parent = NULL);
49+ ApplicationManager(QObject *parent = nullptr);
4950 virtual ~ApplicationManager();
5051
5152 static ApplicationManager *singleton();
5253
5354 enum MoreRoles {
54− RoleSurface = RoleScreenshot+1,
55+ RoleSurface = RoleFocused+1,
5556 RoleFullscreen,
5657 RoleApplication,
5758 };
@@ -97,7 +98,6 @@ class ApplicationManager : public ApplicationManagerInterface {
9798 Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, const QStringList &arguments = QStringList()) override;
9899 Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, ExecFlags flags, const QStringList &arguments = QStringList());
99100 Q_INVOKABLE bool stopApplication(const QString &appId) override;
100− Q_INVOKABLE bool updateScreenshot(const QString &appId) override;
101101
102102 QString focusedApplicationId() const override;
103103 bool suspended() const;
@@ -105,6 +105,7 @@ class ApplicationManager : public ApplicationManagerInterface {
105105
106106 // Only for testing
107107 Q_INVOKABLE QStringList availableApplications();
108+ Q_INVOKABLE ApplicationInfo* add(QString appId);
108109
109110 QModelIndex findIndex(ApplicationInfo* application);
110111
@@ -115,15 +116,18 @@ class ApplicationManager : public ApplicationManagerInterface {
115116 void focusRequested(const QString &appId);
116117 void emptyChanged(bool empty);
117118
119+ private Q_SLOTS:
120+ void onWindowCreatedTimerTimeout();
121+
118122 private:
119123 void add(ApplicationInfo *application);
120124 void remove(ApplicationInfo* application);
121− void showApplicationWindow(ApplicationInfo *application);
122125 void buildListOfAvailableApplications();
123− void generateQmlStrings(ApplicationInfo *application);
126+ void onWindowCreated();
124127 bool m_suspended;
125128 QList<ApplicationInfo*> m_runningApplications;
126129 QList<ApplicationInfo*> m_availableApplications;
130+ QTimer m_windowCreatedTimer;
127131
128132 static ApplicationManager *the_application_manager;
129133};
tests/mocks/Unity/Application/ApplicationScreenshotProvider.cpp+2−4
@@ -44,11 +44,9 @@ QImage ApplicationScreenshotProvider::requestImage(const QString &imageId, QSize
4444 return QImage();
4545 }
4646
47− QString filePath = QString("%1/Dash/graphics/phone/screenshots/%2@12.png").arg(qmlDirectory()).arg(app->icon().toString());
48−
4947 QImage image;
50− if (!image.load(filePath)) {
51− qWarning() << "failed loading app image" << filePath;
48+ if (!image.load(app->screenshot())) {
49+ qWarning() << "failed loading app image" << app->screenshot();
5250 }
5351
5452
tests/mocks/Unity/Application/CMakeLists.txt+1−3
@@ -1,15 +1,13 @@
1−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application)
1+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=3)
22
33set(FakeUnityApplicationQml_SOURCES
44 plugin.cpp
55 ApplicationDBusAdaptor.cpp
66 ApplicationInfo.cpp
7− ApplicationImage.cpp
87 ApplicationManager.cpp
98 ApplicationScreenshotProvider.cpp
109 MirSurfaceItem.cpp
1110 SurfaceManager.cpp
12− VirtualKeyboard.cpp
1311 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
1412 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
1513)
tests/mocks/Unity/Application/MirSurfaceItem.cpp+87−16
@@ -17,33 +17,67 @@
1717#include "MirSurfaceItem.h"
1818#include "ApplicationInfo.h"
1919
20−#include <QPainter>
20+#include <paths.h>
21+
22+#include <QGuiApplication>
23+#include <QQuickView>
24+#include <QQmlProperty>
2125#include <QQmlEngine>
26+#include <QString>
27+
28+#include <QDebug>
2229
2330MirSurfaceItem::MirSurfaceItem(const QString& name,
2431 MirSurfaceItem::Type type,
2532 MirSurfaceItem::State state,
2633 const QUrl& screenshot,
34+ const QString &qmlFilePath,
2735 QQuickItem *parent)
28− : QQuickPaintedItem(parent)
36+ : QQuickItem(parent)
2937 , m_application(nullptr)
3038 , m_name(name)
3139 , m_type(type)
3240 , m_state(state)
33− , m_img(screenshot.isLocalFile() ? screenshot.toLocalFile() : screenshot.toString())
3441 , m_parentSurface(nullptr)
35− , m_haveInputMethod(false)
42+ , m_qmlItem(nullptr)
43+ , m_screenshotUrl(screenshot)
3644{
3745 qDebug() << "MirSurfaceItem::MirSurfaceItem() " << this->name();
3846
3947 QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
4048
41− // The virtual keyboard (input method) has a big transparent area so that
42− // content behind it show through
43− setFillColor(Qt::transparent);
44−
4549 connect(this, &QQuickItem::focusChanged,
4650 this, &MirSurfaceItem::onFocusChanged);
51+
52+ // The assumptions I make here really should hold.
53+ QQuickView *quickView =
54+ qobject_cast<QQuickView*>(QGuiApplication::topLevelWindows()[0]);
55+
56+ QString qmlComponentFilePath;
57+ if (!qmlFilePath.isEmpty()) {
58+ qmlComponentFilePath.append(qmlFilePath);
59+ } else {
60+ qmlComponentFilePath = QString("%1/Unity/Application/MirSurfaceItem.qml")
61+ .arg(mockPluginsDir());
62+ }
63+
64+ m_qmlContentComponent = new QQmlComponent(quickView->engine(), qmlComponentFilePath);
65+
66+ switch (m_qmlContentComponent->status()) {
67+ case QQmlComponent::Ready:
68+ createQmlContentItem();
69+ break;
70+ case QQmlComponent::Loading:
71+ connect(m_qmlContentComponent, &QQmlComponent::statusChanged,
72+ this, &MirSurfaceItem::onComponentStatusChanged);
73+ break;
74+ case QQmlComponent::Error:
75+ printComponentErrors();
76+ qFatal("MirSurfaceItem: failed to create content component.");
77+ break;
78+ default:
79+ qFatal("MirSurfaceItem: Unhandled component status");
80+ }
4781}
4882
4983MirSurfaceItem::~MirSurfaceItem()
@@ -61,10 +95,11 @@ MirSurfaceItem::~MirSurfaceItem()
6195 m_application->removeSurface(this);
6296}
6397
64−void MirSurfaceItem::paint(QPainter * painter)
98+void MirSurfaceItem::printComponentErrors()
6599{
66− if (!m_img.isNull()) {
67− painter->drawImage(contentsBoundingRect(), m_img, QRect(QPoint(0,0), m_img.size()));
100+ QList<QQmlError> errors = m_qmlContentComponent->errors();
101+ for (int i = 0; i < errors.count(); ++i) {
102+ qDebug() << errors[i];
68103 }
69104}
70105
@@ -155,19 +190,24 @@ MirSurfaceItem* MirSurfaceItem::childSurfaceAt(QQmlListProperty<MirSurfaceItem>
155190}
156191
157192
158−void MirSurfaceItem::touchEvent(QTouchEvent * event)
193+void MirSurfaceItem::onQmlWantInputMethodChanged()
159194{
160− if (event->type() == QEvent::TouchBegin && hasFocus()) {
195+ QQmlProperty prop(m_qmlItem, "wantInputMethod");
196+ bool wantInputMethod = prop.read().toBool();
197+
198+ if (hasFocus() && wantInputMethod) {
161199 Q_EMIT inputMethodRequested();
162− m_haveInputMethod = true;
163200 }
164201}
165202
166203void MirSurfaceItem::onFocusChanged()
167204{
168− if (!hasFocus() && m_haveInputMethod) {
205+ QQmlProperty prop(m_qmlItem, "wantInputMethod");
206+ bool wantInputMethod = prop.read().toBool();
207+
208+ if (!hasFocus() && wantInputMethod) {
169209 Q_EMIT inputMethodDismissed();
170− m_haveInputMethod = false;
210+ prop.write(QVariant::fromValue(false));
171211 }
172212}
173213
@@ -178,3 +218,34 @@ void MirSurfaceItem::setState(MirSurfaceItem::State newState)
178218 Q_EMIT stateChanged(newState);
179219 }
180220}
221+
222+void MirSurfaceItem::onComponentStatusChanged(QQmlComponent::Status status)
223+{
224+ if (status == QQmlComponent::Ready) {
225+ createQmlContentItem();
226+ }
227+}
228+
229+void MirSurfaceItem::createQmlContentItem()
230+{
231+ qDebug() << "MirSurfaceItem::createQmlContentItem()";
232+
233+ m_qmlItem = qobject_cast<QQuickItem*>(m_qmlContentComponent->create());
234+ m_qmlItem->setParentItem(this);
235+
236+ setImplicitWidth(m_qmlItem->implicitWidth());
237+ setImplicitHeight(m_qmlItem->implicitHeight());
238+
239+ {
240+ QQmlProperty screenshotSource(m_qmlItem, "screenshotSource");
241+ screenshotSource.write(QVariant::fromValue(m_screenshotUrl));
242+ }
243+
244+ {
245+ QQmlProperty prop(m_qmlItem, "wantInputMethod");
246+ if (prop.type() == QQmlProperty::Property) {
247+ bool ok = prop.connectNotifySignal(this, SLOT(onQmlWantInputMethodChanged()));
248+ if (!ok) qCritical("MirSurfaceItem: failed to connect to wantInputMethod notify signal");
249+ }
250+ }
251+}
tests/mocks/Unity/Application/MirSurfaceItem.h+14−11
@@ -17,12 +17,13 @@
1717#ifndef MIRSURFACEITEM_H
1818#define MIRSURFACEITEM_H
1919
20−#include <QQuickPaintedItem>
21−#include <QImage>
20+#include <QQuickItem>
21+#include <QQmlComponent>
22+#include <QUrl>
2223
2324class ApplicationInfo;
2425
25−class MirSurfaceItem : public QQuickPaintedItem
26+class MirSurfaceItem : public QQuickItem
2627{
2728 Q_OBJECT
2829 Q_ENUMS(Type)
@@ -59,6 +60,7 @@ public:
5960 Type type,
6061 State state,
6162 const QUrl& screenshot,
63+ const QString &qmlFilePath = QString(),
6264 QQuickItem *parent = 0);
6365 ~MirSurfaceItem();
6466
@@ -76,9 +78,6 @@ public:
7678 Q_INVOKABLE void setState(State newState);
7779 Q_INVOKABLE void release();
7880
79− void paint(QPainter * painter) override;
80− void touchEvent(QTouchEvent * event) override;
81−
8281Q_SIGNALS:
8382 void typeChanged(Type);
8483 void stateChanged(State);
@@ -93,9 +92,8 @@ Q_SIGNALS:
9392
9493private Q_SLOTS:
9594 void onFocusChanged();
96−
97−protected:
98− const QImage &screenshotImage() { return m_img; }
95+ void onComponentStatusChanged(QQmlComponent::Status status);
96+ void onQmlWantInputMethodChanged();
9997
10098private:
10199 void addChildSurface(MirSurfaceItem* surface);
@@ -105,15 +103,20 @@ private:
105103 static int childSurfaceCount(QQmlListProperty<MirSurfaceItem> *prop);
106104 static MirSurfaceItem* childSurfaceAt(QQmlListProperty<MirSurfaceItem> *prop, int index);
107105
106+ void createQmlContentItem();
107+ void printComponentErrors();
108+
108109 ApplicationInfo* m_application;
109110 const QString m_name;
110111 const Type m_type;
111112 State m_state;
112− const QImage m_img;
113113
114114 MirSurfaceItem* m_parentSurface;
115115 QList<MirSurfaceItem*> m_children;
116− bool m_haveInputMethod;
116+
117+ QQmlComponent *m_qmlContentComponent;
118+ QQuickItem *m_qmlItem;
119+ QUrl m_screenshotUrl;
117120};
118121
119122Q_DECLARE_METATYPE(MirSurfaceItem*)
tests/mocks/Unity/Application/MirSurfaceItem.qmlnew file+57
@@ -0,0 +1,57 @@
1+/*
2+ * Copyright 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 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+
17+import QtQuick 2.0
18+
19+Rectangle {
20+ objectName: "fakeSurfaceQML"
21+ id: root
22+ color: "pink"
23+
24+ anchors.fill: parent
25+
26+ implicitWidth: units.gu(40)
27+ implicitHeight: units.gu(70)
28+
29+ property alias screenshotSource: screenshotImage.source
30+
31+ property bool wantInputMethod: false
32+
33+ property int touchPressCount: 0
34+ property int touchReleaseCount: 0
35+
36+ Image {
37+ id: screenshotImage
38+ anchors.fill: parent
39+ fillMode: Image.Stretch
40+ }
41+
42+ Text {
43+ anchors.fill: parent
44+ text: "SURFACE"
45+ color: "yellow"
46+ font.bold: true
47+ fontSizeMode: Text.Fit
48+ minimumPixelSize: 10; font.pixelSize: 200
49+ verticalAlignment: Text.AlignVCenter
50+ }
51+
52+ MultiPointTouchArea {
53+ anchors.fill: parent
54+ onPressed: { root.wantInputMethod = true; root.touchPressCount++; }
55+ onReleased: { root.touchReleaseCount++; }
56+ }
57+}
tests/mocks/Unity/Application/SurfaceManager.cpp+14−3
@@ -16,9 +16,8 @@
1616
1717#include "SurfaceManager.h"
1818
19+#include <paths.h>
1920#include "MirSurfaceItem.h"
20−#include "VirtualKeyboard.h"
21−
2221
2322SurfaceManager *SurfaceManager::the_surface_manager = nullptr;
2423
@@ -66,7 +65,19 @@ void SurfaceManager::hideInputMethod()
6665MirSurfaceItem *SurfaceManager::inputMethodSurface()
6766{
6867 if (!m_virtualKeyboard) {
69− m_virtualKeyboard = new VirtualKeyboard(MirSurfaceItem::Minimized);
68+
69+ QString screenshotPath = QString("file://%1/Dash/graphics/phone/screenshots/vkb_portrait.png")
70+ .arg(qmlDirectory());
71+
72+ QString qmlFilePath = QString("%1/Unity/Application/VirtualKeyboard.qml")
73+ .arg(mockPluginsDir());
74+
75+ m_virtualKeyboard = new MirSurfaceItem(
76+ "input-method",
77+ MirSurfaceItem::InputMethod,
78+ MirSurfaceItem::Minimized,
79+ screenshotPath,
80+ qmlFilePath);
7081 Q_EMIT surfaceCreated(m_virtualKeyboard);
7182 }
7283 return m_virtualKeyboard;
tests/mocks/Unity/Application/SurfaceManager.h+1−2
@@ -20,7 +20,6 @@
2020#include <QObject>
2121
2222class MirSurfaceItem;
23−class VirtualKeyboard;
2423
2524class SurfaceManager : public QObject
2625{
@@ -48,7 +47,7 @@ private Q_SLOTS:
4847
4948private:
5049 static SurfaceManager *the_surface_manager;
51− VirtualKeyboard *m_virtualKeyboard;
50+ MirSurfaceItem *m_virtualKeyboard;
5251};
5352
5453#endif // SURFACEMANAGER_H
tests/mocks/Unity/Application/VirtualKeyboard.cppdeleted−55
@@ -1,55 +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−#include "VirtualKeyboard.h"
18−
19−#include <paths.h>
20−
21−VirtualKeyboard::VirtualKeyboard(State state, QQuickItem *parent)
22− : MirSurfaceItem("input-method",
23− MirSurfaceItem::InputMethod,
24− state,
25− QString("file://%1/Dash/graphics/phone/screenshots/vkb_portrait.png").arg(qmlDirectory()),
26− parent)
27−{
28−}
29−
30−void VirtualKeyboard::touchEvent(QTouchEvent *event)
31−{
32− if (event->type() == QEvent::TouchBegin && !hasTouchInsideKeyboard(event)) {
33− event->ignore();
34− }
35−}
36−
37−bool VirtualKeyboard::hasTouchInsideKeyboard(QTouchEvent *event)
38−{
39− const QList<QTouchEvent::TouchPoint> &touchPoints = event->touchPoints();
40− for (int i = 0; i < touchPoints.count(); ++i) {
41− QPoint pos = touchPoints.at(i).pos().toPoint();
42−
43− // Map to image coords
44− int imageX = (int)( ( ((qreal)pos.x()) / width() ) * ((qreal)screenshotImage().size().width()) );
45− int imageY = (int)( ( ((qreal)pos.y()) / height() ) * ((qreal)screenshotImage().size().height()) );
46−
47− QRgb pixelHit = screenshotImage().pixel(imageX, imageY);
48−
49− // The keyboard depicted in the image is in its opaque part.
50− if (qAlpha(pixelHit) != 0) {
51− return true;
52− }
53− }
54− return false;
55−}
tests/mocks/Unity/Application/VirtualKeyboard.qmlnew file+40
@@ -0,0 +1,40 @@
1+/*
2+ * Copyright 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 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+
17+import QtQuick 2.0
18+
19+Item {
20+ implicitWidth: units.gu(40)
21+ implicitHeight: units.gu(70)
22+
23+ anchors.fill: parent
24+
25+ property alias screenshotSource: screenshotImage.source
26+
27+ property bool landscape: width > height
28+
29+ Image {
30+ id: screenshotImage
31+ height: landscape ? parent.height * 0.4 : width * 0.6
32+ anchors.bottom: parent.bottom
33+ anchors.left: parent.left
34+ anchors.right: parent.right
35+
36+ MultiPointTouchArea {
37+ anchors.fill: parent
38+ }
39+ }
40+}
tests/mocks/Unity/Application/plugin.cpp−3
@@ -16,7 +16,6 @@
1616
1717#include "plugin.h"
1818#include "ApplicationInfo.h"
19−#include "ApplicationImage.h"
2019#include "ApplicationManager.h"
2120#include "ApplicationScreenshotProvider.h"
2221#include "MirSurfaceItem.h"
@@ -49,8 +48,6 @@ void FakeUnityApplicationQmlPlugin::registerTypes(const char *uri)
4948 qmlRegisterType<ApplicationInfo>(uri, 0, 1, "ApplicationInfo");
5049
5150 qmlRegisterUncreatableType<MirSurfaceItem>(uri, 0, 1, "MirSurfaceItem", "MirSurfaceItem can't be instantiated from QML");
52−
53− qmlRegisterType<ApplicationImage>(uri, 0, 1, "ApplicationImage");
5451}
5552
5653void FakeUnityApplicationQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
tests/mocks/Unity/Application/qmldir−3
@@ -1,6 +1,3 @@
11module Unity.Application
22plugin FakeUnityApplicationQml
33typeinfo Application.qmltypes
4−
5−InputFilterArea 0.1 InputFilterArea.qml
6−OSKController 0.1 OSKController.qml
tests/mocks/Unity/CMakeLists.txt+3
@@ -1,4 +1,5 @@
11add_subdirectory(Application)
2+add_subdirectory(Connectivity)
23add_subdirectory(Indicators)
34add_subdirectory(Launcher)
45add_subdirectory(Notifications)
@@ -23,6 +24,7 @@ set(UnityQML_SOURCES
2324 fake_scope.cpp
2425 fake_scopes.cpp
2526 fake_scopesoverview.cpp
27+ fake_settingsmodel.cpp
2628 fake_categories.cpp
2729 fake_navigation.cpp
2830 fake_resultsmodel.cpp
@@ -38,6 +40,7 @@ set(UnityQML_SOURCES
3840 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ResultsModelInterface.h
3941 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ScopeInterface.h
4042 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ScopesInterface.h
43+ ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/SettingsModelInterface.h
4144)
4245
4346add_library(FakeUnityQml MODULE ${UnityQML_SOURCES})
tests/mocks/Unity/Connectivity/CMakeLists.txtnew file+10
@@ -0,0 +1,10 @@
1+set(MOCK_CONNECTIVITY_SOURCES
2+ plugin.cpp
3+ MockConnectivity.cpp
4+)
5+
6+add_library(MockConnectivity MODULE ${MOCK_CONNECTIVITY_SOURCES})
7+
8+qt5_use_modules(MockConnectivity Qml Quick Core)
9+
10+add_unity8_mock(Unity.Connectivity 0.1 Unity/Connectivity TARGETS MockConnectivity)
tests/mocks/Unity/Connectivity/Connectivity.qmltypesnew file+20
@@ -0,0 +1,20 @@
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 Unity.Connectivity 0.1 tests/mocks'
8+
9+Module {
10+ Component {
11+ name: "MockConnectivity"
12+ prototype: "QObject"
13+ exports: ["Unity.Connectivity/Connectivity 0.1"]
14+ isCreatable: false
15+ isSingleton: true
16+ exportMetaObjectRevisions: [0]
17+ Signal { name: "unlockingAllModems" }
18+ Method { name: "unlockAllModems" }
19+ }
20+}
tests/mocks/Unity/Application/InputFilterArea.qml → tests/mocks/Unity/Connectivity/MockConnectivity.cpprenamed+10−4
@@ -1,5 +1,5 @@
11/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
33 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
@@ -14,8 +14,14 @@
1414 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1515 */
1616
17−import QtQuick 2.0;
17+#include "MockConnectivity.h"
1818
19−Item {
20− property bool blockInput: false
19+MockConnectivity::MockConnectivity(QObject *parent)
20+ : QObject(parent)
21+{
22+}
23+
24+void MockConnectivity::unlockAllModems()
25+{
26+ Q_EMIT unlockingAllModems();
2127}
tests/mocks/Unity/Connectivity/MockConnectivity.hnew file+36
@@ -0,0 +1,36 @@
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_CONNECTIVITY_H
18+#define MOCK_CONNECTIVITY_H
19+
20+#include <QObject>
21+
22+class MockConnectivity : public QObject
23+{
24+ Q_OBJECT
25+ Q_DISABLE_COPY(MockConnectivity)
26+
27+public:
28+ explicit MockConnectivity(QObject *parent = 0);
29+
30+ Q_INVOKABLE void unlockAllModems();
31+
32+Q_SIGNALS:
33+ void unlockingAllModems(); // only for mock
34+};
35+
36+#endif // MOCK_CONNECTIVITY_H
tests/mocks/Unity/Connectivity/plugin.cppnew file+34
@@ -0,0 +1,34 @@
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 "MockConnectivity.h"
19+
20+#include <QtQml>
21+
22+static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
23+{
24+ Q_UNUSED(engine)
25+ Q_UNUSED(scriptEngine)
26+ return new MockConnectivity();
27+}
28+
29+void BackendPlugin::registerTypes(const char *uri)
30+{
31+ Q_ASSERT(uri == QLatin1String("Unity.Connectivity"));
32+
33+ qmlRegisterSingletonType<MockConnectivity>(uri, 0, 1, "Connectivity", service_provider);
34+}
tests/mocks/Unity/Connectivity/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_CONNECTIVITY_PLUGIN_H
18+#define MOCK_CONNECTIVITY_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_CONNECTIVITY_PLUGIN_H
tests/mocks/Unity/Connectivity/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module Unity.Connectivity
2+plugin MockConnectivity
3+typeinfo Connectivity.qmltypes
tests/mocks/Unity/Indicators/CMakeLists.txt+6−1
@@ -14,6 +14,7 @@ set(IndicatorsFakeQml_SOURCES
1414 fakeplugin.cpp
1515 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/indicators.h
1616 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/menucontentactivator.cpp
17+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelcache.cpp
1718 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelstack.cpp
1819 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/visibleindicatorsmodel.cpp
1920 fakeindicatorsmodel.cpp
@@ -33,7 +34,11 @@ add_library(IndicatorsFakeQml SHARED
3334)
3435add_definitions(-DUNITYINDICATORS_LIBRARY)
3536
36−target_link_libraries(IndicatorsFakeQml)
37+add_dependencies(IndicatorsFakeQml QMenuModelQml)
38+target_link_libraries(IndicatorsFakeQml
39+ -L${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel
40+ -lqmenumodel
41+)
3742
3843qt5_use_modules(IndicatorsFakeQml Core Qml Quick)
3944
tests/mocks/Unity/Indicators/fakeplugin.cpp+9
@@ -26,9 +26,16 @@
2626#include "fakeindicatorsmodel.h"
2727#include "indicators.h"
2828#include "menucontentactivator.h"
29+#include "unitymenumodelcache.h"
2930#include "unitymenumodelstack.h"
3031#include "visibleindicatorsmodel.h"
3132
33+static QObject* menuModelCacheSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
34+ Q_UNUSED(engine);
35+ Q_UNUSED(scriptEngine);
36+ return new UnityMenuModelCache;
37+}
38+
3239void IndicatorsFakePlugin::registerTypes(const char * uri)
3340{
3441 Q_INIT_RESOURCE(indicators_fake);
@@ -41,6 +48,8 @@ void IndicatorsFakePlugin::registerTypes(const char * uri)
4148 qmlRegisterType<UnityMenuModelStack>(uri, 0, 1, "UnityMenuModelStack");
4249 qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
4350
51+ qmlRegisterSingletonType<UnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
52+
4453 // external uncreatables
4554 qmlRegisterUncreatableType<MenuContentState>(uri, 0, 1, "MenuContentState", "Can't create MenuContentState class");
4655 qmlRegisterUncreatableType<ActionState>(uri, 0, 1, "ActionState", "Can't create ActionState class");
tests/mocks/Unity/Indicators/qmldir−1
@@ -2,7 +2,6 @@ module Unity.Indicators
22plugin IndicatorsFakeQml
33typeinfo Indicators.qmltypes
44
5−CachedUnityMenuModel 0.1 CachedUnityMenuModel.qml
65IndicatorsModel 0.1 IndicatorsModel.qml
76FakeMenuPage 0.1 FakeMenuPage.qml
87RootActionState 0.1 RootActionState.qml
tests/mocks/Unity/fake_navigation.cpp+6−1
@@ -32,6 +32,7 @@ Navigation::Navigation(const QString& navigationId, const QString& label, const
3232{
3333 QTimer::singleShot(1500, this, SLOT(slotLoaded()));
3434 connect(scope, SIGNAL(currentNavigationIdChanged()), this, SLOT(slotCurrentNavigationChanged()));
35+ connect(scope, SIGNAL(currentAltNavigationIdChanged()), this, SLOT(slotCurrentNavigationChanged()));
3536}
3637
3738QString Navigation::navigationId() const
@@ -106,7 +107,11 @@ QVariant Navigation::data(const QModelIndex &index, int role) const
106107 case RoleHasChildren:
107108 return m_navigationId == "root" && index.row() != 3;
108109 case RoleIsActive:
109− return m_scope->currentNavigationId() == data(index, RoleNavigationId);
110+ if (m_navigationId.startsWith("alt")) {
111+ return m_scope->currentAltNavigationId() == data(index, RoleNavigationId);
112+ } else {
113+ return m_scope->currentNavigationId() == data(index, RoleNavigationId);
114+ }
110115 }
111116 return QVariant();
112117}
tests/mocks/Unity/fake_scope.cpp+18−3
@@ -22,6 +22,7 @@
2222#include "fake_navigation.h"
2323#include "fake_resultsmodel.h"
2424#include "fake_scopes.h"
25+#include "fake_settingsmodel.h"
2526
2627Scope::Scope(Scopes* parent) : Scope(QString(), QString(), false, parent)
2728{
@@ -39,6 +40,7 @@ Scope::Scope(QString const& id, QString const& name, bool favorite, Scopes* pare
3940 , m_previewRendererName("preview-generic")
4041 , m_categories(new Categories(categories, this))
4142 , m_openScope(nullptr)
43+ , m_settings(new SettingsModel(this))
4244{
4345}
4446
@@ -94,7 +96,7 @@ unity::shell::scopes::CategoriesInterface* Scope::categories() const
9496
9597unity::shell::scopes::SettingsModelInterface* Scope::settings() const
9698{
97− return nullptr;
99+ return m_settings;
98100}
99101
100102QString Scope::noResultsHint() const
@@ -224,9 +226,17 @@ QVariantMap Scope::customizations() const
224226 m["background-color"] = "red";
225227 m["foreground-color"] = "blue";
226228 m["page-header"] = h;
229+ } else if (m_id == "MockScope4") {
230+ h["navigation-background"] = QUrl("../../../tests/qmltests/Dash/artwork/background.png");
231+ m["page-header"] = h;
227232 } else if (m_id == "MockScope5") {
228233 h["background"] = "gradient:///lightgrey/grey";
229234 h["logo"] = QUrl("../../../tests/qmltests/Dash/tst_PageHeader/logo-ubuntu-orange.svg");
235+ h["divider-color"] = "red";
236+ h["navigation-background"] = "color:///black";
237+ m["page-header"] = h;
238+ } else if (m_id == "MockScope6") {
239+ h["navigation-background"] = "gradient:///blue/red";
230240 m["page-header"] = h;
231241 }
232242 return m;
@@ -261,11 +271,16 @@ unity::shell::scopes::NavigationInterface* Scope::getAltNavigation(QString const
261271
262272 QString parentId;
263273 QString parentLabel;
264− if (id.startsWith("altmiddle")) {
274+ if (id != "altroot") {
265275 parentId = "altroot";
266276 parentLabel = "altroot";
267277 }
268− return new Navigation(id, id, "all"+id, parentId, parentLabel, this);
278+ auto result = new Navigation(id, id, "all"+id, parentId, parentLabel, this);
279+ if (id == "altroot") {
280+ m_currentAltNavigationId = "altrootChild1";
281+ Q_EMIT currentAltNavigationIdChanged();
282+ }
283+ return result;
269284}
270285
271286void Scope::setNavigationState(const QString &navigationId, bool isAltNavigation)
tests/mocks/Unity/fake_scope.h+1
@@ -96,6 +96,7 @@ protected:
9696
9797 unity::shell::scopes::CategoriesInterface* m_categories;
9898 unity::shell::scopes::ScopeInterface* m_openScope;
99+ unity::shell::scopes::SettingsModelInterface* m_settings;
99100};
100101
101102#endif // FAKE_SCOPE_H
tests/mocks/Unity/fake_scopes.h+1−1
@@ -56,7 +56,7 @@ public:
5656 // This is used as part of implementation of the other C++ code, not API
5757 QList<Scope*> scopes() const;
5858 QList<Scope*> allScopes() const;
59− Scope* getScopeFromAll(const QString& scope_id) const;
59+ Q_INVOKABLE Scope* getScopeFromAll(const QString& scope_id) const;
6060
6161private Q_SLOTS:
6262 void updateScopes();
tests/mocks/Unity/fake_settingsmodel.cppnew file+95
@@ -0,0 +1,95 @@
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 "fake_settingsmodel.h"
18+
19+SettingsModel::SettingsModel(QObject* parent) :
20+ SettingsModelInterface(parent) {
21+ {
22+ QVariantMap parameters;
23+ m_data << QSharedPointer<Data>(new Data("boolean-setting", "Boolean Setting", "boolean", parameters, true));
24+ }
25+ {
26+ QVariantMap parameters;
27+ parameters["values"] = QVariantList() << "First" << "Second" << "Third";
28+ m_data << QSharedPointer<Data>(new Data("list-setting", "List Setting", "list", parameters, 1));
29+ }
30+ {
31+ QVariantMap parameters;
32+ m_data << QSharedPointer<Data>(new Data("number-setting", "Number Setting", "number", parameters, 1.23));
33+ }
34+ {
35+ QVariantMap parameters;
36+ m_data << QSharedPointer<Data>(new Data("string-setting", "String Setting", "string", parameters, "flibble"));
37+ }
38+}
39+
40+QVariant SettingsModel::data(const QModelIndex& index, int role) const {
41+ int row = index.row();
42+ QVariant result;
43+
44+ if (row < m_data.size()) {
45+ auto data = m_data[row];
46+
47+ switch (role) {
48+ case Roles::RoleSettingId:
49+ result = data->id;
50+ break;
51+ case Roles::RoleDisplayName:
52+ result = data->displayName;
53+ break;
54+ case Roles::RoleType:
55+ result = data->type;
56+ break;
57+ case Roles::RoleProperties:
58+ result = data->properties;
59+ break;
60+ case Roles::RoleValue: {
61+ result = data->value;
62+ break;
63+ }
64+ default:
65+ break;
66+ }
67+ }
68+
69+ return result;
70+}
71+
72+bool SettingsModel::setData(const QModelIndex &index, const QVariant &value, int role) {
73+ int row = index.row();
74+ if (row < m_data.size()) {
75+ switch (role) {
76+ case SettingsModelInterface::RoleValue: {
77+ auto data = m_data[row];
78+ data->value = value;
79+ return true;
80+ }
81+ default:
82+ break;
83+ }
84+ }
85+
86+ return false;
87+}
88+
89+int SettingsModel::rowCount(const QModelIndex&) const {
90+ return count();
91+}
92+
93+int SettingsModel::count() const {
94+ return m_data.size();
95+}
tests/mocks/Unity/fake_settingsmodel.hnew 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+#ifndef FAKE_SETTINGSMODEL_H
18+#define FAKE_SETTINGSMODEL_H
19+
20+#include <unity/shell/scopes/SettingsModelInterface.h>
21+
22+#include <QList>
23+#include <QSharedPointer>
24+
25+class SettingsModel: public unity::shell::scopes::SettingsModelInterface {
26+Q_OBJECT
27+
28+ struct Data {
29+ QString id;
30+ QString displayName;
31+ QString type;
32+ QVariant properties;
33+ QVariant value;
34+
35+ Data(QString const& id_, QString const& displayName_,
36+ QString const& type_, QVariant const& properties_,
37+ QVariant const& value_) :
38+ id(id_), displayName(displayName_), type(type_),
39+ properties(properties_), value(value_) {}
40+ };
41+
42+public:
43+ explicit SettingsModel(QObject* parent = 0);
44+ ~SettingsModel() = default;
45+ QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
46+ bool setData(const QModelIndex&index, const QVariant& value, int role = Qt::EditRole) override;
47+ int rowCount(const QModelIndex& parent = QModelIndex()) const override;
48+ int count() const override;
49+
50+protected:
51+ QList<QSharedPointer<Data>> m_data;
52+};
53+
54+#endif // FAKE_SETTINGSMODEL_H
tests/mocks/Unity/fake_unity_plugin.cpp+2
@@ -26,6 +26,7 @@
2626#include "fake_previewmodel.h"
2727#include "fake_previewwidgetmodel.h"
2828#include "fake_resultsmodel.h"
29+#include "fake_settingsmodel.h"
2930
3031// External
3132#include <glib-object.h>
@@ -43,6 +44,7 @@ void FakeUnityPlugin::registerTypes(const char *uri)
4344 qmlRegisterType<Scopes>(uri, 0, 2, "Scopes");
4445 qmlRegisterType<Scope>(uri, 0, 2, "MockScope");
4546 qmlRegisterUncreatableType<unity::shell::scopes::ScopeInterface>(uri, 0, 2, "Scope", "Can't create Scope object in QML.");
47+ qmlRegisterUncreatableType<unity::shell::scopes::SettingsModelInterface>(uri, 0, 2, "SettingsModel", "Can't create SettingsModel object in QML.");
4648 qmlRegisterUncreatableType<unity::shell::scopes::NavigationInterface>(uri, 0, 2, "Navigation", "Can't create Navigation object in QML.");
4749 qmlRegisterUncreatableType<unity::shell::scopes::CategoriesInterface>(uri, 0, 2, "Categories", "Can't create Categories object in QML.");
4850 qmlRegisterUncreatableType<unity::shell::scopes::PreviewModelInterface>(uri, 0, 2, "PreviewModel", "Can't create new PreviewModel in QML. Get them from PreviewStack instance.");
tests/plugins/Dash/cardcreator/2.res+3−3
@@ -26,7 +26,7 @@ Loader {
2626 gradientColor: getColor(1) || color;
2727 anchors.fill: parent;
2828 image: backgroundImage.source ? backgroundImage : null;
29− property real luminance: 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
29+ property real luminance: Style.luminance(color);
3030 property Image backgroundImage: Image {
3131 objectName: "backgroundImage";
3232 source: {
@@ -94,7 +94,7 @@ Image {
9494 wrapMode: Text.Wrap;
9595 maximumLineCount: 2;
9696 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
97− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
97+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
9898 visible: showHeader ;
9999 text: root.title;
100100 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -112,7 +112,7 @@ Image {
112112 elide: Text.ElideRight;
113113 fontSize: "small";
114114 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
115− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
115+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
116116 visible: titleLabel.visible && titleLabel.text;
117117 text: cardData && cardData["subtitle"] || "";
118118 font.weight: Font.Light;
tests/plugins/Dash/cardcreator/5.res+5−3
@@ -69,7 +69,7 @@ Loader {
6969 sourceComponent: ShaderEffect {
7070 id: overlay;
7171 height: (fixedHeaderHeight > 0 ? fixedHeaderHeight : headerHeight) + units.gu(2);
72− property real luminance: 0.2126 * overlayColor.r + 0.7152 * overlayColor.g + 0.0722 * overlayColor.b;
72+ property real luminance: Style.luminance(overlayColor);
7373 property color overlayColor: cardData && cardData["overlayColor"] || "#99000000";
7474 property var source: ShaderEffectSource {
7575 id: shaderSource;
@@ -103,6 +103,7 @@ Label {
103103 id: titleLabel;
104104 objectName: "titleLabel";
105105 anchors { right: parent.right;
106+ rightMargin: units.gu(1);
106107 left: parent.left;
107108 leftMargin: units.gu(1);
108109 top: overlayLoader.top;
@@ -113,7 +114,7 @@ Label {
113114 wrapMode: Text.Wrap;
114115 maximumLineCount: 2;
115116 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
116− color: overlayLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
117+ color: root.scopeStyle ? root.scopeStyle.getTextColor(overlayLoader.item.luminance) : (overlayLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
117118 visible: showHeader && overlayLoader.active;
118119 text: root.title;
119120 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -124,6 +125,7 @@ Label {
124125 objectName: "subtitleLabel";
125126 anchors { left: titleLabel.left;
126127 leftMargin: titleLabel.leftMargin;
128+ rightMargin: units.gu(1);
127129 right: titleLabel.right;
128130 top: titleLabel.bottom;
129131 }
@@ -131,7 +133,7 @@ Label {
131133 elide: Text.ElideRight;
132134 fontSize: "small";
133135 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
134− color: overlayLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
136+ color: root.scopeStyle ? root.scopeStyle.getTextColor(overlayLoader.item.luminance) : (overlayLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
135137 visible: titleLabel.visible && titleLabel.text;
136138 text: cardData && cardData["subtitle"] || "";
137139 font.weight: Font.Light;
tests/plugins/Dash/cardcreator/6.res+4−4
@@ -26,7 +26,7 @@ Loader {
2626 gradientColor: getColor(1) || color;
2727 anchors.fill: parent;
2828 image: backgroundImage.source ? backgroundImage : null;
29− property real luminance: 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
29+ property real luminance: Style.luminance(color);
3030 property Image backgroundImage: Image {
3131 objectName: "backgroundImage";
3232 source: {
@@ -70,7 +70,7 @@ Item {
7070 wrapMode: Text.Wrap;
7171 maximumLineCount: 2;
7272 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
73− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
73+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
7474 visible: showHeader ;
7575 text: root.title;
7676 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -88,7 +88,7 @@ Item {
8888 elide: Text.ElideRight;
8989 fontSize: "small";
9090 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
91− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
91+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
9292 visible: titleLabel.visible && titleLabel.text;
9393 text: cardData && cardData["subtitle"] || "";
9494 font.weight: Font.Light;
@@ -103,7 +103,7 @@ Item {
103103 rightMargin: units.gu(1);
104104 }
105105 source: cardData && cardData["emblem"] || "";
106− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
106+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
107107 width: height;
108108 height: source != "" ? titleLabel.font.pixelSize : 0;
109109 }
tests/plugins/Dash/cardcreator/7.res+5−4
@@ -26,7 +26,7 @@ Loader {
2626 gradientColor: getColor(1) || color;
2727 anchors.fill: parent;
2828 image: backgroundImage.source ? backgroundImage : null;
29− property real luminance: 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
29+ property real luminance: Style.luminance(color);
3030 property Image backgroundImage: Image {
3131 objectName: "backgroundImage";
3232 source: {
@@ -95,7 +95,7 @@ Image {
9595 wrapMode: Text.Wrap;
9696 maximumLineCount: 2;
9797 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
98− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
98+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
9999 visible: showHeader ;
100100 text: root.title;
101101 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -113,7 +113,7 @@ Image {
113113 elide: Text.ElideRight;
114114 fontSize: "small";
115115 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
116− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
116+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
117117 visible: titleLabel.visible && titleLabel.text;
118118 text: cardData && cardData["subtitle"] || "";
119119 font.weight: Font.Light;
@@ -127,7 +127,8 @@ Image {
127127 rightMargin: units.gu(1);
128128 top: subtitleLabel.bottom;
129129 }
130− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < (root.scopeStyle ? root.scopeStyle.threshold : 0.7) ? (root.scopeStyle ? root.scopeStyle.light : "white") : (root.scopeStyle ? root.scopeStyle.dark : Theme.palette.normal.baseText);
130+ color: backgroundLoader.active && backgroundLoader.item && root.scopeStyle ? root.scopeStyle.getTextColor(backgroundLoader.item.luminance) : (backgroundLoader.item.luminance > 0.7 ? Theme.palette.normal.baseText : "white");
131+ fontScale: root.fontScale;
131132 model: cardData && cardData["attributes"];
132133 }
133134
tests/plugins/Dash/tst_CardAttributes.qml+4−1
@@ -26,7 +26,8 @@ Item {
2626 [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}],
2727 [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"},{"value":"text3"}],
2828 [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"},{"value":"text3"},{"value":"text4"}],
29− [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"},{"value":"text3","style":"highlighted"},{"value":"text4","icon":"image://theme/close","style":"highlighted"},{"value":"text5"}]
29+ [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"},{"value":"text3","style":"highlighted"},{"value":"text4","icon":"image://theme/close","style":"highlighted"},{"value":"text5"}],
30+ [{"value":"text1","icon":"image://theme/ok"},{},{},{},{"value":"text5", "icon": "image://theme/search"}],
3031 ]
3132
3233 CardAttributes {
@@ -49,6 +50,8 @@ Item {
4950 function test_columns(data) {
5051 cardAttributes.model = data;
5152 compare(cardAttributes.columns, 2 + data.length % 2);
53+ var rows = Math.ceil(data.length / 3);
54+ tryCompare(cardAttributes, "height", rows * units.gu(2) + (rows - 1) * cardAttributes.rowSpacing);
5255 }
5356 }
5457}
tests/plugins/Dash/tst_ScopeStyle.qml+73−68
@@ -18,6 +18,7 @@ import QtQuick 2.2
1818import QtTest 1.0
1919import Dash 0.1
2020import Ubuntu.Components 1.1
21+import Utils 0.1
2122
2223Rectangle {
2324 width: units.gu(40)
@@ -35,39 +36,23 @@ Rectangle {
3536 property color color
3637 property var styles: [
3738 {},
38− { "foreground-color": "red", "background-color": "black", "page-header": { "logo": "/foo/bar" } },
39− { "foreground-color": "green", "background-color": "white", "page-header": { "foreground-color": "black" } },
40− { "foreground-color": "blue", "background-color": "darkgrey", "page-header": { "background": "gradient:///white/blue" } },
39+ { "foreground-color": "red", "background-color": "black", "page-header": { "logo": "/foo/bar" },
40+ "preview-button-color": "red"},
41+ { "foreground-color": "green", "background-color": "white",
42+ "page-header": { "foreground-color": "black",
43+ "divider-color": "blue" } },
44+ { "foreground-color": "blue", "background-color": "darkgrey",
45+ "page-header": { "background": "gradient:///white/blue",
46+ "navigation-background": "gradient:///white/blue" } },
4147 ]
4248
4349 function cleanup() {
4450 testCase.color = "transparent";
4551 }
4652
47− function test_luminance_data() {
48− return [
49− { tag: "#F00", luminance: 0.2126 },
50− { tag: "#0F0", luminance: 0.7152 },
51− { tag: "#00F", luminance: 0.0722 },
52− { tag: "white", luminance: 1.0 },
53− { tag: "black", luminance: 0.0 },
54− { tag: "lightgrey", luminance: 0.8275 },
55− { tag: "grey", luminance: 0.5020 },
56− { tag: "darkgrey", luminance: 0.6627 },
57− { tag: "red", luminance: 0.2126 },
58− { tag: "green", luminance: 0.3590 },
59− { tag: "blue", luminance: 0.0722 },
60− ];
61− }
62−
63− function test_luminance(data) {
64− testCase.color = data.tag;
65− compare(tool.luminance(testCase.color).toFixed(4), data.luminance.toFixed(4));
66− }
67−
6853 function test_foreground_data() {
6954 return [
70− { tag: "default", index: 0, foreground: Theme.palette.normal.foreground, luminance: 0.5725 },
55+ { tag: "default", index: 0, foreground: UbuntuColors.darkGrey, luminance: 0.3647 },
7156 { tag: "red on black", index: 1, foreground: "red", luminance: 0.2126 },
7257 { tag: "green on white", index: 2, foreground: "green", luminance: 0.3590 },
7358 { tag: "blue on darkgrey", index: 3, foreground: "blue", luminance: 0.0722 },
@@ -83,7 +68,7 @@ Rectangle {
8368
8469 function test_background_data() {
8570 return [
86− { tag: "default", index: 0, background: "transparent" },
71+ { tag: "default", index: 0, background: "#00f5f5f5", luminance: 0.9608 },
8772 { tag: "red on black", index: 1, background: "black", luminance: 0 },
8873 { tag: "green on white", index: 2, background: "white", luminance: 1 },
8974 { tag: "blue on darkgrey", index: 3, background: "darkgrey", luminance: 0.6627 },
@@ -94,53 +79,35 @@ Rectangle {
9479 tool.style = testCase.styles[data.index];
9580 verify(Qt.colorEqual(tool.background, data.background),
9681 "Background color not equal: %1 != %2".arg(tool.background).arg(data.background));
97− if (data.hasOwnProperty("luminance")) {
98− compare(tool.backgroundLuminance.toFixed(4), data.luminance.toFixed(4));
99− }
82+ compare(tool.backgroundLuminance.toFixed(4), data.luminance.toFixed(4));
10083 }
10184
102− function test_threshold_data() {
85+ function test_getTextColor_data() {
10386 return [
104− { tag: "default", index: 0, threshold: 0.7863 },
105− { tag: "red on black", index: 1, threshold: 0.1063 },
106− { tag: "green on white", index: 2, threshold: 0.6795 },
107− { tag: "blue on darkgrey", index: 3, threshold: 0.3675 },
87+ { tag: "default on black", background: "black", index: 0, textColor: "white" },
88+ { tag: "default on lightgrey", background: "lightgrey", index: 0, textColor: UbuntuColors.darkGrey },
89+ { tag: "default on white", background: "white", index: 0, textColor: UbuntuColors.darkGrey },
90+ { tag: "default on yellow", background: "yellow", index: 0, textColor: UbuntuColors.darkGrey },
91+ { tag: "red/black on black", background: "black", index: 1, textColor: "red" },
92+ { tag: "red/black on lightgrey", background: "lightgrey", index: 1, textColor: "black" },
93+ { tag: "red/black on white", background: "white", index: 1, textColor: "black" },
94+ { tag: "red/black on yellow", background: "yellow", index: 1, textColor: "black" },
95+ { tag: "green/white on black", background: "black", index: 2, textColor: "white" },
96+ { tag: "green/white on lightgrey", background: "lightgrey", index: 2, textColor: "green" },
97+ { tag: "green/white on white", background: "white", index: 2, textColor: "green" },
98+ { tag: "green/white on yellow", background: "yellow", index: 2, textColor: "green" },
99+ { tag: "blue/darkgrey on black", background: "black", index: 3, textColor: "darkgrey" },
100+ { tag: "blue/darkgrey on lightgrey", background: "lightgrey", index: 3, textColor: "blue" },
101+ { tag: "blue/darkgrey on white", background: "white", index: 3, textColor: "blue" },
102+ { tag: "blue/darkgrey on yellow", background: "yellow", index: 3, textColor: "blue" },
108103 ];
109104 }
110105
111− function test_threshold(data) {
106+ function test_getTextColor(data) {
112107 tool.style = testCase.styles[data.index];
113− compare(tool.threshold.toFixed(4), data.threshold.toFixed(4), "Luminance threshold was incorrect.");
114− }
115−
116− function test_light_data() {
117− return [
118− { tag: "default", index: 0, light: "white" },
119− { tag: "red on black", index: 1, light: "red" },
120− { tag: "green on white", index: 2, light: "white" },
121− { tag: "blue on darkgrey", index: 3, light: "darkgrey" },
122− ];
123− }
124−
125− function test_light(data) {
126− tool.style = testCase.styles[data.index];
127− verify(Qt.colorEqual(tool.light, data.light),
128− "Light color not equal: %1 != %2".arg(tool.light).arg(data.light));
129− }
130−
131− function test_dark_data() {
132− return [
133− { tag: "default", index: 0, dark: Theme.palette.normal.baseText },
134− { tag: "red on black", index: 1, dark: "black" },
135− { tag: "green on white", index: 2, dark: "green" },
136− { tag: "blue on darkgrey", index: 3, dark: "blue" },
137− ];
138− }
139−
140− function test_dark(data) {
141− tool.style = testCase.styles[data.index];
142− verify(Qt.colorEqual(tool.dark, data.dark),
143− "Dark color not equal: %1 != %2".arg(tool.dark).arg(data.dark));
108+ var textColor = tool.getTextColor(Style.luminance(data.background));
109+ verify(Qt.colorEqual(textColor, data.textColor),
110+ "TextColor not equal: %1 != %2".arg(textColor).arg(data.textColor));
144111 }
145112
146113 function test_headerLogo_data() {
@@ -157,7 +124,7 @@ Rectangle {
157124
158125 function test_headerForeground_data() {
159126 return [
160− { tag: "default", index: 0, headerForeground: Theme.palette.normal.baseText },
127+ { tag: "default", index: 0, headerForeground: UbuntuColors.darkGrey },
161128 { tag: "black", index: 2, headerForeground: "black" },
162129 ];
163130 }
@@ -170,7 +137,7 @@ Rectangle {
170137
171138 function test_headerBackground_data() {
172139 return [
173− { tag: "default", index: 0, headerBackground: "" },
140+ { tag: "default", index: 0, headerBackground: "color:///#f5f5f5" },
174141 { tag: "black", index: 3, headerBackground: "gradient:///white/blue" },
175142 ];
176143 }
@@ -179,5 +146,43 @@ Rectangle {
179146 tool.style = testCase.styles[data.index];
180147 compare(tool.headerBackground, data.headerBackground, "Header background was incorrect.");
181148 }
149+
150+ function test_headerDividerColor_data() {
151+ return [
152+ { tag: "default", index: 0, headerDividerColor: "#e0e0e0" },
153+ { tag: "blue", index: 2, headerDividerColor: "blue" },
154+ ];
155+ }
156+
157+ function test_headerDividerColor(data) {
158+ tool.style = testCase.styles[data.index];
159+ verify(Qt.colorEqual(tool.headerDividerColor, data.headerDividerColor),
160+ "Header divider color not equal: %1 != %2".arg(tool.headerDividerColor).arg(data.headerDividerColor));
161+ }
162+
163+ function test_navigationBackground_data() {
164+ return [
165+ { tag: "default", index: 0, navigationBackground: "color:///#f5f5f5" },
166+ { tag: "black", index: 3, navigationBackground: "gradient:///white/blue" },
167+ ];
168+ }
169+
170+ function test_navigationBackground(data) {
171+ tool.style = testCase.styles[data.index];
172+ compare(tool.navigationBackground, data.navigationBackground, "Navigation background was incorrect.");
173+ }
174+
175+ function test_previewButtonColor_data() {
176+ return [
177+ { tag: "default", index: 0, previewButtonColor: Theme.palette.selected.foreground },
178+ { tag: "red", index: 1, previewButtonColor: "red" },
179+ ];
180+ }
181+
182+ function test_previewButtonColor(data) {
183+ tool.style = testCase.styles[data.index];
184+ verify(Qt.colorEqual(tool.previewButtonColor, data.previewButtonColor),
185+ "Preview button color not equal: %1 != %2".arg(tool.previewButtonColor).arg(data.previewButtonColor));
186+ }
182187 }
183188}
tests/plugins/Unity/Indicators/rootactionstatetest.cpp+4−4
@@ -50,7 +50,7 @@ private Q_SLOTS:
5050
5151 QCOMPARE(rootState->menu(), menuModel);
5252 delete menuModel;
53− QVERIFY(rootState->menu() == NULL);
53+ QVERIFY(rootState->menu() == nullptr);
5454 delete rootState;
5555 }
5656
@@ -60,8 +60,8 @@ private Q_SLOTS:
6060 g_variant_builder_init(&builderIcons, G_VARIANT_TYPE("av"));
6161 for (int i = 0; i < 3; i ++) {
6262
63− GIcon* icon = NULL;
64− icon = g_icon_new_for_string (QString("testIcon%1").arg(i).toUtf8().constData(), NULL);
63+ GIcon* icon = nullptr;
64+ icon = g_icon_new_for_string (QString("testIcon%1").arg(i).toUtf8().constData(), nullptr);
6565
6666 g_variant_builder_add(&builderIcons,
6767 "v",
@@ -73,7 +73,7 @@ private Q_SLOTS:
7373 g_variant_builder_init(&builderParams, G_VARIANT_TYPE_ARRAY);
7474 GVariant* icons = g_variant_builder_end (&builderIcons);
7575 g_variant_ref_sink (icons);
76− g_variant_builder_add (&builderParams, "{sv}", g_strdup ("icons"), icons, NULL);
76+ g_variant_builder_add (&builderParams, "{sv}", g_strdup ("icons"), icons, nullptr);
7777
7878 GVariant* params = g_variant_builder_end (&builderParams);
7979
tests/plugins/Unity/Indicators/unitymenumodelstacktest.cpp+1−1
@@ -42,7 +42,7 @@ private Q_SLOTS:
4242 void cleanup()
4343 {
4444 delete m_model;
45− m_model = NULL;
45+ m_model = nullptr;
4646 }
4747
4848 void testHeadOnSetHead()
tests/plugins/Unity/Launcher/CMakeLists.txt+1−1
@@ -1,6 +1,6 @@
11pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
22pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=3)
3−pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=1)
3+pkg_check_modules(APPLICATION_API REQUIRED unity-shell-application=3)
44
55include_directories(
66 ${CMAKE_CURRENT_BINARY_DIR}
tests/plugins/Unity/Launcher/launchermodeltest.cpp−1
@@ -93,7 +93,6 @@ public:
9393 m_list.takeAt(index)->deleteLater();
9494 endRemoveRows();
9595 }
96− bool updateScreenshot(const QString &appId) { Q_UNUSED(appId); return true; }
9796 bool requestFocusApplication(const QString &appId) { Q_UNUSED(appId); return true; }
9897 bool suspended() const { return false; }
9998 void setSuspended(bool) {}
tests/plugins/Utils/CMakeLists.txt+5
@@ -27,3 +27,8 @@ run_tests(
2727 qsortfilterproxymodeltest
2828 timeformattertest
2929 )
30+
31+# plain qml test
32+set(qmltest_DEFAULT_TARGETS qmltests)
33+set(qmltest_DEFAULT_PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=minimal")
34+add_qml_test(. UtilsStyle IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
tests/plugins/Utils/tst_UtilsStyle.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.2
18+import QtTest 1.0
19+import Utils 0.1
20+
21+TestCase {
22+ id: testCase
23+ name: "UtilsStyle"
24+
25+ property color color
26+
27+ function test_luminance_data() {
28+ return [
29+ { tag: "#F00", luminance: 0.2126 },
30+ { tag: "#0F0", luminance: 0.7152 },
31+ { tag: "#00F", luminance: 0.0722 },
32+ { tag: "white", luminance: 1.0 },
33+ { tag: "black", luminance: 0.0 },
34+ { tag: "lightgrey", luminance: 0.8275 },
35+ { tag: "grey", luminance: 0.5020 },
36+ { tag: "darkgrey", luminance: 0.6627 },
37+ { tag: "red", luminance: 0.2126 },
38+ { tag: "green", luminance: 0.3590 },
39+ { tag: "blue", luminance: 0.0722 },
40+ ];
41+ }
42+
43+ function test_luminance(data) {
44+ testCase.color = data.tag;
45+ compare(Style.luminance(testCase.color).toFixed(4), data.luminance.toFixed(4));
46+ }
47+}
tests/qmltests/CMakeLists.txt+10
@@ -50,10 +50,16 @@ add_qml_test(Dash/Previews PreviewPayments)
5050add_qml_test(Dash/Previews PreviewProgress)
5151add_qml_test(Dash/Previews PreviewRatingDisplay)
5252add_qml_test(Dash/Previews PreviewRatingInput)
53+add_qml_test(Dash/Previews PreviewTable)
5354add_qml_test(Dash/Previews PreviewTextSummary)
5455add_qml_test(Dash/Previews PreviewVideoPlayback)
5556add_qml_test(Dash/Previews PreviewWidgetFactory)
5657add_qml_test(Dash/Previews PreviewZoomableImage)
58+add_qml_test(Dash/ScopeSettings ScopeSettingBoolean)
59+add_qml_test(Dash/ScopeSettings ScopeSettingList)
60+add_qml_test(Dash/ScopeSettings ScopeSettingNumber)
61+add_qml_test(Dash/ScopeSettings ScopeSettingString)
62+add_qml_test(Dash/ScopeSettings ScopeSettingsWidgetFactory)
5763add_qml_test(Greeter Lockscreen ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
5864add_qml_test(Greeter MultiGreeter ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
5965add_qml_test(Greeter SingleGreeter ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
@@ -72,7 +78,11 @@ add_qml_test(Panel Panel)
7278add_qml_test(Panel SearchIndicator)
7379add_qml_test(Panel/Indicators DefaultIndicatorWidget ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel")
7480add_qml_test(Panel/Indicators DefaultIndicatorPage ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel")
81+add_qml_test(Panel/Indicators CachedUnityMenuModel ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel")
7582# These MenuItemFactory tests need the test/mocks/ to come before plugins/
7683add_qml_test(Panel/Indicators MenuItemFactory IMPORT_PATHS ${CMAKE_BINARY_DIR}/tests/mocks ${qmltest_DEFAULT_IMPORT_PATHS})
7784add_qml_test(Panel/Indicators MessageMenuItemFactory IMPORT_PATHS ${CMAKE_BINARY_DIR}/tests/mocks ${qmltest_DEFAULT_IMPORT_PATHS})
85+add_qml_test(Stages ApplicationWindow ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
7886add_qml_test(Stages PhoneStage ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
87+add_qml_test(Stages SpreadDelegate ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
88+add_qml_test(Stages SurfaceContainer ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
tests/qmltests/Components/tst_Background.qml+5−4
@@ -46,10 +46,10 @@ Rectangle {
4646
4747 function test_style_data() {
4848 return [
49− { tag: "empty", style: "" },
50− { tag: "solid", style: "color:///black" },
51− { tag: "gradient", style: "gradient:///black/red" },
52− { tag: "image", style: "/some/path" },
49+ { tag: "empty", style: "", luminance: 0.5 },
50+ { tag: "solid", style: "color:///black", luminance: 0 },
51+ { tag: "gradient", style: "gradient:///black/red", luminance: 0.1063 },
52+ { tag: "image", style: "/some/path", luminance: 0.5 },
5353 ];
5454 }
5555
@@ -58,6 +58,7 @@ Rectangle {
5858 expectFail("empty", "Empty style should not create a background.");
5959 loadedSpy.wait();
6060 compare(background.item.objectName, data.tag, "Background should be %1".arg(data.style));
61+ compare(background.luminance, data.luminance);
6162 }
6263
6364 function test_solid() {
tests/qmltests/Dash/Previews/tst_PreviewActions.qml+8−8
@@ -27,21 +27,21 @@ Rectangle {
2727 height: units.gu(80)
2828
2929 property var actionDataOneAction: {
30− "actions": [{"label": "Some Label", "icon": "../graphics/play_button.png", "id": "someid"}]
30+ "actions": [{"label": "Some Label", "id": "someid"}]
3131 }
3232
3333 property var actionDataTwoActions: {
34− "actions": [{"label": "Some Label A", "icon": "../graphics/icon_clear.png", "id": "someid1"},
35− {"label": "Some Label B", "icon": "../graphics/play_button.png", "id": "someid2"}
34+ "actions": [{"label": "Some Label A", "id": "someid1"},
35+ {"label": "Some Label B", "id": "someid2"}
3636 ]
3737 }
3838
3939 property var actionDataFiveActions: {
40− "actions": [{"label": "Some Label C", "icon": "../graphics/play_button.png", "id": "someid3"},
41− {"label": "Some Label D", "icon": "../graphics/icon_clear.png", "id": "someid4"},
42− {"label": "Some Label E", "icon": "../graphics/play_button.png", "id": "someid5"},
43− {"label": "Some Label F", "icon": "../graphics/icon_clear.png", "id": "someid6"},
44− {"label": "Some Label G", "icon": "../graphics/play_button.png", "id": "someid7"}
40+ "actions": [{"label": "Some Label C", "id": "someid3"},
41+ {"label": "Some Label D", "id": "someid4"},
42+ {"label": "Some Label E", "id": "someid5"},
43+ {"label": "Some Label F", "id": "someid6"},
44+ {"label": "Some Label G", "id": "someid7"}
4545 ]
4646 }
4747
tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+16−6
@@ -30,15 +30,25 @@ Rectangle {
3030 property string longText2: "This is a very very very long text. 1 This is a very very very long text. 2 This is a very very very long text. 3 This is a very very very long text. 4 This is a very very very long text. 5 This is a very very very long text. 6 This is a very very very long text. 7 This is a very very very long text. 8 This is a very very very long text. 9 This is a very very very long text. 10 This is a very very very long text. 11 This is a very very very long text."
3131 property string shortText: "This is a short text :)"
3232
33+ property var tableData: {
34+ "values": [ [ "Long Label 1", "Value 1"], [ "Label 2", "Long Value 2"], [ "Label 3", "Value 3"], [ "Label 4", "Value 4"], [ "Label 5", "Value 5"] ]
35+ }
36+
37+ ListModel {
38+ id: widgetsModel
39+ }
40+
3341 property var widgetData: {
3442 "title": "Title here",
3543 "collapsed-widgets": 2,
36− "widgets": [
37− { "type": "text", "widgetId" : "text1", "properties" : { "text": longText } },
38− { "type": "text", "widgetId" : "text2", "properties" : { "text": longText2 } },
39− { "type": "text", "widgetId" : "text3", "properties" : { "text": shortText } },
40− { "type": "text", "widgetId" : "text4", "properties" : { "text": longText } }
41− ]
44+ "widgets": widgetsModel
45+ }
46+
47+ Component.onCompleted: {
48+ widgetsModel.append({"type": "text", "widgetId": "text1", "properties": { "text": longText }});
49+ widgetsModel.append({"type": "text", "widgetId": "table1", "properties": { "text": tableData }});
50+ widgetsModel.append({"type": "text", "widgetId": "text3", "properties": { "text": shortText }});
51+ widgetsModel.append({"type": "text", "widgetId": "text4", "properties": { "text": longText }});
4252 }
4353
4454 PreviewExpandable {
tests/qmltests/Dash/Previews/tst_PreviewPayments.qml+24
@@ -52,6 +52,8 @@ Rectangle {
5252 function cleanup()
5353 {
5454 spy.clear();
55+ var button = findChild(root, "paymentButton");
56+ button.opacity = 1;
5557 }
5658
5759 function test_purchase_text_display() {
@@ -79,6 +81,28 @@ Rectangle {
7981 compare(args[2], jsonPurchase["source"]);
8082 }
8183
84+ function test_progress_show() {
85+ // Make sure the progress bar is shown.
86+ previewPayments.widgetData = jsonPurchase;
87+
88+ var button = findChild(root, "paymentButton");
89+ var progress = findChild(root, "loadingBar");
90+
91+ tryCompare(progress, "visible", false);
92+ tryCompare(progress, "opacity", 0);
93+ tryCompare(button, "visible", true);
94+ tryCompare(button, "opacity", 1);
95+
96+ mouseClick(button, button.width / 2, button.height / 2);
97+
98+ spy.wait();
99+
100+ tryCompare(progress, "visible", true);
101+ tryCompare(progress, "opacity", 1);
102+ tryCompare(button, "visible", false);
103+ tryCompare(button, "opacity", 0);
104+ }
105+
82106 function test_purchase_error() {
83107 // The mock Payments triggers an error when com.example.invalid is
84108 // passed to it as store_item_id. Exercise it here
tests/qmltests/Dash/Previews/tst_PreviewTable.qmlnew file+114
@@ -0,0 +1,114 @@
1+/*
2+ * Copyright 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 QtTest 1.0
19+import Ubuntu.Components 0.1
20+import "../../../../qml/Dash/Previews"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+ color: Theme.palette.selected.background
28+
29+ property var widgetDataComplete: {
30+ "title": "Title here",
31+ "values": [ [ "Long Label 1", "Value 1"], [ "Label 2", "Long Value 2"], [ "Label 3", "Value 3"], [ "Label 4", "Value 4"], [ "Label 5", "Value 5"] ]
32+ }
33+
34+ property var widgetDataNoTitle: {
35+ "values": [ [ "Long Label 1", "Value 1"], [ "Label 2", "Long Value 2"], [ "Label 3", "Value 3"], [ "Label 4", "Value 4"], [ "Label 5", "Value 5"] ]
36+ }
37+
38+ PreviewTable {
39+ id: previewTable
40+ anchors { left: parent.left; right: parent.right }
41+ widgetData: widgetDataComplete
42+
43+ Rectangle {
44+ color: "red"
45+ anchors.fill: parent
46+ opacity: 0.5
47+ }
48+ }
49+
50+ UT.UnityTestCase {
51+ name: "PreviewTableTest"
52+ when: windowShown
53+
54+ function init() {
55+ previewTable.widgetData = widgetDataComplete;
56+ }
57+
58+ function test_values() {
59+ compare(findChild(previewTable, "label00").text, "Long Label 1");
60+ compare(findChild(previewTable, "label01").text, "Value 1");
61+ compare(findChild(previewTable, "label10").text, "Label 2");
62+ compare(findChild(previewTable, "label11").text, "Long Value 2");
63+ compare(findChild(previewTable, "label20").text, "Label 3");
64+ compare(findChild(previewTable, "label21").text, "Value 3");
65+ compare(findChild(previewTable, "label30").text, "Label 4");
66+ compare(findChild(previewTable, "label31").text, "Value 4");
67+ compare(findChild(previewTable, "label40").text, "Label 5");
68+ compare(findChild(previewTable, "label41").text, "Value 5");
69+ }
70+
71+ function test_optional_title() {
72+ var titleLabel = findChild(previewTable, "titleLabel");
73+ compare(titleLabel.visible, true);
74+ var titleHeight = titleLabel.height;
75+ var prevHeight = previewTable.height;
76+
77+ previewTable.widgetData = widgetDataNoTitle;
78+ var column = findChild(previewTable, "column");
79+ tryCompare(previewTable, "height", prevHeight - titleHeight - column.spacing );
80+ }
81+
82+ function test_show_collapsed() {
83+ verify(findChild(previewTable, "label00").visible);
84+ verify(findChild(previewTable, "label01").visible);
85+ verify(findChild(previewTable, "label10").visible);
86+ verify(findChild(previewTable, "label11").visible);
87+ verify(findChild(previewTable, "label20").visible);
88+ verify(findChild(previewTable, "label21").visible);
89+ verify(findChild(previewTable, "label30").visible);
90+ verify(findChild(previewTable, "label31").visible);
91+ verify(findChild(previewTable, "label40").visible);
92+ verify(findChild(previewTable, "label41").visible);
93+
94+ waitForRendering(previewTable);
95+ var prevHeight = previewTable.height;
96+ previewTable.expanded = false;
97+
98+ verify(findChild(previewTable, "label00").visible);
99+ verify(findChild(previewTable, "label01").visible);
100+ verify(findChild(previewTable, "label10").visible);
101+ verify(findChild(previewTable, "label11").visible);
102+ verify(findChild(previewTable, "label20").visible);
103+ verify(findChild(previewTable, "label21").visible);
104+ verify(!findChild(previewTable, "label30").visible);
105+ verify(!findChild(previewTable, "label31").visible);
106+ verify(!findChild(previewTable, "label40").visible);
107+ verify(!findChild(previewTable, "label41").visible);
108+
109+ var labelHeight = findChild(previewTable, "label00").height;
110+ var gridLayout = findChild(previewTable, "gridLayout");
111+ tryCompare(previewTable, "height", prevHeight - labelHeight * 2 - gridLayout.rowSpacing * 2);
112+ }
113+ }
114+}
tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+2−1
@@ -84,6 +84,7 @@ Rectangle {
8484 { tag: "Progress", type: "progress", source: "PreviewProgress.qml" },
8585 { tag: "Rating Input", type: "rating-input", source: "PreviewRatingInput.qml" },
8686 { tag: "Rating Display", type: "reviews", source: "PreviewRatingDisplay.qml" },
87+ { tag: "Table", type: "table", source: "PreviewTable.qml" },
8788 { tag: "Text", type: "text", source: "PreviewTextSummary.qml" },
8889 { tag: "Video", type: "video", source: "PreviewVideoPlayback.qml" },
8990 ];
@@ -93,7 +94,7 @@ Rectangle {
9394 factory.widgetData = { type: data.type };
9495 factory.widgetType = data.type;
9596
96− verify(("" + factory.source).indexOf(data.source) != -1);
97+ verify((String(factory.source)).indexOf(data.source) != -1);
9798 }
9899 }
99100}
tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingBoolean.qmlnew file+62
@@ -0,0 +1,62 @@
1+/*
2+ * Copyright 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 1.1
19+import QtTest 1.0
20+import "../../../../qml/Dash/ScopeSettings"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+
28+ property var settingData: {
29+ "displayName" : "Mock boolean setting",
30+ "value": true
31+ }
32+
33+ ScopeSettingBoolean {
34+ id: scopeSetting
35+ widgetData: settingData
36+ width: parent.width
37+ }
38+
39+ SignalSpy {
40+ id: spy
41+ target: scopeSetting
42+ signalName: "updated"
43+ }
44+
45+ UT.UnityTestCase {
46+ id: testCase
47+ name: "ScopeSettingBoolean"
48+ when: windowShown
49+
50+ function test_updated() {
51+ var control = findChild(scopeSetting, "control");
52+ mouseClick(control, control.width / 2, control.height / 2);
53+ spy.wait();
54+ compare(spy.signalArguments[0][0], false);
55+
56+ spy.clear();
57+ mouseClick(scopeSetting, scopeSetting.width / 2, scopeSetting.height / 2);
58+ spy.wait();
59+ compare(spy.signalArguments[0][0], true);
60+ }
61+ }
62+}
tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingList.qmlnew file+84
@@ -0,0 +1,84 @@
1+/*
2+ * Copyright 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 1.1
19+import QtTest 1.0
20+import "../../../../qml/Dash/ScopeSettings"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+
28+ property var settingData: {
29+ "displayName" : "Mock list setting",
30+ "properties": { "values" : [ "first", "second", "third" ] }
31+ }
32+
33+ ScopeSettingList {
34+ id: scopeSetting
35+ width: parent.width
36+ widgetData: settingData
37+ }
38+
39+ SignalSpy {
40+ id: spy
41+ target: scopeSetting
42+ signalName: "updated"
43+ }
44+
45+ UT.UnityTestCase {
46+ id: testCase
47+ name: "ScopeSettingList"
48+ when: windowShown
49+
50+ property var control: findChild(scopeSetting, "control")
51+
52+ function cleanup() {
53+ control.selectedIndex = 0;
54+ spy.clear();
55+ }
56+
57+ function test_initialValue() {
58+ // there's no initialIndex, so we workaround, testing is difficult too https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1362031
59+ var newObject = Qt.createQmlObject('import "../../../../qml/Dash/ScopeSettings" \n\
60+ ScopeSettingList { initialValue: 2; }', root, "dynamicScopeSettingList");
61+ newObject.widgetData = settingData;
62+ var controlDynamic = findChild(newObject, "control");
63+ tryCompare(controlDynamic, "selectedIndex", 2);
64+ }
65+
66+ function test_updated_data() {
67+ return [
68+ { tag: "current", index: 0, updated: false },
69+ { tag: "second", index: 1, updated: true },
70+ { tag: "third", index: 2, updated: true }
71+ ]
72+ }
73+
74+ function test_updated(data) {
75+ control.selectedIndex = data.index;
76+ if (data.updated) {
77+ spy.wait();
78+ compare(spy.signalArguments[0][0], data.index);
79+ } else {
80+ compare(spy.count, 0);
81+ }
82+ }
83+ }
84+}
tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingNumber.qmlnew file+98
@@ -0,0 +1,98 @@
1+/*
2+ * Copyright 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 1.1
19+import QtTest 1.0
20+import "../../../../qml/Dash/ScopeSettings"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+
28+ property var settingData: {
29+ "displayName" : "Mock number setting",
30+ "value": 0.2
31+ }
32+
33+ ScopeSettingNumber {
34+ id: scopeSetting
35+ widgetData: settingData
36+ width: parent.width
37+ }
38+
39+ SignalSpy {
40+ id: spy
41+ target: scopeSetting
42+ signalName: "updated"
43+ }
44+
45+ UT.UnityTestCase {
46+ id: testCase
47+ name: "ScopeSettingNumber"
48+ when: windowShown
49+
50+ property var control: findChild(scopeSetting, "control")
51+ property real newNumber: 11.7
52+
53+ function cleanup() {
54+ control.focus = false;
55+ control.text = settingData.value;
56+ spy.clear();
57+ }
58+
59+ function test_updated_on_unfocus() {
60+ mouseClick(control, control.width / 2, control.height / 2);
61+ control.selectAll();
62+ control.cut();
63+ control.insert(0, newNumber);
64+ control.focus = false;
65+ spy.wait();
66+ verify(spy.signalArguments[0][0] == newNumber);
67+ }
68+
69+ function test_updated_on_accepted() {
70+ mouseClick(control, control.width / 2, control.height / 2);
71+ control.selectAll();
72+ control.cut();
73+ control.insert(0, newNumber);
74+ control.accepted();
75+ spy.wait();
76+ verify(spy.signalArguments[0][0] == newNumber);
77+ }
78+
79+ function test_selection_on_listitem_click() {
80+ mouseClick(scopeSetting, 0, scopeSetting.height / 2);
81+ compare(control.focus, true);
82+ // we're checking that selectAll() is being called by omitting it here
83+ control.cut();
84+ control.insert(0, newNumber);
85+ verify(control.displayText == newNumber);
86+ }
87+
88+ function test_unacceptable_input() {
89+ mouseClick(control, control.width / 2, control.height / 2);
90+ control.selectAll();
91+ control.cut();
92+ control.insert(0, "not valid");
93+ control.accepted();
94+ compare(spy.count, 0);
95+ compare(control.displayText, "");
96+ }
97+ }
98+}
tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingString.qmlnew file+88
@@ -0,0 +1,88 @@
1+/*
2+ * Copyright 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 1.1
19+import QtTest 1.0
20+import "../../../../qml/Dash/ScopeSettings"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+
28+ property var settingData: {
29+ "displayName" : "Mock string setting",
30+ "value": "mock string"
31+ }
32+
33+ ScopeSettingString {
34+ id: scopeSetting
35+ widgetData: settingData
36+ width: parent.width
37+ }
38+
39+ SignalSpy {
40+ id: spy
41+ target: scopeSetting
42+ signalName: "updated"
43+ }
44+
45+ UT.UnityTestCase {
46+ id: testCase
47+ name: "ScopeSettingString"
48+ when: windowShown
49+
50+ property var control: findChild(scopeSetting, "control")
51+ property string newText: "new text to compare"
52+
53+ function cleanup() {
54+ control.focus = false;
55+ control.text = settingData.value;
56+ spy.clear();
57+ }
58+
59+ function test_updated_on_unfocus() {
60+ mouseClick(control, control.width / 2, control.height / 2);
61+ control.selectAll();
62+ control.cut();
63+ control.insert(0, newText);
64+ control.focus = false;
65+ spy.wait();
66+ compare(spy.signalArguments[0][0], newText);
67+ }
68+
69+ function test_updated_on_accepted() {
70+ mouseClick(control, control.width / 2, control.height / 2);
71+ control.selectAll();
72+ control.cut();
73+ control.insert(0, newText);
74+ control.accepted();
75+ spy.wait();
76+ compare(spy.signalArguments[0][0], newText);
77+ }
78+
79+ function test_selection_on_listitem_click() {
80+ mouseClick(scopeSetting, 0, scopeSetting.height / 2);
81+ compare(control.focus, true);
82+ // we're checking that selectAll() is being called by omitting it here
83+ control.cut();
84+ control.insert(0, newText);
85+ compare(control.displayText, newText);
86+ }
87+ }
88+}
tests/qmltests/Dash/ScopeSettings/tst_ScopeSettingsWidgetFactory.qmlnew file+65
@@ -0,0 +1,65 @@
1+/*
2+ * Copyright 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 1.1
19+import QtTest 1.0
20+import "../../../../qml/Dash/ScopeSettings"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+
28+ property var settingData: {
29+ "type": "",
30+ "displayName" : "Mock setting",
31+ "value": "1",
32+ "properties": { "values" : [ "first", "second", "third" ] }
33+ }
34+
35+ ScopeSettingsWidgetFactory {
36+ id: scopeSettingsWidgetFactory
37+ anchors {
38+ left: parent.left
39+ right: parent.right
40+ }
41+ }
42+
43+ UT.UnityTestCase {
44+ id: testCase
45+ name: "ScopeSettingWidgetFactory"
46+ when: windowShown
47+
48+ function test_mapping_data() {
49+ return [
50+ { tag: "Boolean", type: "boolean", source: "ScopeSettingBoolean.qml" },
51+ { tag: "List", type: "list", source: "ScopeSettingList.qml" },
52+ { tag: "Number", type: "number", source: "ScopeSettingNumber.qml" },
53+ { tag: "String", type: "string", source: "ScopeSettingString.qml" }
54+ ];
55+ }
56+
57+ function test_mapping(data) {
58+ var newSettingData = settingData;
59+ newSettingData.type = data.type;
60+ scopeSettingsWidgetFactory.widgetData = newSettingData;
61+
62+ verify((String(scopeSettingsWidgetFactory.source)).indexOf(data.source) != -1);
63+ }
64+ }
65+}
tests/qmltests/Dash/artwork/background.pngnew file

Binary file not shown.

tests/qmltests/Dash/tst_Card.qml+62−1

This diff is too big to show here.

tests/qmltests/Dash/tst_Dash.qml+12−6

This diff is too big to show here.

tests/qmltests/Dash/tst_DashContent.qml+152−48

This diff is too big to show here.

tests/qmltests/Dash/tst_GenericScopeView.qml+102−39

This diff is too big to show here.

tests/qmltests/Dash/tst_PageHeader.qml+3−1

This diff is too big to show here.

tests/qmltests/Greeter/tst_Lockscreen.qml+65−46

This diff is too big to show here.

tests/qmltests/Panel/Indicators/tst_CachedUnityMenuModel.qmlnew file+137

This diff is too big to show here.

tests/qmltests/Stages/tst_ApplicationWindow.qmlnew file+346

This diff is too big to show here.

tests/qmltests/Stages/tst_PhoneStage.qml+34−8

This diff is too big to show here.

tests/qmltests/Stages/tst_SpreadDelegate.qmlnew file+167

This diff is too big to show here.

tests/qmltests/Stages/tst_SurfaceContainer.qmlnew file+154

This diff is too big to show here.

tests/qmltests/tst_Shell.qml+36−2

This diff is too big to show here.

tests/qmltests/tst_ShellWithPin.qml+26−11

This diff is too big to show here.

tests/uqmlscene/main.cpp+1−1

This diff is too big to show here.

tests/utils/modules/Unity/Test/UnityTestCase.qml+5−2

This diff is too big to show here.