on xenial help sign in
Merge trunk
31c9689Michal Hruby
Components/Carousel.qml+4−6
@@ -54,15 +54,13 @@ Item {
54
54
55 /// Emitted when the user clicked on an item
55 /// Emitted when the user clicked on an item
56 /// @param index is the index of the clicked item
56 /// @param index is the index of the clicked item
57− /// @param model is the model of all the items in the carousel
58 /// @param itemY is y of the clicked delegate
57 /// @param itemY is y of the clicked delegate
59− signal clicked(int index, var model, real itemY)
58+ signal clicked(int index, real itemY)
60
59
61 /// Emitted when the user pressed and held on an item
60 /// Emitted when the user pressed and held on an item
62 /// @param index is the index of the held item
61 /// @param index is the index of the held item
63− /// @param model is the model of all the items in the carousel
64 /// @param itemY is y of the held delegate
62 /// @param itemY is y of the held delegate
65− signal pressAndHold(int index, var model, real itemY)
63+ signal pressAndHold(int index, real itemY)
66
64
67 implicitHeight: listView.tileHeight * selectedItemScaleFactor
65 implicitHeight: listView.tileHeight * selectedItemScaleFactor
68
66
@@ -163,7 +161,7 @@ Item {
163 /* We're clicking the selected item and
161 /* We're clicking the selected item and
164 we're in the neighbourhood of radius 1 pixel from it.
162 we're in the neighbourhood of radius 1 pixel from it.
165 Let's emit the clicked signal. */
163 Let's emit the clicked signal. */
166− carousel.clicked(index, listView.model, delegateItem.y)
164+ carousel.clicked(index, delegateItem.y)
167 return
165 return
168 }
166 }
169
167
@@ -187,7 +185,7 @@ Item {
187 /* We're pressAndHold the selected item and
185 /* We're pressAndHold the selected item and
188 we're in the neighbourhood of radius 1 pixel from it.
186 we're in the neighbourhood of radius 1 pixel from it.
189 Let's emit the pressAndHold signal. */
187 Let's emit the pressAndHold signal. */
190− carousel.pressAndHold(index, listView.model, delegateItem.y);
188+ carousel.pressAndHold(index, delegateItem.y);
191 return;
189 return;
192 }
190 }
193
191
Components/PageHeader.qml+26−7
@@ -30,7 +30,7 @@ Item {
30
30
31 property bool searchEntryEnabled: false
31 property bool searchEntryEnabled: false
32 property alias searchQuery: searchField.text
32 property alias searchQuery: searchField.text
33− property ListModel searchHistory: SearchHistoryModel {}
33+ property ListModel searchHistory
34 property Scope scope
34 property Scope scope
35
35
36 height: units.gu(8.5)
36 height: units.gu(8.5)
@@ -44,8 +44,8 @@ Item {
44 if (!searchHistory) return;
44 if (!searchHistory) return;
45
45
46 searchHistory.addQuery(searchField.text);
46 searchHistory.addQuery(searchField.text);
47+ unfocus();
47 searchField.text = "";
48 searchField.text = "";
48− searchField.focus = false;
49 }
49 }
50
50
51 function unfocus() {
51 function unfocus() {
@@ -112,6 +112,8 @@ Item {
112 objectName: "searchContainer"
112 objectName: "searchContainer"
113
113
114 visible: searchEntryEnabled
114 visible: searchEntryEnabled
115+ property bool popoverShouldOpen: false
116+ property bool popoverShouldClose: false
115
117
116 property bool narrowMode: parent.width < label.contentWidth + units.gu(50)
118 property bool narrowMode: parent.width < label.contentWidth + units.gu(50)
117
119
@@ -127,6 +129,16 @@ Item {
127 else if (active && !narrowMode) "active"
129 else if (active && !narrowMode) "active"
128 else if (!active && !narrowMode) "inactive"
130 else if (!active && !narrowMode) "inactive"
129
131
132+ onStateChanged: {
133+ if (state == "active" || state == "narrowActive") {
134+ popoverShouldOpen = true;
135+ popoverShouldClose = false;
136+ } else {
137+ popoverShouldOpen = false;
138+ popoverShouldClose = true;
139+ }
140+ }
141+
130 function openPopover() {
142 function openPopover() {
131 if (searchHistory.count > 0) {
143 if (searchHistory.count > 0) {
132 searchContainer.popover = PopupUtils.open(popoverComponent, searchField,
144 searchContainer.popover = PopupUtils.open(popoverComponent, searchField,
@@ -137,10 +149,17 @@ Item {
137 }
149 }
138 )
150 )
139 }
151 }
152+ popoverShouldOpen = false;
153+ popoverShouldClose = false;
140 }
154 }
141
155
142 function closePopover() {
156 function closePopover() {
157+ if (searchContainer.popover) {
143− if (searchContainer.popover) PopupUtils.close(searchContainer.popover)
158+ PopupUtils.close(searchContainer.popover);
159+ searchContainer.popover = null;
160+ }
161+ popoverShouldOpen = false;
162+ popoverShouldClose = false;
144 }
163 }
145
164
146 onActiveFocusChanged: if (!activeFocus) { searchHistory.addQuery(searchField.text) }
165 onActiveFocusChanged: if (!activeFocus) { searchHistory.addQuery(searchField.text) }
@@ -283,12 +302,12 @@ Item {
283 PropertyAction { target: primaryImage; property: "source" }
302 PropertyAction { target: primaryImage; property: "source" }
284 AnchorAnimation { targets: [searchContainer, textContainer]; duration: 200; easing.type: Easing.InOutQuad }
303 AnchorAnimation { targets: [searchContainer, textContainer]; duration: 200; easing.type: Easing.InOutQuad }
285 }
304 }
286− ScriptAction { script: searchContainer.openPopover() }
305+ ScriptAction { script: if (searchContainer.popoverShouldOpen) { searchContainer.openPopover(); } }
287 }
306 }
288 },
307 },
289 Transition {
308 Transition {
290 to: "inactive"
309 to: "inactive"
291− ScriptAction { script: searchContainer.closePopover() }
310+ ScriptAction { script: if (searchContainer.popoverShouldClose) { searchContainer.closePopover(); } }
292 NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.InOutQuad }
311 NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.InOutQuad }
293 AnchorAnimation { targets: [searchContainer, textContainer]; duration: 200; easing.type: Easing.InOutQuad }
312 AnchorAnimation { targets: [searchContainer, textContainer]; duration: 200; easing.type: Easing.InOutQuad }
294 },
313 },
@@ -299,12 +318,12 @@ Item {
299 NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.OutQuad }
318 NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.OutQuad }
300 AnchorAnimation { targets: [searchContainer, textContainer]; duration: 200; easing.type: Easing.InOutQuad }
319 AnchorAnimation { targets: [searchContainer, textContainer]; duration: 200; easing.type: Easing.InOutQuad }
301 }
320 }
302− ScriptAction { script: searchContainer.openPopover() }
321+ ScriptAction { script: if (searchContainer.popoverShouldOpen) { searchContainer.openPopover(); } }
303 }
322 }
304 },
323 },
305 Transition {
324 Transition {
306 to: "narrowInactive"
325 to: "narrowInactive"
307− ScriptAction { script: searchContainer.closePopover() }
326+ ScriptAction { script: if (searchContainer.popoverShouldClose) { searchContainer.closePopover(); } }
308 NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.OutQuad }
327 NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.OutQuad }
309 AnchorAnimation { targets: [searchContainer, textContainer]; duration: 200; easing.type: Easing.InOutQuad }
328 AnchorAnimation { targets: [searchContainer, textContainer]; duration: 200; easing.type: Easing.InOutQuad }
310 }
329 }
Components/Time.jsdeleted−49
@@ -1,49 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−.pragma library
18−
19−var factors = [
20− [ 1000, "a second ago", "in a second", "%1 seconds ago", "in %1 seconds" ],
21− [ 60, "a minute ago", "in a minute", "%1 minutes ago", "in %1 minutes" ],
22− [ 60, "an hour ago", "in an hour", "%1 hours ago", "in %1 hours" ],
23− [ 24, "yesterday", "tomorrow", "%1 days ago", "in %1 days" ],
24− [ 7, "a week ago", "in a week", "about %1 weeks ago", "in about %1 weeks" ],
25− [ 4.35, "a month ago", "in a month", "%1 months ago", "in %1 months" ], // == 365.25 days / 12 months / 7 days
26− [ 12, "a year ago", "in a year", "%1 years ago", "in %1 years" ]
27−]
28−
29−function readableFromNow(date, now) {
30− var then = new Date(date);
31− if (isNaN(then)) return "";
32− if (now === undefined) {
33− now = new Date();
34− } else if (isNaN(now)) throw "now is NaN";
35− var diff = Math.abs(now - then);
36− if (diff < 1000) return "just now";
37−
38− var future = now < then;
39− var humanDiff;
40− for (var k in factors) {
41− diff /= factors[k][0];
42− if (Math.floor(diff) == 1) {
43− humanDiff = factors[k][future ? 2 : 1];
44− } else if (Math.floor(diff) > 1) {
45− humanDiff = factors[k][future ? 4 : 3].arg(Math.round(diff));
46− } else break;
47− }
48− return humanDiff;
49−}
Dash/Apps/AppInfo.qmldeleted−89
@@ -1,89 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−import "../../Components"
20−
21−Row {
22− id: root
23− property alias icon: image.source
24− property alias appName: appNameLabel.text
25− property alias rating: ratingStars.rating
26− property int rated: 0
27− property int reviews: 0
28−
29− spacing: units.gu(2)
30−
31− UbuntuShape {
32− id: imageShape
33− width: units.gu(6)
34− height: units.gu(6)
35− image: Image {
36− id: image
37− sourceSize { width: imageShape.width; height: imageShape.height }
38− asynchronous: true
39− fillMode: Image.PreserveAspectFit
40− }
41− }
42−
43− Column {
44− spacing: units.gu(1)
45−
46− Label {
47− id: appNameLabel
48− fontSize: "large"
49− color: "white"
50− style: Text.Raised
51− styleColor: "black"
52− opacity: .9
53− }
54−
55− Row {
56− visible: root.rating >= 0
57− spacing: units.gu(1)
58−
59− RatingStars {
60− id: ratingStars
61− maximumRating: 10
62− }
63−
64− Label {
65− id: ratedLabel
66− objectName: "ratedLabel"
67− fontSize: "medium"
68− color: "white"
69− style: Text.Raised
70− styleColor: "black"
71− opacity: .6
72− //TRANSLATORS: Number of persons who rated this app
73− text: i18n.tr("(%1)").arg(root.rated)
74− }
75−
76− Label {
77− id: reviewsLabel
78− objectName: "reviewsLabel"
79− fontSize: "medium"
80− color: "white"
81− style: Text.Raised
82− styleColor: "black"
83− opacity: .6
84− //TRANSLATORS: Number of persons who wrote reviews for this app
85− text: i18n.tr("%1 review", "%1 reviews", root.reviews).arg(root.reviews)
86− }
87− }
88− }
89−}
Dash/Apps/ApplicationsFilterGrid.qmldeleted−64
@@ -1,64 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import "../../Components"
19−import "../../Applications"
20−
21−FilterGrid {
22− id: filtergrid
23−
24− filter: false
25− minimumHorizontalSpacing: units.gu(0.5)
26− maximumNumberOfColumns: 6
27− delegateWidth: units.gu(11)
28− delegateHeight: units.gu(9.5)
29− verticalSpacing: units.gu(2)
30−
31− signal clicked(int index, var model, real itemY)
32− signal pressAndHold(int index, var model, real itemY)
33−
34− delegate: Tile {
35− id: tile
36− objectName: "delegate" + index
37− Application {
38− id: application
39− desktopFile: model.dndUri ? stripProtocol(model.dndUri) : model.desktopFile // FIXME: this is temporary
40−
41− function stripProtocol(uri) {
42− var chunks = uri.split('file://')
43− return chunks[chunks.length-1]
44− }
45− }
46−
47− property string icon: model.icon ? model.icon : "../../graphics/applicationIcons/" + application.icon + ".png" // FIXME: this is temporary
48−
49− width: filtergrid.cellWidth
50− height: filtergrid.cellHeight
51− text: model.title ? model.title : application.name // FIXME: this is temporary
52− imageWidth: units.gu(8)
53− imageHeight: units.gu(7.5)
54− source: icon
55−
56− onClicked: {
57− filtergrid.clicked(index, filtergrid.model, tile.y)
58− }
59−
60− onPressAndHold: {
61− filtergrid.pressAndHold(index, filtergrid.model, tile.y)
62− }
63− }
64−}
Dash/Apps/DashPluginFilterGrid.qml+2−2
@@ -37,11 +37,11 @@ GenericFilterGrid {
37 }
37 }
38
38
39 onClicked: {
39 onClicked: {
40− filtergrid.clicked(index, filtergrid.model, tile.y)
40+ filtergrid.clicked(index, tile.y)
41 }
41 }
42
42
43 onPressAndHold: {
43 onPressAndHold: {
44− filtergrid.pressAndHold(index, filtergrid.model, tile.y)
44+ filtergrid.pressAndHold(index, tile.y)
45 }
45 }
46 }
46 }
47}
47}
Dash/Dash.qml+3
@@ -26,6 +26,8 @@ Showable {
26
26
27 visible: shown
27 visible: shown
28
28
29+ property ListModel searchHistory: SearchHistoryModel {}
30+
29 property alias contentProgress: dashContent.contentProgress
31 property alias contentProgress: dashContent.contentProgress
30 property string showScopeOnLoaded: "home.scope"
32 property string showScopeOnLoaded: "home.scope"
31 property real contentScale: 1.0
33 property real contentScale: 1.0
@@ -63,6 +65,7 @@ Showable {
63 anchors.fill: parent
65 anchors.fill: parent
64 model: filteredScopes
66 model: filteredScopes
65 scopes: scopes
67 scopes: scopes
68+ searchHistory: dash.searchHistory
66 onMovementStarted: dashbar.startNavigation()
69 onMovementStarted: dashbar.startNavigation()
67 onMovementEnded: dashbar.stopNavigation()
70 onMovementEnded: dashbar.stopNavigation()
68 onContentFlickStarted: dashbar.finishNavigation()
71 onContentFlickStarted: dashbar.finishNavigation()
Dash/DashApps.qml+3
@@ -30,6 +30,9 @@ GenericScopeView {
30 property var mainStageApplicationsModel: shell.applicationManager.mainStageApplications
30 property var mainStageApplicationsModel: shell.applicationManager.mainStageApplications
31 property var sideStageApplicationModel: shell.applicationManager.sideStageApplications
31 property var sideStageApplicationModel: shell.applicationManager.sideStageApplications
32
32
33+ //FIXME an alias to itself shouldn't be required. More than likely a Qt bug. Try removing with newer Qt.
34+ property alias searchHistory: scopeView.searchHistory
35+
33 ListModel {
36 ListModel {
34 id: dummyVisibilityModifier
37 id: dummyVisibilityModifier
35
38
Dash/DashContent.qml+2−1
@@ -27,6 +27,7 @@ Item {
27 property alias currentIndex: dashContentList.currentIndex
27 property alias currentIndex: dashContentList.currentIndex
28
28
29 property ScopeDelegateMapper scopeMapper : ScopeDelegateMapper {}
29 property ScopeDelegateMapper scopeMapper : ScopeDelegateMapper {}
30+ property ListModel searchHistory
30
31
31 signal movementStarted()
32 signal movementStarted()
32 signal movementEnded()
33 signal movementEnded()
@@ -127,7 +128,7 @@ Item {
127 onLoaded: {
128 onLoaded: {
128 item.scope = Qt.binding(function() { return scope })
129 item.scope = Qt.binding(function() { return scope })
129 item.isCurrent = Qt.binding(function() { return visible && ListView.isCurrentItem })
130 item.isCurrent = Qt.binding(function() { return visible && ListView.isCurrentItem })
130− item.searchHistory = Qt.binding(function() { return shell.searchHistory })
131+ item.searchHistory = Qt.binding(function() { return dashContent.searchHistory })
131 dashContentList.movementStarted.connect(item.movementStarted)
132 dashContentList.movementStarted.connect(item.movementStarted)
132 dashContent.positionedAtBeginning.connect(item.positionedAtBeginning)
133 dashContent.positionedAtBeginning.connect(item.positionedAtBeginning)
133 dashContent.scopeLoaded(item.scope.id)
134 dashContent.scopeLoaded(item.scope.id)
Dash/Generic/GenericFilterGrid.qml+4−4
@@ -28,8 +28,8 @@ FilterGrid {
28 property int iconWidth: units.gu(8)
28 property int iconWidth: units.gu(8)
29 property int iconHeight: units.gu(7.5)
29 property int iconHeight: units.gu(7.5)
30
30
31− signal clicked(int index, var model, real itemY)
31+ signal clicked(int index, real itemY)
32− signal pressAndHold(int index, var model, real itemY)
32+ signal pressAndHold(int index, real itemY)
33
33
34 delegate: Tile {
34 delegate: Tile {
35 id: tile
35 id: tile
@@ -42,11 +42,11 @@ FilterGrid {
42 source: model.icon
42 source: model.icon
43
43
44 onClicked: {
44 onClicked: {
45− filtergrid.clicked(index, filtergrid.model, tile.y)
45+ filtergrid.clicked(index, tile.y)
46 }
46 }
47
47
48 onPressAndHold: {
48 onPressAndHold: {
49− filtergrid.pressAndHold(index, filtergrid.model, tile.y)
49+ filtergrid.pressAndHold(index, tile.y)
50 }
50 }
51 }
51 }
52}
52}
Dash/Generic/WeatherFilterGrid.qml+2−2
@@ -37,11 +37,11 @@ GenericFilterGrid {
37 style: FlatTileStyle {}
37 style: FlatTileStyle {}
38
38
39 onClicked: {
39 onClicked: {
40− filtergrid.clicked(index, filtergrid.model, tile.y)
40+ filtergrid.clicked(index, tile.y)
41 }
41 }
42
42
43 onPressAndHold: {
43 onPressAndHold: {
44− filtergrid.pressAndHold(index, filtergrid.model, tile.y)
44+ filtergrid.pressAndHold(index, tile.y)
45 }
45 }
46 }
46 }
47}
47}
Dash/GenericScopeView.qml+64−11
@@ -16,15 +16,60 @@
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19+import Utils 0.1
20+import Unity 0.1
19import "../Components"
21import "../Components"
20import "../Components/ListItems" as ListItems
22import "../Components/ListItems" as ListItems
21
23
22−ScopeView {
24+FocusScope {
23 id: scopeView
25 id: scopeView
26+
27+ property Scope scope
28+ property SortFilterProxyModel categories: categoryFilter
29+ property bool isCurrent
30+ property ListModel searchHistory
31+ property alias moving: categoryView.moving
32+
33+ signal endReached
34+ signal movementStarted
35+ signal positionedAtBeginning
36+
24 readonly property alias previewShown: previewListView.onScreen
37 readonly property alias previewShown: previewListView.onScreen
25 property bool enableHeightBehaviorOnNextCreation: false
38 property bool enableHeightBehaviorOnNextCreation: false
26
39
27− moving: categoryView.moving
40+ // FIXME delay the search so that daemons have time to settle, note that
41+ // removing this will break ScopeView::test_changeScope
42+ onScopeChanged: {
43+ if (scope) {
44+ timer.restart();
45+ scope.activateApplication.connect(activateApp);
46+ }
47+ }
48+
49+ function activateApp(desktopFilePath) {
50+ shell.activateApplication(desktopFilePath);
51+ }
52+
53+ Binding {
54+ target: scope
55+ property: "isActive"
56+ value: isCurrent
57+ }
58+
59+ Timer {
60+ id: timer
61+ interval: 2000
62+ onTriggered: scope.searchQuery = ""
63+ }
64+
65+ SortFilterProxyModel {
66+ id: categoryFilter
67+ model: scope ? scope.categories : null
68+ dynamicSortFilter: true
69+ filterRole: Categories.RoleCount
70+ filterRegExp: /^0$/
71+ invertMatch: true
72+ }
28
73
29 onIsCurrentChanged: {
74 onIsCurrentChanged: {
30 pageHeader.resetSearch();
75 pageHeader.resetSearch();
@@ -130,14 +175,14 @@ ScopeView {
130 target: rendererLoader.item
175 target: rendererLoader.item
131 onClicked: {
176 onClicked: {
132 // Prepare the preview in case activate() triggers a preview only
177 // Prepare the preview in case activate() triggers a preview only
133− effect.positionPx = mapToItem(categoryView, 0, itemY).y
178+ effect.positionPx = Math.max(mapToItem(categoryView, 0, itemY).y, pageHeader.height + categoryView.stickyHeaderHeight);
134 previewListView.categoryId = categoryId
179 previewListView.categoryId = categoryId
135 previewListView.categoryDelegate = rendererLoader.item
180 previewListView.categoryDelegate = rendererLoader.item
136− previewListView.model = model;
181+ previewListView.model = target.model;
137 previewListView.init = true;
182 previewListView.init = true;
138 previewListView.currentIndex = index;
183 previewListView.currentIndex = index;
139
184
140− var item = model.get(index);
185+ var item = target.model.get(index);
141
186
142 if ((scopeView.scope.id == "applications.scope" && categoryId == "installed")
187 if ((scopeView.scope.id == "applications.scope" && categoryId == "installed")
143 || (scopeView.scope.id == "home.scope" && categoryId == "applications.scope")) {
188 || (scopeView.scope.id == "home.scope" && categoryId == "applications.scope")) {
@@ -151,15 +196,15 @@ ScopeView {
151 }
196 }
152 }
197 }
153 onPressAndHold: {
198 onPressAndHold: {
154− effect.positionPx = mapToItem(categoryView, 0, itemY).y
199+ effect.positionPx = Math.max(mapToItem(categoryView, 0, itemY).y, pageHeader.height + categoryView.stickyHeaderHeight);
155 previewListView.categoryId = categoryId
200 previewListView.categoryId = categoryId
156 previewListView.categoryDelegate = rendererLoader.item
201 previewListView.categoryDelegate = rendererLoader.item
157− previewListView.model = model;
202+ previewListView.model = target.model;
158 previewListView.init = true;
203 previewListView.init = true;
159 previewListView.currentIndex = index;
204 previewListView.currentIndex = index;
160 previewListView.open = true
205 previewListView.open = true
161
206
162− var item = model.get(index)
207+ var item = target.model.get(index)
163 scopeView.scope.preview( item.uri, item.icon, item.category, 0, item.mimetype, item.title,
208 scopeView.scope.preview( item.uri, item.icon, item.category, 0, item.mimetype, item.title,
164 item.comment, item.dndUri, item.metadata)
209 item.comment, item.dndUri, item.metadata)
165 }
210 }
@@ -248,6 +293,7 @@ ScopeView {
248 text: scopeView.scope.name
293 text: scopeView.scope.name
249 searchEntryEnabled: true
294 searchEntryEnabled: true
250 scope: scopeView.scope
295 scope: scopeView.scope
296+ searchHistory: scopeView.searchHistory
251 }
297 }
252 }
298 }
253
299
@@ -393,12 +439,19 @@ ScopeView {
393
439
394 if (!init && model !== undefined) {
440 if (!init && model !== undefined) {
395 var item = model.get(currentIndex)
441 var item = model.get(currentIndex)
396− scopeView.scope.preview( item.uri, item.icon, item.category, 0, item.mimetype, item.title, item.comment, item.dndUri, item.metadata)
442+ scopeView.scope.preview(item.uri, item.icon, item.category, 0, item.mimetype, item.title, item.comment, item.dndUri, item.metadata)
397 }
443 }
398
444
399 var itemY = categoryView.contentItem.mapFromItem(categoryDelegate.currentItem).y;
445 var itemY = categoryView.contentItem.mapFromItem(categoryDelegate.currentItem).y;
446+
447+ // Find new contentY and effect.postionPx
400 var newContentY = itemY - effect.positionPx - categoryDelegate.verticalSpacing;
448 var newContentY = itemY - effect.positionPx - categoryDelegate.verticalSpacing;
449+
450+ // Make sure the item is not covered by a header. Move the effect split down if necessary
451+ var headerHeight = pageHeader.height + categoryView.stickyHeaderHeight;
401− var effectAdjust = effect.positionPx;
452+ var effectAdjust = Math.max(effect.positionPx, headerHeight);
453+
454+ // Make sure we don't overscroll the listview. If yes, adjust effect position
402 if (newContentY < 0) {
455 if (newContentY < 0) {
403 effectAdjust += newContentY;
456 effectAdjust += newContentY;
404 newContentY = 0;
457 newContentY = 0;
@@ -409,7 +462,7 @@ ScopeView {
409 }
462 }
410
463
411 effect.positionPx = effectAdjust;
464 effect.positionPx = effectAdjust;
412− categoryView.contentY = newContentY - categoryView.originY;
465+ categoryView.contentY = newContentY;
413 }
466 }
414
467
415 property bool open: false
468 property bool open: false
Dash/Music/MusicFilterGrid.qml+2−2
@@ -44,11 +44,11 @@ GenericFilterGrid {
44 }
44 }
45
45
46 onClicked: {
46 onClicked: {
47− filtergrid.clicked(index, filtergrid.model, tile.y)
47+ filtergrid.clicked(index, tile.y)
48 }
48 }
49
49
50 onPressAndHold: {
50 onPressAndHold: {
51− filtergrid.pressAndHold(index, filtergrid.model, tile.y)
51+ filtergrid.pressAndHold(index, tile.y)
52 }
52 }
53 }
53 }
54}
54}
Dash/ScopeView.qmldeleted−65
@@ -1,65 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Utils 0.1
19−import Unity 0.1
20−
21−FocusScope {
22− property Scope scope
23− property SortFilterProxyModel categories: categoryFilter
24− property bool isCurrent
25− property ListModel searchHistory
26− property bool moving: false
27−
28− signal endReached
29− signal movementStarted
30− signal positionedAtBeginning
31−
32− // FIXME delay the search so that daemons have time to settle, note that
33− // removing this will break ScopeView::test_changeScope
34− onScopeChanged: {
35− if (scope) {
36− timer.restart();
37− scope.activateApplication.connect(activateApp);
38− }
39− }
40−
41− function activateApp(desktopFilePath) {
42− shell.activateApplication(desktopFilePath);
43− }
44−
45− Binding {
46− target: scope
47− property: "isActive"
48− value: isCurrent
49− }
50−
51− Timer {
52− id: timer
53− interval: 2000
54− onTriggered: scope.searchQuery = ""
55− }
56−
57− SortFilterProxyModel {
58− id: categoryFilter
59− model: scope ? scope.categories : null
60− dynamicSortFilter: true
61− filterRole: Categories.RoleCount
62− filterRegExp: /^0$/
63− invertMatch: true
64− }
65−}
Dash/Video/VideoFilterGrid.qml+2−2
@@ -42,11 +42,11 @@ GenericFilterGrid {
42 style: VideoTileStyle {}
42 style: VideoTileStyle {}
43
43
44 onClicked: {
44 onClicked: {
45− filtergrid.clicked(index, filtergrid.model, tile.y)
45+ filtergrid.clicked(index, tile.y)
46 }
46 }
47
47
48 onPressAndHold: {
48 onPressAndHold: {
49− filtergrid.pressAndHold(index, filtergrid.model, tile.y)
49+ filtergrid.pressAndHold(index, tile.y)
50 }
50 }
51 }
51 }
52}
52}
Dash/Video/VideoInfo.qmldeleted−84
@@ -1,84 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import QtQuick.XmlListModel 2.0
19−
20−Item {
21− id: info
22− property string source
23−
24− property bool ready: nfo.status == XmlListModel.Ready || nfoTV.status == XmlListModel.Ready
25− property bool isMovie: true
26− property variant video: null
27− property variant tvShow: null
28−
29− function getActors() {
30− var c = []
31− if (video.actor1) c.push(video.actor1)
32− if (video.actor2) c.push(video.actor2)
33− if (video.actor3) c.push(video.actor3)
34− return c
35− }
36−
37− onSourceChanged: isMovie = true
38−
39− XmlListModel {
40− id: nfo
41− source: info.source
42− query: (isMovie) ? "/movie" : "/episodedetails"
43−
44− XmlRole { name: "title"; query: "title/string()" }
45− XmlRole { name: "year"; query: "year/number()" }
46− XmlRole { name: "runtime"; query: "runtime/number()" }
47− XmlRole { name: "rating"; query: "rating/number()" }
48− XmlRole { name: "plot"; query: "plot/string()" }
49− XmlRole { name: "director"; query: "director[1]/string()" }
50− XmlRole { name: "actor1"; query: "actor[1]/name/string()" }
51− XmlRole { name: "actor2"; query: "actor[2]/name/string()" }
52− XmlRole { name: "actor3"; query: "actor[3]/name/string()" }
53− XmlRole { name: "author"; query: "author[1]/string()" }
54− XmlRole { name: "season"; query: "season/number()" }
55− XmlRole { name: "episode"; query: "episode/number()" }
56−
57− XmlRole { name: "rentPrice"; query: "rent_price/string()" }
58− XmlRole { name: "buyPrice"; query: "buy_price/string()" }
59− XmlRole { name: "expires"; query: "expires/string()" }
60−
61− onStatusChanged: if (status == XmlListModel.Ready) {
62− if (count > 0) info.video = nfo.get(0)
63− else info.isMovie = false
64− } else if (status == XmlListModel.Error) info.isMovie = false
65− }
66−
67− XmlListModel {
68− id: nfoTV
69− source: (nfo.isMovie) ? "" : info.source.substring(0, info.source.lastIndexOf("/") + 1) + "tvshow.nfo"
70− query: "/tvshow"
71−
72− XmlRole { name: "title"; query: "title/string()" }
73−
74− onStatusChanged: if (status == XmlListModel.Ready) {
75− if (count > 0) info.tvShow = nfoTV.get(0)
76− } else if (status == XmlListModel.Error) {
77− // Search for tvshow.nfo in the directory above this one to cater
78− // for directory layout Show/Season
79− var path = info.source.split("/")
80− path.splice(-2, 2, "tvshow.nfo")
81− source = path.join("/")
82− }
83− }
84−}
Greeter/Greeter.qml+2−5
@@ -89,7 +89,7 @@ Showable {
89 when: teasingTimer.running
89 when: teasingTimer.running
90 PropertyChanges {
90 PropertyChanges {
91 target: greeter
91 target: greeter
92− x: -units.gu(2)
92+ x: -dragHandle.hintDisplacement
93 }
93 }
94 }
94 }
95 ]
95 ]
@@ -113,10 +113,7 @@ Showable {
113 anchors.bottom: parent.bottom
113 anchors.bottom: parent.bottom
114 anchors.right: parent.right
114 anchors.right: parent.right
115
115
116− // no need for requiring a directional drag since we are covering the screen
116+ hintDisplacement: units.gu(2)
117− // anyway (i.e., no change user could be trying to interact with some other
118− // UI element)
119− distanceThreshold: 0
120
117
121 enabled: greeter.narrowMode || !greeter.locked
118 enabled: greeter.narrowMode || !greeter.locked
122
119
Greeter/Lockscreen.qml+6−18
@@ -17,7 +17,6 @@
17import QtQuick 2.0
17import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19import "../Components"
19import "../Components"
20−import LightDM 0.1 as LightDM
21
20
22Showable {
21Showable {
23 id: root
22 id: root
@@ -37,7 +36,7 @@ Showable {
37
36
38 property url background: ""
37 property url background: ""
39
38
40− signal unlocked()
39+ signal entered(string passphrase)
41 signal cancel()
40 signal cancel()
42 signal emergencyCall()
41 signal emergencyCall()
43
42
@@ -53,6 +52,10 @@ Showable {
53 pinPadLoader.resetting = false;
52 pinPadLoader.resetting = false;
54 }
53 }
55
54
55+ function clear(showAnimation) {
56+ pinPadLoader.item.clear(showAnimation);
57+ }
58+
56 Rectangle {
59 Rectangle {
57 // In case background fails to load or is undefined
60 // In case background fails to load or is undefined
58 id: backgroundBackup
61 id: backgroundBackup
@@ -92,7 +95,7 @@ Showable {
92 target: pinPadLoader.item
95 target: pinPadLoader.item
93
96
94 onEntered: {
97 onEntered: {
95− LightDM.Greeter.respond(passphrase);
98+ root.entered(passphrase);
96 }
99 }
97
100
98 onCancel: {
101 onCancel: {
@@ -150,19 +153,4 @@ Showable {
150 anchors.horizontalCenter: parent.horizontalCenter
153 anchors.horizontalCenter: parent.horizontalCenter
151 }
154 }
152 }
155 }
153−
154− Connections {
155− target: LightDM.Greeter
156−
157− onAuthenticationComplete: {
158− if (LightDM.Greeter.promptless) {
159− return;
160− }
161− if (LightDM.Greeter.authenticated) {
162− root.unlocked();
163− } else {
164− pinPadLoader.item.clear(true);
165− }
166− }
167− }
168}
156}
Greeter/PassphraseLockscreen.qml+1
@@ -82,6 +82,7 @@ Item {
82
82
83 WrongPasswordAnimation {
83 WrongPasswordAnimation {
84 id: wrongPasswordAnimation
84 id: wrongPasswordAnimation
85+ objectName: "wrongPasswordAnimation"
85 target: pinentryField
86 target: pinentryField
86 }
87 }
87}
88}
Greeter/PinLockscreen.qml+1
@@ -210,6 +210,7 @@ Column {
210
210
211 WrongPasswordAnimation {
211 WrongPasswordAnimation {
212 id: wrongPasswordAnimation
212 id: wrongPasswordAnimation
213+ objectName: "wrongPasswordAnimation"
213 target: pinentryField
214 target: pinentryField
214 }
215 }
215}
216}
Launcher/LauncherDelegate.qml+1
@@ -57,6 +57,7 @@ Item {
57 anchors.fill: parent
57 anchors.fill: parent
58 anchors.margins: units.gu(1)
58 anchors.margins: units.gu(1)
59 radius: "medium"
59 radius: "medium"
60+ borderSource: "none"
60
61
61 image: Image {
62 image: Image {
62 id: iconImage
63 id: iconImage
Launcher/LauncherPanel.qml+1−1
@@ -367,7 +367,7 @@ Item {
367 var yOffset = draggedIndex > 0 ? (mouseY + launcherListView.realContentY) % (draggedIndex * launcherListView.realItemHeight) : mouseY + launcherListView.realContentY
367 var yOffset = draggedIndex > 0 ? (mouseY + launcherListView.realContentY) % (draggedIndex * launcherListView.realItemHeight) : mouseY + launcherListView.realContentY
368
368
369 fakeDragItem.iconName = launcherListView.model.get(draggedIndex).icon
369 fakeDragItem.iconName = launcherListView.model.get(draggedIndex).icon
370− fakeDragItem.x = 0
370+ fakeDragItem.x = units.gu(0.5)
371 fakeDragItem.y = mouseY - yOffset + launcherListView.anchors.topMargin + launcherListView.topMargin
371 fakeDragItem.y = mouseY - yOffset + launcherListView.anchors.topMargin + launcherListView.topMargin
372 fakeDragItem.angle = selectedItem.angle * (root.inverted ? -1 : 1)
372 fakeDragItem.angle = selectedItem.angle * (root.inverted ? -1 : 1)
373 fakeDragItem.offset = selectedItem.offset * (root.inverted ? -1 : 1)
373 fakeDragItem.offset = selectedItem.offset * (root.inverted ? -1 : 1)
Panel/Indicators.qml+36−8
@@ -37,6 +37,7 @@ Showable {
37 property bool partiallyOpened: height > panelHeight && !fullyOpened
37 property bool partiallyOpened: height > panelHeight && !fullyOpened
38 property real visualBottom: Math.max(y+height, y+indicatorRow.y+indicatorRow.height)
38 property real visualBottom: Math.max(y+height, y+indicatorRow.y+indicatorRow.height)
39 property bool contentEnabled: true
39 property bool contentEnabled: true
40+ property bool initalizeItem: true
40 readonly property alias content: menuContent
41 readonly property alias content: menuContent
41
42
42 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
43 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
@@ -63,14 +64,13 @@ Showable {
63 }
64 }
64
65
65 height: panelHeight
66 height: panelHeight
67+ onHeightChanged: updateRevealProgressState(indicators.height - panelHeight, true)
66
68
67− onHeightChanged: {
69+ function updateRevealProgressState(revealProgress, enableRelease) {
68− // need to use handle.get_height(). As the handle height depends on indicators.height changes (but this is called first!)
69− var revealProgress = indicators.height - panelHeight
70 if (!showAnimation.running && !hideAnimation.running) {
70 if (!showAnimation.running && !hideAnimation.running) {
71− if (revealProgress == 0) {
71+ if (revealProgress === 0) {
72 indicators.state = "initial";
72 indicators.state = "initial";
73− } else if (revealProgress <= hintValue) {
73+ } else if (revealProgress > 0 && revealProgress <= hintValue) {
74 indicators.state = "hint";
74 indicators.state = "hint";
75 } else if (revealProgress > hintValue && revealProgress < lockThreshold) {
75 } else if (revealProgress > hintValue && revealProgress < lockThreshold) {
76 indicators.state = "reveal";
76 indicators.state = "reveal";
@@ -79,7 +79,7 @@ Showable {
79 }
79 }
80 }
80 }
81
81
82− if (revealProgress == 0) {
82+ if (enableRelease && revealProgress === 0) {
83 menuContent.releaseContent();
83 menuContent.releaseContent();
84 }
84 }
85 }
85 }
@@ -106,7 +106,7 @@ Showable {
106 Vertical velocity check. Don't change the indicator if we're moving too quickly.
106 Vertical velocity check. Don't change the indicator if we're moving too quickly.
107 */
107 */
108 var verticalSpeed = Math.abs(yVelocityCalculator.calculate());
108 var verticalSpeed = Math.abs(yVelocityCalculator.calculate());
109− if (verticalSpeed >= 0.05 && indicatorRow.currentItem!=null) {
109+ if (verticalSpeed >= 0.05 && !initalizeItem) {
110 return;
110 return;
111 }
111 }
112
112
@@ -146,6 +146,7 @@ Showable {
146 } else if (!currentItem) {
146 } else if (!currentItem) {
147 indicatorRow.setDefaultItem();
147 indicatorRow.setDefaultItem();
148 }
148 }
149+ initalizeItem = indicatorRow.currentItem == null;
149 }
150 }
150
151
151 // eater
152 // eater
@@ -281,6 +282,33 @@ Showable {
281 enableIndexChangeSignal = oldActive;
282 enableIndexChangeSignal = oldActive;
282 }
283 }
283 }
284 }
285+
286+ EdgeDragArea {
287+ id: rowDragArea
288+ anchors.fill: indicatorRow
289+ direction: Direction.Downwards
290+ maxSilenceTime: 2000
291+ distanceThreshold: 0
292+
293+ enabled: fullyOpened
294+ onDraggingChanged: {
295+ if (dragging) {
296+ initalizeItem = true;
297+ updateRevealProgressState(Math.max(touchSceneY - panelHeight, hintValue), false);
298+ indicators.calculateCurrentItem(touchX, false);
299+ } else {
300+ indicators.state = "commit";
301+ }
302+ }
303+
304+ onTouchXChanged: {
305+ indicators.calculateCurrentItem(touchX, true);
306+ }
307+ onTouchSceneYChanged: {
308+ updateRevealProgressState(Math.max(touchSceneY - panelHeight, hintValue), false);
309+ yVelocityCalculator.trackedPosition = touchSceneY;
310+ }
311+ }
284 }
312 }
285
313
286 Connections {
314 Connections {
@@ -297,7 +325,7 @@ Showable {
297 onRunningChanged: {
325 onRunningChanged: {
298 if (hideAnimation.running) {
326 if (hideAnimation.running) {
299 indicators.state = "initial";
327 indicators.state = "initial";
300− indicatorRow.currentItem = null;
328+ initalizeItem = true;
301 }
329 }
302 }
330 }
303 }
331 }
Panel/Indicators/client/IndicatorsTree.qml+2−3
@@ -29,10 +29,9 @@ Page {
29
29
30 property string busName: unityModel.busName
30 property string busName: unityModel.busName
31 property string actionsObjectPath
31 property string actionsObjectPath
32− property var menuObjectPaths: undefined
32+ property string menuObjectPath
33− readonly property string device: "phone"
34
33
35− property string deviceMenuObjectPath: menuObjectPaths.hasOwnProperty(device) ? menuObjectPaths[device] : ""
34+ property string deviceMenuObjectPath: menuObjectPath
36
35
37 function start() {
36 function start() {
38 }
37 }
Shell.qml+12−3
@@ -61,8 +61,6 @@ FocusScope {
61 }
61 }
62 }
62 }
63
63
64− property ListModel searchHistory: SearchHistoryModel {}
65−
66 property var applicationManager: ApplicationManagerWrapper {}
64 property var applicationManager: ApplicationManagerWrapper {}
67
65
68 Binding {
66 Binding {
@@ -416,7 +414,7 @@ FocusScope {
416 height: parent.height - panel.panelHeight
414 height: parent.height - panel.panelHeight
417 background: shell.background
415 background: shell.background
418
416
419− onUnlocked: lockscreen.hide()
417+ onEntered: LightDM.Greeter.respond(passphrase);
420 onCancel: greeter.show()
418 onCancel: greeter.show()
421
419
422 Component.onCompleted: {
420 Component.onCompleted: {
@@ -442,6 +440,17 @@ FocusScope {
442 lockscreen.show();
440 lockscreen.show();
443 }
441 }
444 }
442 }
443+
444+ onAuthenticationComplete: {
445+ if (LightDM.Greeter.promptless) {
446+ return;
447+ }
448+ if (LightDM.Greeter.authenticated) {
449+ lockscreen.hide();
450+ } else {
451+ lockscreen.clear(true);
452+ }
453+ }
445 }
454 }
446
455
447 Greeter {
456 Greeter {
data/unity8.conf+20
@@ -6,4 +6,24 @@ stop on desktop-end
6
6
7respawn
7respawn
8
8
9+pre-start script
10+ if [ -n "$MIR_SOCKET" ]; then
11+ if [ -z "$UNITY_MIR_SOCKET" ]; then
12+ # Save original value of MIR_SOCKET in case we are restarted,
13+ # as we modify the variable for future jobs, including ourself.
14+ UNITY_MIR_SOCKET=$MIR_SOCKET
15+ initctl set-env --global UNITY_MIR_SOCKET=$UNITY_MIR_SOCKET
16+ fi
17+
18+ # Point unity8 at unity-system-compositor
19+ MIR_SERVER_FILE=$XDG_RUNTIME_DIR/mir_socket
20+ initctl set-env MIR_SERVER_FILE=$MIR_SERVER_FILE
21+ initctl set-env MIR_SERVER_HOST_SOCKET=$UNITY_MIR_SOCKET
22+
23+ # Point all future jobs in this session to our Mir socket instead of
24+ # unity-system-compositor's socket.
25+ initctl set-env --global MIR_SOCKET=$MIR_SERVER_FILE
26+ fi
27+end script
28+
9exec ${BINARY:-unity8} $ARGS
29exec ${BINARY:-unity8} $ARGS
plugins/AccountsService/plugin.cpp+1−1
@@ -20,7 +20,7 @@
20#include "AccountsService.h"
20#include "AccountsService.h"
21
21
22#include <QDBusMetaType>
22#include <QDBusMetaType>
23−#include <QtQml>
23+#include <QtQml/qqml.h>
24
24
25static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
25static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
26{
26{
plugins/ListViewWithPageHeader/listviewwithpageheader.cpp+32−6
@@ -155,6 +155,7 @@ ListViewWithPageHeader::ListViewWithPageHeader()
155 , m_topSectionItem(nullptr)
155 , m_topSectionItem(nullptr)
156 , m_forceNoClip(false)
156 , m_forceNoClip(false)
157 , m_inLayout(false)
157 , m_inLayout(false)
158+ , m_inContentHeightKeepHeaderShown(false)
158{
159{
159 m_clipItem = new QQuickItem(contentItem());
160 m_clipItem = new QQuickItem(contentItem());
160// m_clipItem = new QQuickRectangle(contentItem());
161// m_clipItem = new QQuickRectangle(contentItem());
@@ -286,10 +287,12 @@ void ListViewWithPageHeader::setSectionDelegate(QQmlComponent *delegate)
286 m_topSectionItem = getSectionItem(QString());
287 m_topSectionItem = getSectionItem(QString());
287 m_topSectionItem->setZ(3);
288 m_topSectionItem->setZ(3);
288 QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
289 QQuickItemPrivate::get(m_topSectionItem)->setCulled(true);
290+ connect(m_topSectionItem, SIGNAL(heightChanged()), SIGNAL(stickyHeaderHeightChanged()));
289
291
290 // TODO create sections for existing items
292 // TODO create sections for existing items
291
293
292 Q_EMIT sectionDelegateChanged();
294 Q_EMIT sectionDelegateChanged();
295+ Q_EMIT stickyHeaderHeightChanged();
293 }
296 }
294}
297}
295
298
@@ -325,6 +328,11 @@ void ListViewWithPageHeader::setForceNoClip(bool noClip)
325 }
328 }
326}
329}
327
330
331+int ListViewWithPageHeader::stickyHeaderHeight() const
332+{
333+ return m_topSectionItem ? m_topSectionItem->height() : 0;
334+}
335+
328void ListViewWithPageHeader::positionAtBeginning()
336void ListViewWithPageHeader::positionAtBeginning()
329{
337{
330 if (m_delegateModel->count() <= 0)
338 if (m_delegateModel->count() <= 0)
@@ -471,12 +479,18 @@ void ListViewWithPageHeader::componentComplete()
471
479
472void ListViewWithPageHeader::viewportMoved(Qt::Orientations orient)
480void ListViewWithPageHeader::viewportMoved(Qt::Orientations orient)
473{
481{
482+ // Check we are not being taken down and don't paint anything
483+ // TODO Check if we still need this in 5.2
484+ // For reproduction just inifnite loop testDash or testDashContent
485+ if (!QQmlEngine::contextForObject(this)->parentContext())
486+ return;
487+
474 QQuickFlickable::viewportMoved(orient);
488 QQuickFlickable::viewportMoved(orient);
475// qDebug() << "ListViewWithPageHeader::viewportMoved" << contentY();
489// qDebug() << "ListViewWithPageHeader::viewportMoved" << contentY();
476 qreal diff = m_previousContentY - contentY();
490 qreal diff = m_previousContentY - contentY();
477 const bool showHeaderAnimationRunning = m_contentYAnimation->isRunning() && contentYAnimationType == ContentYAnimationShowHeader;
491 const bool showHeaderAnimationRunning = m_contentYAnimation->isRunning() && contentYAnimationType == ContentYAnimationShowHeader;
478 if (m_headerItem) {
492 if (m_headerItem) {
479− auto oldHeaderItemShownHeight = m_headerItemShownHeight;
493+ const auto oldHeaderItemShownHeight = m_headerItemShownHeight;
480 if (contentY() < -m_minYExtent) {
494 if (contentY() < -m_minYExtent) {
481 // Stick the header item to the top when dragging down
495 // Stick the header item to the top when dragging down
482 m_headerItem->setY(contentY());
496 m_headerItem->setY(contentY());
@@ -491,10 +505,10 @@ void ListViewWithPageHeader::viewportMoved(Qt::Orientations orient)
491 const bool notShownByItsOwn = contentY() + diff >= m_headerItem->y() + m_headerItem->height();
505 const bool notShownByItsOwn = contentY() + diff >= m_headerItem->y() + m_headerItem->height();
492 const bool maximizeVisibleAreaRunning = m_contentYAnimation->isRunning() && contentYAnimationType == ContentYAnimationMaximizeVisibleArea;
506 const bool maximizeVisibleAreaRunning = m_contentYAnimation->isRunning() && contentYAnimationType == ContentYAnimationMaximizeVisibleArea;
493
507
494− if (!scrolledUp && contentY() == -m_minYExtent) {
508+ if (!scrolledUp && (contentY() == -m_minYExtent || (m_headerItemShownHeight == 0 && m_previousContentY == m_headerItem->y()))) {
495 m_headerItemShownHeight = 0;
509 m_headerItemShownHeight = 0;
496− m_headerItem->setY(contentY());
510+ m_headerItem->setY(-m_minYExtent);
497− } else if ((scrolledUp && notRebounding && notShownByItsOwn && !maximizeVisibleAreaRunning) || (m_headerItemShownHeight > 0)) {
511+ } else if ((scrolledUp && notRebounding && notShownByItsOwn && !maximizeVisibleAreaRunning) || (m_headerItemShownHeight > 0) || m_inContentHeightKeepHeaderShown) {
498 if (maximizeVisibleAreaRunning && diff > 0) // If we are maximizing and the header was shown, make sure we hide it
512 if (maximizeVisibleAreaRunning && diff > 0) // If we are maximizing and the header was shown, make sure we hide it
499 m_headerItemShownHeight -= diff;
513 m_headerItemShownHeight -= diff;
500 else
514 else
@@ -847,6 +861,11 @@ void ListViewWithPageHeader::itemCreated(int modelIndex, QObject *object)
847 }
861 }
848#endif
862#endif
849// qDebug() << "ListViewWithPageHeader::itemCreated" << modelIndex << item;
863// qDebug() << "ListViewWithPageHeader::itemCreated" << modelIndex << item;
864+ // Check we are not being taken down and don't paint anything
865+ // TODO Check if we still need this in 5.2
866+ // For reproduction just inifnite loop testDash or testDashContent
867+ if (!QQmlEngine::contextForObject(this)->parentContext())
868+ return;
850
869
851 item->setParentItem(m_clipItem);
870 item->setParentItem(m_clipItem);
852 QQmlContext *context = QQmlEngine::contextForObject(item)->parentContext();
871 QQmlContext *context = QQmlEngine::contextForObject(item)->parentContext();
@@ -980,7 +999,6 @@ void ListViewWithPageHeader::onModelUpdated(const QQmlChangeSet &changeSet, bool
980 if (growUp) {
999 if (growUp) {
981 ListItem *firstItem = m_visibleItems.first();
1000 ListItem *firstItem = m_visibleItems.first();
982 firstItem->setY(firstItem->y() - item->height());
1001 firstItem->setY(firstItem->y() - item->height());
983− adjustMinYExtent();
984 }
1002 }
985 // Adding an item may break a "same section" chain, so check
1003 // Adding an item may break a "same section" chain, so check
986 // if we need adding a new section item
1004 // if we need adding a new section item
@@ -991,7 +1009,6 @@ void ListViewWithPageHeader::onModelUpdated(const QQmlChangeSet &changeSet, bool
991 if (growUp && nextItem->m_sectionItem) {
1009 if (growUp && nextItem->m_sectionItem) {
992 ListItem *firstItem = m_visibleItems.first();
1010 ListItem *firstItem = m_visibleItems.first();
993 firstItem->setY(firstItem->y() - nextItem->m_sectionItem->height());
1011 firstItem->setY(firstItem->y() - nextItem->m_sectionItem->height());
994− adjustMinYExtent();
995 }
1012 }
996 }
1013 }
997 }
1014 }
@@ -1000,6 +1017,7 @@ void ListViewWithPageHeader::onModelUpdated(const QQmlChangeSet &changeSet, bool
1000 ListItem *firstItem = m_visibleItems.first();
1017 ListItem *firstItem = m_visibleItems.first();
1001 firstItem->setY(oldFirstValidIndexPos);
1018 firstItem->setY(oldFirstValidIndexPos);
1002 }
1019 }
1020+ adjustMinYExtent();
1003 } else if (insert.index <= m_firstVisibleIndex) {
1021 } else if (insert.index <= m_firstVisibleIndex) {
1004 m_firstVisibleIndex += insert.count;
1022 m_firstVisibleIndex += insert.count;
1005 }
1023 }
@@ -1228,6 +1246,12 @@ void ListViewWithPageHeader::layout()
1228
1246
1229void ListViewWithPageHeader::updatePolish()
1247void ListViewWithPageHeader::updatePolish()
1230{
1248{
1249+ // Check we are not being taken down and don't paint anything
1250+ // TODO Check if we still need this in 5.2
1251+ // For reproduction just inifnite loop testDash or testDashContent
1252+ if (!QQmlEngine::contextForObject(this)->parentContext())
1253+ return;
1254+
1231 Q_FOREACH(ListItem *item, m_itemsToRelease)
1255 Q_FOREACH(ListItem *item, m_itemsToRelease)
1232 reallyReleaseItem(item);
1256 reallyReleaseItem(item);
1233 m_itemsToRelease.clear();
1257 m_itemsToRelease.clear();
@@ -1267,7 +1291,9 @@ void ListViewWithPageHeader::updatePolish()
1267
1291
1268 m_contentHeightDirty = false;
1292 m_contentHeightDirty = false;
1269 adjustMinYExtent();
1293 adjustMinYExtent();
1294+ m_inContentHeightKeepHeaderShown = m_headerItem && m_headerItem->y() == contentY();
1270 setContentHeight(contentHeight);
1295 setContentHeight(contentHeight);
1296+ m_inContentHeightKeepHeaderShown = false;
1271 }
1297 }
1272}
1298}
1273
1299
plugins/ListViewWithPageHeader/listviewwithpageheader.h+5
@@ -60,6 +60,7 @@ class ListViewWithPageHeader : public QQuickFlickable, public QQuickItemChangeLi
60 Q_PROPERTY(QQmlComponent *sectionDelegate READ sectionDelegate WRITE setSectionDelegate NOTIFY sectionDelegateChanged)
60 Q_PROPERTY(QQmlComponent *sectionDelegate READ sectionDelegate WRITE setSectionDelegate NOTIFY sectionDelegateChanged)
61 Q_PROPERTY(QString sectionProperty READ sectionProperty WRITE setSectionProperty NOTIFY sectionPropertyChanged)
61 Q_PROPERTY(QString sectionProperty READ sectionProperty WRITE setSectionProperty NOTIFY sectionPropertyChanged)
62 Q_PROPERTY(bool forceNoClip READ forceNoClip WRITE setForceNoClip NOTIFY forceNoClipChanged)
62 Q_PROPERTY(bool forceNoClip READ forceNoClip WRITE setForceNoClip NOTIFY forceNoClipChanged)
63+ Q_PROPERTY(int stickyHeaderHeight READ stickyHeaderHeight NOTIFY stickyHeaderHeightChanged)
63
64
64 friend class ListViewWithPageHeaderTest;
65 friend class ListViewWithPageHeaderTest;
65 friend class ListViewWithPageHeaderTestSection;
66 friend class ListViewWithPageHeaderTestSection;
@@ -87,6 +88,8 @@ public:
87 bool forceNoClip() const;
88 bool forceNoClip() const;
88 void setForceNoClip(bool noClip);
89 void setForceNoClip(bool noClip);
89
90
91+ int stickyHeaderHeight() const;
92+
90 Q_INVOKABLE void positionAtBeginning();
93 Q_INVOKABLE void positionAtBeginning();
91 Q_INVOKABLE void showHeader();
94 Q_INVOKABLE void showHeader();
92 Q_INVOKABLE QQuickItem *item(int modelIndex) const;
95 Q_INVOKABLE QQuickItem *item(int modelIndex) const;
@@ -104,6 +107,7 @@ Q_SIGNALS:
104 void sectionDelegateChanged();
107 void sectionDelegateChanged();
105 void sectionPropertyChanged();
108 void sectionPropertyChanged();
106 void forceNoClipChanged();
109 void forceNoClipChanged();
110+ void stickyHeaderHeightChanged();
107
111
108protected:
112protected:
109 void componentComplete();
113 void componentComplete();
@@ -202,6 +206,7 @@ private:
202
206
203 bool m_forceNoClip;
207 bool m_forceNoClip;
204 bool m_inLayout;
208 bool m_inLayout;
209+ bool m_inContentHeightKeepHeaderShown;
205
210
206 // Qt 5.0 doesn't like releasing the items just after itemCreated
211 // Qt 5.0 doesn't like releasing the items just after itemCreated
207 // so we delay the releasing until the next updatePolish
212 // so we delay the releasing until the next updatePolish
plugins/SessionBroadcast/plugin.cpp+1−1
@@ -19,7 +19,7 @@
19#include "plugin.h"
19#include "plugin.h"
20#include "SessionBroadcast.h"
20#include "SessionBroadcast.h"
21
21
22−#include <QtQml>
22+#include <QtQml/qqml.h>
23
23
24static QObject *broadcast_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
24static QObject *broadcast_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
25{
25{
plugins/Unity/Indicators/indicator.cpp+8−16
@@ -31,32 +31,24 @@ Indicator::~Indicator()
31{
31{
32}
32}
33
33
34−void Indicator::init(const QString& busName, const QSettings& settings)
34+void Indicator::init(const QString &profile, const QString& busName, const QSettings& settings)
35{
35{
36 setId(settings.value("Indicator Service/Name").toString());
36 setId(settings.value("Indicator Service/Name").toString());
37− setPosition(settings.value("Indicator Service/Position", QVariant::fromValue(0)).toInt());
38
37
39− QString actionObjectPath = settings.value("Indicator Service/ObjectPath").toString();
38+ QVariant pos = settings.value(profile + "/Position");
40−
39+ if (!pos.isValid())
41− QVariantMap mapMenuObjectPaths;
40+ pos = settings.value("Indicator Service/Position", QVariant::fromValue(0));
42− Q_FOREACH(const QString& childGroup, settings.childGroups())
41+ setPosition(pos.toInt());
43− {
44− if (childGroup == "Indicator Service")
45− continue;
46
42
47− QString menuPath = childGroup+"/ObjectPath";
43+ QString actionObjectPath = settings.value("Indicator Service/ObjectPath").toString();
48− if (settings.contains(menuPath))
44+ QString menuObjectPath = settings.value(profile + "/ObjectPath").toString();
49− {
50− mapMenuObjectPaths[childGroup] = settings.value(menuPath).toString();
51− }
52− }
53
45
54 QVariantMap properties;
46 QVariantMap properties;
55 properties.clear();
47 properties.clear();
56 properties.insert("busType", 1);
48 properties.insert("busType", 1);
57 properties.insert("busName", busName);
49 properties.insert("busName", busName);
58 properties.insert("actionsObjectPath", actionObjectPath);
50 properties.insert("actionsObjectPath", actionObjectPath);
59− properties.insert("menuObjectPaths", mapMenuObjectPaths);
51+ properties.insert("menuObjectPath", menuObjectPath);
60 setIndicatorProperties(properties);
52 setIndicatorProperties(properties);
61}
53}
62
54
plugins/Unity/Indicators/indicator.h+1−1
@@ -35,7 +35,7 @@ public:
35 Indicator(QObject *parent = 0);
35 Indicator(QObject *parent = 0);
36 virtual ~Indicator();
36 virtual ~Indicator();
37
37
38− void init(const QString& busName, const QSettings& settings);
38+ void init(const QString &profile, const QString& busName, const QSettings& settings);
39
39
40 QString identifier() const;
40 QString identifier() const;
41 int position() const;
41 int position() const;
plugins/Unity/Indicators/indicatorsmanager.cpp+3−1
@@ -26,6 +26,8 @@
26
26
27#include "paths.h"
27#include "paths.h"
28
28
29+const QString profile = "phone";
30+
29
31
30class IndicatorsManager::IndicatorData
32class IndicatorsManager::IndicatorData
31{
33{
@@ -298,7 +300,7 @@ Indicator::Ptr IndicatorsManager::indicator(const QString& indicator_name)
298 Indicator::Ptr new_indicator(new Indicator(this));
300 Indicator::Ptr new_indicator(new Indicator(this));
299 data->m_indicator = new_indicator;
301 data->m_indicator = new_indicator;
300 QSettings settings(data->m_fileInfo.absoluteFilePath(), QSettings::IniFormat, this);
302 QSettings settings(data->m_fileInfo.absoluteFilePath(), QSettings::IniFormat, this);
301− new_indicator->init(data->m_fileInfo.fileName(), settings);
303+ new_indicator->init(profile, data->m_fileInfo.fileName(), settings);
302 return new_indicator;
304 return new_indicator;
303}
305}
304
306
plugins/Unity/Indicators/qml/IndicatorBase.qml+3−4
@@ -24,16 +24,15 @@ import Unity.Indicators 0.1 as Indicators
24Item {
24Item {
25 id: indicatorItem
25 id: indicatorItem
26
26
27− enabled: menuObjectPaths.hasOwnProperty(device)
27+ enabled: menuObjectPath != ""
28
28
29 //const
29 //const
30 property string busName
30 property string busName
31 property string actionsObjectPath
31 property string actionsObjectPath
32− property var menuObjectPaths: undefined
32+ property string menuObjectPath
33− readonly property string device: "phone"
34 property string rootMenuType: "com.canonical.indicator.root"
33 property string rootMenuType: "com.canonical.indicator.root"
35
34
36− property string deviceMenuObjectPath: menuObjectPaths.hasOwnProperty(device) ? menuObjectPaths[device] : ""
35+ property string deviceMenuObjectPath: menuObjectPath
37
36
38 property alias menuModel: cachedModel.model
37 property alias menuModel: cachedModel.model
39
38
plugins/Unity/Launcher/launcheritem.cpp+4−2
@@ -20,6 +20,8 @@
20#include "launcheritem.h"
20#include "launcheritem.h"
21#include "quicklistmodel.h"
21#include "quicklistmodel.h"
22
22
23+#include <libintl.h>
24+
23LauncherItem::LauncherItem(const QString &appId, const QString &name, const QString &icon, QObject *parent) :
25LauncherItem::LauncherItem(const QString &appId, const QString &name, const QString &icon, QObject *parent) :
24 LauncherItemInterface(parent),
26 LauncherItemInterface(parent),
25 m_appId(appId),
27 m_appId(appId),
@@ -38,7 +40,7 @@ LauncherItem::LauncherItem(const QString &appId, const QString &name, const QStr
38 m_quickList->appendAction(nameAction);
40 m_quickList->appendAction(nameAction);
39 QuickListEntry pinningAction;
41 QuickListEntry pinningAction;
40 pinningAction.setActionId("pin_item");
42 pinningAction.setActionId("pin_item");
41− pinningAction.setText("Pin to Launcher");
43+ pinningAction.setText(gettext("Lock to Launcher"));
42 m_quickList->appendAction(pinningAction);
44 m_quickList->appendAction(pinningAction);
43}
45}
44
46
@@ -68,7 +70,7 @@ void LauncherItem::setPinned(bool pinned)
68 m_pinned = pinned;
70 m_pinned = pinned;
69 QuickListEntry entry;
71 QuickListEntry entry;
70 entry.setActionId("pin_item");
72 entry.setActionId("pin_item");
71− entry.setText(pinned ? "Remove from Launcher": "Pin to Launcher");
73+ entry.setText(pinned ? gettext("Unlock from Launcher") : gettext("Lock to Launcher"));
72 m_quickList->updateAction(entry);
74 m_quickList->updateAction(entry);
73 Q_EMIT pinnedChanged(pinned);
75 Q_EMIT pinnedChanged(pinned);
74 }
76 }
plugins/Utils/albumartprovider.cpp+10−7
@@ -32,6 +32,7 @@
32#include <QByteArray>
32#include <QByteArray>
33#include <QImage>
33#include <QImage>
34#include <QUrl>
34#include <QUrl>
35+#include <QUrlQuery>
35
36
36using namespace std;
37using namespace std;
37
38
@@ -65,6 +66,9 @@ AlbumArtProvider::~AlbumArtProvider()
65std::string AlbumArtProvider::get_lastfm_url(const albuminfo &ai) {
66std::string AlbumArtProvider::get_lastfm_url(const albuminfo &ai) {
66 QString artist = QString::fromStdString(ai.artist);
67 QString artist = QString::fromStdString(ai.artist);
67 QString album = QString::fromStdString(ai.album);
68 QString album = QString::fromStdString(ai.album);
69+ // audioscrobbler wants it without any / (as it would break the URL)
70+ artist.remove('/');
71+ album.remove('/');
68
72
69 /// @todo: this is the old API which will probably get axed at some point in the future
73 /// @todo: this is the old API which will probably get axed at some point in the future
70 /// The new 2.0 API requires an API key, but supports JSON output, etc, so switching
74 /// The new 2.0 API requires an API key, but supports JSON output, etc, so switching
@@ -200,21 +204,20 @@ std::string AlbumArtProvider::get_image(const std::string &artist, const std::st
200QImage AlbumArtProvider::requestImage(const QString &id, QSize *realSize, const QSize &requestedSize) {
204QImage AlbumArtProvider::requestImage(const QString &id, QSize *realSize, const QSize &requestedSize) {
201 Q_UNUSED(requestedSize)
205 Q_UNUSED(requestedSize)
202
206
203− const QStringList parts = id.split("/");
207+ QUrlQuery query(id);
204− if (parts.size() != 2) {
208+ if (!query.hasQueryItem(QStringLiteral("artist")) || !query.hasQueryItem(QStringLiteral("album"))) {
205 qWarning() << "Invalid albumart uri:" << id;
209 qWarning() << "Invalid albumart uri:" << id;
206 return QImage(QString::fromStdString(DEFAULT_ALBUM_ART));
210 return QImage(QString::fromStdString(DEFAULT_ALBUM_ART));
207 }
211 }
208− const std::string artist = QUrl::fromPercentEncoding(parts[0].toUtf8()).toStdString();
212+ const QString artist = query.queryItemValue(QStringLiteral("artist"), QUrl::FullyEncoded);
209− const std::string album = QUrl::fromPercentEncoding(parts[1].toUtf8()).toStdString();
213+ const QString album = query.queryItemValue(QStringLiteral("album"), QUrl::FullyEncoded);
210
214
211 std::string tgt_path;
215 std::string tgt_path;
212 try {
216 try {
213− tgt_path = get_image(artist, album);
217+ tgt_path = get_image(artist.toStdString(), album.toStdString());
214 if(!tgt_path.empty()) {
218 if(!tgt_path.empty()) {
215− QString tgt(tgt_path.c_str());
216 QImage image;
219 QImage image;
217− image.load(tgt);
220+ image.load(QString::fromStdString(tgt_path));
218 // FIXME: Rescale to requested size preserving aspect.
221 // FIXME: Rescale to requested size preserving aspect.
219 *realSize = image.size();
222 *realSize = image.size();
220 return image;
223 return image;
po/ar.po+19−10
@@ -7,8 +7,8 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11−"PO-Revision-Date: 2013-10-20 19:41+0000\n"
11+"PO-Revision-Date: 2013-11-15 12:29+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "ويكيبيديا"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "يوتيوب"
88msgstr "يوتيوب"
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "تخطي المقدمة"
92msgstr "تخطي المقدمة"
93
93
@@ -136,7 +136,7 @@ msgstr ""
136"لقد أتقنت الآن إيماءات الحواف ويمكنك البدء باستخدام الهاتف<br><br>انقر في أي "
136"لقد أتقنت الآن إيماءات الحواف ويمكنك البدء باستخدام الهاتف<br><br>انقر في أي "
137"مكان للبدء"
137"مكان للبدء"
138
138
139−#: Components/PageHeader.qml:341
139+#: Components/PageHeader.qml:345
140msgid "Recent searches"
140msgid "Recent searches"
141msgstr "عمليات البحث الأخيرة"
141msgstr "عمليات البحث الأخيرة"
142
142
@@ -160,7 +160,7 @@ msgstr[3] "%1 تعليقات"
160msgstr[4] "%1 تعليقا"
160msgstr[4] "%1 تعليقا"
161msgstr[5] "%1 تعليق"
161msgstr[5] "%1 تعليق"
162
162
163−#: Dash/Apps/AppPreview.qml:126
163+#: Dash/Apps/AppPreview.qml:135
164msgid "Rate this"
164msgid "Rate this"
165msgstr "قيّم ذلك"
165msgstr "قيّم ذلك"
166
166
@@ -180,7 +180,7 @@ msgstr "أرسل"
180msgid "Comments:"
180msgid "Comments:"
181msgstr "التعليقات:"
181msgstr "التعليقات:"
182
182
183−#: Greeter/Lockscreen.qml:142
183+#: Greeter/Lockscreen.qml:146
184msgid "Emergency Call"
184msgid "Emergency Call"
185msgstr "مكالمة طوارئ"
185msgstr "مكالمة طوارئ"
186
186
@@ -215,12 +215,21 @@ msgstr "تتكلم الآن..."
215
215
216#: Notifications/NotificationMenuItemFactory.qml:89
216#: Notifications/NotificationMenuItemFactory.qml:89
217msgid "Show password"
217msgid "Show password"
218−msgstr ""
218+msgstr "عرض كلمة السر"
219
219
220#: Panel/SearchIndicator.qml:27
220#: Panel/SearchIndicator.qml:27
221msgid "Search"
221msgid "Search"
222msgstr "ابحث"
222msgstr "ابحث"
223
223
224+#: plugins/Unity/Launcher/launcheritem.cpp:43
225+#: plugins/Unity/Launcher/launcheritem.cpp:73
226+msgid "Lock to Launcher"
227+msgstr ""
228+
229+#: plugins/Unity/Launcher/launcheritem.cpp:73
230+msgid "Unlock from Launcher"
231+msgstr ""
232+
224#: plugins/Unity/scope.cpp:408
233#: plugins/Unity/scope.cpp:408
225msgid "Sorry, there is nothing that matches your search."
234msgid "Sorry, there is nothing that matches your search."
226msgstr "عذراً، لا يوجد ما يطابق بحثك."
235msgstr "عذراً، لا يوجد ما يطابق بحثك."
@@ -229,7 +238,7 @@ msgstr "عذراً، لا يوجد ما يطابق بحثك."
229msgid "All"
238msgid "All"
230msgstr "الكل"
239msgstr "الكل"
231
240
232−#: Shell.qml:438
241+#: Shell.qml:441
233#, qt-format
242#, qt-format
234msgid "Please enter %1"
243msgid "Please enter %1"
235msgstr "من فضلك أدخِل %1"
244msgstr "من فضلك أدخِل %1"
po/ast.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-03 14:02+0000\n"
11"PO-Revision-Date: 2013-10-03 14:02+0000\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Omitir la intro"
91msgstr "Omitir la intro"
92
92
@@ -136,7 +136,7 @@ msgstr ""
136"Agora domines los xestos de berbesos y pues usar el teléfonu<br><br>Toca la "
136"Agora domines los xestos de berbesos y pues usar el teléfonu<br><br>Toca la "
137"pantalla pa entamar"
137"pantalla pa entamar"
138
138
139−#: Components/PageHeader.qml:341
139+#: Components/PageHeader.qml:345
140msgid "Recent searches"
140msgid "Recent searches"
141msgstr "Busques recientes"
141msgstr "Busques recientes"
142
142
@@ -156,7 +156,7 @@ msgid_plural "%1 reviews"
156msgstr[0] "%1 reseña"
156msgstr[0] "%1 reseña"
157msgstr[1] "%1 reseñes"
157msgstr[1] "%1 reseñes"
158
158
159−#: Dash/Apps/AppPreview.qml:126
159+#: Dash/Apps/AppPreview.qml:135
160msgid "Rate this"
160msgid "Rate this"
161msgstr "Valorar esto"
161msgstr "Valorar esto"
162
162
@@ -176,7 +176,7 @@ msgstr "Unviar"
176msgid "Comments:"
176msgid "Comments:"
177msgstr "Comentarios:"
177msgstr "Comentarios:"
178
178
179−#: Greeter/Lockscreen.qml:142
179+#: Greeter/Lockscreen.qml:146
180msgid "Emergency Call"
180msgid "Emergency Call"
181msgstr "Llamada d'emerxencia"
181msgstr "Llamada d'emerxencia"
182
182
@@ -217,6 +217,15 @@ msgstr ""
217msgid "Search"
217msgid "Search"
218msgstr "Guetar"
218msgstr "Guetar"
219
219
220+#: plugins/Unity/Launcher/launcheritem.cpp:43
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Lock to Launcher"
223+msgstr ""
224+
225+#: plugins/Unity/Launcher/launcheritem.cpp:73
226+msgid "Unlock from Launcher"
227+msgstr ""
228+
220#: plugins/Unity/scope.cpp:408
229#: plugins/Unity/scope.cpp:408
221msgid "Sorry, there is nothing that matches your search."
230msgid "Sorry, there is nothing that matches your search."
222msgstr "Sentímoslo, nun hai res que concase cola gueta"
231msgstr "Sentímoslo, nun hai res que concase cola gueta"
@@ -225,7 +234,7 @@ msgstr "Sentímoslo, nun hai res que concase cola gueta"
225msgid "All"
234msgid "All"
226msgstr "Too"
235msgstr "Too"
227
236
228−#: Shell.qml:438
237+#: Shell.qml:441
229#, qt-format
238#, qt-format
230msgid "Please enter %1"
239msgid "Please enter %1"
231msgstr "Introduz %1"
240msgstr "Introduz %1"
po/az.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-26 23:48+0000\n"
11"PO-Revision-Date: 2013-06-26 23:48+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Son axtarışlar"
137msgstr "Son axtarışlar"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Axtar"
214msgstr "Axtar"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
227msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
@@ -221,7 +230,7 @@ msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/bg.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 00:06+0000\n"
11"PO-Revision-Date: 2013-06-27 00:06+0000\n"
12"Last-Translator: Miroslav E. Hadzhiev (Хаджиев) "
12"Last-Translator: Miroslav E. Hadzhiev (Хаджиев) "
13"<miroslav.hadzhiev@gmail.com>\n"
13"<miroslav.hadzhiev@gmail.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Уикипедия"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,7 +133,7 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:341
136+#: Components/PageHeader.qml:345
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Скорошни търсения"
138msgstr "Скорошни търсения"
139
139
@@ -153,7 +153,7 @@ msgid_plural "%1 reviews"
153msgstr[0] ""
153msgstr[0] ""
154msgstr[1] ""
154msgstr[1] ""
155
155
156−#: Dash/Apps/AppPreview.qml:126
156+#: Dash/Apps/AppPreview.qml:135
157msgid "Rate this"
157msgid "Rate this"
158msgstr ""
158msgstr ""
159
159
@@ -173,7 +173,7 @@ msgstr ""
173msgid "Comments:"
173msgid "Comments:"
174msgstr ""
174msgstr ""
175
175
176−#: Greeter/Lockscreen.qml:142
176+#: Greeter/Lockscreen.qml:146
177msgid "Emergency Call"
177msgid "Emergency Call"
178msgstr ""
178msgstr ""
179
179
@@ -214,6 +214,15 @@ msgstr ""
214msgid "Search"
214msgid "Search"
215msgstr "Търсене"
215msgstr "Търсене"
216
216
217+#: plugins/Unity/Launcher/launcheritem.cpp:43
218+#: plugins/Unity/Launcher/launcheritem.cpp:73
219+msgid "Lock to Launcher"
220+msgstr ""
221+
222+#: plugins/Unity/Launcher/launcheritem.cpp:73
223+msgid "Unlock from Launcher"
224+msgstr ""
225+
217#: plugins/Unity/scope.cpp:408
226#: plugins/Unity/scope.cpp:408
218msgid "Sorry, there is nothing that matches your search."
227msgid "Sorry, there is nothing that matches your search."
219msgstr "Съжаляваме, няма нищо, което да отговаря на вашето търсене."
228msgstr "Съжаляваме, няма нищо, което да отговаря на вашето търсене."
@@ -222,7 +231,7 @@ msgstr "Съжаляваме, няма нищо, което да отговар
222msgid "All"
231msgid "All"
223msgstr ""
232msgstr ""
224
233
225−#: Shell.qml:438
234+#: Shell.qml:441
226#, qt-format
235#, qt-format
227msgid "Please enter %1"
236msgid "Please enter %1"
228msgstr ""
237msgstr ""
po/ca.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-09-28 07:38+0000\n"
11"PO-Revision-Date: 2013-09-28 07:38+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Viquipèdia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Omet la introducció"
91msgstr "Omet la introducció"
92
92
@@ -138,7 +138,7 @@ msgid ""
138"phone<br><br>Tap anywhere to start"
138"phone<br><br>Tap anywhere to start"
139msgstr ""
139msgstr ""
140
140
141−#: Components/PageHeader.qml:341
141+#: Components/PageHeader.qml:345
142msgid "Recent searches"
142msgid "Recent searches"
143msgstr "Cerques recents"
143msgstr "Cerques recents"
144
144
@@ -158,7 +158,7 @@ msgid_plural "%1 reviews"
158msgstr[0] "%1 ressenya"
158msgstr[0] "%1 ressenya"
159msgstr[1] "%1 ressenyes"
159msgstr[1] "%1 ressenyes"
160
160
161−#: Dash/Apps/AppPreview.qml:126
161+#: Dash/Apps/AppPreview.qml:135
162msgid "Rate this"
162msgid "Rate this"
163msgstr ""
163msgstr ""
164
164
@@ -178,7 +178,7 @@ msgstr "Envia"
178msgid "Comments:"
178msgid "Comments:"
179msgstr "Comentaris:"
179msgstr "Comentaris:"
180
180
181−#: Greeter/Lockscreen.qml:142
181+#: Greeter/Lockscreen.qml:146
182msgid "Emergency Call"
182msgid "Emergency Call"
183msgstr "Trucada d'emergència"
183msgstr "Trucada d'emergència"
184
184
@@ -219,6 +219,15 @@ msgstr ""
219msgid "Search"
219msgid "Search"
220msgstr "Cerca"
220msgstr "Cerca"
221
221
222+#: plugins/Unity/Launcher/launcheritem.cpp:43
223+#: plugins/Unity/Launcher/launcheritem.cpp:73
224+msgid "Lock to Launcher"
225+msgstr ""
226+
227+#: plugins/Unity/Launcher/launcheritem.cpp:73
228+msgid "Unlock from Launcher"
229+msgstr ""
230+
222#: plugins/Unity/scope.cpp:408
231#: plugins/Unity/scope.cpp:408
223msgid "Sorry, there is nothing that matches your search."
232msgid "Sorry, there is nothing that matches your search."
224msgstr "No hi ha res que coincideixi amb la cerca"
233msgstr "No hi ha res que coincideixi amb la cerca"
@@ -227,7 +236,7 @@ msgstr "No hi ha res que coincideixi amb la cerca"
227msgid "All"
236msgid "All"
228msgstr ""
237msgstr ""
229
238
230−#: Shell.qml:438
239+#: Shell.qml:441
231#, qt-format
240#, qt-format
232msgid "Please enter %1"
241msgid "Please enter %1"
233msgstr "Introduïu %1"
242msgstr "Introduïu %1"
po/cs.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-08 08:09+0000\n"
11"PO-Revision-Date: 2013-10-08 08:09+0000\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedie"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Přeskočit intro"
91msgstr "Přeskočit intro"
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Poslední vyhledávání"
137msgstr "Poslední vyhledávání"
138
138
@@ -153,7 +153,7 @@ msgstr[0] "%1 recenze"
153msgstr[1] "%1 recenze"
153msgstr[1] "%1 recenze"
154msgstr[2] "%1 recenzí"
154msgstr[2] "%1 recenzí"
155
155
156−#: Dash/Apps/AppPreview.qml:126
156+#: Dash/Apps/AppPreview.qml:135
157msgid "Rate this"
157msgid "Rate this"
158msgstr "Ohodnoťte to"
158msgstr "Ohodnoťte to"
159
159
@@ -173,7 +173,7 @@ msgstr "Odeslat"
173msgid "Comments:"
173msgid "Comments:"
174msgstr "Komentáře:"
174msgstr "Komentáře:"
175
175
176−#: Greeter/Lockscreen.qml:142
176+#: Greeter/Lockscreen.qml:146
177msgid "Emergency Call"
177msgid "Emergency Call"
178msgstr "Tísňové volání"
178msgstr "Tísňové volání"
179
179
@@ -214,6 +214,15 @@ msgstr ""
214msgid "Search"
214msgid "Search"
215msgstr "Hledat"
215msgstr "Hledat"
216
216
217+#: plugins/Unity/Launcher/launcheritem.cpp:43
218+#: plugins/Unity/Launcher/launcheritem.cpp:73
219+msgid "Lock to Launcher"
220+msgstr ""
221+
222+#: plugins/Unity/Launcher/launcheritem.cpp:73
223+msgid "Unlock from Launcher"
224+msgstr ""
225+
217#: plugins/Unity/scope.cpp:408
226#: plugins/Unity/scope.cpp:408
218msgid "Sorry, there is nothing that matches your search."
227msgid "Sorry, there is nothing that matches your search."
219msgstr "Je nám líto, ale nic neodpovídá zadání"
228msgstr "Je nám líto, ale nic neodpovídá zadání"
@@ -222,7 +231,7 @@ msgstr "Je nám líto, ale nic neodpovídá zadání"
222msgid "All"
231msgid "All"
223msgstr "Vše"
232msgstr "Vše"
224
233
225−#: Shell.qml:438
234+#: Shell.qml:441
226#, qt-format
235#, qt-format
227msgid "Please enter %1"
236msgid "Please enter %1"
228msgstr "Zadejte prosím %1"
237msgstr "Zadejte prosím %1"
po/de.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-18 12:26+0000\n"
11"PO-Revision-Date: 2013-10-18 12:26+0000\n"
12"Last-Translator: Phillip Sz <Unknown>\n"
12"Last-Translator: Phillip Sz <Unknown>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Überspringe Einführung"
91msgstr "Überspringe Einführung"
92
92
@@ -136,7 +136,7 @@ msgstr ""
136"Sie haben nun die Einführung abgeschlossen und können Ihr Gerät nun "
136"Sie haben nun die Einführung abgeschlossen und können Ihr Gerät nun "
137"verwenden<br><br>Antippen um zu starten"
137"verwenden<br><br>Antippen um zu starten"
138
138
139−#: Components/PageHeader.qml:341
139+#: Components/PageHeader.qml:345
140msgid "Recent searches"
140msgid "Recent searches"
141msgstr "Letzte Suchbegriffe"
141msgstr "Letzte Suchbegriffe"
142
142
@@ -156,7 +156,7 @@ msgid_plural "%1 reviews"
156msgstr[0] "%1 Bewertung"
156msgstr[0] "%1 Bewertung"
157msgstr[1] "%1 Bewertungen"
157msgstr[1] "%1 Bewertungen"
158
158
159−#: Dash/Apps/AppPreview.qml:126
159+#: Dash/Apps/AppPreview.qml:135
160msgid "Rate this"
160msgid "Rate this"
161msgstr "Bewerten"
161msgstr "Bewerten"
162
162
@@ -176,7 +176,7 @@ msgstr "Senden"
176msgid "Comments:"
176msgid "Comments:"
177msgstr "Kommentare:"
177msgstr "Kommentare:"
178
178
179−#: Greeter/Lockscreen.qml:142
179+#: Greeter/Lockscreen.qml:146
180msgid "Emergency Call"
180msgid "Emergency Call"
181msgstr "Notruf"
181msgstr "Notruf"
182
182
@@ -217,6 +217,15 @@ msgstr ""
217msgid "Search"
217msgid "Search"
218msgstr "Suchen"
218msgstr "Suchen"
219
219
220+#: plugins/Unity/Launcher/launcheritem.cpp:43
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Lock to Launcher"
223+msgstr ""
224+
225+#: plugins/Unity/Launcher/launcheritem.cpp:73
226+msgid "Unlock from Launcher"
227+msgstr ""
228+
220#: plugins/Unity/scope.cpp:408
229#: plugins/Unity/scope.cpp:408
221msgid "Sorry, there is nothing that matches your search."
230msgid "Sorry, there is nothing that matches your search."
222msgstr "Entschuldigung, es wurden keine Treffer erzielt."
231msgstr "Entschuldigung, es wurden keine Treffer erzielt."
@@ -225,7 +234,7 @@ msgstr "Entschuldigung, es wurden keine Treffer erzielt."
225msgid "All"
234msgid "All"
226msgstr "Alle"
235msgstr "Alle"
227
236
228−#: Shell.qml:438
237+#: Shell.qml:441
229#, qt-format
238#, qt-format
230msgid "Please enter %1"
239msgid "Please enter %1"
231msgstr "Bitte geben Sie %1 ein"
240msgstr "Bitte geben Sie %1 ein"
po/el.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 00:53+0000\n"
11"PO-Revision-Date: 2013-06-27 00:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Πρόσφατες αναζητήσεις"
137msgstr "Πρόσφατες αναζητήσεις"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Αναζήτηση"
214msgstr "Αναζήτηση"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να ταιριάζει στην αναζήτησή σας."
227msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να ταιριάζει στην αναζήτησή σας."
@@ -221,7 +230,7 @@ msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να τ
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/en_AU.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-09-28 07:46+0000\n"
11"PO-Revision-Date: 2013-09-28 07:46+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Skip intro"
91msgstr "Skip intro"
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Recent searches"
137msgstr "Recent searches"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] "%1 review"
152msgstr[0] "%1 review"
153msgstr[1] "%1 reviews"
153msgstr[1] "%1 reviews"
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr "Rate this"
157msgstr "Rate this"
158
158
@@ -172,7 +172,7 @@ msgstr "Send"
172msgid "Comments:"
172msgid "Comments:"
173msgstr "Comments:"
173msgstr "Comments:"
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr "Emergency Call"
177msgstr "Emergency Call"
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Search"
214msgstr "Search"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Sorry, there is nothing that matches your search."
227msgstr "Sorry, there is nothing that matches your search."
@@ -221,7 +230,7 @@ msgstr "Sorry, there is nothing that matches your search."
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr "Please enter %1"
236msgstr "Please enter %1"
po/en_GB.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 08:53+0000\n"
11"PO-Revision-Date: 2013-06-27 08:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Recent searches"
137msgstr "Recent searches"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Search"
214msgstr "Search"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Sorry, there is nothing that matches your search."
227msgstr "Sorry, there is nothing that matches your search."
@@ -221,7 +230,7 @@ msgstr "Sorry, there is nothing that matches your search."
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr "Please enter %1"
236msgstr "Please enter %1"
po/eo.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/es.po+19−10
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11−"PO-Revision-Date: 2013-10-02 04:59+0000\n"
11+"PO-Revision-Date: 2013-11-20 08:46+0000\n"
12"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
12"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-21 06:43+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Omitir la introducción"
91msgstr "Omitir la introducción"
92
92
@@ -136,7 +136,7 @@ msgstr ""
136"Ahora domina los gestos de bordes y puede usar el teléfono<br><br>Toque la "
136"Ahora domina los gestos de bordes y puede usar el teléfono<br><br>Toque la "
137"pantalla para comenzar"
137"pantalla para comenzar"
138
138
139−#: Components/PageHeader.qml:341
139+#: Components/PageHeader.qml:345
140msgid "Recent searches"
140msgid "Recent searches"
141msgstr "Búsquedas recientes"
141msgstr "Búsquedas recientes"
142
142
@@ -156,7 +156,7 @@ msgid_plural "%1 reviews"
156msgstr[0] "%1 reseña"
156msgstr[0] "%1 reseña"
157msgstr[1] "%1 reseñas"
157msgstr[1] "%1 reseñas"
158
158
159−#: Dash/Apps/AppPreview.qml:126
159+#: Dash/Apps/AppPreview.qml:135
160msgid "Rate this"
160msgid "Rate this"
161msgstr "Valorar esto"
161msgstr "Valorar esto"
162
162
@@ -176,7 +176,7 @@ msgstr "Enviar"
176msgid "Comments:"
176msgid "Comments:"
177msgstr "Comentarios:"
177msgstr "Comentarios:"
178
178
179−#: Greeter/Lockscreen.qml:142
179+#: Greeter/Lockscreen.qml:146
180msgid "Emergency Call"
180msgid "Emergency Call"
181msgstr "Llamada de emergencia"
181msgstr "Llamada de emergencia"
182
182
@@ -211,12 +211,21 @@ msgstr "Hablando…"
211
211
212#: Notifications/NotificationMenuItemFactory.qml:89
212#: Notifications/NotificationMenuItemFactory.qml:89
213msgid "Show password"
213msgid "Show password"
214−msgstr ""
214+msgstr "Mostrar contraseña"
215
215
216#: Panel/SearchIndicator.qml:27
216#: Panel/SearchIndicator.qml:27
217msgid "Search"
217msgid "Search"
218msgstr "Buscar"
218msgstr "Buscar"
219
219
220+#: plugins/Unity/Launcher/launcheritem.cpp:43
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Lock to Launcher"
223+msgstr "Mantener en el lanzador"
224+
225+#: plugins/Unity/Launcher/launcheritem.cpp:73
226+msgid "Unlock from Launcher"
227+msgstr "No mantener en el lanzador"
228+
220#: plugins/Unity/scope.cpp:408
229#: plugins/Unity/scope.cpp:408
221msgid "Sorry, there is nothing that matches your search."
230msgid "Sorry, there is nothing that matches your search."
222msgstr "No hay nada que coincida con su búsqueda."
231msgstr "No hay nada que coincida con su búsqueda."
@@ -225,7 +234,7 @@ msgstr "No hay nada que coincida con su búsqueda."
225msgid "All"
234msgid "All"
226msgstr "Todo"
235msgstr "Todo"
227
236
228−#: Shell.qml:438
237+#: Shell.qml:441
229#, qt-format
238#, qt-format
230msgid "Please enter %1"
239msgid "Please enter %1"
231msgstr "Introduzca %1"
240msgstr "Introduzca %1"
po/fa.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-31 19:02+0000\n"
11"PO-Revision-Date: 2013-10-31 19:02+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Persian <fa@li.org>\n"
13"Language-Team: Persian <fa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/fi.po+18−9
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11−"PO-Revision-Date: 2013-11-11 14:07+0000\n"
11+"PO-Revision-Date: 2013-11-20 08:09+0000\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-12 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-21 06:43+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Ohita esittely"
91msgstr "Ohita esittely"
92
92
@@ -134,7 +134,7 @@ msgstr ""
134"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
134"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
135"käytön<br><br>Napauta missä tahansa aloittaaksesi"
135"käytön<br><br>Napauta missä tahansa aloittaaksesi"
136
136
137−#: Components/PageHeader.qml:341
137+#: Components/PageHeader.qml:345
138msgid "Recent searches"
138msgid "Recent searches"
139msgstr "Viimeisimmät haut"
139msgstr "Viimeisimmät haut"
140
140
@@ -154,7 +154,7 @@ msgid_plural "%1 reviews"
154msgstr[0] "%1 arvostelu"
154msgstr[0] "%1 arvostelu"
155msgstr[1] "%1 arvostelua"
155msgstr[1] "%1 arvostelua"
156
156
157−#: Dash/Apps/AppPreview.qml:126
157+#: Dash/Apps/AppPreview.qml:135
158msgid "Rate this"
158msgid "Rate this"
159msgstr "Arvioi tämä"
159msgstr "Arvioi tämä"
160
160
@@ -174,7 +174,7 @@ msgstr "Lähetä"
174msgid "Comments:"
174msgid "Comments:"
175msgstr "Kommentit:"
175msgstr "Kommentit:"
176
176
177−#: Greeter/Lockscreen.qml:142
177+#: Greeter/Lockscreen.qml:146
178msgid "Emergency Call"
178msgid "Emergency Call"
179msgstr "Hätäpuhelu"
179msgstr "Hätäpuhelu"
180
180
@@ -215,6 +215,15 @@ msgstr "Näytä salasana"
215msgid "Search"
215msgid "Search"
216msgstr "Hae"
216msgstr "Hae"
217
217
218+#: plugins/Unity/Launcher/launcheritem.cpp:43
219+#: plugins/Unity/Launcher/launcheritem.cpp:73
220+msgid "Lock to Launcher"
221+msgstr "Kiinnitä käynnistimeen"
222+
223+#: plugins/Unity/Launcher/launcheritem.cpp:73
224+msgid "Unlock from Launcher"
225+msgstr "Poista käynnistimestä"
226+
218#: plugins/Unity/scope.cpp:408
227#: plugins/Unity/scope.cpp:408
219msgid "Sorry, there is nothing that matches your search."
228msgid "Sorry, there is nothing that matches your search."
220msgstr "Hakuun täsmääviä tuloksia ei löydy."
229msgstr "Hakuun täsmääviä tuloksia ei löydy."
@@ -223,7 +232,7 @@ msgstr "Hakuun täsmääviä tuloksia ei löydy."
223msgid "All"
232msgid "All"
224msgstr "Kaikki"
233msgstr "Kaikki"
225
234
226−#: Shell.qml:438
235+#: Shell.qml:441
227#, qt-format
236#, qt-format
228msgid "Please enter %1"
237msgid "Please enter %1"
229msgstr "Kirjoita %1"
238msgstr "Kirjoita %1"
po/fo.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-01 15:13+0000\n"
11"PO-Revision-Date: 2013-10-01 15:13+0000\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
13"Language-Team: Faroese <fo@li.org>\n"
13"Language-Team: Faroese <fo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Leita"
214msgstr "Leita"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
227msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
@@ -221,7 +230,7 @@ msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/fr.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 03:21+0000\n"
11"PO-Revision-Date: 2013-06-27 03:21+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/gd.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-09-30 10:34+0000\n"
11"PO-Revision-Date: 2013-09-30 10:34+0000\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
13"Language-Team: Gaelic; Scottish <gd@li.org>\n"
13"Language-Team: Gaelic; Scottish <gd@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
17"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
18"(n > 2 && n < 20) ? 2 : 3;\n"
18"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "An Uicipeid"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Gearr leum thairis air an ro-ràdh"
92msgstr "Gearr leum thairis air an ro-ràdh"
93
93
@@ -139,7 +139,7 @@ msgid ""
139"phone<br><br>Tap anywhere to start"
139"phone<br><br>Tap anywhere to start"
140msgstr ""
140msgstr ""
141
141
142−#: Components/PageHeader.qml:341
142+#: Components/PageHeader.qml:345
143msgid "Recent searches"
143msgid "Recent searches"
144msgstr "Na lorg thu o chionn goirid"
144msgstr "Na lorg thu o chionn goirid"
145
145
@@ -161,7 +161,7 @@ msgstr[1] "%1 lèirmheas"
161msgstr[2] "%1 lèirmheasan"
161msgstr[2] "%1 lèirmheasan"
162msgstr[3] "%1 lèirmheas"
162msgstr[3] "%1 lèirmheas"
163
163
164−#: Dash/Apps/AppPreview.qml:126
164+#: Dash/Apps/AppPreview.qml:135
165msgid "Rate this"
165msgid "Rate this"
166msgstr "Rangaich seo"
166msgstr "Rangaich seo"
167
167
@@ -181,7 +181,7 @@ msgstr "Cuir"
181msgid "Comments:"
181msgid "Comments:"
182msgstr "Beachdan"
182msgstr "Beachdan"
183
183
184−#: Greeter/Lockscreen.qml:142
184+#: Greeter/Lockscreen.qml:146
185msgid "Emergency Call"
185msgid "Emergency Call"
186msgstr "Gairm èiginn"
186msgstr "Gairm èiginn"
187
187
@@ -222,6 +222,15 @@ msgstr ""
222msgid "Search"
222msgid "Search"
223msgstr "Lorg"
223msgstr "Lorg"
224
224
225+#: plugins/Unity/Launcher/launcheritem.cpp:43
226+#: plugins/Unity/Launcher/launcheritem.cpp:73
227+msgid "Lock to Launcher"
228+msgstr ""
229+
230+#: plugins/Unity/Launcher/launcheritem.cpp:73
231+msgid "Unlock from Launcher"
232+msgstr ""
233+
225#: plugins/Unity/scope.cpp:408
234#: plugins/Unity/scope.cpp:408
226msgid "Sorry, there is nothing that matches your search."
235msgid "Sorry, there is nothing that matches your search."
227msgstr "Tha sinn duilich ach chan eil dad a' freagairt ris na lorg thu."
236msgstr "Tha sinn duilich ach chan eil dad a' freagairt ris na lorg thu."
@@ -230,7 +239,7 @@ msgstr "Tha sinn duilich ach chan eil dad a' freagairt ris na lorg thu."
230msgid "All"
239msgid "All"
231msgstr ""
240msgstr ""
232
241
233−#: Shell.qml:438
242+#: Shell.qml:441
234#, qt-format
243#, qt-format
235msgid "Please enter %1"
244msgid "Please enter %1"
236msgstr "Cuir a-steach %1"
245msgstr "Cuir a-steach %1"
po/gl.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-03 18:49+0000\n"
11"PO-Revision-Date: 2013-10-03 18:49+0000\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
13"Language-Team: Galician <gl@li.org>\n"
13"Language-Team: Galician <gl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Saltar introdución"
91msgstr "Saltar introdución"
92
92
@@ -134,7 +134,7 @@ msgstr ""
134"Xa domina os xestos desde os bordos e pode comezar a usar o "
134"Xa domina os xestos desde os bordos e pode comezar a usar o "
135"móbil<br><br>Toque en calquera sitio para comezar"
135"móbil<br><br>Toque en calquera sitio para comezar"
136
136
137−#: Components/PageHeader.qml:341
137+#: Components/PageHeader.qml:345
138msgid "Recent searches"
138msgid "Recent searches"
139msgstr "Buscas recentes"
139msgstr "Buscas recentes"
140
140
@@ -154,7 +154,7 @@ msgid_plural "%1 reviews"
154msgstr[0] "%1 opinión"
154msgstr[0] "%1 opinión"
155msgstr[1] "%1 opinións"
155msgstr[1] "%1 opinións"
156
156
157−#: Dash/Apps/AppPreview.qml:126
157+#: Dash/Apps/AppPreview.qml:135
158msgid "Rate this"
158msgid "Rate this"
159msgstr "Valore isto"
159msgstr "Valore isto"
160
160
@@ -174,7 +174,7 @@ msgstr "Enviar"
174msgid "Comments:"
174msgid "Comments:"
175msgstr "Comentarios:"
175msgstr "Comentarios:"
176
176
177−#: Greeter/Lockscreen.qml:142
177+#: Greeter/Lockscreen.qml:146
178msgid "Emergency Call"
178msgid "Emergency Call"
179msgstr "Chamada de emerxencia"
179msgstr "Chamada de emerxencia"
180
180
@@ -215,6 +215,15 @@ msgstr ""
215msgid "Search"
215msgid "Search"
216msgstr "Buscar"
216msgstr "Buscar"
217
217
218+#: plugins/Unity/Launcher/launcheritem.cpp:43
219+#: plugins/Unity/Launcher/launcheritem.cpp:73
220+msgid "Lock to Launcher"
221+msgstr ""
222+
223+#: plugins/Unity/Launcher/launcheritem.cpp:73
224+msgid "Unlock from Launcher"
225+msgstr ""
226+
218#: plugins/Unity/scope.cpp:408
227#: plugins/Unity/scope.cpp:408
219msgid "Sorry, there is nothing that matches your search."
228msgid "Sorry, there is nothing that matches your search."
220msgstr "Sentímolo, non hai nada que coincida con esta busca."
229msgstr "Sentímolo, non hai nada que coincida con esta busca."
@@ -223,7 +232,7 @@ msgstr "Sentímolo, non hai nada que coincida con esta busca."
223msgid "All"
232msgid "All"
224msgstr "Todo"
233msgstr "Todo"
225
234
226−#: Shell.qml:438
235+#: Shell.qml:441
227#, qt-format
236#, qt-format
228msgid "Please enter %1"
237msgid "Please enter %1"
229msgstr "Introduza %1"
238msgstr "Introduza %1"
po/he.po+22−11
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11−"PO-Revision-Date: 2013-10-01 09:19+0000\n"
11+"PO-Revision-Date: 2013-11-20 08:30+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-21 06:43+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "ויקיפדיה"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "לדלג על הפתיחה"
91msgstr "לדלג על הפתיחה"
92
92
@@ -131,8 +131,10 @@ msgid ""
131"You have now mastered the edge gestures and can start using the "
131"You have now mastered the edge gestures and can start using the "
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134+"עתה מכשסיימת את ההשתלמות לשימוש במחוות קצה יש לך את הכלים להשתמש "
135+"בטלפון<br><br>ניתן לגעת במקום כלשהו במסך כדי להתחיל"
134
136
135−#: Components/PageHeader.qml:341
137+#: Components/PageHeader.qml:345
136msgid "Recent searches"
138msgid "Recent searches"
137msgstr "חיפושים אחרונים"
139msgstr "חיפושים אחרונים"
138
140
@@ -152,7 +154,7 @@ msgid_plural "%1 reviews"
152msgstr[0] "סקירה %1"
154msgstr[0] "סקירה %1"
153msgstr[1] "%1 סקירות"
155msgstr[1] "%1 סקירות"
154
156
155−#: Dash/Apps/AppPreview.qml:126
157+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
158msgid "Rate this"
157msgstr "דירוג היישום"
159msgstr "דירוג היישום"
158
160
@@ -172,7 +174,7 @@ msgstr "שליחה"
172msgid "Comments:"
174msgid "Comments:"
173msgstr "הערות:"
175msgstr "הערות:"
174
176
175−#: Greeter/Lockscreen.qml:142
177+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
178msgid "Emergency Call"
177msgstr "שיחת חירום"
179msgstr "שיחת חירום"
178
180
@@ -207,21 +209,30 @@ msgstr "הדיבור מושמע…"
207
209
208#: Notifications/NotificationMenuItemFactory.qml:89
210#: Notifications/NotificationMenuItemFactory.qml:89
209msgid "Show password"
211msgid "Show password"
210−msgstr ""
212+msgstr "הצגת הססמה"
211
213
212#: Panel/SearchIndicator.qml:27
214#: Panel/SearchIndicator.qml:27
213msgid "Search"
215msgid "Search"
214msgstr "חיפוש"
216msgstr "חיפוש"
215
217
218+#: plugins/Unity/Launcher/launcheritem.cpp:43
219+#: plugins/Unity/Launcher/launcheritem.cpp:73
220+msgid "Lock to Launcher"
221+msgstr "נעילה למשגר"
222+
223+#: plugins/Unity/Launcher/launcheritem.cpp:73
224+msgid "Unlock from Launcher"
225+msgstr "הפרדה מהמשגר"
226+
216#: plugins/Unity/scope.cpp:408
227#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
228msgid "Sorry, there is nothing that matches your search."
218msgstr "שום דבר אינו תואם לחיפוש שלך, עמך הסליחה."
229msgstr "שום דבר אינו תואם לחיפוש שלך, עמך הסליחה."
219
230
220#: plugins/Unity/showallfilteroption.cpp:41
231#: plugins/Unity/showallfilteroption.cpp:41
221msgid "All"
232msgid "All"
222−msgstr ""
233+msgstr "הכול"
223
234
224−#: Shell.qml:438
235+#: Shell.qml:441
225#, qt-format
236#, qt-format
226msgid "Please enter %1"
237msgid "Please enter %1"
227msgstr "נא להזין %1"
238msgstr "נא להזין %1"
po/hr.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Croatian <hr@li.org>\n"
13"Language-Team: Croatian <hr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,7 +133,7 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:341
136+#: Components/PageHeader.qml:345
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Nedavne pretrage"
138msgstr "Nedavne pretrage"
139
139
@@ -153,7 +153,7 @@ msgid_plural "%1 reviews"
153msgstr[0] ""
153msgstr[0] ""
154msgstr[1] ""
154msgstr[1] ""
155
155
156−#: Dash/Apps/AppPreview.qml:126
156+#: Dash/Apps/AppPreview.qml:135
157msgid "Rate this"
157msgid "Rate this"
158msgstr ""
158msgstr ""
159
159
@@ -173,7 +173,7 @@ msgstr ""
173msgid "Comments:"
173msgid "Comments:"
174msgstr ""
174msgstr ""
175
175
176−#: Greeter/Lockscreen.qml:142
176+#: Greeter/Lockscreen.qml:146
177msgid "Emergency Call"
177msgid "Emergency Call"
178msgstr ""
178msgstr ""
179
179
@@ -214,6 +214,15 @@ msgstr ""
214msgid "Search"
214msgid "Search"
215msgstr "Pretraživanje"
215msgstr "Pretraživanje"
216
216
217+#: plugins/Unity/Launcher/launcheritem.cpp:43
218+#: plugins/Unity/Launcher/launcheritem.cpp:73
219+msgid "Lock to Launcher"
220+msgstr ""
221+
222+#: plugins/Unity/Launcher/launcheritem.cpp:73
223+msgid "Unlock from Launcher"
224+msgstr ""
225+
217#: plugins/Unity/scope.cpp:408
226#: plugins/Unity/scope.cpp:408
218msgid "Sorry, there is nothing that matches your search."
227msgid "Sorry, there is nothing that matches your search."
219msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
228msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
@@ -222,7 +231,7 @@ msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
222msgid "All"
231msgid "All"
223msgstr ""
232msgstr ""
224
233
225−#: Shell.qml:438
234+#: Shell.qml:441
226#, qt-format
235#, qt-format
227msgid "Please enter %1"
236msgid "Please enter %1"
228msgstr ""
237msgstr ""
po/hu.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 04:28+0000\n"
11"PO-Revision-Date: 2013-06-27 04:28+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Legutóbbi keresések"
137msgstr "Legutóbbi keresések"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Keresés"
214msgstr "Keresés"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Elnézést, nincs találat a keresésre."
227msgstr "Elnézést, nincs találat a keresésre."
@@ -221,7 +230,7 @@ msgstr "Elnézést, nincs találat a keresésre."
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/hy.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Վերջին որոնումներ"
137msgstr "Վերջին որոնումներ"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Որոնում"
214msgstr "Որոնում"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
227msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
@@ -221,7 +230,7 @@ msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/id.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Indonesian <id@li.org>\n"
13"Language-Team: Indonesian <id@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/is.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-09-18 16:22+0000\n"
11"PO-Revision-Date: 2013-09-18 16:22+0000\n"
12"Last-Translator: Andri Thorlacius <Unknown>\n"
12"Last-Translator: Andri Thorlacius <Unknown>\n"
13"Language-Team: Icelandic <is@li.org>\n"
13"Language-Team: Icelandic <is@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Hoppa yfir kynningu"
91msgstr "Hoppa yfir kynningu"
92
92
@@ -133,7 +133,7 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:341
136+#: Components/PageHeader.qml:345
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Nýlegar leitir"
138msgstr "Nýlegar leitir"
139
139
@@ -153,7 +153,7 @@ msgid_plural "%1 reviews"
153msgstr[0] "%1 ummæli"
153msgstr[0] "%1 ummæli"
154msgstr[1] "%1 ummæli"
154msgstr[1] "%1 ummæli"
155
155
156−#: Dash/Apps/AppPreview.qml:126
156+#: Dash/Apps/AppPreview.qml:135
157msgid "Rate this"
157msgid "Rate this"
158msgstr "Gefa þessu einkunn"
158msgstr "Gefa þessu einkunn"
159
159
@@ -173,7 +173,7 @@ msgstr "Senda"
173msgid "Comments:"
173msgid "Comments:"
174msgstr "Athugasemdir:"
174msgstr "Athugasemdir:"
175
175
176−#: Greeter/Lockscreen.qml:142
176+#: Greeter/Lockscreen.qml:146
177msgid "Emergency Call"
177msgid "Emergency Call"
178msgstr "Neyðarsímtal"
178msgstr "Neyðarsímtal"
179
179
@@ -214,6 +214,15 @@ msgstr ""
214msgid "Search"
214msgid "Search"
215msgstr "Leita"
215msgstr "Leita"
216
216
217+#: plugins/Unity/Launcher/launcheritem.cpp:43
218+#: plugins/Unity/Launcher/launcheritem.cpp:73
219+msgid "Lock to Launcher"
220+msgstr ""
221+
222+#: plugins/Unity/Launcher/launcheritem.cpp:73
223+msgid "Unlock from Launcher"
224+msgstr ""
225+
217#: plugins/Unity/scope.cpp:408
226#: plugins/Unity/scope.cpp:408
218msgid "Sorry, there is nothing that matches your search."
227msgid "Sorry, there is nothing that matches your search."
219msgstr "Því miður, það var ekkert sem passaði við leitarorðið þitt."
228msgstr "Því miður, það var ekkert sem passaði við leitarorðið þitt."
@@ -222,7 +231,7 @@ msgstr "Því miður, það var ekkert sem passaði við leitarorðið þitt."
222msgid "All"
231msgid "All"
223msgstr ""
232msgstr ""
224
233
225−#: Shell.qml:438
234+#: Shell.qml:441
226#, qt-format
235#, qt-format
227msgid "Please enter %1"
236msgid "Please enter %1"
228msgstr ""
237msgstr ""
po/it.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-07 09:34+0000\n"
11"PO-Revision-Date: 2013-10-07 09:34+0000\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
13"Language-Team: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipedia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Salta introduzione"
91msgstr "Salta introduzione"
92
92
@@ -139,7 +139,7 @@ msgstr ""
139"I gesti sui bordi sono stati configurati ed è possibile iniziare a usare il "
139"I gesti sui bordi sono stati configurati ed è possibile iniziare a usare il "
140"telefono<br><br>Toccare in un punto qualunque per iniziare"
140"telefono<br><br>Toccare in un punto qualunque per iniziare"
141
141
142−#: Components/PageHeader.qml:341
142+#: Components/PageHeader.qml:345
143msgid "Recent searches"
143msgid "Recent searches"
144msgstr "Ricerche recenti"
144msgstr "Ricerche recenti"
145
145
@@ -159,7 +159,7 @@ msgid_plural "%1 reviews"
159msgstr[0] "%1 recensione"
159msgstr[0] "%1 recensione"
160msgstr[1] "%1 recensioni"
160msgstr[1] "%1 recensioni"
161
161
162−#: Dash/Apps/AppPreview.qml:126
162+#: Dash/Apps/AppPreview.qml:135
163msgid "Rate this"
163msgid "Rate this"
164msgstr "Valuta"
164msgstr "Valuta"
165
165
@@ -179,7 +179,7 @@ msgstr "Invia"
179msgid "Comments:"
179msgid "Comments:"
180msgstr "Commenti:"
180msgstr "Commenti:"
181
181
182−#: Greeter/Lockscreen.qml:142
182+#: Greeter/Lockscreen.qml:146
183msgid "Emergency Call"
183msgid "Emergency Call"
184msgstr "Chiamata di emergenza"
184msgstr "Chiamata di emergenza"
185
185
@@ -220,6 +220,15 @@ msgstr ""
220msgid "Search"
220msgid "Search"
221msgstr "Cerca"
221msgstr "Cerca"
222
222
223+#: plugins/Unity/Launcher/launcheritem.cpp:43
224+#: plugins/Unity/Launcher/launcheritem.cpp:73
225+msgid "Lock to Launcher"
226+msgstr ""
227+
228+#: plugins/Unity/Launcher/launcheritem.cpp:73
229+msgid "Unlock from Launcher"
230+msgstr ""
231+
223#: plugins/Unity/scope.cpp:408
232#: plugins/Unity/scope.cpp:408
224msgid "Sorry, there is nothing that matches your search."
233msgid "Sorry, there is nothing that matches your search."
225msgstr "Nessun risultato corrispondente alla ricerca."
234msgstr "Nessun risultato corrispondente alla ricerca."
@@ -228,7 +237,7 @@ msgstr "Nessun risultato corrispondente alla ricerca."
228msgid "All"
237msgid "All"
229msgstr "Tutto"
238msgstr "Tutto"
230
239
231−#: Shell.qml:438
240+#: Shell.qml:441
232#, qt-format
241#, qt-format
233msgid "Please enter %1"
242msgid "Please enter %1"
234msgstr "Inserire %1"
243msgstr "Inserire %1"
po/ja.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/km.po+19−10
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11−"PO-Revision-Date: 2013-10-11 08:49+0000\n"
11+"PO-Revision-Date: 2013-11-20 07:34+0000\n"
12"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
12"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
13"Language-Team: Khmer <km@li.org>\n"
13"Language-Team: Khmer <km@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-21 06:43+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "វីគីភីឌៀ"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "រំលង​ការ​ណែនាំ"
91msgstr "រំលង​ការ​ណែនាំ"
92
92
@@ -137,7 +137,7 @@ msgstr ""
137"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ​បាន<br><br>ប៉ះ​កន្លែង​ណា​មួយ​ "
137"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ​បាន<br><br>ប៉ះ​កន្លែង​ណា​មួយ​ "
138"ដើម្បី​ចាប់ផ្ដើម"
138"ដើម្បី​ចាប់ផ្ដើម"
139
139
140−#: Components/PageHeader.qml:341
140+#: Components/PageHeader.qml:345
141msgid "Recent searches"
141msgid "Recent searches"
142msgstr "ការ​ស្វែងរក​ថ្មី"
142msgstr "ការ​ស្វែងរក​ថ្មី"
143
143
@@ -156,7 +156,7 @@ msgid "%1 review"
156msgid_plural "%1 reviews"
156msgid_plural "%1 reviews"
157msgstr[0] "ពិនិត្យ​មើល %1"
157msgstr[0] "ពិនិត្យ​មើល %1"
158
158
159−#: Dash/Apps/AppPreview.qml:126
159+#: Dash/Apps/AppPreview.qml:135
160msgid "Rate this"
160msgid "Rate this"
161msgstr "វាយតម្លៃ​វា"
161msgstr "វាយតម្លៃ​វា"
162
162
@@ -176,7 +176,7 @@ msgstr "ផ្ញើ"
176msgid "Comments:"
176msgid "Comments:"
177msgstr "មតិយោបល់៖"
177msgstr "មតិយោបល់៖"
178
178
179−#: Greeter/Lockscreen.qml:142
179+#: Greeter/Lockscreen.qml:146
180msgid "Emergency Call"
180msgid "Emergency Call"
181msgstr "ការ​ហៅ​ពេល​អាសន្ន"
181msgstr "ការ​ហៅ​ពេល​អាសន្ន"
182
182
@@ -211,12 +211,21 @@ msgstr "កំពុង​និយាយ..."
211
211
212#: Notifications/NotificationMenuItemFactory.qml:89
212#: Notifications/NotificationMenuItemFactory.qml:89
213msgid "Show password"
213msgid "Show password"
214−msgstr ""
214+msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
215
215
216#: Panel/SearchIndicator.qml:27
216#: Panel/SearchIndicator.qml:27
217msgid "Search"
217msgid "Search"
218msgstr "ស្វែង​រក"
218msgstr "ស្វែង​រក"
219
219
220+#: plugins/Unity/Launcher/launcheritem.cpp:43
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Lock to Launcher"
223+msgstr "ចាក់​សោ​​ទៅ​កម្មវិធី​ចាប់ផ្ដើម"
224+
225+#: plugins/Unity/Launcher/launcheritem.cpp:73
226+msgid "Unlock from Launcher"
227+msgstr "ដោះសោ​ពី​កម្មវិធី​ចាប់ផ្ដើម"
228+
220#: plugins/Unity/scope.cpp:408
229#: plugins/Unity/scope.cpp:408
221msgid "Sorry, there is nothing that matches your search."
230msgid "Sorry, there is nothing that matches your search."
222msgstr "សូម​ទោស មិនមាន​ពាក្យ​ដែល​អ្នក​ស្វែងរក​ទេ​។"
231msgstr "សូម​ទោស មិនមាន​ពាក្យ​ដែល​អ្នក​ស្វែងរក​ទេ​។"
@@ -225,7 +234,7 @@ msgstr "សូម​ទោស មិនមាន​ពាក្យ​ដែល
225msgid "All"
234msgid "All"
226msgstr "ទាំង​អស់"
235msgstr "ទាំង​អស់"
227
236
228−#: Shell.qml:438
237+#: Shell.qml:441
229#, qt-format
238#, qt-format
230msgid "Please enter %1"
239msgid "Please enter %1"
231msgstr "សូម​បញ្ចូល %1"
240msgstr "សូម​បញ្ចូល %1"
po/kn.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kannada <kn@li.org>\n"
13"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
137msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "ಹುಡುಕು"
214msgstr "ಹುಡುಕು"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯಾದ ಹೊಂದಾಣಿಕೆಗಳು ದೊರಕುತ್ತಿಲ್ಲ"
227msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯಾದ ಹೊಂದಾಣಿಕೆಗಳು ದೊರಕುತ್ತಿಲ್ಲ"
@@ -221,7 +230,7 @@ msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯ
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/ko.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-10 07:04+0000\n"
11"PO-Revision-Date: 2013-10-10 07:04+0000\n"
12"Last-Translator: Kim Boram <boramism@gmail.com>\n"
12"Last-Translator: Kim Boram <boramism@gmail.com>\n"
13"Language-Team: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "위키백과"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "유튜브"
87msgstr "유튜브"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "도입부 건너뛰기"
91msgstr "도입부 건너뛰기"
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "최근 검색"
137msgstr "최근 검색"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "검색"
214msgstr "검색"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/ky.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Соңку издөөлөр"
137msgstr "Соңку издөөлөр"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Издөө"
214msgstr "Издөө"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Тилекке каршы, сиздин издөөңүзгө эч нерсе дал келген жок."
227msgstr "Тилекке каршы, сиздин издөөңүзгө эч нерсе дал келген жок."
@@ -221,7 +230,7 @@ msgstr "Тилекке каршы, сиздин издөөңүзгө эч нер
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/lo.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
13"Language-Team: Lao <lo@li.org>\n"
13"Language-Team: Lao <lo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr "ິYouTube"
87msgstr "ິYouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr "ສົ່ງ"
172msgid "Comments:"
172msgid "Comments:"
173msgstr "ຄໍ່ເຫັນ"
173msgstr "ຄໍ່ເຫັນ"
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "ຊອກຫາ"
214msgstr "ຊອກຫາ"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr "ທັງໝົດ"
231msgstr "ທັງໝົດ"
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr "ກະລູນາປ້ອນ %1"
236msgstr "ກະລູນາປ້ອນ %1"
po/lv.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-09-28 16:29+0000\n"
11"PO-Revision-Date: 2013-09-28 16:29+0000\n"
12"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
12"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
13"Language-Team: Latvian <lv@li.org>\n"
13"Language-Team: Latvian <lv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Vikipēdija"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Nesen veiktās meklēšanas"
137msgstr "Nesen veiktās meklēšanas"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Meklēt"
214msgstr "Meklēt"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
227msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
@@ -221,7 +230,7 @@ msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/my.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-09 11:35+0000\n"
11"PO-Revision-Date: 2013-10-09 11:35+0000\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
13"Language-Team: Burmese <my@li.org>\n"
13"Language-Team: Burmese <my@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "ဝီကီပီဒီးယား"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "မိတ်ဆက်ကိုကျော်မည်"
91msgstr "မိတ်ဆက်ကိုကျော်မည်"
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
137msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr "ဒီဟာကိုအမှတ်ပေးမည်"
157msgstr "ဒီဟာကိုအမှတ်ပေးမည်"
158
158
@@ -172,7 +172,7 @@ msgstr "ပို့မည်"
172msgid "Comments:"
172msgid "Comments:"
173msgstr "မှတ်ချက်များ-"
173msgstr "မှတ်ချက်များ-"
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "ရှာဖွေ"
214msgstr "ရှာဖွေ"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့်တူညီတာဘာမှမရှိပါ။"
227msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့်တူညီတာဘာမှမရှိပါ။"
@@ -221,7 +230,7 @@ msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/nb.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 07:02+0000\n"
11"PO-Revision-Date: 2013-06-27 07:02+0000\n"
12"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
12"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Siste søk"
137msgstr "Siste søk"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Søk"
214msgstr "Søk"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Søket ga ingen treff."
227msgstr "Søket ga ingen treff."
@@ -221,7 +230,7 @@ msgstr "Søket ga ingen treff."
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/nl.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 07:19+0000\n"
11"PO-Revision-Date: 2013-06-27 07:19+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Dutch <nl@li.org>\n"
13"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:37+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "Recente zoekopdrachten"
137msgstr "Recente zoekopdrachten"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "Zoeken"
214msgstr "Zoeken"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
227msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
@@ -221,7 +230,7 @@ msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/pl.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-13 13:44+0000\n"
11"PO-Revision-Date: 2013-10-13 13:44+0000\n"
12"Last-Translator: GTriderXC <gtriderxc@yahoo.com>\n"
12"Last-Translator: GTriderXC <gtriderxc@yahoo.com>\n"
13"Language-Team: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
18"|| n%100>=20) ? 1 : 2;\n"
18"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Wikipedia"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Pomiń intro"
92msgstr "Pomiń intro"
93
93
@@ -137,7 +137,7 @@ msgstr ""
137"Polecenia aktywatorów krawędzi ekranu zostały opanowane<br><br>Dotknij "
137"Polecenia aktywatorów krawędzi ekranu zostały opanowane<br><br>Dotknij "
138"gdziekolwiek aby kontynuować"
138"gdziekolwiek aby kontynuować"
139
139
140−#: Components/PageHeader.qml:341
140+#: Components/PageHeader.qml:345
141msgid "Recent searches"
141msgid "Recent searches"
142msgstr "Ostatnie wyszukiwania"
142msgstr "Ostatnie wyszukiwania"
143
143
@@ -158,7 +158,7 @@ msgstr[0] "%1 opinia"
158msgstr[1] "%1 opinie"
158msgstr[1] "%1 opinie"
159msgstr[2] "%1 opinii"
159msgstr[2] "%1 opinii"
160
160
161−#: Dash/Apps/AppPreview.qml:126
161+#: Dash/Apps/AppPreview.qml:135
162msgid "Rate this"
162msgid "Rate this"
163msgstr "Oceń to"
163msgstr "Oceń to"
164
164
@@ -178,7 +178,7 @@ msgstr "Wyślij"
178msgid "Comments:"
178msgid "Comments:"
179msgstr "Komentarze:"
179msgstr "Komentarze:"
180
180
181−#: Greeter/Lockscreen.qml:142
181+#: Greeter/Lockscreen.qml:146
182msgid "Emergency Call"
182msgid "Emergency Call"
183msgstr "Telefon ratunkowy"
183msgstr "Telefon ratunkowy"
184
184
@@ -219,6 +219,15 @@ msgstr ""
219msgid "Search"
219msgid "Search"
220msgstr "Szukaj"
220msgstr "Szukaj"
221
221
222+#: plugins/Unity/Launcher/launcheritem.cpp:43
223+#: plugins/Unity/Launcher/launcheritem.cpp:73
224+msgid "Lock to Launcher"
225+msgstr ""
226+
227+#: plugins/Unity/Launcher/launcheritem.cpp:73
228+msgid "Unlock from Launcher"
229+msgstr ""
230+
222#: plugins/Unity/scope.cpp:408
231#: plugins/Unity/scope.cpp:408
223msgid "Sorry, there is nothing that matches your search."
232msgid "Sorry, there is nothing that matches your search."
224msgstr "Nie znaleziono pasujących wyników."
233msgstr "Nie znaleziono pasujących wyników."
@@ -227,7 +236,7 @@ msgstr "Nie znaleziono pasujących wyników."
227msgid "All"
236msgid "All"
228msgstr "Wszystko"
237msgstr "Wszystko"
229
238
230−#: Shell.qml:438
239+#: Shell.qml:441
231#, qt-format
240#, qt-format
232msgid "Please enter %1"
241msgid "Please enter %1"
233msgstr "Wprowadź %1"
242msgstr "Wprowadź %1"
po/pt_BR.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-01 13:05+0000\n"
11"PO-Revision-Date: 2013-10-01 13:05+0000\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Wikipédia"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "Pular introdução"
91msgstr "Pular introdução"
92
92
@@ -134,7 +134,7 @@ msgid ""
134"phone<br><br>Tap anywhere to start"
134"phone<br><br>Tap anywhere to start"
135msgstr ""
135msgstr ""
136
136
137−#: Components/PageHeader.qml:341
137+#: Components/PageHeader.qml:345
138msgid "Recent searches"
138msgid "Recent searches"
139msgstr "Pesquisas recentes"
139msgstr "Pesquisas recentes"
140
140
@@ -154,7 +154,7 @@ msgid_plural "%1 reviews"
154msgstr[0] "%1 análise"
154msgstr[0] "%1 análise"
155msgstr[1] "%1 análises"
155msgstr[1] "%1 análises"
156
156
157−#: Dash/Apps/AppPreview.qml:126
157+#: Dash/Apps/AppPreview.qml:135
158msgid "Rate this"
158msgid "Rate this"
159msgstr "Avaliar isto"
159msgstr "Avaliar isto"
160
160
@@ -174,7 +174,7 @@ msgstr "Enviar"
174msgid "Comments:"
174msgid "Comments:"
175msgstr "Comentários:"
175msgstr "Comentários:"
176
176
177−#: Greeter/Lockscreen.qml:142
177+#: Greeter/Lockscreen.qml:146
178msgid "Emergency Call"
178msgid "Emergency Call"
179msgstr "Chamada de emergência"
179msgstr "Chamada de emergência"
180
180
@@ -215,6 +215,15 @@ msgstr ""
215msgid "Search"
215msgid "Search"
216msgstr "Pesquisar"
216msgstr "Pesquisar"
217
217
218+#: plugins/Unity/Launcher/launcheritem.cpp:43
219+#: plugins/Unity/Launcher/launcheritem.cpp:73
220+msgid "Lock to Launcher"
221+msgstr ""
222+
223+#: plugins/Unity/Launcher/launcheritem.cpp:73
224+msgid "Unlock from Launcher"
225+msgstr ""
226+
218#: plugins/Unity/scope.cpp:408
227#: plugins/Unity/scope.cpp:408
219msgid "Sorry, there is nothing that matches your search."
228msgid "Sorry, there is nothing that matches your search."
220msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
229msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
@@ -223,7 +232,7 @@ msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
223msgid "All"
232msgid "All"
224msgstr ""
233msgstr ""
225
234
226−#: Shell.qml:438
235+#: Shell.qml:441
227#, qt-format
236#, qt-format
228msgid "Please enter %1"
237msgid "Please enter %1"
229msgstr "Por favor, digite %1"
238msgstr "Por favor, digite %1"
po/ro.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Romanian <ro@li.org>\n"
13"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
18"== 0) && (n != 0))) ? 2: 1));\n"
18"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,7 +133,7 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:341
136+#: Components/PageHeader.qml:345
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Căutări recente"
138msgstr "Căutări recente"
139
139
@@ -153,7 +153,7 @@ msgid_plural "%1 reviews"
153msgstr[0] ""
153msgstr[0] ""
154msgstr[1] ""
154msgstr[1] ""
155
155
156−#: Dash/Apps/AppPreview.qml:126
156+#: Dash/Apps/AppPreview.qml:135
157msgid "Rate this"
157msgid "Rate this"
158msgstr ""
158msgstr ""
159
159
@@ -173,7 +173,7 @@ msgstr ""
173msgid "Comments:"
173msgid "Comments:"
174msgstr ""
174msgstr ""
175
175
176−#: Greeter/Lockscreen.qml:142
176+#: Greeter/Lockscreen.qml:146
177msgid "Emergency Call"
177msgid "Emergency Call"
178msgstr ""
178msgstr ""
179
179
@@ -214,6 +214,15 @@ msgstr ""
214msgid "Search"
214msgid "Search"
215msgstr "Căutare"
215msgstr "Căutare"
216
216
217+#: plugins/Unity/Launcher/launcheritem.cpp:43
218+#: plugins/Unity/Launcher/launcheritem.cpp:73
219+msgid "Lock to Launcher"
220+msgstr ""
221+
222+#: plugins/Unity/Launcher/launcheritem.cpp:73
223+msgid "Unlock from Launcher"
224+msgstr ""
225+
217#: plugins/Unity/scope.cpp:408
226#: plugins/Unity/scope.cpp:408
218msgid "Sorry, there is nothing that matches your search."
227msgid "Sorry, there is nothing that matches your search."
219msgstr ""
228msgstr ""
@@ -223,7 +232,7 @@ msgstr ""
223msgid "All"
232msgid "All"
224msgstr ""
233msgstr ""
225
234
226−#: Shell.qml:438
235+#: Shell.qml:441
227#, qt-format
236#, qt-format
228msgid "Please enter %1"
237msgid "Please enter %1"
229msgstr ""
238msgstr ""
po/ru.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-01 05:55+0000\n"
11"PO-Revision-Date: 2013-10-01 05:55+0000\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"
13"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Википедия"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Пропустить обучение"
92msgstr "Пропустить обучение"
93
93
@@ -138,7 +138,7 @@ msgid ""
138"phone<br><br>Tap anywhere to start"
138"phone<br><br>Tap anywhere to start"
139msgstr ""
139msgstr ""
140
140
141−#: Components/PageHeader.qml:341
141+#: Components/PageHeader.qml:345
142msgid "Recent searches"
142msgid "Recent searches"
143msgstr "Последние поисковые запросы"
143msgstr "Последние поисковые запросы"
144
144
@@ -157,7 +157,7 @@ msgid "%1 review"
157msgid_plural "%1 reviews"
157msgid_plural "%1 reviews"
158msgstr[0] "%1 отзыв"
158msgstr[0] "%1 отзыв"
159
159
160−#: Dash/Apps/AppPreview.qml:126
160+#: Dash/Apps/AppPreview.qml:135
161msgid "Rate this"
161msgid "Rate this"
162msgstr "Оцените это"
162msgstr "Оцените это"
163
163
@@ -177,7 +177,7 @@ msgstr "Отправить"
177msgid "Comments:"
177msgid "Comments:"
178msgstr "Комментарии:"
178msgstr "Комментарии:"
179
179
180−#: Greeter/Lockscreen.qml:142
180+#: Greeter/Lockscreen.qml:146
181msgid "Emergency Call"
181msgid "Emergency Call"
182msgstr "Экстренный вызов"
182msgstr "Экстренный вызов"
183
183
@@ -218,6 +218,15 @@ msgstr ""
218msgid "Search"
218msgid "Search"
219msgstr "Поиск"
219msgstr "Поиск"
220
220
221+#: plugins/Unity/Launcher/launcheritem.cpp:43
222+#: plugins/Unity/Launcher/launcheritem.cpp:73
223+msgid "Lock to Launcher"
224+msgstr ""
225+
226+#: plugins/Unity/Launcher/launcheritem.cpp:73
227+msgid "Unlock from Launcher"
228+msgstr ""
229+
221#: plugins/Unity/scope.cpp:408
230#: plugins/Unity/scope.cpp:408
222msgid "Sorry, there is nothing that matches your search."
231msgid "Sorry, there is nothing that matches your search."
223msgstr "Извините, поиск не дал результатов."
232msgstr "Извините, поиск не дал результатов."
@@ -226,7 +235,7 @@ msgstr "Извините, поиск не дал результатов."
226msgid "All"
235msgid "All"
227msgstr ""
236msgstr ""
228
237
229−#: Shell.qml:438
238+#: Shell.qml:441
230#, qt-format
239#, qt-format
231msgid "Please enter %1"
240msgid "Please enter %1"
232msgstr "Пожалуйста, введите %1"
241msgstr "Пожалуйста, введите %1"
po/shn.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Shan <shn@li.org>\n"
13"Language-Team: Shan <shn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
17"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/si.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/sl.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-02 10:55+0000\n"
11"PO-Revision-Date: 2013-10-02 10:55+0000\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
18"n%100==4 ? 3 : 0);\n"
18"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Wikipedija"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Preskoči uvod"
92msgstr "Preskoči uvod"
93
93
@@ -137,7 +137,7 @@ msgstr ""
137"Sedaj ste osvojili poteze robov ter lahko začnete uporabljati "
137"Sedaj ste osvojili poteze robov ter lahko začnete uporabljati "
138"telefon<br><br>Tapnite kjerkoli na začetek"
138"telefon<br><br>Tapnite kjerkoli na začetek"
139
139
140−#: Components/PageHeader.qml:341
140+#: Components/PageHeader.qml:345
141msgid "Recent searches"
141msgid "Recent searches"
142msgstr "Nedavna iskanja"
142msgstr "Nedavna iskanja"
143
143
@@ -159,7 +159,7 @@ msgstr[1] "%1 ocena"
159msgstr[2] "%1 oceni"
159msgstr[2] "%1 oceni"
160msgstr[3] "%1 ocene"
160msgstr[3] "%1 ocene"
161
161
162−#: Dash/Apps/AppPreview.qml:126
162+#: Dash/Apps/AppPreview.qml:135
163msgid "Rate this"
163msgid "Rate this"
164msgstr "Ocenite"
164msgstr "Ocenite"
165
165
@@ -179,7 +179,7 @@ msgstr "Pošlji"
179msgid "Comments:"
179msgid "Comments:"
180msgstr "Opombe:"
180msgstr "Opombe:"
181
181
182−#: Greeter/Lockscreen.qml:142
182+#: Greeter/Lockscreen.qml:146
183msgid "Emergency Call"
183msgid "Emergency Call"
184msgstr "Klic v sili"
184msgstr "Klic v sili"
185
185
@@ -220,6 +220,15 @@ msgstr ""
220msgid "Search"
220msgid "Search"
221msgstr "Iskanje"
221msgstr "Iskanje"
222
222
223+#: plugins/Unity/Launcher/launcheritem.cpp:43
224+#: plugins/Unity/Launcher/launcheritem.cpp:73
225+msgid "Lock to Launcher"
226+msgstr ""
227+
228+#: plugins/Unity/Launcher/launcheritem.cpp:73
229+msgid "Unlock from Launcher"
230+msgstr ""
231+
223#: plugins/Unity/scope.cpp:408
232#: plugins/Unity/scope.cpp:408
224msgid "Sorry, there is nothing that matches your search."
233msgid "Sorry, there is nothing that matches your search."
225msgstr "Nič se ne ujema z vašim iskalnim nizom."
234msgstr "Nič se ne ujema z vašim iskalnim nizom."
@@ -228,7 +237,7 @@ msgstr "Nič se ne ujema z vašim iskalnim nizom."
228msgid "All"
237msgid "All"
229msgstr "Vse"
238msgstr "Vse"
230
239
231−#: Shell.qml:438
240+#: Shell.qml:441
232#, qt-format
241#, qt-format
233msgid "Please enter %1"
242msgid "Please enter %1"
234msgstr "Vnesite %1"
243msgstr "Vnesite %1"
po/sr.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Serbian <sr@li.org>\n"
13"Language-Team: Serbian <sr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr ""
87msgid "YouTube"
87msgid "YouTube"
88msgstr ""
88msgstr ""
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr ""
92msgstr ""
93
93
@@ -133,7 +133,7 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:341
136+#: Components/PageHeader.qml:345
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Скорашње претраге"
138msgstr "Скорашње претраге"
139
139
@@ -153,7 +153,7 @@ msgid_plural "%1 reviews"
153msgstr[0] ""
153msgstr[0] ""
154msgstr[1] ""
154msgstr[1] ""
155
155
156−#: Dash/Apps/AppPreview.qml:126
156+#: Dash/Apps/AppPreview.qml:135
157msgid "Rate this"
157msgid "Rate this"
158msgstr ""
158msgstr ""
159
159
@@ -173,7 +173,7 @@ msgstr ""
173msgid "Comments:"
173msgid "Comments:"
174msgstr ""
174msgstr ""
175
175
176−#: Greeter/Lockscreen.qml:142
176+#: Greeter/Lockscreen.qml:146
177msgid "Emergency Call"
177msgid "Emergency Call"
178msgstr ""
178msgstr ""
179
179
@@ -214,6 +214,15 @@ msgstr ""
214msgid "Search"
214msgid "Search"
215msgstr "Претрага"
215msgstr "Претрага"
216
216
217+#: plugins/Unity/Launcher/launcheritem.cpp:43
218+#: plugins/Unity/Launcher/launcheritem.cpp:73
219+msgid "Lock to Launcher"
220+msgstr ""
221+
222+#: plugins/Unity/Launcher/launcheritem.cpp:73
223+msgid "Unlock from Launcher"
224+msgstr ""
225+
217#: plugins/Unity/scope.cpp:408
226#: plugins/Unity/scope.cpp:408
218msgid "Sorry, there is nothing that matches your search."
227msgid "Sorry, there is nothing that matches your search."
219msgstr "Нажалост, претрага није наишла на икакво подударање."
228msgstr "Нажалост, претрага није наишла на икакво подударање."
@@ -222,7 +231,7 @@ msgstr "Нажалост, претрага није наишла на икакв
222msgid "All"
231msgid "All"
223msgstr ""
232msgstr ""
224
233
225−#: Shell.qml:438
234+#: Shell.qml:441
226#, qt-format
235#, qt-format
227msgid "Please enter %1"
236msgid "Please enter %1"
228msgstr ""
237msgstr ""
po/sv.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Swedish <sv@li.org>\n"
13"Language-Team: Swedish <sv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/ta.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
12"Last-Translator: Thangamani Arun - தங்கமணி அருண் <thangam.arunx@gmail.com>\n"
12"Last-Translator: Thangamani Arun - தங்கமணி அருண் <thangam.arunx@gmail.com>\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20"Language: ta\n"
20"Language: ta\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
@@ -87,7 +87,7 @@ msgstr "விக்கிப்பீடியா"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "யூட்யுப்"
88msgstr "யூட்யுப்"
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "அறிமுகத்தை தவிர்"
92msgstr "அறிமுகத்தை தவிர்"
93
93
@@ -138,7 +138,7 @@ msgstr ""
138"பயன்படுத்த தொடங்கவும் <br> <br>தட்டுவதன் மூலம் எங்க வேண்டுமானாலும் "
138"பயன்படுத்த தொடங்கவும் <br> <br>தட்டுவதன் மூலம் எங்க வேண்டுமானாலும் "
139"தொடங்கலாம்."
139"தொடங்கலாம்."
140
140
141−#: Components/PageHeader.qml:341
141+#: Components/PageHeader.qml:345
142msgid "Recent searches"
142msgid "Recent searches"
143msgstr "கடையாக தேடப்பட்டவைகள்"
143msgstr "கடையாக தேடப்பட்டவைகள்"
144
144
@@ -158,7 +158,7 @@ msgid_plural "%1 reviews"
158msgstr[0] "%1 பரிசீலனை"
158msgstr[0] "%1 பரிசீலனை"
159msgstr[1] "%1 பரிசீலனைகள்"
159msgstr[1] "%1 பரிசீலனைகள்"
160
160
161−#: Dash/Apps/AppPreview.qml:126
161+#: Dash/Apps/AppPreview.qml:135
162msgid "Rate this"
162msgid "Rate this"
163msgstr "இதை மதிப்பிடு"
163msgstr "இதை மதிப்பிடு"
164
164
@@ -178,7 +178,7 @@ msgstr "அனுப்பு"
178msgid "Comments:"
178msgid "Comments:"
179msgstr "கருத்துகள்:"
179msgstr "கருத்துகள்:"
180
180
181−#: Greeter/Lockscreen.qml:142
181+#: Greeter/Lockscreen.qml:146
182msgid "Emergency Call"
182msgid "Emergency Call"
183msgstr "அவசர அழைப்பு"
183msgstr "அவசர அழைப்பு"
184
184
@@ -219,6 +219,15 @@ msgstr ""
219msgid "Search"
219msgid "Search"
220msgstr "தெடு"
220msgstr "தெடு"
221
221
222+#: plugins/Unity/Launcher/launcheritem.cpp:43
223+#: plugins/Unity/Launcher/launcheritem.cpp:73
224+msgid "Lock to Launcher"
225+msgstr ""
226+
227+#: plugins/Unity/Launcher/launcheritem.cpp:73
228+msgid "Unlock from Launcher"
229+msgstr ""
230+
222#: plugins/Unity/scope.cpp:408
231#: plugins/Unity/scope.cpp:408
223msgid "Sorry, there is nothing that matches your search."
232msgid "Sorry, there is nothing that matches your search."
224msgstr "மன்னிக்கவும், உங்களுடைய தேடலுக்கு தகுந்த பொருத்தம் கிடைக்கவில்லை."
233msgstr "மன்னிக்கவும், உங்களுடைய தேடலுக்கு தகுந்த பொருத்தம் கிடைக்கவில்லை."
@@ -227,7 +236,7 @@ msgstr "மன்னிக்கவும், உங்களுடைய தே
227msgid "All"
236msgid "All"
228msgstr "அனைத்தும்"
237msgstr "அனைத்தும்"
229
238
230−#: Shell.qml:438
239+#: Shell.qml:441
231#, qt-format
240#, qt-format
232msgid "Please enter %1"
241msgid "Please enter %1"
233msgstr "தயவுச்செய்து %1 உள்ளிடு"
242msgstr "தயவுச்செய்து %1 உள்ளிடு"
po/te.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Telugu <te@li.org>\n"
13"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/tr.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-01 13:21+0000\n"
11"PO-Revision-Date: 2013-10-01 13:21+0000\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
13"Language-Team: Turkish <tr@li.org>\n"
13"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "Vikipedi"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr "İntro'yu geç"
91msgstr "İntro'yu geç"
92
92
@@ -133,7 +133,7 @@ msgid ""
133"phone<br><br>Tap anywhere to start"
133"phone<br><br>Tap anywhere to start"
134msgstr ""
134msgstr ""
135
135
136−#: Components/PageHeader.qml:341
136+#: Components/PageHeader.qml:345
137msgid "Recent searches"
137msgid "Recent searches"
138msgstr "Son Arananlar"
138msgstr "Son Arananlar"
139
139
@@ -153,7 +153,7 @@ msgid_plural "%1 reviews"
153msgstr[0] "%1 inceleme"
153msgstr[0] "%1 inceleme"
154msgstr[1] "%1 inceleme"
154msgstr[1] "%1 inceleme"
155
155
156−#: Dash/Apps/AppPreview.qml:126
156+#: Dash/Apps/AppPreview.qml:135
157msgid "Rate this"
157msgid "Rate this"
158msgstr "Oyla"
158msgstr "Oyla"
159
159
@@ -173,7 +173,7 @@ msgstr "Gönder"
173msgid "Comments:"
173msgid "Comments:"
174msgstr "Yorumlar:"
174msgstr "Yorumlar:"
175
175
176−#: Greeter/Lockscreen.qml:142
176+#: Greeter/Lockscreen.qml:146
177msgid "Emergency Call"
177msgid "Emergency Call"
178msgstr "Acil Arama"
178msgstr "Acil Arama"
179
179
@@ -214,6 +214,15 @@ msgstr ""
214msgid "Search"
214msgid "Search"
215msgstr "Ara"
215msgstr "Ara"
216
216
217+#: plugins/Unity/Launcher/launcheritem.cpp:43
218+#: plugins/Unity/Launcher/launcheritem.cpp:73
219+msgid "Lock to Launcher"
220+msgstr ""
221+
222+#: plugins/Unity/Launcher/launcheritem.cpp:73
223+msgid "Unlock from Launcher"
224+msgstr ""
225+
217#: plugins/Unity/scope.cpp:408
226#: plugins/Unity/scope.cpp:408
218msgid "Sorry, there is nothing that matches your search."
227msgid "Sorry, there is nothing that matches your search."
219msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
228msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
@@ -222,7 +231,7 @@ msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
222msgid "All"
231msgid "All"
223msgstr ""
232msgstr ""
224
233
225−#: Shell.qml:438
234+#: Shell.qml:441
226#, qt-format
235#, qt-format
227msgid "Please enter %1"
236msgid "Please enter %1"
228msgstr "Lütfen %1 girin"
237msgstr "Lütfen %1 girin"
po/ug.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-09 22:38+0000\n"
11"PO-Revision-Date: 2013-10-09 22:38+0000\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
13"Language-Team: Uyghur <ug@li.org>\n"
13"Language-Team: Uyghur <ug@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "ۋىكىپېدىيە"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "يېقىنقى ئىزدەشلەر"
137msgstr "يېقىنقى ئىزدەشلەر"
138
138
@@ -151,7 +151,7 @@ msgid "%1 review"
151msgid_plural "%1 reviews"
151msgid_plural "%1 reviews"
152msgstr[0] "%1 باھا"
152msgstr[0] "%1 باھا"
153
153
154−#: Dash/Apps/AppPreview.qml:126
154+#: Dash/Apps/AppPreview.qml:135
155msgid "Rate this"
155msgid "Rate this"
156msgstr ""
156msgstr ""
157
157
@@ -171,7 +171,7 @@ msgstr "ئەۋەت"
171msgid "Comments:"
171msgid "Comments:"
172msgstr "ئىنكاس:"
172msgstr "ئىنكاس:"
173
173
174−#: Greeter/Lockscreen.qml:142
174+#: Greeter/Lockscreen.qml:146
175msgid "Emergency Call"
175msgid "Emergency Call"
176msgstr ""
176msgstr ""
177
177
@@ -212,6 +212,15 @@ msgstr ""
212msgid "Search"
212msgid "Search"
213msgstr "ئىزدە"
213msgstr "ئىزدە"
214
214
215+#: plugins/Unity/Launcher/launcheritem.cpp:43
216+#: plugins/Unity/Launcher/launcheritem.cpp:73
217+msgid "Lock to Launcher"
218+msgstr ""
219+
220+#: plugins/Unity/Launcher/launcheritem.cpp:73
221+msgid "Unlock from Launcher"
222+msgstr ""
223+
215#: plugins/Unity/scope.cpp:408
224#: plugins/Unity/scope.cpp:408
216msgid "Sorry, there is nothing that matches your search."
225msgid "Sorry, there is nothing that matches your search."
217msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپىلمىدى."
226msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپىلمىدى."
@@ -220,7 +229,7 @@ msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپ
220msgid "All"
229msgid "All"
221msgstr "ھەممىسى"
230msgstr "ھەممىسى"
222
231
223−#: Shell.qml:438
232+#: Shell.qml:441
224#, qt-format
233#, qt-format
225msgid "Please enter %1"
234msgid "Please enter %1"
226msgstr "%1 نى كىرگۈزۈڭ"
235msgstr "%1 نى كىرگۈزۈڭ"
po/uk.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-19 16:44+0000\n"
11"PO-Revision-Date: 2013-10-19 16:44+0000\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
19+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
20−"X-Generator: Launchpad (build 16820)\n"
20+"X-Generator: Launchpad (build 16831)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
@@ -87,7 +87,7 @@ msgstr "Вікіпедія"
87msgid "YouTube"
87msgid "YouTube"
88msgstr "YouTube"
88msgstr "YouTube"
89
89
90−#: Components/EdgeDemoOverlay.qml:149
90+#: Components/EdgeDemoOverlay.qml:151
91msgid "Skip intro"
91msgid "Skip intro"
92msgstr "Пропустити вступ"
92msgstr "Пропустити вступ"
93
93
@@ -138,7 +138,7 @@ msgstr ""
138"Тепер жести налаштовано, ви можете почати користуватися "
138"Тепер жести налаштовано, ви можете почати користуватися "
139"телефоном.<br><br>Натисніть у довільному місці екрана."
139"телефоном.<br><br>Натисніть у довільному місці екрана."
140
140
141−#: Components/PageHeader.qml:341
141+#: Components/PageHeader.qml:345
142msgid "Recent searches"
142msgid "Recent searches"
143msgstr "Нещодавні пошуки"
143msgstr "Нещодавні пошуки"
144
144
@@ -159,7 +159,7 @@ msgstr[0] "%1 рецензія"
159msgstr[1] "%1 рецензії"
159msgstr[1] "%1 рецензії"
160msgstr[2] "%1 рецензій"
160msgstr[2] "%1 рецензій"
161
161
162−#: Dash/Apps/AppPreview.qml:126
162+#: Dash/Apps/AppPreview.qml:135
163msgid "Rate this"
163msgid "Rate this"
164msgstr "Оцінити"
164msgstr "Оцінити"
165
165
@@ -179,7 +179,7 @@ msgstr "Надіслати"
179msgid "Comments:"
179msgid "Comments:"
180msgstr "Коментарі:"
180msgstr "Коментарі:"
181
181
182−#: Greeter/Lockscreen.qml:142
182+#: Greeter/Lockscreen.qml:146
183msgid "Emergency Call"
183msgid "Emergency Call"
184msgstr "Терміновий виклик"
184msgstr "Терміновий виклик"
185
185
@@ -220,6 +220,15 @@ msgstr ""
220msgid "Search"
220msgid "Search"
221msgstr "Пошук"
221msgstr "Пошук"
222
222
223+#: plugins/Unity/Launcher/launcheritem.cpp:43
224+#: plugins/Unity/Launcher/launcheritem.cpp:73
225+msgid "Lock to Launcher"
226+msgstr ""
227+
228+#: plugins/Unity/Launcher/launcheritem.cpp:73
229+msgid "Unlock from Launcher"
230+msgstr ""
231+
223#: plugins/Unity/scope.cpp:408
232#: plugins/Unity/scope.cpp:408
224msgid "Sorry, there is nothing that matches your search."
233msgid "Sorry, there is nothing that matches your search."
225msgstr "Вибачте, для вказаних вами ключових слів нічого не знайдено."
234msgstr "Вибачте, для вказаних вами ключових слів нічого не знайдено."
@@ -228,7 +237,7 @@ msgstr "Вибачте, для вказаних вами ключових слі
228msgid "All"
237msgid "All"
229msgstr "Усе"
238msgstr "Усе"
230
239
231−#: Shell.qml:438
240+#: Shell.qml:441
232#, qt-format
241#, qt-format
233msgid "Please enter %1"
242msgid "Please enter %1"
234msgstr "Будь ласка, введіть %1"
243msgstr "Будь ласка, введіть %1"
po/unity8.pot+15−6
@@ -8,7 +8,7 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: \n"
10"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
11+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/xh.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr ""
137msgstr ""
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr ""
214msgstr ""
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr ""
227msgstr ""
@@ -221,7 +230,7 @@ msgstr ""
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/zh_CN.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-10-09 13:51+0000\n"
11"PO-Revision-Date: 2013-10-09 13:51+0000\n"
12"Last-Translator: Aron Xu <Unknown>\n"
12"Last-Translator: Aron Xu <Unknown>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr "维基百科"
86msgid "YouTube"
86msgid "YouTube"
87msgstr "YouTube"
87msgstr "YouTube"
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "近期搜索"
137msgstr "近期搜索"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "搜索"
214msgstr "搜索"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "对不起,没有找到您想要的结果。"
227msgstr "对不起,没有找到您想要的结果。"
@@ -221,7 +230,7 @@ msgstr "对不起,没有找到您想要的结果。"
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
po/zh_TW.po+17−8
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-11-05 17:53+0100\n"
10+"POT-Creation-Date: 2013-11-12 16:10+0100\n"
11"PO-Revision-Date: 2013-06-27 10:24+0000\n"
11"PO-Revision-Date: 2013-06-27 10:24+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-11-08 06:38+0000\n"
18+"X-Launchpad-Export-Date: 2013-11-19 05:59+0000\n"
19−"X-Generator: Launchpad (build 16820)\n"
19+"X-Generator: Launchpad (build 16831)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
@@ -86,7 +86,7 @@ msgstr ""
86msgid "YouTube"
86msgid "YouTube"
87msgstr ""
87msgstr ""
88
88
89−#: Components/EdgeDemoOverlay.qml:149
89+#: Components/EdgeDemoOverlay.qml:151
90msgid "Skip intro"
90msgid "Skip intro"
91msgstr ""
91msgstr ""
92
92
@@ -132,7 +132,7 @@ msgid ""
132"phone<br><br>Tap anywhere to start"
132"phone<br><br>Tap anywhere to start"
133msgstr ""
133msgstr ""
134
134
135−#: Components/PageHeader.qml:341
135+#: Components/PageHeader.qml:345
136msgid "Recent searches"
136msgid "Recent searches"
137msgstr "最近搜尋"
137msgstr "最近搜尋"
138
138
@@ -152,7 +152,7 @@ msgid_plural "%1 reviews"
152msgstr[0] ""
152msgstr[0] ""
153msgstr[1] ""
153msgstr[1] ""
154
154
155−#: Dash/Apps/AppPreview.qml:126
155+#: Dash/Apps/AppPreview.qml:135
156msgid "Rate this"
156msgid "Rate this"
157msgstr ""
157msgstr ""
158
158
@@ -172,7 +172,7 @@ msgstr ""
172msgid "Comments:"
172msgid "Comments:"
173msgstr ""
173msgstr ""
174
174
175−#: Greeter/Lockscreen.qml:142
175+#: Greeter/Lockscreen.qml:146
176msgid "Emergency Call"
176msgid "Emergency Call"
177msgstr ""
177msgstr ""
178
178
@@ -213,6 +213,15 @@ msgstr ""
213msgid "Search"
213msgid "Search"
214msgstr "搜尋"
214msgstr "搜尋"
215
215
216+#: plugins/Unity/Launcher/launcheritem.cpp:43
217+#: plugins/Unity/Launcher/launcheritem.cpp:73
218+msgid "Lock to Launcher"
219+msgstr ""
220+
221+#: plugins/Unity/Launcher/launcheritem.cpp:73
222+msgid "Unlock from Launcher"
223+msgstr ""
224+
216#: plugins/Unity/scope.cpp:408
225#: plugins/Unity/scope.cpp:408
217msgid "Sorry, there is nothing that matches your search."
226msgid "Sorry, there is nothing that matches your search."
218msgstr "很抱歉,找不到符合您想搜尋的結果。"
227msgstr "很抱歉,找不到符合您想搜尋的結果。"
@@ -221,7 +230,7 @@ msgstr "很抱歉,找不到符合您想搜尋的結果。"
221msgid "All"
230msgid "All"
222msgstr ""
231msgstr ""
223
232
224−#: Shell.qml:438
233+#: Shell.qml:441
225#, qt-format
234#, qt-format
226msgid "Please enter %1"
235msgid "Please enter %1"
227msgstr ""
236msgstr ""
tests/autopilot/unity8/process_helpers.py+65−38
@@ -21,18 +21,25 @@ from autopilot.introspection import (
21 get_proxy_object_for_existing_process,
21 get_proxy_object_for_existing_process,
22 ProcessSearchError,
22 ProcessSearchError,
23)
23)
24+import logging
24import subprocess
25import subprocess
25from unity8.shell.emulators import UnityEmulatorBase
26from unity8.shell.emulators import UnityEmulatorBase
26from unity8.shell.emulators.main_window import MainWindow
27from unity8.shell.emulators.main_window import MainWindow
27
28
29+logger = logging.getLogger(__name__)
30+
28
31
29class CannotAccessUnity(Exception):
32class CannotAccessUnity(Exception):
30 pass
33 pass
31
34
32
35
33−def unlock_unity():
36+def unlock_unity(unity_proxy_obj=None):
34 """Helper function that attempts to unlock the unity greeter.
37 """Helper function that attempts to unlock the unity greeter.
35
38
39+ If unity_proxy_object is None create a proxy object by querying for the
40+ running unity process.
41+ Otherwise re-use the passed proxy object.
42+
36 :raises RuntimeError: if the greeter attempts and fails to be unlocked.
43 :raises RuntimeError: if the greeter attempts and fails to be unlocked.
37
44
38 :raises RuntimeWarning: when the greeter cannot be found because it is
45 :raises RuntimeWarning: when the greeter cannot be found because it is
@@ -43,30 +50,42 @@ def unlock_unity():
43 upstart job cannot be found at all.
50 upstart job cannot be found at all.
44
51
45 """
52 """
46− pid = _get_unity_pid()
47− try:
48− unity = get_proxy_object_for_existing_process(
49− pid=pid,
50− emulator_base=UnityEmulatorBase,
51− )
52− main_window = MainWindow(unity)
53−
54− greeter = main_window.get_greeter()
55− if greeter is None:
53+ if unity_proxy_obj is None:
56− raise RuntimeWarning("Greeter appears to be already unlocked.")
54+ try:
57− greeter.swipe()
55+ pid = _get_unity_pid()
56+ unity = _get_unity_proxy_object(pid)
57+ main_window = MainWindow(unity)
58− except ProcessSearchError as e:
58+ except ProcessSearchError as e:
59− raise CannotAccessUnity(
59+ raise CannotAccessUnity(
60− "Cannot introspect unity, make sure that it has been started "
60+ "Cannot introspect unity, make sure that it has been started "
61− "with testability. Perhaps use the function "
61+ "with testability. Perhaps use the function "
62− "'restart_unity_with_testability' this module provides."
62+ "'restart_unity_with_testability' this module provides."
63− "(%s)"
63+ "(%s)"
64− % str(e)
64+ % str(e)
65− )
65+ )
66+ else:
67+ main_window = MainWindow(unity_proxy_obj)
68+
69+ greeter = main_window.get_greeter()
70+ if greeter.created == False:
71+ raise RuntimeWarning("Greeter appears to be already unlocked.")
72+ greeter.swipe()
73+
74+
75+def restart_unity_with_testability(*args):
76+ """Restarts (or starts) unity with testability enabled.
77+
78+ Passes *args arguments to the launched process.
79+
80+ """
81+ args += ("QT_LOAD_TESTABILITY=1",)
82+ return restart_unity(*args)
83+
66
84
85+def restart_unity(*args):
86+ """Restarts (or starts) unity8 using the provided arguments.
67
87
68−def restart_unity_with_testability():
88+ Passes *args arguments to the launched process.
69− """Restarts (or just starts) unity8 with the testability driver loaded
70
89
71 :raises subprocess.CalledProcessError: if unable to stop or start the
90 :raises subprocess.CalledProcessError: if unable to stop or start the
72 unity8 upstart job.
91 unity8 upstart job.
@@ -75,27 +94,28 @@ def restart_unity_with_testability():
75 status = _get_unity_status()
94 status = _get_unity_status()
76 if "start/" in status:
95 if "start/" in status:
77 try:
96 try:
78− print("Stopping unity.")
97+ output = subprocess.check_output(['initctl', 'stop', 'unity8'])
79− subprocess.check_call([
98+ logger.info(output)
80− 'initctl',
81− 'stop',
82− 'unity8',
83− ])
84 except subprocess.CalledProcessError as e:
99 except subprocess.CalledProcessError as e:
100+ e.args += (
85− e.args += ("Failed to stop running instance of unity8", )
101+ "Failed to stop running instance of unity8: %s" % e.output,
102+ )
86 raise
103 raise
87
104
88 try:
105 try:
89− print("Starting unity with testability.")
106+ command = ['initctl', 'start', 'unity8'] + list(args)
90− subprocess.check_call([
107+ output = subprocess.check_output(
91− 'initctl',
108+ command,
92− 'start',
109+ stderr=subprocess.STDOUT,
93− 'unity8',
110+ universal_newlines=True,
94− 'QT_LOAD_TESTABILITY=1',
111+ )
95− ])
112+ logger.info(output)
113+ pid = _get_unity_pid()
96 except subprocess.CalledProcessError as e:
114 except subprocess.CalledProcessError as e:
97− e.args += ("Failed to start unity8 with testability ", )
115+ e.args += ("Failed to start unity8: %s" % e.output,)
98 raise
116 raise
117+ else:
118+ return _get_unity_proxy_object(pid)
99
119
100
120
101def _get_unity_status():
121def _get_unity_status():
@@ -114,3 +134,10 @@ def _get_unity_pid():
114 if not "start/" in status:
134 if not "start/" in status:
115 raise CannotAccessUnity("Unity is not in the running state.")
135 raise CannotAccessUnity("Unity is not in the running state.")
116 return int(status.split()[-1])
136 return int(status.split()[-1])
137+
138+
139+def _get_unity_proxy_object(pid):
140+ return get_proxy_object_for_existing_process(
141+ pid=pid,
142+ emulator_base=UnityEmulatorBase,
143+ )
tests/autopilot/unity8/shell/emulators/main_window.py−6
@@ -67,12 +67,6 @@ class MainWindow(object):
67 def get_dash(self):
67 def get_dash(self):
68 return self.app.select_single(Dash)
68 return self.app.select_single(Dash)
69
69
70− def get_dash_home_applications_grid(self):
71− return self.app.select_single(
72− "ApplicationsFilterGrid",
73− objectName="dashHomeApplicationsGrid"
74− )
75−
76 def get_bottombar(self):
70 def get_bottombar(self):
77 return self.app.select_single("Bottombar")
71 return self.app.select_single("Bottombar")
78
72
tests/autopilot/unity8/shell/tests/__init__.py+8−21
@@ -28,7 +28,6 @@ from autopilot.platform import model
28from autopilot.testcase import AutopilotTestCase
28from autopilot.testcase import AutopilotTestCase
29from autopilot.matchers import Eventually
29from autopilot.matchers import Eventually
30from autopilot.input import Touch
30from autopilot.input import Touch
31−from autopilot.introspection import get_proxy_object_for_existing_process
32from autopilot.display import Display
31from autopilot.display import Display
33import logging
32import logging
34import os.path
33import os.path
@@ -43,7 +42,7 @@ from unity8 import (
43 get_default_extra_mock_libraries,
42 get_default_extra_mock_libraries,
44 get_data_dirs
43 get_data_dirs
45)
44)
46−from unity8.shell.emulators import UnityEmulatorBase
45+from unity8.process_helpers import restart_unity_with_testability
47from unity8.shell.emulators.dash import Dash
46from unity8.shell.emulators.dash import Dash
48from unity8.shell.emulators.main_window import MainWindow
47from unity8.shell.emulators.main_window import MainWindow
49
48
@@ -105,7 +104,7 @@ class UnityTestCase(AutopilotTestCase):
105 ),
104 ),
106 "upstart")
105 "upstart")
107 )
106 )
108− )
107+ )
109 sys.exit(1)
108 sys.exit(1)
110
109
111 if "start/" in output:
110 if "start/" in output:
@@ -303,32 +302,20 @@ class UnityTestCase(AutopilotTestCase):
303
302
304 binary_arg = "BINARY=%s" % binary_path
303 binary_arg = "BINARY=%s" % binary_path
305 extra_args = "ARGS=%s" % " ".join(args)
304 extra_args = "ARGS=%s" % " ".join(args)
306−
307− output = subprocess.check_output(
308− [
309− "/sbin/initctl",
310− "start",
311− "unity8",
312− binary_arg,
313− extra_args,
314− ] + ["%s=%s" % (k, v) for k, v in self._environment.iteritems()],
305+ env_args = ["%s=%s" % (k, v) for k, v in self._environment.iteritems()]
315− stderr=subprocess.STDOUT,
306+ all_args = [binary_arg, extra_args] + env_args
316− )
317
307
318 self.addCleanup(self._cleanup_launching_upstart_unity)
308 self.addCleanup(self._cleanup_launching_upstart_unity)
319
309
320− pid = int(output.split()[-1])
310+ return restart_unity_with_testability(*all_args)
321−
322− return get_proxy_object_for_existing_process(
323− pid=pid,
324− emulator_base=UnityEmulatorBase,
325− )
326
311
327 def _cleanup_launching_upstart_unity(self):
312 def _cleanup_launching_upstart_unity(self):
328 logger.info("Stopping unity")
313 logger.info("Stopping unity")
329 try:
314 try:
330 subprocess.check_output(
315 subprocess.check_output(
316+ ["/sbin/initctl", "stop", "unity8"],
331− ["/sbin/initctl", "stop", "unity8"], stderr=subprocess.STDOUT)
317+ stderr=subprocess.STDOUT
318+ )
332 except subprocess.CalledProcessError:
319 except subprocess.CalledProcessError:
333 logger.warning("Appears unity was already stopped!")
320 logger.warning("Appears unity was already stopped!")
334
321
tests/autopilot/unity8/shell/tests/test_hud.py+11−10
@@ -19,6 +19,7 @@
19
19
20from __future__ import absolute_import
20from __future__ import absolute_import
21
21
22+from unity8.process_helpers import unlock_unity
22from unity8.shell import with_lightdm_mock, DragMixin
23from unity8.shell import with_lightdm_mock, DragMixin
23from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
24from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
24
25
@@ -38,8 +39,8 @@ class TestHud(UnityTestCase, DragMixin):
38 The button must disappear when touching somewhere on the screen except the button itself.
39 The button must disappear when touching somewhere on the screen except the button itself.
39
40
40 """
41 """
41− self.launch_unity()
42+ unity_proxy = self.launch_unity()
42− self.main_window.get_greeter().swipe()
43+ unlock_unity(unity_proxy)
43 window = self.main_window.get_qml_view()
44 window = self.main_window.get_qml_view()
44 hud_show_button = self.main_window.get_hud_show_button()
45 hud_show_button = self.main_window.get_hud_show_button()
45 edge_drag_area = self.main_window.get_hud_edge_drag_area()
46 edge_drag_area = self.main_window.get_hud_edge_drag_area()
@@ -80,8 +81,8 @@ class TestHud(UnityTestCase, DragMixin):
80 Test that the hud button stays on screen and tapping it opens the hud.
81 Test that the hud button stays on screen and tapping it opens the hud.
81
82
82 """
83 """
83− self.launch_unity()
84+ unity_proxy = self.launch_unity()
84− self.main_window.get_greeter().swipe()
85+ unlock_unity(unity_proxy)
85 window = self.main_window.get_qml_view()
86 window = self.main_window.get_qml_view()
86 hud_show_button = self.main_window.get_hud_show_button()
87 hud_show_button = self.main_window.get_hud_show_button()
87 hud = self.main_window.get_hud()
88 hud = self.main_window.get_hud()
@@ -117,8 +118,8 @@ class TestHud(UnityTestCase, DragMixin):
117
118
118 def test_hide_hud_click(self):
119 def test_hide_hud_click(self):
119 """Tapping the close button of the Hud must dismiss it."""
120 """Tapping the close button of the Hud must dismiss it."""
120− self.launch_unity()
121+ unity_proxy = self.launch_unity()
121− self.main_window.get_greeter().swipe()
122+ unlock_unity(unity_proxy)
122 hud = self.main_window.get_hud()
123 hud = self.main_window.get_hud()
123
124
124 self._launch_test_app_from_app_screen()
125 self._launch_test_app_from_app_screen()
@@ -134,8 +135,8 @@ class TestHud(UnityTestCase, DragMixin):
134 released downward.
135 released downward.
135
136
136 """
137 """
137− self.launch_unity()
138+ unity_proxy = self.launch_unity()
138− self.main_window.get_greeter().swipe()
139+ unlock_unity(unity_proxy)
139 window = self.main_window.get_qml_view()
140 window = self.main_window.get_qml_view()
140 hud = self.main_window.get_hud()
141 hud = self.main_window.get_hud()
141
142
@@ -152,8 +153,8 @@ class TestHud(UnityTestCase, DragMixin):
152
153
153 def test_launcher_hides_hud(self):
154 def test_launcher_hides_hud(self):
154 """Opening the Launcher while the Hud is active must close the Hud."""
155 """Opening the Launcher while the Hud is active must close the Hud."""
155− self.launch_unity()
156+ unity_proxy = self.launch_unity()
156− self.main_window.get_greeter().swipe()
157+ unlock_unity(unity_proxy)
157 hud = self.main_window.get_hud()
158 hud = self.main_window.get_hud()
158 launcher = self.main_window.get_launcher()
159 launcher = self.main_window.get_launcher()
159
160
tests/autopilot/unity8/shell/tests/test_notifications.py+25−30
@@ -21,6 +21,7 @@
21
21
22from __future__ import absolute_import
22from __future__ import absolute_import
23
23
24+from unity8.process_helpers import unlock_unity
24from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
25from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
25
26
26from testtools.matchers import Equals, NotEquals
27from testtools.matchers import Equals, NotEquals
@@ -118,9 +119,8 @@ class InteractiveNotificationBase(NotificationsBase):
118
119
119 def test_interactive(self):
120 def test_interactive(self):
120 """Interactive notification must react upon click on itself."""
121 """Interactive notification must react upon click on itself."""
121− self.launch_unity()
122+ unity_proxy = self.launch_unity()
122− greeter = self.main_window.get_greeter()
123+ unlock_unity(unity_proxy)
123− greeter.swipe()
124
124
125 notify_list = self._get_notifications_list()
125 notify_list = self._get_notifications_list()
126
126
@@ -158,9 +158,8 @@ class InteractiveNotificationBase(NotificationsBase):
158 def test_sd_incoming_call(self):
158 def test_sd_incoming_call(self):
159 """Rejecting a call should make notification expand and
159 """Rejecting a call should make notification expand and
160 offer more options."""
160 offer more options."""
161− self.launch_unity()
161+ unity_proxy = self.launch_unity()
162− greeter = self.main_window.get_greeter()
162+ unlock_unity(unity_proxy)
163− greeter.swipe()
164
163
165 notify_list = self._get_notifications_list()
164 notify_list = self._get_notifications_list()
166
165
@@ -336,9 +335,8 @@ class EphemeralNotificationsTests(NotificationsBase):
336
335
337 def test_icon_summary_body(self):
336 def test_icon_summary_body(self):
338 """Notification must display the expected summary and body text."""
337 """Notification must display the expected summary and body text."""
339− self.launch_unity()
338+ unity_proxy = self.launch_unity()
340− greeter = self.main_window.get_greeter()
339+ unlock_unity(unity_proxy)
341− greeter.swipe()
342
340
343 notify_list = self._get_notifications_list()
341 notify_list = self._get_notifications_list()
344
342
@@ -377,9 +375,8 @@ class EphemeralNotificationsTests(NotificationsBase):
377 def test_icon_summary(self):
375 def test_icon_summary(self):
378 """Notification must display the expected summary and secondary
376 """Notification must display the expected summary and secondary
379 icon."""
377 icon."""
380− self.launch_unity()
378+ unity_proxy = self.launch_unity()
381− greeter = self.main_window.get_greeter()
379+ unlock_unity(unity_proxy)
382− greeter.swipe()
383
380
384 notify_list = self._get_notifications_list()
381 notify_list = self._get_notifications_list()
385
382
@@ -416,9 +413,8 @@ class EphemeralNotificationsTests(NotificationsBase):
416 def test_urgency_order(self):
413 def test_urgency_order(self):
417 """Notifications must be displayed in order according to their
414 """Notifications must be displayed in order according to their
418 urgency."""
415 urgency."""
419− self.launch_unity()
416+ unity_proxy = self.launch_unity()
420− greeter = self.main_window.get_greeter()
417+ unlock_unity(unity_proxy)
421− greeter.swipe()
422
418
423 notify_list = self._get_notifications_list()
419 notify_list = self._get_notifications_list()
424
420
@@ -504,9 +500,8 @@ class EphemeralNotificationsTests(NotificationsBase):
504
500
505 def test_summary_and_body(self):
501 def test_summary_and_body(self):
506 """Notification must display the expected summary- and body-text."""
502 """Notification must display the expected summary- and body-text."""
507− self.launch_unity()
503+ unity_proxy = self.launch_unity()
508− greeter = self.main_window.get_greeter()
504+ unlock_unity(unity_proxy)
509− greeter.swipe()
510
505
511 notify_list = self._get_notifications_list()
506 notify_list = self._get_notifications_list()
512
507
@@ -518,6 +513,7 @@ class EphemeralNotificationsTests(NotificationsBase):
518
513
519 notification = notify_list.wait_select_single(
514 notification = notify_list.wait_select_single(
520 'Notification', objectName='notification1')
515 'Notification', objectName='notification1')
516+
521 self._assert_notification(
517 self._assert_notification(
522 notification,
518 notification,
523 summary,
519 summary,
@@ -529,9 +525,8 @@ class EphemeralNotificationsTests(NotificationsBase):
529
525
530 def test_summary_only(self):
526 def test_summary_only(self):
531 """Notification must display only the expected summary-text."""
527 """Notification must display only the expected summary-text."""
532− self.launch_unity()
528+ unity_proxy = self.launch_unity()
533− greeter = self.main_window.get_greeter()
529+ unlock_unity(unity_proxy)
534− greeter.swipe()
535
530
536 notify_list = self._get_notifications_list()
531 notify_list = self._get_notifications_list()
537
532
@@ -548,9 +543,8 @@ class EphemeralNotificationsTests(NotificationsBase):
548 def test_update_notification_same_layout(self):
543 def test_update_notification_same_layout(self):
549 """Notification must allow updating its contents while being
544 """Notification must allow updating its contents while being
550 displayed."""
545 displayed."""
551− self.launch_unity()
546+ unity_proxy = self.launch_unity()
552− greeter = self.main_window.get_greeter()
547+ unlock_unity(unity_proxy)
553− greeter.swipe()
554
548
555 notify_list = self._get_notifications_list()
549 notify_list = self._get_notifications_list()
556
550
@@ -587,9 +581,8 @@ class EphemeralNotificationsTests(NotificationsBase):
587 def test_update_notification_layout_change(self):
581 def test_update_notification_layout_change(self):
588 """Notification must allow updating its contents and layout while
582 """Notification must allow updating its contents and layout while
589 being displayed."""
583 being displayed."""
590− self.launch_unity()
584+ unity_proxy = self.launch_unity()
591− greeter = self.main_window.get_greeter()
585+ unlock_unity(unity_proxy)
592− greeter.swipe()
593
586
594 notify_list = self._get_notifications_list()
587 notify_list = self._get_notifications_list()
595
588
@@ -612,6 +605,7 @@ class EphemeralNotificationsTests(NotificationsBase):
612
605
613 get_notification = lambda: notify_list.wait_select_single(
606 get_notification = lambda: notify_list.wait_select_single(
614 'Notification', objectName='notification1')
607 'Notification', objectName='notification1')
608+
615 self._assert_notification(
609 self._assert_notification(
616 get_notification(),
610 get_notification(),
617 summary,
611 summary,
@@ -633,9 +627,8 @@ class EphemeralNotificationsTests(NotificationsBase):
633
627
634 def test_append_hint(self):
628 def test_append_hint(self):
635 """Notification has to accumulate body-text using append-hint."""
629 """Notification has to accumulate body-text using append-hint."""
636− self.launch_unity()
630+ unity_proxy = self.launch_unity()
637− greeter = self.main_window.get_greeter()
631+ unlock_unity(unity_proxy)
638− greeter.swipe()
639
632
640 notify_list = self._get_notifications_list()
633 notify_list = self._get_notifications_list()
641
634
@@ -654,6 +647,7 @@ class EphemeralNotificationsTests(NotificationsBase):
654
647
655 get_notification = lambda: notify_list.wait_select_single(
648 get_notification = lambda: notify_list.wait_select_single(
656 'Notification', objectName='notification1')
649 'Notification', objectName='notification1')
650+
657 notification = get_notification()
651 notification = get_notification()
658 self._assert_notification(
652 self._assert_notification(
659 notification,
653 notification,
@@ -685,6 +679,7 @@ class EphemeralNotificationsTests(NotificationsBase):
685 hints=[('x-canonical-append', 'true')]
679 hints=[('x-canonical-append', 'true')]
686 )
680 )
687 notification.show()
681 notification.show()
682+
688 get_notification = lambda: notify_list.wait_select_single(
683 get_notification = lambda: notify_list.wait_select_single(
689 'Notification',
684 'Notification',
690 objectName='notification1'
685 objectName='notification1'
tests/mocks/AccountsService/plugin.cpp+1−1
@@ -20,7 +20,7 @@
20#include "plugin.h"
20#include "plugin.h"
21#include "AccountsService.h"
21#include "AccountsService.h"
22
22
23−#include <QtQml>
23+#include <QtQml/qqml.h>
24
24
25static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
25static QObject *service_provider(QQmlEngine *engine, QJSEngine *scriptEngine)
26{
26{
tests/mocks/QMenuModel/plugin.cpp+1−1
@@ -20,7 +20,7 @@
20#include "unitymenumodel.h"
20#include "unitymenumodel.h"
21#include "actionstateparser.h"
21#include "actionstateparser.h"
22
22
23−#include <QtQml>
23+#include <QtQml/qqml.h>
24
24
25void QMenuModelPlugin::registerTypes(const char *uri)
25void QMenuModelPlugin::registerTypes(const char *uri)
26{
26{
tests/mocks/Unity/iconutils.cpp+10−10
@@ -17,11 +17,13 @@
17 * Michal Hruby <michal.hruby@canonical.com>
17 * Michal Hruby <michal.hruby@canonical.com>
18 */
18 */
19
19
20−#include <QStringList>
20+#include "iconutils.h"
21−#include <QUrl>
22
21
23#include <gio/gio.h>
22#include <gio/gio.h>
23+
24−#include "iconutils.h"
24+#include <QStringList>
25+#include <QUrl>
26+#include <QUrlQuery>
25
27
26#define BASE_THEME_ICON_URI "image://theme/"
28#define BASE_THEME_ICON_URI "image://theme/"
27#define BASE_THUMBNAILER_URI "image://thumbnailer/"
29#define BASE_THUMBNAILER_URI "image://thumbnailer/"
@@ -104,13 +106,11 @@ QString uriToThumbnailerProviderString(QString const &uri, QString const &mimety
104 if (contentHash.contains("content")) { // nested content in Home?
106 if (contentHash.contains("content")) { // nested content in Home?
105 contentHash = contentHash["content"].toHash();
107 contentHash = contentHash["content"].toHash();
106 }
108 }
107− if (contentHash.contains("album") &&
109+ if (contentHash.contains("album") && contentHash.contains("artist")) {
108− contentHash.contains("artist")) {
110+ QUrlQuery query;
109− const QString album = contentHash["album"].toString();
111+ query.addQueryItem(QStringLiteral("artist"), contentHash["artist"].toString());
110− const QString artist = contentHash["artist"].toString();
112+ query.addQueryItem(QStringLiteral("album"), contentHash["album"].toString());
111− thumbnailerUri.append(QUrl::toPercentEncoding(artist));
112− thumbnailerUri.append("/");
113+ thumbnailerUri.append(query.toString());
113− thumbnailerUri.append(QUrl::toPercentEncoding(album));
114 }
114 }
115 }
115 }
116 } else {
116 } else {
tests/plugins/ListViewWithPageHeader/CMakeLists.txt+7
@@ -1,3 +1,6 @@
1+# add_qml_test macro
2+include(QmlTest)
3+
1# There's no cmake var for v8 include path :-/
4# There's no cmake var for v8 include path :-/
2# so create one
5# so create one
3LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
6LIST(GET Qt5Core_INCLUDE_DIRS 0 QtCoreDir0)
@@ -37,6 +40,10 @@ qt5_use_modules(listviewwithpageheadertestsectionexternalmodelExec Test Core Qml
37target_link_libraries(listviewwithpageheadertestsectionexternalmodelExec ${Qt5Gui_LIBRARIES} ${Qt5Quick_LIBRARIES})
40target_link_libraries(listviewwithpageheadertestsectionexternalmodelExec ${Qt5Gui_LIBRARIES} ${Qt5Quick_LIBRARIES})
38add_custom_target(testlistviewwithpageheadersectionexternalmodel ${CMAKE_CURRENT_BINARY_DIR}/listviewwithpageheadertestsectionexternalmodelExec -o ${CMAKE_BINARY_DIR}/testlistviewwithpageheadersectionexternalmodel.xml,xunitxml -o -,txt)
41add_custom_target(testlistviewwithpageheadersectionexternalmodel ${CMAKE_CURRENT_BINARY_DIR}/listviewwithpageheadertestsectionexternalmodelExec -o ${CMAKE_BINARY_DIR}/testlistviewwithpageheadersectionexternalmodel.xml,xunitxml -o -,txt)
39
42
43+set(qmltest_DEFAULT_NO_ADD_TEST TRUE)
44+add_qml_test(. listviewwithpageheaderqml IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
45+
40add_dependencies(qmluitests testlistviewwithpageheader)
46add_dependencies(qmluitests testlistviewwithpageheader)
41add_dependencies(qmluitests testlistviewwithpageheadersection)
47add_dependencies(qmluitests testlistviewwithpageheadersection)
42add_dependencies(qmluitests testlistviewwithpageheadersectionexternalmodel)
48add_dependencies(qmluitests testlistviewwithpageheadersectionexternalmodel)
49+add_dependencies(qmluitests testlistviewwithpageheaderqml)
tests/plugins/ListViewWithPageHeader/listviewwithpageheadertest.cpp+39
@@ -1589,6 +1589,28 @@ private Q_SLOTS:
1589 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1589 QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1590 }
1590 }
1591
1591
1592+ void testMaximizeVisibleAreaTopWithHalfPageHeaderUpDown()
1593+ {
1594+ testMaximizeVisibleAreaTopWithHalfPageHeader();
1595+
1596+ changeContentY(-60);
1597+ changeContentY(15);
1598+
1599+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1600+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1601+ verifyItem(0, -140., 150., false);
1602+ verifyItem(1, 10., 200., false);
1603+ verifyItem(2, 210, 350., false);
1604+ verifyItem(3, 560, 350., true);
1605+ QCOMPARE(lvwph->m_minYExtent, 0.);
1606+ QCOMPARE(lvwph->m_clipItem->y(), 190.);
1607+ QCOMPARE(lvwph->m_clipItem->clip(), true);
1608+ QCOMPARE(lvwph->m_headerItem->y(), 140.);
1609+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1610+ QCOMPARE(lvwph->contentY(), 155.);
1611+ QCOMPARE(lvwph->m_headerItemShownHeight, 35.);
1612+ }
1613+
1592 void testMaximizeVisibleAreaBottomWithHalfPageHeader()
1614 void testMaximizeVisibleAreaBottomWithHalfPageHeader()
1593 {
1615 {
1594 changeContentY(430);
1616 changeContentY(430);
@@ -1827,6 +1849,23 @@ private Q_SLOTS:
1827 lvwph->positionAtBeginning();
1849 lvwph->positionAtBeginning();
1828 }
1850 }
1829
1851
1852+ void testHeaderPositionBug1240118()
1853+ {
1854+ scrollToBottom();
1855+ lvwph->showHeader();
1856+ QTRY_VERIFY(!lvwph->m_contentYAnimation->isRunning());
1857+ QTest::qWait(100); // Make sure stuff is stable
1858+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 100));
1859+ model->setProperty(3, "size", 10);
1860+ model->setProperty(4, "size", 10);
1861+ model->setProperty(5, "size", 10);
1862+ model->setProperty(6, "size", 10);
1863+#if (QT_VERSION > QT_VERSION_CHECK(5, 0, 3))
1864+ QTRY_COMPARE(lvwph->m_minYExtent, 210.);
1865+#endif
1866+ QTRY_COMPARE(lvwph->m_headerItem->y(), -lvwph->m_minYExtent);
1867+ }
1868+
1830private:
1869private:
1831 QQuickView *view;
1870 QQuickView *view;
1832 ListViewWithPageHeader *lvwph;
1871 ListViewWithPageHeader *lvwph;
tests/plugins/ListViewWithPageHeader/listviewwithpageheadertestsection.cpp+81−1
@@ -1734,7 +1734,25 @@ private Q_SLOTS:
1734 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 50), Q_ARG(QVariant, "Agressive"));
1734 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 50), Q_ARG(QVariant, "Agressive"));
1735 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 50), Q_ARG(QVariant, "Agressive"));
1735 QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 50), Q_ARG(QVariant, "Agressive"));
1736
1736
1737− changeContentY(140);
1737+ changeContentY(5);
1738+
1739+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1740+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1741+ verifyItem(0, 45., 90., false, "Agressive", false);
1742+ verifyItem(1, 135., 50., false, QString(), false);
1743+ verifyItem(2, 185., 150., false, QString(), false);
1744+ verifyItem(3, 335., 240., false, "Regular", false);
1745+ verifyItem(4, 575., 390., true, "Mild", true);
1746+ QCOMPARE(lvwph->m_minYExtent, 0.);
1747+ QCOMPARE(lvwph->m_clipItem->y(), 5.);
1748+ QCOMPARE(lvwph->m_clipItem->clip(), false);
1749+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
1750+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
1751+ QCOMPARE(lvwph->contentY(), 5.);
1752+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
1753+ QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
1754+
1755+ changeContentY(135);
1738
1756
1739 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1757 QTRY_COMPARE(lvwph->m_visibleItems.count(), 5);
1740 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1758 QCOMPARE(lvwph->m_firstVisibleIndex, 0);
@@ -2076,6 +2094,68 @@ private Q_SLOTS:
2076 QCOMPARE(spy.count(), 0);
2094 QCOMPARE(spy.count(), 0);
2077 }
2095 }
2078
2096
2097+ void testDownAndUp()
2098+ {
2099+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 1), Q_ARG(QVariant, 5));
2100+
2101+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 1);
2102+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
2103+ verifyItem(0, 50., 190., false, "Agressive", false);
2104+ QCOMPARE(lvwph->m_minYExtent, 0.);
2105+ QCOMPARE(lvwph->m_clipItem->y(), 0.);
2106+ QCOMPARE(lvwph->m_clipItem->clip(), false);
2107+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
2108+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
2109+ QCOMPARE(lvwph->contentY(), 0.);
2110+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
2111+ QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
2112+
2113+ QTest::qWait(1);
2114+
2115+ changeContentY(-15);
2116+
2117+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 1);
2118+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
2119+ verifyItem(0, 65., 190., false, "Agressive", false);
2120+ QCOMPARE(lvwph->m_minYExtent, 0.);
2121+ QCOMPARE(lvwph->m_clipItem->y(), -15.);
2122+ QCOMPARE(lvwph->m_clipItem->clip(), false);
2123+ QCOMPARE(lvwph->m_headerItem->y(), -15.);
2124+ QCOMPARE(lvwph->m_headerItem->height(), 65.);
2125+ QCOMPARE(lvwph->contentY(), -15.);
2126+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
2127+ QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
2128+
2129+ changeContentY(25);
2130+
2131+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 1);
2132+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
2133+ verifyItem(0, 40., 190., false, "Agressive", false);
2134+ QCOMPARE(lvwph->m_minYExtent, 0.);
2135+ QCOMPARE(lvwph->m_clipItem->y(), 10.);
2136+ QCOMPARE(lvwph->m_clipItem->clip(), false);
2137+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
2138+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
2139+ QCOMPARE(lvwph->contentY(), 10.);
2140+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
2141+ QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
2142+
2143+
2144+ QTest::mouseClick(view, Qt::LeftButton, Qt::NoModifier, QPoint(0, 0));
2145+
2146+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 1);
2147+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
2148+ verifyItem(0, 50., 190., false, "Agressive", false);
2149+ QCOMPARE(lvwph->m_minYExtent, 0.);
2150+ QCOMPARE(lvwph->m_clipItem->y(), 0.);
2151+ QCOMPARE(lvwph->m_clipItem->clip(), false);
2152+ QCOMPARE(lvwph->m_headerItem->y(), 0.);
2153+ QCOMPARE(lvwph->m_headerItem->height(), 50.);
2154+ QCOMPARE(lvwph->contentY(), 0.);
2155+ QCOMPARE(lvwph->m_headerItemShownHeight, 0.);
2156+ QVERIFY(QQuickItemPrivate::get(lvwph->m_topSectionItem)->culled);
2157+ }
2158+
2079private:
2159private:
2080 QQuickView *view;
2160 QQuickView *view;
2081 ListViewWithPageHeader *lvwph;
2161 ListViewWithPageHeader *lvwph;
tests/plugins/ListViewWithPageHeader/tst_listviewwithpageheaderqml.qmlnew file+138
@@ -0,0 +1,138 @@
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 QtQuick 2.0
18+import QtTest 1.0
19+import ListViewWithPageHeader 0.1
20+
21+Rectangle {
22+ width: 300
23+ height: 542
24+ color: "lightblue"
25+
26+ ListModel {
27+ id: model
28+
29+ function insertItem(index, size, type) {
30+ insert(index, { size: size, type: type });
31+ }
32+
33+ function removeItems(index, count) {
34+ remove(index, count);
35+ }
36+
37+ function moveItems(indexFrom, indexTo, count) {
38+ move(indexFrom, indexTo, count);
39+ }
40+
41+ ListElement { type: "Agressive"; size: 150 }
42+ ListElement { type: "Regular"; size: 200 }
43+ ListElement { type: "Mild"; size: 350 }
44+ ListElement { type: "Bold"; size: 350 }
45+ ListElement { type: "Bold"; size: 350 }
46+ ListElement { type: "Lazy"; size: 350 }
47+ }
48+
49+ ListViewWithPageHeader {
50+ id: listView
51+ width: parent.width
52+ anchors.top: parent.top
53+ anchors.bottom: parent.bottom
54+ model: model
55+ delegate: Rectangle {
56+ property bool timerDone: false
57+ width: parent.width - 20
58+ x: 10
59+ color: index % 2 == 0 ? "red" : "blue"
60+ height: size
61+ Text {
62+ text: index
63+ }
64+ }
65+
66+ pageHeader: Rectangle {
67+ color: "transparent"
68+ width: parent.width
69+ height: 50
70+ implicitHeight: 50
71+ Text {
72+ anchors.fill: parent
73+ text: "APPS"
74+ font.pixelSize: 40
75+ }
76+ }
77+
78+ sectionProperty: "type"
79+
80+ property int sectionHeaderHeight: 40
81+ sectionDelegate: Component {
82+ id: sectionHeaderComponent
83+ Rectangle {
84+ color: "green"
85+ height: listView.sectionHeaderHeight
86+ Text { text: section; font.pixelSize: 34 }
87+ anchors { left: parent.left; right: parent.right }
88+ }
89+ }
90+ }
91+
92+ Component {
93+ id: otherSectionHeaderComponent
94+ Rectangle {
95+ color: "green"
96+ height: 50
97+ Text { text: section; font.pixelSize: 34 }
98+ anchors { left: parent.left; right: parent.right }
99+ }
100+ }
101+
102+ SignalSpy {
103+ id: stickyHeaderHeigthSpy
104+ target: listView
105+ signalName: "stickyHeaderHeightChanged"
106+ }
107+
108+ TestCase {
109+ name: "ListViewWithPageHeaderTest"
110+ when: windowShown
111+
112+ function test_stickyHeaderHeightNewHeader() {
113+ stickyHeaderHeigthSpy.clear();
114+ compare(listView.stickyHeaderHeight, 40);
115+
116+ listView.sectionDelegate = otherSectionHeaderComponent;
117+ compare(listView.stickyHeaderHeight, 50);
118+ compare(stickyHeaderHeigthSpy.count, 1);
119+
120+ listView.sectionDelegate = sectionHeaderComponent;
121+ compare(listView.stickyHeaderHeight, 40);
122+ compare(stickyHeaderHeigthSpy.count, 2);
123+ }
124+
125+ function test_stickyHeaderHeightGrowingHeader() {
126+ stickyHeaderHeigthSpy.clear();
127+
128+ compare(listView.stickyHeaderHeight, 40);
129+
130+ listView.sectionHeaderHeight = 60;
131+ compare(listView.stickyHeaderHeight, 60);
132+ compare(stickyHeaderHeigthSpy.count, 1);
133+
134+ // Restore height for other tests
135+ listView.sectionHeaderHeight = 40;
136+ }
137+ }
138+}
tests/plugins/Unity/Indicators/indicatorsmanagertest.cpp+1−3
@@ -80,9 +80,7 @@ private Q_SLOTS:
80 QCOMPARE(props["busName"].toString(), QString("com.canonical.indicator.fake1"));
80 QCOMPARE(props["busName"].toString(), QString("com.canonical.indicator.fake1"));
81 QCOMPARE(props["actionsObjectPath"].toString(), QString("/com/canonical/indicator/fake1"));
81 QCOMPARE(props["actionsObjectPath"].toString(), QString("/com/canonical/indicator/fake1"));
82
82
83− QVariantMap objectPaths = props["menuObjectPaths"].toMap();
84− QCOMPARE(objectPaths["phone"].toString(), QString("/com/canonical/indicator/fake1/phone"));
83+ QCOMPARE(props["menuObjectPath"].toString(), QString("/com/canonical/indicator/fake1/phone"));
85− QCOMPARE(objectPaths["desktop"].toString(), QString("/com/canonical/indicator/fake1/desktop"));
86 }
84 }
87
85
88 /*
86 /*
tests/qmltests/CMakeLists.txt−2
@@ -15,7 +15,6 @@ add_qml_test(Components AnimationControllerWithSignals)
15add_qml_test(Components Carousel)
15add_qml_test(Components Carousel)
16add_qml_test(Components OpenEffect)
16add_qml_test(Components OpenEffect)
17add_qml_test(Components RatingStars)
17add_qml_test(Components RatingStars)
18−add_qml_test(Components TimeLocal)
19add_qml_test(Panel IndicatorItem)
18add_qml_test(Panel IndicatorItem)
20add_qml_test(utils/Unity/Test UnityTest)
19add_qml_test(utils/Unity/Test UnityTest)
21
20
@@ -45,7 +44,6 @@ add_qml_test(Dash DashContent IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest
45add_qml_test(Dash DashPreview)
44add_qml_test(Dash DashPreview)
46add_qml_test(Dash GenericPreview)
45add_qml_test(Dash GenericPreview)
47add_qml_test(Dash GenericScopeView IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
46add_qml_test(Dash GenericScopeView IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
48−add_qml_test(Dash ScopeView IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
49add_qml_test(Dash FilterGrids IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins ${CMAKE_CURRENT_SOURCE_DIR}/plugins
47add_qml_test(Dash FilterGrids IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins ${CMAKE_CURRENT_SOURCE_DIR}/plugins
50 ${CMAKE_BINARY_DIR}/tests/mocks)
48 ${CMAKE_BINARY_DIR}/tests/mocks)
51add_qml_test(Dash/Apps RunningApplicationsGrid IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
49add_qml_test(Dash/Apps RunningApplicationsGrid IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
tests/qmltests/Components/tst_PageHeader.qml+44−3
@@ -37,6 +37,10 @@ Item {
37 property alias searchEnabled : pageHeader.searchEntryEnabled
37 property alias searchEnabled : pageHeader.searchEntryEnabled
38 property alias searchQuery : pageHeader.searchQuery
38 property alias searchQuery : pageHeader.searchQuery
39
39
40+ function init() {
41+ searchEnabled = true;
42+ }
43+
40 function test_search_disabled() {
44 function test_search_disabled() {
41 searchEnabled = false
45 searchEnabled = false
42 pageHeader.resetSearch()
46 pageHeader.resetSearch()
@@ -151,12 +155,48 @@ Item {
151 scopeMock.searchInProgress = true
155 scopeMock.searchInProgress = true
152 compare(searchIndicator.running, true, "Search indicator isn't running.")
156 compare(searchIndicator.running, true, "Search indicator isn't running.")
153 tryCompare(primaryImage, "visible", false)
157 tryCompare(primaryImage, "visible", false)
154−
155− pageHeader.resetSearch()
156 }
158 }
157
159
158 function cleanup() {
160 function cleanup() {
159− scopeMock.searchInProgress = false
161+ scopeMock.searchInProgress = false;
162+ pageHeader.resetSearch();
163+ }
164+
165+ function test_popover() {
166+ searchEnabled = true;
167+ pageHeader.searchHistory.clear();
168+
169+ pageHeader.searchHistory.addQuery("Search1");
170+ pageHeader.searchHistory.addQuery("Search2");
171+
172+ pageHeader.triggerSearch();
173+
174+ var searchContainer = findChild(pageHeader, "searchContainer");
175+ verify(searchContainer !== undefined, "searchContainer != undefined");
176+ tryCompareFunction(function() { return searchContainer.popover !== null; }, true);
177+
178+ tryCompare(searchContainer.popover, "visible", true);
179+ }
180+
181+ function test_resetSearch_onPopupClose() {
182+ searchEnabled = true;
183+ pageHeader.searchHistory.clear();
184+
185+ pageHeader.searchHistory.addQuery("Search1");
186+ pageHeader.searchHistory.addQuery("Search2");
187+
188+ pageHeader.triggerSearch();
189+
190+ var searchContainer = findChild(pageHeader, "searchContainer");
191+ verify(searchContainer !== undefined, "searchContainer != undefined");
192+ tryCompareFunction(function() { return searchContainer.popover !== null; }, true);
193+ compare(searchContainer.popover.visible, true);
194+
195+ pageHeader.searchQuery = "test";
196+ tryCompareFunction( function() { return (searchContainer.popover===null || !searchContainer.popover.visible) }, true);
197+
198+ pageHeader.resetSearch();
199+ compare((searchContainer.popover===null || !searchContainer.popover.visible), true);
160 }
200 }
161 }
201 }
162
202
@@ -174,6 +214,7 @@ Item {
174 scope: scopeMock
214 scope: scopeMock
175
215
176 searchEntryEnabled: true
216 searchEntryEnabled: true
217+ searchHistory: SearchHistoryModel {}
177 text: "%^$%^%^&%^&%^$%GHR%"
218 text: "%^$%^%^&%^&%^$%GHR%"
178 }
219 }
179
220
tests/qmltests/Components/tst_TimeLocal.qmldeleted−117
@@ -1,117 +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 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 "../../../Components/Time.js" as TimeLocal
20−
21−TestCase {
22− name: "TimeLocal"
23−
24− property var readableDate
25−
26− function test_readableFromNow_dateUndefined() {
27− readableDate = TimeLocal.readableFromNow()
28− compare(readableDate, "", "readable date should have been null")
29− }
30−
31− function test_readableFromNow_dateNaN() {
32− readableDate = TimeLocal.readableFromNow("this is a string, not a date")
33− compare(readableDate, "", "readable date should have been null")
34− }
35−
36− function test_readableFromNow_justNow() {
37− readableDate = TimeLocal.readableFromNow(new Date())
38− compare(readableDate, "just now", "readable date should have been now")
39− }
40−
41− function test_readableFromNow_nowNaN() {
42− var fail = false
43− try {
44− TimeLocal.readableFromNow(new Date(), "this is a string, not a date")
45− } catch (err) {
46− fail = true
47− } finally {
48− compare(fail, true, "readable date should have thrown an exception")
49− }
50− }
51−
52− function cycleTime(diff, previous, next, units, endIterator) {
53− var now = new Date()
54− var time = now.getTime()
55− readableDate = TimeLocal.readableFromNow(time - diff, now)
56− compare(readableDate, previous, "different time predicted")
57− readableDate = TimeLocal.readableFromNow(time + diff, now)
58− compare(readableDate, next, "different time predicted")
59− for (var i = 2; i < endIterator; i++) {
60− var tmpDiff = i * diff
61− readableDate = TimeLocal.readableFromNow(time - tmpDiff, now)
62− compare(readableDate, i + " " + units + " ago", "different time predicted")
63− readableDate = TimeLocal.readableFromNow(time + tmpDiff, now)
64− compare(readableDate, "in " + i + " " + units, "different time predicted")
65− }
66− }
67−
68− function test_readableFromNow_seconds() {
69− cycleTime(1000, "a second ago", "in a second", "seconds", 60)
70− }
71−
72− function test_readableFromNow_minutes() {
73− cycleTime(1000 * 60, "a minute ago", "in a minute", "minutes", 60)
74− }
75−
76− function test_readableFromNow_hours() {
77− cycleTime(1000 * 60 * 60, "an hour ago", "in an hour", "hours", 24)
78− }
79−
80− function test_readableFromNow_days() {
81− cycleTime(1000 * 60 * 60 * 24, "yesterday", "tomorrow", "days", 7)
82− }
83−
84− function test_readableFromNow_weeks() {
85− var now = new Date()
86− for (var i = 7; i < 30; i++) {
87− readableDate = TimeLocal.readableFromNow(now.getTime() - i * 1000 * 60 * 60 * 24, now)
88− if (i < 14)
89− compare(readableDate, "a week ago", "different time predicted")
90− else if (i < 18)
91− compare(readableDate, "about 2 weeks ago", "different time predicted")
92− else if (i < 25)
93− compare(readableDate, "about 3 weeks ago", "different time predicted")
94− else
95− compare(readableDate, "about 4 weeks ago", "different time predicted")
96− }
97− for (var i = 7; i < 30; i++) {
98− readableDate = TimeLocal.readableFromNow(now.getTime() + i * 1000 * 60 * 60 * 24, now)
99− if (i < 14)
100− compare(readableDate, "in a week", "different time predicted")
101− else if (i < 18)
102− compare(readableDate, "in about 2 weeks", "different time predicted")
103− else if (i < 25)
104− compare(readableDate, "in about 3 weeks", "different time predicted")
105− else
106− compare(readableDate, "in about 4 weeks", "different time predicted")
107− }
108− }
109−
110− function test_readableFromNow_months() {
111− cycleTime(1000 * 60 * 60 * 24 * 30.45, "a month ago", "in a month", "months", 12)
112− }
113−
114− function test_readableFromNow_years() {
115− cycleTime(1000 * 60 * 60 * 24 * 366, "a year ago", "in a year", "years", 5)
116− }
117−}
tests/qmltests/Dash/qml/FakeScopeView.qml+3−69
@@ -19,14 +19,13 @@ import Unity 0.1
19
19
20import "../../../../Dash"
20import "../../../../Dash"
21
21
22−ScopeView {
22+GenericScopeView {
23 id: fakeScopeView
23 id: fakeScopeView
24
24
25 property alias backColor : back.color
25 property alias backColor : back.color
26− moving: listView.moving
27
26
28 onEndReached: {
27 onEndReached: {
29− if (shell != undefined && shell.scopeStatus != undefined) {
28+ if (scope != undefined && shell != undefined && shell.scopeStatus != undefined) {
30 shell.scopeStatus[scope.id].endReached++;
29 shell.scopeStatus[scope.id].endReached++;
31 }
30 }
32 }
31 }
@@ -45,71 +44,6 @@ ScopeView {
45 id: back
44 id: back
46 anchors.fill: parent
45 anchors.fill: parent
47 color: "grey"
46 color: "grey"
48− }
47+ z: -1
49−
50− function randomBg()
51− {
52− var hex1=new Array("4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")
53− var bg="#"+hex1[Math.floor(Math.random()*hex1.length)]+
54− hex1[Math.floor(Math.random()*hex1.length)]+
55− hex1[Math.floor(Math.random()*hex1.length)]+
56− hex1[Math.floor(Math.random()*hex1.length)]+
57− hex1[Math.floor(Math.random()*hex1.length)]+
58− hex1[Math.floor(Math.random()*hex1.length)]
59− return bg
60− }
61−
62−
63− ListView {
64− id: listView
65− anchors.fill: parent
66− model: scope ? scope.categories : null
67− orientation: ListView.Vertical
68−
69− delegate: Column {
70− id: column
71− width: listView.width
72− height: childrenRect.height
73−
74− Rectangle {
75− width: listView.width
76− height: units.gu(3)
77− color: randomBg()
78−
79− Text {
80− text: name
81− font.family: "Ubuntu"
82− font.weight: Font.Bold
83− font.pixelSize: 20
84− anchors.horizontalCenter: parent.horizontalCenter
85− }
86− }
87− GridView {
88− id: resultsGrid
89− model: results
90− cellWidth: units.gu(10); cellHeight: units.gu(10)
91− height: childrenRect.height
92− width: listView.width
93− interactive: false
94−
95− delegate: Component {
96− id: resultDelegate
97− Item {
98− width: resultsGrid.cellWidth; height: resultsGrid.cellHeight
99− Column {
100− anchors.verticalCenter: parent.verticalCenter
101− anchors.horizontalCenter: parent.horizontalCenter
102− Image {
103− width: units.gu(5)
104− height: units.gu(5)
105− source: icon
106− anchors.horizontalCenter: parent.horizontalCenter
107− }
108− Text { text: title; anchors.horizontalCenter: parent.horizontalCenter }
109− }
110− }
111− }
112− }
113− }
114 }
48 }
115}
49}
tests/qmltests/Dash/tst_Dash.qml+5−1
@@ -102,11 +102,15 @@ Item {
102 console.log("Not testing " + data.tag + ": not visible");
102 console.log("Not testing " + data.tag + ": not visible");
103 return;
103 return;
104 }
104 }
105+ var dashContentList = findChild(dash, "dashContentList");
106+
105 dash.showScopeOnLoaded = data.tag
107 dash.showScopeOnLoaded = data.tag
106 scopes.clear();
108 scopes.clear();
109+ tryCompare(dashContentList, "count", 0);
107 scopes.load();
110 scopes.load();
111+ tryCompare(scopes, "loaded", true);
112+ tryCompare(dashContentList, "count", 4);
108
113
109− var dashContentList = findChild(dash, "dashContentList");
110 verify(dashContentList != undefined);
114 verify(dashContentList != undefined);
111 tryCompare(dashContentList, "currentIndex", data.visualIndex);
115 tryCompare(dashContentList, "currentIndex", data.visualIndex);
112 }
116 }
tests/qmltests/Dash/tst_DashContent.qml+28−8
@@ -26,7 +26,17 @@ Item {
26 width: units.gu(40)
26 width: units.gu(40)
27 height: units.gu(80)
27 height: units.gu(80)
28
28
29− property ListModel searchHistory: ListModel {}
29+ Item {
30+ // Fake. Make a few components less noisy
31+ id: greeter
32+ signal shownChanged
33+ }
34+
35+ Item {
36+ // Fake. Make a few components less noisy
37+ id: panel
38+ signal searchClicked
39+ }
30
40
31 property var scopeStatus: {
41 property var scopeStatus: {
32 'MockScope1': { 'movementStarted': 0, 'positionedAtBeginning': 0 },
42 'MockScope1': { 'movementStarted': 0, 'positionedAtBeginning': 0 },
@@ -48,6 +58,7 @@ Item {
48 scopes : scopesModel
58 scopes : scopesModel
49
59
50 scopeMapper : scopeDelegateMapper
60 scopeMapper : scopeDelegateMapper
61+ searchHistory: ListModel {}
51 }
62 }
52
63
53 ScopeDelegateMapper {
64 ScopeDelegateMapper {
@@ -111,10 +122,10 @@ Item {
111 clear_scope_status();
122 clear_scope_status();
112 dashContent.visible = true;
123 dashContent.visible = true;
113
124
114− scopesModel.clear();
115− // wait for dash to empty scopes.
116 var dashContentList = findChild(dashContent, "dashContentList");
125 var dashContentList = findChild(dashContent, "dashContentList");
117 verify(dashContentList != undefined);
126 verify(dashContentList != undefined);
127+ scopesModel.clear();
128+ // wait for dash to empty scopes.
118 tryCompare(dashContentList, "count", 0);
129 tryCompare(dashContentList, "count", 0);
119 }
130 }
120
131
@@ -230,18 +241,27 @@ Item {
230 tryCompare(scopesModel.get(2), "isActive", data.active2);
241 tryCompare(scopesModel.get(2), "isActive", data.active2);
231 }
242 }
232
243
233− function test_hswipe_disabled_vswipe() {
244+ function checkFlickMovingAndNotInteractive()
245+ {
234 var dashContentList = findChild(dashContent, "dashContentList");
246 var dashContentList = findChild(dashContent, "dashContentList");
235
247
236− tryCompare(dashContentList, "interactive", true);
248+ if (dashContentList.currentItem.moving && !dashContentList.interactive)
249+ return true;
237
250
238 var startX = dashContentList.width/2;
251 var startX = dashContentList.width/2;
239 var startY = dashContentList.height/2;
252 var startY = dashContentList.height/2;
240− touchFlick(dashContentList, startX, startY, startX, startY - units.gu(800));
253+ touchFlick(dashContentList, startX, startY, startX, startY - units.gu(40));
254+
255+ return dashContentList.currentItem.moving && !dashContentList.interactive;
256+ }
257+
241
258
259+ function test_hswipe_disabled_vswipe() {
260+ var dashContentList = findChild(dashContent, "dashContentList");
261+
242− tryCompare(dashContentList.currentItem, "moving", true);
262+ tryCompare(dashContentList, "interactive", true);
243
263
244− compare(dashContentList.interactive, false);
264+ tryCompareFunction(checkFlickMovingAndNotInteractive, true);
245 }
265 }
246 }
266 }
247}
267}
tests/qmltests/Dash/tst_FilterGrids.qml+1−2
@@ -108,8 +108,7 @@ Rectangle {
108 function test_clicked_signal_data() {
108 function test_clicked_signal_data() {
109 return [
109 return [
110 {tag: "VideoFilterGrid", component: "Video/VideoFilterGrid.qml"},
110 {tag: "VideoFilterGrid", component: "Video/VideoFilterGrid.qml"},
111− {tag: "MusicFilterGrid", component: "Music/MusicFilterGrid.qml"},
111+ {tag: "MusicFilterGrid", component: "Music/MusicFilterGrid.qml"}
112− {tag: "ApplicationsFilterGrid", component: "Apps/ApplicationsFilterGrid.qml"}
113 ]
112 ]
114 }
113 }
115
114
tests/qmltests/Dash/tst_GenericScopeView.qml+24−2
@@ -132,7 +132,23 @@ Item {
132 tryCompare(previewListView, "open", false);
132 tryCompare(previewListView, "open", false);
133 }
133 }
134
134
135− function test_previewCycleOne() {
135+ function test_hiddenPreviewOpen() {
136+ var categoryListView = findChild(genericScopeView, "categoryListView");
137+ categoryListView.positionAtBeginning();
138+ waitForRendering(categoryListView);
139+ categoryListView.flick(0, -units.gu(80));
140+ tryCompare(categoryListView.flicking, false);
141+
142+ var tile = findChild(genericScopeView, "delegate0");
143+ mouseClick(tile, tile.width / 2, tile.height - 1);
144+ var openEffect = findChild(genericScopeView, "openEffect");
145+ tryCompare(openEffect, "gap", 1);
146+
147+ var pageHeader = findChild(genericScopeView, "pageHeader");
148+ verify(openEffect.positionPx >= pageHeader.height + categoryListView.stickyHeaderHeight);
149+ }
150+
151+ function test_previewCycle() {
136 var previewListView = findChild(genericScopeView, "previewListView");
152 var previewListView = findChild(genericScopeView, "previewListView");
137 tryCompare(previewListView, "open", false);
153 tryCompare(previewListView, "open", false);
138
154
@@ -173,7 +189,6 @@ Item {
173
189
174 checkArrowPosition(i);
190 checkArrowPosition(i);
175 }
191 }
176−
177 closePreview();
192 closePreview();
178 }
193 }
179
194
@@ -190,6 +205,13 @@ Item {
190
205
191 closePreview();
206 closePreview();
192 }
207 }
208+
209+ function test_changeScope() {
210+ genericScopeView.scope.searchQuery = "test"
211+ genericScopeView.scope = scopes.get(1)
212+ genericScopeView.scope = scopes.get(0)
213+ tryCompare(genericScopeView.scope, "searchQuery", "")
214+ }
193 }
215 }
194 }
216 }
195}
217}
tests/qmltests/Dash/tst_ScopeView.qmldeleted−52
@@ -1,52 +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 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 0.1
20−import ".."
21−import "../../../Dash"
22−import Ubuntu.Components 0.1
23−
24−Item {
25− width: units.gu(120)
26− height: units.gu(80)
27−
28− Scopes {
29− id: scopes
30− }
31−
32− ScopeView {
33− id: scopeView
34− anchors.fill: parent
35−
36− TestCase {
37− name: "ScopeView"
38− when: scopes.loaded
39−
40− function init() {
41− scopeView.scope = scopes.get(0)
42− }
43−
44− function test_changeScope() {
45− scopeView.scope.searchQuery = "test"
46− scopeView.scope = scopes.get(1)
47− scopeView.scope = scopes.get(0)
48− tryCompare(scopeView.scope, "searchQuery", "")
49− }
50− }
51− }
52−}
tests/qmltests/Greeter/tst_Lockscreen.qml+45−17
@@ -41,7 +41,7 @@ Rectangle {
41 target: lockscreen
41 target: lockscreen
42
42
43 onEmergencyCall: emergencyCheckBox.checked = true
43 onEmergencyCall: emergencyCheckBox.checked = true
44− onUnlocked: unlockedCheckBox.checked = true
44+ onEntered: enteredLabel.text = passphrase
45 }
45 }
46
46
47 Connections {
47 Connections {
@@ -99,12 +99,11 @@ Rectangle {
99 anchors.verticalCenter: parent.verticalCenter
99 anchors.verticalCenter: parent.verticalCenter
100 }
100 }
101 Row {
101 Row {
102− CheckBox {
102+ Label {
103− id: unlockedCheckBox
103+ text: "Entered:"
104 }
104 }
105 Label {
105 Label {
106− text: "Unlocked signal"
106+ id: enteredLabel
107− anchors.verticalCenter: parent.verticalCenter
108 }
107 }
109 }
108 }
110 Button {
109 Button {
@@ -176,16 +175,16 @@ Rectangle {
176
175
177 function test_unlock_data() {
176 function test_unlock_data() {
178 return [
177 return [
179− {tag: "numeric", alphanumeric: false, username: "has-pin", password: "1234", unlockedSignal: true, pinLength: 4},
178+ {tag: "numeric", alphanumeric: false, username: "has-pin", password: "1234", pinLength: 4},
180− {tag: "alphanumeric", alphanumeric: true, username: "has-password", password: "password", unlockedSignal: true, pinLength: -1},
179+ {tag: "alphanumeric", alphanumeric: true, username: "has-password", password: "password", pinLength: -1},
181− {tag: "numeric (wrong)", alphanumeric: false, username: "has-pin", password: "4321", unlockedSignal: false, pinLength: 4},
180+ {tag: "numeric (wrong)", alphanumeric: false, username: "has-pin", password: "4321", pinLength: 4},
182− {tag: "alphanumeric (wrong)", alphanumeric: true, username: "has-password", password: "drowssap", unlockedSignal: false, pinLength: -1},
181+ {tag: "alphanumeric (wrong)", alphanumeric: true, username: "has-password", password: "drowssap", pinLength: -1},
183− {tag: "flexible length", alphanumeric: false, username: "has-pin", password: "1234", unlockedSignal: true, pinLength: -1},
182+ {tag: "flexible length", alphanumeric: false, username: "has-pin", password: "1234", pinLength: -1},
184 ]
183 ]
185 }
184 }
186
185
187 function test_unlock(data) {
186 function test_unlock(data) {
188− unlockedCheckBox.checked = false
187+ enteredLabel.text = ""
189 pinLengthTextField.text = data.pinLength
188 pinLengthTextField.text = data.pinLength
190 LightDM.Greeter.authenticate(data.username)
189 LightDM.Greeter.authenticate(data.username)
191 waitForRendering(lockscreen)
190 waitForRendering(lockscreen)
@@ -206,14 +205,43 @@ Rectangle {
206 mouseClick(pinPadButtonErase, units.gu(1), units.gu(1));
205 mouseClick(pinPadButtonErase, units.gu(1), units.gu(1));
207 }
206 }
208 }
207 }
208+ tryCompare(enteredLabel, "text", data.password)
209+ }
210+
211+ function test_clear_data() {
212+ return [
213+ {tag: "animated PIN", animation: true, alphanumeric: false},
214+ {tag: "not animated PIN", animation: false, alphanumeric: false},
215+ {tag: "animated passphrase", animation: true, alphanumeric: true},
216+ {tag: "not animated passphrase", animation: false, alphanumeric: true}
217+ ];
218+ }
219+
220+ function test_clear(data) {
221+ pinPadCheckBox.checked = data.alphanumeric
222+ waitForRendering(lockscreen)
209
223
210− tryCompare(unlockedCheckBox, "checked", data.unlockedSignal)
224+ var inputField = findChild(lockscreen, "pinentryField")
211− if (!data.unlockedSignal) {
225+ if (data.alphanumeric) {
212− // make sure the input is cleared on wrong input
226+ mouseClick(inputField, units.gu(1), units.gu(1))
213− tryCompareFunction(function() {return inputField.text.length == 0}, true)
227+ typeString("1")
214 } else {
228 } else {
215− tryCompareFunction(function() {return inputField.text.length > 0}, true)
229+ var button = findChild(lockscreen, "pinPadButton1")
230+ mouseClick(button, units.gu(1), units.gu(1))
216 }
231 }
232+
233+ var animation = findInvisibleChild(lockscreen, "wrongPasswordAnimation")
234+
235+ tryCompare(inputField, "text", "1")
236+
237+ lockscreen.clear(data.animation)
238+ tryCompare(inputField, "text", "")
239+
240+ wait(0) // Trigger event loop to make sure the animation would start running
241+ compare(animation.running, data.animation)
242+
243+ // wait for animation to finish to not disturb other tests
244+ tryCompare(animation, "running", false)
217 }
245 }
218
246
219 function test_backspace_data() {
247 function test_backspace_data() {
@@ -224,7 +252,7 @@ Rectangle {
224 }
252 }
225
253
226 function test_backspace(data) {
254 function test_backspace(data) {
227− LightDM.Greeter.authenticate("has-pin");
255+ pinPadCheckBox.checked = false
228 pinLengthTextField.text = data.pinLength
256 pinLengthTextField.text = data.pinLength
229 waitForRendering(lockscreen);
257 waitForRendering(lockscreen);
230
258
tests/qmltests/Panel/tst_Panel.qml+13−4
@@ -48,9 +48,12 @@ Item {
48
48
49 function get_window_data() {
49 function get_window_data() {
50 return [
50 return [
51+ {tag: "pinned", fullscreenFlag: false, alreadyOpen: false },
52+ {tag: "fullscreen", fullscreenFlag: true, alreadyOpen: false },
51− {tag: "pinned", fullscreenFlag: false },
53+ {tag: "pinned-alreadyOpen", fullscreenFlag: false, alreadyOpen: true },
52− {tag: "fullscreen", fullscreenFlag: true }
54+ {tag: "fullscreen-alreadyOpen", fullscreenFlag: true, alreadyOpen: true }
55+ ];
53− ]}
56+ }
54
57
55 function init() {
58 function init() {
56 searchClicked = false;
59 searchClicked = false;
@@ -134,6 +137,10 @@ Item {
134 // expose more of the panel, binding it to the selected indicator and opening it's menu.
137 // expose more of the panel, binding it to the selected indicator and opening it's menu.
135 function test_drag_show(data) {
138 function test_drag_show(data) {
136 panel.fullscreenMode = data.fullscreenFlag;
139 panel.fullscreenMode = data.fullscreenFlag;
140+ if (data.alreadyOpen) {
141+ panel.indicators.show();
142+ tryCompare(panel.indicators, "fullyOpened", true);
143+ }
137
144
138 var indicatorRow = findChild(panel.indicators, "indicatorRow");
145 var indicatorRow = findChild(panel.indicators, "indicatorRow");
139 verify(indicatorRow != undefined);
146 verify(indicatorRow != undefined);
@@ -185,7 +192,9 @@ Item {
185 compare(menuContent.currentMenuIndex, i, "Menu conetent should be enabled for item at position " + i);
192 compare(menuContent.currentMenuIndex, i, "Menu conetent should be enabled for item at position " + i);
186
193
187 // init for next indicatorItem
194 // init for next indicatorItem
195+ if (!data.alreadyOpen) {
188− init();
196+ init();
197+ }
189 }
198 }
190 }
199 }
191
200
tests/utils/modules/Unity/Test/UnityTestCase.qml+2
@@ -214,6 +214,8 @@ TestCase {
214
214
215 // speed is in pixels/second
215 // speed is in pixels/second
216 function touchFlick(item, x, y, toX, toY, beginTouch, endTouch, speed, iterations) {
216 function touchFlick(item, x, y, toX, toY, beginTouch, endTouch, speed, iterations) {
217+ // Make sure the item is rendered
218+ waitForRendering(item);
217
219
218 // Default to true for beginTouch if not present
220 // Default to true for beginTouch if not present
219 beginTouch = (beginTouch !== undefined) ? beginTouch : true
221 beginTouch = (beginTouch !== undefined) ? beginTouch : true