on xenial help sign in
Merge from trunk
commit78ccb79aff1a7ff616399061c596f3b5faf3ef88 authorMichael Terry <michael.terry@canonical.com> dateFri 30 Aug 2013, 15:13 (13 years ago) parent9990414a81cbd7
129 files changed+4685−2098
Bottombar/Bottombar.qml+60−6 Bottombar/HudButton.qml+8−8 Components/EdgeDemo.qml+174 Components/EdgeDemoOverlay.qml+256 Dash/Apps/FrequentlyUsedAppsModel.qml+38−8 Dash/GenericScopeView.qml+6 Greeter/Greeter.qml+6−2 Greeter/GreeterContent.qml+8−1 Greeter/GreeterEdgeDemo.qml+98 Greeter/Lockscreen.qml+8 GreeterShell.qml+14−1 Launcher/Launcher.qml+12−2 Launcher/LauncherDelegate.qml+1−1 Launcher/LauncherPanel.qml+20−2 Launcher/QuicklistForegroundStyle.qml+23 Launcher/graphics/quicklist_tooltip@30.png Panel/Indicators.qml+4−2 Panel/IndicatorsDataModel.qml+6 Shell.qml+29−5 debian/changelog+155 debian/rules+5 debian/unity8-private.install+5 graphics/applicationIcons/contacts-app@18.png graphics/applicationIcons/messages-app@18.png graphics/applicationIcons/system-settings@18.png plugins/AccountsService/50-com.canonical.unity.AccountsService.pkla+6 plugins/AccountsService/AccountsService.cpp+74 plugins/AccountsService/AccountsService.h+44 plugins/AccountsService/CMakeLists.txt+36 plugins/AccountsService/com.canonical.unity.AccountsService.policy+24 plugins/AccountsService/com.canonical.unity.AccountsService.xml+24 plugins/AccountsService/plugin.cpp+37 plugins/AccountsService/plugin.h+34 plugins/AccountsService/qmldir+3 plugins/CMakeLists.txt+1 plugins/Unity/CMakeLists.txt+1 plugins/Unity/Indicators/indicatorsmodel.cpp+2−2 plugins/Unity/Launcher/CMakeLists.txt+5−1 plugins/Unity/Launcher/backend/launcherbackend.cpp+171−55 plugins/Unity/Launcher/backend/launcherbackend.h+38−5 plugins/Unity/Launcher/launchermodel.cpp+4−3 plugins/Unity/Launcher/launchermodel.h+1−1 plugins/Unity/checkoptionfilter.cpp+3−1 plugins/Unity/filter.h+3−2 plugins/Unity/genericoptionsmodel.cpp+20−3 plugins/Unity/genericoptionsmodel.h+4−2 plugins/Unity/multirangefilter.cpp+3−1 plugins/Unity/radiooptionfilter.cpp+3−1 plugins/Unity/ratingoptionsmodel.cpp+3−3 plugins/Unity/ratingoptionsmodel.h+1−1 plugins/Unity/ratingsfilter.cpp+2−1 plugins/Unity/showallfilteroption.cpp+60 plugins/Unity/showallfilteroption.h+51 plugins/Unity/unityoptionsmodel.cpp+5−4 plugins/Unity/unityoptionsmodel.h+2−1 po/ar.po+53−45 po/az.po+53−45 po/bg.po+53−45 po/ca.po+53−45 po/de.po+53−45 po/el.po+53−45 po/en_AU.po+53−45 po/en_GB.po+53−45 po/eo.po+53−45 po/es.po+53−45 po/fi.po+53−45 po/fo.po+53−45 po/fr.po+53−45 po/gl.po+53−45 po/he.po+53−45 po/hr.po+53−45 po/hu.po+53−45 po/hy.po+53−45 po/id.po+53−45 po/it.po+53−45 po/ja.po+53−45 po/kn.po+53−45 po/ko.po+53−45 po/ky.po+53−45 po/lv.po+53−45 po/my.po+53−45 po/nb.po+53−45 po/nl.po+53−45 po/pl.po+53−45 po/pt_BR.po+53−45 po/ro.po+53−45 po/ru.po+53−45 po/si.po+53−45 po/sl.po+53−45 po/sr.po+53−45 po/sv.po+53−45 po/te.po+53−45 po/tr.po+53−45 po/ug.po+53−45 po/uk.po+53−45 po/unity8.pot+51−43 po/zh_CN.po+53−45 po/zh_TW.po+53−45 tests/autopilot/unity8/shell/tests/test_lock_screen.py+2 tests/mocks/AccountsService/AccountsService.cpp+33 tests/mocks/AccountsService/AccountsService.h+38 tests/mocks/AccountsService/CMakeLists.txt+19 tests/mocks/AccountsService/plugin.cpp+36 tests/mocks/AccountsService/plugin.h+35 tests/mocks/AccountsService/qmldir+2 tests/mocks/CMakeLists.txt+1 tests/mocks/Unity/Launcher/CMakeLists.txt+2 tests/mocks/Unity/Launcher/MockLauncherItem.cpp+1−1 tests/plugins/AccountsService/AccountsServer.cpp+35 tests/plugins/AccountsService/AccountsServer.h+39 tests/plugins/AccountsService/CMakeLists.txt+40 tests/plugins/AccountsService/PropertiesServer.cpp+45 tests/plugins/AccountsService/PropertiesServer.h+44 tests/plugins/AccountsService/client.cpp+49 tests/plugins/AccountsService/interfaces.xml+20 tests/plugins/AccountsService/server.cpp+46 tests/plugins/CMakeLists.txt+3−2 tests/plugins/Unity/CMakeLists.txt+1 tests/plugins/Unity/Launcher/CMakeLists.txt+22 tests/plugins/Unity/Launcher/abs-icon.desktop+3 tests/plugins/Unity/Launcher/launcherbackendtest.cpp+94 tests/plugins/Unity/Launcher/no-icon.desktop+2 tests/plugins/Unity/Launcher/no-name.desktop+2 tests/plugins/Unity/Launcher/rel-icon.desktop+3 tests/plugins/Unity/filtersbindingstest.cpp+61−30 tests/plugins/Unity/filtersbindingstest.h+1−1 tests/qmltests/CMakeLists.txt+1 tests/qmltests/Components/tst_EdgeDemoOverlay.qml+123 tests/qmltests/Launcher/tst_Launcher.qml+4−6
Bottombar/Bottombar.qml+60−6
@@ -18,6 +18,7 @@ import QtQuick 2.0
1818import "../Components"
1919import "../Components/Math.js" as MathLocal
2020import Unity 0.1
21+import Ubuntu.Application 0.1
2122import Ubuntu.Gestures 0.1
2223
2324Item {
@@ -28,15 +29,46 @@ Item {
2829
2930 property variant theHud
3031 property bool enabled: false
32+ property bool preventHiding: dragArea.dragging
3133 readonly property real bottomEdgeButtonCenterDistance: units.gu(34)
3234
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+ }
3462
3563 HudButton {
3664 id: hudButton
3765
38− x: MathLocal.clamp(dragArea.touchStartX - (width / 2), 0, bottombar.width - width)
66+ readonly property bool centeredHud: parent.width < units.gu(68) // Nexus 7 has 67 gu width
67+
68+ x: centeredHud ? parent.width / 2 - width / 2 : MathLocal.clamp(dragArea.touchStartX - (width / 2), 0, bottombar.width - width)
3969 y: bottombar.height - bottomEdgeButtonCenterDistance - (height / 2) - bottomMargin
70+ z: 1
71+ visible: opacity != 0
4072
4173 mouseOver: {
4274 if (dragArea.status === DirectionalDragArea.Recognized) {
@@ -55,13 +87,18 @@ Item {
5587 }
5688
5789 Behavior on opacity {
58− NumberAnimation{ duration: 200; easing.type: Easing.OutCubic}
90+ NumberAnimation{duration: 200; easing.type: Easing.OutCubic}
5991 }
6092 }
6193
6294 Connections {
6395 target: theHud
64− onShownChanged: bottomBarVisibilityCommunicatorShell.forceHidden = theHud.shown
96+ onShownChanged: {
97+ bottomBarVisibilityCommunicatorShell.forceHidden = theHud.shown
98+ if (theHud.shown) {
99+ bottombar.state = "hidden"
100+ }
101+ }
65102 }
66103
67104 EdgeDragArea {
@@ -70,6 +107,7 @@ Item {
70107 height: distanceThreshold
71108 anchors.bottom: parent.bottom
72109
110+ distanceThreshold: units.gu(8)
73111 enabled: !theHud.shown && bottombar.enabled && applicationIsOnForeground
74112 direction: Direction.Upwards
75113
@@ -84,12 +122,29 @@ Item {
84122 }
85123 }
86124 } else if (status === DirectionalDragArea.Undecided) {
87− touchStartX = touchX
125+ if (!hudButton.centeredHud) {
126+ touchStartX = touchX
127+ }
128+ } else if (status === DirectionalDragArea.Recognized) {
129+ bottombar.state = "shown"
88130 }
89131 previousStatus = status
90132 }
91133 }
92134
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+
93148 states: [
94149 State {
95150 name: "hidden"
@@ -102,5 +157,4 @@ Item {
102157 PropertyChanges { target: hudButton; bottomMargin: units.gu(0)}
103158 }
104159 ]
105−
106160}
Bottombar/HudButton.qml+8−8
@@ -33,24 +33,24 @@ Item {
3333
3434 Item {
3535 id: hudButton
36− property alias actionButton: actionButton
3736
3837 anchors.centerIn: parent
3938 height: units.gu(12)
4039 width: height
41− opacity: item.mouseOver ? 1 : 0.7
42− scale: item.mouseOver ? scaleOnMouseOver : 1
40+ opacity: item.mouseOver || abstractButton.pressed ? 1 : 0.7
41+ scale: item.mouseOver || abstractButton.pressed ? scaleOnMouseOver : 1
4342 Behavior on opacity {NumberAnimation{duration: 200; easing.type: Easing.OutQuart}}
4443 Behavior on scale {NumberAnimation{duration: 200; easing.type: Easing.OutQuart}}
4544
46− UbuntuShape {
47− id: actionButton
45+ AbstractButton {
46+ id: abstractButton
4847 anchors.fill: parent
49−
50− borderSource: ""
51− image: Image {
48+ style: Image {
49+ anchors.fill: parent
5250 source: "graphics/hud_invoke_button_active.png"
5351 }
52+
53+ onClicked: item.clicked()
5454 }
5555
5656 Image {
Components/EdgeDemo.qmlnew file+174
@@ -0,0 +1,174 @@
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 QtQuick 2.0
19+
20+Item {
21+ id: demo
22+
23+ property Item dash
24+ property Item launcher
25+ property Item indicators
26+ property Item underlay
27+
28+ property bool launcherEnabled: true
29+ property bool dashEnabled: true
30+ property bool panelEnabled: true
31+ property bool panelContentEnabled: true
32+
33+ property bool paused: false
34+
35+ onPausedChanged: {
36+ if (d.topEdgeDemo) d.topEdgeDemo.paused = paused
37+ if (d.bottomEdgeDemo) d.bottomEdgeDemo.paused = paused
38+ if (d.leftEdgeDemo) d.leftEdgeDemo.paused = paused
39+ if (d.finalEdgeDemo) d.finalEdgeDemo.paused = paused
40+ }
41+
42+ function hideEdgeDemoInShell() {
43+ AccountsService.setUserProperty(user, "demo-edges", false);
44+ d.showEdgeDemo = false;
45+ stopDemo();
46+ }
47+
48+ function stopDemo() {
49+ launcherEnabled = true
50+ dashEnabled = true
51+ panelEnabled = true
52+ panelContentEnabled = true
53+ if (d.topEdgeDemo) d.topEdgeDemo.destroy()
54+ if (d.bottomEdgeDemo) d.bottomEdgeDemo.destroy()
55+ if (d.leftEdgeDemo) d.leftEdgeDemo.destroy()
56+ if (d.finalEdgeDemo) d.finalEdgeDemo.destroy()
57+ }
58+
59+ QtObject {
60+ id: d
61+ property Component overlay
62+ property QtObject topEdgeDemo
63+ property QtObject bottomEdgeDemo
64+ property QtObject leftEdgeDemo
65+ property QtObject finalEdgeDemo
66+ property bool showEdgeDemo: AccountsService.getUserProperty(user, "demo-edges")
67+
68+ onShowEdgeDemoChanged: {
69+ if (!d.overlay && d.showEdgeDemo) {
70+ d.overlay = Qt.createComponent("EdgeDemoOverlay.qml")
71+ startTopEdgeDemo()
72+ }
73+ }
74+ }
75+
76+ function startTopEdgeDemo() {
77+ demo.panelEnabled = true;
78+ if (demo.dash && demo.underlay) {
79+ d.topEdgeDemo = d.overlay.createObject(demo.underlay, {
80+ "edge": "top",
81+ "title": i18n.tr("Top edge"),
82+ "text": i18n.tr("Try swiping from the top edge to access the indicators"),
83+ "anchors.fill": demo.dash,
84+ });
85+ }
86+ if (d.topEdgeDemo) {
87+ d.topEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
88+ } else {
89+ stopDemo();
90+ }
91+ }
92+
93+ Connections {
94+ target: demo.indicators
95+ onFullyOpenedChanged: {
96+ if (d.topEdgeDemo && d.topEdgeDemo.available && demo.indicators.fullyOpened) {
97+ d.topEdgeDemo.hideNow()
98+ startBottomEdgeDemo()
99+ }
100+ }
101+ }
102+
103+ function startBottomEdgeDemo() {
104+ if (demo.indicators) {
105+ d.bottomEdgeDemo = d.overlay.createObject(demo.indicators, {
106+ "edge": "bottom",
107+ "title": i18n.tr("Close"),
108+ "text": i18n.tr("Swipe up again to close the settings screen"),
109+ "anchors.fill": demo.indicators,
110+ });
111+ }
112+ if (d.bottomEdgeDemo) {
113+ d.bottomEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
114+ } else {
115+ stopDemo();
116+ }
117+ }
118+
119+ Connections {
120+ target: demo.indicators
121+ onPartiallyOpenedChanged: {
122+ if (d.bottomEdgeDemo && d.bottomEdgeDemo.available && !demo.indicators.partiallyOpened && !demo.indicators.fullyOpened) {
123+ d.bottomEdgeDemo.hideNow()
124+ startLeftEdgeDemo()
125+ }
126+ }
127+ }
128+
129+ function startLeftEdgeDemo() {
130+ demo.panelEnabled = false;
131+ demo.launcherEnabled = true;
132+ if (demo.dash && demo.underlay) {
133+ d.leftEdgeDemo = d.overlay.createObject(demo.underlay, {
134+ "edge": "left",
135+ "title": i18n.tr("Left edge"),
136+ "text": i18n.tr("Swipe from the left to reveal the launcher for quick access to apps"),
137+ "anchors.fill": demo.dash,
138+ });
139+ }
140+ if (d.leftEdgeDemo) {
141+ d.leftEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
142+ } else {
143+ stopDemo();
144+ }
145+ }
146+
147+ Connections {
148+ target: demo.launcher
149+ onStateChanged: {
150+ if (d.leftEdgeDemo && d.leftEdgeDemo.available && launcher.state == "visible") {
151+ d.leftEdgeDemo.hide()
152+ launcher.hide()
153+ startFinalEdgeDemo()
154+ }
155+ }
156+ }
157+
158+ function startFinalEdgeDemo() {
159+ demo.launcherEnabled = false;
160+ if (demo.dash && demo.underlay) {
161+ d.finalEdgeDemo = d.overlay.createObject(demo.underlay, {
162+ "edge": "none",
163+ "title": i18n.tr("Well done"),
164+ "text": i18n.tr("You have now mastered the edge gestures and can start using the phone"),
165+ "anchors.fill": demo.dash,
166+ });
167+ }
168+ if (d.finalEdgeDemo) {
169+ d.finalEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
170+ } else {
171+ stopDemo();
172+ }
173+ }
174+}
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
1818
1919ListModel {
2020 ListElement {
21− uri: "application:///usr/share/applications/camera-app.desktop"
22− icon: "../../graphics/applicationIcons/camera.png"
21+ uri: "application:///usr/share/applications/dialer-app.desktop"
22+ icon: "../../graphics/applicationIcons/phone-app.png"
2323 category: 0
2424 mimetype: "application/x-desktop"
25− title: "Camera"
25+ title: "Dialer"
2626 comment: ""
27− dndUri: "file:///usr/share/applications/camera-app.desktop"
27+ dndUri: "file:///usr/share/applications/dialer-app.desktop"
2828 metadata: ""
2929 }
3030 ListElement {
31− uri: "application:///usr/share/applications/phone-app.desktop"
32− icon: "../../graphics/applicationIcons/phone-app.png"
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"
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"
3353 category: 0
3454 mimetype: "application/x-desktop"
35− title: "Phone"
55+ title: "Camera"
3656 comment: ""
37− dndUri: "file:///usr/share/applications/phone-app.desktop"
57+ dndUri: "file:///usr/share/applications/camera-app.desktop"
3858 metadata: ""
3959 }
4060 ListElement {
@@ -77,4 +97,14 @@ ListModel {
7797 dndUri: "file:///usr/share/applications/gmail-webapp.desktop"
7898 metadata: ""
7999 }
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+ }
80110}
Dash/GenericScopeView.qml+6
@@ -80,6 +80,12 @@ ScopeView {
8080 item.model = results
8181 }
8282 item.objectName = categoryId
83+ if (item.expandable) {
84+ var shouldFilter = index != categoryView.expandedIndex;
85+ if (shouldFilter != item.filter) {
86+ item.filter = shouldFilter;
87+ }
88+ }
8389 }
8490
8591 Connections {
Greeter/Greeter.qml+6−2
@@ -44,6 +44,8 @@ Showable {
4444 readonly property bool rightTeaserPressed: greeterContentLoader.status == Loader.Ready &&
4545 greeterContentLoader.item.rightTeaserPressed
4646
47+ readonly property int currentIndex: greeterContentLoader.currentIndex
48+
4749 signal selected(int uid)
4850 signal unlocked(int uid)
4951
@@ -63,11 +65,13 @@ Showable {
6365
6466 source: required ? "GreeterContent.qml" : ""
6567
66−
6768 Connections {
6869 target: greeterContentLoader.item
6970
70− onSelected: greeter.selected(uid);
71+ onSelected: {
72+ greeter.selected(uid);
73+ greeterContentLoader.currentIndex = uid;
74+ }
7175 onUnlocked: greeter.unlocked(uid);
7276 }
7377 }
Greeter/GreeterContent.qml+8−1
@@ -23,7 +23,7 @@ MouseArea {
2323 id: root
2424 anchors.fill: parent
2525
26− property bool ready: wallpaper.status == Image.Ready
26+ property bool ready: wallpaper.source == "" || wallpaper.status == Image.Ready || wallpaper.status == Image.Error
2727 property bool leftTeaserPressed: teasingMouseArea.pressed &&
2828 teasingMouseArea.mouseX < teasingMouseArea.width / 2
2929 property bool rightTeaserPressed: teasingMouseArea.pressed &&
@@ -32,6 +32,13 @@ MouseArea {
3232 signal selected(int uid)
3333 signal unlocked(int uid)
3434
35+ Rectangle {
36+ // In case wallpaper fails to load
37+ id: wallpaperBackup
38+ anchors.fill: parent
39+ color: "black"
40+ }
41+
3542 CrossFadeImage {
3643 id: wallpaper
3744
Greeter/GreeterEdgeDemo.qmlnew file+98
@@ -0,0 +1,98 @@
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+
26+ property bool active: true
27+ property bool paused: false
28+
29+ onPausedChanged: {
30+ if (d.rightEdgeDemo) d.rightEdgeDemo.paused = paused
31+ }
32+
33+ function hideEdgeDemoInShell() {
34+ var user = LightDM.Users.data(greeter.currentIndex, LightDM.UserRoles.NameRole);
35+ AccountsService.setUserProperty(user, "demo-edges", false);
36+ }
37+
38+ function hideEdgeDemoInGreeter() {
39+ AccountsService.setUserProperty("lightdm", "demo-edges", false);
40+ d.showEdgeDemoInGreeter = false;
41+ stopDemo();
42+ }
43+
44+ function hideEdgeDemos() {
45+ hideEdgeDemoInGreeter();
46+ hideEdgeDemoInShell();
47+ }
48+
49+ function stopDemo() {
50+ active = false
51+ if (d.rightEdgeDemo) d.rightEdgeDemo.destroy()
52+ }
53+
54+ QtObject {
55+ id: d
56+ property Component overlay
57+ property QtObject rightEdgeDemo
58+ property bool showEdgeDemoInGreeter: AccountsService.getUserProperty("lightdm", "demo-edges")
59+
60+ onShowEdgeDemoInGreeterChanged: {
61+ if (!d.overlay && d.showEdgeDemoInGreeter) {
62+ d.overlay = Qt.createComponent("EdgeDemoOverlay.qml")
63+ startRightEdgeDemo()
64+ }
65+ }
66+ }
67+
68+ function startRightEdgeDemo() {
69+ active = true;
70+ if (demo.greeter) {
71+ d.rightEdgeDemo = d.overlay.createObject(demo.greeter, {
72+ "edge": "right",
73+ "title": i18n.tr("Right edge"),
74+ "text": i18n.tr("Try swiping from the right edge to unlock the phone"),
75+ "anchors.fill": demo.greeter,
76+ });
77+ }
78+ if (d.rightEdgeDemo) {
79+ d.rightEdgeDemo.onSkip.connect(demo.hideEdgeDemos)
80+ } else {
81+ stopDemo();
82+ }
83+ }
84+
85+ Connections {
86+ target: demo.greeter
87+
88+ function hide() {
89+ if (d.rightEdgeDemo && d.rightEdgeDemo.available) {
90+ d.rightEdgeDemo.hide()
91+ hideEdgeDemoInGreeter()
92+ }
93+ }
94+
95+ onUnlocked: hide()
96+ onShownChanged: if (!greeter.shown) hide()
97+ }
98+}
Greeter/Lockscreen.qml+8
@@ -53,7 +53,15 @@ Showable {
5353 pinPadLoader.resetting = false;
5454 }
5555
56+ Rectangle {
57+ // In case wallpaper fails to load or is undefined
58+ id: wallpaperBackup
59+ anchors.fill: parent
60+ color: "black"
61+ }
62+
5663 Image {
64+ id: wallpaper
5765 anchors.fill: parent
5866 source: root.required ? root.background : ""
5967 fillMode: Image.PreserveAspectCrop
GreeterShell.qml+14−1
@@ -50,6 +50,7 @@ BasicShell {
5050 Component.onCompleted: {
5151 if (LightDM.Users.count == 1) {
5252 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole))
53+ greeter.selected(0)
5354 }
5455 }
5556 }
@@ -97,6 +98,7 @@ BasicShell {
9798 // If there are more users, the Greeter will handle that
9899 if (LightDM.Users.count == 1) {
99100 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
101+ greeter.selected(0);
100102 }
101103 greeter.forceActiveFocus();
102104 }
@@ -105,6 +107,11 @@ BasicShell {
105107 }
106108
107109 onUnlocked: login()
110+ onSelected: {
111+ // Update launcher items for new user
112+ var user = LightDM.Users.data(uid, LightDM.UserRoles.NameRole);
113+ LauncherModel.setUser(user);
114+ }
108115
109116 onLeftTeaserPressedChanged: {
110117 if (leftTeaserPressed) {
@@ -142,6 +149,7 @@ BasicShell {
142149 indicatorsMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
143150 indicators {
144151 hides: [launcher]
152+ available: !edgeDemo.active
145153 }
146154 fullscreenMode: false
147155 searchVisible: false
@@ -154,7 +162,7 @@ BasicShell {
154162 anchors.bottom: parent.bottom
155163 width: parent.width
156164 dragAreaWidth: shell.edgeSize
157− available: greeter.narrowMode
165+ available: greeter.narrowMode && !edgeDemo.active
158166 onLauncherApplicationSelected: {
159167 shell.activateApplication(name)
160168 }
@@ -165,4 +173,9 @@ BasicShell {
165173 }
166174 }
167175 }
176+
177+ GreeterEdgeDemo {
178+ id: edgeDemo
179+ greeter: greeter
180+ }
168181}
Launcher/Launcher.qml+12−2
@@ -28,7 +28,9 @@ Item {
2828
2929 property int panelWidth: units.gu(8)
3030 property int dragAreaWidth: units.gu(1)
31− property real progress: dragArea.dragging && dragArea.touchX > panel.width ? dragArea.touchX : 0
31+ property int minimizeDistance: panelWidth * 2.5
32+ property real progress: dragArea.dragging && dragArea.touchX > panelWidth ?
33+ (width * (dragArea.touchX-panelWidth) / (width - panelWidth)) : 0
3234
3335 readonly property bool shown: panel.x > -panel.width
3436
@@ -143,12 +145,14 @@ Item {
143145 LauncherPanel {
144146 id: panel
145147 objectName: "launcherPanel"
148+ enabled: root.available
146149 width: root.panelWidth
147150 anchors {
148151 top: parent.top
149152 bottom: parent.bottom
150153 }
151154 x: -width
155+ opacity: (x == -width && dragArea.status === DirectionalDragArea.WaitingForTouch) ? 0 : 1
152156 model: LauncherModel
153157
154158 property bool animate: true
@@ -175,6 +179,12 @@ Item {
175179 easing.type: Easing.OutCubic
176180 }
177181 }
182+
183+ Behavior on opacity {
184+ NumberAnimation {
185+ duration: UbuntuAnimation.FastDuration; easing.type: Easing.OutCubic
186+ }
187+ }
178188 }
179189
180190 EdgeDragArea {
@@ -206,7 +216,7 @@ Item {
206216 if (!dragging) {
207217 if (distance > panel.width / 2) {
208218 root.switchToNextState("visible")
209− if (distance > panel.width * 2) {
219+ if (distance > minimizeDistance) {
210220 root.dash()
211221 }
212222 } else {
Launcher/LauncherDelegate.qml+1−1
@@ -60,7 +60,7 @@ Item {
6060 id: iconImage
6161 sourceSize.width: iconShape.width
6262 sourceSize.height: iconShape.height
63− source: "../graphics/applicationIcons/" + root.iconName + ".png"
63+ source: root.iconName
6464 }
6565 }
6666
Launcher/LauncherPanel.qml+20−2
@@ -110,7 +110,20 @@ Item {
110110 // destroyed when dragging them outside the list. This needs to be at least
111111 // itemHeight to prevent folded items from disappearing and DragArea limits
112112 // 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+ }
114127
115128 // The height of the area where icons start getting folded
116129 property int foldingStartHeight: units.gu(6.5)
@@ -476,6 +489,7 @@ Item {
476489 property var model
477490 property string appId
478491 contentWidth: quickListColumn.width
492+ foregroundStyle: QuicklistForegroundStyle {}
479493
480494 // FIXME: There's a bug in the Popover positioning that it covers the item in case it is rotated.
481495 // https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1204470
@@ -491,6 +505,7 @@ Item {
491505 height: childrenRect.height
492506
493507 Repeater {
508+ id: popoverRepeater
494509 model: popover.model
495510
496511 ListItems.Standard {
@@ -501,8 +516,11 @@ Item {
501516 if (!model.clickable) {
502517 return;
503518 }
504− LauncherModel.quickListActionInvoked(appId, index);
505519 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;
506524 }
507525 }
508526 }
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 {
3434 property bool fullyOpened: height == openedHeight
3535 property bool partiallyOpened: height > panelHeight && !fullyOpened
3636 property real visualBottom: Math.max(y+height, y+indicatorRow.y+indicatorRow.height)
37+ property bool contentEnabled: true
3738
3839 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
3940 // use its own values. Need to ask design about this.
@@ -178,6 +179,7 @@ Showable {
178179 indicatorsModel: indicatorsModel
179180 clip: !indicators.fullyOpened
180181 activeHeader: indicators.state == "hint" || indicators.state == "reveal"
182+ enabled: contentEnabled
181183
182184 Connections {
183185 target: indicatorRow
@@ -301,7 +303,7 @@ Showable {
301303 anchors.right: parent.right
302304 height: panelHeight
303305 direction: Direction.Downwards
304− enabled: !indicators.shown
306+ enabled: !indicators.shown && indicators.available
305307 hintDisplacement: pinnedMode ? indicators.hintValue : 0
306308 autoCompleteDragThreshold: maxTotalDragDistance / 2
307309 stretch: true
@@ -318,7 +320,7 @@ Showable {
318320 id: hideDragHandle
319321 anchors.fill: handle
320322 direction: Direction.Upwards
321− enabled: indicators.shown
323+ enabled: indicators.shown && indicators.available
322324 hintDisplacement: indicators.hintValue
323325 autoCompleteDragThreshold: maxTotalDragDistance / 6
324326 stretch: true
Panel/IndicatorsDataModel.qml+6
@@ -27,6 +27,12 @@ Indicators.IndicatorsModel {
2727 Component.onCompleted: load()
2828
2929 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+ },
3036 'indicator-bluetooth' : {
3137 'title': 'Bluetooth',
3238 'description' : '',
Shell.qml+29−5
@@ -18,6 +18,7 @@ import QtQuick 2.0
1818import Ubuntu.Application 0.1
1919import Ubuntu.Components 0.1
2020import Ubuntu.Gestures 0.1
21+import Unity.Launcher 0.1
2122import Powerd 0.1
2223import SessionManager 0.1
2324import "Dash"
@@ -109,10 +110,14 @@ BasicShell {
109110 // Whether the underlay is fully covered by opaque UI elements.
110111 property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth
111112
113+ readonly property bool applicationRunning: ((mainStage.applications && mainStage.applications.count > 0)
114+ || (sideStage.applications && sideStage.applications.count > 0))
115+
112116 // Whether the user should see the topmost application surface (if there's one at all).
113− property bool applicationSurfaceShouldBeSeen:
114− (mainStage.applications && mainStage.applications.count > 0)
115− && (!stages.fullyHidden && !mainStage.usingScreenshots)
117+ readonly property bool applicationSurfaceShouldBeSeen: applicationRunning && !stages.fullyHidden
118+ && !mainStage.usingScreenshots // but want sideStage animating over app surface
119+
120+
116121
117122 // NB! Application surfaces are stacked behing the shell one. So they can only be seen by the user
118123 // through the translucent parts of the shell surface.
@@ -138,7 +143,7 @@ BasicShell {
138143
139144 hides: [stages, launcher, panel.indicators]
140145 shown: disappearingAnimationProgress !== 1.0
141− enabled: disappearingAnimationProgress === 0.0
146+ enabled: disappearingAnimationProgress === 0.0 && edgeDemo.dashEnabled
142147 // FIXME: unfocus all applications when going back to the dash
143148 onEnabledChanged: {
144149 if (enabled) {
@@ -322,6 +327,7 @@ BasicShell {
322327
323328 width: shell.edgeSize
324329 direction: Direction.Leftwards
330+ enabled: edgeDemo.dashEnabled
325331 property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0
326332
327333 maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7
@@ -366,6 +372,13 @@ BasicShell {
366372 } else if (status == Powerd.On) {
367373 powerConnection.setFocused(true);
368374 }
375+
376+ // No reason to chew demo CPU when user isn't watching
377+ if (status == Powerd.Off) {
378+ edgeDemo.paused = true;
379+ } else if (status == Powerd.On) {
380+ edgeDemo.paused = false;
381+ }
369382 }
370383 }
371384
@@ -380,6 +393,8 @@ BasicShell {
380393 indicatorsMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
381394 indicators {
382395 hides: [launcher]
396+ available: edgeDemo.panelEnabled
397+ contentEnabled: edgeDemo.panelContentEnabled
383398 }
384399 fullscreenMode: shell.fullscreenMode
385400
@@ -395,7 +410,7 @@ BasicShell {
395410 width: parent.width > units.gu(60) ? units.gu(40) : parent.width
396411 height: parent.height
397412
398− available: !panel.indicators.shown
413+ available: !panel.indicators.shown && edgeDemo.dashEnabled
399414 shown: false
400415 showAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: 0; easing.type: Easing.Linear }
401416 hideAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: hudRevealer.closedValue; easing.type: Easing.Linear }
@@ -453,6 +468,7 @@ BasicShell {
453468 anchors.bottom: parent.bottom
454469 width: parent.width
455470 dragAreaWidth: shell.edgeSize
471+ available: edgeDemo.launcherEnabled
456472 onDashItemSelected: {
457473 // Animate if moving between application and dash
458474 if (!stages.shown) {
@@ -549,4 +565,12 @@ BasicShell {
549565 rotation: -45
550566 scale: Math.min(parent.width, parent.height) / width
551567 }
568+
569+ EdgeDemo {
570+ id: edgeDemo
571+ launcher: launcher
572+ dash: dash
573+ indicators: panel.indicators
574+ underlay: underlay
575+ }
552576}
debian/changelog+155
@@ -1,3 +1,158 @@
1+unity8 (7.81.3+13.10.20130830-0ubuntu1) saucy; urgency=low
2+
3+ [ Pawel Stolowski ]
4+ * Implement a virtual 'All' filter option.
5+
6+ [ Ubuntu daily release ]
7+ * Automatic snapshot from revision 275
8+
9+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 30 Aug 2013 12:44:40 +0000
10+
11+unity8 (7.81.3+13.10.20130829.2-0ubuntu1) saucy; urgency=low
12+
13+ [ Michael Terry ]
14+ * Implement launcher item backend via AccountsService.
15+
16+ [ Ubuntu daily release ]
17+ * Automatic snapshot from revision 272
18+
19+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 29 Aug 2013 19:09:44 +0000
20+
21+unity8 (7.81.3+13.10.20130829.1-0ubuntu1) saucy; urgency=low
22+
23+ [ Michael Terry ]
24+ * Make sure greeter and lockscreen backgrounds are always defined,
25+ even if the wallpaper preference string is bogus. (LP: #1208889,
26+ #1208894)
27+
28+ [ Ubuntu daily release ]
29+ * Automatic snapshot from revision 270
30+
31+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 29 Aug 2013 11:09:43 +0000
32+
33+unity8 (7.81.3+13.10.20130829-0ubuntu1) saucy; urgency=low
34+
35+ [ Andrea Cimitan ]
36+ * Streamline some new HUD interactions to be more consistent with the
37+ Unity Launcher.
38+
39+ [ Michael Zanetti ]
40+ * setting the launcher's extensionSize delayed to position the view
41+ correctly at the beginning .
42+
43+ [ Bill Filler ]
44+ * add new telephony apps (dialer, messaging, contacts) to launcher and
45+ Home scope.
46+
47+ [ Michael Terry ]
48+ * Implement edge demos on first boot. Build-Depends: +dbus-test-
49+ runner, +qtbase5-dev-tools.
50+
51+ [ Ubuntu daily release ]
52+ * Automatic snapshot from revision 267
53+
54+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 29 Aug 2013 02:10:38 +0000
55+
56+unity8 (7.81.3+13.10.20130828.1-0ubuntu1) saucy; urgency=low
57+
58+ [ Andrea Cimitan ]
59+ * Hide the LauncherPanel when it's really hidden, by changing visible
60+ to false.
61+
62+ [ Gerry Boland ]
63+ * Fix sidestage applications - they were being ignored in the show-
64+ application-surface logic. (LP: #1217027, #1210079)
65+
66+ [ Michał Sawicz ]
67+ * Raise the exception if typing failed in autopilot.
68+
69+ [ Nick Dedekind ]
70+ * Added location indicator defaults.
71+
72+ [ Michael Zanetti ]
73+ * increase minimal dragging width for dismissing apps with left edge
74+ make it a configurable parameter and adjust animation to look like
75+ requested in the bug report . (LP: #1213153)
76+
77+ [ Ubuntu daily release ]
78+ * Automatic snapshot from revision 262
79+
80+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 28 Aug 2013 11:55:46 +0000
81+
82+unity8 (7.81.3+13.10.20130827.1-0ubuntu1) saucy; urgency=low
83+
84+ [ Michael Zanetti ]
85+ * unset model in quicklist before closing it.
86+
87+ [ Ubuntu daily release ]
88+ * Automatic snapshot from revision 256
89+
90+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 27 Aug 2013 10:49:17 +0000
91+
92+unity8 (7.81.3+13.10.20130827-0ubuntu1) saucy; urgency=low
93+
94+ [ Michael Zanetti ]
95+ * Theme the Quicklist Popover.
96+
97+ [ Albert Astals ]
98+ * Apply expandedIndex on delegate creation bug #1213033. (LP:
99+ #1213033)
100+
101+ [ Ubuntu daily release ]
102+ * Automatic snapshot from revision 254
103+
104+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 27 Aug 2013 02:10:43 +0000
105+
106+unity8 (7.81.3+13.10.20130826.5-0ubuntu1) saucy; urgency=low
107+
108+ [ Michael Zanetti ]
109+ * tweak launcher folding and visuals according to feedback from
110+ design: - increase foldingStartHeight - Introduces a
111+ foldingStopHeight. Folding only happens between the
112+ foldingStartHeight and the foldingStopHeight. - Only change
113+ brightness while folding - remove highlight of pressed icon -
114+ decrease launcher's width by half a grid unit.
115+
116+ [ Ubuntu daily release ]
117+ * Automatic snapshot from revision 251
118+
119+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 22:09:43 +0000
120+
121+unity8 (7.81.3+13.10.20130826.4-0ubuntu1) saucy; urgency=low
122+
123+ [ Michał Sawicz ]
124+ * Add module entry in HudClient's qmldir.
125+
126+ [ Jussi Pakkanen ]
127+ * Let Ninja parallelize itself.
128+
129+ [ Nick Dedekind ]
130+ * Abstraction of indicator menu item properties prior to move into
131+ common components library.
132+
133+ [ Christopher Lee ]
134+ * Added autopilot-tests for ephemeral, interactive and snap-decision
135+ notifications.
136+
137+ [ Mirco Müller ]
138+ * Added autopilot-tests for ephemeral, interactive and snap-decision
139+ notifications.
140+
141+ [ Michael Zanetti ]
142+ * only search visible children in findChild, add findInvisibleChild
143+ for others.
144+ * Added autopilot-tests for ephemeral, interactive and snap-decision
145+ notifications.
146+
147+ [ Thomi Richards ]
148+ * Added autopilot-tests for ephemeral, interactive and snap-decision
149+ notifications.
150+
151+ [ Ubuntu daily release ]
152+ * Automatic snapshot from revision 249
153+
154+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 18:34:44 +0000
155+
1156unity8 (7.81.3+13.10.20130826.2-0ubuntu1) saucy; urgency=low
2157
3158 [ Albert Astals ]
debian/rules+5
@@ -16,6 +16,11 @@ override_dh_auto_clean:
1616 dh_auto_clean
1717 rm -rf builddir
1818
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+
1924override_dh_install:
2025 # install autopilot tests
2126 cd tests/autopilot; \
debian/unity8-private.install+5
@@ -1,3 +1,4 @@
1+usr/lib/*/unity8/qml/AccountsService
12usr/lib/*/unity8/qml/HudClient
23usr/lib/*/unity8/qml/LightDM
34usr/lib/*/unity8/qml/ListViewWithPageHeader
@@ -6,3 +7,7 @@ usr/lib/*/unity8/qml/SessionManager
67usr/lib/*/unity8/qml/Ubuntu
78usr/lib/*/unity8/qml/Unity
89usr/lib/*/unity8/qml/Utils
10+usr/share/accountsservice/interfaces
11+usr/share/dbus-1/interfaces
12+usr/share/polkit-1
13+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.

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+24
@@ -0,0 +1,24 @@
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.ReadAny"
10+ value="com.canonical.unity.AccountsService.ModifyAnyUser"/>
11+
12+ <annotation name="org.freedesktop.Accounts.Authentication.ChangeAny"
13+ value="com.canonical.unity.AccountsService.ModifyAnyUser"/>
14+
15+ <property name="demo-edges" type="b" access="readwrite">
16+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
17+ </property>
18+
19+ <property name="launcher-items" type="aa{sv}" access="readwrite">
20+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="[{'defaults': <true>}]"/>
21+ </property>
22+
23+ </interface>
24+</node>
plugins/AccountsService/plugin.cppnew file+37
@@ -0,0 +1,37 @@
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 <QDBusMetaType>
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+ qDBusRegisterMetaType<QList<QVariantMap>>();
36+ qmlRegisterSingletonType<AccountsService>(uri, 0, 1, "AccountsService", service_provider);
37+}
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+1
@@ -1,3 +1,4 @@
1+add_subdirectory(AccountsService)
12add_subdirectory(HudClient)
23add_subdirectory(LightDM)
34add_subdirectory(ListViewWithPageHeader)
plugins/Unity/CMakeLists.txt+1
@@ -43,6 +43,7 @@ set(QMLPLUGIN_SRC
4343 preview.cpp
4444 previewaction.cpp
4545 previewinfohint.cpp
46+ showallfilteroption.cpp
4647 signalslist.cpp
4748 socialpreview.cpp
4849 socialpreviewcomment.cpp
plugins/Unity/Indicators/indicatorsmodel.cpp+2−2
@@ -229,9 +229,9 @@ QVariant IndicatorsModel::defaultData(Indicator::Ptr indicator, int role)
229229 case IndicatorsModelRole::Description:
230230 return "";
231231 case IndicatorsModelRole::WidgetSource:
232− return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorWidget.qml";
232+ return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorWidget2.qml";
233233 case IndicatorsModelRole::PageSource:
234− return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorPage.qml";
234+ return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorPage2.qml";
235235 }
236236 return QVariant();
237237}
plugins/Unity/Launcher/CMakeLists.txt+5−1
@@ -1,8 +1,11 @@
11include(FindPkgConfig)
22pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=2)
33
4+add_definitions(-DSM_BUSNAME=systemBus)
5+
46include_directories(
57 ${CMAKE_CURRENT_SOURCE_DIR}
8+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService
69)
710
811set(QMLLAUNCHERPLUGIN_SRC
@@ -12,6 +15,7 @@ set(QMLLAUNCHERPLUGIN_SRC
1215 quicklistmodel.cpp
1316 common/quicklistentry.cpp
1417 backend/launcherbackend.cpp
18+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsService.cpp
1519 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherItemInterface.h
1620 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/LauncherModelInterface.h
1721 ${LAUNCHER_API_INCLUDEDIR}/unity/shell/launcher/QuickListModelInterface.h
@@ -21,7 +25,7 @@ add_library(UnityLauncher-qml MODULE
2125 ${QMLLAUNCHERPLUGIN_SRC}
2226 )
2327
24−qt5_use_modules(UnityLauncher-qml Qml)
28+qt5_use_modules(UnityLauncher-qml DBus Qml)
2529
2630# export the qmldir and qmltypes files
2731export_qmlfiles(Unity.Launcher Unity/Launcher)
plugins/Unity/Launcher/backend/launcherbackend.cpp+171−55
@@ -2,6 +2,7 @@
22 * Copyright (C) 2013 Canonical, Ltd.
33 *
44 * Authors:
5+ * Michael Terry <michael.terry@canonical.com>
56 * Michael Zanetti <michael.zanetti@canonical.com>
67 *
78 * This program is free software; you can redistribute it and/or modify
@@ -17,98 +18,111 @@
1718 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1819 */
1920
21+#include "AccountsService.h"
2022#include "launcherbackend.h"
2123
22−#include <QHash>
24+#include <QDir>
25+#include <QDBusArgument>
26+#include <QFileInfo>
2327
24−LauncherBackend::LauncherBackend(QObject *parent):
25− QObject(parent)
28+LauncherBackend::LauncherBackend(bool useStorage, QObject *parent):
29+ QObject(parent),
30+ m_accounts(nullptr)
2631{
27−
28− // TODO: load default pinned ones from default config, instead of hardcoding here...
29−
30− m_storedApps <<
31− QLatin1String("phone-app.desktop") <<
32− QLatin1String("camera-app.desktop") <<
33− QLatin1String("gallery-app.desktop") <<
34− QLatin1String("facebook-webapp.desktop") <<
35− QLatin1String("webbrowser-app.desktop") <<
36− QLatin1String("twitter-webapp.desktop") <<
37− QLatin1String("gmail-webapp.desktop") <<
38− QLatin1String("ubuntu-weather-app.desktop") <<
39− QLatin1String("notes-app.desktop") <<
40− QLatin1String("calendar-app.desktop");
41−
42− // TODO: get stuff from desktop files instead this hardcoded map
43− m_displayNameMap.insert("phone-app.desktop", "Phone");
44− m_displayNameMap.insert("camera-app.desktop", "Camera");
45− m_displayNameMap.insert("gallery-app.desktop", "Gallery");
46− m_displayNameMap.insert("facebook-webapp.desktop", "Facebook");
47− m_displayNameMap.insert("webbrowser-app.desktop", "Browser");
48− m_displayNameMap.insert("twitter-webapp.desktop", "Twitter");
49− m_displayNameMap.insert("gmail-webapp.desktop", "GMail");
50− m_displayNameMap.insert("ubuntu-weather-app.desktop", "Weather");
51− m_displayNameMap.insert("notes-app.desktop", "Notes");
52− m_displayNameMap.insert("calendar-app.desktop", "Calendar");
53−
54− // TODO: get stuff from desktop files instead this hardcoded map
55− m_iconMap.insert("phone-app.desktop", "phone-app");
56− m_iconMap.insert("camera-app.desktop", "camera");
57− m_iconMap.insert("gallery-app.desktop", "gallery");
58− m_iconMap.insert("facebook-webapp.desktop", "facebook");
59− m_iconMap.insert("webbrowser-app.desktop", "browser");
60− m_iconMap.insert("twitter-webapp.desktop", "twitter");
61− m_iconMap.insert("gmail-webapp.desktop", "gmail");
62− m_iconMap.insert("ubuntu-weather-app.desktop", "weather");
63− m_iconMap.insert("notes-app.desktop", "notepad");
64− m_iconMap.insert("calendar-app.desktop", "calendar");
65−
32+ if (useStorage) {
33+ m_accounts = new AccountsService(this);
34+ }
35+ setUser(qgetenv("USER"));
6636}
6737
6838LauncherBackend::~LauncherBackend()
6939{
40+ clearItems();
41+}
7042
43+void LauncherBackend::clearItems()
44+{
45+ for (LauncherBackendItem &app: m_storedApps) {
46+ delete app.settings;
47+ }
48+ m_storedApps.clear();
7149}
7250
7351QStringList LauncherBackend::storedApplications() const
7452{
75− return m_storedApps;
53+ auto files = QStringList();
54+ for (const LauncherBackendItem &app: m_storedApps) {
55+ files << app.settings->fileName();
56+ }
57+ return files;
7658}
7759
7860void LauncherBackend::setStoredApplications(const QStringList &appIds)
7961{
80− m_storedApps = appIds;
81− // TODO: Cleanup pinned state from settings for apps not in list any more.
62+ // Record all existing pinned apps, so we can notice them in new list
63+ auto pinnedItems = QStringList();
64+ for (LauncherBackendItem &app: m_storedApps) {
65+ if (app.pinned) {
66+ pinnedItems.append(app.settings->fileName());
67+ }
68+ }
69+
70+ clearItems();
71+
72+ for (const QString &appId: appIds) {
73+ loadApp(makeAppDetails(appId, pinnedItems.contains(desktopFile(appId))));
74+ }
75+
76+ syncToAccounts();
8277}
8378
8479QString LauncherBackend::desktopFile(const QString &appId) const
8580{
86− // TODO: return real path instead of this hardcoded one
87− return QLatin1String("/usr/share/applications/") + appId;
81+ QFileInfo fileInfo(QDir("/usr/share/applications"), appId);
82+ return fileInfo.absoluteFilePath();
8883}
8984
9085QString LauncherBackend::displayName(const QString &appId) const
9186{
92− return m_displayNameMap.value(appId);
87+ auto desktopFile = parseDesktopFile(appId);
88+ auto displayName = desktopFile->value("Desktop Entry/Name").toString();
89+ delete desktopFile;
90+ return displayName;
9391}
9492
9593QString LauncherBackend::icon(const QString &appId) const
9694{
97− return m_iconMap.value(appId);
95+ auto desktopFile = parseDesktopFile(appId);
96+ auto iconName = desktopFile->value("Desktop Entry/Icon").toString();
97+ delete desktopFile;
98+
99+ if (!iconName.isEmpty()) {
100+ QFileInfo iconFileInfo(iconName);
101+ if (iconFileInfo.isRelative()) {
102+ iconName = "image://gicon/" + iconName;
103+ }
104+ }
105+
106+ return iconName;
98107}
99108
100109bool LauncherBackend::isPinned(const QString &appId) const
101110{
102− // TODO: return app's pinned state from settings
103− Q_UNUSED(appId)
104− return false;
111+ auto index = findItem(appId);
112+ if (index < 0) {
113+ return false;
114+ } else {
115+ return m_storedApps[index].pinned;
116+ }
105117}
106118
107119void LauncherBackend::setPinned(const QString &appId, bool pinned)
108120{
109− // TODO: Store pinned state in settings.
110− Q_UNUSED(appId)
111− Q_UNUSED(pinned)
121+ auto index = findItem(appId);
122+ if (index >= 0 && !m_storedApps[index].pinned) {
123+ m_storedApps[index].pinned = pinned;
124+ syncToAccounts();
125+ }
112126}
113127
114128QList<QuickListEntry> LauncherBackend::quickList(const QString &appId) const
@@ -137,9 +151,111 @@ int LauncherBackend::count(const QString &appId) const
137151 return 0;
138152}
139153
154+void LauncherBackend::setUser(const QString &username)
155+{
156+ m_user = username;
157+ syncFromAccounts();
158+}
159+
140160void LauncherBackend::triggerQuickListAction(const QString &appId, const QString &quickListId)
141161{
142162 // TODO: execute the given quicklist action
143163 Q_UNUSED(appId)
144164 Q_UNUSED(quickListId)
145165}
166+
167+void LauncherBackend::syncFromAccounts()
168+{
169+ QList<QVariantMap> apps;
170+ bool defaults = true;
171+
172+ clearItems();
173+
174+ if (m_user != "" && m_accounts != nullptr) {
175+ auto variant = m_accounts->getUserProperty(m_user, "launcher-items");
176+ apps = qdbus_cast<QList<QVariantMap>>(variant.value<QDBusArgument>());
177+ defaults = isDefaultsItem(apps);
178+ }
179+
180+ // TODO: load default pinned ones from default config, instead of hardcoding here...
181+ if (defaults) {
182+ apps <<
183+ makeAppDetails("dialer-app.desktop", true) <<
184+ makeAppDetails("messaging-app.desktop", true) <<
185+ makeAppDetails("address-book-app.desktop", true) <<
186+ makeAppDetails("camera-app.desktop", true) <<
187+ makeAppDetails("gallery-app.desktop", true) <<
188+ makeAppDetails("facebook-webapp.desktop", true) <<
189+ makeAppDetails("webbrowser-app.desktop", true) <<
190+ makeAppDetails("twitter-webapp.desktop", true) <<
191+ makeAppDetails("gmail-webapp.desktop", true) <<
192+ makeAppDetails("ubuntu-weather-app.desktop", true) <<
193+ makeAppDetails("notes-app.desktop", true) <<
194+ makeAppDetails("calendar-app.desktop", true);
195+ }
196+
197+ for (const QVariant &app: apps) {
198+ loadApp(app.toMap());
199+ }
200+}
201+
202+void LauncherBackend::syncToAccounts()
203+{
204+ if (m_user != "" && m_accounts != nullptr) {
205+ QList<QVariantMap> items;
206+
207+ for (LauncherBackendItem &app: m_storedApps) {
208+ items << makeAppDetails(app.settings->fileName(), app.pinned);
209+ }
210+
211+ m_accounts->setUserProperty(m_user, "launcher-items", QVariant::fromValue(items));
212+ }
213+}
214+
215+QSettings *LauncherBackend::parseDesktopFile(const QString &appId) const
216+{
217+ auto fullAppId = desktopFile(appId);
218+ return new QSettings(fullAppId, QSettings::IniFormat);
219+}
220+
221+void LauncherBackend::loadApp(const QVariantMap &details)
222+{
223+ auto appId = details.value("id").toString();
224+ auto isPinned = details.value("is-pinned").toBool();
225+
226+ if (appId.isEmpty()) {
227+ return;
228+ }
229+
230+ LauncherBackendItem item;
231+ item.settings = parseDesktopFile(appId);
232+ item.pinned = isPinned;
233+ m_storedApps.append(item);
234+}
235+
236+QVariantMap LauncherBackend::makeAppDetails(const QString &appId, bool pinned) const
237+{
238+ QVariantMap details;
239+ details.insert("id", appId);
240+ details.insert("is-pinned", pinned);
241+ return details;
242+}
243+
244+bool LauncherBackend::isDefaultsItem(const QList<QVariantMap> &apps) const
245+{
246+ // To differentiate between an empty list and a list that hasn't been set
247+ // yet (and should thus be populated with the defaults), we use a special
248+ // list of one item with the 'defaults' field set to true.
249+ return (apps.size() == 1 && apps[0].value("defaults").toBool());
250+}
251+
252+int LauncherBackend::findItem(const QString &appId) const
253+{
254+ auto fullAppId = desktopFile(appId);
255+ for (int i = 0; i < m_storedApps.size(); ++i) {
256+ if (m_storedApps[i].settings->fileName() == fullAppId) {
257+ return i;
258+ }
259+ }
260+ return -1;
261+}
plugins/Unity/Launcher/backend/launcherbackend.h+38−5
@@ -22,8 +22,10 @@
2222#include "common/quicklistentry.h"
2323
2424#include <QObject>
25+#include <QSettings>
2526#include <QStringList>
26−#include <QHash>
27+
28+class AccountsService;
2729
2830/**
2931 * @brief An interface that provides all the data needed by the launcher.
@@ -35,7 +37,7 @@ class LauncherBackend : public QObject
3537
3638
3739public:
38− LauncherBackend(QObject *parent = 0);
40+ LauncherBackend(bool useStorage = true, QObject *parent = 0);
3941 virtual ~LauncherBackend();
4042
4143 /**
@@ -57,12 +59,18 @@ public:
5759
5860 /**
5961 * @brief Get the full path to the .desktop file.
62+ *
63+ * The application does not need to be in the list of stored applications.
64+ *
6065 * @returns The full path to the .dekstop file.
6166 */
6267 QString desktopFile(const QString &appId) const;
6368
6469 /**
6570 * @brief Get the user friendly name of an application.
71+ *
72+ * The application does not need to be in the list of stored applications.
73+ *
6674 * @param appId The ID of the application.
6775 * @returns The user friendly name of the application.
6876 */
@@ -70,6 +78,9 @@ public:
7078
7179 /**
7280 * @brief Get the icon of an application.
81+ *
82+ * The application does not need to be in the list of stored applications.
83+ *
7384 * @param appId The ID of the application.
7485 * @returns The full path to the icon for the application.
7586 */
@@ -118,15 +129,37 @@ public:
118129 */
119130 int count(const QString &appId) const;
120131
132+ /**
133+ * @brief Sets the username for which to look up launcher items.
134+ * @param username The username to use.
135+ */
136+ void setUser(const QString &username);
137+
121138Q_SIGNALS:
122139 void quickListChanged(const QString &appId, const QList<QuickListEntry> &quickList);
123140 void progressChanged(const QString &appId, int progress);
124141 void countChanged(const QString &appId, int count);
125142
126143private:
127− QStringList m_storedApps;
128− QHash<QString, QString> m_displayNameMap;
129− QHash<QString, QString> m_iconMap;
144+ QSettings *parseDesktopFile(const QString &appId) const;
145+ QVariantMap makeAppDetails(const QString &appId, bool pinned) const;
146+ void loadApp(const QVariantMap &details);
147+ int findItem(const QString &appId) const;
148+ bool isDefaultsItem(const QList<QVariantMap> &apps) const;
149+ void syncFromAccounts();
150+ void syncToAccounts();
151+ void clearItems();
152+
153+ class LauncherBackendItem
154+ {
155+ public:
156+ QSettings *settings;
157+ bool pinned;
158+ };
159+
160+ QList<LauncherBackendItem> m_storedApps;
161+ AccountsService *m_accounts;
162+ QString m_user;
130163};
131164
132165#endif // LAUNCHERBACKEND_H
plugins/Unity/Launcher/launchermodel.cpp+4−3
@@ -23,7 +23,7 @@
2323
2424LauncherModel::LauncherModel(QObject *parent):
2525 LauncherModelInterface(parent),
26− m_backend(new LauncherBackend(this))
26+ m_backend(new LauncherBackend(true, this))
2727{
2828 connect(m_backend, SIGNAL(countChanged(QString,int)), SLOT(countChanged(QString,int)));
2929 connect(m_backend, SIGNAL(progressChanged(QString,int)), SLOT(progressChanged(QString,int)));
@@ -123,6 +123,7 @@ void LauncherModel::pin(const QString &appId, int index)
123123 if (currentIndex >= 0) {
124124 if (index == -1 || index == currentIndex) {
125125 m_list.at(currentIndex)->setPinned(true);
126+ m_backend->setPinned(appId, true);
126127 QModelIndex modelIndex = this->index(currentIndex);
127128 Q_EMIT dataChanged(modelIndex, modelIndex);
128129 } else {
@@ -138,6 +139,7 @@ void LauncherModel::pin(const QString &appId, int index)
138139 m_backend->displayName(appId),
139140 m_backend->icon(appId));
140141 item->setPinned(true);
142+ m_backend->setPinned(appId, true);
141143 m_list.insert(index, item);
142144 endInsertRows();
143145 }
@@ -186,8 +188,7 @@ void LauncherModel::quickListActionInvoked(const QString &appId, int actionIndex
186188
187189void LauncherModel::setUser(const QString &username)
188190{
189− Q_UNUSED(username)
190− // TODO: Implement this...
191+ m_backend->setUser(username);
191192}
192193
193194void LauncherModel::storeAppList()
plugins/Unity/Launcher/launchermodel.h+1−1
@@ -17,7 +17,7 @@
1717 * Michael Zanetti <michael.zanetti@canonical.com>
1818 */
1919
20−#ifndef LAUNCHERMODELH
20+#ifndef LAUNCHERMODEL_H
2121#define LAUNCHERMODEL_H
2222
2323// unity-api
plugins/Unity/checkoptionfilter.cpp+3−1
@@ -52,9 +52,11 @@ void CheckOptionFilter::onOptionsChanged(unity::dash::CheckOptionFilter::CheckOp
5252
5353 m_options = new UnityOptionsModel(this, options,
5454 m_unityCheckOptionFilter->option_added,
55− m_unityCheckOptionFilter->option_removed);
55+ m_unityCheckOptionFilter->option_removed,
56+ m_unityCheckOptionFilter->show_all_button);
5657
5758 connect(m_options, SIGNAL(activeChanged(AbstractFilterOption *)), m_options, SLOT(ensureTheOnlyActive(AbstractFilterOption *)));
59+ connect(m_options, SIGNAL(showAllActivated()), this, SLOT(clear()));
5860
5961 /* Property change signals */
6062 m_signals << m_unityCheckOptionFilter->options.changed.connect(sigc::mem_fun(this, &CheckOptionFilter::onOptionsChanged));
plugins/Unity/filter.h+3−2
@@ -56,11 +56,12 @@ public:
5656 bool filtering() const;
5757 virtual GenericOptionsModel* options() const = 0;
5858
59− Q_INVOKABLE void clear();
60−
6159 static Filter* newFromUnityFilter(unity::dash::Filter::Ptr unityFilter);
6260 bool hasUnityFilter(unity::dash::Filter::Ptr unityFilter) const;
6361
62+public Q_SLOTS:
63+ void clear();
64+
6465Q_SIGNALS:
6566 void optionsChanged();
6667
plugins/Unity/genericoptionsmodel.cpp+20−3
@@ -22,10 +22,18 @@
2222
2323// local
2424#include "abstractfilteroption.h"
25+#include "showallfilteroption.h"
2526
26−GenericOptionsModel::GenericOptionsModel(QObject *parent)
27+GenericOptionsModel::GenericOptionsModel(bool showAllOption, QObject *parent)
2728 : QAbstractListModel(parent)
2829{
30+ if (showAllOption)
31+ {
32+ auto showAll = new ShowAllFilterOption(this);
33+ connect(showAll, SIGNAL(activeChanged(bool)), this, SLOT(onOptionChanged()));
34+ connect(showAll, SIGNAL(activeChanged(bool)), this, SLOT(onShowAllClicked(bool)));
35+ addOption(showAll);
36+ }
2937}
3038
3139GenericOptionsModel::~GenericOptionsModel()
@@ -73,7 +81,7 @@ QVariant GenericOptionsModel::data(const QModelIndex& index, int role) const
7381
7482int GenericOptionsModel::rowCount(const QModelIndex& /* parent */) const
7583{
76− return m_options.size ();
84+ return m_options.size();
7785}
7886
7987void GenericOptionsModel::setActive(int idx, bool value)
@@ -117,7 +125,10 @@ void GenericOptionsModel::ensureTheOnlyActive(AbstractFilterOption *activeOption
117125
118126void GenericOptionsModel::addOption(AbstractFilterOption *option, int index)
119127{
120− m_options.insert(index, option);
128+ if (index >= 0)
129+ m_options.insert(index, option);
130+ else
131+ m_options.append(option);
121132
122133 connect(option, SIGNAL(idChanged(const QString &)), this, SLOT(onOptionChanged()));
123134 connect(option, SIGNAL(nameChanged(const QString &)), this, SLOT(onOptionChanged()));
@@ -168,3 +179,9 @@ void GenericOptionsModel::onActiveChanged()
168179 Q_EMIT activeChanged(option);
169180 }
170181}
182+
183+void GenericOptionsModel::onShowAllClicked(bool active)
184+{
185+ if (active)
186+ Q_EMIT showAllActivated();
187+}
plugins/Unity/genericoptionsmodel.h+4−2
@@ -35,7 +35,7 @@ class Q_DECL_EXPORT GenericOptionsModel : public QAbstractListModel
3535 Q_ENUMS(Roles)
3636
3737public:
38− GenericOptionsModel(QObject *parent = nullptr);
38+ GenericOptionsModel(bool showAllOption = false, QObject *parent = nullptr);
3939 ~GenericOptionsModel();
4040
4141 enum Roles {
@@ -59,13 +59,15 @@ public Q_SLOTS:
5959
6060Q_SIGNALS:
6161 void activeChanged(AbstractFilterOption *option);
62+ void showAllActivated();
6263
6364protected Q_SLOTS:
6465 void onOptionChanged();
6566 void onActiveChanged();
67+ void onShowAllClicked(bool active);
6668
6769protected:
68− void addOption(AbstractFilterOption *option, int index);
70+ void addOption(AbstractFilterOption *option, int index = -1);
6971 void removeOption(int index);
7072 int indexOf(const QString &option_id);
7173
plugins/Unity/multirangefilter.cpp+3−1
@@ -52,9 +52,11 @@ void MultiRangeFilter::onOptionsChanged(unity::dash::MultiRangeFilter::Options o
5252
5353 m_options = new UnityOptionsModel(this, options,
5454 m_unityMultiRangeFilter->option_added,
55− m_unityMultiRangeFilter->option_removed);
55+ m_unityMultiRangeFilter->option_removed,
56+ m_unityMultiRangeFilter->show_all_button);
5657
5758 connect(m_options, SIGNAL(activeChanged(AbstractFilterOption *)), m_options, SLOT(ensureTheOnlyActive(AbstractFilterOption *)));
59+ connect(m_options, SIGNAL(showAllActivated()), this, SLOT(clear()));
5860
5961 /* Property change signals */
6062 m_signals << m_unityMultiRangeFilter->options.changed.connect(sigc::mem_fun(this, &MultiRangeFilter::onOptionsChanged));
plugins/Unity/radiooptionfilter.cpp+3−1
@@ -51,7 +51,9 @@ void RadioOptionFilter::onOptionsChanged(unity::dash::RadioOptionFilter::RadioOp
5151 }
5252 m_options = new UnityOptionsModel(this, m_unityRadioOptionFilter->options,
5353 m_unityRadioOptionFilter->option_added,
54− m_unityRadioOptionFilter->option_removed);
54+ m_unityRadioOptionFilter->option_removed,
55+ m_unityRadioOptionFilter->show_all_button);
56+ connect(m_options, SIGNAL(showAllActivated()), this, SLOT(clear()));
5557
5658 m_signals << m_unityRadioOptionFilter->options.changed.connect(sigc::mem_fun(this, &RadioOptionFilter::onOptionsChanged));
5759
plugins/Unity/ratingoptionsmodel.cpp+3−3
@@ -23,11 +23,11 @@
2323// local
2424#include "ratingfilteroption.h"
2525
26−RatingOptionsModel::RatingOptionsModel(QObject *parent) :
27− GenericOptionsModel(parent)
26+RatingOptionsModel::RatingOptionsModel(bool showAllOption, QObject *parent) :
27+ GenericOptionsModel(showAllOption, parent)
2828{
2929 for (int i=1; i<=5; i++) {
3030 auto opt = new RatingFilterOption(QString::number(i), i*0.2f, this);
31− addOption(opt, i-1);
31+ addOption(opt);
3232 }
3333}
plugins/Unity/ratingoptionsmodel.h+1−1
@@ -27,7 +27,7 @@ class RatingOptionsModel : public GenericOptionsModel
2727 Q_OBJECT
2828
2929public:
30− RatingOptionsModel(QObject *parent);
30+ RatingOptionsModel(bool showAllOption, QObject *parent);
3131};
3232
3333#endif // RATINGOPTIONSMODEL_H
plugins/Unity/ratingsfilter.cpp+2−1
@@ -53,9 +53,10 @@ void RatingsFilter::setUnityFilter(unity::dash::Filter::Ptr filter)
5353
5454 delete m_options;
5555
56− m_options = new RatingOptionsModel(this);
56+ m_options = new RatingOptionsModel(m_unityRatingsFilter->show_all_button, this);
5757 connect(m_options, SIGNAL(activeChanged(AbstractFilterOption *)), m_options, SLOT(ensureTheOnlyActive(AbstractFilterOption *)));
5858 connect(m_options, SIGNAL(activeChanged(AbstractFilterOption *)), this, SLOT(onActiveChanged(AbstractFilterOption *)));
59+ connect(m_options, SIGNAL(showAllActivated()), this, SLOT(clear()));
5960
6061 Q_EMIT optionsChanged();
6162}
plugins/Unity/showallfilteroption.cppnew file+60
@@ -0,0 +1,60 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * Authors:
5+ * Pawel Stolowski <pawel.stolowski@canonical.com>
6+ *
7+ * This program is free software; you can redistribute it and/or modify
8+ * it under the terms of the GNU General Public License as published by
9+ * the Free Software Foundation; version 3.
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+// self
21+#include "showallfilteroption.h"
22+
23+#include <libintl.h>
24+
25+unsigned int ShowAllFilterOption::m_showAllCount = 0;
26+
27+ShowAllFilterOption::ShowAllFilterOption(QObject *parent) :
28+ AbstractFilterOption(parent),
29+ m_active(false)
30+{
31+ m_id = QString("show_all::%1").arg(m_showAllCount++);
32+}
33+
34+QString ShowAllFilterOption::id() const
35+{
36+ return m_id;
37+}
38+
39+QString ShowAllFilterOption::name() const
40+{
41+ return QString::fromUtf8(dgettext("unity", "All"));
42+}
43+
44+QString ShowAllFilterOption::iconHint() const
45+{
46+ return QString::Null();
47+}
48+
49+bool ShowAllFilterOption::active() const
50+{
51+ return m_active;
52+}
53+
54+void ShowAllFilterOption::setActive(bool active)
55+{
56+ if (active != m_active) {
57+ m_active = active;
58+ Q_EMIT activeChanged(m_active);
59+ }
60+}
plugins/Unity/showallfilteroption.hnew file+51
@@ -0,0 +1,51 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * Authors:
5+ * Pawel Stolowski <pawel.stolowski@canonical.com>
6+ *
7+ * This program is free software; you can redistribute it and/or modify
8+ * it under the terms of the GNU General Public License as published by
9+ * the Free Software Foundation; version 3.
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+#ifndef SHOWALLFILTEROPTION_H
21+#define SHOWALLFILTEROPTION_H
22+
23+// local
24+#include "abstractfilteroption.h"
25+
26+class Q_DECL_EXPORT ShowAllFilterOption : public AbstractFilterOption
27+{
28+ Q_OBJECT
29+
30+public:
31+ explicit ShowAllFilterOption(QObject *parent = nullptr);
32+
33+ /* getters */
34+ QString id() const override;
35+ QString name() const override;
36+ QString iconHint() const override;
37+ bool active() const override;
38+
39+ /* setters */
40+ void setActive(bool active) override;
41+
42+private:
43+ bool m_active;
44+ QString m_id;
45+
46+ static unsigned int m_showAllCount;
47+};
48+
49+Q_DECLARE_METATYPE(ShowAllFilterOption*)
50+
51+#endif // SHOWALLFILTEROPTION_H
plugins/Unity/unityoptionsmodel.cpp+5−4
@@ -26,8 +26,9 @@
2626UnityOptionsModel::UnityOptionsModel(QObject *parent,
2727 const std::vector<unity::dash::FilterOption::Ptr> options,
2828 sigc::signal<void, unity::dash::FilterOption::Ptr> optionAdded,
29− sigc::signal<void, unity::dash::FilterOption::Ptr> optionRemoved) :
30− GenericOptionsModel(parent)
29+ sigc::signal<void, unity::dash::FilterOption::Ptr> optionRemoved,
30+ bool showAllOption) :
31+ GenericOptionsModel(showAllOption, parent)
3132{
3233 setOptions(options, optionAdded, optionRemoved);
3334}
@@ -38,7 +39,7 @@ void UnityOptionsModel::setOptions(const std::vector<unity::dash::FilterOption::
3839{
3940 for (unsigned int i=0; i<options.size(); i++)
4041 {
41− addOption(new FilterOption(options[i], this), i);
42+ addOption(new FilterOption(options[i], this));
4243 }
4344 optionAdded.connect(sigc::mem_fun(this, &UnityOptionsModel::onOptionAdded));
4445 optionRemoved.connect(sigc::mem_fun(this, &UnityOptionsModel::onOptionRemoved));
@@ -50,7 +51,7 @@ void UnityOptionsModel::onOptionAdded(unity::dash::FilterOption::Ptr option)
5051 if (index >= 0)
5152 {
5253 beginInsertRows(QModelIndex(), index, index);
53− addOption(new FilterOption(option, this), index);
54+ addOption(new FilterOption(option, this));
5455 endInsertRows();
5556 }
5657}
plugins/Unity/unityoptionsmodel.h+2−1
@@ -35,7 +35,8 @@ public:
3535 UnityOptionsModel(QObject *parent,
3636 const std::vector<unity::dash::FilterOption::Ptr> options,
3737 sigc::signal<void, unity::dash::FilterOption::Ptr> optionAdded,
38− sigc::signal<void, unity::dash::FilterOption::Ptr> optionRemoved);
38+ sigc::signal<void, unity::dash::FilterOption::Ptr> optionRemoved,
39+ bool showAllOption);
3940
4041private:
4142 void setOptions(const std::vector<unity::dash::FilterOption::Ptr> options,
po/ar.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-26 23:26+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1818"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "ويكيبيديا"
8787msgid "YouTube"
8888msgstr "يوتيوب"
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "عمليات البحث الأخيرة"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr "المميز"
@@ -201,7 +209,7 @@ msgstr "النجوم:"
201209msgid "Author:"
202210msgstr "المؤلف:"
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,11 +246,11 @@ msgstr "تتكلم الآن..."
238246msgid "Search"
239247msgstr "ابحث"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr "عذراً، لا يوجد ما يطابق بحثك."
244252
245−#: Shell.qml:399
253+#: Shell.qml:429
246254#, qt-format
247255msgid "Please enter %1"
248256msgstr ""
po/az.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-26 23:48+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Son axtarışlar"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Söylənilir..."
237245msgid "Search"
238246msgstr "Axtar"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/bg.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 00:06+0000\n"
1212"Last-Translator: Miroslav E. Hadzhiev (Хаджиев) "
1313"<miroslav.hadzhiev@gmail.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Уикипедия"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "Скорошни търсения"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr "Най-отличени"
@@ -201,7 +209,7 @@ msgstr ""
201209msgid "Author:"
202210msgstr "Автор:"
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,11 +246,11 @@ msgstr ""
238246msgid "Search"
239247msgstr "Търсене"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr "Съжаляваме, няма нищо, което да отговаря на вашето търсене."
244252
245−#: Shell.qml:399
253+#: Shell.qml:429
246254#, qt-format
247255msgid "Please enter %1"
248256msgstr ""
po/ca.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 00:24+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Cerques recents"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "S'està parlant..."
237245msgid "Search"
238246msgstr "Cerca"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "No hi ha res que coincideixi amb la cerca"
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/de.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 00:37+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: German <de@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Letzte Suchbegriffe"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr "Empfehlungen"
@@ -200,7 +208,7 @@ msgstr "Darsteller:"
200208msgid "Author:"
201209msgstr "Autor:"
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Sie sprechen …"
237245msgid "Search"
238246msgstr "Suchen"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Entschuldigung, es wurden keine Treffer erzielt."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/el.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 00:53+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Πρόσφατες αναζητήσεις"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Ομιλία..."
237245msgid "Search"
238246msgstr "Αναζήτηση"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να ταιριάζει στην αναζήτησή σας."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/en_AU.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 01:13+0000\n"
1212"Last-Translator: Jackson Doak <Doak.jackson@gmail.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Recent searches"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr "Featured"
@@ -200,7 +208,7 @@ msgstr "Starring:"
200208msgid "Author:"
201209msgstr "Author:"
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Speaking..."
237245msgid "Search"
238246msgstr "Search"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Sorry, there is nothing that matches your search."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/en_GB.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 08:53+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Recent searches"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr "Featured"
@@ -200,7 +208,7 @@ msgstr "Starring:"
200208msgid "Author:"
201209msgstr "Author:"
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Speaking..."
237245msgid "Search"
238246msgstr "Search"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Sorry, there is nothing that matches your search."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr "Please enter %1"
po/eo.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr ""
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/es.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-07-08 07:25+0000\n"
1212"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
1313"Language-Team: Spanish <es@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Búsquedas recientes"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr "Destacados"
@@ -200,7 +208,7 @@ msgstr "Protagonistas:"
200208msgid "Author:"
201209msgstr "Autor:"
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Hablando…"
237245msgid "Search"
238246msgstr "Buscar"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "No hay nada que coincida con su búsqueda."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr "Introduzca %1"
po/fi.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-08-23 16:15+0000\n"
1212"Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-24 05:59+0000\n"
19−"X-Generator: Launchpad (build 16738)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Viimeisimmät haut"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr "(%1)"
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] "%1 arvostelu"
105149msgstr[1] "%1 arvostelua"
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr "Arvioi tämä"
110154
@@ -124,42 +168,6 @@ msgstr "Lähetä"
124168msgid "Comments:"
125169msgstr "Kommentit:"
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr "Suositellut"
@@ -200,7 +208,7 @@ msgstr "Pääosissa:"
200208msgid "Author:"
201209msgstr "Tekijä:"
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr "Hätäpuhelu"
206214
@@ -237,11 +245,11 @@ msgstr "Puhutaan..."
237245msgid "Search"
238246msgstr "Hae"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Hakuun täsmääviä tuloksia ei löydy."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr "Kirjoita %1"
po/fo.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 02:57+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Faroese <fo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Snakkar..."
237245msgid "Search"
238246msgstr "Leita"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/fr.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 03:21+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: French <fr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr ""
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/gl.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 03:38+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Galician <gl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Buscas recentes"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Falando…"
237245msgid "Search"
238246msgstr "Buscar"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Sentímolo, non hai nada que coincida con esta busca."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/he.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 03:54+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Hebrew <he@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "חיפושים אחרונים"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "מושמע דיבור..."
237245msgid "Search"
238246msgstr "חיפוש"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "שום דבר אינו תואם לחיפוש שלך, עמך הסליחה."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/hr.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 04:14+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Croatian <hr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr ""
8787msgid "YouTube"
8888msgstr ""
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "Nedavne pretrage"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr ""
@@ -201,7 +209,7 @@ msgstr ""
201209msgid "Author:"
202210msgstr ""
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,11 +246,11 @@ msgstr "Govor..."
238246msgid "Search"
239247msgstr "Pretraživanje"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
244252
245−#: Shell.qml:399
253+#: Shell.qml:429
246254#, qt-format
247255msgid "Please enter %1"
248256msgstr ""
po/hu.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 04:28+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Legutóbbi keresések"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Beszéd…"
237245msgid "Search"
238246msgstr "Keresés"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Elnézést, nincs találat a keresésre."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/hy.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 04:43+0000\n"
1212"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
1313"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Վերջին որոնումներ"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Խոսում եմ..."
237245msgid "Search"
238246msgstr "Որոնում"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/id.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Indonesian <id@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr ""
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/it.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 05:14+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Ricerche recenti"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Sto parlando..."
237245msgid "Search"
238246msgstr "Cerca"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Nessun risultato corrispondente alla ricerca."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/ja.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr ""
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/kn.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 05:43+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
237245msgid "Search"
238246msgstr "ಹುಡುಕು"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯಾದ ಹೊಂದಾಣಿಕೆಗಳು ದೊರಕುತ್ತಿಲ್ಲ"
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/ko.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 05:59+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "요즈음 찿은 것들"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr "찾기"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/ky.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 06:17+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Соңку издөөлөр"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Сүйлөнүүдө..."
237245msgid "Search"
238246msgstr "Издөө"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Тилекке каршы, сиздин издөөңүзгө эч нерсе дал келген жок."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/lv.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 06:31+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Latvian <lv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Nesen veiktās meklēšanas"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Runa..."
237245msgid "Search"
238246msgstr "Meklēt"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/my.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 06:47+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Burmese <my@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "ပြောနေသည်"
237245msgid "Search"
238246msgstr "ရှာဖွေ"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့်တူညီတာဘာမှမရှိပါ။"
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/nb.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 07:02+0000\n"
1212"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
1313"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Siste søk"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Snakker …"
237245msgid "Search"
238246msgstr "Søk"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Søket ga ingen treff."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/nl.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 07:19+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Recente zoekopdrachten"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Inspreken…"
237245msgid "Search"
238246msgstr "Zoeken"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/pl.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 08:52+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1818"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Wikipedia"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "Ostatnie wyszukiwania"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr "Polecane"
@@ -201,7 +209,7 @@ msgstr "Obsada:"
201209msgid "Author:"
202210msgstr "Autor:"
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,11 +246,11 @@ msgstr "Rozpoznanie..."
238246msgid "Search"
239247msgstr "Szukaj"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr "Nie znaleziono pasujących wyników."
244252
245−#: Shell.qml:399
253+#: Shell.qml:429
246254#, qt-format
247255msgid "Please enter %1"
248256msgstr "Wprowadź %1"
po/pt_BR.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 07:39+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Pesquisas recentes"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Falando..."
237245msgid "Search"
238246msgstr "Pesquisar"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/ro.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 07:53+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
1818"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr ""
8787msgid "YouTube"
8888msgstr ""
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "Căutări recente"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr ""
@@ -201,7 +209,7 @@ msgstr ""
201209msgid "Author:"
202210msgstr ""
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,12 +246,12 @@ msgstr "Vorbire..."
238246msgid "Search"
239247msgstr "Căutare"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr ""
244252"Ne pare rău, nu este nimic care se potrivește căutării dumneavoastră."
245253
246−#: Shell.qml:399
254+#: Shell.qml:429
247255#, qt-format
248256msgid "Please enter %1"
249257msgstr ""
po/ru.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-28 06:40+0000\n"
1212"Last-Translator: Eugene Marshal <Unknown>\n"
1313"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Википедия"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "Последние поисковые запросы"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr ""
@@ -201,7 +209,7 @@ msgstr "В главных ролях"
201209msgid "Author:"
202210msgstr "Автор:"
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,11 +246,11 @@ msgstr "Говорите..."
238246msgid "Search"
239247msgstr "Поиск"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr "Извините, поиск не дал результатов."
244252
245−#: Shell.qml:399
253+#: Shell.qml:429
246254#, qt-format
247255msgid "Please enter %1"
248256msgstr "Пожалуйста, введите %1"
po/si.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr ""
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/sl.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-07-02 12:59+0000\n"
1212"Last-Translator: Damir Jerovšek <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
1818"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Wikipedija"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "Nedavna iskanja"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr "Predstavljeno"
@@ -201,7 +209,7 @@ msgstr ""
201209msgid "Author:"
202210msgstr ""
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,11 +246,11 @@ msgstr "Govorjenje ..."
238246msgid "Search"
239247msgstr "Iskanje"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr "Nič se ne ujema z vašim iskalnim nizom."
244252
245−#: Shell.qml:399
253+#: Shell.qml:429
246254#, qt-format
247255msgid "Please enter %1"
248256msgstr ""
po/sr.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 09:19+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Serbian <sr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr ""
8787msgid "YouTube"
8888msgstr ""
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "Скорашње претраге"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr ""
@@ -201,7 +209,7 @@ msgstr ""
201209msgid "Author:"
202210msgstr ""
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,11 +246,11 @@ msgstr "Говор..."
238246msgid "Search"
239247msgstr "Претрага"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr "Нажалост, претрага није наишла на икакво подударање."
244252
245−#: Shell.qml:399
253+#: Shell.qml:429
246254#, qt-format
247255msgid "Please enter %1"
248256msgstr ""
po/sv.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Swedish <sv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr ""
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/te.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 09:57+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr ""
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/tr.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 10:08+0000\n"
1212"Last-Translator: Adar Cem EREN <adarcemeren34@gmail.com>\n"
1313"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "Vikipedi"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "Son Arananlar"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr "Öne Çıkanlar"
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr "Yazar:"
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "Konuşuyor..."
237245msgid "Search"
238246msgstr "Ara"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/ug.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 11:02+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Uyghur <ug@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "ۋىكىپېدىيە"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "يېقىنقى ئىزدەشلەر"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr "داڭلىق"
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr "ئاپتور:"
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "سۆزلەۋاتىسىز…"
237245msgid "Search"
238246msgstr "ئىزدە"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپىلمىدى."
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/uk.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-07-21 05:47+0000\n"
1212"Last-Translator: Ярослав Смук <Smuk.Slavko@yandex.ua>\n"
1313"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16734)\n"
19+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20+"X-Generator: Launchpad (build 16750)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,25 +87,69 @@ msgstr "Вікіпедія"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
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+
90134#: Components/PageHeader.qml:298
91135msgid "Recent searches"
92136msgstr "Нещодавні пошуки"
93137
94138#. TRANSLATORS: Number of persons who rated this app
95−#: Dash/Apps/AppInfo.qml:72
139+#: Dash/Apps/AppInfo.qml:73
96140#, qt-format
97141msgid "(%1)"
98142msgstr ""
99143
100144#. 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
102146#, qt-format
103147msgid "%1 review"
104148msgid_plural "%1 reviews"
105149msgstr[0] ""
106150msgstr[1] ""
107151
108−#: Dash/Apps/AppPreview.qml:181
152+#: Dash/Apps/AppPreview.qml:175
109153msgid "Rate this"
110154msgstr ""
111155
@@ -125,42 +169,6 @@ msgstr ""
125169msgid "Comments:"
126170msgstr ""
127171
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−
164172#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
165173msgid "Featured"
166174msgstr "Рекомендовані"
@@ -201,7 +209,7 @@ msgstr "Актори:"
201209msgid "Author:"
202210msgstr "Автор:"
203211
204−#: Greeter/Lockscreen.qml:133
212+#: Greeter/Lockscreen.qml:134
205213msgid "Emergency Call"
206214msgstr ""
207215
@@ -238,11 +246,11 @@ msgstr "Мовлення…"
238246msgid "Search"
239247msgstr "Пошук"
240248
241−#: plugins/Unity/scope.cpp:298
249+#: plugins/Unity/scope.cpp:317
242250msgid "Sorry, there is nothing that matches your search."
243251msgstr "Вибачте, для вказаних вами ключових слів нічого не знайдено."
244252
245−#: Shell.qml:399
253+#: Shell.qml:429
246254#, qt-format
247255msgid "Please enter %1"
248256msgstr "Будь ласка, введіть %1"
po/unity8.pot+51−43
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"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"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr ""
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr ""
237245msgid "Search"
238246msgstr ""
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr ""
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/zh_CN.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 10:33+0000\n"
1212"Last-Translator: Anthony Wong <anthony.wong@canonical.com>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr "维基百科"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "近期搜索"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr "推荐"
@@ -200,7 +208,7 @@ msgstr "主演:"
200208msgid "Author:"
201209msgstr "作者:"
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "讲话中..."
237245msgid "Search"
238246msgstr "搜索"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "对不起,没有找到您想要的结果。"
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
po/zh_TW.po+53−45
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-09 12:18+0200\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
1111"PO-Revision-Date: 2013-06-27 10:24+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16734)\n"
18+"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19+"X-Generator: Launchpad (build 16750)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,25 +86,69 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
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+
89133#: Components/PageHeader.qml:298
90134msgid "Recent searches"
91135msgstr "最近搜尋"
92136
93137#. TRANSLATORS: Number of persons who rated this app
94−#: Dash/Apps/AppInfo.qml:72
138+#: Dash/Apps/AppInfo.qml:73
95139#, qt-format
96140msgid "(%1)"
97141msgstr ""
98142
99143#. 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
101145#, qt-format
102146msgid "%1 review"
103147msgid_plural "%1 reviews"
104148msgstr[0] ""
105149msgstr[1] ""
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109153msgstr ""
110154
@@ -124,42 +168,6 @@ msgstr ""
124168msgid "Comments:"
125169msgstr ""
126170
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−
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
165173msgstr ""
@@ -200,7 +208,7 @@ msgstr ""
200208msgid "Author:"
201209msgstr ""
202210
203−#: Greeter/Lockscreen.qml:133
211+#: Greeter/Lockscreen.qml:134
204212msgid "Emergency Call"
205213msgstr ""
206214
@@ -237,11 +245,11 @@ msgstr "說話中..."
237245msgid "Search"
238246msgstr "搜尋"
239247
240−#: plugins/Unity/scope.cpp:298
248+#: plugins/Unity/scope.cpp:317
241249msgid "Sorry, there is nothing that matches your search."
242250msgstr "很抱歉,找不到符合您想搜尋的結果。"
243251
244−#: Shell.qml:399
252+#: Shell.qml:429
245253#, qt-format
246254msgid "Please enter %1"
247255msgstr ""
tests/autopilot/unity8/shell/tests/test_lock_screen.py+2
@@ -178,3 +178,5 @@ class TestLockscreen(UnityTestCase):
178178 except AssertionError:
179179 if retries > 0:
180180 self._type_character(character, prompt, retries-1)
181+ else:
182+ raise
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)
12add_subdirectory(GSettings.1.0)
23add_subdirectory(HudClient)
34add_subdirectory(liblightdm)
tests/mocks/Unity/Launcher/CMakeLists.txt+2
@@ -1,6 +1,8 @@
11include(FindPkgConfig)
22pkg_check_modules(LAUNCHER_API REQUIRED unity-shell-launcher=2)
33
4+add_definitions(-DTOP_SRCDIR="${CMAKE_SOURCE_DIR}")
5+
46include_directories(
57 ${CMAKE_CURRENT_SOURCE_DIR}
68)
tests/mocks/Unity/Launcher/MockLauncherItem.cpp+1−1
@@ -27,7 +27,7 @@ MockLauncherItem::MockLauncherItem(const QString &appId, const QString& desktopF
2727 m_appId(appId),
2828 m_desktopFile(desktopFile),
2929 m_name(name),
30− m_icon(icon),
30+ m_icon(TOP_SRCDIR "/graphics/applicationIcons/" + icon + ".png"),
3131 m_pinned(false),
3232 m_running(false),
3333 m_recent(false),
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,5 +1,6 @@
1+add_subdirectory(AccountsService)
2+add_subdirectory(ListViewWithPageHeader)
13add_subdirectory(SessionManager)
2−add_subdirectory(Utils)
34add_subdirectory(Ubuntu)
45add_subdirectory(Unity)
5−add_subdirectory(ListViewWithPageHeader)
6+add_subdirectory(Utils)
tests/plugins/Unity/CMakeLists.txt+1
@@ -1,4 +1,5 @@
11add_subdirectory(Indicators)
2+add_subdirectory(Launcher)
23
34pkg_check_modules(UNITYCORE REQUIRED unity-core-6.0)
45pkg_check_modules(LIBUNITYPROTO REQUIRED unity-protocol-private)
tests/plugins/Unity/Launcher/CMakeLists.txtnew file+22
@@ -0,0 +1,22 @@
1+include_directories(
2+ ${CMAKE_CURRENT_BINARY_DIR}
3+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService
4+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher
5+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/backend
6+ )
7+
8+add_definitions(-DSM_BUSNAME=sessionBus)
9+add_definitions(-DSRCDIR="${CMAKE_CURRENT_SOURCE_DIR}")
10+
11+set(testCommand ${CMAKE_CURRENT_BINARY_DIR}/launcherbackendtestExec
12+ -o ${CMAKE_BINARY_DIR}/launcherbackendtest.xml,xunitxml
13+ -o -,txt)
14+add_test(NAME launcherbackendtest COMMAND ${testCommand})
15+add_custom_target(launcherbackendtest ${testCommand})
16+add_executable(launcherbackendtestExec
17+ launcherbackendtest.cpp
18+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsService.cpp
19+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/backend/launcherbackend.cpp
20+ ${CMAKE_SOURCE_DIR}/plugins/Unity/Launcher/common/quicklistentry.cpp
21+ )
22+qt5_use_modules(launcherbackendtestExec Test Core DBus)
tests/plugins/Unity/Launcher/abs-icon.desktopnew file+3
@@ -0,0 +1,3 @@
1+[Desktop Entry]
2+Name=Absolute Icon
3+Icon=/path/to/icon.png
tests/plugins/Unity/Launcher/launcherbackendtest.cppnew file+94
@@ -0,0 +1,94 @@
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+ * Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "launcherbackend.h"
21+
22+#include <QtTest>
23+#include <QDebug>
24+
25+class LauncherBackendTest : public QObject
26+{
27+ Q_OBJECT
28+
29+private Q_SLOTS:
30+ void testFileNames()
31+ {
32+ LauncherBackend backend(false);
33+
34+ backend.setStoredApplications(QStringList() << "relative.path" << "/full/path");
35+ QCOMPARE(backend.storedApplications(), QStringList() << "/usr/share/applications/relative.path" << "/full/path");
36+
37+ QCOMPARE(backend.desktopFile("one.desktop"), QString("/usr/share/applications/one.desktop"));
38+ QCOMPARE(backend.desktopFile("two"), QString("/usr/share/applications/two"));
39+ QCOMPARE(backend.desktopFile("/full"), QString("/full"));
40+
41+ QCOMPARE(backend.desktopFile("/usr/share/applications/one.desktop"), QString("/usr/share/applications/one.desktop"));
42+ }
43+
44+ void testDesktopReading()
45+ {
46+ LauncherBackend backend(false);
47+
48+ QCOMPARE(backend.displayName(SRCDIR "/rel-icon.desktop"), QString("Relative Icon"));
49+ QCOMPARE(backend.icon(SRCDIR "/rel-icon.desktop"), QString("image://gicon/rel-icon"));
50+
51+ QCOMPARE(backend.displayName(SRCDIR "/abs-icon.desktop"), QString("Absolute Icon"));
52+ QCOMPARE(backend.icon(SRCDIR "/abs-icon.desktop"), QString("/path/to/icon.png"));
53+
54+ QCOMPARE(backend.displayName(SRCDIR "/no-icon.desktop"), QString("No Icon"));
55+ QCOMPARE(backend.icon(SRCDIR "/no-icon.desktop"), QString(""));
56+
57+ QCOMPARE(backend.displayName(SRCDIR "/no-name.desktop"), QString(""));
58+ QCOMPARE(backend.icon(SRCDIR "/no-name.desktop"), QString("image://gicon/no-name"));
59+
60+ QCOMPARE(backend.displayName(SRCDIR "/no-exist.desktop"), QString(""));
61+ QCOMPARE(backend.icon(SRCDIR "/no-exist.desktop"), QString(""));
62+ }
63+
64+ void testPinning()
65+ {
66+ LauncherBackend backend(false);
67+
68+ // Confirm that default entries are all pinned
69+ auto defaultApps = backend.storedApplications();
70+ QVERIFY(defaultApps.size() > 0);
71+ for (auto app: defaultApps) {
72+ QCOMPARE(backend.isPinned(app), true);
73+ }
74+
75+ backend.setStoredApplications(QStringList() << "one" << "two");
76+ QCOMPARE(backend.isPinned("one"), false);
77+ QCOMPARE(backend.isPinned("two"), false);
78+
79+ backend.setPinned("two", true);
80+ QCOMPARE(backend.isPinned("two"), true);
81+
82+ backend.setStoredApplications(QStringList() << "one" << "two" << "three");
83+ QCOMPARE(backend.isPinned("two"), true);
84+ QCOMPARE(backend.isPinned("three"), false);
85+
86+ backend.setPinned("three", true);
87+ backend.setStoredApplications(QStringList() << "one" << "two");
88+ QCOMPARE(backend.isPinned("two"), true);
89+ QCOMPARE(backend.isPinned("three"), false); // doesn't exist anymore!
90+ }
91+};
92+
93+QTEST_GUILESS_MAIN(LauncherBackendTest)
94+#include "launcherbackendtest.moc"
tests/plugins/Unity/Launcher/no-icon.desktopnew file+2
@@ -0,0 +1,2 @@
1+[Desktop Entry]
2+Name=No Icon
tests/plugins/Unity/Launcher/no-name.desktopnew file+2
@@ -0,0 +1,2 @@
1+[Desktop Entry]
2+Icon=no-name
tests/plugins/Unity/Launcher/rel-icon.desktopnew file+3
@@ -0,0 +1,3 @@
1+[Desktop Entry]
2+Name=Relative Icon
3+Icon=rel-icon
tests/plugins/Unity/filtersbindingstest.cpp+61−30
@@ -65,17 +65,17 @@ DeeModel* FiltersBindingsTest::createFilterModel()
6565
6666void FiltersBindingsTest::createMultiRangeFilter(DeeModel *model, const std::string &id, const std::string &name, int optionCount)
6767{
68− createFilter(model, "filter-multirange", id, name, optionCount);
68+ createFilter(model, "filter-multirange", id, name, optionCount, true);
6969}
7070
7171void FiltersBindingsTest::createRadioOptionFilter(DeeModel *model, const std::string &id, const std::string &name, int optionCount)
7272{
73− createFilter(model, "filter-radiooption", id, name, optionCount);
73+ createFilter(model, "filter-radiooption", id, name, optionCount, true);
7474}
7575
7676void FiltersBindingsTest::createCheckOptionFilter(DeeModel *model, const std::string &id, const std::string &name, int optionCount)
7777{
78− createFilter(model, "filter-checkoption", id, name, optionCount);
78+ createFilter(model, "filter-checkoption", id, name, optionCount, true);
7979}
8080
8181void FiltersBindingsTest::createRatingsFilter(DeeModel *model, const std::string &id, const std::string &name)
@@ -90,7 +90,7 @@ void FiltersBindingsTest::createRatingsFilter(DeeModel *model, const std::string
9090 GVariant *children[2];
9191 GVariant *key1 = g_variant_new_string("show-all-button");
9292 GVariant *key2 = g_variant_new_string("rating");
93− children[0] = g_variant_new_dict_entry(key1, g_variant_new_variant(g_variant_new_boolean(false)));
93+ children[0] = g_variant_new_dict_entry(key1, g_variant_new_variant(g_variant_new_boolean(true)));
9494 children[1] = g_variant_new_dict_entry(key2, g_variant_new_variant(g_variant_new_double(0.0f)));
9595 auto fhints = g_variant_new_array(G_VARIANT_TYPE("{sv}"), children, 2);
9696
@@ -102,7 +102,7 @@ void FiltersBindingsTest::createRatingsFilter(DeeModel *model, const std::string
102102 dee_model_append_row(model, row);
103103}
104104
105−void FiltersBindingsTest::createFilter(DeeModel *model, const std::string &renderer, const std::string &id, const std::string &name, int optionCount)
105+void FiltersBindingsTest::createFilter(DeeModel *model, const std::string &renderer, const std::string &id, const std::string &name, int optionCount, bool showAll)
106106{
107107 GVariant* row[8];
108108
@@ -114,7 +114,7 @@ void FiltersBindingsTest::createFilter(DeeModel *model, const std::string &rende
114114 GVariant *children[2];
115115 GVariant *key1 = g_variant_new_string("show-all-button");
116116 GVariant *key2 = g_variant_new_string("options");
117− children[0] = g_variant_new_dict_entry(key1, g_variant_new_variant(g_variant_new_boolean(false)));
117+ children[0] = g_variant_new_dict_entry(key1, g_variant_new_variant(g_variant_new_boolean(showAll)));
118118 children[1] = g_variant_new_dict_entry(key2, g_variant_new_variant(createOptions(optionCount)));
119119 auto fhints = g_variant_new_array(G_VARIANT_TYPE("{sv}"), children, 2);
120120
@@ -143,9 +143,9 @@ void FiltersBindingsTest::testMultiRangeFilter()
143143 auto multi_filter = dynamic_cast<MultiRangeFilter*>(bind_filter);
144144 QVERIFY(multi_filter != nullptr);
145145 auto options = multi_filter->options();
146− QCOMPARE(options->rowCount(), 1);
146+ QCOMPARE(options->rowCount(), 2);
147147
148− auto idx = options->index(0);
148+ auto idx = options->index(1);
149149 QVariant id_var = options->data(idx, GenericOptionsModel::RoleId);
150150 QVariant name_var = options->data(idx, GenericOptionsModel::RoleName);
151151 QVariant icon_var = options->data(idx, GenericOptionsModel::RoleIconHint);
@@ -168,9 +168,9 @@ void FiltersBindingsTest::testMultiRangeFilter()
168168 auto multi_filter = dynamic_cast<MultiRangeFilter*>(bind_filter);
169169 QVERIFY(multi_filter != nullptr);
170170 auto options = multi_filter->options();
171− QCOMPARE(options->rowCount(), 2);
171+ QCOMPARE(options->rowCount(), 3);
172172
173− auto idx = options->index(0);
173+ auto idx = options->index(1);
174174 QVariant id_var = options->data(idx, GenericOptionsModel::RoleId);
175175 QVariant name_var = options->data(idx, GenericOptionsModel::RoleName);
176176 QVariant icon_var = options->data(idx, GenericOptionsModel::RoleIconHint);
@@ -181,10 +181,10 @@ void FiltersBindingsTest::testMultiRangeFilter()
181181 QCOMPARE(icon_var.toString(), QString(""));
182182 QCOMPARE(active_var.toBool(), false);
183183
184− AbstractFilterOption* opt1 = options->getRawOption(0);
184+ AbstractFilterOption* opt1 = options->getRawOption(1);
185185 QCOMPARE(opt1->id(), QString("opt0"));
186186
187− AbstractFilterOption* opt2 = options->getRawOption(1);
187+ AbstractFilterOption* opt2 = options->getRawOption(2);
188188 QCOMPARE(opt2->id(), QString("opt1"));
189189
190190 delete multi_filter;
@@ -199,18 +199,21 @@ void FiltersBindingsTest::testMultiRangeFilter()
199199 auto multi_filter = dynamic_cast<MultiRangeFilter*>(bind_filter);
200200 QVERIFY(multi_filter != nullptr);
201201 auto options = multi_filter->options();
202− QCOMPARE(options->rowCount(), 3);
202+ QCOMPARE(options->rowCount(), 4);
203+
204+ AbstractFilterOption* showAll = options->getRawOption(0);
205+ QVERIFY(showAll->id().startsWith("show_all::"));
203206
204− AbstractFilterOption* opt0 = options->getRawOption(0);
207+ AbstractFilterOption* opt0 = options->getRawOption(1);
205208 QCOMPARE(opt0->id(), QString("opt0"));
206209
207− AbstractFilterOption* opt1 = options->getRawOption(1);
210+ AbstractFilterOption* opt1 = options->getRawOption(2);
208211 QCOMPARE(opt1->id(), QString("opt1"));
209212
210− AbstractFilterOption* opt2 = options->getRawOption(2);
213+ AbstractFilterOption* opt2 = options->getRawOption(3);
211214 QCOMPARE(opt2->id(), QString("opt2"));
212215
213− // verify combined filter options are bound to correct underlying unity options
216+ // verify filter options are bound to correct underlying unity options
214217 auto core_multi_filter = std::dynamic_pointer_cast<unity::dash::MultiRangeFilter>(core_filter);
215218 QCOMPARE(QString::fromStdString(core_multi_filter->options()[0]->id()), QString("opt0"));
216219 QCOMPARE(QString::fromStdString(core_multi_filter->options()[1]->id()), QString("opt1"));
@@ -274,7 +277,7 @@ void FiltersBindingsTest::testCheckOptionFilter()
274277 auto check_filter = dynamic_cast<CheckOptionFilter*>(bind_filter);
275278 QVERIFY(check_filter != nullptr);
276279 auto options = check_filter->options();
277− QCOMPARE(options->rowCount(), 3);
280+ QCOMPARE(options->rowCount(), 4);
278281
279282 QCOMPARE(check_filter->id(), QString("f1"));
280283 QCOMPARE(check_filter->name(), QString("Filter1"));
@@ -284,7 +287,7 @@ void FiltersBindingsTest::testCheckOptionFilter()
284287 QCOMPARE(check_filter->collapsed(), false);
285288 QCOMPARE(check_filter->filtering(), false);
286289
287− auto idx = options->index(0);
290+ auto idx = options->index(1);
288291 QVariant id_var = options->data(idx, GenericOptionsModel::RoleId);
289292 QVariant name_var = options->data(idx, GenericOptionsModel::RoleName);
290293 QVariant icon_var = options->data(idx, GenericOptionsModel::RoleIconHint);
@@ -295,7 +298,7 @@ void FiltersBindingsTest::testCheckOptionFilter()
295298 QCOMPARE(icon_var.toString(), QString(""));
296299 QCOMPARE(active_var.toBool(), false);
297300
298− idx = options->index(1);
301+ idx = options->index(2);
299302 id_var = options->data(idx, GenericOptionsModel::RoleId);
300303 name_var = options->data(idx, GenericOptionsModel::RoleName);
301304 icon_var = options->data(idx, GenericOptionsModel::RoleIconHint);
@@ -306,38 +309,55 @@ void FiltersBindingsTest::testCheckOptionFilter()
306309 QCOMPARE(icon_var.toString(), QString(""));
307310 QCOMPARE(active_var.toBool(), false);
308311
309− AbstractFilterOption* opt0 = options->getRawOption(0);
310− AbstractFilterOption* opt1 = options->getRawOption(1);
311− AbstractFilterOption* opt2 = options->getRawOption(2);
312+ AbstractFilterOption* showAll = options->getRawOption(0);
313+ AbstractFilterOption* opt0 = options->getRawOption(1);
314+ AbstractFilterOption* opt1 = options->getRawOption(2);
315+ AbstractFilterOption* opt2 = options->getRawOption(3);
312316
317+ QSignalSpy showAllSpy(showAll, SIGNAL(activeChanged(bool)));
313318 QSignalSpy opt0spy(opt0, SIGNAL(activeChanged(bool)));
314319 QSignalSpy opt1spy(opt1, SIGNAL(activeChanged(bool)));
315320 QSignalSpy opt2spy(opt2, SIGNAL(activeChanged(bool)));
316321 QSignalSpy dataChangedSpy(options, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&, const QVector<int>&)));
317322
318323 // test active property changes
324+ QCOMPARE(showAll->active(), false);
319325 QCOMPARE(opt0->active(), false);
320326 QCOMPARE(opt1->active(), false);
321327 QCOMPARE(opt2->active(), false);
322328
323329 opt0->setActive(true);
330+ QCOMPARE(showAllSpy.count(), 0);
324331 QCOMPARE(opt0spy.count(), 1);
325332 QCOMPARE(opt1spy.count(), 0);
326333 QCOMPARE(opt2spy.count(), 0);
334+ QCOMPARE(showAll->active(), false);
327335 QCOMPARE(opt0->active(), true);
328336 QCOMPARE(opt1->active(), false);
329337 QCOMPARE(opt2->active(), false);
330338
331339 opt1->setActive(true);
340+ QCOMPARE(showAllSpy.count(), 0);
332341 QCOMPARE(opt0spy.count(), 2);
333342 QCOMPARE(opt1spy.count(), 1);
334343 QCOMPARE(opt2spy.count(), 0);
344+ QCOMPARE(showAll->active(), false);
335345 QCOMPARE(opt0->active(), false);
336346 QCOMPARE(opt1->active(), true);
337347 QCOMPARE(opt2->active(), false);
338348
339349 QCOMPARE(dataChangedSpy.count(), 3);
340350
351+ showAll->setActive(true);
352+ QCOMPARE(showAllSpy.count(), 1);
353+ QCOMPARE(opt0spy.count(), 2);
354+ QCOMPARE(opt1spy.count(), 2);
355+ QCOMPARE(opt2spy.count(), 0);
356+ QCOMPARE(showAll->active(), true);
357+ QCOMPARE(opt0->active(), false);
358+ QCOMPARE(opt1->active(), false);
359+ QCOMPARE(opt2->active(), false);
360+
341361 delete check_filter;
342362 }
343363}
@@ -357,7 +377,7 @@ void FiltersBindingsTest::testRadioOptionFilter()
357377 auto radio_filter = dynamic_cast<RadioOptionFilter*>(bind_filter);
358378 QVERIFY(radio_filter != nullptr);
359379 auto options = radio_filter->options();
360− QCOMPARE(options->rowCount(), 3);
380+ QCOMPARE(options->rowCount(), 4);
361381
362382 auto idx = options->index(0);
363383 QVariant id_var = options->data(idx, GenericOptionsModel::RoleId);
@@ -365,12 +385,23 @@ void FiltersBindingsTest::testRadioOptionFilter()
365385 QVariant icon_var = options->data(idx, GenericOptionsModel::RoleIconHint);
366386 QVariant active_var = options->data(idx, GenericOptionsModel::RoleActive);
367387
388+ QVERIFY(id_var.toString().startsWith("show_all::"));
389+ QVERIFY(name_var.toString().size() > 0);
390+ QCOMPARE(icon_var.toString(), QString(""));
391+ QCOMPARE(active_var.toBool(), false);
392+
393+ idx = options->index(1);
394+ id_var = options->data(idx, GenericOptionsModel::RoleId);
395+ name_var = options->data(idx, GenericOptionsModel::RoleName);
396+ icon_var = options->data(idx, GenericOptionsModel::RoleIconHint);
397+ active_var = options->data(idx, GenericOptionsModel::RoleActive);
398+
368399 QCOMPARE(id_var.toString(), QString("opt0"));
369400 QCOMPARE(name_var.toString(), QString("Option 0"));
370401 QCOMPARE(icon_var.toString(), QString(""));
371402 QCOMPARE(active_var.toBool(), false);
372403
373− idx = options->index(1);
404+ idx = options->index(2);
374405 id_var = options->data(idx, GenericOptionsModel::RoleId);
375406 name_var = options->data(idx, GenericOptionsModel::RoleName);
376407 icon_var = options->data(idx, GenericOptionsModel::RoleIconHint);
@@ -381,9 +412,9 @@ void FiltersBindingsTest::testRadioOptionFilter()
381412 QCOMPARE(icon_var.toString(), QString(""));
382413 QCOMPARE(active_var.toBool(), false);
383414
384− AbstractFilterOption* opt0 = options->getRawOption(0);
385− AbstractFilterOption* opt1 = options->getRawOption(1);
386− AbstractFilterOption* opt2 = options->getRawOption(2);
415+ AbstractFilterOption* opt0 = options->getRawOption(1);
416+ AbstractFilterOption* opt1 = options->getRawOption(2);
417+ AbstractFilterOption* opt2 = options->getRawOption(3);
387418
388419 QSignalSpy opt0spy(opt0, SIGNAL(activeChanged(bool)));
389420 QSignalSpy opt1spy(opt1, SIGNAL(activeChanged(bool)));
@@ -432,11 +463,11 @@ void FiltersBindingsTest::testRatingsFilter()
432463 auto rating_filter = dynamic_cast<RatingsFilter*>(bind_filter);
433464 QVERIFY(rating_filter != nullptr);
434465 auto options = rating_filter->options();
435− QCOMPARE(options->rowCount(), 5);
466+ QCOMPARE(options->rowCount(), 6);
436467
437468 RatingFilterOption* opt[5];
438469 for (int i = 0; i<5; i++) {
439− opt[i] = dynamic_cast<RatingFilterOption *>(options->getRawOption(i));
470+ opt[i] = dynamic_cast<RatingFilterOption *>(options->getRawOption(i+1));
440471 }
441472
442473 QSignalSpy opt0spy(opt[0], SIGNAL(activeChanged(bool)));
tests/plugins/Unity/filtersbindingstest.h+1−1
@@ -41,7 +41,7 @@ class FiltersBindingsTest : public QObject
4141 void createCheckOptionFilter(DeeModel *model, const std::string &id, const std::string &name, int optionCount);
4242 void createRadioOptionFilter(DeeModel *model, const std::string &id, const std::string &name, int optionCount);
4343 void createRatingsFilter(DeeModel *model, const std::string &id, const std::string &name);
44− void createFilter(DeeModel *model, const std::string &renderer, const std::string &id, const std::string &name, int optionCount);
44+ void createFilter(DeeModel *model, const std::string &renderer, const std::string &id, const std::string &name, int optionCount, bool showAll);
4545};
4646
4747#endif // FILTERSBINDINGSTEST_H
tests/qmltests/CMakeLists.txt+1
@@ -31,6 +31,7 @@ add_qml_test(. Shell IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_
3131 ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/liblightdm/single")
3232add_manual_qml_test(Components DragHandle IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
3333add_qml_test(Components DraggingArea)
34+add_qml_test(Components EdgeDemoOverlay)
3435add_qml_test(Components FilterGrid)
3536add_qml_test(Components ResponsiveFlowView)
3637add_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+4−6
@@ -249,11 +249,10 @@ Item {
249249 name: "LauncherInit"
250250 when: windowShown
251251
252− /*
253− * FIXME: There is a bug in ListView which makes it snap to an item
254− * instead of the edge at startup. Enable this test once our patch for
255− * ListView has landed upstream.
256− * https://bugreports.qt-project.org/browse/QTBUG-32251
252+ function initTestCase() {
253+ var listView = findChild(launcher, "launcherListView");
254+ tryCompare(listView, "flicking", false)
255+ }
257256
258257 function test_initFirstUnfolded() {
259258
@@ -267,7 +266,6 @@ Item {
267266 // Now do check that snapping is in fact enabled
268267 compare(listView.snapMode, ListView.SnapToItem, "Snapping is not enabled");
269268 }
270− */
271269 }
272270
273271 UT.UnityTestCase {