on xenial help sign in
Merged from trunk
dd4acd8Florian Boucault
data/CMakeLists.txt+3
@@ -8,3 +8,6 @@ install(FILES
8 ${CMAKE_CURRENT_BINARY_DIR}/${DASH_APP}.desktop
8 ${CMAKE_CURRENT_BINARY_DIR}/${DASH_APP}.desktop
9 DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
9 DESTINATION ${CMAKE_INSTALL_DATADIR}/applications
10 )
10 )
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
10
10
11respawn
11respawn
12
12
13+env APP_ID=unity8-dash
14+
13pre-start script
15pre-start script
14 if [ -z "$UNITY_SCOPES_LIST" ]; then
16 if [ -z "$UNITY_SCOPES_LIST" ]; then
15 # FIXME: remove once we have this in dconf
17 # 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+
1unity8 (8.00+14.10.20140817-0ubuntu1) utopic; urgency=low
127unity8 (8.00+14.10.20140817-0ubuntu1) utopic; urgency=low
2
128
3 [ CI bot ]
129 [ CI bot ]
debian/control+5−4
@@ -24,7 +24,7 @@ Build-Depends: cmake,
24 libpulse-dev,
24 libpulse-dev,
25 libqmenumodel-dev (>= 0.2.8),
25 libqmenumodel-dev (>= 0.2.8),
26 libqt5xmlpatterns5-dev,
26 libqt5xmlpatterns5-dev,
27− libunity-api-dev (>= 7.88),
27+ libunity-api-dev (>= 7.89),
28 libusermetricsoutput1-dev,
28 libusermetricsoutput1-dev,
29 libxcb1-dev,
29 libxcb1-dev,
30 pkg-config,
30 pkg-config,
@@ -54,6 +54,7 @@ Homepage: http://launchpad.net/unity
54# and sync up the code again.
54# and sync up the code again.
55Vcs-Bzr: https://code.launchpad.net/unity8
55Vcs-Bzr: https://code.launchpad.net/unity8
56Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
56Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
57+X-Ubuntu-Use-Langpack: yes
57
58
58Package: indicators-client
59Package: indicators-client
59Architecture: amd64 armhf i386
60Architecture: amd64 armhf i386
@@ -111,7 +112,7 @@ Depends: qml-module-qtquick-layouts,
111 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
112 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
112 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
113 qtdeclarative5-unity-notifications-plugin (>= 0.1.2) | unity-notifications-impl,
113 ubuntu-thumbnailer-impl-0,
114 ubuntu-thumbnailer-impl-0,
114− unity-application-impl-2,
115+ unity-application-impl-3,
115 unity-notifications-impl-3,
116 unity-notifications-impl-3,
116 unity-plugin-scopes | unity-scopes-impl,
117 unity-plugin-scopes | unity-scopes-impl,
117 unity-scopes-impl-4,
118 unity-scopes-impl-4,
@@ -158,7 +159,7 @@ Pre-Depends: ${misc:Pre-Depends},
158Depends: ${misc:Depends},
159Depends: ${misc:Depends},
159 ${shlibs:Depends},
160 ${shlibs:Depends},
160Provides: unity-application-impl,
161Provides: unity-application-impl,
161− unity-application-impl-2,
162+ unity-application-impl-3,
162Description: Fake environment for running Unity 8 shell
163Description: Fake environment for running Unity 8 shell
163 Provides fake implementations of some QML modules used by Unity 8 shell
164 Provides fake implementations of some QML modules used by Unity 8 shell
164 (e.g Ubuntu.Application) so that you can run it in a sandboxed environment.
165 (e.g Ubuntu.Application) so that you can run it in a sandboxed environment.
@@ -168,7 +169,7 @@ Architecture: any
168Multi-Arch: same
169Multi-Arch: same
169Pre-Depends: ${misc:Pre-Depends},
170Pre-Depends: ${misc:Pre-Depends},
170Depends: accountsservice-ubuntu-schemas,
171Depends: accountsservice-ubuntu-schemas,
171− gsettings-ubuntu-schemas,
172+ gsettings-ubuntu-schemas (>= 0.0.2+14.10.20140815),
172 libhardware2,
173 libhardware2,
173 libunity-core-6.0-9,
174 libunity-core-6.0-9,
174 pay-service,
175 pay-service,
debian/unity8.install+1
@@ -10,3 +10,4 @@ usr/share/unity8/Launcher
10usr/share/unity8/Panel
10usr/share/unity8/Panel
11usr/share/unity8/Shell.qml
11usr/share/unity8/Shell.qml
12usr/share/unity8/Stages
12usr/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() {
80 return paths;
80 return paths;
81}
81}
82
82
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+
83inline QStringList shellDataDirs() {
91inline QStringList shellDataDirs() {
84 QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
92 QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
85 if (!isRunningInstalled()) {
93 if (!isRunningInstalled()) {
86− if (getenv("UNITY_TEST_ENV")==NULL) {
94+ if (getenv("UNITY_TEST_ENV")==nullptr) {
87 dirs.prepend("@CMAKE_BINARY_DIR@/share");
95 dirs.prepend("@CMAKE_BINARY_DIR@/share");
88 }
96 }
89 }
97 }
plugins/AccountsService/AccountsServiceDBusAdaptor.cpp+1−1
@@ -24,7 +24,7 @@
24
24
25AccountsServiceDBusAdaptor::AccountsServiceDBusAdaptor(QObject* parent)
25AccountsServiceDBusAdaptor::AccountsServiceDBusAdaptor(QObject* parent)
26 : QObject(parent),
26 : QObject(parent),
27− m_accountsManager(NULL),
27+ m_accountsManager(nullptr),
28 m_users()
28 m_users()
29{
29{
30 QDBusConnection connection = QDBusConnection::SM_BUSNAME();
30 QDBusConnection connection = QDBusConnection::SM_BUSNAME();
plugins/Dash/CardAttributes.qml+7−3
@@ -26,8 +26,10 @@ GridLayout {
26 right: parent.right;
26 right: parent.right;
27 }
27 }
28 columns: 2 + repeater.count % 2
28 columns: 2 + repeater.count % 2
29+ rowSpacing: units.gu(.5)
29 property alias model: repeater.model
30 property alias model: repeater.model
30− property var color
31+ property color color: Theme.palette.normal.baseText
32+ property real fontScale: 1.0
31
33
32 Repeater {
34 Repeater {
33 id: repeater
35 id: repeater
@@ -42,17 +44,19 @@ GridLayout {
42 Layout.columnSpan: index == repeater.count - 1 && grid.columns == 3 && column == 1 ? 2 : 1
44 Layout.columnSpan: index == repeater.count - 1 && grid.columns == 3 && column == 1 ? 2 : 1
43 Layout.maximumWidth: Math.max(icon.width, label.x + label.implicitWidth)
45 Layout.maximumWidth: Math.max(icon.width, label.x + label.implicitWidth)
44 Layout.fillWidth: true
46 Layout.fillWidth: true
47+ height: units.gu(2)
45 StatusIcon {
48 StatusIcon {
46 id: icon
49 id: icon
47 height: units.gu(2)
50 height: units.gu(2)
48 sets: ["actions", "status", "apps"]
51 sets: ["actions", "status", "apps"]
49− source: "icon" in modelData ? modelData["icon"] : ""
52+ source: "icon" in modelData && modelData["icon"] || ""
53+ color: grid.color
50 }
54 }
51 Label {
55 Label {
52 id: label
56 id: label
53 width: parent.width - x
57 width: parent.width - x
54 anchors.verticalCenter: parent.verticalCenter
58 anchors.verticalCenter: parent.verticalCenter
55− text: "value" in modelData ? modelData["value"] : "";
59+ text: "value" in modelData && modelData["value"] || "";
56 elide: Text.ElideRight
60 elide: Text.ElideRight
57 maximumLineCount: 1
61 maximumLineCount: 1
58 font.weight: "style" in modelData && modelData["style"] == "highlighted" ? Font.DemiBold : Font.Light
62 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\
29 gradientColor: getColor(1) || color; \n\
29 gradientColor: getColor(1) || color; \n\
30 anchors.fill: parent; \n\
30 anchors.fill: parent; \n\
31 image: backgroundImage.source ? backgroundImage : null; \n\
31 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\
33 property Image backgroundImage: Image { \n\
33 property Image backgroundImage: Image { \n\
34 objectName: "backgroundImage"; \n\
34 objectName: "backgroundImage"; \n\
35 source: { \n\
35 source: { \n\
@@ -108,7 +108,7 @@ var kOverlayLoaderCode = 'Loader { \n\
108 sourceComponent: ShaderEffect { \n\
108 sourceComponent: ShaderEffect { \n\
109 id: overlay; \n\
109 id: overlay; \n\
110 height: (fixedHeaderHeight > 0 ? fixedHeaderHeight : headerHeight) + units.gu(2); \n\
110 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\
112 property color overlayColor: cardData && cardData["overlayColor"] || "#99000000"; \n\
112 property color overlayColor: cardData && cardData["overlayColor"] || "#99000000"; \n\
113 property var source: ShaderEffectSource { \n\
113 property var source: ShaderEffectSource { \n\
114 id: shaderSource; \n\
114 id: shaderSource; \n\
@@ -274,6 +274,7 @@ var kAttributesRowCode = 'CardAttributes { \n\
274 objectName: "attributesRow"; \n\
274 objectName: "attributesRow"; \n\
275 anchors { %1 } \n\
275 anchors { %1 } \n\
276 color: %2; \n\
276 color: %2; \n\
277+ fontScale: root.fontScale; \n\
277 model: cardData && cardData["attributes"]; \n\
278 model: cardData && cardData["attributes"]; \n\
278 }\n';
279 }\n';
279
280
@@ -439,14 +440,14 @@ function cardString(template, components) {
439 mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible);
440 mascotCode = kMascotImageCode.arg(mascotAnchors).arg(mascotImageVisible);
440 }
441 }
441
442
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")';
443
444
444 var hasTitleContainer = hasTitle && (hasEmblem || (hasMascot && (hasSubtitle || hasAttributes)));
445 var hasTitleContainer = hasTitle && (hasEmblem || (hasMascot && (hasSubtitle || hasAttributes)));
445 var titleSubtitleCode = '';
446 var titleSubtitleCode = '';
446 if (hasTitle) {
447 if (hasTitle) {
447 var titleColor;
448 var titleColor;
448 if (headerAsOverlay) {
449 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")';
450 } else if (hasSummary) {
451 } else if (hasSummary) {
451 titleColor = 'summary.color';
452 titleColor = 'summary.color';
452 } else if (hasBackground) {
453 } else if (hasBackground) {
@@ -466,6 +467,8 @@ function cardString(template, components) {
466 if (!touchdownOnArtShape) {
467 if (!touchdownOnArtShape) {
467 extraRightAnchor = 'rightMargin: units.gu(1); \n';
468 extraRightAnchor = 'rightMargin: units.gu(1); \n';
468 extraLeftAnchor = 'leftMargin: units.gu(1); \n';
469 extraLeftAnchor = 'leftMargin: units.gu(1); \n';
470+ } else if (headerAsOverlay && !hasEmblem) {
471+ extraRightAnchor = 'rightMargin: units.gu(1); \n';
469 }
472 }
470
473
471 if (hasMascot) {
474 if (hasMascot) {
@@ -652,7 +655,8 @@ function cardString(template, components) {
652function createCardComponent(parent, template, components) {
655function createCardComponent(parent, template, components) {
653 var imports = 'import QtQuick 2.2; \n\
656 var imports = 'import QtQuick 2.2; \n\
654 import Ubuntu.Components 1.1; \n\
657 import Ubuntu.Components 1.1; \n\
655− import Dash 0.1;\n';
658+ import Dash 0.1;\n\
659+ import Utils 0.1;\n';
656 var card = cardString(template, components);
660 var card = cardString(template, components);
657 var code = imports + 'Component {\n' + card + '}\n';
661 var code = imports + 'Component {\n' + card + '}\n';
658
662
plugins/Dash/ScopeStyle.qml+38−40
@@ -15,6 +15,8 @@
15 */
15 */
16
16
17import QtQuick 2.2
17import QtQuick 2.2
18+import Utils 0.1
19+import Ubuntu.Components 1.1
18
20
19/*! \brief Helper for processing scope customization options.
21/*! \brief Helper for processing scope customization options.
20
22
@@ -27,69 +29,65 @@ QtObject {
27 /// Style object passed from the scope
29 /// Style object passed from the scope
28 property var style: Object()
30 property var style: Object()
29
31
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−
38 /// Color used for text and symbolic icons
32 /// Color used for text and symbolic icons
39 readonly property color foreground: "foreground-color" in style ? style["foreground-color"] : d.defaultDark
33 readonly property color foreground: "foreground-color" in style ? style["foreground-color"] : d.defaultDark
40
34
41 /// Luminance of the foreground color
35 /// 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)
43
37
44 /// Color used for the overall background
38 /// Color used for the overall background
45− readonly property color background: "background-color" in style ? style["background-color"] : "transparent"
39+ readonly property color background: "background-color" in style ? style["background-color"] : "#00f5f5f5"
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− }
66
40
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)
68
43
44+ /*! \brief Get the most contrasting available color based on luminance
45+ *
69− \note If background color is not fully opaque, it's not taken into account
46+ * If background color is transparent, theme provided colors are taken into account
70− and defaults to the theme-provided dark color.
71 */
47 */
72− readonly property color dark: {
48+ function getTextColor(luminance) {
73− if (background.a !== 1.0) return foregroundLuminance < d.defaultDarkLuminance ? foreground : d.defaultDark;
49+ if (Math.abs(foregroundLuminance - luminance) >
74− return foregroundLuminance < backgroundLuminance ? foreground : background;
50+ Math.abs(d.opaqueBackgroundLuminance - luminance)) {
51+ return foreground;
52+ } else {
53+ return d.opaqueBackground;
54+ }
75 }
55 }
76
56
77 /// Source of the logo image for the header
57 /// Source of the logo image for the header
78 readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
58 readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
79
59
80 /// Background style for the header
60 /// 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"
82
62
83 /// Foreground color for the header
63 /// Foreground color for the header
84 readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
64 readonly property color headerForeground: "foreground-color" in d.headerStyle ? d.headerStyle["foreground-color"] : foreground
85
65
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+
86 //! @cond
75 //! @cond
87 property var d: QtObject {
76 property var d: QtObject {
88 // FIXME: should be taken from the theme
77 // FIXME: should be taken from the theme
89 readonly property color defaultLight: "white"
78 readonly property color defaultLight: "white"
90− readonly property color defaultDark: Theme.palette.normal.baseText
79+ readonly property color defaultDark: UbuntuColors.darkGrey
91− readonly property real defaultLightLuminance: luminance(defaultLight)
80+ readonly property real defaultLightLuminance: Style.luminance(defaultLight)
92− readonly property real defaultDarkLuminance: luminance(defaultDark)
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)
93
91
94 readonly property var headerStyle: "page-header" in style ? style["page-header"] : { }
92 readonly property var headerStyle: "page-header" in style ? style["page-header"] : { }
95 }
93 }
plugins/HudClient/hudclient.cpp+12−12
@@ -82,7 +82,7 @@ HudClient::HudClient()
82 m_results = new DeeListModel();
82 m_results = new DeeListModel();
83 m_clientQuery = hud_client_query_new("");
83 m_clientQuery = hud_client_query_new("");
84 m_toolBarModel = new HudToolBarModel(m_clientQuery);
84 m_toolBarModel = new HudToolBarModel(m_clientQuery);
85− m_currentActionParam = NULL;
85+ m_currentActionParam = nullptr;
86 m_results->setModel(hud_client_query_get_results_model(m_clientQuery));
86 m_results->setModel(hud_client_query_get_results_model(m_clientQuery));
87
87
88 g_signal_connect(G_OBJECT(m_clientQuery), "voice-query-loading", G_CALLBACK(loadingCB), this);
88 g_signal_connect(G_OBJECT(m_clientQuery), "voice-query-loading", G_CALLBACK(loadingCB), this);
@@ -151,13 +151,13 @@ void HudClient::executeParametrizedAction(const QVariant &values)
151 updateParametrizedAction(values);
151 updateParametrizedAction(values);
152 hud_client_param_send_commit(m_currentActionParam);
152 hud_client_param_send_commit(m_currentActionParam);
153 g_object_unref(m_currentActionParam);
153 g_object_unref(m_currentActionParam);
154− m_currentActionParam = NULL;
154+ m_currentActionParam = nullptr;
155 Q_EMIT commandExecuted();
155 Q_EMIT commandExecuted();
156}
156}
157
157
158void HudClient::updateParametrizedAction(const QVariant &values)
158void HudClient::updateParametrizedAction(const QVariant &values)
159{
159{
160− if (m_currentActionParam != NULL) {
160+ if (m_currentActionParam != nullptr) {
161 const QVariantMap map = values.value<QVariantMap>();
161 const QVariantMap map = values.value<QVariantMap>();
162 GActionGroup *ag = hud_client_param_get_actions(m_currentActionParam);
162 GActionGroup *ag = hud_client_param_get_actions(m_currentActionParam);
163
163
@@ -179,10 +179,10 @@ void HudClient::updateParametrizedAction(const QVariant &values)
179
179
180void HudClient::cancelParametrizedAction()
180void HudClient::cancelParametrizedAction()
181{
181{
182− if (m_currentActionParam != NULL) {
182+ if (m_currentActionParam != nullptr) {
183 hud_client_param_send_cancel(m_currentActionParam);
183 hud_client_param_send_cancel(m_currentActionParam);
184 g_object_unref(m_currentActionParam);
184 g_object_unref(m_currentActionParam);
185− m_currentActionParam = NULL;
185+ m_currentActionParam = nullptr;
186 }
186 }
187}
187}
188
188
@@ -212,9 +212,9 @@ void HudClient::executeCommand(int index)
212 GVariant *is_parametrized = dee_model_get_value(model, iter, 7);
212 GVariant *is_parametrized = dee_model_get_value(model, iter, 7);
213 if (g_variant_get_boolean(is_parametrized)) {
213 if (g_variant_get_boolean(is_parametrized)) {
214 m_currentActionParam = hud_client_query_execute_param_command(m_clientQuery, command_key, /* timestamp */ 0);
214 m_currentActionParam = hud_client_query_execute_param_command(m_clientQuery, command_key, /* timestamp */ 0);
215− if (m_currentActionParam != NULL) {
215+ if (m_currentActionParam != nullptr) {
216 GMenuModel *menuModel = hud_client_param_get_model (m_currentActionParam);
216 GMenuModel *menuModel = hud_client_param_get_model (m_currentActionParam);
217− if (menuModel == NULL) {
217+ if (menuModel == nullptr) {
218 g_signal_connect(m_currentActionParam, HUD_CLIENT_PARAM_SIGNAL_MODEL_READY, G_CALLBACK(modelReadyCB), this);
218 g_signal_connect(m_currentActionParam, HUD_CLIENT_PARAM_SIGNAL_MODEL_READY, G_CALLBACK(modelReadyCB), this);
219 } else {
219 } else {
220 modelReady(false);
220 modelReady(false);
@@ -244,9 +244,9 @@ void HudClient::modelReady(bool needDisconnect)
244}
244}
245
245
246static void addAttribute(QVariantMap &properties, GMenuModel *menuModel, int item, const char *attribute) {
246static 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);
248
248
249− if (v == NULL)
249+ if (v == nullptr)
250 return;
250 return;
251
251
252 properties.insert(attribute, DeeListModel::VariantForData(v));
252 properties.insert(attribute, DeeListModel::VariantForData(v));
@@ -264,10 +264,10 @@ void HudClient::modelReallyReady(bool needDisconnect)
264 for (int i = 0; i < g_menu_model_get_n_items(menuModel); i++) {
264 for (int i = 0; i < g_menu_model_get_n_items(menuModel); i++) {
265 GVariant *v = g_menu_model_get_item_attribute_value(menuModel, i, "parameter-type", G_VARIANT_TYPE_STRING);
265 GVariant *v = g_menu_model_get_item_attribute_value(menuModel, i, "parameter-type", G_VARIANT_TYPE_STRING);
266
266
267− if (v == NULL)
267+ if (v == nullptr)
268 continue;
268 continue;
269
269
270− const QString type = QString::fromUtf8(g_variant_get_string(v, NULL));
270+ const QString type = QString::fromUtf8(g_variant_get_string(v, nullptr));
271 if (type == "slider") {
271 if (type == "slider") {
272 const char *sliderAttributes[] = { "label", "min", "max", "step", "value", "live", "action" };
272 const char *sliderAttributes[] = { "label", "min", "max", "step", "value", "live", "action" };
273 QVariantMap properties;
273 QVariantMap properties;
@@ -283,7 +283,7 @@ void HudClient::modelReallyReady(bool needDisconnect)
283 DeeModel *model = hud_client_query_get_results_model(m_clientQuery);
283 DeeModel *model = hud_client_query_get_results_model(m_clientQuery);
284 DeeModelIter *iter = dee_model_get_iter_at_row(model, m_currentActionIndex);
284 DeeModelIter *iter = dee_model_get_iter_at_row(model, m_currentActionIndex);
285 GVariant *actionTextVariant = dee_model_get_value(model, iter, 1);
285 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));
287 g_variant_unref(actionTextVariant);
287 g_variant_unref(actionTextVariant);
288 Q_EMIT showParametrizedAction(actionText, QVariant::fromValue(items));
288 Q_EMIT showParametrizedAction(actionText, QVariant::fromValue(items));
289}
289}
plugins/HudClient/volumepeakdetector.cpp+9−9
@@ -45,15 +45,15 @@ PulseAudioVolumePeakDetector::PulseAudioVolumePeakDetector()
45 : m_accumulatedValue(0)
45 : m_accumulatedValue(0)
46 , m_nAccumulatedValues(0)
46 , m_nAccumulatedValues(0)
47 , m_accumulatedValuesLimit(1)
47 , m_accumulatedValuesLimit(1)
48− , m_context(NULL)
48+ , m_context(nullptr)
49− , m_mainloop_api(NULL)
49+ , m_mainloop_api(nullptr)
50− , m_stream(NULL)
50+ , m_stream(nullptr)
51{
51{
52}
52}
53
53
54void PulseAudioVolumePeakDetector::start()
54void PulseAudioVolumePeakDetector::start()
55{
55{
56− pa_mainloop *mainloop = NULL;
56+ pa_mainloop *mainloop = nullptr;
57
57
58 /* Set up a new main loop */
58 /* Set up a new main loop */
59 mainloop = pa_mainloop_new();
59 mainloop = pa_mainloop_new();
@@ -63,7 +63,7 @@ void PulseAudioVolumePeakDetector::start()
63 m_mainloop_api = pa_mainloop_get_api(mainloop);
63 m_mainloop_api = pa_mainloop_get_api(mainloop);
64
64
65 /* Create a new connection context */
65 /* 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);
67 if (!m_context) {
67 if (!m_context) {
68 goto quit;
68 goto quit;
69 }
69 }
@@ -71,12 +71,12 @@ void PulseAudioVolumePeakDetector::start()
71 pa_context_set_state_callback(m_context, context_state_callback, this);
71 pa_context_set_state_callback(m_context, context_state_callback, this);
72
72
73 /* Connect the context */
73 /* 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) {
75 goto quit;
75 goto quit;
76 }
76 }
77
77
78 /* Run the main loop */
78 /* Run the main loop */
79− if (pa_mainloop_run(mainloop, NULL) < 0) {
79+ if (pa_mainloop_run(mainloop, nullptr) < 0) {
80 goto quit;
80 goto quit;
81 }
81 }
82
82
@@ -130,7 +130,7 @@ void PulseAudioVolumePeakDetector::startStream()
130 pa_channel_map_init_extend(&channel_map, sample_spec.channels, PA_CHANNEL_MAP_DEFAULT);
130 pa_channel_map_init_extend(&channel_map, sample_spec.channels, PA_CHANNEL_MAP_DEFAULT);
131 pa_proplist_sets(proplist, PA_PROP_MEDIA_NAME, "HUD Peak Detector");
131 pa_proplist_sets(proplist, PA_PROP_MEDIA_NAME, "HUD Peak Detector");
132
132
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);
134 if (!m_stream) {
134 if (!m_stream) {
135 pa_proplist_free(proplist);
135 pa_proplist_free(proplist);
136 quit();
136 quit();
@@ -144,7 +144,7 @@ void PulseAudioVolumePeakDetector::startStream()
144 buffer_attr.maxlength = (uint32_t) -1;
144 buffer_attr.maxlength = (uint32_t) -1;
145 buffer_attr.fragsize = sizeof(float);
145 buffer_attr.fragsize = sizeof(float);
146
146
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) {
148 quit();
148 quit();
149 }
149 }
150}
150}
plugins/LightDM/Greeter.cpp+2
@@ -106,6 +106,7 @@ void Greeter::authenticate(const QString &username)
106 }
106 }
107
107
108 d->m_greeter->authenticate(username);
108 d->m_greeter->authenticate(username);
109+ Q_EMIT isAuthenticatedChanged();
109 Q_EMIT authenticationUserChanged(username);
110 Q_EMIT authenticationUserChanged(username);
110}
111}
111
112
@@ -150,5 +151,6 @@ void Greeter::authenticationCompleteFilter()
150 Q_EMIT promptlessChanged();
151 Q_EMIT promptlessChanged();
151 }
152 }
152
153
154+ Q_EMIT isAuthenticatedChanged();
153 Q_EMIT authenticationComplete();
155 Q_EMIT authenticationComplete();
154}
156}
plugins/LightDM/Greeter.h+2−1
@@ -35,7 +35,7 @@ class Greeter : public QObject
35 Q_OBJECT
35 Q_OBJECT
36
36
37 Q_PROPERTY(bool active READ isActive WRITE setIsActive NOTIFY isActiveChanged)
37 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)
39 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
39 Q_PROPERTY(QString authenticationUser READ authenticationUser NOTIFY authenticationUserChanged)
40 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
40 Q_PROPERTY(bool promptless READ promptless NOTIFY promptlessChanged)
41
41
@@ -59,6 +59,7 @@ Q_SIGNALS:
59 void authenticationComplete();
59 void authenticationComplete();
60 void authenticationUserChanged(const QString &user);
60 void authenticationUserChanged(const QString &user);
61 void isActiveChanged();
61 void isActiveChanged();
62+ void isAuthenticatedChanged();
62 void promptlessChanged();
63 void promptlessChanged();
63 void showGreeter();
64 void showGreeter();
64
65
plugins/Powerd/Powerd.cpp+17−1
@@ -25,9 +25,21 @@ void autoBrightnessChanged(GSettings *settings, const gchar *key, QDBusInterface
25 unityScreen->asyncCall("userAutobrightnessEnable", QVariant(value));
25 unityScreen->asyncCall("userAutobrightnessEnable", QVariant(value));
26}
26}
27
27
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+
28Powerd::Powerd(QObject* parent)
40Powerd::Powerd(QObject* parent)
29 : QObject(parent),
41 : QObject(parent),
30− unityScreen(NULL)
42+ unityScreen(nullptr)
31{
43{
32 unityScreen = new QDBusInterface("com.canonical.Unity.Screen",
44 unityScreen = new QDBusInterface("com.canonical.Unity.Screen",
33 "/com/canonical/Unity/Screen",
45 "/com/canonical/Unity/Screen",
@@ -43,7 +55,11 @@ Powerd::Powerd(QObject* parent)
43
55
44 systemSettings = g_settings_new("com.ubuntu.touch.system");
56 systemSettings = g_settings_new("com.ubuntu.touch.system");
45 g_signal_connect(systemSettings, "changed::auto-brightness", G_CALLBACK(autoBrightnessChanged), unityScreen);
57 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);
46 autoBrightnessChanged(systemSettings, "auto-brightness", unityScreen);
60 autoBrightnessChanged(systemSettings, "auto-brightness", unityScreen);
61+ activityTimeoutChanged(systemSettings, "activity-timeout", unityScreen);
62+ dimTimeoutChanged(systemSettings, "dim-timeout", unityScreen);
47}
63}
48
64
49Powerd::~Powerd()
65Powerd::~Powerd()
plugins/Unity/CMakeLists.txt+1
@@ -1,3 +1,4 @@
1+add_subdirectory(Connectivity)
1add_subdirectory(Indicators)
2add_subdirectory(Indicators)
2add_subdirectory(Launcher)
3add_subdirectory(Launcher)
3add_subdirectory(Session)
4add_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 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−#ifndef VIRTUALKEYBOARD_H
17+#ifndef CONNECTIVITY_H
18−#define VIRTUALKEYBOARD_H
18+#define CONNECTIVITY_H
19
19
20−#include "MirSurfaceItem.h"
20+#include <QObject>
21
21
22−class VirtualKeyboard : public MirSurfaceItem
22+class Connectivity : public QObject
23{
23{
24 Q_OBJECT
24 Q_OBJECT
25−public:
25+ Q_DISABLE_COPY(Connectivity)
26− VirtualKeyboard(State state,
27− QQuickItem *parent = 0);
28
26
29− void touchEvent(QTouchEvent * event) override;
27+public:
28+ explicit Connectivity(QObject *parent = 0);
30
29
31−private:
30+ Q_INVOKABLE void unlockAllModems();
32− bool hasTouchInsideKeyboard(QTouchEvent *event);
33};
31};
34
32
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:
45 m_baseIndex(0),
45 m_baseIndex(0),
46 m_delta(0),
46 m_delta(0),
47 m_count(0),
47 m_count(0),
48− m_timer(NULL),
48+ m_timer(nullptr),
49 q(parent)
49 q(parent)
50 {}
50 {}
51
51
@@ -55,7 +55,7 @@ public:
55 m_content.clear();
55 m_content.clear();
56 }
56 }
57
57
58− int findNextInactiveDelta(bool* finished = NULL);
58+ int findNextInactiveDelta(bool* finished = nullptr);
59
59
60 static int content_count(QQmlListProperty<MenuContentState> *prop);
60 static int content_count(QQmlListProperty<MenuContentState> *prop);
61 static MenuContentState* content_at(QQmlListProperty<MenuContentState> *prop, int index);
61 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
71 Q_PROPERTY(int count READ count WRITE setCount NOTIFY countChanged)
71 Q_PROPERTY(int count READ count WRITE setCount NOTIFY countChanged)
72 Q_PROPERTY(QQmlListProperty<MenuContentState> content READ content NOTIFY contentChanged DESIGNABLE false)
72 Q_PROPERTY(QQmlListProperty<MenuContentState> content READ content NOTIFY contentChanged DESIGNABLE false)
73public:
73public:
74− MenuContentActivator(QObject* parent = NULL);
74+ MenuContentActivator(QObject* parent = nullptr);
75 ~MenuContentActivator();
75 ~MenuContentActivator();
76
76
77 Q_INVOKABLE void restart();
77 Q_INVOKABLE void restart();
plugins/Unity/Indicators/modelprinter.cpp+3−3
@@ -27,13 +27,13 @@
27
27
28ModelPrinter::ModelPrinter(QObject *parent)
28ModelPrinter::ModelPrinter(QObject *parent)
29 : QObject(parent)
29 : QObject(parent)
30− , m_model(NULL)
30+ , m_model(nullptr)
31{
31{
32}
32}
33
33
34void ModelPrinter::setSourceModel(UnityMenuModel * sourceModel)
34void ModelPrinter::setSourceModel(UnityMenuModel * sourceModel)
35{
35{
36− if (m_model != NULL) {
36+ if (m_model != nullptr) {
37 disconnect(m_model);
37 disconnect(m_model);
38 }
38 }
39 if (m_model != sourceModel) {
39 if (m_model != sourceModel) {
@@ -41,7 +41,7 @@ void ModelPrinter::setSourceModel(UnityMenuModel * sourceModel)
41 Q_EMIT modelChanged();
41 Q_EMIT modelChanged();
42 Q_EMIT textChanged();
42 Q_EMIT textChanged();
43 }
43 }
44− if (m_model != NULL) {
44+ if (m_model != nullptr) {
45 connect(m_model, SIGNAL(rowsInserted(QModelIndex,int,int)), SIGNAL(textChanged()));
45 connect(m_model, SIGNAL(rowsInserted(QModelIndex,int,int)), SIGNAL(textChanged()));
46 connect(m_model, SIGNAL(rowsRemoved(QModelIndex,int,int)), SIGNAL(textChanged()));
46 connect(m_model, SIGNAL(rowsRemoved(QModelIndex,int,int)), SIGNAL(textChanged()));
47 connect(m_model, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&, const QVector<int>&)), SIGNAL(textChanged()));
47 connect(m_model, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&, const QVector<int>&)), SIGNAL(textChanged()));
plugins/Unity/Indicators/qmldir−3
@@ -1,6 +1,3 @@
1module Unity.Indicators
1module Unity.Indicators
2plugin IndicatorsQml
2plugin IndicatorsQml
3typeinfo Indicators.qmltypes
3typeinfo 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" {
31
31
32RootActionState::RootActionState(QObject *parent)
32RootActionState::RootActionState(QObject *parent)
33 : ActionStateParser(parent),
33 : ActionStateParser(parent),
34− m_menu(NULL)
34+ m_menu(nullptr)
35{
35{
36}
36}
37
37
@@ -95,7 +95,7 @@ void RootActionState::onModelDataChanged(const QModelIndex& topLeft, const QMode
95void RootActionState::reset()
95void RootActionState::reset()
96{
96{
97 m_cachedState.clear();
97 m_cachedState.clear();
98− m_menu = NULL;
98+ m_menu = nullptr;
99
99
100 Q_EMIT menuChanged();
100 Q_EMIT menuChanged();
101 Q_EMIT updated();
101 Q_EMIT updated();
@@ -171,7 +171,7 @@ static QString iconUri(GIcon *icon)
171 const gchar* const* iconNames = g_themed_icon_get_names (G_THEMED_ICON (icon));
171 const gchar* const* iconNames = g_themed_icon_get_names (G_THEMED_ICON (icon));
172
172
173 QStringList iconNameList;
173 QStringList iconNameList;
174− for (uint index = 0; iconNames[index] != NULL; index++) {
174+ for (uint index = 0; iconNames[index] != nullptr; index++) {
175 iconNameList << iconNames[index];
175 iconNameList << iconNames[index];
176 }
176 }
177
177
@@ -282,7 +282,7 @@ QVariant RootActionState::toQVariant(GVariant* state) const
282 qmap["accessible-desc"] = accessible_name ? QString::fromUtf8(accessible_name) : "";
282 qmap["accessible-desc"] = accessible_name ? QString::fromUtf8(accessible_name) : "";
283 qmap["visible"] = visible;
283 qmap["visible"] = visible;
284
284
285− gicon = g_icon_new_for_string (icon, NULL);
285+ gicon = g_icon_new_for_string (icon, nullptr);
286 if (gicon) {
286 if (gicon) {
287 qmap["icons"] = QStringList() << iconUri(gicon);
287 qmap["icons"] = QStringList() << iconUri(gicon);
288 g_object_unref (gicon);
288 g_object_unref (gicon);
plugins/Unity/Indicators/unitymenumodelcache.cpp+22−7
@@ -29,14 +29,29 @@ UnityMenuModelCache::~UnityMenuModelCache()
29{
29{
30}
30}
31
31
32−
33−UnityMenuModel* UnityMenuModelCache::model(const QString& path) const
32+UnityMenuModel* UnityMenuModelCache::model(const QByteArray& bus,
33+ const QByteArray& path,
34+ const QVariantMap& actions)
34{
35{
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;
36}
52}
37
53
38−void UnityMenuModelCache::registerModel(const QString& path, UnityMenuModel* menuModel)
54+bool UnityMenuModelCache::contains(const QByteArray& path)
39{
55{
40− menuModel->setParent(this);
56+ return m_registry.contains(path);
41− m_menuModels[path] = menuModel;
42−}
57+}
plugins/Unity/Indicators/unitymenumodelcache.h+6−4
@@ -31,14 +31,16 @@ class UNITYINDICATORS_EXPORT UnityMenuModelCache : public QObject
31{
31{
32 Q_OBJECT
32 Q_OBJECT
33public:
33public:
34− UnityMenuModelCache(QObject*parent=NULL);
34+ UnityMenuModelCache(QObject*parent=nullptr);
35 ~UnityMenuModelCache();
35 ~UnityMenuModelCache();
36
36
37− Q_INVOKABLE UnityMenuModel* model(const QString& path) const;
37+ Q_INVOKABLE UnityMenuModel* model(const QByteArray& bus,
38− Q_INVOKABLE void registerModel(const QString& path, UnityMenuModel* menuModel);
38+ const QByteArray& path,
39+ const QVariantMap& actions);
40+ Q_INVOKABLE bool contains(const QByteArray& path);
39
41
40private:
42private:
41− QHash<QString, UnityMenuModel*> m_menuModels;
43+ QHash<QByteArray, UnityMenuModel*> m_registry;
42};
44};
43
45
44#endif // UNITYMENUMODELCACHE_H
46#endif // UNITYMENUMODELCACHE_H
plugins/Unity/Indicators/unitymenumodelstack.cpp+4−4
@@ -90,7 +90,7 @@ UnityMenuModelStack::~UnityMenuModelStack()
90
90
91UnityMenuModel* UnityMenuModelStack::head() const
91UnityMenuModel* UnityMenuModelStack::head() const
92{
92{
93− return !m_menuModels.isEmpty() ? m_menuModels.first()->model() : NULL;
93+ return !m_menuModels.isEmpty() ? m_menuModels.first()->model() : nullptr;
94}
94}
95
95
96void UnityMenuModelStack::setHead(UnityMenuModel* model)
96void UnityMenuModelStack::setHead(UnityMenuModel* model)
@@ -106,7 +106,7 @@ void UnityMenuModelStack::setHead(UnityMenuModel* model)
106
106
107UnityMenuModel* UnityMenuModelStack::tail() const
107UnityMenuModel* UnityMenuModelStack::tail() const
108{
108{
109− return !m_menuModels.isEmpty() ? m_menuModels.last()->model() : NULL;
109+ return !m_menuModels.isEmpty() ? m_menuModels.last()->model() : nullptr;
110}
110}
111
111
112int UnityMenuModelStack::count() const
112int UnityMenuModelStack::count() const
@@ -127,7 +127,7 @@ void UnityMenuModelStack::push(UnityMenuModel* model, int index)
127UnityMenuModel* UnityMenuModelStack::pop()
127UnityMenuModel* UnityMenuModelStack::pop()
128{
128{
129 if (m_menuModels.isEmpty()) {
129 if (m_menuModels.isEmpty()) {
130− return NULL;
130+ return nullptr;
131 }
131 }
132 UnityMenuModelEntry* entry = m_menuModels.takeLast();
132 UnityMenuModelEntry* entry = m_menuModels.takeLast();
133 UnityMenuModel* model = entry->model();
133 UnityMenuModel* model = entry->model();
@@ -135,7 +135,7 @@ UnityMenuModel* UnityMenuModelStack::pop()
135
135
136 Q_EMIT tailChanged(tail());
136 Q_EMIT tailChanged(tail());
137 if (m_menuModels.isEmpty()) {
137 if (m_menuModels.isEmpty()) {
138− Q_EMIT headChanged(NULL);
138+ Q_EMIT headChanged(nullptr);
139 }
139 }
140 Q_EMIT countChanged(m_menuModels.count());
140 Q_EMIT countChanged(m_menuModels.count());
141
141
plugins/Unity/Indicators/unitymenumodelstack.h+1−1
@@ -40,7 +40,7 @@ class UNITYINDICATORS_EXPORT UnityMenuModelStack : public QObject
40 Q_PROPERTY(UnityMenuModel* tail READ tail NOTIFY tailChanged)
40 Q_PROPERTY(UnityMenuModel* tail READ tail NOTIFY tailChanged)
41 Q_PROPERTY(int count READ count NOTIFY countChanged)
41 Q_PROPERTY(int count READ count NOTIFY countChanged)
42public:
42public:
43− UnityMenuModelStack(QObject*parent=NULL);
43+ UnityMenuModelStack(QObject*parent=nullptr);
44 ~UnityMenuModelStack();
44 ~UnityMenuModelStack();
45
45
46 UnityMenuModel* head() const;
46 UnityMenuModel* head() const;
plugins/Unity/Launcher/CMakeLists.txt+1−1
@@ -1,6 +1,6 @@
1include(FindPkgConfig)
1include(FindPkgConfig)
2pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=3)
2pkg_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)
4pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
4pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
5
5
6add_definitions(-DSM_BUSNAME=systemBus)
6add_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
42QLimitProxyModelQML::setModel(QAbstractItemModel *itemModel)
42QLimitProxyModelQML::setModel(QAbstractItemModel *itemModel)
43{
43{
44 if (itemModel != sourceModel()) {
44 if (itemModel != sourceModel()) {
45− if (sourceModel() != NULL) {
45+ if (sourceModel() != nullptr) {
46 sourceModel()->disconnect(this);
46 sourceModel()->disconnect(this);
47 }
47 }
48
48
49 setSourceModel(itemModel);
49 setSourceModel(itemModel);
50
50
51− if (sourceModel() != NULL) {
51+ if (sourceModel() != nullptr) {
52 // Disconnect the QIdentityProxyModel handling for rows removed/added...
52 // Disconnect the QIdentityProxyModel handling for rows removed/added...
53− disconnect(sourceModel(), SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), this, NULL);
53+ disconnect(sourceModel(), SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)), this, nullptr);
54− disconnect(sourceModel(), SIGNAL(rowsInserted(QModelIndex,int,int)), this, NULL);
54+ disconnect(sourceModel(), SIGNAL(rowsInserted(QModelIndex,int,int)), this, nullptr);
55− disconnect(sourceModel(), SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), this, NULL);
55+ disconnect(sourceModel(), SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), this, nullptr);
56− disconnect(sourceModel(), SIGNAL(rowsRemoved(QModelIndex,int,int)), this, NULL);
56+ disconnect(sourceModel(), SIGNAL(rowsRemoved(QModelIndex,int,int)), this, nullptr);
57
57
58 // ... and use our own
58 // ... and use our own
59 connect(sourceModel(), SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
59 connect(sourceModel(), SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
plugins/Utils/qmldir+1
@@ -1,3 +1,4 @@
1module Utils
1module Utils
2plugin Utils-qml
2plugin Utils-qml
3typeinfo Utils.qmltypes
3typeinfo Utils.qmltypes
4+Style 0.1 Style.js
plugins/Utils/qsortfilterproxymodelqml.cpp+7−7
@@ -34,7 +34,7 @@ QSortFilterProxyModelQML::QSortFilterProxyModelQML(QObject *parent)
34 */
34 */
35int QSortFilterProxyModelQML::mapRowToSource(int row)
35int QSortFilterProxyModelQML::mapRowToSource(int row)
36{
36{
37− if (sourceModel() == NULL)
37+ if (sourceModel() == nullptr)
38 return -1;
38 return -1;
39
39
40 return QSortFilterProxyModel::mapToSource(index(row, 0)).row();
40 return QSortFilterProxyModel::mapToSource(index(row, 0)).row();
@@ -48,12 +48,12 @@ QHash<int, QByteArray> QSortFilterProxyModelQML::roleNames() const
48void
48void
49QSortFilterProxyModelQML::setModel(QAbstractItemModel *itemModel)
49QSortFilterProxyModelQML::setModel(QAbstractItemModel *itemModel)
50{
50{
51− if (itemModel == NULL) {
51+ if (itemModel == nullptr) {
52 return;
52 return;
53 }
53 }
54
54
55 if (itemModel != sourceModel()) {
55 if (itemModel != sourceModel()) {
56− if (sourceModel() != NULL) {
56+ if (sourceModel() != nullptr) {
57 sourceModel()->disconnect(this);
57 sourceModel()->disconnect(this);
58 }
58 }
59
59
@@ -83,7 +83,7 @@ QSortFilterProxyModelQML::get(int row)
83QVariant
83QVariant
84QSortFilterProxyModelQML::data(int row, int role)
84QSortFilterProxyModelQML::data(int row, int role)
85{
85{
86− if (sourceModel() == NULL) {
86+ if (sourceModel() == nullptr) {
87 return QVariant();
87 return QVariant();
88 }
88 }
89
89
@@ -93,7 +93,7 @@ QSortFilterProxyModelQML::data(int row, int role)
93int
93int
94QSortFilterProxyModelQML::totalCount() const
94QSortFilterProxyModelQML::totalCount() const
95{
95{
96− if (sourceModel() != NULL) {
96+ if (sourceModel() != nullptr) {
97 return sourceModel()->rowCount();
97 return sourceModel()->rowCount();
98 } else {
98 } else {
99 return 0;
99 return 0;
@@ -149,7 +149,7 @@ QSortFilterProxyModelQML::findFirst(int role, const QVariant& value) const
149int
149int
150QSortFilterProxyModelQML::mapFromSource(int row)
150QSortFilterProxyModelQML::mapFromSource(int row)
151{
151{
152− if (sourceModel() != NULL) {
152+ if (sourceModel() != nullptr) {
153 return QSortFilterProxyModel::mapFromSource(sourceModel()->index(row, 0)).row();
153 return QSortFilterProxyModel::mapFromSource(sourceModel()->index(row, 0)).row();
154 } else {
154 } else {
155 return -1;
155 return -1;
@@ -159,7 +159,7 @@ QSortFilterProxyModelQML::mapFromSource(int row)
159int
159int
160QSortFilterProxyModelQML::mapToSource(int row)
160QSortFilterProxyModelQML::mapToSource(int row)
161{
161{
162− if (sourceModel() != NULL) {
162+ if (sourceModel() != nullptr) {
163 return QSortFilterProxyModel::mapToSource(index(row, 0)).row();
163 return QSortFilterProxyModel::mapToSource(index(row, 0)).row();
164 } else {
164 } else {
165 return -1;
165 return -1;
plugins/Utils/timeformatter.cpp+8−8
@@ -57,9 +57,9 @@ timedate1_properties_changed (GDBusConnection *connection,
57 if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(sa{sv}as)")))
57 if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(sa{sv}as)")))
58 return;
58 return;
59
59
60− g_variant_get (parameters, "(s@a{sv}as)", NULL, &changed, &iter);
60+ g_variant_get (parameters, "(s@a{sv}as)", nullptr, &changed, &iter);
61
61
62− if (g_variant_lookup (changed, "Timezone", "s", NULL)) {
62+ if (g_variant_lookup (changed, "Timezone", "s", nullptr)) {
63 priv->formatter->update();
63 priv->formatter->update();
64 }
64 }
65 else {
65 else {
@@ -81,10 +81,10 @@ got_bus(GObject *object, GAsyncResult *result, gpointer user_data)
81 Q_UNUSED(object);
81 Q_UNUSED(object);
82
82
83 TimeFormatterPrivate *priv = (TimeFormatterPrivate *)user_data;
83 TimeFormatterPrivate *priv = (TimeFormatterPrivate *)user_data;
84− GError *error = NULL;
84+ GError *error = nullptr;
85
85
86 priv->system_bus = g_bus_get_finish (result, &error);
86 priv->system_bus = g_bus_get_finish (result, &error);
87− if (priv->system_bus == NULL) {
87+ if (priv->system_bus == nullptr) {
88 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
88 if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
89 qWarning("TimeFormatter: cannot connect to the system bus: %s", error->message);
89 qWarning("TimeFormatter: cannot connect to the system bus: %s", error->message);
90 g_error_free (error);
90 g_error_free (error);
@@ -98,14 +98,14 @@ got_bus(GObject *object, GAsyncResult *result, gpointer user_data)
98 * and keep the process alive.
98 * and keep the process alive.
99 */
99 */
100 priv->subscription_id = g_dbus_connection_signal_subscribe (priv->system_bus,
100 priv->subscription_id = g_dbus_connection_signal_subscribe (priv->system_bus,
101− NULL, /* sender */
101+ nullptr, /* sender */
102 "org.freedesktop.DBus.Properties",
102 "org.freedesktop.DBus.Properties",
103 "PropertiesChanged",
103 "PropertiesChanged",
104− NULL,
104+ nullptr,
105 "org.freedesktop.timedate1",
105 "org.freedesktop.timedate1",
106 G_DBUS_SIGNAL_FLAGS_NONE,
106 G_DBUS_SIGNAL_FLAGS_NONE,
107 timedate1_properties_changed,
107 timedate1_properties_changed,
108− priv, NULL);
108+ priv, nullptr);
109}
109}
110
110
111TimeFormatter::TimeFormatter(QObject *parent): QObject(parent)
111TimeFormatter::TimeFormatter(QObject *parent): QObject(parent)
@@ -114,7 +114,7 @@ TimeFormatter::TimeFormatter(QObject *parent): QObject(parent)
114 priv->formatter = this;
114 priv->formatter = this;
115 priv->time = 0;
115 priv->time = 0;
116 priv->format = "yyyy-MM-dd hh:mm";
116 priv->format = "yyyy-MM-dd hh:mm";
117− priv->system_bus = NULL;
117+ priv->system_bus = nullptr;
118 priv->subscription_id = 0;
118 priv->subscription_id = 0;
119 priv->cancellable = g_cancellable_new ();
119 priv->cancellable = g_cancellable_new ();
120
120
po/am.po+49−40
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-16 20:11+0000\n"
11+"PO-Revision-Date: 2014-08-23 17:14+0000\n"
12"Last-Translator: samson <Unknown>\n"
12"Last-Translator: samson <Unknown>\n"
13"Language-Team: Amharic <am@li.org>\n"
13"Language-Team: Amharic <am@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-24 06:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
97−msgstr "በርካታ የተሳሳቱ ሙከራዎች"
98−
99−#: qml/Components/Lockscreen.qml:163
100msgid "Please wait"
96msgid "Please wait"
101msgstr "እባክዎን ይቆዩ"
97msgstr "እባክዎን ይቆዩ"
102
98
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
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "የ ድንገተኛ ጥሪ"
105msgstr "የ ድንገተኛ ጥሪ"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr "እሺ"
109msgstr "እሺ"
110
110
@@ -117,23 +117,15 @@ msgstr "ሰላም %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "ሰላም"
118msgstr "ሰላም"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr "አነስተኛ መመልከቻ"
122msgstr "አነስተኛ መመልከቻ"
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr "ሁሉንም መመልከቻ"
126msgstr "ሁሉንም መመልከቻ"
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "መፈለጊያ"
130msgstr "መፈለጊያ"
139
131
@@ -201,12 +193,16 @@ msgstr "አሁን ይናገሩ..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "በመናገር ላይ..."
194msgstr "በመናገር ላይ..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "የመግቢያ ቃል ማሳያ"
198msgstr "የመግቢያ ቃል ማሳያ"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,48 +245,61 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
257+msgid "Enter your PIN"
258+msgstr ""
259+
260+#: qml/Shell.qml:273
261#, qt-format
261#, qt-format
262msgid "Enter your %1"
262msgid "Enter your %1"
263msgstr "ያስገቡ የ እርስዎን %1"
263msgstr "ያስገቡ የ እርስዎን %1"
264
264
265−#: qml/Shell.qml:270
265+#: qml/Shell.qml:274
266#, qt-format
266#, qt-format
267−msgid "Incorrect %1"
267+msgid "Sorry, incorrect %1"
268−msgstr "የተሳሳተ %1"
268+msgstr "አዝናለሁ: የተሳሳተ%1"
269−
270−#: qml/Shell.qml:272
271−msgid "Please re-enter"
272−msgstr "እባክዎን እንደ ገና-ያስገቡ"
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr "ይህ የመጨረሻ ሙከራዎ ነው"
280msgstr "ይህ የመጨረሻ ሙከራዎ ነው"
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
296msgstr ""
292msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -95,19 +95,19 @@ msgstr ""
95"أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر على "
95"أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر على "
96"الشاشة للبدء"
96"الشاشة للبدء"
97
97
98−#: qml/Components/Lockscreen.qml:161
98+#: qml/Components/Lockscreen.qml:167
99−msgid "Too many incorrect attempts"
99+msgid "Please wait"
100msgstr ""
100msgstr ""
101
101
102−#: qml/Components/Lockscreen.qml:163
102+#: qml/Components/Lockscreen.qml:172
103−msgid "Please wait"
103+msgid "Too many incorrect attempts"
104msgstr ""
104msgstr ""
105
105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107msgid "Emergency Call"
107msgid "Emergency Call"
108msgstr "مكالمة طوارئ"
108msgstr "مكالمة طوارئ"
109
109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111msgid "OK"
111msgid "OK"
112msgstr ""
112msgstr ""
113
113
@@ -120,23 +120,15 @@ msgstr "مرحبا %1"
120msgid "Hello"
120msgid "Hello"
121msgstr "مرحبًا"
121msgstr "مرحبًا"
122
122
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
132msgid "See less"
124msgid "See less"
133msgstr "شاهد أقل"
125msgstr "شاهد أقل"
134
126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136msgid "See all"
128msgid "See all"
137msgstr ""
129msgstr ""
138
130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140msgid "Search"
132msgid "Search"
141msgstr "ابحث"
133msgstr "ابحث"
142
134
@@ -204,13 +196,17 @@ msgstr "تكلم الآن..."
204msgid "Speaking..."
196msgid "Speaking..."
205msgstr "تتكلم الآن..."
197msgstr "تتكلم الآن..."
206
198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208msgid "Show password"
200msgid "Show password"
209msgstr "عرض كلمة السر"
201msgstr "عرض كلمة السر"
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
212−msgid "Please enter SIM PIN"
204+msgid "Enter SIM PIN"
213−msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214
210
215#: qml/Panel/ActiveCallHint.qml:77
211#: qml/Panel/ActiveCallHint.qml:77
216msgid "Tap to return to call..."
212msgid "Tap to return to call..."
@@ -252,48 +248,51 @@ msgstr ""
252msgid "Roaming"
248msgid "Roaming"
253msgstr ""
249msgstr ""
254
250
255−#: qml/Shell.qml:267
251+#: qml/Shell.qml:266
256−msgid "passphrase"
252+msgid "Enter your passphrase"
257msgstr ""
253msgstr ""
258
254
259#: qml/Shell.qml:267
255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261msgstr ""
257msgstr ""
262
258
263#: qml/Shell.qml:269
259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266msgstr ""
261msgstr ""
267
262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269#, qt-format
264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271msgstr ""
266msgstr ""
272
267
273−#: qml/Shell.qml:272
268+#: qml/Shell.qml:274
274−msgid "Please re-enter"
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275msgstr ""
271msgstr ""
276
272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278msgid "Sorry, incorrect passphrase."
274msgid "Sorry, incorrect passphrase."
279msgstr ""
275msgstr ""
280
276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282msgid "Sorry, incorrect passcode."
278msgid "Sorry, incorrect passcode."
283msgstr ""
279msgstr ""
284
280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286msgid "This will be your last attempt."
282msgid "This will be your last attempt."
287msgstr ""
283msgstr ""
288
284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290msgid ""
286msgid ""
291"If passphrase is entered incorrectly, your phone will conduct a factory "
287"If passphrase is entered incorrectly, your phone will conduct a factory "
292"reset and all personal data will be deleted."
288"reset and all personal data will be deleted."
293msgstr ""
289msgstr ""
294
290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296msgid ""
292msgid ""
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298"and all personal data will be deleted."
294"and all personal data will be deleted."
299msgstr ""
295msgstr ""
296+
297+#~ msgid "Please enter SIM PIN"
298+#~ msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
po/ast.po+43−38
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-07-25 16:51+0000\n"
11"PO-Revision-Date: 2014-07-25 16:51+0000\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -96,19 +96,19 @@ msgstr ""
96"Agora yá domines los xestos de los berbesos y pues entamar a usar el "
96"Agora yá domines los xestos de los berbesos y pues entamar a usar el "
97"teléfonu<br><br>Toca la pantalla pa comenzar"
97"teléfonu<br><br>Toca la pantalla pa comenzar"
98
98
99−#: qml/Components/Lockscreen.qml:161
99+#: qml/Components/Lockscreen.qml:167
100−msgid "Too many incorrect attempts"
100+msgid "Please wait"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:163
103+#: qml/Components/Lockscreen.qml:172
104−msgid "Please wait"
104+msgid "Too many incorrect attempts"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:245
107+#: qml/Components/Lockscreen.qml:206
108msgid "Emergency Call"
108msgid "Emergency Call"
109msgstr "Llamada d'emerxencia"
109msgstr "Llamada d'emerxencia"
110
110
111−#: qml/Components/Lockscreen.qml:268
111+#: qml/Components/Lockscreen.qml:226
112msgid "OK"
112msgid "OK"
113msgstr "Aceutar"
113msgstr "Aceutar"
114
114
@@ -121,23 +121,15 @@ msgstr "Hola %1"
121msgid "Hello"
121msgid "Hello"
122msgstr "Hola"
122msgstr "Hola"
123
123
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
133msgid "See less"
125msgid "See less"
134msgstr "Ver menos"
126msgstr "Ver menos"
135
127
136−#: qml/Dash/GenericScopeView.qml:360
128+#: qml/Dash/GenericScopeView.qml:361
137msgid "See all"
129msgid "See all"
138msgstr "Ver too"
130msgstr "Ver too"
139
131
140−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141msgid "Search"
133msgid "Search"
142msgstr "Guetar"
134msgstr "Guetar"
143
135
@@ -205,13 +197,17 @@ msgstr "Fala agora…"
205msgid "Speaking..."
197msgid "Speaking..."
206msgstr "Falando…"
198msgstr "Falando…"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209msgid "Show password"
201msgid "Show password"
210msgstr "Amosar contraseña"
202msgstr "Amosar contraseña"
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
213−msgid "Please enter SIM PIN"
205+msgid "Enter SIM PIN"
214−msgstr "Escribi'l PIN de la SIM"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215
211
216#: qml/Panel/ActiveCallHint.qml:77
212#: qml/Panel/ActiveCallHint.qml:77
217msgid "Tap to return to call..."
213msgid "Tap to return to call..."
@@ -253,48 +249,57 @@ msgstr ""
253msgid "Roaming"
249msgid "Roaming"
254msgstr ""
250msgstr ""
255
251
256−#: qml/Shell.qml:267
252+#: qml/Shell.qml:266
257−msgid "passphrase"
253+msgid "Enter your passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:267
256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262msgstr ""
258msgstr ""
263
259
264#: qml/Shell.qml:269
260#: qml/Shell.qml:269
265−#, qt-format
266−msgid "Enter your %1"
261+msgid "Enter your PIN"
267msgstr ""
262msgstr ""
268
263
269−#: qml/Shell.qml:270
264+#: qml/Shell.qml:273
270#, qt-format
265#, qt-format
271−msgid "Incorrect %1"
266+msgid "Enter your %1"
272msgstr ""
267msgstr ""
273
268
274−#: qml/Shell.qml:272
269+#: qml/Shell.qml:274
275−msgid "Please re-enter"
270+#, qt-format
271+msgid "Sorry, incorrect %1"
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279msgid "Sorry, incorrect passphrase."
275msgid "Sorry, incorrect passphrase."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283msgid "Sorry, incorrect passcode."
279msgid "Sorry, incorrect passcode."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287msgid "This will be your last attempt."
283msgid "This will be your last attempt."
288msgstr ""
284msgstr ""
289
285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291msgid ""
287msgid ""
292"If passphrase is entered incorrectly, your phone will conduct a factory "
288"If passphrase is entered incorrectly, your phone will conduct a factory "
293"reset and all personal data will be deleted."
289"reset and all personal data will be deleted."
294msgstr ""
290msgstr ""
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-01-15 09:50+0000\n"
11+"PO-Revision-Date: 2014-08-26 22:12+0000\n"
12"Last-Translator: Turan Mahmudov <turan.mahmudov@gmail.com>\n"
12"Last-Translator: Turan Mahmudov <turan.mahmudov@gmail.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
22−msgstr ""
22+msgstr "Parol: "
23
23
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26msgid "Pin shortcut"
26msgid "Pin shortcut"
27−msgstr ""
27+msgstr "Pin qısayolu"
28
28
29#: plugins/Unity/Launcher/launcheritem.cpp:73
29#: plugins/Unity/Launcher/launcheritem.cpp:73
30msgid "Unpin shortcut"
30msgid "Unpin shortcut"
31−msgstr ""
31+msgstr "Açma qısayolu"
32
32
33#: qml/Components/Dialogs.qml:142
33#: qml/Components/Dialogs.qml:142
34msgid "Are you sure you would like to turn power off?"
34msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Söndürmək istədiyinizə əminsiniz?"
36
36
37#: qml/Components/Dialogs.qml:144
37#: qml/Components/Dialogs.qml:144
38msgid "Power off"
38msgid "Power off"
39−msgstr ""
39+msgstr "Söndür"
40
40
41#: qml/Components/Dialogs.qml:153
41#: qml/Components/Dialogs.qml:153
42msgid "Restart"
42msgid "Restart"
43−msgstr ""
43+msgstr "Yenidən Başlat"
44
44
45#: qml/Components/Dialogs.qml:162
45#: qml/Components/Dialogs.qml:162
46msgid "Cancel"
46msgid "Cancel"
47−msgstr ""
47+msgstr "İmtina"
48
48
49#: qml/Components/EdgeDemoOverlay.qml:151
49#: qml/Components/EdgeDemoOverlay.qml:151
50msgid "Skip intro"
50msgid "Skip intro"
@@ -92,22 +92,24 @@ msgid ""
92"You have now mastered the edge gestures and can start using the "
92"You have now mastered the edge gestures and can start using the "
93"phone<br><br>Tap on the screen to start"
93"phone<br><br>Tap on the screen to start"
94msgstr ""
94msgstr ""
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"
95
97
96−#: qml/Components/Lockscreen.qml:161
98+#: qml/Components/Lockscreen.qml:167
97−msgid "Too many incorrect attempts"
98−msgstr ""
99−
100−#: qml/Components/Lockscreen.qml:163
101msgid "Please wait"
99msgid "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"
103
105
104−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
105msgid "Emergency Call"
107msgid "Emergency Call"
106msgstr "Zərurət zəngi"
108msgstr "Zərurət zəngi"
107
109
108−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
109msgid "OK"
111msgid "OK"
110−msgstr ""
112+msgstr "ОК"
111
113
112#: qml/Components/PassphraseLockscreen.qml:61
114#: qml/Components/PassphraseLockscreen.qml:61
113#, qt-format
115#, qt-format
@@ -118,33 +120,25 @@ msgstr "Xoş gördük %1"
118msgid "Hello"
120msgid "Hello"
119msgstr "Xoş gördük"
121msgstr "Xoş gördük"
120
122
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
130msgid "See less"
124msgid "See less"
131−msgstr ""
125+msgstr "Daha az gör"
132
126
133−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
134msgid "See all"
128msgid "See all"
135−msgstr ""
129+msgstr "Hamısını gör"
136
130
137−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
138msgid "Search"
132msgid "Search"
139msgstr "Axtar"
133msgstr "Axtar"
140
134
141#: qml/Dash/Previews/PreviewActionCombo.qml:34
135#: qml/Dash/Previews/PreviewActionCombo.qml:34
142msgid "More..."
136msgid "More..."
143−msgstr ""
137+msgstr "Ətraflı..."
144
138
145#: qml/Dash/Previews/PreviewActionCombo.qml:34
139#: qml/Dash/Previews/PreviewActionCombo.qml:34
146msgid "Less..."
140msgid "Less..."
147−msgstr ""
141+msgstr "Az..."
148
142
149#: qml/Dash/Previews/PreviewRatingInput.qml:81
143#: qml/Dash/Previews/PreviewRatingInput.qml:81
150msgid "Rate this"
144msgid "Rate this"
@@ -164,23 +158,23 @@ msgstr ""
164
158
165#: qml/Dash/ScopesOverview.qml:408
159#: qml/Dash/ScopesOverview.qml:408
166msgid "Done"
160msgid "Done"
167−msgstr ""
161+msgstr "Başa çatdı"
168
162
169#: qml/Dash/ScopesOverview.qml:434
163#: qml/Dash/ScopesOverview.qml:434
170msgid "Store"
164msgid "Store"
171−msgstr ""
165+msgstr "Saxla"
172
166
173#: qml/Dash/ScopesOverviewTab.qml:36
167#: qml/Dash/ScopesOverviewTab.qml:36
174msgid "Favorites"
168msgid "Favorites"
175−msgstr ""
169+msgstr "Seçilmişlər"
176
170
177#: qml/Dash/ScopesOverviewTab.qml:54
171#: qml/Dash/ScopesOverviewTab.qml:54
178msgid "All"
172msgid "All"
179−msgstr ""
173+msgstr "Hamısı"
180
174
181#: qml/Greeter/Greeter.qml:157
175#: qml/Greeter/Greeter.qml:157
182msgid "Swipe to unlock"
176msgid "Swipe to unlock"
183−msgstr ""
177+msgstr "Kilidi açmaq üçün sürüşdürün"
184
178
185#: qml/Hud/HudParametrizedActionsPage.qml:132
179#: qml/Hud/HudParametrizedActionsPage.qml:132
186msgid "Confirm"
180msgid "Confirm"
@@ -202,96 +196,126 @@ msgstr "Danışın..."
202msgid "Speaking..."
196msgid "Speaking..."
203msgstr "Danışır..."
197msgstr "Danışır..."
204
198
205−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
206msgid "Show password"
200msgid "Show password"
207msgstr "Parolu göstər"
201msgstr "Parolu göstər"
208
202
209−#: qml/Notifications/NotificationMenuItemFactory.qml:115
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
210−msgid "Please enter SIM PIN"
204+msgid "Enter SIM PIN"
211−msgstr ""
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"
212
210
213#: qml/Panel/ActiveCallHint.qml:77
211#: qml/Panel/ActiveCallHint.qml:77
214msgid "Tap to return to call..."
212msgid "Tap to return to call..."
215−msgstr ""
213+msgstr "Zəngə qayıtmaq üçün toxunun..."
216
214
217#: qml/Panel/ActiveCallHint.qml:90
215#: qml/Panel/ActiveCallHint.qml:90
218msgid "Conference"
216msgid "Conference"
219−msgstr ""
217+msgstr "Konfrans"
220
218
221#: qml/Panel/Indicators/MenuItemFactory.qml:651
219#: qml/Panel/Indicators/MenuItemFactory.qml:651
222msgid "In queue…"
220msgid "In queue…"
223−msgstr ""
221+msgstr "Növbədədir..."
224
222
225#: qml/Panel/Indicators/MenuItemFactory.qml:655
223#: qml/Panel/Indicators/MenuItemFactory.qml:655
226msgid "Downloading"
224msgid "Downloading"
227−msgstr ""
225+msgstr "Endirilir"
228
226
229#: qml/Panel/Indicators/MenuItemFactory.qml:657
227#: qml/Panel/Indicators/MenuItemFactory.qml:657
230msgid "Paused, tap to resume"
228msgid "Paused, tap to resume"
231−msgstr ""
229+msgstr "Saxlanıldı, davam etmək üçün toxunun"
232
230
233#: qml/Panel/Indicators/MenuItemFactory.qml:659
231#: qml/Panel/Indicators/MenuItemFactory.qml:659
234msgid "Canceled"
232msgid "Canceled"
235−msgstr ""
233+msgstr "İmtina edildi"
236
234
237#: qml/Panel/Indicators/MenuItemFactory.qml:661
235#: qml/Panel/Indicators/MenuItemFactory.qml:661
238msgid "Finished"
236msgid "Finished"
239−msgstr ""
237+msgstr "Bitdi"
240
238
241#: qml/Panel/Indicators/MenuItemFactory.qml:663
239#: qml/Panel/Indicators/MenuItemFactory.qml:663
242msgid "Failed, tap to retry"
240msgid "Failed, tap to retry"
243−msgstr ""
241+msgstr "Alınmadı, davam etmək üçün toxunun"
244
242
245#: qml/Panel/Indicators/ModemInfoItem.qml:105
243#: qml/Panel/Indicators/ModemInfoItem.qml:105
246msgid "Unlock SIM"
244msgid "Unlock SIM"
247−msgstr ""
245+msgstr "SIM kilidini aç"
248
246
249#: qml/Panel/Indicators/RoamingIndication.qml:27
247#: qml/Panel/Indicators/RoamingIndication.qml:27
250msgid "Roaming"
248msgid "Roaming"
251−msgstr ""
249+msgstr "Rominq"
252
250
253−#: qml/Shell.qml:267
251+#: qml/Shell.qml:266
254−msgid "passphrase"
252+msgid "Enter your passphrase"
255−msgstr ""
253+msgstr "Açar sözünüzü daxil edin"
256
254
257#: qml/Shell.qml:267
255#: qml/Shell.qml:267
258−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
259−msgstr ""
257+msgstr "Təəssüf ki, açar söz yanlışdır"
260
258
261#: qml/Shell.qml:269
259#: qml/Shell.qml:269
260+msgid "Enter your PIN"
261+msgstr "PIN kodunuzu daxil edin"
262+
263+#: qml/Shell.qml:273
262#, qt-format
264#, qt-format
263msgid "Enter your %1"
265msgid "Enter your %1"
264−msgstr ""
266+msgstr "%1 daxil edin"
265
267
266−#: qml/Shell.qml:270
268+#: qml/Shell.qml:274
267#, qt-format
269#, qt-format
268−msgid "Incorrect %1"
270+msgid "Sorry, incorrect %1"
269−msgstr ""
271+msgstr "Təəssüf ki, %1 yanlışdır"
270−
271−#: qml/Shell.qml:272
272−msgid "Please re-enter"
273−msgstr ""
274
272
275−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
276msgid "Sorry, incorrect passphrase."
274msgid "Sorry, incorrect passphrase."
277−msgstr ""
275+msgstr "Təəssüf ki, açar söz yanlışdır."
278
276
279−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
280msgid "Sorry, incorrect passcode."
278msgid "Sorry, incorrect passcode."
281−msgstr ""
279+msgstr "Təəssüf ki, açar kod yanlışdır."
282
280
283−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
284msgid "This will be your last attempt."
282msgid "This will be your last attempt."
285−msgstr ""
283+msgstr "Bu sizin son cəhdiniz olacaq."
286
284
287−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
288msgid ""
286msgid ""
289"If passphrase is entered incorrectly, your phone will conduct a factory "
287"If passphrase is entered incorrectly, your phone will conduct a factory "
290"reset and all personal data will be deleted."
288"reset and all personal data will be deleted."
291msgstr ""
289msgstr ""
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."
292
292
293−#: qml/Shell.qml:311
293+#: qml/Shell.qml:315
294msgid ""
294msgid ""
295"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"If passcode is entered incorrectly, your phone will conduct a factory reset "
296"and all personal data will be deleted."
296"and all personal data will be deleted."
297msgstr ""
297msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -99,19 +99,19 @@ msgid ""
99"phone<br><br>Tap on the screen to start"
99"phone<br><br>Tap on the screen to start"
100msgstr ""
100msgstr ""
101
101
102−#: qml/Components/Lockscreen.qml:161
102+#: qml/Components/Lockscreen.qml:167
103−msgid "Too many incorrect attempts"
103+msgid "Please wait"
104msgstr ""
104msgstr ""
105
105
106−#: qml/Components/Lockscreen.qml:163
106+#: qml/Components/Lockscreen.qml:172
107−msgid "Please wait"
107+msgid "Too many incorrect attempts"
108msgstr ""
108msgstr ""
109
109
110−#: qml/Components/Lockscreen.qml:245
110+#: qml/Components/Lockscreen.qml:206
111msgid "Emergency Call"
111msgid "Emergency Call"
112msgstr "Спешно повикване"
112msgstr "Спешно повикване"
113
113
114−#: qml/Components/Lockscreen.qml:268
114+#: qml/Components/Lockscreen.qml:226
115msgid "OK"
115msgid "OK"
116msgstr ""
116msgstr ""
117
117
@@ -124,23 +124,15 @@ msgstr "Здравей, %1"
124msgid "Hello"
124msgid "Hello"
125msgstr "Здравей"
125msgstr "Здравей"
126
126
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
136msgid "See less"
128msgid "See less"
137msgstr ""
129msgstr ""
138
130
139−#: qml/Dash/GenericScopeView.qml:360
131+#: qml/Dash/GenericScopeView.qml:361
140msgid "See all"
132msgid "See all"
141msgstr ""
133msgstr ""
142
134
143−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
135+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
144msgid "Search"
136msgid "Search"
145msgstr "Търсене"
137msgstr "Търсене"
146
138
@@ -208,12 +200,16 @@ msgstr "Говорете сега..."
208msgid "Speaking..."
200msgid "Speaking..."
209msgstr "Говорете..."
201msgstr "Говорете..."
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:100
203+#: qml/Notifications/NotificationMenuItemFactory.qml:105
212msgid "Show password"
204msgid "Show password"
213msgstr "Покажи паролата"
205msgstr "Покажи паролата"
214
206
215−#: qml/Notifications/NotificationMenuItemFactory.qml:115
207+#: qml/Notifications/NotificationMenuItemFactory.qml:120
216−msgid "Please enter SIM PIN"
208+msgid "Enter SIM PIN"
209+msgstr ""
210+
211+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
212+msgid "Sorry, incorrect PIN"
217msgstr ""
213msgstr ""
218
214
219#: qml/Panel/ActiveCallHint.qml:77
215#: qml/Panel/ActiveCallHint.qml:77
@@ -256,47 +252,47 @@ msgstr ""
256msgid "Roaming"
252msgid "Roaming"
257msgstr ""
253msgstr ""
258
254
259−#: qml/Shell.qml:267
255+#: qml/Shell.qml:266
260−msgid "passphrase"
256+msgid "Enter your passphrase"
261msgstr ""
257msgstr ""
262
258
263#: qml/Shell.qml:267
259#: qml/Shell.qml:267
264−msgid "passcode"
260+msgid "Sorry, incorrect passphrase"
265msgstr ""
261msgstr ""
266
262
267#: qml/Shell.qml:269
263#: qml/Shell.qml:269
268−#, qt-format
269−msgid "Enter your %1"
264+msgid "Enter your PIN"
270msgstr ""
265msgstr ""
271
266
272−#: qml/Shell.qml:270
267+#: qml/Shell.qml:273
273#, qt-format
268#, qt-format
274−msgid "Incorrect %1"
269+msgid "Enter your %1"
275msgstr ""
270msgstr ""
276
271
277−#: qml/Shell.qml:272
272+#: qml/Shell.qml:274
278−msgid "Please re-enter"
273+#, qt-format
274+msgid "Sorry, incorrect %1"
279msgstr ""
275msgstr ""
280
276
281−#: qml/Shell.qml:306
277+#: qml/Shell.qml:310
282msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
283msgstr ""
279msgstr ""
284
280
285−#: qml/Shell.qml:307
281+#: qml/Shell.qml:311
286msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
287msgstr ""
283msgstr ""
288
284
289−#: qml/Shell.qml:308
285+#: qml/Shell.qml:312
290msgid "This will be your last attempt."
286msgid "This will be your last attempt."
291msgstr ""
287msgstr ""
292
288
293−#: qml/Shell.qml:310
289+#: qml/Shell.qml:314
294msgid ""
290msgid ""
295"If passphrase is entered incorrectly, your phone will conduct a factory "
291"If passphrase is entered incorrectly, your phone will conduct a factory "
296"reset and all personal data will be deleted."
292"reset and all personal data will be deleted."
297msgstr ""
293msgstr ""
298
294
299−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
300msgid ""
296msgid ""
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"and all personal data will be deleted."
298"and all personal data will be deleted."
po/br.po+82−60
@@ -7,19 +7,19 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-07-28 06:44+0000\n"
11+"PO-Revision-Date: 2014-08-26 08:28+0000\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
13"Language-Team: Breton <br@li.org>\n"
13"Language-Team: Breton <br@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
22−msgstr ""
22+msgstr "Ger-tremen : "
23
23
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,19 +32,19 @@ msgstr "Dispilhennañ ar verradenn"
32
32
33#: qml/Components/Dialogs.qml:142
33#: qml/Components/Dialogs.qml:142
34msgid "Are you sure you would like to turn power off?"
34msgid "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 ?"
36
36
37#: qml/Components/Dialogs.qml:144
37#: qml/Components/Dialogs.qml:144
38msgid "Power off"
38msgid "Power off"
39−msgstr ""
39+msgstr "Lazhañ"
40
40
41#: qml/Components/Dialogs.qml:153
41#: qml/Components/Dialogs.qml:153
42msgid "Restart"
42msgid "Restart"
43−msgstr ""
43+msgstr "Adloc'hañ"
44
44
45#: qml/Components/Dialogs.qml:162
45#: qml/Components/Dialogs.qml:162
46msgid "Cancel"
46msgid "Cancel"
47−msgstr ""
47+msgstr "Nullañ"
48
48
49#: qml/Components/EdgeDemoOverlay.qml:151
49#: qml/Components/EdgeDemoOverlay.qml:151
50msgid "Skip intro"
50msgid "Skip intro"
@@ -99,19 +99,19 @@ msgstr ""
99"Mestroniañ a rit ar jestroù ha gallout a rit kregiñ da implijout ar "
99"Mestroniañ a rit ar jestroù ha gallout a rit kregiñ da implijout ar "
100"pellgomzer<br><br>Touchit d'ar skramm evit kregiñ ganti"
100"pellgomzer<br><br>Touchit d'ar skramm evit kregiñ ganti"
101
101
102−#: qml/Components/Lockscreen.qml:161
102+#: qml/Components/Lockscreen.qml:167
103−msgid "Too many incorrect attempts"
104−msgstr ""
105−
106−#: qml/Components/Lockscreen.qml:163
107msgid "Please wait"
103msgid "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"
109
109
110−#: qml/Components/Lockscreen.qml:245
110+#: qml/Components/Lockscreen.qml:206
111msgid "Emergency Call"
111msgid "Emergency Call"
112msgstr "Pellgomzadenn vallus"
112msgstr "Pellgomzadenn vallus"
113
113
114−#: qml/Components/Lockscreen.qml:268
114+#: qml/Components/Lockscreen.qml:226
115msgid "OK"
115msgid "OK"
116msgstr "Mat eo"
116msgstr "Mat eo"
117
117
@@ -124,23 +124,15 @@ msgstr "Demat %1"
124msgid "Hello"
124msgid "Hello"
125msgstr "Demat"
125msgstr "Demat"
126
126
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
136msgid "See less"
128msgid "See less"
137msgstr "Gwelet nebeutoc'h"
129msgstr "Gwelet nebeutoc'h"
138
130
139−#: qml/Dash/GenericScopeView.qml:360
131+#: qml/Dash/GenericScopeView.qml:361
140msgid "See all"
132msgid "See all"
141msgstr "Gwelet pep tra"
133msgstr "Gwelet pep tra"
142
134
143−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
135+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
144msgid "Search"
136msgid "Search"
145msgstr "Klask"
137msgstr "Klask"
146
138
@@ -166,23 +158,23 @@ msgstr "Kas"
166
158
167#: qml/Dash/ScopesOverview.qml:201
159#: qml/Dash/ScopesOverview.qml:201
168msgid "Manage Dash"
160msgid "Manage Dash"
169−msgstr ""
161+msgstr "Merañ an daolenn-vourzh"
170
162
171#: qml/Dash/ScopesOverview.qml:408
163#: qml/Dash/ScopesOverview.qml:408
172msgid "Done"
164msgid "Done"
173−msgstr ""
165+msgstr "Graet eo"
174
166
175#: qml/Dash/ScopesOverview.qml:434
167#: qml/Dash/ScopesOverview.qml:434
176msgid "Store"
168msgid "Store"
177−msgstr ""
169+msgstr "Enrollañ"
178
170
179#: qml/Dash/ScopesOverviewTab.qml:36
171#: qml/Dash/ScopesOverviewTab.qml:36
180msgid "Favorites"
172msgid "Favorites"
181−msgstr ""
173+msgstr "Gwellañ deuet"
182
174
183#: qml/Dash/ScopesOverviewTab.qml:54
175#: qml/Dash/ScopesOverviewTab.qml:54
184msgid "All"
176msgid "All"
185−msgstr ""
177+msgstr "An holl anezho"
186
178
187#: qml/Greeter/Greeter.qml:157
179#: qml/Greeter/Greeter.qml:157
188msgid "Swipe to unlock"
180msgid "Swipe to unlock"
@@ -208,13 +200,17 @@ msgstr "Komzit bremañ..."
208msgid "Speaking..."
200msgid "Speaking..."
209msgstr "O komz..."
201msgstr "O komz..."
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:100
203+#: qml/Notifications/NotificationMenuItemFactory.qml:105
212msgid "Show password"
204msgid "Show password"
213msgstr "Diskouez ar ger-tremen"
205msgstr "Diskouez ar ger-tremen"
214
206
215−#: qml/Notifications/NotificationMenuItemFactory.qml:115
207+#: qml/Notifications/NotificationMenuItemFactory.qml:120
216−msgid "Please enter SIM PIN"
208+msgid "Enter SIM PIN"
217−msgstr "Ebarzhit kod PIN ho kartenn SIM, mar plij"
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"
218
214
219#: qml/Panel/ActiveCallHint.qml:77
215#: qml/Panel/ActiveCallHint.qml:77
220msgid "Tap to return to call..."
216msgid "Tap to return to call..."
@@ -250,54 +246,80 @@ msgstr "C'hwitet, touchit evit adkregiñ"
250
246
251#: qml/Panel/Indicators/ModemInfoItem.qml:105
247#: qml/Panel/Indicators/ModemInfoItem.qml:105
252msgid "Unlock SIM"
248msgid "Unlock SIM"
253−msgstr ""
249+msgstr "Dibrennañ ar gartenn SIM"
254
250
255#: qml/Panel/Indicators/RoamingIndication.qml:27
251#: qml/Panel/Indicators/RoamingIndication.qml:27
256msgid "Roaming"
252msgid "Roaming"
257−msgstr ""
253+msgstr "O kantren"
258
254
259−#: qml/Shell.qml:267
255+#: qml/Shell.qml:266
260−msgid "passphrase"
256+msgid "Enter your passphrase"
261−msgstr ""
257+msgstr "Ebarzhit ho frazenn-dremen"
262
258
263#: qml/Shell.qml:267
259#: qml/Shell.qml:267
264−msgid "passcode"
260+msgid "Sorry, incorrect passphrase"
265−msgstr ""
261+msgstr "Siwazh, frazenn-dremen direizh"
266
262
267#: qml/Shell.qml:269
263#: qml/Shell.qml:269
264+msgid "Enter your PIN"
265+msgstr "Ebarzhit ho kod PIN"
266+
267+#: qml/Shell.qml:273
268#, qt-format
268#, qt-format
269msgid "Enter your %1"
269msgid "Enter your %1"
270−msgstr ""
270+msgstr "Ebarzhit ho %1"
271
271
272−#: qml/Shell.qml:270
272+#: qml/Shell.qml:274
273#, qt-format
273#, qt-format
274−msgid "Incorrect %1"
274+msgid "Sorry, incorrect %1"
275−msgstr ""
275+msgstr "Siwazh, %1 direizh"
276
276
277−#: qml/Shell.qml:272
277+#: qml/Shell.qml:310
278−msgid "Please re-enter"
279−msgstr ""
280−
281−#: qml/Shell.qml:306
282msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
283−msgstr ""
279+msgstr "Siwazh, frazenn-dremen direizh"
284
280
285−#: qml/Shell.qml:307
281+#: qml/Shell.qml:311
286msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
287−msgstr ""
283+msgstr "Siwazh, kod-tremen direizh"
288
284
289−#: qml/Shell.qml:308
285+#: qml/Shell.qml:312
290msgid "This will be your last attempt."
286msgid "This will be your last attempt."
291−msgstr ""
287+msgstr "Ho taol-esae diwezhañ e vo."
292
288
293−#: qml/Shell.qml:310
289+#: qml/Shell.qml:314
294msgid ""
290msgid ""
295"If passphrase is entered incorrectly, your phone will conduct a factory "
291"If passphrase is entered incorrectly, your phone will conduct a factory "
296"reset and all personal data will be deleted."
292"reset and all personal data will be deleted."
297msgstr ""
293msgstr ""
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"
298
296
299−#: qml/Shell.qml:311
297+#: qml/Shell.qml:315
300msgid ""
298msgid ""
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"and all personal data will be deleted."
300"and all personal data will be deleted."
303msgstr ""
301msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr ""
130msgstr ""
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/ca.po+61−43
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-17 03:42+0000\n"
11+"PO-Revision-Date: 2014-08-26 17:37+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -100,19 +100,19 @@ msgstr ""
100"Ja heu après com utilitzar els gestos de les vores per fer servir el "
100"Ja heu après com utilitzar els gestos de les vores per fer servir el "
101"telèfon<br><br>Feu un toc a la pantalla per començar"
101"telèfon<br><br>Feu un toc a la pantalla per començar"
102
102
103−#: qml/Components/Lockscreen.qml:161
103+#: qml/Components/Lockscreen.qml:167
104−msgid "Too many incorrect attempts"
105−msgstr "Massa intents incorrectes"
106−
107−#: qml/Components/Lockscreen.qml:163
108msgid "Please wait"
104msgid "Please wait"
109msgstr "Espereu"
105msgstr "Espereu"
110
106
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
112msgid "Emergency Call"
112msgid "Emergency Call"
113msgstr "Trucada d'emergència"
113msgstr "Trucada d'emergència"
114
114
115−#: qml/Components/Lockscreen.qml:268
115+#: qml/Components/Lockscreen.qml:226
116msgid "OK"
116msgid "OK"
117msgstr "D'acord"
117msgstr "D'acord"
118
118
@@ -125,23 +125,15 @@ msgstr "Hola %1"
125msgid "Hello"
125msgid "Hello"
126msgstr "Hola"
126msgstr "Hola"
127
127
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
137msgid "See less"
129msgid "See less"
138msgstr "Mostra'n menys"
130msgstr "Mostra'n menys"
139
131
140−#: qml/Dash/GenericScopeView.qml:360
132+#: qml/Dash/GenericScopeView.qml:361
141msgid "See all"
133msgid "See all"
142msgstr "Mostra-ho tot"
134msgstr "Mostra-ho tot"
143
135
144−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
136+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
145msgid "Search"
137msgid "Search"
146msgstr "Cerca"
138msgstr "Cerca"
147
139
@@ -209,13 +201,17 @@ msgstr "Parleu..."
209msgid "Speaking..."
201msgid "Speaking..."
210msgstr "S'està parlant..."
202msgstr "S'està parlant..."
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:100
204+#: qml/Notifications/NotificationMenuItemFactory.qml:105
213msgid "Show password"
205msgid "Show password"
214msgstr "Mostra la contrasenya"
206msgstr "Mostra la contrasenya"
215
207
216−#: qml/Notifications/NotificationMenuItemFactory.qml:115
208+#: qml/Notifications/NotificationMenuItemFactory.qml:120
217−msgid "Please enter SIM PIN"
209+msgid "Enter SIM PIN"
218−msgstr "Introduïu el PIN de la targeta SIM"
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 ""
219
215
220#: qml/Panel/ActiveCallHint.qml:77
216#: qml/Panel/ActiveCallHint.qml:77
221msgid "Tap to return to call..."
217msgid "Tap to return to call..."
@@ -257,41 +253,41 @@ msgstr "Desbloca la SIM"
257msgid "Roaming"
253msgid "Roaming"
258msgstr "Itinerància"
254msgstr "Itinerància"
259
255
260−#: qml/Shell.qml:267
256+#: qml/Shell.qml:266
261−msgid "passphrase"
257+msgid "Enter your passphrase"
262−msgstr "contrasenya"
258+msgstr ""
263
259
264#: qml/Shell.qml:267
260#: qml/Shell.qml:267
265−msgid "passcode"
261+msgid "Sorry, incorrect passphrase"
266−msgstr "clau"
262+msgstr ""
267
263
268#: qml/Shell.qml:269
264#: qml/Shell.qml:269
265+msgid "Enter your PIN"
266+msgstr ""
267+
268+#: qml/Shell.qml:273
269#, qt-format
269#, qt-format
270msgid "Enter your %1"
270msgid "Enter your %1"
271msgstr "Introduïu la %1"
271msgstr "Introduïu la %1"
272
272
273−#: qml/Shell.qml:270
273+#: qml/Shell.qml:274
274#, qt-format
274#, qt-format
275−msgid "Incorrect %1"
275+msgid "Sorry, 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"
276+msgstr ""
281
277
282−#: qml/Shell.qml:306
278+#: qml/Shell.qml:310
283msgid "Sorry, incorrect passphrase."
279msgid "Sorry, incorrect passphrase."
284msgstr "La contrasenya és incorrecta"
280msgstr "La contrasenya és incorrecta"
285
281
286−#: qml/Shell.qml:307
282+#: qml/Shell.qml:311
287msgid "Sorry, incorrect passcode."
283msgid "Sorry, incorrect passcode."
288msgstr "La clau és incorrecta"
284msgstr "La clau és incorrecta"
289
285
290−#: qml/Shell.qml:308
286+#: qml/Shell.qml:312
291msgid "This will be your last attempt."
287msgid "This will be your last attempt."
292msgstr "Aquest serà el darrer intent."
288msgstr "Aquest serà el darrer intent."
293
289
294−#: qml/Shell.qml:310
290+#: qml/Shell.qml:314
295msgid ""
291msgid ""
296"If passphrase is entered incorrectly, your phone will conduct a factory "
292"If passphrase is entered incorrectly, your phone will conduct a factory "
297"reset and all personal data will be deleted."
293"reset and all personal data will be deleted."
@@ -300,10 +296,32 @@ msgstr ""
300"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
296"reinicialitzarà a l'estat de fàbrica i se suprimiran totes les dades "
301"personals."
297"personals."
302
298
303−#: qml/Shell.qml:311
299+#: qml/Shell.qml:315
304msgid ""
300msgid ""
305"If passcode is entered incorrectly, your phone will conduct a factory reset "
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
306"and all personal data will be deleted."
302"and all personal data will be deleted."
307msgstr ""
303msgstr ""
308"Si la clau s'introdueix de manera incorrecta, el telèfon es reinicialitzarà "
304"Si la clau s'introdueix de manera incorrecta, el telèfon es reinicialitzarà "
309"a l'estat de fàbrica i se suprimiran totes les dades personals."
305"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "هێڵی فریاگوزاری"
105msgstr "هێڵی فریاگوزاری"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr "سڵاو %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "سڵاو"
118msgstr "سڵاو"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "گەڕان"
130msgstr "گەڕان"
139
131
@@ -201,12 +193,16 @@ msgstr "ئێستا قسە بکە"
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "قسە دەکات..."
194msgstr "قسە دەکات..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "تێپەڕەوشە پیشان بدە"
198msgstr "تێپەڕەوشە پیشان بدە"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/cs.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "Tísňové volání"
105msgstr "Tísňové volání"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr "Ahoj %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "Ahoj"
118msgstr "Ahoj"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Hledat"
130msgstr "Hledat"
139
131
@@ -201,12 +193,16 @@ msgstr "Mluvte..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "Mluvte..."
194msgstr "Mluvte..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "Zobrazit heslo"
198msgstr "Zobrazit heslo"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/da.po+43−38
@@ -8,15 +8,15 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"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"
12"PO-Revision-Date: 2014-07-30 12:37+0000\n"
12"PO-Revision-Date: 2014-07-30 12:37+0000\n"
13"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
13"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
14"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
15"MIME-Version: 1.0\n"
15"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
18−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
18+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
19−"X-Generator: Launchpad (build 17156)\n"
19+"X-Generator: Launchpad (build 17163)\n"
20
20
21#: plugins/LightDM/Greeter.cpp:129
21#: plugins/LightDM/Greeter.cpp:129
22msgid "Password: "
22msgid "Password: "
@@ -95,19 +95,19 @@ msgstr ""
95"Du mestrer nu kantbevægelserne og kan begynde at bruge telefonen<br><br>Tryk "
95"Du mestrer nu kantbevægelserne og kan begynde at bruge telefonen<br><br>Tryk "
96"på skærmen for at starte"
96"på skærmen for at starte"
97
97
98−#: qml/Components/Lockscreen.qml:161
98+#: qml/Components/Lockscreen.qml:167
99−msgid "Too many incorrect attempts"
99+msgid "Please wait"
100msgstr ""
100msgstr ""
101
101
102−#: qml/Components/Lockscreen.qml:163
102+#: qml/Components/Lockscreen.qml:172
103−msgid "Please wait"
103+msgid "Too many incorrect attempts"
104msgstr ""
104msgstr ""
105
105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107msgid "Emergency Call"
107msgid "Emergency Call"
108msgstr "Nødopkald"
108msgstr "Nødopkald"
109
109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111msgid "OK"
111msgid "OK"
112msgstr "O.k."
112msgstr "O.k."
113
113
@@ -120,23 +120,15 @@ msgstr "Hej %1"
120msgid "Hello"
120msgid "Hello"
121msgstr "Hej"
121msgstr "Hej"
122
122
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
132msgid "See less"
124msgid "See less"
133msgstr "Vis mindre"
125msgstr "Vis mindre"
134
126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136msgid "See all"
128msgid "See all"
137msgstr "Se alle"
129msgstr "Se alle"
138
130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140msgid "Search"
132msgid "Search"
141msgstr "Søg"
133msgstr "Søg"
142
134
@@ -204,13 +196,17 @@ msgstr "Tal nu..."
204msgid "Speaking..."
196msgid "Speaking..."
205msgstr "Taler..."
197msgstr "Taler..."
206
198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208msgid "Show password"
200msgid "Show password"
209msgstr "Vis adgangskode"
201msgstr "Vis adgangskode"
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
212−msgid "Please enter SIM PIN"
204+msgid "Enter SIM PIN"
213−msgstr "Indtast venligst PIN for SIM"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214
210
215#: qml/Panel/ActiveCallHint.qml:77
211#: qml/Panel/ActiveCallHint.qml:77
216msgid "Tap to return to call..."
212msgid "Tap to return to call..."
@@ -252,48 +248,57 @@ msgstr ""
252msgid "Roaming"
248msgid "Roaming"
253msgstr ""
249msgstr ""
254
250
255−#: qml/Shell.qml:267
251+#: qml/Shell.qml:266
256−msgid "passphrase"
252+msgid "Enter your passphrase"
257msgstr ""
253msgstr ""
258
254
259#: qml/Shell.qml:267
255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261msgstr ""
257msgstr ""
262
258
263#: qml/Shell.qml:269
259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266msgstr ""
261msgstr ""
267
262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269#, qt-format
264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271msgstr ""
266msgstr ""
272
267
273−#: qml/Shell.qml:272
268+#: qml/Shell.qml:274
274−msgid "Please re-enter"
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275msgstr ""
271msgstr ""
276
272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278msgid "Sorry, incorrect passphrase."
274msgid "Sorry, incorrect passphrase."
279msgstr ""
275msgstr ""
280
276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282msgid "Sorry, incorrect passcode."
278msgid "Sorry, incorrect passcode."
283msgstr ""
279msgstr ""
284
280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286msgid "This will be your last attempt."
282msgid "This will be your last attempt."
287msgstr ""
283msgstr ""
288
284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290msgid ""
286msgid ""
291"If passphrase is entered incorrectly, your phone will conduct a factory "
287"If passphrase is entered incorrectly, your phone will conduct a factory "
292"reset and all personal data will be deleted."
288"reset and all personal data will be deleted."
293msgstr ""
289msgstr ""
294
290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296msgid ""
292msgid ""
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298"and all personal data will be deleted."
294"and all personal data will be deleted."
299msgstr ""
295msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-17 21:46+0000\n"
11+"PO-Revision-Date: 2014-08-26 10:17+0000\n"
12−"Last-Translator: Phillip Sz <Unknown>\n"
12+"Last-Translator: Martin Pitt <martin.pitt@ubuntu.com>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -32,7 +32,7 @@ msgstr "Verknüpfung entfernen"
32
32
33#: qml/Components/Dialogs.qml:142
33#: qml/Components/Dialogs.qml:142
34msgid "Are you sure you would like to turn power off?"
34msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Sind Sie sicher dass das Telefon ausgeschaltet werden soll?"
36
36
37#: qml/Components/Dialogs.qml:144
37#: qml/Components/Dialogs.qml:144
38msgid "Power off"
38msgid "Power off"
@@ -97,19 +97,19 @@ msgstr ""
97"Sie haben nun die Kantengesten erfolgreich erlernt und können das Telefon "
97"Sie haben nun die Kantengesten erfolgreich erlernt und können das Telefon "
98"nun nutzen<br><br>Zum Starten auf den Bildschirm tippen"
98"nun nutzen<br><br>Zum Starten auf den Bildschirm tippen"
99
99
100−#: qml/Components/Lockscreen.qml:161
100+#: qml/Components/Lockscreen.qml:167
101−msgid "Too many incorrect attempts"
102−msgstr ""
103−
104−#: qml/Components/Lockscreen.qml:163
105msgid "Please wait"
101msgid "Please wait"
106msgstr "Bitte warten"
102msgstr "Bitte warten"
107
103
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
109msgid "Emergency Call"
109msgid "Emergency Call"
110msgstr "Notruf"
110msgstr "Notruf"
111
111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113msgid "OK"
113msgid "OK"
114msgstr "OK"
114msgstr "OK"
115
115
@@ -122,23 +122,15 @@ msgstr "Hallo %1"
122msgid "Hello"
122msgid "Hello"
123msgstr "Hallo"
123msgstr "Hallo"
124
124
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
134msgid "See less"
126msgid "See less"
135msgstr "Weniger ansehen"
127msgstr "Weniger ansehen"
136
128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138msgid "See all"
130msgid "See all"
139msgstr "Alle anzeigen"
131msgstr "Alle anzeigen"
140
132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142msgid "Search"
134msgid "Search"
143msgstr "Suchen"
135msgstr "Suchen"
144
136
@@ -164,7 +156,7 @@ msgstr "Senden"
164
156
165#: qml/Dash/ScopesOverview.qml:201
157#: qml/Dash/ScopesOverview.qml:201
166msgid "Manage Dash"
158msgid "Manage Dash"
167−msgstr ""
159+msgstr "Dash verwalten"
168
160
169#: qml/Dash/ScopesOverview.qml:408
161#: qml/Dash/ScopesOverview.qml:408
170msgid "Done"
162msgid "Done"
@@ -172,7 +164,7 @@ msgstr "Erledigt"
172
164
173#: qml/Dash/ScopesOverview.qml:434
165#: qml/Dash/ScopesOverview.qml:434
174msgid "Store"
166msgid "Store"
175−msgstr ""
167+msgstr "Store"
176
168
177#: qml/Dash/ScopesOverviewTab.qml:36
169#: qml/Dash/ScopesOverviewTab.qml:36
178msgid "Favorites"
170msgid "Favorites"
@@ -206,13 +198,17 @@ msgstr "Sprechen Sie jetzt …"
206msgid "Speaking..."
198msgid "Speaking..."
207msgstr "Sprechen Sie …"
199msgstr "Sprechen Sie …"
208
200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210msgid "Show password"
202msgid "Show password"
211msgstr "Passwort anzeigen"
203msgstr "Passwort anzeigen"
212
204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
214−msgid "Please enter SIM PIN"
206+msgid "Enter SIM PIN"
215−msgstr "Bitte die PIN der SIM eingeben"
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"
216
212
217#: qml/Panel/ActiveCallHint.qml:77
213#: qml/Panel/ActiveCallHint.qml:77
218msgid "Tap to return to call..."
214msgid "Tap to return to call..."
@@ -248,54 +244,80 @@ msgstr "Fehlgeschlagen, tippen Sie zum Wiederholen"
248
244
249#: qml/Panel/Indicators/ModemInfoItem.qml:105
245#: qml/Panel/Indicators/ModemInfoItem.qml:105
250msgid "Unlock SIM"
246msgid "Unlock SIM"
251−msgstr ""
247+msgstr "SIM-Karte entsprerren"
252
248
253#: qml/Panel/Indicators/RoamingIndication.qml:27
249#: qml/Panel/Indicators/RoamingIndication.qml:27
254msgid "Roaming"
250msgid "Roaming"
255msgstr "Roaming"
251msgstr "Roaming"
256
252
257−#: qml/Shell.qml:267
253+#: qml/Shell.qml:266
258−msgid "passphrase"
254+msgid "Enter your passphrase"
259−msgstr "Passwort"
255+msgstr "Geben Sie Ihr Passwort ein"
260
256
261#: qml/Shell.qml:267
257#: qml/Shell.qml:267
262−msgid "passcode"
258+msgid "Sorry, incorrect passphrase"
263−msgstr ""
259+msgstr "Das Passwort ist nicht korrekt"
264
260
265#: qml/Shell.qml:269
261#: qml/Shell.qml:269
262+msgid "Enter your PIN"
263+msgstr "Geben Sie Ihre PIN ein"
264+
265+#: qml/Shell.qml:273
266#, qt-format
266#, qt-format
267msgid "Enter your %1"
267msgid "Enter your %1"
268−msgstr ""
268+msgstr "%1 eingeben"
269
269
270−#: qml/Shell.qml:270
270+#: qml/Shell.qml:274
271#, qt-format
271#, qt-format
272−msgid "Incorrect %1"
272+msgid "Sorry, incorrect %1"
273−msgstr ""
273+msgstr "%1 falsch"
274
274
275−#: qml/Shell.qml:272
275+#: qml/Shell.qml:310
276−msgid "Please re-enter"
277−msgstr ""
278−
279−#: qml/Shell.qml:306
280msgid "Sorry, incorrect passphrase."
276msgid "Sorry, incorrect passphrase."
281−msgstr ""
277+msgstr "Falsches Passwort."
282
278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284msgid "Sorry, incorrect passcode."
280msgid "Sorry, incorrect passcode."
285−msgstr ""
281+msgstr "Falsche PIN"
286
282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288msgid "This will be your last attempt."
284msgid "This will be your last attempt."
289−msgstr ""
285+msgstr "Dies ist Ihr letzter Versuch."
290
286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292msgid ""
288msgid ""
293"If passphrase is entered incorrectly, your phone will conduct a factory "
289"If passphrase is entered incorrectly, your phone will conduct a factory "
294"reset and all personal data will be deleted."
290"reset and all personal data will be deleted."
295msgstr ""
291msgstr ""
292+"Wird das Passwort falsch eingegeben, wird das Telefon auf den Werkszustand "
293+"zurückgesetzt und alle Daten werden gelöscht."
296
294
297−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
298msgid ""
296msgid ""
299"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
300"and all personal data will be deleted."
298"and all personal data will be deleted."
301msgstr ""
299msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-08 13:03+0000\n"
11+"PO-Revision-Date: 2014-08-21 12:06+0000\n"
12−"Last-Translator: Simos Xenitellis <Unknown>\n"
12+"Last-Translator: Chris Taklis (aka Kailor) <ctaklis@gmail.com>\n"
13"Language-Team: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
22−msgstr ""
22+msgstr "Κωδικός πρόσβασης: "
23
23
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -36,15 +36,15 @@ msgstr ""
36
36
37#: qml/Components/Dialogs.qml:144
37#: qml/Components/Dialogs.qml:144
38msgid "Power off"
38msgid "Power off"
39−msgstr ""
39+msgstr "Τερματισμός"
40
40
41#: qml/Components/Dialogs.qml:153
41#: qml/Components/Dialogs.qml:153
42msgid "Restart"
42msgid "Restart"
43−msgstr ""
43+msgstr "Επανεκκίνηση"
44
44
45#: qml/Components/Dialogs.qml:162
45#: qml/Components/Dialogs.qml:162
46msgid "Cancel"
46msgid "Cancel"
47−msgstr ""
47+msgstr "Ακύρωση"
48
48
49#: qml/Components/EdgeDemoOverlay.qml:151
49#: qml/Components/EdgeDemoOverlay.qml:151
50msgid "Skip intro"
50msgid "Skip intro"
@@ -96,19 +96,19 @@ msgstr ""
96"Πλέον γνωρίζετε τις χειρονομίες από τα άκρα και μπορείτε να ξεκινήσετε να "
96"Πλέον γνωρίζετε τις χειρονομίες από τα άκρα και μπορείτε να ξεκινήσετε να "
97"χρησιμοποιείτε το τηλέφωνο<br><br>Αγγίξτε την οθόνη για να ξεκινήσετε"
97"χρησιμοποιείτε το τηλέφωνο<br><br>Αγγίξτε την οθόνη για να ξεκινήσετε"
98
98
99−#: qml/Components/Lockscreen.qml:161
99+#: qml/Components/Lockscreen.qml:167
100−msgid "Too many incorrect attempts"
101−msgstr ""
102−
103−#: qml/Components/Lockscreen.qml:163
104msgid "Please wait"
100msgid "Please wait"
105−msgstr ""
101+msgstr "Παρακαλώ περιμένετε"
102+
103+#: qml/Components/Lockscreen.qml:172
104+msgid "Too many incorrect attempts"
105+msgstr "Πολλές άκυρες προσπάθειες"
106
106
107−#: qml/Components/Lockscreen.qml:245
107+#: qml/Components/Lockscreen.qml:206
108msgid "Emergency Call"
108msgid "Emergency Call"
109msgstr "Κλήση έκτακτης ανάγκης"
109msgstr "Κλήση έκτακτης ανάγκης"
110
110
111−#: qml/Components/Lockscreen.qml:268
111+#: qml/Components/Lockscreen.qml:226
112msgid "OK"
112msgid "OK"
113msgstr "OK"
113msgstr "OK"
114
114
@@ -121,23 +121,15 @@ msgstr "Γεια σας %1"
121msgid "Hello"
121msgid "Hello"
122msgstr "Γεια σας"
122msgstr "Γεια σας"
123
123
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
133msgid "See less"
125msgid "See less"
134msgstr "Λιγότερα"
126msgstr "Λιγότερα"
135
127
136−#: qml/Dash/GenericScopeView.qml:360
128+#: qml/Dash/GenericScopeView.qml:361
137msgid "See all"
129msgid "See all"
138msgstr "Εμφάνιση όλων"
130msgstr "Εμφάνιση όλων"
139
131
140−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141msgid "Search"
133msgid "Search"
142msgstr "Αναζήτηση"
134msgstr "Αναζήτηση"
143
135
@@ -167,19 +159,19 @@ msgstr ""
167
159
168#: qml/Dash/ScopesOverview.qml:408
160#: qml/Dash/ScopesOverview.qml:408
169msgid "Done"
161msgid "Done"
170−msgstr ""
162+msgstr "Ολοκληρώθηκε"
171
163
172#: qml/Dash/ScopesOverview.qml:434
164#: qml/Dash/ScopesOverview.qml:434
173msgid "Store"
165msgid "Store"
174−msgstr ""
166+msgstr "Κατάστημα"
175
167
176#: qml/Dash/ScopesOverviewTab.qml:36
168#: qml/Dash/ScopesOverviewTab.qml:36
177msgid "Favorites"
169msgid "Favorites"
178−msgstr ""
170+msgstr "Αγαπημένα"
179
171
180#: qml/Dash/ScopesOverviewTab.qml:54
172#: qml/Dash/ScopesOverviewTab.qml:54
181msgid "All"
173msgid "All"
182−msgstr ""
174+msgstr "Όλα"
183
175
184#: qml/Greeter/Greeter.qml:157
176#: qml/Greeter/Greeter.qml:157
185msgid "Swipe to unlock"
177msgid "Swipe to unlock"
@@ -205,13 +197,17 @@ msgstr "Μιλήστε τώρα..."
205msgid "Speaking..."
197msgid "Speaking..."
206msgstr "Ομιλία..."
198msgstr "Ομιλία..."
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209msgid "Show password"
201msgid "Show password"
210msgstr "Εμφάνιση κωδικού"
202msgstr "Εμφάνιση κωδικού"
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
213−msgid "Please enter SIM PIN"
205+msgid "Enter SIM PIN"
214−msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215
211
216#: qml/Panel/ActiveCallHint.qml:77
212#: qml/Panel/ActiveCallHint.qml:77
217msgid "Tap to return to call..."
213msgid "Tap to return to call..."
@@ -247,54 +243,66 @@ msgstr "Αποτυχία, πατήστε για να ξαναπροσπαθήσ
247
243
248#: qml/Panel/Indicators/ModemInfoItem.qml:105
244#: qml/Panel/Indicators/ModemInfoItem.qml:105
249msgid "Unlock SIM"
245msgid "Unlock SIM"
250−msgstr ""
246+msgstr "Ξεκλείδωμα SIM"
251
247
252#: qml/Panel/Indicators/RoamingIndication.qml:27
248#: qml/Panel/Indicators/RoamingIndication.qml:27
253msgid "Roaming"
249msgid "Roaming"
254−msgstr ""
250+msgstr "Περιαγωγή"
255
251
256−#: qml/Shell.qml:267
252+#: qml/Shell.qml:266
257−msgid "passphrase"
253+msgid "Enter your passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:267
256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262msgstr ""
258msgstr ""
263
259
264#: qml/Shell.qml:269
260#: qml/Shell.qml:269
265−#, qt-format
266−msgid "Enter your %1"
261+msgid "Enter your PIN"
267msgstr ""
262msgstr ""
268
263
269−#: qml/Shell.qml:270
264+#: qml/Shell.qml:273
270#, qt-format
265#, qt-format
271−msgid "Incorrect %1"
266+msgid "Enter your %1"
272−msgstr ""
267+msgstr "Εισάγετε το %1"
273
268
274−#: qml/Shell.qml:272
269+#: qml/Shell.qml:274
275−msgid "Please re-enter"
270+#, qt-format
271+msgid "Sorry, incorrect %1"
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279msgid "Sorry, incorrect passphrase."
275msgid "Sorry, incorrect passphrase."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283msgid "Sorry, incorrect passcode."
279msgid "Sorry, incorrect passcode."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287msgid "This will be your last attempt."
283msgid "This will be your last attempt."
288msgstr ""
284msgstr ""
289
285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291msgid ""
287msgid ""
292"If passphrase is entered incorrectly, your phone will conduct a factory "
288"If passphrase is entered incorrectly, your phone will conduct a factory "
293"reset and all personal data will be deleted."
289"reset and all personal data will be deleted."
294msgstr ""
290msgstr ""
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-17 09:06+0000\n"
11"PO-Revision-Date: 2014-08-17 09:06+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
94"You have now mastered the edge gestures and can start using the "
94"You have now mastered the edge gestures and can start using the "
95"phone<br><br>Tap on the screen to start"
95"phone<br><br>Tap on the screen to start"
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
99−msgstr "Too many incorrect attempts"
100−
101−#: qml/Components/Lockscreen.qml:163
102msgid "Please wait"
98msgid "Please wait"
103msgstr "Please wait"
99msgstr "Please wait"
104
100
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
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "Emergency Call"
107msgstr "Emergency Call"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "OK"
111msgstr "OK"
112
112
@@ -119,23 +119,15 @@ msgstr "Hello %1"
119msgid "Hello"
119msgid "Hello"
120msgstr "Hello"
120msgstr "Hello"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "See less"
124msgstr "See less"
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "See all"
128msgstr "See all"
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "Search"
132msgstr "Search"
141
133
@@ -203,13 +195,17 @@ msgstr "Speak Now..."
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "Speaking..."
196msgstr "Speaking..."
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "Show password"
200msgstr "Show password"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212−msgstr "Please enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213
209
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
@@ -251,41 +247,41 @@ msgstr "Unlock SIM"
251msgid "Roaming"
247msgid "Roaming"
252msgstr "Roaming"
248msgstr "Roaming"
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256−msgstr "passphrase"
252+msgstr ""
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260−msgstr "passcode"
256+msgstr ""
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr ""
261+
262+#: qml/Shell.qml:273
263#, qt-format
263#, qt-format
264msgid "Enter your %1"
264msgid "Enter your %1"
265msgstr "Enter your %1"
265msgstr "Enter your %1"
266
266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268#, qt-format
268#, qt-format
269−msgid "Incorrect %1"
269+msgid "Sorry, incorrect %1"
270−msgstr "Incorrect %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "Please re-enter"
270+msgstr ""
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr "Sorry, incorrect passphrase."
274msgstr "Sorry, incorrect passphrase."
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr "Sorry, incorrect passcode."
278msgstr "Sorry, incorrect passcode."
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr "This will be your last attempt."
282msgstr "This will be your last attempt."
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293"If passphrase is entered incorrectly, your phone will conduct a factory "
289"If passphrase is entered incorrectly, your phone will conduct a factory "
294"reset and all personal data will be deleted."
290"reset and all personal data will be deleted."
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"and all personal data will be deleted."
298"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-15 10:01+0000\n"
11+"PO-Revision-Date: 2014-08-23 13:48+0000\n"
12"Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n"
12"Last-Translator: Alan Pope ㋛ <alan@ubuntu.com>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-24 06:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
94"You have now mastered the edge gestures and can start using the "
94"You have now mastered the edge gestures and can start using the "
95"phone<br><br>Tap on the screen to start"
95"phone<br><br>Tap on the screen to start"
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
99−msgstr "Too many incorrect attempts"
100−
101−#: qml/Components/Lockscreen.qml:163
102msgid "Please wait"
98msgid "Please wait"
103msgstr "Please wait"
99msgstr "Please wait"
104
100
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
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "Emergency Call"
107msgstr "Emergency Call"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "OK"
111msgstr "OK"
112
112
@@ -119,23 +119,15 @@ msgstr "Hello %1"
119msgid "Hello"
119msgid "Hello"
120msgstr "Hello"
120msgstr "Hello"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "See less"
124msgstr "See less"
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "See all"
128msgstr "See all"
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "Search"
132msgstr "Search"
141
133
@@ -203,13 +195,17 @@ msgstr "Speak Now..."
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "Speaking..."
196msgstr "Speaking..."
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "Show password"
200msgstr "Show password"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212−msgstr "Please 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"
213
209
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
@@ -251,41 +247,41 @@ msgstr "Unlock SIM"
251msgid "Roaming"
247msgid "Roaming"
252msgstr "Roaming"
248msgstr "Roaming"
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256−msgstr "passphrase"
252+msgstr "Enter your passphrase"
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260−msgstr "passcode"
256+msgstr "Sorry, incorrect passphrase"
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr "Enter your PIN"
261+
262+#: qml/Shell.qml:273
263#, qt-format
263#, qt-format
264msgid "Enter your %1"
264msgid "Enter your %1"
265msgstr "Enter your %1"
265msgstr "Enter your %1"
266
266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268#, qt-format
268#, qt-format
269−msgid "Incorrect %1"
269+msgid "Sorry, incorrect %1"
270−msgstr "Incorrect %1"
270+msgstr "Sorry, incorrect %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "Please re-enter"
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr "Sorry, incorrect passphrase."
274msgstr "Sorry, incorrect passphrase."
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr "Sorry, incorrect passcode."
278msgstr "Sorry, incorrect passcode."
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr "This will be your last attempt."
282msgstr "This will be your last attempt."
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293"If passphrase is entered incorrectly, your phone will conduct a factory "
289"If passphrase is entered incorrectly, your phone will conduct a factory "
294"reset and all personal data will be deleted."
290"reset and all personal data will be deleted."
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"and all personal data will be deleted."
298"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr ""
130msgstr ""
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/es.po+60−42
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-17 04:37+0000\n"
11"PO-Revision-Date: 2014-08-17 04:37+0000\n"
12"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
12"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -97,19 +97,19 @@ msgstr ""
97"Ahora domina los gestos de los bordes y puede usar el teléfono<br><br>Toque "
97"Ahora domina los gestos de los bordes y puede usar el teléfono<br><br>Toque "
98"la pantalla para comenzar"
98"la pantalla para comenzar"
99
99
100−#: qml/Components/Lockscreen.qml:161
100+#: qml/Components/Lockscreen.qml:167
101−msgid "Too many incorrect attempts"
102−msgstr "Demasiados intentos incorrectos"
103−
104−#: qml/Components/Lockscreen.qml:163
105msgid "Please wait"
101msgid "Please wait"
106msgstr "Espere un momento"
102msgstr "Espere un momento"
107
103
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
109msgid "Emergency Call"
109msgid "Emergency Call"
110msgstr "Llamada de emergencia"
110msgstr "Llamada de emergencia"
111
111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113msgid "OK"
113msgid "OK"
114msgstr "Aceptar"
114msgstr "Aceptar"
115
115
@@ -122,23 +122,15 @@ msgstr "Hola, %1"
122msgid "Hello"
122msgid "Hello"
123msgstr "Hola"
123msgstr "Hola"
124
124
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
134msgid "See less"
126msgid "See less"
135msgstr "Ver menos"
127msgstr "Ver menos"
136
128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138msgid "See all"
130msgid "See all"
139msgstr "Ver todo"
131msgstr "Ver todo"
140
132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142msgid "Search"
134msgid "Search"
143msgstr "Buscar"
135msgstr "Buscar"
144
136
@@ -206,13 +198,17 @@ msgstr "Hable ahora…"
206msgid "Speaking..."
198msgid "Speaking..."
207msgstr "Hablando…"
199msgstr "Hablando…"
208
200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210msgid "Show password"
202msgid "Show password"
211msgstr "Mostrar contraseña"
203msgstr "Mostrar contraseña"
212
204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
214−msgid "Please enter SIM PIN"
206+msgid "Enter SIM PIN"
215−msgstr "Escriba el PIN de la SIM"
207+msgstr ""
208+
209+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
210+msgid "Sorry, incorrect PIN"
211+msgstr ""
216
212
217#: qml/Panel/ActiveCallHint.qml:77
213#: qml/Panel/ActiveCallHint.qml:77
218msgid "Tap to return to call..."
214msgid "Tap to return to call..."
@@ -254,41 +250,41 @@ msgstr "Desbloquear SIM"
254msgid "Roaming"
250msgid "Roaming"
255msgstr "Itinerancia"
251msgstr "Itinerancia"
256
252
257−#: qml/Shell.qml:267
253+#: qml/Shell.qml:266
258−msgid "passphrase"
254+msgid "Enter your passphrase"
259−msgstr "frase de paso"
255+msgstr ""
260
256
261#: qml/Shell.qml:267
257#: qml/Shell.qml:267
262−msgid "passcode"
258+msgid "Sorry, incorrect passphrase"
263−msgstr "Código de paso"
259+msgstr ""
264
260
265#: qml/Shell.qml:269
261#: qml/Shell.qml:269
262+msgid "Enter your PIN"
263+msgstr ""
264+
265+#: qml/Shell.qml:273
266#, qt-format
266#, qt-format
267msgid "Enter your %1"
267msgid "Enter your %1"
268msgstr "Introduzca su %1"
268msgstr "Introduzca su %1"
269
269
270−#: qml/Shell.qml:270
270+#: qml/Shell.qml:274
271#, qt-format
271#, qt-format
272−msgid "Incorrect %1"
272+msgid "Sorry, incorrect %1"
273−msgstr "%1 incorrecta"
273+msgstr ""
274−
275−#: qml/Shell.qml:272
276−msgid "Please re-enter"
277−msgstr "Vuelva a introducirla"
278
274
279−#: qml/Shell.qml:306
275+#: qml/Shell.qml:310
280msgid "Sorry, incorrect passphrase."
276msgid "Sorry, incorrect passphrase."
281msgstr "Frase de paso incorrecta"
277msgstr "Frase de paso incorrecta"
282
278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284msgid "Sorry, incorrect passcode."
280msgid "Sorry, incorrect passcode."
285msgstr "Código de paso incorrecto"
281msgstr "Código de paso incorrecto"
286
282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288msgid "This will be your last attempt."
284msgid "This will be your last attempt."
289msgstr "Este será su último intento."
285msgstr "Este será su último intento."
290
286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292msgid ""
288msgid ""
293"If passphrase is entered incorrectly, your phone will conduct a factory "
289"If passphrase is entered incorrectly, your phone will conduct a factory "
294"reset and all personal data will be deleted."
290"reset and all personal data will be deleted."
@@ -296,10 +292,32 @@ msgstr ""
296"Si se introduce la frase incorrectamente, el teléfono volverá a la "
292"Si se introduce la frase incorrectamente, el teléfono volverá a la "
297"configuración de fábrica y se perderán todos los datos personales."
293"configuración de fábrica y se perderán todos los datos personales."
298
294
299−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
300msgid ""
296msgid ""
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"and all personal data will be deleted."
298"and all personal data will be deleted."
303msgstr ""
299msgstr ""
304"Si se introduce el código incorrectamente, el teléfono volverá a la "
300"Si se introduce el código incorrectamente, el teléfono volverá a la "
305"configuración de fábrica y se perderán todos los datos personales."
301"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-06 22:51+0000\n"
11"PO-Revision-Date: 2014-08-06 22:51+0000\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
13"Language-Team: Basque <eu@li.org>\n"
13"Language-Team: Basque <eu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -97,19 +97,19 @@ msgstr ""
97"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
97"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
98"zaitezke<br><br>Sakatu pantailan hasteko"
98"zaitezke<br><br>Sakatu pantailan hasteko"
99
99
100−#: qml/Components/Lockscreen.qml:161
100+#: qml/Components/Lockscreen.qml:167
101−msgid "Too many incorrect attempts"
101+msgid "Please wait"
102msgstr ""
102msgstr ""
103
103
104−#: qml/Components/Lockscreen.qml:163
104+#: qml/Components/Lockscreen.qml:172
105−msgid "Please wait"
105+msgid "Too many incorrect attempts"
106msgstr ""
106msgstr ""
107
107
108−#: qml/Components/Lockscreen.qml:245
108+#: qml/Components/Lockscreen.qml:206
109msgid "Emergency Call"
109msgid "Emergency Call"
110msgstr "Larrialdi-deia"
110msgstr "Larrialdi-deia"
111
111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113msgid "OK"
113msgid "OK"
114msgstr "Ados"
114msgstr "Ados"
115
115
@@ -122,23 +122,15 @@ msgstr "Kaixo %1"
122msgid "Hello"
122msgid "Hello"
123msgstr "Kaixo"
123msgstr "Kaixo"
124
124
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
134msgid "See less"
126msgid "See less"
135msgstr "Ikusi gutxiago"
127msgstr "Ikusi gutxiago"
136
128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138msgid "See all"
130msgid "See all"
139msgstr "Ikusi guztiak"
131msgstr "Ikusi guztiak"
140
132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142msgid "Search"
134msgid "Search"
143msgstr "Bilatu"
135msgstr "Bilatu"
144
136
@@ -206,13 +198,17 @@ msgstr "Hitz egin orain..."
206msgid "Speaking..."
198msgid "Speaking..."
207msgstr "Hitz egiten..."
199msgstr "Hitz egiten..."
208
200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210msgid "Show password"
202msgid "Show password"
211msgstr "Erakutsi pasahitza"
203msgstr "Erakutsi pasahitza"
212
204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
214−msgid "Please enter SIM PIN"
206+msgid "Enter SIM PIN"
215−msgstr "Sartu SIMaren PINa"
207+msgstr ""
208+
209+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
210+msgid "Sorry, incorrect PIN"
211+msgstr ""
216
212
217#: qml/Panel/ActiveCallHint.qml:77
213#: qml/Panel/ActiveCallHint.qml:77
218msgid "Tap to return to call..."
214msgid "Tap to return to call..."
@@ -254,48 +250,57 @@ msgstr ""
254msgid "Roaming"
250msgid "Roaming"
255msgstr ""
251msgstr ""
256
252
257−#: qml/Shell.qml:267
253+#: qml/Shell.qml:266
258−msgid "passphrase"
254+msgid "Enter your passphrase"
259msgstr ""
255msgstr ""
260
256
261#: qml/Shell.qml:267
257#: qml/Shell.qml:267
262−msgid "passcode"
258+msgid "Sorry, incorrect passphrase"
263msgstr ""
259msgstr ""
264
260
265#: qml/Shell.qml:269
261#: qml/Shell.qml:269
266−#, qt-format
267−msgid "Enter your %1"
262+msgid "Enter your PIN"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:270
265+#: qml/Shell.qml:273
271#, qt-format
266#, qt-format
272−msgid "Incorrect %1"
267+msgid "Enter your %1"
273msgstr ""
268msgstr ""
274
269
275−#: qml/Shell.qml:272
270+#: qml/Shell.qml:274
276−msgid "Please re-enter"
271+#, qt-format
272+msgid "Sorry, incorrect %1"
277msgstr ""
273msgstr ""
278
274
279−#: qml/Shell.qml:306
275+#: qml/Shell.qml:310
280msgid "Sorry, incorrect passphrase."
276msgid "Sorry, incorrect passphrase."
281msgstr ""
277msgstr ""
282
278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284msgid "Sorry, incorrect passcode."
280msgid "Sorry, incorrect passcode."
285msgstr ""
281msgstr ""
286
282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288msgid "This will be your last attempt."
284msgid "This will be your last attempt."
289msgstr ""
285msgstr ""
290
286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292msgid ""
288msgid ""
293"If passphrase is entered incorrectly, your phone will conduct a factory "
289"If passphrase is entered incorrectly, your phone will conduct a factory "
294"reset and all personal data will be deleted."
290"reset and all personal data will be deleted."
295msgstr ""
291msgstr ""
296
292
297−#: qml/Shell.qml:311
293+#: qml/Shell.qml:315
298msgid ""
294msgid ""
299"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"If passcode is entered incorrectly, your phone will conduct a factory reset "
300"and all personal data will be deleted."
296"and all personal data will be deleted."
301msgstr ""
297msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-15 14:00+0000\n"
11"PO-Revision-Date: 2014-08-15 14:00+0000\n"
12"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
12"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
13"Language-Team: Persian <fa@li.org>\n"
13"Language-Team: Persian <fa@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
94"هم اکنون در استفاده از ژست های حرکتی مهارت لازم را دارید و می‌توانید استفاده "
94"هم اکنون در استفاده از ژست های حرکتی مهارت لازم را دارید و می‌توانید استفاده "
95"از تلفن را آغاز کنید<br><br>برای شروع صفحه را لمس کنید"
95"از تلفن را آغاز کنید<br><br>برای شروع صفحه را لمس کنید"
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
99−msgstr "تلاش‌های ناموفّق زیاد"
100−
101−#: qml/Components/Lockscreen.qml:163
102msgid "Please wait"
98msgid "Please wait"
103msgstr "لطفاً صبر کنید"
99msgstr "لطفاً صبر کنید"
104
100
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
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "تماس اضطراری"
107msgstr "تماس اضطراری"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "قبول"
111msgstr "قبول"
112
112
@@ -119,23 +119,15 @@ msgstr "سلام %1"
119msgid "Hello"
119msgid "Hello"
120msgstr "سلام"
120msgstr "سلام"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "کم‌تر ببینید"
124msgstr "کم‌تر ببینید"
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "دیدن همه"
128msgstr "دیدن همه"
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "جست‌وجو"
132msgstr "جست‌وجو"
141
133
@@ -203,13 +195,17 @@ msgstr "اکنون صحبت کنید…"
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "در حال صحبت کردن…"
196msgstr "در حال صحبت کردن…"
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "نمایش گذرواژه"
200msgstr "نمایش گذرواژه"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212−msgstr "لطفاً PIN سیم‌کارت را وارد کنید"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213
209
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
@@ -251,41 +247,41 @@ msgstr "باز کردن قفل سیم‌کارت"
251msgid "Roaming"
247msgid "Roaming"
252msgstr "رومینگ"
248msgstr "رومینگ"
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256−msgstr "عبارت‌عبور"
252+msgstr ""
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260−msgstr "رمزعبور"
256+msgstr ""
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr ""
261+
262+#: qml/Shell.qml:273
263#, qt-format
263#, qt-format
264msgid "Enter your %1"
264msgid "Enter your %1"
265msgstr "%1 خود را وارد کنید"
265msgstr "%1 خود را وارد کنید"
266
266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268#, qt-format
268#, qt-format
269−msgid "Incorrect %1"
269+msgid "Sorry, incorrect %1"
270−msgstr "%1 نادرست"
270+msgstr ""
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "لطفاً دوباره وارد کنید"
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr "متأسّفیم، عبارت‌عبور نادرست است."
274msgstr "متأسّفیم، عبارت‌عبور نادرست است."
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr "متأسّفیم، رمزعبور نادرست است."
278msgstr "متأسّفیم، رمزعبور نادرست است."
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr "این آخرین تلاش شما خواهد بود."
282msgstr "این آخرین تلاش شما خواهد بود."
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293"اگر عبارت‌عبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
289"اگر عبارت‌عبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
294"اطّلاعات شخصی حذف خواهند شد."
290"اطّلاعات شخصی حذف خواهند شد."
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
301"اگر رمزعبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
297"اگر رمزعبور نادرست وارد شود، تلفن شما بازنشانی کارخانه خواهد شد و تمامی "
302"اطّلاعات شخصی حذف خواهند شد."
298"اطّلاعات شخصی حذف خواهند شد."
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-17 16:53+0000\n"
11+"PO-Revision-Date: 2014-08-26 18:32+0000\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
94"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
94"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
95"käytön<br><br>Napauta näyttöä aloittaaksesi"
95"käytön<br><br>Napauta näyttöä aloittaaksesi"
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
99−msgstr "Liian monta virheellistä yritystä"
100−
101−#: qml/Components/Lockscreen.qml:163
102msgid "Please wait"
98msgid "Please wait"
103msgstr "Odota hetki"
99msgstr "Odota hetki"
104
100
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
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "Hätäpuhelu"
107msgstr "Hätäpuhelu"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "OK"
111msgstr "OK"
112
112
@@ -119,23 +119,15 @@ msgstr "Hei %1!"
119msgid "Hello"
119msgid "Hello"
120msgstr "Hei"
120msgstr "Hei"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "Näytä vähemmän"
124msgstr "Näytä vähemmän"
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "Näytä kaikki"
128msgstr "Näytä kaikki"
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "Hae"
132msgstr "Hae"
141
133
@@ -161,7 +153,7 @@ msgstr "Lähetä"
161
153
162#: qml/Dash/ScopesOverview.qml:201
154#: qml/Dash/ScopesOverview.qml:201
163msgid "Manage Dash"
155msgid "Manage Dash"
164−msgstr "Dashin hallinta"
156+msgstr "Unityn hallinta"
165
157
166#: qml/Dash/ScopesOverview.qml:408
158#: qml/Dash/ScopesOverview.qml:408
167msgid "Done"
159msgid "Done"
@@ -203,14 +195,18 @@ msgstr "Puhu nyt..."
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "Puhutaan..."
196msgstr "Puhutaan..."
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "Näytä salasana"
200msgstr "Näytä salasana"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212msgstr "Anna SIM-kortin PIN-koodi"
204msgstr "Anna SIM-kortin PIN-koodi"
213
205
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr "Väärä PIN-koodi"
209+
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
216msgstr "Napauta palataksesi puheluun..."
212msgstr "Napauta palataksesi puheluun..."
@@ -251,41 +247,41 @@ msgstr "Avaa SIM-kortin lukitus"
251msgid "Roaming"
247msgid "Roaming"
252msgstr "Verkkovierailu"
248msgstr "Verkkovierailu"
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256−msgstr "tunnuslause"
252+msgstr "Anna tunnuslause"
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260−msgstr "tunnuskoodi"
256+msgstr "Virheellinen tunnuslause"
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr "Anna PIN-koodi"
261+
262+#: qml/Shell.qml:273
263#, qt-format
263#, qt-format
264msgid "Enter your %1"
264msgid "Enter your %1"
265msgstr "Anna %1"
265msgstr "Anna %1"
266
266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268#, qt-format
268#, qt-format
269−msgid "Incorrect %1"
269+msgid "Sorry, incorrect %1"
270−msgstr "Virheellinen %1"
270+msgstr "Väärä %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "Anna uudelleen"
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr "Virheellinen tunnuslause."
274msgstr "Virheellinen tunnuslause."
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr "Virheellinen tunnuskoodi."
278msgstr "Virheellinen tunnuskoodi."
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr "Tämä on viimeinen yritys."
282msgstr "Tämä on viimeinen yritys."
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293"Jos kirjoitat tunnuslauseen virheellisesti, puhelimesi palautetaan "
289"Jos kirjoitat tunnuslauseen virheellisesti, puhelimesi palautetaan "
294"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
290"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
301"Jos kirjoitat tunnuskoodin virheellisesti, puhelimesi palautetaan "
297"Jos kirjoitat tunnuskoodin virheellisesti, puhelimesi palautetaan "
302"tehdastilaan ja kaikki henkilökohtaiset tietosi poistetaan."
298"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
13"Language-Team: Faroese <fo@li.org>\n"
13"Language-Team: Faroese <fo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Leita"
130msgstr "Leita"
139
131
@@ -201,12 +193,16 @@ msgstr "Snakka nú..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "Snakkar..."
194msgstr "Snakkar..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/fr.po+62−44
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-16 12:13+0000\n"
11+"PO-Revision-Date: 2014-08-27 07:33+0000\n"
12−"Last-Translator: Jean Marc <Unknown>\n"
12+"Last-Translator: Sébastien Maes <nautilussebastien@gmail.com>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -101,19 +101,19 @@ msgstr ""
101"Vous maîtrisez maintenant les différents gestes et pouvez commencer à "
101"Vous maîtrisez maintenant les différents gestes et pouvez commencer à "
102"utiliser le téléphone<br><br>Appuyez sur l'écran pour commencer"
102"utiliser le téléphone<br><br>Appuyez sur l'écran pour commencer"
103
103
104−#: qml/Components/Lockscreen.qml:161
104+#: qml/Components/Lockscreen.qml:167
105−msgid "Too many incorrect attempts"
106−msgstr "Trop de tentatives incorrectes"
107−
108−#: qml/Components/Lockscreen.qml:163
109msgid "Please wait"
105msgid "Please wait"
110msgstr "Veuillez patienter"
106msgstr "Veuillez patienter"
111
107
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
113msgid "Emergency Call"
113msgid "Emergency Call"
114msgstr "Appel d'urgence"
114msgstr "Appel d'urgence"
115
115
116−#: qml/Components/Lockscreen.qml:268
116+#: qml/Components/Lockscreen.qml:226
117msgid "OK"
117msgid "OK"
118msgstr "OK"
118msgstr "OK"
119
119
@@ -126,23 +126,15 @@ msgstr "Bonjour %1"
126msgid "Hello"
126msgid "Hello"
127msgstr "Bonjour"
127msgstr "Bonjour"
128
128
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
138msgid "See less"
130msgid "See less"
139msgstr "Voir moins"
131msgstr "Voir moins"
140
132
141−#: qml/Dash/GenericScopeView.qml:360
133+#: qml/Dash/GenericScopeView.qml:361
142msgid "See all"
134msgid "See all"
143msgstr "Tout voir"
135msgstr "Tout voir"
144
136
145−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
137+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
146msgid "Search"
138msgid "Search"
147msgstr "Rechercher"
139msgstr "Rechercher"
148
140
@@ -210,13 +202,17 @@ msgstr "Parlez maintenant…"
210msgid "Speaking..."
202msgid "Speaking..."
211msgstr "En cours d'écoute..."
203msgstr "En cours d'écoute..."
212
204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:100
205+#: qml/Notifications/NotificationMenuItemFactory.qml:105
214msgid "Show password"
206msgid "Show password"
215msgstr "Afficher le mot de passe"
207msgstr "Afficher le mot de passe"
216
208
217−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209+#: qml/Notifications/NotificationMenuItemFactory.qml:120
218−msgid "Please enter SIM PIN"
210+msgid "Enter SIM PIN"
219−msgstr "Entrez le code 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"
220
216
221#: qml/Panel/ActiveCallHint.qml:77
217#: qml/Panel/ActiveCallHint.qml:77
222msgid "Tap to return to call..."
218msgid "Tap to return to call..."
@@ -258,41 +254,41 @@ msgstr "Déverrouiller la carte SIM"
258msgid "Roaming"
254msgid "Roaming"
259msgstr "Roaming"
255msgstr "Roaming"
260
256
261−#: qml/Shell.qml:267
257+#: qml/Shell.qml:266
262−msgid "passphrase"
258+msgid "Enter your passphrase"
263−msgstr "phrase secrète"
259+msgstr ""
264
260
265#: qml/Shell.qml:267
261#: qml/Shell.qml:267
266−msgid "passcode"
262+msgid "Sorry, incorrect passphrase"
267−msgstr "code"
263+msgstr ""
268
264
269#: qml/Shell.qml:269
265#: qml/Shell.qml:269
266+msgid "Enter your PIN"
267+msgstr "Entrez votre code PIN"
268+
269+#: qml/Shell.qml:273
270#, qt-format
270#, qt-format
271msgid "Enter your %1"
271msgid "Enter your %1"
272msgstr "Saisissez votre %1"
272msgstr "Saisissez votre %1"
273
273
274−#: qml/Shell.qml:270
274+#: qml/Shell.qml:274
275#, qt-format
275#, qt-format
276−msgid "Incorrect %1"
276+msgid "Sorry, incorrect %1"
277−msgstr "%1 non valide"
277+msgstr ""
278−
279−#: qml/Shell.qml:272
280−msgid "Please re-enter"
281−msgstr "Veuillez recommencer"
282
278
283−#: qml/Shell.qml:306
279+#: qml/Shell.qml:310
284msgid "Sorry, incorrect passphrase."
280msgid "Sorry, incorrect passphrase."
285msgstr "Désolé, phrase secrète incorrecte."
281msgstr "Désolé, phrase secrète incorrecte."
286
282
287−#: qml/Shell.qml:307
283+#: qml/Shell.qml:311
288msgid "Sorry, incorrect passcode."
284msgid "Sorry, incorrect passcode."
289msgstr "Désolé, code incorrect."
285msgstr "Désolé, code incorrect."
290
286
291−#: qml/Shell.qml:308
287+#: qml/Shell.qml:312
292msgid "This will be your last attempt."
288msgid "This will be your last attempt."
293msgstr "Ceci sera votre dernière tentative."
289msgstr "Ceci sera votre dernière tentative."
294
290
295−#: qml/Shell.qml:310
291+#: qml/Shell.qml:314
296msgid ""
292msgid ""
297"If passphrase is entered incorrectly, your phone will conduct a factory "
293"If passphrase is entered incorrectly, your phone will conduct a factory "
298"reset and all personal data will be deleted."
294"reset and all personal data will be deleted."
@@ -301,7 +297,7 @@ msgstr ""
301"effectuera une réinitialisation aux paramètres d'usine et toutes les données "
297"effectuera une réinitialisation aux paramètres d'usine et toutes les données "
302"personnelles seront supprimées."
298"personnelles seront supprimées."
303
299
304−#: qml/Shell.qml:311
300+#: qml/Shell.qml:315
305msgid ""
301msgid ""
306"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"If passcode is entered incorrectly, your phone will conduct a factory reset "
307"and all personal data will be deleted."
303"and all personal data will be deleted."
@@ -309,3 +305,25 @@ msgstr ""
309"Si le code est saisi de manière incorrecte, votre téléphone effectuera une "
305"Si le code est saisi de manière incorrecte, votre téléphone effectuera une "
310"réinitialisation aux paramètres d'usine et toutes les données personnelles "
306"réinitialisation aux paramètres d'usine et toutes les données personnelles "
311"seront supprimées."
307"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-13 00:21+0000\n"
11"PO-Revision-Date: 2014-08-13 00:21+0000\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
13"Language-Team: Fòram na Gàidhlig http://www.foramnagaidhlig.net\n"
13"Language-Team: Fòram na Gàidhlig http://www.foramnagaidhlig.net\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19"Language: gd\n"
19"Language: gd\n"
20
20
21#: plugins/LightDM/Greeter.cpp:129
21#: plugins/LightDM/Greeter.cpp:129
@@ -101,19 +101,19 @@ msgstr ""
101"Fhuair thu air na gluasadan oire ceart a dhèanamh a-nis agus is urrainn dhut "
101"Fhuair thu air na gluasadan oire ceart a dhèanamh a-nis agus is urrainn dhut "
102"am fòn a chleachdadh<br><br>Thoir gnogag air an sgrìn airson tòiseachadh"
102"am fòn a chleachdadh<br><br>Thoir gnogag air an sgrìn airson tòiseachadh"
103
103
104−#: qml/Components/Lockscreen.qml:161
104+#: qml/Components/Lockscreen.qml:167
105−msgid "Too many incorrect attempts"
105+msgid "Please wait"
106msgstr ""
106msgstr ""
107
107
108−#: qml/Components/Lockscreen.qml:163
108+#: qml/Components/Lockscreen.qml:172
109−msgid "Please wait"
109+msgid "Too many incorrect attempts"
110msgstr ""
110msgstr ""
111
111
112−#: qml/Components/Lockscreen.qml:245
112+#: qml/Components/Lockscreen.qml:206
113msgid "Emergency Call"
113msgid "Emergency Call"
114msgstr "Gairm èiginn"
114msgstr "Gairm èiginn"
115
115
116−#: qml/Components/Lockscreen.qml:268
116+#: qml/Components/Lockscreen.qml:226
117msgid "OK"
117msgid "OK"
118msgstr "Ceart ma-thà"
118msgstr "Ceart ma-thà"
119
119
@@ -126,23 +126,15 @@ msgstr "Shin thu, %1"
126msgid "Hello"
126msgid "Hello"
127msgstr "Shin thu"
127msgstr "Shin thu"
128
128
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
138msgid "See less"
130msgid "See less"
139msgstr "Seall nas lugha"
131msgstr "Seall nas lugha"
140
132
141−#: qml/Dash/GenericScopeView.qml:360
133+#: qml/Dash/GenericScopeView.qml:361
142msgid "See all"
134msgid "See all"
143msgstr "Seall na h-uile"
135msgstr "Seall na h-uile"
144
136
145−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
137+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
146msgid "Search"
138msgid "Search"
147msgstr "Lorg"
139msgstr "Lorg"
148
140
@@ -210,13 +202,17 @@ msgstr "Can rud a-nis..."
210msgid "Speaking..."
202msgid "Speaking..."
211msgstr "A' bruidhinn..."
203msgstr "A' bruidhinn..."
212
204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:100
205+#: qml/Notifications/NotificationMenuItemFactory.qml:105
214msgid "Show password"
206msgid "Show password"
215msgstr "Seall am facal-faire"
207msgstr "Seall am facal-faire"
216
208
217−#: qml/Notifications/NotificationMenuItemFactory.qml:115
209+#: qml/Notifications/NotificationMenuItemFactory.qml:120
218−msgid "Please enter SIM PIN"
210+msgid "Enter SIM PIN"
219−msgstr "Cuir a-steach SIM PIN"
211+msgstr ""
212+
213+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
214+msgid "Sorry, incorrect PIN"
215+msgstr ""
220
216
221#: qml/Panel/ActiveCallHint.qml:77
217#: qml/Panel/ActiveCallHint.qml:77
222msgid "Tap to return to call..."
218msgid "Tap to return to call..."
@@ -258,48 +254,57 @@ msgstr "Thoir a' ghlas far an SIM"
258msgid "Roaming"
254msgid "Roaming"
259msgstr "Air fàrsan"
255msgstr "Air fàrsan"
260
256
261−#: qml/Shell.qml:267
257+#: qml/Shell.qml:266
262−msgid "passphrase"
258+msgid "Enter your passphrase"
263msgstr ""
259msgstr ""
264
260
265#: qml/Shell.qml:267
261#: qml/Shell.qml:267
266−msgid "passcode"
262+msgid "Sorry, incorrect passphrase"
267msgstr ""
263msgstr ""
268
264
269#: qml/Shell.qml:269
265#: qml/Shell.qml:269
270−#, qt-format
271−msgid "Enter your %1"
266+msgid "Enter your PIN"
272msgstr ""
267msgstr ""
273
268
274−#: qml/Shell.qml:270
269+#: qml/Shell.qml:273
275#, qt-format
270#, qt-format
276−msgid "Incorrect %1"
271+msgid "Enter your %1"
277msgstr ""
272msgstr ""
278
273
279−#: qml/Shell.qml:272
274+#: qml/Shell.qml:274
280−msgid "Please re-enter"
275+#, qt-format
276+msgid "Sorry, incorrect %1"
281msgstr ""
277msgstr ""
282
278
283−#: qml/Shell.qml:306
279+#: qml/Shell.qml:310
284msgid "Sorry, incorrect passphrase."
280msgid "Sorry, incorrect passphrase."
285msgstr ""
281msgstr ""
286
282
287−#: qml/Shell.qml:307
283+#: qml/Shell.qml:311
288msgid "Sorry, incorrect passcode."
284msgid "Sorry, incorrect passcode."
289msgstr ""
285msgstr ""
290
286
291−#: qml/Shell.qml:308
287+#: qml/Shell.qml:312
292msgid "This will be your last attempt."
288msgid "This will be your last attempt."
293msgstr ""
289msgstr ""
294
290
295−#: qml/Shell.qml:310
291+#: qml/Shell.qml:314
296msgid ""
292msgid ""
297"If passphrase is entered incorrectly, your phone will conduct a factory "
293"If passphrase is entered incorrectly, your phone will conduct a factory "
298"reset and all personal data will be deleted."
294"reset and all personal data will be deleted."
299msgstr ""
295msgstr ""
300
296
301−#: qml/Shell.qml:311
297+#: qml/Shell.qml:315
302msgid ""
298msgid ""
303"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"If passcode is entered incorrectly, your phone will conduct a factory reset "
304"and all personal data will be deleted."
300"and all personal data will be deleted."
305msgstr ""
301msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-14 14:23+0000\n"
11+"PO-Revision-Date: 2014-08-22 15:16+0000\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
13"Language-Team: Galician <gl@li.org>\n"
13"Language-Team: Galician <gl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -96,19 +96,19 @@ msgstr ""
96"Agora xa domina os xestos dos bordos e pode comezar a usar o "
96"Agora xa domina os xestos dos bordos e pode comezar a usar o "
97"teléfono<br><br>Toque na pantalla para comezar"
97"teléfono<br><br>Toque na pantalla para comezar"
98
98
99−#: qml/Components/Lockscreen.qml:161
99+#: qml/Components/Lockscreen.qml:167
100−msgid "Too many incorrect attempts"
101−msgstr "Demasiados erros"
102−
103−#: qml/Components/Lockscreen.qml:163
104msgid "Please wait"
100msgid "Please wait"
105msgstr "Agarde"
101msgstr "Agarde"
106
102
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
108msgid "Emergency Call"
108msgid "Emergency Call"
109msgstr "Chamada de emerxencia"
109msgstr "Chamada de emerxencia"
110
110
111−#: qml/Components/Lockscreen.qml:268
111+#: qml/Components/Lockscreen.qml:226
112msgid "OK"
112msgid "OK"
113msgstr "Aceptar"
113msgstr "Aceptar"
114
114
@@ -121,23 +121,15 @@ msgstr "Ola %1"
121msgid "Hello"
121msgid "Hello"
122msgstr "Ola"
122msgstr "Ola"
123
123
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
133msgid "See less"
125msgid "See less"
134msgstr "Ver menos"
126msgstr "Ver menos"
135
127
136−#: qml/Dash/GenericScopeView.qml:360
128+#: qml/Dash/GenericScopeView.qml:361
137msgid "See all"
129msgid "See all"
138msgstr "Ver todo"
130msgstr "Ver todo"
139
131
140−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141msgid "Search"
133msgid "Search"
142msgstr "Buscar"
134msgstr "Buscar"
143
135
@@ -163,7 +155,7 @@ msgstr "Enviar"
163
155
164#: qml/Dash/ScopesOverview.qml:201
156#: qml/Dash/ScopesOverview.qml:201
165msgid "Manage Dash"
157msgid "Manage Dash"
166−msgstr "Xestionar o Panel"
158+msgstr "Xestión do Panel"
167
159
168#: qml/Dash/ScopesOverview.qml:408
160#: qml/Dash/ScopesOverview.qml:408
169msgid "Done"
161msgid "Done"
@@ -205,14 +197,18 @@ msgstr "Fale agora…"
205msgid "Speaking..."
197msgid "Speaking..."
206msgstr "Falando…"
198msgstr "Falando…"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209msgid "Show password"
201msgid "Show password"
210msgstr "Mostrar contrasinal"
202msgstr "Mostrar contrasinal"
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
213−msgid "Please enter SIM PIN"
205+msgid "Enter SIM PIN"
214msgstr "Introduza o PIN da SIM"
206msgstr "Introduza o PIN da SIM"
215
207
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr "Sentímolo, o PIN é incorrecto"
211+
216#: qml/Panel/ActiveCallHint.qml:77
212#: qml/Panel/ActiveCallHint.qml:77
217msgid "Tap to return to call..."
213msgid "Tap to return to call..."
218msgstr "Toque para volver a chamar..."
214msgstr "Toque para volver a chamar..."
@@ -253,41 +249,41 @@ msgstr "Desbloquear a SIM"
253msgid "Roaming"
249msgid "Roaming"
254msgstr "Itinerancia"
250msgstr "Itinerancia"
255
251
256−#: qml/Shell.qml:267
252+#: qml/Shell.qml:266
257−msgid "passphrase"
253+msgid "Enter your passphrase"
258−msgstr "Frase de paso"
254+msgstr "Introduza a frase de paso"
259
255
260#: qml/Shell.qml:267
256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262−msgstr "código"
258+msgstr "Sentímolo a frase é incorrecta"
263
259
264#: qml/Shell.qml:269
260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr "Introduza o PIN"
263+
264+#: qml/Shell.qml:273
265#, qt-format
265#, qt-format
266msgid "Enter your %1"
266msgid "Enter your %1"
267−msgstr "Introduza %1"
267+msgstr "Introducir %1"
268
268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270#, qt-format
270#, qt-format
271−msgid "Incorrect %1"
271+msgid "Sorry, incorrect %1"
272−msgstr "Incorrecto %1"
272+msgstr "Sentímolo, %1 incorrecto"
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Introducir de novo"
277
273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279msgid "Sorry, incorrect passphrase."
275msgid "Sorry, incorrect passphrase."
280msgstr "Sentímolo é incorrecta."
276msgstr "Sentímolo é incorrecta."
281
277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283msgid "Sorry, incorrect passcode."
279msgid "Sorry, incorrect passcode."
284−msgstr "Sentímolo é incorrecto."
280+msgstr "Sentímolo, a clave é incorrecta."
285
281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287msgid "This will be your last attempt."
283msgid "This will be your last attempt."
288msgstr "Este será o seu último intento."
284msgstr "Este será o seu último intento."
289
285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291msgid ""
287msgid ""
292"If passphrase is entered incorrectly, your phone will conduct a factory "
288"If passphrase is entered incorrectly, your phone will conduct a factory "
293"reset and all personal data will be deleted."
289"reset and all personal data will be deleted."
@@ -295,10 +291,32 @@ msgstr ""
295"Se a frase de paso introducida é incorrecta, o teléfono restabelecerá os "
291"Se a frase de paso introducida é incorrecta, o teléfono restabelecerá os "
296"valores de fábrica e perderá todos os datos persoais."
292"valores de fábrica e perderá todos os datos persoais."
297
293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299msgid ""
295msgid ""
300"If passcode is entered incorrectly, your phone will conduct a factory reset "
296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301"and all personal data will be deleted."
297"and all personal data will be deleted."
302msgstr ""
298msgstr ""
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 "
304"fábrica e perderá todos os datos persoais."
300"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-07-25 16:26+0000\n"
11+"PO-Revision-Date: 2014-08-23 14:19+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-24 06:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
22−msgstr ""
22+msgstr "ססמה: "
23
23
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,19 +32,19 @@ msgstr "הפרדת קיצור הדרך"
32
32
33#: qml/Components/Dialogs.qml:142
33#: qml/Components/Dialogs.qml:142
34msgid "Are you sure you would like to turn power off?"
34msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "האם ברצונך לכבות את המכשיר?"
36
36
37#: qml/Components/Dialogs.qml:144
37#: qml/Components/Dialogs.qml:144
38msgid "Power off"
38msgid "Power off"
39−msgstr ""
39+msgstr "כיבוי"
40
40
41#: qml/Components/Dialogs.qml:153
41#: qml/Components/Dialogs.qml:153
42msgid "Restart"
42msgid "Restart"
43−msgstr ""
43+msgstr "הפעלה מחדש"
44
44
45#: qml/Components/Dialogs.qml:162
45#: qml/Components/Dialogs.qml:162
46msgid "Cancel"
46msgid "Cancel"
47−msgstr ""
47+msgstr "ביטול"
48
48
49#: qml/Components/EdgeDemoOverlay.qml:151
49#: qml/Components/EdgeDemoOverlay.qml:151
50msgid "Skip intro"
50msgid "Skip intro"
@@ -94,19 +94,19 @@ msgstr ""
94"ברגעים אלו סיימת את התמחותך בשימוש במחוות קצה והטלפון פתוח לשימושך<br><br>נא "
94"ברגעים אלו סיימת את התמחותך בשימוש במחוות קצה והטלפון פתוח לשימושך<br><br>נא "
95"לגעת במסך כדי להתחיל"
95"לגעת במסך כדי להתחיל"
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
99−msgstr ""
100−
101−#: qml/Components/Lockscreen.qml:163
102msgid "Please wait"
98msgid "Please wait"
103−msgstr ""
99+msgstr "נא להמתין"
104
100
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
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "שיחת חירום"
107msgstr "שיחת חירום"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "אישור"
111msgstr "אישור"
112
112
@@ -119,23 +119,15 @@ msgstr "שלום %1"
119msgid "Hello"
119msgid "Hello"
120msgstr "שלום"
120msgstr "שלום"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "לראות פחות"
124msgstr "לראות פחות"
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "להציג הכול"
128msgstr "להציג הכול"
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "חיפוש"
132msgstr "חיפוש"
141
133
@@ -165,19 +157,19 @@ msgstr ""
165
157
166#: qml/Dash/ScopesOverview.qml:408
158#: qml/Dash/ScopesOverview.qml:408
167msgid "Done"
159msgid "Done"
168−msgstr ""
160+msgstr "סיימתי"
169
161
170#: qml/Dash/ScopesOverview.qml:434
162#: qml/Dash/ScopesOverview.qml:434
171msgid "Store"
163msgid "Store"
172−msgstr ""
164+msgstr "אחסון"
173
165
174#: qml/Dash/ScopesOverviewTab.qml:36
166#: qml/Dash/ScopesOverviewTab.qml:36
175msgid "Favorites"
167msgid "Favorites"
176−msgstr ""
168+msgstr "מועדפים"
177
169
178#: qml/Dash/ScopesOverviewTab.qml:54
170#: qml/Dash/ScopesOverviewTab.qml:54
179msgid "All"
171msgid "All"
180−msgstr ""
172+msgstr "הכול"
181
173
182#: qml/Greeter/Greeter.qml:157
174#: qml/Greeter/Greeter.qml:157
183msgid "Swipe to unlock"
175msgid "Swipe to unlock"
@@ -203,13 +195,17 @@ msgstr "יש לדבר כעת..."
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "הדיבור מושמע…"
196msgstr "הדיבור מושמע…"
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "הצגת הססמה"
200msgstr "הצגת הססמה"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212−msgstr "נא להזין את קוד ה־<U+200F>SIM"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213
209
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
@@ -249,50 +245,59 @@ msgstr ""
249
245
250#: qml/Panel/Indicators/RoamingIndication.qml:27
246#: qml/Panel/Indicators/RoamingIndication.qml:27
251msgid "Roaming"
247msgid "Roaming"
252−msgstr ""
248+msgstr "נדידה"
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256−msgstr ""
252+msgstr "נא להזין את מילת הצופן שלך"
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260−msgstr ""
256+msgstr "מילת הצופן שגויה, עמך הסליחה."
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
263−#, qt-format
264−msgid "Enter your %1"
259+msgid "Enter your PIN"
265msgstr ""
260msgstr ""
266
261
267−#: qml/Shell.qml:270
262+#: qml/Shell.qml:273
268#, qt-format
263#, qt-format
269−msgid "Incorrect %1"
264+msgid "Enter your %1"
270msgstr ""
265msgstr ""
271
266
272−#: qml/Shell.qml:272
267+#: qml/Shell.qml:274
273−msgid "Please re-enter"
268+#, qt-format
269+msgid "Sorry, incorrect %1"
274msgstr ""
270msgstr ""
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278−msgstr ""
274+msgstr "מילת הצופן שגויה, עמך הסליחה."
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282−msgstr ""
278+msgstr "הצופן שגוי, עם הסליחה."
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286−msgstr ""
282+msgstr "זה יהיה הניסיון האחרון שלך."
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
292msgstr ""
288msgstr ""
293
289
294−#: qml/Shell.qml:311
290+#: qml/Shell.qml:315
295msgid ""
291msgid ""
296"If passcode is entered incorrectly, your phone will conduct a factory reset "
292"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"and all personal data will be deleted."
293"and all personal data will be deleted."
298msgstr ""
294msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
13"Language-Team: Hindi <hi@li.org>\n"
13"Language-Team: Hindi <hi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "आपातकालीन कॉल"
105msgstr "आपातकालीन कॉल"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr "नमस्ते"
118msgstr "नमस्ते"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "खोजें"
130msgstr "खोजें"
139
131
@@ -201,12 +193,16 @@ msgstr "अब बात करें"
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "अब बोल रहे हैं"
194msgstr "अब बोल रहे हैं"
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/hr.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Croatian <hr@li.org>\n"
13"Language-Team: Croatian <hr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Pretraživanje"
130msgstr "Pretraživanje"
139
131
@@ -201,12 +193,16 @@ msgstr "Recite..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "Govor..."
194msgstr "Govor..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/hu.po+64−46
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-19 07:08+0000\n"
11+"PO-Revision-Date: 2014-08-24 11:17+0000\n"
12"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
12"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"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"
18"X-Generator: Launchpad (build 17163)\n"
18"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
@@ -96,48 +96,40 @@ msgstr ""
96"Elsajátította a gesztusokat, és megkezdheti a telefon "
96"Elsajátította a gesztusokat, és megkezdheti a telefon "
97"használatát.<br><br>Koppintson a képernyőre a kezdéshez."
97"használatát.<br><br>Koppintson a képernyőre a kezdéshez."
98
98
99−#: qml/Components/Lockscreen.qml:161
99+#: qml/Components/Lockscreen.qml:167
100−msgid "Too many incorrect attempts"
101−msgstr "Túl sok sikertelen kísérlet"
102−
103−#: qml/Components/Lockscreen.qml:163
104msgid "Please wait"
100msgid "Please wait"
105msgstr "Kérem várjon"
101msgstr "Kérem várjon"
106
102
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
108msgid "Emergency Call"
108msgid "Emergency Call"
109msgstr "Vészhívás"
109msgstr "Vészhívás"
110
110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112msgid "OK"
112msgid "OK"
113msgstr "Ok"
113msgstr "Ok"
114
114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116#, qt-format
116#, qt-format
117msgid "Hello %1"
117msgid "Hello %1"
118msgstr "Üdv %1"
118msgstr "Üdv %1"
119
119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121msgid "Hello"
121msgid "Hello"
122msgstr "Üdvözöljük"
122msgstr "Üdvözöljük"
123
123
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
133msgid "See less"
125msgid "See less"
134msgstr "Kevesebb"
126msgstr "Kevesebb"
135
127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137msgid "See all"
129msgid "See all"
138msgstr "Összes megtekintése"
130msgstr "Összes megtekintése"
139
131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141msgid "Search"
133msgid "Search"
142msgstr "Keresés"
134msgstr "Keresés"
143
135
@@ -161,15 +153,15 @@ msgstr "Értékelés hozzáadása"
161msgid "Send"
153msgid "Send"
162msgstr "Küldés"
154msgstr "Küldés"
163
155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165msgid "Manage Dash"
157msgid "Manage Dash"
166msgstr "Dash kezelése"
158msgstr "Dash kezelése"
167
159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169msgid "Done"
161msgid "Done"
170msgstr "Kész"
162msgstr "Kész"
171
163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173msgid "Store"
165msgid "Store"
174msgstr "Áruház"
166msgstr "Áruház"
175
167
@@ -205,14 +197,18 @@ msgstr "Most beszéljen…"
205msgid "Speaking..."
197msgid "Speaking..."
206msgstr "Beszéd…"
198msgstr "Beszéd…"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209msgid "Show password"
201msgid "Show password"
210msgstr "Jelszó megjelenítése"
202msgstr "Jelszó megjelenítése"
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
213−msgid "Please enter SIM PIN"
205+msgid "Enter SIM PIN"
214msgstr "Adja meg a SIM PIN kódját"
206msgstr "Adja meg a SIM PIN kódját"
215
207
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr "Sajnáljuk, helytelen PIN"
211+
216#: qml/Panel/ActiveCallHint.qml:77
212#: qml/Panel/ActiveCallHint.qml:77
217msgid "Tap to return to call..."
213msgid "Tap to return to call..."
218msgstr "Érintse meg, hogy visszatérjen a híváshoz..."
214msgstr "Érintse meg, hogy visszatérjen a híváshoz..."
@@ -253,41 +249,41 @@ msgstr "SIM feloldása"
253msgid "Roaming"
249msgid "Roaming"
254msgstr "Barangolás"
250msgstr "Barangolás"
255
251
256−#: qml/Shell.qml:267
252+#: qml/Shell.qml:266
257−msgid "passphrase"
253+msgid "Enter your passphrase"
258−msgstr "jelmondat"
254+msgstr "Adja meg a jelmondatot"
259
255
260#: qml/Shell.qml:267
256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262−msgstr "jelkód"
258+msgstr "Sajnáljuk, helytelen jelmondat"
263
259
264#: qml/Shell.qml:269
260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr "Adja meg a PIN kódot"
263+
264+#: qml/Shell.qml:273
265#, qt-format
265#, qt-format
266msgid "Enter your %1"
266msgid "Enter your %1"
267msgstr "Adja meg a következőt: %1"
267msgstr "Adja meg a következőt: %1"
268
268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270#, qt-format
270#, qt-format
271−msgid "Incorrect %1"
271+msgid "Sorry, incorrect %1"
272−msgstr "Helytelen %1"
272+msgstr "Sajnáljuk, helytelen %1"
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Kérjük adja meg újra"
277
273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279msgid "Sorry, incorrect passphrase."
275msgid "Sorry, incorrect passphrase."
280msgstr "Sajnáljuk, helytelen jelmondat."
276msgstr "Sajnáljuk, helytelen jelmondat."
281
277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283msgid "Sorry, incorrect passcode."
279msgid "Sorry, incorrect passcode."
284msgstr "Sajnáljuk, helytelen jelkód."
280msgstr "Sajnáljuk, helytelen jelkód."
285
281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287msgid "This will be your last attempt."
283msgid "This will be your last attempt."
288msgstr "Ez az utolsó próbálkozási lehetősége."
284msgstr "Ez az utolsó próbálkozási lehetősége."
289
285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291msgid ""
287msgid ""
292"If passphrase is entered incorrectly, your phone will conduct a factory "
288"If passphrase is entered incorrectly, your phone will conduct a factory "
293"reset and all personal data will be deleted."
289"reset and all personal data will be deleted."
@@ -295,10 +291,32 @@ msgstr ""
295"Ha helytelen jelmondatot ad meg, a telefonja visszaállítja a gyári "
291"Ha helytelen jelmondatot ad meg, a telefonja visszaállítja a gyári "
296"beállításokat és törli minden személyes adatát."
292"beállításokat és törli minden személyes adatát."
297
293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299msgid ""
295msgid ""
300"If passcode is entered incorrectly, your phone will conduct a factory reset "
296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301"and all personal data will be deleted."
297"and all personal data will be deleted."
302msgstr ""
298msgstr ""
303"Ha helytelen jelkódot ad meg, a telefonja visszaállítja a gyári "
299"Ha helytelen jelkódot ad meg, a telefonja visszaállítja a gyári "
304"beállításokat és törli minden személyes adatát."
300"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Որոնում"
130msgstr "Որոնում"
139
131
@@ -201,12 +193,16 @@ msgstr "Խոսի՛ր"
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "Խոսում եմ..."
194msgstr "Խոսում եմ..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/id.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Indonesian <id@li.org>\n"
13"Language-Team: Indonesian <id@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr ""
130msgstr ""
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/is.po+43−38
@@ -9,15 +9,15 @@ msgid ""
9msgstr ""
9msgstr ""
10"Project-Id-Version: po_unity8-is\n"
10"Project-Id-Version: po_unity8-is\n"
11"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11"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"
13"PO-Revision-Date: 2014-07-31 16:10+0000\n"
13"PO-Revision-Date: 2014-07-31 16:10+0000\n"
14"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
14"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
15"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
15"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
16"MIME-Version: 1.0\n"
16"MIME-Version: 1.0\n"
17"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n"
18"Content-Transfer-Encoding: 8bit\n"
19−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
19+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
20−"X-Generator: Launchpad (build 17156)\n"
20+"X-Generator: Launchpad (build 17163)\n"
21"Language: is\n"
21"Language: is\n"
22
22
23#: plugins/LightDM/Greeter.cpp:129
23#: plugins/LightDM/Greeter.cpp:129
@@ -98,19 +98,19 @@ msgstr ""
98"Þú ert núna með æfingu í að nota skjáhreyfingar og getur því farið að nota "
98"Þú ert núna með æfingu í að nota skjáhreyfingar og getur því farið að nota "
99"símann<br><br>Sláðu létt á skjáinn til að byrja"
99"símann<br><br>Sláðu létt á skjáinn til að byrja"
100
100
101−#: qml/Components/Lockscreen.qml:161
101+#: qml/Components/Lockscreen.qml:167
102−msgid "Too many incorrect attempts"
102+msgid "Please wait"
103msgstr ""
103msgstr ""
104
104
105−#: qml/Components/Lockscreen.qml:163
105+#: qml/Components/Lockscreen.qml:172
106−msgid "Please wait"
106+msgid "Too many incorrect attempts"
107msgstr ""
107msgstr ""
108
108
109−#: qml/Components/Lockscreen.qml:245
109+#: qml/Components/Lockscreen.qml:206
110msgid "Emergency Call"
110msgid "Emergency Call"
111msgstr "Neyðarsímtal"
111msgstr "Neyðarsímtal"
112
112
113−#: qml/Components/Lockscreen.qml:268
113+#: qml/Components/Lockscreen.qml:226
114msgid "OK"
114msgid "OK"
115msgstr "Í lagi"
115msgstr "Í lagi"
116
116
@@ -123,23 +123,15 @@ msgstr "Hæ %1"
123msgid "Hello"
123msgid "Hello"
124msgstr "Hæ"
124msgstr "Hæ"
125
125
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
135msgid "See less"
127msgid "See less"
136msgstr "Sjá minna"
128msgstr "Sjá minna"
137
129
138−#: qml/Dash/GenericScopeView.qml:360
130+#: qml/Dash/GenericScopeView.qml:361
139msgid "See all"
131msgid "See all"
140msgstr "Sjá allt"
132msgstr "Sjá allt"
141
133
142−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
134+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
143msgid "Search"
135msgid "Search"
144msgstr "Leita"
136msgstr "Leita"
145
137
@@ -207,13 +199,17 @@ msgstr "Tala núna..."
207msgid "Speaking..."
199msgid "Speaking..."
208msgstr "Tala..."
200msgstr "Tala..."
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:100
202+#: qml/Notifications/NotificationMenuItemFactory.qml:105
211msgid "Show password"
203msgid "Show password"
212msgstr "Birta lykilorð"
204msgstr "Birta lykilorð"
213
205
214−#: qml/Notifications/NotificationMenuItemFactory.qml:115
206+#: qml/Notifications/NotificationMenuItemFactory.qml:120
215−msgid "Please enter SIM PIN"
207+msgid "Enter SIM PIN"
216−msgstr "Settu inn PIN fyrir SIM"
208+msgstr ""
209+
210+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
211+msgid "Sorry, incorrect PIN"
212+msgstr ""
217
213
218#: qml/Panel/ActiveCallHint.qml:77
214#: qml/Panel/ActiveCallHint.qml:77
219msgid "Tap to return to call..."
215msgid "Tap to return to call..."
@@ -255,48 +251,57 @@ msgstr ""
255msgid "Roaming"
251msgid "Roaming"
256msgstr ""
252msgstr ""
257
253
258−#: qml/Shell.qml:267
254+#: qml/Shell.qml:266
259−msgid "passphrase"
255+msgid "Enter your passphrase"
260msgstr ""
256msgstr ""
261
257
262#: qml/Shell.qml:267
258#: qml/Shell.qml:267
263−msgid "passcode"
259+msgid "Sorry, incorrect passphrase"
264msgstr ""
260msgstr ""
265
261
266#: qml/Shell.qml:269
262#: qml/Shell.qml:269
267−#, qt-format
268−msgid "Enter your %1"
263+msgid "Enter your PIN"
269msgstr ""
264msgstr ""
270
265
271−#: qml/Shell.qml:270
266+#: qml/Shell.qml:273
272#, qt-format
267#, qt-format
273−msgid "Incorrect %1"
268+msgid "Enter your %1"
274msgstr ""
269msgstr ""
275
270
276−#: qml/Shell.qml:272
271+#: qml/Shell.qml:274
277−msgid "Please re-enter"
272+#, qt-format
273+msgid "Sorry, incorrect %1"
278msgstr ""
274msgstr ""
279
275
280−#: qml/Shell.qml:306
276+#: qml/Shell.qml:310
281msgid "Sorry, incorrect passphrase."
277msgid "Sorry, incorrect passphrase."
282msgstr ""
278msgstr ""
283
279
284−#: qml/Shell.qml:307
280+#: qml/Shell.qml:311
285msgid "Sorry, incorrect passcode."
281msgid "Sorry, incorrect passcode."
286msgstr ""
282msgstr ""
287
283
288−#: qml/Shell.qml:308
284+#: qml/Shell.qml:312
289msgid "This will be your last attempt."
285msgid "This will be your last attempt."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:310
288+#: qml/Shell.qml:314
293msgid ""
289msgid ""
294"If passphrase is entered incorrectly, your phone will conduct a factory "
290"If passphrase is entered incorrectly, your phone will conduct a factory "
295"reset and all personal data will be deleted."
291"reset and all personal data will be deleted."
296msgstr ""
292msgstr ""
297
293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299msgid ""
295msgid ""
300"If passcode is entered incorrectly, your phone will conduct a factory reset "
296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301"and all personal data will be deleted."
297"and all personal data will be deleted."
302msgstr ""
298msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-14 11:35+0000\n"
11+"PO-Revision-Date: 2014-08-23 07:47+0000\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
13"Language-Team: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-24 06:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -99,19 +99,19 @@ msgstr ""
99"L'apprendimento dei gesti è stato completato. È ora possibile iniziare a "
99"L'apprendimento dei gesti è stato completato. È ora possibile iniziare a "
100"usare il telefono.<br><br>Toccare lo schermo per iniziare"
100"usare il telefono.<br><br>Toccare lo schermo per iniziare"
101
101
102−#: qml/Components/Lockscreen.qml:161
102+#: qml/Components/Lockscreen.qml:167
103−msgid "Too many incorrect attempts"
104−msgstr "Troppi tentativi errati"
105−
106−#: qml/Components/Lockscreen.qml:163
107msgid "Please wait"
103msgid "Please wait"
108msgstr "Attendere"
104msgstr "Attendere"
109
105
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
111msgid "Emergency Call"
111msgid "Emergency Call"
112msgstr "Chiamata di emergenza"
112msgstr "Chiamata di emergenza"
113
113
114−#: qml/Components/Lockscreen.qml:268
114+#: qml/Components/Lockscreen.qml:226
115msgid "OK"
115msgid "OK"
116msgstr "OK"
116msgstr "OK"
117
117
@@ -124,23 +124,15 @@ msgstr "Ciao %1"
124msgid "Hello"
124msgid "Hello"
125msgstr "Ciao"
125msgstr "Ciao"
126
126
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
136msgid "See less"
128msgid "See less"
137msgstr "Mostra meno"
129msgstr "Mostra meno"
138
130
139−#: qml/Dash/GenericScopeView.qml:360
131+#: qml/Dash/GenericScopeView.qml:361
140msgid "See all"
132msgid "See all"
141msgstr "Mostra tutto"
133msgstr "Mostra tutto"
142
134
143−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
135+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
144msgid "Search"
136msgid "Search"
145msgstr "Cerca"
137msgstr "Cerca"
146
138
@@ -208,13 +200,17 @@ msgstr "Parla ora..."
208msgid "Speaking..."
200msgid "Speaking..."
209msgstr "Sto parlando..."
201msgstr "Sto parlando..."
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:100
203+#: qml/Notifications/NotificationMenuItemFactory.qml:105
212msgid "Show password"
204msgid "Show password"
213msgstr "Mostra password"
205msgstr "Mostra password"
214
206
215−#: qml/Notifications/NotificationMenuItemFactory.qml:115
207+#: qml/Notifications/NotificationMenuItemFactory.qml:120
216−msgid "Please enter SIM PIN"
208+msgid "Enter SIM PIN"
217−msgstr "Inserire il codice 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"
218
214
219#: qml/Panel/ActiveCallHint.qml:77
215#: qml/Panel/ActiveCallHint.qml:77
220msgid "Tap to return to call..."
216msgid "Tap to return to call..."
@@ -256,41 +252,41 @@ msgstr "Sblocca SIM"
256msgid "Roaming"
252msgid "Roaming"
257msgstr "Roaming"
253msgstr "Roaming"
258
254
259−#: qml/Shell.qml:267
255+#: qml/Shell.qml:266
260−msgid "passphrase"
256+msgid "Enter your passphrase"
261−msgstr "passphrase"
257+msgstr "Digitare la passphrase"
262
258
263#: qml/Shell.qml:267
259#: qml/Shell.qml:267
264−msgid "passcode"
260+msgid "Sorry, incorrect passphrase"
265−msgstr "passcode"
261+msgstr "Passphrase errata"
266
262
267#: qml/Shell.qml:269
263#: qml/Shell.qml:269
264+msgid "Enter your PIN"
265+msgstr "Inserire il PIN"
266+
267+#: qml/Shell.qml:273
268#, qt-format
268#, qt-format
269msgid "Enter your %1"
269msgid "Enter your %1"
270msgstr "Inserire %1"
270msgstr "Inserire %1"
271
271
272−#: qml/Shell.qml:270
272+#: qml/Shell.qml:274
273#, qt-format
273#, qt-format
274−msgid "Incorrect %1"
274+msgid "Sorry, incorrect %1"
275−msgstr "Errore %1"
275+msgstr "%1 non corretto"
276
276
277−#: qml/Shell.qml:272
277+#: qml/Shell.qml:310
278−msgid "Please re-enter"
279−msgstr "Inserire nuovamente"
280−
281−#: qml/Shell.qml:306
282msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
283msgstr "Passphrase non corretta"
279msgstr "Passphrase non corretta"
284
280
285−#: qml/Shell.qml:307
281+#: qml/Shell.qml:311
286msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
287msgstr "Passcode non corretto"
283msgstr "Passcode non corretto"
288
284
289−#: qml/Shell.qml:308
285+#: qml/Shell.qml:312
290msgid "This will be your last attempt."
286msgid "This will be your last attempt."
291msgstr "Questo sarà l'ultimo tentativo."
287msgstr "Questo sarà l'ultimo tentativo."
292
288
293−#: qml/Shell.qml:310
289+#: qml/Shell.qml:314
294msgid ""
290msgid ""
295"If passphrase is entered incorrectly, your phone will conduct a factory "
291"If passphrase is entered incorrectly, your phone will conduct a factory "
296"reset and all personal data will be deleted."
292"reset and all personal data will be deleted."
@@ -298,10 +294,32 @@ msgstr ""
298"Se verrà inserita una passphrase errata, il telefono eseguirà un ripristino "
294"Se verrà inserita una passphrase errata, il telefono eseguirà un ripristino "
299"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
295"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
300
296
301−#: qml/Shell.qml:311
297+#: qml/Shell.qml:315
302msgid ""
298msgid ""
303"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"If passcode is entered incorrectly, your phone will conduct a factory reset "
304"and all personal data will be deleted."
300"and all personal data will be deleted."
305msgstr ""
301msgstr ""
306"Se verrà inserito una passcode errato, il telefono eseguirà un ripristino "
302"Se verrà inserito una passcode errato, il telefono eseguirà un ripristino "
307"delle impostazioni di fabbrica e tutti i dati personali verranno eliminati."
303"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-18 15:03+0000\n"
11"PO-Revision-Date: 2014-08-18 15:03+0000\n"
12"Last-Translator: Mitsuya Shibata <mty.shibata@gmail.com>\n"
12"Last-Translator: Mitsuya Shibata <mty.shibata@gmail.com>\n"
13"Language-Team: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-19 06:59+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -93,48 +93,40 @@ msgid ""
93msgstr ""
93msgstr ""
94"これでスマートフォンの操作に必要な、画面端を用いたジェスチャーを習得できました。<br><br>利用を開始するなら画面をタップしてください"
94"これでスマートフォンの操作に必要な、画面端を用いたジェスチャーを習得できました。<br><br>利用を開始するなら画面をタップしてください"
95
95
96−#: qml/Components/Lockscreen.qml:161
96+#: qml/Components/Lockscreen.qml:167
97−msgid "Too many incorrect attempts"
98−msgstr "失敗回数が上限に達しました"
99−
100−#: qml/Components/Lockscreen.qml:163
101msgid "Please wait"
97msgid "Please wait"
102msgstr "お待ちください"
98msgstr "お待ちください"
103
99
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
105msgid "Emergency Call"
105msgid "Emergency Call"
106msgstr "緊急通報"
106msgstr "緊急通報"
107
107
108−#: qml/Components/Lockscreen.qml:243
108+#: qml/Components/Lockscreen.qml:226
109msgid "OK"
109msgid "OK"
110msgstr "OK"
110msgstr "OK"
111
111
112−#: qml/Components/PassphraseLockscreen.qml:62
112+#: qml/Components/PassphraseLockscreen.qml:61
113#, qt-format
113#, qt-format
114msgid "Hello %1"
114msgid "Hello %1"
115msgstr "こんにちは %1 さん"
115msgstr "こんにちは %1 さん"
116
116
117−#: qml/Components/PassphraseLockscreen.qml:62
117+#: qml/Components/PassphraseLockscreen.qml:61
118msgid "Hello"
118msgid "Hello"
119msgstr "こんにちは"
119msgstr "こんにちは"
120
120
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
130msgid "See less"
122msgid "See less"
131msgstr ""
123msgstr ""
132
124
133−#: qml/Dash/GenericScopeView.qml:358
125+#: qml/Dash/GenericScopeView.qml:361
134msgid "See all"
126msgid "See all"
135msgstr "すべて表示する"
127msgstr "すべて表示する"
136
128
137−#: qml/Panel/SearchIndicator.qml:27
129+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
138msgid "Search"
130msgid "Search"
139msgstr "検索"
131msgstr "検索"
140
132
@@ -158,15 +150,15 @@ msgstr "レビューを追加"
158msgid "Send"
150msgid "Send"
159msgstr "送信"
151msgstr "送信"
160
152
161−#: qml/Dash/ScopesOverview.qml:200
153+#: qml/Dash/ScopesOverview.qml:201
162msgid "Manage Dash"
154msgid "Manage Dash"
163msgstr "Dashの管理"
155msgstr "Dashの管理"
164
156
165−#: qml/Dash/ScopesOverview.qml:405
157+#: qml/Dash/ScopesOverview.qml:408
166msgid "Done"
158msgid "Done"
167msgstr "完了"
159msgstr "完了"
168
160
169−#: qml/Dash/ScopesOverview.qml:431
161+#: qml/Dash/ScopesOverview.qml:434
170msgid "Store"
162msgid "Store"
171msgstr "保存"
163msgstr "保存"
172
164
@@ -202,13 +194,17 @@ msgstr "音声入力を開始..."
202msgid "Speaking..."
194msgid "Speaking..."
203msgstr "入力中..."
195msgstr "入力中..."
204
196
205−#: qml/Notifications/NotificationMenuItemFactory.qml:100
197+#: qml/Notifications/NotificationMenuItemFactory.qml:105
206msgid "Show password"
198msgid "Show password"
207msgstr "パスワードを表示"
199msgstr "パスワードを表示"
208
200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:115
201+#: qml/Notifications/NotificationMenuItemFactory.qml:120
210−msgid "Please enter SIM PIN"
202+msgid "Enter SIM PIN"
211−msgstr "SIM PINを入力してください"
203+msgstr ""
204+
205+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
206+msgid "Sorry, incorrect PIN"
207+msgstr ""
212
208
213#: qml/Panel/ActiveCallHint.qml:77
209#: qml/Panel/ActiveCallHint.qml:77
214msgid "Tap to return to call..."
210msgid "Tap to return to call..."
@@ -250,48 +246,70 @@ msgstr "SIMのアンロック"
250msgid "Roaming"
246msgid "Roaming"
251msgstr "ローミング"
247msgstr "ローミング"
252
248
253−#: qml/Shell.qml:267
249+#: qml/Shell.qml:266
254−msgid "passphrase"
250+msgid "Enter your passphrase"
255−msgstr "パスフレーズ"
251+msgstr ""
256
252
257#: qml/Shell.qml:267
253#: qml/Shell.qml:267
258−msgid "passcode"
254+msgid "Sorry, incorrect passphrase"
259−msgstr "パスコード"
255+msgstr ""
260
256
261#: qml/Shell.qml:269
257#: qml/Shell.qml:269
258+msgid "Enter your PIN"
259+msgstr ""
260+
261+#: qml/Shell.qml:273
262#, qt-format
262#, qt-format
263msgid "Enter your %1"
263msgid "Enter your %1"
264msgstr "%1を入力してください"
264msgstr "%1を入力してください"
265
265
266−#: qml/Shell.qml:270
266+#: qml/Shell.qml:274
267#, qt-format
267#, qt-format
268−msgid "Incorrect %1"
268+msgid "Sorry, incorrect %1"
269−msgstr "%1が間違っています"
269+msgstr ""
270−
271−#: qml/Shell.qml:272
272−msgid "Please re-enter"
273−msgstr "再入力してください"
274
270
275−#: qml/Shell.qml:306
271+#: qml/Shell.qml:310
276msgid "Sorry, incorrect passphrase."
272msgid "Sorry, incorrect passphrase."
277msgstr "パスフレーズが間違っています。"
273msgstr "パスフレーズが間違っています。"
278
274
279−#: qml/Shell.qml:307
275+#: qml/Shell.qml:311
280msgid "Sorry, incorrect passcode."
276msgid "Sorry, incorrect passcode."
281msgstr "パスコードが間違っています。"
277msgstr "パスコードが間違っています。"
282
278
283−#: qml/Shell.qml:308
279+#: qml/Shell.qml:312
284msgid "This will be your last attempt."
280msgid "This will be your last attempt."
285msgstr "これが最後のチャンスです。"
281msgstr "これが最後のチャンスです。"
286
282
287−#: qml/Shell.qml:310
283+#: qml/Shell.qml:314
288msgid ""
284msgid ""
289"If passphrase is entered incorrectly, your phone will conduct a factory "
285"If passphrase is entered incorrectly, your phone will conduct a factory "
290"reset and all personal data will be deleted."
286"reset and all personal data will be deleted."
291msgstr ""
287msgstr ""
292
288
293−#: qml/Shell.qml:311
289+#: qml/Shell.qml:315
294msgid ""
290msgid ""
295"If passcode is entered incorrectly, your phone will conduct a factory reset "
291"If passcode is entered incorrectly, your phone will conduct a factory reset "
296"and all personal data will be deleted."
292"and all personal data will be deleted."
297msgstr ""
293msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-20 02:48+0000\n"
11"PO-Revision-Date: 2014-08-20 02:48+0000\n"
12"Last-Translator: Sok Sophea <sksophea@gmail.com>\n"
12"Last-Translator: Sok Sophea <sksophea@gmail.com>\n"
13"Language-Team: Khmer <km@li.org>\n"
13"Language-Team: Khmer <km@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"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"
18"X-Generator: Launchpad (build 17163)\n"
18"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
@@ -96,48 +96,40 @@ msgstr ""
96"ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ "
96"ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ "
97"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
97"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
98
98
99−#: qml/Components/Lockscreen.qml:161
99+#: qml/Components/Lockscreen.qml:167
100−msgid "Too many incorrect attempts"
101−msgstr "បាន​ព្យាយាម​ខុស​ច្រើន​ដង​ពេក"
102−
103−#: qml/Components/Lockscreen.qml:163
104msgid "Please wait"
100msgid "Please wait"
105msgstr "សូមរង់ចាំ"
101msgstr "សូមរង់ចាំ"
106
102
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
108msgid "Emergency Call"
108msgid "Emergency Call"
109msgstr "ការ​ហៅ​ពេល​អាសន្ន"
109msgstr "ការ​ហៅ​ពេល​អាសន្ន"
110
110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112msgid "OK"
112msgid "OK"
113msgstr "យល់ព្រម"
113msgstr "យល់ព្រម"
114
114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116#, qt-format
116#, qt-format
117msgid "Hello %1"
117msgid "Hello %1"
118msgstr "សួស្ដី %1"
118msgstr "សួស្ដី %1"
119
119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121msgid "Hello"
121msgid "Hello"
122msgstr "សួស្តី"
122msgstr "សួស្តី"
123
123
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
133msgid "See less"
125msgid "See less"
134msgstr "មើល​តិច​ជាង"
126msgstr "មើល​តិច​ជាង"
135
127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137msgid "See all"
129msgid "See all"
138msgstr "មើល​ទាំងអស់"
130msgstr "មើល​ទាំងអស់"
139
131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141msgid "Search"
133msgid "Search"
142msgstr "ស្វែង​រក"
134msgstr "ស្វែង​រក"
143
135
@@ -161,15 +153,15 @@ msgstr "បន្ថែម​ការ​ពិនិត្យ"
161msgid "Send"
153msgid "Send"
162msgstr "ផ្ញើ"
154msgstr "ផ្ញើ"
163
155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165msgid "Manage Dash"
157msgid "Manage Dash"
166msgstr "គ្រប់គ្រង​ផ្ទាំង"
158msgstr "គ្រប់គ្រង​ផ្ទាំង"
167
159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169msgid "Done"
161msgid "Done"
170msgstr "ធ្វើរួច"
162msgstr "ធ្វើរួច"
171
163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173msgid "Store"
165msgid "Store"
174msgstr "រក្សាទុក"
166msgstr "រក្សាទុក"
175
167
@@ -205,13 +197,17 @@ msgstr "និយាយ​ឥឡូវ..."
205msgid "Speaking..."
197msgid "Speaking..."
206msgstr "កំពុង​និយាយ..."
198msgstr "កំពុង​និយាយ..."
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209msgid "Show password"
201msgid "Show password"
210msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
202msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
213−msgid "Please enter SIM PIN"
205+msgid "Enter SIM PIN"
214−msgstr "បញ្ចូល​កូដ PIN របស់​ស៊ីមកាត"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215
211
216#: qml/Panel/ActiveCallHint.qml:77
212#: qml/Panel/ActiveCallHint.qml:77
217msgid "Tap to return to call..."
213msgid "Tap to return to call..."
@@ -253,41 +249,41 @@ msgstr "ដោះ​សោ​ស៊ីម"
253msgid "Roaming"
249msgid "Roaming"
254msgstr "រ៉ូមីង"
250msgstr "រ៉ូមីង"
255
251
256−#: qml/Shell.qml:267
252+#: qml/Shell.qml:266
257−msgid "passphrase"
253+msgid "Enter your passphrase"
258−msgstr "ឃ្លា​សម្ងាត់"
254+msgstr ""
259
255
260#: qml/Shell.qml:267
256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262−msgstr "កូដ​សម្ងាត់"
258+msgstr ""
263
259
264#: qml/Shell.qml:269
260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr ""
263+
264+#: qml/Shell.qml:273
265#, qt-format
265#, qt-format
266msgid "Enter your %1"
266msgid "Enter your %1"
267msgstr "បញ្ចូល %1 របស់​អ្នក"
267msgstr "បញ្ចូល %1 របស់​អ្នក"
268
268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270#, qt-format
270#, qt-format
271−msgid "Incorrect %1"
271+msgid "Sorry, incorrect %1"
272−msgstr "មិន​ត្រឹមត្រូវ %1"
272+msgstr ""
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "សូម​បញ្ចូល​ឡើងវិញ"
277
273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279msgid "Sorry, incorrect passphrase."
275msgid "Sorry, incorrect passphrase."
280msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
276msgstr "សូមទោស! ឃ្លា​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
281
277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283msgid "Sorry, incorrect passcode."
279msgid "Sorry, incorrect passcode."
284msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
280msgstr "សូមទោស! កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ។"
285
281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287msgid "This will be your last attempt."
283msgid "This will be your last attempt."
288msgstr "នេះ​គឺ​ការ​ព្យាយាម​លើក​ចុងក្រោយ។"
284msgstr "នេះ​គឺ​ការ​ព្យាយាម​លើក​ចុងក្រោយ។"
289
285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291msgid ""
287msgid ""
292"If passphrase is entered incorrectly, your phone will conduct a factory "
288"If passphrase is entered incorrectly, your phone will conduct a factory "
293"reset and all personal data will be deleted."
289"reset and all personal data will be deleted."
@@ -296,7 +292,7 @@ msgstr ""
296"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
292"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
297"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
293"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
298
294
299−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
300msgid ""
296msgid ""
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"and all personal data will be deleted."
298"and all personal data will be deleted."
@@ -304,3 +300,25 @@ msgstr ""
304"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ "
300"បើ​បញ្ចូល​កូដ​សម្ងាត់​មិន​ត្រឹមត្រូវ "
305"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
301"ទូរស័ព្ទ​របស់​អ្នក​នឹង​កំណត់​ទៅ​ទិន្នន័យ​ពី​រោងចក្រ​វិញ "
306"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
302"ហើយ​ទិន្នន័យ​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់​អ្នក​នឹង​ត្រូវ​បាន​លុប។"
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kannada <kn@li.org>\n"
13"Language-Team: Kannada <kn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "ಹುಡುಕು"
130msgstr "ಹುಡುಕು"
139
131
@@ -201,12 +193,16 @@ msgstr "ಈಗ ಮಾತನಾಡಿ ..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
194msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/ko.po+64−46
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-19 13:02+0000\n"
11"PO-Revision-Date: 2014-08-19 13:02+0000\n"
12"Last-Translator: MinSik CHO <Unknown>\n"
12"Last-Translator: MinSik CHO <Unknown>\n"
13"Language-Team: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"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"
18"X-Generator: Launchpad (build 17163)\n"
18"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
@@ -94,48 +94,40 @@ msgstr ""
94"여러분은 끝에서 끌어오기 제스쳐를 완벽히 익히셨기 때문에 휴대 전화를 사용하기 시작할 수 있습니다. <br><br> 스크린을 터치해서 "
94"여러분은 끝에서 끌어오기 제스쳐를 완벽히 익히셨기 때문에 휴대 전화를 사용하기 시작할 수 있습니다. <br><br> 스크린을 터치해서 "
95"시작하세요."
95"시작하세요."
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
99−msgstr "너무 많이 틀리셨습니다"
100−
101−#: qml/Components/Lockscreen.qml:163
102msgid "Please wait"
98msgid "Please wait"
103msgstr "기다려주십시오"
99msgstr "기다려주십시오"
104
100
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
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "긴급 통화"
107msgstr "긴급 통화"
108
108
109−#: qml/Components/Lockscreen.qml:243
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "확인"
111msgstr "확인"
112
112
113−#: qml/Components/PassphraseLockscreen.qml:62
113+#: qml/Components/PassphraseLockscreen.qml:61
114#, qt-format
114#, qt-format
115msgid "Hello %1"
115msgid "Hello %1"
116msgstr "안녕하세요 %1"
116msgstr "안녕하세요 %1"
117
117
118−#: qml/Components/PassphraseLockscreen.qml:62
118+#: qml/Components/PassphraseLockscreen.qml:61
119msgid "Hello"
119msgid "Hello"
120msgstr "안녕하세요"
120msgstr "안녕하세요"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "간단히 표시하기"
124msgstr "간단히 표시하기"
133
125
134−#: qml/Dash/GenericScopeView.qml:358
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "모두 보기"
128msgstr "모두 보기"
137
129
138−#: qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "검색"
132msgstr "검색"
141
133
@@ -159,15 +151,15 @@ msgstr "평가 제출하기"
159msgid "Send"
151msgid "Send"
160msgstr "보내기"
152msgstr "보내기"
161
153
162−#: qml/Dash/ScopesOverview.qml:200
154+#: qml/Dash/ScopesOverview.qml:201
163msgid "Manage Dash"
155msgid "Manage Dash"
164msgstr "대시 관리"
156msgstr "대시 관리"
165
157
166−#: qml/Dash/ScopesOverview.qml:405
158+#: qml/Dash/ScopesOverview.qml:408
167msgid "Done"
159msgid "Done"
168msgstr "완료"
160msgstr "완료"
169
161
170−#: qml/Dash/ScopesOverview.qml:431
162+#: qml/Dash/ScopesOverview.qml:434
171msgid "Store"
163msgid "Store"
172msgstr "장터"
164msgstr "장터"
173
165
@@ -203,13 +195,17 @@ msgstr "지금 말하세요..."
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "말하는 중..."
196msgstr "말하는 중..."
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "비밀 번호 보기"
200msgstr "비밀 번호 보기"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212−msgstr "심카드의 PIN 번호를 입력하세요."
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213
209
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
@@ -251,50 +247,72 @@ msgstr "SIM 카드 보안 해제"
251msgid "Roaming"
247msgid "Roaming"
252msgstr "로밍"
248msgstr "로밍"
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256−msgstr "비밀번호"
252+msgstr ""
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260−msgstr "비밀번호"
256+msgstr ""
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr ""
261+
262+#: qml/Shell.qml:273
263#, qt-format
263#, qt-format
264msgid "Enter your %1"
264msgid "Enter your %1"
265msgstr "%1를 입력하세요"
265msgstr "%1를 입력하세요"
266
266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268#, qt-format
268#, qt-format
269−msgid "Incorrect %1"
269+msgid "Sorry, incorrect %1"
270−msgstr "잘못된 %1입니다"
270+msgstr ""
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "다시 입력하세요"
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr "잘못된 비밀번호입니다."
274msgstr "잘못된 비밀번호입니다."
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr "잘못된 비밀번호입니다."
278msgstr "잘못된 비밀번호입니다."
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr "마지막 시도입니다."
282msgstr "마지막 시도입니다."
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
292msgstr ""
288msgstr ""
293"만약 이번 시도에서 잘못 입력하면, 보안을 위해 휴대 전화가 공장 초기화 과정을 거쳐 모든 사용자 데이터를 삭제할 것입니다."
289"만약 이번 시도에서 잘못 입력하면, 보안을 위해 휴대 전화가 공장 초기화 과정을 거쳐 모든 사용자 데이터를 삭제할 것입니다."
294
290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296msgid ""
292msgid ""
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298"and all personal data will be deleted."
294"and all personal data will be deleted."
299msgstr ""
295msgstr ""
300"만약 이번 시도에서 잘못 입력하면, 보안을 위해 휴대 전화가 공장 초기화 과정을 거쳐 모든 사용자 데이터를 삭제할 것입니다."
296"만약 이번 시도에서 잘못 입력하면, 보안을 위해 휴대 전화가 공장 초기화 과정을 거쳐 모든 사용자 데이터를 삭제할 것입니다."
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Издөө"
130msgstr "Издөө"
139
131
@@ -201,12 +193,16 @@ msgstr "Азыр сүйлөңүз..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "Сүйлөнүүдө..."
194msgstr "Сүйлөнүүдө..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/lo.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
13"Language-Team: Lao <lo@li.org>\n"
13"Language-Team: Lao <lo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr "ສະບາຍດີ %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "ສະບາຍດີ"
118msgstr "ສະບາຍດີ"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "ຊອກຫາ"
130msgstr "ຊອກຫາ"
139
131
@@ -201,12 +193,16 @@ msgstr "ເວົ້າໂລດ"
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "ກໍາລັງເວົ້າ"
194msgstr "ກໍາລັງເວົ້າ"
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/lt.po+37−38
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-05-19 17:15+0000\n"
11"PO-Revision-Date: 2014-05-19 17:15+0000\n"
12"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
12"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -95,19 +95,19 @@ msgid ""
95"phone<br><br>Tap on the screen to start"
95"phone<br><br>Tap on the screen to start"
96msgstr ""
96msgstr ""
97
97
98−#: qml/Components/Lockscreen.qml:161
98+#: qml/Components/Lockscreen.qml:167
99−msgid "Too many incorrect attempts"
99+msgid "Please wait"
100msgstr ""
100msgstr ""
101
101
102−#: qml/Components/Lockscreen.qml:163
102+#: qml/Components/Lockscreen.qml:172
103−msgid "Please wait"
103+msgid "Too many incorrect attempts"
104msgstr ""
104msgstr ""
105
105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107msgid "Emergency Call"
107msgid "Emergency Call"
108msgstr "Pagalbos skambutis"
108msgstr "Pagalbos skambutis"
109
109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111msgid "OK"
111msgid "OK"
112msgstr ""
112msgstr ""
113
113
@@ -120,23 +120,15 @@ msgstr "Laba diena, %1"
120msgid "Hello"
120msgid "Hello"
121msgstr "Sveiki"
121msgstr "Sveiki"
122
122
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
132msgid "See less"
124msgid "See less"
133msgstr ""
125msgstr ""
134
126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136msgid "See all"
128msgid "See all"
137msgstr ""
129msgstr ""
138
130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140msgid "Search"
132msgid "Search"
141msgstr "Paieška"
133msgstr "Paieška"
142
134
@@ -204,13 +196,17 @@ msgstr "Kalbėkite..."
204msgid "Speaking..."
196msgid "Speaking..."
205msgstr "Kalbama..."
197msgstr "Kalbama..."
206
198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208msgid "Show password"
200msgid "Show password"
209msgstr "Rodyti slaptažodį"
201msgstr "Rodyti slaptažodį"
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
212−msgid "Please enter SIM PIN"
204+msgid "Enter SIM PIN"
213−msgstr "Įveskite SIM kortelės PIN kodą"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214
210
215#: qml/Panel/ActiveCallHint.qml:77
211#: qml/Panel/ActiveCallHint.qml:77
216msgid "Tap to return to call..."
212msgid "Tap to return to call..."
@@ -252,48 +248,51 @@ msgstr ""
252msgid "Roaming"
248msgid "Roaming"
253msgstr ""
249msgstr ""
254
250
255−#: qml/Shell.qml:267
251+#: qml/Shell.qml:266
256−msgid "passphrase"
252+msgid "Enter your passphrase"
257msgstr ""
253msgstr ""
258
254
259#: qml/Shell.qml:267
255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261msgstr ""
257msgstr ""
262
258
263#: qml/Shell.qml:269
259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266msgstr ""
261msgstr ""
267
262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269#, qt-format
264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271msgstr ""
266msgstr ""
272
267
273−#: qml/Shell.qml:272
268+#: qml/Shell.qml:274
274−msgid "Please re-enter"
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275msgstr ""
271msgstr ""
276
272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278msgid "Sorry, incorrect passphrase."
274msgid "Sorry, incorrect passphrase."
279msgstr ""
275msgstr ""
280
276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282msgid "Sorry, incorrect passcode."
278msgid "Sorry, incorrect passcode."
283msgstr ""
279msgstr ""
284
280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286msgid "This will be your last attempt."
282msgid "This will be your last attempt."
287msgstr ""
283msgstr ""
288
284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290msgid ""
286msgid ""
291"If passphrase is entered incorrectly, your phone will conduct a factory "
287"If passphrase is entered incorrectly, your phone will conduct a factory "
292"reset and all personal data will be deleted."
288"reset and all personal data will be deleted."
293msgstr ""
289msgstr ""
294
290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296msgid ""
292msgid ""
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298"and all personal data will be deleted."
294"and all personal data will be deleted."
299msgstr ""
295msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-12 19:07+0000\n"
11+"PO-Revision-Date: 2014-08-21 09:46+0000\n"
12"Last-Translator: Jānis-Marks Gailis <jm-gailis@fai-vianet.fr>\n"
12"Last-Translator: Jānis-Marks Gailis <jm-gailis@fai-vianet.fr>\n"
13"Language-Team: Latvian <lv@li.org>\n"
13"Language-Team: Latvian <lv@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
22−msgstr ""
22+msgstr "Parole: "
23
23
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,7 +32,7 @@ msgstr ""
32
32
33#: qml/Components/Dialogs.qml:142
33#: qml/Components/Dialogs.qml:142
34msgid "Are you sure you would like to turn power off?"
34msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Vai esat drošs ka vēlaties izslēgt?"
36
36
37#: qml/Components/Dialogs.qml:144
37#: qml/Components/Dialogs.qml:144
38msgid "Power off"
38msgid "Power off"
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
97−msgstr ""
98−
99−#: qml/Components/Lockscreen.qml:163
100msgid "Please wait"
96msgid "Please wait"
97+msgstr "Lūdzu, uzgaidiet"
98+
99+#: qml/Components/Lockscreen.qml:172
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "Neatliekamās Palīdzības zvans"
105msgstr "Neatliekamās Palīdzības zvans"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr "LABI"
109msgstr "LABI"
110
110
@@ -117,23 +117,15 @@ msgstr "Sveiki, %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "Sveiki"
118msgstr "Sveiki"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr "Redzēt mazāk"
122msgstr "Redzēt mazāk"
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr "Skatīt visus"
126msgstr "Skatīt visus"
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Meklēt"
130msgstr "Meklēt"
139
131
@@ -167,7 +159,7 @@ msgstr "Pabeigts"
167
159
168#: qml/Dash/ScopesOverview.qml:434
160#: qml/Dash/ScopesOverview.qml:434
169msgid "Store"
161msgid "Store"
170−msgstr ""
162+msgstr "Veikals"
171
163
172#: qml/Dash/ScopesOverviewTab.qml:36
164#: qml/Dash/ScopesOverviewTab.qml:36
173msgid "Favorites"
165msgid "Favorites"
@@ -201,13 +193,17 @@ msgstr "Runajiet Tagad"
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "Runa..."
194msgstr "Runa..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "Rādīt paroli"
198msgstr "Rādīt paroli"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
210−msgstr "Lūdzu ievadiet SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
213msgid "Tap to return to call..."
209msgid "Tap to return to call..."
@@ -219,7 +215,7 @@ msgstr "Konference"
219
215
220#: qml/Panel/Indicators/MenuItemFactory.qml:651
216#: qml/Panel/Indicators/MenuItemFactory.qml:651
221msgid "In queue…"
217msgid "In queue…"
222−msgstr ""
218+msgstr "Sarakstā..."
223
219
224#: qml/Panel/Indicators/MenuItemFactory.qml:655
220#: qml/Panel/Indicators/MenuItemFactory.qml:655
225msgid "Downloading"
221msgid "Downloading"
@@ -239,7 +235,7 @@ msgstr "Pabeigts"
239
235
240#: qml/Panel/Indicators/MenuItemFactory.qml:663
236#: qml/Panel/Indicators/MenuItemFactory.qml:663
241msgid "Failed, tap to retry"
237msgid "Failed, tap to retry"
242−msgstr ""
238+msgstr "Neizdevās, spiest lai mēģināt vēlreiz"
243
239
244#: qml/Panel/Indicators/ModemInfoItem.qml:105
240#: qml/Panel/Indicators/ModemInfoItem.qml:105
245msgid "Unlock SIM"
241msgid "Unlock SIM"
@@ -247,50 +243,66 @@ msgstr "Atbloķēt SIM"
247
243
248#: qml/Panel/Indicators/RoamingIndication.qml:27
244#: qml/Panel/Indicators/RoamingIndication.qml:27
249msgid "Roaming"
245msgid "Roaming"
250−msgstr ""
246+msgstr "Viesabonēšana"
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268−msgstr ""
263+msgstr "Ievadiet jūsu %1"
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284−msgstr ""
280+msgstr "Šīs būs jūs pēdējais mēģinājums."
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
296msgstr ""
292msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-11-23 11:44+0000\n"
11"PO-Revision-Date: 2013-11-23 11:44+0000\n"
12"Last-Translator: ST Alfas <Unknown>\n"
12"Last-Translator: ST Alfas <Unknown>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -94,19 +94,19 @@ msgid ""
94"phone<br><br>Tap on the screen to start"
94"phone<br><br>Tap on the screen to start"
95msgstr ""
95msgstr ""
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
98+msgid "Please wait"
99msgstr ""
99msgstr ""
100
100
101−#: qml/Components/Lockscreen.qml:163
101+#: qml/Components/Lockscreen.qml:172
102−msgid "Please wait"
102+msgid "Too many incorrect attempts"
103msgstr ""
103msgstr ""
104
104
105−#: qml/Components/Lockscreen.qml:245
105+#: qml/Components/Lockscreen.qml:206
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "അടിയന്തിര വിളി"
107msgstr "അടിയന്തിര വിളി"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr ""
111msgstr ""
112
112
@@ -119,23 +119,15 @@ msgstr "ഹലോ %1"
119msgid "Hello"
119msgid "Hello"
120msgstr "ഹലോ"
120msgstr "ഹലോ"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr ""
124msgstr ""
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr ""
128msgstr ""
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "തിരയുക"
132msgstr "തിരയുക"
141
133
@@ -203,12 +195,16 @@ msgstr "ഇപ്പോള്‍ സംസാരിക്കുക..."
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "സംസാരിക്കുന്നു..."
196msgstr "സംസാരിക്കുന്നു..."
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "രഹസ്യവാക്ക് കാണിക്കുക"
200msgstr "രഹസ്യവാക്ക് കാണിക്കുക"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
212msgstr ""
208msgstr ""
213
209
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
@@ -251,47 +247,47 @@ msgstr ""
251msgid "Roaming"
247msgid "Roaming"
252msgstr ""
248msgstr ""
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256msgstr ""
252msgstr ""
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260msgstr ""
256msgstr ""
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
263−#, qt-format
264−msgid "Enter your %1"
259+msgid "Enter your PIN"
265msgstr ""
260msgstr ""
266
261
267−#: qml/Shell.qml:270
262+#: qml/Shell.qml:273
268#, qt-format
263#, qt-format
269−msgid "Incorrect %1"
264+msgid "Enter your %1"
270msgstr ""
265msgstr ""
271
266
272−#: qml/Shell.qml:272
267+#: qml/Shell.qml:274
273−msgid "Please re-enter"
268+#, qt-format
269+msgid "Sorry, incorrect %1"
274msgstr ""
270msgstr ""
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr ""
274msgstr ""
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr ""
278msgstr ""
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr ""
282msgstr ""
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
292msgstr ""
288msgstr ""
293
289
294−#: qml/Shell.qml:311
290+#: qml/Shell.qml:315
295msgid ""
291msgid ""
296"If passcode is entered incorrectly, your phone will conduct a factory reset "
292"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"and all personal data will be deleted."
293"and all personal data will be deleted."
po/mr.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-14 19:54+0000\n"
11"PO-Revision-Date: 2014-01-14 19:54+0000\n"
12"Last-Translator: Rohan Deshmukh <Unknown>\n"
12"Last-Translator: Rohan Deshmukh <Unknown>\n"
13"Language-Team: Marathi <mr@li.org>\n"
13"Language-Team: Marathi <mr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr ""
130msgstr ""
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/ms.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-17 09:05+0000\n"
11"PO-Revision-Date: 2014-01-17 09:05+0000\n"
12"Last-Translator: abuyop <Unknown>\n"
12"Last-Translator: abuyop <Unknown>\n"
13"Language-Team: Malay <ms@li.org>\n"
13"Language-Team: Malay <ms@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "panggilan Kecemasan"
105msgstr "panggilan Kecemasan"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr "Hai %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "Hello"
118msgstr "Hello"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Gelintar"
130msgstr "Gelintar"
139
131
@@ -201,12 +193,16 @@ msgstr "Cakap Sekarang..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "Bercakap..."
194msgstr "Bercakap..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "Tunjuk kata laluan"
198msgstr "Tunjuk kata laluan"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/my.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-12-12 11:12+0000\n"
11"PO-Revision-Date: 2013-12-12 11:12+0000\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
13"Language-Team: Burmese <my@li.org>\n"
13"Language-Team: Burmese <my@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "အရေးပေါ်ခေါ်မည်"
105msgstr "အရေးပေါ်ခေါ်မည်"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr "ဟဲလို %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "ဟဲလို"
118msgstr "ဟဲလို"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "ရှာဖွေ"
130msgstr "ရှာဖွေ"
139
131
@@ -201,12 +193,16 @@ msgstr "ယခုပြောပါ"
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "ပြောနေသည်"
194msgstr "ပြောနေသည်"
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "စကားဝှက်ကိုပြ"
198msgstr "စကားဝှက်ကိုပြ"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/nb.po+60−42
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-14 16:56+0000\n"
11"PO-Revision-Date: 2014-08-14 16:56+0000\n"
12"Last-Translator: Åka Sikrom <Unknown>\n"
12"Last-Translator: Åka Sikrom <Unknown>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
94"Du har nå mestret kantbevegelsene, og er klar til å bruke "
94"Du har nå mestret kantbevegelsene, og er klar til å bruke "
95"telefonen<br><br>Trykk på skjermen for å begynne"
95"telefonen<br><br>Trykk på skjermen for å begynne"
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
99−msgstr "Du har tastet feil for mange ganger"
100−
101−#: qml/Components/Lockscreen.qml:163
102msgid "Please wait"
98msgid "Please wait"
103msgstr "Vent litt"
99msgstr "Vent litt"
104
100
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
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "Nødanrop"
107msgstr "Nødanrop"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "OK"
111msgstr "OK"
112
112
@@ -119,23 +119,15 @@ msgstr "Hei, %1"
119msgid "Hello"
119msgid "Hello"
120msgstr "Hei"
120msgstr "Hei"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "Vis mindre"
124msgstr "Vis mindre"
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "Vis alt"
128msgstr "Vis alt"
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "Søk"
132msgstr "Søk"
141
133
@@ -203,13 +195,17 @@ msgstr "Snakk nå …"
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "Snakker …"
196msgstr "Snakker …"
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "Vis passord"
200msgstr "Vis passord"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212−msgstr "Skriv inn PIN-koden til SIM-kortet"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213
209
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
@@ -251,41 +247,41 @@ msgstr "Lås opp SIM"
251msgid "Roaming"
247msgid "Roaming"
252msgstr "Fremmednett"
248msgstr "Fremmednett"
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256−msgstr "passordfrase"
252+msgstr ""
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260−msgstr "kode"
256+msgstr ""
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr ""
261+
262+#: qml/Shell.qml:273
263#, qt-format
263#, qt-format
264msgid "Enter your %1"
264msgid "Enter your %1"
265msgstr "Skriv inn %1"
265msgstr "Skriv inn %1"
266
266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268#, qt-format
268#, qt-format
269−msgid "Incorrect %1"
269+msgid "Sorry, incorrect %1"
270−msgstr "Feil %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "Prøv på nytt"
270+msgstr ""
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr "Feil passordfrase."
274msgstr "Feil passordfrase."
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr "Feil kode."
278msgstr "Feil kode."
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr "Dette er ditt siste forsøk."
282msgstr "Dette er ditt siste forsøk."
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293"Hvis du skriver feil passordfrase en gang til, tilbakestilles telefonen til "
289"Hvis du skriver feil passordfrase en gang til, tilbakestilles telefonen til "
294"fabrikkinnstillinger, og alle personlige data slettes."
290"fabrikkinnstillinger, og alle personlige data slettes."
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
301"Hvis du skriver feil kode en gang til, tilbakestilles telefonen til "
297"Hvis du skriver feil kode en gang til, tilbakestilles telefonen til "
302"fabrikkinnstillinger, og alle personlige data slettes."
298"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-14 19:08+0000\n"
11+"PO-Revision-Date: 2014-08-26 19:39+0000\n"
12"Last-Translator: rob <linuxned@gmail.com>\n"
12"Last-Translator: rob <linuxned@gmail.com>\n"
13"Language-Team: Dutch <nl@li.org>\n"
13"Language-Team: Dutch <nl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
94"Nu u de bewegingen vanuit de randen onder de knie heeft, kunt u beginnen met "
94"Nu u de bewegingen vanuit de randen onder de knie heeft, kunt u beginnen met "
95"het gebruiken van de telefoon<br><br>Tik op het scherm om te beginnen"
95"het gebruiken van de telefoon<br><br>Tik op het scherm om te beginnen"
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
99−msgstr "Te veel mislukte pogingen"
100−
101−#: qml/Components/Lockscreen.qml:163
102msgid "Please wait"
98msgid "Please wait"
103msgstr "Even geduld a.u.b."
99msgstr "Even geduld a.u.b."
104
100
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
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "Noodoproep"
107msgstr "Noodoproep"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "Ok"
111msgstr "Ok"
112
112
@@ -119,23 +119,15 @@ msgstr "Hallo %1"
119msgid "Hello"
119msgid "Hello"
120msgstr "Hallo"
120msgstr "Hallo"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "Minder zien"
124msgstr "Minder zien"
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "Alles zien"
128msgstr "Alles zien"
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "Zoeken"
132msgstr "Zoeken"
141
133
@@ -203,14 +195,18 @@ msgstr "Nu inspreken…"
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "Inspreken…"
196msgstr "Inspreken…"
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "Wachtwoord tonen"
200msgstr "Wachtwoord tonen"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212msgstr "Voer SIM-pincode in"
204msgstr "Voer SIM-pincode in"
213
205
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr "Sorry, onjuiste pincode"
209+
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
216msgstr "Tik om terug te keren naar gesprek…"
212msgstr "Tik om terug te keren naar gesprek…"
@@ -251,41 +247,41 @@ msgstr "SIM-kaart deblokkeren"
251msgid "Roaming"
247msgid "Roaming"
252msgstr "Roaming"
248msgstr "Roaming"
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256−msgstr "wachtwoordzin"
252+msgstr "Voer uw wachtwoordzin in"
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260−msgstr "toegangscode"
256+msgstr "Sorry, onjuiste wachtwoordzin"
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
259+msgid "Enter your PIN"
260+msgstr "Voer uw pincode in"
261+
262+#: qml/Shell.qml:273
263#, qt-format
263#, qt-format
264msgid "Enter your %1"
264msgid "Enter your %1"
265msgstr "Voer uw %1 in"
265msgstr "Voer uw %1 in"
266
266
267−#: qml/Shell.qml:270
267+#: qml/Shell.qml:274
268#, qt-format
268#, qt-format
269−msgid "Incorrect %1"
269+msgid "Sorry, incorrect %1"
270−msgstr "%1 onjuist"
270+msgstr "Sorry, onjuiste %1"
271−
272−#: qml/Shell.qml:272
273−msgid "Please re-enter"
274−msgstr "A.u.b. opnieuw invoeren"
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr "Sorry, onjuiste wachtwoordzin."
274msgstr "Sorry, onjuiste wachtwoordzin."
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr "Sorry, onjuiste toegangscode."
278msgstr "Sorry, onjuiste toegangscode."
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr "Dit zal uw laatste poging worden."
282msgstr "Dit zal uw laatste poging worden."
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
@@ -293,10 +289,32 @@ msgstr ""
293"Wanneer de wachtwoordzin nu opnieuw onjuist wordt ingevoerd, zal uw telefoon "
289"Wanneer de wachtwoordzin nu opnieuw onjuist wordt ingevoerd, zal uw telefoon "
294"teruggaan naar de fabrieksinstellingen en zal al uw eigen data verloren gaan."
290"teruggaan naar de fabrieksinstellingen en zal al uw eigen data verloren gaan."
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
301"Wanneer de toegangscode nu opnieuw onjuist wordt ingevoerd, zal uw telefoon "
297"Wanneer de toegangscode nu opnieuw onjuist wordt ingevoerd, zal uw telefoon "
302"teruggaan naar de fabrieksinstellingen en zal al uw eigen data verloren gaan."
298"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-18 20:25+0000\n"
11"PO-Revision-Date: 2014-08-18 20:25+0000\n"
12"Last-Translator: Paweł Stroka <pawstr@gmail.com>\n"
12"Last-Translator: Paweł Stroka <pawstr@gmail.com>\n"
13"Language-Team: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-19 06:59+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -96,48 +96,40 @@ msgstr ""
96"Wydawanie poleceń krawędzi zostało opanowane. Urządzenie gotowe do "
96"Wydawanie poleceń krawędzi zostało opanowane. Urządzenie gotowe do "
97"pracy.<br><br>Dotknij ekranu by rozpocząć"
97"pracy.<br><br>Dotknij ekranu by rozpocząć"
98
98
99−#: qml/Components/Lockscreen.qml:161
99+#: qml/Components/Lockscreen.qml:167
100−msgid "Too many incorrect attempts"
100+msgid "Please wait"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:163
103+#: qml/Components/Lockscreen.qml:172
104−msgid "Please wait"
104+msgid "Too many incorrect attempts"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:220
107+#: qml/Components/Lockscreen.qml:206
108msgid "Emergency Call"
108msgid "Emergency Call"
109msgstr "Telefon ratunkowy"
109msgstr "Telefon ratunkowy"
110
110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112msgid "OK"
112msgid "OK"
113msgstr "OK"
113msgstr "OK"
114
114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116#, qt-format
116#, qt-format
117msgid "Hello %1"
117msgid "Hello %1"
118msgstr "Witaj %1"
118msgstr "Witaj %1"
119
119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121msgid "Hello"
121msgid "Hello"
122msgstr "Witaj"
122msgstr "Witaj"
123
123
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
133msgid "See less"
125msgid "See less"
134msgstr "Zobacz mniej"
126msgstr "Zobacz mniej"
135
127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137msgid "See all"
129msgid "See all"
138msgstr "Zobacz wszystko"
130msgstr "Zobacz wszystko"
139
131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141msgid "Search"
133msgid "Search"
142msgstr "Szukaj"
134msgstr "Szukaj"
143
135
@@ -161,15 +153,15 @@ msgstr "Dodaj recenzję"
161msgid "Send"
153msgid "Send"
162msgstr "Wyślij"
154msgstr "Wyślij"
163
155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165msgid "Manage Dash"
157msgid "Manage Dash"
166msgstr ""
158msgstr ""
167
159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169msgid "Done"
161msgid "Done"
170msgstr ""
162msgstr ""
171
163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173msgid "Store"
165msgid "Store"
174msgstr ""
166msgstr ""
175
167
@@ -205,13 +197,17 @@ msgstr "Mów teraz..."
205msgid "Speaking..."
197msgid "Speaking..."
206msgstr "Rozpoznanie..."
198msgstr "Rozpoznanie..."
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209msgid "Show password"
201msgid "Show password"
210msgstr "Wyświetl hasło"
202msgstr "Wyświetl hasło"
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
213−msgid "Please enter SIM PIN"
205+msgid "Enter SIM PIN"
214−msgstr "Wprowadź kod PIN karty SIM"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215
211
216#: qml/Panel/ActiveCallHint.qml:77
212#: qml/Panel/ActiveCallHint.qml:77
217msgid "Tap to return to call..."
213msgid "Tap to return to call..."
@@ -253,48 +249,66 @@ msgstr ""
253msgid "Roaming"
249msgid "Roaming"
254msgstr ""
250msgstr ""
255
251
256−#: qml/Shell.qml:267
252+#: qml/Shell.qml:266
257−msgid "passphrase"
253+msgid "Enter your passphrase"
258−msgstr "hasło"
254+msgstr ""
259
255
260#: qml/Shell.qml:267
256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262−msgstr "kod"
258+msgstr ""
263
259
264#: qml/Shell.qml:269
260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr ""
263+
264+#: qml/Shell.qml:273
265#, qt-format
265#, qt-format
266msgid "Enter your %1"
266msgid "Enter your %1"
267msgstr ""
267msgstr ""
268
268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270#, qt-format
270#, qt-format
271−msgid "Incorrect %1"
271+msgid "Sorry, incorrect %1"
272msgstr ""
272msgstr ""
273
273
274−#: qml/Shell.qml:272
274+#: qml/Shell.qml:310
275−msgid "Please re-enter"
276−msgstr "Proszę wprowadzić ponownie"
277−
278−#: qml/Shell.qml:306
279msgid "Sorry, incorrect passphrase."
275msgid "Sorry, incorrect passphrase."
280msgstr "Niestety, błędne hasło"
276msgstr "Niestety, błędne hasło"
281
277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283msgid "Sorry, incorrect passcode."
279msgid "Sorry, incorrect passcode."
284msgstr "Niestety, błędny kod"
280msgstr "Niestety, błędny kod"
285
281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287msgid "This will be your last attempt."
283msgid "This will be your last attempt."
288msgstr ""
284msgstr ""
289
285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291msgid ""
287msgid ""
292"If passphrase is entered incorrectly, your phone will conduct a factory "
288"If passphrase is entered incorrectly, your phone will conduct a factory "
293"reset and all personal data will be deleted."
289"reset and all personal data will be deleted."
294msgstr ""
290msgstr ""
295
291
296−#: qml/Shell.qml:311
292+#: qml/Shell.qml:315
297msgid ""
293msgid ""
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"and all personal data will be deleted."
295"and all personal data will be deleted."
300msgstr ""
296msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-17 20:27+0000\n"
11+"PO-Revision-Date: 2014-08-25 16:51+0000\n"
12"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
12"Last-Translator: Ivo Xavier <ivofernandes12@gmail.com>\n"
13"Language-Team: Portuguese <pt@li.org>\n"
13"Language-Team: Portuguese <pt@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-26 07:47+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -95,19 +95,19 @@ msgstr ""
95"Já domina os gestos dos limites e pode começar a usar o "
95"Já domina os gestos dos limites e pode começar a usar o "
96"telefone<br><br>Toque no ecrã para começar"
96"telefone<br><br>Toque no ecrã para começar"
97
97
98−#: qml/Components/Lockscreen.qml:161
98+#: qml/Components/Lockscreen.qml:167
99−msgid "Too many incorrect attempts"
100−msgstr "Demasiadas tentativas incorrectas"
101−
102−#: qml/Components/Lockscreen.qml:163
103msgid "Please wait"
99msgid "Please wait"
104msgstr "Por favor aguarde"
100msgstr "Por favor aguarde"
105
101
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
107msgid "Emergency Call"
107msgid "Emergency Call"
108msgstr "Chamada de emergência"
108msgstr "Chamada de emergência"
109
109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111msgid "OK"
111msgid "OK"
112msgstr "OK"
112msgstr "OK"
113
113
@@ -120,23 +120,15 @@ msgstr "Olá %1"
120msgid "Hello"
120msgid "Hello"
121msgstr "Olá"
121msgstr "Olá"
122
122
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
132msgid "See less"
124msgid "See less"
133msgstr "Ver menos"
125msgstr "Ver menos"
134
126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136msgid "See all"
128msgid "See all"
137msgstr "Ver todos"
129msgstr "Ver todos"
138
130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140msgid "Search"
132msgid "Search"
141msgstr "Procurar"
133msgstr "Procurar"
142
134
@@ -204,13 +196,17 @@ msgstr "Fale agora..."
204msgid "Speaking..."
196msgid "Speaking..."
205msgstr "A falar..."
197msgstr "A falar..."
206
198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208msgid "Show password"
200msgid "Show password"
209msgstr "Mostrar palavra-passe"
201msgstr "Mostrar palavra-passe"
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
212−msgid "Please enter SIM PIN"
204+msgid "Enter SIM PIN"
213−msgstr "Por favor insira o 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"
214
210
215#: qml/Panel/ActiveCallHint.qml:77
211#: qml/Panel/ActiveCallHint.qml:77
216msgid "Tap to return to call..."
212msgid "Tap to return to call..."
@@ -252,41 +248,41 @@ msgstr "Desbloquear SIM"
252msgid "Roaming"
248msgid "Roaming"
253msgstr "Roaming"
249msgstr "Roaming"
254
250
255−#: qml/Shell.qml:267
251+#: qml/Shell.qml:266
256−msgid "passphrase"
252+msgid "Enter your passphrase"
257−msgstr "frase de acesso"
253+msgstr "Introduza a sua frase-senha"
258
254
259#: qml/Shell.qml:267
255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261−msgstr ""
257+msgstr "Desculpe, frase-senha incorreta"
262
258
263#: qml/Shell.qml:269
259#: qml/Shell.qml:269
260+msgid "Enter your PIN"
261+msgstr "Introduza o seu PIN"
262+
263+#: qml/Shell.qml:273
264#, qt-format
264#, qt-format
265msgid "Enter your %1"
265msgid "Enter your %1"
266msgstr "Introduza o seu %1"
266msgstr "Introduza o seu %1"
267
267
268−#: qml/Shell.qml:270
268+#: qml/Shell.qml:274
269#, qt-format
269#, qt-format
270−msgid "Incorrect %1"
270+msgid "Sorry, incorrect %1"
271−msgstr "Incorreto %1"
271+msgstr "Desculpe, incorreto %1"
272−
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
275−msgstr "Por favor, volte a reintroduzir"
276
272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278msgid "Sorry, incorrect passphrase."
274msgid "Sorry, incorrect passphrase."
279msgstr "Desculpe, frase de acesso incorreta."
275msgstr "Desculpe, frase de acesso incorreta."
280
276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282msgid "Sorry, incorrect passcode."
278msgid "Sorry, incorrect passcode."
283−msgstr ""
279+msgstr "Desculpe, senha incorreta."
284
280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286msgid "This will be your last attempt."
282msgid "This will be your last attempt."
287msgstr "Esta será a sua última tentativa."
283msgstr "Esta será a sua última tentativa."
288
284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290msgid ""
286msgid ""
291"If passphrase is entered incorrectly, your phone will conduct a factory "
287"If passphrase is entered incorrectly, your phone will conduct a factory "
292"reset and all personal data will be deleted."
288"reset and all personal data will be deleted."
@@ -294,8 +290,29 @@ msgstr ""
294"Se a frase de acesso for introduzida incorretamente, o seu telemóvel vai "
290"Se a frase de acesso for introduzida incorretamente, o seu telemóvel vai "
295"proceder ao restauro de fábrica e apagará toda a sua informação pessoal."
291"proceder ao restauro de fábrica e apagará toda a sua informação pessoal."
296
292
297−#: qml/Shell.qml:311
293+#: qml/Shell.qml:315
298msgid ""
294msgid ""
299"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"If passcode is entered incorrectly, your phone will conduct a factory reset "
300"and all personal data will be deleted."
296"and all personal data will be deleted."
301msgstr ""
297msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-18 14:14+0000\n"
11"PO-Revision-Date: 2014-08-18 14:14+0000\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-19 06:59+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -96,48 +96,40 @@ msgstr ""
96"Agora você já domina os gestos das bordas e pode começar a usar o "
96"Agora você já domina os gestos das bordas e pode começar a usar o "
97"telefone<br><br>Toque na tela para iniciar"
97"telefone<br><br>Toque na tela para iniciar"
98
98
99−#: qml/Components/Lockscreen.qml:161
99+#: qml/Components/Lockscreen.qml:167
100−msgid "Too many incorrect attempts"
101−msgstr "Muitas tentativas incorretas"
102−
103−#: qml/Components/Lockscreen.qml:163
104msgid "Please wait"
100msgid "Please wait"
105msgstr "Por favor, aguarde"
101msgstr "Por favor, aguarde"
106
102
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
108msgid "Emergency Call"
108msgid "Emergency Call"
109msgstr "Chamada de emergência"
109msgstr "Chamada de emergência"
110
110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112msgid "OK"
112msgid "OK"
113msgstr "OK"
113msgstr "OK"
114
114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116#, qt-format
116#, qt-format
117msgid "Hello %1"
117msgid "Hello %1"
118msgstr "Olá %1"
118msgstr "Olá %1"
119
119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121msgid "Hello"
121msgid "Hello"
122msgstr "Olá"
122msgstr "Olá"
123
123
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
133msgid "See less"
125msgid "See less"
134msgstr "Ver menos"
126msgstr "Ver menos"
135
127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137msgid "See all"
129msgid "See all"
138msgstr "Ver todos"
130msgstr "Ver todos"
139
131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141msgid "Search"
133msgid "Search"
142msgstr "Pesquisar"
134msgstr "Pesquisar"
143
135
@@ -161,15 +153,15 @@ msgstr "Adicionar uma análise"
161msgid "Send"
153msgid "Send"
162msgstr "Enviar"
154msgstr "Enviar"
163
155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165msgid "Manage Dash"
157msgid "Manage Dash"
166msgstr "Gerencia painel"
158msgstr "Gerencia painel"
167
159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169msgid "Done"
161msgid "Done"
170msgstr "Concluído"
162msgstr "Concluído"
171
163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173msgid "Store"
165msgid "Store"
174msgstr "Loja"
166msgstr "Loja"
175
167
@@ -205,13 +197,17 @@ msgstr "Fale agora..."
205msgid "Speaking..."
197msgid "Speaking..."
206msgstr "Falando..."
198msgstr "Falando..."
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209msgid "Show password"
201msgid "Show password"
210msgstr "Exibir senha"
202msgstr "Exibir senha"
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
213−msgid "Please enter SIM PIN"
205+msgid "Enter SIM PIN"
214−msgstr "Por favor, digite o PIN do cartão SIM"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215
211
216#: qml/Panel/ActiveCallHint.qml:77
212#: qml/Panel/ActiveCallHint.qml:77
217msgid "Tap to return to call..."
213msgid "Tap to return to call..."
@@ -253,41 +249,41 @@ msgstr "Desbloquear SIM"
253msgid "Roaming"
249msgid "Roaming"
254msgstr "Roaming"
250msgstr "Roaming"
255
251
256−#: qml/Shell.qml:267
252+#: qml/Shell.qml:266
257−msgid "passphrase"
253+msgid "Enter your passphrase"
258−msgstr "senha"
254+msgstr ""
259
255
260#: qml/Shell.qml:267
256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262−msgstr "código de acesso"
258+msgstr ""
263
259
264#: qml/Shell.qml:269
260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr ""
263+
264+#: qml/Shell.qml:273
265#, qt-format
265#, qt-format
266msgid "Enter your %1"
266msgid "Enter your %1"
267msgstr "Digite o seu %1"
267msgstr "Digite o seu %1"
268
268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270#, qt-format
270#, qt-format
271−msgid "Incorrect %1"
271+msgid "Sorry, incorrect %1"
272−msgstr "%1 incorreto"
272+msgstr ""
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Por favor, digite novamente"
277
273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279msgid "Sorry, incorrect passphrase."
275msgid "Sorry, incorrect passphrase."
280msgstr "Desculpe, senha incorreta."
276msgstr "Desculpe, senha incorreta."
281
277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283msgid "Sorry, incorrect passcode."
279msgid "Sorry, incorrect passcode."
284msgstr "Desculpe, código de acesso incorreto."
280msgstr "Desculpe, código de acesso incorreto."
285
281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287msgid "This will be your last attempt."
283msgid "This will be your last attempt."
288msgstr "Esta será a sua última tentativa."
284msgstr "Esta será a sua última tentativa."
289
285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291msgid ""
287msgid ""
292"If passphrase is entered incorrectly, your phone will conduct a factory "
288"If passphrase is entered incorrectly, your phone will conduct a factory "
293"reset and all personal data will be deleted."
289"reset and all personal data will be deleted."
@@ -295,10 +291,32 @@ msgstr ""
295"Se a senha for digitada incorretamente, o telefone será restaurado aos "
291"Se a senha for digitada incorretamente, o telefone será restaurado aos "
296"padrões de fábrica e todos os dados pessoais serão apagados."
292"padrões de fábrica e todos os dados pessoais serão apagados."
297
293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299msgid ""
295msgid ""
300"If passcode is entered incorrectly, your phone will conduct a factory reset "
296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301"and all personal data will be deleted."
297"and all personal data will be deleted."
302msgstr ""
298msgstr ""
303"Se o código de acesso for digitado incorretamente, o telefone será "
299"Se o código de acesso for digitado incorretamente, o telefone será "
304"restaurado aos padrões de fábrica e todos os dados pessoais serão apagados."
300"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-14 19:34+0000\n"
11+"PO-Revision-Date: 2014-08-26 18:53+0000\n"
12−"Last-Translator: Marian Vasile <marianvasile1972@gmail.com>\n"
12+"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n"
13"Language-Team: Romanian <ro@li.org>\n"
13"Language-Team: Romanian <ro@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -97,19 +97,19 @@ msgstr ""
97"De acum stăpâniți gesturile de control și puteți începe să utilizați "
97"De acum stăpâniți gesturile de control și puteți începe să utilizați "
98"telefonul<br><br>Atingeți ecranul pentru a începe"
98"telefonul<br><br>Atingeți ecranul pentru a începe"
99
99
100−#: qml/Components/Lockscreen.qml:161
100+#: qml/Components/Lockscreen.qml:167
101−msgid "Too many incorrect attempts"
102−msgstr "Prea multe încercări greșite"
103−
104−#: qml/Components/Lockscreen.qml:163
105msgid "Please wait"
101msgid "Please wait"
106msgstr "Așteptați"
102msgstr "Așteptați"
107
103
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
109msgid "Emergency Call"
109msgid "Emergency Call"
110msgstr "Apel de urgență"
110msgstr "Apel de urgență"
111
111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113msgid "OK"
113msgid "OK"
114msgstr "În regulă"
114msgstr "În regulă"
115
115
@@ -122,23 +122,15 @@ msgstr "Salutări %1"
122msgid "Hello"
122msgid "Hello"
123msgstr "Salutări"
123msgstr "Salutări"
124
124
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
134msgid "See less"
126msgid "See less"
135msgstr "Afișează mai puține"
127msgstr "Afișează mai puține"
136
128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138msgid "See all"
130msgid "See all"
139msgstr "Afișează tot"
131msgstr "Afișează tot"
140
132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142msgid "Search"
134msgid "Search"
143msgstr "Căutare"
135msgstr "Căutare"
144
136
@@ -206,13 +198,17 @@ msgstr "Vorbiți acum..."
206msgid "Speaking..."
198msgid "Speaking..."
207msgstr "Vorbire..."
199msgstr "Vorbire..."
208
200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210msgid "Show password"
202msgid "Show password"
211msgstr "Arată parola"
203msgstr "Arată parola"
212
204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
214−msgid "Please enter SIM PIN"
206+msgid "Enter SIM PIN"
215−msgstr "Introduceți PIN pentru SIM"
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 ""
216
212
217#: qml/Panel/ActiveCallHint.qml:77
213#: qml/Panel/ActiveCallHint.qml:77
218msgid "Tap to return to call..."
214msgid "Tap to return to call..."
@@ -254,41 +250,41 @@ msgstr "Deblocare SIM"
254msgid "Roaming"
250msgid "Roaming"
255msgstr "Roaming"
251msgstr "Roaming"
256
252
257−#: qml/Shell.qml:267
253+#: qml/Shell.qml:266
258−msgid "passphrase"
254+msgid "Enter your passphrase"
259−msgstr "frază parolă"
255+msgstr "Introduceți fraza dumneavoastră secretă"
260
256
261#: qml/Shell.qml:267
257#: qml/Shell.qml:267
262−msgid "passcode"
258+msgid "Sorry, incorrect passphrase"
263−msgstr "parolă"
259+msgstr ""
264
260
265#: qml/Shell.qml:269
261#: qml/Shell.qml:269
262+msgid "Enter your PIN"
263+msgstr ""
264+
265+#: qml/Shell.qml:273
266#, qt-format
266#, qt-format
267msgid "Enter your %1"
267msgid "Enter your %1"
268msgstr "Introduceți %1"
268msgstr "Introduceți %1"
269
269
270−#: qml/Shell.qml:270
270+#: qml/Shell.qml:274
271#, qt-format
271#, qt-format
272−msgid "Incorrect %1"
272+msgid "Sorry, incorrect %1"
273−msgstr "%1 greșit"
273+msgstr ""
274−
275−#: qml/Shell.qml:272
276−msgid "Please re-enter"
277−msgstr "Vă rugăm să încercați din nou"
278
274
279−#: qml/Shell.qml:306
275+#: qml/Shell.qml:310
280msgid "Sorry, incorrect passphrase."
276msgid "Sorry, incorrect passphrase."
281msgstr "Frază parolă greșită"
277msgstr "Frază parolă greșită"
282
278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284msgid "Sorry, incorrect passcode."
280msgid "Sorry, incorrect passcode."
285msgstr "Parolă greșită"
281msgstr "Parolă greșită"
286
282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288msgid "This will be your last attempt."
284msgid "This will be your last attempt."
289msgstr "Aceasta va fi ultima încercare"
285msgstr "Aceasta va fi ultima încercare"
290
286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292msgid ""
288msgid ""
293"If passphrase is entered incorrectly, your phone will conduct a factory "
289"If passphrase is entered incorrectly, your phone will conduct a factory "
294"reset and all personal data will be deleted."
290"reset and all personal data will be deleted."
@@ -297,7 +293,7 @@ msgstr ""
297"configurările inițiale, ale fabricantului, iar toate datele personale vor fi "
293"configurările inițiale, ale fabricantului, iar toate datele personale vor fi "
298"șterse."
294"șterse."
299
295
300−#: qml/Shell.qml:311
296+#: qml/Shell.qml:315
301msgid ""
297msgid ""
302"If passcode is entered incorrectly, your phone will conduct a factory reset "
298"If passcode is entered incorrectly, your phone will conduct a factory reset "
303"and all personal data will be deleted."
299"and all personal data will be deleted."
@@ -305,3 +301,25 @@ msgstr ""
305"Dacă parola este introdusă greșit, telefonul va iniția o resetare la "
301"Dacă parola este introdusă greșit, telefonul va iniția o resetare la "
306"configurările inițiale, ale fabricantului, iar toate datele personale vor fi "
302"configurările inițiale, ale fabricantului, iar toate datele personale vor fi "
307"șterse."
303"ș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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-07-31 09:39+0000\n"
11+"PO-Revision-Date: 2014-08-26 10:01+0000\n"
12"Last-Translator: Jay ZDLin <Unknown>\n"
12"Last-Translator: Jay ZDLin <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"
13"Language-Team: Russian <ru@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
22−msgstr ""
22+msgstr "Пароль: "
23
23
24#: plugins/Unity/Launcher/launcheritem.cpp:43
24#: plugins/Unity/Launcher/launcheritem.cpp:43
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -32,19 +32,19 @@ msgstr "Изъять ярлык"
32
32
33#: qml/Components/Dialogs.qml:142
33#: qml/Components/Dialogs.qml:142
34msgid "Are you sure you would like to turn power off?"
34msgid "Are you sure you would like to turn power off?"
35−msgstr ""
35+msgstr "Отключить питание?"
36
36
37#: qml/Components/Dialogs.qml:144
37#: qml/Components/Dialogs.qml:144
38msgid "Power off"
38msgid "Power off"
39−msgstr ""
39+msgstr "Отключить"
40
40
41#: qml/Components/Dialogs.qml:153
41#: qml/Components/Dialogs.qml:153
42msgid "Restart"
42msgid "Restart"
43−msgstr ""
43+msgstr "Перезапустить"
44
44
45#: qml/Components/Dialogs.qml:162
45#: qml/Components/Dialogs.qml:162
46msgid "Cancel"
46msgid "Cancel"
47−msgstr ""
47+msgstr "Отменить"
48
48
49#: qml/Components/EdgeDemoOverlay.qml:151
49#: qml/Components/EdgeDemoOverlay.qml:151
50msgid "Skip intro"
50msgid "Skip intro"
@@ -99,19 +99,19 @@ msgstr ""
99"Вы научились пользоваться Ubuntu и можете начать использовать свой "
99"Вы научились пользоваться Ubuntu и можете начать использовать свой "
100"телефон<br><br>Нажмите на экран"
100"телефон<br><br>Нажмите на экран"
101
101
102−#: qml/Components/Lockscreen.qml:161
102+#: qml/Components/Lockscreen.qml:167
103−msgid "Too many incorrect attempts"
104−msgstr ""
105−
106−#: qml/Components/Lockscreen.qml:163
107msgid "Please wait"
103msgid "Please wait"
108−msgstr ""
104+msgstr "Подождите"
105+
106+#: qml/Components/Lockscreen.qml:172
107+msgid "Too many incorrect attempts"
108+msgstr "Слишком много ошибок ввода"
109
109
110−#: qml/Components/Lockscreen.qml:245
110+#: qml/Components/Lockscreen.qml:206
111msgid "Emergency Call"
111msgid "Emergency Call"
112msgstr "Экстренный вызов"
112msgstr "Экстренный вызов"
113
113
114−#: qml/Components/Lockscreen.qml:268
114+#: qml/Components/Lockscreen.qml:226
115msgid "OK"
115msgid "OK"
116msgstr "ОК"
116msgstr "ОК"
117
117
@@ -124,23 +124,15 @@ msgstr "Привет, %1"
124msgid "Hello"
124msgid "Hello"
125msgstr "Привет"
125msgstr "Привет"
126
126
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
136msgid "See less"
128msgid "See less"
137msgstr "Вкратце"
129msgstr "Вкратце"
138
130
139−#: qml/Dash/GenericScopeView.qml:360
131+#: qml/Dash/GenericScopeView.qml:361
140msgid "See all"
132msgid "See all"
141msgstr "Показать всё"
133msgstr "Показать всё"
142
134
143−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
135+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
144msgid "Search"
136msgid "Search"
145msgstr "Поиск"
137msgstr "Поиск"
146
138
@@ -170,7 +162,7 @@ msgstr ""
170
162
171#: qml/Dash/ScopesOverview.qml:408
163#: qml/Dash/ScopesOverview.qml:408
172msgid "Done"
164msgid "Done"
173−msgstr ""
165+msgstr "Готово"
174
166
175#: qml/Dash/ScopesOverview.qml:434
167#: qml/Dash/ScopesOverview.qml:434
176msgid "Store"
168msgid "Store"
@@ -178,11 +170,11 @@ msgstr ""
178
170
179#: qml/Dash/ScopesOverviewTab.qml:36
171#: qml/Dash/ScopesOverviewTab.qml:36
180msgid "Favorites"
172msgid "Favorites"
181−msgstr ""
173+msgstr "Избранное"
182
174
183#: qml/Dash/ScopesOverviewTab.qml:54
175#: qml/Dash/ScopesOverviewTab.qml:54
184msgid "All"
176msgid "All"
185−msgstr ""
177+msgstr "Все"
186
178
187#: qml/Greeter/Greeter.qml:157
179#: qml/Greeter/Greeter.qml:157
188msgid "Swipe to unlock"
180msgid "Swipe to unlock"
@@ -208,13 +200,17 @@ msgstr "Говорите..."
208msgid "Speaking..."
200msgid "Speaking..."
209msgstr "Говорите..."
201msgstr "Говорите..."
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:100
203+#: qml/Notifications/NotificationMenuItemFactory.qml:105
212msgid "Show password"
204msgid "Show password"
213msgstr "Показать пароль"
205msgstr "Показать пароль"
214
206
215−#: qml/Notifications/NotificationMenuItemFactory.qml:115
207+#: qml/Notifications/NotificationMenuItemFactory.qml:120
216−msgid "Please enter SIM PIN"
208+msgid "Enter SIM PIN"
217−msgstr "Введите PIN код"
209+msgstr "Введите ПИН-код SIM-карты"
210+
211+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
212+msgid "Sorry, incorrect PIN"
213+msgstr "Введён неверный ПИН-код"
218
214
219#: qml/Panel/ActiveCallHint.qml:77
215#: qml/Panel/ActiveCallHint.qml:77
220msgid "Tap to return to call..."
216msgid "Tap to return to call..."
@@ -250,54 +246,80 @@ msgstr "Сбой, коснитесь для повтора"
250
246
251#: qml/Panel/Indicators/ModemInfoItem.qml:105
247#: qml/Panel/Indicators/ModemInfoItem.qml:105
252msgid "Unlock SIM"
248msgid "Unlock SIM"
253−msgstr ""
249+msgstr "Разблокировать SIM-карту"
254
250
255#: qml/Panel/Indicators/RoamingIndication.qml:27
251#: qml/Panel/Indicators/RoamingIndication.qml:27
256msgid "Roaming"
252msgid "Roaming"
257−msgstr ""
253+msgstr "Роуминг"
258
254
259−#: qml/Shell.qml:267
255+#: qml/Shell.qml:266
260−msgid "passphrase"
256+msgid "Enter your passphrase"
261−msgstr ""
257+msgstr "Введите кодовую фразу"
262
258
263#: qml/Shell.qml:267
259#: qml/Shell.qml:267
264−msgid "passcode"
260+msgid "Sorry, incorrect passphrase"
265−msgstr ""
261+msgstr "Введена неверная кодовая фраза"
266
262
267#: qml/Shell.qml:269
263#: qml/Shell.qml:269
264+msgid "Enter your PIN"
265+msgstr "Введите ПИН-код"
266+
267+#: qml/Shell.qml:273
268#, qt-format
268#, qt-format
269msgid "Enter your %1"
269msgid "Enter your %1"
270−msgstr ""
270+msgstr "Введите %1"
271
271
272−#: qml/Shell.qml:270
272+#: qml/Shell.qml:274
273#, qt-format
273#, qt-format
274−msgid "Incorrect %1"
274+msgid "Sorry, incorrect %1"
275−msgstr ""
275+msgstr "Некорректный ввод %1"
276−
277−#: qml/Shell.qml:272
278−msgid "Please re-enter"
279−msgstr ""
280
276
281−#: qml/Shell.qml:306
277+#: qml/Shell.qml:310
282msgid "Sorry, incorrect passphrase."
278msgid "Sorry, incorrect passphrase."
283−msgstr ""
279+msgstr "Неверная ключевая фраза."
284
280
285−#: qml/Shell.qml:307
281+#: qml/Shell.qml:311
286msgid "Sorry, incorrect passcode."
282msgid "Sorry, incorrect passcode."
287−msgstr ""
283+msgstr "Неверный секретный код."
288
284
289−#: qml/Shell.qml:308
285+#: qml/Shell.qml:312
290msgid "This will be your last attempt."
286msgid "This will be your last attempt."
291−msgstr ""
287+msgstr "Осталась последняя попытка."
292
288
293−#: qml/Shell.qml:310
289+#: qml/Shell.qml:314
294msgid ""
290msgid ""
295"If passphrase is entered incorrectly, your phone will conduct a factory "
291"If passphrase is entered incorrectly, your phone will conduct a factory "
296"reset and all personal data will be deleted."
292"reset and all personal data will be deleted."
297msgstr ""
293msgstr ""
294+"Если ключевая фраза будет введена неверно, то телефон вернётся к заводским "
295+"настройкам, а все личные данные будут удалены."
298
296
299−#: qml/Shell.qml:311
297+#: qml/Shell.qml:315
300msgid ""
298msgid ""
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
299"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"and all personal data will be deleted."
300"and all personal data will be deleted."
303msgstr ""
301msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Shan <shn@li.org>\n"
13"Language-Team: Shan <shn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr ""
130msgstr ""
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/si.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr ""
130msgstr ""
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/sl.po+64−46
@@ -7,14 +7,14 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-19 12:54+0000\n"
11"PO-Revision-Date: 2014-08-19 12:54+0000\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"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"
18"X-Generator: Launchpad (build 17163)\n"
18"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
@@ -96,48 +96,40 @@ msgstr ""
96"Sedaj, ko ste osvojili poteze robov, lahko začnete uporabljati "
96"Sedaj, ko ste osvojili poteze robov, lahko začnete uporabljati "
97"telefon<br><br>Tapnite na zaslon za začetek"
97"telefon<br><br>Tapnite na zaslon za začetek"
98
98
99−#: qml/Components/Lockscreen.qml:161
99+#: qml/Components/Lockscreen.qml:167
100−msgid "Too many incorrect attempts"
101−msgstr "Preveč nepravilnih poskusov"
102−
103−#: qml/Components/Lockscreen.qml:163
104msgid "Please wait"
100msgid "Please wait"
105msgstr "Počakajte"
101msgstr "Počakajte"
106
102
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
108msgid "Emergency Call"
108msgid "Emergency Call"
109msgstr "Klic v sili"
109msgstr "Klic v sili"
110
110
111−#: qml/Components/Lockscreen.qml:243
111+#: qml/Components/Lockscreen.qml:226
112msgid "OK"
112msgid "OK"
113msgstr "V REDU"
113msgstr "V REDU"
114
114
115−#: qml/Components/PassphraseLockscreen.qml:62
115+#: qml/Components/PassphraseLockscreen.qml:61
116#, qt-format
116#, qt-format
117msgid "Hello %1"
117msgid "Hello %1"
118msgstr "Pozdravljeni, %1"
118msgstr "Pozdravljeni, %1"
119
119
120−#: qml/Components/PassphraseLockscreen.qml:62
120+#: qml/Components/PassphraseLockscreen.qml:61
121msgid "Hello"
121msgid "Hello"
122msgstr "Pozdravljeni"
122msgstr "Pozdravljeni"
123
123
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
133msgid "See less"
125msgid "See less"
134msgstr "Pokaži manj"
126msgstr "Pokaži manj"
135
127
136−#: qml/Dash/GenericScopeView.qml:358
128+#: qml/Dash/GenericScopeView.qml:361
137msgid "See all"
129msgid "See all"
138msgstr "Ogled vsega"
130msgstr "Ogled vsega"
139
131
140−#: qml/Panel/SearchIndicator.qml:27
132+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
141msgid "Search"
133msgid "Search"
142msgstr "Iskanje"
134msgstr "Iskanje"
143
135
@@ -161,15 +153,15 @@ msgstr "Dodaj oceno"
161msgid "Send"
153msgid "Send"
162msgstr "Pošlji"
154msgstr "Pošlji"
163
155
164−#: qml/Dash/ScopesOverview.qml:200
156+#: qml/Dash/ScopesOverview.qml:201
165msgid "Manage Dash"
157msgid "Manage Dash"
166msgstr "Upravljaj s pregledno ploščo"
158msgstr "Upravljaj s pregledno ploščo"
167
159
168−#: qml/Dash/ScopesOverview.qml:405
160+#: qml/Dash/ScopesOverview.qml:408
169msgid "Done"
161msgid "Done"
170msgstr "Končano"
162msgstr "Končano"
171
163
172−#: qml/Dash/ScopesOverview.qml:431
164+#: qml/Dash/ScopesOverview.qml:434
173msgid "Store"
165msgid "Store"
174msgstr "Trgovina"
166msgstr "Trgovina"
175
167
@@ -205,13 +197,17 @@ msgstr "Govorite zdaj ..."
205msgid "Speaking..."
197msgid "Speaking..."
206msgstr "Govorjenje ..."
198msgstr "Govorjenje ..."
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:100
200+#: qml/Notifications/NotificationMenuItemFactory.qml:105
209msgid "Show password"
201msgid "Show password"
210msgstr "Pokaži geslo"
202msgstr "Pokaži geslo"
211
203
212−#: qml/Notifications/NotificationMenuItemFactory.qml:115
204+#: qml/Notifications/NotificationMenuItemFactory.qml:120
213−msgid "Please enter SIM PIN"
205+msgid "Enter SIM PIN"
214−msgstr "Vnesite PIN kartice SIM"
206+msgstr ""
207+
208+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
209+msgid "Sorry, incorrect PIN"
210+msgstr ""
215
211
216#: qml/Panel/ActiveCallHint.qml:77
212#: qml/Panel/ActiveCallHint.qml:77
217msgid "Tap to return to call..."
213msgid "Tap to return to call..."
@@ -253,41 +249,41 @@ msgstr "Odkleni SIM"
253msgid "Roaming"
249msgid "Roaming"
254msgstr "Gostovanje"
250msgstr "Gostovanje"
255
251
256−#: qml/Shell.qml:267
252+#: qml/Shell.qml:266
257−msgid "passphrase"
253+msgid "Enter your passphrase"
258−msgstr "šifrirno reklo"
254+msgstr ""
259
255
260#: qml/Shell.qml:267
256#: qml/Shell.qml:267
261−msgid "passcode"
257+msgid "Sorry, incorrect passphrase"
262−msgstr "geslo"
258+msgstr ""
263
259
264#: qml/Shell.qml:269
260#: qml/Shell.qml:269
261+msgid "Enter your PIN"
262+msgstr ""
263+
264+#: qml/Shell.qml:273
265#, qt-format
265#, qt-format
266msgid "Enter your %1"
266msgid "Enter your %1"
267msgstr "Vnesite vaš %1"
267msgstr "Vnesite vaš %1"
268
268
269−#: qml/Shell.qml:270
269+#: qml/Shell.qml:274
270#, qt-format
270#, qt-format
271−msgid "Incorrect %1"
271+msgid "Sorry, incorrect %1"
272−msgstr "Nepravilen %1"
273−
274−#: qml/Shell.qml:272
275−msgid "Please re-enter"
276−msgstr "Ponovno vnesite"
272+msgstr ""
277
273
278−#: qml/Shell.qml:306
274+#: qml/Shell.qml:310
279msgid "Sorry, incorrect passphrase."
275msgid "Sorry, incorrect passphrase."
280msgstr "Nepravilno geslo."
276msgstr "Nepravilno geslo."
281
277
282−#: qml/Shell.qml:307
278+#: qml/Shell.qml:311
283msgid "Sorry, incorrect passcode."
279msgid "Sorry, incorrect passcode."
284msgstr "Nepravilno geslo."
280msgstr "Nepravilno geslo."
285
281
286−#: qml/Shell.qml:308
282+#: qml/Shell.qml:312
287msgid "This will be your last attempt."
283msgid "This will be your last attempt."
288msgstr "To je vaš zadnji poskus"
284msgstr "To je vaš zadnji poskus"
289
285
290−#: qml/Shell.qml:310
286+#: qml/Shell.qml:314
291msgid ""
287msgid ""
292"If passphrase is entered incorrectly, your phone will conduct a factory "
288"If passphrase is entered incorrectly, your phone will conduct a factory "
293"reset and all personal data will be deleted."
289"reset and all personal data will be deleted."
@@ -295,10 +291,32 @@ msgstr ""
295"Če je vneseno nepravilno šifrirno reklo, bo telefon ponastavljen na "
291"Če je vneseno nepravilno šifrirno reklo, bo telefon ponastavljen na "
296"tovarniške nastavitve ter vsi osebni podatki bodo izbrisani."
292"tovarniške nastavitve ter vsi osebni podatki bodo izbrisani."
297
293
298−#: qml/Shell.qml:311
294+#: qml/Shell.qml:315
299msgid ""
295msgid ""
300"If passcode is entered incorrectly, your phone will conduct a factory reset "
296"If passcode is entered incorrectly, your phone will conduct a factory reset "
301"and all personal data will be deleted."
297"and all personal data will be deleted."
302msgstr ""
298msgstr ""
303"Če je vneseno nepravilno geslo, bo telefon ponastavljen na tovarniške "
299"Če je vneseno nepravilno geslo, bo telefon ponastavljen na tovarniške "
304"nastavitve ter vsi osebni podatki bodo izbrisani."
300"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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-15 13:51+0000\n"
11"PO-Revision-Date: 2014-01-15 13:51+0000\n"
12"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
12"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
13"Language-Team: Albanian <sq@li.org>\n"
13"Language-Team: Albanian <sq@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:16+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -93,19 +93,19 @@ msgid ""
93"phone<br><br>Tap on the screen to start"
93"phone<br><br>Tap on the screen to start"
94msgstr ""
94msgstr ""
95
95
96−#: qml/Components/Lockscreen.qml:161
96+#: qml/Components/Lockscreen.qml:167
97−msgid "Too many incorrect attempts"
97+msgid "Please wait"
98msgstr ""
98msgstr ""
99
99
100−#: qml/Components/Lockscreen.qml:163
100+#: qml/Components/Lockscreen.qml:172
101−msgid "Please wait"
101+msgid "Too many incorrect attempts"
102msgstr ""
102msgstr ""
103
103
104−#: qml/Components/Lockscreen.qml:245
104+#: qml/Components/Lockscreen.qml:206
105msgid "Emergency Call"
105msgid "Emergency Call"
106msgstr ""
106msgstr ""
107
107
108−#: qml/Components/Lockscreen.qml:268
108+#: qml/Components/Lockscreen.qml:226
109msgid "OK"
109msgid "OK"
110msgstr ""
110msgstr ""
111
111
@@ -118,23 +118,15 @@ msgstr ""
118msgid "Hello"
118msgid "Hello"
119msgstr ""
119msgstr ""
120
120
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
130msgid "See less"
122msgid "See less"
131msgstr ""
123msgstr ""
132
124
133−#: qml/Dash/GenericScopeView.qml:360
125+#: qml/Dash/GenericScopeView.qml:361
134msgid "See all"
126msgid "See all"
135msgstr ""
127msgstr ""
136
128
137−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
129+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
138msgid "Search"
130msgid "Search"
139msgstr ""
131msgstr ""
140
132
@@ -202,12 +194,16 @@ msgstr ""
202msgid "Speaking..."
194msgid "Speaking..."
203msgstr ""
195msgstr ""
204
196
205−#: qml/Notifications/NotificationMenuItemFactory.qml:100
197+#: qml/Notifications/NotificationMenuItemFactory.qml:105
206msgid "Show password"
198msgid "Show password"
207msgstr ""
199msgstr ""
208
200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:115
201+#: qml/Notifications/NotificationMenuItemFactory.qml:120
210−msgid "Please enter SIM PIN"
202+msgid "Enter SIM PIN"
203+msgstr ""
204+
205+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
206+msgid "Sorry, incorrect PIN"
211msgstr ""
207msgstr ""
212
208
213#: qml/Panel/ActiveCallHint.qml:77
209#: qml/Panel/ActiveCallHint.qml:77
@@ -250,47 +246,47 @@ msgstr ""
250msgid "Roaming"
246msgid "Roaming"
251msgstr ""
247msgstr ""
252
248
253−#: qml/Shell.qml:267
249+#: qml/Shell.qml:266
254−msgid "passphrase"
250+msgid "Enter your passphrase"
255msgstr ""
251msgstr ""
256
252
257#: qml/Shell.qml:267
253#: qml/Shell.qml:267
258−msgid "passcode"
254+msgid "Sorry, incorrect passphrase"
259msgstr ""
255msgstr ""
260
256
261#: qml/Shell.qml:269
257#: qml/Shell.qml:269
262−#, qt-format
263−msgid "Enter your %1"
258+msgid "Enter your PIN"
264msgstr ""
259msgstr ""
265
260
266−#: qml/Shell.qml:270
261+#: qml/Shell.qml:273
267#, qt-format
262#, qt-format
268−msgid "Incorrect %1"
263+msgid "Enter your %1"
269msgstr ""
264msgstr ""
270
265
271−#: qml/Shell.qml:272
266+#: qml/Shell.qml:274
272−msgid "Please re-enter"
267+#, qt-format
268+msgid "Sorry, incorrect %1"
273msgstr ""
269msgstr ""
274
270
275−#: qml/Shell.qml:306
271+#: qml/Shell.qml:310
276msgid "Sorry, incorrect passphrase."
272msgid "Sorry, incorrect passphrase."
277msgstr ""
273msgstr ""
278
274
279−#: qml/Shell.qml:307
275+#: qml/Shell.qml:311
280msgid "Sorry, incorrect passcode."
276msgid "Sorry, incorrect passcode."
281msgstr ""
277msgstr ""
282
278
283−#: qml/Shell.qml:308
279+#: qml/Shell.qml:312
284msgid "This will be your last attempt."
280msgid "This will be your last attempt."
285msgstr ""
281msgstr ""
286
282
287−#: qml/Shell.qml:310
283+#: qml/Shell.qml:314
288msgid ""
284msgid ""
289"If passphrase is entered incorrectly, your phone will conduct a factory "
285"If passphrase is entered incorrectly, your phone will conduct a factory "
290"reset and all personal data will be deleted."
286"reset and all personal data will be deleted."
291msgstr ""
287msgstr ""
292
288
293−#: qml/Shell.qml:311
289+#: qml/Shell.qml:315
294msgid ""
290msgid ""
295"If passcode is entered incorrectly, your phone will conduct a factory reset "
291"If passcode is entered incorrectly, your phone will conduct a factory reset "
296"and all personal data will be deleted."
292"and all personal data will be deleted."
po/sr.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Serbian <sr@li.org>\n"
13"Language-Team: Serbian <sr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Претрага"
130msgstr "Претрага"
139
131
@@ -201,12 +193,16 @@ msgstr "Изговорите сада..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "Говор..."
194msgstr "Говор..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/sv.po+48−39
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-14 18:22+0000\n"
11"PO-Revision-Date: 2014-08-14 18:22+0000\n"
12"Last-Translator: Erik Simmesgård <Unknown>\n"
12"Last-Translator: Erik Simmesgård <Unknown>\n"
13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
13"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19"Language: sv\n"
19"Language: sv\n"
20
20
21#: plugins/LightDM/Greeter.cpp:129
21#: plugins/LightDM/Greeter.cpp:129
@@ -95,19 +95,19 @@ msgstr ""
95"Du har nu bemästrat kantgesterna och kan börja använda "
95"Du har nu bemästrat kantgesterna och kan börja använda "
96"telefonen<br><br>Tryck på skärmen för att starta"
96"telefonen<br><br>Tryck på skärmen för att starta"
97
97
98−#: qml/Components/Lockscreen.qml:161
98+#: qml/Components/Lockscreen.qml:167
99−msgid "Too many incorrect attempts"
100−msgstr ""
101−
102−#: qml/Components/Lockscreen.qml:163
103msgid "Please wait"
99msgid "Please wait"
104msgstr "Var god vänta"
100msgstr "Var god vänta"
105
101
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
107msgid "Emergency Call"
107msgid "Emergency Call"
108msgstr "Nödsamtal"
108msgstr "Nödsamtal"
109
109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111msgid "OK"
111msgid "OK"
112msgstr "Ok"
112msgstr "Ok"
113
113
@@ -120,23 +120,15 @@ msgstr "Hej %1"
120msgid "Hello"
120msgid "Hello"
121msgstr "Hej"
121msgstr "Hej"
122
122
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
132msgid "See less"
124msgid "See less"
133msgstr "Visa mindre"
125msgstr "Visa mindre"
134
126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136msgid "See all"
128msgid "See all"
137msgstr "Visa alla"
129msgstr "Visa alla"
138
130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140msgid "Search"
132msgid "Search"
141msgstr "Sök"
133msgstr "Sök"
142
134
@@ -204,13 +196,17 @@ msgstr "Tala nu…"
204msgid "Speaking..."
196msgid "Speaking..."
205msgstr "Talar…"
197msgstr "Talar…"
206
198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208msgid "Show password"
200msgid "Show password"
209msgstr "Visa lösenord"
201msgstr "Visa lösenord"
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
212−msgid "Please enter SIM PIN"
204+msgid "Enter SIM PIN"
213−msgstr "Ange SIM PIN-kod"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214
210
215#: qml/Panel/ActiveCallHint.qml:77
211#: qml/Panel/ActiveCallHint.qml:77
216msgid "Tap to return to call..."
212msgid "Tap to return to call..."
@@ -252,48 +248,61 @@ msgstr "Lås upp SIM-kort"
252msgid "Roaming"
248msgid "Roaming"
253msgstr "Roaming"
249msgstr "Roaming"
254
250
255−#: qml/Shell.qml:267
251+#: qml/Shell.qml:266
256−msgid "passphrase"
252+msgid "Enter your passphrase"
257msgstr ""
253msgstr ""
258
254
259#: qml/Shell.qml:267
255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261msgstr ""
257msgstr ""
262
258
263#: qml/Shell.qml:269
259#: qml/Shell.qml:269
260+msgid "Enter your PIN"
261+msgstr ""
262+
263+#: qml/Shell.qml:273
264#, qt-format
264#, qt-format
265msgid "Enter your %1"
265msgid "Enter your %1"
266msgstr "Skriv in din %1"
266msgstr "Skriv in din %1"
267
267
268−#: qml/Shell.qml:270
268+#: qml/Shell.qml:274
269#, qt-format
269#, qt-format
270−msgid "Incorrect %1"
270+msgid "Sorry, incorrect %1"
271−msgstr "Inkorrekt %1"
272−
273−#: qml/Shell.qml:272
274−msgid "Please re-enter"
275msgstr ""
271msgstr ""
276
272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278msgid "Sorry, incorrect passphrase."
274msgid "Sorry, incorrect passphrase."
279msgstr ""
275msgstr ""
280
276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282msgid "Sorry, incorrect passcode."
278msgid "Sorry, incorrect passcode."
283msgstr ""
279msgstr ""
284
280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286msgid "This will be your last attempt."
282msgid "This will be your last attempt."
287msgstr ""
283msgstr ""
288
284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290msgid ""
286msgid ""
291"If passphrase is entered incorrectly, your phone will conduct a factory "
287"If passphrase is entered incorrectly, your phone will conduct a factory "
292"reset and all personal data will be deleted."
288"reset and all personal data will be deleted."
293msgstr ""
289msgstr ""
294
290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296msgid ""
292msgid ""
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298"and all personal data will be deleted."
294"and all personal data will be deleted."
299msgstr ""
295msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-14 19:28+0000\n"
11"PO-Revision-Date: 2014-01-14 19:28+0000\n"
12"Last-Translator: Damas <Unknown>\n"
12"Last-Translator: Damas <Unknown>\n"
13"Language-Team: Swahili <sw@li.org>\n"
13"Language-Team: Swahili <sw@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "Tafuta"
130msgstr "Tafuta"
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/ta.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
12"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
12"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19"Language: ta\n"
19"Language: ta\n"
20
20
21#: plugins/LightDM/Greeter.cpp:129
21#: plugins/LightDM/Greeter.cpp:129
@@ -95,19 +95,19 @@ msgid ""
95"phone<br><br>Tap on the screen to start"
95"phone<br><br>Tap on the screen to start"
96msgstr ""
96msgstr ""
97
97
98−#: qml/Components/Lockscreen.qml:161
98+#: qml/Components/Lockscreen.qml:167
99−msgid "Too many incorrect attempts"
99+msgid "Please wait"
100msgstr ""
100msgstr ""
101
101
102−#: qml/Components/Lockscreen.qml:163
102+#: qml/Components/Lockscreen.qml:172
103−msgid "Please wait"
103+msgid "Too many incorrect attempts"
104msgstr ""
104msgstr ""
105
105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107msgid "Emergency Call"
107msgid "Emergency Call"
108msgstr "அவசர அழைப்பு"
108msgstr "அவசர அழைப்பு"
109
109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111msgid "OK"
111msgid "OK"
112msgstr ""
112msgstr ""
113
113
@@ -120,23 +120,15 @@ msgstr "வணக்கம் %1"
120msgid "Hello"
120msgid "Hello"
121msgstr "வணக்கம்"
121msgstr "வணக்கம்"
122
122
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
132msgid "See less"
124msgid "See less"
133msgstr ""
125msgstr ""
134
126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136msgid "See all"
128msgid "See all"
137msgstr ""
129msgstr ""
138
130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140msgid "Search"
132msgid "Search"
141msgstr "தெடு"
133msgstr "தெடு"
142
134
@@ -204,12 +196,16 @@ msgstr "இப்பொது பேசு..."
204msgid "Speaking..."
196msgid "Speaking..."
205msgstr "பேசுகிறது..."
197msgstr "பேசுகிறது..."
206
198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208msgid "Show password"
200msgid "Show password"
209msgstr ""
201msgstr ""
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
212−msgid "Please enter SIM PIN"
204+msgid "Enter SIM PIN"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
213msgstr ""
209msgstr ""
214
210
215#: qml/Panel/ActiveCallHint.qml:77
211#: qml/Panel/ActiveCallHint.qml:77
@@ -252,47 +248,47 @@ msgstr ""
252msgid "Roaming"
248msgid "Roaming"
253msgstr ""
249msgstr ""
254
250
255−#: qml/Shell.qml:267
251+#: qml/Shell.qml:266
256−msgid "passphrase"
252+msgid "Enter your passphrase"
257msgstr ""
253msgstr ""
258
254
259#: qml/Shell.qml:267
255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261msgstr ""
257msgstr ""
262
258
263#: qml/Shell.qml:269
259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266msgstr ""
261msgstr ""
267
262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269#, qt-format
264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271msgstr ""
266msgstr ""
272
267
273−#: qml/Shell.qml:272
268+#: qml/Shell.qml:274
274−msgid "Please re-enter"
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275msgstr ""
271msgstr ""
276
272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278msgid "Sorry, incorrect passphrase."
274msgid "Sorry, incorrect passphrase."
279msgstr ""
275msgstr ""
280
276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282msgid "Sorry, incorrect passcode."
278msgid "Sorry, incorrect passcode."
283msgstr ""
279msgstr ""
284
280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286msgid "This will be your last attempt."
282msgid "This will be your last attempt."
287msgstr ""
283msgstr ""
288
284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290msgid ""
286msgid ""
291"If passphrase is entered incorrectly, your phone will conduct a factory "
287"If passphrase is entered incorrectly, your phone will conduct a factory "
292"reset and all personal data will be deleted."
288"reset and all personal data will be deleted."
293msgstr ""
289msgstr ""
294
290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296msgid ""
292msgid ""
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298"and all personal data will be deleted."
294"and all personal data will be deleted."
po/te.po+43−38
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-07-19 10:04+0000\n"
11"PO-Revision-Date: 2014-07-19 10:04+0000\n"
12"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
12"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
13"Language-Team: Telugu <te@li.org>\n"
13"Language-Team: Telugu <te@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "అత్యవసర పిలుపు"
105msgstr "అత్యవసర పిలుపు"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr "సరే"
109msgstr "సరే"
110
110
@@ -117,23 +117,15 @@ msgstr "హలో %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "హలో"
118msgstr "హలో"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "వెతుకు"
130msgstr "వెతుకు"
139
131
@@ -201,13 +193,17 @@ msgstr "ఇప్పుడు మాట్లాడండి..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "మాట్లాడుతున్నారు..."
194msgstr "మాట్లాడుతున్నారు..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "సంకేతపదాన్ని చూపించు"
198msgstr "సంకేతపదాన్ని చూపించు"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
210−msgstr "దయచేసి సిమ్ పిన్ ఇవ్వండి"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
213msgid "Tap to return to call..."
209msgid "Tap to return to call..."
@@ -249,48 +245,57 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
296msgstr ""
292msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-07-16 17:58+0000\n"
11"PO-Revision-Date: 2014-07-16 17:58+0000\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
13"Language-Team: Turkish <tr@li.org>\n"
13"Language-Team: Turkish <tr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -95,19 +95,19 @@ msgstr ""
95"Kenar haraketlerini öğrendiniz ve telefonu kullanmaya "
95"Kenar haraketlerini öğrendiniz ve telefonu kullanmaya "
96"başlayabilirsiniz<br><br>Başlamak için ekrana dokunun"
96"başlayabilirsiniz<br><br>Başlamak için ekrana dokunun"
97
97
98−#: qml/Components/Lockscreen.qml:161
98+#: qml/Components/Lockscreen.qml:167
99−msgid "Too many incorrect attempts"
99+msgid "Please wait"
100msgstr ""
100msgstr ""
101
101
102−#: qml/Components/Lockscreen.qml:163
102+#: qml/Components/Lockscreen.qml:172
103−msgid "Please wait"
103+msgid "Too many incorrect attempts"
104msgstr ""
104msgstr ""
105
105
106−#: qml/Components/Lockscreen.qml:245
106+#: qml/Components/Lockscreen.qml:206
107msgid "Emergency Call"
107msgid "Emergency Call"
108msgstr "Acil Arama"
108msgstr "Acil Arama"
109
109
110−#: qml/Components/Lockscreen.qml:268
110+#: qml/Components/Lockscreen.qml:226
111msgid "OK"
111msgid "OK"
112msgstr "Tamam"
112msgstr "Tamam"
113
113
@@ -120,23 +120,15 @@ msgstr "Merhaba %1"
120msgid "Hello"
120msgid "Hello"
121msgstr "Merhaba"
121msgstr "Merhaba"
122
122
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
132msgid "See less"
124msgid "See less"
133msgstr "Daha azını gör"
125msgstr "Daha azını gör"
134
126
135−#: qml/Dash/GenericScopeView.qml:360
127+#: qml/Dash/GenericScopeView.qml:361
136msgid "See all"
128msgid "See all"
137msgstr ""
129msgstr ""
138
130
139−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
131+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
140msgid "Search"
132msgid "Search"
141msgstr "Ara"
133msgstr "Ara"
142
134
@@ -204,13 +196,17 @@ msgstr "Şimdi Konuşun..."
204msgid "Speaking..."
196msgid "Speaking..."
205msgstr "Konuşuyor..."
197msgstr "Konuşuyor..."
206
198
207−#: qml/Notifications/NotificationMenuItemFactory.qml:100
199+#: qml/Notifications/NotificationMenuItemFactory.qml:105
208msgid "Show password"
200msgid "Show password"
209msgstr "Parolayı göster"
201msgstr "Parolayı göster"
210
202
211−#: qml/Notifications/NotificationMenuItemFactory.qml:115
203+#: qml/Notifications/NotificationMenuItemFactory.qml:120
212−msgid "Please enter SIM PIN"
204+msgid "Enter SIM PIN"
213−msgstr "Lütfen SIM PIN'inizi girin"
205+msgstr ""
206+
207+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
208+msgid "Sorry, incorrect PIN"
209+msgstr ""
214
210
215#: qml/Panel/ActiveCallHint.qml:77
211#: qml/Panel/ActiveCallHint.qml:77
216msgid "Tap to return to call..."
212msgid "Tap to return to call..."
@@ -252,48 +248,57 @@ msgstr ""
252msgid "Roaming"
248msgid "Roaming"
253msgstr ""
249msgstr ""
254
250
255−#: qml/Shell.qml:267
251+#: qml/Shell.qml:266
256−msgid "passphrase"
252+msgid "Enter your passphrase"
257msgstr ""
253msgstr ""
258
254
259#: qml/Shell.qml:267
255#: qml/Shell.qml:267
260−msgid "passcode"
256+msgid "Sorry, incorrect passphrase"
261msgstr ""
257msgstr ""
262
258
263#: qml/Shell.qml:269
259#: qml/Shell.qml:269
264−#, qt-format
265−msgid "Enter your %1"
260+msgid "Enter your PIN"
266msgstr ""
261msgstr ""
267
262
268−#: qml/Shell.qml:270
263+#: qml/Shell.qml:273
269#, qt-format
264#, qt-format
270−msgid "Incorrect %1"
265+msgid "Enter your %1"
271msgstr ""
266msgstr ""
272
267
273−#: qml/Shell.qml:272
268+#: qml/Shell.qml:274
274−msgid "Please re-enter"
269+#, qt-format
270+msgid "Sorry, incorrect %1"
275msgstr ""
271msgstr ""
276
272
277−#: qml/Shell.qml:306
273+#: qml/Shell.qml:310
278msgid "Sorry, incorrect passphrase."
274msgid "Sorry, incorrect passphrase."
279msgstr ""
275msgstr ""
280
276
281−#: qml/Shell.qml:307
277+#: qml/Shell.qml:311
282msgid "Sorry, incorrect passcode."
278msgid "Sorry, incorrect passcode."
283msgstr ""
279msgstr ""
284
280
285−#: qml/Shell.qml:308
281+#: qml/Shell.qml:312
286msgid "This will be your last attempt."
282msgid "This will be your last attempt."
287msgstr ""
283msgstr ""
288
284
289−#: qml/Shell.qml:310
285+#: qml/Shell.qml:314
290msgid ""
286msgid ""
291"If passphrase is entered incorrectly, your phone will conduct a factory "
287"If passphrase is entered incorrectly, your phone will conduct a factory "
292"reset and all personal data will be deleted."
288"reset and all personal data will be deleted."
293msgstr ""
289msgstr ""
294
290
295−#: qml/Shell.qml:311
291+#: qml/Shell.qml:315
296msgid ""
292msgid ""
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
293"If passcode is entered incorrectly, your phone will conduct a factory reset "
298"and all personal data will be deleted."
294"and all personal data will be deleted."
299msgstr ""
295msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-07-29 04:06+0000\n"
11"PO-Revision-Date: 2014-07-29 04:06+0000\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -94,19 +94,19 @@ msgstr ""
94"ئېكراننى چېكىپ باشلاڭ<br><br>سىز ھازىر گىرۋەك بارماق ئىشارەتلىرىنى ئىگىلەپ "
94"ئېكراننى چېكىپ باشلاڭ<br><br>سىز ھازىر گىرۋەك بارماق ئىشارەتلىرىنى ئىگىلەپ "
95"بولدىڭىز،ئەمدى تېلېفوننى ئىشلىتىشنى باشلىسىڭىز بولىدۇ"
95"بولدىڭىز،ئەمدى تېلېفوننى ئىشلىتىشنى باشلىسىڭىز بولىدۇ"
96
96
97−#: qml/Components/Lockscreen.qml:161
97+#: qml/Components/Lockscreen.qml:167
98−msgid "Too many incorrect attempts"
98+msgid "Please wait"
99msgstr ""
99msgstr ""
100
100
101−#: qml/Components/Lockscreen.qml:163
101+#: qml/Components/Lockscreen.qml:172
102−msgid "Please wait"
102+msgid "Too many incorrect attempts"
103msgstr ""
103msgstr ""
104
104
105−#: qml/Components/Lockscreen.qml:245
105+#: qml/Components/Lockscreen.qml:206
106msgid "Emergency Call"
106msgid "Emergency Call"
107msgstr "جىددىي تېلېفون"
107msgstr "جىددىي تېلېفون"
108
108
109−#: qml/Components/Lockscreen.qml:268
109+#: qml/Components/Lockscreen.qml:226
110msgid "OK"
110msgid "OK"
111msgstr "تامام"
111msgstr "تامام"
112
112
@@ -119,23 +119,15 @@ msgstr "سالام %1"
119msgid "Hello"
119msgid "Hello"
120msgstr "ئەسسالامۇئەلەيكۇم"
120msgstr "ئەسسالامۇئەلەيكۇم"
121
121
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
131msgid "See less"
123msgid "See less"
132msgstr "ئازراق كۆرۈش"
124msgstr "ئازراق كۆرۈش"
133
125
134−#: qml/Dash/GenericScopeView.qml:360
126+#: qml/Dash/GenericScopeView.qml:361
135msgid "See all"
127msgid "See all"
136msgstr "ھەممىنى كۆرۈش…"
128msgstr "ھەممىنى كۆرۈش…"
137
129
138−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
130+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
139msgid "Search"
131msgid "Search"
140msgstr "ئىزدە"
132msgstr "ئىزدە"
141
133
@@ -203,13 +195,17 @@ msgstr "ئەمدى سۆزلەڭ…"
203msgid "Speaking..."
195msgid "Speaking..."
204msgstr "سۆزلەۋاتىسىز…"
196msgstr "سۆزلەۋاتىسىز…"
205
197
206−#: qml/Notifications/NotificationMenuItemFactory.qml:100
198+#: qml/Notifications/NotificationMenuItemFactory.qml:105
207msgid "Show password"
199msgid "Show password"
208msgstr "ئىم كۆرسەت"
200msgstr "ئىم كۆرسەت"
209
201
210−#: qml/Notifications/NotificationMenuItemFactory.qml:115
202+#: qml/Notifications/NotificationMenuItemFactory.qml:120
211−msgid "Please enter SIM PIN"
203+msgid "Enter SIM PIN"
212−msgstr "سىم(SIM) كارتىڭىزنىڭ PIN نومۇرىنى كىرگۈزۈڭ"
204+msgstr ""
205+
206+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
207+msgid "Sorry, incorrect PIN"
208+msgstr ""
213
209
214#: qml/Panel/ActiveCallHint.qml:77
210#: qml/Panel/ActiveCallHint.qml:77
215msgid "Tap to return to call..."
211msgid "Tap to return to call..."
@@ -251,48 +247,57 @@ msgstr ""
251msgid "Roaming"
247msgid "Roaming"
252msgstr ""
248msgstr ""
253
249
254−#: qml/Shell.qml:267
250+#: qml/Shell.qml:266
255−msgid "passphrase"
251+msgid "Enter your passphrase"
256msgstr ""
252msgstr ""
257
253
258#: qml/Shell.qml:267
254#: qml/Shell.qml:267
259−msgid "passcode"
255+msgid "Sorry, incorrect passphrase"
260msgstr ""
256msgstr ""
261
257
262#: qml/Shell.qml:269
258#: qml/Shell.qml:269
263−#, qt-format
264−msgid "Enter your %1"
259+msgid "Enter your PIN"
265msgstr ""
260msgstr ""
266
261
267−#: qml/Shell.qml:270
262+#: qml/Shell.qml:273
268#, qt-format
263#, qt-format
269−msgid "Incorrect %1"
264+msgid "Enter your %1"
270msgstr ""
265msgstr ""
271
266
272−#: qml/Shell.qml:272
267+#: qml/Shell.qml:274
273−msgid "Please re-enter"
268+#, qt-format
269+msgid "Sorry, incorrect %1"
274msgstr ""
270msgstr ""
275
271
276−#: qml/Shell.qml:306
272+#: qml/Shell.qml:310
277msgid "Sorry, incorrect passphrase."
273msgid "Sorry, incorrect passphrase."
278msgstr ""
274msgstr ""
279
275
280−#: qml/Shell.qml:307
276+#: qml/Shell.qml:311
281msgid "Sorry, incorrect passcode."
277msgid "Sorry, incorrect passcode."
282msgstr ""
278msgstr ""
283
279
284−#: qml/Shell.qml:308
280+#: qml/Shell.qml:312
285msgid "This will be your last attempt."
281msgid "This will be your last attempt."
286msgstr ""
282msgstr ""
287
283
288−#: qml/Shell.qml:310
284+#: qml/Shell.qml:314
289msgid ""
285msgid ""
290"If passphrase is entered incorrectly, your phone will conduct a factory "
286"If passphrase is entered incorrectly, your phone will conduct a factory "
291"reset and all personal data will be deleted."
287"reset and all personal data will be deleted."
292msgstr ""
288msgstr ""
293
289
294−#: qml/Shell.qml:311
290+#: qml/Shell.qml:315
295msgid ""
291msgid ""
296"If passcode is entered incorrectly, your phone will conduct a factory reset "
292"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"and all personal data will be deleted."
293"and all personal data will be deleted."
298msgstr ""
294msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11−"PO-Revision-Date: 2014-08-17 14:49+0000\n"
11+"PO-Revision-Date: 2014-08-26 19:06+0000\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-18 07:20+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-27 07:46+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17174)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -97,19 +97,19 @@ msgstr ""
97"Вами налаштовано дії у відповідь на дотики на краях екрана. Тепер телефоном "
97"Вами налаштовано дії у відповідь на дотики на краях екрана. Тепер телефоном "
98"можна користуватися.<br><br>Торкніться екрана, щоб розпочати."
98"можна користуватися.<br><br>Торкніться екрана, щоб розпочати."
99
99
100−#: qml/Components/Lockscreen.qml:161
100+#: qml/Components/Lockscreen.qml:167
101−msgid "Too many incorrect attempts"
102−msgstr "Забагато помилкових спроб"
103−
104−#: qml/Components/Lockscreen.qml:163
105msgid "Please wait"
101msgid "Please wait"
106msgstr "Будь ласка, зачекайте"
102msgstr "Будь ласка, зачекайте"
107
103
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
109msgid "Emergency Call"
109msgid "Emergency Call"
110msgstr "Терміновий виклик"
110msgstr "Терміновий виклик"
111
111
112−#: qml/Components/Lockscreen.qml:268
112+#: qml/Components/Lockscreen.qml:226
113msgid "OK"
113msgid "OK"
114msgstr "Гаразд"
114msgstr "Гаразд"
115
115
@@ -122,23 +122,15 @@ msgstr "Привіт, %1"
122msgid "Hello"
122msgid "Hello"
123msgstr "Привіт!"
123msgstr "Привіт!"
124
124
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
134msgid "See less"
126msgid "See less"
135msgstr "Стисліше"
127msgstr "Стисліше"
136
128
137−#: qml/Dash/GenericScopeView.qml:360
129+#: qml/Dash/GenericScopeView.qml:361
138msgid "See all"
130msgid "See all"
139msgstr "Детальніше"
131msgstr "Детальніше"
140
132
141−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
133+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
142msgid "Search"
134msgid "Search"
143msgstr "Пошук"
135msgstr "Пошук"
144
136
@@ -206,14 +198,18 @@ msgstr "Можна говорити…"
206msgid "Speaking..."
198msgid "Speaking..."
207msgstr "Мовлення…"
199msgstr "Мовлення…"
208
200
209−#: qml/Notifications/NotificationMenuItemFactory.qml:100
201+#: qml/Notifications/NotificationMenuItemFactory.qml:105
210msgid "Show password"
202msgid "Show password"
211msgstr "Показати пароль"
203msgstr "Показати пароль"
212
204
213−#: qml/Notifications/NotificationMenuItemFactory.qml:115
205+#: qml/Notifications/NotificationMenuItemFactory.qml:120
214−msgid "Please enter SIM PIN"
206+msgid "Enter SIM PIN"
215msgstr "Введіть PIN-код SIM-картки"
207msgstr "Введіть PIN-код SIM-картки"
216
208
209+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
210+msgid "Sorry, incorrect PIN"
211+msgstr "Вибачте, помилковий PIN-код"
212+
217#: qml/Panel/ActiveCallHint.qml:77
213#: qml/Panel/ActiveCallHint.qml:77
218msgid "Tap to return to call..."
214msgid "Tap to return to call..."
219msgstr "Торкніться, щоб повернутися до дзвінка…"
215msgstr "Торкніться, щоб повернутися до дзвінка…"
@@ -254,41 +250,41 @@ msgstr "Розблокувати SIM"
254msgid "Roaming"
250msgid "Roaming"
255msgstr "Роумінг"
251msgstr "Роумінг"
256
252
257−#: qml/Shell.qml:267
253+#: qml/Shell.qml:266
258−msgid "passphrase"
254+msgid "Enter your passphrase"
259−msgstr "пароль"
255+msgstr "Введіть ваш пароль"
260
256
261#: qml/Shell.qml:267
257#: qml/Shell.qml:267
262−msgid "passcode"
258+msgid "Sorry, incorrect passphrase"
263−msgstr "код-пароль"
259+msgstr "Вибачте, помилковий пароль"
264
260
265#: qml/Shell.qml:269
261#: qml/Shell.qml:269
262+msgid "Enter your PIN"
263+msgstr "Введіть ваш PIN-код"
264+
265+#: qml/Shell.qml:273
266#, qt-format
266#, qt-format
267msgid "Enter your %1"
267msgid "Enter your %1"
268msgstr "Вкажіть ваш %1"
268msgstr "Вкажіть ваш %1"
269
269
270−#: qml/Shell.qml:270
270+#: qml/Shell.qml:274
271#, qt-format
271#, qt-format
272−msgid "Incorrect %1"
272+msgid "Sorry, incorrect %1"
273−msgstr "Помилковий %1"
273+msgstr "Вибачте, помилковий %1"
274
274
275−#: qml/Shell.qml:272
275+#: qml/Shell.qml:310
276−msgid "Please re-enter"
277−msgstr "Будь ласка, вкажіть ще раз"
278−
279−#: qml/Shell.qml:306
280msgid "Sorry, incorrect passphrase."
276msgid "Sorry, incorrect passphrase."
281msgstr "Вибачте, помилковий пароль."
277msgstr "Вибачте, помилковий пароль."
282
278
283−#: qml/Shell.qml:307
279+#: qml/Shell.qml:311
284msgid "Sorry, incorrect passcode."
280msgid "Sorry, incorrect passcode."
285msgstr "Вибачте, помилковий код-пароль."
281msgstr "Вибачте, помилковий код-пароль."
286
282
287−#: qml/Shell.qml:308
283+#: qml/Shell.qml:312
288msgid "This will be your last attempt."
284msgid "This will be your last attempt."
289msgstr "Ця спроба буде останньою."
285msgstr "Ця спроба буде останньою."
290
286
291−#: qml/Shell.qml:310
287+#: qml/Shell.qml:314
292msgid ""
288msgid ""
293"If passphrase is entered incorrectly, your phone will conduct a factory "
289"If passphrase is entered incorrectly, your phone will conduct a factory "
294"reset and all personal data will be deleted."
290"reset and all personal data will be deleted."
@@ -296,10 +292,32 @@ msgstr ""
296"Якщо пароль буде вказано неправильно, телефон повернеться до початкового "
292"Якщо пароль буде вказано неправильно, телефон повернеться до початкового "
297"стану, усі особисті дані буде вилучено."
293"стану, усі особисті дані буде вилучено."
298
294
299−#: qml/Shell.qml:311
295+#: qml/Shell.qml:315
300msgid ""
296msgid ""
301"If passcode is entered incorrectly, your phone will conduct a factory reset "
297"If passcode is entered incorrectly, your phone will conduct a factory reset "
302"and all personal data will be deleted."
298"and all personal data will be deleted."
303msgstr ""
299msgstr ""
304"Якщо код-пароль буде вказано неправильно, телефон повернеться до початкового "
300"Якщо код-пароль буде вказано неправильно, телефон повернеться до початкового "
305"стану, усі особисті дані буде вилучено."
301"стану, усі особисті дані буде вилучено."
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 ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: \n"
10"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"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,7 +17,7 @@ msgstr ""
17"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Type: text/plain; charset=UTF-8\n"
18"Content-Transfer-Encoding: 8bit\n"
18"Content-Transfer-Encoding: 8bit\n"
19
19
20−#: plugins/LightDM/Greeter.cpp:129
20+#: plugins/LightDM/Greeter.cpp:130
21msgid "Password: "
21msgid "Password: "
22msgstr ""
22msgstr ""
23
23
@@ -30,19 +30,55 @@ msgstr ""
30msgid "Unpin shortcut"
30msgid "Unpin shortcut"
31msgstr ""
31msgstr ""
32
32
33−#: qml/Components/Dialogs.qml:142
33+#: qml/Components/Dialogs.qml:70
34−msgid "Are you sure you would like to turn power off?"
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?"
35msgstr ""
65msgstr ""
36
66
37#: qml/Components/Dialogs.qml:144
67#: qml/Components/Dialogs.qml:144
38−msgid "Power off"
68+msgid "Power"
39msgstr ""
69msgstr ""
40
70
41−#: qml/Components/Dialogs.qml:153
71+#: qml/Components/Dialogs.qml:145
42−msgid "Restart"
72+msgid ""
73+"Are you sure you would like\n"
74+"to power off?"
43msgstr ""
75msgstr ""
44
76
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
46msgid "Cancel"
82msgid "Cancel"
47msgstr ""
83msgstr ""
48
84
@@ -92,19 +128,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
128"phone<br><br>Tap on the screen to start"
93msgstr ""
129msgstr ""
94
130
95−#: qml/Components/Lockscreen.qml:161
131+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
132+msgid "Please wait"
97msgstr ""
133msgstr ""
98
134
99−#: qml/Components/Lockscreen.qml:163
135+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
136+msgid "Too many incorrect attempts"
101msgstr ""
137msgstr ""
102
138
103−#: qml/Components/Lockscreen.qml:245
139+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
140msgid "Emergency Call"
105msgstr ""
141msgstr ""
106
142
107−#: qml/Components/Lockscreen.qml:268
143+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
144msgid "OK"
109msgstr ""
145msgstr ""
110
146
@@ -117,24 +153,29 @@ msgstr ""
117msgid "Hello"
153msgid "Hello"
118msgstr ""
154msgstr ""
119
155
120−#: qml/Components/PinLockscreen.qml:197
156+#: qml/Dash/GenericScopeView.qml:361
121−msgid "CANCEL"
157+msgid "See less"
122msgstr ""
158msgstr ""
123
159
124−#: qml/Components/PinLockscreen.qml:215
160+#: qml/Dash/GenericScopeView.qml:361
125−msgid "DONE"
161+msgid "See all"
126msgstr ""
162msgstr ""
127
163
128−#: qml/Dash/GenericScopeView.qml:360
164+#: qml/Dash/GenericScopeView.qml:424 qml/Dash/PageHeader.qml:260
165+#: qml/Panel/SearchIndicator.qml:27
129−msgid "See less"
166+msgid "Search"
130msgstr ""
167msgstr ""
131
168
132−#: qml/Dash/GenericScopeView.qml:360
169+#: qml/Dash/PageHeader.qml:270
133−msgid "See all"
170+msgid "Settings"
134msgstr ""
171msgstr ""
135
172
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
173+#: qml/Dash/PageHeader.qml:279
137−msgid "Search"
174+msgid "Remove from Favorites"
175+msgstr ""
176+
177+#: qml/Dash/PageHeader.qml:279
178+msgid "Add to Favorites"
138msgstr ""
179msgstr ""
139
180
140#: qml/Dash/Previews/PreviewActionCombo.qml:34
181#: qml/Dash/Previews/PreviewActionCombo.qml:34
@@ -161,11 +202,11 @@ msgstr ""
161msgid "Manage Dash"
202msgid "Manage Dash"
162msgstr ""
203msgstr ""
163
204
164−#: qml/Dash/ScopesOverview.qml:408
205+#: qml/Dash/ScopesOverview.qml:417
165msgid "Done"
206msgid "Done"
166msgstr ""
207msgstr ""
167
208
168−#: qml/Dash/ScopesOverview.qml:434
209+#: qml/Dash/ScopesOverview.qml:443
169msgid "Store"
210msgid "Store"
170msgstr ""
211msgstr ""
171
212
@@ -181,7 +222,7 @@ msgstr ""
181msgid "Swipe to unlock"
222msgid "Swipe to unlock"
182msgstr ""
223msgstr ""
183
224
184−#: qml/Hud/HudParametrizedActionsPage.qml:132
225+#: qml/Hud/HudParametrizedActionsPage.qml:139
185msgid "Confirm"
226msgid "Confirm"
186msgstr ""
227msgstr ""
187
228
@@ -201,12 +242,16 @@ msgstr ""
201msgid "Speaking..."
242msgid "Speaking..."
202msgstr ""
243msgstr ""
203
244
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
245+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
246msgid "Show password"
206msgstr ""
247msgstr ""
207
248
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
249+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
250+msgid "Enter SIM PIN"
251+msgstr ""
252+
253+#: qml/Notifications/NotificationMenuItemFactory.qml:121
254+msgid "Sorry, incorrect PIN"
210msgstr ""
255msgstr ""
211
256
212#: qml/Panel/ActiveCallHint.qml:77
257#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +294,51 @@ msgstr ""
249msgid "Roaming"
294msgid "Roaming"
250msgstr ""
295msgstr ""
251
296
252−#: qml/Shell.qml:267
297+#: qml/Shell.qml:279
253−msgid "passphrase"
298+msgid "Enter your passphrase"
254msgstr ""
299msgstr ""
255
300
256−#: qml/Shell.qml:267
301+#: qml/Shell.qml:280
257−msgid "passcode"
302+msgid "Sorry, incorrect passphrase"
258msgstr ""
303msgstr ""
259
304
260−#: qml/Shell.qml:269
305+#: qml/Shell.qml:282
261−#, qt-format
262−msgid "Enter your %1"
306+msgid "Enter your passcode"
263msgstr ""
307msgstr ""
264
308
265−#: qml/Shell.qml:270
309+#: qml/Shell.qml:283
310+msgid "Sorry, incorrect passcode"
311+msgstr ""
312+
313+#: qml/Shell.qml:286
266#, qt-format
314#, qt-format
267−msgid "Incorrect %1"
315+msgid "Enter your %1"
268msgstr ""
316msgstr ""
269
317
270−#: qml/Shell.qml:272
318+#: qml/Shell.qml:287
271−msgid "Please re-enter"
319+#, qt-format
320+msgid "Sorry, incorrect %1"
272msgstr ""
321msgstr ""
273
322
274−#: qml/Shell.qml:306
323+#: qml/Shell.qml:323
275msgid "Sorry, incorrect passphrase."
324msgid "Sorry, incorrect passphrase."
276msgstr ""
325msgstr ""
277
326
278−#: qml/Shell.qml:307
327+#: qml/Shell.qml:324
279msgid "Sorry, incorrect passcode."
328msgid "Sorry, incorrect passcode."
280msgstr ""
329msgstr ""
281
330
282−#: qml/Shell.qml:308
331+#: qml/Shell.qml:325
283msgid "This will be your last attempt."
332msgid "This will be your last attempt."
284msgstr ""
333msgstr ""
285
334
286−#: qml/Shell.qml:310
335+#: qml/Shell.qml:327
287msgid ""
336msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
337"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
338"reset and all personal data will be deleted."
290msgstr ""
339msgstr ""
291
340
292−#: qml/Shell.qml:311
341+#: qml/Shell.qml:328
293msgid ""
342msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
343"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
344"and all personal data will be deleted."
po/vi.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-01-15 01:19+0000\n"
11"PO-Revision-Date: 2014-01-15 01:19+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Vietnamese <vi@li.org>\n"
13"Language-Team: Vietnamese <vi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr ""
130msgstr ""
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/xh.po+33−37
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr ""
105msgstr ""
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr ""
109msgstr ""
110
110
@@ -117,23 +117,15 @@ msgstr ""
117msgid "Hello"
117msgid "Hello"
118msgstr ""
118msgstr ""
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr ""
122msgstr ""
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr ""
126msgstr ""
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr ""
130msgstr ""
139
131
@@ -201,12 +193,16 @@ msgstr ""
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr ""
194msgstr ""
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr ""
198msgstr ""
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
210msgstr ""
206msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
@@ -249,47 +245,47 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
po/zh_CN.po+43−38
@@ -7,15 +7,15 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-12 14:09+0000\n"
11"PO-Revision-Date: 2014-08-12 14:09+0000\n"
12"Last-Translator: Anthony Wong <anthony.wong@ubuntu.com>\n"
12"Last-Translator: Anthony Wong <anthony.wong@ubuntu.com>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:29+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr "您现在已经掌握了边缘滑动手势,可以开始使用手机了<br><br>请点击屏幕开始使用"
93msgstr "您现在已经掌握了边缘滑动手势,可以开始使用手机了<br><br>请点击屏幕开始使用"
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "紧急电话"
105msgstr "紧急电话"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr "确定"
109msgstr "确定"
110
110
@@ -117,23 +117,15 @@ msgstr "你好,%1"
117msgid "Hello"
117msgid "Hello"
118msgstr "你好"
118msgstr "你好"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr "显示更少"
122msgstr "显示更少"
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr "查看全部"
126msgstr "查看全部"
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "搜索"
130msgstr "搜索"
139
131
@@ -201,13 +193,17 @@ msgstr "现在请讲..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "讲话中..."
194msgstr "讲话中..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "显示密码"
198msgstr "显示密码"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
210−msgstr "请输入 SIM PIN"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
213msgid "Tap to return to call..."
209msgid "Tap to return to call..."
@@ -249,48 +245,57 @@ msgstr "解开 SIM"
249msgid "Roaming"
245msgid "Roaming"
250msgstr "漫游"
246msgstr "漫游"
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
296msgstr ""
292msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-08-10 11:45+0000\n"
11"PO-Revision-Date: 2014-08-10 11:45+0000\n"
12"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
12"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
13"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
13"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr "您現在已熟練邊緣手勢,可以開始使用手機了<br><br>輕觸螢幕開始使用"
93msgstr "您現在已熟練邊緣手勢,可以開始使用手機了<br><br>輕觸螢幕開始使用"
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "緊急電話"
105msgstr "緊急電話"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr "確定"
109msgstr "確定"
110
110
@@ -117,23 +117,15 @@ msgstr "您好 %1"
117msgid "Hello"
117msgid "Hello"
118msgstr "您好"
118msgstr "您好"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr "縮減查看"
122msgstr "縮減查看"
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr "查看全部"
126msgstr "查看全部"
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "搜尋"
130msgstr "搜尋"
139
131
@@ -201,13 +193,17 @@ msgstr "請講..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "正在講..."
194msgstr "正在講..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "顯示密碼"
198msgstr "顯示密碼"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
210−msgstr "請輸入 SIM 卡 PIN 碼"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
213msgid "Tap to return to call..."
209msgid "Tap to return to call..."
@@ -249,48 +245,57 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
296msgstr ""
292msgstr ""
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 ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"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"
11"PO-Revision-Date: 2014-07-26 16:21+0000\n"
11"PO-Revision-Date: 2014-07-26 16:21+0000\n"
12"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
12"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-08-15 06:28+0000\n"
17+"X-Launchpad-Export-Date: 2014-08-23 07:17+0000\n"
18−"X-Generator: Launchpad (build 17156)\n"
18+"X-Generator: Launchpad (build 17163)\n"
19
19
20#: plugins/LightDM/Greeter.cpp:129
20#: plugins/LightDM/Greeter.cpp:129
21msgid "Password: "
21msgid "Password: "
@@ -92,19 +92,19 @@ msgid ""
92"phone<br><br>Tap on the screen to start"
92"phone<br><br>Tap on the screen to start"
93msgstr "您現在已熟練邊緣手勢,可以開始使用手機了<br><br>輕觸螢幕開始使用"
93msgstr "您現在已熟練邊緣手勢,可以開始使用手機了<br><br>輕觸螢幕開始使用"
94
94
95−#: qml/Components/Lockscreen.qml:161
95+#: qml/Components/Lockscreen.qml:167
96−msgid "Too many incorrect attempts"
96+msgid "Please wait"
97msgstr ""
97msgstr ""
98
98
99−#: qml/Components/Lockscreen.qml:163
99+#: qml/Components/Lockscreen.qml:172
100−msgid "Please wait"
100+msgid "Too many incorrect attempts"
101msgstr ""
101msgstr ""
102
102
103−#: qml/Components/Lockscreen.qml:245
103+#: qml/Components/Lockscreen.qml:206
104msgid "Emergency Call"
104msgid "Emergency Call"
105msgstr "緊急通話"
105msgstr "緊急通話"
106
106
107−#: qml/Components/Lockscreen.qml:268
107+#: qml/Components/Lockscreen.qml:226
108msgid "OK"
108msgid "OK"
109msgstr "確定"
109msgstr "確定"
110
110
@@ -117,23 +117,15 @@ msgstr "%1 您好"
117msgid "Hello"
117msgid "Hello"
118msgstr "您好"
118msgstr "您好"
119
119
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
129msgid "See less"
121msgid "See less"
130msgstr "縮減查看"
122msgstr "縮減查看"
131
123
132−#: qml/Dash/GenericScopeView.qml:360
124+#: qml/Dash/GenericScopeView.qml:361
133msgid "See all"
125msgid "See all"
134msgstr "查看全部"
126msgstr "查看全部"
135
127
136−#: qml/Dash/GenericScopeView.qml:423 qml/Panel/SearchIndicator.qml:27
128+#: qml/Dash/GenericScopeView.qml:424 qml/Panel/SearchIndicator.qml:27
137msgid "Search"
129msgid "Search"
138msgstr "搜尋"
130msgstr "搜尋"
139
131
@@ -201,13 +193,17 @@ msgstr "請說..."
201msgid "Speaking..."
193msgid "Speaking..."
202msgstr "說話中..."
194msgstr "說話中..."
203
195
204−#: qml/Notifications/NotificationMenuItemFactory.qml:100
196+#: qml/Notifications/NotificationMenuItemFactory.qml:105
205msgid "Show password"
197msgid "Show password"
206msgstr "顯示密碼"
198msgstr "顯示密碼"
207
199
208−#: qml/Notifications/NotificationMenuItemFactory.qml:115
200+#: qml/Notifications/NotificationMenuItemFactory.qml:120
209−msgid "Please enter SIM PIN"
201+msgid "Enter SIM PIN"
210−msgstr "請輸入 SIM 卡 PIN 碼"
202+msgstr ""
203+
204+#: qml/Notifications/NotificationMenuItemFactory.qml:121 qml/Shell.qml:270
205+msgid "Sorry, incorrect PIN"
206+msgstr ""
211
207
212#: qml/Panel/ActiveCallHint.qml:77
208#: qml/Panel/ActiveCallHint.qml:77
213msgid "Tap to return to call..."
209msgid "Tap to return to call..."
@@ -249,48 +245,57 @@ msgstr ""
249msgid "Roaming"
245msgid "Roaming"
250msgstr ""
246msgstr ""
251
247
252−#: qml/Shell.qml:267
248+#: qml/Shell.qml:266
253−msgid "passphrase"
249+msgid "Enter your passphrase"
254msgstr ""
250msgstr ""
255
251
256#: qml/Shell.qml:267
252#: qml/Shell.qml:267
257−msgid "passcode"
253+msgid "Sorry, incorrect passphrase"
258msgstr ""
254msgstr ""
259
255
260#: qml/Shell.qml:269
256#: qml/Shell.qml:269
261−#, qt-format
262−msgid "Enter your %1"
257+msgid "Enter your PIN"
263msgstr ""
258msgstr ""
264
259
265−#: qml/Shell.qml:270
260+#: qml/Shell.qml:273
266#, qt-format
261#, qt-format
267−msgid "Incorrect %1"
262+msgid "Enter your %1"
268msgstr ""
263msgstr ""
269
264
270−#: qml/Shell.qml:272
265+#: qml/Shell.qml:274
271−msgid "Please re-enter"
266+#, qt-format
267+msgid "Sorry, incorrect %1"
272msgstr ""
268msgstr ""
273
269
274−#: qml/Shell.qml:306
270+#: qml/Shell.qml:310
275msgid "Sorry, incorrect passphrase."
271msgid "Sorry, incorrect passphrase."
276msgstr ""
272msgstr ""
277
273
278−#: qml/Shell.qml:307
274+#: qml/Shell.qml:311
279msgid "Sorry, incorrect passcode."
275msgid "Sorry, incorrect passcode."
280msgstr ""
276msgstr ""
281
277
282−#: qml/Shell.qml:308
278+#: qml/Shell.qml:312
283msgid "This will be your last attempt."
279msgid "This will be your last attempt."
284msgstr ""
280msgstr ""
285
281
286−#: qml/Shell.qml:310
282+#: qml/Shell.qml:314
287msgid ""
283msgid ""
288"If passphrase is entered incorrectly, your phone will conduct a factory "
284"If passphrase is entered incorrectly, your phone will conduct a factory "
289"reset and all personal data will be deleted."
285"reset and all personal data will be deleted."
290msgstr ""
286msgstr ""
291
287
292−#: qml/Shell.qml:311
288+#: qml/Shell.qml:315
293msgid ""
289msgid ""
294"If passcode is entered incorrectly, your phone will conduct a factory reset "
290"If passcode is entered incorrectly, your phone will conduct a factory reset "
295"and all personal data will be deleted."
291"and all personal data will be deleted."
296msgstr ""
292msgstr ""
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 @@
15 */
15 */
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18+import Ubuntu.Components 1.1
19+import Utils 0.1 as Utils
18
20
19Loader {
21Loader {
20 id: root
22 id: root
@@ -23,6 +25,14 @@ Loader {
23 property url style
25 property url style
24 readonly property var parsedStyle: String(style)
26 readonly property var parsedStyle: String(style)
25 .match(/^(color|gradient):\/\/\/(?:(#(?:[0-9a-f]{3,4}){1,2}|[a-z]{3,}))(?:\/(#(?:[0-9a-f]{3,4}){1,2}|[a-z]{3,}))?\/?$/i)
27 .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
26
36
27 sourceComponent: {
37 sourceComponent: {
28 if (style == "") return null;
38 if (style == "") return null;
qml/Components/Lockscreen.qml+33−75
@@ -24,15 +24,14 @@ Showable {
24 // Determine if a numeric or alphanumeric pad is used.
24 // Determine if a numeric or alphanumeric pad is used.
25 property bool alphaNumeric: false
25 property bool alphaNumeric: false
26
26
27− // Placeholder text
27+ // Informational text. (e.g. some text to tell which domain this is pin is entered for)
28− property string placeholderText: ""
29− // Placeholder text while shaking (e.g. Incorrect passprase)
30− property string wrongPlaceholderText: ""
28+ property string infoText: ""
29+
31 // Retries text (e.g. 3 retries left)
30 // Retries text (e.g. 3 retries left)
32 property string retryText: ""
31 property string retryText: ""
33
32
34− // Informational text. (e.g. some text to tell which domain this is pin is entered for.
33+ // The text to be displayed in case the login failed
35− property string infoText: ""
34+ property string errorText: ""
36
35
37 // In case the Lockscreen can show a greeter message, this is the username
36 // In case the Lockscreen can show a greeter message, this is the username
38 property string username: ""
37 property string username: ""
@@ -110,41 +109,6 @@ Showable {
110 anchors.fill: root
109 anchors.fill: root
111 }
110 }
112
111
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−
148 Loader {
112 Loader {
149 id: pinPadLoader
113 id: pinPadLoader
150 objectName: "pinPadLoader"
114 objectName: "pinPadLoader"
@@ -152,21 +116,22 @@ Showable {
152 left: parent.left
116 left: parent.left
153 right: parent.right
117 right: parent.right
154 verticalCenter: parent.verticalCenter
118 verticalCenter: parent.verticalCenter
155− verticalCenterOffset: root.alphaNumeric ? -units.gu(10) : -units.gu(4)
119+ verticalCenterOffset: root.alphaNumeric ? -units.gu(10) : 0
156 }
120 }
157 property bool resetting: false
121 property bool resetting: false
158 property bool waiting: false
122 property bool waiting: false
159 property bool showWrongText: false
123 property bool showWrongText: false
160
124
161− readonly property string forcedDelayText: i18n.tr("Too many incorrect attempts") +
162− "\n" +
163− i18n.tr("Please wait")
164−
165 source: (!resetting && root.required) ? (root.alphaNumeric ? "PassphraseLockscreen.qml" : "PinLockscreen.qml") : ""
125 source: (!resetting && root.required) ? (root.alphaNumeric ? "PassphraseLockscreen.qml" : "PinLockscreen.qml") : ""
166 onSourceChanged: {
126 onSourceChanged: {
167 waiting = false
127 waiting = false
168 showWrongText = false
128 showWrongText = false
169 }
129 }
130+ onLoaded: {
131+ if (forcedDelayTimer.running) {
132+ pinPadLoader.item.clear(true)
133+ }
134+ }
170
135
171 Connections {
136 Connections {
172 target: pinPadLoader.item
137 target: pinPadLoader.item
@@ -193,10 +158,19 @@ Showable {
193 }
158 }
194 Binding {
159 Binding {
195 target: pinPadLoader.item
160 target: pinPadLoader.item
196− property: "placeholderText"
161+ property: "infoText"
162+ value: root.infoText
163+ }
164+ Binding {
165+ target: pinPadLoader.item
166+ property: "retryText"
197− value: forcedDelayTimer.running ? pinPadLoader.forcedDelayText :
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") :
198− (pinPadLoader.showWrongText ? root.wrongPlaceholderText :
173+ (pinPadLoader.showWrongText ? root.errorText : "")
199− root.placeholderText)
200 }
174 }
201 Binding {
175 Binding {
202 target: pinPadLoader.item
176 target: pinPadLoader.item
@@ -210,8 +184,9 @@ Showable {
210 }
184 }
211 }
185 }
212
186
213− Column {
187+ Label {
214− id: emergencyCallColumn
188+ id: emergencyCallLabel
189+ objectName: "emergencyCallLabel"
215
190
216 // FIXME: We *should* show emergency dialer if there is a SIM present,
191 // FIXME: We *should* show emergency dialer if there is a SIM present,
217 // regardless of whether the side stage is enabled. But right now,
192 // regardless of whether the side stage is enabled. But right now,
@@ -223,37 +198,20 @@ Showable {
223 visible: !shell.sideStageEnabled
198 visible: !shell.sideStageEnabled
224
199
225 anchors {
200 anchors {
226− left: parent.left
227 bottom: parent.bottom
201 bottom: parent.bottom
228 bottomMargin: units.gu(4)
202 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
203+ horizontalCenter: parent.horizontalCenter
239− name: "phone-app-call-symbolic"
240− color: "#f3f3e7"
241− opacity: 0.6
242 }
204 }
243
205
244− Label {
245− text: i18n.tr("Emergency Call")
206+ text: i18n.tr("Emergency Call")
246− color: "#f3f3e7"
207+ color: "#f3f3e7"
247− opacity: 0.6
208+ opacity: 0.6
248− fontSize: "medium"
249− anchors.horizontalCenter: parent.horizontalCenter
250− }
251 }
209 }
252
210
253 MouseArea {
211 MouseArea {
254− anchors.fill: emergencyCallColumn
212+ anchors.fill: emergencyCallLabel
255 onClicked: root.emergencyCall()
213 onClicked: root.emergencyCall()
256− enabled: emergencyCallColumn.visible
214+ enabled: emergencyCallLabel.visible
257 }
215 }
258
216
259 Component {
217 Component {
qml/Components/PassphraseLockscreen.qml+3−3
@@ -22,7 +22,7 @@ Item {
22 id: root
22 id: root
23 height: highlightItem.height
23 height: highlightItem.height
24
24
25− property string placeholderText
25+ property string infoText
26 property string username: ""
26 property string username: ""
27 property bool entryEnabled: true
27 property bool entryEnabled: true
28
28
@@ -75,8 +75,8 @@ Item {
75 echoMode: TextInput.Password
75 echoMode: TextInput.Password
76 opacity: 0.9
76 opacity: 0.9
77 hasClearButton: false
77 hasClearButton: false
78− enabled: entryEnabled
78+ enabled: root.entryEnabled
79− placeholderText: root.placeholderText
79+ placeholderText: root.infoText
80
80
81 onAccepted: {
81 onAccepted: {
82 if (pinentryField.text) {
82 if (pinentryField.text) {
qml/Components/PinLockscreen.qml+151−163
@@ -22,9 +22,11 @@ import "../Components"
22Column {
22Column {
23 id: root
23 id: root
24 anchors.centerIn: parent
24 anchors.centerIn: parent
25− spacing: units.gu(3.5)
25+ spacing: units.gu(2)
26
26
27− property alias placeholderText: pinentryField.placeholderText
27+ property string infoText
28+ property string retryText
29+ property string errorText
28 property int padWidth: units.gu(34)
30 property int padWidth: units.gu(34)
29 property int padHeight: units.gu(28)
31 property int padHeight: units.gu(28)
30 property int minPinLength: -1
32 property int minPinLength: -1
@@ -35,199 +37,185 @@ Column {
35
37
36 property bool entryEnabled: true
38 property bool entryEnabled: true
37
39
38− function clear(playAnimation) {
40+ function clear(showAnimation) {
39 pinentryField.text = "";
41 pinentryField.text = "";
40− if (playAnimation) {
42+ if (showAnimation) {
43+ pinentryField.incorrectOverride = true;
41 wrongPasswordAnimation.start();
44 wrongPasswordAnimation.start();
42 }
45 }
43 }
46 }
44
47
45− QtObject {
48+ Column {
46− id: priv
49+ id: shakeContainer
47− property bool autoConfirm: root.minPinLength == root.maxPinLength && root.minPinLength != -1
48− }
49−
50− UbuntuShape {
51− id: pinentryField
52− objectName: "pinentryField"
53 anchors.horizontalCenter: parent.horizontalCenter
50 anchors.horizontalCenter: parent.horizontalCenter
54− color: "#55000000"
51+ width: parent.width
55− width:root.padWidth
56− height: units.gu(5)
52+ spacing: units.gu(2)
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− }
76
53
77 Label {
54 Label {
78− id: pinentryFieldLabel
55+ id: infoField
79− anchors.centerIn: parent
56+ objectName: "infoTextLabel"
80− width: parent.width - (backspaceIcon.width + backspaceIcon.anchors.rightMargin) * 2
57+ fontSize: "large"
81− elide: Text.ElideMiddle
82− horizontalAlignment: Text.AlignHCenter
83− font.pixelSize: units.dp(44)
84 color: "#f3f3e7"
58 color: "#f3f3e7"
85− opacity: 0.6
59+ anchors.horizontalCenter: parent.horizontalCenter
86− }
60+ text: root.infoText
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
96 }
61 }
97
62
98− Icon {
63+ Item {
99− id: backspaceIcon
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
100− objectName: "backspaceIcon"
70+ objectName: "pinentryField"
101− anchors {
71+ anchors.horizontalCenter: parent.horizontalCenter
102− top: parent.top
72+ anchors.verticalCenter: parent.verticalCenter
103− topMargin: units.gu(1)
73+ spacing: Math.max(0, Math.min(units.gu(3), (parent.width / root.maxPinLength) - units.gu(3)))
104− right: parent.right
74+
105− rightMargin: units.gu(2)
75+ property string text
106− bottom: parent.bottom
76+ property bool incorrectOverride: false
107− bottomMargin: units.gu(1)
77+
108− }
78+ Repeater {
109− visible: entryEnabled && !priv.autoConfirm
79+ model: pinentryField.text.length
110− width: height
80+ delegate: Rectangle {
111− name: "erase"
112− color: "#f3f3e7"
81+ color: "#f3f3e7"
113− opacity: 0.6
82+ width: Math.min(units.gu(2), (pinContainer.width - pinContainer.height*2 ) / (root.maxPinLength >= 0 ? root.maxPinLength : 16))
114− MouseArea {
83+ height: width
115− anchors.fill: parent
84+ radius: width / 2
116− onClicked: pinentryField.text = pinentryField.text.substring(0, pinentryField.text.length-1);
117− }
118− }
85+ }
119− }
86+ }
120
87
121− UbuntuShape {
88+ function appendNumber(number) {
122− anchors {
89+ if (incorrectOverride) {
123− left: parent.left
90+ incorrectOverride = false;
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− }
91+ }
154
92
155− ThinDivider {
93+ pinentryField.text = pinentryField.text + number
156− anchors.centerIn: parent
94+
157− anchors.horizontalCenterOffset: -root.padWidth / 6
95+ if (root.minPinLength > 0 && root.maxPinLength > 0
158− width: root.padHeight
96+ && root.minPinLength == root.maxPinLength && pinentryField.text.length == root.minPinLength) {
159− rotation: -90
97+ root.entered(pinentryField.text)
160− }
98+ }
161− ThinDivider {
162− anchors.centerIn: parent
163− anchors.horizontalCenterOffset: root.padWidth / 6
164− width: root.padHeight
165− rotation: -90
166− }
99+ }
167
100
168− Grid {
101+ function backspace() {
169− anchors {
102+ pinentryField.text = pinentryField.text.substring(0, pinentryField.text.length-1)
170− left: parent.left
103+ }
171− right: parent.right
104+ }
172− margins: (parent.width - root.padWidth) / 2
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
173 }
113 }
174
114
175− columns: 3
115+ AbstractButton {
116+ objectName: "backspaceIcon"
117+ anchors { right: parent.right; top: parent.top; bottom: parent.bottom }
118+ width: height
176
119
177− Repeater {
120+ Icon {
178− model: 9
121+ anchors.fill: parent
122+ name: "erase"
123+ color: "#f3f3e7"
124+ }
179
125
180− PinPadButton {
126+ opacity: (pinentryField.text.length && !pinentryField.incorrectOverride) > 0 ? 1 : 0
181− objectName: "pinPadButton" + (index + 1)
182− width: root.padWidth / 3
183− height: root.padHeight / 4
184− text: index + 1
185− enabled: entryEnabled
186
127
187− onClicked: {
128+ Behavior on opacity {
188− pinentryField.appendChar(text);
129+ UbuntuNumberAnimation {}
189− }
190 }
130 }
191− }
192
131
193− PinPadButton {
132+ onClicked: pinentryField.backspace()
194− objectName: "pinPadButtonBack"
195− width: root.padWidth / 3
196− height: root.padHeight / 4
197− subText: i18n.tr("CANCEL")
198− onClicked: root.cancel();
199 }
133 }
134+ }
200
135
201− PinPadButton {
136+ Label {
202− objectName: "pinPadButton0"
137+ objectName: "retryLabel"
203− width: root.padWidth / 3
138+ fontSize: "x-small"
204− height: root.padHeight / 4
139+ color: "#f3f3e7"
205− text: "0"
140+ anchors.horizontalCenter: parent.horizontalCenter
206− onClicked: pinentryField.appendChar(text);
141+ text: root.retryText || " "
207− enabled: entryEnabled
142+ }
208− }
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
209
159
210 PinPadButton {
160 PinPadButton {
211− objectName: "pinPadButtonErase"
161+ objectName: "pinPadButton" + text
212− width: root.padWidth / 3
162+ text: index + 1
213− height: root.padHeight / 4
163+ height: numbersGrid.buttonHeight
214− iconName: priv.autoConfirm ? "erase" : ""
164+ width: numbersGrid.buttonWidth
215− subText: priv.autoConfirm ? "" : i18n.tr("DONE")
165+ enabled: root.entryEnabled && (root.maxPinLength == -1 ||
166+ pinentryField.text.length < root.maxPinLength ||
167+ pinentryField.incorrectOverride)
168+
216 onClicked: {
169 onClicked: {
217− if (priv.autoConfirm) {
170+ pinentryField.appendNumber(index + 1)
218− pinentryField.text = pinentryField.text.substring(0, pinentryField.text.length-1);
219− } else {
220− root.entered(pinentryField.text);
221− }
222 }
171 }
223− enabled: priv.autoConfirm ? entryEnabled : pinentryField.text.length >= root.minPinLength
224 }
172 }
225 }
173 }
174+ Item {
175+ height: numbersGrid.buttonHeight
176+ width: numbersGrid.buttonWidth
226− }
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
227
198
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+ }
228 WrongPasswordAnimation {
216 WrongPasswordAnimation {
229 id: wrongPasswordAnimation
217 id: wrongPasswordAnimation
230 objectName: "wrongPasswordAnimation"
218 objectName: "wrongPasswordAnimation"
231− target: pinentryField
219+ target: shakeContainer
232 }
220 }
233}
221}
qml/Components/PinPadButton.qml+31−45
@@ -15,62 +15,48 @@
15 */
15 */
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18−import Ubuntu.Components 0.1
18+import Ubuntu.Components 1.1
19
19
20−Item {
20+AbstractButton {
21 id: root
21 id: root
22 opacity: enabled ? 1 : 0.6
22 opacity: enabled ? 1 : 0.6
23
23
24 property alias text: label.text
24 property alias text: label.text
25− property alias subText: subTextLabel.text
26 property string iconName
25 property string iconName
27
26
28− signal clicked()
27+ UbuntuShape {
28+ anchors.fill: parent
29+ opacity: root.pressed ? 1 : 0
30+ Behavior on opacity {
31+ UbuntuNumberAnimation {}
32+ }
33+ }
29
34
30− Column {
35+ Label {
36+ id: label
31 anchors.centerIn: parent
37 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
38+ horizontalAlignment: Text.AlignHCenter
47− color: "#f3f3e7"
39+ color: "#f3f3e7"
48− fontSize: "large"
40+ fontSize: "x-large"
49− font.weight: Font.DemiBold
41+ font.weight: Font.DemiBold
50− visible: text.length > 0
42+ visible: text.length > 0
51− }
43+ scale: root.pressed ? 0.9 : 1
52−
44+ Behavior on scale {
53− Icon {
45+ UbuntuNumberAnimation {}
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
69 }
46 }
70 }
47 }
71
48
72− MouseArea {
49+ Icon {
50+ id: icon
51+ height: units.gu(3)
52+ width: height
73− anchors.fill: parent
53+ anchors.centerIn: parent
74− onClicked: root.clicked()
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+ }
75 }
61 }
76}
62}
qml/Dash/Dash.qml+1−1
@@ -341,7 +341,7 @@ Showable {
341 objectName: "overviewDragHandle"
341 objectName: "overviewDragHandle"
342 z: 1
342 z: 1
343 direction: Direction.Upwards
343 direction: Direction.Upwards
344− enabled: !dashContent.previewShown &&
344+ enabled: !dashContent.subPageShown &&
345 dashContent.currentScope &&
345 dashContent.currentScope &&
346 dashContent.currentScope.searchQuery == "" &&
346 dashContent.currentScope.searchQuery == "" &&
347 (overviewController.progress == 0 || dragging)
347 (overviewController.progress == 0 || dragging)
qml/Dash/DashContent.qml+29−4
@@ -27,8 +27,8 @@ Item {
27 readonly property alias currentIndex: dashContentList.currentIndex
27 readonly property alias currentIndex: dashContentList.currentIndex
28 readonly property string currentScopeId: dashContentList.currentItem ? dashContentList.currentItem.scopeId : ""
28 readonly property string currentScopeId: dashContentList.currentItem ? dashContentList.currentItem.scopeId : ""
29 readonly property var currentScope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
29 readonly property var currentScope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
30− readonly property bool previewShown: dashContentList.currentItem && dashContentList.currentItem.item ?
30+ readonly property bool subPageShown: dashContentList.currentItem && dashContentList.currentItem.item ?
31− dashContentList.currentItem.item.previewShown : false
31+ dashContentList.currentItem.item.subPageShown : false
32 readonly property bool processing: dashContentList.currentItem && dashContentList.currentItem.item
32 readonly property bool processing: dashContentList.currentItem && dashContentList.currentItem.item
33 && dashContentList.currentItem.item.processing || false
33 && dashContentList.currentItem.item.processing || false
34 readonly property bool pageHeaderTotallyVisible: dashContentList.currentItem && dashContentList.currentItem.item
34 readonly property bool pageHeaderTotallyVisible: dashContentList.currentItem && dashContentList.currentItem.item
@@ -52,6 +52,11 @@ Item {
52 }
52 }
53 }
53 }
54
54
55+ Connections {
56+ target: UriHandler
57+ onOpened: dashContentList.currentItem.theScope.performQuery(uris[0])
58+ }
59+
55 function setCurrentScopeAtIndex(index, animate, reset) {
60 function setCurrentScopeAtIndex(index, animate, reset) {
56 // if the scopes haven't loaded yet, then wait until they are.
61 // if the scopes haven't loaded yet, then wait until they are.
57 if (!scopes.loaded) {
62 if (!scopes.loaded) {
@@ -96,8 +101,7 @@ Item {
96 id: dashContentList
101 id: dashContentList
97 objectName: "dashContentList"
102 objectName: "dashContentList"
98
103
99− interactive: dashContent.scopes.loaded && currentItem && !currentItem.moving && !currentItem.navigationShown
104+ interactive: dashContent.scopes.loaded && currentItem && !currentItem.moving && !currentItem.navigationShown && !currentItem.subPageShown
100−
101 anchors.fill: parent
105 anchors.fill: parent
102 orientation: ListView.Horizontal
106 orientation: ListView.Horizontal
103 boundsBehavior: Flickable.DragAndOvershootBounds
107 boundsBehavior: Flickable.DragAndOvershootBounds
@@ -111,6 +115,26 @@ Item {
111 onMovementStarted: currentItem.item.showHeader();
115 onMovementStarted: currentItem.item.showHeader();
112 clip: parent.x != 0
116 clip: parent.x != 0
113
117
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+
114 // If the number of items is less than the current index, then need to reset to another item.
138 // If the number of items is less than the current index, then need to reset to another item.
115 onCountChanged: {
139 onCountChanged: {
116 if (count > 0) {
140 if (count > 0) {
@@ -137,6 +161,7 @@ Item {
137
161
138 readonly property bool moving: item ? item.moving : false
162 readonly property bool moving: item ? item.moving : false
139 readonly property bool navigationShown: item ? item.navigationShown : false
163 readonly property bool navigationShown: item ? item.navigationShown : false
164+ readonly property bool subPageShown: item ? item.subPageShown : false
140 readonly property var categoryView: item ? item.categoryView : null
165 readonly property var categoryView: item ? item.categoryView : null
141 readonly property var theScope: scope
166 readonly property var theScope: scope
142
167
qml/Dash/DashNavigation.qml+62−159
@@ -16,195 +16,98 @@
16
16
17import QtQuick 2.2
17import QtQuick 2.2
18import Ubuntu.Components 1.1
18import Ubuntu.Components 1.1
19+import Dash 0.1
20+import "../Components"
19
21
20−AbstractButton {
22+Item {
21 id: root
23 id: root
22 objectName: "dashNavigation"
24 objectName: "dashNavigation"
23
25
24 property var scope: null
26 property var scope: null
25−
27+ property var scopeStyle: null
26− property bool showList: false
27−
28− readonly property var currentNavigation: scope && scope.hasNavigation ? scope.getNavigation(scope.currentNavigationId) : null
29
28
30 property alias windowWidth: blackRect.width
29 property alias windowWidth: blackRect.width
31 property alias windowHeight: blackRect.height
30 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+ }
33
36
34− // Are we drilling down the tree or up?
37+ // FIXME this is only here for highlight purposes (see Background.qml, too)
35− property bool isGoingBack: false
38+ readonly property var background: backgroundItem
36
39
37− visible: root.currentNavigation != null
40+ visible: navigationButton.currentNavigation || altNavigationButton.currentNavigation
38
41
39 height: visible ? units.gu(5) : 0
42 height: visible ? units.gu(5) : 0
40
43
41− onClicked: {
44+ QtObject {
42− navigationListView.updateMaxHeight();
45+ id: d
43− root.showList = !root.showList;
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)
44 }
52 }
45
53
46 Rectangle {
54 Rectangle {
47 id: blackRect
55 id: blackRect
48 color: "black"
56 color: "black"
49− opacity: navigationListView.currentItem && navigationListView.currentItem.visible ? 0.3 : 0
57+ opacity: openList && openList.currentItem && openList.currentItem.visible ? 0.5 : 0
50 Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } }
58 Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.SnapDuration } }
51− anchors.top: navigationListView.top
52− anchors.right: parent.right
59+ anchors { left: parent.left; right: parent.right }
53− visible: opacity != 0
60+ visible: opacity > 0
54 }
61 }
55
62
56− Image {
63+ Background {
64+ id: backgroundItem
57− anchors {
65+ anchors.fill: parent
58− top: parent.top
66+ style: scopeStyle ? scopeStyle.navigationBackground : "color:///#f5f5f5"
59− left: parent.left
60− right: parent.right
61− }
62− fillMode: Image.Stretch
63− source: "graphics/dash_divider_top_lightgrad.png"
64− z: -1
65 }
67 }
66
68
67 Image {
69 Image {
68− anchors {
69− bottom: parent.bottom
70− left: parent.left
71− right: parent.right
72− }
73 fillMode: Image.Stretch
70 fillMode: Image.Stretch
74− source: "graphics/dash_divider_top_darkgrad.png"
71+ source: scopeStyle.backgroundLuminance > 0.2 ? "graphics/navigation_shadow.png" : "graphics/navigation_shadow_light.png"
75− z: -1
72+ anchors { top: parent.bottom; left: parent.left; right: parent.right }
76 }
73 }
77
74
78− Label {
75+ DashNavigationButton {
79− anchors.fill: parent
76+ id: altNavigationButton
80− anchors.margins: units.gu(2)
77+ objectName: "altNavigationButton"
81− verticalAlignment: Text.AlignVCenter
78+ height: root.height
82− text: root.currentNavigation ? root.currentNavigation.label : ""
79+ width: d.buttonWidth
83− color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
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
84 }
88 }
85
89
86− Icon {
90+ DashNavigationButton {
87− anchors.verticalCenter: parent.verticalCenter
91+ id: navigationButton
88− anchors.right: parent.right
92+ objectName: "navigationButton"
89− anchors.rightMargin: units.gu(2)
93+ height: root.height
90− name: showList ? "up" : "down"
94+ width: altNavigationButton.visible ? d.buttonWidth : d.navigationWidth
91− height: units.gu(2)
95+ x: altNavigationButton.visible ? d.buttonWidth : 0
92− width: height
96+ scope: root.scope
93− color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
97+ scopeStyle: root.scopeStyle
98+ foregroundColor: d.foregroundColor
99+ listView.width: d.navigationWidth
100+ listView.x: -x
101+ showDivider: root.width > d.navigationWidth
94 }
102 }
95
103
96− // navigationListView is outside root
104+ Image {
97− ListView {
105+ fillMode: Image.Stretch
98− id: navigationListView
106+ source: backgroundItem.luminance > 0.7 ? "graphics/navigation_shadow.png" : "graphics/navigation_shadow_light.png"
99− objectName: "navigationListView"
107+ x: navigationButton.listView.height > 0 ? altNavigationButton.x : navigationButton.x
100− orientation: ListView.Horizontal
108+ width: d.buttonWidth
101− interactive: false
109+ rotation: 180
102− clip: root.width != windowWidth
110+ anchors.bottom: parent.bottom
103− model: ListModel {
111+ visible: d.bothVisible && (navigationButton.listView.height > 0 || altNavigationButton.listView.height > 0)
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− }
209 }
112 }
210}
113}
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 @@
16
16
17import QtQuick 2.2
17import QtQuick 2.2
18import Ubuntu.Components 1.1
18import Ubuntu.Components 1.1
19+import "../Components"
19
20
20Item {
21Item {
21 id: root
22 id: root
22 property var navigation: null
23 property var navigation: null
23 property var currentNavigation: null
24 property var currentNavigation: null
24 property var scopeStyle: null
25 property var scopeStyle: null
26+ property color foregroundColor: Theme.palette.normal.baseText
25 signal enterNavigation(var newNavigationId, bool hasChildren)
27 signal enterNavigation(var newNavigationId, bool hasChildren)
26 signal goBackToParentClicked()
28 signal goBackToParentClicked()
27 signal allNavigationClicked()
29 signal allNavigationClicked()
28
30
29 readonly property int itemHeight: units.gu(5)
31 readonly property int itemHeight: units.gu(5)
30− readonly property color foregroundColor: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
31 implicitHeight: flickable.contentHeight
32 implicitHeight: flickable.contentHeight
32
33
33− Rectangle {
34+ Background {
34− color: !root.scopeStyle || Qt.colorEqual(root.scopeStyle.background, "transparent") ? "white" : root.scopeStyle.background
35+ style: root.scopeStyle ? root.scopeStyle.navigationBackground : "color:///#f5f5f5"
35 anchors.fill: parent
36 anchors.fill: parent
36 }
37 }
37
38
@@ -86,10 +87,15 @@ Item {
86 anchors {
87 anchors {
87 verticalCenter: parent.verticalCenter
88 verticalCenter: parent.verticalCenter
88 left: backImage.right
89 left: backImage.right
90+ right: parent.right
89 leftMargin: units.gu(0.5)
91 leftMargin: units.gu(0.5)
92+ rightMargin: units.gu(2)
90 }
93 }
91 text: navigation ? navigation.parentLabel : ""
94 text: navigation ? navigation.parentLabel : ""
92 color: root.foregroundColor
95 color: root.foregroundColor
96+ wrapMode: Text.Wrap
97+ maximumLineCount: 2
98+ elide: Text.ElideMiddle
93 }
99 }
94
100
95 Rectangle {
101 Rectangle {
@@ -110,18 +116,23 @@ Item {
110 id: allButton
116 id: allButton
111 objectName: "allButton"
117 objectName: "allButton"
112 width: parent.width
118 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
114 height: itemHeight
120 height: itemHeight
115
121
116 Label {
122 Label {
117 anchors {
123 anchors {
118 verticalCenter: parent.verticalCenter
124 verticalCenter: parent.verticalCenter
119 left: parent.left
125 left: parent.left
126+ right: parent.right
120 leftMargin: units.gu(2)
127 leftMargin: units.gu(2)
128+ rightMargin: units.gu(2)
121 }
129 }
122 text: navigation ? (navigation.allLabel != "" ? navigation.allLabel : navigation.label) : ""
130 text: navigation ? (navigation.allLabel != "" ? navigation.allLabel : navigation.label) : ""
123 font.bold: true
131 font.bold: true
124 color: root.foregroundColor
132 color: root.foregroundColor
133+ wrapMode: Text.Wrap
134+ maximumLineCount: 2
135+ elide: Text.ElideMiddle
125 }
136 }
126
137
127 Rectangle {
138 Rectangle {
@@ -155,12 +166,18 @@ Item {
155 verticalCenter: parent.verticalCenter
166 verticalCenter: parent.verticalCenter
156 left: parent.left
167 left: parent.left
157 leftMargin: units.gu(2)
168 leftMargin: units.gu(2)
169+ right: rightIcon.visible ? rightIcon.left : parent.right
170+ rightMargin: rightIcon.visible ? units.gu(0.5) : units.gu(2)
158 }
171 }
159 text: label
172 text: label
160 color: root.foregroundColor
173 color: root.foregroundColor
174+ wrapMode: Text.Wrap
175+ maximumLineCount: 2
176+ elide: Text.ElideMiddle
161 }
177 }
162
178
163 Icon {
179 Icon {
180+ id: rightIcon
164 anchors {
181 anchors {
165 verticalCenter: parent.verticalCenter
182 verticalCenter: parent.verticalCenter
166 right: parent.right
183 right: parent.right
qml/Dash/GenericScopeView.qml+136−38
@@ -34,7 +34,7 @@ FocusScope {
34 property bool enableHeightBehaviorOnNextCreation: false
34 property bool enableHeightBehaviorOnNextCreation: false
35 property var categoryView: categoryView
35 property var categoryView: categoryView
36 property bool showPageHeader: true
36 property bool showPageHeader: true
37− readonly property alias previewShown: previewListView.open
37+ readonly property alias subPageShown: subPageLoader.subPageShown
38 property int paginationCount: 0
38 property int paginationCount: 0
39 property int paginationIndex: 0
39 property int paginationIndex: 0
40 property alias pageHeaderTotallyVisible: categoryView.pageHeaderTotallyVisible
40 property alias pageHeaderTotallyVisible: categoryView.pageHeaderTotallyVisible
@@ -43,7 +43,7 @@ FocusScope {
43 style: scope ? scope.customizations : {}
43 style: scope ? scope.customizations : {}
44 }
44 }
45
45
46− readonly property bool processing: scope ? scope.searchInProgress || previewListView.processing : false
46+ readonly property bool processing: scope ? scope.searchInProgress || subPageLoader.processing : false
47
47
48 signal backClicked()
48 signal backClicked()
49
49
@@ -56,7 +56,7 @@ FocusScope {
56 }
56 }
57
57
58 function closePreview() {
58 function closePreview() {
59− previewListView.open = false;
59+ subPageLoader.closeSubPage()
60 }
60 }
61
61
62 function itemClicked(index, result, item, itemModel, resultsModel, limitedCategoryItemCount) {
62 function itemClicked(index, result, item, itemModel, resultsModel, limitedCategoryItemCount) {
@@ -80,19 +80,19 @@ FocusScope {
80 if (limitedCategoryItemCount > 0) {
80 if (limitedCategoryItemCount > 0) {
81 previewLimitModel.model = resultsModel;
81 previewLimitModel.model = resultsModel;
82 previewLimitModel.limit = limitedCategoryItemCount;
82 previewLimitModel.limit = limitedCategoryItemCount;
83− previewListView.model = previewLimitModel;
83+ subPageLoader.model = previewLimitModel;
84 } else {
84 } else {
85− previewListView.model = resultsModel;
85+ subPageLoader.model = resultsModel;
86 }
86 }
87− previewListView.currentIndex = -1;
87+ subPageLoader.initialIndex = -1;
88− previewListView.currentIndex = index;
88+ subPageLoader.initialIndex = index;
89− previewListView.open = true;
89+ subPageLoader.openSubPage("preview");
90 }
90 }
91
91
92 Binding {
92 Binding {
93 target: scope
93 target: scope
94 property: "isActive"
94 property: "isActive"
95− value: isCurrent && !previewListView.open
95+ value: isCurrent && !subPageLoader.open
96 }
96 }
97
97
98 SortFilterProxyModel {
98 SortFilterProxyModel {
@@ -105,10 +105,10 @@ FocusScope {
105 }
105 }
106
106
107 onIsCurrentChanged: {
107 onIsCurrentChanged: {
108− if (showPageHeader) {
108+ if (pageHeaderLoader.item && showPageHeader) {
109 pageHeaderLoader.item.resetSearch();
109 pageHeaderLoader.item.resetSearch();
110 }
110 }
111− previewListView.open = false;
111+ subPageLoader.closeSubPage();
112 }
112 }
113
113
114 Binding {
114 Binding {
@@ -127,8 +127,8 @@ FocusScope {
127
127
128 Connections {
128 Connections {
129 target: scopeView.scope
129 target: scopeView.scope
130− onShowDash: previewListView.open = false;
130+ onShowDash: subPageLoader.closeSubPage()
131− onHideDash: previewListView.open = false;
131+ onHideDash: subPageLoader.closeSubPage()
132 }
132 }
133
133
134 Rectangle {
134 Rectangle {
@@ -141,17 +141,19 @@ FocusScope {
141 id: categoryView
141 id: categoryView
142 objectName: "categoryListView"
142 objectName: "categoryListView"
143
143
144− x: previewListView.open ? -width : 0
144+ x: subPageLoader.open ? -width : 0
145 Behavior on x { UbuntuNumberAnimation { } }
145 Behavior on x { UbuntuNumberAnimation { } }
146 width: parent.width
146 width: parent.width
147+ height: floatingSeeLess.visible ? parent.height - floatingSeeLess.height + floatingSeeLess.yOffset
148+ : parent.height
147− height: parent.height
149+ clip: height != parent.height
148
150
149 model: scopeView.categories
151 model: scopeView.categories
150− forceNoClip: previewListView.open
152+ forceNoClip: subPageLoader.open
151 pixelAligned: true
153 pixelAligned: true
152 interactive: !navigationShown
154 interactive: !navigationShown
153
155
154− property string expandedCategoryId: ""
156+ property Item expandedCategoryItem: null
155
157
156 readonly property bool pageHeaderTotallyVisible: scopeView.showPageHeader &&
158 readonly property bool pageHeaderTotallyVisible: scopeView.showPageHeader &&
157 ((headerItemShownHeight == 0 && categoryView.contentY <= categoryView.originY) || (headerItemShownHeight == pageHeaderLoader.item.height))
159 ((headerItemShownHeight == 0 && categoryView.contentY <= categoryView.originY) || (headerItemShownHeight == pageHeaderLoader.item.height))
@@ -162,6 +164,8 @@ FocusScope {
162 highlightWhenPressed: false
164 highlightWhenPressed: false
163 showDivider: false
165 showDivider: false
164
166
167+ property Item seeAllButton: seeAll
168+
165 readonly property bool expandable: {
169 readonly property bool expandable: {
166 if (categoryView.model.count === 1) return false;
170 if (categoryView.model.count === 1) return false;
167 if (cardTool.template && cardTool.template["collapsed-rows"] === 0) return false;
171 if (cardTool.template && cardTool.template["collapsed-rows"] === 0) return false;
@@ -191,7 +195,7 @@ FocusScope {
191 // This can happen with the VJ that doesn't know how height it will be on creation
195 // This can happen with the VJ that doesn't know how height it will be on creation
192 // so doesn't set expandable until a bit too late for onLoaded
196 // so doesn't set expandable until a bit too late for onLoaded
193 if (expandable) {
197 if (expandable) {
194− var shouldExpand = baseItem.category === categoryView.expandedCategoryId;
198+ var shouldExpand = baseItem === categoryView.expandedCategoryItem;
195 baseItem.expand(shouldExpand, false /*animate*/);
199 baseItem.expand(shouldExpand, false /*animate*/);
196 }
200 }
197 }
201 }
@@ -242,7 +246,7 @@ FocusScope {
242 item.objectName = Qt.binding(function() { return categoryId })
246 item.objectName = Qt.binding(function() { return categoryId })
243 item.scopeStyle = scopeView.scopeStyle;
247 item.scopeStyle = scopeView.scopeStyle;
244 if (baseItem.expandable) {
248 if (baseItem.expandable) {
245− var shouldExpand = categoryId === categoryView.expandedCategoryId;
249+ var shouldExpand = baseItem === categoryView.expandedCategoryItem;
246 baseItem.expand(shouldExpand, false /*animate*/);
250 baseItem.expand(shouldExpand, false /*animate*/);
247 }
251 }
248 updateDelegateCreationRange();
252 updateDelegateCreationRange();
@@ -279,21 +283,21 @@ FocusScope {
279 }
283 }
280 Connections {
284 Connections {
281 target: categoryView
285 target: categoryView
282− onExpandedCategoryIdChanged: {
286+ onExpandedCategoryItemChanged: {
283 collapseAllButExpandedCategory();
287 collapseAllButExpandedCategory();
284 }
288 }
285 function collapseAllButExpandedCategory() {
289 function collapseAllButExpandedCategory() {
286 var item = rendererLoader.item;
290 var item = rendererLoader.item;
287 if (baseItem.expandable) {
291 if (baseItem.expandable) {
288− var shouldExpand = categoryId === categoryView.expandedCategoryId;
292+ var shouldExpand = baseItem === categoryView.expandedCategoryItem;
289 if (shouldExpand != baseItem.expanded) {
293 if (shouldExpand != baseItem.expanded) {
290 // If the filter animation will be seen start it, otherwise, just flip the switch
294 // If the filter animation will be seen start it, otherwise, just flip the switch
291 var shrinkingVisible = !shouldExpand && y + item.collapsedHeight + seeAll.height < categoryView.height;
295 var shrinkingVisible = !shouldExpand && y + item.collapsedHeight + seeAll.height < categoryView.height;
292 var growingVisible = shouldExpand && y + height < categoryView.height;
296 var growingVisible = shouldExpand && y + height < categoryView.height;
293− if (!previewListView.open || shouldExpand) {
297+ if (!subPageLoader.open || shouldExpand) {
294 var animate = shrinkingVisible || growingVisible;
298 var animate = shrinkingVisible || growingVisible;
295 baseItem.expand(shouldExpand, animate)
299 baseItem.expand(shouldExpand, animate)
296− if (shouldExpand && !previewListView.open) {
300+ if (shouldExpand && !subPageLoader.open) {
297 categoryView.maximizeVisibleArea(index, item.expandedHeight + seeAll.height);
301 categoryView.maximizeVisibleArea(index, item.expandedHeight + seeAll.height);
298 }
302 }
299 }
303 }
@@ -346,13 +350,13 @@ FocusScope {
346 left: parent.left
350 left: parent.left
347 right: parent.right
351 right: parent.right
348 }
352 }
349− height: seeAllLabel.visible ? seeAllLabel.font.pixelSize + units.gu(6) : 0
353+ height: seeAllLabel.visible ? seeAllLabel.font.pixelSize + units.gu(4) : 0
350
354
351 onClicked: {
355 onClicked: {
352− if (categoryView.expandedCategoryId != baseItem.category) {
356+ if (categoryView.expandedCategoryItem !== baseItem) {
353− categoryView.expandedCategoryId = baseItem.category;
357+ categoryView.expandedCategoryItem = baseItem;
354 } else {
358 } else {
355− categoryView.expandedCategoryId = "";
359+ categoryView.expandedCategoryItem = null;
356 }
360 }
357 }
361 }
358
362
@@ -424,44 +428,138 @@ FocusScope {
424 searchHint: scopeView.scope && scopeView.scope.searchHint || i18n.tr("Search")
428 searchHint: scopeView.scope && scopeView.scope.searchHint || i18n.tr("Search")
425 showBackButton: scopeView.hasBackAction
429 showBackButton: scopeView.hasBackAction
426 searchEntryEnabled: true
430 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
427 scopeStyle: scopeView.scopeStyle
434 scopeStyle: scopeView.scopeStyle
428 paginationCount: scopeView.paginationCount
435 paginationCount: scopeView.paginationCount
429 paginationIndex: scopeView.paginationIndex
436 paginationIndex: scopeView.paginationIndex
430
437
431 bottomItem: DashNavigation {
438 bottomItem: DashNavigation {
432 scope: scopeView.scope
439 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 }
435 windowHeight: scopeView.height
441 windowHeight: scopeView.height
436 windowWidth: scopeView.width
442 windowWidth: scopeView.width
437 scopeStyle: scopeView.scopeStyle
443 scopeStyle: scopeView.scopeStyle
438 }
444 }
439
445
440 onBackClicked: scopeView.backClicked()
446 onBackClicked: scopeView.backClicked()
447+ onSettingsClicked: subPageLoader.openSubPage("settings")
448+ onFavoriteClicked: scopeView.scope.favorite = !scopeView.scope.favorite
441 }
449 }
442 }
450 }
443 }
451 }
444 }
452 }
445
453
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+
446 LimitProxyModel {
505 LimitProxyModel {
447 id: previewLimitModel
506 id: previewLimitModel
448 }
507 }
449
508
450− PreviewListView {
509+ Loader {
451− id: previewListView
510+ id: subPageLoader
452− objectName: "previewListView"
511+ objectName: "subPageLoader"
453 visible: x != width
512 visible: x != width
454− scope: scopeView.scope
455− scopeStyle: scopeView.scopeStyle
456 width: parent.width
513 width: parent.width
457 height: parent.height
514 height: parent.height
458 anchors.left: categoryView.right
515 anchors.left: categoryView.right
459
516
460− onOpenChanged: {
517+ property bool open: false
461− if (showPageHeader) {
518+ property var scope: scopeView.scope
462− pageHeaderLoader.item.unfocus();
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; } )
463 }
552 }
553+ open = true;
464 }
554 }
465− }
466
555
556+ onOpenChanged: pageHeaderLoader.item.unfocus()
557+
558+ onVisibleChanged: if (!visible) subPage = ""
559+
560+ Connections {
561+ target: subPageLoader.item
562+ onBackClicked: subPageLoader.closeSubPage()
563+ }
564+ }
467}
565}
qml/Dash/PageHeader.qml+81−27
@@ -31,6 +31,9 @@ Item {
31 property string title
31 property string title
32
32
33 property bool searchEntryEnabled: false
33 property bool searchEntryEnabled: false
34+ property bool settingsEnabled: false
35+ property bool favoriteEnabled: false
36+ property bool favorite: false
34 property ListModel searchHistory: SearchHistoryModel
37 property ListModel searchHistory: SearchHistoryModel
35 property alias searchQuery: searchTextField.text
38 property alias searchQuery: searchTextField.text
36 property alias searchHint: searchTextField.placeholderText
39 property alias searchHint: searchTextField.placeholderText
@@ -40,12 +43,11 @@ Item {
40 property int paginationCount: 0
43 property int paginationCount: 0
41 property int paginationIndex: -1
44 property int paginationIndex: -1
42
45
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 :-/
46 property var scopeStyle: null
46 property var scopeStyle: null
47
47
48 signal backClicked()
48 signal backClicked()
49+ signal settingsClicked()
50+ signal favoriteClicked()
49
51
50 onScopeStyleChanged: refreshLogo()
52 onScopeStyleChanged: refreshLogo()
51 onSearchQueryChanged: {
53 onSearchQueryChanged: {
@@ -240,6 +242,7 @@ Item {
240 contentHeight: height
242 contentHeight: height
241 opacity: headerContainer.clip || !headerContainer.showSearch ? 1 : 0 // setting visible false cause column to relayout
243 opacity: headerContainer.clip || !headerContainer.showSearch ? 1 : 0 // setting visible false cause column to relayout
242 separatorSource: ""
244 separatorSource: ""
245+ separatorBottomSource: ""
243 property var styledItem: header
246 property var styledItem: header
244 property string title: root.title
247 property string title: root.title
245 property var config: PageHeadConfiguration {
248 property var config: PageHeadConfiguration {
@@ -247,20 +250,33 @@ Item {
247 backAction: Action {
250 backAction: Action {
248 iconName: "back"
251 iconName: "back"
249 visible: root.showBackButton
252 visible: root.showBackButton
250− onTriggered: {
251− root.backClicked();
253+ onTriggered: root.backClicked()
252− }
253 }
254 }
254
255
255 actions: [
256 actions: [
256 Action {
257 Action {
257 objectName: "search"
258 objectName: "search"
259+ text: i18n.tr("Search")
258 iconName: "search"
260 iconName: "search"
259 visible: root.searchEntryEnabled
261 visible: root.searchEntryEnabled
260 onTriggered: {
262 onTriggered: {
261 headerContainer.showSearch = true;
263 headerContainer.showSearch = true;
262 searchTextField.forceActiveFocus();
264 searchTextField.forceActiveFocus();
263 }
265 }
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()
264 }
280 }
265 ]
281 ]
266 }
282 }
@@ -288,25 +304,6 @@ Item {
288 }
304 }
289 }
305 }
290
306
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−
310 Component {
307 Component {
311 id: popoverComponent
308 id: popoverComponent
312 Popover {
309 Popover {
@@ -344,7 +341,7 @@ Item {
344 }
341 }
345 }
342 }
346
343
347− BorderImage {
344+ Rectangle {
348 id: bottomBorder
345 id: bottomBorder
349 anchors {
346 anchors {
350 top: headerContainer.bottom
347 top: headerContainer.bottom
@@ -353,7 +350,64 @@ Item {
353 bottom: bottomContainer.top
350 bottom: bottomContainer.top
354 }
351 }
355
352
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+ }
357 }
411 }
358
412
359 Item {
413 Item {
qml/Dash/PreviewListView.qml+13−1
@@ -23,9 +23,12 @@ import "Previews" as Previews
23Item {
23Item {
24 id: root
24 id: root
25
25
26+ property int initialIndex: -1
26 property var scope: null
27 property var scope: null
27 property var scopeStyle: null
28 property var scopeStyle: null
28
29
30+ property alias showSignatureLine: header.showSignatureLine
31+
29 property alias open: previewListView.open
32 property alias open: previewListView.open
30 property alias model: previewListView.model
33 property alias model: previewListView.model
31 property alias currentIndex: previewListView.currentIndex
34 property alias currentIndex: previewListView.currentIndex
@@ -35,6 +38,8 @@ Item {
35 readonly property bool processing: currentItem && (!currentItem.previewModel.loaded
38 readonly property bool processing: currentItem && (!currentItem.previewModel.loaded
36 || currentItem.previewModel.processingAction)
39 || currentItem.previewModel.processingAction)
37
40
41+ signal backClicked()
42+
38 PageHeader {
43 PageHeader {
39 id: header
44 id: header
40 objectName: "pageHeader"
45 objectName: "pageHeader"
@@ -44,7 +49,7 @@ Item {
44 searchEntryEnabled: false
49 searchEntryEnabled: false
45 scopeStyle: root.scopeStyle
50 scopeStyle: root.scopeStyle
46
51
47− onBackClicked: root.open = false
52+ onBackClicked: root.backClicked()
48 }
53 }
49
54
50 ListView {
55 ListView {
@@ -78,6 +83,13 @@ Item {
78 }
83 }
79 }
84 }
80
85
86+ onCountChanged: {
87+ if (count > 0 && initialIndex >= 0) {
88+ currentIndex = initialIndex;
89+ initialIndex = -1;
90+ }
91+ }
92+
81 delegate: Previews.Preview {
93 delegate: Previews.Preview {
82 id: preview
94 id: preview
83 objectName: "preview" + index
95 objectName: "preview" + index
qml/Dash/Previews/PreviewActionButton.qml+1−4
@@ -15,16 +15,13 @@
15 */
15 */
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18−import Ubuntu.Components 0.1
18+import Ubuntu.Components 1.1
19
19
20Button {
20Button {
21 signal triggeredAction(var actionData)
21 signal triggeredAction(var actionData)
22
22
23 property var data: null
23 property var data: null
24 objectName: "button" + (data && data.id || "")
24 objectName: "button" + (data && data.id || "")
25− color: Theme.palette.selected.foreground
26 text: data && data.label || ""
25 text: data && data.label || ""
27− iconSource: data && data.icon || ""
28− iconPosition: "left"
29 onClicked: triggeredAction(data)
26 onClicked: triggeredAction(data)
30}
27}
qml/Dash/Previews/PreviewActionCombo.qml+4−2
@@ -15,7 +15,7 @@
15 */
15 */
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18−import Ubuntu.Components 0.1
18+import Ubuntu.Components 1.1
19
19
20Item {
20Item {
21 id: root
21 id: root
@@ -25,6 +25,7 @@ Item {
25 signal triggeredAction(var actionData)
25 signal triggeredAction(var actionData)
26
26
27 property alias model: actionRepeater.model
27 property alias model: actionRepeater.model
28+ property alias strokeColor: moreButton.strokeColor
28
29
29 Button {
30 Button {
30 id: moreButton
31 id: moreButton
@@ -32,7 +33,7 @@ Item {
32
33
33 objectName: "moreLessButton"
34 objectName: "moreLessButton"
34 text: !expanded ? i18n.tr("More...") : i18n.tr("Less...")
35 text: !expanded ? i18n.tr("More...") : i18n.tr("Less...")
35− color: Theme.palette.selected.foreground
36+ strokeColor: Theme.palette.normal.baseText
36 onClicked: expanded = !expanded
37 onClicked: expanded = !expanded
37 width: parent.width
38 width: parent.width
38 }
39 }
@@ -60,6 +61,7 @@ Item {
60 data: modelData
61 data: modelData
61 width: implicitWidth < parent.width ? parent.width : implicitWidth
62 width: implicitWidth < parent.width ? parent.width : implicitWidth
62 onClicked: root.triggeredAction(modelData)
63 onClicked: root.triggeredAction(modelData)
64+ strokeColor: moreButton.strokeColor
63 }
65 }
64 }
66 }
65 }
67 }
qml/Dash/Previews/PreviewActions.qml+6
@@ -46,6 +46,11 @@ PreviewWidget {
46 item.model = row.actions.slice(1);
46 item.model = row.actions.slice(1);
47 }
47 }
48 }
48 }
49+ Binding {
50+ target: loader.item
51+ property: "strokeColor"
52+ value: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
53+ }
49 Connections {
54 Connections {
50 target: loader.item
55 target: loader.item
51 onTriggeredAction: {
56 onTriggeredAction: {
@@ -59,6 +64,7 @@ PreviewWidget {
59 visible: row.actions && row.actions.length > 0
64 visible: row.actions && row.actions.length > 0
60 onTriggeredAction: root.triggered(root.widgetId, actionData.id, actionData)
65 onTriggeredAction: root.triggered(root.widgetId, actionData.id, actionData)
61 width: (root.width - units.gu(1)) / 2
66 width: (root.width - units.gu(1)) / 2
67+ color: root.scopeStyle ? root.scopeStyle.previewButtonColor : Theme.palette.selected.foreground
62 }
68 }
63 }
69 }
64}
70}
qml/Dash/Previews/PreviewExpandable.qml+6−5
@@ -59,9 +59,10 @@ PreviewWidget {
59 }
59 }
60 Icon {
60 Icon {
61 anchors.fill: parent
61 anchors.fill: parent
62− width: 64
62+ width: units.gu(3)
63− height: 64
63+ height: units.gu(3)
64 name: root.expanded ? "view-collapse" : "view-expand"
64 name: root.expanded ? "view-collapse" : "view-expand"
65+ color: root.scopeStyle ? root.scopeStyle.foreground : Theme.palette.normal.baseText
65 }
66 }
66 }
67 }
67
68
@@ -80,9 +81,9 @@ PreviewWidget {
80 delegate: PreviewWidgetFactory {
81 delegate: PreviewWidgetFactory {
81 height: visible ? implicitHeight : 0
82 height: visible ? implicitHeight : 0
82 width: parent.width
83 width: parent.width
83− widgetId: modelData.widgetId
84+ widgetId: model.widgetId
84− widgetType: modelData.type
85+ widgetType: model.type
85− widgetData: modelData.properties
86+ widgetData: model.properties
86 isCurrentPreview: root.isCurrentPreview
87 isCurrentPreview: root.isCurrentPreview
87 scopeStyle: root.scopeStyle
88 scopeStyle: root.scopeStyle
88 anchors {
89 anchors {
qml/Dash/Previews/PreviewPayments.qml+22−3
@@ -37,9 +37,15 @@ PreviewWidget {
37
37
38 color: Theme.palette.selected.foreground
38 color: Theme.palette.selected.foreground
39 text: paymentClient.formattedPrice
39 text: paymentClient.formattedPrice
40+ onClicked: {
40− onClicked: paymentClient.start()
41+ paymentClient.start();
42+ paymentButton.opacity = 0;
43+ }
41 anchors.right: parent.right
44 anchors.right: parent.right
42 width: (root.width - units.gu(1)) / 2
45 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 } }
43
49
44 Payments {
50 Payments {
45 id: paymentClient
51 id: paymentClient
@@ -49,8 +55,21 @@ PreviewWidget {
49 price: source["price"]
55 price: source["price"]
50 currency: source["currency"]
56 currency: source["currency"]
51 storeItemId: source["store_item_id"]
57 storeItemId: source["store_item_id"]
58+ onPurchaseCompleted: {
52− onPurchaseCompleted: root.triggered(widgetId, "purchaseCompleted", source)
59+ root.triggered(widgetId, "purchaseCompleted", source);
60+ }
61+ onPurchaseError: {
53− onPurchaseError: root.triggered(widgetId, "purchaseError", source)
62+ root.triggered(widgetId, "purchaseError", source);
63+ }
54 }
64 }
55 }
65 }
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+ }
56}
75}
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 {
58 case "payments": return "PreviewPayments.qml";
58 case "payments": return "PreviewPayments.qml";
59 case "rating-input": return "PreviewRatingInput.qml";
59 case "rating-input": return "PreviewRatingInput.qml";
60 case "reviews": return "PreviewRatingDisplay.qml";
60 case "reviews": return "PreviewRatingDisplay.qml";
61+ case "table": return "PreviewTable.qml";
61 case "text": return "PreviewTextSummary.qml";
62 case "text": return "PreviewTextSummary.qml";
62 case "video": return "PreviewVideoPlayback.qml";
63 case "video": return "PreviewVideoPlayback.qml";
63 default: return "";
64 default: return "";
@@ -70,7 +71,7 @@ Loader {
70 item.widgetData = Qt.binding(function() { return root.widgetData } )
71 item.widgetData = Qt.binding(function() { return root.widgetData } )
71 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
72 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
72 item.expanded = Qt.binding(function() { return root.expanded } )
73 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 } )
74 }
75 }
75
76
76 Connections {
77 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 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
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
5 * it under the terms of the GNU General Public License as published by
@@ -14,7 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−import QtQuick 2.0;
17+import QtQuick 2.2
18
18
19−Item {
19+ScopeSettingString {
20+ mode: "number"
20}
21}
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 {
148
148
149 ScopeStyle {
149 ScopeStyle {
150 id: overviewScopeStyle
150 id: overviewScopeStyle
151+ style: { "foreground-color" : "white",
151− style: { "foreground-color" : "white", "background-color" : "transparent" }
152+ "background-color" : "transparent",
153+ "page-header": {
154+ "background": "color:///transparent"
155+ }
156+ }
152 }
157 }
153
158
154 DashBackground {
159 DashBackground {
@@ -458,10 +463,13 @@ Item {
458 objectName: "scopesOverviewPreviewListView"
463 objectName: "scopesOverviewPreviewListView"
459 scope: root.scope
464 scope: root.scope
460 scopeStyle: overviewScopeStyle
465 scopeStyle: overviewScopeStyle
466+ showSignatureLine: false
461 visible: x != width
467 visible: x != width
462 width: parent.width
468 width: parent.width
463 height: parent.height
469 height: parent.height
464 anchors.left: scopesOverviewContent.right
470 anchors.left: scopesOverviewContent.right
471+
472+ onBackClicked: open = false
465 }
473 }
466
474
467 Item {
475 Item {
@@ -535,6 +543,19 @@ Item {
535 scopesOverviewXYScaler.opacity = 0;
543 scopesOverviewXYScaler.opacity = 0;
536 middleItems.overrideOpacity = -1;
544 middleItems.overrideOpacity = -1;
537 }
545 }
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+ }
538 }
559 }
539 }
560 }
540}
561}
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 @@
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19+import "../Panel/Indicators"
19import Unity.Indicators 0.1 as Indicators
20import Unity.Indicators 0.1 as Indicators
20
21
21Item {
22Item {
@@ -33,7 +34,7 @@ Item {
33 }
34 }
34 }
35 }
35
36
36− Indicators.CachedUnityMenuModel {
37+ CachedUnityMenuModel {
37 id: timeModel
38 id: timeModel
38 objectName: "timeModel"
39 objectName: "timeModel"
39
40
qml/Greeter/GreeterContent.qml−1
@@ -87,7 +87,6 @@ Item {
87
87
88 onLoaded: {
88 onLoaded: {
89 item.currentIndex = greeterContentLoader.currentIndex;
89 item.currentIndex = greeterContentLoader.currentIndex;
90− item.resetAuthentication();
91 }
90 }
92
91
93 Binding {
92 Binding {
qml/Notifications/Notification.qml+4−3
@@ -52,7 +52,7 @@ Item {
52 implicitHeight: type !== Notification.PlaceHolder ? (fullscreen ? maxHeight : contentColumn.height + contentColumn.spacing * 2) : 0
52 implicitHeight: type !== Notification.PlaceHolder ? (fullscreen ? maxHeight : contentColumn.height + contentColumn.spacing * 2) : 0
53
53
54 color: Qt.rgba(0.132, 0.117, 0.109, 0.97)
54 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
56
56
57 state: {
57 state: {
58 var result = "";
58 var result = "";
@@ -82,7 +82,8 @@ Item {
82 source: hints["suppress-sound"] != "true" && hints["sound-file"] != undefined ? hints["sound-file"] : ""
82 source: hints["suppress-sound"] != "true" && hints["sound-file"] != undefined ? hints["sound-file"] : ""
83 }
83 }
84
84
85− onOpacityChanged: {
85+ // FIXME: using onCompleted because of LP: #1354406 workaround, has to be onOpacityChanged really
86+ Component.onCompleted: {
86 if (opacity == 1.0 && hints["suppress-sound"] != "true" && sound.source) {
87 if (opacity == 1.0 && hints["suppress-sound"] != "true" && sound.source) {
87 sound.play();
88 sound.play();
88 }
89 }
@@ -380,7 +381,7 @@ Item {
380 id: comboRepeater
381 id: comboRepeater
381
382
382 onVisibleChanged: {
383 onVisibleChanged: {
383− comboButton.text = comboRepeater.itemAt(2).actionLabel
384+ comboButton.text = comboRepeater.count >= 3 ? comboRepeater.itemAt(2).actionLabel : ""
384 }
385 }
385
386
386 model: notification.actions
387 model: notification.actions
qml/Notifications/NotificationMenuItemFactory.qml+9−1
@@ -117,7 +117,10 @@ Loader {
117 right: parent.right
117 right: parent.right
118 }
118 }
119 height: menuFactory.maxHeight
119 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
121 background: shell.background
124 background: shell.background
122
125
123 onEntered: {
126 onEntered: {
@@ -127,6 +130,11 @@ Loader {
127 onCancel: {
130 onCancel: {
128 menuModel.activate(menuIndex, false);
131 menuModel.activate(menuIndex, false);
129 }
132 }
133+
134+ onEmergencyCall: {
135+ shell.activateApplication("dialer-app")
136+ menuModel.activate(menuIndex, false)
137+ }
130 }
138 }
131 }
139 }
132}
140}
qml/Notifications/Notifications.qml+5−3
@@ -63,7 +63,8 @@ ListView {
63
63
64 // make sure there's no opacity-difference between the several
64 // make sure there's no opacity-difference between the several
65 // elements in a notification
65 // elements in a notification
66+ // FIXME: disabled all transitions because of LP: #1354406 workaround
66− layer.enabled: add.running || remove.running || populate.running
67+ //layer.enabled: add.running || remove.running || populate.running
67
68
68 Component.onCompleted: {
69 Component.onCompleted: {
69 if (index == 1) {
70 if (index == 1) {
@@ -79,7 +80,8 @@ ListView {
79 }
80 }
80 }
81 }
81
82
83+ // FIXME: disabled all transitions because of LP: #1354406 workaround
82− populate: Transition {
84+ /*populate: Transition {
83 UbuntuNumberAnimation {
85 UbuntuNumberAnimation {
84 property: "opacity"
86 property: "opacity"
85 to: 1
87 to: 1
@@ -107,5 +109,5 @@ ListView {
107 properties: "x,y"
109 properties: "x,y"
108 duration: UbuntuAnimation.SnapDuration
110 duration: UbuntuAnimation.SnapDuration
109 }
111 }
110− }
112+ }*/
111}
113}
tests/mocks/Unity/Indicators/CachedUnityMenuModel.qml → qml/Panel/Indicators/CachedUnityMenuModel.qmlrenamed+14−5
@@ -18,13 +18,22 @@
18 */
18 */
19
19
20import QtQuick 2.0
20import QtQuick 2.0
21+import QMenuModel 0.1
22+import Unity.Indicators 0.1 as Indicators
21
23
24+// Make sure we don't duplicate models.
22Item {
25Item {
26+ id: cachedModel
23− property string busName: ""
27+ property string busName
24− property string actionsObjectPath: ""
28+ property string actionsObjectPath
25− property string menuObjectPath: ""
29+ property string menuObjectPath
30+ readonly property bool ready: busName!=="" && actionsObjectPath!=="" && menuObjectPath!==""
26
31
27− readonly property bool ready: false
32+ property var model: {
33+ if (!ready) return null;
28
34
29− property QtObject model: null
35+ return Indicators.UnityMenuModelCache.model(cachedModel.busName,
36+ cachedModel.menuObjectPath,
37+ { "indicator": cachedModel.actionsObjectPath });
38+ }
30}
39}
qml/Panel/Indicators/DefaultIndicatorWidget.qml+2−1
@@ -63,6 +63,7 @@ IndicatorBase {
63 }
63 }
64
64
65 Row {
65 Row {
66+ id: iconRow
66 anchors {
67 anchors {
67 top: parent.top
68 top: parent.top
68 bottom: parent.bottom
69 bottom: parent.bottom
@@ -73,7 +74,7 @@ IndicatorBase {
73
74
74 Item {
75 Item {
75 width: itemImage.width + units.gu(1)
76 width: itemImage.width + units.gu(1)
76− anchors { top: parent.top; bottom: parent.bottom }
77+ height: iconRow.height
77
78
78 StatusIcon {
79 StatusIcon {
79 id: itemImage
80 id: itemImage
qml/Panel/Indicators/IndicatorBase.qml+4−2
@@ -34,6 +34,7 @@ Item {
34 property string deviceMenuObjectPath: menuObjectPath
34 property string deviceMenuObjectPath: menuObjectPath
35
35
36 property alias menuModel: cachedModel.model
36 property alias menuModel: cachedModel.model
37+ property alias rootActionState: rootAction
37
38
38 CachedUnityMenuModel {
39 CachedUnityMenuModel {
39 id: cachedModel
40 id: cachedModel
@@ -42,8 +43,9 @@ Item {
42 menuObjectPath: indicatorItem.deviceMenuObjectPath
43 menuObjectPath: indicatorItem.deviceMenuObjectPath
43 }
44 }
44
45
45− property RootActionState rootActionState: RootActionState {
46+ RootActionState {
47+ id: rootAction
46− menu: menuModel
48+ menu: menuModel ? menuModel : null
47 onUpdated: indicatorItem.rootActionStateChanged()
49 onUpdated: indicatorItem.rootActionStateChanged()
48 }
50 }
49}
51}
qml/Shell.qml+17−7
@@ -22,6 +22,7 @@ import Ubuntu.Components 0.1
22import Ubuntu.Components.Popups 1.0
22import Ubuntu.Components.Popups 1.0
23import Ubuntu.Gestures 0.1
23import Ubuntu.Gestures 0.1
24import Ubuntu.SystemImage 0.1
24import Ubuntu.SystemImage 0.1
25+import Unity.Connectivity 0.1
25import Unity.Launcher 0.1
26import Unity.Launcher 0.1
26import Utils 0.1
27import Utils 0.1
27import LightDM 0.1 as LightDM
28import LightDM 0.1 as LightDM
@@ -273,15 +274,19 @@ Item {
273
274
274 onShowPrompt: {
275 onShowPrompt: {
275 if (greeter.narrowMode) {
276 if (greeter.narrowMode) {
276− var promptText = text.toLowerCase()
277 if (isDefaultPrompt) {
277 if (isDefaultPrompt) {
278− promptText = lockscreen.alphaNumeric ?
278+ if (lockscreen.alphaNumeric) {
279− i18n.tr("passphrase") : i18n.tr("passcode")
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())
280 }
288 }
281− lockscreen.placeholderText = i18n.tr("Enter your %1").arg(promptText)
289+
282− lockscreen.wrongPlaceholderText = i18n.tr("Incorrect %1").arg(promptText) +
283− "\n" +
284− i18n.tr("Please re-enter")
285 lockscreen.show();
290 lockscreen.show();
286 }
291 }
287 }
292 }
@@ -416,6 +421,11 @@ Item {
416 }
421 }
417 }
422 }
418
423
424+ /* TODO re-enable when the corresponding changes in the service land (LP: #1361074)
425+ Component.onCompleted: {
426+ Connectivity.unlockAllModems()
427+ } */
428+
419 onUnlocked: greeter.hide()
429 onUnlocked: greeter.hide()
420 onSelected: {
430 onSelected: {
421 // Update launcher items for new user
431 // 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 {
110 id: spreadView
110 id: spreadView
111 objectName: "spreadView"
111 objectName: "spreadView"
112 anchors.fill: parent
112 anchors.fill: parent
113− interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1) && draggedIndex == -1
113+ interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1)
114+ && draggedDelegateCount === 0
114 contentWidth: spreadRow.width - shift
115 contentWidth: spreadRow.width - shift
115 contentX: -shift
116 contentX: -shift
116
117
@@ -148,7 +149,7 @@ Rectangle {
148 property int phase: 0
149 property int phase: 0
149
150
150 property int selectedIndex: -1
151 property int selectedIndex: -1
151− property int draggedIndex: -1
152+ property int draggedDelegateCount: 0
152 property int closingIndex: -1
153 property int closingIndex: -1
153
154
154 property bool focusChanging: false
155 property bool focusChanging: false
@@ -269,7 +270,7 @@ Rectangle {
269 swipeToCloseEnabled: spreadView.interactive
270 swipeToCloseEnabled: spreadView.interactive
270 maximizedAppTopMargin: root.maximizedAppTopMargin
271 maximizedAppTopMargin: root.maximizedAppTopMargin
271 dropShadow: spreadView.active ||
272 dropShadow: spreadView.active ||
272− priv.focusedAppDelegate.x !== 0
273+ (priv.focusedAppDelegate && priv.focusedAppDelegate.x !== 0)
273
274
274 readonly property bool isDash: model.appId == "unity8-dash"
275 readonly property bool isDash: model.appId == "unity8-dash"
275
276
@@ -290,6 +291,10 @@ Rectangle {
290 // Otherwise line up for the spread
291 // Otherwise line up for the spread
291 return spreadView.width + (index - 1) * spreadView.tileDistance;
292 return spreadView.width + (index - 1) * spreadView.tileDistance;
292 }
293 }
294+
295+ application: ApplicationManager.get(index)
296+ closeable: !isDash
297+
293 property real behavioredIndex: index
298 property real behavioredIndex: index
294 Behavior on behavioredIndex {
299 Behavior on behavioredIndex {
295 enabled: spreadView.closingIndex >= 0
300 enabled: spreadView.closingIndex >= 0
@@ -372,8 +377,15 @@ Rectangle {
372 }
377 }
373 }
378 }
374
379
380+ onDraggedChanged: {
381+ if (dragged) {
382+ spreadView.draggedDelegateCount++;
383+ } else {
384+ spreadView.draggedDelegateCount--;
385+ }
386+ }
387+
375 onClosed: {
388 onClosed: {
376− spreadView.draggedIndex = -1;
377 spreadView.closingIndex = index;
389 spreadView.closingIndex = index;
378 ApplicationManager.stopApplication(ApplicationManager.get(index).appId);
390 ApplicationManager.stopApplication(ApplicationManager.get(index).appId);
379 }
391 }
qml/Stages/SpreadDelegate.qml+33−63
@@ -14,98 +14,66 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
15 *
16 * Authors: Michael Zanetti <michael.zanetti@canonical.com>
16 * Authors: Michael Zanetti <michael.zanetti@canonical.com>
17+ * Daniel d'Andrada <daniel.dandrada@canonical.com>
17−*/
18+ */
18
19
19import QtQuick 2.0
20import QtQuick 2.0
20−import Unity.Application 0.1
21import Ubuntu.Components 1.1
21import Ubuntu.Components 1.1
22import "../Components"
22import "../Components"
23
23
24Item {
24Item {
25 id: root
25 id: root
26
26
27+ // to be read from outside
28+ readonly property bool dragged: dragArea.moving
29+ signal clicked()
30+ signal closed()
31+
27 // to be set from outside
32 // to be set from outside
28 property bool interactive: true
33 property bool interactive: true
29 property bool dropShadow: true
34 property bool dropShadow: true
30 property real maximizedAppTopMargin
35 property real maximizedAppTopMargin
31 property alias swipeToCloseEnabled: dragArea.enabled
36 property alias swipeToCloseEnabled: dragArea.enabled
37+ property bool closeable
38+ property alias application: appWindow.application
32
39
33− readonly property bool isFullscreen: surface !== null && surfaceContainer.surface.anchors.topMargin == 0
40+ Item {
34−
41+ objectName: "appWindowWithShadow"
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− }
53
42
54− Binding {
43+ y: dragArea.distance
55− target: surface
44+ width: parent.width
56− property: "enabled"
45+ height: parent.height
57− value: root.interactive
58− }
59− Binding {
60− target: surface
61− property: "focus"
62− value: root.interactive
63− }
64
46
65− Connections {
47+ BorderImage {
66− target: surface
48+ anchors {
67− // FIXME: I would rather not need to do this, but currently it doesn't get
49+ fill: appWindow
68− // active focus without it and I don't know why.
50+ margins: -units.gu(2)
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− }
76 }
51 }
52+ source: "graphics/dropshadow2gu.sci"
53+ opacity: root.dropShadow ? .3 : 0
54+ Behavior on opacity { UbuntuNumberAnimation {} }
77 }
55 }
78
56
79− BorderImage {
57+ ApplicationWindow {
80− id: dropShadowImage
58+ id: appWindow
81 anchors {
59 anchors {
82 fill: parent
60 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
87 }
62 }
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− }
93
63
94− transform: Translate {
64+ interactive: root.interactive
95− y: dragArea.distance
96 }
65 }
97 }
66 }
98
67
99 DraggingArea {
68 DraggingArea {
100 id: dragArea
69 id: dragArea
70+ objectName: "dragArea"
101 anchors.fill: parent
71 anchors.fill: parent
102
72
103 property bool moving: false
73 property bool moving: false
104 property real distance: 0
74 property real distance: 0
105
75
106− onMovingChanged: {
76+ readonly property real minSpeedToClose: units.gu(40)
107− spreadView.draggedIndex = moving ? index : -1
108− }
109
77
110 onDragValueChanged: {
78 onDragValueChanged: {
111 if (!dragging) {
79 if (!dragging) {
@@ -124,15 +92,15 @@ Item {
124 }
92 }
125
93
126 onDragEnd: {
94 onDragEnd: {
127− if (model.appId == "unity8-dash") {
95+ if (!root.closeable) {
128 animation.animate("center")
96 animation.animate("center")
129 return;
97 return;
130 }
98 }
131
99
132 // velocity and distance values specified by design prototype
100 // 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) {
134 animation.animate("up")
102 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) {
136 animation.animate("down")
104 animation.animate("down")
137 } else {
105 } else {
138 animation.animate("center")
106 animation.animate("center")
@@ -141,6 +109,7 @@ Item {
141
109
142 UbuntuNumberAnimation {
110 UbuntuNumberAnimation {
143 id: animation
111 id: animation
112+ objectName: "closeAnimation"
144 target: dragArea
113 target: dragArea
145 property: "distance"
114 property: "distance"
146 property bool requestClose: false
115 property bool requestClose: false
@@ -165,9 +134,10 @@ Item {
165 onRunningChanged: {
134 onRunningChanged: {
166 if (!running) {
135 if (!running) {
167 dragArea.moving = false;
136 dragArea.moving = false;
168− dragArea.distance = 0;
169 if (requestClose) {
137 if (requestClose) {
170 root.closed();
138 root.closed();
139+ } else {
140+ dragArea.distance = 0;
171 }
141 }
172 }
142 }
173 }
143 }
qml/Stages/SurfaceContainer.qml+5−11
@@ -26,9 +26,12 @@ Item {
26 if (surface) {
26 if (surface) {
27 surface.parent = container;
27 surface.parent = container;
28 surface.z = 1;
28 surface.z = 1;
29− state = "initial"
30 }
29 }
31 }
30 }
31+ Binding {
32+ target: surface
33+ property: "anchors.fill"; value: container
34+ }
32
35
33 Connections {
36 Connections {
34 target: surface
37 target: surface
@@ -45,7 +48,7 @@ Item {
45 }
48 }
46
49
47 Repeater {
50 Repeater {
48− model: surface.childSurfaces
51+ model: surface ? surface.childSurfaces : null
49
52
50 delegate: Loader {
53 delegate: Loader {
51 z: 2
54 z: 2
@@ -81,8 +84,6 @@ Item {
81 var popped = tmp.pop();
84 var popped = tmp.pop();
82 popped.end();
85 popped.end();
83 d.animations = tmp;
86 d.animations = tmp;
84− } else {
85− container.state = "initial";
86 }
87 }
87 }
88 }
88
89
@@ -96,11 +97,4 @@ Item {
96 id: swipeFromBottom
97 id: swipeFromBottom
97 SwipeFromBottomAnimation {}
98 SwipeFromBottomAnimation {}
98 }
99 }
99−
100− states: [
101− State {
102− name: "initial"
103− PropertyChanges { target: surface; anchors.fill: container }
104− }
105− ]
106}
100}
qml/Stages/TabletStage.qml+13−3
@@ -145,7 +145,8 @@ Rectangle {
145 Flickable {
145 Flickable {
146 id: spreadView
146 id: spreadView
147 anchors.fill: parent
147 anchors.fill: parent
148− interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1) && draggedIndex == -1
148+ interactive: (spreadDragArea.status == DirectionalDragArea.Recognized || phase > 1)
149+ && draggedDelegateCount === 0
149 contentWidth: spreadRow.width - shift
150 contentWidth: spreadRow.width - shift
150 contentX: -shift
151 contentX: -shift
151
152
@@ -189,7 +190,7 @@ Rectangle {
189 readonly property real snapPosition: 0.75
190 readonly property real snapPosition: 0.75
190
191
191 property int selectedIndex: -1
192 property int selectedIndex: -1
192− property int draggedIndex: -1
193+ property int draggedDelegateCount: 0
193 property int closingIndex: -1
194 property int closingIndex: -1
194
195
195 property bool sideStageDragging: sideStageDragHandle.dragging
196 property bool sideStageDragging: sideStageDragHandle.dragging
@@ -475,6 +476,8 @@ Rectangle {
475 swipeToCloseEnabled: spreadView.interactive
476 swipeToCloseEnabled: spreadView.interactive
476 maximizedAppTopMargin: root.maximizedAppTopMargin
477 maximizedAppTopMargin: root.maximizedAppTopMargin
477 dragOffset: !isDash && model.appId == priv.mainStageAppId && root.inverseProgress > 0 ? root.inverseProgress : 0
478 dragOffset: !isDash && model.appId == priv.mainStageAppId && root.inverseProgress > 0 ? root.inverseProgress : 0
479+ application: ApplicationManager.get(index)
480+ closeable: !isDash
478
481
479 readonly property bool isDash: model.appId == "unity8-dash"
482 readonly property bool isDash: model.appId == "unity8-dash"
480
483
@@ -533,8 +536,15 @@ Rectangle {
533 }
536 }
534 }
537 }
535
538
539+ onDraggedChanged: {
540+ if (dragged) {
541+ spreadView.draggedDelegateCount++;
542+ } else {
543+ spreadView.draggedDelegateCount--;
544+ }
545+ }
546+
536 onClosed: {
547 onClosed: {
537− spreadView.draggedIndex = -1;
538 spreadView.closingIndex = index;
548 spreadView.closingIndex = index;
539 ApplicationManager.stopApplication(ApplicationManager.get(index).appId);
549 ApplicationManager.stopApplication(ApplicationManager.get(index).appId);
540 }
550 }
qml/Stages/TransformedSpreadDelegate.qml+1−1
@@ -309,7 +309,7 @@ SpreadDelegate {
309 Scale {
309 Scale {
310 origin { x: 0; y: (spreadView.height * priv.scale) + maximizedAppTopMargin * 3 }
310 origin { x: 0; y: (spreadView.height * priv.scale) + maximizedAppTopMargin * 3 }
311 xScale: 1
311 xScale: 1
312− yScale: isFullscreen ? 1 - priv.topMarginProgress * maximizedAppTopMargin / spreadView.height : 1
312+ yScale: fullscreen ? 1 - priv.topMarginProgress * maximizedAppTopMargin / spreadView.height : 1
313 },
313 },
314 Translate {
314 Translate {
315 x: priv.xTranslate
315 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):
140
140
141 def enter_search_query(self, query):
141 def enter_search_query(self, query):
142 current_header = self._get_current_page_header()
142 current_header = self._get_current_page_header()
143+ search_button = current_header.select_single(objectName="search_header_button")
143− self.pointing_device.move(current_header.globalRect.x +
144+ self.pointing_device.move(search_button.globalRect.x + search_button.width / 2,
144− current_header.width - current_header.height / 4,
145+ search_button.globalRect.y + search_button.height / 2)
145− current_header.globalRect.y +
146− current_header.height / 4)
147 self.pointing_device.click()
146 self.pointing_device.click()
148 headerContainer = current_header.select_single(
147 headerContainer = current_header.select_single(
149 objectName="headerContainer")
148 objectName="headerContainer")
@@ -186,7 +185,8 @@ class GenericScopeView(emulators.UnityEmulatorBase):
186 # --elopio - 2014-1-14
185 # --elopio - 2014-1-14
187 self.click_scope_item(category, app_name)
186 self.click_scope_item(category, app_name)
188 preview_list = self.wait_select_single(
187 preview_list = self.wait_select_single(
189− 'PreviewListView', objectName='previewListView')
188+ 'QQuickLoader', objectName='subPageLoader')
189+ preview_list.subPageShown.wait_for(True)
190 preview_list.x.wait_for(0)
190 preview_list.x.wait_for(0)
191 return preview_list.select_single(
191 return preview_list.select_single(
192 Preview, objectName='preview{}'.format(preview_list.currentIndex))
192 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):
54 self.main_window.enter_pin_code("1234")
54 self.main_window.enter_pin_code("1234")
55 self.assertThat(lockscreen.shown, Eventually(Equals(False)))
55 self.assertThat(lockscreen.shown, Eventually(Equals(False)))
56 else:
56 else:
57− self._enter_prompt_passphrase("1234")
57+ self._enter_prompt_passphrase("1234\n")
58 self.assertThat(greeter.shown, Eventually(Equals(False)))
58 self.assertThat(greeter.shown, Eventually(Equals(False)))
59
59
60 @with_lightdm_mock("single-passphrase")
60 @with_lightdm_mock("single-passphrase")
@@ -86,7 +86,7 @@ class TestLockscreen(UnityTestCase):
86 self.assertThat(pinentryField.text, Eventually(Equals("")))
86 self.assertThat(pinentryField.text, Eventually(Equals("")))
87 self.assertThat(lockscreen.shown, Eventually(Equals(True)))
87 self.assertThat(lockscreen.shown, Eventually(Equals(True)))
88 else:
88 else:
89− self._enter_prompt_passphrase("4231")
89+ self._enter_prompt_passphrase("4231\n")
90 prompt = self.main_window.get_greeter().get_prompt()
90 prompt = self.main_window.get_greeter().get_prompt()
91 self.assertThat(prompt.text, Eventually(Equals("")))
91 self.assertThat(prompt.text, Eventually(Equals("")))
92 self.assertThat(greeter.shown, Eventually(Equals(True)))
92 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
27 Q_PROPERTY(QByteArray id READ id WRITE setId)
27 Q_PROPERTY(QByteArray id READ id WRITE setId)
28
28
29public:
29public:
30− GSettingsSchemaQml(QObject *parent = NULL);
30+ GSettingsSchemaQml(QObject *parent = nullptr);
31
31
32 QByteArray id() const;
32 QByteArray id() const;
33 void setId(const QByteArray &id);
33 void setId(const QByteArray &id);
@@ -48,7 +48,7 @@ class GSettingsQml: public QObject
48 Q_PROPERTY(QString pictureUri READ pictureUri WRITE setPictureUri NOTIFY pictureUriChanged)
48 Q_PROPERTY(QString pictureUri READ pictureUri WRITE setPictureUri NOTIFY pictureUriChanged)
49
49
50public:
50public:
51− GSettingsQml(QObject *parent = NULL);
51+ GSettingsQml(QObject *parent = nullptr);
52 ~GSettingsQml();
52 ~GSettingsQml();
53
53
54 GSettingsSchemaQml * schema() const;
54 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*/)
48 HUD_CLIENT_TYPE_QUERY,
48 HUD_CLIENT_TYPE_QUERY,
49 G_SIGNAL_RUN_LAST,
49 G_SIGNAL_RUN_LAST,
50 0, /* offset */
50 0, /* offset */
51− NULL, NULL, /* Accumulator */
51+ nullptr, nullptr, /* Accumulator */
52 g_cclosure_marshal_VOID__VOID,
52 g_cclosure_marshal_VOID__VOID,
53 G_TYPE_NONE, 0, G_TYPE_NONE);
53 G_TYPE_NONE, 0, G_TYPE_NONE);
54}
54}
@@ -56,7 +56,7 @@ static void hud_client_query_class_init(HudClientQueryClass * /*klass*/)
56HudClientQuery *hud_client_query_new(const gchar *query)
56HudClientQuery *hud_client_query_new(const gchar *query)
57{
57{
58 HudClientStub::m_lastSetQuery = QString::fromUtf8(query);
58 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));
60 return HudClientStub::m_query;
60 return HudClientStub::m_query;
61}
61}
62
62
@@ -70,13 +70,13 @@ DeeModel *hud_client_query_get_results_model(HudClientQuery *cquery)
70 GVariant * columns[G_N_ELEMENTS(results_model_schema) + 1];
70 GVariant * columns[G_N_ELEMENTS(results_model_schema) + 1];
71 columns[0] = g_variant_new_variant(g_variant_new_uint64(0));
71 columns[0] = g_variant_new_variant(g_variant_new_uint64(0));
72 columns[1] = g_variant_new_string("Help");
72 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);
74 columns[3] = g_variant_new_string("Get Help");
74 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);
76 columns[5] = g_variant_new_string("");
76 columns[5] = g_variant_new_string("");
77 columns[6] = g_variant_new_uint32(3);
77 columns[6] = g_variant_new_uint32(3);
78 columns[7] = g_variant_new_boolean(false);
78 columns[7] = g_variant_new_boolean(false);
79− columns[8] = NULL;
79+ columns[8] = nullptr;
80 dee_model_append_row(resultsModel, columns);
80 dee_model_append_row(resultsModel, columns);
81
81
82 columns[0] = g_variant_new_variant(g_variant_new_uint64(1));
82 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
153 HudClientStub::m_lastExecutedParametrizedCommandRow = i;
153 HudClientStub::m_lastExecutedParametrizedCommandRow = i;
154 g_variant_unref(it_command);
154 g_variant_unref(it_command);
155 // No need to create a real HudClientParam since it's always passed down to us
155 // 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);
157 }
157 }
158 g_variant_unref(it_command);
158 g_variant_unref(it_command);
159 }
159 }
160 }
160 }
161 HudClientStub::m_lastExecutedParametrizedCommandRow = -1;
161 HudClientStub::m_lastExecutedParametrizedCommandRow = -1;
162− return NULL;
162+ return nullptr;
163}
163}
164
164
165void hud_client_query_voice_query(HudClientQuery *cquery)
165void hud_client_query_voice_query(HudClientQuery *cquery)
@@ -183,7 +183,7 @@ GMenuModel *hud_client_param_get_model(HudClientParam *param)
183
183
184 if (!parametrizedActionModel) {
184 if (!parametrizedActionModel) {
185 GMenu *menu = g_menu_new();
185 GMenu *menu = g_menu_new();
186− GMenuItem *item = g_menu_item_new("Item1Label", NULL);
186+ GMenuItem *item = g_menu_item_new("Item1Label", nullptr);
187 g_menu_item_set_attribute_value(item, "parameter-type", g_variant_new_string("slider"));
187 g_menu_item_set_attribute_value(item, "parameter-type", g_variant_new_string("slider"));
188 g_menu_item_set_attribute_value(item, "min", g_variant_new_double(10));
188 g_menu_item_set_attribute_value(item, "min", g_variant_new_double(10));
189 g_menu_item_set_attribute_value(item, "max", g_variant_new_double(80));
189 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)
220 GSimpleAction *action = g_simple_action_new("costAction", G_VARIANT_TYPE_DOUBLE);
220 GSimpleAction *action = g_simple_action_new("costAction", G_VARIANT_TYPE_DOUBLE);
221 g_simple_action_group_insert(actionGroup, G_ACTION(action));
221 g_simple_action_group_insert(actionGroup, G_ACTION(action));
222
222
223− g_signal_connect (action, "activate", G_CALLBACK (on_signal_activated), NULL);
223+ g_signal_connect (action, "activate", G_CALLBACK (on_signal_activated), nullptr);
224
224
225
225
226 parametrizedActionGroup = G_ACTION_GROUP(actionGroup);
226 parametrizedActionGroup = G_ACTION_GROUP(actionGroup);
tests/mocks/LightDM/demo/GreeterPrivate.cpp+63−24
@@ -33,6 +33,12 @@ class GreeterImpl : public QObject
33{
33{
34 Q_OBJECT
34 Q_OBJECT
35
35
36+ struct AppData
37+ {
38+ GreeterImpl *impl;
39+ pam_handle *handle;
40+ };
41+
36 typedef QFutureInterface<QString> ResponseFuture;
42 typedef QFutureInterface<QString> ResponseFuture;
37
43
38public:
44public:
@@ -40,38 +46,42 @@ public:
40 : QObject(parent),
46 : QObject(parent),
41 greeter(parent),
47 greeter(parent),
42 greeterPrivate(greeterPrivate),
48 greeterPrivate(greeterPrivate),
43− pamHandle(NULL)
49+ pamHandle(nullptr)
44 {
50 {
45 qRegisterMetaType<QLightDM::GreeterImpl::ResponseFuture>("QLightDM::GreeterImpl::ResponseFuture");
51 qRegisterMetaType<QLightDM::GreeterImpl::ResponseFuture>("QLightDM::GreeterImpl::ResponseFuture");
46
52
47 connect(&futureWatcher, SIGNAL(finished()),
53 connect(&futureWatcher, SIGNAL(finished()),
48 this, SLOT(finishPam()));
54 this, SLOT(finishPam()));
49− connect(this, SIGNAL(showMessage(QString, QLightDM::Greeter::MessageType)),
55+ connect(this, SIGNAL(showMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)),
50− greeter, SIGNAL(showMessage(QString, QLightDM::Greeter::MessageType)));
56+ this, SLOT(handleMessage(pam_handle *, QString, QLightDM::Greeter::MessageType)));
51 // This next connect is how we pass ResponseFutures between threads
57 // This next connect is how we pass ResponseFutures between threads
52− connect(this, SIGNAL(showPrompt(QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)),
58+ connect(this, SIGNAL(showPrompt(pam_handle *, QString, QLightDM::Greeter::PromptType, QLightDM::GreeterImpl::ResponseFuture)),
53− this, SLOT(handlePrompt(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();
54 }
65 }
55
66
56 void start(QString username)
67 void start(QString username)
57 {
68 {
58− // Clear out any existing PAM interactions first (we can't simply
69+ // Clear out any existing PAM interactions first
59− // cancel our QFuture because QtConcurrent::run doesn't support cancel)
70+ cancelPam();
60− if (pamHandle != NULL) {
71+
61− pam_handle *handle = pamHandle;
72+ AppData *appData = new AppData();
62− pamHandle = NULL; // to disable normal finishPam() handling
73+ appData->impl = this;
63− while (respond(QString())); // clear our local queue of QFutures
64− pam_end(handle, PAM_CONV_ERR);
65− }
66
74
67 // Now actually start a new conversation with PAM
75 // Now actually start a new conversation with PAM
68 pam_conv conversation;
76 pam_conv conversation;
69 conversation.conv = converseWithPam;
77 conversation.conv = converseWithPam;
70− conversation.appdata_ptr = static_cast<void*>(this);
78+ conversation.appdata_ptr = static_cast<void*>(appData);
71
79
72 if (pam_start("lightdm", username.toUtf8(), &conversation, &pamHandle) == PAM_SUCCESS) {
80 if (pam_start("lightdm", username.toUtf8(), &conversation, &pamHandle) == PAM_SUCCESS) {
81+ appData->handle = pamHandle;
73 futureWatcher.setFuture(QtConcurrent::run(authenticateWithPam, pamHandle));
82 futureWatcher.setFuture(QtConcurrent::run(authenticateWithPam, pamHandle));
74 } else {
83 } else {
84+ delete appData;
75 greeterPrivate->authenticated = false;
85 greeterPrivate->authenticated = false;
76 Q_EMIT greeter->showMessage("Internal error: could not start PAM authentication", QLightDM::Greeter::MessageTypeError);
86 Q_EMIT greeter->showMessage("Internal error: could not start PAM authentication", QLightDM::Greeter::MessageTypeError);
77 Q_EMIT greeter->authenticationComplete();
87 Q_EMIT greeter->authenticationComplete();
@@ -103,7 +113,9 @@ public:
103 if (!tmp_response)
113 if (!tmp_response)
104 return PAM_CONV_ERR;
114 return PAM_CONV_ERR;
105
115
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;
107
119
108 int count;
120 int count;
109 QVector<ResponseFuture> responses;
121 QVector<ResponseFuture> responses;
@@ -117,7 +129,7 @@ public:
117 QString message(msg[count]->msg);
129 QString message(msg[count]->msg);
118 responses.append(ResponseFuture());
130 responses.append(ResponseFuture());
119 responses.last().reportStarted();
131 responses.last().reportStarted();
120− Q_EMIT impl->showPrompt(message, Greeter::PromptTypeQuestion, responses.last());
132+ Q_EMIT impl->showPrompt(handle, message, Greeter::PromptTypeQuestion, responses.last());
121 break;
133 break;
122 }
134 }
123 case PAM_PROMPT_ECHO_OFF:
135 case PAM_PROMPT_ECHO_OFF:
@@ -125,19 +137,19 @@ public:
125 QString message(msg[count]->msg);
137 QString message(msg[count]->msg);
126 responses.append(ResponseFuture());
138 responses.append(ResponseFuture());
127 responses.last().reportStarted();
139 responses.last().reportStarted();
128− Q_EMIT impl->showPrompt(message, Greeter::PromptTypeSecret, responses.last());
140+ Q_EMIT impl->showPrompt(handle, message, Greeter::PromptTypeSecret, responses.last());
129 break;
141 break;
130 }
142 }
131 case PAM_TEXT_INFO:
143 case PAM_TEXT_INFO:
132 {
144 {
133 QString message(msg[count]->msg);
145 QString message(msg[count]->msg);
134− Q_EMIT impl->showMessage(message, Greeter::MessageTypeInfo);
146+ Q_EMIT impl->showMessage(handle, message, Greeter::MessageTypeInfo);
135 break;
147 break;
136 }
148 }
137 default:
149 default:
138 {
150 {
139 QString message(msg[count]->msg);
151 QString message(msg[count]->msg);
140− Q_EMIT impl->showMessage(message, Greeter::MessageTypeError);
152+ Q_EMIT impl->showMessage(handle, message, Greeter::MessageTypeError);
141 break;
153 break;
142 }
154 }
143 }
155 }
@@ -159,6 +171,8 @@ public:
159 }
171 }
160 }
172 }
161
173
174+ delete appData;
175+
162 if (raise_error)
176 if (raise_error)
163 {
177 {
164 for (int i = 0; i < count; ++i)
178 for (int i = 0; i < count; ++i)
@@ -186,32 +200,57 @@ public Q_SLOTS:
186 }
200 }
187
201
188Q_SIGNALS:
202Q_SIGNALS:
189− void showMessage(QString text, QLightDM::Greeter::MessageType type);
203+ void showMessage(pam_handle *handle, QString text, QLightDM::Greeter::MessageType type);
190− void showPrompt(QString text, QLightDM::Greeter::PromptType type, QLightDM::GreeterImpl::ResponseFuture response);
204+ void showPrompt(pam_handle *handle, QString text, QLightDM::Greeter::PromptType type, QLightDM::GreeterImpl::ResponseFuture response);
191
205
192private Q_SLOTS:
206private Q_SLOTS:
193 void finishPam()
207 void finishPam()
194 {
208 {
195− if (pamHandle == NULL) {
209+ if (pamHandle == nullptr) {
196 return;
210 return;
197 }
211 }
198
212
199 int pamStatus = futureWatcher.result();
213 int pamStatus = futureWatcher.result();
200
214
201 pam_end(pamHandle, pamStatus);
215 pam_end(pamHandle, pamStatus);
202− pamHandle = NULL;
216+ pamHandle = nullptr;
203
217
204 greeterPrivate->authenticated = (pamStatus == PAM_SUCCESS);
218 greeterPrivate->authenticated = (pamStatus == PAM_SUCCESS);
205 Q_EMIT greeter->authenticationComplete();
219 Q_EMIT greeter->authenticationComplete();
206 }
220 }
207
221
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+
208− void handlePrompt(QString text, QLightDM::Greeter::PromptType type, QLightDM::GreeterImpl::ResponseFuture future)
230+ void handlePrompt(pam_handle *handle, QString text, QLightDM::Greeter::PromptType type, QLightDM::GreeterImpl::ResponseFuture future)
209 {
231 {
232+ if (handle != pamHandle) {
233+ future.reportResult(QString());
234+ future.reportFinished();
235+ return;
236+ }
237+
210 futures.enqueue(future);
238 futures.enqueue(future);
211 Q_EMIT greeter->showPrompt(text, type);
239 Q_EMIT greeter->showPrompt(text, type);
212 }
240 }
213
241
214private:
242private:
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+
215 Greeter *greeter;
254 Greeter *greeter;
216 GreeterPrivate *greeterPrivate;
255 GreeterPrivate *greeterPrivate;
217 pam_handle* pamHandle;
256 pam_handle* pamHandle;
tests/mocks/QMenuModel/unitymenumodel.cpp+8−9
@@ -17,7 +17,6 @@
17 */
17 */
18
18
19#include "unitymenumodel.h"
19#include "unitymenumodel.h"
20−#include <QDebug>
21
20
22enum MenuRoles {
21enum MenuRoles {
23 LabelRole = Qt::DisplayRole + 1,
22 LabelRole = Qt::DisplayRole + 1,
@@ -38,6 +37,10 @@ UnityMenuModel::UnityMenuModel(QObject *parent)
38{
37{
39}
38}
40
39
40+UnityMenuModel::~UnityMenuModel()
41+{
42+}
43+
41QVariant UnityMenuModel::modelData() const
44QVariant UnityMenuModel::modelData() const
42{
45{
43 return m_modelData;
46 return m_modelData;
@@ -83,10 +86,6 @@ void UnityMenuModel::removeRow(int row)
83 endRemoveRows();
86 endRemoveRows();
84}
87}
85
88
86−UnityMenuModel::~UnityMenuModel()
87−{
88−}
89−
90QByteArray UnityMenuModel::busName() const
89QByteArray UnityMenuModel::busName() const
91{
90{
92 return m_busName;
91 return m_busName;
@@ -119,7 +118,7 @@ void UnityMenuModel::setMenuObjectPath(const QByteArray &path)
119
118
120ActionStateParser* UnityMenuModel::actionStateParser() const
119ActionStateParser* UnityMenuModel::actionStateParser() const
121{
120{
122− return NULL;
121+ return nullptr;
123}
122}
124
123
125void UnityMenuModel::setActionStateParser(ActionStateParser*)
124void UnityMenuModel::setActionStateParser(ActionStateParser*)
@@ -191,11 +190,11 @@ QHash<int, QByteArray> UnityMenuModel::roleNames() const
191QObject * UnityMenuModel::submenu(int position, QQmlComponent*)
190QObject * UnityMenuModel::submenu(int position, QQmlComponent*)
192{
191{
193 if (position < 0 || m_modelData.count() < position) {
192 if (position < 0 || m_modelData.count() < position) {
194− return NULL;
193+ return nullptr;
195 }
194 }
196
195
197 while (submenus.count() <= position) {
196 while (submenus.count() <= position) {
198− submenus.append(NULL);
197+ submenus.append(nullptr);
199 }
198 }
200
199
201 QVariant submenuData = subMenuData(position);
200 QVariant submenuData = subMenuData(position);
@@ -210,7 +209,7 @@ QObject * UnityMenuModel::submenu(int position, QQmlComponent*)
210 return model;
209 return model;
211 }
210 }
212
211
213− return NULL;
212+ return nullptr;
214}
213}
215
214
216bool UnityMenuModel::loadExtendedAttributes(int, const QVariantMap &)
215bool UnityMenuModel::loadExtendedAttributes(int, const QVariantMap &)
tests/mocks/QMenuModel/unitymenumodel.h+2−2
@@ -35,7 +35,7 @@ class Q_DECL_EXPORT UnityMenuModel : public QAbstractListModel
35 Q_PROPERTY(QString nameOwner READ nameOwner NOTIFY nameOwnerChanged)
35 Q_PROPERTY(QString nameOwner READ nameOwner NOTIFY nameOwnerChanged)
36
36
37public:
37public:
38− UnityMenuModel(QObject *parent = NULL);
38+ UnityMenuModel(QObject *parent = nullptr);
39 virtual ~UnityMenuModel();
39 virtual ~UnityMenuModel();
40
40
41 Q_INVOKABLE void insertRow(int row, const QVariant& data);
41 Q_INVOKABLE void insertRow(int row, const QVariant& data);
@@ -66,7 +66,7 @@ public:
66 QModelIndex parent(const QModelIndex &index) const;
66 QModelIndex parent(const QModelIndex &index) const;
67 QHash<int, QByteArray> roleNames() const;
67 QHash<int, QByteArray> roleNames() const;
68
68
69− Q_INVOKABLE QObject * submenu(int position, QQmlComponent* actionStateParser = NULL);
69+ Q_INVOKABLE QObject * submenu(int position, QQmlComponent* actionStateParser = nullptr);
70 Q_INVOKABLE bool loadExtendedAttributes(int position, const QVariantMap &schema);
70 Q_INVOKABLE bool loadExtendedAttributes(int position, const QVariantMap &schema);
71 Q_INVOKABLE QVariant get(int row, const QByteArray &role);
71 Q_INVOKABLE QVariant get(int row, const QByteArray &role);
72
72
tests/mocks/QtMultimedia/audio.cpp+1−1
@@ -22,7 +22,7 @@ Audio::Audio(QObject* parent):
22 QObject(parent),
22 QObject(parent),
23 m_playbackState(StoppedState)
23 m_playbackState(StoppedState)
24{
24{
25− qsrand(time(NULL));
25+ qsrand(time(nullptr));
26 m_timer.setInterval(1000);
26 m_timer.setInterval(1000);
27 connect(&m_timer, SIGNAL(timeout()), SLOT(timerEvent()));
27 connect(&m_timer, SIGNAL(timeout()), SLOT(timerEvent()));
28}
28}
tests/mocks/Unity/Application/Application.qmltypes−19
@@ -7,25 +7,6 @@ import QtQuick.tooling 1.1
7// 'qmlplugindump -notrelocatable Unity.Application 0.1 tests/mocks'
7// 'qmlplugindump -notrelocatable Unity.Application 0.1 tests/mocks'
8
8
9Module {
9Module {
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− }
29 Component {
10 Component {
30 name: "ApplicationInfo"
11 name: "ApplicationInfo"
31 prototype: "unity::shell::application::ApplicationInfoInterface"
12 prototype: "unity::shell::application::ApplicationInfoInterface"
tests/mocks/Unity/Application/ApplicationDBusAdaptor.cpp+1−1
@@ -33,7 +33,7 @@ MirSurfaceItem* topSurface(MirSurfaceItem* surface)
33 if (!surface)
33 if (!surface)
34 return nullptr;
34 return nullptr;
35
35
36− MirSurfaceItem* child = NULL;
36+ MirSurfaceItem* child = nullptr;
37 Q_FOREACH (MirSurfaceItem *childSurface, surface->childSurfaceList()) {
37 Q_FOREACH (MirSurfaceItem *childSurface, surface->childSurfaceList()) {
38 child = topSurface(childSurface);
38 child = topSurface(childSurface);
39 if (child) {
39 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 @@
18#include "MirSurfaceItem.h"
18#include "MirSurfaceItem.h"
19#include "SurfaceManager.h"
19#include "SurfaceManager.h"
20
20
21+#include <paths.h>
22+
21#include <QGuiApplication>
23#include <QGuiApplication>
22#include <QQuickItem>
24#include <QQuickItem>
23#include <QQuickView>
25#include <QQuickView>
@@ -31,10 +33,10 @@ ApplicationInfo::ApplicationInfo(const QString &appId, QObject *parent)
31 , m_state(Starting)
33 , m_state(Starting)
32 , m_focused(false)
34 , m_focused(false)
33 , m_fullscreen(false)
35 , m_fullscreen(false)
34− , m_parentItem(0)
35 , m_surface(0)
36 , m_surface(0)
37+ , m_manualSurfaceCreation(false)
38+ , m_parentItem(0)
36{
39{
37− connect(this, &ApplicationInfo::stateChanged, this, &ApplicationInfo::onStateChanged);
38}
40}
39
41
40ApplicationInfo::ApplicationInfo(QObject *parent)
42ApplicationInfo::ApplicationInfo(QObject *parent)
@@ -43,10 +45,10 @@ ApplicationInfo::ApplicationInfo(QObject *parent)
43 , m_state(Starting)
45 , m_state(Starting)
44 , m_focused(false)
46 , m_focused(false)
45 , m_fullscreen(false)
47 , m_fullscreen(false)
46− , m_parentItem(0)
47 , m_surface(0)
48 , m_surface(0)
49+ , m_manualSurfaceCreation(false)
50+ , m_parentItem(0)
48{
51{
49− connect(this, &ApplicationInfo::stateChanged, this, &ApplicationInfo::onStateChanged);
50}
52}
51
53
52ApplicationInfo::~ApplicationInfo()
54ApplicationInfo::~ApplicationInfo()
@@ -58,23 +60,16 @@ ApplicationInfo::~ApplicationInfo()
58 }
60 }
59}
61}
60
62
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−
70void ApplicationInfo::createSurface()
63void ApplicationInfo::createSurface()
71{
64{
72 if (m_surface || state() == ApplicationInfo::Stopped) return;
65 if (m_surface || state() == ApplicationInfo::Stopped) return;
73
66
67+ QUrl screenshotUrl = QString("file://%1").arg(m_screenshotFileName);
68+
74 setSurface(new MirSurfaceItem(name(),
69 setSurface(new MirSurfaceItem(name(),
75 MirSurfaceItem::Normal,
70 MirSurfaceItem::Normal,
76 fullscreen() ? MirSurfaceItem::Fullscreen : MirSurfaceItem::Maximized,
71 fullscreen() ? MirSurfaceItem::Fullscreen : MirSurfaceItem::Maximized,
77− screenshot()));
72+ screenshotUrl));
78}
73}
79
74
80void ApplicationInfo::setSurface(MirSurfaceItem* surface)
75void ApplicationInfo::setSurface(MirSurfaceItem* surface)
@@ -152,3 +147,77 @@ MirSurfaceItem* ApplicationInfo::promptSurfaceAt(QQmlListProperty<MirSurfaceItem
152 return nullptr;
147 return nullptr;
153 return p->m_promptSurfaces[index];
148 return p->m_promptSurfaces[index];
154}
149}
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;
26// unity-api
26// unity-api
27#include <unity/shell/application/ApplicationInfoInterface.h>
27#include <unity/shell/application/ApplicationInfoInterface.h>
28
28
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−
33using namespace unity::shell::application;
29using namespace unity::shell::application;
34
30
35class ApplicationInfo : public ApplicationInfoInterface {
31class ApplicationInfo : public ApplicationInfoInterface {
36 Q_OBJECT
32 Q_OBJECT
37
33
38 Q_PROPERTY(bool fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
34 Q_PROPERTY(bool fullscreen READ fullscreen WRITE setFullscreen NOTIFY fullscreenChanged)
39− Q_PROPERTY(Stage stage READ stage WRITE setStage NOTIFY stageChanged)
40 Q_PROPERTY(MirSurfaceItem* surface READ surface NOTIFY surfaceChanged)
35 Q_PROPERTY(MirSurfaceItem* surface READ surface NOTIFY surfaceChanged)
41 Q_PROPERTY(QQmlListProperty<MirSurfaceItem> promptSurfaces READ promptSurfaces NOTIFY promptSurfacesChanged DESIGNABLE false)
36 Q_PROPERTY(QQmlListProperty<MirSurfaceItem> promptSurfaces READ promptSurfaces NOTIFY promptSurfacesChanged DESIGNABLE false)
42
37
43 // Only exists in this fake implementation
38 // Only exists in this fake implementation
44
39
45− // QML component used to represent its image/screenhot
40+ // whether the test code will explicitly control the creation of the application surface
46− Q_PROPERTY(QString imageQml READ imageQml WRITE setImageQml NOTIFY imageQmlChanged)
41+ Q_PROPERTY(bool manualSurfaceCreation READ manualSurfaceCreation WRITE setManualSurfaceCreation NOTIFY manualSurfaceCreationChanged)
47−
48− // QML component used to represent the application window
49− Q_PROPERTY(QString windowQml READ windowQml WRITE setWindowQml NOTIFY windowQmlChanged)
50
42
51public:
43public:
52− ApplicationInfo(QObject *parent = NULL);
44+ ApplicationInfo(QObject *parent = nullptr);
53− ApplicationInfo(const QString &appId, QObject *parent = NULL);
45+ ApplicationInfo(const QString &appId, QObject *parent = nullptr);
54 ~ApplicationInfo();
46 ~ApplicationInfo();
55
47
56− #define IMPLEMENT_PROPERTY(name, Name, type) \
48+ void setIconId(const QString &iconId);
57− public: \
49+ void setScreenshotId(const QString &screenshotId);
58− type name() const { return m_##name; } \
50+
59− void set##Name(const type& value) \
51+ void setAppId(const QString &value) { m_appId = value; }
60− { \
52+ QString appId() const override { return m_appId; }
61− if (m_##name != value) { \
53+
62− m_##name = value; \
54+ void setName(const QString &value);
63− Q_EMIT name##Changed(value); \
55+ QString name() const override { return m_name; }
64− } \
56+
65− } \
57+ QString comment() const override { return QString(); }
66− Q_SIGNALS: \
58+
67− void name##Changed(const type&); \
59+ QUrl icon() const override { return m_icon; }
68− private: \
60+
69− type m_##name;
61+ void setStage(Stage value);
70−
62+ Stage stage() const override { return m_stage; }
71− IMPLEMENT_PROPERTY(appId, AppId, QString)
63+
72− IMPLEMENT_PROPERTY(name, Name, QString)
64+ Q_INVOKABLE void setState(State value);
73− IMPLEMENT_PROPERTY(comment, Comment, QString)
65+ State state() const override { return m_state; }
74− IMPLEMENT_PROPERTY(icon, Icon, QUrl)
66+
75− IMPLEMENT_PROPERTY(stage, Stage, Stage)
67+ void setFocused(bool value);
76− IMPLEMENT_PROPERTY(state, State, State)
68+ bool focused() const override { return m_focused; }
77− IMPLEMENT_PROPERTY(focused, Focused, bool)
69+
78− IMPLEMENT_PROPERTY(fullscreen, Fullscreen, bool)
70+ QString screenshot() const { return m_screenshotFileName; }
79− IMPLEMENT_PROPERTY(imageQml, ImageQml, QString)
71+
80− IMPLEMENT_PROPERTY(windowQml, WindowQml, QString)
72+ void setFullscreen(bool value);
81− IMPLEMENT_PROPERTY(screenshot, Screenshot, QUrl)
73+ bool fullscreen() const { return m_fullscreen; }
82−
83− #undef IMPLEMENT_PROPERTY
84
74
85−public:
86 void setSurface(MirSurfaceItem* surface);
75 void setSurface(MirSurfaceItem* surface);
87 MirSurfaceItem* surface() const { return m_surface; }
76 MirSurfaceItem* surface() const { return m_surface; }
88
77
@@ -92,21 +81,38 @@ public:
92 QList<MirSurfaceItem*> promptSurfaceList() const;
81 QList<MirSurfaceItem*> promptSurfaceList() const;
93 QQmlListProperty<MirSurfaceItem> promptSurfaces();
82 QQmlListProperty<MirSurfaceItem> promptSurfaces();
94
83
84+ bool manualSurfaceCreation() const { return m_manualSurfaceCreation; }
85+ void setManualSurfaceCreation(bool value);
86+
95Q_SIGNALS:
87Q_SIGNALS:
96 void surfaceChanged(MirSurfaceItem*);
88 void surfaceChanged(MirSurfaceItem*);
97 void promptSurfacesChanged();
89 void promptSurfacesChanged();
90+ void fullscreenChanged(bool value);
91+ void manualSurfaceCreationChanged(bool value);
98
92
99−private Q_SLOTS:
93+public Q_SLOTS:
100− void onStateChanged(State state);
101−
102− void createSurface();
94+ Q_INVOKABLE void createSurface();
103
95
104private:
96private:
105 static int promptSurfaceCount(QQmlListProperty<MirSurfaceItem> *prop);
97 static int promptSurfaceCount(QQmlListProperty<MirSurfaceItem> *prop);
106 static MirSurfaceItem* promptSurfaceAt(QQmlListProperty<MirSurfaceItem> *prop, int index);
98 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;
107
114
108 QQuickItem *m_parentItem;
115 QQuickItem *m_parentItem;
109− MirSurfaceItem* m_surface;
110 QList<MirSurfaceItem*> m_promptSurfaces;
116 QList<MirSurfaceItem*> m_promptSurfaces;
111};
117};
112
118
tests/mocks/Unity/Application/ApplicationManager.cpp+87−102
@@ -55,14 +55,32 @@ ApplicationManager::ApplicationManager(QObject *parent)
55
55
56 buildListOfAvailableApplications();
56 buildListOfAvailableApplications();
57
57
58− startApplication("unity8-dash");
58+ // polling to find out when the toplevel window has been created as there's
59− focusApplication("unity8-dash");
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);
60}
64}
61
65
62ApplicationManager::~ApplicationManager()
66ApplicationManager::~ApplicationManager()
63{
67{
64}
68}
65
69
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+
66int ApplicationManager::rowCount(const QModelIndex& parent) const {
84int ApplicationManager::rowCount(const QModelIndex& parent) const {
67 return !parent.isValid() ? m_runningApplications.size() : 0;
85 return !parent.isValid() ? m_runningApplications.size() : 0;
68}
86}
@@ -87,8 +105,6 @@ QVariant ApplicationManager::data(const QModelIndex& index, int role) const {
87 return app->state();
105 return app->state();
88 case RoleFocused:
106 case RoleFocused:
89 return app->focused();
107 return app->focused();
90− case RoleScreenshot:
91− return app->screenshot();
92 case RoleSurface:
108 case RoleSurface:
93 return QVariant::fromValue(app->surface());
109 return QVariant::fromValue(app->surface());
94 case RoleFullscreen:
110 case RoleFullscreen:
@@ -143,6 +159,16 @@ void ApplicationManager::add(ApplicationInfo *application) {
143 if (!appIndex.isValid()) return;
159 if (!appIndex.isValid()) return;
144 Q_EMIT dataChanged(appIndex, appIndex, QVector<int>() << ApplicationManager::RoleSurface);
160 Q_EMIT dataChanged(appIndex, appIndex, QVector<int>() << ApplicationManager::RoleSurface);
145 });
161 });
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+ });
146}
172}
147
173
148void ApplicationManager::remove(ApplicationInfo *application) {
174void ApplicationManager::remove(ApplicationInfo *application) {
@@ -155,7 +181,7 @@ void ApplicationManager::remove(ApplicationInfo *application) {
155 Q_EMIT countChanged();
181 Q_EMIT countChanged();
156 if (isEmpty()) Q_EMIT emptyChanged(isEmpty());
182 if (isEmpty()) Q_EMIT emptyChanged(isEmpty());
157 }
183 }
158− disconnect(application, &ApplicationInfo::surfaceChanged, this, 0);
184+ disconnect(application, 0, this, 0);
159}
185}
160
186
161void ApplicationManager::move(int from, int to) {
187void ApplicationManager::move(int from, int to) {
@@ -198,6 +224,21 @@ ApplicationInfo* ApplicationManager::startApplication(const QString &appId,
198 const QStringList &arguments)
224 const QStringList &arguments)
199{
225{
200 Q_UNUSED(arguments)
226 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+{
201 ApplicationInfo *application = 0;
242 ApplicationInfo *application = 0;
202
243
203 for (ApplicationInfo *availableApp : m_availableApplications) {
244 for (ApplicationInfo *availableApp : m_availableApplications) {
@@ -207,15 +248,8 @@ ApplicationInfo* ApplicationManager::startApplication(const QString &appId,
207 }
248 }
208 }
249 }
209
250
210− if (!application)
251+ 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);
252+ add(application);
218− application->setState(ApplicationInfo::Running);
219
253
220 return application;
254 return application;
221}
255}
@@ -238,27 +272,6 @@ bool ApplicationManager::stopApplication(const QString &appId)
238 return true;
272 return true;
239}
273}
240
274
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−
262QString ApplicationManager::focusedApplicationId() const {
275QString ApplicationManager::focusedApplicationId() const {
263 for (ApplicationInfo *app : m_runningApplications) {
276 for (ApplicationInfo *app : m_runningApplications) {
264 if (app->focused()) {
277 if (app->focused()) {
@@ -293,32 +306,18 @@ bool ApplicationManager::focusApplication(const QString &appId)
293 if (application == nullptr)
306 if (application == nullptr)
294 return false;
307 return false;
295
308
296− if (application->stage() == ApplicationInfo::MainStage) {
297− // unfocus currently focused mainstage app
309+ // unfocus currently focused 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) {
310+ for (ApplicationInfo *app : m_runningApplications) {
311− if (app->focused() && app->stage() == ApplicationInfo::SideStage) {
311+ if (app->focused()) {
312− app->setFocused(false);
312+ app->setFocused(false);
313− app->setState(ApplicationInfo::Suspended);
313+ app->setState(ApplicationInfo::Suspended);
314− }
315 }
314 }
316−
317− // focus this app
318− application->setFocused(true);
319− application->setState(ApplicationInfo::Running);
320 }
315 }
321
316
317+ // focus this app
318+ application->setFocused(true);
319+ application->setState(ApplicationInfo::Running);
320+
322 // move app to top of stack
321 // move app to top of stack
323 move(m_runningApplications.indexOf(application), 0);
322 move(m_runningApplications.indexOf(application), 0);
324 Q_EMIT focusedApplicationIdChanged();
323 Q_EMIT focusedApplicationIdChanged();
@@ -341,12 +340,6 @@ void ApplicationManager::unfocusCurrentApplication()
341 Q_EMIT focusedApplicationIdChanged();
340 Q_EMIT focusedApplicationIdChanged();
342}
341}
343
342
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−
350void ApplicationManager::buildListOfAvailableApplications()
343void ApplicationManager::buildListOfAvailableApplications()
351{
344{
352 ApplicationInfo *application;
345 ApplicationInfo *application;
@@ -354,128 +347,120 @@ void ApplicationManager::buildListOfAvailableApplications()
354 application = new ApplicationInfo(this);
347 application = new ApplicationInfo(this);
355 application->setAppId("unity8-dash");
348 application->setAppId("unity8-dash");
356 application->setName("Unity 8 Mock Dash");
349 application->setName("Unity 8 Mock Dash");
357− application->setIcon(QUrl("unity8-dash"));
350+ application->setScreenshotId("unity8-dash");
358 application->setStage(ApplicationInfo::MainStage);
351 application->setStage(ApplicationInfo::MainStage);
359− generateQmlStrings(application);
360 m_availableApplications.append(application);
352 m_availableApplications.append(application);
361
353
362 application = new ApplicationInfo(this);
354 application = new ApplicationInfo(this);
363 application->setAppId("dialer-app");
355 application->setAppId("dialer-app");
364 application->setName("Dialer");
356 application->setName("Dialer");
365− application->setIcon(QUrl("dialer"));
357+ application->setScreenshotId("dialer");
358+ application->setIconId("dialer-app");
366 application->setStage(ApplicationInfo::SideStage);
359 application->setStage(ApplicationInfo::SideStage);
367− generateQmlStrings(application);
368 m_availableApplications.append(application);
360 m_availableApplications.append(application);
369
361
370 application = new ApplicationInfo(this);
362 application = new ApplicationInfo(this);
371 application->setAppId("camera-app");
363 application->setAppId("camera-app");
372 application->setName("Camera");
364 application->setName("Camera");
373− application->setIcon(QUrl("camera"));
365+ application->setScreenshotId("camera");
366+ application->setIconId("camera");
374 application->setFullscreen(true);
367 application->setFullscreen(true);
375− generateQmlStrings(application);
376 m_availableApplications.append(application);
368 m_availableApplications.append(application);
377
369
378 application = new ApplicationInfo(this);
370 application = new ApplicationInfo(this);
379 application->setAppId("gallery-app");
371 application->setAppId("gallery-app");
380 application->setName("Gallery");
372 application->setName("Gallery");
381− application->setIcon(QUrl("gallery"));
373+ application->setScreenshotId("gallery");
382− generateQmlStrings(application);
374+ application->setIconId("gallery");
375+ application->setFullscreen(true);
383 m_availableApplications.append(application);
376 m_availableApplications.append(application);
384
377
385 application = new ApplicationInfo(this);
378 application = new ApplicationInfo(this);
386 application->setAppId("facebook-webapp");
379 application->setAppId("facebook-webapp");
387 application->setName("Facebook");
380 application->setName("Facebook");
388− application->setIcon(QUrl("facebook"));
381+ application->setScreenshotId("facebook");
382+ application->setIconId("facebook");
389 application->setStage(ApplicationInfo::SideStage);
383 application->setStage(ApplicationInfo::SideStage);
390− generateQmlStrings(application);
391 m_availableApplications.append(application);
384 m_availableApplications.append(application);
392
385
393 application = new ApplicationInfo(this);
386 application = new ApplicationInfo(this);
394 application->setAppId("webbrowser-app");
387 application->setAppId("webbrowser-app");
395 application->setFullscreen(true);
388 application->setFullscreen(true);
396 application->setName("Browser");
389 application->setName("Browser");
397− application->setIcon(QUrl("browser"));
390+ application->setScreenshotId("browser");
398− generateQmlStrings(application);
391+ application->setIconId("browser");
399 m_availableApplications.append(application);
392 m_availableApplications.append(application);
400
393
401 application = new ApplicationInfo(this);
394 application = new ApplicationInfo(this);
402 application->setAppId("twitter-webapp");
395 application->setAppId("twitter-webapp");
403 application->setName("Twitter");
396 application->setName("Twitter");
404− application->setIcon(QUrl("twitter"));
397+ application->setScreenshotId("twitter");
398+ application->setIconId("twitter");
405 application->setStage(ApplicationInfo::SideStage);
399 application->setStage(ApplicationInfo::SideStage);
400+ m_availableApplications.append(application);
401+
402+ application = new ApplicationInfo(this);
403+ application->setAppId("map");
404+ application->setName("Map");
406− generateQmlStrings(application);
405+ application->setIconId("map");
406+ application->setScreenshotId("map");
407 m_availableApplications.append(application);
407 m_availableApplications.append(application);
408
408
409 application = new ApplicationInfo(this);
409 application = new ApplicationInfo(this);
410 application->setAppId("gmail-webapp");
410 application->setAppId("gmail-webapp");
411 application->setName("GMail");
411 application->setName("GMail");
412− application->setIcon(QUrl("gmail"));
412+ application->setIconId("gmail");
413 m_availableApplications.append(application);
413 m_availableApplications.append(application);
414
414
415 application = new ApplicationInfo(this);
415 application = new ApplicationInfo(this);
416 application->setAppId("ubuntu-weather-app");
416 application->setAppId("ubuntu-weather-app");
417 application->setName("Weather");
417 application->setName("Weather");
418− application->setIcon(QUrl("weather"));
418+ application->setIconId("weather");
419 application->setStage(ApplicationInfo::SideStage);
419 application->setStage(ApplicationInfo::SideStage);
420− generateQmlStrings(application);
421 m_availableApplications.append(application);
420 m_availableApplications.append(application);
422
421
423 application = new ApplicationInfo(this);
422 application = new ApplicationInfo(this);
424 application->setAppId("notes-app");
423 application->setAppId("notes-app");
425 application->setName("Notepad");
424 application->setName("Notepad");
426− application->setIcon(QUrl("notepad"));
425+ application->setIconId("notepad");
427 application->setStage(ApplicationInfo::SideStage);
426 application->setStage(ApplicationInfo::SideStage);
428 m_availableApplications.append(application);
427 m_availableApplications.append(application);
429
428
430 application = new ApplicationInfo(this);
429 application = new ApplicationInfo(this);
431 application->setAppId("calendar-app");
430 application->setAppId("calendar-app");
432 application->setName("Calendar");
431 application->setName("Calendar");
433− application->setIcon(QUrl("calendar"));
432+ application->setIconId("calendar");
434 application->setStage(ApplicationInfo::SideStage);
433 application->setStage(ApplicationInfo::SideStage);
435 m_availableApplications.append(application);
434 m_availableApplications.append(application);
436
435
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−
444 application = new ApplicationInfo(this);
436 application = new ApplicationInfo(this);
445 application->setAppId("evernote");
437 application->setAppId("evernote");
446 application->setName("Evernote");
438 application->setName("Evernote");
447− application->setIcon(QUrl("evernote"));
439+ application->setIconId("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);
455 m_availableApplications.append(application);
440 m_availableApplications.append(application);
456
441
457 application = new ApplicationInfo(this);
442 application = new ApplicationInfo(this);
458 application->setAppId("pinterest");
443 application->setAppId("pinterest");
459 application->setName("Pinterest");
444 application->setName("Pinterest");
460− application->setIcon(QUrl("pinterest"));
445+ application->setIconId("pinterest");
461 m_availableApplications.append(application);
446 m_availableApplications.append(application);
462
447
463 application = new ApplicationInfo(this);
448 application = new ApplicationInfo(this);
464 application->setAppId("soundcloud");
449 application->setAppId("soundcloud");
465 application->setName("SoundCloud");
450 application->setName("SoundCloud");
466− application->setIcon(QUrl("soundcloud"));
451+ application->setIconId("soundcloud");
467 m_availableApplications.append(application);
452 m_availableApplications.append(application);
468
453
469 application = new ApplicationInfo(this);
454 application = new ApplicationInfo(this);
470 application->setAppId("wikipedia");
455 application->setAppId("wikipedia");
471 application->setName("Wikipedia");
456 application->setName("Wikipedia");
472− application->setIcon(QUrl("wikipedia"));
457+ application->setIconId("wikipedia");
473 m_availableApplications.append(application);
458 m_availableApplications.append(application);
474
459
475 application = new ApplicationInfo(this);
460 application = new ApplicationInfo(this);
476 application->setAppId("youtube");
461 application->setAppId("youtube");
477 application->setName("YouTube");
462 application->setName("YouTube");
478− application->setIcon(QUrl("youtube"));
463+ application->setIconId("youtube");
479 m_availableApplications.append(application);
464 m_availableApplications.append(application);
480}
465}
481
466
tests/mocks/Unity/Application/ApplicationManager.h+9−5
@@ -20,6 +20,7 @@
20#include <QObject>
20#include <QObject>
21#include <QList>
21#include <QList>
22#include <QStringList>
22#include <QStringList>
23+#include <QTimer>
23#include "ApplicationInfo.h"
24#include "ApplicationInfo.h"
24
25
25// unity-api
26// unity-api
@@ -45,13 +46,13 @@ class ApplicationManager : public ApplicationManagerInterface {
45 Q_PROPERTY(bool fake READ fake CONSTANT)
46 Q_PROPERTY(bool fake READ fake CONSTANT)
46
47
47 public:
48 public:
48− ApplicationManager(QObject *parent = NULL);
49+ ApplicationManager(QObject *parent = nullptr);
49 virtual ~ApplicationManager();
50 virtual ~ApplicationManager();
50
51
51 static ApplicationManager *singleton();
52 static ApplicationManager *singleton();
52
53
53 enum MoreRoles {
54 enum MoreRoles {
54− RoleSurface = RoleScreenshot+1,
55+ RoleSurface = RoleFocused+1,
55 RoleFullscreen,
56 RoleFullscreen,
56 RoleApplication,
57 RoleApplication,
57 };
58 };
@@ -97,7 +98,6 @@ class ApplicationManager : public ApplicationManagerInterface {
97 Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, const QStringList &arguments = QStringList()) override;
98 Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, const QStringList &arguments = QStringList()) override;
98 Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, ExecFlags flags, const QStringList &arguments = QStringList());
99 Q_INVOKABLE ApplicationInfo *startApplication(const QString &appId, ExecFlags flags, const QStringList &arguments = QStringList());
99 Q_INVOKABLE bool stopApplication(const QString &appId) override;
100 Q_INVOKABLE bool stopApplication(const QString &appId) override;
100− Q_INVOKABLE bool updateScreenshot(const QString &appId) override;
101
101
102 QString focusedApplicationId() const override;
102 QString focusedApplicationId() const override;
103 bool suspended() const;
103 bool suspended() const;
@@ -105,6 +105,7 @@ class ApplicationManager : public ApplicationManagerInterface {
105
105
106 // Only for testing
106 // Only for testing
107 Q_INVOKABLE QStringList availableApplications();
107 Q_INVOKABLE QStringList availableApplications();
108+ Q_INVOKABLE ApplicationInfo* add(QString appId);
108
109
109 QModelIndex findIndex(ApplicationInfo* application);
110 QModelIndex findIndex(ApplicationInfo* application);
110
111
@@ -115,15 +116,18 @@ class ApplicationManager : public ApplicationManagerInterface {
115 void focusRequested(const QString &appId);
116 void focusRequested(const QString &appId);
116 void emptyChanged(bool empty);
117 void emptyChanged(bool empty);
117
118
119+ private Q_SLOTS:
120+ void onWindowCreatedTimerTimeout();
121+
118 private:
122 private:
119 void add(ApplicationInfo *application);
123 void add(ApplicationInfo *application);
120 void remove(ApplicationInfo* application);
124 void remove(ApplicationInfo* application);
121− void showApplicationWindow(ApplicationInfo *application);
122 void buildListOfAvailableApplications();
125 void buildListOfAvailableApplications();
123− void generateQmlStrings(ApplicationInfo *application);
126+ void onWindowCreated();
124 bool m_suspended;
127 bool m_suspended;
125 QList<ApplicationInfo*> m_runningApplications;
128 QList<ApplicationInfo*> m_runningApplications;
126 QList<ApplicationInfo*> m_availableApplications;
129 QList<ApplicationInfo*> m_availableApplications;
130+ QTimer m_windowCreatedTimer;
127
131
128 static ApplicationManager *the_application_manager;
132 static ApplicationManager *the_application_manager;
129};
133};
tests/mocks/Unity/Application/ApplicationScreenshotProvider.cpp+2−4
@@ -44,11 +44,9 @@ QImage ApplicationScreenshotProvider::requestImage(const QString &imageId, QSize
44 return QImage();
44 return QImage();
45 }
45 }
46
46
47− QString filePath = QString("%1/Dash/graphics/phone/screenshots/%2@12.png").arg(qmlDirectory()).arg(app->icon().toString());
48−
49 QImage image;
47 QImage image;
50− if (!image.load(filePath)) {
48+ if (!image.load(app->screenshot())) {
51− qWarning() << "failed loading app image" << filePath;
49+ qWarning() << "failed loading app image" << app->screenshot();
52 }
50 }
53
51
54
52
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)
2
2
3set(FakeUnityApplicationQml_SOURCES
3set(FakeUnityApplicationQml_SOURCES
4 plugin.cpp
4 plugin.cpp
5 ApplicationDBusAdaptor.cpp
5 ApplicationDBusAdaptor.cpp
6 ApplicationInfo.cpp
6 ApplicationInfo.cpp
7− ApplicationImage.cpp
8 ApplicationManager.cpp
7 ApplicationManager.cpp
9 ApplicationScreenshotProvider.cpp
8 ApplicationScreenshotProvider.cpp
10 MirSurfaceItem.cpp
9 MirSurfaceItem.cpp
11 SurfaceManager.cpp
10 SurfaceManager.cpp
12− VirtualKeyboard.cpp
13 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
11 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationInfoInterface.h
14 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
12 ${APPLICATION_API_INCLUDEDIR}/unity/shell/application/ApplicationManagerInterface.h
15)
13)
tests/mocks/Unity/Application/MirSurfaceItem.cpp+87−16
@@ -17,33 +17,67 @@
17#include "MirSurfaceItem.h"
17#include "MirSurfaceItem.h"
18#include "ApplicationInfo.h"
18#include "ApplicationInfo.h"
19
19
20−#include <QPainter>
20+#include <paths.h>
21+
22+#include <QGuiApplication>
23+#include <QQuickView>
24+#include <QQmlProperty>
21#include <QQmlEngine>
25#include <QQmlEngine>
26+#include <QString>
27+
28+#include <QDebug>
22
29
23MirSurfaceItem::MirSurfaceItem(const QString& name,
30MirSurfaceItem::MirSurfaceItem(const QString& name,
24 MirSurfaceItem::Type type,
31 MirSurfaceItem::Type type,
25 MirSurfaceItem::State state,
32 MirSurfaceItem::State state,
26 const QUrl& screenshot,
33 const QUrl& screenshot,
34+ const QString &qmlFilePath,
27 QQuickItem *parent)
35 QQuickItem *parent)
28− : QQuickPaintedItem(parent)
36+ : QQuickItem(parent)
29 , m_application(nullptr)
37 , m_application(nullptr)
30 , m_name(name)
38 , m_name(name)
31 , m_type(type)
39 , m_type(type)
32 , m_state(state)
40 , m_state(state)
33− , m_img(screenshot.isLocalFile() ? screenshot.toLocalFile() : screenshot.toString())
34 , m_parentSurface(nullptr)
41 , m_parentSurface(nullptr)
35− , m_haveInputMethod(false)
42+ , m_qmlItem(nullptr)
43+ , m_screenshotUrl(screenshot)
36{
44{
37 qDebug() << "MirSurfaceItem::MirSurfaceItem() " << this->name();
45 qDebug() << "MirSurfaceItem::MirSurfaceItem() " << this->name();
38
46
39 QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
47 QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
40
48
41− // The virtual keyboard (input method) has a big transparent area so that
42− // content behind it show through
43− setFillColor(Qt::transparent);
44−
45 connect(this, &QQuickItem::focusChanged,
49 connect(this, &QQuickItem::focusChanged,
46 this, &MirSurfaceItem::onFocusChanged);
50 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+ }
47}
81}
48
82
49MirSurfaceItem::~MirSurfaceItem()
83MirSurfaceItem::~MirSurfaceItem()
@@ -61,10 +95,11 @@ MirSurfaceItem::~MirSurfaceItem()
61 m_application->removeSurface(this);
95 m_application->removeSurface(this);
62}
96}
63
97
64−void MirSurfaceItem::paint(QPainter * painter)
98+void MirSurfaceItem::printComponentErrors()
65{
99{
66− if (!m_img.isNull()) {
100+ QList<QQmlError> errors = m_qmlContentComponent->errors();
67− painter->drawImage(contentsBoundingRect(), m_img, QRect(QPoint(0,0), m_img.size()));
101+ for (int i = 0; i < errors.count(); ++i) {
102+ qDebug() << errors[i];
68 }
103 }
69}
104}
70
105
@@ -155,19 +190,24 @@ MirSurfaceItem* MirSurfaceItem::childSurfaceAt(QQmlListProperty<MirSurfaceItem>
155}
190}
156
191
157
192
158−void MirSurfaceItem::touchEvent(QTouchEvent * event)
193+void MirSurfaceItem::onQmlWantInputMethodChanged()
159{
194{
160− if (event->type() == QEvent::TouchBegin && hasFocus()) {
195+ QQmlProperty prop(m_qmlItem, "wantInputMethod");
196+ bool wantInputMethod = prop.read().toBool();
197+
198+ if (hasFocus() && wantInputMethod) {
161 Q_EMIT inputMethodRequested();
199 Q_EMIT inputMethodRequested();
162− m_haveInputMethod = true;
163 }
200 }
164}
201}
165
202
166void MirSurfaceItem::onFocusChanged()
203void MirSurfaceItem::onFocusChanged()
167{
204{
168− if (!hasFocus() && m_haveInputMethod) {
205+ QQmlProperty prop(m_qmlItem, "wantInputMethod");
206+ bool wantInputMethod = prop.read().toBool();
207+
208+ if (!hasFocus() && wantInputMethod) {
169 Q_EMIT inputMethodDismissed();
209 Q_EMIT inputMethodDismissed();
170− m_haveInputMethod = false;
210+ prop.write(QVariant::fromValue(false));
171 }
211 }
172}
212}
173
213
@@ -178,3 +218,34 @@ void MirSurfaceItem::setState(MirSurfaceItem::State newState)
178 Q_EMIT stateChanged(newState);
218 Q_EMIT stateChanged(newState);
179 }
219 }
180}
220}
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 @@
17#ifndef MIRSURFACEITEM_H
17#ifndef MIRSURFACEITEM_H
18#define MIRSURFACEITEM_H
18#define MIRSURFACEITEM_H
19
19
20−#include <QQuickPaintedItem>
20+#include <QQuickItem>
21−#include <QImage>
21+#include <QQmlComponent>
22+#include <QUrl>
22
23
23class ApplicationInfo;
24class ApplicationInfo;
24
25
25−class MirSurfaceItem : public QQuickPaintedItem
26+class MirSurfaceItem : public QQuickItem
26{
27{
27 Q_OBJECT
28 Q_OBJECT
28 Q_ENUMS(Type)
29 Q_ENUMS(Type)
@@ -59,6 +60,7 @@ public:
59 Type type,
60 Type type,
60 State state,
61 State state,
61 const QUrl& screenshot,
62 const QUrl& screenshot,
63+ const QString &qmlFilePath = QString(),
62 QQuickItem *parent = 0);
64 QQuickItem *parent = 0);
63 ~MirSurfaceItem();
65 ~MirSurfaceItem();
64
66
@@ -76,9 +78,6 @@ public:
76 Q_INVOKABLE void setState(State newState);
78 Q_INVOKABLE void setState(State newState);
77 Q_INVOKABLE void release();
79 Q_INVOKABLE void release();
78
80
79− void paint(QPainter * painter) override;
80− void touchEvent(QTouchEvent * event) override;
81−
82Q_SIGNALS:
81Q_SIGNALS:
83 void typeChanged(Type);
82 void typeChanged(Type);
84 void stateChanged(State);
83 void stateChanged(State);
@@ -93,9 +92,8 @@ Q_SIGNALS:
93
92
94private Q_SLOTS:
93private Q_SLOTS:
95 void onFocusChanged();
94 void onFocusChanged();
96−
95+ void onComponentStatusChanged(QQmlComponent::Status status);
97−protected:
96+ void onQmlWantInputMethodChanged();
98− const QImage &screenshotImage() { return m_img; }
99
97
100private:
98private:
101 void addChildSurface(MirSurfaceItem* surface);
99 void addChildSurface(MirSurfaceItem* surface);
@@ -105,15 +103,20 @@ private:
105 static int childSurfaceCount(QQmlListProperty<MirSurfaceItem> *prop);
103 static int childSurfaceCount(QQmlListProperty<MirSurfaceItem> *prop);
106 static MirSurfaceItem* childSurfaceAt(QQmlListProperty<MirSurfaceItem> *prop, int index);
104 static MirSurfaceItem* childSurfaceAt(QQmlListProperty<MirSurfaceItem> *prop, int index);
107
105
106+ void createQmlContentItem();
107+ void printComponentErrors();
108+
108 ApplicationInfo* m_application;
109 ApplicationInfo* m_application;
109 const QString m_name;
110 const QString m_name;
110 const Type m_type;
111 const Type m_type;
111 State m_state;
112 State m_state;
112− const QImage m_img;
113
113
114 MirSurfaceItem* m_parentSurface;
114 MirSurfaceItem* m_parentSurface;
115 QList<MirSurfaceItem*> m_children;
115 QList<MirSurfaceItem*> m_children;
116− bool m_haveInputMethod;
116+
117+ QQmlComponent *m_qmlContentComponent;
118+ QQuickItem *m_qmlItem;
119+ QUrl m_screenshotUrl;
117};
120};
118
121
119Q_DECLARE_METATYPE(MirSurfaceItem*)
122Q_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 @@
16
16
17#include "SurfaceManager.h"
17#include "SurfaceManager.h"
18
18
19+#include <paths.h>
19#include "MirSurfaceItem.h"
20#include "MirSurfaceItem.h"
20−#include "VirtualKeyboard.h"
21−
22
21
23SurfaceManager *SurfaceManager::the_surface_manager = nullptr;
22SurfaceManager *SurfaceManager::the_surface_manager = nullptr;
24
23
@@ -66,7 +65,19 @@ void SurfaceManager::hideInputMethod()
66MirSurfaceItem *SurfaceManager::inputMethodSurface()
65MirSurfaceItem *SurfaceManager::inputMethodSurface()
67{
66{
68 if (!m_virtualKeyboard) {
67 if (!m_virtualKeyboard) {
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,
69− m_virtualKeyboard = new VirtualKeyboard(MirSurfaceItem::Minimized);
78+ MirSurfaceItem::Minimized,
79+ screenshotPath,
80+ qmlFilePath);
70 Q_EMIT surfaceCreated(m_virtualKeyboard);
81 Q_EMIT surfaceCreated(m_virtualKeyboard);
71 }
82 }
72 return m_virtualKeyboard;
83 return m_virtualKeyboard;
tests/mocks/Unity/Application/SurfaceManager.h+1−2
@@ -20,7 +20,6 @@
20#include <QObject>
20#include <QObject>
21
21
22class MirSurfaceItem;
22class MirSurfaceItem;
23−class VirtualKeyboard;
24
23
25class SurfaceManager : public QObject
24class SurfaceManager : public QObject
26{
25{
@@ -48,7 +47,7 @@ private Q_SLOTS:
48
47
49private:
48private:
50 static SurfaceManager *the_surface_manager;
49 static SurfaceManager *the_surface_manager;
51− VirtualKeyboard *m_virtualKeyboard;
50+ MirSurfaceItem *m_virtualKeyboard;
52};
51};
53
52
54#endif // SURFACEMANAGER_H
53#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 @@
16
16
17#include "plugin.h"
17#include "plugin.h"
18#include "ApplicationInfo.h"
18#include "ApplicationInfo.h"
19−#include "ApplicationImage.h"
20#include "ApplicationManager.h"
19#include "ApplicationManager.h"
21#include "ApplicationScreenshotProvider.h"
20#include "ApplicationScreenshotProvider.h"
22#include "MirSurfaceItem.h"
21#include "MirSurfaceItem.h"
@@ -49,8 +48,6 @@ void FakeUnityApplicationQmlPlugin::registerTypes(const char *uri)
49 qmlRegisterType<ApplicationInfo>(uri, 0, 1, "ApplicationInfo");
48 qmlRegisterType<ApplicationInfo>(uri, 0, 1, "ApplicationInfo");
50
49
51 qmlRegisterUncreatableType<MirSurfaceItem>(uri, 0, 1, "MirSurfaceItem", "MirSurfaceItem can't be instantiated from QML");
50 qmlRegisterUncreatableType<MirSurfaceItem>(uri, 0, 1, "MirSurfaceItem", "MirSurfaceItem can't be instantiated from QML");
52−
53− qmlRegisterType<ApplicationImage>(uri, 0, 1, "ApplicationImage");
54}
51}
55
52
56void FakeUnityApplicationQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
53void FakeUnityApplicationQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
tests/mocks/Unity/Application/qmldir−3
@@ -1,6 +1,3 @@
1module Unity.Application
1module Unity.Application
2plugin FakeUnityApplicationQml
2plugin FakeUnityApplicationQml
3typeinfo Application.qmltypes
3typeinfo 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 @@
1add_subdirectory(Application)
1add_subdirectory(Application)
2+add_subdirectory(Connectivity)
2add_subdirectory(Indicators)
3add_subdirectory(Indicators)
3add_subdirectory(Launcher)
4add_subdirectory(Launcher)
4add_subdirectory(Notifications)
5add_subdirectory(Notifications)
@@ -23,6 +24,7 @@ set(UnityQML_SOURCES
23 fake_scope.cpp
24 fake_scope.cpp
24 fake_scopes.cpp
25 fake_scopes.cpp
25 fake_scopesoverview.cpp
26 fake_scopesoverview.cpp
27+ fake_settingsmodel.cpp
26 fake_categories.cpp
28 fake_categories.cpp
27 fake_navigation.cpp
29 fake_navigation.cpp
28 fake_resultsmodel.cpp
30 fake_resultsmodel.cpp
@@ -38,6 +40,7 @@ set(UnityQML_SOURCES
38 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ResultsModelInterface.h
40 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ResultsModelInterface.h
39 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ScopeInterface.h
41 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ScopeInterface.h
40 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ScopesInterface.h
42 ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/ScopesInterface.h
43+ ${SCOPES_API_INCLUDEDIR}/unity/shell/scopes/SettingsModelInterface.h
41)
44)
42
45
43add_library(FakeUnityQml MODULE ${UnityQML_SOURCES})
46add_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 @@
1/*
1/*
2− * Copyright (C) 2013 Canonical, Ltd.
2+ * Copyright (C) 2014 Canonical, Ltd.
3 *
3 *
4 * This program is free software; you can redistribute it and/or modify
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
5 * it under the terms of the GNU General Public License as published by
@@ -14,8 +14,14 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−import QtQuick 2.0;
17+#include "MockConnectivity.h"
18
18
19−Item {
19+MockConnectivity::MockConnectivity(QObject *parent)
20− property bool blockInput: false
20+ : QObject(parent)
21+{
22+}
23+
24+void MockConnectivity::unlockAllModems()
25+{
26+ Q_EMIT unlockingAllModems();
21}
27}
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
14 fakeplugin.cpp
14 fakeplugin.cpp
15 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/indicators.h
15 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/indicators.h
16 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/menucontentactivator.cpp
16 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/menucontentactivator.cpp
17+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelcache.cpp
17 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelstack.cpp
18 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelstack.cpp
18 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/visibleindicatorsmodel.cpp
19 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/visibleindicatorsmodel.cpp
19 fakeindicatorsmodel.cpp
20 fakeindicatorsmodel.cpp
@@ -33,7 +34,11 @@ add_library(IndicatorsFakeQml SHARED
33)
34)
34add_definitions(-DUNITYINDICATORS_LIBRARY)
35add_definitions(-DUNITYINDICATORS_LIBRARY)
35
36
37+add_dependencies(IndicatorsFakeQml QMenuModelQml)
36−target_link_libraries(IndicatorsFakeQml)
38+target_link_libraries(IndicatorsFakeQml
39+ -L${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel
40+ -lqmenumodel
41+)
37
42
38qt5_use_modules(IndicatorsFakeQml Core Qml Quick)
43qt5_use_modules(IndicatorsFakeQml Core Qml Quick)
39
44
tests/mocks/Unity/Indicators/fakeplugin.cpp+9
@@ -26,9 +26,16 @@
26#include "fakeindicatorsmodel.h"
26#include "fakeindicatorsmodel.h"
27#include "indicators.h"
27#include "indicators.h"
28#include "menucontentactivator.h"
28#include "menucontentactivator.h"
29+#include "unitymenumodelcache.h"
29#include "unitymenumodelstack.h"
30#include "unitymenumodelstack.h"
30#include "visibleindicatorsmodel.h"
31#include "visibleindicatorsmodel.h"
31
32
33+static QObject* menuModelCacheSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
34+ Q_UNUSED(engine);
35+ Q_UNUSED(scriptEngine);
36+ return new UnityMenuModelCache;
37+}
38+
32void IndicatorsFakePlugin::registerTypes(const char * uri)
39void IndicatorsFakePlugin::registerTypes(const char * uri)
33{
40{
34 Q_INIT_RESOURCE(indicators_fake);
41 Q_INIT_RESOURCE(indicators_fake);
@@ -41,6 +48,8 @@ void IndicatorsFakePlugin::registerTypes(const char * uri)
41 qmlRegisterType<UnityMenuModelStack>(uri, 0, 1, "UnityMenuModelStack");
48 qmlRegisterType<UnityMenuModelStack>(uri, 0, 1, "UnityMenuModelStack");
42 qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
49 qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
43
50
51+ qmlRegisterSingletonType<UnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
52+
44 // external uncreatables
53 // external uncreatables
45 qmlRegisterUncreatableType<MenuContentState>(uri, 0, 1, "MenuContentState", "Can't create MenuContentState class");
54 qmlRegisterUncreatableType<MenuContentState>(uri, 0, 1, "MenuContentState", "Can't create MenuContentState class");
46 qmlRegisterUncreatableType<ActionState>(uri, 0, 1, "ActionState", "Can't create ActionState class");
55 qmlRegisterUncreatableType<ActionState>(uri, 0, 1, "ActionState", "Can't create ActionState class");
tests/mocks/Unity/Indicators/qmldir−1
@@ -2,7 +2,6 @@ module Unity.Indicators
2plugin IndicatorsFakeQml
2plugin IndicatorsFakeQml
3typeinfo Indicators.qmltypes
3typeinfo Indicators.qmltypes
4
4
5−CachedUnityMenuModel 0.1 CachedUnityMenuModel.qml
6IndicatorsModel 0.1 IndicatorsModel.qml
5IndicatorsModel 0.1 IndicatorsModel.qml
7FakeMenuPage 0.1 FakeMenuPage.qml
6FakeMenuPage 0.1 FakeMenuPage.qml
8RootActionState 0.1 RootActionState.qml
7RootActionState 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
32{
32{
33 QTimer::singleShot(1500, this, SLOT(slotLoaded()));
33 QTimer::singleShot(1500, this, SLOT(slotLoaded()));
34 connect(scope, SIGNAL(currentNavigationIdChanged()), this, SLOT(slotCurrentNavigationChanged()));
34 connect(scope, SIGNAL(currentNavigationIdChanged()), this, SLOT(slotCurrentNavigationChanged()));
35+ connect(scope, SIGNAL(currentAltNavigationIdChanged()), this, SLOT(slotCurrentNavigationChanged()));
35}
36}
36
37
37QString Navigation::navigationId() const
38QString Navigation::navigationId() const
@@ -106,7 +107,11 @@ QVariant Navigation::data(const QModelIndex &index, int role) const
106 case RoleHasChildren:
107 case RoleHasChildren:
107 return m_navigationId == "root" && index.row() != 3;
108 return m_navigationId == "root" && index.row() != 3;
108 case RoleIsActive:
109 case RoleIsActive:
110+ if (m_navigationId.startsWith("alt")) {
111+ return m_scope->currentAltNavigationId() == data(index, RoleNavigationId);
112+ } else {
109− return m_scope->currentNavigationId() == data(index, RoleNavigationId);
113+ return m_scope->currentNavigationId() == data(index, RoleNavigationId);
114+ }
110 }
115 }
111 return QVariant();
116 return QVariant();
112}
117}
tests/mocks/Unity/fake_scope.cpp+18−3
@@ -22,6 +22,7 @@
22#include "fake_navigation.h"
22#include "fake_navigation.h"
23#include "fake_resultsmodel.h"
23#include "fake_resultsmodel.h"
24#include "fake_scopes.h"
24#include "fake_scopes.h"
25+#include "fake_settingsmodel.h"
25
26
26Scope::Scope(Scopes* parent) : Scope(QString(), QString(), false, parent)
27Scope::Scope(Scopes* parent) : Scope(QString(), QString(), false, parent)
27{
28{
@@ -39,6 +40,7 @@ Scope::Scope(QString const& id, QString const& name, bool favorite, Scopes* pare
39 , m_previewRendererName("preview-generic")
40 , m_previewRendererName("preview-generic")
40 , m_categories(new Categories(categories, this))
41 , m_categories(new Categories(categories, this))
41 , m_openScope(nullptr)
42 , m_openScope(nullptr)
43+ , m_settings(new SettingsModel(this))
42{
44{
43}
45}
44
46
@@ -94,7 +96,7 @@ unity::shell::scopes::CategoriesInterface* Scope::categories() const
94
96
95unity::shell::scopes::SettingsModelInterface* Scope::settings() const
97unity::shell::scopes::SettingsModelInterface* Scope::settings() const
96{
98{
97− return nullptr;
99+ return m_settings;
98}
100}
99
101
100QString Scope::noResultsHint() const
102QString Scope::noResultsHint() const
@@ -224,9 +226,17 @@ QVariantMap Scope::customizations() const
224 m["background-color"] = "red";
226 m["background-color"] = "red";
225 m["foreground-color"] = "blue";
227 m["foreground-color"] = "blue";
226 m["page-header"] = h;
228 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;
227 } else if (m_id == "MockScope5") {
232 } else if (m_id == "MockScope5") {
228 h["background"] = "gradient:///lightgrey/grey";
233 h["background"] = "gradient:///lightgrey/grey";
229 h["logo"] = QUrl("../../../tests/qmltests/Dash/tst_PageHeader/logo-ubuntu-orange.svg");
234 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";
230 m["page-header"] = h;
240 m["page-header"] = h;
231 }
241 }
232 return m;
242 return m;
@@ -261,11 +271,16 @@ unity::shell::scopes::NavigationInterface* Scope::getAltNavigation(QString const
261
271
262 QString parentId;
272 QString parentId;
263 QString parentLabel;
273 QString parentLabel;
264− if (id.startsWith("altmiddle")) {
274+ if (id != "altroot") {
265 parentId = "altroot";
275 parentId = "altroot";
266 parentLabel = "altroot";
276 parentLabel = "altroot";
267 }
277 }
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;
269}
284}
270
285
271void Scope::setNavigationState(const QString &navigationId, bool isAltNavigation)
286void Scope::setNavigationState(const QString &navigationId, bool isAltNavigation)
tests/mocks/Unity/fake_scope.h+1
@@ -96,6 +96,7 @@ protected:
96
96
97 unity::shell::scopes::CategoriesInterface* m_categories;
97 unity::shell::scopes::CategoriesInterface* m_categories;
98 unity::shell::scopes::ScopeInterface* m_openScope;
98 unity::shell::scopes::ScopeInterface* m_openScope;
99+ unity::shell::scopes::SettingsModelInterface* m_settings;
99};
100};
100
101
101#endif // FAKE_SCOPE_H
102#endif // FAKE_SCOPE_H
tests/mocks/Unity/fake_scopes.h+1−1
@@ -56,7 +56,7 @@ public:
56 // This is used as part of implementation of the other C++ code, not API
56 // This is used as part of implementation of the other C++ code, not API
57 QList<Scope*> scopes() const;
57 QList<Scope*> scopes() const;
58 QList<Scope*> allScopes() const;
58 QList<Scope*> allScopes() const;
59− Scope* getScopeFromAll(const QString& scope_id) const;
59+ Q_INVOKABLE Scope* getScopeFromAll(const QString& scope_id) const;
60
60
61private Q_SLOTS:
61private Q_SLOTS:
62 void updateScopes();
62 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 @@
26#include "fake_previewmodel.h"
26#include "fake_previewmodel.h"
27#include "fake_previewwidgetmodel.h"
27#include "fake_previewwidgetmodel.h"
28#include "fake_resultsmodel.h"
28#include "fake_resultsmodel.h"
29+#include "fake_settingsmodel.h"
29
30
30// External
31// External
31#include <glib-object.h>
32#include <glib-object.h>
@@ -43,6 +44,7 @@ void FakeUnityPlugin::registerTypes(const char *uri)
43 qmlRegisterType<Scopes>(uri, 0, 2, "Scopes");
44 qmlRegisterType<Scopes>(uri, 0, 2, "Scopes");
44 qmlRegisterType<Scope>(uri, 0, 2, "MockScope");
45 qmlRegisterType<Scope>(uri, 0, 2, "MockScope");
45 qmlRegisterUncreatableType<unity::shell::scopes::ScopeInterface>(uri, 0, 2, "Scope", "Can't create Scope object in QML.");
46 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.");
46 qmlRegisterUncreatableType<unity::shell::scopes::NavigationInterface>(uri, 0, 2, "Navigation", "Can't create Navigation object in QML.");
48 qmlRegisterUncreatableType<unity::shell::scopes::NavigationInterface>(uri, 0, 2, "Navigation", "Can't create Navigation object in QML.");
47 qmlRegisterUncreatableType<unity::shell::scopes::CategoriesInterface>(uri, 0, 2, "Categories", "Can't create Categories object in QML.");
49 qmlRegisterUncreatableType<unity::shell::scopes::CategoriesInterface>(uri, 0, 2, "Categories", "Can't create Categories object in QML.");
48 qmlRegisterUncreatableType<unity::shell::scopes::PreviewModelInterface>(uri, 0, 2, "PreviewModel", "Can't create new PreviewModel in QML. Get them from PreviewStack instance.");
50 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 {
26 gradientColor: getColor(1) || color;
26 gradientColor: getColor(1) || color;
27 anchors.fill: parent;
27 anchors.fill: parent;
28 image: backgroundImage.source ? backgroundImage : null;
28 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);
30 property Image backgroundImage: Image {
30 property Image backgroundImage: Image {
31 objectName: "backgroundImage";
31 objectName: "backgroundImage";
32 source: {
32 source: {
@@ -94,7 +94,7 @@ Image {
94 wrapMode: Text.Wrap;
94 wrapMode: Text.Wrap;
95 maximumLineCount: 2;
95 maximumLineCount: 2;
96 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
96 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");
98 visible: showHeader ;
98 visible: showHeader ;
99 text: root.title;
99 text: root.title;
100 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
100 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -112,7 +112,7 @@ Image {
112 elide: Text.ElideRight;
112 elide: Text.ElideRight;
113 fontSize: "small";
113 fontSize: "small";
114 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
114 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");
116 visible: titleLabel.visible && titleLabel.text;
116 visible: titleLabel.visible && titleLabel.text;
117 text: cardData && cardData["subtitle"] || "";
117 text: cardData && cardData["subtitle"] || "";
118 font.weight: Font.Light;
118 font.weight: Font.Light;
tests/plugins/Dash/cardcreator/5.res+5−3
@@ -69,7 +69,7 @@ Loader {
69 sourceComponent: ShaderEffect {
69 sourceComponent: ShaderEffect {
70 id: overlay;
70 id: overlay;
71 height: (fixedHeaderHeight > 0 ? fixedHeaderHeight : headerHeight) + units.gu(2);
71 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);
73 property color overlayColor: cardData && cardData["overlayColor"] || "#99000000";
73 property color overlayColor: cardData && cardData["overlayColor"] || "#99000000";
74 property var source: ShaderEffectSource {
74 property var source: ShaderEffectSource {
75 id: shaderSource;
75 id: shaderSource;
@@ -103,6 +103,7 @@ Label {
103 id: titleLabel;
103 id: titleLabel;
104 objectName: "titleLabel";
104 objectName: "titleLabel";
105 anchors { right: parent.right;
105 anchors { right: parent.right;
106+ rightMargin: units.gu(1);
106 left: parent.left;
107 left: parent.left;
107 leftMargin: units.gu(1);
108 leftMargin: units.gu(1);
108 top: overlayLoader.top;
109 top: overlayLoader.top;
@@ -113,7 +114,7 @@ Label {
113 wrapMode: Text.Wrap;
114 wrapMode: Text.Wrap;
114 maximumLineCount: 2;
115 maximumLineCount: 2;
115 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
116 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");
117 visible: showHeader && overlayLoader.active;
118 visible: showHeader && overlayLoader.active;
118 text: root.title;
119 text: root.title;
119 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
120 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -124,6 +125,7 @@ Label {
124 objectName: "subtitleLabel";
125 objectName: "subtitleLabel";
125 anchors { left: titleLabel.left;
126 anchors { left: titleLabel.left;
126 leftMargin: titleLabel.leftMargin;
127 leftMargin: titleLabel.leftMargin;
128+ rightMargin: units.gu(1);
127 right: titleLabel.right;
129 right: titleLabel.right;
128 top: titleLabel.bottom;
130 top: titleLabel.bottom;
129 }
131 }
@@ -131,7 +133,7 @@ Label {
131 elide: Text.ElideRight;
133 elide: Text.ElideRight;
132 fontSize: "small";
134 fontSize: "small";
133 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
135 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");
135 visible: titleLabel.visible && titleLabel.text;
137 visible: titleLabel.visible && titleLabel.text;
136 text: cardData && cardData["subtitle"] || "";
138 text: cardData && cardData["subtitle"] || "";
137 font.weight: Font.Light;
139 font.weight: Font.Light;
tests/plugins/Dash/cardcreator/6.res+4−4
@@ -26,7 +26,7 @@ Loader {
26 gradientColor: getColor(1) || color;
26 gradientColor: getColor(1) || color;
27 anchors.fill: parent;
27 anchors.fill: parent;
28 image: backgroundImage.source ? backgroundImage : null;
28 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);
30 property Image backgroundImage: Image {
30 property Image backgroundImage: Image {
31 objectName: "backgroundImage";
31 objectName: "backgroundImage";
32 source: {
32 source: {
@@ -70,7 +70,7 @@ Item {
70 wrapMode: Text.Wrap;
70 wrapMode: Text.Wrap;
71 maximumLineCount: 2;
71 maximumLineCount: 2;
72 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
72 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");
74 visible: showHeader ;
74 visible: showHeader ;
75 text: root.title;
75 text: root.title;
76 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
76 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -88,7 +88,7 @@ Item {
88 elide: Text.ElideRight;
88 elide: Text.ElideRight;
89 fontSize: "small";
89 fontSize: "small";
90 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
90 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");
92 visible: titleLabel.visible && titleLabel.text;
92 visible: titleLabel.visible && titleLabel.text;
93 text: cardData && cardData["subtitle"] || "";
93 text: cardData && cardData["subtitle"] || "";
94 font.weight: Font.Light;
94 font.weight: Font.Light;
@@ -103,7 +103,7 @@ Item {
103 rightMargin: units.gu(1);
103 rightMargin: units.gu(1);
104 }
104 }
105 source: cardData && cardData["emblem"] || "";
105 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");
107 width: height;
107 width: height;
108 height: source != "" ? titleLabel.font.pixelSize : 0;
108 height: source != "" ? titleLabel.font.pixelSize : 0;
109 }
109 }
tests/plugins/Dash/cardcreator/7.res+5−4
@@ -26,7 +26,7 @@ Loader {
26 gradientColor: getColor(1) || color;
26 gradientColor: getColor(1) || color;
27 anchors.fill: parent;
27 anchors.fill: parent;
28 image: backgroundImage.source ? backgroundImage : null;
28 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);
30 property Image backgroundImage: Image {
30 property Image backgroundImage: Image {
31 objectName: "backgroundImage";
31 objectName: "backgroundImage";
32 source: {
32 source: {
@@ -95,7 +95,7 @@ Image {
95 wrapMode: Text.Wrap;
95 wrapMode: Text.Wrap;
96 maximumLineCount: 2;
96 maximumLineCount: 2;
97 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
97 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");
99 visible: showHeader ;
99 visible: showHeader ;
100 text: root.title;
100 text: root.title;
101 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
101 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -113,7 +113,7 @@ Image {
113 elide: Text.ElideRight;
113 elide: Text.ElideRight;
114 fontSize: "small";
114 fontSize: "small";
115 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
115 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");
117 visible: titleLabel.visible && titleLabel.text;
117 visible: titleLabel.visible && titleLabel.text;
118 text: cardData && cardData["subtitle"] || "";
118 text: cardData && cardData["subtitle"] || "";
119 font.weight: Font.Light;
119 font.weight: Font.Light;
@@ -127,7 +127,8 @@ Image {
127 rightMargin: units.gu(1);
127 rightMargin: units.gu(1);
128 top: subtitleLabel.bottom;
128 top: subtitleLabel.bottom;
129 }
129 }
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;
131 model: cardData && cardData["attributes"];
132 model: cardData && cardData["attributes"];
132 }
133 }
133
134
tests/plugins/Dash/tst_CardAttributes.qml+4−1
@@ -26,7 +26,8 @@ Item {
26 [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}],
26 [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"}],
27 [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"},{"value":"text3"}],
27 [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"},{"value":"text3"}],
28 [{"value":"text1","icon":"image://theme/ok"},{"value":"text2","icon":"image://theme/cancel"},{"value":"text3"},{"value":"text4"}],
28 [{"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"}],
30 ]
31 ]
31
32
32 CardAttributes {
33 CardAttributes {
@@ -49,6 +50,8 @@ Item {
49 function test_columns(data) {
50 function test_columns(data) {
50 cardAttributes.model = data;
51 cardAttributes.model = data;
51 compare(cardAttributes.columns, 2 + data.length % 2);
52 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);
52 }
55 }
53 }
56 }
54}
57}
tests/plugins/Dash/tst_ScopeStyle.qml+73−68
@@ -18,6 +18,7 @@ import QtQuick 2.2
18import QtTest 1.0
18import QtTest 1.0
19import Dash 0.1
19import Dash 0.1
20import Ubuntu.Components 1.1
20import Ubuntu.Components 1.1
21+import Utils 0.1
21
22
22Rectangle {
23Rectangle {
23 width: units.gu(40)
24 width: units.gu(40)
@@ -35,39 +36,23 @@ Rectangle {
35 property color color
36 property color color
36 property var styles: [
37 property var styles: [
37 {},
38 {},
38− { "foreground-color": "red", "background-color": "black", "page-header": { "logo": "/foo/bar" } },
39+ { "foreground-color": "red", "background-color": "black", "page-header": { "logo": "/foo/bar" },
40+ "preview-button-color": "red"},
39− { "foreground-color": "green", "background-color": "white", "page-header": { "foreground-color": "black" } },
41+ { "foreground-color": "green", "background-color": "white",
42+ "page-header": { "foreground-color": "black",
43+ "divider-color": "blue" } },
40− { "foreground-color": "blue", "background-color": "darkgrey", "page-header": { "background": "gradient:///white/blue" } },
44+ { "foreground-color": "blue", "background-color": "darkgrey",
45+ "page-header": { "background": "gradient:///white/blue",
46+ "navigation-background": "gradient:///white/blue" } },
41 ]
47 ]
42
48
43 function cleanup() {
49 function cleanup() {
44 testCase.color = "transparent";
50 testCase.color = "transparent";
45 }
51 }
46
52
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−
68 function test_foreground_data() {
53 function test_foreground_data() {
69 return [
54 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 },
71 { tag: "red on black", index: 1, foreground: "red", luminance: 0.2126 },
56 { tag: "red on black", index: 1, foreground: "red", luminance: 0.2126 },
72 { tag: "green on white", index: 2, foreground: "green", luminance: 0.3590 },
57 { tag: "green on white", index: 2, foreground: "green", luminance: 0.3590 },
73 { tag: "blue on darkgrey", index: 3, foreground: "blue", luminance: 0.0722 },
58 { tag: "blue on darkgrey", index: 3, foreground: "blue", luminance: 0.0722 },
@@ -83,7 +68,7 @@ Rectangle {
83
68
84 function test_background_data() {
69 function test_background_data() {
85 return [
70 return [
86− { tag: "default", index: 0, background: "transparent" },
71+ { tag: "default", index: 0, background: "#00f5f5f5", luminance: 0.9608 },
87 { tag: "red on black", index: 1, background: "black", luminance: 0 },
72 { tag: "red on black", index: 1, background: "black", luminance: 0 },
88 { tag: "green on white", index: 2, background: "white", luminance: 1 },
73 { tag: "green on white", index: 2, background: "white", luminance: 1 },
89 { tag: "blue on darkgrey", index: 3, background: "darkgrey", luminance: 0.6627 },
74 { tag: "blue on darkgrey", index: 3, background: "darkgrey", luminance: 0.6627 },
@@ -94,53 +79,35 @@ Rectangle {
94 tool.style = testCase.styles[data.index];
79 tool.style = testCase.styles[data.index];
95 verify(Qt.colorEqual(tool.background, data.background),
80 verify(Qt.colorEqual(tool.background, data.background),
96 "Background color not equal: %1 != %2".arg(tool.background).arg(data.background));
81 "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));
82+ compare(tool.backgroundLuminance.toFixed(4), data.luminance.toFixed(4));
99− }
100 }
83 }
101
84
102− function test_threshold_data() {
85+ function test_getTextColor_data() {
103 return [
86 return [
104− { tag: "default", index: 0, threshold: 0.7863 },
87+ { tag: "default on black", background: "black", index: 0, textColor: "white" },
105− { tag: "red on black", index: 1, threshold: 0.1063 },
88+ { tag: "default on lightgrey", background: "lightgrey", index: 0, textColor: UbuntuColors.darkGrey },
106− { tag: "green on white", index: 2, threshold: 0.6795 },
89+ { tag: "default on white", background: "white", index: 0, textColor: UbuntuColors.darkGrey },
107− { tag: "blue on darkgrey", index: 3, threshold: 0.3675 },
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" },
108 ];
103 ];
109 }
104 }
110
105
111− function test_threshold(data) {
106+ function test_getTextColor(data) {
112 tool.style = testCase.styles[data.index];
107 tool.style = testCase.styles[data.index];
113− compare(tool.threshold.toFixed(4), data.threshold.toFixed(4), "Luminance threshold was incorrect.");
108+ var textColor = tool.getTextColor(Style.luminance(data.background));
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),
109+ verify(Qt.colorEqual(textColor, data.textColor),
143− "Dark color not equal: %1 != %2".arg(tool.dark).arg(data.dark));
110+ "TextColor not equal: %1 != %2".arg(textColor).arg(data.textColor));
144 }
111 }
145
112
146 function test_headerLogo_data() {
113 function test_headerLogo_data() {
@@ -157,7 +124,7 @@ Rectangle {
157
124
158 function test_headerForeground_data() {
125 function test_headerForeground_data() {
159 return [
126 return [
160− { tag: "default", index: 0, headerForeground: Theme.palette.normal.baseText },
127+ { tag: "default", index: 0, headerForeground: UbuntuColors.darkGrey },
161 { tag: "black", index: 2, headerForeground: "black" },
128 { tag: "black", index: 2, headerForeground: "black" },
162 ];
129 ];
163 }
130 }
@@ -170,7 +137,7 @@ Rectangle {
170
137
171 function test_headerBackground_data() {
138 function test_headerBackground_data() {
172 return [
139 return [
173− { tag: "default", index: 0, headerBackground: "" },
140+ { tag: "default", index: 0, headerBackground: "color:///#f5f5f5" },
174 { tag: "black", index: 3, headerBackground: "gradient:///white/blue" },
141 { tag: "black", index: 3, headerBackground: "gradient:///white/blue" },
175 ];
142 ];
176 }
143 }
@@ -179,5 +146,43 @@ Rectangle {
179 tool.style = testCase.styles[data.index];
146 tool.style = testCase.styles[data.index];
180 compare(tool.headerBackground, data.headerBackground, "Header background was incorrect.");
147 compare(tool.headerBackground, data.headerBackground, "Header background was incorrect.");
181 }
148 }
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+ }
182 }
187 }
183}
188}
tests/plugins/Unity/Indicators/rootactionstatetest.cpp+4−4
@@ -50,7 +50,7 @@ private Q_SLOTS:
50
50
51 QCOMPARE(rootState->menu(), menuModel);
51 QCOMPARE(rootState->menu(), menuModel);
52 delete menuModel;
52 delete menuModel;
53− QVERIFY(rootState->menu() == NULL);
53+ QVERIFY(rootState->menu() == nullptr);
54 delete rootState;
54 delete rootState;
55 }
55 }
56
56
@@ -60,8 +60,8 @@ private Q_SLOTS:
60 g_variant_builder_init(&builderIcons, G_VARIANT_TYPE("av"));
60 g_variant_builder_init(&builderIcons, G_VARIANT_TYPE("av"));
61 for (int i = 0; i < 3; i ++) {
61 for (int i = 0; i < 3; i ++) {
62
62
63− GIcon* icon = NULL;
63+ GIcon* icon = nullptr;
64− icon = g_icon_new_for_string (QString("testIcon%1").arg(i).toUtf8().constData(), NULL);
64+ icon = g_icon_new_for_string (QString("testIcon%1").arg(i).toUtf8().constData(), nullptr);
65
65
66 g_variant_builder_add(&builderIcons,
66 g_variant_builder_add(&builderIcons,
67 "v",
67 "v",
@@ -73,7 +73,7 @@ private Q_SLOTS:
73 g_variant_builder_init(&builderParams, G_VARIANT_TYPE_ARRAY);
73 g_variant_builder_init(&builderParams, G_VARIANT_TYPE_ARRAY);
74 GVariant* icons = g_variant_builder_end (&builderIcons);
74 GVariant* icons = g_variant_builder_end (&builderIcons);
75 g_variant_ref_sink (icons);
75 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);
77
77
78 GVariant* params = g_variant_builder_end (&builderParams);
78 GVariant* params = g_variant_builder_end (&builderParams);
79
79
tests/plugins/Unity/Indicators/unitymenumodelstacktest.cpp+1−1
@@ -42,7 +42,7 @@ private Q_SLOTS:
42 void cleanup()
42 void cleanup()
43 {
43 {
44 delete m_model;
44 delete m_model;
45− m_model = NULL;
45+ m_model = nullptr;
46 }
46 }
47
47
48 void testHeadOnSetHead()
48 void testHeadOnSetHead()
tests/plugins/Unity/Launcher/CMakeLists.txt+1−1
@@ -1,6 +1,6 @@
1pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
1pkg_check_modules(GSETTINGS_QT REQUIRED gsettings-qt)
2pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=3)
2pkg_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)
4
4
5include_directories(
5include_directories(
6 ${CMAKE_CURRENT_BINARY_DIR}
6 ${CMAKE_CURRENT_BINARY_DIR}
tests/plugins/Unity/Launcher/launchermodeltest.cpp−1
@@ -93,7 +93,6 @@ public:
93 m_list.takeAt(index)->deleteLater();
93 m_list.takeAt(index)->deleteLater();
94 endRemoveRows();
94 endRemoveRows();
95 }
95 }
96− bool updateScreenshot(const QString &appId) { Q_UNUSED(appId); return true; }
97 bool requestFocusApplication(const QString &appId) { Q_UNUSED(appId); return true; }
96 bool requestFocusApplication(const QString &appId) { Q_UNUSED(appId); return true; }
98 bool suspended() const { return false; }
97 bool suspended() const { return false; }
99 void setSuspended(bool) {}
98 void setSuspended(bool) {}
tests/plugins/Utils/CMakeLists.txt+5
@@ -27,3 +27,8 @@ run_tests(
27 qsortfilterproxymodeltest
27 qsortfilterproxymodeltest
28 timeformattertest
28 timeformattertest
29 )
29 )
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)
50add_qml_test(Dash/Previews PreviewProgress)
50add_qml_test(Dash/Previews PreviewProgress)
51add_qml_test(Dash/Previews PreviewRatingDisplay)
51add_qml_test(Dash/Previews PreviewRatingDisplay)
52add_qml_test(Dash/Previews PreviewRatingInput)
52add_qml_test(Dash/Previews PreviewRatingInput)
53+add_qml_test(Dash/Previews PreviewTable)
53add_qml_test(Dash/Previews PreviewTextSummary)
54add_qml_test(Dash/Previews PreviewTextSummary)
54add_qml_test(Dash/Previews PreviewVideoPlayback)
55add_qml_test(Dash/Previews PreviewVideoPlayback)
55add_qml_test(Dash/Previews PreviewWidgetFactory)
56add_qml_test(Dash/Previews PreviewWidgetFactory)
56add_qml_test(Dash/Previews PreviewZoomableImage)
57add_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)
57add_qml_test(Greeter Lockscreen ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
63add_qml_test(Greeter Lockscreen ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
58add_qml_test(Greeter MultiGreeter ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
64add_qml_test(Greeter MultiGreeter ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
59add_qml_test(Greeter SingleGreeter ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
65add_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)
72add_qml_test(Panel SearchIndicator)
78add_qml_test(Panel SearchIndicator)
73add_qml_test(Panel/Indicators DefaultIndicatorWidget ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel")
79add_qml_test(Panel/Indicators DefaultIndicatorWidget ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel")
74add_qml_test(Panel/Indicators DefaultIndicatorPage ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/QMenuModel")
80add_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")
75# These MenuItemFactory tests need the test/mocks/ to come before plugins/
82# These MenuItemFactory tests need the test/mocks/ to come before plugins/
76add_qml_test(Panel/Indicators MenuItemFactory IMPORT_PATHS ${CMAKE_BINARY_DIR}/tests/mocks ${qmltest_DEFAULT_IMPORT_PATHS})
83add_qml_test(Panel/Indicators MenuItemFactory IMPORT_PATHS ${CMAKE_BINARY_DIR}/tests/mocks ${qmltest_DEFAULT_IMPORT_PATHS})
77add_qml_test(Panel/Indicators MessageMenuItemFactory IMPORT_PATHS ${CMAKE_BINARY_DIR}/tests/mocks ${qmltest_DEFAULT_IMPORT_PATHS})
84add_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")
78add_qml_test(Stages PhoneStage ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
86add_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 {
46
46
47 function test_style_data() {
47 function test_style_data() {
48 return [
48 return [
49− { tag: "empty", style: "" },
49+ { tag: "empty", style: "", luminance: 0.5 },
50− { tag: "solid", style: "color:///black" },
50+ { tag: "solid", style: "color:///black", luminance: 0 },
51− { tag: "gradient", style: "gradient:///black/red" },
51+ { tag: "gradient", style: "gradient:///black/red", luminance: 0.1063 },
52− { tag: "image", style: "/some/path" },
52+ { tag: "image", style: "/some/path", luminance: 0.5 },
53 ];
53 ];
54 }
54 }
55
55
@@ -58,6 +58,7 @@ Rectangle {
58 expectFail("empty", "Empty style should not create a background.");
58 expectFail("empty", "Empty style should not create a background.");
59 loadedSpy.wait();
59 loadedSpy.wait();
60 compare(background.item.objectName, data.tag, "Background should be %1".arg(data.style));
60 compare(background.item.objectName, data.tag, "Background should be %1".arg(data.style));
61+ compare(background.luminance, data.luminance);
61 }
62 }
62
63
63 function test_solid() {
64 function test_solid() {
tests/qmltests/Dash/Previews/tst_PreviewActions.qml+8−8
@@ -27,21 +27,21 @@ Rectangle {
27 height: units.gu(80)
27 height: units.gu(80)
28
28
29 property var actionDataOneAction: {
29 property var actionDataOneAction: {
30− "actions": [{"label": "Some Label", "icon": "../graphics/play_button.png", "id": "someid"}]
30+ "actions": [{"label": "Some Label", "id": "someid"}]
31 }
31 }
32
32
33 property var actionDataTwoActions: {
33 property var actionDataTwoActions: {
34− "actions": [{"label": "Some Label A", "icon": "../graphics/icon_clear.png", "id": "someid1"},
34+ "actions": [{"label": "Some Label A", "id": "someid1"},
35− {"label": "Some Label B", "icon": "../graphics/play_button.png", "id": "someid2"}
35+ {"label": "Some Label B", "id": "someid2"}
36 ]
36 ]
37 }
37 }
38
38
39 property var actionDataFiveActions: {
39 property var actionDataFiveActions: {
40− "actions": [{"label": "Some Label C", "icon": "../graphics/play_button.png", "id": "someid3"},
40+ "actions": [{"label": "Some Label C", "id": "someid3"},
41− {"label": "Some Label D", "icon": "../graphics/icon_clear.png", "id": "someid4"},
41+ {"label": "Some Label D", "id": "someid4"},
42− {"label": "Some Label E", "icon": "../graphics/play_button.png", "id": "someid5"},
42+ {"label": "Some Label E", "id": "someid5"},
43− {"label": "Some Label F", "icon": "../graphics/icon_clear.png", "id": "someid6"},
43+ {"label": "Some Label F", "id": "someid6"},
44− {"label": "Some Label G", "icon": "../graphics/play_button.png", "id": "someid7"}
44+ {"label": "Some Label G", "id": "someid7"}
45 ]
45 ]
46 }
46 }
47
47
tests/qmltests/Dash/Previews/tst_PreviewExpandable.qml+16−6
@@ -30,15 +30,25 @@ Rectangle {
30 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."
30 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."
31 property string shortText: "This is a short text :)"
31 property string shortText: "This is a short text :)"
32
32
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+
33 property var widgetData: {
41 property var widgetData: {
34 "title": "Title here",
42 "title": "Title here",
35 "collapsed-widgets": 2,
43 "collapsed-widgets": 2,
36− "widgets": [
44+ "widgets": widgetsModel
45+ }
46+
47+ Component.onCompleted: {
37− { "type": "text", "widgetId" : "text1", "properties" : { "text": longText } },
48+ widgetsModel.append({"type": "text", "widgetId": "text1", "properties": { "text": longText }});
38− { "type": "text", "widgetId" : "text2", "properties" : { "text": longText2 } },
49+ widgetsModel.append({"type": "text", "widgetId": "table1", "properties": { "text": tableData }});
39− { "type": "text", "widgetId" : "text3", "properties" : { "text": shortText } },
50+ widgetsModel.append({"type": "text", "widgetId": "text3", "properties": { "text": shortText }});
40− { "type": "text", "widgetId" : "text4", "properties" : { "text": longText } }
51+ widgetsModel.append({"type": "text", "widgetId": "text4", "properties": { "text": longText }});
41− ]
42 }
52 }
43
53
44 PreviewExpandable {
54 PreviewExpandable {
tests/qmltests/Dash/Previews/tst_PreviewPayments.qml+24
@@ -52,6 +52,8 @@ Rectangle {
52 function cleanup()
52 function cleanup()
53 {
53 {
54 spy.clear();
54 spy.clear();
55+ var button = findChild(root, "paymentButton");
56+ button.opacity = 1;
55 }
57 }
56
58
57 function test_purchase_text_display() {
59 function test_purchase_text_display() {
@@ -79,6 +81,28 @@ Rectangle {
79 compare(args[2], jsonPurchase["source"]);
81 compare(args[2], jsonPurchase["source"]);
80 }
82 }
81
83
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+
82 function test_purchase_error() {
106 function test_purchase_error() {
83 // The mock Payments triggers an error when com.example.invalid is
107 // The mock Payments triggers an error when com.example.invalid is
84 // passed to it as store_item_id. Exercise it here
108 // 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 {
84 { tag: "Progress", type: "progress", source: "PreviewProgress.qml" },
84 { tag: "Progress", type: "progress", source: "PreviewProgress.qml" },
85 { tag: "Rating Input", type: "rating-input", source: "PreviewRatingInput.qml" },
85 { tag: "Rating Input", type: "rating-input", source: "PreviewRatingInput.qml" },
86 { tag: "Rating Display", type: "reviews", source: "PreviewRatingDisplay.qml" },
86 { tag: "Rating Display", type: "reviews", source: "PreviewRatingDisplay.qml" },
87+ { tag: "Table", type: "table", source: "PreviewTable.qml" },
87 { tag: "Text", type: "text", source: "PreviewTextSummary.qml" },
88 { tag: "Text", type: "text", source: "PreviewTextSummary.qml" },
88 { tag: "Video", type: "video", source: "PreviewVideoPlayback.qml" },
89 { tag: "Video", type: "video", source: "PreviewVideoPlayback.qml" },
89 ];
90 ];
@@ -93,7 +94,7 @@ Rectangle {
93 factory.widgetData = { type: data.type };
94 factory.widgetData = { type: data.type };
94 factory.widgetType = data.type;
95 factory.widgetType = data.type;
95
96
96− verify(("" + factory.source).indexOf(data.source) != -1);
97+ verify((String(factory.source)).indexOf(data.source) != -1);
97 }
98 }
98 }
99 }
99}
100}
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.