on xenial help sign in
Merged trunk.
commit5616be6b5bef6d0ac8dc6cf326218d65e42c9a21 authorPawel Stolowski <pawel.stolowski@canonical.com> dateThu 29 Aug 2013, 11:19 (13 years ago) parent2c12ffa66f6384
146 files changed+5863−2267
Bottombar/Bottombar.qml+60−6 Bottombar/HudButton.qml+8−8 Components/EdgeDemo.qml+231 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/Lockscreen.qml+8 Launcher/FoldingLauncherDelegate.qml+35−24 Launcher/Launcher.qml+13−3 Launcher/LauncherDelegate.qml+2−2 Launcher/LauncherPanel.qml+33−15 Launcher/QuicklistForegroundStyle.qml+23 Launcher/graphics/quicklist_tooltip@30.png Panel/Indicators.qml+4−2 Panel/IndicatorsDataModel.qml+6 Shell.qml+31−6 build+2−1 debian/changelog+157 debian/control+2 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 main.cpp−1 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+17 plugins/AccountsService/plugin.cpp+35 plugins/AccountsService/plugin.h+34 plugins/AccountsService/qmldir+3 plugins/CMakeLists.txt+4−3 plugins/HudClient/qmldir+1 plugins/LightDM/plugin.cpp+1−1 plugins/Powerd/plugin.cpp+1−1 plugins/Ubuntu/DownloadDaemonListener/plugin.cpp+1−1 plugins/Unity/Indicators/Network/plugin.cpp+1−1 plugins/Unity/Indicators/Network/qml/AccessPoint.qml+18−8 plugins/Unity/Indicators/Network/qml/PasswordPage.qml+1−1 plugins/Unity/Indicators/Network/qml/WifiSection.qml−28 plugins/Unity/Indicators/Network/qml/qmldir+1−2 plugins/Unity/Indicators/indicatorsmodel.cpp+2−2 plugins/Unity/Indicators/plugin.cpp+1−1 plugins/Unity/Indicators/qml/BaseMenuItem.qml−4 plugins/Unity/Indicators/qml/ButtonMenuItem.qml+4−9 plugins/Unity/Indicators/qml/FramedMenuItem.qml−2 plugins/Unity/Indicators/qml/IndicatorPage.qml+4−9 plugins/Unity/Indicators/qml/MenuAction.qml−59 plugins/Unity/Indicators/qml/MenuItemFactory.qml+124−7 plugins/Unity/Indicators/qml/ProgressMenuItem.qml+1−8 plugins/Unity/Indicators/qml/SectionMenuItem.qml+3−3 plugins/Unity/Indicators/qml/SliderMenuItem.qml+8−23 plugins/Unity/Indicators/qml/StandardMenuItem.qml+5−10 plugins/Unity/Indicators/qml/SwitchMenuItem.qml+3−8 plugins/Unity/Indicators/qml/qmldir−1 plugins/Unity/IndicatorsLegacy/Network/plugin.cpp+1−1 plugins/Unity/IndicatorsLegacy/plugin.cpp+1−1 plugins/Unity/Launcher/backend/launcherbackend.cpp+9−3 plugins/Unity/Launcher/launchermodel.cpp+34 plugins/Unity/Launcher/launchermodel.h+5 plugins/Unity/Launcher/plugin.cpp+1−1 plugins/Unity/genericoptionsmodel.cpp+2−2 plugins/Unity/genericoptionsmodel.h+1−1 plugins/Unity/plugin.cpp+4−1 plugins/Utils/plugin.cpp+1−1 po/ar.po+80−45 po/az.po+59−45 po/bg.po+62−45 po/ca.po+80−45 po/de.po+80−45 po/el.po+59−45 po/en_AU.po+80−45 po/en_GB.po+80−45 po/eo.po+53−45 po/es.po+80−45 po/fi.po+91−56 po/fo.po+59−45 po/fr.po+56−45 po/gl.po+80−45 po/he.po+59−45 po/hr.po+59−45 po/hu.po+68−45 po/hy.po+80−45 po/id.po+53−45 po/it.po+59−45 po/ja.po+53−45 po/kn.po+59−45 po/ko.po+74−45 po/ky.po+59−45 po/lv.po+59−45 po/my.po+59−45 po/nb.po+68−45 po/nl.po+59−45 po/pl.po+80−45 po/pt_BR.po+59−45 po/ro.po+59−45 po/ru.po+80−45 po/si.po+53−45 po/sl.po+74−45 po/sr.po+59−45 po/sv.po+53−45 po/te.po+56−45 po/tr.po+80−45 po/ug.po+80−45 po/uk.po+80−45 po/unity8.pot+51−43 po/zh_CN.po+80−45 po/zh_TW.po+80−45 tests/autopilot/unity8/shell/emulators/create_interactive_notification.py+102 tests/autopilot/unity8/shell/tests/__init__.py+20−20 tests/autopilot/unity8/shell/tests/test_lock_screen.py+2 tests/autopilot/unity8/shell/tests/test_notifications.py+737 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/GSettings.1.0/fake_gsettings.h+1−1 tests/mocks/GSettings.1.0/plugin.cpp+1−1 tests/mocks/Powerd/plugin.cpp+1−1 tests/mocks/Ubuntu/DownloadDaemonListener/plugin.cpp−1 tests/mocks/Unity/Indicators/fakeplugin.cpp+1−1 tests/mocks/Unity/Launcher/MockLauncherModel.cpp+6 tests/mocks/Unity/Launcher/MockLauncherModel.h+1 tests/mocks/Unity/fake_unity_plugin.cpp+2−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/qmltests/CMakeLists.txt+1 tests/qmltests/Components/tst_EdgeDemoOverlay.qml+123 tests/qmltests/Launcher/tst_Launcher.qml+12−10 tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.h+1−1 tests/utils/modules/Unity/Test/UnityTestCase.qml+21−2
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+231
@@ -0,0 +1,231 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import AccountsService 0.1
18+import LightDM 0.1 as LightDM
19+import QtQuick 2.0
20+
21+Item {
22+ id: demo
23+
24+ property Item greeter
25+ property Item dash
26+ property Item launcher
27+ property Item indicators
28+ property Item underlay
29+
30+ property bool launcherEnabled: true
31+ property bool dashEnabled: true
32+ property bool panelEnabled: true
33+ property bool panelContentEnabled: true
34+
35+ property bool paused: false
36+
37+ onPausedChanged: {
38+ if (d.rightEdgeDemo) d.rightEdgeDemo.paused = paused
39+ if (d.topEdgeDemo) d.topEdgeDemo.paused = paused
40+ if (d.bottomEdgeDemo) d.bottomEdgeDemo.paused = paused
41+ if (d.leftEdgeDemo) d.leftEdgeDemo.paused = paused
42+ if (d.finalEdgeDemo) d.finalEdgeDemo.paused = paused
43+ }
44+
45+ function hideEdgeDemoInShell() {
46+ var user = LightDM.Users.data(greeter.currentIndex, LightDM.UserRoles.NameRole);
47+ AccountsService.setUserProperty(user, "demo-edges", false);
48+ d.showEdgeDemo = false;
49+ stopDemo();
50+ }
51+
52+ function hideEdgeDemoInGreeter() {
53+ // TODO: AccountsService.setUserProperty("lightdm", "demo-edges", false);
54+ d.showEdgeDemoInGreeter = false;
55+ }
56+
57+ function hideEdgeDemos() {
58+ hideEdgeDemoInGreeter();
59+ hideEdgeDemoInShell();
60+ }
61+
62+ function stopDemo() {
63+ launcherEnabled = true
64+ dashEnabled = true
65+ panelEnabled = true
66+ panelContentEnabled = true
67+ if (d.rightEdgeDemo) d.rightEdgeDemo.destroy()
68+ if (d.topEdgeDemo) d.topEdgeDemo.destroy()
69+ if (d.bottomEdgeDemo) d.bottomEdgeDemo.destroy()
70+ if (d.leftEdgeDemo) d.leftEdgeDemo.destroy()
71+ if (d.finalEdgeDemo) d.finalEdgeDemo.destroy()
72+ }
73+
74+ QtObject {
75+ id: d
76+ property Component overlay
77+ property QtObject rightEdgeDemo
78+ property QtObject topEdgeDemo
79+ property QtObject bottomEdgeDemo
80+ property QtObject leftEdgeDemo
81+ property QtObject finalEdgeDemo
82+ property bool showEdgeDemo: false
83+ property bool showEdgeDemoInGreeter: d.showEdgeDemo // TODO: AccountsService.getUserProperty("lightdm", "demo-edges")
84+
85+ onShowEdgeDemoInGreeterChanged: {
86+ if (!d.overlay && d.showEdgeDemoInGreeter) {
87+ d.overlay = Qt.createComponent("EdgeDemoOverlay.qml")
88+ startRightEdgeDemo()
89+ }
90+ }
91+ }
92+
93+ function startRightEdgeDemo() {
94+ launcherEnabled = false;
95+ demo.dashEnabled = false;
96+ demo.panelEnabled = false;
97+ demo.panelContentEnabled = false;
98+ if (demo.greeter) {
99+ d.rightEdgeDemo = d.overlay.createObject(demo.greeter, {
100+ "edge": "right",
101+ "title": i18n.tr("Right edge"),
102+ "text": i18n.tr("Try swiping from the right edge to unlock the phone"),
103+ "anchors.fill": demo.greeter,
104+ });
105+ }
106+ if (d.rightEdgeDemo) {
107+ d.rightEdgeDemo.onSkip.connect(demo.hideEdgeDemos)
108+ } else {
109+ stopDemo();
110+ }
111+ }
112+
113+ Connections {
114+ target: demo.greeter
115+
116+ function hide() {
117+ if (d.rightEdgeDemo && d.rightEdgeDemo.available) {
118+ d.rightEdgeDemo.hide()
119+ hideEdgeDemoInGreeter()
120+ startTopEdgeDemo()
121+ }
122+ }
123+
124+ onUnlocked: hide()
125+ onShownChanged: if (!greeter.shown) hide()
126+
127+ onSelected: {
128+ var user = LightDM.Users.data(uid, LightDM.UserRoles.NameRole)
129+ d.showEdgeDemo = AccountsService.getUserProperty(user, "demo-edges")
130+ }
131+ }
132+
133+ function startTopEdgeDemo() {
134+ demo.panelEnabled = true;
135+ if (demo.dash && demo.underlay) {
136+ d.topEdgeDemo = d.overlay.createObject(demo.underlay, {
137+ "edge": "top",
138+ "title": i18n.tr("Top edge"),
139+ "text": i18n.tr("Try swiping from the top edge to access the indicators"),
140+ "anchors.fill": demo.dash,
141+ });
142+ }
143+ if (d.topEdgeDemo) {
144+ d.topEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
145+ } else {
146+ stopDemo();
147+ }
148+ }
149+
150+ Connections {
151+ target: demo.indicators
152+ onFullyOpenedChanged: {
153+ if (d.topEdgeDemo && d.topEdgeDemo.available && demo.indicators.fullyOpened) {
154+ d.topEdgeDemo.hideNow()
155+ startBottomEdgeDemo()
156+ }
157+ }
158+ }
159+
160+ function startBottomEdgeDemo() {
161+ if (demo.indicators) {
162+ d.bottomEdgeDemo = d.overlay.createObject(demo.indicators, {
163+ "edge": "bottom",
164+ "title": i18n.tr("Close"),
165+ "text": i18n.tr("Swipe up again to close the settings screen"),
166+ "anchors.fill": demo.indicators,
167+ });
168+ }
169+ if (d.bottomEdgeDemo) {
170+ d.bottomEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
171+ } else {
172+ stopDemo();
173+ }
174+ }
175+
176+ Connections {
177+ target: demo.indicators
178+ onPartiallyOpenedChanged: {
179+ if (d.bottomEdgeDemo && d.bottomEdgeDemo.available && !demo.indicators.partiallyOpened && !demo.indicators.fullyOpened) {
180+ d.bottomEdgeDemo.hideNow()
181+ startLeftEdgeDemo()
182+ }
183+ }
184+ }
185+
186+ function startLeftEdgeDemo() {
187+ demo.panelEnabled = false;
188+ demo.launcherEnabled = true;
189+ if (demo.dash && demo.underlay) {
190+ d.leftEdgeDemo = d.overlay.createObject(demo.underlay, {
191+ "edge": "left",
192+ "title": i18n.tr("Left edge"),
193+ "text": i18n.tr("Swipe from the left to reveal the launcher for quick access to apps"),
194+ "anchors.fill": demo.dash,
195+ });
196+ }
197+ if (d.leftEdgeDemo) {
198+ d.leftEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
199+ } else {
200+ stopDemo();
201+ }
202+ }
203+
204+ Connections {
205+ target: demo.launcher
206+ onStateChanged: {
207+ if (d.leftEdgeDemo && d.leftEdgeDemo.available && launcher.state == "visible") {
208+ d.leftEdgeDemo.hide()
209+ launcher.hide()
210+ startFinalEdgeDemo()
211+ }
212+ }
213+ }
214+
215+ function startFinalEdgeDemo() {
216+ demo.launcherEnabled = false;
217+ if (demo.dash && demo.underlay) {
218+ d.finalEdgeDemo = d.overlay.createObject(demo.underlay, {
219+ "edge": "none",
220+ "title": i18n.tr("Well done"),
221+ "text": i18n.tr("You have now mastered the edge gestures and can start using the phone"),
222+ "anchors.fill": demo.dash,
223+ });
224+ }
225+ if (d.finalEdgeDemo) {
226+ d.finalEdgeDemo.onSkip.connect(demo.hideEdgeDemoInShell)
227+ } else {
228+ stopDemo();
229+ }
230+ }
231+}
Components/EdgeDemoOverlay.qmlnew file+256
@@ -0,0 +1,256 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import Powerd 0.1
18+import QtQuick 2.0
19+import QtGraphicalEffects 1.0
20+import Ubuntu.Application 0.1
21+import Ubuntu.Components 0.1
22+
23+Showable {
24+ id: overlay
25+
26+ /*
27+ * Valid values are "left", "right", "top", "bottom", or "none".
28+ */
29+ property string edge: "top"
30+
31+ /*
32+ * This is the header displayed, like "Right edge".
33+ */
34+ property alias title: titleLabel.text
35+
36+ /*
37+ * This is the block of text displayed below the header.
38+ */
39+ property alias text: textLabel.text
40+
41+ /*
42+ * This is the text for the skip button.
43+ */
44+ property alias skipText: skipLabel.text
45+
46+ /*
47+ * Whether this demo is running currently.
48+ */
49+ readonly property bool active: available && visible
50+
51+ /*
52+ * Whether animations are paused.
53+ */
54+ property alias paused: wholeAnimation.paused
55+
56+ /*
57+ * Whether animations are running.
58+ */
59+ readonly property alias running: wholeAnimation.running
60+
61+ signal skip()
62+
63+ function doSkip() {
64+ d.skipOnHide = true;
65+ hide();
66+ }
67+
68+ function hideNow() {
69+ overlay.visible = false;
70+ overlay.available = false;
71+ if (d.skipOnHide) {
72+ overlay.skip();
73+ }
74+ }
75+
76+ showAnimation: StandardAnimation {
77+ property: "opacity"
78+ to: 1
79+ onRunningChanged: if (running) overlay.visible = true
80+ }
81+ hideAnimation: StandardAnimation {
82+ property: "opacity"
83+ to: 0
84+ duration: UbuntuAnimation.BriskDuration
85+ onRunningChanged: if (!running) overlay.hideNow()
86+ }
87+
88+ QtObject {
89+ id: d
90+ property bool skipOnHide: false
91+ property int edgeMargin: units.gu(4)
92+ }
93+
94+ Rectangle {
95+ objectName: "backgroundShade"
96+
97+ anchors.fill: parent
98+ color: "black"
99+ opacity: 0.8
100+ visible: overlay.active
101+
102+ MouseArea {
103+ anchors.fill: parent
104+ enabled: overlay.edge == "none" && overlay.opacity == 1.0
105+ onClicked: overlay.doSkip()
106+ }
107+ }
108+
109+ Item {
110+ id: hintGroup
111+ x: 0
112+ y: 0
113+ width: parent.width
114+ height: parent.height
115+ visible: overlay.active
116+
117+ Column {
118+ id: labelGroup
119+ layer.enabled: true // otherwise the underlining on "Skip intro" jumps
120+ spacing: units.gu(3)
121+
122+ anchors {
123+ margins: d.edgeMargin
124+ left: parent.left
125+ top: overlay.edge == "bottom" ? undefined : parent.top
126+ bottom: overlay.edge == "bottom" ? parent.bottom : undefined
127+ }
128+
129+ Label {
130+ id: titleLabel
131+ fontSize: "x-large"
132+ width: units.gu(25)
133+ wrapMode: Text.WordWrap
134+ }
135+
136+ Label {
137+ id: textLabel
138+ width: units.gu(25)
139+ wrapMode: Text.WordWrap
140+ }
141+
142+ Label {
143+ id: skipLabel
144+ objectName: "skipLabel"
145+ text: i18n.tr("Skip intro")
146+ color: UbuntuColors.orange
147+ fontSize: "small"
148+ font.underline: true
149+
150+ MouseArea {
151+ anchors.fill: parent
152+ onClicked: overlay.doSkip()
153+ }
154+ }
155+ }
156+
157+ LinearGradient {
158+ id: edgeHint
159+ property int size: 1
160+ cached: false
161+ visible: overlay.edge != "none"
162+ gradient: Gradient {
163+ GradientStop {
164+ position: 0.0
165+ color: Qt.hsla(16.0/360.0, 0.83, 0.47, 0.4) // UbuntuColors.orange, but transparent
166+ }
167+ GradientStop {
168+ position: 1.0
169+ color: "transparent"
170+ }
171+ }
172+ anchors.fill: parent
173+ start: {
174+ if (overlay.edge == "right") {
175+ return Qt.point(width, 0);
176+ } else if (overlay.edge == "left") {
177+ return Qt.point(0, 0);
178+ } else if (overlay.edge == "top") {
179+ return Qt.point(0, 0);
180+ } else {
181+ return Qt.point(0, height);
182+ }
183+ }
184+ end: {
185+ if (overlay.edge == "right") {
186+ return Qt.point(width - size, 0);
187+ } else if (overlay.edge == "left") {
188+ return Qt.point(size, 0);
189+ } else if (overlay.edge == "top") {
190+ return Qt.point(0, size);
191+ } else {
192+ return Qt.point(0, height - size);
193+ }
194+ }
195+ }
196+ }
197+
198+ SequentialAnimation {
199+ id: wholeAnimation
200+ objectName: "wholeAnimation"
201+ running: overlay.active
202+
203+ ParallelAnimation {
204+ id: fadeInAnimation
205+
206+ StandardAnimation {
207+ target: labelGroup
208+ property: {
209+ if (overlay.edge == "right" || overlay.edge == "left") {
210+ return "anchors.leftMargin";
211+ } else if (overlay.edge == "bottom") {
212+ return "anchors.bottomMargin";
213+ } else {
214+ return "anchors.topMargin";
215+ }
216+ }
217+ from: {
218+ if (overlay.edge == "right") {
219+ return d.edgeMargin + units.gu(3)
220+ } else {
221+ return d.edgeMargin - units.gu(3)
222+ }
223+ }
224+ to: d.edgeMargin
225+ duration: overlay.edge == "none" ? 0 : UbuntuAnimation.SleepyDuration
226+ }
227+ StandardAnimation {
228+ target: overlay
229+ property: "opacity"
230+ from: 0.0
231+ to: 1.0
232+ duration: UbuntuAnimation.SleepyDuration
233+ }
234+ }
235+
236+ SequentialAnimation {
237+ id: hintAnimation
238+ loops: Animation.Infinite
239+ property string prop: (overlay.edge == "left" || overlay.edge == "right") ? "x" : "y"
240+ property double endVal: units.dp(5) * ((overlay.edge == "left" || overlay.edge == "top") ? 1 : -1)
241+ property double maxGlow: units.dp(20)
242+ property int duration: overlay.edge == "none" ? 0 : UbuntuAnimation.SleepyDuration
243+
244+ ParallelAnimation {
245+ StandardAnimation { target: hintGroup; property: hintAnimation.prop; from: 0; to: hintAnimation.endVal; duration: hintAnimation.duration }
246+ StandardAnimation { target: edgeHint; property: "size"; from: 1; to: hintAnimation.maxGlow; duration: hintAnimation.duration }
247+ }
248+
249+ // Undo the above
250+ ParallelAnimation {
251+ StandardAnimation { target: hintGroup; property: hintAnimation.prop; from: hintAnimation.endVal; to: 0; duration: hintAnimation.duration }
252+ StandardAnimation { target: edgeHint; property: "size"; from: hintAnimation.maxGlow; to: 1; duration: hintAnimation.duration }
253+ }
254+ }
255+ }
256+}
Dash/Apps/FrequentlyUsedAppsModel.qml+38−8
@@ -18,23 +18,43 @@ import QtQuick 2.0
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/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
Launcher/FoldingLauncherDelegate.qml+35−24
@@ -26,21 +26,21 @@ LauncherDelegate {
2626 if (index == 0 || index == priv.listView.count-1) {
2727 if (priv.distanceFromEdge < 0) {
2828 // proportion equation: distanceFromTopEdge : angle = totalUnfoldedHeight/2 : maxAngle
29− return Math.max(-maxAngle, priv.distanceFromEdge * maxAngle / (priv.listView.foldingAreaHeight)) * priv.orientationFlag
29+ return Math.max(-maxAngle, priv.distanceFromEdge * maxAngle / (priv.foldingAreaHeight)) * priv.orientationFlag
3030 }
3131 return 0; // Don't fold first/last item as long as inside the view
3232 }
3333
34− // Are we in the already completely outside the flickable? Fold for the last 5 degrees
35− if (priv.distanceFromEdge < 0) {
36− // proportion equation: -distanceFromTopEdge : angle = totalUnfoldedHeight : 5
37− return Math.max(-maxAngle, (priv.distanceFromEdge * 5 / priv.listView.foldingAreaHeight) - (maxAngle-5)) * priv.orientationFlag
34+ // We reached the folded area... fold the last 5 degrees
35+ if (priv.overlapWithFoldedArea > 0) {
36+ // proportion equation: overlap : x = height : 5
37+ return ((maxAngle - 5) + (priv.overlapWithFoldedArea * 5 / priv.foldingAreaHeight)) * -priv.orientationFlag
3838 }
3939
4040 // We are overlapping with the folding area, fold the icon to maxAngle - 5 degrees
4141 if (priv.overlapWithFoldingArea > 0) {
4242 // proportion equation: overlap: totalHeight = angle : (maxAngle - 5)
43− return -priv.overlapWithFoldingArea * (maxAngle -5) / priv.listView.foldingAreaHeight * priv.orientationFlag;
43+ return -priv.overlapWithFoldingArea * (maxAngle -5) / priv.foldingAreaHeight * priv.orientationFlag;
4444 }
4545 return 0;
4646 }
@@ -61,9 +61,9 @@ LauncherDelegate {
6161 return (-priv.distanceFromEdge - (root.height - effectiveHeight)) * priv.orientationFlag;
6262 }
6363
64− // We're touching the edge, move slower than the actual flicking speed.
65− if (priv.distanceFromEdge < 0) {
66− return (Math.abs(priv.distanceFromEdge) * priv.totalEffectiveHeight / priv.totalUnfoldedHeight) * priv.orientationFlag
64+ // We stopped folding, move slower than the actual flicking speed.
65+ if (priv.overlapWithFoldedArea > 0) {
66+ return (priv.overlapWithFoldedArea * priv.totalEffectiveHeight / (priv.totalUnfoldedHeight + priv.listView.foldingStopHeight)) * priv.orientationFlag;
6767 }
6868 return 0;
6969 }
@@ -72,22 +72,23 @@ LauncherDelegate {
7272 // First/last items are special
7373 if (index == 0 || index == priv.listView.count-1) {
7474 if (priv.distanceFromEdge < 0) {
75− // Fade from 1 to 0 in the distance of 3 * foldingAreaHeight (which is when the next item reaches the edge)
76− return 1.0 - (-priv.distanceFromEdge / (priv.listView.foldingAreaHeight * 3))
75+ // Fade from 1 to 0 while traversing a distance of 2*foldingAreaHeight
76+ // proportion equation: 0.5 : x = -2*foldingAreaHeight : distance
77+ return 1 + (priv.distanceFromEdge / (priv.foldingAreaHeight * 2))
7778 }
7879 return 1; // Don't make first/last item transparent as long as inside the view
7980 }
8081
81− // Are we already completely outside the flickable? Fade from 0.75 to 0 in 2 items height
82− if (priv.distanceFromEdge < 0) {
83− // proportion equation: -distanceFromEdge : 1-opacity = totalUnfoldedHeight : 0.75
84− return 0.75 - (-priv.distanceFromEdge * 0.75 / (priv.totalUnfoldedHeight*2))
82+ // Did we stop folding? Fade out to 0 in 2*foldingAreaHeight
83+ if (priv.overlapWithFoldedArea > 0) {
84+ // overlap : foldingAreaHeight = opacity : 0.75
85+ return 0.75 - (priv.overlapWithFoldedArea * 0.75 / (priv.foldingAreaHeight * 2));
8586 }
8687
87− // We are overlapping with the folding area, fade out to 0.75
88+ // We are overlapping with the folding area, fade out to 0.75 transparency
8889 if (priv.overlapWithFoldingArea > 0) {
8990 // proportion equation: overlap : totalHeight = 1-opacity : 0.25
90− return 1 - (priv.overlapWithFoldingArea * 0.25 / priv.listView.foldingAreaHeight)
91+ return 1 - (priv.overlapWithFoldingArea * 0.25 / priv.foldingAreaHeight)
9192 }
9293 return 1;
9394 }
@@ -95,19 +96,27 @@ LauncherDelegate {
9596 brightness: {
9697 // First/last items are special
9798 if (index == 0 || index == priv.listView.count-1) {
99+
100+ // Traversed one foldingAreaHeight. Stop at 0.3
101+ if (priv.distanceFromEdge < -priv.foldingAreaHeight) {
102+ return -0.3
103+ }
104+
105+ // We started moving, fade to 0.3
98106 if (priv.distanceFromEdge < 0) {
99− return -(-priv.distanceFromEdge / (priv.listView.foldingAreaHeight * 3))
107+ return -0.3 * (-priv.distanceFromEdge / (priv.foldingAreaHeight))
100108 }
101109 return 0;
102110 }
103− // Are we already completely outside the flickable? Fade from 0.7 to 0 in 2 items height
104− if (priv.distanceFromEdge < 0) {
105− return -0.3 - (-priv.distanceFromEdge * 0.1 / (priv.totalUnfoldedHeight*2))
111+
112+ // We stopped folding? Stop brightness change at 0.3
113+ if (priv.overlapWithFoldedArea > 0) {
114+ return -0.3;
106115 }
107116
108− // We are overlapping with the folding area, fade out to 0.7
117+ // We are overlapping with the folding area, fade out to 0.3
109118 if (priv.overlapWithFoldingArea > 0) {
110− return - (priv.overlapWithFoldingArea * 0.3 / priv.listView.foldingAreaHeight)
119+ return - (priv.overlapWithFoldingArea * 0.3 / priv.listView.foldingStartHeight);
111120 }
112121 return 0;
113122 }
@@ -127,7 +136,9 @@ LauncherDelegate {
127136 property real distanceFromEdge: Math.abs(distanceFromBottomEdge) < Math.abs(distanceFromTopEdge) ? distanceFromBottomEdge : distanceFromTopEdge
128137 property real orientationFlag: Math.abs(distanceFromBottomEdge) < Math.abs(distanceFromTopEdge) ? -1 : 1
129138
130− property real overlapWithFoldingArea: listView.foldingAreaHeight - distanceFromEdge
139+ property real overlapWithFoldingArea: listView.foldingStartHeight - distanceFromEdge
140+ property real overlapWithFoldedArea: listView.foldingStopHeight - distanceFromEdge
141+ property real foldingAreaHeight: listView.foldingStartHeight - listView.foldingStopHeight
131142 }
132143
133144}
Launcher/Launcher.qml+13−3
@@ -26,9 +26,11 @@ Item {
2626
2727 property bool available: true // can be used to disable all interactions
2828
29− property int panelWidth: units.gu(8.5)
29+ 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+2−2
@@ -80,7 +80,7 @@ Item {
8080 top: parent.top
8181 margins: -units.dp(1)
8282 }
83− width: Math.min(units.gu(7.5), Math.max(units.gu(3), countLabel.implicitWidth + units.gu(2.5)))
83+ width: Math.min(root.itemWidth, Math.max(units.gu(3), countLabel.implicitWidth + units.gu(2.5)))
8484 height: units.gu(3)
8585 source: "graphics/notification.sci"
8686 visible: root.count > 0
@@ -89,7 +89,7 @@ Item {
8989 id: countLabel
9090 text: root.count
9191 anchors.centerIn: parent
92− width: units.gu(6)
92+ width: root.itemWidth - units.gu(1)
9393 horizontalAlignment: Text.AlignHCenter
9494 elide: Text.ElideRight
9595 color: "white"
Launcher/LauncherPanel.qml+33−15
@@ -62,7 +62,7 @@ Item {
6262 z: 1
6363 Image {
6464 objectName: "dashItem"
65− width: units.gu(5.5)
65+ width: units.gu(5)
6666 height: width
6767 anchors.centerIn: parent
6868 source: "graphics/home.png"
@@ -110,12 +110,27 @@ 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
116− property int foldingAreaHeight: itemHeight * 0.75
117− property int itemWidth: width
118− property int itemHeight: width * 7.5 / 8
129+ property int foldingStartHeight: units.gu(6.5)
130+ // The height of the area where the items reach the final folding angle
131+ property int foldingStopHeight: foldingStartHeight - itemHeight - spacing
132+ property int itemWidth: units.gu(7)
133+ property int itemHeight: units.gu(6.5)
119134 property int clickFlickSpeed: units.gu(60)
120135 property int draggedIndex: dndArea.draggedIndex
121136 property real realContentY: contentY - originY + topMargin
@@ -142,9 +157,8 @@ Item {
142157 count: model.count
143158 progress: model.progress
144159 inverted: root.inverted
145− highlighted: dragging && index === root.highlightIndex
146160 z: -Math.abs(offset)
147− maxAngle: 60
161+ maxAngle: 55
148162 property bool dragging: false
149163
150164 ThinDivider {
@@ -235,7 +249,9 @@ Item {
235249 NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.FastDuration }
236250 NumberAnimation { properties: "itemOpacity"; duration: UbuntuAnimation.BriskDuration }
237251 SequentialAnimation {
252+ ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
238253 UbuntuNumberAnimation { properties: "height" }
254+ ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
239255 PropertyAction { target: dndArea; property: "postDragging"; value: false }
240256 PropertyAction { target: dndArea; property: "draggedIndex"; value: -1 }
241257 }
@@ -265,9 +281,6 @@ Item {
265281
266282 onPressed: {
267283 selectedItem = launcherListView.itemAt(mouseX, mouseY + launcherListView.realContentY)
268− if (selectedItem !== null) {
269− selectedItem.highlighted = true
270− }
271284 }
272285
273286 onClicked: {
@@ -302,7 +315,6 @@ Item {
302315 }
303316
304317 onCanceled: {
305− selectedItem.highlighted = false
306318 selectedItem = undefined;
307319 preDragging = false;
308320 postDragging = false;
@@ -320,7 +332,6 @@ Item {
320332 return;
321333 }
322334
323− selectedItem.highlighted = false
324335 selectedItem.dragging = false;
325336 selectedItem = undefined;
326337 preDragging = false;
@@ -332,6 +343,9 @@ Item {
332343 if (droppedIndex >= launcherListView.count - 2 && postDragging) {
333344 launcherListView.flick(0, -launcherListView.clickFlickSpeed);
334345 }
346+ if (droppedIndex == 0 && postDragging) {
347+ launcherListView.flick(0, launcherListView.clickFlickSpeed);
348+ }
335349 }
336350
337351 onPressAndHold: {
@@ -451,8 +465,7 @@ Item {
451465 height: itemHeight
452466 width: itemWidth
453467 rotation: root.rotation
454− highlighted: true
455− itemOpacity: 0.8
468+ itemOpacity: 0.9
456469
457470 function flatten() {
458471 fakeDragItemAnimation.start();
@@ -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+31−6
@@ -161,10 +161,14 @@ FocusScope {
161161 // Whether the underlay is fully covered by opaque UI elements.
162162 property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth
163163
164+ readonly property bool applicationRunning: ((mainStage.applications && mainStage.applications.count > 0)
165+ || (sideStage.applications && sideStage.applications.count > 0))
166+
164167 // Whether the user should see the topmost application surface (if there's one at all).
165− property bool applicationSurfaceShouldBeSeen:
166− (mainStage.applications && mainStage.applications.count > 0)
167− && (!stages.fullyHidden && !mainStage.usingScreenshots)
168+ readonly property bool applicationSurfaceShouldBeSeen: applicationRunning && !stages.fullyHidden
169+ && !mainStage.usingScreenshots // but want sideStage animating over app surface
170+
171+
168172
169173 // NB! Application surfaces are stacked behing the shell one. So they can only be seen by the user
170174 // through the translucent parts of the shell surface.
@@ -191,7 +195,7 @@ FocusScope {
191195 available: !greeter.shown && !lockscreen.shown
192196 hides: [stages, launcher, panel.indicators]
193197 shown: disappearingAnimationProgress !== 1.0
194− enabled: disappearingAnimationProgress === 0.0
198+ enabled: disappearingAnimationProgress === 0.0 && edgeDemo.dashEnabled
195199 // FIXME: unfocus all applications when going back to the dash
196200 onEnabledChanged: {
197201 if (enabled) {
@@ -382,6 +386,7 @@ FocusScope {
382386
383387 width: shell.edgeSize
384388 direction: Direction.Leftwards
389+ enabled: edgeDemo.dashEnabled
385390 property bool haveApps: mainStage.applications.count > 0 || sideStage.applications.count > 0
386391
387392 maxTotalDragDistance: haveApps ? parent.width : parent.width * 0.7
@@ -410,6 +415,7 @@ FocusScope {
410415 Component.onCompleted: {
411416 if (LightDM.Users.count == 1) {
412417 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole))
418+ greeter.selected(0)
413419 }
414420 }
415421 }
@@ -452,6 +458,7 @@ FocusScope {
452458 // If there are more users, the Greeter will handle that
453459 if (LightDM.Users.count == 1) {
454460 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
461+ greeter.selected(0);
455462 }
456463 greeter.forceActiveFocus();
457464 }
@@ -506,6 +513,13 @@ FocusScope {
506513 } else if (status == Powerd.On) {
507514 powerConnection.setFocused(true);
508515 }
516+
517+ // No reason to chew demo CPU when user isn't watching
518+ if (status == Powerd.Off) {
519+ edgeDemo.paused = true;
520+ } else if (status == Powerd.On) {
521+ edgeDemo.paused = false;
522+ }
509523 }
510524 }
511525
@@ -520,6 +534,8 @@ FocusScope {
520534 indicatorsMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
521535 indicators {
522536 hides: [launcher]
537+ available: edgeDemo.panelEnabled
538+ contentEnabled: edgeDemo.panelContentEnabled
523539 }
524540 fullscreenMode: shell.fullscreenMode
525541 searchVisible: !greeter.shown && !lockscreen.shown
@@ -536,7 +552,7 @@ FocusScope {
536552 width: parent.width > units.gu(60) ? units.gu(40) : parent.width
537553 height: parent.height
538554
539− available: !greeter.shown && !panel.indicators.shown && !lockscreen.shown
555+ available: !greeter.shown && !panel.indicators.shown && !lockscreen.shown && edgeDemo.dashEnabled
540556 shown: false
541557 showAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: 0; easing.type: Easing.Linear }
542558 hideAnimation: StandardAnimation { property: "y"; duration: hud.showableAnimationDuration; to: hudRevealer.closedValue; easing.type: Easing.Linear }
@@ -594,7 +610,7 @@ FocusScope {
594610 anchors.bottom: parent.bottom
595611 width: parent.width
596612 dragAreaWidth: shell.edgeSize
597− available: !greeter.shown || greeter.narrowMode
613+ available: (!greeter.shown || greeter.narrowMode) && edgeDemo.launcherEnabled
598614 onDashItemSelected: {
599615 greeter.hide()
600616 // Animate if moving between application and dash
@@ -703,4 +719,13 @@ FocusScope {
703719 rotation: -45
704720 scale: Math.min(parent.width, parent.height) / width
705721 }
722+
723+ EdgeDemo {
724+ id: edgeDemo
725+ greeter: greeter
726+ launcher: launcher
727+ dash: dash
728+ indicators: panel.indicators
729+ underlay: underlay
730+ }
706731}
build+2−1
@@ -59,7 +59,8 @@ mk_build_deps() {
5959
6060if [ -f "/usr/bin/ninja" ] ; then
6161 GENERATOR="-G Ninja"
62− BUILD_COMMAND="ninja -j$NUM_JOBS"
62+ # Ninja does not need -j, it parallelizes automatically.
63+ BUILD_COMMAND="ninja"
6364else
6465 GENERATOR=
6566 BUILD_COMMAND="make -j$NUM_JOBS"
debian/changelog+157
@@ -1,3 +1,160 @@
1+unity8 (7.81.3+13.10.20130829-0ubuntu1) saucy; urgency=low
2+
3+ [ Andrea Cimitan ]
4+ * Streamline some new HUD interactions to be more consistent with the
5+ Unity Launcher.
6+
7+ [ Michael Zanetti ]
8+ * setting the launcher's extensionSize delayed to position the view
9+ correctly at the beginning .
10+
11+ [ Bill Filler ]
12+ * add new telephony apps (dialer, messaging, contacts) to launcher and
13+ Home scope.
14+
15+ [ Michael Terry ]
16+ * Implement edge demos on first boot. Build-Depends: +dbus-test-
17+ runner, +qtbase5-dev-tools.
18+
19+ [ Ubuntu daily release ]
20+ * Automatic snapshot from revision 267
21+
22+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 29 Aug 2013 02:10:38 +0000
23+
24+unity8 (7.81.3+13.10.20130828.1-0ubuntu1) saucy; urgency=low
25+
26+ [ Andrea Cimitan ]
27+ * Hide the LauncherPanel when it's really hidden, by changing visible
28+ to false.
29+
30+ [ Gerry Boland ]
31+ * Fix sidestage applications - they were being ignored in the show-
32+ application-surface logic. (LP: #1217027, #1210079)
33+
34+ [ Michał Sawicz ]
35+ * Raise the exception if typing failed in autopilot.
36+
37+ [ Nick Dedekind ]
38+ * Added location indicator defaults.
39+
40+ [ Michael Zanetti ]
41+ * increase minimal dragging width for dismissing apps with left edge
42+ make it a configurable parameter and adjust animation to look like
43+ requested in the bug report . (LP: #1213153)
44+
45+ [ Ubuntu daily release ]
46+ * Automatic snapshot from revision 262
47+
48+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 28 Aug 2013 11:55:46 +0000
49+
50+unity8 (7.81.3+13.10.20130827.1-0ubuntu1) saucy; urgency=low
51+
52+ [ Michael Zanetti ]
53+ * unset model in quicklist before closing it.
54+
55+ [ Ubuntu daily release ]
56+ * Automatic snapshot from revision 256
57+
58+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 27 Aug 2013 10:49:17 +0000
59+
60+unity8 (7.81.3+13.10.20130827-0ubuntu1) saucy; urgency=low
61+
62+ [ Michael Zanetti ]
63+ * Theme the Quicklist Popover.
64+
65+ [ Albert Astals ]
66+ * Apply expandedIndex on delegate creation bug #1213033. (LP:
67+ #1213033)
68+
69+ [ Ubuntu daily release ]
70+ * Automatic snapshot from revision 254
71+
72+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 27 Aug 2013 02:10:43 +0000
73+
74+unity8 (7.81.3+13.10.20130826.5-0ubuntu1) saucy; urgency=low
75+
76+ [ Michael Zanetti ]
77+ * tweak launcher folding and visuals according to feedback from
78+ design: - increase foldingStartHeight - Introduces a
79+ foldingStopHeight. Folding only happens between the
80+ foldingStartHeight and the foldingStopHeight. - Only change
81+ brightness while folding - remove highlight of pressed icon -
82+ decrease launcher's width by half a grid unit.
83+
84+ [ Ubuntu daily release ]
85+ * Automatic snapshot from revision 251
86+
87+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 22:09:43 +0000
88+
89+unity8 (7.81.3+13.10.20130826.4-0ubuntu1) saucy; urgency=low
90+
91+ [ Michał Sawicz ]
92+ * Add module entry in HudClient's qmldir.
93+
94+ [ Jussi Pakkanen ]
95+ * Let Ninja parallelize itself.
96+
97+ [ Nick Dedekind ]
98+ * Abstraction of indicator menu item properties prior to move into
99+ common components library.
100+
101+ [ Christopher Lee ]
102+ * Added autopilot-tests for ephemeral, interactive and snap-decision
103+ notifications.
104+
105+ [ Mirco Müller ]
106+ * Added autopilot-tests for ephemeral, interactive and snap-decision
107+ notifications.
108+
109+ [ Michael Zanetti ]
110+ * only search visible children in findChild, add findInvisibleChild
111+ for others.
112+ * Added autopilot-tests for ephemeral, interactive and snap-decision
113+ notifications.
114+
115+ [ Thomi Richards ]
116+ * Added autopilot-tests for ephemeral, interactive and snap-decision
117+ notifications.
118+
119+ [ Ubuntu daily release ]
120+ * Automatic snapshot from revision 249
121+
122+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 18:34:44 +0000
123+
124+unity8 (7.81.3+13.10.20130826.2-0ubuntu1) saucy; urgency=low
125+
126+ [ Albert Astals ]
127+ * Don't include QtQML It includes LOTS of files we don't need.
128+
129+ [ Ubuntu daily release ]
130+ * Automatic snapshot from revision 243
131+
132+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 10:08:52 +0000
133+
134+unity8 (7.81.3+13.10.20130826.1-0ubuntu1) saucy; urgency=low
135+
136+ * Automatic snapshot from revision 241
137+
138+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 06:08:33 +0000
139+
140+unity8 (7.81.3+13.10.20130826-0ubuntu1) saucy; urgency=low
141+
142+ [ Michael Zanetti ]
143+ * delay move operations if the start dragging operation is running
144+ This prevents items to left in wrong places when transitions clash.
145+ * add empty setUser to allow compiling in jenkins again until the
146+ branch that matches unity-api is ready to land. .
147+ * add count and progress overlay information to real model too.
148+
149+ [ Pawel Stolowski ]
150+ * Changed the type of setActive argument from
151+ QVector<AbstractFilterOption *>::size_type to unsigned int.
152+
153+ [ Ubuntu daily release ]
154+ * Automatic snapshot from revision 240
155+
156+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 26 Aug 2013 02:31:42 +0000
157+
1158unity8 (7.81.3+13.10.20130821.2-0ubuntu1) saucy; urgency=low
2159
3160 [ Michael Terry ]
debian/control+2
@@ -3,6 +3,7 @@ Section: x11
33Priority: optional
44Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
55Build-Depends: cmake,
6+ dbus-test-runner,
67 debhelper (>= 9),
78 libdee-qt5-dev (>= 3.2),
89 libgl1-mesa-dev[!armhf] | libgl-dev[!armhf],
@@ -31,6 +32,7 @@ Build-Depends: cmake,
3132 python3:any,
3233 qt5-default,
3334 qtbase5-dev,
35+ qtbase5-dev-tools,
3436 qtbase5-private-dev,
3537 qtdeclarative5-dev,
3638 qtdeclarative5-dev-tools,
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
@@ -5,3 +6,7 @@ usr/lib/*/unity8/qml/Powerd
56usr/lib/*/unity8/qml/Ubuntu
67usr/lib/*/unity8/qml/Unity
78usr/lib/*/unity8/qml/Utils
9+usr/share/accountsservice/interfaces
10+usr/share/dbus-1/interfaces
11+usr/share/polkit-1
12+var/lib/polkit-1
graphics/applicationIcons/contacts-app@18.pngnew file

Binary file not shown.

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

Binary file not shown.

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

Binary file not shown.

main.cpp−1
@@ -18,7 +18,6 @@
1818 */
1919
2020// Qt
21−#include <QtQml>
2221#include <QtQuick/QQuickView>
2322#include <QtGui/QIcon>
2423#include <QtGui/QGuiApplication>
plugins/AccountsService/50-com.canonical.unity.AccountsService.pklanew file+6
@@ -0,0 +1,6 @@
1+[Allow LightDM to set Unity AccountsService fields]
2+Identity=unix-user:lightdm
3+Action=com.canonical.unity.AccountsService.ModifyAnyUser
4+ResultActive=yes
5+ResultInactive=yes
6+ResultAny=yes
plugins/AccountsService/AccountsService.cppnew file+74
@@ -0,0 +1,74 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#include "AccountsService.h"
20+#include <QDBusConnection>
21+#include <QDBusConnectionInterface>
22+#include <QDBusMessage>
23+#include <QDBusVariant>
24+
25+AccountsService::AccountsService(QObject* parent)
26+ : QObject(parent),
27+ accounts_manager(NULL),
28+ users()
29+{
30+ auto connection = QDBusConnection::SM_BUSNAME();
31+ auto interface = connection.interface();
32+ interface->startService("org.freedesktop.Accounts");
33+ accounts_manager = new QDBusInterface("org.freedesktop.Accounts",
34+ "/org/freedesktop/Accounts",
35+ "org.freedesktop.Accounts",
36+ connection, this);
37+}
38+
39+QVariant AccountsService::getUserProperty(const QString &user, const QString &property)
40+{
41+ auto iface = getUserInterface(user);
42+ if (iface != nullptr && iface->isValid()) {
43+ auto answer = iface->call("Get", "com.canonical.unity.AccountsService", property);
44+ if (answer.type() == QDBusMessage::ReplyMessage) {
45+ return answer.arguments()[0].value<QDBusVariant>().variant();
46+ }
47+ }
48+ return QVariant();
49+}
50+
51+void AccountsService::setUserProperty(const QString &user, const QString &property, const QVariant &value)
52+{
53+ auto iface = getUserInterface(user);
54+ if (iface != nullptr && iface->isValid()) {
55+ // The value needs to be carefully wrapped
56+ iface->call("Set", "com.canonical.unity.AccountsService", property, QVariant::fromValue(QDBusVariant(value)));
57+ }
58+}
59+
60+QDBusInterface *AccountsService::getUserInterface(const QString &user)
61+{
62+ auto iface = users.value(user);
63+ if (iface == nullptr && accounts_manager->isValid()) {
64+ auto answer = accounts_manager->call("FindUserByName", user);
65+ if (answer.type() == QDBusMessage::ReplyMessage) {
66+ iface = new QDBusInterface("org.freedesktop.Accounts",
67+ answer.arguments()[0].value<QDBusObjectPath>().path(),
68+ "org.freedesktop.DBus.Properties",
69+ accounts_manager->connection(), this);
70+ users.insert(user, iface);
71+ }
72+ }
73+ return iface;
74+}
plugins/AccountsService/AccountsService.hnew file+44
@@ -0,0 +1,44 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#ifndef UNITY_ACCOUNTSSERVICE_H
20+#define UNITY_ACCOUNTSSERVICE_H
21+
22+#include <QDBusInterface>
23+#include <QMap>
24+#include <QObject>
25+#include <QString>
26+
27+class AccountsService: public QObject
28+{
29+ Q_OBJECT
30+
31+public:
32+ explicit AccountsService(QObject *parent = 0);
33+
34+ Q_INVOKABLE QVariant getUserProperty(const QString &user, const QString &property);
35+ Q_INVOKABLE void setUserProperty(const QString &user, const QString &property, const QVariant &value);
36+
37+private:
38+ QDBusInterface *getUserInterface(const QString &user);
39+
40+ QDBusInterface *accounts_manager;
41+ QMap<QString, QDBusInterface *> users;
42+};
43+
44+#endif
plugins/AccountsService/CMakeLists.txtnew file+36
@@ -0,0 +1,36 @@
1+include(Plugins)
2+
3+add_definitions(-DSM_BUSNAME=systemBus)
4+
5+add_library(AccountsService-qml MODULE
6+ AccountsService.cpp
7+ plugin.cpp
8+ )
9+
10+qt5_use_modules(AccountsService-qml DBus Qml)
11+
12+export_qmlfiles(AccountsService AccountsService)
13+export_qmlplugin(AccountsService 0.1 AccountsService TARGETS AccountsService-qml)
14+
15+set(POLKIT_LIB_DIR "${CMAKE_INSTALL_LOCALSTATEDIR}/lib/polkit-1")
16+set(POLKIT_DATA_DIR "${CMAKE_INSTALL_PREFIX}/share/polkit-1")
17+set(DBUS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/dbus-1/interfaces")
18+set(ACCOUNTS_IFACE_DIR "${CMAKE_INSTALL_PREFIX}/share/accountsservice/interfaces")
19+
20+install(FILES com.canonical.unity.AccountsService.xml
21+ DESTINATION "${DBUS_IFACE_DIR}"
22+ )
23+
24+# Create accountsservice symlink for above dbus interface
25+install(CODE "
26+execute_process(COMMAND mkdir -p \"\$ENV{DESTDIR}${ACCOUNTS_IFACE_DIR}\")
27+execute_process(COMMAND ln -sf ../../dbus-1/interfaces/com.canonical.unity.AccountsService.xml \"\$ENV{DESTDIR}${ACCOUNTS_IFACE_DIR}\")
28+ ")
29+
30+install(FILES com.canonical.unity.AccountsService.policy
31+ DESTINATION "${POLKIT_DATA_DIR}/actions"
32+ )
33+
34+install(FILES 50-com.canonical.unity.AccountsService.pkla
35+ DESTINATION "${POLKIT_LIB_DIR}/localauthority/10-vendor.d"
36+ )
plugins/AccountsService/com.canonical.unity.AccountsService.policynew file+24
@@ -0,0 +1,24 @@
1+<?xml version="1.0" encoding="UTF-8"?>
2+
3+<policyconfig>
4+ <action id="com.canonical.unity.AccountsService.ModifyOwnUser">
5+ <description>Set properties of own user</description>
6+ <message>Authentication is required to set one's own unity properties.</message>
7+ <defaults>
8+ <allow_any>yes</allow_any>
9+ <allow_inactive>yes</allow_inactive>
10+ <allow_active>yes</allow_active>
11+ </defaults>
12+ </action>
13+
14+ <action id="com.canonical.unity.AccountsService.ModifyAnyUser">
15+ <description>Set properties of any user</description>
16+ <message>Authentication is required to set another user's unity
17+properties.</message>
18+ <defaults>
19+ <allow_any>no</allow_any>
20+ <allow_inactive>no</allow_inactive>
21+ <allow_active>no</allow_active>
22+ </defaults>
23+ </action>
24+</policyconfig>
plugins/AccountsService/com.canonical.unity.AccountsService.xmlnew file+17
@@ -0,0 +1,17 @@
1+<node>
2+ <interface name="com.canonical.unity.AccountsService">
3+
4+ <annotation name="org.freedesktop.Accounts.VendorExtension" value="true"/>
5+
6+ <annotation name="org.freedesktop.Accounts.Authentication.ChangeOwn"
7+ value="com.canonical.unity.AccountsService.ModifyOwnUser"/>
8+
9+ <annotation name="org.freedesktop.Accounts.Authentication.ChangeAny"
10+ value="com.canonical.unity.AccountsService.ModifyAnyUser"/>
11+
12+ <property name="demo-edges" type="b" access="readwrite">
13+ <annotation name="org.freedesktop.Accounts.DefaultValue" value="true"/>
14+ </property>
15+
16+ </interface>
17+</node>
plugins/AccountsService/plugin.cppnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#include "plugin.h"
20+#include "AccountsService.h"
21+
22+#include <QtQml>
23+
24+static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
25+{
26+ Q_UNUSED(engine)
27+ Q_UNUSED(scriptEngine)
28+ return new AccountsService();
29+}
30+
31+void AccountsServicePlugin::registerTypes(const char *uri)
32+{
33+ Q_ASSERT(uri == QLatin1String("AccountsService"));
34+ qmlRegisterSingletonType<AccountsService>(uri, 0, 1, "AccountsService", service_provider);
35+}
plugins/AccountsService/plugin.hnew file+34
@@ -0,0 +1,34 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#ifndef ACCOUNTSSERVICE_PLUGIN_H
20+#define ACCOUNTSSERVICE_PLUGIN_H
21+
22+#include <QQmlEngine>
23+#include <QQmlExtensionPlugin>
24+
25+class AccountsServicePlugin : public QQmlExtensionPlugin
26+{
27+ Q_OBJECT
28+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
29+
30+public:
31+ void registerTypes(const char *uri);
32+};
33+
34+#endif
plugins/AccountsService/qmldirnew file+3
@@ -0,0 +1,3 @@
1+module AccountsService
2+plugin AccountsService-qml
3+typeinfo plugin.qmltypes
plugins/CMakeLists.txt+4−3
@@ -1,7 +1,8 @@
1−add_subdirectory(Ubuntu)
2−add_subdirectory(Utils)
3−add_subdirectory(Unity)
1+add_subdirectory(AccountsService)
42add_subdirectory(HudClient)
53add_subdirectory(LightDM)
64add_subdirectory(ListViewWithPageHeader)
75add_subdirectory(Powerd)
6+add_subdirectory(Ubuntu)
7+add_subdirectory(Unity)
8+add_subdirectory(Utils)
plugins/HudClient/qmldir+1
@@ -1,2 +1,3 @@
1+module HudClient
12plugin HudClientQml
23typeinfo plugin.qmltypes
plugins/LightDM/plugin.cpp+1−1
@@ -25,7 +25,7 @@
2525#include <QLightDM/UsersModel>
2626
2727#include <QtCore/QAbstractItemModel>
28−#include <QtQml>
28+#include <QtQml/qqml.h>
2929
3030static QObject *greeter_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
3131{
plugins/Powerd/plugin.cpp+1−1
@@ -20,7 +20,7 @@
2020#include "plugin.h"
2121#include "Powerd.h"
2222
23−#include <QtQml/QtQml>
23+#include <QtQml/qqml.h>
2424
2525static QObject *powerd_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
2626{
plugins/Ubuntu/DownloadDaemonListener/plugin.cpp+1−1
@@ -22,7 +22,7 @@
2222#include "plugin.h"
2323#include "DownloadTracker.h"
2424
25−#include <QtQml>
25+#include <QtQml/qqml.h>
2626#include <QtQml/QQmlContext>
2727
2828
plugins/Unity/Indicators/Network/plugin.cpp+1−1
@@ -17,7 +17,7 @@
1717 */
1818
1919// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
2121
2222// self
2323#include "plugin.h"
plugins/Unity/Indicators/Network/qml/AccessPoint.qml+18−8
@@ -25,29 +25,39 @@ import Unity.Indicators 0.1 as Indicators
2525Indicators.FramedMenuItem {
2626 id: accessPoint
2727
28− readonly property bool checked: menu ? menu.isToggled : false
28+ property bool checked: false
29+ property bool secure: false
30+ property bool adHoc: false
31+ property int signalStrength: 0
32+
33+ signal activate()
2934
3035 onCheckedChanged: {
3136 // Can't rely on binding. Checked is assigned on click.
3237 checkBoxActive.checked = checked;
3338 }
3439
35− // FIXME - we need to get the strength from menu.ext.xCanonicalWifiApStrengthAction
36− // but UnityMenuModel doesnt support fetching actions not attached to menu item.
37− function getNetworkIcon(data) {
40+ icon: {
3841 var imageName = "nm-signal-100"
3942
40− if (data.ext.xCanonicalWifiApIsAdhoc) {
43+ if (adHoc) {
4144 imageName = "nm-adhoc";
45+ } else if (signalStrength == 0) {
46+ imageName = "nm-signal-00";
47+ } else if (signalStrength <= 25) {
48+ imageName = "nm-signal-25";
49+ } else if (signalStrength <= 50) {
50+ imageName = "nm-signal-50";
51+ } else if (signalStrength <= 75) {
52+ imageName = "nm-signal-75";
4253 }
43− if (data.ext.xCanonicalWifiApIsSecure) {
54+
55+ if (secure) {
4456 imageName += "-secure";
4557 }
46−
4758 return "image://gicon/" + imageName;
4859 }
4960
50− icon: menu ? getNetworkIcon(menu) : "image://gicon/wifi-none"
5161 iconFrame: false
5262 control: CheckBox {
5363 id: checkBoxActive
plugins/Unity/Indicators/Network/qml/PasswordPage.qml+1−1
@@ -38,7 +38,7 @@ Page {
3838 }
3939
4040 Indicators.SectionMenuItem {
41− label: "Authentication"
41+ text: "Authentication"
4242 }
4343
4444 Indicators.FramedMenuItem {
plugins/Unity/Indicators/Network/qml/WifiSection.qmldeleted−28
@@ -1,28 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Unity.Indicators 0.1 as Indicators
23−
24−Indicators.SectionMenuItem {
25− id: wifiSectionMenu
26−
27− busy: menu ? menu.ext.xCanonicalBusyAction : false
28−}
plugins/Unity/Indicators/Network/qml/qmldir+1−2
@@ -5,5 +5,4 @@ typeinfo plugin.qmltypes
55NetworkPage 0.1 NetworkPage.qml
66AccessPoint 0.1 AccessPoint.qml
77PasswordPage 0.1 PasswordPage.qml
8−PasswordTextField 0.1 PasswordTextField.qml
9−WifiSection 0.1 WifiSection.qml
8+PasswordTextField 0.1 PasswordTextField.qml
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/Indicators/plugin.cpp+1−1
@@ -18,7 +18,7 @@
1818 */
1919
2020// Qt
21−#include <QtQml>
21+#include <QtQml/qqml.h>
2222
2323// self
2424#include "plugin.h"
plugins/Unity/Indicators/qml/BaseMenuItem.qml−4
@@ -25,14 +25,10 @@ ListItem.Standard {
2525 id: baseMenu
2626
2727 property bool menuActivated: false
28− property QtObject menu
2928
3029 signal selectMenu()
3130 signal deselectMenu()
3231
33− signal activate()
34− signal changeState(var value)
35−
3632 showDivider: false
3733 __foregroundColor: "#e8e1d0" // FIXME not in palette yet
3834
plugins/Unity/Indicators/qml/ButtonMenuItem.qml+4−9
@@ -24,14 +24,14 @@ import Unity.Indicators 0.1 as Indicators
2424
2525BaseMenuItem {
2626 id: menuItem
27− objectName: menuAction.name
2827 implicitHeight: units.gu(7)
29− enabled: menuAction.active
28+
29+ property alias text: button.text
30+
31+ signal activate()
3032
3133 Button {
3234 id: button
33− enabled: menuAction.enabled
34− text: menu ? menu.label : ""
3535 anchors.centerIn: parent
3636 height: units.gu(4)
3737 width: units.gu(16)
@@ -41,9 +41,4 @@ BaseMenuItem {
4141 menuItem.activate();
4242 }
4343 }
44−
45− Indicators.MenuAction {
46− id: menuAction
47− menu: menuItem.menu
48− }
4944}
plugins/Unity/Indicators/qml/FramedMenuItem.qml−2
@@ -23,10 +23,8 @@ import Ubuntu.Components 0.1
2323import Ubuntu.Components.ListItems 0.1 as ListItem
2424
2525BaseMenuItem {
26− text: menu && menu.label ? menu.label : ""
2726 implicitHeight: units.gu(7)
2827
29− icon: menu ? menu.icon : ""
3028 iconFrame: false
3129
3230 HLine {
plugins/Unity/Indicators/qml/IndicatorPage.qml+4−9
@@ -96,18 +96,13 @@ IndicatorBase {
9696 }
9797 if (item.hasOwnProperty("menu")) {
9898 item.menu = Qt.binding(function() { return model; });
99−
100− item.activate.connect(onActivateMenu);
101− item.changeState.connect(onChangeState);
10299 }
103100 }
104101
105− function onActivateMenu(value) {
106− mainMenu.model.activate(index, value);
107− }
108−
109− function onChangeState(value) {
110− mainMenu.model.changeState(index, value);
102+ Binding {
103+ target: item ? item : null
104+ property: "objectName"
105+ value: model.action
111106 }
112107 }
113108 }
plugins/Unity/Indicators/qml/MenuAction.qmldeleted−59
@@ -1,59 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− * Nick Dedekind <nick.dedekind@canonical.com>
19− */
20−
21−import QtQuick 2.0
22−
23−/*!
24− \qmltype MenuAction
25− \inqmlmodule Indicators 0.1
26− \brief Helper class to connect to a qmenumodel action
27−
28− Example:
29− \qml
30− BaseMenuItem {
31− id: menuItem
32−
33− Switch {
34− checked: menuAction.state
35− }
36−
37− Indicators.MenuAction {
38− id: menuAction
39− menu: menuItem.menu
40− }
41− }
42− \endqml
43−*/
44−
45−Item {
46− id: menuAction
47−
48− /*!
49− \preliminary
50− The dbus action group object
51− */
52− readonly property string name: menu ? menu.action : ""
53−
54− property QtObject menu: null
55−
56− readonly property var state: menu ? menu.actionState : undefined
57−
58− readonly property bool active: menu ? menu.sensitive : false
59−}
plugins/Unity/Indicators/qml/MenuItemFactory.qml+124−7
@@ -20,6 +20,7 @@
2020import QtQuick 2.0
2121import Unity.Indicators 0.1 as Indicators
2222import Unity.Indicators.Network 0.1 as ICNetwork
23+import QMenuModel 0.1 as QMenuModel
2324
2425Item {
2526 id: menuFactory
@@ -47,35 +48,151 @@ Item {
4748 Component {
4849 id: sliderMenu;
4950 Indicators.SliderMenuItem {
51+ property QtObject menu: null
52+
53+ text: menu && menu.label ? menu.label : ""
54+ icon: menu ? menu.icon : ""
55+ minIcon: menu.ext.minIcon
56+ maxIcon: menu.ext.maxIcon
57+
58+ minimumValue: menu.ext.minValue ? menu.ext.minValue : 0.0
59+ maximumValue: {
60+ var maximum = menu.ext.maxValue ? menu.ext.maxValue : 1.0
61+ if (maximum <= minimumValue) {
62+ return minimumValue + 1;
63+ }
64+ return maximum;
65+ }
66+ value: menu ? menu.actionState : 0.0
67+ enabled: menu ? menu.sensitive : false
68+
5069 Component.onCompleted: {
5170 model.loadExtendedAttributes(modelIndex, {'min-value': 'double',
5271 'max-value': 'double',
5372 'min-icon': 'icon',
5473 'max-icon': 'icon'});
5574 }
75+
76+ // FIXME: The interval should be [0.0 - 1.0]. Unfortunately, when
77+ // reaching the boundaries (0.0 or 1.0), the value is converted
78+ // to an integer when automatically wrapped in a variant when
79+ // passed to QStateAction::updateState(…). The server chokes on
80+ // those values, complaining that they’re not of the right type…
81+ onChangeState: {
82+ if (value == Math.round(value)) {
83+ if (value >= maximumValue) {
84+ model.changeState(modelIndex, maximumValue - 0.000001);
85+ } else if (value <= minimumValue) {
86+ model.changeState(modelIndex, minimumValue + 0.000001);
87+ } else {
88+ model.changeState(modelIndex, value * 1.000001);
89+ }
90+ } else {
91+ model.changeState(modelIndex, value);
92+ }
93+ }
5694 }
5795 }
58− Component { id: buttonMenu; Indicators.ButtonMenuItem {} }
96+
5997 Component { id: divMenu; Indicators.DivMenuItem {} }
60− Component { id: sectionMenu; Indicators.SectionMenuItem {} }
61− Component { id: progressMenu; Indicators.ProgressMenuItem {} }
62− Component { id: standardMenu; Indicators.StandardMenuItem {} }
63− Component { id: switchMenu; Indicators.SwitchMenuItem {} }
98+
99+ Component {
100+ id: buttonMenu;
101+ Indicators.ButtonMenuItem {
102+ property QtObject menu: null
103+
104+ text: menu && menu.label ? menu.label : ""
105+ enabled: menu ? menu.sensitive : false
106+
107+ onActivate: model.activate(modelIndex);
108+ }
109+ }
110+ Component {
111+ id: sectionMenu;
112+ Indicators.SectionMenuItem {
113+ property QtObject menu: null
114+
115+ text: menu && menu.label ? menu.label : ""
116+ }
117+ }
118+
119+ Component {
120+ id: progressMenu;
121+ Indicators.ProgressMenuItem {
122+ property QtObject menu: null
123+
124+ text: menu && menu.label ? menu.label : ""
125+ icon: menu ? menu.icon : ""
126+ value : menu ? menu.actionState : 0.0
127+ }
128+ }
129+
130+ Component {
131+ id: standardMenu;
132+ Indicators.StandardMenuItem {
133+ property QtObject menu: null
134+
135+ text: menu && menu.label ? menu.label : ""
136+ icon: menu ? menu.icon : ""
137+ checkable: menu ? (menu.isCheck || menu.isRadio) : false
138+ checked: checkable ? menu.isToggled : false
139+ enabled: menu ? menu.sensitive : false
140+
141+ onActivate: model.activate(modelIndex);
142+ }
143+ }
144+
145+ Component {
146+ id: switchMenu;
147+ Indicators.SwitchMenuItem {
148+ property QtObject menu: null
149+
150+ text: menu && menu.label ? menu.label : ""
151+ icon: menu ? menu.icon : ""
152+ checked: menu ? menu.isToggled : false
153+ enabled: menu ? menu.sensitive : false
154+
155+ onActivate: model.activate(modelIndex);
156+ }
157+ }
158+
64159 Component {
65160 id: wifiSection;
66− ICNetwork.WifiSection {
161+ Indicators.SectionMenuItem {
162+ property QtObject menu: null
163+
164+ text: menu && menu.label ? menu.label : ""
165+ busy: menu ? menu.ext.xCanonicalBusyAction : false
166+
67167 Component.onCompleted: {
68168 model.loadExtendedAttributes(modelIndex, {'x-canonical-busy-action': 'bool'});
69169 }
70170 }
71171 }
172+
72173 Component {
73174 id: accessPoint;
74175 ICNetwork.AccessPoint {
176+ property QtObject menu: null
177+// property var strenthAction: QMenuModel.UnityMenuAction {
178+// model: menuFactory.model ? menuFactory.model : null
179+// name: menu ? menu.ext.xCanonicalWifiApStrengthAction : ""
180+// }
181+
182+ text: menu && menu.label ? menu.label : ""
183+ icon: menu ? menu.icon : ""
184+ secure: menu ? menu.ext.xCanonicalWifiApIsSecure : false
185+ adHoc: menu ? menu.ext.xCanonicalWifiApIsAdhoc : false
186+ checked: menu ? menu.isToggled : false
187+// signalStrength: strenthAction.valid ? strenthAction.state : 0
188+ enabled: menu ? menu.sensitive : false
189+
75190 Component.onCompleted: {
76191 model.loadExtendedAttributes(modelIndex, {'x-canonical-wifi-ap-is-adhoc': 'bool',
77− 'x-canonical-wifi-ap-is-secure': 'bool'});
192+ 'x-canonical-wifi-ap-is-secure': 'bool',
193+ 'x-canonical-wifi-ap-strength-action': 'string'});
78194 }
195+ onActivate: model.activate(modelIndex);
79196 }
80197 }
81198
plugins/Unity/Indicators/qml/ProgressMenuItem.qml+1−8
@@ -23,10 +23,8 @@ import Unity.Indicators 0.1 as Indicators
2323
2424FramedMenuItem {
2525 id: menuItem
26− objectName: menuAction.name
27− enabled: menuAction.active
2826
29− property int value : menuAction.state
27+ property int value : 0.0
3028
3129 control: Label {
3230 id: progress
@@ -37,9 +35,4 @@ FramedMenuItem {
3735 fontSize: "medium"
3836 color: "#e8e1d0"
3937 }
40−
41− Indicators.MenuAction {
42− id: menuAction
43− menu: menuItem.menu
44− }
4538}
plugins/Unity/Indicators/qml/SectionMenuItem.qml+3−3
@@ -22,15 +22,15 @@ import Ubuntu.Components 0.1
2222import Ubuntu.Components.ListItems 0.1 as ListItem
2323
2424BaseMenuItem {
25− property string label: menu && menu.label ? menu.label : ""
25+ id: menuItem
26+ property alias text: header.text
2627 property bool busy: false
2728
28− implicitHeight: label !== "" ? header.height : 0
29+ implicitHeight: text !== "" ? header.height : 0
2930
3031 ListItem.Header {
3132 id: header
3233
33− text: label
3434 height: units.gu(4)
3535 anchors {
3636 left: parent.left
plugins/Unity/Indicators/qml/SliderMenuItem.qml+8−23
@@ -24,17 +24,20 @@ import Unity.Indicators 0.1 as Indicators
2424
2525FramedMenuItem {
2626 id: menuItem
27− objectName: menuAction.name
28− enabled: menuAction.active
2927
3028 property alias minimumValue: slider.minimumValue
3129 property alias maximumValue: slider.maximumValue
32− readonly property double value: menu ? menuAction.state : 0.0
30+ property double value: 0.0
31+
32+ property alias minIcon: leftImage.source
33+ property alias maxIcon: rightImage.source
3334
3435 property QtObject d: QtObject {
3536 property bool enableValueConnection: true
3637 }
3738
39+ signal changeState(real value)
40+
3841 onValueChanged: {
3942 // TODO: look into adding a component to manage bi-directional bindings.
4043 var oldEnable = d.enableValueConnection
@@ -58,7 +61,6 @@ FramedMenuItem {
5861 anchors.verticalCenter: row.verticalCenter
5962 height: units.gu(4)
6063 width: height
61− source: menu.ext.minIcon
6264 }
6365
6466 Components.Slider {
@@ -75,19 +77,8 @@ FramedMenuItem {
7577 value = menuItem.value
7678 }
7779
78− // FIXME: The interval should be [0.0 - 1.0]. Unfortunately, when
79− // reaching the boundaries (0.0 or 1.0), the value is converted
80− // to an integer when automatically wrapped in a variant when
81− // passed to QStateAction::updateState(…). The server chokes on
82− // those values, complaining that they’re not of the right type…
83− minimumValue: menu.ext.minValue ? menu.ext.minValue * 1.000001 : 0.0000001
84− maximumValue: {
85− var maximum = menu.ext.maxValue ? menu.ext.maxValue * 1.000001 : 0.9999999
86− if (maximum <= minimumValue) {
87− return minimumValue + 1;
88− }
89− return maximum;
90− }
80+ minimumValue: 0.0
81+ maximumValue: 0.1
9182
9283 // FIXME - to be deprecated in Ubuntu.Components.
9384 // Use this to disable the label, since there is not way to do it on the component.
@@ -109,12 +100,6 @@ FramedMenuItem {
109100 anchors.verticalCenter: row.verticalCenter
110101 height: units.gu(4)
111102 width: height
112− source: menu.ext.maxIcon
113103 }
114104 }
115−
116− Indicators.MenuAction {
117− id: menuAction
118− menu: menuItem.menu
119− }
120105}
plugins/Unity/Indicators/qml/StandardMenuItem.qml+5−10
@@ -23,16 +23,16 @@ import Unity.Indicators 0.1 as Indicators
2323
2424FramedMenuItem {
2525 id: menuItem
26− objectName: menuAction.name
27− enabled: menuAction.active
2826
29− readonly property bool checkable: menu ? (menu.isCheck || menu.isRadio) : false
30− readonly property bool checked: checkable ? menu.isToggled : false
27+ property bool checkable: false
28+ property bool checked: false
29+
30+ signal activate()
3131
3232 // FIXME : need a radio button from sdk
3333 // https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1211866
3434 onCheckableChanged: {
35− if (menu && checkable) {
35+ if (checkable) {
3636 icon = checkComponent.createObject(menuItem);
3737 }
3838 }
@@ -68,9 +68,4 @@ FramedMenuItem {
6868 }
6969 }
7070 }
71−
72− Indicators.MenuAction {
73− id: menuAction
74− menu: menuItem.menu
75− }
7671}
plugins/Unity/Indicators/qml/SwitchMenuItem.qml+3−8
@@ -24,10 +24,10 @@ import Unity.Indicators 0.1 as Indicators
2424
2525FramedMenuItem {
2626 id: menuItem
27− objectName: menuAction.name
28− enabled: menuAction.enabled
2927
30− readonly property bool checked: menu ? menu.isToggled : false
28+ property bool checked: false
29+
30+ signal activate()
3131
3232 onCheckedChanged: {
3333 // Can't rely on binding. Checked is assigned on click.
@@ -50,9 +50,4 @@ FramedMenuItem {
5050 menuItem.activate();
5151 }
5252 }
53−
54− Indicators.MenuAction {
55− id: menuAction
56− menu: menuItem.menu
57− }
5853}
plugins/Unity/Indicators/qml/qmldir−1
@@ -11,7 +11,6 @@ HLine 0.1 HLine.qml
1111IndicatorBase 0.1 IndicatorBase.qml
1212IndicatorPage 0.1 IndicatorPage.qml
1313IndicatorWidget 0.1 IndicatorWidget.qml
14−MenuAction 0.1 MenuAction.qml
1514MenuActionBinding 0.1 MenuActionBinding.qml
1615MenuItemFactory 0.1 MenuItemFactory.qml
1716ProgressMenuItem 0.1 ProgressMenuItem.qml
plugins/Unity/IndicatorsLegacy/Network/plugin.cpp+1−1
@@ -17,7 +17,7 @@
1717 */
1818
1919// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
2121
2222// self
2323#include "plugin.h"
plugins/Unity/IndicatorsLegacy/plugin.cpp+1−1
@@ -17,7 +17,7 @@
1717 */
1818
1919// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
2121
2222// self
2323#include "plugin.h"
plugins/Unity/Launcher/backend/launcherbackend.cpp+9−3
@@ -28,7 +28,9 @@ LauncherBackend::LauncherBackend(QObject *parent):
2828 // TODO: load default pinned ones from default config, instead of hardcoding here...
2929
3030 m_storedApps <<
31− QLatin1String("phone-app.desktop") <<
31+ QLatin1String("dialer-app.desktop") <<
32+ QLatin1String("messaging-app.desktop") <<
33+ QLatin1String("address-book-app.desktop") <<
3234 QLatin1String("camera-app.desktop") <<
3335 QLatin1String("gallery-app.desktop") <<
3436 QLatin1String("facebook-webapp.desktop") <<
@@ -40,7 +42,9 @@ LauncherBackend::LauncherBackend(QObject *parent):
4042 QLatin1String("calendar-app.desktop");
4143
4244 // TODO: get stuff from desktop files instead this hardcoded map
43− m_displayNameMap.insert("phone-app.desktop", "Phone");
45+ m_displayNameMap.insert("dialer-app.desktop", "Dialer");
46+ m_displayNameMap.insert("messaging-app.desktop", "Messaging");
47+ m_displayNameMap.insert("address-book-app.desktop", "Contacts");
4448 m_displayNameMap.insert("camera-app.desktop", "Camera");
4549 m_displayNameMap.insert("gallery-app.desktop", "Gallery");
4650 m_displayNameMap.insert("facebook-webapp.desktop", "Facebook");
@@ -52,7 +56,9 @@ LauncherBackend::LauncherBackend(QObject *parent):
5256 m_displayNameMap.insert("calendar-app.desktop", "Calendar");
5357
5458 // TODO: get stuff from desktop files instead this hardcoded map
55− m_iconMap.insert("phone-app.desktop", "phone-app");
59+ m_iconMap.insert("dialer-app.desktop", "phone-app");
60+ m_iconMap.insert("messaging-app.desktop", "messages-app");
61+ m_iconMap.insert("address-book-app.desktop", "contacts-app");
5662 m_iconMap.insert("camera-app.desktop", "camera");
5763 m_iconMap.insert("gallery-app.desktop", "gallery");
5864 m_iconMap.insert("facebook-webapp.desktop", "facebook");
plugins/Unity/Launcher/launchermodel.cpp+34
@@ -25,6 +25,9 @@ LauncherModel::LauncherModel(QObject *parent):
2525 LauncherModelInterface(parent),
2626 m_backend(new LauncherBackend(this))
2727{
28+ connect(m_backend, SIGNAL(countChanged(QString,int)), SLOT(countChanged(QString,int)));
29+ connect(m_backend, SIGNAL(progressChanged(QString,int)), SLOT(progressChanged(QString,int)));
30+
2831 Q_FOREACH (const QString &entry, m_backend->storedApplications()) {
2932 LauncherItem *item = new LauncherItem(entry,
3033 m_backend->desktopFile(entry),
@@ -67,6 +70,10 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
6770 return item->icon();
6871 case RolePinned:
6972 return item->pinned();
73+ case RoleCount:
74+ return item->count();
75+ case RoleProgress:
76+ return item->progress();
7077 }
7178
7279 return QVariant();
@@ -177,6 +184,12 @@ void LauncherModel::quickListActionInvoked(const QString &appId, int actionIndex
177184 }
178185}
179186
187+void LauncherModel::setUser(const QString &username)
188+{
189+ Q_UNUSED(username)
190+ // TODO: Implement this...
191+}
192+
180193void LauncherModel::storeAppList()
181194{
182195 QStringList appIds;
@@ -198,3 +211,24 @@ int LauncherModel::findApplication(const QString &appId)
198211 }
199212 return -1;
200213}
214+
215+void LauncherModel::progressChanged(const QString &appId, int progress)
216+{
217+ int idx = findApplication(appId);
218+ if (idx >= 0) {
219+ LauncherItem *item = m_list.at(idx);
220+ item->setProgress(progress);
221+ Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleProgress);
222+ }
223+}
224+
225+
226+void LauncherModel::countChanged(const QString &appId, int count)
227+{
228+ int idx = findApplication(appId);
229+ if (idx >= 0) {
230+ LauncherItem *item = m_list.at(idx);
231+ item->setCount(count);
232+ Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleCount);
233+ }
234+}
plugins/Unity/Launcher/launchermodel.h+5
@@ -48,11 +48,16 @@ public:
4848 Q_INVOKABLE void pin(const QString &appId, int index = -1);
4949 Q_INVOKABLE void requestRemove(const QString &appId);
5050 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
51+ Q_INVOKABLE void setUser(const QString &username);
5152
5253private:
5354 void storeAppList();
5455 int findApplication(const QString &appId);
5556
57+private Q_SLOTS:
58+ void progressChanged(const QString &appId, int progress);
59+ void countChanged(const QString &appId, int count);
60+
5661private:
5762 QList<LauncherItem*> m_list;
5863 LauncherBackend *m_backend;
plugins/Unity/Launcher/plugin.cpp+1−1
@@ -18,7 +18,7 @@
1818 */
1919
2020// Qt
21−#include <QtQml>
21+#include <QtQml/qqml.h>
2222
2323// self
2424#include "plugin.h"
plugins/Unity/genericoptionsmodel.cpp+2−2
@@ -76,9 +76,9 @@ int GenericOptionsModel::rowCount(const QModelIndex& /* parent */) const
7676 return m_options.size ();
7777}
7878
79−void GenericOptionsModel::setActive(QVector<AbstractFilterOption *>::size_type idx, bool value)
79+void GenericOptionsModel::setActive(int idx, bool value)
8080{
81− if (idx < m_options.size())
81+ if (idx >= 0 && idx < m_options.size())
8282 {
8383 m_options[idx]->setActive(value);
8484 }
plugins/Unity/genericoptionsmodel.h+1−1
@@ -49,7 +49,7 @@ public:
4949 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
5050 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
5151
52− Q_INVOKABLE void setActive(QVector<AbstractFilterOption *>::size_type idx, bool value);
52+ Q_INVOKABLE void setActive(int idx, bool value);
5353 Q_INVOKABLE void setActive(const QString &id, bool value);
5454
5555 AbstractFilterOption* getRawOption(QVector<AbstractFilterOption *>::size_type idx) const;
plugins/Unity/plugin.cpp+4−1
@@ -17,8 +17,9 @@
1717 */
1818
1919// Qt
20−#include <QtQml>
2120#include <QDBusConnection>
21+#include <QQmlContext>
22+#include <qqml.h>
2223
2324// self
2425#include "plugin.h"
@@ -33,6 +34,7 @@
3334#include "categories.h"
3435#include "categoryresults.h"
3536#include "bottombarvisibilitycommunicatorshell.h"
37+#include "genericoptionsmodel.h"
3638
3739// libqtdee
3840#include "deelistmodel.h"
@@ -47,6 +49,7 @@ void UnityPlugin::registerTypes(const char *uri)
4749 qmlRegisterUncreatableType<PreviewAction>(uri, 0, 1, "PreviewAction", "Can't create PreviewAction object in QML.");
4850 qmlRegisterUncreatableType<PreviewInfoHint>(uri, 0, 1, "PreviewInfoHint", "Can't create PreviewInfoHint object in QML.");
4951 qmlRegisterUncreatableType<SocialPreviewComment>(uri, 0, 1, "SocialPreviewComment", "Can't create SocialPreviewComment object in QML.");
52+ qmlRegisterUncreatableType<GenericOptionsModel>(uri, 0, 1, "GenericOptionsModel", "Can't create options model in QML.");
5053 qmlRegisterType<Scope>(uri, 0, 1, "Scope");
5154 qmlRegisterType<Scopes>(uri, 0, 1, "Scopes");
5255 qmlRegisterType<Categories>(uri, 0, 1, "Categories");
plugins/Utils/plugin.cpp+1−1
@@ -17,7 +17,7 @@
1717 */
1818
1919// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
2121#include <QtQuick/QQuickWindow>
2222
2323// self
po/ar.po+80−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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
257+
258+#~ msgid "Running apps"
259+#~ msgstr "البرامج المُشغّلة"
260+
261+#~ msgid "Frequently used"
262+#~ msgstr "مُستخدمة بكثرة"
263+
264+#~ msgid "Installed"
265+#~ msgstr "مُثبّتة"
266+
267+#~ msgid "Available for download"
268+#~ msgstr "متوفرة للتنزيل"
269+
270+#~ msgid "Apps"
271+#~ msgstr "تطبيقات"
272+
273+#~ msgid "Frequent Apps"
274+#~ msgstr "تطبيقات مألوفة"
275+
276+#~ msgid "Recent Music"
277+#~ msgstr "آخر الصوتيات المشغلة"
278+
279+#~ msgid "Videos Popular Online"
280+#~ msgstr "فيديوهات رائجة على الإنترنت"
281+
282+#~ msgid "Home"
283+#~ msgstr "الرئيسية"
po/az.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Tətbiqlər"
259+
260+#~ msgid "Home"
261+#~ msgstr "Ev"
po/bg.po+62−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,20 @@ 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 ""
257+
258+#~ msgid "Installed"
259+#~ msgstr "Инсталирани"
260+
261+#~ msgid "Apps"
262+#~ msgstr "Приложения"
263+
264+#~ msgid "Home"
265+#~ msgstr "Начало"
po/ca.po+80−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Aplications actives"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Les més freqüents"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Instal·lades"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Disponibles per baixar"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Aplicacions"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Aplicacions freqüents"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Música recent"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Vídeos populars en línia"
280+
281+#~ msgid "Home"
282+#~ msgstr "Inici"
po/de.po+80−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Aktive Anwendungen"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Häufig verwendet"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Installiert"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Zum Herunterladen verfügbar"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Anwendungen"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Häufig genutzte Anwendungen"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Zuletzt gehörte Musik"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Beliebte Online-Videos"
280+
281+#~ msgid "Home"
282+#~ msgstr "Start"
po/el.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Εφαρμογές"
259+
260+#~ msgid "Home"
261+#~ msgstr "Αρχή"
po/en_AU.po+80−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Running apps"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Frequently used"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Installed"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Available for download"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Apps"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Frequent Apps"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Recent Music"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Videos Popular Online"
280+
281+#~ msgid "Home"
282+#~ msgstr "Home"
po/en_GB.po+80−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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"
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Running apps"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Frequently used"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Installed"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Available for download"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Apps"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Frequent Apps"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Recent Music"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Videos Popular Online"
280+
281+#~ msgid "Home"
282+#~ msgstr "Home"
po/eo.po+53−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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+80−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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"
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Aplicaciones en ejecución"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Usadas frecuentemente"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Instaladas"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Disponibles para descargar"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Aplicaciones"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Aplicaciones frecuentes"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Música reciente"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Vídeos populares en línea"
280+
281+#~ msgid "Home"
282+#~ msgstr "Inicio"
po/fi.po+91−56
@@ -7,16 +7,16 @@ msgid ""
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"
11−"PO-Revision-Date: 2013-08-12 17:45+0000\n"
12−"Last-Translator: Aleksi Kinnunen <Unknown>\n"
10+"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11+"PO-Revision-Date: 2013-08-23 16:15+0000\n"
12+"Last-Translator: Timo Jyrinki <timo.jyrinki@canonical.com>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,79 +86,87 @@ 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)"
97−msgstr ""
141+msgstr "(%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"
104−msgstr[0] ""
105−msgstr[1] ""
148+msgstr[0] "%1 arvostelu"
149+msgstr[1] "%1 arvostelua"
106150
107−#: Dash/Apps/AppPreview.qml:181
151+#: Dash/Apps/AppPreview.qml:175
108152msgid "Rate this"
109−msgstr ""
153+msgstr "Arvioi tämä"
110154
111155#: Dash/Apps/AppReviews.qml:72
112156msgid "Add a review"
113−msgstr ""
157+msgstr "Lisää arvostelu"
114158
115159#: Dash/Apps/AppReviews.qml:84
116160msgid "Review"
117−msgstr ""
161+msgstr "Arvostelu"
118162
119163#: Dash/Apps/AppReviews.qml:118
120164msgid "Send"
121−msgstr ""
165+msgstr "Lähetä"
122166
123167#: Dash/Apps/AppReviews.qml:136
124168msgid "Comments:"
125−msgstr ""
126−
127−#: Dash/DashApps.qml:65
128−msgid "Running apps"
129−msgstr "Käynnissä olevat sovellukset"
130−
131−#: Dash/DashApps.qml:68
132−msgid "Frequently used"
133−msgstr "Usein käytetyt"
134−
135−#: Dash/DashApps.qml:71
136−msgid "Installed"
137−msgstr "Asennetut"
138−
139−#: Dash/DashApps.qml:74
140−msgid "Available for download"
141−msgstr "Ladattavissa"
142−
143−#: Dash/DashApps.qml:168
144−msgid "Apps"
145−msgstr "Sovellukset"
146−
147−#: Dash/DashHome.qml:41
148−msgid "Frequent Apps"
149−msgstr "Yleisimmät sovellukset"
150−
151−#: Dash/DashHome.qml:44
152−msgid "Recent Music"
153−msgstr "Viimeisin musiikki"
154−
155−#: Dash/DashHome.qml:47
156−msgid "Videos Popular Online"
157−msgstr "Suositut verkkovideot"
158−
159−#: Dash/DashHome.qml:151
160−msgid "Home"
161−msgstr "Kotinäyttö"
169+msgstr "Kommentit:"
162170
163171#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
164172msgid "Featured"
@@ -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,38 @@ 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"
247−msgstr ""
255+msgstr "Kirjoita %1"
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Käynnissä olevat sovellukset"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Usein käytetyt"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Asennetut"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Ladattavissa"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Sovellukset"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Yleisimmät sovellukset"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Viimeisin musiikki"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Suositut verkkovideot"
280+
281+#~ msgid "Home"
282+#~ msgstr "Kotinäyttö"
po/fo.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Nýtsluskipanir"
259+
260+#~ msgid "Home"
261+#~ msgstr "Heim"
po/fr.po+56−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,14 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Applications"
po/gl.po+80−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Aplicativos en execución"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Usadas frecuentemente"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Instalado"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Dispoñíbel para descargar"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Aplicativos"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Aplicativos frecuentes"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Música recente"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Vídeos populares en liña"
280+
281+#~ msgid "Home"
282+#~ msgstr "Cartafol persoal"
po/he.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "יישומים"
259+
260+#~ msgid "Home"
261+#~ msgstr "בית"
po/hr.po+59−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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
257+
258+#~ msgid "Apps"
259+#~ msgstr "Aplikacije"
260+
261+#~ msgid "Home"
262+#~ msgstr "Početna"
po/hu.po+68−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,26 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Futó alkalmazások"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Gyakran használt"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Telepített"
265+
266+#~ msgid "Apps"
267+#~ msgstr "Alkalmazások"
268+
269+#~ msgid "Home"
270+#~ msgstr "Kezdőoldal"
po/hy.po+80−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Բացած ծրագրեր"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Վերջին բացածները"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Տեղադրված"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "Հասանելի ծրագրեր"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Ծրագրեր"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Հաճախակի ծրագրերը"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "Վերջին երգերը"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Հայտնի օնլայն վիդեոներ"
280+
281+#~ msgid "Home"
282+#~ msgstr "Տուն"
po/id.po+53−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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+59−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Applicazioni"
259+
260+#~ msgid "Home"
261+#~ msgstr "Home"
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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+59−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"
259+
260+#~ msgid "Home"
261+#~ msgstr "ಮನೆ (Home)"
po/ko.po+74−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,32 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "돌아가고 있는 앱"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "자주 쓰는 것들"
262+
263+#~ msgid "Installed"
264+#~ msgstr "깔림"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "내려받을 수 있음"
268+
269+#~ msgid "Apps"
270+#~ msgstr "앱"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "자주 쓰는 앱"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "요즈음 찾는 음악"
po/ky.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Тиркемелер"
259+
260+#~ msgid "Home"
261+#~ msgstr "Үй папкасы"
po/lv.po+59−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Lietotnes"
259+
260+#~ msgid "Home"
261+#~ msgstr "Mājas"
po/my.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Apps"
259+
260+#~ msgid "Home"
261+#~ msgstr "ပင်မ"
po/nb.po+68−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,26 @@ 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 ""
256+
257+#~ msgid "Frequently used"
258+#~ msgstr "Ofte brukt"
259+
260+#~ msgid "Installed"
261+#~ msgstr "Installert"
262+
263+#~ msgid "Available for download"
264+#~ msgstr "Tilgjengelig for nedlasting"
265+
266+#~ msgid "Apps"
267+#~ msgstr "Programmer"
268+
269+#~ msgid "Home"
270+#~ msgstr "Hjem"
po/nl.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Apps"
259+
260+#~ msgid "Home"
261+#~ msgstr "Hoofdvenster"
po/pl.po+80−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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,38 @@ 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"
257+
258+#~ msgid "Running apps"
259+#~ msgstr "Uruchomione aplikacje"
260+
261+#~ msgid "Frequently used"
262+#~ msgstr "Najczęściej używane"
263+
264+#~ msgid "Installed"
265+#~ msgstr "Zainstalowane"
266+
267+#~ msgid "Available for download"
268+#~ msgstr "Dostępne do pobrania"
269+
270+#~ msgid "Apps"
271+#~ msgstr "Aplikacje"
272+
273+#~ msgid "Frequent Apps"
274+#~ msgstr "Często używane aplikacje"
275+
276+#~ msgid "Recent Music"
277+#~ msgstr "Najnowsza muzyka"
278+
279+#~ msgid "Videos Popular Online"
280+#~ msgstr "Wideo popularne online"
281+
282+#~ msgid "Home"
283+#~ msgstr "Dom"
po/pt_BR.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
256+
257+#~ msgid "Apps"
258+#~ msgstr "Aplicativos"
259+
260+#~ msgid "Home"
261+#~ msgstr "Início"
po/ro.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,18 @@ 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 ""
258+
259+#~ msgid "Apps"
260+#~ msgstr "Aplicații"
261+
262+#~ msgid "Home"
263+#~ msgstr "Acasă"
po/ru.po+80−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,38 @@ 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"
257+
258+#~ msgid "Running apps"
259+#~ msgstr "Запущенные приложения"
260+
261+#~ msgid "Frequently used"
262+#~ msgstr "Часто используемые"
263+
264+#~ msgid "Installed"
265+#~ msgstr "Установленные"
266+
267+#~ msgid "Available for download"
268+#~ msgstr "Доступно для загрузки"
269+
270+#~ msgid "Apps"
271+#~ msgstr "Приложения"
272+
273+#~ msgid "Frequent Apps"
274+#~ msgstr "Часто используемые приложения"
275+
276+#~ msgid "Recent Music"
277+#~ msgstr "Недавно прослушанная музыка"
278+
279+#~ msgid "Videos Popular Online"
280+#~ msgstr "Популярные видео из сети"
281+
282+#~ msgid "Home"
283+#~ msgstr "Главная"
po/si.po+53−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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+74−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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,32 @@ 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 ""
257+
258+#~ msgid "Frequently used"
259+#~ msgstr "Pogosto uporabljano"
260+
261+#~ msgid "Installed"
262+#~ msgstr "Nameščeno"
263+
264+#~ msgid "Available for download"
265+#~ msgstr "Na voljo za prejem"
266+
267+#~ msgid "Apps"
268+#~ msgstr "Programi"
269+
270+#~ msgid "Recent Music"
271+#~ msgstr "Nedavna glasba"
272+
273+#~ msgid "Home"
274+#~ msgstr "Domov"
275+
276+#~ msgid "Frequent Apps"
277+#~ msgstr "Pogosto uporabljani programi"
po/sr.po+59−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,17 @@ 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 ""
257+
258+#~ msgid "Apps"
259+#~ msgstr "Програми"
260+
261+#~ msgid "Home"
262+#~ msgstr "Почетна"
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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+56−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,14 @@ 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 ""
256+
257+#~ msgid "Home"
258+#~ msgstr "నివాసం"
po/tr.po+80−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "Çalışan uygulamalar"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "Sıkça kullanılanlar"
262+
263+#~ msgid "Installed"
264+#~ msgstr "Yüklenenler"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "İndirilebilir durumda"
268+
269+#~ msgid "Apps"
270+#~ msgstr "Uygulamalar"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "Sıkça Kullanılan Uygulamalar"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "En Son Müzik"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "Çevrimiçi Yaygın Videolar"
280+
281+#~ msgid "Home"
282+#~ msgstr "Ana Sayfa"
po/ug.po+80−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "ئىجرا بولۇۋاتقان ئەپلەر"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "كوپ ئىشلىتىلگەنلىرى"
262+
263+#~ msgid "Installed"
264+#~ msgstr "ئورنىتىلغانلىرى"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "چۈشۈرگىلى بولىدىغانلىرى"
268+
269+#~ msgid "Apps"
270+#~ msgstr "ئەپلەر"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "دائىم ئىشلىتىلىدىغان ئەپلەر"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "يېقىندا ئاڭلىغان مۇزىكىلار"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "توردىكى ئالقىشقا ئېرىشكەن سىنلار"
280+
281+#~ msgid "Home"
282+#~ msgstr "ماكان"
po/uk.po+80−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
20+"X-Generator: Launchpad (build 16738)\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,38 @@ 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"
257+
258+#~ msgid "Running apps"
259+#~ msgstr "Запущені програми"
260+
261+#~ msgid "Frequently used"
262+#~ msgstr "Найчастіше використовувані"
263+
264+#~ msgid "Installed"
265+#~ msgstr "Встановлені"
266+
267+#~ msgid "Available for download"
268+#~ msgstr "Доступно до завантаження"
269+
270+#~ msgid "Apps"
271+#~ msgstr "Програми"
272+
273+#~ msgid "Frequent Apps"
274+#~ msgstr "Часто використовувані програми"
275+
276+#~ msgid "Recent Music"
277+#~ msgstr "Нещодавно прослухана музика"
278+
279+#~ msgid "Videos Popular Online"
280+#~ msgstr "Популярні в мережі відео"
281+
282+#~ msgid "Home"
283+#~ msgstr "Домівка"
po/unity8.pot+51−43
@@ -8,7 +8,7 @@ msgid ""
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+80−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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "正在运行的应用程序"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "常用"
262+
263+#~ msgid "Installed"
264+#~ msgstr "已安装"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "可供下载"
268+
269+#~ msgid "Apps"
270+#~ msgstr "应用程序"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "常用软件"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "近期听过的音乐"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "热门在线视频"
280+
281+#~ msgid "Home"
282+#~ msgstr "主页"
po/zh_TW.po+80−45
@@ -7,7 +7,7 @@ msgid ""
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-29 05:41+0000\n"
19+"X-Generator: Launchpad (build 16738)\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,38 @@ 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 ""
256+
257+#~ msgid "Running apps"
258+#~ msgstr "執行中的程式"
259+
260+#~ msgid "Frequently used"
261+#~ msgstr "最常使用"
262+
263+#~ msgid "Installed"
264+#~ msgstr "已安裝"
265+
266+#~ msgid "Available for download"
267+#~ msgstr "可供下載"
268+
269+#~ msgid "Apps"
270+#~ msgstr "程式"
271+
272+#~ msgid "Frequent Apps"
273+#~ msgstr "常用的程式"
274+
275+#~ msgid "Recent Music"
276+#~ msgstr "最近聽過的音樂"
277+
278+#~ msgid "Videos Popular Online"
279+#~ msgstr "線上熱門的影片"
280+
281+#~ msgid "Home"
282+#~ msgstr "家屋"
tests/autopilot/unity8/shell/emulators/create_interactive_notification.pynew file+102
@@ -0,0 +1,102 @@
1+#!/usr/bin/env python
2+
3+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
4+#
5+# Unity Autopilot Test Suite
6+# Copyright (C) 2012-2013 Canonical
7+#
8+# This program is free software: you can redistribute it and/or modify
9+# it under the terms of the GNU General Public License as published by
10+# the Free Software Foundation, either version 3 of the License, or
11+# (at your option) any later version.
12+#
13+# This program is distributed in the hope that it will be useful,
14+# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16+# GNU General Public License for more details.
17+#
18+# You should have received a copy of the GNU General Public License
19+# along with this program. If not, see <http://www.gnu.org/licenses/>.
20+#
21+
22+import argparse
23+from gi.repository import GLib, Notify
24+import signal
25+
26+
27+def action_callback(notification, action_id, data):
28+ print action_id
29+
30+
31+def quit_callback(notification):
32+ loop.quit()
33+
34+
35+if __name__ == '__main__':
36+ parser = argparse.ArgumentParser(
37+ description='Create an interactive notification'
38+ )
39+
40+ parser.add_argument(
41+ '--summary',
42+ help='summary text of the notification',
43+ default='Summary'
44+ )
45+ parser.add_argument(
46+ '--body',
47+ help='body text of the notification',
48+ default='Body'
49+ )
50+ parser.add_argument(
51+ '--icon',
52+ help='path to the icon to display',
53+ default=None
54+ )
55+ parser.add_argument(
56+ '--action',
57+ help='id and label for the callback in the format: id,label',
58+ action='append',
59+ default=[]
60+ )
61+ parser.add_argument(
62+ '--urgency',
63+ help='LOW, NORMAL, CRITICAL',
64+ choices=['LOW', 'NORMAL', 'CRITICAL'],
65+ default='NORMAL'
66+ )
67+ parser.add_argument(
68+ '--hints',
69+ help='list of comma sep options',
70+ action='append',
71+ default=[]
72+ )
73+
74+ args = parser.parse_args()
75+
76+ Notify.init('Interactive Notifications')
77+
78+ notification = Notify.Notification.new(args.summary, args.body, args.icon)
79+
80+ for hint in args.hints:
81+ key, value = hint.split(',', 1)
82+ notification.set_hint_string(key, value)
83+
84+ for action in args.action:
85+ action_id, action_label = action.split(',', 1)
86+ notification.add_action(
87+ action_id,
88+ action_label,
89+ action_callback,
90+ None,
91+ None
92+ )
93+
94+ def signal_handler(signam, frame):
95+ loop.quit()
96+
97+ signal.signal(signal.SIGINT, signal_handler)
98+
99+ loop = GLib.MainLoop.new(None, False)
100+ notification.connect('closed', quit_callback)
101+ notification.show()
102+ loop.run()
tests/autopilot/unity8/shell/tests/__init__.py+20−20
@@ -51,26 +51,25 @@ UNITYSHELL_GSETTINGS_PATH = "/org/compiz/profiles/unity/plugins/unityshell/"
5151UNITYSHELL_LAUNCHER_KEY = "launcher-hide-mode"
5252UNITYSHELL_LAUNCHER_MODE = 1 # launcher hidden
5353
54−def _get_device_emulation_scenarios():
54+def _get_device_emulation_scenarios(devices='All'):
55+ nexus4 = ('Desktop Nexus 4',
56+ dict(app_width=768, app_height=1280, grid_unit_px=18))
57+ nexus10 = ('Desktop Nexus 10',
58+ dict(app_width=2560, app_height=1600, grid_unit_px=20))
59+ native = ('Native Device',
60+ dict(app_width=0, app_height=0, grid_unit_px=0))
61+
5562 if model() == 'Desktop':
56− return [
57− (
58− 'Desktop Nexus 4',
59− dict(app_width=768, app_height=1280, grid_unit_px=18)
60− ),
61− (
62− 'Desktop Nexus 10',
63− dict(app_width=2560, app_height=1600, grid_unit_px=20)
64− ),
65− ]
63+ if devices == 'All':
64+ return [nexus4, nexus10]
65+ elif devices == 'Nexus4':
66+ return [nexus4]
67+ elif devices == 'Nexus10':
68+ return [nexus10]
69+ else:
70+ raise RuntimeException('Unrecognized device-option "%s" passed.' % devices)
6671 else:
67− return [
68− (
69− 'Native Device',
70− dict(app_width=0, app_height=0, grid_unit_px=0)
71− )
72− ]
73−
72+ return [native]
7473
7574class UnityTestCase(AutopilotTestCase):
7675
@@ -148,7 +147,7 @@ class UnityTestCase(AutopilotTestCase):
148147 divisor = divisor * 2
149148 return divisor
150149
151− def launch_unity(self):
150+ def launch_unity(self, **kwargs):
152151 """Launch the unity shell, return a proxy object for it."""
153152 binary_path = get_binary_path()
154153 lib_path = get_lib_path()
@@ -167,7 +166,8 @@ class UnityTestCase(AutopilotTestCase):
167166 binary_path,
168167 *self.unity_geometry_args,
169168 app_type='qt',
170− emulator_base=UnityEmulatorBase
169+ emulator_base=UnityEmulatorBase,
170+ **kwargs
171171 )
172172 self._set_proxy(app_proxy)
173173
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/autopilot/unity8/shell/tests/test_notifications.pynew file+737
@@ -0,0 +1,737 @@
1+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2+#
3+# Unity Autopilot Test Suite
4+# Copyright (C) 2012-2013 Canonical
5+#
6+# This program is free software: you can redistribute it and/or modify
7+# it under the terms of the GNU General Public License as published by
8+# the Free Software Foundation, either version 3 of the License, or
9+# (at your option) any later version.
10+#
11+# This program is distributed in the hope that it will be useful,
12+# but WITHOUT ANY WARRANTY; without even the implied warranty of
13+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+# GNU General Public License for more details.
15+#
16+# You should have received a copy of the GNU General Public License
17+# along with this program. If not, see <http://www.gnu.org/licenses/>.
18+#
19+
20+"""Tests for Notifications"""
21+
22+from __future__ import absolute_import
23+
24+from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
25+
26+from testtools.matchers import Equals, NotEquals
27+from autopilot.matchers import Eventually
28+
29+from gi.repository import Notify
30+import time
31+import os
32+import logging
33+import signal
34+import subprocess
35+
36+logger = logging.getLogger(__name__)
37+
38+
39+class NotificationsBase(UnityTestCase):
40+ """Base class for all notification tests that provides helper methods."""
41+
42+ scenarios = _get_device_emulation_scenarios('Nexus4')
43+
44+ def _get_icon_path(self, icon_name):
45+ """Given an icons file name returns the full path (either system or
46+ source tree.
47+
48+ Consider the graphics directory as root so for example (runnign tests
49+ from installed unity8-autopilot package):
50+ >>> self.get_icon_path('clock.png')
51+ /usr/share/unity8/graphics/clock.png
52+
53+ >>> self.get_icon_path('applicationIcons/facebook.png')
54+ /usr/share/unity8/graphics/applicationIcons/facebook.png
55+
56+ """
57+ if os.path.abspath(__file__).startswith('/usr/'):
58+ return '/usr/share/unity8/graphics/' + icon_name
59+ else:
60+ return os.path.abspath(
61+ os.getcwd() + "/../../graphics/" + icon_name
62+ )
63+
64+ def _get_notifications_list(self):
65+ main_view = self.main_window.get_qml_view()
66+ return main_view.select_single(
67+ "QQuickListView",
68+ objectName='notificationList'
69+ )
70+
71+ def _assert_notification(
72+ self,
73+ notification,
74+ summary=None,
75+ body=None,
76+ icon=True,
77+ secondary_icon=False,
78+ opacity=None
79+ ):
80+ """Assert that the expected qualities of a notification are as
81+ expected.
82+
83+ """
84+
85+ if summary is not None:
86+ self.assertThat(notification.summary, Eventually(Equals(summary)))
87+
88+ if body is not None:
89+ self.assertThat(notification.body, Eventually(Equals(body)))
90+
91+ if icon:
92+ self.assertThat(notification.iconSource, Eventually(NotEquals("")))
93+ else:
94+ self.assertThat(notification.iconSource, Eventually(Equals("")))
95+
96+ if secondary_icon:
97+ self.assertThat(
98+ notification.secondaryIconSource,
99+ Eventually(NotEquals(""))
100+ )
101+ else:
102+ self.assertThat(
103+ notification.secondaryIconSource,
104+ Eventually(Equals(""))
105+ )
106+
107+ if opacity is not None:
108+ self.assertThat(notification.opacity, Eventually(Equals(opacity)))
109+
110+
111+class InteractiveNotificationBase(NotificationsBase):
112+ """Collection of test for Interactive tests including snap decisions."""
113+
114+ def setUp(self):
115+ super(InteractiveNotificationBase, self).setUp()
116+ # Need to keep track when we launch the notification script.
117+ self._notify_proc = None
118+
119+ def test_interactive(self):
120+ """Interactive notification must react upon click on itself."""
121+ self.launch_unity()
122+ greeter = self.main_window.get_greeter()
123+ greeter.swipe()
124+
125+ notify_list = self._get_notifications_list()
126+
127+ summary = "Interactive notification"
128+ body = "This notification can be clicked on to trigger an action."
129+ icon_path = self._get_icon_path('avatars/anna_olsson.png')
130+ actions = [("action_id", "dummy")]
131+ hints = [
132+ ("x-canonical-switch-to-application", "true"),
133+ (
134+ "x-canonical-secondary-icon",
135+ self._get_icon_path('applicationIcons/phone-app.png')
136+ )
137+ ]
138+
139+ self._create_interactive_notification(
140+ summary,
141+ body,
142+ icon_path,
143+ "NORMAL",
144+ actions,
145+ hints,
146+ )
147+
148+ get_notification = lambda: notify_list.select_single('Notification')
149+ self.assertThat(get_notification, Eventually(NotEquals(None)))
150+ notification = get_notification()
151+
152+ self.touch.tap_object(
153+ notification.select_single(objectName="interactiveArea")
154+ )
155+
156+ self.assert_notification_action_id_was_called('action_id')
157+
158+ def test_sd_incoming_call(self):
159+ """Rejecting a call should make notification expand and offer more options."""
160+ self.launch_unity()
161+ greeter = self.main_window.get_greeter()
162+ greeter.swipe()
163+
164+ notify_list = self._get_notifications_list()
165+
166+ summary = "Incoming call"
167+ body = "Frank Zappa\n+44 (0)7736 027340"
168+ icon_path = self._get_icon_path('avatars/anna_olsson.png')
169+ hints = [
170+ (
171+ "x-canonical-secondary-icon",
172+ self._get_icon_path('applicationIcons/phone-app.png')
173+ ),
174+ ("x-canonical-snap-decisions", "true"),
175+ ]
176+
177+ actions = [
178+ ('action_accept', 'Accept'),
179+ ('action_decline_1', 'Decline'),
180+ ('action_decline_2', '"Can\'t talk now, what\'s up?"'),
181+ ('action_decline_3', '"I call you back."'),
182+ ('action_decline_4', 'Send custom message...'),
183+ ]
184+
185+ self._create_interactive_notification(
186+ summary,
187+ body,
188+ icon_path,
189+ "NORMAL",
190+ actions,
191+ hints
192+ )
193+
194+ get_notification = lambda: notify_list.select_single('Notification')
195+ self.assertThat(get_notification, Eventually(NotEquals(None)))
196+ notification = get_notification()
197+ self._assert_notification(notification, None, None, True, True, 1.0)
198+ initial_height = notification.height
199+ self.touch.tap_object(notification.select_single(objectName="button1"))
200+ self.assertThat(
201+ notification.height,
202+ Eventually(Equals(initial_height +
203+ 3 * notification.select_single(objectName="buttonColumn").spacing +
204+ 3 * notification.select_single(objectName="button4").height)))
205+ self.touch.tap_object(notification.select_single(objectName="button4"))
206+ self.assert_notification_action_id_was_called("action_decline_4")
207+
208+ def _create_interactive_notification(
209+ self,
210+ summary="",
211+ body="",
212+ icon=None,
213+ urgency="NORMAL",
214+ actions=[],
215+ hints=[]
216+ ):
217+ """Create a interactive notification command.
218+
219+ :param summary: Summary text for the notification
220+ :param body: Body text to display in the notification
221+ :param icon: Path string to the icon to use
222+ :param urgency: Urgency string for the noticiation, either: 'LOW',
223+ 'NORMAL', 'CRITICAL'
224+ :param actions: List of tuples containing the 'id' and 'label' for all
225+ the actions to add
226+ :param hint_strings: List of tuples containing the 'name' and value for
227+ setting the hint strings for the notification
228+
229+ """
230+
231+ logger.info(
232+ "Creating snap-decision notification with summary(%s), body(%s) "
233+ "and urgency(%r)",
234+ summary,
235+ body,
236+ urgency
237+ )
238+
239+ script_args = [
240+ '--summary', summary,
241+ '--body', body,
242+ '--urgency', urgency
243+ ]
244+
245+ if icon is not None:
246+ script_args.extend(['--icon', icon])
247+
248+ for hint in hints:
249+ key, value = hint
250+ script_args.extend(['--hint', "%s,%s" % (key, value)])
251+
252+ for action in actions:
253+ action_id, action_label = action
254+ action_string = "%s,%s" % (action_id, action_label)
255+ script_args.extend(['--action', action_string])
256+
257+ python_bin = subprocess.check_output(['which', 'python']).strip()
258+ command = [python_bin, self._get_notify_script()] + script_args
259+ logger.info("Launching snap-decision notification as: %s", command)
260+ self._notify_proc = subprocess.Popen(
261+ command,
262+ stdin=subprocess.PIPE,
263+ stdout=subprocess.PIPE,
264+ stderr=subprocess.PIPE,
265+ close_fds=True,
266+ )
267+
268+ self.addCleanup(self._tidy_up_script_process)
269+
270+ poll_result = self._notify_proc.poll()
271+ if poll_result is not None and self._notify_proc.returncode != 0:
272+ error_output = self._notify_proc.communicate()[1]
273+ raise RuntimeError("Call to script failed with: %s" % error_output)
274+
275+ def _get_notify_script(self):
276+ """Returns the path to the interactive notification creation script."""
277+ file_path = "../../emulators/create_interactive_notification.py"
278+
279+ the_path = os.path.abspath(
280+ os.path.join(__file__, file_path))
281+
282+ return the_path
283+
284+ def _tidy_up_script_process(self):
285+ if self._notify_proc is not None and self._notify_proc.poll() is None:
286+ logger.error("Notification process wasn't killed, killing now.")
287+ os.killpg(self._notify_proc.pid, signal.SIGTERM)
288+
289+ def assert_notification_action_id_was_called(self, action_id, timeout=10):
290+ """Assert that the interactive notification callback of id *action_id*
291+ was called.
292+
293+ :raises AssertionError: If no interactive notification has actually
294+ been created.
295+ :raises AssertionError: When *action_id* does not match the actual
296+ returned.
297+ :raises AssertionError: If no callback was called at all.
298+ """
299+
300+ if self._notify_proc is None:
301+ raise AssertionError("No interactive notification was created.")
302+
303+ for i in xrange(timeout):
304+ self._notify_proc.poll()
305+ if self._notify_proc.returncode is not None:
306+ output = self._notify_proc.communicate()
307+ actual_action_id = output[0].strip("\n")
308+ if actual_action_id != action_id:
309+ raise AssertionError(
310+ "action id '%s' does not match actual returned '%s'"
311+ % (action_id, actual_action_id)
312+ )
313+ else:
314+ return
315+ time.sleep(1)
316+
317+ os.killpg(self._notify_proc.pid, signal.SIGTERM)
318+ self._notify_proc = None
319+ raise AssertionError(
320+ "No callback was called, killing interactivenotification script"
321+ )
322+
323+
324+class EphemeralNotificationsTests(NotificationsBase):
325+ """Collection of tests for Emphemeral notifications (non-interactive.)"""
326+
327+ def setUp(self):
328+ super(EphemeralNotificationsTests, self).setUp()
329+ # Because we are using the Notify library we need to init and un-init
330+ # otherwise we get crashes.
331+ Notify.init("Autopilot Ephemeral Notification Tests")
332+ self.addCleanup(Notify.uninit)
333+
334+ def test_icon_summary_body(self):
335+ """Notification must display the expected summary and body text."""
336+ self.launch_unity()
337+ greeter = self.main_window.get_greeter()
338+ greeter.swipe()
339+
340+ notify_list = self._get_notifications_list()
341+
342+ summary = "Icon-Summary-Body"
343+ body = "Hey pal, what's up with the party next weekend? Will you " \
344+ "join me and Anna?"
345+ icon_path = self._get_icon_path('avatars/anna_olsson.png')
346+ hints = [
347+ (
348+ "x-canonical-secondary-icon",
349+ self._get_icon_path('applicationIcons/phone-app.png')
350+ )
351+ ]
352+
353+ notification = self._create_ephemeral_notification(
354+ summary,
355+ body,
356+ icon_path,
357+ hints,
358+ "NORMAL",
359+ )
360+
361+ notification.show()
362+
363+ get_notification = lambda: notify_list.select_single('Notification')
364+ self.assertThat(get_notification, Eventually(NotEquals(None)))
365+ notification = get_notification()
366+ self._assert_notification(notification, summary, body, True, True, 1.0)
367+
368+ def test_icon_summary(self):
369+ """Notification must display the expected summary and secondary icon."""
370+ self.launch_unity()
371+ greeter = self.main_window.get_greeter()
372+ greeter.swipe()
373+
374+ notify_list = self._get_notifications_list()
375+
376+ summary = "Upload of image completed"
377+ hints = [
378+ (
379+ "x-canonical-secondary-icon",
380+ self._get_icon_path('applicationIcons/facebook.png')
381+ )
382+ ]
383+
384+ notification = self._create_ephemeral_notification(
385+ summary,
386+ None,
387+ None,
388+ hints,
389+ "NORMAL",
390+ )
391+
392+ notification.show()
393+
394+ get_notification = lambda: notify_list.select_single('Notification')
395+ self.assertThat(get_notification, Eventually(NotEquals(None)))
396+ notification = get_notification()
397+ self._assert_notification(
398+ notification,
399+ summary,
400+ None,
401+ False,
402+ True,
403+ 1.0
404+ )
405+
406+ def test_urgency_order(self):
407+ """Notifications must be displayed in order according to their urgency."""
408+ self.launch_unity()
409+ greeter = self.main_window.get_greeter()
410+ greeter.swipe()
411+
412+ notify_list = self._get_notifications_list()
413+
414+ summary_low = 'Low Urgency'
415+ body_low = "No, I'd rather see paint dry, pal *yawn*"
416+ icon_path_low = self._get_icon_path('avatars/amanda.png')
417+
418+ summary_normal = 'Normal Urgency'
419+ body_normal = "Hey pal, what's up with the party next weekend? Will " \
420+ "you join me and Anna?"
421+ icon_path_normal = self._get_icon_path('avatars/funky.png')
422+
423+ summary_critical = 'Critical Urgency'
424+ body_critical = 'Dude, this is so urgent you have no idea :)'
425+ icon_path_critical = self._get_icon_path('avatars/anna_olsson.png')
426+
427+ notification_normal = self._create_ephemeral_notification(
428+ summary_normal,
429+ body_normal,
430+ icon_path_normal,
431+ urgency="NORMAL"
432+ )
433+ notification_normal.show()
434+
435+ notification_low = self._create_ephemeral_notification(
436+ summary_low,
437+ body_low,
438+ icon_path_low,
439+ urgency="LOW"
440+ )
441+ notification_low.show()
442+
443+ notification_critical = self._create_ephemeral_notification(
444+ summary_critical,
445+ body_critical,
446+ icon_path_critical,
447+ urgency="CRITICAL"
448+ )
449+ notification_critical.show()
450+
451+ get_notification = lambda: notify_list.select_single(
452+ 'Notification',
453+ summary=summary_critical
454+ )
455+ self.assertThat(get_notification, Eventually(NotEquals(None)))
456+
457+ notification = get_notification()
458+ self._assert_notification(
459+ notification,
460+ summary_critical,
461+ body_critical,
462+ True,
463+ False,
464+ 1.0
465+ )
466+
467+ get_normal_notification = lambda: notify_list.select_single(
468+ 'Notification',
469+ summary=summary_normal
470+ )
471+ self.assertThat(get_normal_notification, Eventually(NotEquals(None)))
472+ notification = get_normal_notification()
473+ self._assert_notification(
474+ notification,
475+ summary_normal,
476+ body_normal,
477+ True,
478+ False,
479+ 1.0
480+ )
481+
482+ get_low_notification = lambda: notify_list.select_single(
483+ 'Notification',
484+ summary=summary_low
485+ )
486+ self.assertThat(get_low_notification, Eventually(NotEquals(None)))
487+ notification = get_low_notification()
488+ self._assert_notification(
489+ notification,
490+ summary_low,
491+ body_low,
492+ True,
493+ False,
494+ 1.0
495+ )
496+
497+ def test_summary_and_body(self):
498+ """Notification must display the expected summary- and body-text."""
499+ self.launch_unity()
500+ greeter = self.main_window.get_greeter()
501+ greeter.swipe()
502+
503+ notify_list = self._get_notifications_list()
504+
505+ summary = 'Summary-Body'
506+ body = 'This is a superfluous notification'
507+
508+ notification = self._create_ephemeral_notification(summary, body)
509+ notification.show()
510+
511+ get_notification = lambda: notify_list.select_single('Notification')
512+ self.assertThat(get_notification, Eventually(NotEquals(None)))
513+ notification = get_notification()
514+ self._assert_notification(
515+ notification,
516+ summary,
517+ body,
518+ False,
519+ False,
520+ 1.0
521+ )
522+
523+ def test_summary_only(self):
524+ """Notification must display only the expected summary-text."""
525+ self.launch_unity()
526+ greeter = self.main_window.get_greeter()
527+ greeter.swipe()
528+
529+ notify_list = self._get_notifications_list()
530+
531+ summary = 'Summary-Only'
532+
533+ notification = self._create_ephemeral_notification(summary)
534+ notification.show()
535+
536+ get_notification = lambda: notify_list.select_single('Notification')
537+ self.assertThat(get_notification, Eventually(NotEquals(None)))
538+ notification = get_notification()
539+
540+ self._assert_notification(notification, summary, '', False, False, 1.0)
541+
542+ def test_update_notification_same_layout(self):
543+ """Notification must allow updating its contents while being displayed."""
544+ self.launch_unity()
545+ greeter = self.main_window.get_greeter()
546+ greeter.swipe()
547+
548+ notify_list = self._get_notifications_list()
549+
550+ summary = 'Initial notification'
551+ body = 'This is the original content of this notification-bubble.'
552+ icon_path = self._get_icon_path('avatars/funky.png')
553+
554+ notification = self._create_ephemeral_notification(
555+ summary,
556+ body,
557+ icon_path
558+ )
559+ notification.show()
560+
561+ get_notification = lambda: notify_list.select_single('Notification', summary=summary)
562+ self.assertThat(get_notification, Eventually(NotEquals(None)))
563+ self._assert_notification(
564+ get_notification(),
565+ summary,
566+ body,
567+ True,
568+ False,
569+ 1.0
570+ )
571+
572+ summary = 'Updated notification'
573+ body = 'Here the same bubble with new title- and body-text, even ' \
574+ 'the icon can be changed on the update.'
575+ icon_path = self._get_icon_path('avatars/amanda.png')
576+ notification.update(summary, body, icon_path)
577+ notification.show()
578+ self.assertThat(get_notification, Eventually(NotEquals(None)))
579+ self._assert_notification(get_notification(), summary, body)
580+
581+ def test_update_notification_layout_change(self):
582+ """Notification must allow updating its contents and layout while being displayed."""
583+ self.launch_unity()
584+ greeter = self.main_window.get_greeter()
585+ greeter.swipe()
586+
587+ notify_list = self._get_notifications_list()
588+
589+ summary = 'Initial layout'
590+ body = 'This bubble uses the icon-title-body layout with a ' \
591+ 'secondary icon.'
592+ icon_path = self._get_icon_path('avatars/anna_olsson.png')
593+ hint_icon = self._get_icon_path('applicationIcons/phone-app.png')
594+
595+ notification = self._create_ephemeral_notification(
596+ summary,
597+ body,
598+ icon_path
599+ )
600+ notification.set_hint_string(
601+ 'x-canonical-secondary-icon',
602+ hint_icon
603+ )
604+ notification.show()
605+
606+ get_notification = lambda: notify_list.select_single('Notification')
607+ self.assertThat(get_notification, Eventually(NotEquals(None)))
608+ self._assert_notification(
609+ get_notification(),
610+ summary,
611+ body,
612+ True,
613+ True,
614+ 1.0
615+ )
616+
617+ notification.clear_hints()
618+ summary = 'Updated layout'
619+ body = 'After the update we now have a bubble using the title-body ' \
620+ 'layout.'
621+ notification.update(summary, body, None)
622+ notification.show()
623+
624+ self.assertThat(get_notification, Eventually(NotEquals(None)))
625+ self._assert_notification(get_notification(), summary, body, False)
626+
627+ def test_append_hint(self):
628+ """Notification has to accumulate body-text using append-hint."""
629+ self.launch_unity()
630+ greeter = self.main_window.get_greeter()
631+ greeter.swipe()
632+
633+ notify_list = self._get_notifications_list()
634+
635+ summary = 'Cole Raby'
636+ body = 'Hey Bro Coly!'
637+ icon_path = self._get_icon_path('avatars/amanda.png')
638+ body_sum = body
639+ notification = self._create_ephemeral_notification(
640+ summary,
641+ body,
642+ icon_path,
643+ hints=[('x-canonical-append', 'true')]
644+ )
645+
646+ notification.show()
647+
648+ get_notification = lambda: notify_list.select_single('Notification')
649+ self.assertThat(get_notification, Eventually(NotEquals(None)))
650+ notification = get_notification()
651+ self._assert_notification(
652+ notification,
653+ summary,
654+ body_sum,
655+ True,
656+ False,
657+ 1.0
658+ )
659+
660+ bodies = [
661+ 'What\'s up dude?',
662+ 'Did you watch the air-race in Oshkosh last week?',
663+ 'Phil owned the place like no one before him!',
664+ 'Did really everything in the race work according to regulations?',
665+ 'Somehow I think to remember Burt Williams did cut corners and was not punished for this.',
666+ 'Hopefully the referees will watch the videos of the race.',
667+ 'Burt could get fined with US$ 50000 for that rule-violation :)'
668+ ]
669+
670+ for new_body in bodies:
671+ body = new_body
672+ body_sum += '\n' + body
673+ notification = self._create_ephemeral_notification(
674+ summary,
675+ body,
676+ icon_path,
677+ hints=[('x-canonical-append', 'true')]
678+ )
679+ notification.show()
680+ get_notification = lambda: notify_list.select_single(
681+ 'Notification'
682+ )
683+ self.assertThat(get_notification, Eventually(NotEquals(None)))
684+ notification = get_notification()
685+ self._assert_notification(
686+ notification,
687+ summary,
688+ body_sum,
689+ True,
690+ False,
691+ 1.0
692+ )
693+
694+ def _create_ephemeral_notification(
695+ self,
696+ summary="",
697+ body="",
698+ icon=None,
699+ hints=[],
700+ urgency="NORMAL"
701+ ):
702+ """Create an ephemeral (non-interactive) notification
703+
704+ :param summary: Summary text for the notification
705+ :param body: Body text to display in the notification
706+ :param icon: Path string to the icon to use
707+ :param hint_strings: List of tuples containing the 'name' and value
708+ for setting the hint strings for the notification
709+ :param urgency: Urgency string for the noticiation, either: 'LOW',
710+ 'NORMAL', 'CRITICAL'
711+
712+ """
713+ logger.info(
714+ "Creating ephemeral: summary(%s), body(%s), urgency(%r) "
715+ "and Icon(%s)",
716+ summary,
717+ body,
718+ urgency,
719+ icon
720+ )
721+
722+ n = Notify.Notification.new(summary, body, icon)
723+
724+ for hint in hints:
725+ key, value = hint
726+ n.set_hint_string(key, value)
727+ logger.info("Adding hint to notification: (%s, %s)", key, value)
728+ n.set_urgency(self._get_urgency(urgency))
729+
730+ return n
731+
732+ def _get_urgency(self, urgency):
733+ """Translates urgency string to enum."""
734+ _urgency_enums = {'LOW': Notify.Urgency.LOW,
735+ 'NORMAL': Notify.Urgency.NORMAL,
736+ 'CRITICAL': Notify.Urgency.CRITICAL}
737+ return _urgency_enums.get(urgency.upper())
tests/mocks/AccountsService/AccountsService.cppnew file+33
@@ -0,0 +1,33 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Michael Terry <michael.terry@canonical.com>
17+ */
18+
19+#include "AccountsService.h"
20+
21+AccountsService::AccountsService(QObject* parent)
22+ : QObject(parent)
23+{
24+}
25+
26+QVariant AccountsService::getUserProperty(const QString &, const QString &)
27+{
28+ return QVariant(false);
29+}
30+
31+void AccountsService::setUserProperty(const QString &, const QString &, const QVariant &)
32+{
33+}
tests/mocks/AccountsService/AccountsService.hnew file+38
@@ -0,0 +1,38 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Gerry Boland <gerry.boland@canonical.com>
17+ * Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#ifndef UNITY_MOCK_ACCOUNTSSERVICE_H
21+#define UNITY_MOCK_ACCOUNTSSERVICE_H
22+
23+#include <QObject>
24+#include <QString>
25+#include <QVariant>
26+
27+class AccountsService: public QObject
28+{
29+ Q_OBJECT
30+
31+public:
32+ explicit AccountsService(QObject *parent = 0);
33+
34+ Q_INVOKABLE QVariant getUserProperty(const QString &user, const QString &property);
35+ Q_INVOKABLE void setUserProperty(const QString &user, const QString &property, const QVariant &value);
36+};
37+
38+#endif
tests/mocks/AccountsService/CMakeLists.txtnew file+19
@@ -0,0 +1,19 @@
1+add_library(MockAccountsService-qml MODULE
2+ AccountsService.cpp
3+ plugin.cpp
4+ )
5+
6+qt5_use_modules(MockAccountsService-qml DBus Qml)
7+
8+# copy files into build directory for shadow builds
9+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/qmldir"
10+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
11+ )
12+
13+install(TARGETS MockAccountsService-qml
14+ DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/mocks/AccountsService
15+ )
16+
17+install(FILES qmldir
18+ DESTINATION ${SHELL_PRIVATE_LIBDIR}/qml/mocks/AccountsService
19+ )
tests/mocks/AccountsService/plugin.cppnew file+36
@@ -0,0 +1,36 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Gerry Boland <gerry.boland@canonical.com>
17+ * Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "plugin.h"
21+#include "AccountsService.h"
22+
23+#include <QtQml>
24+
25+static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
26+{
27+ Q_UNUSED(engine)
28+ Q_UNUSED(scriptEngine)
29+ return new AccountsService();
30+}
31+
32+void AccountsServicePlugin::registerTypes(const char *uri)
33+{
34+ Q_ASSERT(uri == QLatin1String("AccountsService"));
35+ qmlRegisterSingletonType<AccountsService>(uri, 0, 1, "AccountsService", service_provider);
36+}
tests/mocks/AccountsService/plugin.hnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright (C) 2012,2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors: Gerry Boland <gerry.boland@canonical.com>
17+ * Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#ifndef MOCK_ACCOUNTSSERVICE_PLUGIN_H
21+#define MOCK_ACCOUNTSSERVICE_PLUGIN_H
22+
23+#include <QQmlEngine>
24+#include <QQmlExtensionPlugin>
25+
26+class AccountsServicePlugin : public QQmlExtensionPlugin
27+{
28+ Q_OBJECT
29+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
30+
31+public:
32+ void registerTypes(const char *uri);
33+};
34+
35+#endif
tests/mocks/AccountsService/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module AccountsService
2+plugin MockAccountsService-qml
tests/mocks/CMakeLists.txt+1
@@ -1,3 +1,4 @@
1+add_subdirectory(AccountsService)
12add_subdirectory(GSettings.1.0)
23add_subdirectory(HudClient)
34add_subdirectory(libusermetrics)
tests/mocks/GSettings.1.0/fake_gsettings.h+1−1
@@ -18,7 +18,7 @@
1818#define FAKE_GSETTINGS_H
1919
2020#include <QList>
21−#include <QtQml>
21+#include <QObject>
2222
2323class GSettingsSchemaQml: public QObject
2424{
tests/mocks/GSettings.1.0/plugin.cpp+1−1
@@ -17,7 +17,7 @@
1717#include "plugin.h"
1818#include "fake_gsettings.h"
1919
20−#include <QtQml>
20+#include <QtQml/qqml.h>
2121
2222static QObject* controllerProvider(QQmlEngine* /* engine */, QJSEngine* /* scriptEngine */)
2323{
tests/mocks/Powerd/plugin.cpp+1−1
@@ -19,7 +19,7 @@
1919#include "plugin.h"
2020#include "Powerd.h"
2121
22−#include <QtQml/QtQml>
22+#include <QtQml/qqml.h>
2323
2424static QObject *powerd_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
2525{
tests/mocks/Ubuntu/DownloadDaemonListener/plugin.cpp−1
@@ -17,7 +17,6 @@
1717#include "plugin.h"
1818#include "MockDownloadTracker.h"
1919
20−#include <QtQml>
2120#include <QtQml/QQmlContext>
2221#include <qqml.h>
2322
tests/mocks/Unity/Indicators/fakeplugin.cpp+1−1
@@ -17,7 +17,7 @@
1717 */
1818
1919// Qt
20−#include <QtQml>
20+#include <QtQml/qqml.h>
2121
2222// self
2323#include "fakeplugin.h"
tests/mocks/Unity/Launcher/MockLauncherModel.cpp+6
@@ -174,3 +174,9 @@ int MockLauncherModel::findApp(const QString &appId)
174174 }
175175 return -1;
176176}
177+
178+void MockLauncherModel::setUser(const QString &username)
179+{
180+ Q_UNUSED(username)
181+ // TODO: implement this...
182+}
tests/mocks/Unity/Launcher/MockLauncherModel.h+1
@@ -43,6 +43,7 @@ public:
4343 Q_INVOKABLE void pin(const QString &appId, int index = -1);
4444 Q_INVOKABLE void requestRemove(const QString &appId);
4545 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
46+ Q_INVOKABLE void setUser(const QString &username);
4647
4748Q_SIGNALS:
4849 void quickListTriggered(const QString &appId, int index);
tests/mocks/Unity/fake_unity_plugin.cpp+2−1
@@ -26,7 +26,8 @@
2626
2727// External
2828#include <glib-object.h>
29−#include <QtQml>
29+
30+#include <QtQml/qqml.h>
3031
3132void FakeUnityPlugin::registerTypes(const char *uri)
3233{
tests/plugins/AccountsService/AccountsServer.cppnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "AccountsServer.h"
21+
22+AccountsServer::AccountsServer(QObject *parent)
23+ : QObject(parent)
24+{
25+}
26+
27+QDBusObjectPath AccountsServer::FindUserByName(const QString &user)
28+{
29+ if (user == "testuser") {
30+ return QDBusObjectPath("/user");
31+ } else {
32+ sendErrorReply(QDBusError::InvalidArgs, "Bad user");
33+ return QDBusObjectPath("/");
34+ }
35+}
tests/plugins/AccountsService/AccountsServer.hnew file+39
@@ -0,0 +1,39 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#ifndef UNITY_ACCOUNTSSERVER_H
21+#define UNITY_ACCOUNTSSERVER_H
22+
23+#include <QDBusContext>
24+#include <QDBusObjectPath>
25+#include <QObject>
26+#include <QString>
27+
28+class AccountsServer: public QObject, protected QDBusContext
29+{
30+ Q_OBJECT
31+
32+public:
33+ explicit AccountsServer(QObject *parent = 0);
34+
35+public Q_SLOTS:
36+ QDBusObjectPath FindUserByName(const QString &user);
37+};
38+
39+#endif
tests/plugins/AccountsService/CMakeLists.txtnew file+40
@@ -0,0 +1,40 @@
1+macro(make_dbus_class NAME INTERFACE)
2+ if(${CMAKE_CURRENT_SOURCE_DIR}/interfaces.xml IS_NEWER_THAN ${CMAKE_CURRENT_BINARY_DIR}/${NAME}Adaptor.h)
3+ execute_process(COMMAND qdbusxml2cpp -c ${NAME}Adaptor -a ${CMAKE_CURRENT_BINARY_DIR}/${NAME}Adaptor ${CMAKE_CURRENT_SOURCE_DIR}/interfaces.xml ${INTERFACE})
4+ endif()
5+endmacro(make_dbus_class)
6+
7+make_dbus_class(Accounts org.freedesktop.Accounts)
8+make_dbus_class(Properties org.freedesktop.DBus.Properties)
9+
10+include_directories(
11+ ${CMAKE_CURRENT_BINARY_DIR}
12+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService
13+ )
14+
15+add_definitions(-DSM_BUSNAME=sessionBus)
16+
17+add_executable(mock-server
18+ ${CMAKE_CURRENT_BINARY_DIR}/AccountsAdaptor.cpp
19+ ${CMAKE_CURRENT_BINARY_DIR}/PropertiesAdaptor.cpp
20+ server.cpp
21+ AccountsServer.cpp
22+ PropertiesServer.cpp
23+ )
24+qt5_use_modules(mock-server Core DBus)
25+
26+add_executable(test-accountsservice
27+ ${CMAKE_SOURCE_DIR}/plugins/AccountsService/AccountsService.cpp
28+ client.cpp
29+ )
30+qt5_use_modules(test-accountsservice Core DBus Test)
31+
32+add_test(NAME test-accountsservice
33+ COMMAND dbus-test-runner
34+ --task ${CMAKE_CURRENT_BINARY_DIR}/mock-server
35+ --task-name server
36+ --ignore-return
37+ --task ${CMAKE_CURRENT_BINARY_DIR}/test-accountsservice
38+ --task-name client
39+ --wait-for org.freedesktop.Accounts
40+ )
tests/plugins/AccountsService/PropertiesServer.cppnew file+45
@@ -0,0 +1,45 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "PropertiesServer.h"
21+
22+PropertiesServer::PropertiesServer(QObject *parent)
23+ : QObject(parent),
24+ edge_demo(true)
25+{
26+}
27+
28+QDBusVariant PropertiesServer::Get(const QString &interface, const QString &property)
29+{
30+ if (interface == "com.canonical.unity.AccountsService" && property == "demo-edges") {
31+ return QDBusVariant(QVariant(edge_demo));
32+ } else {
33+ sendErrorReply(QDBusError::InvalidArgs, "Bad interface or property");
34+ return QDBusVariant(QVariant());
35+ }
36+}
37+
38+void PropertiesServer::Set(const QString &interface, const QString &property, const QDBusVariant &variant)
39+{
40+ if (interface == "com.canonical.unity.AccountsService" && property == "demo-edges") {
41+ edge_demo = variant.variant().toBool();
42+ } else {
43+ sendErrorReply(QDBusError::InvalidArgs, "Bad interface or property");
44+ }
45+}
tests/plugins/AccountsService/PropertiesServer.hnew file+44
@@ -0,0 +1,44 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#ifndef UNITY_PROPERTIESSERVER_H
21+#define UNITY_PROPERTIESSERVER_H
22+
23+#include "PropertiesServer.h"
24+#include <QDBusContext>
25+#include <QDBusVariant>
26+#include <QObject>
27+#include <QString>
28+
29+class PropertiesServer: public QObject, protected QDBusContext
30+{
31+ Q_OBJECT
32+
33+public:
34+ explicit PropertiesServer(QObject *parent = 0);
35+
36+public Q_SLOTS:
37+ QDBusVariant Get(const QString &interface, const QString &property);
38+ void Set(const QString &interface, const QString &property, const QDBusVariant &variant);
39+
40+private:
41+ bool edge_demo;
42+};
43+
44+#endif
tests/plugins/AccountsService/client.cppnew file+49
@@ -0,0 +1,49 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "AccountsService.h"
21+#include <QSignalSpy>
22+#include <QTest>
23+
24+class AccountsServiceTest : public QObject
25+{
26+ Q_OBJECT
27+
28+private Q_SLOTS:
29+
30+ void testInvalids()
31+ {
32+ // Test various invalid calls
33+ AccountsService session;
34+ QCOMPARE(session.getUserProperty("NOPE", "demo-edges"), QVariant());
35+ QCOMPARE(session.getUserProperty("testuser", "NOPE"), QVariant());
36+ }
37+
38+ void testGetSet()
39+ {
40+ AccountsService session;
41+ QCOMPARE(session.getUserProperty("testuser", "demo-edges"), QVariant(true));
42+ session.setUserProperty("testuser", "demo-edges", QVariant(false));
43+ QCOMPARE(session.getUserProperty("testuser", "demo-edges"), QVariant(false));
44+ }
45+};
46+
47+QTEST_MAIN(AccountsServiceTest)
48+
49+#include "client.moc"
tests/plugins/AccountsService/interfaces.xmlnew file+20
@@ -0,0 +1,20 @@
1+<node>
2+ <interface name="org.freedesktop.DBus.Properties">
3+ <method name="Get">
4+ <arg name="interface" type="s" direction="in" />
5+ <arg name="property" type="s" direction="in" />
6+ <arg name="value" type="v" direction="out" />
7+ </method>
8+ <method name="Set">
9+ <arg name="interface" type="s" direction="in" />
10+ <arg name="property" type="s" direction="in" />
11+ <arg name="value" type="v" direction="in" />
12+ </method>
13+ </interface>
14+ <interface name="org.freedesktop.Accounts">
15+ <method name="FindUserByName">
16+ <arg name="user" type="s" direction="in" />
17+ <arg name="path" type="o" direction="out" />
18+ </method>
19+ </interface>
20+</node>
tests/plugins/AccountsService/server.cppnew file+46
@@ -0,0 +1,46 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software: you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License version 3, as published
6+ * by the Free Software Foundation.
7+ *
8+ * This program is distributed in the hope that it will be useful, but
9+ * WITHOUT ANY WARRANTY; without even the implied warranties of
10+ * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR
11+ * PURPOSE. See the GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * version 3 along with this program. If not, see
15+ * <http://www.gnu.org/licenses/>
16+ *
17+ * Authored by: Michael Terry <michael.terry@canonical.com>
18+ */
19+
20+#include "AccountsAdaptor.h"
21+#include "AccountsServer.h"
22+#include "PropertiesAdaptor.h"
23+#include "PropertiesServer.h"
24+#include <QCoreApplication>
25+
26+int main(int argc, char *argv[])
27+{
28+ QCoreApplication a(argc, argv);
29+
30+ auto accounts = new AccountsServer();
31+ new AccountsAdaptor(accounts);
32+
33+ auto props = new PropertiesServer();
34+ new PropertiesAdaptor(props);
35+
36+ // We use the session bus for testing. The real plugin uses the system bus
37+ auto connection = QDBusConnection::sessionBus();
38+ if (!connection.registerObject("/org/freedesktop/Accounts", accounts))
39+ return 1;
40+ if (!connection.registerObject("/user", props))
41+ return 1;
42+ if (!connection.registerService("org.freedesktop.Accounts"))
43+ return 1;
44+
45+ return a.exec();
46+}
tests/plugins/CMakeLists.txt+3−2
@@ -1,4 +1,5 @@
1−add_subdirectory(Utils)
1+add_subdirectory(AccountsService)
2+add_subdirectory(ListViewWithPageHeader)
23add_subdirectory(Ubuntu)
34add_subdirectory(Unity)
4−add_subdirectory(ListViewWithPageHeader)
5+add_subdirectory(Utils)
tests/qmltests/CMakeLists.txt+1
@@ -30,6 +30,7 @@ add_qml_test(. Shell IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_
3030 ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/LightDM/single")
3131add_manual_qml_test(Components DragHandle IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
3232add_qml_test(Components DraggingArea)
33+add_qml_test(Components EdgeDemoOverlay)
3334add_qml_test(Components FilterGrid IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins)
3435add_qml_test(Components ResponsiveFlowView)
3536add_qml_test(Components ResponsiveGridView)
tests/qmltests/Components/tst_EdgeDemoOverlay.qmlnew file+123
@@ -0,0 +1,123 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import QtTest 1.0
19+import Unity.Test 0.1 as UT
20+import "../../../Components"
21+
22+Item {
23+ id: root
24+ width: boxWidth * 3
25+ height: boxHeight * 2
26+
27+ property int boxWidth: 250
28+ property int boxHeight: 250
29+
30+ EdgeDemoOverlay {
31+ id: top
32+ edge: "top"
33+ title: "Top"
34+ text: "Displayed on top left"
35+ anchors.left: parent.left
36+ anchors.top: parent.top
37+ width: boxWidth
38+ height: boxHeight
39+ }
40+
41+ EdgeDemoOverlay {
42+ id: right
43+ edge: "right"
44+ title: "Right"
45+ text: "Displayed on top right"
46+ anchors.right: parent.right
47+ anchors.top: parent.top
48+ width: boxWidth
49+ height: boxHeight
50+ }
51+
52+ EdgeDemoOverlay {
53+ id: left
54+ edge: "left"
55+ title: "Left"
56+ text: "Displayed on bottom right"
57+ anchors.right: parent.right
58+ anchors.bottom: parent.bottom
59+ width: boxWidth
60+ height: boxHeight
61+ available: false
62+ }
63+
64+ EdgeDemoOverlay {
65+ id: bottom
66+ edge: "bottom"
67+ title: "Bottom"
68+ text: "Displayed on bottom left"
69+ anchors.left: parent.left
70+ anchors.bottom: parent.bottom
71+ width: boxWidth
72+ height: boxHeight
73+ }
74+
75+ EdgeDemoOverlay {
76+ id: none
77+ edge: "none"
78+ title: "None"
79+ text: "Displayed on top middle"
80+ anchors.horizontalCenter: parent.horizontalCenter
81+ anchors.top: parent.top
82+ width: boxWidth
83+ height: boxHeight
84+ }
85+
86+ SignalSpy {
87+ id: signalSpy
88+ }
89+
90+ UT.UnityTestCase {
91+ name: "EdgeDemoOverlay"
92+ when: windowShown
93+
94+ function test_animations() {
95+ compare(right.running, true)
96+
97+ compare(left.running, false)
98+ left.available = true
99+ compare(left.running, true)
100+ }
101+
102+ function test_skip() {
103+ signalSpy.target = bottom
104+ signalSpy.signalName = "skip"
105+ signalSpy.clear()
106+ var bottomSkip = findChild(bottom, "skipLabel")
107+ mousePress(bottomSkip, 1, 1)
108+ mouseRelease(bottomSkip, 1, 1)
109+ signalSpy.wait()
110+ compare(bottom.available, false)
111+
112+ // Test that the 'none' edge skips anywhere
113+ signalSpy.target = none
114+ signalSpy.clear()
115+ var backgroundShade = findChild(none, "backgroundShade")
116+ tryCompare(none, "opacity", 1)
117+ mousePress(backgroundShade, 1, 1)
118+ mouseRelease(backgroundShade, 1, 1)
119+ signalSpy.wait()
120+ compare(none.available, false)
121+ }
122+ }
123+}
tests/qmltests/Launcher/tst_Launcher.qml+12−10
@@ -249,11 +249,10 @@ Item {
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 {
@@ -285,12 +283,16 @@ Item {
285283
286284 function test_dragndrop(data) {
287285 revealer.dragLauncherIntoView();
288− var draggedItem = findChild(launcher, "launcherDelegate5")
286+ var draggedItem = findChild(launcher, "launcherDelegate4")
289287 var item0 = findChild(launcher, "launcherDelegate0")
290288 var fakeDragItem = findChild(launcher, "fakeDragItem")
291289 var initialItemHeight = draggedItem.height
292− var item5 = LauncherModel.get(5).appId
293290 var item4 = LauncherModel.get(4).appId
291+ var item3 = LauncherModel.get(3).appId
292+
293+ var listView = findChild(launcher, "launcherListView");
294+ listView.flick(0, units.gu(200));
295+ tryCompare(listView, "flicking", false);
294296
295297 // Initial state
296298 compare(draggedItem.itemOpacity, 1, "Item's opacity is not 1 at beginning")
@@ -333,8 +335,8 @@ Item {
333335 }
334336
335337 waitForRendering(draggedItem)
336− compare(LauncherModel.get(5).appId, item4)
337− compare(LauncherModel.get(4).appId, item5)
338+ compare(LauncherModel.get(4).appId, item3)
339+ compare(LauncherModel.get(3).appId, item4)
338340 }
339341
340342 // Releasing and checking if initial values are restored
tests/utils/modules/Unity/Test/TouchEventSequenceWrapper.h+1−1
@@ -19,7 +19,7 @@
1919
2020#include <QtCore/QObject>
2121#include <QtTest/QTest>
22−#include <QtQml/QtQml>
22+#include <QtQml/qqml.h>
2323
2424class TouchEventSequenceWrapper : public QObject
2525{
tests/utils/modules/Unity/Test/UnityTestCase.qml+21−2
@@ -69,9 +69,28 @@ TestCase {
6969 }
7070
7171
72− // Find an object with the given name recursively, starting
73− // at the given object "obj"
72+ // Find an object with the given name in the children tree of "obj"
7473 function findChild(obj,objectName) {
74+ var childs = new Array(0);
75+ childs.push(obj)
76+ while (childs.length > 0) {
77+ if (childs[0].objectName == objectName) {
78+ return childs[0]
79+ }
80+ for (var i in childs[0].children) {
81+ childs.push(childs[0].children[i])
82+ }
83+ childs.splice(0, 1);
84+ }
85+ return undefined;
86+ }
87+
88+ // Find an object with the given name in the children tree of "obj"
89+ // Including invisible children like animations, timers etc.
90+ // Note: you should use findChild if you're not sure you need this
91+ // as this tree is much bigger and might contain stuff that goes
92+ // away randomly.
93+ function findInvisibleChild(obj,objectName) {
7594 var childs = new Array(0);
7695 childs.push(obj)
7796 while (childs.length > 0) {