on xenial help sign in
Merged trunk.
5616be6Pawel Stolowski
Bottombar/Bottombar.qml+60−6
@@ -18,6 +18,7 @@ import QtQuick 2.0
18import "../Components"
18import "../Components"
19import "../Components/Math.js" as MathLocal
19import "../Components/Math.js" as MathLocal
20import Unity 0.1
20import Unity 0.1
21+import Ubuntu.Application 0.1
21import Ubuntu.Gestures 0.1
22import Ubuntu.Gestures 0.1
22
23
23Item {
24Item {
@@ -28,15 +29,46 @@ Item {
28
29
29 property variant theHud
30 property variant theHud
30 property bool enabled: false
31 property bool enabled: false
32+ property bool preventHiding: dragArea.dragging
31 readonly property real bottomEdgeButtonCenterDistance: units.gu(34)
33 readonly property real bottomEdgeButtonCenterDistance: units.gu(34)
32
34
33− state: dragArea.status === DirectionalDragArea.Recognized ? "shown" : "hidden"
35+ state: "hidden"
36+
37+ onStateChanged: {
38+ if (state == "hidden") {
39+ dismissTimer.stop()
40+ } else {
41+ dismissTimer.restart()
42+ }
43+ }
44+
45+ onPreventHidingChanged: {
46+ if (dismissTimer.running) {
47+ dismissTimer.restart();
48+ }
49+ }
50+
51+ Timer {
52+ id: dismissTimer
53+ interval: 5000
54+ onTriggered: {
55+ if (!bottombar.preventHiding) {
56+ bottombar.state = "hidden"
57+ } else {
58+ dismissTimer.restart()
59+ }
60+ }
61+ }
34
62
35 HudButton {
63 HudButton {
36 id: hudButton
64 id: hudButton
37
65
66+ readonly property bool centeredHud: parent.width < units.gu(68) // Nexus 7 has 67 gu width
67+
38− x: MathLocal.clamp(dragArea.touchStartX - (width / 2), 0, bottombar.width - width)
68+ x: centeredHud ? parent.width / 2 - width / 2 : MathLocal.clamp(dragArea.touchStartX - (width / 2), 0, bottombar.width - width)
39 y: bottombar.height - bottomEdgeButtonCenterDistance - (height / 2) - bottomMargin
69 y: bottombar.height - bottomEdgeButtonCenterDistance - (height / 2) - bottomMargin
70+ z: 1
71+ visible: opacity != 0
40
72
41 mouseOver: {
73 mouseOver: {
42 if (dragArea.status === DirectionalDragArea.Recognized) {
74 if (dragArea.status === DirectionalDragArea.Recognized) {
@@ -55,13 +87,18 @@ Item {
55 }
87 }
56
88
57 Behavior on opacity {
89 Behavior on opacity {
58− NumberAnimation{ duration: 200; easing.type: Easing.OutCubic}
90+ NumberAnimation{duration: 200; easing.type: Easing.OutCubic}
59 }
91 }
60 }
92 }
61
93
62 Connections {
94 Connections {
63 target: theHud
95 target: theHud
96+ onShownChanged: {
64− onShownChanged: bottomBarVisibilityCommunicatorShell.forceHidden = theHud.shown
97+ bottomBarVisibilityCommunicatorShell.forceHidden = theHud.shown
98+ if (theHud.shown) {
99+ bottombar.state = "hidden"
100+ }
101+ }
65 }
102 }
66
103
67 EdgeDragArea {
104 EdgeDragArea {
@@ -70,6 +107,7 @@ Item {
70 height: distanceThreshold
107 height: distanceThreshold
71 anchors.bottom: parent.bottom
108 anchors.bottom: parent.bottom
72
109
110+ distanceThreshold: units.gu(8)
73 enabled: !theHud.shown && bottombar.enabled && applicationIsOnForeground
111 enabled: !theHud.shown && bottombar.enabled && applicationIsOnForeground
74 direction: Direction.Upwards
112 direction: Direction.Upwards
75
113
@@ -84,12 +122,29 @@ Item {
84 }
122 }
85 }
123 }
86 } else if (status === DirectionalDragArea.Undecided) {
124 } else if (status === DirectionalDragArea.Undecided) {
125+ if (!hudButton.centeredHud) {
87− touchStartX = touchX
126+ touchStartX = touchX
127+ }
128+ } else if (status === DirectionalDragArea.Recognized) {
129+ bottombar.state = "shown"
88 }
130 }
89 previousStatus = status
131 previousStatus = status
90 }
132 }
91 }
133 }
92
134
135+ MouseArea {
136+ anchors.fill: parent
137+ enabled: bottombar.state == "shown"
138+ onPressed: {
139+ bottombar.state = "hidden"
140+ }
141+ }
142+
143+ InputFilterArea {
144+ anchors.fill: parent
145+ blockInput: hudButton.visible
146+ }
147+
93 states: [
148 states: [
94 State {
149 State {
95 name: "hidden"
150 name: "hidden"
@@ -102,5 +157,4 @@ Item {
102 PropertyChanges { target: hudButton; bottomMargin: units.gu(0)}
157 PropertyChanges { target: hudButton; bottomMargin: units.gu(0)}
103 }
158 }
104 ]
159 ]
105−
106}
160}
Bottombar/HudButton.qml+8−8
@@ -33,24 +33,24 @@ Item {
33
33
34 Item {
34 Item {
35 id: hudButton
35 id: hudButton
36− property alias actionButton: actionButton
37
36
38 anchors.centerIn: parent
37 anchors.centerIn: parent
39 height: units.gu(12)
38 height: units.gu(12)
40 width: height
39 width: height
41− opacity: item.mouseOver ? 1 : 0.7
40+ opacity: item.mouseOver || abstractButton.pressed ? 1 : 0.7
42− scale: item.mouseOver ? scaleOnMouseOver : 1
41+ scale: item.mouseOver || abstractButton.pressed ? scaleOnMouseOver : 1
43 Behavior on opacity {NumberAnimation{duration: 200; easing.type: Easing.OutQuart}}
42 Behavior on opacity {NumberAnimation{duration: 200; easing.type: Easing.OutQuart}}
44 Behavior on scale {NumberAnimation{duration: 200; easing.type: Easing.OutQuart}}
43 Behavior on scale {NumberAnimation{duration: 200; easing.type: Easing.OutQuart}}
45
44
46− UbuntuShape {
45+ AbstractButton {
47− id: actionButton
46+ id: abstractButton
48 anchors.fill: parent
47 anchors.fill: parent
49−
50− borderSource: ""
51− image: Image {
48+ style: Image {
49+ anchors.fill: parent
52 source: "graphics/hud_invoke_button_active.png"
50 source: "graphics/hud_invoke_button_active.png"
53 }
51 }
52+
53+ onClicked: item.clicked()
54 }
54 }
55
55
56 Image {
56 Image {
Components/EdgeDemo.qmlnew file+231
@@ -0,0 +1,231 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import AccountsService 0.1
18+import LightDM 0.1 as LightDM
19+import QtQuick 2.0
20+
21+Item {
22+ id: demo
23+
24+ property Item greeter
25+ property Item dash
26+ property Item launcher
27+ property Item indicators
28+ property Item underlay
29+
30+ property bool launcherEnabled: true
31+ property bool dashEnabled: true
32+ property bool panelEnabled: true
33+ property bool panelContentEnabled: true
34+
35+ property bool paused: false
36+
37+ onPausedChanged: {
38+ if (d.rightEdgeDemo) d.rightEdgeDemo.paused = paused
39+ if (d.topEdgeDemo) d.topEdgeDemo.paused = paused
40+ if (d.bottomEdgeDemo) d.bottomEdgeDemo.paused = paused
41+ if (d.leftEdgeDemo) d.leftEdgeDemo.paused = paused
42+ if (d.finalEdgeDemo) d.finalEdgeDemo.paused = paused
43+ }
44+
45+ function hideEdgeDemoInShell() {
46+ var user = LightDM.Users.data(greeter.currentIndex, LightDM.UserRoles.NameRole);
47+ AccountsService.setUserProperty(user, "demo-edges", false);
48+ d.showEdgeDemo = false;
49+ stopDemo();
50+ }
51+
52+ function hideEdgeDemoInGreeter() {
53+ // TODO: AccountsService.setUserProperty("lightdm", "demo-edges", false);
54+ d.showEdgeDemoInGreeter = false;
55+ }
56+
57+ function hideEdgeDemos() {
58+ hideEdgeDemoInGreeter();
59+ hideEdgeDemoInShell();
60+ }
61+
62+ function stopDemo() {
63+ launcherEnabled = true
64+ dashEnabled = true
65+ panelEnabled = true
66+ panelContentEnabled = true
67+ if (d.rightEdgeDemo) d.rightEdgeDemo.destroy()
68+ if (d.topEdgeDemo) d.topEdgeDemo.destroy()
69+ if (d.bottomEdgeDemo) d.bottomEdgeDemo.destroy()
70+ if (d.leftEdgeDemo) d.leftEdgeDemo.destroy()
71+ if (d.finalEdgeDemo) d.finalEdgeDemo.destroy()
72+ }
73+
74+ QtObject {
75+ id: d
76+ property Component overlay
77+ property QtObject rightEdgeDemo
78+ property QtObject topEdgeDemo
79+ property QtObject bottomEdgeDemo
80+ property QtObject leftEdgeDemo
81+ property QtObject finalEdgeDemo
82+ property bool showEdgeDemo: false
83+ property bool showEdgeDemoInGreeter: d.showEdgeDemo // TODO: AccountsService.getUserProperty("lightdm", "demo-edges")
84+
85+ onShowEdgeDemoInGreeterChanged: {
86+ if (!d.overlay && d.showEdgeDemoInGreeter) {
87+ d.overlay = Qt.createComponent("EdgeDemoOverlay.qml")
88+ startRightEdgeDemo()
89+ }
90+ }
91+ }
92+
93+ function startRightEdgeDemo() {
94+ launcherEnabled = false;
95+ demo.dashEnabled = false;
96+ demo.panelEnabled = false;
97+ demo.panelContentEnabled = false;
98+ if (demo.greeter) {
99+ d.rightEdgeDemo = d.overlay.createObject(demo.greeter, {
100+ "edge": "right",
101+ "title": i18n.tr("Right edge"),
102+ "text": i18n.tr("Try swiping from the right edge to unlock the phone"),
103+ "anchors.fill": demo.greeter,
104+ });
105+ }
106+ if (d.rightEdgeDemo) {
107+ d.rightEdgeDemo.onSkip.connect(demo.hideEdgeDemos)
108+ } else {
109+ stopDemo();
110+ }
111+ }
112+
113+ Connections {
114+ target: demo.greeter
115+
116+ function hide() {
117+ if (d.rightEdgeDemo && d.rightEdgeDemo.available) {
118+ d.rightEdgeDemo.hide()
119+ hideEdgeDemoInGreeter()
120+ startTopEdgeDemo()
121+ }
122+ }
123+
124+ onUnlocked: hide()
125+ onShownChanged: if (!greeter.shown) hide()
126+
127+ onSelected: {
128+ var user = LightDM.Users.data(uid, LightDM.UserRoles.NameRole)
129+ d.showEdgeDemo = AccountsService.getUserProperty(user, "demo-edges")
130+ }
131+ }
132+
133+ function startTopEdgeDemo() {
134+ demo.panelEnabled = true;
135+ if (demo.dash && demo.underlay) {
136+ d.topEdgeDemo = d.overlay.createObject(demo.underlay, {
137+ "edge": "top",
138+ "title": i18n.tr("Top edge"),
139+ "text": i18n.tr("Try swiping from the top edge to access the indicators"),
140+ "anchors.fill": demo.dash,
141+ });
142+ }
143+ if (d.topEdgeDemo) {
144+ d.topEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
145+ } else {
146+ stopDemo();
147+ }
148+ }
149+
150+ Connections {
151+ target: demo.indicators
152+ onFullyOpenedChanged: {
153+ if (d.topEdgeDemo && d.topEdgeDemo.available && demo.indicators.fullyOpened) {
154+ d.topEdgeDemo.hideNow()
155+ startBottomEdgeDemo()
156+ }
157+ }
158+ }
159+
160+ function startBottomEdgeDemo() {
161+ if (demo.indicators) {
162+ d.bottomEdgeDemo = d.overlay.createObject(demo.indicators, {
163+ "edge": "bottom",
164+ "title": i18n.tr("Close"),
165+ "text": i18n.tr("Swipe up again to close the settings screen"),
166+ "anchors.fill": demo.indicators,
167+ });
168+ }
169+ if (d.bottomEdgeDemo) {
170+ d.bottomEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
171+ } else {
172+ stopDemo();
173+ }
174+ }
175+
176+ Connections {
177+ target: demo.indicators
178+ onPartiallyOpenedChanged: {
179+ if (d.bottomEdgeDemo && d.bottomEdgeDemo.available && !demo.indicators.partiallyOpened && !demo.indicators.fullyOpened) {
180+ d.bottomEdgeDemo.hideNow()
181+ startLeftEdgeDemo()
182+ }
183+ }
184+ }
185+
186+ function startLeftEdgeDemo() {
187+ demo.panelEnabled = false;
188+ demo.launcherEnabled = true;
189+ if (demo.dash && demo.underlay) {
190+ d.leftEdgeDemo = d.overlay.createObject(demo.underlay, {
191+ "edge": "left",
192+ "title": i18n.tr("Left edge"),
193+ "text": i18n.tr("Swipe from the left to reveal the launcher for quick access to apps"),
194+ "anchors.fill": demo.dash,
195+ });
196+ }
197+ if (d.leftEdgeDemo) {
198+ d.leftEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
199+ } else {
200+ stopDemo();
201+ }
202+ }
203+
204+ Connections {
205+ target: demo.launcher
206+ onStateChanged: {
207+ if (d.leftEdgeDemo && d.leftEdgeDemo.available && launcher.state == "visible") {
208+ d.leftEdgeDemo.hide()
209+ launcher.hide()
210+ startFinalEdgeDemo()
211+ }
212+ }
213+ }
214+
215+ function startFinalEdgeDemo() {
216+ demo.launcherEnabled = false;
217+ if (demo.dash && demo.underlay) {
218+ d.finalEdgeDemo = d.overlay.createObject(demo.underlay, {
219+ "edge": "none",
220+ "title": i18n.tr("Well done"),
221+ "text": i18n.tr("You have now mastered the edge gestures and can start using the phone"),
222+ "anchors.fill": demo.dash,
223+ });
224+ }
225+ if (d.finalEdgeDemo) {
226+ d.finalEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
227+ } else {
228+ stopDemo();
229+ }
230+ }
231+}
Components/EdgeDemoOverlay.qmlnew file+256
@@ -0,0 +1,256 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import Powerd 0.1
18+import QtQuick 2.0
19+import QtGraphicalEffects 1.0
20+import Ubuntu.Application 0.1
21+import Ubuntu.Components 0.1
22+
23+Showable {
24+ id: overlay
25+
26+ /*
27+ * Valid values are "left", "right", "top", "bottom", or "none".
28+ */
29+ property string edge: "top"
30+
31+ /*
32+ * This is the header displayed, like "Right edge".
33+ */
34+ property alias title: titleLabel.text
35+
36+ /*
37+ * This is the block of text displayed below the header.
38+ */
39+ property alias text: textLabel.text
40+
41+ /*
42+ * This is the text for the skip button.
43+ */
44+ property alias skipText: skipLabel.text
45+
46+ /*
47+ * Whether this demo is running currently.
48+ */
49+ readonly property bool active: available && visible
50+
51+ /*
52+ * Whether animations are paused.
53+ */
54+ property alias paused: wholeAnimation.paused
55+
56+ /*
57+ * Whether animations are running.
58+ */
59+ readonly property alias running: wholeAnimation.running
60+
61+ signal skip()
62+
63+ function doSkip() {
64+ d.skipOnHide = true;
65+ hide();
66+ }
67+
68+ function hideNow() {
69+ overlay.visible = false;
70+ overlay.available = false;
71+ if (d.skipOnHide) {
72+ overlay.skip();
73+ }
74+ }
75+
76+ showAnimation: StandardAnimation {
77+ property: "opacity"
78+ to: 1
79+ onRunningChanged: if (running) overlay.visible = true
80+ }
81+ hideAnimation: StandardAnimation {
82+ property: "opacity"
83+ to: 0
84+ duration: UbuntuAnimation.BriskDuration
85+ onRunningChanged: if (!running) overlay.hideNow()
86+ }
87+
88+ QtObject {
89+ id: d
90+ property bool skipOnHide: false
91+ property int edgeMargin: units.gu(4)
92+ }
93+
94+ Rectangle {
95+ objectName: "backgroundShade"
96+
97+ anchors.fill: parent
98+ color: "black"
99+ opacity: 0.8
100+ visible: overlay.active
101+
102+ MouseArea {
103+ anchors.fill: parent
104+ enabled: overlay.edge == "none" && overlay.opacity == 1.0
105+ onClicked: overlay.doSkip()
106+ }
107+ }
108+
109+ Item {
110+ id: hintGroup
111+ x: 0
112+ y: 0
113+ width: parent.width
114+ height: parent.height
115+ visible: overlay.active
116+
117+ Column {
118+ id: labelGroup
119+ layer.enabled: true // otherwise the underlining on "Skip intro" jumps
120+ spacing: units.gu(3)
121+
122+ anchors {
123+ margins: d.edgeMargin
124+ left: parent.left
125+ top: overlay.edge == "bottom" ? undefined : parent.top
126+ bottom: overlay.edge == "bottom" ? parent.bottom : undefined
127+ }
128+
129+ Label {
130+ id: titleLabel
131+ fontSize: "x-large"
132+ width: units.gu(25)
133+ wrapMode: Text.WordWrap
134+ }
135+
136+ Label {
137+ id: textLabel
138+ width: units.gu(25)
139+ wrapMode: Text.WordWrap
140+ }
141+
142+ Label {
143+ id: skipLabel
144+ objectName: "skipLabel"
145+ text: i18n.tr("Skip intro")
146+ color: UbuntuColors.orange
147+ fontSize: "small"
148+ font.underline: true
149+
150+ MouseArea {
151+ anchors.fill: parent
152+ onClicked: overlay.doSkip()
153+ }
154+ }
155+ }
156+
157+ LinearGradient {
158+ id: edgeHint
159+ property int size: 1
160+ cached: false
161+ visible: overlay.edge != "none"
162+ gradient: Gradient {
163+ GradientStop {
164+ position: 0.0
165+ color: Qt.hsla(16.0/360.0, 0.83, 0.47, 0.4) // UbuntuColors.orange, but transparent
166+ }
167+ GradientStop {
168+ position: 1.0
169+ color: "transparent"
170+ }
171+ }
172+ anchors.fill: parent
173+ start: {
174+ if (overlay.edge == "right") {
175+ return Qt.point(width, 0);
176+ } else if (overlay.edge == "left") {
177+ return Qt.point(0, 0);
178+ } else if (overlay.edge == "top") {
179+ return Qt.point(0, 0);
180+ } else {
181+ return Qt.point(0, height);
182+ }
183+ }
184+ end: {
185+ if (overlay.edge == "right") {
186+ return Qt.point(width - size, 0);
187+ } else if (overlay.edge == "left") {
188+ return Qt.point(size, 0);
189+ } else if (overlay.edge == "top") {
190+ return Qt.point(0, size);
191+ } else {
192+ return Qt.point(0, height - size);
193+ }
194+ }
195+ }
196+ }
197+
198+ SequentialAnimation {
199+ id: wholeAnimation
200+ objectName: "wholeAnimation"
201+ running: overlay.active
202+
203+ ParallelAnimation {
204+ id: fadeInAnimation
205+
206+ StandardAnimation {
207+ target: labelGroup
208+ property: {
209+ if (overlay.edge == "right" || overlay.edge == "left") {
210+ return "anchors.leftMargin";
211+ } else if (overlay.edge == "bottom") {
212+ return "anchors.bottomMargin";
213+ } else {
214+ return "anchors.topMargin";
215+ }
216+ }
217+ from: {
218+ if (overlay.edge == "right") {
219+ return d.edgeMargin + units.gu(3)
220+ } else {
221+ return d.edgeMargin - units.gu(3)
222+ }
223+ }
224+ to: d.edgeMargin
225+ duration: overlay.edge == "none" ? 0 : UbuntuAnimation.SleepyDuration
226+ }
227+ StandardAnimation {
228+ target: overlay
229+ property: "opacity"
230+ from: 0.0
231+ to: 1.0
232+ duration: UbuntuAnimation.SleepyDuration
233+ }
234+ }
235+
236+ SequentialAnimation {
237+ id: hintAnimation
238+ loops: Animation.Infinite
239+ property string prop: (overlay.edge == "left" || overlay.edge == "right") ? "x" : "y"
240+ property double endVal: units.dp(5) * ((overlay.edge == "left" || overlay.edge == "top") ? 1 : -1)
241+ property double maxGlow: units.dp(20)
242+ property int duration: overlay.edge == "none" ? 0 : UbuntuAnimation.SleepyDuration
243+
244+ ParallelAnimation {
245+ StandardAnimation { target: hintGroup; property: hintAnimation.prop; from: 0; to: hintAnimation.endVal; duration: hintAnimation.duration }
246+ StandardAnimation { target: edgeHint; property: "size"; from: 1; to: hintAnimation.maxGlow; duration: hintAnimation.duration }
247+ }
248+
249+ // Undo the above
250+ ParallelAnimation {
251+ StandardAnimation { target: hintGroup; property: hintAnimation.prop; from: hintAnimation.endVal; to: 0; duration: hintAnimation.duration }
252+ StandardAnimation { target: edgeHint; property: "size"; from: hintAnimation.maxGlow; to: 1; duration: hintAnimation.duration }
253+ }
254+ }
255+ }
256+}
Dash/Apps/FrequentlyUsedAppsModel.qml+38−8
@@ -18,23 +18,43 @@ import QtQuick 2.0
18
18
19ListModel {
19ListModel {
20 ListElement {
20 ListElement {
21− uri: "application:///usr/share/applications/camera-app.desktop"
21+ uri: "application:///usr/share/applications/dialer-app.desktop"
22− icon: "../../graphics/applicationIcons/camera.png"
22+ icon: "../../graphics/applicationIcons/phone-app.png"
23 category: 0
23 category: 0
24 mimetype: "application/x-desktop"
24 mimetype: "application/x-desktop"
25− title: "Camera"
25+ title: "Dialer"
26 comment: ""
26 comment: ""
27− dndUri: "file:///usr/share/applications/camera-app.desktop"
27+ dndUri: "file:///usr/share/applications/dialer-app.desktop"
28 metadata: ""
28 metadata: ""
29 }
29 }
30 ListElement {
30 ListElement {
31− uri: "application:///usr/share/applications/phone-app.desktop"
31+ uri: "application:///usr/share/applications/messaging-app.desktop"
32+ icon: "../../graphics/applicationIcons/messages-app.png"
33+ category: 0
34+ mimetype: "application/x-desktop"
35+ title: "Messaging"
36+ comment: ""
37+ dndUri: "file:///usr/share/applications/messaging-app.desktop"
38+ metadata: ""
39+ }
40+ ListElement {
41+ uri: "application:///usr/share/applications/address-book-app.desktop"
32− icon: "../../graphics/applicationIcons/phone-app.png"
42+ icon: "../../graphics/applicationIcons/contacts-app.png"
43+ category: 0
44+ mimetype: "application/x-desktop"
45+ title: "Contacts"
46+ comment: ""
47+ dndUri: "file:///usr/share/applications/address-book-app.desktop"
48+ metadata: ""
49+ }
50+ ListElement {
51+ uri: "application:///usr/share/applications/camera-app.desktop"
52+ icon: "../../graphics/applicationIcons/camera.png"
33 category: 0
53 category: 0
34 mimetype: "application/x-desktop"
54 mimetype: "application/x-desktop"
35− title: "Phone"
55+ title: "Camera"
36 comment: ""
56 comment: ""
37− dndUri: "file:///usr/share/applications/phone-app.desktop"
57+ dndUri: "file:///usr/share/applications/camera-app.desktop"
38 metadata: ""
58 metadata: ""
39 }
59 }
40 ListElement {
60 ListElement {
@@ -77,4 +97,14 @@ ListModel {
77 dndUri: "file:///usr/share/applications/gmail-webapp.desktop"
97 dndUri: "file:///usr/share/applications/gmail-webapp.desktop"
78 metadata: ""
98 metadata: ""
79 }
99 }
100+ ListElement {
101+ uri: "application:///usr/share/applications/ubuntu-system-settings.desktop"
102+ icon: "../../graphics/applicationIcons/system-settings.png"
103+ category: 0
104+ mimetype: "application/x-desktop"
105+ title: "System Settings"
106+ comment: ""
107+ dndUri: "file:///usr/share/applications/ubuntu-system-settings.desktop"
108+ metadata: ""
109+ }
80}
110}
Dash/GenericScopeView.qml+6
@@ -80,6 +80,12 @@ ScopeView {
80 item.model = results
80 item.model = results
81 }
81 }
82 item.objectName = categoryId
82 item.objectName = categoryId
83+ if (item.expandable) {
84+ var shouldFilter = index != categoryView.expandedIndex;
85+ if (shouldFilter != item.filter) {
86+ item.filter = shouldFilter;
87+ }
88+ }
83 }
89 }
84
90
85 Connections {
91 Connections {
Greeter/Greeter.qml+6−2
@@ -44,6 +44,8 @@ Showable {
44 readonly property bool rightTeaserPressed: greeterContentLoader.status == Loader.Ready &&
44 readonly property bool rightTeaserPressed: greeterContentLoader.status == Loader.Ready &&
45 greeterContentLoader.item.rightTeaserPressed
45 greeterContentLoader.item.rightTeaserPressed
46
46
47+ readonly property int currentIndex: greeterContentLoader.currentIndex
48+
47 signal selected(int uid)
49 signal selected(int uid)
48 signal unlocked(int uid)
50 signal unlocked(int uid)
49
51
@@ -63,11 +65,13 @@ Showable {
63
65
64 source: required ? "GreeterContent.qml" : ""
66 source: required ? "GreeterContent.qml" : ""
65
67
66−
67 Connections {
68 Connections {
68 target: greeterContentLoader.item
69 target: greeterContentLoader.item
69
70
71+ onSelected: {
70− onSelected: greeter.selected(uid);
72+ greeter.selected(uid);
73+ greeterContentLoader.currentIndex = uid;
74+ }
71 onUnlocked: greeter.unlocked(uid);
75 onUnlocked: greeter.unlocked(uid);
72 }
76 }
73 }
77 }
Greeter/GreeterContent.qml+8−1
@@ -23,7 +23,7 @@ MouseArea {
23 id: root
23 id: root
24 anchors.fill: parent
24 anchors.fill: parent
25
25
26− property bool ready: wallpaper.status == Image.Ready
26+ property bool ready: wallpaper.source == "" || wallpaper.status == Image.Ready || wallpaper.status == Image.Error
27 property bool leftTeaserPressed: teasingMouseArea.pressed &&
27 property bool leftTeaserPressed: teasingMouseArea.pressed &&
28 teasingMouseArea.mouseX < teasingMouseArea.width / 2
28 teasingMouseArea.mouseX < teasingMouseArea.width / 2
29 property bool rightTeaserPressed: teasingMouseArea.pressed &&
29 property bool rightTeaserPressed: teasingMouseArea.pressed &&
@@ -32,6 +32,13 @@ MouseArea {
32 signal selected(int uid)
32 signal selected(int uid)
33 signal unlocked(int uid)
33 signal unlocked(int uid)
34
34
35+ Rectangle {
36+ // In case wallpaper fails to load
37+ id: wallpaperBackup
38+ anchors.fill: parent
39+ color: "black"
40+ }
41+
35 CrossFadeImage {
42 CrossFadeImage {
36 id: wallpaper
43 id: wallpaper
37
44
Greeter/Lockscreen.qml+8
@@ -53,7 +53,15 @@ Showable {
53 pinPadLoader.resetting = false;
53 pinPadLoader.resetting = false;
54 }
54 }
55
55
56+ Rectangle {
57+ // In case wallpaper fails to load or is undefined
58+ id: wallpaperBackup
59+ anchors.fill: parent
60+ color: "black"
61+ }
62+
56 Image {
63 Image {
64+ id: wallpaper
57 anchors.fill: parent
65 anchors.fill: parent
58 source: root.required ? root.background : ""
66 source: root.required ? root.background : ""
59 fillMode: Image.PreserveAspectCrop
67 fillMode: Image.PreserveAspectCrop
Launcher/FoldingLauncherDelegate.qml+35−24
@@ -26,21 +26,21 @@ LauncherDelegate {
26 if (index == 0 || index == priv.listView.count-1) {
26 if (index == 0 || index == priv.listView.count-1) {
27 if (priv.distanceFromEdge < 0) {
27 if (priv.distanceFromEdge < 0) {
28 // proportion equation: distanceFromTopEdge : angle = totalUnfoldedHeight/2 : maxAngle
28 // proportion equation: distanceFromTopEdge : angle = totalUnfoldedHeight/2 : maxAngle
29− return Math.max(-maxAngle, priv.distanceFromEdge * maxAngle / (priv.listView.foldingAreaHeight)) * priv.orientationFlag
29+ return Math.max(-maxAngle, priv.distanceFromEdge * maxAngle / (priv.foldingAreaHeight)) * priv.orientationFlag
30 }
30 }
31 return 0; // Don't fold first/last item as long as inside the view
31 return 0; // Don't fold first/last item as long as inside the view
32 }
32 }
33
33
34− // Are we in the already completely outside the flickable? Fold for the last 5 degrees
34+ // We reached the folded area... fold the last 5 degrees
35− if (priv.distanceFromEdge < 0) {
35+ if (priv.overlapWithFoldedArea > 0) {
36− // proportion equation: -distanceFromTopEdge : angle = totalUnfoldedHeight : 5
36+ // proportion equation: overlap : x = height : 5
37− return Math.max(-maxAngle, (priv.distanceFromEdge * 5 / priv.listView.foldingAreaHeight) - (maxAngle-5)) * priv.orientationFlag
37+ return ((maxAngle - 5) + (priv.overlapWithFoldedArea * 5 / priv.foldingAreaHeight)) * -priv.orientationFlag
38 }
38 }
39
39
40 // We are overlapping with the folding area, fold the icon to maxAngle - 5 degrees
40 // We are overlapping with the folding area, fold the icon to maxAngle - 5 degrees
41 if (priv.overlapWithFoldingArea > 0) {
41 if (priv.overlapWithFoldingArea > 0) {
42 // proportion equation: overlap: totalHeight = angle : (maxAngle - 5)
42 // proportion equation: overlap: totalHeight = angle : (maxAngle - 5)
43− return -priv.overlapWithFoldingArea * (maxAngle -5) / priv.listView.foldingAreaHeight * priv.orientationFlag;
43+ return -priv.overlapWithFoldingArea * (maxAngle -5) / priv.foldingAreaHeight * priv.orientationFlag;
44 }
44 }
45 return 0;
45 return 0;
46 }
46 }
@@ -61,9 +61,9 @@ LauncherDelegate {
61 return (-priv.distanceFromEdge - (root.height - effectiveHeight)) * priv.orientationFlag;
61 return (-priv.distanceFromEdge - (root.height - effectiveHeight)) * priv.orientationFlag;
62 }
62 }
63
63
64− // We're touching the edge, move slower than the actual flicking speed.
64+ // We stopped folding, move slower than the actual flicking speed.
65− if (priv.distanceFromEdge < 0) {
65+ if (priv.overlapWithFoldedArea > 0) {
66− return (Math.abs(priv.distanceFromEdge) * priv.totalEffectiveHeight / priv.totalUnfoldedHeight) * priv.orientationFlag
66+ return (priv.overlapWithFoldedArea * priv.totalEffectiveHeight / (priv.totalUnfoldedHeight + priv.listView.foldingStopHeight)) * priv.orientationFlag;
67 }
67 }
68 return 0;
68 return 0;
69 }
69 }
@@ -72,22 +72,23 @@ LauncherDelegate {
72 // First/last items are special
72 // First/last items are special
73 if (index == 0 || index == priv.listView.count-1) {
73 if (index == 0 || index == priv.listView.count-1) {
74 if (priv.distanceFromEdge < 0) {
74 if (priv.distanceFromEdge < 0) {
75− // Fade from 1 to 0 in the distance of 3 * foldingAreaHeight (which is when the next item reaches the edge)
75+ // Fade from 1 to 0 while traversing a distance of 2*foldingAreaHeight
76+ // proportion equation: 0.5 : x = -2*foldingAreaHeight : distance
76− return 1.0 - (-priv.distanceFromEdge / (priv.listView.foldingAreaHeight * 3))
77+ return 1 + (priv.distanceFromEdge / (priv.foldingAreaHeight * 2))
77 }
78 }
78 return 1; // Don't make first/last item transparent as long as inside the view
79 return 1; // Don't make first/last item transparent as long as inside the view
79 }
80 }
80
81
81− // Are we already completely outside the flickable? Fade from 0.75 to 0 in 2 items height
82+ // Did we stop folding? Fade out to 0 in 2*foldingAreaHeight
82− if (priv.distanceFromEdge < 0) {
83+ if (priv.overlapWithFoldedArea > 0) {
83− // proportion equation: -distanceFromEdge : 1-opacity = totalUnfoldedHeight : 0.75
84+ // overlap : foldingAreaHeight = opacity : 0.75
84− return 0.75 - (-priv.distanceFromEdge * 0.75 / (priv.totalUnfoldedHeight*2))
85+ return 0.75 - (priv.overlapWithFoldedArea * 0.75 / (priv.foldingAreaHeight * 2));
85 }
86 }
86
87
87− // We are overlapping with the folding area, fade out to 0.75
88+ // We are overlapping with the folding area, fade out to 0.75 transparency
88 if (priv.overlapWithFoldingArea > 0) {
89 if (priv.overlapWithFoldingArea > 0) {
89 // proportion equation: overlap : totalHeight = 1-opacity : 0.25
90 // proportion equation: overlap : totalHeight = 1-opacity : 0.25
90− return 1 - (priv.overlapWithFoldingArea * 0.25 / priv.listView.foldingAreaHeight)
91+ return 1 - (priv.overlapWithFoldingArea * 0.25 / priv.foldingAreaHeight)
91 }
92 }
92 return 1;
93 return 1;
93 }
94 }
@@ -95,19 +96,27 @@ LauncherDelegate {
95 brightness: {
96 brightness: {
96 // First/last items are special
97 // First/last items are special
97 if (index == 0 || index == priv.listView.count-1) {
98 if (index == 0 || index == priv.listView.count-1) {
99+
100+ // Traversed one foldingAreaHeight. Stop at 0.3
101+ if (priv.distanceFromEdge < -priv.foldingAreaHeight) {
102+ return -0.3
103+ }
104+
105+ // We started moving, fade to 0.3
98 if (priv.distanceFromEdge < 0) {
106 if (priv.distanceFromEdge < 0) {
99− return -(-priv.distanceFromEdge / (priv.listView.foldingAreaHeight * 3))
107+ return -0.3 * (-priv.distanceFromEdge / (priv.foldingAreaHeight))
100 }
108 }
101 return 0;
109 return 0;
102 }
110 }
103− // Are we already completely outside the flickable? Fade from 0.7 to 0 in 2 items height
111+
104− if (priv.distanceFromEdge < 0) {
112+ // We stopped folding? Stop brightness change at 0.3
105− return -0.3 - (-priv.distanceFromEdge * 0.1 / (priv.totalUnfoldedHeight*2))
113+ if (priv.overlapWithFoldedArea > 0) {
114+ return -0.3;
106 }
115 }
107
116
108− // We are overlapping with the folding area, fade out to 0.7
117+ // We are overlapping with the folding area, fade out to 0.3
109 if (priv.overlapWithFoldingArea > 0) {
118 if (priv.overlapWithFoldingArea > 0) {
110− return - (priv.overlapWithFoldingArea * 0.3 / priv.listView.foldingAreaHeight)
119+ return - (priv.overlapWithFoldingArea * 0.3 / priv.listView.foldingStartHeight);
111 }
120 }
112 return 0;
121 return 0;
113 }
122 }
@@ -127,7 +136,9 @@ LauncherDelegate {
127 property real distanceFromEdge: Math.abs(distanceFromBottomEdge) < Math.abs(distanceFromTopEdge) ? distanceFromBottomEdge : distanceFromTopEdge
136 property real distanceFromEdge: Math.abs(distanceFromBottomEdge) < Math.abs(distanceFromTopEdge) ? distanceFromBottomEdge : distanceFromTopEdge
128 property real orientationFlag: Math.abs(distanceFromBottomEdge) < Math.abs(distanceFromTopEdge) ? -1 : 1
137 property real orientationFlag: Math.abs(distanceFromBottomEdge) < Math.abs(distanceFromTopEdge) ? -1 : 1
129
138
130− property real overlapWithFoldingArea: listView.foldingAreaHeight - distanceFromEdge
139+ property real overlapWithFoldingArea: listView.foldingStartHeight - distanceFromEdge
140+ property real overlapWithFoldedArea: listView.foldingStopHeight - distanceFromEdge
141+ property real foldingAreaHeight: listView.foldingStartHeight - listView.foldingStopHeight
131 }
142 }
132
143
133}
144}
Launcher/Launcher.qml+13−3
@@ -26,9 +26,11 @@ Item {
26
26
27 property bool available: true // can be used to disable all interactions
27 property bool available: true // can be used to disable all interactions
28
28
29− property int panelWidth: units.gu(8.5)
29+ property int panelWidth: units.gu(8)
30 property int dragAreaWidth: units.gu(1)
30 property int dragAreaWidth: units.gu(1)
31+ property int minimizeDistance: panelWidth * 2.5
31− property real progress: dragArea.dragging && dragArea.touchX > panel.width ? dragArea.touchX : 0
32+ property real progress: dragArea.dragging && dragArea.touchX > panelWidth ?
33+ (width * (dragArea.touchX-panelWidth) / (width - panelWidth)) : 0
32
34
33 readonly property bool shown: panel.x > -panel.width
35 readonly property bool shown: panel.x > -panel.width
34
36
@@ -143,12 +145,14 @@ Item {
143 LauncherPanel {
145 LauncherPanel {
144 id: panel
146 id: panel
145 objectName: "launcherPanel"
147 objectName: "launcherPanel"
148+ enabled: root.available
146 width: root.panelWidth
149 width: root.panelWidth
147 anchors {
150 anchors {
148 top: parent.top
151 top: parent.top
149 bottom: parent.bottom
152 bottom: parent.bottom
150 }
153 }
151 x: -width
154 x: -width
155+ opacity: (x == -width && dragArea.status === DirectionalDragArea.WaitingForTouch) ? 0 : 1
152 model: LauncherModel
156 model: LauncherModel
153
157
154 property bool animate: true
158 property bool animate: true
@@ -175,6 +179,12 @@ Item {
175 easing.type: Easing.OutCubic
179 easing.type: Easing.OutCubic
176 }
180 }
177 }
181 }
182+
183+ Behavior on opacity {
184+ NumberAnimation {
185+ duration: UbuntuAnimation.FastDuration; easing.type: Easing.OutCubic
186+ }
187+ }
178 }
188 }
179
189
180 EdgeDragArea {
190 EdgeDragArea {
@@ -206,7 +216,7 @@ Item {
206 if (!dragging) {
216 if (!dragging) {
207 if (distance > panel.width / 2) {
217 if (distance > panel.width / 2) {
208 root.switchToNextState("visible")
218 root.switchToNextState("visible")
209− if (distance > panel.width * 2) {
219+ if (distance > minimizeDistance) {
210 root.dash()
220 root.dash()
211 }
221 }
212 } else {
222 } else {
Launcher/LauncherDelegate.qml+2−2
@@ -80,7 +80,7 @@ Item {
80 top: parent.top
80 top: parent.top
81 margins: -units.dp(1)
81 margins: -units.dp(1)
82 }
82 }
83− width: Math.min(units.gu(7.5), Math.max(units.gu(3), countLabel.implicitWidth + units.gu(2.5)))
83+ width: Math.min(root.itemWidth, Math.max(units.gu(3), countLabel.implicitWidth + units.gu(2.5)))
84 height: units.gu(3)
84 height: units.gu(3)
85 source: "graphics/notification.sci"
85 source: "graphics/notification.sci"
86 visible: root.count > 0
86 visible: root.count > 0
@@ -89,7 +89,7 @@ Item {
89 id: countLabel
89 id: countLabel
90 text: root.count
90 text: root.count
91 anchors.centerIn: parent
91 anchors.centerIn: parent
92− width: units.gu(6)
92+ width: root.itemWidth - units.gu(1)
93 horizontalAlignment: Text.AlignHCenter
93 horizontalAlignment: Text.AlignHCenter
94 elide: Text.ElideRight
94 elide: Text.ElideRight
95 color: "white"
95 color: "white"
Launcher/LauncherPanel.qml+33−15
@@ -62,7 +62,7 @@ Item {
62 z: 1
62 z: 1
63 Image {
63 Image {
64 objectName: "dashItem"
64 objectName: "dashItem"
65− width: units.gu(5.5)
65+ width: units.gu(5)
66 height: width
66 height: width
67 anchors.centerIn: parent
67 anchors.centerIn: parent
68 source: "graphics/home.png"
68 source: "graphics/home.png"
@@ -110,12 +110,27 @@ Item {
110 // destroyed when dragging them outside the list. This needs to be at least
110 // destroyed when dragging them outside the list. This needs to be at least
111 // itemHeight to prevent folded items from disappearing and DragArea limits
111 // itemHeight to prevent folded items from disappearing and DragArea limits
112 // need to be smaller than this size to avoid breakage.
112 // need to be smaller than this size to avoid breakage.
113− property int extensionSize: itemHeight * 3
113+ property int extensionSize: 0
114+
115+ // Setting extensionSize after the list has been populated because it has
116+ // the potential to mess up with the intial positioning in combination
117+ // with snapping to the center of the list. This catches all the cases
118+ // where the item would be outside the list for more than itemHeight / 2.
119+ // For the rest, give it a flick to scroll to the beginning. Note that
120+ // the flicking alone isn't enough because in some cases it's not strong
121+ // enough to overcome the snapping.
122+ // https://bugreports.qt-project.org/browse/QTBUG-32251
123+ Component.onCompleted: {
124+ extensionSize = itemHeight * 3
125+ flick(0, clickFlickSpeed)
126+ }
114
127
115 // The height of the area where icons start getting folded
128 // The height of the area where icons start getting folded
116− property int foldingAreaHeight: itemHeight * 0.75
129+ property int foldingStartHeight: units.gu(6.5)
130+ // The height of the area where the items reach the final folding angle
131+ property int foldingStopHeight: foldingStartHeight - itemHeight - spacing
117− property int itemWidth: width
132+ property int itemWidth: units.gu(7)
118− property int itemHeight: width * 7.5 / 8
133+ property int itemHeight: units.gu(6.5)
119 property int clickFlickSpeed: units.gu(60)
134 property int clickFlickSpeed: units.gu(60)
120 property int draggedIndex: dndArea.draggedIndex
135 property int draggedIndex: dndArea.draggedIndex
121 property real realContentY: contentY - originY + topMargin
136 property real realContentY: contentY - originY + topMargin
@@ -142,9 +157,8 @@ Item {
142 count: model.count
157 count: model.count
143 progress: model.progress
158 progress: model.progress
144 inverted: root.inverted
159 inverted: root.inverted
145− highlighted: dragging && index === root.highlightIndex
146 z: -Math.abs(offset)
160 z: -Math.abs(offset)
147− maxAngle: 60
161+ maxAngle: 55
148 property bool dragging: false
162 property bool dragging: false
149
163
150 ThinDivider {
164 ThinDivider {
@@ -235,7 +249,9 @@ Item {
235 NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.FastDuration }
249 NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.FastDuration }
236 NumberAnimation { properties: "itemOpacity"; duration: UbuntuAnimation.BriskDuration }
250 NumberAnimation { properties: "itemOpacity"; duration: UbuntuAnimation.BriskDuration }
237 SequentialAnimation {
251 SequentialAnimation {
252+ ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
238 UbuntuNumberAnimation { properties: "height" }
253 UbuntuNumberAnimation { properties: "height" }
254+ ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
239 PropertyAction { target: dndArea; property: "postDragging"; value: false }
255 PropertyAction { target: dndArea; property: "postDragging"; value: false }
240 PropertyAction { target: dndArea; property: "draggedIndex"; value: -1 }
256 PropertyAction { target: dndArea; property: "draggedIndex"; value: -1 }
241 }
257 }
@@ -265,9 +281,6 @@ Item {
265
281
266 onPressed: {
282 onPressed: {
267 selectedItem = launcherListView.itemAt(mouseX, mouseY + launcherListView.realContentY)
283 selectedItem = launcherListView.itemAt(mouseX, mouseY + launcherListView.realContentY)
268− if (selectedItem !== null) {
269− selectedItem.highlighted = true
270− }
271 }
284 }
272
285
273 onClicked: {
286 onClicked: {
@@ -302,7 +315,6 @@ Item {
302 }
315 }
303
316
304 onCanceled: {
317 onCanceled: {
305− selectedItem.highlighted = false
306 selectedItem = undefined;
318 selectedItem = undefined;
307 preDragging = false;
319 preDragging = false;
308 postDragging = false;
320 postDragging = false;
@@ -320,7 +332,6 @@ Item {
320 return;
332 return;
321 }
333 }
322
334
323− selectedItem.highlighted = false
324 selectedItem.dragging = false;
335 selectedItem.dragging = false;
325 selectedItem = undefined;
336 selectedItem = undefined;
326 preDragging = false;
337 preDragging = false;
@@ -332,6 +343,9 @@ Item {
332 if (droppedIndex >= launcherListView.count - 2 && postDragging) {
343 if (droppedIndex >= launcherListView.count - 2 && postDragging) {
333 launcherListView.flick(0, -launcherListView.clickFlickSpeed);
344 launcherListView.flick(0, -launcherListView.clickFlickSpeed);
334 }
345 }
346+ if (droppedIndex == 0 && postDragging) {
347+ launcherListView.flick(0, launcherListView.clickFlickSpeed);
348+ }
335 }
349 }
336
350
337 onPressAndHold: {
351 onPressAndHold: {
@@ -451,8 +465,7 @@ Item {
451 height: itemHeight
465 height: itemHeight
452 width: itemWidth
466 width: itemWidth
453 rotation: root.rotation
467 rotation: root.rotation
454− highlighted: true
455− itemOpacity: 0.8
468+ itemOpacity: 0.9
456
469
457 function flatten() {
470 function flatten() {
458 fakeDragItemAnimation.start();
471 fakeDragItemAnimation.start();
@@ -476,6 +489,7 @@ Item {
476 property var model
489 property var model
477 property string appId
490 property string appId
478 contentWidth: quickListColumn.width
491 contentWidth: quickListColumn.width
492+ foregroundStyle: QuicklistForegroundStyle {}
479
493
480 // FIXME: There's a bug in the Popover positioning that it covers the item in case it is rotated.
494 // FIXME: There's a bug in the Popover positioning that it covers the item in case it is rotated.
481 // https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1204470
495 // https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1204470
@@ -491,6 +505,7 @@ Item {
491 height: childrenRect.height
505 height: childrenRect.height
492
506
493 Repeater {
507 Repeater {
508+ id: popoverRepeater
494 model: popover.model
509 model: popover.model
495
510
496 ListItems.Standard {
511 ListItems.Standard {
@@ -501,8 +516,11 @@ Item {
501 if (!model.clickable) {
516 if (!model.clickable) {
502 return;
517 return;
503 }
518 }
504− LauncherModel.quickListActionInvoked(appId, index);
505 PopupUtils.close(popover);
519 PopupUtils.close(popover);
520+ // Unsetting model to prevent showing changing entries during fading out
521+ // that may happen because of triggering an action.
522+ LauncherModel.quickListActionInvoked(appId, index);
523+ popoverRepeater.model = undefined;
506 }
524 }
507 }
525 }
508 }
526 }
Launcher/QuicklistForegroundStyle.qmlnew file+23
@@ -0,0 +1,23 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import Ubuntu.Components.Themes.Ambiance 0.1
18+
19+PopoverForegroundStyle {
20+ bubbleColor: "#221e1c"
21+ bubbleOpacity: 0.9
22+ arrowSource: "graphics/quicklist_tooltip.png"
23+}
Launcher/graphics/quicklist_tooltip@30.pngnew file

Binary file not shown.

Panel/Indicators.qml+4−2
@@ -34,6 +34,7 @@ Showable {
34 property bool fullyOpened: height == openedHeight
34 property bool fullyOpened: height == openedHeight
35 property bool partiallyOpened: height > panelHeight && !fullyOpened
35 property bool partiallyOpened: height > panelHeight && !fullyOpened
36 property real visualBottom: Math.max(y+height, y+indicatorRow.y+indicatorRow.height)
36 property real visualBottom: Math.max(y+height, y+indicatorRow.y+indicatorRow.height)
37+ property bool contentEnabled: true
37
38
38 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
39 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
39 // use its own values. Need to ask design about this.
40 // use its own values. Need to ask design about this.
@@ -178,6 +179,7 @@ Showable {
178 indicatorsModel: indicatorsModel
179 indicatorsModel: indicatorsModel
179 clip: !indicators.fullyOpened
180 clip: !indicators.fullyOpened
180 activeHeader: indicators.state == "hint" || indicators.state == "reveal"
181 activeHeader: indicators.state == "hint" || indicators.state == "reveal"
182+ enabled: contentEnabled
181
183
182 Connections {
184 Connections {
183 target: indicatorRow
185 target: indicatorRow
@@ -301,7 +303,7 @@ Showable {
301 anchors.right: parent.right
303 anchors.right: parent.right
302 height: panelHeight
304 height: panelHeight
303 direction: Direction.Downwards
305 direction: Direction.Downwards
304− enabled: !indicators.shown
306+ enabled: !indicators.shown && indicators.available
305 hintDisplacement: pinnedMode ? indicators.hintValue : 0
307 hintDisplacement: pinnedMode ? indicators.hintValue : 0
306 autoCompleteDragThreshold: maxTotalDragDistance / 2
308 autoCompleteDragThreshold: maxTotalDragDistance / 2
307 stretch: true
309 stretch: true
@@ -318,7 +320,7 @@ Showable {
318 id: hideDragHandle
320 id: hideDragHandle
319 anchors.fill: handle
321 anchors.fill: handle
320 direction: Direction.Upwards
322 direction: Direction.Upwards
321− enabled: indicators.shown
323+ enabled: indicators.shown && indicators.available
322 hintDisplacement: indicators.hintValue
324 hintDisplacement: indicators.hintValue
323 autoCompleteDragThreshold: maxTotalDragDistance / 6
325 autoCompleteDragThreshold: maxTotalDragDistance / 6
324 stretch: true
326 stretch: true
Panel/IndicatorsDataModel.qml+6
@@ -27,6 +27,12 @@ Indicators.IndicatorsModel {
27 Component.onCompleted: load()
27 Component.onCompleted: load()
28
28
29 indicatorData : {
29 indicatorData : {
30+ 'indicator-location' : {
31+ 'title': 'Location',
32+ 'description' : '',
33+ 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
34+ 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage2.qml'
35+ },
30 'indicator-bluetooth' : {
36 'indicator-bluetooth' : {
31 'title': 'Bluetooth',
37 'title': 'Bluetooth',
32 'description' : '',
38 'description' : '',
Shell.qml+31−6
@@ -161,10 +161,14 @@ FocusScope {
161 // Whether the underlay is fully covered by opaque UI elements.
161 // Whether the underlay is fully covered by opaque UI elements.
162 property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth
162 property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth
163
163
164+ readonly property bool applicationRunning: ((mainStage.applications && mainStage.applications.count > 0)
165+ || (sideStage.applications && sideStage.applications.count > 0))
166+
164 // Whether the user should see the topmost application surface (if there's one at all).
167 // Whether the user should see the topmost application surface (if there's one at all).
165− property bool applicationSurfaceShouldBeSeen:
168+ readonly property bool applicationSurfaceShouldBeSeen: applicationRunning && !stages.fullyHidden
166− (mainStage.applications && mainStage.applications.count > 0)
167− && (!stages.fullyHidden && !mainStage.usingScreenshots)
169+ && !mainStage.usingScreenshots // but want sideStage animating over app surface
170+
171+
168
172
169 // NB! Application surfaces are stacked behing the shell one. So they can only be seen by the user
173 // NB! Application surfaces are stacked behing the shell one. So they can only be seen by the user
170 // through the translucent parts of the shell surface.
174 // through the translucent parts of the shell surface.
@@ -191,7 +195,7 @@ FocusScope {
191 available: !greeter.shown && !lockscreen.shown
195 available: !greeter.shown && !lockscreen.shown
192 hides: [stages, launcher, panel.indicators]
196 hides: [stages, launcher, panel.indicators]
193 shown: disappearingAnimationProgress !== 1.0
197 shown: disappearingAnimationProgress !== 1.0
194− enabled: disappearingAnimationProgress === 0.0
198+ enabled: disappearingAnimationProgress === 0.0 && edgeDemo.dashEnabled
195 // FIXME: unfocus all applications when going back to the dash
199 // FIXME: unfocus all applications when going back to the dash
196 onEnabledChanged: {
200 onEnabledChanged: {
197 if (enabled) {
201 if (enabled) {
@@ -382,6 +386,7 @@ FocusScope {
382
386
383 width: shell.edgeSize
387 width: shell.edgeSize
384 direction: Direction.Leftwards
388 direction: Direction.Leftwards
389+ enabled: edgeDemo.dashEnabled
385 property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0
390 property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0
386
391
387 maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7
392 maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7
@@ -410,6 +415,7 @@ FocusScope {
410 Component.onCompleted: {
415 Component.onCompleted: {
411 if (LightDM.Users.count == 1) {
416 if (LightDM.Users.count == 1) {
412 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole))
417 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole))
418+ greeter.selected(0)
413 }
419 }
414 }
420 }
415 }
421 }
@@ -452,6 +458,7 @@ FocusScope {
452 // If there are more users, the Greeter will handle that
458 // If there are more users, the Greeter will handle that
453 if (LightDM.Users.count == 1) {
459 if (LightDM.Users.count == 1) {
454 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
460 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
461+ greeter.selected(0);
455 }
462 }
456 greeter.forceActiveFocus();
463 greeter.forceActiveFocus();
457 }
464 }
@@ -506,6 +513,13 @@ FocusScope {
506 } else if (status == Powerd.On) {
513 } else if (status == Powerd.On) {
507 powerConnection.setFocused(true);
514 powerConnection.setFocused(true);
508 }
515 }
516+
517+ // No reason to chew demo CPU when user isn't watching
518+ if (status == Powerd.Off) {
519+ edgeDemo.paused = true;
520+ } else if (status == Powerd.On) {
521+ edgeDemo.paused = false;
522+ }
509 }
523 }
510 }
524 }
511
525
@@ -520,6 +534,8 @@ FocusScope {
520 indicatorsMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
534 indicatorsMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
521 indicators {
535 indicators {
522 hides: [launcher]
536 hides: [launcher]
537+ available: edgeDemo.panelEnabled
538+ contentEnabled: edgeDemo.panelContentEnabled
523 }
539 }
524 fullscreenMode: shell.fullscreenMode
540 fullscreenMode: shell.fullscreenMode
525 searchVisible: !greeter.shown && !lockscreen.shown
541 searchVisible: !greeter.shown && !lockscreen.shown
@@ -536,7 +552,7 @@ FocusScope {
536 width: parent.width > units.gu(60) ? units.gu(40) : parent.width
552 width: parent.width > units.gu(60) ? units.gu(40) : parent.width
537 height: parent.height
553 height: parent.height
538
554
539− available: !greeter.shown && !panel.indicators.shown && !lockscreen.shown
555+ available: !greeter.shown && !panel.indicators.shown && !lockscreen.shown && edgeDemo.dashEnabled
540 shown: false
556 shown: false
541 showAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: 0; easing.type: Easing.Linear }
557 showAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: 0; easing.type: Easing.Linear }
542 hideAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: hudRevealer.closedValue; easing.type: Easing.Linear }
558 hideAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: hudRevealer.closedValue; easing.type: Easing.Linear }
@@ -594,7 +610,7 @@ FocusScope {
594 anchors.bottom: parent.bottom
610 anchors.bottom: parent.bottom
595 width: parent.width
611 width: parent.width
596 dragAreaWidth: shell.edgeSize
612 dragAreaWidth: shell.edgeSize
597− available: !greeter.shown || greeter.narrowMode
613+ available: (!greeter.shown || greeter.narrowMode) && edgeDemo.launcherEnabled
598 onDashItemSelected: {
614 onDashItemSelected: {
599 greeter.hide()
615 greeter.hide()
600 // Animate if moving between application and dash
616 // Animate if moving between application and dash
@@ -703,4 +719,13 @@ FocusScope {
703 rotation: -45
719 rotation: -45
704 scale: Math.min(parent.width, parent.height) / width
720 scale: Math.min(parent.width, parent.height) / width
705 }
721 }
722+
723+ EdgeDemo {
724+ id: edgeDemo
725+ greeter: greeter
726+ launcher: launcher
727+ dash: dash
728+ indicators: panel.indicators
729+ underlay: underlay
730+ }
706}
731}
build+2−1
@@ -59,7 +59,8 @@ mk_build_deps() {
59
59
60if [ -f "/usr/bin/ninja" ] ; then
60if [ -f "/usr/bin/ninja" ] ; then
61 GENERATOR="-G Ninja"
61 GENERATOR="-G Ninja"
62+ # Ninja does not need -j, it parallelizes automatically.
62− BUILD_COMMAND="ninja -j$NUM_JOBS"
63+ BUILD_COMMAND="ninja"
63else
64else
64 GENERATOR=
65 GENERATOR=
65 BUILD_COMMAND="make -j$NUM_JOBS"
66 BUILD_COMMAND="make -j$NUM_JOBS"
debian/changelog+157
@@ -1,3 +1,160 @@
1+unity8 (7.81.3+13.10.20130829-0ubuntu1) saucy; urgency=low
2+
3+ [ Andrea Cimitan ]
4+ * Streamline some new HUD interactions to be more consistent with the
5+ Unity Launcher.
6+
7+ [ Michael Zanetti ]
8+ * setting the launcher's extensionSize delayed to position the view
9+ correctly at the beginning .
10+
11+ [ Bill Filler ]
12+ * add new telephony apps (dialer, messaging, contacts) to launcher and
13+ Home scope.
14+
15+ [ Michael Terry ]
16+ * Implement edge demos on first boot. Build-Depends: +dbus-test-
17+ runner, +qtbase5-dev-tools.
18+
19+ [ Ubuntu daily release ]
20+ * Automatic snapshot from revision 267
21+
22+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 29 Aug 2013 02:10:38 +0000
23+
24+unity8 (7.81.3+13.10.20130828.1-0ubuntu1) saucy; urgency=low
25+
26+ [ Andrea Cimitan ]
27+ * Hide the LauncherPanel when it's really hidden, by changing visible
28+ to false.
29+
30+ [ Gerry Boland ]
31+ * Fix sidestage applications - they were being ignored in the show-
32+ application-surface logic. (LP: #1217027, #1210079)
33+
34+ [ Michał Sawicz ]
35+ * Raise the exception if typing failed in autopilot.
36+
37+ [ Nick Dedekind ]
38+ * Added location indicator defaults.
39+
40+ [ Michael Zanetti ]
41+ * increase minimal dragging width for dismissing apps with left edge
42+ make it a configurable parameter and adjust animation to look like
43+ requested in the bug report . (LP: #1213153)
44+
45+ [ Ubuntu daily release ]
46+ * Automatic snapshot from revision 262
47+
48+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 28 Aug 2013 11:55:46 +0000
49+
50+unity8 (7.81.3+13.10.20130827.1-0ubuntu1) saucy; urgency=low
51+
52+ [ Michael Zanetti ]
53+ * unset model in quicklist before closing it.
54+
55+ [ Ubuntu daily release ]
56+ * Automatic snapshot from revision 256
57+
58+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 27 Aug 2013 10:49:17 +0000
59+
60+unity8 (7.81.3+13.10.20130827-0ubuntu1) saucy; urgency=low
61+
62+ [ Michael Zanetti ]
63+ * Theme the Quicklist Popover.
64+
65+ [ Albert Astals ]
66+ * Apply expandedIndex on delegate creation bug #1213033. (LP:
67+ #1213033)
68+
69+ [ Ubuntu daily release ]
70+ * Automatic snapshot from revision 254
71+
72+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 27 Aug 2013 02:10:43 +0000
73+
74+unity8 (7.81.3+13.10.20130826.5-0ubuntu1) saucy; urgency=low
75+
76+ [ Michael Zanetti ]
77+ * tweak launcher folding and visuals according to feedback from
78+ design: - increase foldingStartHeight - Introduces a
79+ foldingStopHeight. Folding only happens between the
80+ foldingStartHeight and the foldingStopHeight. - Only change
81+ brightness while folding - remove highlight of pressed icon -
82+ decrease launcher's width by half a grid unit.
83+
84+ [ Ubuntu daily release ]
85+ * Automatic snapshot from revision 251
86+
87+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 22:09:43 +0000
88+
89+unity8 (7.81.3+13.10.20130826.4-0ubuntu1) saucy; urgency=low
90+
91+ [ Michał Sawicz ]
92+ * Add module entry in HudClient's qmldir.
93+
94+ [ Jussi Pakkanen ]
95+ * Let Ninja parallelize itself.
96+
97+ [ Nick Dedekind ]
98+ * Abstraction of indicator menu item properties prior to move into
99+ common components library.
100+
101+ [ Christopher Lee ]
102+ * Added autopilot-tests for ephemeral, interactive and snap-decision
103+ notifications.
104+
105+ [ Mirco Müller ]
106+ * Added autopilot-tests for ephemeral, interactive and snap-decision
107+ notifications.
108+
109+ [ Michael Zanetti ]
110+ * only search visible children in findChild, add findInvisibleChild
111+ for others.
112+ * Added autopilot-tests for ephemeral, interactive and snap-decision
113+ notifications.
114+
115+ [ Thomi Richards ]
116+ * Added autopilot-tests for ephemeral, interactive and snap-decision
117+ notifications.
118+
119+ [ Ubuntu daily release ]
120+ * Automatic snapshot from revision 249
121+
122+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 18:34:44 +0000
123+
124+unity8 (7.81.3+13.10.20130826.2-0ubuntu1) saucy; urgency=low
125+
126+ [ Albert Astals ]
127+ * Don't include QtQML It includes LOTS of files we don't need.
128+
129+ [ Ubuntu daily release ]
130+ * Automatic snapshot from revision 243
131+
132+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 10:08:52 +0000
133+
134+unity8 (7.81.3+13.10.20130826.1-0ubuntu1) saucy; urgency=low
135+
136+ * Automatic snapshot from revision 241
137+
138+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 06:08:33 +0000
139+
140+unity8 (7.81.3+13.10.20130826-0ubuntu1) saucy; urgency=low
141+
142+ [ Michael Zanetti ]
143+ * delay move operations if the start dragging operation is running
144+ This prevents items to left in wrong places when transitions clash.
145+ * add empty setUser to allow compiling in jenkins again until the
146+ branch that matches unity-api is ready to land. .
147+ * add count and progress overlay information to real model too.
148+
149+ [ Pawel Stolowski ]
150+ * Changed the type of setActive argument from
151+ QVector<AbstractFilterOption *>::size_type to unsigned int.
152+
153+ [ Ubuntu daily release ]
154+ * Automatic snapshot from revision 240
155+
156+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 02:31:42 +0000
157+
1unity8 (7.81.3+13.10.20130821.2-0ubuntu1) saucy; urgency=low
158unity8 (7.81.3+13.10.20130821.2-0ubuntu1) saucy; urgency=low
2
159
3 [ Michael Terry ]
160 [ Michael Terry ]
debian/control+2
@@ -3,6 +3,7 @@ Section: x11
3Priority: optional
3Priority: optional
4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
4Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
5Build-Depends: cmake,
5Build-Depends: cmake,
6+ dbus-test-runner,
6 debhelper (>= 9),
7 debhelper (>= 9),
7 libdee-qt5-dev (>= 3.2),
8 libdee-qt5-dev (>= 3.2),
8 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
9 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
@@ -31,6 +32,7 @@ Build-Depends: cmake,
31 python3:any,
32 python3:any,
32 qt5-default,
33 qt5-default,
33 qtbase5-dev,
34 qtbase5-dev,
35+ qtbase5-dev-tools,
34 qtbase5-private-dev,
36 qtbase5-private-dev,
35 qtdeclarative5-dev,
37 qtdeclarative5-dev,
36 qtdeclarative5-dev-tools,
38 qtdeclarative5-dev-tools,
debian/rules+5
@@ -16,6 +16,11 @@ override_dh_auto_clean:
16 dh_auto_clean
16 dh_auto_clean
17 rm -rf builddir
17 rm -rf builddir
18
18
19+override_dh_auto_configure:
20+ # Debian defines CMAKE_INSTALL_LOCALSTATEDIR as /usr/var, which is wrong.
21+ # So until Debian bug 719148 is fixed, do it ourselves.
22+ dh_auto_configure -- -DCMAKE_INSTALL_LOCALSTATEDIR="/var"
23+
19override_dh_install:
24override_dh_install:
20 # install autopilot tests
25 # install autopilot tests
21 cd tests/autopilot; \
26 cd tests/autopilot; \
debian/unity8-private.install+5
@@ -1,3 +1,4 @@
1+usr/lib/*/unity8/qml/AccountsService
1usr/lib/*/unity8/qml/HudClient
2usr/lib/*/unity8/qml/HudClient
2usr/lib/*/unity8/qml/LightDM
3usr/lib/*/unity8/qml/LightDM
3usr/lib/*/unity8/qml/ListViewWithPageHeader
4usr/lib/*/unity8/qml/ListViewWithPageHeader
@@ -5,3 +6,7 @@ usr/lib/*/unity8/qml/Powerd
5usr/lib/*/unity8/qml/Ubuntu
6usr/lib/*/unity8/qml/Ubuntu
6usr/lib/*/unity8/qml/Unity
7usr/lib/*/unity8/qml/Unity
7usr/lib/*/unity8/qml/Utils
8usr/lib/*/unity8/qml/Utils
9+usr/share/accountsservice/interfaces
10+usr/share/dbus-1/interfaces
11+usr/share/polkit-1
12+var/lib/polkit-1
graphics/applicationIcons/contacts-app@18.pngnew file

Binary file not shown.

graphics/applicationIcons/messages-app@18.pngnew file

Binary file not shown.

graphics/applicationIcons/system-settings@18.pngnew file

Binary file not shown.

main.cpp−1
@@ -18,7 +18,6 @@
18 */
18 */
19
19
20// Qt
20// Qt
21−#include <QtQml>
22#include <QtQuick/QQuickView>
21#include <QtQuick/QQuickView>
23#include <QtGui/QIcon>
22#include <QtGui/QIcon>
24#include <QtGui/QGuiApplication>
23#include <QtGui/QGuiApplication>
plugins/AccountsService/50-com.canonical.unity.AccountsService.pklanew file+6
@@ -0,0 +1,6 @@
1+[Allow LightDM to set Unity AccountsService fields]
2+Identity=unix-user:lightdm
3+Action=com.canonical.unity.AccountsService.ModifyAnyUser
4+ResultActive=yes
5+ResultInactive=yes
6+ResultAny=yes
plugins/AccountsService/AccountsService.cppnew file+74
@@ -0,0 +1,74 @@
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+ * Author: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#include "AccountsService.h"
20+#include <QDBusConnection>
21+#include <QDBusConnectionInterface>
22+#include <QDBusMessage>
23+#include <QDBusVariant>
24+
25+AccountsService::AccountsService(QObject* parent)
26+ : QObject(parent),
27+ accounts_manager(NULL),
28+ users()
29+{
30+ auto connection = QDBusConnection::SM_BUSNAME();
31+ auto interface = connection.interface();
32+ interface->startService("org.freedesktop.Accounts");
33+ accounts_manager = new QDBusInterface("org.freedesktop.Accounts",
34+ "/org/freedesktop/Accounts",
35+ "org.freedesktop.Accounts",
36+ connection, this);
37+}
38+
39+QVariant AccountsService::getUserProperty(const QString &user, const QString &property)
40+{
41+ auto iface = getUserInterface(user);
42+ if (iface != nullptr && iface->isValid()) {
43+ auto answer = iface->call("Get", "com.canonical.unity.AccountsService", property);
44+ if (answer.type() == QDBusMessage::ReplyMessage) {
45+ return answer.arguments()[0].value<QDBusVariant>().variant();
46+ }
47+ }
48+ return QVariant();
49+}
50+
51+void AccountsService::setUserProperty(const QString &user, const QString &property, const QVariant &value)
52+{
53+ auto iface = getUserInterface(user);
54+ if (iface != nullptr && iface->isValid()) {
55+ // The value needs to be carefully wrapped
56+ iface->call("Set", "com.canonical.unity.AccountsService", property, QVariant::fromValue(QDBusVariant(value)));
57+ }
58+}
59+
60+QDBusInterface *AccountsService::getUserInterface(const QString &user)
61+{
62+ auto iface = users.value(user);
63+ if (iface == nullptr && accounts_manager->isValid()) {
64+ auto answer = accounts_manager->call("FindUserByName", user);
65+ if (answer.type() == QDBusMessage::ReplyMessage) {
66+ iface = new QDBusInterface("org.freedesktop.Accounts",
67+ answer.arguments()[0].value<QDBusObjectPath>().path(),
68+ "org.freedesktop.DBus.Properties",
69+ accounts_manager->connection(), this);
70+ users.insert(user, iface);
71+ }
72+ }
73+ return iface;
74+}
plugins/AccountsService/AccountsService.hnew file+44
@@ -0,0 +1,44 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#ifndef UNITY_ACCOUNTSSERVICE_H
20+#define UNITY_ACCOUNTSSERVICE_H
21+
22+#include <QDBusInterface>
23+#include <QMap>
24+#include <QObject>
25+#include <QString>
26+
27+class AccountsService: public QObject
28+{
29+ Q_OBJECT
30+
31+public:
32+ explicit AccountsService(QObject *parent = 0);
33+
34+ Q_INVOKABLE QVariant getUserProperty(const QString &user, const QString &property);
35+ Q_INVOKABLE void setUserProperty(const QString &user, const QString &property, const QVariant &value);
36+
37+private:
38+ QDBusInterface *getUserInterface(const QString &user);
39+
40+ QDBusInterface *accounts_manager;
41+ QMap<QString, QDBusInterface *> users;
42+};
43+
44+#endif
plugins/AccountsService/CMakeLists.txtnew file+36
@@ -0,0 +1,36 @@
1+include(Plugins)
2+
3+add_definitions(-DSM_BUSNAME=systemBus)
4+
5+add_library(AccountsService-qml MODULE
6+ AccountsService.cpp
7+ plugin.cpp
8+ )
9+
10+qt5_use_modules(AccountsService-qml DBus Qml)
11+
12+export_qmlfiles(AccountsService AccountsService)
13+export_qmlplugin(AccountsService 0.1 AccountsService TARGETS AccountsService-qml)
14+
15+set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
16+set(POLKIT_DATA_DIR "${CMAKE_INSTALL_PREFIX}/share/polkit-1")
17+set(DBUS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces")
18+set(ACCOUNTS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/accountsservice/interfaces")
19+
20+install(FILES com.canonical.unity.AccountsService.xml
21+ DESTINATION "${DBUS_IFACE_DIR}"
22+ )
23+
24+# Create accountsservice symlink for above dbus interface
25+install(CODE "
26+execute_process(COMMAND mkdir -p \"\$ENV{DESTDIR}${ACCOUNTS_IFACE_DIR}\")
27+execute_process(COMMAND ln -sf ../../dbus-1/interfaces/com.canonical.unity.AccountsService.xml \"\$ENV{DESTDIR}${ACCOUNTS_IFACE_DIR}\")
28+ ")
29+
30+install(FILES com.canonical.unity.AccountsService.policy
31+ DESTINATION "${POLKIT_DATA_DIR}/actions"
32+ )
33+
34+install(FILES 50-com.canonical.unity.AccountsService.pkla
35+ DESTINATION "${POLKIT_LIB_DIR}/localauthority/10-vendor.d"
36+ )
plugins/AccountsService/com.canonical.unity.AccountsService.policynew file+24
@@ -0,0 +1,24 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+
3+<policyconfig>
4+ <action id="com.canonical.unity.AccountsService.ModifyOwnUser">
5+ <description>Set properties of own user</description>
6+ <message>Authentication is required to set one's own unity properties.</message>
7+ <defaults>
8+ <allow_any>yes</allow_any>
9+ <allow_inactive>yes</allow_inactive>
10+ <allow_active>yes</allow_active>
11+ </defaults>
12+ </action>
13+
14+ <action id="com.canonical.unity.AccountsService.ModifyAnyUser">
15+ <description>Set properties of any user</description>
16+ <message>Authentication is required to set another user's unity
17+properties.</message>
18+ <defaults>
19+ <allow_any>no</allow_any>
20+ <allow_inactive>no</allow_inactive>
21+ <allow_active>no</allow_active>
22+ </defaults>
23+ </action>
24+</policyconfig>
plugins/AccountsService/com.canonical.unity.AccountsService.xmlnew file+17
@@ -0,0 +1,17 @@
1+<node>
2+ <interface name="com.canonical.unity.AccountsService">
3+
4+ <annotation name="org.freedesktop.Accounts.VendorExtension" value="true"/>
5+
6+ <annotation name="org.freedesktop.Accounts.Authentication.ChangeOwn"
7+ value="com.canonical.unity.AccountsService.ModifyOwnUser"/>
8+
9+ <annotation name="org.freedesktop.Accounts.Authentication.ChangeAny"
10+ value="com.canonical.unity.AccountsService.ModifyAnyUser"/>
11+
12+ <property name="demo-edges" type="b" access="readwrite">
13+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
14+ </property>
15+
16+ </interface>
17+</node>
plugins/AccountsService/plugin.cppnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#include "plugin.h"
20+#include "AccountsService.h"
21+
22+#include <QtQml>
23+
24+static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
25+{
26+ Q_UNUSED(engine)
27+ Q_UNUSED(scriptEngine)
28+ return new AccountsService();
29+}
30+
31+void AccountsServicePlugin::registerTypes(const char *uri)
32+{
33+ Q_ASSERT(uri == QLatin1String("AccountsService"));
34+ qmlRegisterSingletonType<AccountsService>(uri, 0, 1, "AccountsService", service_provider);
35+}
plugins/AccountsService/plugin.hnew file+34
@@ -0,0 +1,34 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#ifndef ACCOUNTSSERVICE_PLUGIN_H
20+#define ACCOUNTSSERVICE_PLUGIN_H
21+
22+#include <QQmlEngine>
23+#include <QQmlExtensionPlugin>
24+
25+class AccountsServicePlugin : public QQmlExtensionPlugin
26+{
27+ Q_OBJECT
28+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
29+
30+public:
31+ void registerTypes(const char *uri);
32+};
33+
34+#endif
plugins/AccountsService/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module AccountsService
2+plugin AccountsService-qml
3+typeinfo plugin.qmltypes
plugins/CMakeLists.txt+4−3
@@ -1,7 +1,8 @@
1−add_subdirectory(Ubuntu)
1+add_subdirectory(AccountsService)
2−add_subdirectory(Utils)
3−add_subdirectory(Unity)
4add_subdirectory(HudClient)
2add_subdirectory(HudClient)
5add_subdirectory(LightDM)
3add_subdirectory(LightDM)
6add_subdirectory(ListViewWithPageHeader)
4add_subdirectory(ListViewWithPageHeader)
7add_subdirectory(Powerd)
5add_subdirectory(Powerd)
6+add_subdirectory(Ubuntu)
7+add_subdirectory(Unity)
8+add_subdirectory(Utils)
plugins/HudClient/qmldir+1
@@ -1,2 +1,3 @@
1+module HudClient
1plugin HudClientQml
2plugin HudClientQml
2typeinfo plugin.qmltypes
3typeinfo plugin.qmltypes
plugins/LightDM/plugin.cpp+1−1
@@ -25,7 +25,7 @@
25#include <QLightDM/UsersModel>
25#include <QLightDM/UsersModel>
26
26
27#include <QtCore/QAbstractItemModel>
27#include <QtCore/QAbstractItemModel>
28−#include <QtQml>
28+#include <QtQml/qqml.h>
29
29
30static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
30static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
31{
31{
plugins/Powerd/plugin.cpp+1−1
@@ -20,7 +20,7 @@
20#include "plugin.h"
20#include "plugin.h"
21#include "Powerd.h"
21#include "Powerd.h"
22
22
23−#include <QtQml/QtQml>
23+#include <QtQml/qqml.h>
24
24
25static QObject *powerd_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
25static QObject *powerd_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
26{
26{
plugins/Ubuntu/DownloadDaemonListener/plugin.cpp+1−1
@@ -22,7 +22,7 @@
22#include "plugin.h"
22#include "plugin.h"
23#include "DownloadTracker.h"
23#include "DownloadTracker.h"
24
24
25−#include <QtQml>
25+#include <QtQml/qqml.h>
26#include <QtQml/QQmlContext>
26#include <QtQml/QQmlContext>
27
27
28
28
plugins/Unity/Indicators/Network/plugin.cpp+1−1
@@ -17,7 +17,7 @@
17 */
17 */
18
18
19// Qt
19// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
21
21
22// self
22// self
23#include "plugin.h"
23#include "plugin.h"
plugins/Unity/Indicators/Network/qml/AccessPoint.qml+18−8
@@ -25,29 +25,39 @@ import Unity.Indicators 0.1 as Indicators
25Indicators.FramedMenuItem {
25Indicators.FramedMenuItem {
26 id: accessPoint
26 id: accessPoint
27
27
28− readonly property bool checked: menu ? menu.isToggled : false
28+ property bool checked: false
29+ property bool secure: false
30+ property bool adHoc: false
31+ property int signalStrength: 0
32+
33+ signal activate()
29
34
30 onCheckedChanged: {
35 onCheckedChanged: {
31 // Can't rely on binding. Checked is assigned on click.
36 // Can't rely on binding. Checked is assigned on click.
32 checkBoxActive.checked = checked;
37 checkBoxActive.checked = checked;
33 }
38 }
34
39
35− // FIXME - we need to get the strength from menu.ext.xCanonicalWifiApStrengthAction
40+ icon: {
36− // but UnityMenuModel doesnt support fetching actions not attached to menu item.
37− function getNetworkIcon(data) {
38 var imageName = "nm-signal-100"
41 var imageName = "nm-signal-100"
39
42
40− if (data.ext.xCanonicalWifiApIsAdhoc) {
43+ if (adHoc) {
41 imageName = "nm-adhoc";
44 imageName = "nm-adhoc";
45+ } else if (signalStrength == 0) {
46+ imageName = "nm-signal-00";
47+ } else if (signalStrength <= 25) {
48+ imageName = "nm-signal-25";
49+ } else if (signalStrength <= 50) {
50+ imageName = "nm-signal-50";
51+ } else if (signalStrength <= 75) {
52+ imageName = "nm-signal-75";
42 }
53 }
43− if (data.ext.xCanonicalWifiApIsSecure) {
54+
55+ if (secure) {
44 imageName += "-secure";
56 imageName += "-secure";
45 }
57 }
46−
47 return "image://gicon/" + imageName;
58 return "image://gicon/" + imageName;
48 }
59 }
49
60
50− icon: menu ? getNetworkIcon(menu) : "image://gicon/wifi-none"
51 iconFrame: false
61 iconFrame: false
52 control: CheckBox {
62 control: CheckBox {
53 id: checkBoxActive
63 id: checkBoxActive
plugins/Unity/Indicators/Network/qml/PasswordPage.qml+1−1
@@ -38,7 +38,7 @@ Page {
38 }
38 }
39
39
40 Indicators.SectionMenuItem {
40 Indicators.SectionMenuItem {
41− label: "Authentication"
41+ text: "Authentication"
42 }
42 }
43
43
44 Indicators.FramedMenuItem {
44 Indicators.FramedMenuItem {
plugins/Unity/Indicators/Network/qml/WifiSection.qmldeleted−28
@@ -1,28 +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− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Unity.Indicators 0.1 as Indicators
23−
24−Indicators.SectionMenuItem {
25− id: wifiSectionMenu
26−
27− busy: menu ? menu.ext.xCanonicalBusyAction : false
28−}
plugins/Unity/Indicators/Network/qml/qmldir+1−2
@@ -5,5 +5,4 @@ typeinfo plugin.qmltypes
5NetworkPage 0.1 NetworkPage.qml
5NetworkPage 0.1 NetworkPage.qml
6AccessPoint 0.1 AccessPoint.qml
6AccessPoint 0.1 AccessPoint.qml
7PasswordPage 0.1 PasswordPage.qml
7PasswordPage 0.1 PasswordPage.qml
8−PasswordTextField 0.1 PasswordTextField.qml
8+PasswordTextField 0.1 PasswordTextField.qml
9−WifiSection 0.1 WifiSection.qml
plugins/Unity/Indicators/indicatorsmodel.cpp+2−2
@@ -229,9 +229,9 @@ QVariant IndicatorsModel::defaultData(Indicator::Ptr indicator, int role)
229 case IndicatorsModelRole::Description:
229 case IndicatorsModelRole::Description:
230 return "";
230 return "";
231 case IndicatorsModelRole::WidgetSource:
231 case IndicatorsModelRole::WidgetSource:
232− return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorWidget.qml";
232+ return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorWidget2.qml";
233 case IndicatorsModelRole::PageSource:
233 case IndicatorsModelRole::PageSource:
234− return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorPage.qml";
234+ return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorPage2.qml";
235 }
235 }
236 return QVariant();
236 return QVariant();
237}
237}
plugins/Unity/Indicators/plugin.cpp+1−1
@@ -18,7 +18,7 @@
18 */
18 */
19
19
20// Qt
20// Qt
21−#include <QtQml>
21+#include <QtQml/qqml.h>
22
22
23// self
23// self
24#include "plugin.h"
24#include "plugin.h"
plugins/Unity/Indicators/qml/BaseMenuItem.qml−4
@@ -25,14 +25,10 @@ ListItem.Standard {
25 id: baseMenu
25 id: baseMenu
26
26
27 property bool menuActivated: false
27 property bool menuActivated: false
28− property QtObject menu
29
28
30 signal selectMenu()
29 signal selectMenu()
31 signal deselectMenu()
30 signal deselectMenu()
32
31
33− signal activate()
34− signal changeState(var value)
35−
36 showDivider: false
32 showDivider: false
37 __foregroundColor: "#e8e1d0" // FIXME not in palette yet
33 __foregroundColor: "#e8e1d0" // FIXME not in palette yet
38
34
plugins/Unity/Indicators/qml/ButtonMenuItem.qml+4−9
@@ -24,14 +24,14 @@ import Unity.Indicators 0.1 as Indicators
24
24
25BaseMenuItem {
25BaseMenuItem {
26 id: menuItem
26 id: menuItem
27− objectName: menuAction.name
28 implicitHeight: units.gu(7)
27 implicitHeight: units.gu(7)
29− enabled: menuAction.active
28+
29+ property alias text: button.text
30+
31+ signal activate()
30
32
31 Button {
33 Button {
32 id: button
34 id: button
33− enabled: menuAction.enabled
34− text: menu ? menu.label : ""
35 anchors.centerIn: parent
35 anchors.centerIn: parent
36 height: units.gu(4)
36 height: units.gu(4)
37 width: units.gu(16)
37 width: units.gu(16)
@@ -41,9 +41,4 @@ BaseMenuItem {
41 menuItem.activate();
41 menuItem.activate();
42 }
42 }
43 }
43 }
44−
45− Indicators.MenuAction {
46− id: menuAction
47− menu: menuItem.menu
48− }
49}
44}
plugins/Unity/Indicators/qml/FramedMenuItem.qml−2
@@ -23,10 +23,8 @@ import Ubuntu.Components 0.1
23import Ubuntu.Components.ListItems 0.1 as ListItem
23import Ubuntu.Components.ListItems 0.1 as ListItem
24
24
25BaseMenuItem {
25BaseMenuItem {
26− text: menu && menu.label ? menu.label : ""
27 implicitHeight: units.gu(7)
26 implicitHeight: units.gu(7)
28
27
29− icon: menu ? menu.icon : ""
30 iconFrame: false
28 iconFrame: false
31
29
32 HLine {
30 HLine {
plugins/Unity/Indicators/qml/IndicatorPage.qml+4−9
@@ -96,18 +96,13 @@ IndicatorBase {
96 }
96 }
97 if (item.hasOwnProperty("menu")) {
97 if (item.hasOwnProperty("menu")) {
98 item.menu = Qt.binding(function() { return model; });
98 item.menu = Qt.binding(function() { return model; });
99−
100− item.activate.connect(onActivateMenu);
101− item.changeState.connect(onChangeState);
102 }
99 }
103 }
100 }
104
101
105− function onActivateMenu(value) {
102+ Binding {
106− mainMenu.model.activate(index, value);
103+ target: item ? item : null
107− }
104+ property: "objectName"
108−
105+ value: model.action
109− function onChangeState(value) {
110− mainMenu.model.changeState(index, value);
111 }
106 }
112 }
107 }
113 }
108 }
plugins/Unity/Indicators/qml/MenuAction.qmldeleted−59
@@ -1,59 +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− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− * Nick Dedekind <nick.dedekind@canonical.com>
19− */
20−
21−import QtQuick 2.0
22−
23−/*!
24− \qmltype MenuAction
25− \inqmlmodule Indicators 0.1
26− \brief Helper class to connect to a qmenumodel action
27−
28− Example:
29− \qml
30− BaseMenuItem {
31− id: menuItem
32−
33− Switch {
34− checked: menuAction.state
35− }
36−
37− Indicators.MenuAction {
38− id: menuAction
39− menu: menuItem.menu
40− }
41− }
42− \endqml
43−*/
44−
45−Item {
46− id: menuAction
47−
48− /*!
49− \preliminary
50− The dbus action group object
51− */
52− readonly property string name: menu ? menu.action : ""
53−
54− property QtObject menu: null
55−
56− readonly property var state: menu ? menu.actionState : undefined
57−
58− readonly property bool active: menu ? menu.sensitive : false
59−}
plugins/Unity/Indicators/qml/MenuItemFactory.qml+124−7
@@ -20,6 +20,7 @@
20import QtQuick 2.0
20import QtQuick 2.0
21import Unity.Indicators 0.1 as Indicators
21import Unity.Indicators 0.1 as Indicators
22import Unity.Indicators.Network 0.1 as ICNetwork
22import Unity.Indicators.Network 0.1 as ICNetwork
23+import QMenuModel 0.1 as QMenuModel
23
24
24Item {
25Item {
25 id: menuFactory
26 id: menuFactory
@@ -47,35 +48,151 @@ Item {
47 Component {
48 Component {
48 id: sliderMenu;
49 id: sliderMenu;
49 Indicators.SliderMenuItem {
50 Indicators.SliderMenuItem {
51+ property QtObject menu: null
52+
53+ text: menu && menu.label ? menu.label : ""
54+ icon: menu ? menu.icon : ""
55+ minIcon: menu.ext.minIcon
56+ maxIcon: menu.ext.maxIcon
57+
58+ minimumValue: menu.ext.minValue ? menu.ext.minValue : 0.0
59+ maximumValue: {
60+ var maximum = menu.ext.maxValue ? menu.ext.maxValue : 1.0
61+ if (maximum <= minimumValue) {
62+ return minimumValue + 1;
63+ }
64+ return maximum;
65+ }
66+ value: menu ? menu.actionState : 0.0
67+ enabled: menu ? menu.sensitive : false
68+
50 Component.onCompleted: {
69 Component.onCompleted: {
51 model.loadExtendedAttributes(modelIndex, {'min-value': 'double',
70 model.loadExtendedAttributes(modelIndex, {'min-value': 'double',
52 'max-value': 'double',
71 'max-value': 'double',
53 'min-icon': 'icon',
72 'min-icon': 'icon',
54 'max-icon': 'icon'});
73 'max-icon': 'icon'});
55 }
74 }
75+
76+ // FIXME: The interval should be [0.0 - 1.0]. Unfortunately, when
77+ // reaching the boundaries (0.0 or 1.0), the value is converted
78+ // to an integer when automatically wrapped in a variant when
79+ // passed to QStateAction::updateState(…). The server chokes on
80+ // those values, complaining that they’re not of the right type…
81+ onChangeState: {
82+ if (value == Math.round(value)) {
83+ if (value >= maximumValue) {
84+ model.changeState(modelIndex, maximumValue - 0.000001);
85+ } else if (value <= minimumValue) {
86+ model.changeState(modelIndex, minimumValue + 0.000001);
87+ } else {
88+ model.changeState(modelIndex, value * 1.000001);
89+ }
90+ } else {
91+ model.changeState(modelIndex, value);
92+ }
93+ }
56 }
94 }
57 }
95 }
58− Component { id: buttonMenu; Indicators.ButtonMenuItem {} }
96+
59 Component { id: divMenu; Indicators.DivMenuItem {} }
97 Component { id: divMenu; Indicators.DivMenuItem {} }
98+
99+ Component {
100+ id: buttonMenu;
101+ Indicators.ButtonMenuItem {
102+ property QtObject menu: null
103+
104+ text: menu && menu.label ? menu.label : ""
105+ enabled: menu ? menu.sensitive : false
106+
107+ onActivate: model.activate(modelIndex);
108+ }
109+ }
110+ Component {
111+ id: sectionMenu;
60− Component { id: sectionMenu; Indicators.SectionMenuItem {} }
112+ Indicators.SectionMenuItem {
113+ property QtObject menu: null
114+
115+ text: menu && menu.label ? menu.label : ""
116+ }
117+ }
118+
119+ Component {
120+ id: progressMenu;
61− Component { id: progressMenu; Indicators.ProgressMenuItem {} }
121+ Indicators.ProgressMenuItem {
122+ property QtObject menu: null
123+
124+ text: menu && menu.label ? menu.label : ""
125+ icon: menu ? menu.icon : ""
126+ value : menu ? menu.actionState : 0.0
127+ }
128+ }
129+
130+ Component {
131+ id: standardMenu;
62− Component { id: standardMenu; Indicators.StandardMenuItem {} }
132+ Indicators.StandardMenuItem {
133+ property QtObject menu: null
134+
135+ text: menu && menu.label ? menu.label : ""
136+ icon: menu ? menu.icon : ""
137+ checkable: menu ? (menu.isCheck || menu.isRadio) : false
138+ checked: checkable ? menu.isToggled : false
139+ enabled: menu ? menu.sensitive : false
140+
141+ onActivate: model.activate(modelIndex);
142+ }
143+ }
144+
145+ Component {
146+ id: switchMenu;
63− Component { id: switchMenu; Indicators.SwitchMenuItem {} }
147+ Indicators.SwitchMenuItem {
148+ property QtObject menu: null
149+
150+ text: menu && menu.label ? menu.label : ""
151+ icon: menu ? menu.icon : ""
152+ checked: menu ? menu.isToggled : false
153+ enabled: menu ? menu.sensitive : false
154+
155+ onActivate: model.activate(modelIndex);
156+ }
157+ }
158+
64 Component {
159 Component {
65 id: wifiSection;
160 id: wifiSection;
66− ICNetwork.WifiSection {
161+ Indicators.SectionMenuItem {
162+ property QtObject menu: null
163+
164+ text: menu && menu.label ? menu.label : ""
165+ busy: menu ? menu.ext.xCanonicalBusyAction : false
166+
67 Component.onCompleted: {
167 Component.onCompleted: {
68 model.loadExtendedAttributes(modelIndex, {'x-canonical-busy-action': 'bool'});
168 model.loadExtendedAttributes(modelIndex, {'x-canonical-busy-action': 'bool'});
69 }
169 }
70 }
170 }
71 }
171 }
172+
72 Component {
173 Component {
73 id: accessPoint;
174 id: accessPoint;
74 ICNetwork.AccessPoint {
175 ICNetwork.AccessPoint {
176+ property QtObject menu: null
177+// property var strenthAction: QMenuModel.UnityMenuAction {
178+// model: menuFactory.model ? menuFactory.model : null
179+// name: menu ? menu.ext.xCanonicalWifiApStrengthAction : ""
180+// }
181+
182+ text: menu && menu.label ? menu.label : ""
183+ icon: menu ? menu.icon : ""
184+ secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false
185+ adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false
186+ checked: menu ? menu.isToggled : false
187+// signalStrength: strenthAction.valid ? strenthAction.state : 0
188+ enabled: menu ? menu.sensitive : false
189+
75 Component.onCompleted: {
190 Component.onCompleted: {
76 model.loadExtendedAttributes(modelIndex, {'x-canonical-wifi-ap-is-adhoc': 'bool',
191 model.loadExtendedAttributes(modelIndex, {'x-canonical-wifi-ap-is-adhoc': 'bool',
77− 'x-canonical-wifi-ap-is-secure': 'bool'});
192+ 'x-canonical-wifi-ap-is-secure': 'bool',
193+ 'x-canonical-wifi-ap-strength-action': 'string'});
78 }
194 }
195+ onActivate: model.activate(modelIndex);
79 }
196 }
80 }
197 }
81
198
plugins/Unity/Indicators/qml/ProgressMenuItem.qml+1−8
@@ -23,10 +23,8 @@ import Unity.Indicators 0.1 as Indicators
23
23
24FramedMenuItem {
24FramedMenuItem {
25 id: menuItem
25 id: menuItem
26− objectName: menuAction.name
27− enabled: menuAction.active
28
26
29− property int value : menuAction.state
27+ property int value : 0.0
30
28
31 control: Label {
29 control: Label {
32 id: progress
30 id: progress
@@ -37,9 +35,4 @@ FramedMenuItem {
37 fontSize: "medium"
35 fontSize: "medium"
38 color: "#e8e1d0"
36 color: "#e8e1d0"
39 }
37 }
40−
41− Indicators.MenuAction {
42− id: menuAction
43− menu: menuItem.menu
44− }
45}
38}
plugins/Unity/Indicators/qml/SectionMenuItem.qml+3−3
@@ -22,15 +22,15 @@ import Ubuntu.Components 0.1
22import Ubuntu.Components.ListItems 0.1 as ListItem
22import Ubuntu.Components.ListItems 0.1 as ListItem
23
23
24BaseMenuItem {
24BaseMenuItem {
25− property string label: menu && menu.label ? menu.label : ""
25+ id: menuItem
26+ property alias text: header.text
26 property bool busy: false
27 property bool busy: false
27
28
28− implicitHeight: label !== "" ? header.height : 0
29+ implicitHeight: text !== "" ? header.height : 0
29
30
30 ListItem.Header {
31 ListItem.Header {
31 id: header
32 id: header
32
33
33− text: label
34 height: units.gu(4)
34 height: units.gu(4)
35 anchors {
35 anchors {
36 left: parent.left
36 left: parent.left
plugins/Unity/Indicators/qml/SliderMenuItem.qml+8−23
@@ -24,17 +24,20 @@ import Unity.Indicators 0.1 as Indicators
24
24
25FramedMenuItem {
25FramedMenuItem {
26 id: menuItem
26 id: menuItem
27− objectName: menuAction.name
28− enabled: menuAction.active
29
27
30 property alias minimumValue: slider.minimumValue
28 property alias minimumValue: slider.minimumValue
31 property alias maximumValue: slider.maximumValue
29 property alias maximumValue: slider.maximumValue
32− readonly property double value: menu ? menuAction.state : 0.0
30+ property double value: 0.0
31+
32+ property alias minIcon: leftImage.source
33+ property alias maxIcon: rightImage.source
33
34
34 property QtObject d: QtObject {
35 property QtObject d: QtObject {
35 property bool enableValueConnection: true
36 property bool enableValueConnection: true
36 }
37 }
37
38
39+ signal changeState(real value)
40+
38 onValueChanged: {
41 onValueChanged: {
39 // TODO: look into adding a component to manage bi-directional bindings.
42 // TODO: look into adding a component to manage bi-directional bindings.
40 var oldEnable = d.enableValueConnection
43 var oldEnable = d.enableValueConnection
@@ -58,7 +61,6 @@ FramedMenuItem {
58 anchors.verticalCenter: row.verticalCenter
61 anchors.verticalCenter: row.verticalCenter
59 height: units.gu(4)
62 height: units.gu(4)
60 width: height
63 width: height
61− source: menu.ext.minIcon
62 }
64 }
63
65
64 Components.Slider {
66 Components.Slider {
@@ -75,19 +77,8 @@ FramedMenuItem {
75 value = menuItem.value
77 value = menuItem.value
76 }
78 }
77
79
78− // FIXME: The interval should be [0.0 - 1.0]. Unfortunately, when
80+ minimumValue: 0.0
79− // reaching the boundaries (0.0 or 1.0), the value is converted
80− // to an integer when automatically wrapped in a variant when
81− // passed to QStateAction::updateState(…). The server chokes on
82− // those values, complaining that they’re not of the right type…
83− minimumValue: menu.ext.minValue ? menu.ext.minValue * 1.000001 : 0.0000001
84− maximumValue: {
81+ maximumValue: 0.1
85− var maximum = menu.ext.maxValue ? menu.ext.maxValue * 1.000001 : 0.9999999
86− if (maximum <= minimumValue) {
87− return minimumValue + 1;
88− }
89− return maximum;
90− }
91
82
92 // FIXME - to be deprecated in Ubuntu.Components.
83 // FIXME - to be deprecated in Ubuntu.Components.
93 // Use this to disable the label, since there is not way to do it on the component.
84 // Use this to disable the label, since there is not way to do it on the component.
@@ -109,12 +100,6 @@ FramedMenuItem {
109 anchors.verticalCenter: row.verticalCenter
100 anchors.verticalCenter: row.verticalCenter
110 height: units.gu(4)
101 height: units.gu(4)
111 width: height
102 width: height
112− source: menu.ext.maxIcon
113 }
103 }
114 }
104 }
115−
116− Indicators.MenuAction {
117− id: menuAction
118− menu: menuItem.menu
119− }
120}
105}
plugins/Unity/Indicators/qml/StandardMenuItem.qml+5−10
@@ -23,16 +23,16 @@ import Unity.Indicators 0.1 as Indicators
23
23
24FramedMenuItem {
24FramedMenuItem {
25 id: menuItem
25 id: menuItem
26− objectName: menuAction.name
27− enabled: menuAction.active
28
26
29− readonly property bool checkable: menu ? (menu.isCheck || menu.isRadio) : false
27+ property bool checkable: false
30− readonly property bool checked: checkable ? menu.isToggled : false
28+ property bool checked: false
29+
30+ signal activate()
31
31
32 // FIXME : need a radio button from sdk
32 // FIXME : need a radio button from sdk
33 // https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1211866
33 // https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1211866
34 onCheckableChanged: {
34 onCheckableChanged: {
35− if (menu && checkable) {
35+ if (checkable) {
36 icon = checkComponent.createObject(menuItem);
36 icon = checkComponent.createObject(menuItem);
37 }
37 }
38 }
38 }
@@ -68,9 +68,4 @@ FramedMenuItem {
68 }
68 }
69 }
69 }
70 }
70 }
71−
72− Indicators.MenuAction {
73− id: menuAction
74− menu: menuItem.menu
75− }
76}
71}
plugins/Unity/Indicators/qml/SwitchMenuItem.qml+3−8
@@ -24,10 +24,10 @@ import Unity.Indicators 0.1 as Indicators
24
24
25FramedMenuItem {
25FramedMenuItem {
26 id: menuItem
26 id: menuItem
27− objectName: menuAction.name
28− enabled: menuAction.enabled
29
27
30− readonly property bool checked: menu ? menu.isToggled : false
28+ property bool checked: false
29+
30+ signal activate()
31
31
32 onCheckedChanged: {
32 onCheckedChanged: {
33 // Can't rely on binding. Checked is assigned on click.
33 // Can't rely on binding. Checked is assigned on click.
@@ -50,9 +50,4 @@ FramedMenuItem {
50 menuItem.activate();
50 menuItem.activate();
51 }
51 }
52 }
52 }
53−
54− Indicators.MenuAction {
55− id: menuAction
56− menu: menuItem.menu
57− }
58}
53}
plugins/Unity/Indicators/qml/qmldir−1
@@ -11,7 +11,6 @@ HLine 0.1 HLine.qml
11IndicatorBase 0.1 IndicatorBase.qml
11IndicatorBase 0.1 IndicatorBase.qml
12IndicatorPage 0.1 IndicatorPage.qml
12IndicatorPage 0.1 IndicatorPage.qml
13IndicatorWidget 0.1 IndicatorWidget.qml
13IndicatorWidget 0.1 IndicatorWidget.qml
14−MenuAction 0.1 MenuAction.qml
15MenuActionBinding 0.1 MenuActionBinding.qml
14MenuActionBinding 0.1 MenuActionBinding.qml
16MenuItemFactory 0.1 MenuItemFactory.qml
15MenuItemFactory 0.1 MenuItemFactory.qml
17ProgressMenuItem 0.1 ProgressMenuItem.qml
16ProgressMenuItem 0.1 ProgressMenuItem.qml
plugins/Unity/IndicatorsLegacy/Network/plugin.cpp+1−1
@@ -17,7 +17,7 @@
17 */
17 */
18
18
19// Qt
19// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
21
21
22// self
22// self
23#include "plugin.h"
23#include "plugin.h"
plugins/Unity/IndicatorsLegacy/plugin.cpp+1−1
@@ -17,7 +17,7 @@
17 */
17 */
18
18
19// Qt
19// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
21
21
22// self
22// self
23#include "plugin.h"
23#include "plugin.h"
plugins/Unity/Launcher/backend/launcherbackend.cpp+9−3
@@ -28,7 +28,9 @@ LauncherBackend::LauncherBackend(QObject *parent):
28 // TODO: load default pinned ones from default config, instead of hardcoding here...
28 // TODO: load default pinned ones from default config, instead of hardcoding here...
29
29
30 m_storedApps <<
30 m_storedApps <<
31− QLatin1String("phone-app.desktop") <<
31+ QLatin1String("dialer-app.desktop") <<
32+ QLatin1String("messaging-app.desktop") <<
33+ QLatin1String("address-book-app.desktop") <<
32 QLatin1String("camera-app.desktop") <<
34 QLatin1String("camera-app.desktop") <<
33 QLatin1String("gallery-app.desktop") <<
35 QLatin1String("gallery-app.desktop") <<
34 QLatin1String("facebook-webapp.desktop") <<
36 QLatin1String("facebook-webapp.desktop") <<
@@ -40,7 +42,9 @@ LauncherBackend::LauncherBackend(QObject *parent):
40 QLatin1String("calendar-app.desktop");
42 QLatin1String("calendar-app.desktop");
41
43
42 // TODO: get stuff from desktop files instead this hardcoded map
44 // TODO: get stuff from desktop files instead this hardcoded map
43− m_displayNameMap.insert("phone-app.desktop", "Phone");
45+ m_displayNameMap.insert("dialer-app.desktop", "Dialer");
46+ m_displayNameMap.insert("messaging-app.desktop", "Messaging");
47+ m_displayNameMap.insert("address-book-app.desktop", "Contacts");
44 m_displayNameMap.insert("camera-app.desktop", "Camera");
48 m_displayNameMap.insert("camera-app.desktop", "Camera");
45 m_displayNameMap.insert("gallery-app.desktop", "Gallery");
49 m_displayNameMap.insert("gallery-app.desktop", "Gallery");
46 m_displayNameMap.insert("facebook-webapp.desktop", "Facebook");
50 m_displayNameMap.insert("facebook-webapp.desktop", "Facebook");
@@ -52,7 +56,9 @@ LauncherBackend::LauncherBackend(QObject *parent):
52 m_displayNameMap.insert("calendar-app.desktop", "Calendar");
56 m_displayNameMap.insert("calendar-app.desktop", "Calendar");
53
57
54 // TODO: get stuff from desktop files instead this hardcoded map
58 // TODO: get stuff from desktop files instead this hardcoded map
55− m_iconMap.insert("phone-app.desktop", "phone-app");
59+ m_iconMap.insert("dialer-app.desktop", "phone-app");
60+ m_iconMap.insert("messaging-app.desktop", "messages-app");
61+ m_iconMap.insert("address-book-app.desktop", "contacts-app");
56 m_iconMap.insert("camera-app.desktop", "camera");
62 m_iconMap.insert("camera-app.desktop", "camera");
57 m_iconMap.insert("gallery-app.desktop", "gallery");
63 m_iconMap.insert("gallery-app.desktop", "gallery");
58 m_iconMap.insert("facebook-webapp.desktop", "facebook");
64 m_iconMap.insert("facebook-webapp.desktop", "facebook");
plugins/Unity/Launcher/launchermodel.cpp+34
@@ -25,6 +25,9 @@ LauncherModel::LauncherModel(QObject *parent):
25 LauncherModelInterface(parent),
25 LauncherModelInterface(parent),
26 m_backend(new LauncherBackend(this))
26 m_backend(new LauncherBackend(this))
27{
27{
28+ connect(m_backend, SIGNAL(countChanged(QString,int)), SLOT(countChanged(QString,int)));
29+ connect(m_backend, SIGNAL(progressChanged(QString,int)), SLOT(progressChanged(QString,int)));
30+
28 Q_FOREACH (const QString &entry, m_backend->storedApplications()) {
31 Q_FOREACH (const QString &entry, m_backend->storedApplications()) {
29 LauncherItem *item = new LauncherItem(entry,
32 LauncherItem *item = new LauncherItem(entry,
30 m_backend->desktopFile(entry),
33 m_backend->desktopFile(entry),
@@ -67,6 +70,10 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
67 return item->icon();
70 return item->icon();
68 case RolePinned:
71 case RolePinned:
69 return item->pinned();
72 return item->pinned();
73+ case RoleCount:
74+ return item->count();
75+ case RoleProgress:
76+ return item->progress();
70 }
77 }
71
78
72 return QVariant();
79 return QVariant();
@@ -177,6 +184,12 @@ void LauncherModel::quickListActionInvoked(const QString &appId, int actionIndex
177 }
184 }
178}
185}
179
186
187+void LauncherModel::setUser(const QString &username)
188+{
189+ Q_UNUSED(username)
190+ // TODO: Implement this...
191+}
192+
180void LauncherModel::storeAppList()
193void LauncherModel::storeAppList()
181{
194{
182 QStringList appIds;
195 QStringList appIds;
@@ -198,3 +211,24 @@ int LauncherModel::findApplication(const QString &appId)
198 }
211 }
199 return -1;
212 return -1;
200}
213}
214+
215+void LauncherModel::progressChanged(const QString &appId, int progress)
216+{
217+ int idx = findApplication(appId);
218+ if (idx >= 0) {
219+ LauncherItem *item = m_list.at(idx);
220+ item->setProgress(progress);
221+ Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleProgress);
222+ }
223+}
224+
225+
226+void LauncherModel::countChanged(const QString &appId, int count)
227+{
228+ int idx = findApplication(appId);
229+ if (idx >= 0) {
230+ LauncherItem *item = m_list.at(idx);
231+ item->setCount(count);
232+ Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleCount);
233+ }
234+}
plugins/Unity/Launcher/launchermodel.h+5
@@ -48,11 +48,16 @@ public:
48 Q_INVOKABLE void pin(const QString &appId, int index = -1);
48 Q_INVOKABLE void pin(const QString &appId, int index = -1);
49 Q_INVOKABLE void requestRemove(const QString &appId);
49 Q_INVOKABLE void requestRemove(const QString &appId);
50 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
50 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
51+ Q_INVOKABLE void setUser(const QString &username);
51
52
52private:
53private:
53 void storeAppList();
54 void storeAppList();
54 int findApplication(const QString &appId);
55 int findApplication(const QString &appId);
55
56
57+private Q_SLOTS:
58+ void progressChanged(const QString &appId, int progress);
59+ void countChanged(const QString &appId, int count);
60+
56private:
61private:
57 QList<LauncherItem*> m_list;
62 QList<LauncherItem*> m_list;
58 LauncherBackend *m_backend;
63 LauncherBackend *m_backend;
plugins/Unity/Launcher/plugin.cpp+1−1
@@ -18,7 +18,7 @@
18 */
18 */
19
19
20// Qt
20// Qt
21−#include <QtQml>
21+#include <QtQml/qqml.h>
22
22
23// self
23// self
24#include "plugin.h"
24#include "plugin.h"
plugins/Unity/genericoptionsmodel.cpp+2−2
@@ -76,9 +76,9 @@ int GenericOptionsModel::rowCount(const QModelIndex& /* parent */) const
76 return m_options.size ();
76 return m_options.size ();
77}
77}
78
78
79−void GenericOptionsModel::setActive(QVector<AbstractFilterOption *>::size_type idx, bool value)
79+void GenericOptionsModel::setActive(int idx, bool value)
80{
80{
81− if (idx < m_options.size())
81+ if (idx >= 0 && idx < m_options.size())
82 {
82 {
83 m_options[idx]->setActive(value);
83 m_options[idx]->setActive(value);
84 }
84 }
plugins/Unity/genericoptionsmodel.h+1−1
@@ -49,7 +49,7 @@ public:
49 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
49 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
50 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
50 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
51
51
52− Q_INVOKABLE void setActive(QVector<AbstractFilterOption *>::size_type idx, bool value);
52+ Q_INVOKABLE void setActive(int idx, bool value);
53 Q_INVOKABLE void setActive(const QString &id, bool value);
53 Q_INVOKABLE void setActive(const QString &id, bool value);
54
54
55 AbstractFilterOption* getRawOption(QVector<AbstractFilterOption *>::size_type idx) const;
55 AbstractFilterOption* getRawOption(QVector<AbstractFilterOption *>::size_type idx) const;
plugins/Unity/plugin.cpp+4−1
@@ -17,8 +17,9 @@
17 */
17 */
18
18
19// Qt
19// Qt
20−#include <QtQml>
21#include <QDBusConnection>
20#include <QDBusConnection>
21+#include <QQmlContext>
22+#include <qqml.h>
22
23
23// self
24// self
24#include "plugin.h"
25#include "plugin.h"
@@ -33,6 +34,7 @@
33#include "categories.h"
34#include "categories.h"
34#include "categoryresults.h"
35#include "categoryresults.h"
35#include "bottombarvisibilitycommunicatorshell.h"
36#include "bottombarvisibilitycommunicatorshell.h"
37+#include "genericoptionsmodel.h"
36
38
37// libqtdee
39// libqtdee
38#include "deelistmodel.h"
40#include "deelistmodel.h"
@@ -47,6 +49,7 @@ void UnityPlugin::registerTypes(const char *uri)
47 qmlRegisterUncreatableType<PreviewAction>(uri, 0, 1, "PreviewAction", "Can't create PreviewAction object in QML.");
49 qmlRegisterUncreatableType<PreviewAction>(uri, 0, 1, "PreviewAction", "Can't create PreviewAction object in QML.");
48 qmlRegisterUncreatableType<PreviewInfoHint>(uri, 0, 1, "PreviewInfoHint", "Can't create PreviewInfoHint object in QML.");
50 qmlRegisterUncreatableType<PreviewInfoHint>(uri, 0, 1, "PreviewInfoHint", "Can't create PreviewInfoHint object in QML.");
49 qmlRegisterUncreatableType<SocialPreviewComment>(uri, 0, 1, "SocialPreviewComment", "Can't create SocialPreviewComment object in QML.");
51 qmlRegisterUncreatableType<SocialPreviewComment>(uri, 0, 1, "SocialPreviewComment", "Can't create SocialPreviewComment object in QML.");
52+ qmlRegisterUncreatableType<GenericOptionsModel>(uri, 0, 1, "GenericOptionsModel", "Can't create options model in QML.");
50 qmlRegisterType<Scope>(uri, 0, 1, "Scope");
53 qmlRegisterType<Scope>(uri, 0, 1, "Scope");
51 qmlRegisterType<Scopes>(uri, 0, 1, "Scopes");
54 qmlRegisterType<Scopes>(uri, 0, 1, "Scopes");
52 qmlRegisterType<Categories>(uri, 0, 1, "Categories");
55 qmlRegisterType<Categories>(uri, 0, 1, "Categories");
plugins/Utils/plugin.cpp+1−1
@@ -17,7 +17,7 @@
17 */
17 */
18
18
19// Qt
19// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
21#include <QtQuick/QQuickWindow>
21#include <QtQuick/QQuickWindow>
22
22
23// self
23// self
po/ar.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-26 23:26+0000\n"
11"PO-Revision-Date: 2013-06-26 23:26+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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "ويكيبيديا"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "يوتيوب"
88msgstr "يوتيوب"
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "عمليات البحث الأخيرة"
136msgstr "عمليات البحث الأخيرة"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr "البرامج المُشغّلة"
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr "مُستخدمة بكثرة"
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr "مُثبّتة"
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr "متوفرة للتنزيل"
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "تطبيقات"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr "تطبيقات مألوفة"
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr "آخر الصوتيات المشغلة"
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr "فيديوهات رائجة على الإنترنت"
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "الرئيسية"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr "المميز"
174msgstr "المميز"
@@ -201,7 +209,7 @@ msgstr "النجوم:"
201msgid "Author:"
209msgid "Author:"
202msgstr "المؤلف:"
210msgstr "المؤلف:"
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,11 +246,38 @@ msgstr "تتكلم الآن..."
238msgid "Search"
246msgid "Search"
239msgstr "ابحث"
247msgstr "ابحث"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr "عذراً، لا يوجد ما يطابق بحثك."
251msgstr "عذراً، لا يوجد ما يطابق بحثك."
244
252
245−#: Shell.qml:399
253+#: Shell.qml:429
246#, qt-format
254#, qt-format
247msgid "Please enter %1"
255msgid "Please enter %1"
248msgstr ""
256msgstr ""
257+
258+#~ msgid "Running apps"
259+#~ msgstr "البرامج المُشغّلة"
260+
261+#~ msgid "Frequently used"
262+#~ msgstr "مُستخدمة بكثرة"
263+
264+#~ msgid "Installed"
265+#~ msgstr "مُثبّتة"
266+
267+#~ msgid "Available for download"
268+#~ msgstr "متوفرة للتنزيل"
269+
270+#~ msgid "Apps"
271+#~ msgstr "تطبيقات"
272+
273+#~ msgid "Frequent Apps"
274+#~ msgstr "تطبيقات مألوفة"
275+
276+#~ msgid "Recent Music"
277+#~ msgstr "آخر الصوتيات المشغلة"
278+
279+#~ msgid "Videos Popular Online"
280+#~ msgstr "فيديوهات رائجة على الإنترنت"
281+
282+#~ msgid "Home"
283+#~ msgstr "الرئيسية"
po/az.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-26 23:48+0000\n"
11"PO-Revision-Date: 2013-06-26 23:48+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: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Son axtarışlar"
135msgstr "Son axtarışlar"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Tətbiqlər"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Ev"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "Söylənilir..."
237msgid "Search"
245msgid "Search"
238msgstr "Axtar"
246msgstr "Axtar"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
250msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Tətbiqlər"
259+
260+#~ msgid "Home"
261+#~ msgstr "Ev"
po/bg.po+62−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 00:06+0000\n"
11"PO-Revision-Date: 2013-06-27 00:06+0000\n"
12"Last-Translator: Miroslav E. Hadzhiev (Хаджиев) "
12"Last-Translator: Miroslav E. Hadzhiev (Хаджиев) "
13"<miroslav.hadzhiev@gmail.com>\n"
13"<miroslav.hadzhiev@gmail.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Уикипедия"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "Скорошни търсения"
136msgstr "Скорошни търсения"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr ""
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr ""
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr "Инсталирани"
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr ""
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "Приложения"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr ""
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr ""
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr ""
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "Начало"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr "Най-отличени"
174msgstr "Най-отличени"
@@ -201,7 +209,7 @@ msgstr ""
201msgid "Author:"
209msgid "Author:"
202msgstr "Автор:"
210msgstr "Автор:"
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,11 +246,20 @@ msgstr ""
238msgid "Search"
246msgid "Search"
239msgstr "Търсене"
247msgstr "Търсене"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr "Съжаляваме, няма нищо, което да отговаря на вашето търсене."
251msgstr "Съжаляваме, няма нищо, което да отговаря на вашето търсене."
244
252
245−#: Shell.qml:399
253+#: Shell.qml:429
246#, qt-format
254#, qt-format
247msgid "Please enter %1"
255msgid "Please enter %1"
248msgstr ""
256msgstr ""
257+
258+#~ msgid "Installed"
259+#~ msgstr "Инсталирани"
260+
261+#~ msgid "Apps"
262+#~ msgstr "Приложения"
263+
264+#~ msgid "Home"
265+#~ msgstr "Начало"
po/ca.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 00:24+0000\n"
11"PO-Revision-Date: 2013-06-27 00:24+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: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Cerques recents"
135msgstr "Cerques recents"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Aplications actives"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Les més freqüents"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Instal·lades"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Disponibles per baixar"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Aplicacions"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Aplicacions freqüents"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Música recent"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Vídeos populars en línia"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Inici"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "S'està parlant..."
237msgid "Search"
245msgid "Search"
238msgstr "Cerca"
246msgstr "Cerca"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "No hi ha res que coincideixi amb la cerca"
250msgstr "No hi ha res que coincideixi amb la cerca"
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Aplications actives"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Les més freqüents"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Instal·lades"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Disponibles per baixar"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Aplicacions"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Aplicacions freqüents"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Música recent"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Vídeos populars en línia"
280+
281+#~ msgid "Home"
282+#~ msgstr "Inici"
po/de.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 00:37+0000\n"
11"PO-Revision-Date: 2013-06-27 00:37+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: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Letzte Suchbegriffe"
135msgstr "Letzte Suchbegriffe"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Aktive Anwendungen"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Häufig verwendet"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Installiert"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Zum Herunterladen verfügbar"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Anwendungen"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Häufig genutzte Anwendungen"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Zuletzt gehörte Musik"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Beliebte Online-Videos"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Start"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr "Empfehlungen"
173msgstr "Empfehlungen"
@@ -200,7 +208,7 @@ msgstr "Darsteller:"
200msgid "Author:"
208msgid "Author:"
201msgstr "Autor:"
209msgstr "Autor:"
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "Sie sprechen …"
237msgid "Search"
245msgid "Search"
238msgstr "Suchen"
246msgstr "Suchen"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Entschuldigung, es wurden keine Treffer erzielt."
250msgstr "Entschuldigung, es wurden keine Treffer erzielt."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Aktive Anwendungen"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Häufig verwendet"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Installiert"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Zum Herunterladen verfügbar"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Anwendungen"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Häufig genutzte Anwendungen"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Zuletzt gehörte Musik"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Beliebte Online-Videos"
280+
281+#~ msgid "Home"
282+#~ msgstr "Start"
po/el.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 00:53+0000\n"
11"PO-Revision-Date: 2013-06-27 00:53+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: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Πρόσφατες αναζητήσεις"
135msgstr "Πρόσφατες αναζητήσεις"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Εφαρμογές"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Αρχή"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "Ομιλία..."
237msgid "Search"
245msgid "Search"
238msgstr "Αναζήτηση"
246msgstr "Αναζήτηση"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να ταιριάζει στην αναζήτησή σας."
250msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να ταιριάζει στην αναζήτησή σας."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Εφαρμογές"
259+
260+#~ msgid "Home"
261+#~ msgstr "Αρχή"
po/en_AU.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 01:13+0000\n"
11"PO-Revision-Date: 2013-06-27 01:13+0000\n"
12"Last-Translator: Jackson Doak <Doak.jackson@gmail.com>\n"
12"Last-Translator: Jackson Doak <Doak.jackson@gmail.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Recent searches"
135msgstr "Recent searches"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Running apps"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Frequently used"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Installed"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Available for download"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Apps"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Frequent Apps"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Recent Music"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Videos Popular Online"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Home"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr "Featured"
173msgstr "Featured"
@@ -200,7 +208,7 @@ msgstr "Starring:"
200msgid "Author:"
208msgid "Author:"
201msgstr "Author:"
209msgstr "Author:"
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "Speaking..."
237msgid "Search"
245msgid "Search"
238msgstr "Search"
246msgstr "Search"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Sorry, there is nothing that matches your search."
250msgstr "Sorry, there is nothing that matches your search."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Running apps"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Frequently used"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Installed"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Available for download"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Apps"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Frequent Apps"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Recent Music"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Videos Popular Online"
280+
281+#~ msgid "Home"
282+#~ msgstr "Home"
po/en_GB.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 08:53+0000\n"
11"PO-Revision-Date: 2013-06-27 08:53+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: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Recent searches"
135msgstr "Recent searches"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Running apps"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Frequently used"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Installed"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Available for download"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Apps"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Frequent Apps"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Recent Music"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Videos Popular Online"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Home"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr "Featured"
173msgstr "Featured"
@@ -200,7 +208,7 @@ msgstr "Starring:"
200msgid "Author:"
208msgid "Author:"
201msgstr "Author:"
209msgstr "Author:"
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "Speaking..."
237msgid "Search"
245msgid "Search"
238msgstr "Search"
246msgstr "Search"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Sorry, there is nothing that matches your search."
250msgstr "Sorry, there is nothing that matches your search."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr "Please enter %1"
255msgstr "Please enter %1"
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Running apps"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Frequently used"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Installed"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Available for download"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Apps"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Frequent Apps"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Recent Music"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Videos Popular Online"
280+
281+#~ msgid "Home"
282+#~ msgstr "Home"
po/eo.po+53−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr ""
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr ""
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,11 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr ""
246msgstr ""
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
po/es.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-07-08 07:25+0000\n"
11"PO-Revision-Date: 2013-07-08 07:25+0000\n"
12"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
12"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Búsquedas recientes"
135msgstr "Búsquedas recientes"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Aplicaciones en ejecución"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Usadas frecuentemente"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Instaladas"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Disponibles para descargar"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Aplicaciones"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Aplicaciones frecuentes"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Música reciente"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Vídeos populares en línea"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Inicio"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr "Destacados"
173msgstr "Destacados"
@@ -200,7 +208,7 @@ msgstr "Protagonistas:"
200msgid "Author:"
208msgid "Author:"
201msgstr "Autor:"
209msgstr "Autor:"
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "Hablando…"
237msgid "Search"
245msgid "Search"
238msgstr "Buscar"
246msgstr "Buscar"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "No hay nada que coincida con su búsqueda."
250msgstr "No hay nada que coincida con su búsqueda."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr "Introduzca %1"
255msgstr "Introduzca %1"
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Aplicaciones en ejecución"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Usadas frecuentemente"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Instaladas"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Disponibles para descargar"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Aplicaciones"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Aplicaciones frecuentes"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Música reciente"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Vídeos populares en línea"
280+
281+#~ msgid "Home"
282+#~ msgstr "Inicio"
po/fi.po+91−56
@@ -7,16 +7,16 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-08-12 17:45+0000\n"
11+"PO-Revision-Date: 2013-08-23 16:15+0000\n"
12−"Last-Translator: Aleksi Kinnunen <Unknown>\n"
12+"Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,79 +86,87 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Viimeisimmät haut"
135msgstr "Viimeisimmät haut"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97−msgstr ""
141+msgstr "(%1)"
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104−msgstr[0] ""
148+msgstr[0] "%1 arvostelu"
105−msgstr[1] ""
149+msgstr[1] "%1 arvostelua"
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109−msgstr ""
153+msgstr "Arvioi tämä"
110
154
111#: Dash/Apps/AppReviews.qml:72
155#: Dash/Apps/AppReviews.qml:72
112msgid "Add a review"
156msgid "Add a review"
113−msgstr ""
157+msgstr "Lisää arvostelu"
114
158
115#: Dash/Apps/AppReviews.qml:84
159#: Dash/Apps/AppReviews.qml:84
116msgid "Review"
160msgid "Review"
117−msgstr ""
161+msgstr "Arvostelu"
118
162
119#: Dash/Apps/AppReviews.qml:118
163#: Dash/Apps/AppReviews.qml:118
120msgid "Send"
164msgid "Send"
121−msgstr ""
165+msgstr "Lähetä"
122
166
123#: Dash/Apps/AppReviews.qml:136
167#: Dash/Apps/AppReviews.qml:136
124msgid "Comments:"
168msgid "Comments:"
125−msgstr ""
169+msgstr "Kommentit:"
126−
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Käynnissä olevat sovellukset"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Usein käytetyt"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Asennetut"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Ladattavissa"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Sovellukset"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Yleisimmät sovellukset"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Viimeisin musiikki"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Suositut verkkovideot"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Kotinäyttö"
162
170
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
@@ -200,7 +208,7 @@ msgstr "Pääosissa:"
200msgid "Author:"
208msgid "Author:"
201msgstr "Tekijä:"
209msgstr "Tekijä:"
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr "Hätäpuhelu"
213msgstr "Hätäpuhelu"
206
214
@@ -237,11 +245,38 @@ msgstr "Puhutaan..."
237msgid "Search"
245msgid "Search"
238msgstr "Hae"
246msgstr "Hae"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Hakuun täsmääviä tuloksia ei löydy."
250msgstr "Hakuun täsmääviä tuloksia ei löydy."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247−msgstr ""
255+msgstr "Kirjoita %1"
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Käynnissä olevat sovellukset"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Usein käytetyt"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Asennetut"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Ladattavissa"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Sovellukset"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Yleisimmät sovellukset"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Viimeisin musiikki"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Suositut verkkovideot"
280+
281+#~ msgid "Home"
282+#~ msgstr "Kotinäyttö"
po/fo.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 02:57+0000\n"
11"PO-Revision-Date: 2013-06-27 02:57+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: Faroese <fo@li.org>\n"
13"Language-Team: Faroese <fo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Nýtsluskipanir"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Heim"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "Snakkar..."
237msgid "Search"
245msgid "Search"
238msgstr "Leita"
246msgstr "Leita"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
250msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Nýtsluskipanir"
259+
260+#~ msgid "Home"
261+#~ msgstr "Heim"
po/fr.po+56−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 03:21+0000\n"
11"PO-Revision-Date: 2013-06-27 03:21+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: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Applications"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr ""
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,14 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr ""
246msgstr ""
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Applications"
po/gl.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 03:38+0000\n"
11"PO-Revision-Date: 2013-06-27 03:38+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: Galician <gl@li.org>\n"
13"Language-Team: Galician <gl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Buscas recentes"
135msgstr "Buscas recentes"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Aplicativos en execución"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Usadas frecuentemente"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Instalado"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Dispoñíbel para descargar"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Aplicativos"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Aplicativos frecuentes"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Música recente"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Vídeos populares en liña"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Cartafol persoal"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "Falando…"
237msgid "Search"
245msgid "Search"
238msgstr "Buscar"
246msgstr "Buscar"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Sentímolo, non hai nada que coincida con esta busca."
250msgstr "Sentímolo, non hai nada que coincida con esta busca."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Aplicativos en execución"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Usadas frecuentemente"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Instalado"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Dispoñíbel para descargar"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Aplicativos"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Aplicativos frecuentes"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Música recente"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Vídeos populares en liña"
280+
281+#~ msgid "Home"
282+#~ msgstr "Cartafol persoal"
po/he.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 03:54+0000\n"
11"PO-Revision-Date: 2013-06-27 03:54+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: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "חיפושים אחרונים"
135msgstr "חיפושים אחרונים"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "יישומים"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "בית"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "מושמע דיבור..."
237msgid "Search"
245msgid "Search"
238msgstr "חיפוש"
246msgstr "חיפוש"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "שום דבר אינו תואם לחיפוש שלך, עמך הסליחה."
250msgstr "שום דבר אינו תואם לחיפוש שלך, עמך הסליחה."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "יישומים"
259+
260+#~ msgid "Home"
261+#~ msgstr "בית"
po/hr.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "Nedavne pretrage"
136msgstr "Nedavne pretrage"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr ""
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr ""
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr ""
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr ""
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "Aplikacije"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr ""
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr ""
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr ""
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "Početna"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr ""
174msgstr ""
@@ -201,7 +209,7 @@ msgstr ""
201msgid "Author:"
209msgid "Author:"
202msgstr ""
210msgstr ""
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,11 +246,17 @@ msgstr "Govor..."
238msgid "Search"
246msgid "Search"
239msgstr "Pretraživanje"
247msgstr "Pretraživanje"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
251msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
244
252
245−#: Shell.qml:399
253+#: Shell.qml:429
246#, qt-format
254#, qt-format
247msgid "Please enter %1"
255msgid "Please enter %1"
248msgstr ""
256msgstr ""
257+
258+#~ msgid "Apps"
259+#~ msgstr "Aplikacije"
260+
261+#~ msgid "Home"
262+#~ msgstr "Početna"
po/hu.po+68−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 04:28+0000\n"
11"PO-Revision-Date: 2013-06-27 04:28+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: Hungarian <hu@li.org>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Legutóbbi keresések"
135msgstr "Legutóbbi keresések"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Futó alkalmazások"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Gyakran használt"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Telepített"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Alkalmazások"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Kezdőoldal"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,26 @@ msgstr "Beszéd…"
237msgid "Search"
245msgid "Search"
238msgstr "Keresés"
246msgstr "Keresés"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Elnézést, nincs találat a keresésre."
250msgstr "Elnézést, nincs találat a keresésre."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Futó alkalmazások"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Gyakran használt"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Telepített"
265+
266+#~ msgid "Apps"
267+#~ msgstr "Alkalmazások"
268+
269+#~ msgid "Home"
270+#~ msgstr "Kezdőoldal"
po/hy.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Վերջին որոնումներ"
135msgstr "Վերջին որոնումներ"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Բացած ծրագրեր"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Վերջին բացածները"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Տեղադրված"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Հասանելի ծրագրեր"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Ծրագրեր"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Հաճախակի ծրագրերը"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Վերջին երգերը"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Հայտնի օնլայն վիդեոներ"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Տուն"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "Խոսում եմ..."
237msgid "Search"
245msgid "Search"
238msgstr "Որոնում"
246msgstr "Որոնում"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
250msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Բացած ծրագրեր"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Վերջին բացածները"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Տեղադրված"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Հասանելի ծրագրեր"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Ծրագրեր"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Հաճախակի ծրագրերը"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Վերջին երգերը"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Հայտնի օնլայն վիդեոներ"
280+
281+#~ msgid "Home"
282+#~ msgstr "Տուն"
po/id.po+53−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr ""
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr ""
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,11 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr ""
246msgstr ""
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
po/it.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 05:14+0000\n"
11"PO-Revision-Date: 2013-06-27 05: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: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Ricerche recenti"
135msgstr "Ricerche recenti"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Applicazioni"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Home"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "Sto parlando..."
237msgid "Search"
245msgid "Search"
238msgstr "Cerca"
246msgstr "Cerca"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Nessun risultato corrispondente alla ricerca."
250msgstr "Nessun risultato corrispondente alla ricerca."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Applicazioni"
259+
260+#~ msgid "Home"
261+#~ msgstr "Home"
po/ja.po+53−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr ""
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr ""
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,11 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr ""
246msgstr ""
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
po/kn.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
135msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "ಮನೆ (Home)"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
237msgid "Search"
245msgid "Search"
238msgstr "ಹುಡುಕು"
246msgstr "ಹುಡುಕು"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯಾದ ಹೊಂದಾಣಿಕೆಗಳು ದೊರಕುತ್ತಿಲ್ಲ"
250msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯಾದ ಹೊಂದಾಣಿಕೆಗಳು ದೊರಕುತ್ತಿಲ್ಲ"
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"
259+
260+#~ msgid "Home"
261+#~ msgstr "ಮನೆ (Home)"
po/ko.po+74−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 05:59+0000\n"
11"PO-Revision-Date: 2013-06-27 05:59+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: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "요즈음 찿은 것들"
135msgstr "요즈음 찿은 것들"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "돌아가고 있는 앱"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "자주 쓰는 것들"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "깔림"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "내려받을 수 있음"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "앱"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "자주 쓰는 앱"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "요즈음 찾는 음악"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr ""
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,32 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr "찾기"
246msgstr "찾기"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "돌아가고 있는 앱"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "자주 쓰는 것들"
262+
263+#~ msgid "Installed"
264+#~ msgstr "깔림"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "내려받을 수 있음"
268+
269+#~ msgid "Apps"
270+#~ msgstr "앱"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "자주 쓰는 앱"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "요즈음 찾는 음악"
po/ky.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Соңку издөөлөр"
135msgstr "Соңку издөөлөр"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Тиркемелер"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Үй папкасы"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "Сүйлөнүүдө..."
237msgid "Search"
245msgid "Search"
238msgstr "Издөө"
246msgstr "Издөө"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Тилекке каршы, сиздин издөөңүзгө эч нерсе дал келген жок."
250msgstr "Тилекке каршы, сиздин издөөңүзгө эч нерсе дал келген жок."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Тиркемелер"
259+
260+#~ msgid "Home"
261+#~ msgstr "Үй папкасы"
po/lv.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 06:31+0000\n"
11"PO-Revision-Date: 2013-06-27 06:31+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: Latvian <lv@li.org>\n"
13"Language-Team: Latvian <lv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Nesen veiktās meklēšanas"
135msgstr "Nesen veiktās meklēšanas"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Lietotnes"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Mājas"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "Runa..."
237msgid "Search"
245msgid "Search"
238msgstr "Meklēt"
246msgstr "Meklēt"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
250msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Lietotnes"
259+
260+#~ msgid "Home"
261+#~ msgstr "Mājas"
po/my.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 06:47+0000\n"
11"PO-Revision-Date: 2013-06-27 06:47+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: Burmese <my@li.org>\n"
13"Language-Team: Burmese <my@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
135msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Apps"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "ပင်မ"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "ပြောနေသည်"
237msgid "Search"
245msgid "Search"
238msgstr "ရှာဖွေ"
246msgstr "ရှာဖွေ"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့်တူညီတာဘာမှမရှိပါ။"
250msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့်တူညီတာဘာမှမရှိပါ။"
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Apps"
259+
260+#~ msgid "Home"
261+#~ msgstr "ပင်မ"
po/nb.po+68−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 07:02+0000\n"
11"PO-Revision-Date: 2013-06-27 07:02+0000\n"
12"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
12"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Siste søk"
135msgstr "Siste søk"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Ofte brukt"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Installert"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Tilgjengelig for nedlasting"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Programmer"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Hjem"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,26 @@ msgstr "Snakker …"
237msgid "Search"
245msgid "Search"
238msgstr "Søk"
246msgstr "Søk"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Søket ga ingen treff."
250msgstr "Søket ga ingen treff."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Frequently used"
258+#~ msgstr "Ofte brukt"
259+
260+#~ msgid "Installed"
261+#~ msgstr "Installert"
262+
263+#~ msgid "Available for download"
264+#~ msgstr "Tilgjengelig for nedlasting"
265+
266+#~ msgid "Apps"
267+#~ msgstr "Programmer"
268+
269+#~ msgid "Home"
270+#~ msgstr "Hjem"
po/nl.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 07:19+0000\n"
11"PO-Revision-Date: 2013-06-27 07: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: Dutch <nl@li.org>\n"
13"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Recente zoekopdrachten"
135msgstr "Recente zoekopdrachten"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Apps"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Hoofdvenster"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "Inspreken…"
237msgid "Search"
245msgid "Search"
238msgstr "Zoeken"
246msgstr "Zoeken"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
250msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Apps"
259+
260+#~ msgid "Home"
261+#~ msgstr "Hoofdvenster"
po/pl.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 08:52+0000\n"
11"PO-Revision-Date: 2013-06-27 08:52+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: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
18"|| n%100>=20) ? 1 : 2;\n"
18"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Wikipedia"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "Ostatnie wyszukiwania"
136msgstr "Ostatnie wyszukiwania"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr "Uruchomione aplikacje"
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr "Najczęściej używane"
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr "Zainstalowane"
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr "Dostępne do pobrania"
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "Aplikacje"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr "Często używane aplikacje"
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr "Najnowsza muzyka"
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr "Wideo popularne online"
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "Dom"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr "Polecane"
174msgstr "Polecane"
@@ -201,7 +209,7 @@ msgstr "Obsada:"
201msgid "Author:"
209msgid "Author:"
202msgstr "Autor:"
210msgstr "Autor:"
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,11 +246,38 @@ msgstr "Rozpoznanie..."
238msgid "Search"
246msgid "Search"
239msgstr "Szukaj"
247msgstr "Szukaj"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr "Nie znaleziono pasujących wyników."
251msgstr "Nie znaleziono pasujących wyników."
244
252
245−#: Shell.qml:399
253+#: Shell.qml:429
246#, qt-format
254#, qt-format
247msgid "Please enter %1"
255msgid "Please enter %1"
248msgstr "Wprowadź %1"
256msgstr "Wprowadź %1"
257+
258+#~ msgid "Running apps"
259+#~ msgstr "Uruchomione aplikacje"
260+
261+#~ msgid "Frequently used"
262+#~ msgstr "Najczęściej używane"
263+
264+#~ msgid "Installed"
265+#~ msgstr "Zainstalowane"
266+
267+#~ msgid "Available for download"
268+#~ msgstr "Dostępne do pobrania"
269+
270+#~ msgid "Apps"
271+#~ msgstr "Aplikacje"
272+
273+#~ msgid "Frequent Apps"
274+#~ msgstr "Często używane aplikacje"
275+
276+#~ msgid "Recent Music"
277+#~ msgstr "Najnowsza muzyka"
278+
279+#~ msgid "Videos Popular Online"
280+#~ msgstr "Wideo popularne online"
281+
282+#~ msgid "Home"
283+#~ msgstr "Dom"
po/pt_BR.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 07:39+0000\n"
11"PO-Revision-Date: 2013-06-27 07:39+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: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Pesquisas recentes"
135msgstr "Pesquisas recentes"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Aplicativos"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Início"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,17 @@ msgstr "Falando..."
237msgid "Search"
245msgid "Search"
238msgstr "Pesquisar"
246msgstr "Pesquisar"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
250msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Aplicativos"
259+
260+#~ msgid "Home"
261+#~ msgstr "Início"
po/ro.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
11"PO-Revision-Date: 2013-06-27 07:53+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: Romanian <ro@li.org>\n"
13"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
18"== 0) && (n != 0))) ? 2: 1));\n"
18"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "Căutări recente"
136msgstr "Căutări recente"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr ""
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr ""
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr ""
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr ""
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "Aplicații"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr ""
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr ""
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr ""
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "Acasă"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr ""
174msgstr ""
@@ -201,7 +209,7 @@ msgstr ""
201msgid "Author:"
209msgid "Author:"
202msgstr ""
210msgstr ""
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,12 +246,18 @@ msgstr "Vorbire..."
238msgid "Search"
246msgid "Search"
239msgstr "Căutare"
247msgstr "Căutare"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr ""
251msgstr ""
244"Ne pare rău, nu este nimic care se potrivește căutării dumneavoastră."
252"Ne pare rău, nu este nimic care se potrivește căutării dumneavoastră."
245
253
246−#: Shell.qml:399
254+#: Shell.qml:429
247#, qt-format
255#, qt-format
248msgid "Please enter %1"
256msgid "Please enter %1"
249msgstr ""
257msgstr ""
258+
259+#~ msgid "Apps"
260+#~ msgstr "Aplicații"
261+
262+#~ msgid "Home"
263+#~ msgstr "Acasă"
po/ru.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-28 06:40+0000\n"
11"PO-Revision-Date: 2013-06-28 06:40+0000\n"
12"Last-Translator: Eugene Marshal <Unknown>\n"
12"Last-Translator: Eugene Marshal <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"
13"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Википедия"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "Последние поисковые запросы"
136msgstr "Последние поисковые запросы"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr "Запущенные приложения"
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr "Часто используемые"
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr "Установленные"
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr "Доступно для загрузки"
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "Приложения"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr "Часто используемые приложения"
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr "Недавно прослушанная музыка"
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr "Популярные видео из сети"
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "Главная"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr ""
174msgstr ""
@@ -201,7 +209,7 @@ msgstr "В главных ролях"
201msgid "Author:"
209msgid "Author:"
202msgstr "Автор:"
210msgstr "Автор:"
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,11 +246,38 @@ msgstr "Говорите..."
238msgid "Search"
246msgid "Search"
239msgstr "Поиск"
247msgstr "Поиск"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr "Извините, поиск не дал результатов."
251msgstr "Извините, поиск не дал результатов."
244
252
245−#: Shell.qml:399
253+#: Shell.qml:429
246#, qt-format
254#, qt-format
247msgid "Please enter %1"
255msgid "Please enter %1"
248msgstr "Пожалуйста, введите %1"
256msgstr "Пожалуйста, введите %1"
257+
258+#~ msgid "Running apps"
259+#~ msgstr "Запущенные приложения"
260+
261+#~ msgid "Frequently used"
262+#~ msgstr "Часто используемые"
263+
264+#~ msgid "Installed"
265+#~ msgstr "Установленные"
266+
267+#~ msgid "Available for download"
268+#~ msgstr "Доступно для загрузки"
269+
270+#~ msgid "Apps"
271+#~ msgstr "Приложения"
272+
273+#~ msgid "Frequent Apps"
274+#~ msgstr "Часто используемые приложения"
275+
276+#~ msgid "Recent Music"
277+#~ msgstr "Недавно прослушанная музыка"
278+
279+#~ msgid "Videos Popular Online"
280+#~ msgstr "Популярные видео из сети"
281+
282+#~ msgid "Home"
283+#~ msgstr "Главная"
po/si.po+53−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr ""
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr ""
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,11 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr ""
246msgstr ""
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
po/sl.po+74−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-07-02 12:59+0000\n"
11"PO-Revision-Date: 2013-07-02 12:59+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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
18"n%100==4 ? 3 : 0);\n"
18"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Wikipedija"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "Nedavna iskanja"
136msgstr "Nedavna iskanja"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr ""
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr "Pogosto uporabljano"
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr "Nameščeno"
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr "Na voljo za prejem"
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "Programi"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr "Pogosto uporabljani programi"
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr "Nedavna glasba"
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr ""
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "Domov"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr "Predstavljeno"
174msgstr "Predstavljeno"
@@ -201,7 +209,7 @@ msgstr ""
201msgid "Author:"
209msgid "Author:"
202msgstr ""
210msgstr ""
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,11 +246,32 @@ msgstr "Govorjenje ..."
238msgid "Search"
246msgid "Search"
239msgstr "Iskanje"
247msgstr "Iskanje"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr "Nič se ne ujema z vašim iskalnim nizom."
251msgstr "Nič se ne ujema z vašim iskalnim nizom."
244
252
245−#: Shell.qml:399
253+#: Shell.qml:429
246#, qt-format
254#, qt-format
247msgid "Please enter %1"
255msgid "Please enter %1"
248msgstr ""
256msgstr ""
257+
258+#~ msgid "Frequently used"
259+#~ msgstr "Pogosto uporabljano"
260+
261+#~ msgid "Installed"
262+#~ msgstr "Nameščeno"
263+
264+#~ msgid "Available for download"
265+#~ msgstr "Na voljo za prejem"
266+
267+#~ msgid "Apps"
268+#~ msgstr "Programi"
269+
270+#~ msgid "Recent Music"
271+#~ msgstr "Nedavna glasba"
272+
273+#~ msgid "Home"
274+#~ msgstr "Domov"
275+
276+#~ msgid "Frequent Apps"
277+#~ msgstr "Pogosto uporabljani programi"
po/sr.po+59−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "Скорашње претраге"
136msgstr "Скорашње претраге"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr ""
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr ""
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr ""
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr ""
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "Програми"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr ""
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr ""
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr ""
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "Почетна"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr ""
174msgstr ""
@@ -201,7 +209,7 @@ msgstr ""
201msgid "Author:"
209msgid "Author:"
202msgstr ""
210msgstr ""
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,11 +246,17 @@ msgstr "Говор..."
238msgid "Search"
246msgid "Search"
239msgstr "Претрага"
247msgstr "Претрага"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr "Нажалост, претрага није наишла на икакво подударање."
251msgstr "Нажалост, претрага није наишла на икакво подударање."
244
252
245−#: Shell.qml:399
253+#: Shell.qml:429
246#, qt-format
254#, qt-format
247msgid "Please enter %1"
255msgid "Please enter %1"
248msgstr ""
256msgstr ""
257+
258+#~ msgid "Apps"
259+#~ msgstr "Програми"
260+
261+#~ msgid "Home"
262+#~ msgstr "Почетна"
po/sv.po+53−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\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: Swedish <sv@li.org>\n"
13"Language-Team: Swedish <sv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr ""
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr ""
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,11 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr ""
246msgstr ""
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
po/te.po+56−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
11"PO-Revision-Date: 2013-06-27 09:57+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: Telugu <te@li.org>\n"
13"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr ""
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "నివాసం"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,14 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr ""
246msgstr ""
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Home"
258+#~ msgstr "నివాసం"
po/tr.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 10:08+0000\n"
11"PO-Revision-Date: 2013-06-27 10:08+0000\n"
12"Last-Translator: Adar Cem EREN <adarcemeren34@gmail.com>\n"
12"Last-Translator: Adar Cem EREN <adarcemeren34@gmail.com>\n"
13"Language-Team: Turkish <tr@li.org>\n"
13"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Vikipedi"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "Son Arananlar"
135msgstr "Son Arananlar"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Çalışan uygulamalar"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Sıkça kullanılanlar"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Yüklenenler"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "İndirilebilir durumda"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Uygulamalar"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Sıkça Kullanılan Uygulamalar"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "En Son Müzik"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Çevrimiçi Yaygın Videolar"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Ana Sayfa"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr "Öne Çıkanlar"
173msgstr "Öne Çıkanlar"
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr "Yazar:"
209msgstr "Yazar:"
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "Konuşuyor..."
237msgid "Search"
245msgid "Search"
238msgstr "Ara"
246msgstr "Ara"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
250msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Çalışan uygulamalar"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Sıkça kullanılanlar"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Yüklenenler"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "İndirilebilir durumda"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Uygulamalar"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Sıkça Kullanılan Uygulamalar"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "En Son Müzik"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Çevrimiçi Yaygın Videolar"
280+
281+#~ msgid "Home"
282+#~ msgstr "Ana Sayfa"
po/ug.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 11:02+0000\n"
11"PO-Revision-Date: 2013-06-27 11:02+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: Uyghur <ug@li.org>\n"
13"Language-Team: Uyghur <ug@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "ۋىكىپېدىيە"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "يېقىنقى ئىزدەشلەر"
135msgstr "يېقىنقى ئىزدەشلەر"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "ئىجرا بولۇۋاتقان ئەپلەر"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "كوپ ئىشلىتىلگەنلىرى"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "ئورنىتىلغانلىرى"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "چۈشۈرگىلى بولىدىغانلىرى"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "ئەپلەر"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "دائىم ئىشلىتىلىدىغان ئەپلەر"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "يېقىندا ئاڭلىغان مۇزىكىلار"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "توردىكى ئالقىشقا ئېرىشكەن سىنلار"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "ماكان"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr "داڭلىق"
173msgstr "داڭلىق"
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr "ئاپتور:"
209msgstr "ئاپتور:"
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "سۆزلەۋاتىسىز…"
237msgid "Search"
245msgid "Search"
238msgstr "ئىزدە"
246msgstr "ئىزدە"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپىلمىدى."
250msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپىلمىدى."
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "ئىجرا بولۇۋاتقان ئەپلەر"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "كوپ ئىشلىتىلگەنلىرى"
262+
263+#~ msgid "Installed"
264+#~ msgstr "ئورنىتىلغانلىرى"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "چۈشۈرگىلى بولىدىغانلىرى"
268+
269+#~ msgid "Apps"
270+#~ msgstr "ئەپلەر"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "دائىم ئىشلىتىلىدىغان ئەپلەر"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "يېقىندا ئاڭلىغان مۇزىكىلار"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "توردىكى ئالقىشقا ئېرىشكەن سىنلار"
280+
281+#~ msgid "Home"
282+#~ msgstr "ماكان"
po/uk.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-07-21 05:47+0000\n"
11"PO-Revision-Date: 2013-07-21 05:47+0000\n"
12"Last-Translator: Ярослав Смук <Smuk.Slavko@yandex.ua>\n"
12"Last-Translator: Ярослав Смук <Smuk.Slavko@yandex.ua>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
20+"X-Generator: Launchpad (build 16738)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Вікіпедія"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90+#: Components/EdgeDemoOverlay.qml:145
91+msgid "Skip intro"
92+msgstr ""
93+
94+#: Components/EdgeDemo.qml:98
95+msgid "Right edge"
96+msgstr ""
97+
98+#: Components/EdgeDemo.qml:99
99+msgid "Try swiping from the right edge to unlock the phone"
100+msgstr ""
101+
102+#: Components/EdgeDemo.qml:135
103+msgid "Top edge"
104+msgstr ""
105+
106+#: Components/EdgeDemo.qml:136
107+msgid "Try swiping from the top edge to access the indicators"
108+msgstr ""
109+
110+#: Components/EdgeDemo.qml:161
111+msgid "Close"
112+msgstr ""
113+
114+#: Components/EdgeDemo.qml:162
115+msgid "Swipe up again to close the settings screen"
116+msgstr ""
117+
118+#: Components/EdgeDemo.qml:189
119+msgid "Left edge"
120+msgstr ""
121+
122+#: Components/EdgeDemo.qml:190
123+msgid "Swipe from the left to reveal the launcher for quick access to apps"
124+msgstr ""
125+
126+#: Components/EdgeDemo.qml:217
127+msgid "Well done"
128+msgstr ""
129+
130+#: Components/EdgeDemo.qml:218
131+msgid "You have now mastered the edge gestures and can start using the phone"
132+msgstr ""
133+
90#: Components/PageHeader.qml:298
134#: Components/PageHeader.qml:298
91msgid "Recent searches"
135msgid "Recent searches"
92msgstr "Нещодавні пошуки"
136msgstr "Нещодавні пошуки"
93
137
94#. TRANSLATORS: Number of persons who rated this app
138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96#, qt-format
140#, qt-format
97msgid "(%1)"
141msgid "(%1)"
98msgstr ""
142msgstr ""
99
143
100#. TRANSLATORS: Number of persons who wrote reviews for this app
144#. TRANSLATORS: Number of persons who wrote reviews for this app
101−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
145+#: Dash/Apps/AppInfo.qml:85
102#, qt-format
146#, qt-format
103msgid "%1 review"
147msgid "%1 review"
104msgid_plural "%1 reviews"
148msgid_plural "%1 reviews"
105msgstr[0] ""
149msgstr[0] ""
106msgstr[1] ""
150msgstr[1] ""
107
151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109msgid "Rate this"
153msgid "Rate this"
110msgstr ""
154msgstr ""
111
155
@@ -125,42 +169,6 @@ msgstr ""
125msgid "Comments:"
169msgid "Comments:"
126msgstr ""
170msgstr ""
127
171
128−#: Dash/DashApps.qml:65
129−msgid "Running apps"
130−msgstr "Запущені програми"
131−
132−#: Dash/DashApps.qml:68
133−msgid "Frequently used"
134−msgstr "Найчастіше використовувані"
135−
136−#: Dash/DashApps.qml:71
137−msgid "Installed"
138−msgstr "Встановлені"
139−
140−#: Dash/DashApps.qml:74
141−msgid "Available for download"
142−msgstr "Доступно до завантаження"
143−
144−#: Dash/DashApps.qml:168
145−msgid "Apps"
146−msgstr "Програми"
147−
148−#: Dash/DashHome.qml:41
149−msgid "Frequent Apps"
150−msgstr "Часто використовувані програми"
151−
152−#: Dash/DashHome.qml:44
153−msgid "Recent Music"
154−msgstr "Нещодавно прослухана музика"
155−
156−#: Dash/DashHome.qml:47
157−msgid "Videos Popular Online"
158−msgstr "Популярні в мережі відео"
159−
160−#: Dash/DashHome.qml:151
161−msgid "Home"
162−msgstr "Домівка"
163−
164#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165msgid "Featured"
173msgid "Featured"
166msgstr "Рекомендовані"
174msgstr "Рекомендовані"
@@ -201,7 +209,7 @@ msgstr "Актори:"
201msgid "Author:"
209msgid "Author:"
202msgstr "Автор:"
210msgstr "Автор:"
203
211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205msgid "Emergency Call"
213msgid "Emergency Call"
206msgstr ""
214msgstr ""
207
215
@@ -238,11 +246,38 @@ msgstr "Мовлення…"
238msgid "Search"
246msgid "Search"
239msgstr "Пошук"
247msgstr "Пошук"
240
248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242msgid "Sorry, there is nothing that matches your search."
250msgid "Sorry, there is nothing that matches your search."
243msgstr "Вибачте, для вказаних вами ключових слів нічого не знайдено."
251msgstr "Вибачте, для вказаних вами ключових слів нічого не знайдено."
244
252
245−#: Shell.qml:399
253+#: Shell.qml:429
246#, qt-format
254#, qt-format
247msgid "Please enter %1"
255msgid "Please enter %1"
248msgstr "Будь ласка, введіть %1"
256msgstr "Будь ласка, введіть %1"
257+
258+#~ msgid "Running apps"
259+#~ msgstr "Запущені програми"
260+
261+#~ msgid "Frequently used"
262+#~ msgstr "Найчастіше використовувані"
263+
264+#~ msgid "Installed"
265+#~ msgstr "Встановлені"
266+
267+#~ msgid "Available for download"
268+#~ msgstr "Доступно до завантаження"
269+
270+#~ msgid "Apps"
271+#~ msgstr "Програми"
272+
273+#~ msgid "Frequent Apps"
274+#~ msgstr "Часто використовувані програми"
275+
276+#~ msgid "Recent Music"
277+#~ msgstr "Нещодавно прослухана музика"
278+
279+#~ msgid "Videos Popular Online"
280+#~ msgstr "Популярні в мережі відео"
281+
282+#~ msgid "Home"
283+#~ msgstr "Домівка"
po/unity8.pot+51−43
@@ -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: 2013-08-09 12:18+0200\n"
11+"POT-Creation-Date: 2013-08-27 13:36-0400\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"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr ""
135msgstr ""
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr ""
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr ""
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr ""
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr ""
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr ""
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr ""
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr ""
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr ""
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr ""
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,11 @@ msgstr ""
237msgid "Search"
245msgid "Search"
238msgstr ""
246msgstr ""
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr ""
250msgstr ""
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
po/zh_CN.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 10:33+0000\n"
11"PO-Revision-Date: 2013-06-27 10:33+0000\n"
12"Last-Translator: Anthony Wong <anthony.wong@canonical.com>\n"
12"Last-Translator: Anthony Wong <anthony.wong@canonical.com>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "维基百科"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "近期搜索"
135msgstr "近期搜索"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "正在运行的应用程序"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "常用"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "已安装"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "可供下载"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "应用程序"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "常用软件"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "近期听过的音乐"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "热门在线视频"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "主页"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr "推荐"
173msgstr "推荐"
@@ -200,7 +208,7 @@ msgstr "主演:"
200msgid "Author:"
208msgid "Author:"
201msgstr "作者:"
209msgstr "作者:"
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "讲话中..."
237msgid "Search"
245msgid "Search"
238msgstr "搜索"
246msgstr "搜索"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "对不起,没有找到您想要的结果。"
250msgstr "对不起,没有找到您想要的结果。"
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "正在运行的应用程序"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "常用"
262+
263+#~ msgid "Installed"
264+#~ msgstr "已安装"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "可供下载"
268+
269+#~ msgid "Apps"
270+#~ msgstr "应用程序"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "常用软件"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "近期听过的音乐"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "热门在线视频"
280+
281+#~ msgid "Home"
282+#~ msgstr "主页"
po/zh_TW.po+80−45
@@ -7,7 +7,7 @@ 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: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11"PO-Revision-Date: 2013-06-27 10:24+0000\n"
11"PO-Revision-Date: 2013-06-27 10:24+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: Chinese (Traditional) <zh_TW@li.org>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
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"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-29 05:41+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
19+"X-Generator: Launchpad (build 16738)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89+#: Components/EdgeDemoOverlay.qml:145
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:98
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:99
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:135
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:136
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:161
110+msgid "Close"
111+msgstr ""
112+
113+#: Components/EdgeDemo.qml:162
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:189
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:190
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:217
126+msgid "Well done"
127+msgstr ""
128+
129+#: Components/EdgeDemo.qml:218
130+msgid "You have now mastered the edge gestures and can start using the phone"
131+msgstr ""
132+
89#: Components/PageHeader.qml:298
133#: Components/PageHeader.qml:298
90msgid "Recent searches"
134msgid "Recent searches"
91msgstr "最近搜尋"
135msgstr "最近搜尋"
92
136
93#. TRANSLATORS: Number of persons who rated this app
137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95#, qt-format
139#, qt-format
96msgid "(%1)"
140msgid "(%1)"
97msgstr ""
141msgstr ""
98
142
99#. TRANSLATORS: Number of persons who wrote reviews for this app
143#. TRANSLATORS: Number of persons who wrote reviews for this app
100−#: Dash/Apps/AppInfo.qml:84 tests/qmltests/Dash/Apps/tst_AppPreview.qml:115
144+#: Dash/Apps/AppInfo.qml:85
101#, qt-format
145#, qt-format
102msgid "%1 review"
146msgid "%1 review"
103msgid_plural "%1 reviews"
147msgid_plural "%1 reviews"
104msgstr[0] ""
148msgstr[0] ""
105msgstr[1] ""
149msgstr[1] ""
106
150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108msgid "Rate this"
152msgid "Rate this"
109msgstr ""
153msgstr ""
110
154
@@ -124,42 +168,6 @@ msgstr ""
124msgid "Comments:"
168msgid "Comments:"
125msgstr ""
169msgstr ""
126
170
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "執行中的程式"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "最常使用"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "已安裝"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "可供下載"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "程式"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "常用的程式"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "最近聽過的音樂"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "線上熱門的影片"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "家屋"
162−
163#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164msgid "Featured"
172msgid "Featured"
165msgstr ""
173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200msgid "Author:"
208msgid "Author:"
201msgstr ""
209msgstr ""
202
210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204msgid "Emergency Call"
212msgid "Emergency Call"
205msgstr ""
213msgstr ""
206
214
@@ -237,11 +245,38 @@ msgstr "說話中..."
237msgid "Search"
245msgid "Search"
238msgstr "搜尋"
246msgstr "搜尋"
239
247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241msgid "Sorry, there is nothing that matches your search."
249msgid "Sorry, there is nothing that matches your search."
242msgstr "很抱歉,找不到符合您想搜尋的結果。"
250msgstr "很抱歉,找不到符合您想搜尋的結果。"
243
251
244−#: Shell.qml:399
252+#: Shell.qml:429
245#, qt-format
253#, qt-format
246msgid "Please enter %1"
254msgid "Please enter %1"
247msgstr ""
255msgstr ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "執行中的程式"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "最常使用"
262+
263+#~ msgid "Installed"
264+#~ msgstr "已安裝"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "可供下載"
268+
269+#~ msgid "Apps"
270+#~ msgstr "程式"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "常用的程式"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "最近聽過的音樂"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "線上熱門的影片"
280+
281+#~ msgid "Home"
282+#~ msgstr "家屋"
tests/autopilot/unity8/shell/emulators/create_interactive_notification.pynew file+102
@@ -0,0 +1,102 @@
1+#!/usr/bin/env python
2+
3+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
4+#
5+# Unity Autopilot Test Suite
6+# Copyright (C) 2012-2013 Canonical
7+#
8+# This program is free software: you can redistribute it and/or modify
9+# it under the terms of the GNU General Public License as published by
10+# the Free Software Foundation, either version 3 of the License, or
11+# (at your option) any later version.
12+#
13+# This program is distributed in the hope that it will be useful,
14+# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+# GNU General Public License for more details.
17+#
18+# You should have received a copy of the GNU General Public License
19+# along with this program. If not, see <http://www.gnu.org/licenses/>.
20+#
21+
22+import argparse
23+from gi.repository import GLib, Notify
24+import signal
25+
26+
27+def action_callback(notification, action_id, data):
28+ print action_id
29+
30+
31+def quit_callback(notification):
32+ loop.quit()
33+
34+
35+if __name__ == '__main__':
36+ parser = argparse.ArgumentParser(
37+ description='Create an interactive notification'
38+ )
39+
40+ parser.add_argument(
41+ '--summary',
42+ help='summary text of the notification',
43+ default='Summary'
44+ )
45+ parser.add_argument(
46+ '--body',
47+ help='body text of the notification',
48+ default='Body'
49+ )
50+ parser.add_argument(
51+ '--icon',
52+ help='path to the icon to display',
53+ default=None
54+ )
55+ parser.add_argument(
56+ '--action',
57+ help='id and label for the callback in the format: id,label',
58+ action='append',
59+ default=[]
60+ )
61+ parser.add_argument(
62+ '--urgency',
63+ help='LOW, NORMAL, CRITICAL',
64+ choices=['LOW', 'NORMAL', 'CRITICAL'],
65+ default='NORMAL'
66+ )
67+ parser.add_argument(
68+ '--hints',
69+ help='list of comma sep options',
70+ action='append',
71+ default=[]
72+ )
73+
74+ args = parser.parse_args()
75+
76+ Notify.init('Interactive Notifications')
77+
78+ notification = Notify.Notification.new(args.summary, args.body, args.icon)
79+
80+ for hint in args.hints:
81+ key, value = hint.split(',', 1)
82+ notification.set_hint_string(key, value)
83+
84+ for action in args.action:
85+ action_id, action_label = action.split(',', 1)
86+ notification.add_action(
87+ action_id,
88+ action_label,
89+ action_callback,
90+ None,
91+ None
92+ )
93+
94+ def signal_handler(signam, frame):
95+ loop.quit()
96+
97+ signal.signal(signal.SIGINT, signal_handler)
98+
99+ loop = GLib.MainLoop.new(None, False)
100+ notification.connect('closed', quit_callback)
101+ notification.show()
102+ loop.run()
tests/autopilot/unity8/shell/tests/__init__.py+20−20
@@ -51,26 +51,25 @@ UNITYSHELL_GSETTINGS_PATH = "/org/compiz/profiles/unity/plugins/unityshell/"
51UNITYSHELL_LAUNCHER_KEY = "launcher-hide-mode"
51UNITYSHELL_LAUNCHER_KEY = "launcher-hide-mode"
52UNITYSHELL_LAUNCHER_MODE = 1 # launcher hidden
52UNITYSHELL_LAUNCHER_MODE = 1 # launcher hidden
53
53
54−def _get_device_emulation_scenarios():
54+def _get_device_emulation_scenarios(devices='All'):
55+ nexus4 = ('Desktop Nexus 4',
56+ dict(app_width=768, app_height=1280, grid_unit_px=18))
57+ nexus10 = ('Desktop Nexus 10',
58+ dict(app_width=2560, app_height=1600, grid_unit_px=20))
59+ native = ('Native Device',
60+ dict(app_width=0, app_height=0, grid_unit_px=0))
61+
55 if model() == 'Desktop':
62 if model() == 'Desktop':
63+ if devices == 'All':
56− return [
64+ return [nexus4, nexus10]
57− (
65+ elif devices == 'Nexus4':
58− 'Desktop Nexus 4',
66+ return [nexus4]
59− dict(app_width=768, app_height=1280, grid_unit_px=18)
67+ elif devices == 'Nexus10':
60− ),
68+ return [nexus10]
61− (
69+ else:
62− 'Desktop Nexus 10',
70+ raise RuntimeException('Unrecognized device-option "%s" passed.' % devices)
63− dict(app_width=2560, app_height=1600, grid_unit_px=20)
64− ),
65− ]
66 else:
71 else:
67− return [
72+ return [native]
68− (
69− 'Native Device',
70− dict(app_width=0, app_height=0, grid_unit_px=0)
71− )
72− ]
73−
74
73
75class UnityTestCase(AutopilotTestCase):
74class UnityTestCase(AutopilotTestCase):
76
75
@@ -148,7 +147,7 @@ class UnityTestCase(AutopilotTestCase):
148 divisor = divisor * 2
147 divisor = divisor * 2
149 return divisor
148 return divisor
150
149
151− def launch_unity(self):
150+ def launch_unity(self, **kwargs):
152 """Launch the unity shell, return a proxy object for it."""
151 """Launch the unity shell, return a proxy object for it."""
153 binary_path = get_binary_path()
152 binary_path = get_binary_path()
154 lib_path = get_lib_path()
153 lib_path = get_lib_path()
@@ -167,7 +166,8 @@ class UnityTestCase(AutopilotTestCase):
167 binary_path,
166 binary_path,
168 *self.unity_geometry_args,
167 *self.unity_geometry_args,
169 app_type='qt',
168 app_type='qt',
170− emulator_base=UnityEmulatorBase
169+ emulator_base=UnityEmulatorBase,
170+ **kwargs
171 )
171 )
172 self._set_proxy(app_proxy)
172 self._set_proxy(app_proxy)
173
173
tests/autopilot/unity8/shell/tests/test_lock_screen.py+2
@@ -178,3 +178,5 @@ class TestLockscreen(UnityTestCase):
178 except AssertionError:
178 except AssertionError:
179 if retries > 0:
179 if retries > 0:
180 self._type_character(character, prompt, retries-1)
180 self._type_character(character, prompt, retries-1)
181+ else:
182+ raise
tests/autopilot/unity8/shell/tests/test_notifications.pynew file+737
@@ -0,0 +1,737 @@
1+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2+#
3+# Unity Autopilot Test Suite
4+# Copyright (C) 2012-2013 Canonical
5+#
6+# This program is free software: you can redistribute it and/or modify
7+# it under the terms of the GNU General Public License as published by
8+# the Free Software Foundation, either version 3 of the License, or
9+# (at your option) any later version.
10+#
11+# This program is distributed in the hope that it will be useful,
12+# but WITHOUT ANY WARRANTY; without even the implied warranty of
13+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+# GNU General Public License for more details.
15+#
16+# You should have received a copy of the GNU General Public License
17+# along with this program. If not, see <http://www.gnu.org/licenses/>.
18+#
19+
20+"""Tests for Notifications"""
21+
22+from __future__ import absolute_import
23+
24+from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
25+
26+from testtools.matchers import Equals, NotEquals
27+from autopilot.matchers import Eventually
28+
29+from gi.repository import Notify
30+import time
31+import os
32+import logging
33+import signal
34+import subprocess
35+
36+logger = logging.getLogger(__name__)
37+
38+
39+class NotificationsBase(UnityTestCase):
40+ """Base class for all notification tests that provides helper methods."""
41+
42+ scenarios = _get_device_emulation_scenarios('Nexus4')
43+
44+ def _get_icon_path(self, icon_name):
45+ """Given an icons file name returns the full path (either system or
46+ source tree.
47+
48+ Consider the graphics directory as root so for example (runnign tests
49+ from installed unity8-autopilot package):
50+ >>> self.get_icon_path('clock.png')
51+ /usr/share/unity8/graphics/clock.png
52+
53+ >>> self.get_icon_path('applicationIcons/facebook.png')
54+ /usr/share/unity8/graphics/applicationIcons/facebook.png
55+
56+ """
57+ if os.path.abspath(__file__).startswith('/usr/'):
58+ return '/usr/share/unity8/graphics/' + icon_name
59+ else:
60+ return os.path.abspath(
61+ os.getcwd() + "/../../graphics/" + icon_name
62+ )
63+
64+ def _get_notifications_list(self):
65+ main_view = self.main_window.get_qml_view()
66+ return main_view.select_single(
67+ "QQuickListView",
68+ objectName='notificationList'
69+ )
70+
71+ def _assert_notification(
72+ self,
73+ notification,
74+ summary=None,
75+ body=None,
76+ icon=True,
77+ secondary_icon=False,
78+ opacity=None
79+ ):
80+ """Assert that the expected qualities of a notification are as
81+ expected.
82+
83+ """
84+
85+ if summary is not None:
86+ self.assertThat(notification.summary, Eventually(Equals(summary)))
87+
88+ if body is not None:
89+ self.assertThat(notification.body, Eventually(Equals(body)))
90+
91+ if icon:
92+ self.assertThat(notification.iconSource, Eventually(NotEquals("")))
93+ else:
94+ self.assertThat(notification.iconSource, Eventually(Equals("")))
95+
96+ if secondary_icon:
97+ self.assertThat(
98+ notification.secondaryIconSource,
99+ Eventually(NotEquals(""))
100+ )
101+ else:
102+ self.assertThat(
103+ notification.secondaryIconSource,
104+ Eventually(Equals(""))
105+ )
106+
107+ if opacity is not None:
108+ self.assertThat(notification.opacity, Eventually(Equals(opacity)))
109+
110+
111+class InteractiveNotificationBase(NotificationsBase):
112+ """Collection of test for Interactive tests including snap decisions."""
113+
114+ def setUp(self):
115+ super(InteractiveNotificationBase, self).setUp()
116+ # Need to keep track when we launch the notification script.
117+ self._notify_proc = None
118+
119+ def test_interactive(self):
120+ """Interactive notification must react upon click on itself."""
121+ self.launch_unity()
122+ greeter = self.main_window.get_greeter()
123+ greeter.swipe()
124+
125+ notify_list = self._get_notifications_list()
126+
127+ summary = "Interactive notification"
128+ body = "This notification can be clicked on to trigger an action."
129+ icon_path = self._get_icon_path('avatars/anna_olsson.png')
130+ actions = [("action_id", "dummy")]
131+ hints = [
132+ ("x-canonical-switch-to-application", "true"),
133+ (
134+ "x-canonical-secondary-icon",
135+ self._get_icon_path('applicationIcons/phone-app.png')
136+ )
137+ ]
138+
139+ self._create_interactive_notification(
140+ summary,
141+ body,
142+ icon_path,
143+ "NORMAL",
144+ actions,
145+ hints,
146+ )
147+
148+ get_notification = lambda: notify_list.select_single('Notification')
149+ self.assertThat(get_notification, Eventually(NotEquals(None)))
150+ notification = get_notification()
151+
152+ self.touch.tap_object(
153+ notification.select_single(objectName="interactiveArea")
154+ )
155+
156+ self.assert_notification_action_id_was_called('action_id')
157+
158+ def test_sd_incoming_call(self):
159+ """Rejecting a call should make notification expand and offer more options."""
160+ self.launch_unity()
161+ greeter = self.main_window.get_greeter()
162+ greeter.swipe()
163+
164+ notify_list = self._get_notifications_list()
165+
166+ summary = "Incoming call"
167+ body = "Frank Zappa\n+44 (0)7736 027340"
168+ icon_path = self._get_icon_path('avatars/anna_olsson.png')
169+ hints = [
170+ (
171+ "x-canonical-secondary-icon",
172+ self._get_icon_path('applicationIcons/phone-app.png')
173+ ),
174+ ("x-canonical-snap-decisions", "true"),
175+ ]
176+
177+ actions = [
178+ ('action_accept', 'Accept'),
179+ ('action_decline_1', 'Decline'),
180+ ('action_decline_2', '"Can\'t talk now, what\'s up?"'),
181+ ('action_decline_3', '"I call you back."'),
182+ ('action_decline_4', 'Send custom message...'),
183+ ]
184+
185+ self._create_interactive_notification(
186+ summary,
187+ body,
188+ icon_path,
189+ "NORMAL",
190+ actions,
191+ hints
192+ )
193+
194+ get_notification = lambda: notify_list.select_single('Notification')
195+ self.assertThat(get_notification, Eventually(NotEquals(None)))
196+ notification = get_notification()
197+ self._assert_notification(notification, None, None, True, True, 1.0)
198+ initial_height = notification.height
199+ self.touch.tap_object(notification.select_single(objectName="button1"))
200+ self.assertThat(
201+ notification.height,
202+ Eventually(Equals(initial_height +
203+ 3 * notification.select_single(objectName="buttonColumn").spacing +
204+ 3 * notification.select_single(objectName="button4").height)))
205+ self.touch.tap_object(notification.select_single(objectName="button4"))
206+ self.assert_notification_action_id_was_called("action_decline_4")
207+
208+ def _create_interactive_notification(
209+ self,
210+ summary="",
211+ body="",
212+ icon=None,
213+ urgency="NORMAL",
214+ actions=[],
215+ hints=[]
216+ ):
217+ """Create a interactive notification command.
218+
219+ :param summary: Summary text for the notification
220+ :param body: Body text to display in the notification
221+ :param icon: Path string to the icon to use
222+ :param urgency: Urgency string for the noticiation, either: 'LOW',
223+ 'NORMAL', 'CRITICAL'
224+ :param actions: List of tuples containing the 'id' and 'label' for all
225+ the actions to add
226+ :param hint_strings: List of tuples containing the 'name' and value for
227+ setting the hint strings for the notification
228+
229+ """
230+
231+ logger.info(
232+ "Creating snap-decision notification with summary(%s), body(%s) "
233+ "and urgency(%r)",
234+ summary,
235+ body,
236+ urgency
237+ )
238+
239+ script_args = [
240+ '--summary', summary,
241+ '--body', body,
242+ '--urgency', urgency
243+ ]
244+
245+ if icon is not None:
246+ script_args.extend(['--icon', icon])
247+
248+ for hint in hints:
249+ key, value = hint
250+ script_args.extend(['--hint', "%s,%s" % (key, value)])
251+
252+ for action in actions:
253+ action_id, action_label = action
254+ action_string = "%s,%s" % (action_id, action_label)
255+ script_args.extend(['--action', action_string])
256+
257+ python_bin = subprocess.check_output(['which', 'python']).strip()
258+ command = [python_bin, self._get_notify_script()] + script_args
259+ logger.info("Launching snap-decision notification as: %s", command)
260+ self._notify_proc = subprocess.Popen(
261+ command,
262+ stdin=subprocess.PIPE,
263+ stdout=subprocess.PIPE,
264+ stderr=subprocess.PIPE,
265+ close_fds=True,
266+ )
267+
268+ self.addCleanup(self._tidy_up_script_process)
269+
270+ poll_result = self._notify_proc.poll()
271+ if poll_result is not None and self._notify_proc.returncode != 0:
272+ error_output = self._notify_proc.communicate()[1]
273+ raise RuntimeError("Call to script failed with: %s" % error_output)
274+
275+ def _get_notify_script(self):
276+ """Returns the path to the interactive notification creation script."""
277+ file_path = "../../emulators/create_interactive_notification.py"
278+
279+ the_path = os.path.abspath(
280+ os.path.join(__file__, file_path))
281+
282+ return the_path
283+
284+ def _tidy_up_script_process(self):
285+ if self._notify_proc is not None and self._notify_proc.poll() is None:
286+ logger.error("Notification process wasn't killed, killing now.")
287+ os.killpg(self._notify_proc.pid, signal.SIGTERM)
288+
289+ def assert_notification_action_id_was_called(self, action_id, timeout=10):
290+ """Assert that the interactive notification callback of id *action_id*
291+ was called.
292+
293+ :raises AssertionError: If no interactive notification has actually
294+ been created.
295+ :raises AssertionError: When *action_id* does not match the actual
296+ returned.
297+ :raises AssertionError: If no callback was called at all.
298+ """
299+
300+ if self._notify_proc is None:
301+ raise AssertionError("No interactive notification was created.")
302+
303+ for i in xrange(timeout):
304+ self._notify_proc.poll()
305+ if self._notify_proc.returncode is not None:
306+ output = self._notify_proc.communicate()
307+ actual_action_id = output[0].strip("\n")
308+ if actual_action_id != action_id:
309+ raise AssertionError(
310+ "action id '%s' does not match actual returned '%s'"
311+ % (action_id, actual_action_id)
312+ )
313+ else:
314+ return
315+ time.sleep(1)
316+
317+ os.killpg(self._notify_proc.pid, signal.SIGTERM)
318+ self._notify_proc = None
319+ raise AssertionError(
320+ "No callback was called, killing interactivenotification script"
321+ )
322+
323+
324+class EphemeralNotificationsTests(NotificationsBase):
325+ """Collection of tests for Emphemeral notifications (non-interactive.)"""
326+
327+ def setUp(self):
328+ super(EphemeralNotificationsTests, self).setUp()
329+ # Because we are using the Notify library we need to init and un-init
330+ # otherwise we get crashes.
331+ Notify.init("Autopilot Ephemeral Notification Tests")
332+ self.addCleanup(Notify.uninit)
333+
334+ def test_icon_summary_body(self):
335+ """Notification must display the expected summary and body text."""
336+ self.launch_unity()
337+ greeter = self.main_window.get_greeter()
338+ greeter.swipe()
339+
340+ notify_list = self._get_notifications_list()
341+
342+ summary = "Icon-Summary-Body"
343+ body = "Hey pal, what's up with the party next weekend? Will you " \
344+ "join me and Anna?"
345+ icon_path = self._get_icon_path('avatars/anna_olsson.png')
346+ hints = [
347+ (
348+ "x-canonical-secondary-icon",
349+ self._get_icon_path('applicationIcons/phone-app.png')
350+ )
351+ ]
352+
353+ notification = self._create_ephemeral_notification(
354+ summary,
355+ body,
356+ icon_path,
357+ hints,
358+ "NORMAL",
359+ )
360+
361+ notification.show()
362+
363+ get_notification = lambda: notify_list.select_single('Notification')
364+ self.assertThat(get_notification, Eventually(NotEquals(None)))
365+ notification = get_notification()
366+ self._assert_notification(notification, summary, body, True, True, 1.0)
367+
368+ def test_icon_summary(self):
369+ """Notification must display the expected summary and secondary icon."""
370+ self.launch_unity()
371+ greeter = self.main_window.get_greeter()
372+ greeter.swipe()
373+
374+ notify_list = self._get_notifications_list()
375+
376+ summary = "Upload of image completed"
377+ hints = [
378+ (
379+ "x-canonical-secondary-icon",
380+ self._get_icon_path('applicationIcons/facebook.png')
381+ )
382+ ]
383+
384+ notification = self._create_ephemeral_notification(
385+ summary,
386+ None,
387+ None,
388+ hints,
389+ "NORMAL",
390+ )
391+
392+ notification.show()
393+
394+ get_notification = lambda: notify_list.select_single('Notification')
395+ self.assertThat(get_notification, Eventually(NotEquals(None)))
396+ notification = get_notification()
397+ self._assert_notification(
398+ notification,
399+ summary,
400+ None,
401+ False,
402+ True,
403+ 1.0
404+ )
405+
406+ def test_urgency_order(self):
407+ """Notifications must be displayed in order according to their urgency."""
408+ self.launch_unity()
409+ greeter = self.main_window.get_greeter()
410+ greeter.swipe()
411+
412+ notify_list = self._get_notifications_list()
413+
414+ summary_low = 'Low Urgency'
415+ body_low = "No, I'd rather see paint dry, pal *yawn*"
416+ icon_path_low = self._get_icon_path('avatars/amanda.png')
417+
418+ summary_normal = 'Normal Urgency'
419+ body_normal = "Hey pal, what's up with the party next weekend? Will " \
420+ "you join me and Anna?"
421+ icon_path_normal = self._get_icon_path('avatars/funky.png')
422+
423+ summary_critical = 'Critical Urgency'
424+ body_critical = 'Dude, this is so urgent you have no idea :)'
425+ icon_path_critical = self._get_icon_path('avatars/anna_olsson.png')
426+
427+ notification_normal = self._create_ephemeral_notification(
428+ summary_normal,
429+ body_normal,
430+ icon_path_normal,
431+ urgency="NORMAL"
432+ )
433+ notification_normal.show()
434+
435+ notification_low = self._create_ephemeral_notification(
436+ summary_low,
437+ body_low,
438+ icon_path_low,
439+ urgency="LOW"
440+ )
441+ notification_low.show()
442+
443+ notification_critical = self._create_ephemeral_notification(
444+ summary_critical,
445+ body_critical,
446+ icon_path_critical,
447+ urgency="CRITICAL"
448+ )
449+ notification_critical.show()
450+
451+ get_notification = lambda: notify_list.select_single(
452+ 'Notification',
453+ summary=summary_critical
454+ )
455+ self.assertThat(get_notification, Eventually(NotEquals(None)))
456+
457+ notification = get_notification()
458+ self._assert_notification(
459+ notification,
460+ summary_critical,
461+ body_critical,
462+ True,
463+ False,
464+ 1.0
465+ )
466+
467+ get_normal_notification = lambda: notify_list.select_single(
468+ 'Notification',
469+ summary=summary_normal
470+ )
471+ self.assertThat(get_normal_notification, Eventually(NotEquals(None)))
472+ notification = get_normal_notification()
473+ self._assert_notification(
474+ notification,
475+ summary_normal,
476+ body_normal,
477+ True,
478+ False,
479+ 1.0
480+ )
481+
482+ get_low_notification = lambda: notify_list.select_single(
483+ 'Notification',
484+ summary=summary_low
485+ )
486+ self.assertThat(get_low_notification, Eventually(NotEquals(None)))
487+ notification = get_low_notification()
488+ self._assert_notification(
489+ notification,
490+ summary_low,
491+ body_low,
492+ True,
493+ False,
494+ 1.0
495+ )
496+
497+ def test_summary_and_body(self):
498+ """Notification must display the expected summary- and body-text."""
499+ self.launch_unity()
500+ greeter = self.main_window.get_greeter()
501+ greeter.swipe()
502+
503+ notify_list = self._get_notifications_list()
504+
505+ summary = 'Summary-Body'
506+ body = 'This is a superfluous notification'
507+
508+ notification = self._create_ephemeral_notification(summary, body)
509+ notification.show()
510+
511+ get_notification = lambda: notify_list.select_single('Notification')
512+ self.assertThat(get_notification, Eventually(NotEquals(None)))
513+ notification = get_notification()
514+ self._assert_notification(
515+ notification,
516+ summary,
517+ body,
518+ False,
519+ False,
520+ 1.0
521+ )
522+
523+ def test_summary_only(self):
524+ """Notification must display only the expected summary-text."""
525+ self.launch_unity()
526+ greeter = self.main_window.get_greeter()
527+ greeter.swipe()
528+
529+ notify_list = self._get_notifications_list()
530+
531+ summary = 'Summary-Only'
532+
533+ notification = self._create_ephemeral_notification(summary)
534+ notification.show()
535+
536+ get_notification = lambda: notify_list.select_single('Notification')
537+ self.assertThat(get_notification, Eventually(NotEquals(None)))
538+ notification = get_notification()
539+
540+ self._assert_notification(notification, summary, '', False, False, 1.0)
541+
542+ def test_update_notification_same_layout(self):
543+ """Notification must allow updating its contents while being displayed."""
544+ self.launch_unity()
545+ greeter = self.main_window.get_greeter()
546+ greeter.swipe()
547+
548+ notify_list = self._get_notifications_list()
549+
550+ summary = 'Initial notification'
551+ body = 'This is the original content of this notification-bubble.'
552+ icon_path = self._get_icon_path('avatars/funky.png')
553+
554+ notification = self._create_ephemeral_notification(
555+ summary,
556+ body,
557+ icon_path
558+ )
559+ notification.show()
560+
561+ get_notification = lambda: notify_list.select_single('Notification', summary=summary)
562+ self.assertThat(get_notification, Eventually(NotEquals(None)))
563+ self._assert_notification(
564+ get_notification(),
565+ summary,
566+ body,
567+ True,
568+ False,
569+ 1.0
570+ )
571+
572+ summary = 'Updated notification'
573+ body = 'Here the same bubble with new title- and body-text, even ' \
574+ 'the icon can be changed on the update.'
575+ icon_path = self._get_icon_path('avatars/amanda.png')
576+ notification.update(summary, body, icon_path)
577+ notification.show()
578+ self.assertThat(get_notification, Eventually(NotEquals(None)))
579+ self._assert_notification(get_notification(), summary, body)
580+
581+ def test_update_notification_layout_change(self):
582+ """Notification must allow updating its contents and layout while being displayed."""
583+ self.launch_unity()
584+ greeter = self.main_window.get_greeter()
585+ greeter.swipe()
586+
587+ notify_list = self._get_notifications_list()
588+
589+ summary = 'Initial layout'
590+ body = 'This bubble uses the icon-title-body layout with a ' \
591+ 'secondary icon.'
592+ icon_path = self._get_icon_path('avatars/anna_olsson.png')
593+ hint_icon = self._get_icon_path('applicationIcons/phone-app.png')
594+
595+ notification = self._create_ephemeral_notification(
596+ summary,
597+ body,
598+ icon_path
599+ )
600+ notification.set_hint_string(
601+ 'x-canonical-secondary-icon',
602+ hint_icon
603+ )
604+ notification.show()
605+
606+ get_notification = lambda: notify_list.select_single('Notification')
607+ self.assertThat(get_notification, Eventually(NotEquals(None)))
608+ self._assert_notification(
609+ get_notification(),
610+ summary,
611+ body,
612+ True,
613+ True,
614+ 1.0
615+ )
616+
617+ notification.clear_hints()
618+ summary = 'Updated layout'
619+ body = 'After the update we now have a bubble using the title-body ' \
620+ 'layout.'
621+ notification.update(summary, body, None)
622+ notification.show()
623+
624+ self.assertThat(get_notification, Eventually(NotEquals(None)))
625+ self._assert_notification(get_notification(), summary, body, False)
626+
627+ def test_append_hint(self):
628+ """Notification has to accumulate body-text using append-hint."""
629+ self.launch_unity()
630+ greeter = self.main_window.get_greeter()
631+ greeter.swipe()
632+
633+ notify_list = self._get_notifications_list()
634+
635+ summary = 'Cole Raby'
636+ body = 'Hey Bro Coly!'
637+ icon_path = self._get_icon_path('avatars/amanda.png')
638+ body_sum = body
639+ notification = self._create_ephemeral_notification(
640+ summary,
641+ body,
642+ icon_path,
643+ hints=[('x-canonical-append', 'true')]
644+ )
645+
646+ notification.show()
647+
648+ get_notification = lambda: notify_list.select_single('Notification')
649+ self.assertThat(get_notification, Eventually(NotEquals(None)))
650+ notification = get_notification()
651+ self._assert_notification(
652+ notification,
653+ summary,
654+ body_sum,
655+ True,
656+ False,
657+ 1.0
658+ )
659+
660+ bodies = [
661+ 'What\'s up dude?',
662+ 'Did you watch the air-race in Oshkosh last week?',
663+ 'Phil owned the place like no one before him!',
664+ 'Did really everything in the race work according to regulations?',
665+ 'Somehow I think to remember Burt Williams did cut corners and was not punished for this.',
666+ 'Hopefully the referees will watch the videos of the race.',
667+ 'Burt could get fined with US$ 50000 for that rule-violation :)'
668+ ]
669+
670+ for new_body in bodies:
671+ body = new_body
672+ body_sum += '\n' + body
673+ notification = self._create_ephemeral_notification(
674+ summary,
675+ body,
676+ icon_path,
677+ hints=[('x-canonical-append', 'true')]
678+ )
679+ notification.show()
680+ get_notification = lambda: notify_list.select_single(
681+ 'Notification'
682+ )
683+ self.assertThat(get_notification, Eventually(NotEquals(None)))
684+ notification = get_notification()
685+ self._assert_notification(
686+ notification,
687+ summary,
688+ body_sum,
689+ True,
690+ False,
691+ 1.0
692+ )
693+
694+ def _create_ephemeral_notification(
695+ self,
696+ summary="",
697+ body="",
698+ icon=None,
699+ hints=[],
700+ urgency="NORMAL"
701+ ):
702+ """Create an ephemeral (non-interactive) notification
703+
704+ :param summary: Summary text for the notification
705+ :param body: Body text to display in the notification
706+ :param icon: Path string to the icon to use
707+ :param hint_strings: List of tuples containing the 'name' and value
708+ for setting the hint strings for the notification
709+ :param urgency: Urgency string for the noticiation, either: 'LOW',
710+ 'NORMAL', 'CRITICAL'
711+
712+ """
713+ logger.info(
714+ "Creating ephemeral: summary(%s), body(%s), urgency(%r) "
715+ "and Icon(%s)",
716+ summary,
717+ body,
718+ urgency,
719+ icon
720+ )
721+
722+ n = Notify.Notification.new(summary, body, icon)
723+
724+ for hint in hints:
725+ key, value = hint
726+ n.set_hint_string(key, value)
727+ logger.info("Adding hint to notification: (%s, %s)", key, value)
728+ n.set_urgency(self._get_urgency(urgency))
729+
730+ return n
731+
732+ def _get_urgency(self, urgency):
733+ """Translates urgency string to enum."""
734+ _urgency_enums = {'LOW': Notify.Urgency.LOW,
735+ 'NORMAL': Notify.Urgency.NORMAL,
736+ 'CRITICAL': Notify.Urgency.CRITICAL}
737+ return _urgency_enums.get(urgency.upper())
tests/mocks/AccountsService/AccountsService.cppnew file+33
@@ -0,0 +1,33 @@
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+ * Author: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#include "AccountsService.h"
20+
21+AccountsService::AccountsService(QObject* parent)
22+ : QObject(parent)
23+{
24+}
25+
26+QVariant AccountsService::getUserProperty(const QString &, const QString &)
27+{
28+ return QVariant(false);
29+}
30+
31+void AccountsService::setUserProperty(const QString &, const QString &, const QVariant &)
32+{
33+}
tests/mocks/AccountsService/AccountsService.hnew file+38
@@ -0,0 +1,38 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Gerry Boland <gerry.boland@canonical.com>
17+ * Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#ifndef UNITY_MOCK_ACCOUNTSSERVICE_H
21+#define UNITY_MOCK_ACCOUNTSSERVICE_H
22+
23+#include <QObject>
24+#include <QString>
25+#include <QVariant>
26+
27+class AccountsService: public QObject
28+{
29+ Q_OBJECT
30+
31+public:
32+ explicit AccountsService(QObject *parent = 0);
33+
34+ Q_INVOKABLE QVariant getUserProperty(const QString &user, const QString &property);
35+ Q_INVOKABLE void setUserProperty(const QString &user, const QString &property, const QVariant &value);
36+};
37+
38+#endif
tests/mocks/AccountsService/CMakeLists.txtnew file+19
@@ -0,0 +1,19 @@
1+add_library(MockAccountsService-qml MODULE
2+ AccountsService.cpp
3+ plugin.cpp
4+ )
5+
6+qt5_use_modules(MockAccountsService-qml DBus Qml)
7+
8+# copy files into build directory for shadow builds
9+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/qmldir"
10+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
11+ )
12+
13+install(TARGETS MockAccountsService-qml
14+ DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/mocks/AccountsService
15+ )
16+
17+install(FILES qmldir
18+ DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/mocks/AccountsService
19+ )
tests/mocks/AccountsService/plugin.cppnew file+36
@@ -0,0 +1,36 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Gerry Boland <gerry.boland@canonical.com>
17+ * Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "plugin.h"
21+#include "AccountsService.h"
22+
23+#include <QtQml>
24+
25+static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
26+{
27+ Q_UNUSED(engine)
28+ Q_UNUSED(scriptEngine)
29+ return new AccountsService();
30+}
31+
32+void AccountsServicePlugin::registerTypes(const char *uri)
33+{
34+ Q_ASSERT(uri == QLatin1String("AccountsService"));
35+ qmlRegisterSingletonType<AccountsService>(uri, 0, 1, "AccountsService", service_provider);
36+}
tests/mocks/AccountsService/plugin.hnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Gerry Boland <gerry.boland@canonical.com>
17+ * Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#ifndef MOCK_ACCOUNTSSERVICE_PLUGIN_H
21+#define MOCK_ACCOUNTSSERVICE_PLUGIN_H
22+
23+#include <QQmlEngine>
24+#include <QQmlExtensionPlugin>
25+
26+class AccountsServicePlugin : public QQmlExtensionPlugin
27+{
28+ Q_OBJECT
29+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
30+
31+public:
32+ void registerTypes(const char *uri);
33+};
34+
35+#endif
tests/mocks/AccountsService/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module AccountsService
2+plugin MockAccountsService-qml
tests/mocks/CMakeLists.txt+1
@@ -1,3 +1,4 @@
1+add_subdirectory(AccountsService)
1add_subdirectory(GSettings.1.0)
2add_subdirectory(GSettings.1.0)
2add_subdirectory(HudClient)
3add_subdirectory(HudClient)
3add_subdirectory(libusermetrics)
4add_subdirectory(libusermetrics)
tests/mocks/GSettings.1.0/fake_gsettings.h+1−1
@@ -18,7 +18,7 @@
18#define FAKE_GSETTINGS_H
18#define FAKE_GSETTINGS_H
19
19
20#include <QList>
20#include <QList>
21−#include <QtQml>
21+#include <QObject>
22
22
23class GSettingsSchemaQml: public QObject
23class GSettingsSchemaQml: public QObject
24{
24{
tests/mocks/GSettings.1.0/plugin.cpp+1−1
@@ -17,7 +17,7 @@
17#include "plugin.h"
17#include "plugin.h"
18#include "fake_gsettings.h"
18#include "fake_gsettings.h"
19
19
20−#include <QtQml>
20+#include <QtQml/qqml.h>
21
21
22static QObject* controllerProvider(QQmlEngine* /* engine */, QJSEngine* /* scriptEngine */)
22static QObject* controllerProvider(QQmlEngine* /* engine */, QJSEngine* /* scriptEngine */)
23{
23{
tests/mocks/Powerd/plugin.cpp+1−1
@@ -19,7 +19,7 @@
19#include "plugin.h"
19#include "plugin.h"
20#include "Powerd.h"
20#include "Powerd.h"
21
21
22−#include <QtQml/QtQml>
22+#include <QtQml/qqml.h>
23
23
24static QObject *powerd_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
24static QObject *powerd_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
25{
25{
tests/mocks/Ubuntu/DownloadDaemonListener/plugin.cpp−1
@@ -17,7 +17,6 @@
17#include "plugin.h"
17#include "plugin.h"
18#include "MockDownloadTracker.h"
18#include "MockDownloadTracker.h"
19
19
20−#include <QtQml>
21#include <QtQml/QQmlContext>
20#include <QtQml/QQmlContext>
22#include <qqml.h>
21#include <qqml.h>
23
22
tests/mocks/Unity/Indicators/fakeplugin.cpp+1−1
@@ -17,7 +17,7 @@
17 */
17 */
18
18
19// Qt
19// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
21
21
22// self
22// self
23#include "fakeplugin.h"
23#include "fakeplugin.h"
tests/mocks/Unity/Launcher/MockLauncherModel.cpp+6
@@ -174,3 +174,9 @@ int MockLauncherModel::findApp(const QString &appId)
174 }
174 }
175 return -1;
175 return -1;
176}
176}
177+
178+void MockLauncherModel::setUser(const QString &username)
179+{
180+ Q_UNUSED(username)
181+ // TODO: implement this...
182+}
tests/mocks/Unity/Launcher/MockLauncherModel.h+1
@@ -43,6 +43,7 @@ public:
43 Q_INVOKABLE void pin(const QString &appId, int index = -1);
43 Q_INVOKABLE void pin(const QString &appId, int index = -1);
44 Q_INVOKABLE void requestRemove(const QString &appId);
44 Q_INVOKABLE void requestRemove(const QString &appId);
45 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
45 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
46+ Q_INVOKABLE void setUser(const QString &username);
46
47
47Q_SIGNALS:
48Q_SIGNALS:
48 void quickListTriggered(const QString &appId, int index);
49 void quickListTriggered(const QString &appId, int index);
tests/mocks/Unity/fake_unity_plugin.cpp+2−1
@@ -26,7 +26,8 @@
26
26
27// External
27// External
28#include <glib-object.h>
28#include <glib-object.h>
29+
29−#include <QtQml>
30+#include <QtQml/qqml.h>
30
31
31void FakeUnityPlugin::registerTypes(const char *uri)
32void FakeUnityPlugin::registerTypes(const char *uri)
32{
33{
tests/plugins/AccountsService/AccountsServer.cppnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "AccountsServer.h"
21+
22+AccountsServer::AccountsServer(QObject *parent)
23+ : QObject(parent)
24+{
25+}
26+
27+QDBusObjectPath AccountsServer::FindUserByName(const QString &user)
28+{
29+ if (user == "testuser") {
30+ return QDBusObjectPath("/user");
31+ } else {
32+ sendErrorReply(QDBusError::InvalidArgs, "Bad user");
33+ return QDBusObjectPath("/");
34+ }
35+}
tests/plugins/AccountsService/AccountsServer.hnew file+39
@@ -0,0 +1,39 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#ifndef UNITY_ACCOUNTSSERVER_H
21+#define UNITY_ACCOUNTSSERVER_H
22+
23+#include <QDBusContext>
24+#include <QDBusObjectPath>
25+#include <QObject>
26+#include <QString>
27+
28+class AccountsServer: public QObject, protected QDBusContext
29+{
30+ Q_OBJECT
31+
32+public:
33+ explicit AccountsServer(QObject *parent = 0);
34+
35+public Q_SLOTS:
36+ QDBusObjectPath FindUserByName(const QString &user);
37+};
38+
39+#endif
tests/plugins/AccountsService/CMakeLists.txtnew file+40
@@ -0,0 +1,40 @@
1+macro(make_dbus_class NAME INTERFACE)
2+ if(${CMAKE_CURRENT_SOURCE_DIR}/interfaces.xml IS_NEWER_THAN ${CMAKE_CURRENT_BINARY_DIR}/${NAME}Adaptor.h)
3+ execute_process(COMMAND qdbusxml2cpp -c ${NAME}Adaptor -a ${CMAKE_CURRENT_BINARY_DIR}/${NAME}Adaptor ${CMAKE_CURRENT_SOURCE_DIR}/interfaces.xml ${INTERFACE})
4+ endif()
5+endmacro(make_dbus_class)
6+
7+make_dbus_class(Accounts org.freedesktop.Accounts)
8+make_dbus_class(Properties org.freedesktop.DBus.Properties)
9+
10+include_directories(
11+ ${CMAKE_CURRENT_BINARY_DIR}
12+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService
13+ )
14+
15+add_definitions(-DSM_BUSNAME=sessionBus)
16+
17+add_executable(mock-server
18+ ${CMAKE_CURRENT_BINARY_DIR}/AccountsAdaptor.cpp
19+ ${CMAKE_CURRENT_BINARY_DIR}/PropertiesAdaptor.cpp
20+ server.cpp
21+ AccountsServer.cpp
22+ PropertiesServer.cpp
23+ )
24+qt5_use_modules(mock-server Core DBus)
25+
26+add_executable(test-accountsservice
27+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsService.cpp
28+ client.cpp
29+ )
30+qt5_use_modules(test-accountsservice Core DBus Test)
31+
32+add_test(NAME test-accountsservice
33+ COMMAND dbus-test-runner
34+ --task ${CMAKE_CURRENT_BINARY_DIR}/mock-server
35+ --task-name server
36+ --ignore-return
37+ --task ${CMAKE_CURRENT_BINARY_DIR}/test-accountsservice
38+ --task-name client
39+ --wait-for org.freedesktop.Accounts
40+ )
tests/plugins/AccountsService/PropertiesServer.cppnew file+45
@@ -0,0 +1,45 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "PropertiesServer.h"
21+
22+PropertiesServer::PropertiesServer(QObject *parent)
23+ : QObject(parent),
24+ edge_demo(true)
25+{
26+}
27+
28+QDBusVariant PropertiesServer::Get(const QString &interface, const QString &property)
29+{
30+ if (interface == "com.canonical.unity.AccountsService" && property == "demo-edges") {
31+ return QDBusVariant(QVariant(edge_demo));
32+ } else {
33+ sendErrorReply(QDBusError::InvalidArgs, "Bad interface or property");
34+ return QDBusVariant(QVariant());
35+ }
36+}
37+
38+void PropertiesServer::Set(const QString &interface, const QString &property, const QDBusVariant &variant)
39+{
40+ if (interface == "com.canonical.unity.AccountsService" && property == "demo-edges") {
41+ edge_demo = variant.variant().toBool();
42+ } else {
43+ sendErrorReply(QDBusError::InvalidArgs, "Bad interface or property");
44+ }
45+}
tests/plugins/AccountsService/PropertiesServer.hnew file+44
@@ -0,0 +1,44 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#ifndef UNITY_PROPERTIESSERVER_H
21+#define UNITY_PROPERTIESSERVER_H
22+
23+#include "PropertiesServer.h"
24+#include <QDBusContext>
25+#include <QDBusVariant>
26+#include <QObject>
27+#include <QString>
28+
29+class PropertiesServer: public QObject, protected QDBusContext
30+{
31+ Q_OBJECT
32+
33+public:
34+ explicit PropertiesServer(QObject *parent = 0);
35+
36+public Q_SLOTS:
37+ QDBusVariant Get(const QString &interface, const QString &property);
38+ void Set(const QString &interface, const QString &property, const QDBusVariant &variant);
39+
40+private:
41+ bool edge_demo;
42+};
43+
44+#endif
tests/plugins/AccountsService/client.cppnew file+49
@@ -0,0 +1,49 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "AccountsService.h"
21+#include <QSignalSpy>
22+#include <QTest>
23+
24+class AccountsServiceTest : public QObject
25+{
26+ Q_OBJECT
27+
28+private Q_SLOTS:
29+
30+ void testInvalids()
31+ {
32+ // Test various invalid calls
33+ AccountsService session;
34+ QCOMPARE(session.getUserProperty("NOPE", "demo-edges"), QVariant());
35+ QCOMPARE(session.getUserProperty("testuser", "NOPE"), QVariant());
36+ }
37+
38+ void testGetSet()
39+ {
40+ AccountsService session;
41+ QCOMPARE(session.getUserProperty("testuser", "demo-edges"), QVariant(true));
42+ session.setUserProperty("testuser", "demo-edges", QVariant(false));
43+ QCOMPARE(session.getUserProperty("testuser", "demo-edges"), QVariant(false));
44+ }
45+};
46+
47+QTEST_MAIN(AccountsServiceTest)
48+
49+#include "client.moc"
tests/plugins/AccountsService/interfaces.xmlnew file+20
@@ -0,0 +1,20 @@
1+<node>
2+ <interface name="org.freedesktop.DBus.Properties">
3+ <method name="Get">
4+ <arg name="interface" type="s" direction="in" />
5+ <arg name="property" type="s" direction="in" />
6+ <arg name="value" type="v" direction="out" />
7+ </method>
8+ <method name="Set">
9+ <arg name="interface" type="s" direction="in" />
10+ <arg name="property" type="s" direction="in" />
11+ <arg name="value" type="v" direction="in" />
12+ </method>
13+ </interface>
14+ <interface name="org.freedesktop.Accounts">
15+ <method name="FindUserByName">
16+ <arg name="user" type="s" direction="in" />
17+ <arg name="path" type="o" direction="out" />
18+ </method>
19+ </interface>
20+</node>
tests/plugins/AccountsService/server.cppnew file+46
@@ -0,0 +1,46 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "AccountsAdaptor.h"
21+#include "AccountsServer.h"
22+#include "PropertiesAdaptor.h"
23+#include "PropertiesServer.h"
24+#include <QCoreApplication>
25+
26+int main(int argc, char *argv[])
27+{
28+ QCoreApplication a(argc, argv);
29+
30+ auto accounts = new AccountsServer();
31+ new AccountsAdaptor(accounts);
32+
33+ auto props = new PropertiesServer();
34+ new PropertiesAdaptor(props);
35+
36+ // We use the session bus for testing. The real plugin uses the system bus
37+ auto connection = QDBusConnection::sessionBus();
38+ if (!connection.registerObject("/org/freedesktop/Accounts", accounts))
39+ return 1;
40+ if (!connection.registerObject("/user", props))
41+ return 1;
42+ if (!connection.registerService("org.freedesktop.Accounts"))
43+ return 1;
44+
45+ return a.exec();
46+}
tests/plugins/CMakeLists.txt+3−2
@@ -1,4 +1,5 @@
1−add_subdirectory(Utils)
1+add_subdirectory(AccountsService)
2+add_subdirectory(ListViewWithPageHeader)
2add_subdirectory(Ubuntu)
3add_subdirectory(Ubuntu)
3add_subdirectory(Unity)
4add_subdirectory(Unity)
4−add_subdirectory(ListViewWithPageHeader)
5+add_subdirectory(Utils)
tests/qmltests/CMakeLists.txt+1
@@ -30,6 +30,7 @@ add_qml_test(. Shell IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_
30 ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
30 ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
31add_manual_qml_test(Components DragHandle IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
31add_manual_qml_test(Components DragHandle IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
32add_qml_test(Components DraggingArea)
32add_qml_test(Components DraggingArea)
33+add_qml_test(Components EdgeDemoOverlay)
33add_qml_test(Components FilterGrid IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins)
34add_qml_test(Components FilterGrid IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins)
34add_qml_test(Components ResponsiveFlowView)
35add_qml_test(Components ResponsiveFlowView)
35add_qml_test(Components ResponsiveGridView)
36add_qml_test(Components ResponsiveGridView)
tests/qmltests/Components/tst_EdgeDemoOverlay.qmlnew file+123
@@ -0,0 +1,123 @@
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 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 Unity.Test 0.1 as UT
20+import "../../../Components"
21+
22+Item {
23+ id: root
24+ width: boxWidth * 3
25+ height: boxHeight * 2
26+
27+ property int boxWidth: 250
28+ property int boxHeight: 250
29+
30+ EdgeDemoOverlay {
31+ id: top
32+ edge: "top"
33+ title: "Top"
34+ text: "Displayed on top left"
35+ anchors.left: parent.left
36+ anchors.top: parent.top
37+ width: boxWidth
38+ height: boxHeight
39+ }
40+
41+ EdgeDemoOverlay {
42+ id: right
43+ edge: "right"
44+ title: "Right"
45+ text: "Displayed on top right"
46+ anchors.right: parent.right
47+ anchors.top: parent.top
48+ width: boxWidth
49+ height: boxHeight
50+ }
51+
52+ EdgeDemoOverlay {
53+ id: left
54+ edge: "left"
55+ title: "Left"
56+ text: "Displayed on bottom right"
57+ anchors.right: parent.right
58+ anchors.bottom: parent.bottom
59+ width: boxWidth
60+ height: boxHeight
61+ available: false
62+ }
63+
64+ EdgeDemoOverlay {
65+ id: bottom
66+ edge: "bottom"
67+ title: "Bottom"
68+ text: "Displayed on bottom left"
69+ anchors.left: parent.left
70+ anchors.bottom: parent.bottom
71+ width: boxWidth
72+ height: boxHeight
73+ }
74+
75+ EdgeDemoOverlay {
76+ id: none
77+ edge: "none"
78+ title: "None"
79+ text: "Displayed on top middle"
80+ anchors.horizontalCenter: parent.horizontalCenter
81+ anchors.top: parent.top
82+ width: boxWidth
83+ height: boxHeight
84+ }
85+
86+ SignalSpy {
87+ id: signalSpy
88+ }
89+
90+ UT.UnityTestCase {
91+ name: "EdgeDemoOverlay"
92+ when: windowShown
93+
94+ function test_animations() {
95+ compare(right.running, true)
96+
97+ compare(left.running, false)
98+ left.available = true
99+ compare(left.running, true)
100+ }
101+
102+ function test_skip() {
103+ signalSpy.target = bottom
104+ signalSpy.signalName = "skip"
105+ signalSpy.clear()
106+ var bottomSkip = findChild(bottom, "skipLabel")
107+ mousePress(bottomSkip, 1, 1)
108+ mouseRelease(bottomSkip, 1, 1)
109+ signalSpy.wait()
110+ compare(bottom.available, false)
111+
112+ // Test that the 'none' edge skips anywhere
113+ signalSpy.target = none
114+ signalSpy.clear()
115+ var backgroundShade = findChild(none, "backgroundShade")
116+ tryCompare(none, "opacity", 1)
117+ mousePress(backgroundShade, 1, 1)
118+ mouseRelease(backgroundShade, 1, 1)
119+ signalSpy.wait()
120+ compare(none.available, false)
121+ }
122+ }
123+}
tests/qmltests/Launcher/tst_Launcher.qml+12−10
@@ -249,11 +249,10 @@ Item {
249 name: "LauncherInit"
249 name: "LauncherInit"
250 when: windowShown
250 when: windowShown
251
251
252− /*
252+ function initTestCase() {
253− * FIXME: There is a bug in ListView which makes it snap to an item
253+ var listView = findChild(launcher, "launcherListView");
254− * instead of the edge at startup. Enable this test once our patch for
254+ tryCompare(listView, "flicking", false)
255− * ListView has landed upstream.
255+ }
256− * https://bugreports.qt-project.org/browse/QTBUG-32251
257
256
258 function test_initFirstUnfolded() {
257 function test_initFirstUnfolded() {
259
258
@@ -267,7 +266,6 @@ Item {
267 // Now do check that snapping is in fact enabled
266 // Now do check that snapping is in fact enabled
268 compare(listView.snapMode, ListView.SnapToItem, "Snapping is not enabled");
267 compare(listView.snapMode, ListView.SnapToItem, "Snapping is not enabled");
269 }
268 }
270− */
271 }
269 }
272
270
273 UT.UnityTestCase {
271 UT.UnityTestCase {
@@ -285,12 +283,16 @@ Item {
285
283
286 function test_dragndrop(data) {
284 function test_dragndrop(data) {
287 revealer.dragLauncherIntoView();
285 revealer.dragLauncherIntoView();
288− var draggedItem = findChild(launcher, "launcherDelegate5")
286+ var draggedItem = findChild(launcher, "launcherDelegate4")
289 var item0 = findChild(launcher, "launcherDelegate0")
287 var item0 = findChild(launcher, "launcherDelegate0")
290 var fakeDragItem = findChild(launcher, "fakeDragItem")
288 var fakeDragItem = findChild(launcher, "fakeDragItem")
291 var initialItemHeight = draggedItem.height
289 var initialItemHeight = draggedItem.height
292− var item5 = LauncherModel.get(5).appId
293 var item4 = LauncherModel.get(4).appId
290 var item4 = LauncherModel.get(4).appId
291+ var item3 = LauncherModel.get(3).appId
292+
293+ var listView = findChild(launcher, "launcherListView");
294+ listView.flick(0, units.gu(200));
295+ tryCompare(listView, "flicking", false);
294
296
295 // Initial state
297 // Initial state
296 compare(draggedItem.itemOpacity, 1, "Item's opacity is not 1 at beginning")
298 compare(draggedItem.itemOpacity, 1, "Item's opacity is not 1 at beginning")
@@ -333,8 +335,8 @@ Item {
333 }
335 }
334
336
335 waitForRendering(draggedItem)
337 waitForRendering(draggedItem)
336− compare(LauncherModel.get(5).appId, item4)
338+ compare(LauncherModel.get(4).appId, item3)
337− compare(LauncherModel.get(4).appId, item5)
339+ compare(LauncherModel.get(3).appId, item4)
338 }
340 }
339
341
340 // Releasing and checking if initial values are restored
342 // Releasing and checking if initial values are restored
tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.h+1−1
@@ -19,7 +19,7 @@
19
19
20#include <QtCore/QObject>
20#include <QtCore/QObject>
21#include <QtTest/QTest>
21#include <QtTest/QTest>
22−#include <QtQml/QtQml>
22+#include <QtQml/qqml.h>
23
23
24class TouchEventSequenceWrapper : public QObject
24class TouchEventSequenceWrapper : public QObject
25{
25{
tests/utils/modules/Unity/Test/UnityTestCase.qml+21−2
@@ -69,9 +69,28 @@ TestCase {
69 }
69 }
70
70
71
71
72− // Find an object with the given name recursively, starting
72+ // Find an object with the given name in the children tree of "obj"
73− // at the given object "obj"
74 function findChild(obj,objectName) {
73 function findChild(obj,objectName) {
74+ var childs = new Array(0);
75+ childs.push(obj)
76+ while (childs.length > 0) {
77+ if (childs[0].objectName == objectName) {
78+ return childs[0]
79+ }
80+ for (var i in childs[0].children) {
81+ childs.push(childs[0].children[i])
82+ }
83+ childs.splice(0, 1);
84+ }
85+ return undefined;
86+ }
87+
88+ // Find an object with the given name in the children tree of "obj"
89+ // Including invisible children like animations, timers etc.
90+ // Note: you should use findChild if you're not sure you need this
91+ // as this tree is much bigger and might contain stuff that goes
92+ // away randomly.
93+ function findInvisibleChild(obj,objectName) {
75 var childs = new Array(0);
94 var childs = new Array(0);
76 childs.push(obj)
95 childs.push(obj)
77 while (childs.length > 0) {
96 while (childs.length > 0) {