on xenial help sign in
Merged trunk.
commit332ca777e08a9edadd0e031b112dbfe578f16905 authorPawel Stolowski <pawel.stolowski@canonical.com> dateFri 4 Oct 2013, 12:21 (13 years ago) parent58c9ea51347664
202 files changed+3535−6093
Bottombar/Bottombar.qml+81−16 Components/EdgeDemoOverlay.qml+9−2 Components/PageHeader.qml+44−1 Greeter/PinPadButton.qml → Components/PinPadButton.qml Components/Stage.qml+4−1 Components/Tile.qml+7−63 Components/TileStyle.qml+80 Dash/Apps/DashPluginFilterGrid.qml+49 Dash/Apps/RunningApplicationsGrid.qml+20−1 Dash/DashApps.qml+2 Dash/DashContent.qml+1 Dash/Generic/FlatTileStyle.qml+78 Dash/Generic/GenericFilterGrid.qml−3 Dash/Generic/WeatherFilterGrid.qml+49 Dash/GenericScopeView.qml+30−3 Greeter/Gradient.js+7−3 Greeter/GreeterContent.qml+11−7 Greeter/Infographics.qml+10−1 Notifications/Notification.qml+42−1 Notifications/NotificationMenuItemFactory.qml+97 Panel/Indicators.qml+4−1 Panel/Indicators/DatetimeIndicatorPage.qml−97 Panel/Indicators/DatetimeIndicatorWidget.qml−67 Panel/Indicators/DefaultIndicatorPage.qml+1−1 Panel/Indicators/DefaultIndicatorPage2.qml−25 Panel/Indicators/DefaultIndicatorWidget.qml+47−21 Panel/Indicators/DefaultIndicatorWidget2.qml−103 Panel/Indicators/MessagingIndicatorPage.qml−35 Panel/Indicators/MessagingIndicatorWidget.qml−25 Panel/Indicators/NetworkIndicatorPage.qml−83 Panel/Indicators/NetworkIndicatorPage2.qml−82 Panel/Indicators/NetworkIndicatorWidget.qml−112 Panel/Indicators/SoundIndicatorWidget.qml−26 Panel/Indicators/client/IndicatorsList.qml+16−14 Panel/Indicators/client/IndicatorsTree.qml+4 Panel/IndicatorsDataModel.qml−79 Panel/MenuContent.qml+9−2 Shell.qml+3−1 debian/changelog+81 debian/control+3−7 main.cpp+1−1 plugins/AccountsService/AccountsService.cpp+19 plugins/AccountsService/AccountsService.h+7 plugins/ListViewWithPageHeader/listviewwithpageheader.cpp+3 plugins/Unity/CMakeLists.txt−1 plugins/Unity/Indicators/Messaging/qml/QuickReply.qml+1−1 plugins/Unity/Indicators/Network/CMakeLists.txt−44 plugins/Unity/Indicators/Network/networkagent.cpp−146 plugins/Unity/Indicators/Network/networkagent.h−65 plugins/Unity/Indicators/Network/plugin.h−32 plugins/Unity/Indicators/Network/qml/PasswordPage.qml−88 plugins/Unity/Indicators/Network/qml/PasswordTextField.qml−68 plugins/Unity/Indicators/Network/qml/qmldir−5 plugins/Unity/Indicators/Network/secret-agent.c−382 plugins/Unity/Indicators/Network/secret-agent.h−102 plugins/Unity/Indicators/indicators.h−2 plugins/Unity/Indicators/indicatorsmodel.cpp+2−55 plugins/Unity/Indicators/indicatorsmodel.h−8 plugins/Unity/Indicators/qml/IndicatorBase.qml+8−5 plugins/Unity/Indicators/qml/IndicatorPage.qml+7−5 plugins/Unity/Indicators/qml/IndicatorWidget.qml−6 plugins/Unity/Indicators/qml/SliderMenuItem.qml+1−1 plugins/Unity/Indicators/rootactionstate.cpp+7−1 plugins/Unity/Indicators/rootactionstate.h+3 plugins/Unity/Indicators/visibleindicatorsmodel.cpp−2 plugins/Unity/IndicatorsLegacy/CMakeLists.txt−48 plugins/Unity/IndicatorsLegacy/Network/CMakeLists.txt−45 plugins/Unity/IndicatorsLegacy/Network/networkagent.cpp−146 plugins/Unity/IndicatorsLegacy/Network/networkagent.h−65 plugins/Unity/IndicatorsLegacy/Network/plugin.cpp−31 plugins/Unity/IndicatorsLegacy/Network/plugin.h−32 plugins/Unity/IndicatorsLegacy/Network/qml/AccessPoint.qml−68 plugins/Unity/IndicatorsLegacy/Network/qml/CMakeLists.txt−5 plugins/Unity/IndicatorsLegacy/Network/qml/PasswordPage.qml−88 plugins/Unity/IndicatorsLegacy/Network/qml/PasswordTextField.qml−68 plugins/Unity/IndicatorsLegacy/Network/qml/WifiSection.qml−34 plugins/Unity/IndicatorsLegacy/Network/qml/qmldir−9 plugins/Unity/IndicatorsLegacy/Network/secret-agent.c−382 plugins/Unity/IndicatorsLegacy/Network/secret-agent.h−102 plugins/Unity/IndicatorsLegacy/flatmenuproxymodel.cpp−288 plugins/Unity/IndicatorsLegacy/flatmenuproxymodel.h−93 plugins/Unity/IndicatorsLegacy/modelprinter.cpp−114 plugins/Unity/IndicatorsLegacy/modelprinter.h−50 plugins/Unity/IndicatorsLegacy/plugin.cpp−42 plugins/Unity/IndicatorsLegacy/plugin.h−32 plugins/Unity/IndicatorsLegacy/qml/BasicMenuItem.qml−48 plugins/Unity/IndicatorsLegacy/qml/ButtonMenuItem.qml−47 plugins/Unity/IndicatorsLegacy/qml/CMakeLists.txt−5 plugins/Unity/IndicatorsLegacy/qml/DivMenuItem.qml−26 plugins/Unity/IndicatorsLegacy/qml/HLine.qml−29 plugins/Unity/IndicatorsLegacy/qml/IndicatorBase.qml−59 plugins/Unity/IndicatorsLegacy/qml/IndicatorPage.qml−191 plugins/Unity/IndicatorsLegacy/qml/IndicatorWidget.qml−68 plugins/Unity/IndicatorsLegacy/qml/MenuAction.qml−86 plugins/Unity/IndicatorsLegacy/qml/MenuActionBinding.qml−106 plugins/Unity/IndicatorsLegacy/qml/MenuItem.qml−40 plugins/Unity/IndicatorsLegacy/qml/MenuItemFactory.qml−102 plugins/Unity/IndicatorsLegacy/qml/ProgressMenuItem.qml−65 plugins/Unity/IndicatorsLegacy/qml/RemoveBackground.qml−55 plugins/Unity/IndicatorsLegacy/qml/SectionMenuItem.qml−57 plugins/Unity/IndicatorsLegacy/qml/SliderMenuItem.qml−64 plugins/Unity/IndicatorsLegacy/qml/SwitchMenuItem.qml−43 plugins/Unity/IndicatorsLegacy/qml/qmldir−21 plugins/Unity/IndicatorsLegacy/resources/indicators.qrc−4 plugins/Unity/Launcher/backend/launcherbackend.cpp+4−4 plugins/Unity/Launcher/backend/launcherbackend.h+1−1 plugins/Unity/Launcher/launchermodel.cpp+1−1 plugins/Unity/Launcher/quicklistmodel.cpp+1−1 plugins/Unity/bottombarvisibilitycommunicatorshell.cpp+15−1 plugins/Unity/bottombarvisibilitycommunicatorshell.h+6 plugins/Unity/categories.cpp+6 plugins/Unity/categories.h+1 plugins/Unity/categoryresults.cpp+21 plugins/Unity/categoryresults.h+2−1 plugins/Unity/iconutils.cpp+12 plugins/Unity/iconutils.h+1 plugins/Unity/preview.cpp+10−14 plugins/Unity/preview.h−2 plugins/Unity/scope.cpp+30−5 plugins/Unity/scope.h+7−2 plugins/Utils/CMakeLists.txt+2−1 plugins/Utils/plugin.cpp+2 plugins/Utils/unitymenumodelpaths.cpp+182 plugins/Utils/unitymenumodelpaths.h+82 po/ar.po+29−23 po/ast.po+265 po/az.po+29−23 po/bg.po+29−23 po/ca.po+28−22 po/de.po+42−36 po/el.po+29−23 po/en_AU.po+28−23 po/en_GB.po+29−23 po/eo.po+29−23 po/es.po+34−26 po/fi.po+33−25 po/fo.po+41−35 po/fr.po+29−23 po/gd.po+28−24 po/gl.po+54−46 po/he.po+79−73 po/hr.po+29−23 po/hu.po+29−23 po/hy.po+29−23 po/id.po+29−23 po/is.po+29−23 po/it.po+28−24 po/ja.po+29−23 po/kn.po+29−23 po/ko.po+29−23 po/ky.po+29−23 po/lo.po+261 po/lv.po+28−22 po/my.po+29−23 po/nb.po+29−23 po/nl.po+29−23 po/pl.po+29−23 po/pt_BR.po+32−26 po/ro.po+29−23 po/ru.po+32−28 po/si.po+29−23 po/sl.po+32−25 po/sr.po+29−23 po/sv.po+29−23 po/te.po+29−23 po/tr.po+58−51 po/ug.po+29−23 po/uk.po+28−23 po/unity8.pot+27−21 po/xh.po+28−22 po/zh_CN.po+29−23 po/zh_TW.po+29−23 tests/autopilot/unity8/indicators_client/emulators/main_window.py+1−1 tests/autopilot/unity8/shell/__init__.py+14 tests/autopilot/unity8/shell/emulators/dash.py+15−6 tests/autopilot/unity8/shell/emulators/hud.py+8−9 tests/autopilot/unity8/shell/emulators/main_window.py+3 tests/autopilot/unity8/shell/tests/__init__.py+2−3 tests/autopilot/unity8/shell/tests/test_hud.py+43−9 tests/mocks/AccountsService/AccountsService.cpp+13−1 tests/mocks/AccountsService/AccountsService.h+8 plugins/Unity/Indicators/Network/plugin.cpp → tests/mocks/QMenuModel/UnityMenuModel.qml+9−14 tests/mocks/QMenuModel/qmldir+1 tests/mocks/Unity/Indicators/IndicatorsModel.qml+5−15 tests/mocks/Unity/fake_applications_scope.cpp+7 tests/mocks/Unity/fake_categories.cpp+6 tests/mocks/Unity/fake_categories.h+1 tests/mocks/Unity/fake_preview.cpp−5 tests/mocks/Unity/fake_preview.h−2 tests/mocks/Unity/fake_scope.cpp+13 tests/mocks/Unity/fake_scope.h+5−1 tests/mocks/libusermetrics/UserMetrics.cpp+6−2 tests/plugins/ListViewWithPageHeader/listviewwithpageheadertest.cpp+8 tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp−15 tests/plugins/Unity/Launcher/launcherbackendtest.cpp+3−3 tests/plugins/Unity/resultstest.cpp+13−9 tests/qmltests/CMakeLists.txt+1−1 tests/qmltests/Components/tst_PageHeader.qml+28 tests/qmltests/Greeter/tst_Infographics.qml+4−4 tests/qmltests/Greeter/tst_Phone.qml+15 tests/qmltests/Panel/tst_IndicatorRow.qml+3−3 tests/qmltests/tst_Shell.qml+68
Bottombar/Bottombar.qml+81−16
@@ -34,15 +34,32 @@ Item {
3434
3535 state: "hidden"
3636
37+ function hide() {
38+ dismissTimer.stop()
39+ bottombar.state = "hidden"
40+ }
41+
42+ onApplicationIsOnForegroundChanged: {
43+ if (!applicationIsOnForeground) {
44+ hide()
45+ }
46+ }
47+
3748 onStateChanged: {
3849 if (state == "hidden") {
3950 dismissTimer.stop()
51+ bottomBarVisibilityCommunicatorShell.forceHidden = false
4052 } else {
4153 dismissTimer.restart()
4254 }
4355 }
4456
4557 onPreventHidingChanged: {
58+ if (!preventHiding) {
59+ if (state == "hint" || state == "reveal")
60+ hide()
61+ }
62+
4663 if (dismissTimer.running) {
4764 dismissTimer.restart();
4865 }
@@ -50,7 +67,7 @@ Item {
5067
5168 Timer {
5269 id: dismissTimer
53− interval: 5000
70+ interval: 1000
5471 onTriggered: {
5572 if (!bottombar.preventHiding) {
5673 bottombar.state = "hidden"
@@ -103,24 +120,29 @@ Item {
103120
104121 EdgeDragArea {
105122 id: dragArea
123+ objectName: "hudDragArea"
106124 width: parent.width
107125 height: distanceThreshold
108126 anchors.bottom: parent.bottom
109127
110− distanceThreshold: units.gu(1)
128+ distanceThreshold: units.gu(8)
111129 enabled: !theHud.shown && bottombar.enabled && applicationIsOnForeground
112130 direction: Direction.Upwards
131+ maxSilenceTime: 2000
113132
114133 property int previousStatus: -1
115134 property real touchStartX: -1
116135
136+ readonly property real distanceFromThreshold: (-distance) - distanceThreshold // distance is negative
137+ readonly property real revealDistance: units.gu(2)
138+ readonly property real commitDistance: units.gu(6)
139+ readonly property real commitProgress: MathLocal.clamp(distanceFromThreshold / commitDistance, 0, 1)
140+
117141 onStatusChanged: {
118142 if (status === DirectionalDragArea.WaitingForTouch) {
119143 if (previousStatus == DirectionalDragArea.Recognized) {
120144 if (hudButton.mouseOver) {
121145 hudButton.clicked()
122− } else {
123− bottombar.state = "hidden"
124146 }
125147 }
126148 } else if (status === DirectionalDragArea.Undecided) {
@@ -128,35 +150,78 @@ Item {
128150 touchStartX = touchX
129151 }
130152 } else if (status === DirectionalDragArea.Recognized) {
131− bottombar.state = "shown"
153+ bottombar.state = "hint"
132154 }
133155 previousStatus = status
134156 }
157+
158+ onDistanceChanged: {
159+ if (status === DirectionalDragArea.Recognized) {
160+ if (distanceFromThreshold > commitDistance)
161+ bottombar.state = "shown"
162+ else if (distanceFromThreshold > revealDistance)
163+ bottombar.state = "reveal"
164+ }
165+ }
166+ }
167+
168+ Item {
169+ id: dismissArea
170+ anchors {
171+ top: parent.top
172+ left: parent.left
173+ right: parent.right
174+ }
175+ height: parent.height - bottomBarVisibilityCommunicatorShell.position
176+
177+ MouseArea {
178+ anchors.fill: parent
179+ enabled: bottombar.state == "shown"
180+ onPressed: {
181+ bottomBarVisibilityCommunicatorShell.forceHidden = true
182+ bottombar.state = "hidden"
183+ }
184+ }
185+
186+ InputFilterArea {
187+ anchors.fill: parent
188+ blockInput: (hudButton.opacity == 1)
189+ }
135190 }
136191
137192 MouseArea {
138− anchors.fill: parent
139− enabled: bottombar.state == "shown"
193+ anchors {
194+ top: dismissArea.bottom
195+ left: parent.left
196+ right: parent.right
197+ bottom: parent.bottom
198+ }
199+ enabled: bottombar.state == "shown" && bottomBarVisibilityCommunicatorShell.position > 0
140200 onPressed: {
141201 bottombar.state = "hidden"
142202 }
143203 }
144204
145− InputFilterArea {
146− anchors.fill: parent
147− blockInput: (hudButton.opacity == 1)
148− }
149−
150205 states: [
151206 State {
152207 name: "hidden"
153− PropertyChanges { target: hudButton; opacity: 0}
154− PropertyChanges { target: hudButton; bottomMargin: units.gu(-1)}
208+ PropertyChanges { target: hudButton; opacity: 0 }
209+ PropertyChanges { target: hudButton; bottomMargin: units.gu(-2) }
210+ },
211+ State {
212+ name: "hint"
213+ extend: "hidden"
214+ PropertyChanges { target: hudButton; opacity: 0.5 }
215+ },
216+ State {
217+ name: "reveal"
218+ extend: "hint"
219+ PropertyChanges { target: hudButton; bottomMargin: units.gu(-2) + units.gu(2) * dragArea.commitProgress }
155220 },
156221 State {
157222 name: "shown"
158− PropertyChanges { target: hudButton; opacity: 1}
159− PropertyChanges { target: hudButton; bottomMargin: units.gu(0)}
223+ PropertyChanges { target: hudButton; opacity: 1 }
224+ PropertyChanges { target: hudButton; bottomMargin: units.gu(0) }
160225 }
161226 ]
162227}
Components/EdgeDemoOverlay.qml+9−2
@@ -121,7 +121,6 @@ Showable {
121121
122122 Column {
123123 id: labelGroup
124− layer.enabled: true // otherwise the underlining on "Skip intro" jumps
125124 spacing: units.gu(3)
126125
127126 anchors {
@@ -150,7 +149,15 @@ Showable {
150149 text: i18n.tr("Skip intro")
151150 color: UbuntuColors.orange
152151 fontSize: "small"
153− font.underline: true
152+
153+ Icon {
154+ anchors.left: parent.right
155+ anchors.verticalCenter: parent.verticalCenter
156+ height: units.dp(12)
157+ width: units.dp(12)
158+ name: "chevron"
159+ color: UbuntuColors.orange
160+ }
154161
155162 MouseArea {
156163 // Make clickable area bigger than just the link because
Components/PageHeader.qml+44−1
@@ -18,6 +18,7 @@ import QtQuick 2.0
1818import Ubuntu.Components 0.1
1919import Ubuntu.Components.Popups 0.1
2020import Ubuntu.Components.ListItems 0.1 as ListItem
21+import Unity 0.1
2122
2223Item {
2324 /*!
@@ -30,6 +31,7 @@ Item {
3031 property bool searchEntryEnabled: false
3132 property alias searchQuery: searchField.text
3233 property ListModel searchHistory: SearchHistoryModel {}
34+ property Scope scope
3335
3436 height: units.gu(8.5)
3537 implicitHeight: units.gu(8.5)
@@ -148,7 +150,7 @@ Item {
148150 hasClearButton: false
149151
150152 primaryItem: AbstractButton {
151− enabled: searchField.text != ""
153+ enabled: searchField.text != "" && !searchIndicator.running
152154 onClicked: {
153155 if (searchField.text != "") {
154156 searchHistory.addQuery(searchField.text)
@@ -158,8 +160,22 @@ Item {
158160 height: parent.height
159161 width: height
160162
163+ ActivityIndicator {
164+ id: searchIndicator
165+ objectName: "searchIndicator"
166+
167+ anchors {
168+ verticalCenter: parent.verticalCenter
169+ left: parent.left
170+ leftMargin: units.gu(0.5)
171+ }
172+
173+ running: opacity > 0
174+ }
175+
161176 Image {
162177 id: primaryImage
178+ objectName: "primaryImage"
163179 anchors {
164180 verticalCenter: parent.verticalCenter
165181 left: parent.left
@@ -167,6 +183,7 @@ Item {
167183 }
168184 width: units.gu(3)
169185 height: units.gu(3)
186+ visible: opacity > 0
170187 }
171188
172189 Item {
@@ -185,6 +202,32 @@ Item {
185202 onActiveFocusChanged: {
186203 if (!activeFocus) searchContainer.closePopover()
187204 }
205+
206+ states: [
207+ State {
208+ name: "searching"
209+ when: scope.searchInProgress && searchField.text !== ""
210+ PropertyChanges { target: searchIndicator; running: true; opacity: 1 }
211+ PropertyChanges { target: primaryImage; opacity: 0 }
212+ },
213+ State {
214+ name: "idle"
215+ when: !scope.searchInProgress || searchField.text === ""
216+ PropertyChanges { target: searchIndicator; opacity: 0 }
217+ PropertyChanges { target: primaryImage; opacity: 1 }
218+ }
219+ ]
220+
221+ transitions: [
222+ Transition {
223+ to: "searching"
224+ reversible: true
225+ SequentialAnimation {
226+ NumberAnimation { target: primaryImage; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
227+ NumberAnimation { target: searchIndicator; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
228+ }
229+ }
230+ ]
188231 }
189232
190233 states: [
Greeter/PinPadButton.qml → Components/PinPadButton.qmlrenamed

The content is the same.

Components/Stage.qml+4−1
@@ -97,7 +97,9 @@ Showable {
9797 if (shouldUseScreenshots) {
9898 stage.__focusApplicationUsingScreenshots(stage.focusedApplication);
9999 } else {
100− stage.__focusActualApplication(stage.focusedApplicationWhenUsingScreenshots);
100+ if (stage.focusedApplicationWhenUsingScreenshots) {
101+ stage.__focusActualApplication(stage.focusedApplicationWhenUsingScreenshots);
102+ }
101103 }
102104 }
103105
@@ -244,6 +246,7 @@ Showable {
244246 */
245247 delayedHideScreenshots.start();
246248 } else {
249+ stage.focusedApplicationWhenUsingScreenshots = null;
247250 stage.__hideScreenshots();
248251 }
249252 }
Components/Tile.qml+7−63
@@ -18,70 +18,14 @@ import QtQuick 2.0
1818import Ubuntu.Components 0.1
1919
2020AbstractButton {
21− id: root
22− property alias source: image.source
23− property alias fillMode: image.fillMode
24− property alias horizontalAlignment: image.horizontalAlignment
25− property alias verticalAlignment: image.verticalAlignment
26− property alias text: label.text
21+ property url source
22+ property int fillMode: Image.PreserveAspectCrop
23+ property int horizontalAlignment: Image.AlignHCenter
24+ property int verticalAlignment: Image.AlignVCenter
25+ property string text
2726 property int imageWidth
2827 property int imageHeight
28+ property int maximumLineCount: 1
2929
30− UbuntuShape {
31− id: icon
32− anchors {
33− top: parent.top
34− horizontalCenter: parent.horizontalCenter
35− }
36− radius: "medium"
37− width: imageWidth
38− height: imageHeight
39− image: Image {
40− id: image
41− objectName: "image"
42− sourceSize { width: icon.width; height: icon.height }
43− asynchronous: true
44− cache: false
45− }
46− }
47−
48− UbuntuShape {
49− id: borderPressed
50− objectName: "borderPressed"
51−
52− anchors.fill: icon
53− radius: "medium"
54− borderSource: "radius_pressed.sci"
55− opacity: root.pressed ? 1.0 : 0.0
56− Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
57− }
58−
59− Item {
60− anchors {
61− left: parent.left
62− right: parent.right
63− top: icon.bottom
64− }
65− height: units.gu(2)
66−
67− Label {
68− id: label
69− objectName: "label"
70− anchors {
71− baseline: parent.bottom
72− left: parent.left
73− right: parent.right
74− leftMargin: units.gu(1)
75− rightMargin: units.gu(1)
76− }
77−
78− color: Theme.palette.selected.backgroundText
79− opacity: 0.9
80− style: Text.Raised
81− styleColor: "black"
82− fontSize: "small"
83− elide: Text.ElideMiddle
84− horizontalAlignment: Text.AlignHCenter
85− }
86− }
30+ style: TileStyle {}
8731}
Components/TileStyle.qmlnew file+80
@@ -0,0 +1,80 @@
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+
20+Item {
21+ id: tile
22+
23+ anchors.fill: parent
24+
25+ UbuntuShape {
26+ id: icon
27+ anchors {
28+ top: parent.top
29+ horizontalCenter: parent.horizontalCenter
30+ }
31+ radius: "medium"
32+ width: styledItem.imageWidth
33+ height: styledItem.imageHeight
34+ image: Image {
35+ id: image
36+ objectName: "image"
37+ sourceSize { width: icon.width; height: icon.height }
38+ asynchronous: true
39+ cache: false
40+ source: styledItem.source
41+ fillMode: styledItem.fillMode
42+ horizontalAlignment: styledItem.horizontalAlignment
43+ verticalAlignment: styledItem.verticalAlignment
44+ }
45+ }
46+
47+ UbuntuShape {
48+ id: borderPressed
49+ objectName: "borderPressed"
50+
51+ anchors.fill: icon
52+ radius: "medium"
53+ borderSource: "radius_pressed.sci"
54+ opacity: styledItem.pressed ? 1.0 : 0.0
55+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
56+ }
57+
58+ Label {
59+ id: label
60+ objectName: "label"
61+ anchors {
62+ baseline: icon.bottom
63+ baselineOffset: units.gu(2)
64+ left: parent.left
65+ right: parent.right
66+ leftMargin: units.gu(1)
67+ rightMargin: units.gu(1)
68+ }
69+
70+ color: Theme.palette.selected.backgroundText
71+ opacity: 0.9
72+ style: Text.Raised
73+ styleColor: "black"
74+ fontSize: "small"
75+ elide: Text.ElideMiddle
76+ horizontalAlignment: Text.AlignHCenter
77+ text: styledItem.text
78+ maximumLineCount: styledItem.maximumLineCount
79+ }
80+}
Dash/Apps/DashPluginFilterGrid.qmlnew file+49
@@ -0,0 +1,49 @@
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+import "../Generic"
21+
22+GenericFilterGrid {
23+ id: filtergrid
24+
25+ delegate: Tile {
26+ id: tile
27+ objectName: "delegate" + index
28+ width: filtergrid.cellWidth
29+ height: filtergrid.cellHeight
30+ text: model.title
31+ imageWidth: filtergrid.iconWidth
32+ imageHeight: filtergrid.iconHeight
33+ source: model.icon
34+
35+ style: FlatTileStyle {
36+ disabled: model.rendererHints['scope_disabled'] === 1;
37+ }
38+
39+ onClicked: {
40+ var data = { model: model }
41+ filtergrid.clicked(index, data, tile.y)
42+ }
43+
44+ onPressAndHold: {
45+ var data = { model: model }
46+ filtergrid.pressAndHold(index, data, tile.y)
47+ }
48+ }
49+}
Dash/Apps/RunningApplicationsGrid.qml+20−1
@@ -22,6 +22,8 @@ ResponsiveFlowView {
2222 clip: true
2323
2424 signal updateScreenshots
25+ property alias enableHeightBehavior: heightBehaviour.enabled
26+ property bool enableHeightBehaviorOnNextCreation: firstModel.count + secondModel.count == 0
2527
2628 Connections {
2729 target: shell
@@ -29,7 +31,24 @@ ResponsiveFlowView {
2931 onStageScreenshotsReadyChanged: if (shell.dashShown && shell.stageScreenshotsReady) updateScreenshots();
3032 }
3133
32− Behavior on height { NumberAnimation { duration: 200; easing.type: Easing.InOutQuad } }
34+ Behavior on height {
35+ id: heightBehaviour
36+ enabled: false
37+ NumberAnimation { duration: 200; easing.type: Easing.InOutQuad }
38+ }
39+
40+ Connections {
41+ target: root.firstModel
42+ onCountChanged: {
43+ heightBehaviour.enabled = true;
44+ }
45+ }
46+ Connections {
47+ target: root.secondModel
48+ onCountChanged: {
49+ heightBehaviour.enabled = true;
50+ }
51+ }
3352
3453 property bool canEnableTerminationMode: true
3554
Dash/DashApps.qml+2
@@ -24,6 +24,7 @@ import "Apps"
2424
2525GenericScopeView {
2626 id: scopeView
27+ objectName: "DashApps"
2728
2829 // FIXME: a way to aggregate these models would be ideal
2930 property var mainStageApplicationsModel: shell.applicationManager.mainStageApplications
@@ -51,5 +52,6 @@ GenericScopeView {
5152
5253 onScopeChanged: {
5354 scopeView.scope.categories.overrideResults("recent", runningApplicationsModel);
55+ enableHeightBehaviorOnNextCreation = (mainStageApplicationsModel.count + sideStageApplicationModel.count == 0)
5456 }
5557}
Dash/DashContent.qml+1
@@ -114,6 +114,7 @@ Item {
114114 height: ListView.view.height
115115 asynchronous: true
116116 source: scopeMapper.map(scope.id)
117+ objectName: scope.id + " loader"
117118
118119 // these are needed for autopilot tests
119120 readonly property string scopeId: scope.id
Dash/Generic/FlatTileStyle.qmlnew file+78
@@ -0,0 +1,78 @@
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+
20+Item {
21+ id: tile
22+
23+ property bool disabled: false
24+
25+ anchors.fill: parent
26+
27+ Image {
28+ id: icon
29+ objectName: "image"
30+ width: styledItem.imageWidth
31+ height: styledItem.imageHeight
32+
33+ anchors.horizontalCenter: parent.horizontalCenter
34+
35+ sourceSize { width: width; height: height }
36+ asynchronous: true
37+ cache: false
38+ source: styledItem.source
39+ fillMode: styledItem.fillMode
40+ opacity: tile.disabled ? 0.3 : 1.0
41+ horizontalAlignment: styledItem.horizontalAlignment
42+ verticalAlignment: styledItem.verticalAlignment
43+ }
44+
45+ UbuntuShape {
46+ id: borderPressed
47+ objectName: "borderPressed"
48+
49+ anchors.fill: icon
50+ radius: "medium"
51+ borderSource: "radius_pressed.sci"
52+ opacity: styledItem.pressed ? 1.0 : 0.0
53+ Behavior on opacity { NumberAnimation { duration: 200; easing.type: Easing.OutQuint } }
54+ }
55+
56+ Label {
57+ id: label
58+ objectName: "label"
59+ anchors {
60+ baseline: icon.bottom
61+ baselineOffset: units.gu(2)
62+ left: parent.left
63+ right: parent.right
64+ leftMargin: units.gu(1)
65+ rightMargin: units.gu(1)
66+ }
67+
68+ color: Theme.palette.selected.backgroundText
69+ opacity: 0.9
70+ style: Text.Raised
71+ styleColor: "black"
72+ fontSize: "small"
73+ elide: Text.ElideMiddle
74+ horizontalAlignment: Text.AlignHCenter
75+ text: styledItem.text
76+ maximumLineCount: styledItem.maximumLineCount
77+ }
78+}
Dash/Generic/GenericFilterGrid.qml−3
@@ -39,11 +39,8 @@ FilterGrid {
3939 text: model.title
4040 imageWidth: filtergrid.iconWidth
4141 imageHeight: filtergrid.iconHeight
42−
4342 source: model.icon
4443
45− fillMode: Image.PreserveAspectCrop
46−
4744 onClicked: {
4845 var data = { model: model }
4946 filtergrid.clicked(index, data, tile.y)
Dash/Generic/WeatherFilterGrid.qmlnew file+49
@@ -0,0 +1,49 @@
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+GenericFilterGrid {
22+ id: filtergrid
23+
24+ delegateHeight: units.gu(11.5)
25+
26+ delegate: Tile {
27+ id: tile
28+ objectName: "delegate" + index
29+ width: filtergrid.cellWidth
30+ height: filtergrid.cellHeight
31+ text: model.title
32+ imageWidth: filtergrid.iconWidth
33+ imageHeight: filtergrid.iconHeight
34+ source: model.icon
35+ maximumLineCount: 2
36+
37+ style: FlatTileStyle {}
38+
39+ onClicked: {
40+ var data = { model: model }
41+ filtergrid.clicked(index, data, tile.y)
42+ }
43+
44+ onPressAndHold: {
45+ var data = { model: model }
46+ filtergrid.pressAndHold(index, data, tile.y)
47+ }
48+ }
49+}
Dash/GenericScopeView.qml+30−3
@@ -22,6 +22,7 @@ import "../Components/ListItems" as ListItems
2222ScopeView {
2323 id: scopeView
2424 readonly property alias previewShown: previewLoader.onScreen
25+ property bool enableHeightBehaviorOnNextCreation: false
2526
2627 onIsCurrentChanged: {
2728 pageHeader.resetSearch();
@@ -30,6 +31,8 @@ ScopeView {
3031
3132 onMovementStarted: categoryView.showHeader()
3233
34+ onPositionedAtBeginning: categoryView.positionAtBeginning()
35+
3336 Binding {
3437 target: scopeView.scope
3538 property: "searchQuery"
@@ -58,6 +61,7 @@ ScopeView {
5861
5962 ScopeListView {
6063 id: categoryView
64+ objectName: "categoryListView"
6165 anchors.fill: parent
6266 model: scopeView.categories
6367 forceNoClip: previewLoader.onScreen
@@ -82,9 +86,13 @@ ScopeView {
8286 right: parent.right
8387 }
8488
85− source: getRenderer(model.renderer, model.contentType)
89+ source: getRenderer(model.renderer, model.contentType, model.rendererHint)
8690
8791 onLoaded: {
92+ if (item.enableHeightBehavior !== undefined && item.enableHeightBehaviorOnNextCreation !== undefined) {
93+ item.enableHeightBehavior = scopeView.enableHeightBehaviorOnNextCreation;
94+ scopeView.enableHeightBehaviorOnNextCreation = false;
95+ }
8896 if (source.toString().indexOf("Apps/RunningApplicationsGrid.qml") != -1) {
8997 // TODO: the running apps grid doesn't support standard scope results model yet
9098 item.firstModel = Qt.binding(function() { return results.firstModel })
@@ -101,6 +109,12 @@ ScopeView {
101109 }
102110 }
103111
112+ Component.onDestruction: {
113+ if (item.enableHeightBehavior !== undefined && item.enableHeightBehaviorOnNextCreation !== undefined) {
114+ scopeView.enableHeightBehaviorOnNextCreation = item.enableHeightBehaviorOnNextCreation;
115+ }
116+ }
117+
104118 Connections {
105119 target: rendererLoader.item
106120 onClicked: {
@@ -176,6 +190,7 @@ ScopeView {
176190 width: categoryView.width
177191 text: scopeView.scope.name
178192 searchEntryEnabled: true
193+ scope: scopeView.scope
179194 }
180195 }
181196
@@ -185,7 +200,7 @@ ScopeView {
185200 }
186201 }
187202
188− function getRenderer(rendererId, contentType) {
203+ function getRenderer(rendererId, contentType, rendererHint) {
189204 if (rendererId == "default") {
190205 rendererId = getDefaultRendererId(contentType);
191206 }
@@ -194,10 +209,22 @@ ScopeView {
194209 switch (contentType) {
195210 case "video": return "Generic/GenericFilterGridPotrait.qml";
196211 case "music": return "Music/MusicFilterGrid.qml";
212+ case "apps": {
213+ if (rendererHint == "toggled")
214+ return "Apps/DashPluginFilterGrid.qml";
215+ else
216+ return "Generic/GenericFilterGrid.qml";
217+ }
218+ case "weather": return "Generic/WeatherFilterGrid.qml";
197219 default: return "Generic/GenericFilterGrid.qml";
198220 }
199221 }
200− case "carousel": return "Generic/GenericCarousel.qml";
222+ case "carousel": {
223+ switch (contentType) {
224+ case "music": return "Music/MusicCarousel.qml";
225+ default: return "Generic/GenericCarousel.qml";
226+ }
227+ }
201228 case "special": {
202229 switch (contentType) {
203230 case "apps": return "Apps/RunningApplicationsGrid.qml";
Greeter/Gradient.js+7−3
@@ -15,8 +15,12 @@
1515 */
1616
1717function threeColorByIndex(index, total, colors) {
18− var red, green, blue
19− var p = index / total
18+ var red, green, blue;
19+ var p = 0.0;
20+
21+ if(total > 0) {
22+ p = index / total;
23+ }
2024
2125 if (p < 0.5) {
2226 red = (colors.main.r * p * 2.0) + colors.start.r * (0.5 - p) * 2.0;
@@ -28,5 +32,5 @@ function threeColorByIndex(index, total, colors) {
2832 blue = colors.end.b * (p - 0.5) * 2.0 + colors.main.b * (1.0 - p) * 2.0;
2933 }
3034
31− return Qt.rgba(red, green, blue, 1)
35+ return Qt.rgba(red, green, blue, 1);
3236}
Greeter/GreeterContent.qml+11−7
@@ -135,19 +135,23 @@ MouseArea {
135135
136136 Infographics {
137137 id: infographics
138+ objectName: "infographics"
138139 height: narrowMode ? parent.height : 0.75 * parent.height
139140 model: greeterContentLoader.infographicModel
140141
141− Component.onCompleted: infographics.updateUsername(greeterContentLoader.currentIndex)
142+ property string selectedUser
143+ property string infographicUser: AccountsService.statsWelcomeScreen ? selectedUser : ""
144+ onInfographicUserChanged: greeterContentLoader.infographicModel.username = infographicUser
142145
143− Connections {
144− target: root
145− onSelected: infographics.updateUsername(uid)
146+ Component.onCompleted: {
147+ selectedUser = greeterContentLoader.model.data(greeterContentLoader.currentIndex, LightDM.UserRoles.NameRole)
148+ greeterContentLoader.infographicModel.username = infographicUser
149+ greeterContentLoader.infographicModel.readyForDataChange()
146150 }
147151
148− function updateUsername(uid) {
149− greeterContentLoader.infographicModel.username = greeterContentLoader.model.data(uid, LightDM.UserRoles.NameRole)
150− greeterContentLoader.infographicModel.readyForDataChangeSlot();
152+ Connections {
153+ target: root
154+ onSelected: infographics.selectedUser = greeterContentLoader.model.data(uid, LightDM.UserRoles.NameRole)
151155 }
152156
153157 anchors {
Greeter/Infographics.qml+10−1
@@ -29,21 +29,30 @@ Item {
2929 Connections {
3030 target: model
3131
32+ onDataAboutToAppear: startHideAnimation() // hide "no data" label
3233 onDataAppeared: startShowAnimation()
3334
3435 onDataAboutToChange: startHideAnimation()
35−
3636 onDataChanged: startShowAnimation()
3737
3838 onDataAboutToDisappear: startHideAnimation()
39+ onDataDisappeared: startShowAnimation() // show "no data" label
3940 }
4041
4142 function startShowAnimation() {
43+ dotHideAnimTimer.stop()
44+ circleShrinkAnimTimer.stop()
45+ notification.hideAnim.stop()
46+
4247 dotShowAnimTimer.startFromBeginning()
4348 notification.showAnim.start()
4449 }
4550
4651 function startHideAnimation() {
52+ dotShowAnimTimer.stop()
53+ circleGrowAnimTimer.stop()
54+ notification.showAnim.stop()
55+
4756 dotHideAnimTimer.startFromBeginning()
4857 notification.hideAnim.start()
4958 }
Notifications/Notification.qml+42−1
@@ -17,6 +17,8 @@
1717import QtQuick 2.0
1818import Ubuntu.Components 0.1
1919import Unity.Notifications 1.0
20+import QMenuModel 0.1
21+import Utils 0.1
2022
2123UbuntuShape {
2224 id: notification
@@ -38,6 +40,24 @@ UbuntuShape {
3840
3941 clip: true
4042
43+ UnityMenuModelPaths {
44+ id: paths
45+
46+ source: hints["x-canonical-private-menu-model"]
47+
48+ busNameHint: "busName"
49+ actionsHint: "actions"
50+ menuObjectPathHint: "menuPath"
51+ }
52+
53+ UnityMenuModel {
54+ id: unityMenuModel
55+
56+ busName: paths.busName
57+ actions: paths.actions
58+ menuObjectPath: paths.menuObjectPath
59+ }
60+
4161 Behavior on implicitHeight {
4262 id: heightBehavior
4363
@@ -141,6 +161,27 @@ UbuntuShape {
141161 }
142162 }
143163
164+ Column {
165+ objectName: "dialogListView"
166+ spacing: units.gu(2)
167+
168+ visible: count > 0
169+
170+ anchors.left: parent.left; anchors.right: parent.right
171+
172+ Repeater {
173+ model: unityMenuModel
174+
175+ NotificationMenuItemFactory {
176+ anchors.left: parent.left; anchors.right: parent.right
177+
178+ menuModel: unityMenuModel
179+ menuData: model
180+ menuIndex: index
181+ }
182+ }
183+ }
184+
144185 Item {
145186 id: buttonRow
146187
@@ -195,7 +236,7 @@ UbuntuShape {
195236 top: parent.top
196237 bottom: parent.bottom
197238 }
198− gradient: notification.hints == Notification.ButtonTint ? UbuntuColors.orangeGradient : UbuntuColors.greyGradient
239+ gradient: notification.hints["x-canonical-private-button-tint"] == "true" ? UbuntuColors.orangeGradient : UbuntuColors.greyGradient
199240 visible: width > 0
200241 onClicked: notification.notification.invokeAction(actionRepeater.itemAt(0).actionId)
201242 }
Notifications/NotificationMenuItemFactory.qmlnew file+97
@@ -0,0 +1,97 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Nick Dedekind <nick.dedekind@canonical.com>
18+ */
19+
20+import QtQuick 2.0
21+import Ubuntu.Components 0.1
22+import "../Components"
23+import "../Greeter"
24+
25+Loader {
26+ id: menuFactory
27+
28+ property QtObject menuModel: null
29+ property QtObject menuData: null
30+ property int menuIndex
31+ property var notification
32+
33+ property var _map: {
34+ "com.canonical.snapdecision.textfield": textfield,
35+ "com.canonical.snapdecision.pinlock" : pinLock,
36+ }
37+
38+ sourceComponent: {
39+ if (menuData.type !== undefined) {
40+ var component = _map[menuData.type];
41+ if (component !== undefined) {
42+ return component;
43+ }
44+ } else {
45+ if (menuData.isSeparator) {
46+ return divMenu;
47+ }
48+ }
49+ return standardMenu;
50+ }
51+
52+ Component {
53+ id: textfield
54+
55+ Column {
56+ spacing: units.gu(.5)
57+
58+ anchors.left: parent.left; anchors.right: parent.right
59+
60+ Component.onCompleted: {
61+ menuModel.loadExtendedAttributes(menuIndex, {"x-echo-mode-password": "bool"});
62+ textfield.echoMode = menuData.ext.xEchoModePassword ? TextInput.Password : TextInput.Normal
63+ }
64+
65+ Label {
66+ fontSize: "medium"
67+ color: "white"
68+ text: menuData.label
69+ }
70+
71+ TextField {
72+ id: textfield
73+
74+ anchors.left: parent.left; anchors.right: parent.right
75+
76+ onTextChanged: {
77+ menuModel.changeState(menuIndex, text);
78+ }
79+ }
80+ }
81+ }
82+
83+ Component {
84+ id: pinLock
85+ PinLockscreen {
86+ anchors.left: parent.left; anchors.right: parent.right
87+
88+ onEntered: {
89+ menuModel.changeState(menuIndex, passphrase);
90+ }
91+
92+ onCancel: {
93+ menuModel.activate(menuIndex, false);
94+ }
95+ }
96+ }
97+}
Panel/Indicators.qml+4−1
@@ -17,6 +17,7 @@
1717import QtQuick 2.0
1818import Ubuntu.Components 0.1
1919import Ubuntu.Gestures 0.1
20+import Unity.Indicators 0.1 as Indicators
2021
2122import "../Components"
2223import "../Components/ListItems"
@@ -249,8 +250,10 @@ Showable {
249250 anchors.fill: indicatorRow
250251 }
251252
252− IndicatorsDataModel {
253+ Indicators.IndicatorsModel {
253254 id: indicatorsModel
255+
256+ Component.onCompleted: load()
254257 }
255258
256259 IndicatorRow {
Panel/Indicators/DatetimeIndicatorPage.qmldeleted−97
@@ -1,97 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− * Ubo Riboni <ugo.riboni@canonical.com>
19− */
20−
21−import QtQuick 2.0
22−import Ubuntu.Components 0.1
23−
24−Flickable {
25− id: page
26−
27− contentHeight: image.height
28−
29− Image {
30− id: image
31− anchors {
32− left: parent.left
33− right: parent.right
34− }
35− source: "../graphics/time_and_date@18.png"
36− fillMode: Image.PreserveAspectFit
37− }
38−
39− Item {
40− anchors {
41− top: parent.top
42− topMargin: units.gu(5)
43− left: parent.left
44− right: parent.right
45− }
46−
47− height: units.gu(30)
48−
49− Label {
50− id: timeLabel
51− anchors {
52− horizontalCenter: parent.horizontalCenter
53− verticalCenter: parent.verticalCenter
54− }
55−
56− text: ""
57− color: Theme.palette.selected.backgroundText
58− font.weight: Font.Light
59− font.pixelSize: units.gu(6)
60− }
61−
62− Label {
63− id: dateLabel
64−
65− anchors {
66− left: parent.left
67− leftMargin: units.gu(2)
68− bottom: parent.bottom
69− bottomMargin: units.gu(1.5)
70− }
71− text: ""
72− color: Theme.palette.selected.backgroundText
73− fontSize: "small"
74− }
75− }
76−
77− Timer {
78− interval: 1000 * 10 // 10 seconds
79− running: true
80− repeat: true
81− triggeredOnStart: true
82− onTriggered: updateTime();
83− }
84−
85− function updateTime() {
86− var dt = new Date();
87− var time = Qt.formatTime(dt);
88− var space = time.indexOf(" ");
89− timeLabel.text = time.substr(0, space > 0 ? space : 5);
90− dateLabel.text = Qt.formatDateTime(dt, "dddd,\ndd MMMM");
91− }
92−
93− // Make it compatible with the PluginItem interface
94− function start() {}
95− function stop() {}
96− function reset() {}
97−}
Panel/Indicators/DatetimeIndicatorWidget.qmldeleted−67
@@ -1,67 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Unity.IndicatorsLegacy 0.1 as Indicators
23−
24−Indicators.IndicatorWidget {
25− id: indicatorWidget
26−
27− width: timeLabel.width + units.gu(1)
28− rootMenuType: "com.canonical.indicator.root.time"
29−
30− property alias label: timeLabel.text
31−
32− Label {
33− id: timeLabel
34− objectName: "timeLabel"
35− color: Theme.palette.selected.backgroundText
36− opacity: 0.8
37− font.family: "Ubuntu"
38− fontSize: "medium"
39− anchors.centerIn: parent
40− text: Qt.formatTime(timer.dateNow)
41− }
42−
43− Timer {
44− id: timer
45− interval: 1000 * 10
46− running: indicatorWidget.visible
47− repeat: true
48− triggeredOnStart: true
49− property date dateNow
50−
51− onTriggered: dateNow = new Date
52− }
53−
54− onActionStateChanged: {
55− if (action == undefined || !action.valid) {
56− enabled = false;
57− return;
58− }
59−
60− if (action.state == undefined) {
61− enabled = false;
62− return;
63− }
64−
65− enabled = action.state[3];
66− }
67−}
Panel/Indicators/DefaultIndicatorPage.qml+1−1
@@ -18,7 +18,7 @@
1818 */
1919
2020import QtQuick 2.0
21−import Unity.IndicatorsLegacy 0.1 as Indicators
21+import Unity.Indicators 0.1 as Indicators
2222
2323Indicators.IndicatorPage {
2424 anchors.fill: parent
Panel/Indicators/DefaultIndicatorPage2.qmldeleted−25
@@ -1,25 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Unity.Indicators 0.1 as Indicators
22−
23−Indicators.IndicatorPage {
24− anchors.fill: parent
25−}
Panel/Indicators/DefaultIndicatorWidget.qml+47−21
@@ -19,16 +19,16 @@
1919
2020import QtQuick 2.0
2121import Ubuntu.Components 0.1
22−import Unity.IndicatorsLegacy 0.1 as Indicators
22+import Unity.Indicators 0.1 as Indicators
2323
2424Indicators.IndicatorWidget {
2525 id: indicatorWidget
2626
27− enabled:true
2827 width: itemRow.width + units.gu(0.5)
2928
30− property alias label: itemLabel.text
31− property alias iconSource: itemImage.source
29+ property alias leftLabel: itemLeftLabel.text
30+ property alias rightLabel: itemRightLabel.text
31+ property var icons: undefined
3232
3333 Row {
3434 id: itemRow
@@ -40,19 +40,43 @@ Indicators.IndicatorWidget {
4040 }
4141 spacing: units.gu(0.5)
4242
43− // FIXME : Should us Ubuntu.Icon . results in low res images
44− Image {
45− id: itemImage
46− objectName: "itemImage"
47− visible: source != ""
48− height: indicatorWidget.iconSize
49− width: indicatorWidget.iconSize
43+ Label {
44+ id: itemLeftLabel
45+ objectName: "leftLabel"
46+ color: Theme.palette.selected.backgroundText
47+ opacity: 0.8
48+ font.family: "Ubuntu"
49+ fontSize: "medium"
5050 anchors.verticalCenter: parent.verticalCenter
51+ visible: text != ""
52+ }
53+
54+ Row {
55+ width: childrenRect.width
56+ anchors {
57+ top: parent.top
58+ bottom: parent.bottom
59+ }
60+ spacing: units.gu(0.5)
61+
62+ Repeater {
63+ model: indicatorWidget.icons
64+
65+ Image {
66+ id: itemImage
67+ objectName: "itemImage"
68+ visible: source != ""
69+ source: modelData
70+ height: indicatorWidget.iconSize
71+ width: indicatorWidget.iconSize
72+ anchors.verticalCenter: parent.verticalCenter
73+ }
74+ }
5175 }
5276
5377 Label {
54− id: itemLabel
55− objectName: "itemLabel"
78+ id: itemRightLabel
79+ objectName: "rightLabel"
5680 color: Theme.palette.selected.backgroundText
5781 opacity: 0.8
5882 font.family: "Ubuntu"
@@ -62,16 +86,18 @@ Indicators.IndicatorWidget {
6286 }
6387 }
6488
65− onActionStateChanged: {
66− if (action == undefined || !action.valid) {
67− return;
68− }
69−
70− if (action.state == undefined) {
89+ onRootActionStateChanged: {
90+ if (rootActionState == undefined) {
91+ leftLabel = "";
92+ rightLabel = "";
93+ icons = undefined;
94+ enabled = false;
7195 return;
7296 }
7397
74− label = action.state[Indicators.ActionState.Label];
75− iconSource = "image://theme/" + action.state[Indicators.ActionState.IconSource];
98+ leftLabel = rootActionState.leftLabel ? rootActionState.leftLabel : "";
99+ rightLabel = rootActionState.rightLabel ? rootActionState.rightLabel : "";
100+ icons = rootActionState.icons;
101+ enabled = rootActionState.visible;
76102 }
77103}
Panel/Indicators/DefaultIndicatorWidget2.qmldeleted−103
@@ -1,103 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Unity.Indicators 0.1 as Indicators
23−
24−Indicators.IndicatorWidget {
25− id: indicatorWidget
26−
27− width: itemRow.width + units.gu(0.5)
28−
29− property alias leftLabel: itemLeftLabel.text
30− property alias rightLabel: itemRightLabel.text
31− property var icons: undefined
32−
33− Row {
34− id: itemRow
35− objectName: "itemRow"
36− anchors {
37− top: parent.top
38− bottom: parent.bottom
39− horizontalCenter: parent.horizontalCenter
40− }
41− spacing: units.gu(0.5)
42−
43− Label {
44− id: itemLeftLabel
45− objectName: "leftLabel"
46− color: Theme.palette.selected.backgroundText
47− opacity: 0.8
48− font.family: "Ubuntu"
49− fontSize: "medium"
50− anchors.verticalCenter: parent.verticalCenter
51− visible: text != ""
52− }
53−
54− Row {
55− width: childrenRect.width
56− anchors {
57− top: parent.top
58− bottom: parent.bottom
59− }
60− spacing: units.gu(0.5)
61−
62− Repeater {
63− model: indicatorWidget.icons
64−
65− Image {
66− id: itemImage
67− objectName: "itemImage"
68− visible: source != ""
69− source: modelData
70− height: indicatorWidget.iconSize
71− width: indicatorWidget.iconSize
72− anchors.verticalCenter: parent.verticalCenter
73− }
74− }
75− }
76−
77− Label {
78− id: itemRightLabel
79− objectName: "rightLabel"
80− color: Theme.palette.selected.backgroundText
81− opacity: 0.8
82− font.family: "Ubuntu"
83− fontSize: "medium"
84− anchors.verticalCenter: parent.verticalCenter
85− visible: text != ""
86− }
87− }
88−
89− onActionStateChanged: {
90− if (actionState == undefined) {
91− leftLabel = "";
92− rightLabel = "";
93− icons = undefined;
94− enabled = false;
95− return;
96− }
97−
98− leftLabel = actionState.leftLabel ? actionState.leftLabel : "";
99− rightLabel = actionState.rightLabel ? actionState.rightLabel : "";
100− icons = actionState.icons;
101− enabled = actionState.visible;
102− }
103−}
Panel/Indicators/MessagingIndicatorPage.qmldeleted−35
@@ -1,35 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Unity.IndicatorsLegacy 0.1 as Indicators
23−
24−Indicators.IndicatorPage {
25− anchors.fill: parent
26−
27− highlightFollowsCurrentItem: false
28− emptyText: "You have no more outstanding messages."
29−
30− function stop() {
31− // never stops the service
32− // this will keep all objects in memory, consume more memory
33− // but will optimize the menu contruction on the screen
34− }
35−}
Panel/Indicators/MessagingIndicatorWidget.qmldeleted−25
@@ -1,25 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−
22−DefaultIndicatorWidget {
23− // default the icon so we have something to show when we don't have the bus.
24− iconSource: "image://theme/indicator-messages"
25−}
Panel/Indicators/NetworkIndicatorPage.qmldeleted−83
@@ -1,83 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Unity.IndicatorsLegacy 0.1 as Indicators
22−import Unity.IndicatorsLegacy.Network 0.1 as ICNetwork
23−import Ubuntu.Components 0.1
24−
25−PageStack {
26− id: networkPage
27− // Stops the search for a parent tree node.
28− // We don't want it going up to the indicator tabs.
29− // FIXME: need a better way of doing this.
30− // https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1211704
31− __propagated: null
32−
33− property alias title: _mainPage.title
34− property alias emptyText: pluginItem.emptyText
35− property alias busType: pluginItem.busType
36− property alias busName: pluginItem.busName
37− property alias actionsObjectPath : pluginItem.actionsObjectPath
38− property alias menuObjectPaths : pluginItem.menuObjectPaths
39−
40− anchors.fill: parent
41−
42− Page {
43− id: _mainPage
44−
45− Indicators.IndicatorPage {
46− id: pluginItem
47− anchors.fill: parent
48− }
49− }
50−
51− Component {
52− id: passwordPageComponent
53−
54− ICNetwork.PasswordPage {
55− agent: networkAgent
56− }
57− }
58−
59− ICNetwork.NetworkAgent {
60− id: networkAgent
61−
62− onSecretRequested: {
63− networkPage.push(passwordPageComponent, {"token": token});
64− }
65− }
66−
67− function start()
68− {
69− push(_mainPage);
70− pluginItem.start();
71− }
72−
73− function stop()
74− {
75− clear();
76− pluginItem.stop();
77− }
78−
79− function reset()
80− {
81− pluginItem.reset();
82− }
83−}
Panel/Indicators/NetworkIndicatorPage2.qmldeleted−82
@@ -1,82 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Unity.Indicators 0.1 as Indicators
22−import Unity.Indicators.Network 0.1 as ICNetwork
23−import Ubuntu.Components 0.1
24−
25−PageStack {
26− id: networkPage
27− // Stops the search for a parent tree node.
28− // We don't want it going up to the indicator tabs.
29− // FIXME: need a better way of doing this.
30− // https://bugs.launchpad.net/ubuntu-ui-toolkit/+bug/1211704
31− __propagated: null
32−
33− property alias title: _mainPage.title
34− property alias emptyText: pluginItem.emptyText
35− property alias busName: pluginItem.busName
36− property alias actionsObjectPath : pluginItem.actionsObjectPath
37− property alias menuObjectPaths : pluginItem.menuObjectPaths
38−
39− anchors.fill: parent
40−
41− Page {
42− id: _mainPage
43−
44− Indicators.IndicatorPage {
45− id: pluginItem
46− anchors.fill: parent
47− }
48− }
49−
50− Component {
51− id: passwordPageComponent
52−
53− ICNetwork.PasswordPage {
54− agent: networkAgent
55− }
56− }
57−
58− ICNetwork.NetworkAgent {
59− id: networkAgent
60−
61− onSecretRequested: {
62− networkPage.push(passwordPageComponent, {"token": token});
63− }
64− }
65−
66− function start()
67− {
68− push(_mainPage);
69− pluginItem.start();
70− }
71−
72− function stop()
73− {
74− clear();
75− pluginItem.stop();
76− }
77−
78− function reset()
79− {
80− pluginItem.reset();
81− }
82−}
Panel/Indicators/NetworkIndicatorWidget.qmldeleted−112
@@ -1,112 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Unity.IndicatorsLegacy 0.1 as Indicators
23−
24−Indicators.IndicatorWidget {
25− id: indicatorWidget
26−
27− width: networkIcon.width + units.gu(0.5)
28−
29− property int signalStrength: 0
30− property int connectionState: Indicators.NetworkConnection.Initial
31− rootMenuType: "com.canonical.indicator.root.network"
32−
33− // FIXME : Should us Ubuntu.Icon . results in low res images
34− Image {
35− id: networkIcon
36− objectName: "itemImage"
37− source: get_icon_for_signal(connectionState, signalStrength)
38− visible: source != ""
39− height: indicatorWidget.iconSize
40− width: indicatorWidget.iconSize
41− anchors.centerIn: parent
42− }
43−
44− onActionStateChanged: {
45− if (action == undefined || !action.valid) {
46− enabled = false;
47− return;
48− }
49−
50− if (action.state == undefined) {
51− enabled = false;
52− connectionState = 0;
53− return;
54− }
55−
56− enabled = true;
57− connectionState = action.state[Indicators.NetworkActionState.Connection];
58− if (connectionState == Indicators.NetworkConnection.Activated) {
59− signalStrength = action.state[Indicators.NetworkActionState.SignalStrength];
60− }
61− }
62−
63− NumberAnimation {
64− id: activation_animation
65− target: indicatorWidget
66− property: "signalStrength"
67− from: 0
68− to: 100
69− duration: 2500 // 5 states in 2.5 seconds
70− loops: Animation.Infinite
71− }
72−
73− states: [
74− State {
75− name: "unknown"
76− when: connectionState < Indicators.NetworkConnection.Activating || connectionState > Indicators.NetworkConnection.Deactivating
77− PropertyChanges { target: activation_animation; running: false }
78− },
79− State {
80− name: "activating"
81− when: connectionState == Indicators.NetworkConnection.Activating
82− PropertyChanges { target: activation_animation; running: true }
83− },
84− State {
85− name: "activated"
86− when: connectionState == Indicators.NetworkConnection.Activated
87− PropertyChanges { target: activation_animation; running: false }
88− },
89− State {
90− name: "deactivating"
91− when: connectionState == Indicators.NetworkConnection.Deactivating
92− PropertyChanges { target: activation_animation; running: true }
93− }
94− ]
95−
96−
97− function get_icon_for_signal(con_state, value) {
98− if (con_state >= Indicators.NetworkConnection.Activating && con_state <= Indicators.NetworkConnection.Deactivating) {
99− if (value == 0) {
100− return "image://theme/nm-signal-00";
101− } else if (value <= 25) {
102− return "image://theme/nm-signal-25";
103− } else if (value <= 50) {
104− return "image://theme/nm-signal-50";
105− } else if (value <= 75) {
106− return "image://theme/nm-signal-75";
107− }
108− return "image://theme/nm-signal-100";
109− }
110− return "image://theme/wifi-none";
111− }
112−}
Panel/Indicators/SoundIndicatorWidget.qmldeleted−26
@@ -1,26 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−
22−DefaultIndicatorWidget {
23− // default the icon so we have something to show when we don't have the bus.
24− iconSource: "image://theme/audio-volume-high"
25− enabled: true
26−}
Panel/Indicators/client/IndicatorsList.qml+16−14
@@ -20,7 +20,7 @@
2020import QtQuick 2.0
2121import Ubuntu.Components 0.1
2222import Ubuntu.Components.ListItems 0.1 as ListItem
23−import Unity.IndicatorsLegacy 0.1 as Indicators
23+import Unity.Indicators 0.1 as Indicators
2424import "../.."
2525
2626Page {
@@ -28,8 +28,10 @@ Page {
2828 anchors.fill: parent
2929 title: "Plugin list"
3030
31− IndicatorsDataModel {
31+ Indicators.IndicatorsModel {
3232 id: indicatorsModel
33+
34+ Component.onCompleted: load()
3335 }
3436
3537 ListView {
@@ -38,24 +40,24 @@ Page {
3840 anchors.fill: parent
3941 model: indicatorsModel
4042
41− delegate: Indicators.MenuItem {
43+ delegate: Indicators.FramedMenuItem {
4244 anchors.left: parent.left
4345 anchors.right: parent.right
44− progression: isValid
4546 objectName: identifier
4647
47− Label {
48− anchors.left: parent.left
49− anchors.leftMargin: units.gu(0.5)
50− anchors.verticalCenter: parent.verticalCenter
51− text: title
52− }
48+ text: title
5349
5450 onClicked: {
55− if (progression) {
56− var new_page = Qt.createComponent("IndicatorsPage.qml");
57− page.pageStack.push(new_page.createObject(pages), {"indicatorProperties" : model.indicatorProperties, "pageSource" : model.pageSource});
58− }
51+ var new_page = Qt.createComponent("IndicatorsPage.qml");
52+ page.pageStack.push(new_page.createObject(pages), {"indicatorProperties" : model.indicatorProperties, "pageSource" : model.pageSource});
53+ }
54+
55+ Rectangle {
56+ id: background
57+
58+ anchors.fill: parent
59+ color: "#221e1c"
60+ z: -1
5961 }
6062 }
6163 }
Panel/Indicators/client/IndicatorsTree.qml+4
@@ -44,6 +44,10 @@ Page {
4444 menuObjectPath: page.deviceMenuObjectPath
4545 }
4646
47+ Indicators.RootActionState {
48+ menu: unityModel
49+ }
50+
4751 Indicators.ModelPrinter {
4852 id: printer
4953 model: unityModel
Panel/IndicatorsDataModel.qmldeleted−79
@@ -1,79 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Unity.Indicators 0.1 as Indicators
22−import Utils 0.1
23−
24−Indicators.IndicatorsModel {
25− id: ic_model
26−
27− Component.onCompleted: load()
28−
29− indicatorData : {
30− 'indicator-location' : {
31− 'title': 'Location',
32− 'description' : '',
33− 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
34− 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage2.qml'
35− },
36− 'indicator-bluetooth' : {
37− 'title': 'Bluetooth',
38− 'description' : '',
39− 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
40− 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage2.qml'
41− },
42− 'indicator-messages' : {
43− 'title': 'Messaging',
44− 'description' : '',
45− 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
46− 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage2.qml'
47− },
48− 'indicator-sound' : {
49− 'title': 'Sound',
50− 'description' : '',
51− 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
52− 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage2.qml'
53− },
54− 'indicator-network' : {
55− 'title': 'Networks',
56− 'description' : '',
57− 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
58− 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/NetworkIndicatorPage2.qml'
59− },
60− 'indicator-power' : {
61− 'title': 'Battery',
62− 'description' : '',
63− 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
64− 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage2.qml'
65− },
66− 'indicator-session' : {
67− 'title': 'Session',
68− 'description' : '',
69− 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
70− 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage2.qml'
71− },
72− 'indicator-datetime' : {
73− 'title': 'Date and Time',
74− 'description' : '',
75− 'widgetSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorWidget2.qml',
76− 'pageSource' : ApplicationPaths.shellAppDirectory()+'/Panel/Indicators/DefaultIndicatorPage2.qml'
77− }
78− }
79−}
Panel/MenuContent.qml+9−2
@@ -100,16 +100,17 @@ MainView {
100100 Tab {
101101 id: tab
102102 objectName: model.identifier
103− title: model.title
104103
105104 page: Page {
106105 Loader {
106+ id: loader
107107 clip: true
108108 anchors.fill: parent
109109 source: pageSource
110110 asynchronous: true
111111
112− property bool contentActive: content.__contentActive && menuActivator.content[index].active
112+ readonly property bool indexActive: index >= 0 && index < menuActivator.count && menuActivator.content[index].active
113+ readonly property bool contentActive: content.__contentActive && indexActive
113114
114115 onContentActiveChanged: {
115116 if (contentActive && item) {
@@ -136,6 +137,12 @@ MainView {
136137 item.start()
137138 }
138139 }
140+
141+ Binding {
142+ target: tab
143+ property: "title"
144+ value: loader.item && loader.item.hasOwnProperty("title") && loader.item.title !== "" ? loader.item.title : model.identifier
145+ }
139146 }
140147 }
141148 }
Shell.qml+3−1
@@ -623,6 +623,7 @@ FocusScope {
623623 }
624624
625625 Bottombar {
626+ id: bottombar
626627 theHud: hud
627628 anchors.fill: parent
628629 enabled: hud.available
@@ -650,7 +651,7 @@ FocusScope {
650651 onDashItemSelected: showHome()
651652 onDash: {
652653 if (stages.shown) {
653− dash.setCurrentScope("applications.scope", true, false)
654+ dash.setCurrentScope("applications.scope", true /* animate */, true /* reset */)
654655 stages.hide();
655656 launcher.hide();
656657 }
@@ -663,6 +664,7 @@ FocusScope {
663664 if (shown) {
664665 panel.indicators.hide()
665666 hud.hide()
667+ bottombar.hide()
666668 }
667669 }
668670 }
debian/changelog+81
@@ -1,3 +1,84 @@
1+unity8 (7.82+13.10.20131004.1-0ubuntu1) saucy; urgency=low
2+
3+ [ Michał Sawicz ]
4+ * Bump to indicate support for extended snap decisions.
5+ * Make Tile themeable, add renderers for Dash Plugins and weather.
6+ (LP: #1231948)
7+ * Drop network agents now that they're in indicator-network instead.
8+
9+ [ Michal Hruby ]
10+ * Differentiate generic and music carousels.
11+ * Use the thumbnailer image provider for scope results that don't
12+ specify icon as well as for previews.
13+ * Added an indicator which is displayed in the search bar whenever a
14+ search is in progress. Added accompanying test in tst_PageHeader.
15+ * Expose rendererHint to shell.
16+
17+ [ Albert Astals ]
18+ * Update pot file. (LP: #1232374)
19+ * Only enable the animation when the item is on screen (i.e. !culled)
20+ . (LP: #1200374)
21+ * Do not crash on positionAtBeginning if the list is empty .
22+ * Enable/disable running apps height animation in a less error prone
23+ way.
24+
25+ [ Michael Terry ]
26+ * Use a chevron after 'Skip intro' and drop the underlining.
27+ * Load testability driver when QT_LOAD_TESTABILITY is set. (LP:
28+ #1226234)
29+ * Listen to the system setting StatsWelcomeScreen, which tells us
30+ whether to show user-specific infographic data in the greeter. (LP:
31+ #1207857)
32+
33+ [ Gerry Boland ]
34+ * WM: ensure focusedApplicationWhenUsingScreenshots reset when unused,
35+ and only used when set. Fixes window focus conflict between shell
36+ and ApplicationManager.
37+
38+ [ Nick Dedekind ]
39+ * Removed deprecated Unity.IndicatorsLegacy plugin.
40+ * Added actionState parser to the indicators-client text printer so
41+ that we get the icon.
42+ * Moved indicator page titles to the root action state of menu model.
43+ (LP: #1223635)
44+
45+ [ Mirco Müller ]
46+ * Added rendering- and interaction-support for the first three
47+ extended snap-decision dialog-cases password-entry, user-
48+ authentication and simunlock.
49+
50+ [ Daniel d'Andrada ]
51+ * Revert the reversion of r304 since it doesn't seem to crash anymore
52+ Original commit was Reset apps scope when returning from app to dash
53+ (LP #1193419) If an app is on foreground and you perform a long
54+ left-edge swipe to minimize it, and therefore return to the dash,
55+ the dash should be in the Applications scope and showing the
56+ running/recents applications. (LP: #1193419)
57+
58+ [ Andrea Cimitan ]
59+ * Add behaviours to the hud reveal. (LP: #1224480, #1224633)
60+ * Make Tile themeable, add renderers for Dash Plugins and weather.
61+ (LP: #1231948)
62+
63+ [ Michael Zanetti ]
64+ * fix inserting into quicklistmodel.
65+ * Drop useStorage argument and use exising LAUNCHER_TESTING define for
66+ this decision.
67+
68+ [ Omer Akram ]
69+ * Make the volume/brightness slider changes realtime. (LP: #1227595)
70+
71+ [ Nicolas d'Offay ]
72+ * Fixed black colour on the first of the month due to division. (LP:
73+ #1233657)
74+ * Added an indicator which is displayed in the search bar whenever a
75+ search is in progress. Added accompanying test in tst_PageHeader.
76+
77+ [ Ubuntu daily release ]
78+ * Automatic snapshot from revision 390
79+
80+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 04 Oct 2013 06:55:16 +0000
81+
182unity8 (7.81.3+13.10.20130927.3-0ubuntu1) saucy; urgency=low
283
384 [ Michal Hruby ]
debian/control+3−7
@@ -14,8 +14,6 @@ Build-Depends: cmake,
1414 libjson-perl,
1515 libnih-dbus-dev,
1616 libnih-dev,
17− libnm-glib-dev,
18− libnm-util-dev,
1917 libpulse-dev,
2018 libqmenumodel-dev (>= 0.2.7),
2119 libqt5v8-5-private-dev,
@@ -74,16 +72,14 @@ Depends: gsettings-desktop-schemas,
7472 qtdeclarative5-unity-notifications-plugin | unity-notifications-impl,
7573 qtdeclarative5-xmllistmodel-plugin,
7674 unity-launcher-impl-3,
77− unity-notifications-impl-1,
75+ unity-notifications-impl-2,
7876 unity8-fake-env | qtubuntu-shell,
7977 unity8-private (= ${binary:Version}),
8078 unity8-private | unity-launcher-impl,
8179 ${misc:Depends},
8280 ${shlibs:Depends},
83−Recommends: indicator-battery,
84− indicator-messages,
85− indicator-time,
86− ${unity-default-masterscopes},
81+Recommends: ${unity-default-masterscopes},
82+Breaks: indicator-network (<< 0.5.1)
8783Description: Unity 8 shell
8884 The Unity 8 shell is the primary user interface for Ubuntu devices.
8985
main.cpp+1−1
@@ -113,7 +113,7 @@ int startShell(int argc, const char** argv, void* server)
113113
114114 // The testability driver is only loaded by QApplication but not by QGuiApplication.
115115 // However, QApplication depends on QWidget which would add some unneeded overhead => Let's load the testability driver on our own.
116− if (args.contains(QLatin1String("-testability"))) {
116+ if (args.contains(QLatin1String("-testability")) || getenv("QT_LOAD_TESTABILITY")) {
117117 QLibrary testLib(QLatin1String("qttestability"));
118118 if (testLib.load()) {
119119 typedef void (*TasInitialize)(void);
plugins/AccountsService/AccountsService.cpp+19
@@ -44,6 +44,7 @@ void AccountsService::setUser(const QString &user)
4444
4545 updateDemoEdges();
4646 updateBackgroundFile();
47+ updateStatsWelcomeScreen();
4748}
4849
4950bool AccountsService::demoEdges() const
@@ -62,6 +63,11 @@ QString AccountsService::backgroundFile() const
6263 return m_backgroundFile;
6364}
6465
66+bool AccountsService::statsWelcomeScreen() const
67+{
68+ return m_statsWelcomeScreen;
69+}
70+
6571void AccountsService::updateDemoEdges()
6672{
6773 auto demoEdges = m_service->getUserProperty(m_user, "com.canonical.unity.AccountsService", "demo-edges").toBool();
@@ -80,6 +86,15 @@ void AccountsService::updateBackgroundFile()
8086 }
8187}
8288
89+void AccountsService::updateStatsWelcomeScreen()
90+{
91+ bool statsWelcomeScreen = m_service->getUserProperty(m_user, "com.ubuntu.touch.AccountsService.SecurityPrivacy", "StatsWelcomeScreen").toBool();
92+ if (m_statsWelcomeScreen != statsWelcomeScreen) {
93+ m_statsWelcomeScreen = statsWelcomeScreen;
94+ Q_EMIT statsWelcomeScreenChanged();
95+ }
96+}
97+
8398void AccountsService::propertiesChanged(const QString &user, const QString &interface, const QStringList &changed)
8499{
85100 if (m_user != user) {
@@ -90,6 +105,10 @@ void AccountsService::propertiesChanged(const QString &user, const QString &inte
90105 if (changed.contains("demo-edges")) {
91106 updateDemoEdges();
92107 }
108+ } else if (interface == "com.ubuntu.touch.AccountsService.SecurityPrivacy") {
109+ if (changed.contains("StatsWelcomeScreen")) {
110+ updateStatsWelcomeScreen();
111+ }
93112 }
94113}
95114
plugins/AccountsService/AccountsService.h+7
@@ -38,6 +38,9 @@ class AccountsService: public QObject
3838 Q_PROPERTY (QString backgroundFile
3939 READ backgroundFile
4040 NOTIFY backgroundFileChanged)
41+ Q_PROPERTY (bool statsWelcomeScreen
42+ READ statsWelcomeScreen
43+ NOTIFY statsWelcomeScreenChanged)
4144
4245public:
4346 explicit AccountsService(QObject *parent = 0);
@@ -47,11 +50,13 @@ public:
4750 bool demoEdges() const;
4851 void setDemoEdges(bool demoEdges);
4952 QString backgroundFile() const;
53+ bool statsWelcomeScreen() const;
5054
5155Q_SIGNALS:
5256 void userChanged();
5357 void demoEdgesChanged();
5458 void backgroundFileChanged();
59+ void statsWelcomeScreenChanged();
5560
5661private Q_SLOTS:
5762 void propertiesChanged(const QString &user, const QString &interface, const QStringList &changed);
@@ -60,11 +65,13 @@ private Q_SLOTS:
6065private:
6166 void updateDemoEdges();
6267 void updateBackgroundFile();
68+ void updateStatsWelcomeScreen();
6369
6470 AccountsServiceDBusAdaptor *m_service;
6571 QString m_user;
6672 bool m_demoEdges;
6773 QString m_backgroundFile;
74+ bool m_statsWelcomeScreen;
6875};
6976
7077#endif
plugins/ListViewWithPageHeader/listviewwithpageheader.cpp+3
@@ -327,6 +327,9 @@ void ListViewWithPageHeader::setForceNoClip(bool noClip)
327327
328328void ListViewWithPageHeader::positionAtBeginning()
329329{
330+ if (m_delegateModel->count() <= 0)
331+ return;
332+
330333 qreal headerHeight = (m_headerItem ? m_headerItem->height() : 0);
331334 if (m_firstVisibleIndex != 0) {
332335 // TODO This could be optimized by trying to reuse the interesection
plugins/Unity/CMakeLists.txt−1
@@ -2,7 +2,6 @@
22include(Plugins)
33
44add_subdirectory(Indicators)
5−add_subdirectory(IndicatorsLegacy)
65
76# Dependencies
87include(FindPkgConfig)
plugins/Unity/Indicators/Messaging/qml/QuickReply.qml+1−1
@@ -20,7 +20,7 @@
2020
2121import QtQuick 2.0
2222import Ubuntu.Components 0.1
23−import Unity.IndicatorsLegacy 0.1 as Indicators
23+import Unity.Indicators 0.1 as Indicators
2424
2525Item {
2626 id: quickReply
plugins/Unity/Indicators/Network/CMakeLists.txt−44
@@ -1,45 +1 @@
1−# export_qmlplugin macro
2−include(Plugins)
3−
4−project(IndicatorsNetworkQml)
5−
6−pkg_check_modules(GLIB glib-2.0>=2.32)
7−pkg_check_modules(LIBNM_GLIB libnm-glib>=0.9.6)
8−pkg_check_modules(LIBNM_UTIL libnm-util>=0.9.6)
9−
10−if(LIBNM_GLIB_FOUND AND LIBNM_UTIL_FOUND AND GLIB_FOUND)
11− set(INDICATORS_NETWORK_SRC
12− networkagent.cpp
13− plugin.cpp
14− secret-agent.c
15− )
16−
17− add_library(IndicatorsNetworkQml MODULE
18− ${INDICATORS_NETWORK_SRC}
19− )
20−
21− qt5_use_modules(IndicatorsNetworkQml Core Qml Widgets)
22−
23− set_target_properties(IndicatorsNetworkQml PROPERTIES COMPILE_FLAGS -fPIC)
24−
25− include_directories(
26− ${CMAKE_CURRENT_SOURCE_DIR}
27− ${GLIB_INCLUDE_DIRS}
28− ${LIBNM_GLIB_INCLUDE_DIRS}
29− ${LIBNM_UTIL_INCLUDE_DIRS}
30− )
31−
32− target_link_libraries(IndicatorsNetworkQml
33− ${GLIB_LIBRARIES}
34− ${LIBNM_GLIB_LIBRARIES}
35− ${LIBNM_UTIL_LIBRARIES}
36− )
37−
38− # export the qmltypes and plugin files
39− export_qmlplugin(Unity.Indicators.Network 0.1 Unity/Indicators/Network TARGETS IndicatorsNetworkQml)
40−
41−else()
42− message(WARNING "Missing glib or libnm dependency for the network plugin, not building")
43−endif()
44−
451add_subdirectory(qml)
plugins/Unity/Indicators/Network/networkagent.cppdeleted−146
@@ -1,146 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Alberto Ruiz <alberto.ruiz@canonical.com>
18− * Renato Araujo Oliveira Filho <renato@canonical.com>
19− */
20−
21−#include "networkagent.h"
22−
23−#include <QVariant>
24−#include <QApplication>
25−#include <QDebug>
26−
27−class NetworkAgentToken
28−{
29−public:
30− NMConnection *connection;
31− NMSettingWirelessSecurity *wisec;
32− guint id;
33− QByteArray keyMgmt;
34−
35− NetworkAgentToken(NMConnection *connection,
36− NMSettingWirelessSecurity *wisec,
37− guint id,
38− QByteArray keyMgmt)
39− : connection(connection),
40− wisec(wisec),
41− id(id),
42− keyMgmt(keyMgmt)
43− {
44− if (connection) {
45− g_object_ref(connection);
46− } else {
47− qWarning() << "invalid connection object";
48− }
49− }
50−
51− ~NetworkAgentToken()
52− {
53− if (connection) {
54− g_object_unref(connection);
55− }
56− }
57−};
58−
59−NetworkAgent::NetworkAgent(QObject *parent)
60− : QObject(parent)
61−{
62− m_agent = unity_settings_secret_agent_new();
63− g_signal_connect(G_OBJECT(m_agent),
64− UNITY_SETTINGS_SECRET_AGENT_SECRET_REQUESTED,
65− G_CALLBACK(onSecretRequested),
66− this);
67−
68− g_signal_connect(G_OBJECT(m_agent),
69− UNITY_SETTINGS_SECRET_AGENT_REQUEST_CANCELLED,
70− G_CALLBACK(onSecretRequestCancelled),
71− this);
72−}
73−
74−NetworkAgent::~NetworkAgent()
75−{
76− nm_secret_agent_unregister(NM_SECRET_AGENT(m_agent));
77− g_object_unref(m_agent);
78−}
79−
80−void NetworkAgent::authenticate(const QVariant &token, const QString &key)
81−{
82− NetworkAgentToken *pToken = (NetworkAgentToken *) token.value<void *>();
83− if (pToken == NULL) {
84− return;
85− }
86−
87− if ((pToken->keyMgmt == "wpa-none") || (pToken->keyMgmt == "wpa-psk")) {
88− g_object_set(G_OBJECT(pToken->wisec),
89− NM_SETTING_WIRELESS_SECURITY_PSK, qPrintable(key),
90− NULL);
91− } else if (pToken->keyMgmt == "none") {
92− g_object_set(G_OBJECT(pToken->wisec),
93− NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, qPrintable(key),
94− NULL);
95− }
96−
97− GHashTable *settings = nm_connection_to_hash(pToken->connection,
98− NM_SETTING_HASH_FLAG_ALL);
99−
100− unity_settings_secret_agent_provide_secret(m_agent,
101− pToken->id, settings);
102− g_hash_table_unref(settings);
103− delete pToken;
104−}
105−
106−void NetworkAgent::cancel(const QVariant &token)
107−{
108− NetworkAgentToken *pToken = (NetworkAgentToken *) token.value<void *>();
109− if (pToken != NULL) {
110− unity_settings_secret_agent_cancel_request(m_agent, pToken->id);
111− delete pToken;
112− }
113−}
114−
115−void NetworkAgent::onSecretRequested(UnitySettingsSecretAgent* /*agent*/,
116− guint id,
117− NMConnection* connection,
118− const char* /*setting_name*/,
119− const char** /*hints*/,
120− NMSecretAgentGetSecretsFlags /*flags*/,
121− NetworkAgent* self)
122−{
123− NetworkAgentToken *token = new NetworkAgentToken(connection,
124− NULL,
125− id,
126− NULL);
127−
128− token->wisec = nm_connection_get_setting_wireless_security(connection);
129− if (token->wisec) {
130− token->keyMgmt = nm_setting_wireless_security_get_key_mgmt(token->wisec);
131− }
132−
133− QVariant varToken = qVariantFromValue((void *) token);
134− Q_EMIT self->secretRequested(varToken);
135−}
136−
137−void NetworkAgent::onSecretRequestCancelled(UnitySettingsSecretAgent* /*agent*/,
138− guint /*id*/,
139− NMConnection* /*connection*/,
140− const char* /*setting_name*/,
141− const char** /*hints*/,
142− NMSecretAgentGetSecretsFlags /*flags*/,
143− NetworkAgent* /*self*/)
144−{
145− //Do nothing for now
146−}
plugins/Unity/Indicators/Network/networkagent.hdeleted−65
@@ -1,65 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Alberto Ruiz <alberto.ruiz@canonical.com>
18− * Renato Araujo Oliveira Filho <renato@canonical.com>
19− */
20−
21−#ifndef NETWORKAGENT_H
22−#define NETWORKAGENT_H
23−
24−#include "secret-agent.h"
25−
26−#include <QObject>
27−
28−class NetworkAgentToken;
29−
30−class NetworkAgent : public QObject
31−{
32− Q_OBJECT
33−public:
34− NetworkAgent(QObject *parent=0);
35− ~NetworkAgent();
36−
37− Q_INVOKABLE void authenticate(const QVariant &token, const QString &key);
38− Q_INVOKABLE void cancel(const QVariant &token);
39−
40−Q_SIGNALS:
41− void secretRequested(const QVariant &token);
42− void secretRequestCancelled();
43−
44−private:
45− UnitySettingsSecretAgent *m_agent;
46−
47− static void onSecretRequested(UnitySettingsSecretAgent *agent,
48− guint id,
49− NMConnection *connection,
50− const char *setting_name,
51− const char **hints,
52− NMSecretAgentGetSecretsFlags flags,
53− NetworkAgent *self);
54−
55− static void onSecretRequestCancelled(UnitySettingsSecretAgent *agent,
56− guint id,
57− NMConnection *connection,
58− const char *setting_name,
59− const char **hints,
60− NMSecretAgentGetSecretsFlags flags,
61− NetworkAgent *self);
62−
63−};
64−
65−#endif
plugins/Unity/Indicators/Network/plugin.hdeleted−32
@@ -1,32 +0,0 @@
1−/*
2− * Copyright (C) 2012 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Nick Dedekind <nick.dedekind@canonical.com>
17− */
18−
19−#ifndef INDICATORS_NETWORK_PLUGIN_H
20−#define INDICATORS_NETWORK_PLUGIN_H
21−
22−#include <QtQml/QQmlExtensionPlugin>
23−
24−class IndicatorsNetworkPlugin : public QQmlExtensionPlugin
25−{
26− Q_OBJECT
27− Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
28−public:
29− void registerTypes(const char *uri);
30−};
31−
32−#endif // INDICATORS_NETWORK_PLUGIN_H
plugins/Unity/Indicators/Network/qml/PasswordPage.qmldeleted−88
@@ -1,88 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Ubuntu.Components.ListItems 0.1 as ListItem
23−import Unity.Indicators 0.1 as Indicators
24−
25−Page {
26− id: pagePassword
27−
28− property variant agent
29− property variant token
30−
31− anchors.fill: parent
32− title: "Network Authentication"
33−
34− Column {
35− anchors {
36− left: parent.left
37− right: parent.right
38− }
39−
40− Indicators.SectionMenuItem {
41− text: "Authentication"
42− }
43−
44− Indicators.FramedMenuItem {
45− implicitHeight: password.height + units.gu(1)
46−
47− PasswordTextField {
48− id: password
49− anchors {
50− left: parent.left
51− right: parent.right
52− margins: units.gu(3)
53− verticalCenter: parent.verticalCenter
54− }
55− }
56− }
57−
58− Indicators.FramedMenuItem {
59− Row {
60− anchors {
61− right: parent.right
62− verticalCenter: parent.verticalCenter
63− margins: units.gu(3)
64− }
65−
66− spacing: units.gu(1)
67−
68− Button {
69− text: "Cancel"
70− width: units.gu(10)
71− onClicked: {
72− agent.cancel(token);
73− pageStack.pop();
74− }
75− }
76−
77− Button {
78− text: "OK"
79− width: units.gu(10)
80− onClicked: {
81− agent.authenticate(token, password.text);
82− pageStack.pop();
83− }
84− }
85− }
86− }
87− }
88−}
plugins/Unity/Indicators/Network/qml/PasswordTextField.qmldeleted−68
@@ -1,68 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−
23−Item {
24− id: textMenu
25−
26− property alias text: textField.text
27−
28− height: contentColumn.height
29−
30− Column {
31− id: contentColumn
32− spacing: units.gu(0.5)
33− anchors {
34− left: parent.left
35− right: parent.right
36− }
37−
38− TextField {
39− id: textField
40−
41− anchors {
42− left: parent.left
43− right: parent.right
44− }
45−
46− placeholderText: "Password"
47− echoMode: showPassword.checked ? TextInput.Normal : TextInput.Password
48− }
49−
50− Row {
51− anchors {
52− left: parent.left
53− right: parent.right
54− }
55−
56− spacing: units.gu(1)
57−
58− CheckBox {
59− id: showPassword
60− }
61−
62− Label {
63− text: "Show password"
64− anchors.verticalCenter: showPassword.verticalCenter
65− }
66− }
67− }
68−}
plugins/Unity/Indicators/Network/qml/qmldir−5
@@ -1,8 +1,3 @@
11module Unity.Indicators.Network
2−plugin IndicatorsNetworkQml
3−typeinfo plugin.qmltypes
42
5−NetworkPage 0.1 NetworkPage.qml
63AccessPoint 0.1 AccessPoint.qml
7−PasswordPage 0.1 PasswordPage.qml
8−PasswordTextField 0.1 PasswordTextField.qml
plugins/Unity/Indicators/Network/secret-agent.cdeleted−382
@@ -1,382 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Alberto Ruiz <alberto.ruiz@canonical.com>
18− * Renato Araujo Oliveira Filho <renato@canonical.com>
19− */
20−
21−
22−#include <glib.h>
23−#include <glib-object.h>
24−#include <nm-secret-agent.h>
25−#include "secret-agent.h"
26−
27−#define UNITY_SETTINGS_TYPE_SECRET_AGENT (unity_settings_secret_agent_get_type ())
28−#define UNITY_SETTINGS_SECRET_AGENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgent))
29−#define UNITY_SETTINGS_SECRET_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentClass))
30−#define UNITY_SETTINGS_IS_SECRET_AGENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT))
31−#define UNITY_SETTINGS_IS_SECRET_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_SETTINGS_TYPE_SECRET_AGENT))
32−#define UNITY_SETTINGS_SECRET_AGENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentClass))
33−#define UNITY_SETTINGS_SECRET_AGENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentPrivate))
34−
35−#define AGENT_ID "com.canonical.settings.network.nm-agent"
36−
37−static gpointer unity_settings_secret_agent_parent_class = NULL;
38−
39−typedef struct _UnitySettingsSecretAgentPrivate UnitySettingsSecretAgentPrivate;
40−
41−struct _UnitySettingsSecretAgentPrivate {
42− GQueue *requests;
43−};
44−
45−typedef struct _SecretRequest {
46− gint id;
47− NMSecretAgent *agent;
48− NMConnection *connection;
49− const char *connection_path;
50− const char *setting_name;
51− const char **hints;
52− NMSecretAgentGetSecretsFlags flags;
53− NMSecretAgentGetSecretsFunc callback;
54− gpointer callback_data;
55−} SecretRequest;
56−
57−GType unity_settings_secret_agent_get_type (void) G_GNUC_CONST;
58−enum {
59− UNITY_SETTINGS_SECRET_AGENT_DUMMY_PROPERTY
60−};
61−
62−enum {
63− SECRET_REQUESTED,
64− REQUEST_CANCELLED,
65− LAST_SIGNAL
66−};
67−
68−static guint signals[LAST_SIGNAL] = { 0 };
69−
70−UnitySettingsSecretAgent* unity_settings_secret_agent_new (void);
71−UnitySettingsSecretAgent* unity_settings_secret_agent_construct (GType object_type);
72−
73−int
74−secret_request_find (SecretRequest *req,
75− guint *id)
76−{
77− if (req->id > *id)
78− return -1;
79−
80− if (req->id < *id)
81− return 1;
82−
83− return 0;
84−}
85−
86−void
87−unity_settings_secret_agent_provide_secret (UnitySettingsSecretAgent *agent,
88− guint request,
89− GHashTable *secrets)
90−{
91− GList *iter;
92− SecretRequest *req;
93− UnitySettingsSecretAgentPrivate *priv = agent->priv;
94−
95− iter = g_queue_find_custom (priv->requests,
96− &request,
97− (GCompareFunc)secret_request_find);
98−
99− if (iter == NULL || iter->data == NULL)
100− {
101− g_warning ("Secret request with id <%d> was not found", (int)request);
102− return;
103− }
104−
105− req = iter->data;
106−
107− req->callback (NM_SECRET_AGENT (agent),
108− req->connection,
109− secrets,
110− NULL,
111− req->callback_data);
112−
113− g_queue_remove_all (priv->requests, req);
114− g_free (req);
115− return;
116−}
117−
118−void
119−free_request (SecretRequest *req)
120−{
121− g_object_unref (req->connection);
122− g_free (req);
123−}
124−
125−void
126−unity_settings_secret_agent_cancel_request (UnitySettingsSecretAgent *agent,
127− guint request)
128−{
129− GList *iter;
130− SecretRequest *req;
131− UnitySettingsSecretAgentPrivate *priv = agent->priv;
132− GError *error;
133−
134− iter = g_queue_find_custom (priv->requests,
135− &request,
136− (GCompareFunc)secret_request_find);
137−
138− if (iter == NULL || iter->data == NULL)
139− {
140− g_warning ("Secret request with id <%d> was not found", (int)request);
141− return;
142− }
143−
144− req = iter->data;
145− error = g_error_new (NM_SECRET_AGENT_ERROR,
146− NM_SECRET_AGENT_ERROR_INTERNAL_ERROR,
147− "This secret request was canceled by the user.");
148−
149− req->callback (NM_SECRET_AGENT (agent),
150− req->connection,
151− NULL,
152− error,
153− req->callback_data);
154−
155− g_queue_remove_all (priv->requests, req);
156− free_request (req);
157− return;
158−}
159−
160−static void
161−delete_secrets (NMSecretAgent *agent,
162− NMConnection *connection,
163− const char *connection_path,
164− NMSecretAgentDeleteSecretsFunc callback,
165− gpointer callback_data)
166−{
167− g_debug ("delete secrets");
168−}
169−
170−/* If it returns G_MAXUINT it's considered an error */
171−static guint
172−find_available_id (UnitySettingsSecretAgentPrivate *priv)
173−{
174− guint i = 0;
175− guint candidate = 0;
176−
177− if (g_queue_get_length (priv->requests) == G_MAXUINT)
178− return G_MAXUINT;
179−
180− while (i < g_queue_get_length (priv->requests))
181− {
182− SecretRequest *req = (SecretRequest*)g_queue_peek_nth (priv->requests, i);
183−
184− if (req->id == candidate)
185− {
186− candidate++;
187− i = 0;
188− }
189− else
190− {
191− i++;
192− }
193− }
194−
195− return i;
196−}
197−
198−static void
199−get_secrets (NMSecretAgent *agent,
200− NMConnection *connection,
201− const char *connection_path,
202− const char *setting_name,
203− const char **hints,
204− NMSecretAgentGetSecretsFlags flags,
205− NMSecretAgentGetSecretsFunc callback,
206− gpointer callback_data)
207−{
208− guint id;
209− UnitySettingsSecretAgentPrivate *priv = UNITY_SETTINGS_SECRET_AGENT_GET_PRIVATE (agent);
210− SecretRequest *req = NULL;
211−
212− if (flags == NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE)
213− {
214− GError *error = g_error_new (NM_SECRET_AGENT_ERROR,
215− NM_SECRET_AGENT_ERROR_INTERNAL_ERROR,
216− "No password found for this connection.");
217− callback (agent, connection, NULL, error, callback_data);
218− g_error_free (error);
219− return;
220− }
221−
222− id = find_available_id (priv);
223− if (id == G_MAXUINT)
224− {
225− GError *error = g_error_new (NM_SECRET_AGENT_ERROR,
226− NM_SECRET_AGENT_ERROR_INTERNAL_ERROR,
227− "Reached maximum number of requests.");
228− callback (agent, connection, NULL, error, callback_data);
229− g_error_free (error);
230− return;
231− }
232−
233− /* Adding a request */
234− req = (SecretRequest*) g_malloc0 (sizeof (SecretRequest));
235− *req = ((SecretRequest)
236− { id,
237− agent,
238− connection,
239− connection_path,
240− setting_name,
241− hints,
242− flags,
243− callback,
244− callback_data });
245−
246− g_object_ref (connection);
247−
248− g_queue_push_tail (priv->requests, req);
249−
250− g_signal_emit_by_name (agent,
251− UNITY_SETTINGS_SECRET_AGENT_SECRET_REQUESTED,
252− id,
253− connection,
254− setting_name,
255− hints,
256− flags);
257−}
258−
259−static void
260−save_secrets (NMSecretAgent *agent,
261− NMConnection *connection,
262− const char *connection_path,
263− NMSecretAgentSaveSecretsFunc callback,
264− gpointer callback_data)
265−{
266− g_debug ("save secrets");
267−}
268−
269−static void
270−cancel_get_secrets (NMSecretAgent *agent,
271− const char *connection_path,
272− const char *setting_name)
273−{
274− g_debug ("cancel get secrets");
275−}
276−
277−UnitySettingsSecretAgent*
278−unity_settings_secret_agent_construct (GType object_type)
279−{
280− UnitySettingsSecretAgent * self = NULL;
281− self = (UnitySettingsSecretAgent*) g_object_new (object_type,
282− NM_SECRET_AGENT_IDENTIFIER, AGENT_ID,
283− NULL);
284− return self;
285−}
286−
287−
288−UnitySettingsSecretAgent*
289−unity_settings_secret_agent_new (void)
290−{
291− return unity_settings_secret_agent_construct (UNITY_SETTINGS_TYPE_SECRET_AGENT);
292−}
293−
294−static void
295−destroy_pending_request (gpointer data)
296−{
297− SecretRequest* req = (SecretRequest*)data;
298− /* Reporting the cancellation of all pending requests */
299− g_signal_emit_by_name (req->agent,
300− UNITY_SETTINGS_SECRET_AGENT_REQUEST_CANCELLED,
301− req->id);
302−
303− free_request (req);
304−}
305−
306−static void
307−unity_settings_secret_agent_finalize (GObject *agent)
308−{
309− UnitySettingsSecretAgentPrivate *priv = UNITY_SETTINGS_SECRET_AGENT_GET_PRIVATE (agent);
310−
311− g_queue_free_full (priv->requests, destroy_pending_request);
312−}
313−
314−static void
315−unity_settings_secret_agent_class_init (UnitySettingsSecretAgentClass *klass)
316−{
317− unity_settings_secret_agent_parent_class = g_type_class_peek_parent (klass);
318− NMSecretAgentClass *parent_class = NM_SECRET_AGENT_CLASS (klass);
319− parent_class->get_secrets = get_secrets;
320− parent_class->save_secrets = save_secrets;
321− parent_class->delete_secrets = delete_secrets;
322− parent_class->cancel_get_secrets = cancel_get_secrets;
323−
324− g_type_class_add_private (klass, sizeof(UnitySettingsSecretAgentPrivate));
325− G_OBJECT_CLASS (klass)->finalize = unity_settings_secret_agent_finalize;
326−
327−
328− signals[SECRET_REQUESTED] = g_signal_new (UNITY_SETTINGS_SECRET_AGENT_SECRET_REQUESTED,
329− G_OBJECT_CLASS_TYPE (G_OBJECT_CLASS (klass)),
330− G_SIGNAL_RUN_FIRST,
331− G_STRUCT_OFFSET (UnitySettingsSecretAgentClass, secret_requested),
332− NULL, NULL, NULL,
333− G_TYPE_NONE, 5,
334− G_TYPE_UINT, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_UINT);
335−
336− signals[REQUEST_CANCELLED] = g_signal_new (UNITY_SETTINGS_SECRET_AGENT_REQUEST_CANCELLED,
337− G_OBJECT_CLASS_TYPE (G_OBJECT_CLASS (klass)),
338− G_SIGNAL_RUN_FIRST,
339− G_STRUCT_OFFSET (UnitySettingsSecretAgentClass, request_cancelled),
340− NULL, NULL, NULL,
341− G_TYPE_NONE, 1,
342− G_TYPE_UINT);
343−}
344−
345−
346−static void
347−unity_settings_secret_agent_instance_init (UnitySettingsSecretAgent *self)
348−{
349− self->priv = UNITY_SETTINGS_SECRET_AGENT_GET_PRIVATE (self);
350− self->priv->requests = g_queue_new ();
351−}
352−
353−GType
354−unity_settings_secret_agent_get_type (void)
355−{
356− static volatile gsize unity_settings_secret_agent_type_id__volatile = 0;
357− if (g_once_init_enter (&unity_settings_secret_agent_type_id__volatile))
358− {
359− static const GTypeInfo g_define_type_info =
360− {
361− sizeof (UnitySettingsSecretAgentClass),
362− (GBaseInitFunc) NULL,
363− (GBaseFinalizeFunc) NULL,
364− (GClassInitFunc) unity_settings_secret_agent_class_init,
365− (GClassFinalizeFunc) NULL,
366− NULL,
367− sizeof (UnitySettingsSecretAgent),
368− 0,
369− (GInstanceInitFunc) unity_settings_secret_agent_instance_init,
370− NULL
371− };
372− GType unity_settings_secret_agent_type_id;
373− unity_settings_secret_agent_type_id = g_type_register_static (NM_TYPE_SECRET_AGENT,
374− "UnitySettingsSecretAgent",
375− &g_define_type_info,
376− 0);
377− g_once_init_leave (&unity_settings_secret_agent_type_id__volatile,
378− unity_settings_secret_agent_type_id);
379− }
380−
381− return unity_settings_secret_agent_type_id__volatile;
382−}
plugins/Unity/Indicators/Network/secret-agent.hdeleted−102
@@ -1,102 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Alberto Ruiz <alberto.ruiz@canonical.com>
18− * Renato Araujo Oliveira Filho <renato@canonical.com>
19− */
20−
21−#ifndef __SECRET_AGENT_H__
22−#define __SECRET_AGENT_H__
23−
24−#include <glib.h>
25−#include <glib-object.h>
26−#include <nm-secret-agent.h>
27−
28−/*
29− * This class is a basic implementation of the NetworkManager SecretAgent base class.
30− *
31− * The purpose of this class is to handle credential requests from the network,
32− * for example, from a WiFi hotspot or a VPN network.
33− *
34− * It queues requests objects (SecretRequest) on a GQueue in the private struct
35− * of the class. And notifies the consumer of the class through the "secret-request"
36− * and the "request-cancelled" signals with the following callback prototypes:
37− *
38− * void (*secret_requested) (UnitySettingsSecretAgent *self,
39− * guint id,
40− * NMConnection *connection,
41− * const char *setting_name,
42− * const char **hints,
43− * NMSecretAgentGetSecretsFlags flags,
44− * gpointer user_data);
45− *
46− * void (*request_cancelled) (UnitySettingsSecretAgent *self,
47− * guint id,
48− * gpointer user_data);
49− *
50− */
51−
52−
53−G_BEGIN_DECLS
54−
55−
56−#define UNITY_SETTINGS_TYPE_SECRET_AGENT (unity_settings_secret_agent_get_type ())
57−#define UNITY_SETTINGS_SECRET_AGENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgent))
58−#define UNITY_SETTINGS_SECRET_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentClass))
59−#define UNITY_SETTINGS_IS_SECRET_AGENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT))
60−#define UNITY_SETTINGS_IS_SECRET_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_SETTINGS_TYPE_SECRET_AGENT))
61−#define UNITY_SETTINGS_SECRET_AGENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentClass))
62−
63−#define UNITY_SETTINGS_SECRET_AGENT_SECRET_REQUESTED "secret-requested"
64−#define UNITY_SETTINGS_SECRET_AGENT_REQUEST_CANCELLED "request-cancelled"
65−
66−typedef struct _UnitySettingsSecretAgent UnitySettingsSecretAgent;
67−typedef struct _UnitySettingsSecretAgentClass UnitySettingsSecretAgentClass;
68−typedef struct _UnitySettingsSecretAgentPrivate UnitySettingsSecretAgentPrivate;
69−
70−struct _UnitySettingsSecretAgent {
71− NMSecretAgent parent_instance;
72− UnitySettingsSecretAgentPrivate * priv;
73−};
74−
75−struct _UnitySettingsSecretAgentClass {
76− NMSecretAgentClass parent_class;
77−
78− void (*secret_requested) (UnitySettingsSecretAgent *self,
79− guint id,
80− NMConnection *connection,
81− const char *setting_name,
82− const char **hints,
83− NMSecretAgentGetSecretsFlags flags);
84−
85− void (*request_cancelled) (UnitySettingsSecretAgent *self,
86− guint id);
87−};
88−
89−
90−GType unity_settings_secret_agent_get_type (void) G_GNUC_CONST;
91−UnitySettingsSecretAgent* unity_settings_secret_agent_new (void);
92−UnitySettingsSecretAgent* unity_settings_secret_agent_construct (GType object_type);
93−
94−void unity_settings_secret_agent_provide_secret (UnitySettingsSecretAgent *agent,
95− guint request,
96− GHashTable *secrets);
97−void unity_settings_secret_agent_cancel_request (UnitySettingsSecretAgent *agent,
98− guint request);
99−
100−G_END_DECLS
101−
102−#endif
plugins/Unity/Indicators/indicators.h−2
@@ -74,8 +74,6 @@ public:
7474 enum Roles {
7575 Identifier = 0,
7676 Position,
77− Title,
78− Description,
7977 WidgetSource,
8078 PageSource,
8179 IndicatorProperties,
plugins/Unity/Indicators/indicatorsmodel.cpp+2−55
@@ -201,8 +201,6 @@ QHash<int, QByteArray> IndicatorsModel::roleNames() const
201201 {
202202 roles[IndicatorsModelRole::Identifier] = "identifier";
203203 roles[IndicatorsModelRole::Position] = "position";
204− roles[IndicatorsModelRole::Title] = "title";
205− roles[IndicatorsModelRole::Description] = "description";
206204 roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
207205 roles[IndicatorsModelRole::PageSource] = "pageSource";
208206 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
@@ -216,25 +214,6 @@ int IndicatorsModel::columnCount(const QModelIndex &) const
216214 return 1;
217215}
218216
219−/*! \internal */
220−QVariant IndicatorsModel::defaultData(Indicator::Ptr indicator, int role)
221−{
222− switch (role)
223− {
224− case IndicatorsModelRole::Position:
225− return 0;
226− case IndicatorsModelRole::Title:
227− return indicator ? indicator->identifier() : "Unknown";
228− case IndicatorsModelRole::Description:
229− return "";
230− case IndicatorsModelRole::WidgetSource:
231− return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorWidget2.qml";
232− case IndicatorsModelRole::PageSource:
233− return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorPage2.qml";
234− }
235− return QVariant();
236−}
237−
238217Q_INVOKABLE QVariant IndicatorsModel::data(int row, int role) const
239218{
240219 return data(index(row, 0), role);
@@ -268,27 +247,16 @@ QVariant IndicatorsModel::data(const QModelIndex &index, int role) const
268247 return QVariant(indicator->indicatorProperties());
269248 }
270249 break;
271− case IndicatorsModelRole::Title:
272− case IndicatorsModelRole::Description:
273250 case IndicatorsModelRole::WidgetSource:
251+ return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorWidget.qml";
274252 case IndicatorsModelRole::PageSource:
275− return indicatorData(indicator, role);
253+ return shellAppDirectory()+"/Panel/Indicators/DefaultIndicatorPage.qml";
276254 default:
277255 break;
278256 }
279257 return QVariant();
280258}
281259
282−QVariant IndicatorsModel::indicatorData(const Indicator::Ptr& indicator, int role) const
283−{
284− if (indicator && m_parsed_indicator_data.contains(indicator->identifier()))
285− {
286− QVariantMap data = m_parsed_indicator_data[indicator->identifier()];
287− return data.value(roleNames()[role], QVariant());
288− }
289− return defaultData(indicator, role);
290−}
291−
292260/*! \internal */
293261QModelIndex IndicatorsModel::parent(const QModelIndex&) const
294262{
@@ -300,24 +268,3 @@ int IndicatorsModel::rowCount(const QModelIndex&) const
300268{
301269 return m_indicators.count();
302270}
303−
304−void IndicatorsModel::setIndicatorData(const QVariant& data)
305−{
306− m_indicator_data = data;
307−
308− m_parsed_indicator_data.clear();
309− QMap<QString, QVariant> map = data.toMap();
310− QMapIterator<QString, QVariant> iter(map);
311− while(iter.hasNext())
312− {
313− iter.next();
314− m_parsed_indicator_data[iter.key()] = iter.value().toMap();
315− }
316−
317− Q_EMIT indicatorDataChanged(m_indicator_data);
318−}
319−
320−QVariant IndicatorsModel::indicatorData() const
321−{
322− return m_indicator_data;
323−}
plugins/Unity/Indicators/indicatorsmodel.h−8
@@ -34,7 +34,6 @@ class UNITYINDICATORS_EXPORT IndicatorsModel : public QAbstractListModel
3434 Q_OBJECT
3535 Q_ENUMS(Roles)
3636 Q_PROPERTY(int count READ count NOTIFY countChanged)
37− Q_PROPERTY(QVariant indicatorData READ indicatorData WRITE setIndicatorData NOTIFY indicatorDataChanged)
3837
3938public:
4039
@@ -53,9 +52,6 @@ public:
5352 QModelIndex parent (const QModelIndex &index) const;
5453 int rowCount(const QModelIndex &parent = QModelIndex()) const;
5554
56− void setIndicatorData(const QVariant& data);
57− QVariant indicatorData() const;
58−
5955
6056Q_SIGNALS:
6157 void countChanged();
@@ -71,13 +67,9 @@ private:
7167 IndicatorsManager *m_manager;
7268
7369 QList<Indicator::Ptr> m_indicators;
74− QVariant m_indicator_data;
75− QMap<QString, QVariantMap> m_parsed_indicator_data;
7670
7771 void notifyDataChanged(QObject *sender, int role);
7872 int count() const;
79− QVariant indicatorData(const Indicator::Ptr& indicator, int role) const;
80− static QVariant defaultData(Indicator::Ptr indicator, int role);
8173};
8274
8375#endif // INDICATORSMODEL_H
plugins/Unity/Indicators/qml/IndicatorBase.qml+8−5
@@ -27,13 +27,11 @@ Item {
2727 enabled: menuObjectPaths.hasOwnProperty(device)
2828
2929 //const
30− property string title
3130 property string busName
3231 property string actionsObjectPath
3332 property var menuObjectPaths: undefined
3433 readonly property string device: "phone"
3534 property string rootMenuType: "com.canonical.indicator.root"
36− property bool active: false
3735
3836 property string deviceMenuObjectPath: menuObjectPaths.hasOwnProperty(device) ? menuObjectPaths[device] : ""
3937
@@ -41,8 +39,13 @@ Item {
4139
4240 CachedUnityMenuModel {
4341 id: cachedModel
44− busName: active ? indicatorItem.busName : ""
45− actionsObjectPath: active ? indicatorItem.actionsObjectPath : ""
46− menuObjectPath: active ? indicatorItem.deviceMenuObjectPath : ""
42+ busName: indicatorItem.busName
43+ actionsObjectPath: indicatorItem.actionsObjectPath
44+ menuObjectPath: indicatorItem.deviceMenuObjectPath
45+ }
46+
47+ property var rootActionState: Indicators.RootActionState {
48+ menu: menuModel
49+ onUpdated: indicatorItem.rootActionStateChanged()
4750 }
4851}
plugins/Unity/Indicators/qml/IndicatorPage.qml+7−5
@@ -26,12 +26,14 @@ IndicatorBase {
2626 id: main
2727
2828 //const
29+ property bool contentActive: false
30+ property string title: rootActionState.title
2931 property alias emptyText: emptyLabel.text
3032 property alias highlightFollowsCurrentItem : mainMenu.highlightFollowsCurrentItem
3133
3234 Indicators.UnityMenuModelStack {
3335 id: menuStack
34− head: main.menuModel
36+ head: contentActive ? main.menuModel : null
3537 }
3638
3739 ListView {
@@ -162,15 +164,15 @@ IndicatorBase {
162164 function start()
163165 {
164166 reset()
165− if (!active) {
166− active = true;
167+ if (!contentActive) {
168+ contentActive = true;
167169 }
168170 }
169171
170172 function stop()
171173 {
172− if (active) {
173− active = false;
174+ if (contentActive) {
175+ contentActive = false;
174176 }
175177 }
176178
plugins/Unity/Indicators/qml/IndicatorWidget.qml−6
@@ -23,12 +23,6 @@ import Unity.Indicators 0.1 as Indicators
2323IndicatorBase {
2424 id: indicatorWidget
2525
26− active: true
2726 enabled: false
2827 property int iconSize: height - units.gu(0.5)
29−
30− property var actionState: Indicators.RootActionState {
31− menu: menuModel
32− onUpdated: indicatorWidget.actionStateChanged()
33− }
3428}
plugins/Unity/Indicators/qml/SliderMenuItem.qml+1−1
@@ -71,7 +71,7 @@ FramedMenuItem {
7171 leftMargin: leftImage.visible ? units.gu(0.5) : 0
7272 rightMargin: rightImage.visible ? units.gu(0.5) : 0
7373 }
74− live: false
74+ live: true
7575
7676 Component.onCompleted: {
7777 value = menuItem.value
plugins/Unity/Indicators/rootactionstate.cpp+7−1
@@ -102,12 +102,18 @@ void RootActionState::updateActionState()
102102 Q_EMIT updated();
103103}
104104
105−
106105bool RootActionState::isValid() const
107106{
108107 return m_menu && m_menu->rowCount() > 0;
109108}
110109
110+QString RootActionState::title() const
111+{
112+ if (!isValid()) return QString();
113+
114+ return m_cachedState.value("title", QVariant::fromValue(QString())).toString();
115+}
116+
111117QString RootActionState::leftLabel() const
112118{
113119 if (!isValid()) return QString();
plugins/Unity/Indicators/rootactionstate.h+3
@@ -32,6 +32,7 @@ class UNITYINDICATORS_EXPORT RootActionState : public ActionStateParser
3232 Q_PROPERTY(UnityMenuModel* menu READ menu WRITE setMenu NOTIFY menuChanged)
3333
3434 Q_PROPERTY(bool valid READ isValid NOTIFY validChanged)
35+ Q_PROPERTY(QString title READ title NOTIFY titleChanged)
3536 Q_PROPERTY(QString leftLabel READ leftLabel NOTIFY leftLabelChanged)
3637 Q_PROPERTY(QString rightLabel READ rightLabel NOTIFY rightLabelChanged)
3738 Q_PROPERTY(QStringList icons READ icons NOTIFY iconsChanged)
@@ -48,6 +49,7 @@ public:
4849 void setIndex(int index);
4950
5051 bool isValid() const;
52+ QString title() const;
5153 QString leftLabel() const;
5254 QString rightLabel() const;
5355 QStringList icons() const;
@@ -64,6 +66,7 @@ Q_SIGNALS:
6466 void indexChanged();
6567
6668 void validChanged();
69+ void titleChanged();
6770 void leftLabelChanged();
6871 void rightLabelChanged();
6972 void iconsChanged();
plugins/Unity/Indicators/visibleindicatorsmodel.cpp−2
@@ -33,8 +33,6 @@ QHash<int, QByteArray> VisibleIndicatorsModel::roleNames() const
3333 {
3434 roles[IndicatorsModelRole::Identifier] = "identifier";
3535 roles[IndicatorsModelRole::Position] = "position";
36− roles[IndicatorsModelRole::Title] = "title";
37− roles[IndicatorsModelRole::Description] = "description";
3836 roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
3937 roles[IndicatorsModelRole::PageSource] = "pageSource";
4038 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
plugins/Unity/IndicatorsLegacy/CMakeLists.txtdeleted−48
@@ -1,48 +0,0 @@
1−# export_qmlplugin macro
2−include(Plugins)
3−
4−project(IndicatorsLegacyQml)
5−
6−pkg_check_modules(QMENUMODEL REQUIRED qmenumodel)
7−find_package(Qt5Core REQUIRED)
8−find_package(Qt5Quick REQUIRED)
9−
10−add_subdirectory(qml)
11−add_subdirectory(Network)
12−
13−include_directories(
14− ${CMAKE_CURRENT_SOURCE_DIR}
15− ${CMAKE_CURRENT_BINARY_DIR}
16− ${QMENUMODEL_INCLUDE_DIRS}
17− ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators
18−)
19−
20−set(IndicatorsLegacyQML_SOURCES
21− ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/indicators.h
22− flatmenuproxymodel.cpp
23− modelprinter.cpp
24− plugin.cpp
25−)
26−add_definitions(-DUNITYINDICATORS_LIBRARY)
27−
28−set(IndicatorsLegacyQML_RESOURCES
29− resources/indicators.qrc
30−)
31−
32−qt5_add_resources(IndicatorsLegacyQML_RESOURCES_RCC
33− ${IndicatorsLegacyQML_RESOURCES}
34−)
35−
36−add_library(IndicatorsLegacyQml SHARED
37− ${IndicatorsLegacyQML_RESOURCES_RCC}
38− ${IndicatorsLegacyQML_SOURCES}
39−)
40−
41−target_link_libraries(IndicatorsLegacyQml
42− ${QMENUMODEL_LDFLAGS}
43−)
44−
45−qt5_use_modules(IndicatorsLegacyQml Core Qml Quick)
46−
47−# export the qmltypes and plugin files
48−export_qmlplugin(Unity.IndicatorsLegacy 0.1 Unity/IndicatorsLegacy TARGETS IndicatorsLegacyQml)
plugins/Unity/IndicatorsLegacy/Network/CMakeLists.txtdeleted−45
@@ -1,45 +0,0 @@
1−# export_qmlplugin macro
2−include(Plugins)
3−
4−project(IndicatorsLegacyNetworkQml)
5−
6−pkg_check_modules(GLIB glib-2.0>=2.32)
7−pkg_check_modules(LIBNM_GLIB libnm-glib>=0.9.6)
8−pkg_check_modules(LIBNM_UTIL libnm-util>=0.9.6)
9−
10−if(LIBNM_GLIB_FOUND AND LIBNM_UTIL_FOUND AND GLIB_FOUND)
11− set(INDICATORS_LEGACY_NETWORK_SRC
12− networkagent.cpp
13− plugin.cpp
14− secret-agent.c
15− )
16−
17− add_library(IndicatorsLegacyNetworkQml MODULE
18− ${INDICATORS_LEGACY_NETWORK_SRC}
19− )
20−
21− qt5_use_modules(IndicatorsLegacyNetworkQml Core Qml Widgets)
22−
23− set_target_properties(IndicatorsLegacyNetworkQml PROPERTIES COMPILE_FLAGS -fPIC)
24−
25− include_directories(
26− ${CMAKE_CURRENT_SOURCE_DIR}
27− ${GLIB_INCLUDE_DIRS}
28− ${LIBNM_GLIB_INCLUDE_DIRS}
29− ${LIBNM_UTIL_INCLUDE_DIRS}
30− )
31−
32− target_link_libraries(IndicatorsLegacyNetworkQml
33− ${GLIB_LIBRARIES}
34− ${LIBNM_GLIB_LIBRARIES}
35− ${LIBNM_UTIL_LIBRARIES}
36− )
37−
38− # export the qmltypes and plugin files
39− export_qmlplugin(Unity.IndicatorsLegacy.Network 0.1 Unity/IndicatorsLegacy/Network TARGETS IndicatorsLegacyNetworkQml)
40−
41−else()
42− message(WARNING "Missing glib or libnm dependency for the network plugin, not building")
43−endif()
44−
45−add_subdirectory(qml)
plugins/Unity/IndicatorsLegacy/Network/networkagent.cppdeleted−146
@@ -1,146 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Alberto Ruiz <alberto.ruiz@canonical.com>
18− * Renato Araujo Oliveira Filho <renato@canonical.com>
19− */
20−
21−#include "networkagent.h"
22−
23−#include <QVariant>
24−#include <QApplication>
25−#include <QDebug>
26−
27−class NetworkAgentToken
28−{
29−public:
30− NMConnection *connection;
31− NMSettingWirelessSecurity *wisec;
32− guint id;
33− QByteArray keyMgmt;
34−
35− NetworkAgentToken(NMConnection *connection,
36− NMSettingWirelessSecurity *wisec,
37− guint id,
38− QByteArray keyMgmt)
39− : connection(connection),
40− wisec(wisec),
41− id(id),
42− keyMgmt(keyMgmt)
43− {
44− if (connection) {
45− g_object_ref(connection);
46− } else {
47− qWarning() << "invalid connection object";
48− }
49− }
50−
51− ~NetworkAgentToken()
52− {
53− if (connection) {
54− g_object_unref(connection);
55− }
56− }
57−};
58−
59−NetworkAgent::NetworkAgent(QObject *parent)
60− : QObject(parent)
61−{
62− m_agent = unity_settings_secret_agent_new();
63− g_signal_connect(G_OBJECT(m_agent),
64− UNITY_SETTINGS_SECRET_AGENT_SECRET_REQUESTED,
65− G_CALLBACK(onSecretRequested),
66− this);
67−
68− g_signal_connect(G_OBJECT(m_agent),
69− UNITY_SETTINGS_SECRET_AGENT_REQUEST_CANCELLED,
70− G_CALLBACK(onSecretRequestCancelled),
71− this);
72−}
73−
74−NetworkAgent::~NetworkAgent()
75−{
76− nm_secret_agent_unregister(NM_SECRET_AGENT(m_agent));
77− g_object_unref(m_agent);
78−}
79−
80−void NetworkAgent::authenticate(const QVariant &token, const QString &key)
81−{
82− NetworkAgentToken *pToken = (NetworkAgentToken *) token.value<void *>();
83− if (pToken == NULL) {
84− return;
85− }
86−
87− if ((pToken->keyMgmt == "wpa-none") || (pToken->keyMgmt == "wpa-psk")) {
88− g_object_set(G_OBJECT(pToken->wisec),
89− NM_SETTING_WIRELESS_SECURITY_PSK, qPrintable(key),
90− NULL);
91− } else if (pToken->keyMgmt == "none") {
92− g_object_set(G_OBJECT(pToken->wisec),
93− NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, qPrintable(key),
94− NULL);
95− }
96−
97− GHashTable *settings = nm_connection_to_hash(pToken->connection,
98− NM_SETTING_HASH_FLAG_ALL);
99−
100− unity_settings_secret_agent_provide_secret(m_agent,
101− pToken->id, settings);
102− g_hash_table_unref(settings);
103− delete pToken;
104−}
105−
106−void NetworkAgent::cancel(const QVariant &token)
107−{
108− NetworkAgentToken *pToken = (NetworkAgentToken *) token.value<void *>();
109− if (pToken != NULL) {
110− unity_settings_secret_agent_cancel_request(m_agent, pToken->id);
111− delete pToken;
112− }
113−}
114−
115−void NetworkAgent::onSecretRequested(UnitySettingsSecretAgent* /*agent*/,
116− guint id,
117− NMConnection* connection,
118− const char* /*setting_name*/,
119− const char** /*hints*/,
120− NMSecretAgentGetSecretsFlags /*flags*/,
121− NetworkAgent* self)
122−{
123− NetworkAgentToken *token = new NetworkAgentToken(connection,
124− NULL,
125− id,
126− NULL);
127−
128− token->wisec = nm_connection_get_setting_wireless_security(connection);
129− if (token->wisec) {
130− token->keyMgmt = nm_setting_wireless_security_get_key_mgmt(token->wisec);
131− }
132−
133− QVariant varToken = qVariantFromValue((void *) token);
134− Q_EMIT self->secretRequested(varToken);
135−}
136−
137−void NetworkAgent::onSecretRequestCancelled(UnitySettingsSecretAgent* /*agent*/,
138− guint /*id*/,
139− NMConnection* /*connection*/,
140− const char* /*setting_name*/,
141− const char** /*hints*/,
142− NMSecretAgentGetSecretsFlags /*flags*/,
143− NetworkAgent* /*self*/)
144−{
145− //Do nothing for now
146−}
plugins/Unity/IndicatorsLegacy/Network/networkagent.hdeleted−65
@@ -1,65 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Alberto Ruiz <alberto.ruiz@canonical.com>
18− * Renato Araujo Oliveira Filho <renato@canonical.com>
19− */
20−
21−#ifndef NETWORKAGENT_H
22−#define NETWORKAGENT_H
23−
24−#include "secret-agent.h"
25−
26−#include <QObject>
27−
28−class NetworkAgentToken;
29−
30−class NetworkAgent : public QObject
31−{
32− Q_OBJECT
33−public:
34− NetworkAgent(QObject *parent=0);
35− ~NetworkAgent();
36−
37− Q_INVOKABLE void authenticate(const QVariant &token, const QString &key);
38− Q_INVOKABLE void cancel(const QVariant &token);
39−
40−Q_SIGNALS:
41− void secretRequested(const QVariant &token);
42− void secretRequestCancelled();
43−
44−private:
45− UnitySettingsSecretAgent *m_agent;
46−
47− static void onSecretRequested(UnitySettingsSecretAgent *agent,
48− guint id,
49− NMConnection *connection,
50− const char *setting_name,
51− const char **hints,
52− NMSecretAgentGetSecretsFlags flags,
53− NetworkAgent *self);
54−
55− static void onSecretRequestCancelled(UnitySettingsSecretAgent *agent,
56− guint id,
57− NMConnection *connection,
58− const char *setting_name,
59− const char **hints,
60− NMSecretAgentGetSecretsFlags flags,
61− NetworkAgent *self);
62−
63−};
64−
65−#endif
plugins/Unity/IndicatorsLegacy/Network/plugin.cppdeleted−31
@@ -1,31 +0,0 @@
1−/*
2− * Copyright (C) 2012 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Nick Dedekind <nick.dedekind@canonical.com>
17− */
18−
19−// Qt
20−#include <QtQml/qqml.h>
21−
22−// self
23−#include "plugin.h"
24−
25−// local
26−#include "networkagent.h"
27−
28−void IndicatorsNetworkPlugin::registerTypes(const char *uri)
29−{
30− qmlRegisterType<NetworkAgent>(uri, 0, 1, "NetworkAgent");
31−}
plugins/Unity/IndicatorsLegacy/Network/plugin.hdeleted−32
@@ -1,32 +0,0 @@
1−/*
2− * Copyright (C) 2012 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Nick Dedekind <nick.dedekind@canonical.com>
17− */
18−
19−#ifndef INDICATORS_NETWORK_PLUGIN_H
20−#define INDICATORS_NETWORK_PLUGIN_H
21−
22−#include <QtQml/QQmlExtensionPlugin>
23−
24−class IndicatorsNetworkPlugin : public QQmlExtensionPlugin
25−{
26− Q_OBJECT
27− Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
28−public:
29− void registerTypes(const char *uri);
30−};
31−
32−#endif // INDICATORS_NETWORK_PLUGIN_H
plugins/Unity/IndicatorsLegacy/Network/qml/AccessPoint.qmldeleted−68
@@ -1,68 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Ubuntu.Components.ListItems 0.1 as ListItem
23−import Unity.IndicatorsLegacy 0.1 as Indicators
24−
25−Indicators.MenuItem {
26− id: accessPoint
27− property variant actionWifiApStrength : menu && actionGroup ? actionGroup.action(menu.extra.canonical_wifi_ap_strength_action) : null
28− property variant wifiApStrength : actionWifiApStrength && actionWifiApStrength.valid ? actionWifiApStrength.state : "0"
29−
30− function getNetworkIcon(data) {
31− var imageName = "nm-signal-100"
32− var signalStrength = parseInt(wifiApStrength)
33−
34− if (data.extra.canonical_wifi_ap_is_adhoc) {
35− imageName = "nm-adhoc";
36− } else if (signalStrength == 0) {
37− imageName = "nm-signal-00";
38− } else if (signalStrength <= 25) {
39− imageName = "nm-signal-25";
40− } else if (signalStrength <= 50) {
41− imageName = "nm-signal-50";
42− } else if (signalStrength <= 75) {
43− imageName = "nm-signal-75";
44− }
45−
46− if (data.extra.canonical_wifi_ap_is_secure) {
47− imageName += "-secure";
48− }
49−
50− return "image://theme/" + imageName;
51− }
52−
53− icon: menu && wifiApStrength ? getNetworkIcon(menu) : "image://theme/wifi-none"
54− iconFrame: false
55− control: CheckBox {
56− id: checkBoxActive
57− height: units.gu(4)
58− width: units.gu(4)
59− anchors.centerIn: parent
60− }
61−
62− Indicators.MenuActionBinding {
63− actionGroup: accessPoint.actionGroup
64− action: menu ? menu.action : ""
65− target: checkBoxActive
66− property: "checked"
67− }
68−}
plugins/Unity/IndicatorsLegacy/Network/qml/CMakeLists.txtdeleted−5
@@ -1,5 +0,0 @@
1−# export_qmlplugin macro
2−include(Plugins)
3−
4−# export the qmldir, *.qml files.
5−export_qmlfiles(Unity.IndicatorsLegacy.Network Unity/IndicatorsLegacy/Network)
plugins/Unity/IndicatorsLegacy/Network/qml/PasswordPage.qmldeleted−88
@@ -1,88 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Ubuntu.Components.ListItems 0.1 as ListItem
23−import Unity.IndicatorsLegacy 0.1 as Indicators
24−
25−Page {
26− id: pagePassword
27−
28− property variant agent
29− property variant token
30−
31− anchors.fill: parent
32− title: "Network Authentication"
33−
34− Column {
35− anchors {
36− left: parent.left
37− right: parent.right
38− }
39−
40− Indicators.SectionMenuItem {
41− label: "Authentication"
42− }
43−
44− Indicators.MenuItem {
45− implicitHeight: password.height + units.gu(1)
46−
47− PasswordTextField {
48− id: password
49− anchors {
50− left: parent.left
51− right: parent.right
52− margins: units.gu(3)
53− verticalCenter: parent.verticalCenter
54− }
55− }
56− }
57−
58− Indicators.MenuItem {
59− Row {
60− anchors {
61− right: parent.right
62− verticalCenter: parent.verticalCenter
63− margins: units.gu(3)
64− }
65−
66− spacing: units.gu(1)
67−
68− Button {
69− text: "Cancel"
70− width: units.gu(10)
71− onClicked: {
72− agent.cancel(token);
73− pageStack.pop();
74− }
75− }
76−
77− Button {
78− text: "OK"
79− width: units.gu(10)
80− onClicked: {
81− agent.authenticate(token, password.text);
82− pageStack.pop();
83− }
84− }
85− }
86− }
87− }
88−}
plugins/Unity/IndicatorsLegacy/Network/qml/PasswordTextField.qmldeleted−68
@@ -1,68 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−
23−Item {
24− id: textMenu
25−
26− property alias text: textField.text
27−
28− height: contentColumn.height
29−
30− Column {
31− id: contentColumn
32− spacing: units.gu(0.5)
33− anchors {
34− left: parent.left
35− right: parent.right
36− }
37−
38− TextField {
39− id: textField
40−
41− anchors {
42− left: parent.left
43− right: parent.right
44− }
45−
46− placeholderText: "Password"
47− echoMode: showPassword.checked ? TextInput.Normal : TextInput.Password
48− }
49−
50− Row {
51− anchors {
52− left: parent.left
53− right: parent.right
54− }
55−
56− spacing: units.gu(1)
57−
58− CheckBox {
59− id: showPassword
60− }
61−
62− Label {
63− text: "Show password"
64− anchors.verticalCenter: showPassword.verticalCenter
65− }
66− }
67− }
68−}
plugins/Unity/IndicatorsLegacy/Network/qml/WifiSection.qmldeleted−34
@@ -1,34 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Unity.IndicatorsLegacy 0.1 as Indicators
23−
24−Indicators.SectionMenuItem {
25− id: wifiSectionMenu
26−
27− Indicators.MenuAction {
28− id: busyAction
29− actionGroup: wifiSectionMenu.actionGroup
30− action: menu ? menu.extra.canonical_busy_action : ""
31− }
32−
33− busy: busyAction.valid ? busyAction.state : false
34−}
plugins/Unity/IndicatorsLegacy/Network/qml/qmldirdeleted−9
@@ -1,9 +0,0 @@
1−module Unity.IndicatorsLegacy.Network
2−plugin IndicatorsLegacyNetworkQml
3−typeinfo plugin.qmltypes
4−
5−NetworkPage 0.1 NetworkPage.qml
6−AccessPoint 0.1 AccessPoint.qml
7−PasswordPage 0.1 PasswordPage.qml
8−PasswordTextField 0.1 PasswordTextField.qml
9−WifiSection 0.1 WifiSection.qml
plugins/Unity/IndicatorsLegacy/Network/secret-agent.cdeleted−382
@@ -1,382 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Alberto Ruiz <alberto.ruiz@canonical.com>
18− * Renato Araujo Oliveira Filho <renato@canonical.com>
19− */
20−
21−
22−#include <glib.h>
23−#include <glib-object.h>
24−#include <nm-secret-agent.h>
25−#include "secret-agent.h"
26−
27−#define UNITY_SETTINGS_TYPE_SECRET_AGENT (unity_settings_secret_agent_get_type ())
28−#define UNITY_SETTINGS_SECRET_AGENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgent))
29−#define UNITY_SETTINGS_SECRET_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentClass))
30−#define UNITY_SETTINGS_IS_SECRET_AGENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT))
31−#define UNITY_SETTINGS_IS_SECRET_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_SETTINGS_TYPE_SECRET_AGENT))
32−#define UNITY_SETTINGS_SECRET_AGENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentClass))
33−#define UNITY_SETTINGS_SECRET_AGENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentPrivate))
34−
35−#define AGENT_ID "com.canonical.settings.network.nm-agent"
36−
37−static gpointer unity_settings_secret_agent_parent_class = NULL;
38−
39−typedef struct _UnitySettingsSecretAgentPrivate UnitySettingsSecretAgentPrivate;
40−
41−struct _UnitySettingsSecretAgentPrivate {
42− GQueue *requests;
43−};
44−
45−typedef struct _SecretRequest {
46− gint id;
47− NMSecretAgent *agent;
48− NMConnection *connection;
49− const char *connection_path;
50− const char *setting_name;
51− const char **hints;
52− NMSecretAgentGetSecretsFlags flags;
53− NMSecretAgentGetSecretsFunc callback;
54− gpointer callback_data;
55−} SecretRequest;
56−
57−GType unity_settings_secret_agent_get_type (void) G_GNUC_CONST;
58−enum {
59− UNITY_SETTINGS_SECRET_AGENT_DUMMY_PROPERTY
60−};
61−
62−enum {
63− SECRET_REQUESTED,
64− REQUEST_CANCELLED,
65− LAST_SIGNAL
66−};
67−
68−static guint signals[LAST_SIGNAL] = { 0 };
69−
70−UnitySettingsSecretAgent* unity_settings_secret_agent_new (void);
71−UnitySettingsSecretAgent* unity_settings_secret_agent_construct (GType object_type);
72−
73−int
74−secret_request_find (SecretRequest *req,
75− guint *id)
76−{
77− if (req->id > *id)
78− return -1;
79−
80− if (req->id < *id)
81− return 1;
82−
83− return 0;
84−}
85−
86−void
87−unity_settings_secret_agent_provide_secret (UnitySettingsSecretAgent *agent,
88− guint request,
89− GHashTable *secrets)
90−{
91− GList *iter;
92− SecretRequest *req;
93− UnitySettingsSecretAgentPrivate *priv = agent->priv;
94−
95− iter = g_queue_find_custom (priv->requests,
96− &request,
97− (GCompareFunc)secret_request_find);
98−
99− if (iter == NULL || iter->data == NULL)
100− {
101− g_warning ("Secret request with id <%d> was not found", (int)request);
102− return;
103− }
104−
105− req = iter->data;
106−
107− req->callback (NM_SECRET_AGENT (agent),
108− req->connection,
109− secrets,
110− NULL,
111− req->callback_data);
112−
113− g_queue_remove_all (priv->requests, req);
114− g_free (req);
115− return;
116−}
117−
118−void
119−free_request (SecretRequest *req)
120−{
121− g_object_unref (req->connection);
122− g_free (req);
123−}
124−
125−void
126−unity_settings_secret_agent_cancel_request (UnitySettingsSecretAgent *agent,
127− guint request)
128−{
129− GList *iter;
130− SecretRequest *req;
131− UnitySettingsSecretAgentPrivate *priv = agent->priv;
132− GError *error;
133−
134− iter = g_queue_find_custom (priv->requests,
135− &request,
136− (GCompareFunc)secret_request_find);
137−
138− if (iter == NULL || iter->data == NULL)
139− {
140− g_warning ("Secret request with id <%d> was not found", (int)request);
141− return;
142− }
143−
144− req = iter->data;
145− error = g_error_new (NM_SECRET_AGENT_ERROR,
146− NM_SECRET_AGENT_ERROR_INTERNAL_ERROR,
147− "This secret request was canceled by the user.");
148−
149− req->callback (NM_SECRET_AGENT (agent),
150− req->connection,
151− NULL,
152− error,
153− req->callback_data);
154−
155− g_queue_remove_all (priv->requests, req);
156− free_request (req);
157− return;
158−}
159−
160−static void
161−delete_secrets (NMSecretAgent *agent,
162− NMConnection *connection,
163− const char *connection_path,
164− NMSecretAgentDeleteSecretsFunc callback,
165− gpointer callback_data)
166−{
167− g_debug ("delete secrets");
168−}
169−
170−/* If it returns G_MAXUINT it's considered an error */
171−static guint
172−find_available_id (UnitySettingsSecretAgentPrivate *priv)
173−{
174− guint i = 0;
175− guint candidate = 0;
176−
177− if (g_queue_get_length (priv->requests) == G_MAXUINT)
178− return G_MAXUINT;
179−
180− while (i < g_queue_get_length (priv->requests))
181− {
182− SecretRequest *req = (SecretRequest*)g_queue_peek_nth (priv->requests, i);
183−
184− if (req->id == candidate)
185− {
186− candidate++;
187− i = 0;
188− }
189− else
190− {
191− i++;
192− }
193− }
194−
195− return i;
196−}
197−
198−static void
199−get_secrets (NMSecretAgent *agent,
200− NMConnection *connection,
201− const char *connection_path,
202− const char *setting_name,
203− const char **hints,
204− NMSecretAgentGetSecretsFlags flags,
205− NMSecretAgentGetSecretsFunc callback,
206− gpointer callback_data)
207−{
208− guint id;
209− UnitySettingsSecretAgentPrivate *priv = UNITY_SETTINGS_SECRET_AGENT_GET_PRIVATE (agent);
210− SecretRequest *req = NULL;
211−
212− if (flags == NM_SECRET_AGENT_GET_SECRETS_FLAG_NONE)
213− {
214− GError *error = g_error_new (NM_SECRET_AGENT_ERROR,
215− NM_SECRET_AGENT_ERROR_INTERNAL_ERROR,
216− "No password found for this connection.");
217− callback (agent, connection, NULL, error, callback_data);
218− g_error_free (error);
219− return;
220− }
221−
222− id = find_available_id (priv);
223− if (id == G_MAXUINT)
224− {
225− GError *error = g_error_new (NM_SECRET_AGENT_ERROR,
226− NM_SECRET_AGENT_ERROR_INTERNAL_ERROR,
227− "Reached maximum number of requests.");
228− callback (agent, connection, NULL, error, callback_data);
229− g_error_free (error);
230− return;
231− }
232−
233− /* Adding a request */
234− req = (SecretRequest*) g_malloc0 (sizeof (SecretRequest));
235− *req = ((SecretRequest)
236− { id,
237− agent,
238− connection,
239− connection_path,
240− setting_name,
241− hints,
242− flags,
243− callback,
244− callback_data });
245−
246− g_object_ref (connection);
247−
248− g_queue_push_tail (priv->requests, req);
249−
250− g_signal_emit_by_name (agent,
251− UNITY_SETTINGS_SECRET_AGENT_SECRET_REQUESTED,
252− id,
253− connection,
254− setting_name,
255− hints,
256− flags);
257−}
258−
259−static void
260−save_secrets (NMSecretAgent *agent,
261− NMConnection *connection,
262− const char *connection_path,
263− NMSecretAgentSaveSecretsFunc callback,
264− gpointer callback_data)
265−{
266− g_debug ("save secrets");
267−}
268−
269−static void
270−cancel_get_secrets (NMSecretAgent *agent,
271− const char *connection_path,
272− const char *setting_name)
273−{
274− g_debug ("cancel get secrets");
275−}
276−
277−UnitySettingsSecretAgent*
278−unity_settings_secret_agent_construct (GType object_type)
279−{
280− UnitySettingsSecretAgent * self = NULL;
281− self = (UnitySettingsSecretAgent*) g_object_new (object_type,
282− NM_SECRET_AGENT_IDENTIFIER, AGENT_ID,
283− NULL);
284− return self;
285−}
286−
287−
288−UnitySettingsSecretAgent*
289−unity_settings_secret_agent_new (void)
290−{
291− return unity_settings_secret_agent_construct (UNITY_SETTINGS_TYPE_SECRET_AGENT);
292−}
293−
294−static void
295−destroy_pending_request (gpointer data)
296−{
297− SecretRequest* req = (SecretRequest*)data;
298− /* Reporting the cancellation of all pending requests */
299− g_signal_emit_by_name (req->agent,
300− UNITY_SETTINGS_SECRET_AGENT_REQUEST_CANCELLED,
301− req->id);
302−
303− free_request (req);
304−}
305−
306−static void
307−unity_settings_secret_agent_finalize (GObject *agent)
308−{
309− UnitySettingsSecretAgentPrivate *priv = UNITY_SETTINGS_SECRET_AGENT_GET_PRIVATE (agent);
310−
311− g_queue_free_full (priv->requests, destroy_pending_request);
312−}
313−
314−static void
315−unity_settings_secret_agent_class_init (UnitySettingsSecretAgentClass *klass)
316−{
317− unity_settings_secret_agent_parent_class = g_type_class_peek_parent (klass);
318− NMSecretAgentClass *parent_class = NM_SECRET_AGENT_CLASS (klass);
319− parent_class->get_secrets = get_secrets;
320− parent_class->save_secrets = save_secrets;
321− parent_class->delete_secrets = delete_secrets;
322− parent_class->cancel_get_secrets = cancel_get_secrets;
323−
324− g_type_class_add_private (klass, sizeof(UnitySettingsSecretAgentPrivate));
325− G_OBJECT_CLASS (klass)->finalize = unity_settings_secret_agent_finalize;
326−
327−
328− signals[SECRET_REQUESTED] = g_signal_new (UNITY_SETTINGS_SECRET_AGENT_SECRET_REQUESTED,
329− G_OBJECT_CLASS_TYPE (G_OBJECT_CLASS (klass)),
330− G_SIGNAL_RUN_FIRST,
331− G_STRUCT_OFFSET (UnitySettingsSecretAgentClass, secret_requested),
332− NULL, NULL, NULL,
333− G_TYPE_NONE, 5,
334− G_TYPE_UINT, G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_UINT);
335−
336− signals[REQUEST_CANCELLED] = g_signal_new (UNITY_SETTINGS_SECRET_AGENT_REQUEST_CANCELLED,
337− G_OBJECT_CLASS_TYPE (G_OBJECT_CLASS (klass)),
338− G_SIGNAL_RUN_FIRST,
339− G_STRUCT_OFFSET (UnitySettingsSecretAgentClass, request_cancelled),
340− NULL, NULL, NULL,
341− G_TYPE_NONE, 1,
342− G_TYPE_UINT);
343−}
344−
345−
346−static void
347−unity_settings_secret_agent_instance_init (UnitySettingsSecretAgent *self)
348−{
349− self->priv = UNITY_SETTINGS_SECRET_AGENT_GET_PRIVATE (self);
350− self->priv->requests = g_queue_new ();
351−}
352−
353−GType
354−unity_settings_secret_agent_get_type (void)
355−{
356− static volatile gsize unity_settings_secret_agent_type_id__volatile = 0;
357− if (g_once_init_enter (&unity_settings_secret_agent_type_id__volatile))
358− {
359− static const GTypeInfo g_define_type_info =
360− {
361− sizeof (UnitySettingsSecretAgentClass),
362− (GBaseInitFunc) NULL,
363− (GBaseFinalizeFunc) NULL,
364− (GClassInitFunc) unity_settings_secret_agent_class_init,
365− (GClassFinalizeFunc) NULL,
366− NULL,
367− sizeof (UnitySettingsSecretAgent),
368− 0,
369− (GInstanceInitFunc) unity_settings_secret_agent_instance_init,
370− NULL
371− };
372− GType unity_settings_secret_agent_type_id;
373− unity_settings_secret_agent_type_id = g_type_register_static (NM_TYPE_SECRET_AGENT,
374− "UnitySettingsSecretAgent",
375− &g_define_type_info,
376− 0);
377− g_once_init_leave (&unity_settings_secret_agent_type_id__volatile,
378− unity_settings_secret_agent_type_id);
379− }
380−
381− return unity_settings_secret_agent_type_id__volatile;
382−}
plugins/Unity/IndicatorsLegacy/Network/secret-agent.hdeleted−102
@@ -1,102 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Alberto Ruiz <alberto.ruiz@canonical.com>
18− * Renato Araujo Oliveira Filho <renato@canonical.com>
19− */
20−
21−#ifndef __SECRET_AGENT_H__
22−#define __SECRET_AGENT_H__
23−
24−#include <glib.h>
25−#include <glib-object.h>
26−#include <nm-secret-agent.h>
27−
28−/*
29− * This class is a basic implementation of the NetworkManager SecretAgent base class.
30− *
31− * The purpose of this class is to handle credential requests from the network,
32− * for example, from a WiFi hotspot or a VPN network.
33− *
34− * It queues requests objects (SecretRequest) on a GQueue in the private struct
35− * of the class. And notifies the consumer of the class through the "secret-request"
36− * and the "request-cancelled" signals with the following callback prototypes:
37− *
38− * void (*secret_requested) (UnitySettingsSecretAgent *self,
39− * guint id,
40− * NMConnection *connection,
41− * const char *setting_name,
42− * const char **hints,
43− * NMSecretAgentGetSecretsFlags flags,
44− * gpointer user_data);
45− *
46− * void (*request_cancelled) (UnitySettingsSecretAgent *self,
47− * guint id,
48− * gpointer user_data);
49− *
50− */
51−
52−
53−G_BEGIN_DECLS
54−
55−
56−#define UNITY_SETTINGS_TYPE_SECRET_AGENT (unity_settings_secret_agent_get_type ())
57−#define UNITY_SETTINGS_SECRET_AGENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgent))
58−#define UNITY_SETTINGS_SECRET_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentClass))
59−#define UNITY_SETTINGS_IS_SECRET_AGENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT))
60−#define UNITY_SETTINGS_IS_SECRET_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_SETTINGS_TYPE_SECRET_AGENT))
61−#define UNITY_SETTINGS_SECRET_AGENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_SETTINGS_TYPE_SECRET_AGENT, UnitySettingsSecretAgentClass))
62−
63−#define UNITY_SETTINGS_SECRET_AGENT_SECRET_REQUESTED "secret-requested"
64−#define UNITY_SETTINGS_SECRET_AGENT_REQUEST_CANCELLED "request-cancelled"
65−
66−typedef struct _UnitySettingsSecretAgent UnitySettingsSecretAgent;
67−typedef struct _UnitySettingsSecretAgentClass UnitySettingsSecretAgentClass;
68−typedef struct _UnitySettingsSecretAgentPrivate UnitySettingsSecretAgentPrivate;
69−
70−struct _UnitySettingsSecretAgent {
71− NMSecretAgent parent_instance;
72− UnitySettingsSecretAgentPrivate * priv;
73−};
74−
75−struct _UnitySettingsSecretAgentClass {
76− NMSecretAgentClass parent_class;
77−
78− void (*secret_requested) (UnitySettingsSecretAgent *self,
79− guint id,
80− NMConnection *connection,
81− const char *setting_name,
82− const char **hints,
83− NMSecretAgentGetSecretsFlags flags);
84−
85− void (*request_cancelled) (UnitySettingsSecretAgent *self,
86− guint id);
87−};
88−
89−
90−GType unity_settings_secret_agent_get_type (void) G_GNUC_CONST;
91−UnitySettingsSecretAgent* unity_settings_secret_agent_new (void);
92−UnitySettingsSecretAgent* unity_settings_secret_agent_construct (GType object_type);
93−
94−void unity_settings_secret_agent_provide_secret (UnitySettingsSecretAgent *agent,
95− guint request,
96− GHashTable *secrets);
97−void unity_settings_secret_agent_cancel_request (UnitySettingsSecretAgent *agent,
98− guint request);
99−
100−G_END_DECLS
101−
102−#endif
plugins/Unity/IndicatorsLegacy/flatmenuproxymodel.cppdeleted−288
@@ -1,288 +0,0 @@
1−/*
2− * Copyright 2012 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−extern "C" {
21−#include <gio/gio.h>
22−}
23−
24−#include "flatmenuproxymodel.h"
25−#include <QString>
26−#include <QStringList>
27−
28−FlatMenuProxyModel::FlatMenuProxyModel(QAbstractItemModel *source)
29− : QAbstractProxyModel(source),
30− m_rowCount(0)
31−{
32− m_model = new QDBusMenuModel;
33− setSourceModel(m_model);
34−}
35−
36−/*! \internal */
37−FlatMenuProxyModel::~FlatMenuProxyModel()
38−{
39− delete m_model;
40−}
41−
42−void FlatMenuProxyModel::setSourceModel(QAbstractItemModel *source)
43−{
44− if (sourceModel()) {
45− QAbstractItemModel *oldSource = sourceModel();
46− if (oldSource == source) {
47− return;
48− }
49−
50− oldSource->disconnect(this);
51− }
52−
53− QAbstractProxyModel::setSourceModel(source);
54−
55− if (source) {
56−
57− // FIXME - not working correctly with dynamic inserts/removes
58− // FIXME 2 - We're using Queud connections as a workaround to QTBUG-32859
59− // The signals from qmenumodel are coming straight off the glib event loop,
60− // which is not supported and has the effect of listview delegates not to be deleted.
61−
62− connect(source,
63− SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),
64− SLOT(onModelAboutToBeReset()), Qt::QueuedConnection);
65− connect(source,
66− SIGNAL(rowsInserted(QModelIndex,int,int)),
67− SLOT(onModelReset()), Qt::QueuedConnection);
68−
69− connect(source,
70− SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),
71− SLOT(onModelAboutToBeReset()), Qt::QueuedConnection);
72− connect(source,
73− SIGNAL(rowsRemoved(QModelIndex,int,int)),
74− SLOT(onModelReset()), Qt::QueuedConnection);
75−
76− connect(source,
77− SIGNAL(modelAboutToBeReset()),
78− SLOT(onModelAboutToBeReset()), Qt::QueuedConnection);
79− connect(source,
80− SIGNAL(modelReset()),
81− SLOT(onModelReset()), Qt::QueuedConnection);
82−
83− //Connection args
84− connect(source,
85− SIGNAL(busTypeChanged(DBusEnums::BusType)),
86− SIGNAL(busTypeChanged()));
87−
88− connect(source,
89− SIGNAL(busNameChanged(const QString&)),
90− SIGNAL(busNameChanged()));
91−
92− connect(source,
93− SIGNAL(objectPathChanged(const QString&)),
94− SIGNAL(objectPathChanged()));
95−
96− connect(source,
97− SIGNAL(statusChanged(DBusEnums::ConnectionStatus)),
98− SIGNAL(statusChanged()), Qt::QueuedConnection);
99−
100− // initiliaze rowCount
101− QModelIndex lastItem = source->index(source->rowCount() - 1, 0);
102− m_rowCount = recursiveRowCount(lastItem);
103− } else {
104− m_rowCount = 0;
105− }
106−
107− Q_EMIT countChanged();
108−}
109−
110−void FlatMenuProxyModel::setBusName(const QString &busName)
111−{
112− m_model->setBusName(busName);
113−}
114−
115−QString FlatMenuProxyModel::busName() const
116−{
117− return m_model->busName();
118−}
119−
120−void FlatMenuProxyModel::setObjectPath(const QString &busPath)
121−{
122− m_model->setObjectPath(busPath);
123−}
124−
125−QString FlatMenuProxyModel::objectPath() const
126−{
127− return m_model->objectPath();
128−}
129−
130−int FlatMenuProxyModel::status() const
131−{
132− return m_model->status();
133−}
134−
135−DBusEnums::BusType FlatMenuProxyModel::busType() const
136−{
137− return m_model->busType();
138−}
139−
140−void FlatMenuProxyModel::setIntBusType(int type)
141−{
142− m_model->setBusType((DBusEnums::BusType) type);
143−}
144−
145−void FlatMenuProxyModel::start()
146−{
147− m_model->start();
148−}
149−
150−void FlatMenuProxyModel::stop()
151−{
152− m_model->stop();
153−}
154−
155−QModelIndex FlatMenuProxyModel::mapFromSource(const QModelIndex &index) const
156−{
157− if (!index.isValid()) {
158− return QModelIndex();
159− }
160−
161− QModelIndex result = createIndex(rowOffsetOf(index, index.row()), 0);
162− return result;
163−}
164−
165−QModelIndex FlatMenuProxyModel::mapToSource(const QModelIndex &index) const
166−{
167− if (sourceModel() && m_indexCache.contains(index.row())) {
168− QString key = m_indexCache.value(index.row());
169− QStringList sections = key.split('.', QString::SkipEmptyParts);
170− QModelIndex sourceIndex = QModelIndex();
171− for(int i=0; i < sections.size(); i++) {
172− sourceIndex = sourceModel()->index(sections.at(i).toInt(), 9, sourceIndex);
173− }
174− return sourceIndex;
175− } else {
176− return QModelIndex();
177− }
178−}
179−
180−QModelIndex FlatMenuProxyModel::index(int row, int sectionRow, const QModelIndex &parent, const QString &key) const
181−{
182− for (int i = 0, count = 0; i < sourceModel()->rowCount(parent); i++) {
183− QModelIndex sourceIndex = sourceModel()->index(i, 0, parent);
184− int indexCount = recursiveRowCount(sourceIndex);
185−
186− if (count == sectionRow) {
187− QString sectionKey = key + "." + QString::number(i);
188− m_indexCache.insert(row, sectionKey);
189− return createIndex(row, 0);
190− } else if ((count + indexCount) >= sectionRow) {
191− count++;
192− return index(row, sectionRow - count, sourceIndex, key + "." + QString::number(i));
193− }
194−
195− count += indexCount + 1;
196− }
197− return QModelIndex();
198−}
199−
200−QModelIndex FlatMenuProxyModel::index(int row, int, const QModelIndex &) const
201−{
202− return index(row, row, QModelIndex(), "");
203−}
204−
205−QModelIndex FlatMenuProxyModel::parent(const QModelIndex &) const
206−{
207− return QModelIndex();
208−}
209−
210−int FlatMenuProxyModel::columnCount(const QModelIndex &) const
211−{
212− return 1;
213−}
214−
215−int FlatMenuProxyModel::rowCount(const QModelIndex &) const
216−{
217− return m_rowCount;
218−}
219−
220−int FlatMenuProxyModel::count() const
221−{
222− return rowCount(QModelIndex());
223−}
224−
225−void FlatMenuProxyModel::onModelAboutToBeReset()
226−{
227− beginResetModel();
228−}
229−
230−void FlatMenuProxyModel::onModelReset()
231−{
232− // initiliaze rowCount
233− m_rowCount = 0;
234− for (int i = 0, iMax = sourceModel()->rowCount(); i < iMax; i++) {
235− QModelIndex index = sourceModel()->index(i, 0);
236− m_rowCount += recursiveRowCount(index) + 1;
237− }
238− m_indexCache.clear();
239− endResetModel();
240− Q_EMIT countChanged();
241−}
242−
243−int FlatMenuProxyModel::recursiveRowCount(const QModelIndex &index) const
244−{
245− int size = sourceModel()->rowCount(index);
246− for (int i=0, iMax=size; i < iMax; i++) {
247− QModelIndex currentIndex = sourceModel()->index(i, 0, index);
248− size += recursiveRowCount(currentIndex);
249− }
250−
251− return size;
252−}
253−
254−int FlatMenuProxyModel::rowOffsetOf(const QModelIndex &index, int row, bool inclusive) const
255−{
256− int offset = 0;
257−
258− QModelIndex parent = index.parent();
259−
260− // Check row 0 offset
261− while(parent.isValid()) {
262− offset += 1;
263− for (int i = 0; i < parent.row(); i++) {
264− QModelIndex currentIndex = sourceModel()->index(i, 0, parent);
265− offset += recursiveRowCount(currentIndex) + 1;
266− }
267− parent = parent.parent();
268− }
269−
270− // Check index.row() offset
271− for(int i = 0; i < row; i++) {
272− QModelIndex currentIndex = sourceModel()->index(i, 0, index.parent());
273− offset += recursiveRowCount(currentIndex) + 1;
274− }
275−
276− if (inclusive) {
277− // itself
278− QModelIndex currentIndex = sourceModel()->index(row, 0, index.parent());
279− offset += recursiveRowCount(currentIndex);
280− }
281−
282− return offset;
283−}
284−
285−QVariant FlatMenuProxyModel::data(int row, int role) const
286−{
287− return QAbstractProxyModel::data(index(row, 0), role);
288−}
plugins/Unity/IndicatorsLegacy/flatmenuproxymodel.hdeleted−93
@@ -1,93 +0,0 @@
1−/*
2− * Copyright 2012 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−#ifndef FLATMENUPROXYMODEL_H
21−#define FLATMENUPROXYMODEL_H
22−
23−#include "unityindicatorsglobal.h"
24−
25−#include <QAbstractProxyModel>
26−#include <qdbusmenumodel.h>
27−
28−class SectionInfo;
29−
30−class UNITYINDICATORS_EXPORT FlatMenuProxyModel : public QAbstractProxyModel
31−{
32− Q_OBJECT
33− Q_PROPERTY(int count READ count NOTIFY countChanged)
34− Q_PROPERTY(int busType READ busType WRITE setIntBusType NOTIFY busTypeChanged)
35− Q_PROPERTY(QString busName READ busName WRITE setBusName NOTIFY busNameChanged)
36− Q_PROPERTY(QString objectPath READ objectPath WRITE setObjectPath NOTIFY objectPathChanged)
37− Q_PROPERTY(int status READ status NOTIFY statusChanged)
38−
39− Q_ENUMS(Roles)
40−public:
41− FlatMenuProxyModel(QAbstractItemModel *source=0);
42− ~FlatMenuProxyModel();
43−
44− void setSourceModel(QAbstractItemModel * sourceModel);
45−
46− Q_INVOKABLE QVariant data(int row, int role = Qt::DisplayRole) const;
47−
48− QModelIndex mapFromSource(const QModelIndex &index) const;
49− QModelIndex mapToSource(const QModelIndex &index) const;
50−
51− QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const;
52− QModelIndex parent(const QModelIndex &index) const;
53− int rowCount(const QModelIndex &parent = QModelIndex()) const;
54− int count() const;
55− int columnCount(const QModelIndex &parent) const;
56−
57− void setBusName(const QString &busName);
58− QString busName() const;
59−
60− void setObjectPath(const QString &busName);
61− QString objectPath() const;
62−
63− DBusEnums::BusType busType() const;
64− void setIntBusType(int type);
65−
66− int status() const;
67−
68−public Q_SLOTS:
69− void onModelAboutToBeReset();
70− void onModelReset();
71−
72− void start();
73− void stop();
74−
75−Q_SIGNALS:
76− void countChanged();
77−
78− void busTypeChanged();
79− void busNameChanged();
80− void objectPathChanged();
81− void statusChanged();
82−
83−private:
84− QDBusMenuModel *m_model;
85− mutable QMap<int, QString> m_indexCache;
86− int m_rowCount;
87−
88− int rowOffsetOf(const QModelIndex &index, int row, bool inclusive = false) const;
89− int recursiveRowCount(const QModelIndex &index) const;
90− QModelIndex index(int row, int rowCount, const QModelIndex &parent, const QString &key) const;
91−};
92−
93−#endif
plugins/Unity/IndicatorsLegacy/modelprinter.cppdeleted−114
@@ -1,114 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−// self
21−#include "modelprinter.h"
22−
23−// Qt
24−#include <QTextStream>
25−
26−ModelPrinter::ModelPrinter(QObject *parent)
27− : QObject(parent)
28− , m_model(NULL)
29−{
30−}
31−
32−void ModelPrinter::setSourceModel(QAbstractItemModel * sourceModel)
33−{
34− if (m_model != NULL) {
35− disconnect(m_model);
36− }
37− if (m_model != sourceModel) {
38− m_model = sourceModel;
39− Q_EMIT modelChanged();
40− Q_EMIT textChanged();
41− }
42− if (m_model != NULL) {
43− connect(m_model, SIGNAL(modelReset()), this, SIGNAL(textChanged()));
44− connect(m_model, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SIGNAL(textChanged()));
45− connect(m_model, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SIGNAL(textChanged()));
46− }
47−}
48−
49−QAbstractItemModel* ModelPrinter::sourceModel() const
50−{
51− return m_model;
52−}
53−
54−QString ModelPrinter::text(const QModelIndex& index) const
55−{
56− return recurseString(index, 0);
57−}
58−
59−QString tabify(int level) { QString str;
60− for (int i = 0; i < level; i++) {
61− str += " ";
62− }
63− return str;
64−}
65−
66−QString ModelPrinter::recurseString(const QModelIndex& index, int level) const
67−{
68− if (!m_model)
69− return "";
70−
71− QString str;
72− QTextStream stream(&str);
73−
74− QHash<int, QByteArray> roleNames = m_model->roleNames();
75− QList<int> roles = roleNames.keys();
76− qSort(roles);
77− Q_FOREACH(int role, roles) {
78− QVariant vData = m_model->data(index, role);
79− if (vData.canConvert(QMetaType::QVariantMap)) {
80− QMapIterator<QString, QVariant> iter(vData.toMap());
81− while (iter.hasNext()) {
82− iter.next();
83− stream << tabify(level)
84− << roleNames[role]
85− << "."
86− << iter.key()
87− << ": "
88− << iter.value().toString()
89− << endl;
90− }
91− }
92− else {
93− stream << tabify(level)
94− << roleNames[role]
95− << ": "
96− << vData.toString()
97− << endl;
98− }
99− }
100−
101− int rowCount = m_model->rowCount(index);
102− stream << tabify(level)
103− << "child count"
104− << ": "
105− << rowCount
106− << endl
107− << endl;
108−
109− for (int i = 0; i < rowCount; i++) {
110− QModelIndex child = m_model->index(i, 0, index);
111− str += recurseString(child, level+1);
112− }
113− return str;
114−}
plugins/Unity/IndicatorsLegacy/modelprinter.hdeleted−50
@@ -1,50 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−#ifndef MODELPRINTER_H
21−#define MODELPRINTER_H
22−
23−#include <QSortFilterProxyModel>
24−
25−// This class acts as a namespace only, with the addition that its enums
26−// are registered to be exposed on the QML side.
27−class ModelPrinter : public QObject
28−{
29− Q_OBJECT
30−
31− Q_PROPERTY(QAbstractItemModel* model READ sourceModel WRITE setSourceModel NOTIFY modelChanged)
32− Q_PROPERTY(QString text READ text NOTIFY textChanged)
33−public:
34− ModelPrinter(QObject* parent=0);
35−
36− void setSourceModel(QAbstractItemModel* sourceModel);
37− QAbstractItemModel* sourceModel() const;
38−
39− Q_INVOKABLE QString text(const QModelIndex& index = QModelIndex()) const;
40−
41−Q_SIGNALS:
42− void modelChanged();
43− void textChanged();
44−
45−private:
46− QString recurseString(const QModelIndex& index, int level) const;
47− QAbstractItemModel* m_model;
48−};
49−
50−#endif // MODELPRINTER_H
plugins/Unity/IndicatorsLegacy/plugin.cppdeleted−42
@@ -1,42 +0,0 @@
1−/*
2− * Copyright (C) 2012 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Nick Dedekind <nick.dedekind@canonical.com>
17− */
18−
19−// Qt
20−#include <QtQml/qqml.h>
21−
22−// self
23−#include "plugin.h"
24−
25−// local
26−#include "flatmenuproxymodel.h"
27−#include "indicators.h"
28−#include "modelprinter.h"
29−
30−void IndicatorsPlugin::registerTypes(const char *uri)
31−{
32− Q_INIT_RESOURCE(indicators);
33−
34− qmlRegisterType<FlatMenuProxyModel>(uri, 0, 1, "FlatMenuProxyModel");
35− qmlRegisterType<ModelPrinter>(uri, 0, 1, "ModelPrinter");
36−
37− qmlRegisterUncreatableType<ActionState>(uri, 0, 1, "ActionState", "Can't create ActionState class");
38− qmlRegisterUncreatableType<NetworkActionState>(uri, 0, 1, "NetworkActionState", "Can't create NetworkActionState class");
39− qmlRegisterUncreatableType<NetworkConnection>(uri, 0, 1, "NetworkConnection", "Can't create NetworkConnection class");
40− qmlRegisterUncreatableType<IndicatorsModelRole>(uri, 0, 1, "IndicatorsModelRole", "Can't create IndicatorsModelRole class");
41− qmlRegisterUncreatableType<FlatMenuProxyModelRole>(uri, 0, 1, "FlatMenuProxyModelRole", "Can't create FlatMenuProxyModelRole class");
42−}
plugins/Unity/IndicatorsLegacy/plugin.hdeleted−32
@@ -1,32 +0,0 @@
1−/*
2− * Copyright (C) 2012 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Nick Dedekind <nick.dedekind@canonical.com>
17− */
18−
19−#ifndef INDICATORS_PLUGIN_H
20−#define INDICATORS_PLUGIN_H
21−
22−#include <QtQml/QQmlExtensionPlugin>
23−
24−class IndicatorsPlugin : public QQmlExtensionPlugin
25−{
26− Q_OBJECT
27− Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
28−public:
29− void registerTypes(const char *uri);
30−};
31−
32−#endif // INDICATORS_PLUGIN_H
plugins/Unity/IndicatorsLegacy/qml/BasicMenuItem.qmldeleted−48
@@ -1,48 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components.ListItems 0.1 as ListItem
22−
23−ListItem.Standard {
24− id: stdListItem
25−
26− property bool menuActivated: false
27− property QtObject menu
28− property QtObject actionGroup
29− property alias color: background.color
30−
31− signal activateMenu()
32− signal deactivateMenu()
33−
34− showDivider: false
35− __foregroundColor: "#e8e1d0"
36−
37− backgroundIndicator: RemoveBackground {
38− state: stdListItem.swipingState
39− }
40−
41− Rectangle {
42− id: background
43−
44− anchors.fill: parent
45− color: "#221e1c"
46− z: -1
47− }
48−}
plugins/Unity/IndicatorsLegacy/qml/ButtonMenuItem.qmldeleted−47
@@ -1,47 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−
23−BasicMenuItem {
24− id: buttonMenu
25− color: "#221e1b"
26− implicitHeight: units.gu(7)
27−
28− Button {
29− id: button
30− enabled: menuAction.valid
31− text: menu ? menu.label : ""
32− anchors.centerIn: parent
33− height: units.gu(4)
34− width: units.gu(16)
35− color: "#1b1817"
36−
37− onClicked: {
38− menuAction.activate()
39− }
40− }
41−
42− MenuAction {
43− id: menuAction
44− actionGroup: buttonMenu.actionGroup
45− action: menu ? menu.action : ""
46− }
47−}
plugins/Unity/IndicatorsLegacy/qml/CMakeLists.txtdeleted−5
@@ -1,5 +0,0 @@
1−# export_qmlplugin macro
2−include(Plugins)
3−
4−# export the qmldir, *.qml files.
5−export_qmlfiles(Unity.IndicatorsLegacy Unity/IndicatorsLegacy)
plugins/Unity/IndicatorsLegacy/qml/DivMenuItem.qmldeleted−26
@@ -1,26 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Olivier Tilloy <olivier.tilloy@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−
23−Rectangle {
24− color: "#181514"
25− implicitHeight: units.gu(1)
26−}
plugins/Unity/IndicatorsLegacy/qml/HLine.qmldeleted−29
@@ -1,29 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−
23−Rectangle {
24− height: units.dp(1)
25− anchors {
26− left: parent.left
27− right: parent.right
28− }
29−}
plugins/Unity/IndicatorsLegacy/qml/IndicatorBase.qmldeleted−59
@@ -1,59 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− * Nick Dedekind <nick.dedekind@canonical.com>
19− */
20−
21−import QtQuick 2.0
22−import QMenuModel 0.1
23−import Unity.IndicatorsLegacy 0.1 as Indicators
24−
25−Item {
26− id: indicatorItem
27−
28− //const
29− property string title
30− property int busType
31− property string busName
32− property string actionsObjectPath
33− property var menuObjectPaths: undefined
34− readonly property string device: "phone"
35−
36− property string deviceMenuObjectPath: menuObjectPaths.hasOwnProperty(device) ? menuObjectPaths[device] : ""
37−
38− signal actionGroupUpdated()
39− signal modelUpdated()
40−
41− property var actionGroup: QDBusActionGroup {
42− busType: indicatorItem.busType
43− busName: indicatorItem.busName
44− objectPath: indicatorItem.actionsObjectPath
45−
46− onActionAppear: indicatorItem.actionGroupUpdated();
47− }
48−
49− property var proxyModel: Indicators.FlatMenuProxyModel {
50− busType: indicatorItem.busType
51− busName: indicatorItem.busName
52− objectPath: indicatorItem.deviceMenuObjectPath
53−
54− onStatusChanged: indicatorItem.modelUpdated();
55− onRowsInserted: indicatorItem.modelUpdated();
56− onRowsRemoved: indicatorItem.modelUpdated();
57− onDataChanged: indicatorItem.modelUpdated();
58− }
59−}
plugins/Unity/IndicatorsLegacy/qml/IndicatorPage.qmldeleted−191
@@ -1,191 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− * Nick Dedekind <nick.dedekind@canonical.com>
19− */
20−
21−import QtQuick 2.0
22−import Ubuntu.Components 0.1 as Components
23−
24−IndicatorBase {
25− id: main
26−
27− //const
28− property alias emptyText: emptyLabel.text
29− property alias highlightFollowsCurrentItem : mainMenu.highlightFollowsCurrentItem
30− property bool __active: false
31−
32− ListView {
33− id: mainMenu
34−
35− property int visibleItems: 0
36−
37− model: proxyModel
38− anchors {
39− fill: parent
40− bottomMargin: Qt.inputMethod.visible ? (Qt.inputMethod.keyboardRectangle.height - main.anchors.bottomMargin) : 0
41−
42− Behavior on bottomMargin {
43− NumberAnimation {
44− duration: 175
45− easing.type: Easing.OutQuad
46− }
47− }
48− // TODO - does ever frame.
49− onBottomMarginChanged: {
50− mainMenu.positionViewAtIndex(mainMenu.currentIndex, ListView.End)
51− }
52− }
53−
54− // Ensure all delegates are cached in order to improve smoothness of scrolling
55− cacheBuffer: 10000
56−
57− // Only allow flicking if the content doesn't fit on the page
58− interactive: contentHeight > height
59−
60− currentIndex: -1
61− delegate: Item {
62− id: item
63− property bool ready: false
64− property alias empty: factory.empty
65−
66− anchors {
67− left: parent.left
68− right: parent.right
69− }
70− height: div.height + factory.implicitHeight
71− visible: height > 0
72−
73− Component.onCompleted: {
74− if (!item.empty) {
75− mainMenu.visibleItems += 1;
76− }
77− ready = true;
78− }
79− Component.onDestruction: {
80− if (!item.empty) {
81− mainMenu.visibleItems -= 1;
82− }
83− ready = false;
84− }
85−
86− onEmptyChanged: {
87− if (!ready) {
88− return;
89− }
90− if (empty) {
91− mainMenu.visibleItems -= 1;
92− } else {
93− mainMenu.visibleItems += 1;
94− }
95− }
96−
97− ListView.onRemove: {
98− if (!highlightFollowsCurrentItem) {
99− mainMenu.currentIndex = -1;
100− }
101− }
102−
103− Column {
104− id: contents
105−
106− anchors.fill: parent
107−
108− DivMenuItem {
109− id: div
110−
111− anchors.left: parent.left
112− anchors.right: parent.right
113− // only visible if is a root or a section header element and the factory is visible
114− height: {
115− // skipe first item
116− if (item.y == 0) {
117− return 0;
118− }
119− if (hasSection || ((depth == 0) && (!factory.empty))) {
120− return implicitHeight;
121− } else {
122− return 0;
123− }
124− }
125− }
126−
127− MenuItemFactory {
128− id: factory
129−
130− actionGroup: main.actionGroup
131− isCurrentItem: item.ListView.isCurrentItem
132− anchors {
133− left: parent.left
134− right: parent.right
135− }
136− menu: model
137−
138− Connections {
139− target : factory
140− onActivated: item.ListView.view.currentIndex = index
141− onDeactivated: item.ListView.view.currentIndex = -1
142− }
143− }
144− }
145− }
146− }
147−
148− Components.Label {
149− id: emptyLabel
150− visible: (mainMenu.visibleItems === 0)
151− anchors {
152− top: parent.top
153− left: parent.left
154− right: parent.right
155− topMargin: units.gu(2)
156− }
157− wrapMode: Text.WordWrap
158− horizontalAlignment: Text.AlignHCenter
159−
160− //style
161− color: "#e8e1d0"
162− fontSize: "medium"
163−
164− text: "Empty!"
165− }
166−
167− function start()
168− {
169− reset()
170− if (!__active) {
171− proxyModel.start();
172− actionGroup.start();
173− __active = true;
174− }
175− }
176−
177− function stop()
178− {
179− if (__active) {
180− __active = false;
181− proxyModel.stop();
182− actionGroup.stop();
183− }
184− }
185−
186− function reset()
187− {
188− mainMenu.currentIndex = -1;
189− mainMenu.positionViewAtBeginning();
190− }
191−}
plugins/Unity/IndicatorsLegacy/qml/IndicatorWidget.qmldeleted−68
@@ -1,68 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Unity.IndicatorsLegacy 0.1 as Indicators
22−
23−IndicatorBase {
24− id: indicatorWidget
25−
26− enabled: false
27− property var action: undefined
28− property bool started: (busType != 0) && (busName != "") && (deviceMenuObjectPath != "")
29− property int iconSize: height - units.gu(0.5)
30− property string rootMenuType: "com.canonical.indicator.root"
31−
32− signal actionStateChanged()
33−
34− onStartedChanged: {
35− if (started) {
36− proxyModel.start();
37− actionGroup.start();
38− } else {
39− proxyModel.stop();
40− actionGroup.stop();
41− }
42− }
43− onActionGroupUpdated: update_state()
44− onModelUpdated: update_state()
45−
46−
47− function update_state() {
48− var extra = proxyModel.data(0, Indicators.FlatMenuProxyModelRole.Extra);
49− if (extra == undefined) {
50− return;
51− }
52−
53− if (!extra.hasOwnProperty("canonical_type")) {
54− return;
55− }
56−
57− if (extra.canonical_type === rootMenuType) {
58− action = actionGroup.action(proxyModel.data(0, Indicators.FlatMenuProxyModelRole.Action));
59− actionStateChanged();
60− }
61− }
62−
63− Connections {
64− target: action == undefined ? null : action
65− onStateChanged: actionStateChanged()
66− onValidChanged: actionStateChanged()
67− }
68−}
plugins/Unity/IndicatorsLegacy/qml/MenuAction.qmldeleted−86
@@ -1,86 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−
22−/*!
23− \qmltype MenuAction
24− \inqmlmodule Indicators 0.1
25− \brief Helper class to connect to a qmenumodel action
26−
27− Example:
28− \qml
29− Button {
30− id: slide
31− onClick: { action.activate() }
32− }
33− MenuAction {
34− id: action
35− actionGroup: menuItem.actionGroup
36− action: "/ubuntu/sound/enabled"
37− }
38− \endqml
39−*/
40−
41−Item {
42− id: menuAction
43−
44− /*!
45− \preliminary
46− The dbus action name
47− */
48− property string action: ""
49−
50− /*!
51− \preliminary
52− The dbus action group object
53− */
54− property QtObject actionGroup: null
55−
56− /*!
57− \preliminary
58− This is a read-only property with the current validity of the action
59− */
60− readonly property bool valid: actionObject ? actionObject.valid : false
61−
62− readonly property var state: actionObject ? actionObject.state : undefined
63−
64− // internal
65− property QtObject actionObject: null
66−
67− function activate(param) {
68− if (valid) {
69− actionObject.activate(param);
70− }
71− }
72−
73− onActionGroupChanged: updateAction()
74− onActionChanged: updateAction()
75−
76− Connections {
77− target: menuAction.actionGroup != undefined ? menuAction.actionGroup : null
78− onActionAppear: menuAction.updateAction();
79− onActionVanish: menuAction.updateAction();
80− onStatusChanged: menuAction.updateAction();
81− }
82−
83− function updateAction() {
84− actionObject = action !== "" && actionGroup ? actionGroup.action(action) : null
85− }
86−}
plugins/Unity/IndicatorsLegacy/qml/MenuActionBinding.qmldeleted−106
@@ -1,106 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−
22−/*!
23− \qmltype MenuActionBinding
24− \inqmlmodule Indicators 0.1
25− \brief Helper class to connect a qmenumodel action state with a qml components property
26−
27− Example:
28− \qml
29− Slider {
30− id: slide
31− }
32− MenuActionBinding {
33− actionGroup: menuItem.actionGroup
34− action: "/ubuntu/sound/volume"
35− target: slider
36− property: "value"
37− }
38− \endqml
39−*/
40−
41−MenuAction {
42− id: menuAction
43−
44− /*!
45− \preliminary
46− The component which will have the property changed by action
47− */
48− property QtObject target: null
49−
50− /*!
51− \preliminary
52− The property name of \l target component which will be linked with action state
53− */
54− property string property
55−
56− /*!
57− \preliminary
58− Use this to enable or disable the action state propagation to component property.
59− */
60− property bool active: true
61−
62− Component.onCompleted: connectViewChanges()
63− onTargetChanged: connectViewChanges()
64− onPropertyChanged: connectViewChanges()
65−
66− Item {
67− id: d
68− property var currentTarget: undefined
69− property string currentSignal
70− }
71−
72− Binding {
73− id: propertyBinding
74− target: menuAction.target
75− property: menuAction.property
76− value: menuAction.state
77− when: menuAction.actionObject && menuAction.active
78− }
79−
80− // TODO - re-evaluate in c++
81− function connectViewChanges() {
82− if (d.currentTarget != undefined && d.currentSignal !== "") {
83− if (d.currentTarget[d.currentSignal] !== undefined) {
84− d.currentTarget[d.currentSignal].disconnect(onViewValueChanged);
85− }
86− }
87−
88− d.currentTarget = null;
89− d.currentSignal = "";
90− if (target) {
91− var signal = "on%1Changed".arg(property.charAt(0).toUpperCase() + property.slice(1));
92− if (target[signal] !== undefined) {
93− target[signal].connect(onViewValueChanged);
94− d.currentTarget = target;
95− d.currentSignal = signal;
96− }
97− }
98− }
99−
100− function onViewValueChanged() {
101− if (valid) {
102− var propertyValue = target[property];
103− actionObject.updateState(propertyValue);
104− }
105− }
106−}
plugins/Unity/IndicatorsLegacy/qml/MenuItem.qmldeleted−40
@@ -1,40 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Ubuntu.Components.ListItems 0.1 as ListItem
23−
24−BasicMenuItem {
25− objectName: menu ? menu.action : ""
26− progression: menu && (menu.linkSubMenu !== undefined)
27− text: menu && menu.label ? menu.label : ""
28− color: "#221e1c"
29− implicitHeight: units.gu(7)
30−
31− HLine {
32− anchors.top: parent.top
33− color: "#403b37"
34− }
35−
36− HLine {
37− anchors.bottom: parent.bottom
38− color: "#060606"
39− }
40−}
plugins/Unity/IndicatorsLegacy/qml/MenuItemFactory.qmldeleted−102
@@ -1,102 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Unity.IndicatorsLegacy 0.1 as Indicators
22−import Unity.IndicatorsLegacy.Network 0.1 as ICNetwork
23−
24−Item {
25− id: menuFactory
26−
27− property QtObject menu
28− property QtObject listView
29− property QtObject actionGroup
30− property bool isCurrentItem
31− readonly property bool empty: (loader.item !== undefined && loader.status == Loader.Ready) ? loader.item.state === "EMPTY" : true
32−
33− implicitHeight: loader.height
34−
35− signal activated()
36− signal deactivated()
37−
38− property var _map: {
39− "unity.widgets.systemsettings.tablet.volumecontrol" : sliderMenu,
40− "unity.widgets.systemsettings.tablet.switch" : switchMenu,
41−
42− "com.canonical.indicator.button" : buttonMenu,
43− "com.canonical.indicator.div" : divMenu,
44− "com.canonical.indicator.section" : sectionMenu,
45− "com.canonical.indicator.progress" : progressMenu,
46− "com.canonical.indicator.slider" : sliderMenu,
47− "com.canonical.indicator.switch" : switchMenu,
48−
49− "unity.widget.systemsettings.tablet.sectiontitle" : wifiSection,
50− "unity.widgets.systemsettings.tablet.wifisection" : wifiSection,
51− "unity.widgets.systemsettings.tablet.accesspoint" : accessPoint,
52− }
53−
54− Component { id: sliderMenu; Indicators.SliderMenuItem {} }
55− Component { id: switchMenu; Indicators.SwitchMenuItem {} }
56− Component { id: buttonMenu; Indicators.ButtonMenuItem {} }
57− Component { id: divMenu; Indicators.DivMenuItem {} }
58− Component { id: sectionMenu; Indicators.SectionMenuItem {} }
59− Component { id: progressMenu; Indicators.ProgressMenuItem {} }
60− Component { id: wifiSection; ICNetwork.WifiSection {} }
61− Component { id: accessPoint; ICNetwork.AccessPoint {} }
62− Component { id: indicatorMenu; Indicators.MenuItem {} }
63−
64− Loader {
65− id: loader
66− asynchronous: true
67−
68− anchors {
69− left: parent.left
70− right: parent.right
71− }
72−
73− sourceComponent: {
74− if (!menuFactory.menu || !menuFactory.menu.extra) {
75− return undefined;
76− }
77−
78− var widgetType = menuFactory.menu.extra.canonical_type;
79− if (widgetType) {
80− return _map[widgetType];
81− } else {
82− if (widgetType === "com.canonical.indicator.root") {
83− return undefined;
84− // Try discovery the item based on the basic properties
85− } else if (menu.hasSection) {
86− return sectionMenu;
87− } else {
88− return indicatorMenu;
89− }
90− }
91− }
92−
93− onLoaded: {
94− item.menuActivated = Qt.binding(function() { return isCurrentItem; });
95− item.actionGroup = Qt.binding(function() { return menuFactory.actionGroup; });
96− item.menu = Qt.binding(function() { return menuFactory.menu; });
97−
98− item.activateMenu.connect(function() { menuFactory.activated(); });
99− item.deactivateMenu.connect(function() { menuFactory.deactivated(); });
100− }
101− }
102−}
plugins/Unity/IndicatorsLegacy/qml/ProgressMenuItem.qmldeleted−65
@@ -1,65 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Michael Zanetti <michael.zanetti@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−
23−MenuItem {
24− id: progressMenu
25− property alias value : progressBar.value
26−
27− // TODO: Replace this with the official ProgressBar component as soon as
28− // it is available. For now, this rebuilds the Mockup as close as possible.
29− UbuntuShape {
30− id: progressBar
31− anchors {
32− right: parent.right
33− rightMargin: units.gu(2)
34− left: parent.left
35− leftMargin: units.gu(2)
36− }
37− height: units.gu(4)
38− anchors.verticalCenter: parent.verticalCenter
39− color: "transparent"
40−
41− property int minimumValue: 0
42− property int maximumValue: 100
43− property int value: 50
44−
45− UbuntuShape {
46− anchors.fill: parent
47− anchors.rightMargin: parent.width - (parent.width * parent.value / parent.maximumValue)
48− color: "#c94212"
49− }
50−
51− Label {
52− anchors.centerIn: parent
53− text: parent.value + " %"
54− fontSize: "medium"
55− color: "#e8e1d0"
56− }
57− }
58−
59− MenuActionBinding {
60− actionGroup: progressMenu.actionGroup
61− action: menu ? menu.action : ""
62− target: progressBar
63− property: "value"
64− }
65−}
plugins/Unity/IndicatorsLegacy/qml/RemoveBackground.qmldeleted−55
@@ -1,55 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−
20−Rectangle {
21− anchors.fill: parent
22− color: "#333130"
23− Label {
24− id: backgroundText
25−
26− anchors.fill: parent
27− verticalAlignment: Text.AlignVCenter
28− text: "Clear"
29− fontSize: "medium"
30− color: "#e8e1d0"
31− font.bold: true
32− }
33−
34− states: [
35− State {
36− name: "SwipingRight"
37− PropertyChanges {
38− target: backgroundText
39− anchors.rightMargin: units.gu(3)
40− anchors.leftMargin: 0
41− horizontalAlignment: Text.AlignRight
42−
43− }
44− },
45− State {
46− name: "SwipingLeft"
47− PropertyChanges {
48− target: backgroundText
49− anchors.rightMargin: 0
50− anchors.leftMargin: units.gu(3)
51− horizontalAlignment: Text.AlignLeft
52− }
53− }
54− ]
55−}
plugins/Unity/IndicatorsLegacy/qml/SectionMenuItem.qmldeleted−57
@@ -1,57 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−import Ubuntu.Components.ListItems 0.1 as ListItem
23−
24−BasicMenuItem {
25− property string label: menu && menu.label ? menu.label : ""
26− property bool busy: false
27− property int count: menu && menu.linkSection ? menu.linkSection.count : 0
28−
29− color: "#221e1b"
30− implicitHeight: label !== "" ? __header.height : 0
31− state: count === 0 ? "EMPTY" : ""
32−
33− ListItem.Header {
34− id: __header
35−
36− text: label
37− height: units.gu(4)
38− anchors {
39− left: parent.left
40− right: parent.right
41− top: parent.top
42− }
43− visible: text != ""
44−
45− ActivityIndicator {
46− id: indicator
47− running: busy
48− anchors {
49− margins: units.gu(0.5)
50− right: parent.right
51− }
52− height: parent.height - (anchors.margins * 2)
53− width: height
54− anchors.verticalCenter: parent.verticalCenter
55− }
56− }
57−}
plugins/Unity/IndicatorsLegacy/qml/SliderMenuItem.qmldeleted−64
@@ -1,64 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−
23−MenuItem {
24− id: _sliderMenu
25−
26− property alias minimumValue: slider.minimumValue
27− property alias maximumValue: slider.maximumValue
28− property alias value: slider.value
29−
30− control: Slider {
31− id: slider
32− enabled: menuAction.valid
33− width: _sliderMenu.text ? units.gu(20) : _sliderMenu.width - units.gu(4)
34− anchors.verticalCenter: parent.verticalCenter
35− live: false
36− // FIXME: The interval should be [0.0 - 1.0]. Unfortunately, when
37− // reaching the boundaries (0.0 or 1.0), the value is converted
38− // to an integer when automatically wrapped in a variant when
39− // passed to QStateAction::updateState(…). The server chokes on
40− // those values, complaining that they’re not of the right type…
41− minimumValue: menu.extra.canonical_min ? menu.extra.canonical_min * 1.000001 : 0.0000001
42− maximumValue: {
43− var maximum = menu.extra.canonical_max ? menu.extra.canonical_max * 1.000001 : 0.9999999
44− if (maximum <= minimumValue) {
45− return minimumValue + 1;
46− }
47− return maximum;
48− }
49−
50− // FIXME - to be deprecated in Ubuntu.Components.
51− // Use this to disable the label, since there is not way to do it on the component.
52− function formatValue(v) {
53− return "";
54− }
55− }
56−
57− MenuActionBinding {
58− id: menuAction
59− actionGroup: _sliderMenu.actionGroup
60− action: menu ? menu.action : ""
61− target: slider
62− property: "value"
63− }
64−}
plugins/Unity/IndicatorsLegacy/qml/SwitchMenuItem.qmldeleted−43
@@ -1,43 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Renato Araujo Oliveira Filho <renato@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Ubuntu.Components 0.1
22−
23−MenuItem {
24− id: switchMenu
25−
26− property alias checked: switcher.checked
27−
28− control: Switch {
29− id: switcher
30− enabled: menuAction.valid
31−
32− anchors.verticalCenter: parent.verticalCenter
33− anchors.right: parent.right
34− }
35−
36− MenuActionBinding {
37− id: menuAction
38− actionGroup: switchMenu.actionGroup
39− action: menu ? menu.action : ""
40− target: switcher
41− property: "checked"
42− }
43−}
plugins/Unity/IndicatorsLegacy/qml/qmldirdeleted−21
@@ -1,21 +0,0 @@
1−module Unity.IndicatorsLegacy
2−plugin IndicatorsLegacyQml
3−typeinfo plugin.qmltypes
4−
5−BasicMenuItem 0.1 BasicMenuItem.qml
6−ButtonMenuItem 0.1 ButtonMenuItem.qml
7−DivMenuItem 0.1 DivMenuItem.qml
8−HLine 0.1 HLine.qml
9−IndicatorBase 0.1 IndicatorBase.qml
10−IndicatorPage 0.1 IndicatorPage.qml
11−IndicatorWidget 0.1 IndicatorWidget.qml
12−MenuItem 0.1 MenuItem.qml
13−MenuAction 0.1 MenuAction.qml
14−MenuActionBinding 0.1 MenuActionBinding.qml
15−MenuItemFactory 0.1 MenuItemFactory.qml
16−ProgressMenuItem 0.1 ProgressMenuItem.qml
17−SectionMenuItem 0.1 SectionMenuItem.qml
18−SliderMenuItem 0.1 SliderMenuItem.qml
19−SwitchMenuItem 0.1 SwitchMenuItem.qml
20−
21−internal RemoveBackground RemoveBackground.qml
plugins/Unity/IndicatorsLegacy/resources/indicators.qrcdeleted−4
@@ -1,4 +0,0 @@
1−<RCC>
2− <qresource prefix="/indicators">
3− </qresource>
4−</RCC>
plugins/Unity/Launcher/backend/launcherbackend.cpp+4−4
@@ -38,13 +38,13 @@ public:
3838 bool pinned;
3939};
4040
41−LauncherBackend::LauncherBackend(bool useStorage, QObject *parent):
41+LauncherBackend::LauncherBackend(QObject *parent):
4242 QObject(parent),
4343 m_accounts(nullptr)
4444{
45− if (useStorage) {
46− m_accounts = new AccountsServiceDBusAdaptor(this);
47− }
45+#ifndef LAUNCHER_TESTING
46+ m_accounts = new AccountsServiceDBusAdaptor(this);
47+#endif
4848 m_user = qgetenv("USER");
4949 syncFromAccounts();
5050}
plugins/Unity/Launcher/backend/launcherbackend.h+1−1
@@ -39,7 +39,7 @@ class LauncherBackend : public QObject
3939
4040
4141public:
42− LauncherBackend(bool useStorage = true, QObject *parent = 0);
42+ LauncherBackend(QObject *parent = 0);
4343 virtual ~LauncherBackend();
4444
4545 /**
plugins/Unity/Launcher/launchermodel.cpp+1−1
@@ -27,7 +27,7 @@ using namespace unity::shell::application;
2727
2828LauncherModel::LauncherModel(QObject *parent):
2929 LauncherModelInterface(parent),
30− m_backend(new LauncherBackend(true, this)),
30+ m_backend(new LauncherBackend(this)),
3131 m_appManager(0)
3232{
3333 connect(m_backend, SIGNAL(countChanged(QString,int)), SLOT(countChanged(QString,int)));
plugins/Unity/Launcher/quicklistmodel.cpp+1−1
@@ -32,7 +32,7 @@ QuickListModel::~QuickListModel()
3232
3333void QuickListModel::appendAction(const QuickListEntry &entry)
3434{
35− beginInsertRows(QModelIndex(), m_list.count() - 1, m_list.count() -1);
35+ beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
3636 m_list.append(entry);
3737 endInsertRows();
3838}
plugins/Unity/bottombarvisibilitycommunicatorshell.cpp+15−1
@@ -17,7 +17,8 @@
1717#include "bottombarvisibilitycommunicatorshell.h"
1818
1919BottomBarVisibilityCommunicatorShell::BottomBarVisibilityCommunicatorShell()
20− : m_forceHidden(false)
20+ : m_forceHidden(false),
21+ m_position(0)
2122{
2223}
2324
@@ -26,6 +27,11 @@ bool BottomBarVisibilityCommunicatorShell::forceHidden() const
2627 return m_forceHidden;
2728}
2829
30+double BottomBarVisibilityCommunicatorShell::position() const
31+{
32+ return m_position;
33+}
34+
2935void BottomBarVisibilityCommunicatorShell::setForceHidden(bool forceHidden)
3036{
3137 if (forceHidden != m_forceHidden) {
@@ -33,3 +39,11 @@ void BottomBarVisibilityCommunicatorShell::setForceHidden(bool forceHidden)
3339 Q_EMIT forceHiddenChanged(forceHidden);
3440 }
3541}
42+
43+void BottomBarVisibilityCommunicatorShell::setPosition(double position)
44+{
45+ if (position != m_position) {
46+ m_position = position;
47+ Q_EMIT positionChanged(position);
48+ }
49+}
plugins/Unity/bottombarvisibilitycommunicatorshell.h+6
@@ -30,6 +30,7 @@ class BottomBarVisibilityCommunicatorShell : public QObject
3030{
3131 Q_OBJECT
3232 Q_PROPERTY(bool forceHidden READ forceHidden WRITE setForceHidden NOTIFY forceHiddenChanged)
33+ Q_PROPERTY(double position READ position WRITE setPosition NOTIFY positionChanged)
3334
3435 Q_CLASSINFO("D-Bus Interface", "com.canonical.Shell.BottomBarVisibilityCommunicator")
3536public:
@@ -41,13 +42,18 @@ public:
4142 bool forceHidden() const;
4243 void setForceHidden(bool forceHidden);
4344
45+ double position() const;
46+ void setPosition(double position);
47+
4448Q_SIGNALS:
4549 void forceHiddenChanged(bool forceHidden);
50+ void positionChanged(double position);
4651
4752private:
4853 BottomBarVisibilityCommunicatorShell();
4954
5055 bool m_forceHidden;
56+ double m_position;
5157};
5258
5359#endif
plugins/Unity/categories.cpp+6
@@ -43,6 +43,7 @@ Categories::Categories(QObject* parent)
4343 m_roles[Categories::RoleIcon] = "icon";
4444 m_roles[Categories::RoleRenderer] = "renderer";
4545 m_roles[Categories::RoleContentType] = "contentType";
46+ m_roles[Categories::RoleRendererHint] = "rendererHint";
4647 m_roles[Categories::RoleProgressSource] = "progressSource";
4748 m_roles[Categories::RoleHints] = "hints";
4849 m_roles[Categories::RoleResults] = "results";
@@ -261,6 +262,11 @@ Categories::data(const QModelIndex& index, int role) const
261262 auto hints = DeeListModel::data(realIndex, CategoryColumn::HINTS).toHash();
262263 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
263264 }
265+ case RoleRendererHint:
266+ {
267+ auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
268+ return hints.contains("renderer-hint") ? hints["renderer-hint"] : QVariant(QString());
269+ }
264270 case RoleProgressSource:
265271 {
266272 auto hints = DeeListModel::data(realIndex, CategoryColumn::HINTS).toHash();
plugins/Unity/categories.h+1
@@ -50,6 +50,7 @@ public:
5050 RoleIcon,
5151 RoleRenderer,
5252 RoleContentType,
53+ RoleRendererHint,
5354 RoleProgressSource,
5455 RoleHints,
5556 RoleResults,
plugins/Unity/categoryresults.cpp+21
@@ -46,6 +46,7 @@ CategoryResults::CategoryResults(QObject* parent)
4646 m_roles[CategoryResults::RoleComment] = "comment";
4747 m_roles[CategoryResults::RoleDndUri] = "dndUri";
4848 m_roles[CategoryResults::RoleMetadata] = "metadata";
49+ m_roles[CategoryResults::RoleRendererHints] = "rendererHints";
4950}
5051
5152int CategoryResults::categoryIndex() const
@@ -79,6 +80,13 @@ CategoryResults::data(const QModelIndex& index, int role) const
7980 return DeeListModel::data(index, ResultsColumn::URI);
8081 case RoleIconHint: {
8182 QString giconString(DeeListModel::data(index, ResultsColumn::ICON_HINT).toString());
83+ if (giconString.isEmpty()) {
84+ QString uri(DeeListModel::data(index, ResultsColumn::URI).toString());
85+ QString thumbnailerUri(uriToThumbnailerProviderString(uri));
86+ if (!thumbnailerUri.isNull()) {
87+ return QVariant::fromValue(thumbnailerUri);
88+ }
89+ }
8290 return QVariant::fromValue(gIconToDeclarativeImageProviderString(giconString));
8391 }
8492 case RoleCategory:
@@ -93,6 +101,19 @@ CategoryResults::data(const QModelIndex& index, int role) const
93101 return DeeListModel::data(index, ResultsColumn::DND_URI);
94102 case RoleMetadata:
95103 return DeeListModel::data(index, ResultsColumn::METADATA);
104+ case RoleRendererHints:
105+ {
106+ QVariantHash hash(DeeListModel::data(index, ResultsColumn::METADATA).toHash());
107+ if (hash.contains("content")) {
108+ QVariantMap hints;
109+ QVariantHash innerHash(hash["content"].toHash());
110+ if (innerHash.contains("scope_disabled")) {
111+ hints["scope_disabled"] = innerHash["scope_disabled"];
112+ }
113+ return hints.empty() ? QVariant() : QVariant::fromValue(hints);
114+ }
115+ return QVariant();
116+ }
96117 default:
97118 return QVariant();
98119 }
plugins/Unity/categoryresults.h+2−1
@@ -43,7 +43,8 @@ public:
4343 RoleTitle,
4444 RoleComment,
4545 RoleDndUri,
46− RoleMetadata
46+ RoleMetadata,
47+ RoleRendererHints
4748 };
4849
4950 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
plugins/Unity/iconutils.cpp+12
@@ -24,6 +24,7 @@
2424#include "iconutils.h"
2525
2626#define BASE_THEME_ICON_URI "image://theme/"
27+#define BASE_THUMBNAILER_URI "image://thumbnailer/"
2728
2829QString gIconToDeclarativeImageProviderString(QString const &giconString)
2930{
@@ -89,3 +90,14 @@ QString gIconToDeclarativeImageProviderString(QString const &giconString)
8990
9091 return result;
9192}
93+
94+QString uriToThumbnailerProviderString(QString const &uri)
95+{
96+ if (uri.startsWith(QLatin1String("file:///"))) {
97+ QString thumbnailerUri(BASE_THUMBNAILER_URI);
98+ thumbnailerUri.append(uri.midRef(7));
99+ return thumbnailerUri;
100+ }
101+
102+ return QString::null;
103+}
plugins/Unity/iconutils.h+1
@@ -23,5 +23,6 @@
2323#include <QString>
2424
2525QString gIconToDeclarativeImageProviderString(QString const &giconString);
26+QString uriToThumbnailerProviderString(QString const &uri);
2627
2728#endif
plugins/Unity/preview.cpp+10−14
@@ -106,20 +106,16 @@ QVariantMap Preview::infoHintsHash() const
106106QString Preview::image() const
107107{
108108 if (m_unityPreview) {
109− auto giconString = g_icon_to_string(m_unityPreview->image());
110− QString result(gIconToDeclarativeImageProviderString(QString::fromUtf8(giconString)));
111− g_free(giconString);
112− return result;
113− } else {
114− qWarning() << "Preview not set";
115− }
116− return QString::null;
117−}
118−
119−QString Preview::imageSourceUri() const
120−{
121− if (m_unityPreview) {
122− return QString::fromStdString(m_unityPreview->image_source_uri());
109+ if (m_unityPreview->image() != nullptr) {
110+ auto giconString = g_icon_to_string(m_unityPreview->image());
111+ QString result(gIconToDeclarativeImageProviderString(QString::fromUtf8(giconString)));
112+ g_free(giconString);
113+ return result;
114+ } else {
115+ QString sourceMedia(QString::fromStdString(m_unityPreview->image_source_uri()));
116+ QString thumbnailUri(uriToThumbnailerProviderString(sourceMedia));
117+ if (!thumbnailUri.isNull()) return thumbnailUri;
118+ }
123119 } else {
124120 qWarning() << "Preview not set";
125121 }
plugins/Unity/preview.h−2
@@ -47,7 +47,6 @@ class Q_DECL_EXPORT Preview : public QObject
4747 Q_PROPERTY(QVariant infoHints READ infoHints NOTIFY previewChanged)
4848 Q_PROPERTY(QVariantMap infoMap READ infoHintsHash NOTIFY previewChanged)
4949 Q_PROPERTY(QString image READ image NOTIFY previewChanged)
50− Q_PROPERTY(QString imageSourceUri READ imageSourceUri NOTIFY previewChanged)
5150 Q_PROPERTY(QVariant result READ result NOTIFY previewChanged)
5251
5352public:
@@ -62,7 +61,6 @@ public:
6261 QVariant infoHints();
6362 QVariantMap infoHintsHash() const;
6463 QString image() const;
65− QString imageSourceUri() const;
6664 QVariant result() const;
6765
6866 Q_INVOKABLE void execute(const QString& actionId, const QHash<QString, QVariant>& hints);
plugins/Unity/scope.cpp+30−5
@@ -33,12 +33,14 @@
3333#include <QQmlEngine>
3434
3535#include <UnityCore/Variant.h>
36+#include <UnityCore/GLibWrapper.h>
3637
3738#include <libintl.h>
3839#include <glib.h>
3940
4041Scope::Scope(QObject *parent) : QObject(parent)
4142 , m_formFactor("phone")
43+ , m_searchInProgress(false)
4244{
4345 m_categories.reset(new Categories(this));
4446}
@@ -68,6 +70,11 @@ QString Scope::searchHint() const
6870 return QString::fromStdString(m_unityScope->search_hint());
6971}
7072
73+bool Scope::searchInProgress() const
74+{
75+ return m_searchInProgress;
76+}
77+
7178bool Scope::visible() const
7279{
7380 return m_unityScope->visible();
@@ -115,10 +122,15 @@ void Scope::setSearchQuery(const QString& search_query)
115122 string ("") and m_searchQuery is the null string,
116123 search_query != m_searchQuery is still true.
117124 */
125+ using namespace std::placeholders;
126+
118127 if (m_searchQuery.isNull() || search_query != m_searchQuery) {
119128 m_searchQuery = search_query;
120− m_unityScope->Search(search_query.toStdString(), sigc::mem_fun(this, &Scope::searchFinished));
129+ m_cancellable.Renew();
130+ m_searchInProgress = true;
131+ m_unityScope->Search(search_query.toStdString(), std::bind(&Scope::onSearchFinished, this, _1, _2, _3), m_cancellable);
121132 Q_EMIT searchQueryChanged();
133+ Q_EMIT searchInProgressChanged();
122134 }
123135}
124136
@@ -294,8 +306,6 @@ void Scope::setUnityScope(const unity::dash::Scope::Ptr& scope)
294306 m_unityScope->visible.changed.connect(sigc::mem_fun(this, &Scope::visibleChanged));
295307 m_unityScope->shortcut.changed.connect(sigc::mem_fun(this, &Scope::shortcutChanged));
296308 m_unityScope->connected.changed.connect(sigc::mem_fun(this, &Scope::connectedChanged));
297− /* Signals forwarding */
298− connect(this, SIGNAL(searchFinished(const std::string &, unity::glib::HintsMap const &, unity::glib::Error const &)), SLOT(onSearchFinished(const std::string &, unity::glib::HintsMap const &)));
299309
300310 /* FIXME: signal should be forwarded instead of calling the handler directly */
301311 m_unityScope->activated.connect(sigc::mem_fun(this, &Scope::onActivated));
@@ -316,18 +326,33 @@ unity::dash::Scope::Ptr Scope::unityScope() const
316326
317327void Scope::synchronizeStates()
318328{
329+ using namespace std::placeholders;
330+
319331 if (connected()) {
320332 /* Forward local states to m_unityScope */
321333 if (!m_searchQuery.isNull()) {
322− m_unityScope->Search(m_searchQuery.toStdString());
334+ m_cancellable.Renew();
335+ m_searchInProgress = true;
336+ m_unityScope->Search(m_searchQuery.toStdString(), std::bind(&Scope::onSearchFinished, this, _1, _2, _3), m_cancellable);
337+ Q_EMIT searchInProgressChanged();
323338 }
324339 }
325340}
326341
327−void Scope::onSearchFinished(const std::string& /* query */, unity::glib::HintsMap const &hints)
342+void Scope::onSearchFinished(std::string const& /* query */, unity::glib::HintsMap const& hints, unity::glib::Error const& err)
328343{
329344 QString hint;
330345
346+ GError* error = const_cast<unity::glib::Error&>(err);
347+
348+ if (!err || !g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
349+ m_searchInProgress = false;
350+ Q_EMIT searchInProgressChanged();
351+ } else {
352+ // no need to check the results hint, we're still searching
353+ return;
354+ }
355+
331356 if (!m_unityScope->results()->count()) {
332357 unity::glib::HintsMap::const_iterator it = hints.find("no-results-hint");
333358 if (it != hints.end()) {
plugins/Unity/scope.h+7−2
@@ -28,6 +28,7 @@
2828// libunity-core
2929#include <UnityCore/Scope.h>
3030#include <UnityCore/Results.h>
31+#include <UnityCore/GLibWrapper.h>
3132
3233#include "categories.h"
3334#include "filters.h"
@@ -43,6 +44,7 @@ class Scope : public QObject
4344 Q_PROPERTY(QString iconHint READ iconHint NOTIFY iconHintChanged)
4445 Q_PROPERTY(QString description READ description NOTIFY descriptionChanged)
4546 Q_PROPERTY(QString searchHint READ searchHint NOTIFY searchHintChanged)
47+ Q_PROPERTY(bool searchInProgress READ searchInProgress NOTIFY searchInProgressChanged)
4648 Q_PROPERTY(bool visible READ visible NOTIFY visibleChanged)
4749 Q_PROPERTY(QString shortcut READ shortcut NOTIFY shortcutChanged)
4850 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
@@ -65,6 +67,7 @@ public:
6567 bool visible() const;
6668 QString shortcut() const;
6769 bool connected() const;
70+ bool searchInProgress() const;
6871 Categories* categories() const;
6972 Filters* filters() const;
7073 QString searchQuery() const;
@@ -95,11 +98,11 @@ Q_SIGNALS:
9598 void iconHintChanged(const std::string&);
9699 void descriptionChanged(const std::string&);
97100 void searchHintChanged(const std::string&);
101+ void searchInProgressChanged();
98102 void visibleChanged(bool);
99103 void shortcutChanged(const std::string&);
100104 void connectedChanged(bool);
101105 void categoriesChanged();
102− void searchFinished(const std::string&, unity::glib::HintsMap const&, unity::glib::Error const&);
103106 void searchQueryChanged();
104107 void noResultsHintChanged();
105108 void formFactorChanged();
@@ -115,7 +118,7 @@ Q_SIGNALS:
115118
116119private Q_SLOTS:
117120 void synchronizeStates();
118− void onSearchFinished(const std::string &, unity::glib::HintsMap const &);
121+ void onSearchFinished(std::string const &, unity::glib::HintsMap const &, unity::glib::Error const&);
119122
120123private:
121124 unity::dash::LocalResult createLocalResult(const QVariant &uri, const QVariant &icon_hint,
@@ -133,6 +136,8 @@ private:
133136 QString m_searchQuery;
134137 QString m_noResultsHint;
135138 QString m_formFactor;
139+ bool m_searchInProgress;
140+ unity::glib::Cancellable m_cancellable;
136141 unity::glib::Cancellable m_previewCancellable;
137142};
138143
plugins/Utils/CMakeLists.txt+2−1
@@ -9,6 +9,7 @@ set(QMLPLUGIN_SRC
99 qlimitproxymodelqml.cpp
1010 qsortfilterproxymodelqml.cpp
1111 ubuntuwindow.cpp
12+ unitymenumodelpaths.cpp
1213 plugin.cpp
1314 )
1415
@@ -21,7 +22,7 @@ add_library(Utils-qml SHARED
2122# files directly in targets.
2223set_target_properties(Utils-qml PROPERTIES COMPILE_FLAGS -fvisibility=default)
2324
24−qt5_use_modules(Utils-qml Qml Quick)
25+qt5_use_modules(Utils-qml Qml Quick DBus)
2526
2627# export the qmldir qmltypes and plugin files
2728export_qmlfiles(Utils Utils)
plugins/Utils/plugin.cpp+2
@@ -28,6 +28,7 @@
2828#include "qlimitproxymodelqml.h"
2929#include "qsortfilterproxymodelqml.h"
3030#include "ubuntuwindow.h"
31+#include "unitymenumodelpaths.h"
3132
3233static QObject* applicationsPathsSingleton(QQmlEngine* engine, QJSEngine* scriptEngine) {
3334 Q_UNUSED(engine);
@@ -41,6 +42,7 @@ void UtilsPlugin::registerTypes(const char *uri)
4142 qmlRegisterType<QAbstractItemModel>();
4243 qmlRegisterType<QLimitProxyModelQML>(uri, 0, 1, "LimitProxyModel");
4344 qmlRegisterType<QSortFilterProxyModelQML>(uri, 0, 1, "SortFilterProxyModel");
45+ qmlRegisterType<UnityMenuModelPaths>(uri, 0, 1, "UnityMenuModelPaths");
4446 qmlRegisterExtendedType<QQuickWindow, UbuntuWindow>(uri, 0, 1, "Window");
4547 qmlRegisterSingletonType<ApplicationPaths>(uri, 0, 1, "ApplicationPaths", applicationsPathsSingleton);
4648}
plugins/Utils/unitymenumodelpaths.cppnew file+182
@@ -0,0 +1,182 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Nick Dedekind <nick.dedekind@canonical.com>
17+ */
18+
19+
20+#include "unitymenumodelpaths.h"
21+#include <QDBusArgument>
22+
23+static QVariant parseVariantData(const QVariant& var);
24+
25+const QDBusArgument &operator>>(const QDBusArgument &arg, QVariantMap &map)
26+{
27+ arg.beginMap();
28+ map.clear();
29+ while (!arg.atEnd()) {
30+ QString key;
31+ QVariant value;
32+ arg.beginMapEntry();
33+
34+ arg >> key >> value;
35+ map.insertMulti(key, parseVariantData(value)); // re-parse for qdbusargument
36+
37+ arg.endMapEntry();
38+ }
39+ arg.endMap();
40+ return arg;
41+}
42+
43+static QVariant parseVariantData(const QVariant& var) {
44+ if ((int)var.type() == QMetaType::User && var.userType() == qMetaTypeId<QDBusArgument>()) {
45+ QDBusArgument arg(var.value<QDBusArgument>());
46+ if (arg.currentType() == QDBusArgument::MapType) {
47+ QVariantMap map;
48+ arg >> map;
49+ return map;
50+ }
51+ return arg.asVariant();
52+ }
53+
54+ return var;
55+}
56+
57+UnityMenuModelPaths::UnityMenuModelPaths(QObject *parent)
58+ : QObject(parent)
59+{
60+}
61+
62+QVariant UnityMenuModelPaths::source() const
63+{
64+ return m_sourceData;
65+}
66+
67+void UnityMenuModelPaths::setSource(const QVariant& data)
68+{
69+ if (m_sourceData != data) {
70+ m_sourceData = data;
71+ Q_EMIT sourceChanged();
72+
73+ updateData();
74+ }
75+}
76+
77+void UnityMenuModelPaths::updateData()
78+{
79+ QVariantMap dataMap = parseVariantData(m_sourceData).toMap();
80+
81+ if (!m_busNameHint.isEmpty() && dataMap.contains(m_busNameHint)) {
82+ setBusName(dataMap[m_busNameHint].toByteArray());
83+ } else {
84+ setBusName("");
85+ }
86+
87+ if (!m_menuObjectPathHint.isEmpty() && dataMap.contains(m_menuObjectPathHint)) {
88+ setMenuObjectPath(dataMap[m_menuObjectPathHint].toByteArray());
89+ } else {
90+ setMenuObjectPath("");
91+ }
92+
93+ if (!m_actionsHint.isEmpty() && dataMap.contains(m_actionsHint)) {
94+ setActions(dataMap[m_actionsHint].toMap());
95+ } else {
96+ setActions(QVariantMap());
97+ }
98+}
99+
100+QByteArray UnityMenuModelPaths::busName() const
101+{
102+ return m_busName;
103+}
104+
105+void UnityMenuModelPaths::setBusName(const QByteArray &name)
106+{
107+ if (m_busName != name) {
108+ m_busName = name;
109+ Q_EMIT busNameChanged();
110+ }
111+}
112+
113+QVariantMap UnityMenuModelPaths::actions() const
114+{
115+ return m_actions;
116+}
117+
118+void UnityMenuModelPaths::setActions(const QVariantMap &actions)
119+{
120+ if (m_actions != actions) {
121+ m_actions = actions;
122+ Q_EMIT actionsChanged();
123+ }
124+}
125+
126+QByteArray UnityMenuModelPaths::menuObjectPath() const
127+{
128+ return m_menuObjectPath;
129+}
130+
131+void UnityMenuModelPaths::setMenuObjectPath(const QByteArray &path)
132+{
133+ if (m_menuObjectPath != path) {
134+ m_menuObjectPath = path;
135+ Q_EMIT menuObjectPathChanged();
136+ }
137+}
138+
139+QByteArray UnityMenuModelPaths::busNameHint() const
140+{
141+ return m_busNameHint;
142+}
143+
144+void UnityMenuModelPaths::setBusNameHint(const QByteArray &nameHint)
145+{
146+ if (m_busNameHint != nameHint) {
147+ m_busNameHint = nameHint;
148+ Q_EMIT busNameHintChanged();
149+
150+ updateData();
151+ }
152+}
153+
154+QByteArray UnityMenuModelPaths::actionsHint() const
155+{
156+ return m_actionsHint;
157+}
158+
159+void UnityMenuModelPaths::setActionsHint(const QByteArray &actionsHint)
160+{
161+ if (m_actionsHint != actionsHint) {
162+ m_actionsHint = actionsHint;
163+ Q_EMIT actionsHintChanged();
164+
165+ updateData();
166+ }
167+}
168+
169+QByteArray UnityMenuModelPaths::menuObjectPathHint() const
170+{
171+ return m_menuObjectPathHint;
172+}
173+
174+void UnityMenuModelPaths::setMenuObjectPathHint(const QByteArray &pathHint)
175+{
176+ if (m_menuObjectPathHint != pathHint) {
177+ m_menuObjectPathHint = pathHint;
178+ Q_EMIT menuObjectPathHintChanged();
179+
180+ updateData();
181+ }
182+}
plugins/Utils/unitymenumodelpaths.hnew file+82
@@ -0,0 +1,82 @@
1+/*
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Author: Nick Dedekind <nick.dedekind@canonical.com>
17+ */
18+
19+#ifndef UNITY_MENU_MODEL_PATHS_H
20+#define UNITY_MENU_MODEL_PATHS_H
21+
22+#include <QVariant>
23+
24+class UnityMenuModelPaths : public QObject
25+{
26+ Q_OBJECT
27+
28+ Q_PROPERTY(QVariant source READ source WRITE setSource NOTIFY sourceChanged)
29+ Q_PROPERTY(QByteArray busName READ busName NOTIFY busNameChanged)
30+ Q_PROPERTY(QVariantMap actions READ actions NOTIFY actionsChanged)
31+ Q_PROPERTY(QByteArray menuObjectPath READ menuObjectPath NOTIFY menuObjectPathChanged)
32+
33+ Q_PROPERTY(QByteArray busNameHint READ busNameHint WRITE setBusNameHint NOTIFY busNameHintChanged)
34+ Q_PROPERTY(QByteArray actionsHint READ actionsHint WRITE setActionsHint NOTIFY actionsHintChanged)
35+ Q_PROPERTY(QByteArray menuObjectPathHint READ menuObjectPathHint WRITE setMenuObjectPathHint NOTIFY menuObjectPathHintChanged)
36+
37+public:
38+ explicit UnityMenuModelPaths(QObject *parent = 0);
39+
40+ QVariant source() const;
41+ void setSource(const QVariant& data);
42+
43+ QByteArray busName() const;
44+ QVariantMap actions() const;
45+ QByteArray menuObjectPath() const;
46+
47+ QByteArray busNameHint() const;
48+ QByteArray actionsHint() const;
49+ QByteArray menuObjectPathHint() const;
50+
51+Q_SIGNALS:
52+ void sourceChanged();
53+ void busNameChanged();
54+ void actionsChanged();
55+ void menuObjectPathChanged();
56+
57+ void busNameHintChanged();
58+ void actionsHintChanged();
59+ void menuObjectPathHintChanged();
60+
61+private:
62+ void setBusName(const QByteArray &name);
63+ void setActions(const QVariantMap& actions);
64+ void setMenuObjectPath(const QByteArray &path);
65+
66+ void setBusNameHint(const QByteArray& nameHint);
67+ void setActionsHint(const QByteArray &actionsHint);
68+ void setMenuObjectPathHint(const QByteArray &pathHint);
69+
70+ void updateData();
71+
72+ QVariant m_sourceData;
73+ QByteArray m_busName;
74+ QVariantMap m_actions;
75+ QByteArray m_menuObjectPath;
76+
77+ QByteArray m_busNameHint;
78+ QByteArray m_actionsHint;
79+ QByteArray m_menuObjectPathHint;
80+};
81+
82+#endif // UNITY_MENU_MODEL_PATHS_H
po/ar.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-26 23:26+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1818"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 16750)\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
20+"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,48 +87,50 @@ msgstr "ويكيبيديا"
8787msgid "YouTube"
8888msgstr "يوتيوب"
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr ""
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr ""
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr ""
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr ""
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr ""
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr ""
117117
118−#: Components/EdgeDemo.qml:189
118+#: Components/EdgeDemo.qml:198
119119msgid "Left edge"
120120msgstr ""
121121
122−#: Components/EdgeDemo.qml:190
122+#: Components/EdgeDemo.qml:199
123123msgid "Swipe from the left to reveal the launcher for quick access to apps"
124124msgstr ""
125125
126−#: Components/EdgeDemo.qml:217
126+#: Components/EdgeDemo.qml:226
127127msgid "Well done"
128128msgstr ""
129129
130−#: Components/EdgeDemo.qml:218
131−msgid "You have now mastered the edge gestures and can start using the phone"
130+#: Components/EdgeDemo.qml:227
131+msgid ""
132+"You have now mastered the edge gestures and can start using the "
133+"phone<br><br>Tap anywhere to start"
132134msgstr ""
133135
134136#: Components/PageHeader.qml:298
@@ -149,23 +151,23 @@ msgid_plural "%1 reviews"
149151msgstr[0] ""
150152msgstr[1] ""
151153
152−#: Dash/Apps/AppPreview.qml:175
154+#: Dash/Apps/AppPreview.qml:178
153155msgid "Rate this"
154156msgstr ""
155157
156−#: Dash/Apps/AppReviews.qml:72
158+#: Dash/Apps/AppReviews.qml:74
157159msgid "Add a review"
158160msgstr ""
159161
160−#: Dash/Apps/AppReviews.qml:84
162+#: Dash/Apps/AppReviews.qml:86
161163msgid "Review"
162164msgstr ""
163165
164−#: Dash/Apps/AppReviews.qml:118
166+#: Dash/Apps/AppReviews.qml:121
165167msgid "Send"
166168msgstr ""
167169
168−#: Dash/Apps/AppReviews.qml:136
170+#: Dash/Apps/AppReviews.qml:139
169171msgid "Comments:"
170172msgstr ""
171173
@@ -209,7 +211,7 @@ msgstr "النجوم:"
209211msgid "Author:"
210212msgstr "المؤلف:"
211213
212−#: Greeter/Lockscreen.qml:134
214+#: Greeter/Lockscreen.qml:142
213215msgid "Emergency Call"
214216msgstr ""
215217
@@ -246,11 +248,15 @@ msgstr "تتكلم الآن..."
246248msgid "Search"
247249msgstr "ابحث"
248250
249−#: plugins/Unity/scope.cpp:317
251+#: plugins/Unity/scope.cpp:336
250252msgid "Sorry, there is nothing that matches your search."
251253msgstr "عذراً، لا يوجد ما يطابق بحثك."
252254
253−#: Shell.qml:429
255+#: plugins/Unity/showallfilteroption.cpp:41
256+msgid "All"
257+msgstr ""
258+
259+#: Shell.qml:453
254260#, qt-format
255261msgid "Please enter %1"
256262msgstr ""
po/ast.ponew file+265
@@ -0,0 +1,265 @@
1+# Asturian translation for unity8
2+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3+# This file is distributed under the same license as the unity8 package.
4+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
5+#
6+msgid ""
7+msgstr ""
8+"Project-Id-Version: unity8\n"
9+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-03 14:02+0000\n"
12+"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
13+"Language-Team: Asturian <ast@li.org>\n"
14+"MIME-Version: 1.0\n"
15+"Content-Type: text/plain; charset=UTF-8\n"
16+"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=2; plural=n != 1;\n"
18+"X-Launchpad-Export-Date: 2013-10-04 06:11+0000\n"
19+"X-Generator: Launchpad (build 16791)\n"
20+
21+#: Applications/applications.js:23
22+msgid "Phone"
23+msgstr "Teléfonu"
24+
25+#: Applications/applications.js:29
26+msgid "Camera"
27+msgstr "Cámara"
28+
29+#: Applications/applications.js:35
30+msgid "Gallery"
31+msgstr "Galería"
32+
33+#: Applications/applications.js:40
34+msgid "Facebook"
35+msgstr "Facebook"
36+
37+#: Applications/applications.js:46
38+msgid "Browser"
39+msgstr "Navegador"
40+
41+#: Applications/applications.js:51
42+msgid "Twitter"
43+msgstr "Twitter"
44+
45+#: Applications/applications.js:57
46+msgid "GMail"
47+msgstr "GMail"
48+
49+#: Applications/applications.js:62
50+msgid "Weather"
51+msgstr "Meteoroloxía"
52+
53+#: Applications/applications.js:68
54+msgid "Notepad"
55+msgstr "Bloc de notes"
56+
57+#: Applications/applications.js:74
58+msgid "Calendar"
59+msgstr "Calendariu"
60+
61+#: Applications/applications.js:80
62+msgid "Media Player"
63+msgstr "Reproductor multimedia"
64+
65+#: Applications/applications.js:86
66+msgid "Evernote"
67+msgstr "Evernote"
68+
69+#: Applications/applications.js:91
70+msgid "Map"
71+msgstr "Map"
72+
73+#: Applications/applications.js:96
74+msgid "Pinterest"
75+msgstr "Pinterest"
76+
77+#: Applications/applications.js:101
78+msgid "SoundCloud"
79+msgstr "SoundCloud"
80+
81+#: Applications/applications.js:106
82+msgid "Wikipedia"
83+msgstr "Wikipedia"
84+
85+#: Applications/applications.js:111
86+msgid "YouTube"
87+msgstr "YouTube"
88+
89+#: Components/EdgeDemoOverlay.qml:150
90+msgid "Skip intro"
91+msgstr "Omitir la intro"
92+
93+#: Components/EdgeDemo.qml:112
94+msgid "Right edge"
95+msgstr "Berbesu drechu"
96+
97+#: Components/EdgeDemo.qml:113
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr "Esliza'l deu dende'l berbesu drechu pa desbloquiar el teléfonu"
100+
101+#: Components/EdgeDemo.qml:144
102+msgid "Top edge"
103+msgstr "Berbesu superior"
104+
105+#: Components/EdgeDemo.qml:145
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr "Esliza'l deu dende'l berbesu superior p'acceder a los menús"
108+
109+#: Components/EdgeDemo.qml:170
110+msgid "Close"
111+msgstr "Zarrar"
112+
113+#: Components/EdgeDemo.qml:171
114+msgid "Swipe up again to close the settings screen"
115+msgstr "Esliza hacia arriba pa zarrar la pantalla d'axustes"
116+
117+#: Components/EdgeDemo.qml:198
118+msgid "Left edge"
119+msgstr "Berbesu esquierdu"
120+
121+#: Components/EdgeDemo.qml:199
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+"Esliza'l deu dende la esquierda p'amosar el llanzador y acceder rápidamente "
125+"a les aplicaciones"
126+
127+#: Components/EdgeDemo.qml:226
128+msgid "Well done"
129+msgstr "Bien fecho"
130+
131+#: Components/EdgeDemo.qml:227
132+msgid ""
133+"You have now mastered the edge gestures and can start using the "
134+"phone<br><br>Tap anywhere to start"
135+msgstr ""
136+"Agora domines los xestos de berbesos y pues usar el teléfonu<br><br>Toca la "
137+"pantalla pa entamar"
138+
139+#: Components/PageHeader.qml:298
140+msgid "Recent searches"
141+msgstr "Busques recientes"
142+
143+#. TRANSLATORS: Number of persons who rated this app
144+#: Dash/Apps/AppInfo.qml:73
145+#, qt-format
146+msgid "(%1)"
147+msgstr "(%1)"
148+
149+#. TRANSLATORS: Number of persons who wrote reviews for this app
150+#: Dash/Apps/AppInfo.qml:85
151+#, qt-format
152+msgid "%1 review"
153+msgid_plural "%1 reviews"
154+msgstr[0] "%1 reseña"
155+msgstr[1] "%1 reseñes"
156+
157+#: Dash/Apps/AppPreview.qml:178
158+msgid "Rate this"
159+msgstr "Valorar esto"
160+
161+#: Dash/Apps/AppReviews.qml:74
162+msgid "Add a review"
163+msgstr "Amestar una reseña"
164+
165+#: Dash/Apps/AppReviews.qml:86
166+msgid "Review"
167+msgstr "Revisar"
168+
169+#: Dash/Apps/AppReviews.qml:121
170+msgid "Send"
171+msgstr "Unviar"
172+
173+#: Dash/Apps/AppReviews.qml:139
174+msgid "Comments:"
175+msgstr "Comentarios:"
176+
177+#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
178+msgid "Featured"
179+msgstr "Destacaos"
180+
181+#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
182+msgid "Recent"
183+msgstr "Recientes"
184+
185+#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
186+msgid "New Releases"
187+msgstr "Llanzamientos nuevos"
188+
189+#: Dash/DashMusic.qml:30
190+msgid "Top Charting"
191+msgstr "Meyor posicionaes"
192+
193+#: Dash/DashMusic.qml:91
194+msgid "Music"
195+msgstr "Música"
196+
197+#: Dash/DashVideos.qml:31
198+msgid "Popular Online"
199+msgstr "Populares en llinia"
200+
201+#: Dash/DashVideos.qml:146
202+msgid "Videos"
203+msgstr "Vídeos"
204+
205+#: Dash/Video/VideoPreview.qml:130
206+msgid "Directed by:"
207+msgstr "Dirixida por:"
208+
209+#: Dash/Video/VideoPreview.qml:153
210+msgid "Starring:"
211+msgstr "Protagonistes:"
212+
213+#: Dash/Video/VideoPreview.qml:176
214+msgid "Author:"
215+msgstr "Autor:"
216+
217+#: Greeter/Lockscreen.qml:142
218+msgid "Emergency Call"
219+msgstr "Llamada d'emerxencia"
220+
221+#: Greeter/PassphraseLockscreen.qml:59
222+#, qt-format
223+msgid "Hello %1"
224+msgstr "Hola %1"
225+
226+#: Greeter/PassphraseLockscreen.qml:59
227+msgid "Hello"
228+msgstr "Hola"
229+
230+#: Hud/HudParametrizedActionsPage.qml:132
231+msgid "Confirm"
232+msgstr "Confirmar"
233+
234+#: Hud/Hud.qml:61 Hud/Hud.qml:99 Hud/Hud.qml:372
235+msgid "Type or say a command"
236+msgstr "Escribi o di una orde"
237+
238+#: Hud/Hud.qml:84
239+msgid "Loading. Please Wait..."
240+msgstr "Cargando, espera…"
241+
242+#: Hud/Hud.qml:89
243+msgid "Speak Now..."
244+msgstr "Fala agora…"
245+
246+#: Hud/Hud.qml:94
247+msgid "Speaking..."
248+msgstr "Falando…"
249+
250+#: Panel/SearchIndicator.qml:27
251+msgid "Search"
252+msgstr "Guetar"
253+
254+#: plugins/Unity/scope.cpp:336
255+msgid "Sorry, there is nothing that matches your search."
256+msgstr "Sentímoslo, nun hai res que concase cola gueta"
257+
258+#: plugins/Unity/showallfilteroption.cpp:41
259+msgid "All"
260+msgstr "Too"
261+
262+#: Shell.qml:453
263+#, qt-format
264+msgid "Please enter %1"
265+msgstr "Introduz %1"
po/az.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-26 23:48+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Söylənilir..."
245247msgid "Search"
246248msgstr "Axtar"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Bağışlayın, amma axtarışınıza heç bir nəticə uyğun gəlmir."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/bg.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 00:06+0000\n"
1212"Last-Translator: Miroslav E. Hadzhiev (Хаджиев) "
1313"<miroslav.hadzhiev@gmail.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 16750)\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
20+"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,48 +87,50 @@ msgstr "Уикипедия"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr ""
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr ""
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr ""
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr ""
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr ""
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr ""
117117
118−#: Components/EdgeDemo.qml:189
118+#: Components/EdgeDemo.qml:198
119119msgid "Left edge"
120120msgstr ""
121121
122−#: Components/EdgeDemo.qml:190
122+#: Components/EdgeDemo.qml:199
123123msgid "Swipe from the left to reveal the launcher for quick access to apps"
124124msgstr ""
125125
126−#: Components/EdgeDemo.qml:217
126+#: Components/EdgeDemo.qml:226
127127msgid "Well done"
128128msgstr ""
129129
130−#: Components/EdgeDemo.qml:218
131−msgid "You have now mastered the edge gestures and can start using the phone"
130+#: Components/EdgeDemo.qml:227
131+msgid ""
132+"You have now mastered the edge gestures and can start using the "
133+"phone<br><br>Tap anywhere to start"
132134msgstr ""
133135
134136#: Components/PageHeader.qml:298
@@ -149,23 +151,23 @@ msgid_plural "%1 reviews"
149151msgstr[0] ""
150152msgstr[1] ""
151153
152−#: Dash/Apps/AppPreview.qml:175
154+#: Dash/Apps/AppPreview.qml:178
153155msgid "Rate this"
154156msgstr ""
155157
156−#: Dash/Apps/AppReviews.qml:72
158+#: Dash/Apps/AppReviews.qml:74
157159msgid "Add a review"
158160msgstr ""
159161
160−#: Dash/Apps/AppReviews.qml:84
162+#: Dash/Apps/AppReviews.qml:86
161163msgid "Review"
162164msgstr ""
163165
164−#: Dash/Apps/AppReviews.qml:118
166+#: Dash/Apps/AppReviews.qml:121
165167msgid "Send"
166168msgstr ""
167169
168−#: Dash/Apps/AppReviews.qml:136
170+#: Dash/Apps/AppReviews.qml:139
169171msgid "Comments:"
170172msgstr ""
171173
@@ -209,7 +211,7 @@ msgstr ""
209211msgid "Author:"
210212msgstr "Автор:"
211213
212−#: Greeter/Lockscreen.qml:134
214+#: Greeter/Lockscreen.qml:142
213215msgid "Emergency Call"
214216msgstr ""
215217
@@ -246,11 +248,15 @@ msgstr ""
246248msgid "Search"
247249msgstr "Търсене"
248250
249−#: plugins/Unity/scope.cpp:317
251+#: plugins/Unity/scope.cpp:336
250252msgid "Sorry, there is nothing that matches your search."
251253msgstr "Съжаляваме, няма нищо, което да отговаря на вашето търсене."
252254
253−#: Shell.qml:429
255+#: plugins/Unity/showallfilteroption.cpp:41
256+msgid "All"
257+msgstr ""
258+
259+#: Shell.qml:453
254260#, qt-format
255261msgid "Please enter %1"
256262msgstr ""
po/ca.po+28−22
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-09-28 07:38+0000\n"
1212"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,7 +15,7 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-09-29 06:18+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
1919"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
@@ -86,54 +86,56 @@ msgstr "Viquipèdia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr "Omet la introducció"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Vora dreta"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100"Proveu de lliscar el dit des de la vora dreta per desblocar el telèfon"
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr "Vora superior"
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109"Proveu de lliscar el dit des de la vora superior per accedir als indicadors"
110110
111−#: Components/EdgeDemo.qml:161
111+#: Components/EdgeDemo.qml:170
112112msgid "Close"
113113msgstr "Tanca"
114114
115−#: Components/EdgeDemo.qml:162
115+#: Components/EdgeDemo.qml:171
116116msgid "Swipe up again to close the settings screen"
117117msgstr ""
118118"Llisqueu el dit cap amunt una altra vegada per tancar la pantalla de "
119119"configuració"
120120
121−#: Components/EdgeDemo.qml:189
121+#: Components/EdgeDemo.qml:198
122122msgid "Left edge"
123123msgstr "Vora esquerra"
124124
125−#: Components/EdgeDemo.qml:190
125+#: Components/EdgeDemo.qml:199
126126msgid "Swipe from the left to reveal the launcher for quick access to apps"
127127msgstr ""
128128"Llisqueu el dit des de la vora esquerra per mostrar el llançador i accedir "
129129"ràpidament a les aplicacions"
130130
131−#: Components/EdgeDemo.qml:217
131+#: Components/EdgeDemo.qml:226
132132msgid "Well done"
133133msgstr "Enhorabona!"
134134
135−#: Components/EdgeDemo.qml:218
136−msgid "You have now mastered the edge gestures and can start using the phone"
135+#: Components/EdgeDemo.qml:227
136+msgid ""
137+"You have now mastered the edge gestures and can start using the "
138+"phone<br><br>Tap anywhere to start"
137139msgstr ""
138140
139141#: Components/PageHeader.qml:298
@@ -154,23 +156,23 @@ msgid_plural "%1 reviews"
154156msgstr[0] "%1 ressenya"
155157msgstr[1] "%1 ressenyes"
156158
157−#: Dash/Apps/AppPreview.qml:175
159+#: Dash/Apps/AppPreview.qml:178
158160msgid "Rate this"
159161msgstr ""
160162
161−#: Dash/Apps/AppReviews.qml:72
163+#: Dash/Apps/AppReviews.qml:74
162164msgid "Add a review"
163165msgstr "Afegiu una ressenya"
164166
165−#: Dash/Apps/AppReviews.qml:84
167+#: Dash/Apps/AppReviews.qml:86
166168msgid "Review"
167169msgstr "Ressenya"
168170
169−#: Dash/Apps/AppReviews.qml:118
171+#: Dash/Apps/AppReviews.qml:121
170172msgid "Send"
171173msgstr "Envia"
172174
173−#: Dash/Apps/AppReviews.qml:136
175+#: Dash/Apps/AppReviews.qml:139
174176msgid "Comments:"
175177msgstr "Comentaris:"
176178
@@ -214,7 +216,7 @@ msgstr "Protagonistes:"
214216msgid "Author:"
215217msgstr "Autor:"
216218
217−#: Greeter/Lockscreen.qml:134
219+#: Greeter/Lockscreen.qml:142
218220msgid "Emergency Call"
219221msgstr "Trucada d'emergència"
220222
@@ -251,11 +253,15 @@ msgstr "S'està parlant..."
251253msgid "Search"
252254msgstr "Cerca"
253255
254−#: plugins/Unity/scope.cpp:317
256+#: plugins/Unity/scope.cpp:336
255257msgid "Sorry, there is nothing that matches your search."
256258msgstr "No hi ha res que coincideixi amb la cerca"
257259
258−#: Shell.qml:429
260+#: plugins/Unity/showallfilteroption.cpp:41
261+msgid "All"
262+msgstr ""
263+
264+#: Shell.qml:453
259265#, qt-format
260266msgid "Please enter %1"
261267msgstr "Introduïu %1"
po/de.po+42−36
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-06-27 00:37+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-03 12:13+0000\n"
12+"Last-Translator: Phillip Sz <Unknown>\n"
1313"Language-Team: German <de@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-04 06:11+0000\n"
19+"X-Generator: Launchpad (build 16791)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
91−msgstr ""
91+msgstr "Überspringe Einführung"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
95−msgstr ""
95+msgstr "Rechter Rand"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103−msgstr ""
103+msgstr "Oberer Rand"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111−msgstr ""
111+msgstr "Schließen"
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119−msgstr ""
119+msgstr "Linker Rand"
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127−msgstr ""
127+msgstr "Gut gemacht"
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -138,7 +140,7 @@ msgstr "Letzte Suchbegriffe"
138140#: Dash/Apps/AppInfo.qml:73
139141#, qt-format
140142msgid "(%1)"
141−msgstr ""
143+msgstr "(%1)"
142144
143145#. TRANSLATORS: Number of persons who wrote reviews for this app
144146#: Dash/Apps/AppInfo.qml:85
@@ -148,25 +150,25 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165−msgstr ""
167+msgstr "Senden"
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169−msgstr ""
171+msgstr "Kommentare:"
170172
171173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172174msgid "Featured"
@@ -208,9 +210,9 @@ msgstr "Darsteller:"
208210msgid "Author:"
209211msgstr "Autor:"
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213−msgstr ""
215+msgstr "Notruf"
214216
215217#: Greeter/PassphraseLockscreen.qml:59
216218#, qt-format
@@ -245,11 +247,15 @@ msgstr "Sie sprechen …"
245247msgid "Search"
246248msgstr "Suchen"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Entschuldigung, es wurden keine Treffer erzielt."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr "Alle"
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255−msgstr ""
261+msgstr "Bitte geben Sie %1 ein"
po/el.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 00:53+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Ομιλία..."
245247msgid "Search"
246248msgstr "Αναζήτηση"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Λυπούμαστε, δεν υπάρχει τίποτα που να ταιριάζει στην αναζήτησή σας."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/en_AU.po+28−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-09-28 07:46+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,7 +15,7 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-09-29 06:18+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
1919"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
@@ -86,50 +86,51 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr "Skip intro"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Right edge"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr "Try swiping from the right edge to unlock the phone"
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr "Top edge"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr "Try swiping from the top edge to access the indicators"
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr "Close"
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr "Swipe up again to close the settings screen"
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr "Left edge"
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr "Swipe from the left to reveal the launcher for quick access to apps"
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr "Well done"
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132−"You have now mastered the edge gestures and can start using the phone"
133134
134135#: Components/PageHeader.qml:298
135136msgid "Recent searches"
@@ -149,23 +150,23 @@ msgid_plural "%1 reviews"
149150msgstr[0] "%1 review"
150151msgstr[1] "%1 reviews"
151152
152−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
153154msgid "Rate this"
154155msgstr "Rate this"
155156
156−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
157158msgid "Add a review"
158159msgstr "Add a review"
159160
160−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
161162msgid "Review"
162163msgstr "Review"
163164
164−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
165166msgid "Send"
166167msgstr "Send"
167168
168−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
169170msgid "Comments:"
170171msgstr "Comments:"
171172
@@ -209,7 +210,7 @@ msgstr "Starring:"
209210msgid "Author:"
210211msgstr "Author:"
211212
212−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
213214msgid "Emergency Call"
214215msgstr "Emergency Call"
215216
@@ -246,11 +247,15 @@ msgstr "Speaking..."
246247msgid "Search"
247248msgstr "Search"
248249
249−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
250251msgid "Sorry, there is nothing that matches your search."
251252msgstr "Sorry, there is nothing that matches your search."
252253
253−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
254259#, qt-format
255260msgid "Please enter %1"
256261msgstr "Please enter %1"
po/en_GB.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 08:53+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr "Starring:"
208210msgid "Author:"
209211msgstr "Author:"
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Speaking..."
245247msgid "Search"
246248msgstr "Search"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Sorry, there is nothing that matches your search."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr "Please enter %1"
po/eo.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/es.po+34−26
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-09-28 07:35+0000\n"
12−"Last-Translator: Paco Molinero <paco@byasl.com>\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-02 04:59+0000\n"
12+"Last-Translator: Adolfo Jayme Barrientos <fitoschido@gmail.com>\n"
1313"Language-Team: Spanish <es@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-09-29 06:18+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
18+"X-Launchpad-Export-Date: 2013-10-03 06:08+0000\n"
19+"X-Generator: Launchpad (build 16791)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,51 +86,55 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr "Omitir la introducción"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Borde derecho"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr "Deslice el dedo desde el borde derecho para desbloquear el teléfono"
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr "Borde superior"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr "Deslice el dedo desde el borde superior para acceder a los menús"
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr "Cerrar"
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr "Deslice hacia arriba para cerrar la pantalla de configuración"
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr "Borde izquierdo"
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124"Deslice el dedo desde la izquierda para mostrar el lanzador y acceder "
125125"rápidamente a las aplicaciones"
126126
127−#: Components/EdgeDemo.qml:217
127+#: Components/EdgeDemo.qml:226
128128msgid "Well done"
129129msgstr "Bien hecho"
130130
131−#: Components/EdgeDemo.qml:218
132−msgid "You have now mastered the edge gestures and can start using the phone"
133−msgstr "Ahora domina el uso de gestos de los bordes. Puede usar el teléfono"
131+#: Components/EdgeDemo.qml:227
132+msgid ""
133+"You have now mastered the edge gestures and can start using the "
134+"phone<br><br>Tap anywhere to start"
135+msgstr ""
136+"Ahora domina los gestos de bordes y puede usar el teléfono<br><br>Toque la "
137+"pantalla para comenzar"
134138
135139#: Components/PageHeader.qml:298
136140msgid "Recent searches"
@@ -150,23 +154,23 @@ msgid_plural "%1 reviews"
150154msgstr[0] "%1 reseña"
151155msgstr[1] "%1 reseñas"
152156
153−#: Dash/Apps/AppPreview.qml:175
157+#: Dash/Apps/AppPreview.qml:178
154158msgid "Rate this"
155159msgstr "Valorar esto"
156160
157−#: Dash/Apps/AppReviews.qml:72
161+#: Dash/Apps/AppReviews.qml:74
158162msgid "Add a review"
159163msgstr "Añadir una reseña"
160164
161−#: Dash/Apps/AppReviews.qml:84
165+#: Dash/Apps/AppReviews.qml:86
162166msgid "Review"
163167msgstr "Reseñar"
164168
165−#: Dash/Apps/AppReviews.qml:118
169+#: Dash/Apps/AppReviews.qml:121
166170msgid "Send"
167171msgstr "Enviar"
168172
169−#: Dash/Apps/AppReviews.qml:136
173+#: Dash/Apps/AppReviews.qml:139
170174msgid "Comments:"
171175msgstr "Comentarios:"
172176
@@ -210,7 +214,7 @@ msgstr "Protagonistas:"
210214msgid "Author:"
211215msgstr "Autor:"
212216
213−#: Greeter/Lockscreen.qml:134
217+#: Greeter/Lockscreen.qml:142
214218msgid "Emergency Call"
215219msgstr "Llamada de emergencia"
216220
@@ -247,11 +251,15 @@ msgstr "Hablando…"
247251msgid "Search"
248252msgstr "Buscar"
249253
250−#: plugins/Unity/scope.cpp:317
254+#: plugins/Unity/scope.cpp:336
251255msgid "Sorry, there is nothing that matches your search."
252256msgstr "No hay nada que coincida con su búsqueda."
253257
254−#: Shell.qml:429
258+#: plugins/Unity/showallfilteroption.cpp:41
259+msgid "All"
260+msgstr "Todo"
261+
262+#: Shell.qml:453
255263#, qt-format
256264msgid "Please enter %1"
257265msgstr "Introduzca %1"
po/fi.po+33−25
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-09-26 09:25+0000\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-03 09:21+0000\n"
1212"Last-Translator: Jiri Grönroos <Unknown>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-09-27 06:43+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
18+"X-Launchpad-Export-Date: 2013-10-04 06:11+0000\n"
19+"X-Generator: Launchpad (build 16791)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,49 +86,53 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr "Ohita esittely"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Oikea reuna"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr "Vedä oikealta avataksesi puhelimen lukituksen"
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr "Yläreuna"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr "Vedä yläreunasta käyttääksesi ilmaisimia"
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr "Sulje"
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr "Vedä uudestaan sulkeaksesi asetusnäkymän"
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr "Vasen reuna"
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr "Vedä vasemmalta saattaaksesi sovellusten käynnistimen esiin"
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr "Hyvin tehty"
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
131−msgstr "Hallitset nyt reunaeleet, joten voit aloittaa puhelimen käytön"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
133+msgstr ""
134+"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
135+"käytön<br><br>Napauta missä tahansa aloittaaksesi"
132136
133137#: Components/PageHeader.qml:298
134138msgid "Recent searches"
@@ -148,23 +152,23 @@ msgid_plural "%1 reviews"
148152msgstr[0] "%1 arvostelu"
149153msgstr[1] "%1 arvostelua"
150154
151−#: Dash/Apps/AppPreview.qml:175
155+#: Dash/Apps/AppPreview.qml:178
152156msgid "Rate this"
153157msgstr "Arvioi tämä"
154158
155−#: Dash/Apps/AppReviews.qml:72
159+#: Dash/Apps/AppReviews.qml:74
156160msgid "Add a review"
157161msgstr "Lisää arvostelu"
158162
159−#: Dash/Apps/AppReviews.qml:84
163+#: Dash/Apps/AppReviews.qml:86
160164msgid "Review"
161165msgstr "Arvostelu"
162166
163−#: Dash/Apps/AppReviews.qml:118
167+#: Dash/Apps/AppReviews.qml:121
164168msgid "Send"
165169msgstr "Lähetä"
166170
167−#: Dash/Apps/AppReviews.qml:136
171+#: Dash/Apps/AppReviews.qml:139
168172msgid "Comments:"
169173msgstr "Kommentit:"
170174
@@ -208,7 +212,7 @@ msgstr "Pääosissa:"
208212msgid "Author:"
209213msgstr "Tekijä:"
210214
211−#: Greeter/Lockscreen.qml:134
215+#: Greeter/Lockscreen.qml:142
212216msgid "Emergency Call"
213217msgstr "Hätäpuhelu"
214218
@@ -245,11 +249,15 @@ msgstr "Puhutaan..."
245249msgid "Search"
246250msgstr "Hae"
247251
248−#: plugins/Unity/scope.cpp:317
252+#: plugins/Unity/scope.cpp:336
249253msgid "Sorry, there is nothing that matches your search."
250254msgstr "Hakuun täsmääviä tuloksia ei löydy."
251255
252−#: Shell.qml:429
256+#: plugins/Unity/showallfilteroption.cpp:41
257+msgid "All"
258+msgstr "Kaikki"
259+
260+#: Shell.qml:453
253261#, qt-format
254262msgid "Please enter %1"
255263msgstr "Kirjoita %1"
po/fo.po+41−35
@@ -7,56 +7,56 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-06-27 02:57+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-01 15:13+0000\n"
12+"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
1313"Language-Team: Faroese <fo@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
23−msgstr ""
23+msgstr "Fartelefon"
2424
2525#: Applications/applications.js:29
2626msgid "Camera"
27−msgstr ""
27+msgstr "Myndatól"
2828
2929#: Applications/applications.js:35
3030msgid "Gallery"
31−msgstr ""
31+msgstr "Myndasavn"
3232
3333#: Applications/applications.js:40
3434msgid "Facebook"
35−msgstr ""
35+msgstr "Facebook"
3636
3737#: Applications/applications.js:46
3838msgid "Browser"
39−msgstr ""
39+msgstr "Kagi"
4040
4141#: Applications/applications.js:51
4242msgid "Twitter"
43−msgstr ""
43+msgstr "Twitter"
4444
4545#: Applications/applications.js:57
4646msgid "GMail"
47−msgstr ""
47+msgstr "GMail"
4848
4949#: Applications/applications.js:62
5050msgid "Weather"
51−msgstr ""
51+msgstr "Veðrið"
5252
5353#: Applications/applications.js:68
5454msgid "Notepad"
55−msgstr ""
55+msgstr "Skriviblokkur"
5656
5757#: Applications/applications.js:74
5858msgid "Calendar"
59−msgstr ""
59+msgstr "Kalendari"
6060
6161#: Applications/applications.js:80
6262msgid "Media Player"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Snakkar..."
245247msgid "Search"
246248msgstr "Leita"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Tíanverri er tað einki sum hóskar til tína leiting."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/fr.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 03:21+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: French <fr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/gd.po+28−24
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-09-30 10:34+0000\n"
1212"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
1313"Language-Team: Gaelic; Scottish <gd@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
1818"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2013-10-01 05:53+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
2020"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
@@ -87,57 +87,57 @@ msgstr "An Uicipeid"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr "Gearr leum thairis air an ro-ràdh"
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr "An oir dheas"
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr ""
101101"Feuch is dèan grad-shlaighdeadh a-steach on oir dheas gus a' ghlas a thoirt "
102102"far an fhòn"
103103
104−#: Components/EdgeDemo.qml:135
104+#: Components/EdgeDemo.qml:144
105105msgid "Top edge"
106106msgstr "An oir aig a' bharr"
107107
108−#: Components/EdgeDemo.qml:136
108+#: Components/EdgeDemo.qml:145
109109msgid "Try swiping from the top edge to access the indicators"
110110msgstr ""
111111"Feuch is dèan grad-shlaighdeadh a-steach on oir aig a' bharr gus greim "
112112"fhaighinn air na taisbeanairean"
113113
114−#: Components/EdgeDemo.qml:161
114+#: Components/EdgeDemo.qml:170
115115msgid "Close"
116116msgstr "Dùin"
117117
118−#: Components/EdgeDemo.qml:162
118+#: Components/EdgeDemo.qml:171
119119msgid "Swipe up again to close the settings screen"
120120msgstr "Dèan grad-shlaighdeadh a-nìos gus sgrìn nan roghainnean a dhùnadh"
121121
122−#: Components/EdgeDemo.qml:189
122+#: Components/EdgeDemo.qml:198
123123msgid "Left edge"
124124msgstr "An oir chlì"
125125
126−#: Components/EdgeDemo.qml:190
126+#: Components/EdgeDemo.qml:199
127127msgid "Swipe from the left to reveal the launcher for quick access to apps"
128128msgstr ""
129129"Dèan grad-shlaighdeadh on oir chlì air an lòinseir a bheir dhut cothrom "
130130"luath air na h-aplacaidean"
131131
132−#: Components/EdgeDemo.qml:217
132+#: Components/EdgeDemo.qml:226
133133msgid "Well done"
134134msgstr "Gasta!"
135135
136−#: Components/EdgeDemo.qml:218
137−msgid "You have now mastered the edge gestures and can start using the phone"
136+#: Components/EdgeDemo.qml:227
137+msgid ""
138+"You have now mastered the edge gestures and can start using the "
139+"phone<br><br>Tap anywhere to start"
138140msgstr ""
139−"Dh'ionnsaich thu mar a dh'obraicheas na gluasadan air an oir agus is urrainn "
140−"dhut am fòn a chleachdadh a-nis"
141141
142142#: Components/PageHeader.qml:298
143143msgid "Recent searches"
@@ -159,23 +159,23 @@ msgstr[1] "%1 lèirmheas"
159159msgstr[2] "%1 lèirmheasan"
160160msgstr[3] "%1 lèirmheas"
161161
162−#: Dash/Apps/AppPreview.qml:175
162+#: Dash/Apps/AppPreview.qml:178
163163msgid "Rate this"
164164msgstr "Rangaich seo"
165165
166−#: Dash/Apps/AppReviews.qml:72
166+#: Dash/Apps/AppReviews.qml:74
167167msgid "Add a review"
168168msgstr "Cuir lèirmheas ris"
169169
170−#: Dash/Apps/AppReviews.qml:84
170+#: Dash/Apps/AppReviews.qml:86
171171msgid "Review"
172172msgstr "Lèirmheas"
173173
174−#: Dash/Apps/AppReviews.qml:118
174+#: Dash/Apps/AppReviews.qml:121
175175msgid "Send"
176176msgstr "Cuir"
177177
178−#: Dash/Apps/AppReviews.qml:136
178+#: Dash/Apps/AppReviews.qml:139
179179msgid "Comments:"
180180msgstr "Beachdan"
181181
@@ -219,7 +219,7 @@ msgstr "Leis na daoine a leanas:"
219219msgid "Author:"
220220msgstr "Ùghdar:"
221221
222−#: Greeter/Lockscreen.qml:134
222+#: Greeter/Lockscreen.qml:142
223223msgid "Emergency Call"
224224msgstr "Gairm èiginn"
225225
@@ -256,11 +256,15 @@ msgstr "A' bruidhinn..."
256256msgid "Search"
257257msgstr "Lorg"
258258
259−#: plugins/Unity/scope.cpp:317
259+#: plugins/Unity/scope.cpp:336
260260msgid "Sorry, there is nothing that matches your search."
261261msgstr "Tha sinn duilich ach chan eil dad a' freagairt ris na lorg thu."
262262
263−#: Shell.qml:429
263+#: plugins/Unity/showallfilteroption.cpp:41
264+msgid "All"
265+msgstr ""
266+
267+#: Shell.qml:453
264268#, qt-format
265269msgid "Please enter %1"
266270msgstr "Cuir a-steach %1"
po/gl.po+54−46
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-09-29 11:14+0000\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-03 18:49+0000\n"
1212"Last-Translator: Marcos Lans <Unknown>\n"
1313"Language-Team: Galician <gl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-09-30 05:57+0000\n"
19−"X-Generator: Launchpad (build 16774)\n"
18+"X-Launchpad-Export-Date: 2013-10-04 06:11+0000\n"
19+"X-Generator: Launchpad (build 16791)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,49 +86,53 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr "Saltar introdución"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Bordo dereito"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
99−msgstr "Probe a arrastrar desde o bordo dereito para desbloquear o teléfono"
99+msgstr "Probe o arrastre desde o bordo dereito para desbloquear o teléfono"
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr "Bordo superior"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107−msgstr ""
107+msgstr "Esvare desde o bordo superior para acceder aos indicadores."
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr "Pechar"
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115−msgstr ""
115+msgstr "Esvare cara a arriba para pechar os axustes"
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr "Bordo esquerdo"
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123−msgstr ""
123+msgstr "Esvare desde a esquerda para mostrar o iniciador de acceso rápido"
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr "Ben feito"
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
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"
132136
133137#: Components/PageHeader.qml:298
134138msgid "Recent searches"
@@ -145,40 +149,40 @@ msgstr "(%1)"
145149#, qt-format
146150msgid "%1 review"
147151msgid_plural "%1 reviews"
148−msgstr[0] ""
149−msgstr[1] ""
152+msgstr[0] "%1 opinión"
153+msgstr[1] "%1 opinións"
150154
151−#: Dash/Apps/AppPreview.qml:175
155+#: Dash/Apps/AppPreview.qml:178
152156msgid "Rate this"
153−msgstr ""
157+msgstr "Valore isto"
154158
155−#: Dash/Apps/AppReviews.qml:72
159+#: Dash/Apps/AppReviews.qml:74
156160msgid "Add a review"
157−msgstr ""
161+msgstr "Engadir unha opinión"
158162
159−#: Dash/Apps/AppReviews.qml:84
163+#: Dash/Apps/AppReviews.qml:86
160164msgid "Review"
161−msgstr ""
165+msgstr "Opinión"
162166
163−#: Dash/Apps/AppReviews.qml:118
167+#: Dash/Apps/AppReviews.qml:121
164168msgid "Send"
165−msgstr ""
169+msgstr "Enviar"
166170
167−#: Dash/Apps/AppReviews.qml:136
171+#: Dash/Apps/AppReviews.qml:139
168172msgid "Comments:"
169−msgstr ""
173+msgstr "Comentarios:"
170174
171175#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172176msgid "Featured"
173−msgstr ""
177+msgstr "Destacado"
174178
175179#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
176180msgid "Recent"
177−msgstr ""
181+msgstr "Recentes"
178182
179183#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
180184msgid "New Releases"
181−msgstr ""
185+msgstr "Novas versións"
182186
183187#: Dash/DashMusic.qml:30
184188msgid "Top Charting"
@@ -190,7 +194,7 @@ msgstr "Música"
190194
191195#: Dash/DashVideos.qml:31
192196msgid "Popular Online"
193−msgstr ""
197+msgstr "Populares en liña"
194198
195199#: Dash/DashVideos.qml:146
196200msgid "Videos"
@@ -198,28 +202,28 @@ msgstr "Vídeos"
198202
199203#: Dash/Video/VideoPreview.qml:130
200204msgid "Directed by:"
201−msgstr ""
205+msgstr "Dirixido por"
202206
203207#: Dash/Video/VideoPreview.qml:153
204208msgid "Starring:"
205−msgstr ""
209+msgstr "Favoritos"
206210
207211#: Dash/Video/VideoPreview.qml:176
208212msgid "Author:"
209−msgstr ""
213+msgstr "Autor:"
210214
211−#: Greeter/Lockscreen.qml:134
215+#: Greeter/Lockscreen.qml:142
212216msgid "Emergency Call"
213−msgstr ""
217+msgstr "Chamada de emerxencia"
214218
215219#: Greeter/PassphraseLockscreen.qml:59
216220#, qt-format
217221msgid "Hello %1"
218−msgstr ""
222+msgstr "Ola %1"
219223
220224#: Greeter/PassphraseLockscreen.qml:59
221225msgid "Hello"
222−msgstr ""
226+msgstr "Ola"
223227
224228#: Hud/HudParametrizedActionsPage.qml:132
225229msgid "Confirm"
@@ -245,11 +249,15 @@ msgstr "Falando…"
245249msgid "Search"
246250msgstr "Buscar"
247251
248−#: plugins/Unity/scope.cpp:317
252+#: plugins/Unity/scope.cpp:336
249253msgid "Sorry, there is nothing that matches your search."
250254msgstr "Sentímolo, non hai nada que coincida con esta busca."
251255
252−#: Shell.qml:429
256+#: plugins/Unity/showallfilteroption.cpp:41
257+msgid "All"
258+msgstr "Todo"
259+
260+#: Shell.qml:453
253261#, qt-format
254262msgid "Please enter %1"
255−msgstr ""
263+msgstr "Introduza %1"
po/he.po+79−73
@@ -7,127 +7,129 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-06-27 03:54+0000\n"
12−"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-01 09:19+0000\n"
12+"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
1313"Language-Team: Hebrew <he@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
23−msgstr ""
23+msgstr "טלפון"
2424
2525#: Applications/applications.js:29
2626msgid "Camera"
27−msgstr ""
27+msgstr "מצלמה"
2828
2929#: Applications/applications.js:35
3030msgid "Gallery"
31−msgstr ""
31+msgstr "גלריה"
3232
3333#: Applications/applications.js:40
3434msgid "Facebook"
35−msgstr ""
35+msgstr "Facebook"
3636
3737#: Applications/applications.js:46
3838msgid "Browser"
39−msgstr ""
39+msgstr "דפדפן"
4040
4141#: Applications/applications.js:51
4242msgid "Twitter"
43−msgstr ""
43+msgstr "Twitter"
4444
4545#: Applications/applications.js:57
4646msgid "GMail"
47−msgstr ""
47+msgstr "GMail"
4848
4949#: Applications/applications.js:62
5050msgid "Weather"
51−msgstr ""
51+msgstr "מזג אוויר"
5252
5353#: Applications/applications.js:68
5454msgid "Notepad"
55−msgstr ""
55+msgstr "פנקס רשימות"
5656
5757#: Applications/applications.js:74
5858msgid "Calendar"
59−msgstr ""
59+msgstr "לוח שנה"
6060
6161#: Applications/applications.js:80
6262msgid "Media Player"
63−msgstr ""
63+msgstr "נגן מדיה"
6464
6565#: Applications/applications.js:86
6666msgid "Evernote"
67−msgstr ""
67+msgstr "Evernote"
6868
6969#: Applications/applications.js:91
7070msgid "Map"
71−msgstr ""
71+msgstr "מפה"
7272
7373#: Applications/applications.js:96
7474msgid "Pinterest"
75−msgstr ""
75+msgstr "Pinterest"
7676
7777#: Applications/applications.js:101
7878msgid "SoundCloud"
79−msgstr ""
79+msgstr "SoundCloud"
8080
8181#: Applications/applications.js:106
8282msgid "Wikipedia"
83−msgstr ""
83+msgstr "ויקיפדיה"
8484
8585#: Applications/applications.js:111
8686msgid "YouTube"
87−msgstr ""
87+msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
91−msgstr ""
91+msgstr "לדלג על הפתיחה"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
95−msgstr ""
95+msgstr "שול ימני"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
99−msgstr ""
99+msgstr "נא לנסות למשוך מהשול הימני כדי לשחרר את נעילת הטלפון"
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103−msgstr ""
103+msgstr "השול העליון"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107−msgstr ""
107+msgstr "נא לנסות למשוך מהשול העליון כדי לגשת למחוונים"
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111−msgstr ""
111+msgstr "סגירה"
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115−msgstr ""
115+msgstr "ניתן למשוך שוב כדי לסגור את מסך ההגדרות"
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119−msgstr ""
119+msgstr "שול שמאלי"
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123−msgstr ""
123+msgstr "יש למשוך משמאל כדי לחשוף את המשגר לצורך גישה מהירה ליישומים"
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127−msgstr ""
127+msgstr "כל הכבוד"
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -138,51 +140,51 @@ msgstr "חיפושים אחרונים"
138140#: Dash/Apps/AppInfo.qml:73
139141#, qt-format
140142msgid "(%1)"
141−msgstr ""
143+msgstr "(%1)"
142144
143145#. TRANSLATORS: Number of persons who wrote reviews for this app
144146#: Dash/Apps/AppInfo.qml:85
145147#, qt-format
146148msgid "%1 review"
147149msgid_plural "%1 reviews"
148−msgstr[0] ""
149−msgstr[1] ""
150+msgstr[0] "סקירה %1"
151+msgstr[1] "%1 סקירות"
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153−msgstr ""
155+msgstr "דירוג היישום"
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157−msgstr ""
159+msgstr "הוספת סקירה"
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161−msgstr ""
163+msgstr "סקירה"
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165−msgstr ""
167+msgstr "שליחה"
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169−msgstr ""
171+msgstr "הערות:"
170172
171173#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172174msgid "Featured"
173−msgstr ""
175+msgstr "מומלצים"
174176
175177#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
176178msgid "Recent"
177−msgstr ""
179+msgstr "אחרונים"
178180
179181#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
180182msgid "New Releases"
181−msgstr ""
183+msgstr "מהדורות חדשות"
182184
183185#: Dash/DashMusic.qml:30
184186msgid "Top Charting"
185−msgstr ""
187+msgstr "בראש הטבלה"
186188
187189#: Dash/DashMusic.qml:91
188190msgid "Music"
@@ -190,7 +192,7 @@ msgstr "מוזיקה"
190192
191193#: Dash/DashVideos.qml:31
192194msgid "Popular Online"
193−msgstr ""
195+msgstr "פופולריים ברחבי הרשת"
194196
195197#: Dash/DashVideos.qml:146
196198msgid "Videos"
@@ -198,28 +200,28 @@ msgstr "סרטונים"
198200
199201#: Dash/Video/VideoPreview.qml:130
200202msgid "Directed by:"
201−msgstr ""
203+msgstr "בוים ע״י:"
202204
203205#: Dash/Video/VideoPreview.qml:153
204206msgid "Starring:"
205−msgstr ""
207+msgstr "בכיכוב:"
206208
207209#: Dash/Video/VideoPreview.qml:176
208210msgid "Author:"
209−msgstr ""
211+msgstr "יוצר:"
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213−msgstr ""
215+msgstr "שיחת חירום"
214216
215217#: Greeter/PassphraseLockscreen.qml:59
216218#, qt-format
217219msgid "Hello %1"
218−msgstr ""
220+msgstr "שלום %1"
219221
220222#: Greeter/PassphraseLockscreen.qml:59
221223msgid "Hello"
222−msgstr ""
224+msgstr "שלום"
223225
224226#: Hud/HudParametrizedActionsPage.qml:132
225227msgid "Confirm"
@@ -239,17 +241,21 @@ msgstr "יש לדבר כעת..."
239241
240242#: Hud/Hud.qml:94
241243msgid "Speaking..."
242−msgstr "מושמע דיבור..."
244+msgstr "הדיבור מושמע…"
243245
244246#: Panel/SearchIndicator.qml:27
245247msgid "Search"
246248msgstr "חיפוש"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "שום דבר אינו תואם לחיפוש שלך, עמך הסליחה."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255−msgstr ""
261+msgstr "נא להזין %1"
po/hr.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 04:14+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Croatian <hr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 16750)\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
20+"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,48 +87,50 @@ msgstr ""
8787msgid "YouTube"
8888msgstr ""
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr ""
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr ""
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr ""
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr ""
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr ""
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr ""
117117
118−#: Components/EdgeDemo.qml:189
118+#: Components/EdgeDemo.qml:198
119119msgid "Left edge"
120120msgstr ""
121121
122−#: Components/EdgeDemo.qml:190
122+#: Components/EdgeDemo.qml:199
123123msgid "Swipe from the left to reveal the launcher for quick access to apps"
124124msgstr ""
125125
126−#: Components/EdgeDemo.qml:217
126+#: Components/EdgeDemo.qml:226
127127msgid "Well done"
128128msgstr ""
129129
130−#: Components/EdgeDemo.qml:218
131−msgid "You have now mastered the edge gestures and can start using the phone"
130+#: Components/EdgeDemo.qml:227
131+msgid ""
132+"You have now mastered the edge gestures and can start using the "
133+"phone<br><br>Tap anywhere to start"
132134msgstr ""
133135
134136#: Components/PageHeader.qml:298
@@ -149,23 +151,23 @@ msgid_plural "%1 reviews"
149151msgstr[0] ""
150152msgstr[1] ""
151153
152−#: Dash/Apps/AppPreview.qml:175
154+#: Dash/Apps/AppPreview.qml:178
153155msgid "Rate this"
154156msgstr ""
155157
156−#: Dash/Apps/AppReviews.qml:72
158+#: Dash/Apps/AppReviews.qml:74
157159msgid "Add a review"
158160msgstr ""
159161
160−#: Dash/Apps/AppReviews.qml:84
162+#: Dash/Apps/AppReviews.qml:86
161163msgid "Review"
162164msgstr ""
163165
164−#: Dash/Apps/AppReviews.qml:118
166+#: Dash/Apps/AppReviews.qml:121
165167msgid "Send"
166168msgstr ""
167169
168−#: Dash/Apps/AppReviews.qml:136
170+#: Dash/Apps/AppReviews.qml:139
169171msgid "Comments:"
170172msgstr ""
171173
@@ -209,7 +211,7 @@ msgstr ""
209211msgid "Author:"
210212msgstr ""
211213
212−#: Greeter/Lockscreen.qml:134
214+#: Greeter/Lockscreen.qml:142
213215msgid "Emergency Call"
214216msgstr ""
215217
@@ -246,11 +248,15 @@ msgstr "Govor..."
246248msgid "Search"
247249msgstr "Pretraživanje"
248250
249−#: plugins/Unity/scope.cpp:317
251+#: plugins/Unity/scope.cpp:336
250252msgid "Sorry, there is nothing that matches your search."
251253msgstr "Nažalost, ne postoji ništa što odgovara vašoj pretrazi."
252254
253−#: Shell.qml:429
255+#: plugins/Unity/showallfilteroption.cpp:41
256+msgid "All"
257+msgstr ""
258+
259+#: Shell.qml:453
254260#, qt-format
255261msgid "Please enter %1"
256262msgstr ""
po/hu.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 04:28+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Beszéd…"
245247msgid "Search"
246248msgstr "Keresés"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Elnézést, nincs találat a keresésre."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/hy.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 04:43+0000\n"
1212"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
1313"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Խոսում եմ..."
245247msgid "Search"
246248msgstr "Որոնում"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Կներերք, բայց Ձեր հարցումով ոչինչ չկար"
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/id.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Indonesian <id@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/is.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-09-18 16:22+0000\n"
1212"Last-Translator: Andri Thorlacius <Unknown>\n"
1313"Language-Team: Icelandic <is@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-09-19 05:14+0000\n"
19−"X-Generator: Launchpad (build 16765)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,49 +86,51 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr "Hoppa yfir kynningu"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Hægri brún"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100"Prufaðu að renna puttanum frá hægri brúninni til að aflæsa símanum þínum."
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr "Efri brún"
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr "Loka"
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr ""
117117
118−#: Components/EdgeDemo.qml:189
118+#: Components/EdgeDemo.qml:198
119119msgid "Left edge"
120120msgstr "Vinstri brún"
121121
122−#: Components/EdgeDemo.qml:190
122+#: Components/EdgeDemo.qml:199
123123msgid "Swipe from the left to reveal the launcher for quick access to apps"
124124msgstr ""
125125
126−#: Components/EdgeDemo.qml:217
126+#: Components/EdgeDemo.qml:226
127127msgid "Well done"
128128msgstr "Vel gert"
129129
130−#: Components/EdgeDemo.qml:218
131−msgid "You have now mastered the edge gestures and can start using the phone"
130+#: Components/EdgeDemo.qml:227
131+msgid ""
132+"You have now mastered the edge gestures and can start using the "
133+"phone<br><br>Tap anywhere to start"
132134msgstr ""
133135
134136#: Components/PageHeader.qml:298
@@ -149,23 +151,23 @@ msgid_plural "%1 reviews"
149151msgstr[0] "%1 ummæli"
150152msgstr[1] "%1 ummæli"
151153
152−#: Dash/Apps/AppPreview.qml:175
154+#: Dash/Apps/AppPreview.qml:178
153155msgid "Rate this"
154156msgstr "Gefa þessu einkunn"
155157
156−#: Dash/Apps/AppReviews.qml:72
158+#: Dash/Apps/AppReviews.qml:74
157159msgid "Add a review"
158160msgstr "Gefa umsögn"
159161
160−#: Dash/Apps/AppReviews.qml:84
162+#: Dash/Apps/AppReviews.qml:86
161163msgid "Review"
162164msgstr "Umsögn"
163165
164−#: Dash/Apps/AppReviews.qml:118
166+#: Dash/Apps/AppReviews.qml:121
165167msgid "Send"
166168msgstr "Senda"
167169
168−#: Dash/Apps/AppReviews.qml:136
170+#: Dash/Apps/AppReviews.qml:139
169171msgid "Comments:"
170172msgstr "Athugasemdir:"
171173
@@ -209,7 +211,7 @@ msgstr "Meðal leikara eru:"
209211msgid "Author:"
210212msgstr "Höfundur:"
211213
212−#: Greeter/Lockscreen.qml:134
214+#: Greeter/Lockscreen.qml:142
213215msgid "Emergency Call"
214216msgstr "Neyðarsímtal"
215217
@@ -246,11 +248,15 @@ msgstr "Tala..."
246248msgid "Search"
247249msgstr "Leita"
248250
249−#: plugins/Unity/scope.cpp:317
251+#: plugins/Unity/scope.cpp:336
250252msgid "Sorry, there is nothing that matches your search."
251253msgstr "Því miður, það var ekkert sem passaði við leitarorðið þitt."
252254
253−#: Shell.qml:429
255+#: plugins/Unity/showallfilteroption.cpp:41
256+msgid "All"
257+msgstr ""
258+
259+#: Shell.qml:453
254260#, qt-format
255261msgid "Please enter %1"
256262msgstr ""
po/it.po+28−24
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-09-28 10:05+0000\n"
1212"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
@@ -15,7 +15,7 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-09-29 06:18+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
1919"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
@@ -86,56 +86,56 @@ msgstr "Wikipedia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr "Salta introduzione"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Bordo destro"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr "Provare a far scorrere dal bordo destro per sbloccare il telefono"
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr "Bordo superiore"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108"Provare a far scorrere dal bordo in alto per accedere agli indicatori"
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr "Chiudi"
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr ""
117117"Far scorrere verso l'alto nuovamente per chiudere la schermata delle "
118118"impostazioni"
119119
120−#: Components/EdgeDemo.qml:189
120+#: Components/EdgeDemo.qml:198
121121msgid "Left edge"
122122msgstr "Bordo sinistro"
123123
124−#: Components/EdgeDemo.qml:190
124+#: Components/EdgeDemo.qml:199
125125msgid "Swipe from the left to reveal the launcher for quick access to apps"
126126msgstr ""
127127"Far scorrere il bordo sinistro per mostrare il Launcher e avere un rapido "
128128"accesso alle applicazioni"
129129
130−#: Components/EdgeDemo.qml:217
130+#: Components/EdgeDemo.qml:226
131131msgid "Well done"
132132msgstr "Ben fatto"
133133
134−#: Components/EdgeDemo.qml:218
135−msgid "You have now mastered the edge gestures and can start using the phone"
134+#: Components/EdgeDemo.qml:227
135+msgid ""
136+"You have now mastered the edge gestures and can start using the "
137+"phone<br><br>Tap anywhere to start"
136138msgstr ""
137−"I gesti sui bordi dello schermo sono ora configurato ed è possibile usare il "
138−"telefono"
139139
140140#: Components/PageHeader.qml:298
141141msgid "Recent searches"
@@ -155,23 +155,23 @@ msgid_plural "%1 reviews"
155155msgstr[0] "%1 recensione"
156156msgstr[1] "%1 recensioni"
157157
158−#: Dash/Apps/AppPreview.qml:175
158+#: Dash/Apps/AppPreview.qml:178
159159msgid "Rate this"
160160msgstr "Valuta"
161161
162−#: Dash/Apps/AppReviews.qml:72
162+#: Dash/Apps/AppReviews.qml:74
163163msgid "Add a review"
164164msgstr "Aggiungi una recensione"
165165
166−#: Dash/Apps/AppReviews.qml:84
166+#: Dash/Apps/AppReviews.qml:86
167167msgid "Review"
168168msgstr "Recensisci"
169169
170−#: Dash/Apps/AppReviews.qml:118
170+#: Dash/Apps/AppReviews.qml:121
171171msgid "Send"
172172msgstr "Invia"
173173
174−#: Dash/Apps/AppReviews.qml:136
174+#: Dash/Apps/AppReviews.qml:139
175175msgid "Comments:"
176176msgstr "Commenti:"
177177
@@ -215,7 +215,7 @@ msgstr "Valutazioni:"
215215msgid "Author:"
216216msgstr "Autore:"
217217
218−#: Greeter/Lockscreen.qml:134
218+#: Greeter/Lockscreen.qml:142
219219msgid "Emergency Call"
220220msgstr "Chiamata di emergenza"
221221
@@ -252,11 +252,15 @@ msgstr "Sto parlando..."
252252msgid "Search"
253253msgstr "Cerca"
254254
255−#: plugins/Unity/scope.cpp:317
255+#: plugins/Unity/scope.cpp:336
256256msgid "Sorry, there is nothing that matches your search."
257257msgstr "Nessun risultato corrispondente alla ricerca."
258258
259−#: Shell.qml:429
259+#: plugins/Unity/showallfilteroption.cpp:41
260+msgid "All"
261+msgstr ""
262+
263+#: Shell.qml:453
260264#, qt-format
261265msgid "Please enter %1"
262266msgstr "Inserire %1"
po/ja.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/kn.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 05:43+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "ಮಾತನಾಡುತಿದ್ದೀರಿ"
245247msgid "Search"
246248msgstr "ಹುಡುಕು"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "ಕ್ಷಮಿಸಿ ನಿಮ್ಮ ಶೋಧನೆಗೆ ಸರಿಯಾದ ಹೊಂದಾಣಿಕೆಗಳು ದೊರಕುತ್ತಿಲ್ಲ"
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/ko.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 05:59+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr "찾기"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/ky.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 06:17+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Сүйлөнүүдө..."
245247msgid "Search"
246248msgstr "Издөө"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Тилекке каршы, сиздин издөөңүзгө эч нерсе дал келген жок."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/lo.ponew file+261
@@ -0,0 +1,261 @@
1+# Lao translation for unity8
2+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
3+# This file is distributed under the same license as the unity8 package.
4+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
5+#
6+msgid ""
7+msgstr ""
8+"Project-Id-Version: unity8\n"
9+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-02 10:00+0000\n"
12+"Last-Translator: Anousak <anousak@gmail.com>\n"
13+"Language-Team: Lao <lo@li.org>\n"
14+"MIME-Version: 1.0\n"
15+"Content-Type: text/plain; charset=UTF-8\n"
16+"Content-Transfer-Encoding: 8bit\n"
17+"Plural-Forms: nplurals=1; plural=0;\n"
18+"X-Launchpad-Export-Date: 2013-10-03 06:08+0000\n"
19+"X-Generator: Launchpad (build 16791)\n"
20+
21+#: Applications/applications.js:23
22+msgid "Phone"
23+msgstr "ໂທລະສັບ"
24+
25+#: Applications/applications.js:29
26+msgid "Camera"
27+msgstr "ກ້ອງ"
28+
29+#: Applications/applications.js:35
30+msgid "Gallery"
31+msgstr "Gallery"
32+
33+#: Applications/applications.js:40
34+msgid "Facebook"
35+msgstr "Facebook"
36+
37+#: Applications/applications.js:46
38+msgid "Browser"
39+msgstr "ບາວເຊິ"
40+
41+#: Applications/applications.js:51
42+msgid "Twitter"
43+msgstr "Twitter"
44+
45+#: Applications/applications.js:57
46+msgid "GMail"
47+msgstr "GMail"
48+
49+#: Applications/applications.js:62
50+msgid "Weather"
51+msgstr "ສະພາບອາກາດ"
52+
53+#: Applications/applications.js:68
54+msgid "Notepad"
55+msgstr "Noetpad"
56+
57+#: Applications/applications.js:74
58+msgid "Calendar"
59+msgstr "ປະຕິທິນ"
60+
61+#: Applications/applications.js:80
62+msgid "Media Player"
63+msgstr ""
64+
65+#: Applications/applications.js:86
66+msgid "Evernote"
67+msgstr ""
68+
69+#: Applications/applications.js:91
70+msgid "Map"
71+msgstr "ເເຜນທີ່"
72+
73+#: Applications/applications.js:96
74+msgid "Pinterest"
75+msgstr ""
76+
77+#: Applications/applications.js:101
78+msgid "SoundCloud"
79+msgstr ""
80+
81+#: Applications/applications.js:106
82+msgid "Wikipedia"
83+msgstr ""
84+
85+#: Applications/applications.js:111
86+msgid "YouTube"
87+msgstr "ິYouTube"
88+
89+#: Components/EdgeDemoOverlay.qml:150
90+msgid "Skip intro"
91+msgstr ""
92+
93+#: Components/EdgeDemo.qml:112
94+msgid "Right edge"
95+msgstr ""
96+
97+#: Components/EdgeDemo.qml:113
98+msgid "Try swiping from the right edge to unlock the phone"
99+msgstr ""
100+
101+#: Components/EdgeDemo.qml:144
102+msgid "Top edge"
103+msgstr ""
104+
105+#: Components/EdgeDemo.qml:145
106+msgid "Try swiping from the top edge to access the indicators"
107+msgstr ""
108+
109+#: Components/EdgeDemo.qml:170
110+msgid "Close"
111+msgstr "ປິດ"
112+
113+#: Components/EdgeDemo.qml:171
114+msgid "Swipe up again to close the settings screen"
115+msgstr ""
116+
117+#: Components/EdgeDemo.qml:198
118+msgid "Left edge"
119+msgstr ""
120+
121+#: Components/EdgeDemo.qml:199
122+msgid "Swipe from the left to reveal the launcher for quick access to apps"
123+msgstr ""
124+
125+#: Components/EdgeDemo.qml:226
126+msgid "Well done"
127+msgstr "ດີຫຼາຍ"
128+
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
133+msgstr ""
134+
135+#: Components/PageHeader.qml:298
136+msgid "Recent searches"
137+msgstr ""
138+
139+#. TRANSLATORS: Number of persons who rated this app
140+#: Dash/Apps/AppInfo.qml:73
141+#, qt-format
142+msgid "(%1)"
143+msgstr "(%1)"
144+
145+#. TRANSLATORS: Number of persons who wrote reviews for this app
146+#: Dash/Apps/AppInfo.qml:85
147+#, qt-format
148+msgid "%1 review"
149+msgid_plural "%1 reviews"
150+msgstr[0] ""
151+msgstr[1] ""
152+
153+#: Dash/Apps/AppPreview.qml:178
154+msgid "Rate this"
155+msgstr ""
156+
157+#: Dash/Apps/AppReviews.qml:74
158+msgid "Add a review"
159+msgstr ""
160+
161+#: Dash/Apps/AppReviews.qml:86
162+msgid "Review"
163+msgstr ""
164+
165+#: Dash/Apps/AppReviews.qml:121
166+msgid "Send"
167+msgstr "ສົ່ງ"
168+
169+#: Dash/Apps/AppReviews.qml:139
170+msgid "Comments:"
171+msgstr "ຄໍ່ເຫັນ"
172+
173+#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
174+msgid "Featured"
175+msgstr ""
176+
177+#: Dash/DashMusic.qml:28 Dash/DashVideos.qml:29
178+msgid "Recent"
179+msgstr ""
180+
181+#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
182+msgid "New Releases"
183+msgstr ""
184+
185+#: Dash/DashMusic.qml:30
186+msgid "Top Charting"
187+msgstr ""
188+
189+#: Dash/DashMusic.qml:91
190+msgid "Music"
191+msgstr "ດົນຕີ"
192+
193+#: Dash/DashVideos.qml:31
194+msgid "Popular Online"
195+msgstr ""
196+
197+#: Dash/DashVideos.qml:146
198+msgid "Videos"
199+msgstr "ວິດີໂອ"
200+
201+#: Dash/Video/VideoPreview.qml:130
202+msgid "Directed by:"
203+msgstr ""
204+
205+#: Dash/Video/VideoPreview.qml:153
206+msgid "Starring:"
207+msgstr ""
208+
209+#: Dash/Video/VideoPreview.qml:176
210+msgid "Author:"
211+msgstr ""
212+
213+#: Greeter/Lockscreen.qml:142
214+msgid "Emergency Call"
215+msgstr ""
216+
217+#: Greeter/PassphraseLockscreen.qml:59
218+#, qt-format
219+msgid "Hello %1"
220+msgstr "ສະບາຍດີ %1"
221+
222+#: Greeter/PassphraseLockscreen.qml:59
223+msgid "Hello"
224+msgstr "ສະບາຍດີ"
225+
226+#: Hud/HudParametrizedActionsPage.qml:132
227+msgid "Confirm"
228+msgstr "ຢືນຢັນ"
229+
230+#: Hud/Hud.qml:61 Hud/Hud.qml:99 Hud/Hud.qml:372
231+msgid "Type or say a command"
232+msgstr ""
233+
234+#: Hud/Hud.qml:84
235+msgid "Loading. Please Wait..."
236+msgstr ""
237+
238+#: Hud/Hud.qml:89
239+msgid "Speak Now..."
240+msgstr "ເວົ້າໂລດ"
241+
242+#: Hud/Hud.qml:94
243+msgid "Speaking..."
244+msgstr "ກໍາລັງເວົ້າ"
245+
246+#: Panel/SearchIndicator.qml:27
247+msgid "Search"
248+msgstr "ຊອກຫາ"
249+
250+#: plugins/Unity/scope.cpp:336
251+msgid "Sorry, there is nothing that matches your search."
252+msgstr ""
253+
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr "ທັງໝົດ"
257+
258+#: Shell.qml:453
259+#, qt-format
260+msgid "Please enter %1"
261+msgstr "ກະລູນາປ້ອນ %1"
po/lv.po+28−22
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-09-28 16:29+0000\n"
1212"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
1313"Language-Team: Latvian <lv@li.org>\n"
@@ -15,7 +15,7 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2013-09-29 06:18+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
1919"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
@@ -86,48 +86,50 @@ msgstr "Vikipēdija"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Labā mala"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Runa..."
245247msgid "Search"
246248msgstr "Meklēt"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Diemžēl nekas neatbilst jūsu meklētajam."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/my.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 06:47+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Burmese <my@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "ပြောနေသည်"
245247msgid "Search"
246248msgstr "ရှာဖွေ"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "ဆောရီး၊ သင်၏ရှာဖွေမူနှင့်တူညီတာဘာမှမရှိပါ။"
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/nb.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 07:02+0000\n"
1212"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
1313"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Snakker …"
245247msgid "Search"
246248msgstr "Søk"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Søket ga ingen treff."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/nl.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 07:19+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "Inspreken…"
245247msgid "Search"
246248msgstr "Zoeken"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "Er is helaas niets dat met uw zoekopdracht overeenkomt."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/pl.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 08:52+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1818"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 16750)\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
20+"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,48 +87,50 @@ msgstr "Wikipedia"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr ""
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr ""
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr ""
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr ""
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr ""
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr ""
117117
118−#: Components/EdgeDemo.qml:189
118+#: Components/EdgeDemo.qml:198
119119msgid "Left edge"
120120msgstr ""
121121
122−#: Components/EdgeDemo.qml:190
122+#: Components/EdgeDemo.qml:199
123123msgid "Swipe from the left to reveal the launcher for quick access to apps"
124124msgstr ""
125125
126−#: Components/EdgeDemo.qml:217
126+#: Components/EdgeDemo.qml:226
127127msgid "Well done"
128128msgstr ""
129129
130−#: Components/EdgeDemo.qml:218
131−msgid "You have now mastered the edge gestures and can start using the phone"
130+#: Components/EdgeDemo.qml:227
131+msgid ""
132+"You have now mastered the edge gestures and can start using the "
133+"phone<br><br>Tap anywhere to start"
132134msgstr ""
133135
134136#: Components/PageHeader.qml:298
@@ -149,23 +151,23 @@ msgid_plural "%1 reviews"
149151msgstr[0] ""
150152msgstr[1] ""
151153
152−#: Dash/Apps/AppPreview.qml:175
154+#: Dash/Apps/AppPreview.qml:178
153155msgid "Rate this"
154156msgstr ""
155157
156−#: Dash/Apps/AppReviews.qml:72
158+#: Dash/Apps/AppReviews.qml:74
157159msgid "Add a review"
158160msgstr ""
159161
160−#: Dash/Apps/AppReviews.qml:84
162+#: Dash/Apps/AppReviews.qml:86
161163msgid "Review"
162164msgstr ""
163165
164−#: Dash/Apps/AppReviews.qml:118
166+#: Dash/Apps/AppReviews.qml:121
165167msgid "Send"
166168msgstr ""
167169
168−#: Dash/Apps/AppReviews.qml:136
170+#: Dash/Apps/AppReviews.qml:139
169171msgid "Comments:"
170172msgstr ""
171173
@@ -209,7 +211,7 @@ msgstr "Obsada:"
209211msgid "Author:"
210212msgstr "Autor:"
211213
212−#: Greeter/Lockscreen.qml:134
214+#: Greeter/Lockscreen.qml:142
213215msgid "Emergency Call"
214216msgstr ""
215217
@@ -246,11 +248,15 @@ msgstr "Rozpoznanie..."
246248msgid "Search"
247249msgstr "Szukaj"
248250
249−#: plugins/Unity/scope.cpp:317
251+#: plugins/Unity/scope.cpp:336
250252msgid "Sorry, there is nothing that matches your search."
251253msgstr "Nie znaleziono pasujących wyników."
252254
253−#: Shell.qml:429
255+#: plugins/Unity/showallfilteroption.cpp:41
256+msgid "All"
257+msgstr ""
258+
259+#: Shell.qml:453
254260#, qt-format
255261msgid "Please enter %1"
256262msgstr "Wprowadź %1"
po/pt_BR.po+32−26
@@ -7,15 +7,15 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-09-30 13:01+0000\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-01 13:05+0000\n"
1212"Last-Translator: Rafael Neri <Unknown>\n"
1313"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-10-01 05:53+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
1919"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
@@ -86,50 +86,52 @@ msgstr "Wikipédia"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr "Pular introdução"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr "Borda direita"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr "Tente deslizar da borda direita para desbloquear o telefone"
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr "Borda superior"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr "Tente deslizar da borda superior para acessar os indicadores"
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr "Fechar"
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr "Deslize novamente para cima para fechar a tela de configurações"
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr "Borda esquerda"
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124"Deslize da esquerda para revelar o lançador para acesso rápido aos "
125125"aplicativos"
126126
127−#: Components/EdgeDemo.qml:217
127+#: Components/EdgeDemo.qml:226
128128msgid "Well done"
129−msgstr ""
129+msgstr "Bem feito"
130130
131−#: Components/EdgeDemo.qml:218
132−msgid "You have now mastered the edge gestures and can start using the phone"
131+#: Components/EdgeDemo.qml:227
132+msgid ""
133+"You have now mastered the edge gestures and can start using the "
134+"phone<br><br>Tap anywhere to start"
133135msgstr ""
134136
135137#: Components/PageHeader.qml:298
@@ -150,23 +152,23 @@ msgid_plural "%1 reviews"
150152msgstr[0] "%1 análise"
151153msgstr[1] "%1 análises"
152154
153−#: Dash/Apps/AppPreview.qml:175
155+#: Dash/Apps/AppPreview.qml:178
154156msgid "Rate this"
155157msgstr "Avaliar isto"
156158
157−#: Dash/Apps/AppReviews.qml:72
159+#: Dash/Apps/AppReviews.qml:74
158160msgid "Add a review"
159161msgstr "Adicionar uma análise"
160162
161−#: Dash/Apps/AppReviews.qml:84
163+#: Dash/Apps/AppReviews.qml:86
162164msgid "Review"
163165msgstr "Revisão"
164166
165−#: Dash/Apps/AppReviews.qml:118
167+#: Dash/Apps/AppReviews.qml:121
166168msgid "Send"
167169msgstr "Enviar"
168170
169−#: Dash/Apps/AppReviews.qml:136
171+#: Dash/Apps/AppReviews.qml:139
170172msgid "Comments:"
171173msgstr "Comentários:"
172174
@@ -184,7 +186,7 @@ msgstr "Lançamentos"
184186
185187#: Dash/DashMusic.qml:30
186188msgid "Top Charting"
187−msgstr ""
189+msgstr "Top gráficos"
188190
189191#: Dash/DashMusic.qml:91
190192msgid "Music"
@@ -192,7 +194,7 @@ msgstr "Músicas"
192194
193195#: Dash/DashVideos.qml:31
194196msgid "Popular Online"
195−msgstr ""
197+msgstr "Popular Online"
196198
197199#: Dash/DashVideos.qml:146
198200msgid "Videos"
@@ -210,7 +212,7 @@ msgstr "Estrelando:"
210212msgid "Author:"
211213msgstr "Autor:"
212214
213−#: Greeter/Lockscreen.qml:134
215+#: Greeter/Lockscreen.qml:142
214216msgid "Emergency Call"
215217msgstr "Chamada de emergência"
216218
@@ -247,11 +249,15 @@ msgstr "Falando..."
247249msgid "Search"
248250msgstr "Pesquisar"
249251
250−#: plugins/Unity/scope.cpp:317
252+#: plugins/Unity/scope.cpp:336
251253msgid "Sorry, there is nothing that matches your search."
252254msgstr "Desculpe, não há nada que corresponda à sua pesquisa."
253255
254−#: Shell.qml:429
256+#: plugins/Unity/showallfilteroption.cpp:41
257+msgid "All"
258+msgstr ""
259+
260+#: Shell.qml:453
255261#, qt-format
256262msgid "Please enter %1"
257263msgstr "Por favor, digite %1"
po/ro.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 07:53+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
1818"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 16750)\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
20+"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,48 +87,50 @@ msgstr ""
8787msgid "YouTube"
8888msgstr ""
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr ""
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr ""
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr ""
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr ""
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr ""
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr ""
117117
118−#: Components/EdgeDemo.qml:189
118+#: Components/EdgeDemo.qml:198
119119msgid "Left edge"
120120msgstr ""
121121
122−#: Components/EdgeDemo.qml:190
122+#: Components/EdgeDemo.qml:199
123123msgid "Swipe from the left to reveal the launcher for quick access to apps"
124124msgstr ""
125125
126−#: Components/EdgeDemo.qml:217
126+#: Components/EdgeDemo.qml:226
127127msgid "Well done"
128128msgstr ""
129129
130−#: Components/EdgeDemo.qml:218
131−msgid "You have now mastered the edge gestures and can start using the phone"
130+#: Components/EdgeDemo.qml:227
131+msgid ""
132+"You have now mastered the edge gestures and can start using the "
133+"phone<br><br>Tap anywhere to start"
132134msgstr ""
133135
134136#: Components/PageHeader.qml:298
@@ -149,23 +151,23 @@ msgid_plural "%1 reviews"
149151msgstr[0] ""
150152msgstr[1] ""
151153
152−#: Dash/Apps/AppPreview.qml:175
154+#: Dash/Apps/AppPreview.qml:178
153155msgid "Rate this"
154156msgstr ""
155157
156−#: Dash/Apps/AppReviews.qml:72
158+#: Dash/Apps/AppReviews.qml:74
157159msgid "Add a review"
158160msgstr ""
159161
160−#: Dash/Apps/AppReviews.qml:84
162+#: Dash/Apps/AppReviews.qml:86
161163msgid "Review"
162164msgstr ""
163165
164−#: Dash/Apps/AppReviews.qml:118
166+#: Dash/Apps/AppReviews.qml:121
165167msgid "Send"
166168msgstr ""
167169
168−#: Dash/Apps/AppReviews.qml:136
170+#: Dash/Apps/AppReviews.qml:139
169171msgid "Comments:"
170172msgstr ""
171173
@@ -209,7 +211,7 @@ msgstr ""
209211msgid "Author:"
210212msgstr ""
211213
212−#: Greeter/Lockscreen.qml:134
214+#: Greeter/Lockscreen.qml:142
213215msgid "Emergency Call"
214216msgstr ""
215217
@@ -246,12 +248,16 @@ msgstr "Vorbire..."
246248msgid "Search"
247249msgstr "Căutare"
248250
249−#: plugins/Unity/scope.cpp:317
251+#: plugins/Unity/scope.cpp:336
250252msgid "Sorry, there is nothing that matches your search."
251253msgstr ""
252254"Ne pare rău, nu este nimic care se potrivește căutării dumneavoastră."
253255
254−#: Shell.qml:429
256+#: plugins/Unity/showallfilteroption.cpp:41
257+msgid "All"
258+msgstr ""
259+
260+#: Shell.qml:453
255261#, qt-format
256262msgid "Please enter %1"
257263msgstr ""
po/ru.po+32−28
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-09-29 09:11+0000\n"
12−"Last-Translator: Устин <ustinershovskiy@yandex.ru>\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-01 05:55+0000\n"
12+"Last-Translator: Zonov Roman <Unknown>\n"
1313"Language-Team: Russian <ru@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-09-30 05:57+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
2020"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
@@ -69,7 +69,7 @@ msgstr "Evernote"
6969
7070#: Applications/applications.js:91
7171msgid "Map"
72−msgstr "Карта"
72+msgstr "Карты"
7373
7474#: Applications/applications.js:96
7575msgid "Pinterest"
@@ -87,56 +87,56 @@ msgstr "Википедия"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr "Пропустить обучение"
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr "Правый край"
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr ""
101101"Попробуйте переместить палец от правого края к левому для разблокировки "
102102"устройства"
103103
104−#: Components/EdgeDemo.qml:135
104+#: Components/EdgeDemo.qml:144
105105msgid "Top edge"
106106msgstr "Верхний край"
107107
108−#: Components/EdgeDemo.qml:136
108+#: Components/EdgeDemo.qml:145
109109msgid "Try swiping from the top edge to access the indicators"
110110msgstr ""
111111"Попробуйте переместить палец от верхнего края вниз для доступа к индикаторам"
112112
113−#: Components/EdgeDemo.qml:161
113+#: Components/EdgeDemo.qml:170
114114msgid "Close"
115115msgstr "Закрыть"
116116
117−#: Components/EdgeDemo.qml:162
117+#: Components/EdgeDemo.qml:171
118118msgid "Swipe up again to close the settings screen"
119119msgstr "Снова переместите палец вверх для закрытия экрана настроек"
120120
121−#: Components/EdgeDemo.qml:189
121+#: Components/EdgeDemo.qml:198
122122msgid "Left edge"
123123msgstr "Левый край"
124124
125−#: Components/EdgeDemo.qml:190
125+#: Components/EdgeDemo.qml:199
126126msgid "Swipe from the left to reveal the launcher for quick access to apps"
127127msgstr ""
128128"Переместите палец от левого края вправо для открытия лаунчера для быстрого "
129129"доступа к приложениям"
130130
131−#: Components/EdgeDemo.qml:217
131+#: Components/EdgeDemo.qml:226
132132msgid "Well done"
133133msgstr "Великолепно"
134134
135−#: Components/EdgeDemo.qml:218
136−msgid "You have now mastered the edge gestures and can start using the phone"
135+#: Components/EdgeDemo.qml:227
136+msgid ""
137+"You have now mastered the edge gestures and can start using the "
138+"phone<br><br>Tap anywhere to start"
137139msgstr ""
138−"Теперь вы научились экранным жестам и можете приступить к использованию "
139−"устройства"
140140
141141#: Components/PageHeader.qml:298
142142msgid "Recent searches"
@@ -155,23 +155,23 @@ msgid "%1 review"
155155msgid_plural "%1 reviews"
156156msgstr[0] "%1 отзыв"
157157
158−#: Dash/Apps/AppPreview.qml:175
158+#: Dash/Apps/AppPreview.qml:178
159159msgid "Rate this"
160160msgstr "Оцените это"
161161
162−#: Dash/Apps/AppReviews.qml:72
162+#: Dash/Apps/AppReviews.qml:74
163163msgid "Add a review"
164164msgstr "Добавьте отзыв"
165165
166−#: Dash/Apps/AppReviews.qml:84
166+#: Dash/Apps/AppReviews.qml:86
167167msgid "Review"
168168msgstr "Отзыв"
169169
170−#: Dash/Apps/AppReviews.qml:118
170+#: Dash/Apps/AppReviews.qml:121
171171msgid "Send"
172172msgstr "Отправить"
173173
174−#: Dash/Apps/AppReviews.qml:136
174+#: Dash/Apps/AppReviews.qml:139
175175msgid "Comments:"
176176msgstr "Комментарии:"
177177
@@ -209,13 +209,13 @@ msgstr "Режиссёр"
209209
210210#: Dash/Video/VideoPreview.qml:153
211211msgid "Starring:"
212−msgstr "В главных ролях"
212+msgstr "В главных ролях:"
213213
214214#: Dash/Video/VideoPreview.qml:176
215215msgid "Author:"
216216msgstr "Автор:"
217217
218−#: Greeter/Lockscreen.qml:134
218+#: Greeter/Lockscreen.qml:142
219219msgid "Emergency Call"
220220msgstr "Экстренный вызов"
221221
@@ -252,11 +252,15 @@ msgstr "Говорите..."
252252msgid "Search"
253253msgstr "Поиск"
254254
255−#: plugins/Unity/scope.cpp:317
255+#: plugins/Unity/scope.cpp:336
256256msgid "Sorry, there is nothing that matches your search."
257257msgstr "Извините, поиск не дал результатов."
258258
259−#: Shell.qml:429
259+#: plugins/Unity/showallfilteroption.cpp:41
260+msgid "All"
261+msgstr ""
262+
263+#: Shell.qml:453
260264#, qt-format
261265msgid "Please enter %1"
262266msgstr "Пожалуйста, введите %1"
po/si.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/sl.po+32−25
@@ -7,8 +7,8 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-09-28 09:53+0000\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-02 10:55+0000\n"
1212"Last-Translator: Damir Jerovšek <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
1414"MIME-Version: 1.0\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
1818"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2013-09-29 06:18+0000\n"
20−"X-Generator: Launchpad (build 16774)\n"
19+"X-Launchpad-Export-Date: 2013-10-03 06:08+0000\n"
20+"X-Generator: Launchpad (build 16791)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,52 +87,55 @@ msgstr "Wikipedija"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr "Preskoči uvod"
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr "Desni rob"
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr "Poskusite povleči od desnega roba za odklep telefona"
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr "Zgornji rob"
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr "Poskusite povleči od zgornjega roba za dostop do kazalnikov"
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr "Zapri"
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr "Povlecite ponovno navzgor za zaprtje zaslona z nastavitvami"
117117
118−#: Components/EdgeDemo.qml:189
118+#: Components/EdgeDemo.qml:198
119119msgid "Left edge"
120120msgstr "Levi rob"
121121
122−#: Components/EdgeDemo.qml:190
122+#: Components/EdgeDemo.qml:199
123123msgid "Swipe from the left to reveal the launcher for quick access to apps"
124124msgstr ""
125125"Poskusite povleči od leve za razkritje zaganjalnika za hiter dostop do "
126126"programov"
127127
128−#: Components/EdgeDemo.qml:217
128+#: Components/EdgeDemo.qml:226
129129msgid "Well done"
130130msgstr "Odlično"
131131
132−#: Components/EdgeDemo.qml:218
133−msgid "You have now mastered the edge gestures and can start using the phone"
132+#: Components/EdgeDemo.qml:227
133+msgid ""
134+"You have now mastered the edge gestures and can start using the "
135+"phone<br><br>Tap anywhere to start"
134136msgstr ""
135−"Zdaj, ko ste osvojili kretnje z robovi, lahko začnete uporabljati telefon"
137+"Sedaj ste osvojili poteze robov ter lahko začnete uporabljati "
138+"telefon<br><br>Tapnite kjerkoli na začetek"
136139
137140#: Components/PageHeader.qml:298
138141msgid "Recent searches"
@@ -154,23 +157,23 @@ msgstr[1] "%1 ocena"
154157msgstr[2] "%1 oceni"
155158msgstr[3] "%1 ocene"
156159
157−#: Dash/Apps/AppPreview.qml:175
160+#: Dash/Apps/AppPreview.qml:178
158161msgid "Rate this"
159162msgstr "Ocenite"
160163
161−#: Dash/Apps/AppReviews.qml:72
164+#: Dash/Apps/AppReviews.qml:74
162165msgid "Add a review"
163166msgstr "Dodaj oceno"
164167
165−#: Dash/Apps/AppReviews.qml:84
168+#: Dash/Apps/AppReviews.qml:86
166169msgid "Review"
167170msgstr "Ocena"
168171
169−#: Dash/Apps/AppReviews.qml:118
172+#: Dash/Apps/AppReviews.qml:121
170173msgid "Send"
171174msgstr "Pošlji"
172175
173−#: Dash/Apps/AppReviews.qml:136
176+#: Dash/Apps/AppReviews.qml:139
174177msgid "Comments:"
175178msgstr "Opombe:"
176179
@@ -214,7 +217,7 @@ msgstr "Igrajo:"
214217msgid "Author:"
215218msgstr "Avtor:"
216219
217−#: Greeter/Lockscreen.qml:134
220+#: Greeter/Lockscreen.qml:142
218221msgid "Emergency Call"
219222msgstr "Klic v sili"
220223
@@ -251,11 +254,15 @@ msgstr "Govorjenje ..."
251254msgid "Search"
252255msgstr "Iskanje"
253256
254−#: plugins/Unity/scope.cpp:317
257+#: plugins/Unity/scope.cpp:336
255258msgid "Sorry, there is nothing that matches your search."
256259msgstr "Nič se ne ujema z vašim iskalnim nizom."
257260
258−#: Shell.qml:429
261+#: plugins/Unity/showallfilteroption.cpp:41
262+msgid "All"
263+msgstr "Vse"
264+
265+#: Shell.qml:453
259266#, qt-format
260267msgid "Please enter %1"
261268msgstr "Vnesite %1"
po/sr.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 09:19+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Serbian <sr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
20−"X-Generator: Launchpad (build 16750)\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
20+"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
2323msgid "Phone"
@@ -87,48 +87,50 @@ msgstr ""
8787msgid "YouTube"
8888msgstr ""
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr ""
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr ""
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr ""
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr ""
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109
110−#: Components/EdgeDemo.qml:161
110+#: Components/EdgeDemo.qml:170
111111msgid "Close"
112112msgstr ""
113113
114−#: Components/EdgeDemo.qml:162
114+#: Components/EdgeDemo.qml:171
115115msgid "Swipe up again to close the settings screen"
116116msgstr ""
117117
118−#: Components/EdgeDemo.qml:189
118+#: Components/EdgeDemo.qml:198
119119msgid "Left edge"
120120msgstr ""
121121
122−#: Components/EdgeDemo.qml:190
122+#: Components/EdgeDemo.qml:199
123123msgid "Swipe from the left to reveal the launcher for quick access to apps"
124124msgstr ""
125125
126−#: Components/EdgeDemo.qml:217
126+#: Components/EdgeDemo.qml:226
127127msgid "Well done"
128128msgstr ""
129129
130−#: Components/EdgeDemo.qml:218
131−msgid "You have now mastered the edge gestures and can start using the phone"
130+#: Components/EdgeDemo.qml:227
131+msgid ""
132+"You have now mastered the edge gestures and can start using the "
133+"phone<br><br>Tap anywhere to start"
132134msgstr ""
133135
134136#: Components/PageHeader.qml:298
@@ -149,23 +151,23 @@ msgid_plural "%1 reviews"
149151msgstr[0] ""
150152msgstr[1] ""
151153
152−#: Dash/Apps/AppPreview.qml:175
154+#: Dash/Apps/AppPreview.qml:178
153155msgid "Rate this"
154156msgstr ""
155157
156−#: Dash/Apps/AppReviews.qml:72
158+#: Dash/Apps/AppReviews.qml:74
157159msgid "Add a review"
158160msgstr ""
159161
160−#: Dash/Apps/AppReviews.qml:84
162+#: Dash/Apps/AppReviews.qml:86
161163msgid "Review"
162164msgstr ""
163165
164−#: Dash/Apps/AppReviews.qml:118
166+#: Dash/Apps/AppReviews.qml:121
165167msgid "Send"
166168msgstr ""
167169
168−#: Dash/Apps/AppReviews.qml:136
170+#: Dash/Apps/AppReviews.qml:139
169171msgid "Comments:"
170172msgstr ""
171173
@@ -209,7 +211,7 @@ msgstr ""
209211msgid "Author:"
210212msgstr ""
211213
212−#: Greeter/Lockscreen.qml:134
214+#: Greeter/Lockscreen.qml:142
213215msgid "Emergency Call"
214216msgstr ""
215217
@@ -246,11 +248,15 @@ msgstr "Говор..."
246248msgid "Search"
247249msgstr "Претрага"
248250
249−#: plugins/Unity/scope.cpp:317
251+#: plugins/Unity/scope.cpp:336
250252msgid "Sorry, there is nothing that matches your search."
251253msgstr "Нажалост, претрага није наишла на икакво подударање."
252254
253−#: Shell.qml:429
255+#: plugins/Unity/showallfilteroption.cpp:41
256+msgid "All"
257+msgstr ""
258+
259+#: Shell.qml:453
254260#, qt-format
255261msgid "Please enter %1"
256262msgstr ""
po/sv.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Swedish <sv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/te.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 09:57+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/tr.po+58−51
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11−"PO-Revision-Date: 2013-06-27 10:08+0000\n"
12−"Last-Translator: Adar Cem EREN <adarcemeren34@gmail.com>\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
11+"PO-Revision-Date: 2013-10-01 13:21+0000\n"
12+"Last-Translator: Volkan Gezer <Unknown>\n"
1313"Language-Team: Turkish <tr@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -64,7 +64,7 @@ msgstr "Ortam Oynatıcı"
6464
6565#: Applications/applications.js:86
6666msgid "Evernote"
67−msgstr ""
67+msgstr "Evernote"
6868
6969#: Applications/applications.js:91
7070msgid "Map"
@@ -72,11 +72,11 @@ msgstr "Harita"
7272
7373#: Applications/applications.js:96
7474msgid "Pinterest"
75−msgstr ""
75+msgstr "Pinterest"
7676
7777#: Applications/applications.js:101
7878msgid "SoundCloud"
79−msgstr ""
79+msgstr "SoundCloud"
8080
8181#: Applications/applications.js:106
8282msgid "Wikipedia"
@@ -86,48 +86,51 @@ msgstr "Vikipedi"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
91−msgstr ""
91+msgstr "İntro'yu geç"
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
95−msgstr ""
95+msgstr "Sağ kenar"
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
99−msgstr ""
99+msgstr "Kilidi açmak için sağ kenara sürüklemeyi deneyin"
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103−msgstr ""
103+msgstr "Üst kenar"
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107−msgstr ""
107+msgstr "Bildiricilere erişmek için üst kenarı sürüklemeyi deneyin"
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111−msgstr ""
111+msgstr "Kapat"
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115−msgstr ""
115+msgstr "Ayarlar ekranını kapatmak için tekrar yukarı kaydırın"
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119−msgstr ""
119+msgstr "Sol kenar"
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124+"Uygulamalara hızlı erişim çalıştırıcısını açmak için sol kenarı sürükleyin"
124125
125−#: Components/EdgeDemo.qml:217
126+#: Components/EdgeDemo.qml:226
126127msgid "Well done"
127−msgstr ""
128+msgstr "Tebrikler"
128129
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
130+#: Components/EdgeDemo.qml:227
131+msgid ""
132+"You have now mastered the edge gestures and can start using the "
133+"phone<br><br>Tap anywhere to start"
131134msgstr ""
132135
133136#: Components/PageHeader.qml:298
@@ -138,35 +141,35 @@ msgstr "Son Arananlar"
138141#: Dash/Apps/AppInfo.qml:73
139142#, qt-format
140143msgid "(%1)"
141−msgstr ""
144+msgstr "(%1)"
142145
143146#. TRANSLATORS: Number of persons who wrote reviews for this app
144147#: Dash/Apps/AppInfo.qml:85
145148#, qt-format
146149msgid "%1 review"
147150msgid_plural "%1 reviews"
148−msgstr[0] ""
149−msgstr[1] ""
151+msgstr[0] "%1 inceleme"
152+msgstr[1] "%1 inceleme"
150153
151−#: Dash/Apps/AppPreview.qml:175
154+#: Dash/Apps/AppPreview.qml:178
152155msgid "Rate this"
153−msgstr ""
156+msgstr "Oyla"
154157
155−#: Dash/Apps/AppReviews.qml:72
158+#: Dash/Apps/AppReviews.qml:74
156159msgid "Add a review"
157−msgstr ""
160+msgstr "Bir inceleme ekle"
158161
159−#: Dash/Apps/AppReviews.qml:84
162+#: Dash/Apps/AppReviews.qml:86
160163msgid "Review"
161−msgstr ""
164+msgstr "İnceleme"
162165
163−#: Dash/Apps/AppReviews.qml:118
166+#: Dash/Apps/AppReviews.qml:121
164167msgid "Send"
165−msgstr ""
168+msgstr "Gönder"
166169
167−#: Dash/Apps/AppReviews.qml:136
170+#: Dash/Apps/AppReviews.qml:139
168171msgid "Comments:"
169−msgstr ""
172+msgstr "Yorumlar:"
170173
171174#: Dash/DashMusic.qml:27 Dash/DashVideos.qml:28
172175msgid "Featured"
@@ -178,11 +181,11 @@ msgstr "En Son"
178181
179182#: Dash/DashMusic.qml:29 Dash/DashVideos.qml:30
180183msgid "New Releases"
181−msgstr ""
184+msgstr "Yeni Sürümler"
182185
183186#: Dash/DashMusic.qml:30
184187msgid "Top Charting"
185−msgstr ""
188+msgstr "En Çok Beğenilenler"
186189
187190#: Dash/DashMusic.qml:91
188191msgid "Music"
@@ -202,20 +205,20 @@ msgstr "Yönetmen"
202205
203206#: Dash/Video/VideoPreview.qml:153
204207msgid "Starring:"
205−msgstr ""
208+msgstr "Başroller:"
206209
207210#: Dash/Video/VideoPreview.qml:176
208211msgid "Author:"
209212msgstr "Yazar:"
210213
211−#: Greeter/Lockscreen.qml:134
214+#: Greeter/Lockscreen.qml:142
212215msgid "Emergency Call"
213−msgstr ""
216+msgstr "Acil Arama"
214217
215218#: Greeter/PassphraseLockscreen.qml:59
216219#, qt-format
217220msgid "Hello %1"
218−msgstr ""
221+msgstr "Merhaba %1"
219222
220223#: Greeter/PassphraseLockscreen.qml:59
221224msgid "Hello"
@@ -245,11 +248,15 @@ msgstr "Konuşuyor..."
245248msgid "Search"
246249msgstr "Ara"
247250
248−#: plugins/Unity/scope.cpp:317
251+#: plugins/Unity/scope.cpp:336
249252msgid "Sorry, there is nothing that matches your search."
250253msgstr "Üzgünüz, aramanızla eşleşen hiçbir şey yok."
251254
252−#: Shell.qml:429
255+#: plugins/Unity/showallfilteroption.cpp:41
256+msgid "All"
257+msgstr ""
258+
259+#: Shell.qml:453
253260#, qt-format
254261msgid "Please enter %1"
255−msgstr ""
262+msgstr "Lütfen %1 girin"
po/ug.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 11:02+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Uyghur <ug@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr "ۋىكىپېدىيە"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr "ئاپتور:"
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "سۆزلەۋاتىسىز…"
245247msgid "Search"
246248msgstr "ئىزدە"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "كەچۈرۈڭ، ئىزدىگىنىڭىزگە ماس نەتىجە تېپىلمىدى."
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/uk.po+28−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-09-28 07:54+0000\n"
1212"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
1313"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,7 +16,7 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-09-29 06:18+0000\n"
19+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
2020"X-Generator: Launchpad (build 16774)\n"
2121
2222#: Applications/applications.js:23
@@ -87,53 +87,54 @@ msgstr "Вікіпедія"
8787msgid "YouTube"
8888msgstr "YouTube"
8989
90−#: Components/EdgeDemoOverlay.qml:145
90+#: Components/EdgeDemoOverlay.qml:150
9191msgid "Skip intro"
9292msgstr "Пропустити вступ"
9393
94−#: Components/EdgeDemo.qml:98
94+#: Components/EdgeDemo.qml:112
9595msgid "Right edge"
9696msgstr "Правий край"
9797
98−#: Components/EdgeDemo.qml:99
98+#: Components/EdgeDemo.qml:113
9999msgid "Try swiping from the right edge to unlock the phone"
100100msgstr "Спробуйте провести пальцем від правою краю, щоб розблокувати телефон"
101101
102−#: Components/EdgeDemo.qml:135
102+#: Components/EdgeDemo.qml:144
103103msgid "Top edge"
104104msgstr "Верхній край"
105105
106−#: Components/EdgeDemo.qml:136
106+#: Components/EdgeDemo.qml:145
107107msgid "Try swiping from the top edge to access the indicators"
108108msgstr ""
109109"Спробуйте провести пальцем від верхнього краю, щоб розблокувати телефон"
110110
111−#: Components/EdgeDemo.qml:161
111+#: Components/EdgeDemo.qml:170
112112msgid "Close"
113113msgstr "Закрити"
114114
115−#: Components/EdgeDemo.qml:162
115+#: Components/EdgeDemo.qml:171
116116msgid "Swipe up again to close the settings screen"
117117msgstr "Проведіть пальцем ще раз, щоб закрити вікно параметрів"
118118
119−#: Components/EdgeDemo.qml:189
119+#: Components/EdgeDemo.qml:198
120120msgid "Left edge"
121121msgstr "Лівий край"
122122
123−#: Components/EdgeDemo.qml:190
123+#: Components/EdgeDemo.qml:199
124124msgid "Swipe from the left to reveal the launcher for quick access to apps"
125125msgstr ""
126126"Проведіть пальцем від лівого краю, щоб відкрити панель запуску для "
127127"пришвидшення доступу до програм"
128128
129−#: Components/EdgeDemo.qml:217
129+#: Components/EdgeDemo.qml:226
130130msgid "Well done"
131131msgstr "Добре"
132132
133−#: Components/EdgeDemo.qml:218
134−msgid "You have now mastered the edge gestures and can start using the phone"
133+#: Components/EdgeDemo.qml:227
134+msgid ""
135+"You have now mastered the edge gestures and can start using the "
136+"phone<br><br>Tap anywhere to start"
135137msgstr ""
136−"Вами налаштовано жести від країв, ви можете почати користуватися телефоном"
137138
138139#: Components/PageHeader.qml:298
139140msgid "Recent searches"
@@ -154,23 +155,23 @@ msgstr[0] "%1 рецензія"
154155msgstr[1] "%1 рецензії"
155156msgstr[2] "%1 рецензій"
156157
157−#: Dash/Apps/AppPreview.qml:175
158+#: Dash/Apps/AppPreview.qml:178
158159msgid "Rate this"
159160msgstr "Оцінити"
160161
161−#: Dash/Apps/AppReviews.qml:72
162+#: Dash/Apps/AppReviews.qml:74
162163msgid "Add a review"
163164msgstr "Додати рецензію"
164165
165−#: Dash/Apps/AppReviews.qml:84
166+#: Dash/Apps/AppReviews.qml:86
166167msgid "Review"
167168msgstr "Рецензія"
168169
169−#: Dash/Apps/AppReviews.qml:118
170+#: Dash/Apps/AppReviews.qml:121
170171msgid "Send"
171172msgstr "Надіслати"
172173
173−#: Dash/Apps/AppReviews.qml:136
174+#: Dash/Apps/AppReviews.qml:139
174175msgid "Comments:"
175176msgstr "Коментарі:"
176177
@@ -214,7 +215,7 @@ msgstr "Актори:"
214215msgid "Author:"
215216msgstr "Автор:"
216217
217−#: Greeter/Lockscreen.qml:134
218+#: Greeter/Lockscreen.qml:142
218219msgid "Emergency Call"
219220msgstr "Терміновий виклик"
220221
@@ -251,11 +252,15 @@ msgstr "Мовлення…"
251252msgid "Search"
252253msgstr "Пошук"
253254
254−#: plugins/Unity/scope.cpp:317
255+#: plugins/Unity/scope.cpp:336
255256msgid "Sorry, there is nothing that matches your search."
256257msgstr "Вибачте, для вказаних вами ключових слів нічого не знайдено."
257258
258−#: Shell.qml:429
259+#: plugins/Unity/showallfilteroption.cpp:41
260+msgid "All"
261+msgstr ""
262+
263+#: Shell.qml:453
259264#, qt-format
260265msgid "Please enter %1"
261266msgstr "Будь ласка, введіть %1"
po/unity8.pot+27−21
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
11+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/xh.po+28−22
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-09-28 13:20+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Xhosa <xh@li.org>\n"
@@ -15,7 +15,7 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-09-29 06:18+0000\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
1919"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr ""
245247msgid "Search"
246248msgstr ""
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr ""
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/zh_CN.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 10:33+0000\n"
1212"Last-Translator: Anthony Wong <anthony.wong@canonical.com>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr "维基百科"
8686msgid "YouTube"
8787msgstr "YouTube"
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr "主演:"
208210msgid "Author:"
209211msgstr "作者:"
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "讲话中..."
245247msgid "Search"
246248msgstr "搜索"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "对不起,没有找到您想要的结果。"
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
po/zh_TW.po+29−23
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2013-08-27 13:36-0400\n"
10+"POT-Creation-Date: 2013-10-01 09:43+0200\n"
1111"PO-Revision-Date: 2013-06-27 10:24+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-30 05:37+0000\n"
19−"X-Generator: Launchpad (build 16750)\n"
18+"X-Launchpad-Export-Date: 2013-10-02 06:03+0000\n"
19+"X-Generator: Launchpad (build 16774)\n"
2020
2121#: Applications/applications.js:23
2222msgid "Phone"
@@ -86,48 +86,50 @@ msgstr ""
8686msgid "YouTube"
8787msgstr ""
8888
89−#: Components/EdgeDemoOverlay.qml:145
89+#: Components/EdgeDemoOverlay.qml:150
9090msgid "Skip intro"
9191msgstr ""
9292
93−#: Components/EdgeDemo.qml:98
93+#: Components/EdgeDemo.qml:112
9494msgid "Right edge"
9595msgstr ""
9696
97−#: Components/EdgeDemo.qml:99
97+#: Components/EdgeDemo.qml:113
9898msgid "Try swiping from the right edge to unlock the phone"
9999msgstr ""
100100
101−#: Components/EdgeDemo.qml:135
101+#: Components/EdgeDemo.qml:144
102102msgid "Top edge"
103103msgstr ""
104104
105−#: Components/EdgeDemo.qml:136
105+#: Components/EdgeDemo.qml:145
106106msgid "Try swiping from the top edge to access the indicators"
107107msgstr ""
108108
109−#: Components/EdgeDemo.qml:161
109+#: Components/EdgeDemo.qml:170
110110msgid "Close"
111111msgstr ""
112112
113−#: Components/EdgeDemo.qml:162
113+#: Components/EdgeDemo.qml:171
114114msgid "Swipe up again to close the settings screen"
115115msgstr ""
116116
117−#: Components/EdgeDemo.qml:189
117+#: Components/EdgeDemo.qml:198
118118msgid "Left edge"
119119msgstr ""
120120
121−#: Components/EdgeDemo.qml:190
121+#: Components/EdgeDemo.qml:199
122122msgid "Swipe from the left to reveal the launcher for quick access to apps"
123123msgstr ""
124124
125−#: Components/EdgeDemo.qml:217
125+#: Components/EdgeDemo.qml:226
126126msgid "Well done"
127127msgstr ""
128128
129−#: Components/EdgeDemo.qml:218
130−msgid "You have now mastered the edge gestures and can start using the phone"
129+#: Components/EdgeDemo.qml:227
130+msgid ""
131+"You have now mastered the edge gestures and can start using the "
132+"phone<br><br>Tap anywhere to start"
131133msgstr ""
132134
133135#: Components/PageHeader.qml:298
@@ -148,23 +150,23 @@ msgid_plural "%1 reviews"
148150msgstr[0] ""
149151msgstr[1] ""
150152
151−#: Dash/Apps/AppPreview.qml:175
153+#: Dash/Apps/AppPreview.qml:178
152154msgid "Rate this"
153155msgstr ""
154156
155−#: Dash/Apps/AppReviews.qml:72
157+#: Dash/Apps/AppReviews.qml:74
156158msgid "Add a review"
157159msgstr ""
158160
159−#: Dash/Apps/AppReviews.qml:84
161+#: Dash/Apps/AppReviews.qml:86
160162msgid "Review"
161163msgstr ""
162164
163−#: Dash/Apps/AppReviews.qml:118
165+#: Dash/Apps/AppReviews.qml:121
164166msgid "Send"
165167msgstr ""
166168
167−#: Dash/Apps/AppReviews.qml:136
169+#: Dash/Apps/AppReviews.qml:139
168170msgid "Comments:"
169171msgstr ""
170172
@@ -208,7 +210,7 @@ msgstr ""
208210msgid "Author:"
209211msgstr ""
210212
211−#: Greeter/Lockscreen.qml:134
213+#: Greeter/Lockscreen.qml:142
212214msgid "Emergency Call"
213215msgstr ""
214216
@@ -245,11 +247,15 @@ msgstr "說話中..."
245247msgid "Search"
246248msgstr "搜尋"
247249
248−#: plugins/Unity/scope.cpp:317
250+#: plugins/Unity/scope.cpp:336
249251msgid "Sorry, there is nothing that matches your search."
250252msgstr "很抱歉,找不到符合您想搜尋的結果。"
251253
252−#: Shell.qml:429
254+#: plugins/Unity/showallfilteroption.cpp:41
255+msgid "All"
256+msgstr ""
257+
258+#: Shell.qml:453
253259#, qt-format
254260msgid "Please enter %1"
255261msgstr ""
tests/autopilot/unity8/indicators_client/emulators/main_window.py+1−1
@@ -24,4 +24,4 @@ class MainWindow(object):
2424
2525 def get_battery_menu(self):
2626 """Get the battery menu from the list"""
27− return self.app.select_single("BasicMenuItem", objectName="indicator-battery");
27+ return self.app.select_single("BaseMenuItem", objectName="indicator-battery");
tests/autopilot/unity8/shell/__init__.py+14
@@ -19,6 +19,7 @@
1919
2020"""unity shell autopilot tests and emulators - sub level package."""
2121
22+from time import sleep
2223from functools import wraps
2324import logging
2425
@@ -46,3 +47,16 @@ def disable_qml_mocking(fn):
4647 tests_self._qml_mock_enabled = False
4748 return fn(*args, **kwargs)
4849 return wrapper
50+
51+class DragMixin(object):
52+ def _drag(self, x1, y1, x2, y2):
53+ cur_x = x1
54+ cur_y = y1
55+ dx = 1.0 * (x2 - x1) / 100
56+ dy = 1.0 * (y2 - y1) / 100
57+ for i in range(0, 100):
58+ self.touch._finger_move(int(cur_x), int(cur_y))
59+ sleep(0.002)
60+ cur_x += dx
61+ cur_y += dy
62+ self.touch._finger_move(int(x2), int(y2))
tests/autopilot/unity8/shell/emulators/dash.py+15−6
@@ -18,17 +18,22 @@
1818#
1919
2020from unity8.shell.emulators import UnityEmulatorBase
21−
21+from time import sleep
2222
2323class Dash(UnityEmulatorBase):
2424
2525 """An emulator that understands the Dash."""
2626
2727 def get_home_applications_grid(self):
28− return self.get_scope('home').select_single(
29− "GenericFilterGrid",
30− objectName="applications.scope"
31− )
28+ for i in range(1,10):
29+ get_grid = self.get_scope('home').select_single(
30+ "GenericFilterGrid",
31+ objectName="applications.scope"
32+ )
33+ if get_grid != None:
34+ break
35+ sleep(1)
36+ return get_grid
3237
3338 def get_application_icon(self, text):
3439 """Returns a 'Tile' icon that has the text 'text' from the application
@@ -40,7 +45,11 @@ class Dash(UnityEmulatorBase):
4045
4146 """
4247 app_grid = self.get_home_applications_grid()
43− resp_grid = app_grid.select_single('ResponsiveGridView')
48+ for i in range(1,10):
49+ resp_grid = app_grid.select_single('ResponsiveGridView')
50+ if resp_grid != None:
51+ break
52+ sleep(1)
4453 return resp_grid.select_single('Tile', text=text)
4554
4655 def get_scope(self, scope_name='home'):
tests/autopilot/unity8/shell/emulators/hud.py+8−9
@@ -21,36 +21,35 @@ from collections import namedtuple
2121
2222from unity8 import get_grid_size
2323from unity8.shell.emulators import UnityEmulatorBase
24+from unity8.shell import DragMixin
2425from autopilot.input import Touch
2526
26−
2727SwipeCoords = namedtuple('SwipeCoords', 'start_x end_x start_y end_y')
2828
29−
30−class Hud(UnityEmulatorBase):
29+class Hud(UnityEmulatorBase, DragMixin):
3130
3231 """An emulator that understands the Hud."""
3332
3433 def show(self):
3534 """Swipes open the Hud."""
36− touch = Touch.create()
35+ self.touch = Touch.create()
3736
3837 window = self.get_root_instance().select_single('QQuickView')
3938 hud_show_button = window.select_single("HudButton")
4039
4140 swipe_coords = self.get_button_swipe_coords(window, hud_show_button)
4241
43− touch.press(swipe_coords.start_x, swipe_coords.start_y)
44− touch._finger_move(swipe_coords.end_x, swipe_coords.end_y)
42+ self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
43+ self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.end_y)
4544 try:
4645 hud_show_button.opacity.wait_for(1.0)
47− touch.release()
46+ self.touch.release()
4847 self.shown.wait_for(True)
4948 except AssertionError:
5049 raise
5150 finally:
52− if touch._touch_finger is not None:
53− touch.release()
51+ if self.touch._touch_finger is not None:
52+ self.touch.release()
5453
5554 def dismiss(self):
5655 """Closes the open Hud."""
tests/autopilot/unity8/shell/emulators/main_window.py+3
@@ -58,6 +58,9 @@ class MainWindow(object):
5858 def get_hud_show_button(self):
5959 return self.app.select_single("HudButton")
6060
61+ def get_hud_edge_drag_area(self):
62+ return self.app.select_single(objectName="hudDragArea")
63+
6164 def get_dash(self):
6265 return self.app.select_single(Dash)
6366
tests/autopilot/unity8/shell/tests/__init__.py+2−3
@@ -103,9 +103,8 @@ class UnityTestCase(AutopilotTestCase):
103103 width = getattr(self, 'app_width', 0)
104104 height = getattr(self, 'app_height', 0)
105105 scale_divisor = 1
106− if width == 0 and width == 0:
107− self.unity_geometry_args = ['-fullscreen']
108− else:
106+ self.unity_geometry_args = []
107+ if width > 0 and height > 0:
109108 if self._geo_larger_than_display(width, height):
110109 scale_divisor = self._get_scaled_down_geo(width, height)
111110 width = width / scale_divisor
tests/autopilot/unity8/shell/tests/test_hud.py+43−9
@@ -19,29 +19,30 @@
1919
2020from __future__ import absolute_import
2121
22−from unity8.shell import with_lightdm_mock
22+from unity8.shell import with_lightdm_mock, DragMixin
2323from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
2424
2525from testtools.matchers import Equals
2626from autopilot.matchers import Eventually
2727
28−
29−class TestHud(UnityTestCase):
28+class TestHud(UnityTestCase, DragMixin):
3029
3130 """Tests the Shell HUD."""
3231
3332 scenarios = _get_device_emulation_scenarios()
3433
3534 def test_show_hud_button_appears(self):
36− """Swiping up while an app is active must show the 'show hud' button.
35+ """Swiping up while an app is active must show the 'show hud' button, following some behaviours.
3736 The button must disappear not opening the HUD when releasing the
38− mouse again somewhere on the screen except on the button itself.
37+ mouse again somewhere on the screen except on the button itself following a timeout.
38+ The button must disappear when touching somewhere on the screen except the button itself.
3939
4040 """
4141 self.launch_unity()
4242 self.main_window.get_greeter().swipe()
4343 window = self.main_window.get_qml_view()
4444 hud_show_button = self.main_window.get_hud_show_button()
45+ edge_drag_area = self.main_window.get_hud_edge_drag_area()
4546 hud = self.main_window.get_hud()
4647
4748 self._launch_test_app_from_app_screen()
@@ -50,16 +51,33 @@ class TestHud(UnityTestCase):
5051 window,
5152 hud_show_button
5253 )
54+ initialBottomMargin = int(hud_show_button.bottomMargin)
55+
5356 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
5457 self.addCleanup(self._maybe_release_finger)
55− self.touch._finger_move(swipe_coords.end_x, swipe_coords.end_y + hud_show_button.height);
58+ self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.start_y - int(edge_drag_area.distanceThreshold) - 5)
59+ self.assertThat(hud_show_button.opacity, Eventually(Equals(0.5)))
60+ self.assertThat(hud_show_button.bottomMargin, Eventually(Equals(initialBottomMargin)))
61+ self._drag(swipe_coords.start_x, swipe_coords.start_y - int(edge_drag_area.distanceThreshold) - 5, swipe_coords.end_x, swipe_coords.start_y - int(edge_drag_area.distanceThreshold) - int(edge_drag_area.commitDistance) - 5)
5662 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
63+ self.assertThat(hud_show_button.bottomMargin, Eventually(Equals(0.0)))
5764 self.touch.release();
65+ self.assertThat(hud.shown, Equals(False))
5866 self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))
67+
68+ self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
69+ self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.end_y - int(hud_show_button.height))
70+ self.assertThat(hud.shown, Equals(False))
71+ self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
72+ self.touch.release()
73+ self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
74+ self.touch.tap(swipe_coords.end_x, swipe_coords.end_y - int(hud_show_button.height))
5975 self.assertThat(hud.shown, Equals(False))
76+ self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))
6077
6178 def test_show_hud_appears(self):
6279 """Releasing the touch on the 'show hud' button must display the hud.
80+ Test that the hud button stays on screen and tapping it opens the hud.
6381
6482 """
6583 self.launch_unity()
@@ -74,14 +92,28 @@ class TestHud(UnityTestCase):
7492 window,
7593 hud_show_button
7694 )
95+
7796 self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
7897 self.addCleanup(self._maybe_release_finger)
79− self.touch._finger_move(swipe_coords.end_x, swipe_coords.end_y)
80−
98+ self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.end_y)
99+ self.assertThat(hud.shown, Eventually(Equals(False)))
100+ self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
101+ self.touch.release()
102+ self.assertThat(hud.shown, Eventually(Equals(True)))
103+ self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))
104+ x, y = hud.get_close_button_coords()
105+ self.touch.tap(x, y)
81106 self.assertThat(hud.shown, Eventually(Equals(False)))
107+
108+ self.touch.press(swipe_coords.start_x, swipe_coords.start_y)
109+ self._drag(swipe_coords.start_x, swipe_coords.start_y, swipe_coords.start_x, swipe_coords.end_y - int(hud_show_button.height))
110+ self.assertThat(hud.shown, Equals(False))
82111 self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
83112 self.touch.release()
113+ self.assertThat(hud_show_button.opacity, Eventually(Equals(1.0)))
114+ self.touch.tap(swipe_coords.end_x, swipe_coords.end_y)
84115 self.assertThat(hud.shown, Eventually(Equals(True)))
116+ self.assertThat(hud_show_button.opacity, Eventually(Equals(0.0)))
85117
86118 def test_hide_hud_click(self):
87119 """Tapping the close button of the Hud must dismiss it."""
@@ -90,6 +122,7 @@ class TestHud(UnityTestCase):
90122 hud = self.main_window.get_hud()
91123
92124 self._launch_test_app_from_app_screen()
125+
93126 hud.show()
94127
95128 x, y = hud.get_close_button_coords()
@@ -103,10 +136,11 @@ class TestHud(UnityTestCase):
103136 """
104137 self.launch_unity()
105138 self.main_window.get_greeter().swipe()
106− hud = self.main_window.get_hud()
107139 window = self.main_window.get_qml_view()
140+ hud = self.main_window.get_hud()
108141
109142 self._launch_test_app_from_app_screen()
143+
110144 hud.show()
111145
112146 start_x, start_y = hud.get_close_button_coords()
tests/mocks/AccountsService/AccountsService.cpp+13−1
@@ -20,7 +20,8 @@
2020
2121AccountsService::AccountsService(QObject* parent)
2222 : QObject(parent),
23− m_backgroundFile(TOP_SRCDIR "/graphics/phone_background.jpg")
23+ m_backgroundFile(TOP_SRCDIR "/graphics/phone_background.jpg"),
24+ m_statsWelcomeScreen(true)
2425{
2526}
2627
@@ -54,3 +55,14 @@ void AccountsService::setBackgroundFile(const QString &backgroundFile)
5455 m_backgroundFile = backgroundFile;
5556 backgroundFileChanged();
5657}
58+
59+bool AccountsService::statsWelcomeScreen() const
60+{
61+ return m_statsWelcomeScreen;
62+}
63+
64+void AccountsService::setStatsWelcomeScreen(bool statsWelcomeScreen)
65+{
66+ m_statsWelcomeScreen = statsWelcomeScreen;
67+ statsWelcomeScreenChanged();
68+}
tests/mocks/AccountsService/AccountsService.h+8
@@ -39,6 +39,10 @@ class AccountsService: public QObject
3939 READ backgroundFile
4040 WRITE setBackgroundFile // only available in mock
4141 NOTIFY backgroundFileChanged)
42+ Q_PROPERTY (bool statsWelcomeScreen
43+ READ statsWelcomeScreen
44+ WRITE setStatsWelcomeScreen // only available in mock
45+ NOTIFY statsWelcomeScreenChanged)
4246
4347public:
4448 explicit AccountsService(QObject *parent = 0);
@@ -49,14 +53,18 @@ public:
4953 void setDemoEdges(bool demoEdges);
5054 QString backgroundFile() const;
5155 void setBackgroundFile(const QString &backgroundFile);
56+ bool statsWelcomeScreen() const;
57+ void setStatsWelcomeScreen(bool statsWelcomeScreen);
5258
5359Q_SIGNALS:
5460 void userChanged();
5561 void demoEdgesChanged();
5662 void backgroundFileChanged();
63+ void statsWelcomeScreenChanged();
5764
5865private:
5966 QString m_backgroundFile;
67+ bool m_statsWelcomeScreen;
6068};
6169
6270#endif
plugins/Unity/Indicators/Network/plugin.cpp → tests/mocks/QMenuModel/UnityMenuModel.qmlrenamed+9−14
@@ -1,5 +1,8 @@
11/*
2− * Copyright (C) 2012 Canonical, Ltd.
2+ * Copyright (C) 2013 Canonical, Ltd.
3+ *
4+ * Authors:
5+ * Mirco Müller <mirco.mueller@canonical.com>
36 *
47 * This program is free software; you can redistribute it and/or modify
58 * it under the terms of the GNU General Public License as published by
@@ -12,20 +15,12 @@
1215 *
1316 * You should have received a copy of the GNU General Public License
1417 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Author: Nick Dedekind <nick.dedekind@canonical.com>
1718 */
1819
19−// Qt
20−#include <QtQml/qqml.h>
21−
22−// self
23−#include "plugin.h"
24−
25−// local
26−#include "networkagent.h"
20+import QtQuick 2.0
2721
28−void IndicatorsNetworkPlugin::registerTypes(const char *uri)
29−{
30− qmlRegisterType<NetworkAgent>(uri, 0, 1, "NetworkAgent");
22+QtObject {
23+ property variant busName
24+ property variant actions
25+ property variant menuObjectPath
3126}
tests/mocks/QMenuModel/qmldir+1
@@ -1,2 +1,3 @@
11module QMenuModel
22QDBusActionGroup 0.1 QDBusActionGroup.qml
3+UnityMenuModel 0.1 UnityMenuModel.qml
tests/mocks/Unity/Indicators/IndicatorsModel.qml+5−15
@@ -28,45 +28,35 @@ ListModel {
2828 // which throws off the filter for non-visible indicators.
2929 Component.onCompleted: {
3030 append({ "identifier": "indicator-fake1",
31− "priority": 0,
32− "title": "Menu1",
33− "description": "",
31+ "position": 0,
3432 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget1.qml",
3533 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page1.qml",
3634 "indicatorProperties": ""
3735 });
3836
3937 append({ "identifier": "indicator-fake2",
40− "priority": 1,
41− "title": "Menu2",
42− "description": "",
38+ "position": 1,
4339 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget2.qml",
4440 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page2.qml",
4541 "indicatorProperties": ""
4642 });
4743
4844 append({ "identifier": "indicator-fake3",
49− "priority": 2,
50− "title": "Menu3",
51− "description": "",
45+ "position": 2,
5246 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget3.qml",
5347 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page3.qml",
5448 "indicatorProperties": ""
5549 });
5650
5751 append({ "identifier": "indicator-fake4",
58− "priority": 3,
59− "title": "Menu4",
60− "description": "",
52+ "position": 3,
6153 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget4.qml",
6254 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page4.qml",
6355 "indicatorProperties": ""
6456 });
6557
6658 append({ "identifier": "indicator-fake5",
67− "priority": 4,
68− "title": "Menu5",
69− "description": "",
59+ "position": 4,
7060 "widgetSource": "qrc:/tests/indciators/qml/fake_menu_widget5.qml",
7161 "pageSource": "qrc:/tests/indciators/qml/fake_menu_page5.qml",
7262 "indicatorProperties": ""
tests/mocks/Unity/fake_applications_scope.cpp+7
@@ -64,5 +64,12 @@ DeeModel* ApplicationsScope::createCategoriesModel()
6464 "grid",
6565 hints);
6666
67+ dee_model_append(category_model,
68+ "outdated",
69+ "Outdaded",
70+ "gtk-apply",
71+ "grid",
72+ hints);
73+
6774 return category_model;
6875}
tests/mocks/Unity/fake_categories.cpp+6
@@ -42,6 +42,7 @@ Categories::Categories(QObject* parent)
4242 m_roles[Categories::RoleIcon] = "icon";
4343 m_roles[Categories::RoleRenderer] = "renderer";
4444 m_roles[Categories::RoleContentType] = "contentType";
45+ m_roles[Categories::RoleRendererHint] = "rendererHint";
4546 m_roles[Categories::RoleHints] = "hints";
4647 m_roles[Categories::RoleResults] = "results";
4748 m_roles[Categories::RoleCount] = "count";
@@ -229,6 +230,11 @@ Categories::data(const QModelIndex& index, int role) const
229230 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
230231 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
231232 }
233+ case RoleRendererHint:
234+ {
235+ auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
236+ return hints.contains("renderer-hint") ? hints["renderer-hint"] : QVariant(QString());
237+ }
232238 case RoleHints:
233239 return DeeListModel::data(index, CategoryColumn::HINTS);
234240 case RoleResults:
tests/mocks/Unity/fake_categories.h+1
@@ -39,6 +39,7 @@ public:
3939 RoleIcon,
4040 RoleRenderer,
4141 RoleContentType,
42+ RoleRendererHint,
4243 RoleHints,
4344 RoleResults,
4445 RoleCount
tests/mocks/Unity/fake_preview.cpp−5
@@ -56,11 +56,6 @@ QString Preview::image() const
5656 return "";
5757}
5858
59−QString Preview::imageSourceUri() const
60−{
61− return "";
62−}
63−
6459void Preview::execute(const QString& actionId, const QHash<QString, QVariant>& hints)
6560{
6661 Q_UNUSED(actionId);
tests/mocks/Unity/fake_preview.h−2
@@ -36,7 +36,6 @@ class Q_DECL_EXPORT Preview : public QObject
3636 Q_PROPERTY(QVariant infoHints READ infoHints NOTIFY previewChanged)
3737 Q_PROPERTY(QVariantMap infoMap READ infoHintsHash NOTIFY previewChanged)
3838 Q_PROPERTY(QString image READ image NOTIFY previewChanged)
39− Q_PROPERTY(QString imageSourceUri READ imageSourceUri NOTIFY previewChanged)
4039
4140public:
4241 explicit Preview(QObject *parent = 0);
@@ -49,7 +48,6 @@ public:
4948 QVariant infoHints();
5049 QVariantMap infoHintsHash() const;
5150 QString image() const;
52− QString imageSourceUri() const;
5351
5452 Q_INVOKABLE void execute(const QString& actionId, const QHash<QString, QVariant>& hints);
5553
tests/mocks/Unity/fake_scope.cpp+13
@@ -30,6 +30,7 @@ static DeeModel* create_results_model(unsigned category_count, unsigned result_c
3030Scope::Scope(QObject* parent)
3131 : QObject(parent)
3232 , m_visible(false)
33+ , m_searching(false)
3334 , m_categories(new Categories(this))
3435 , m_results(new DeeListModel(this))
3536{
@@ -44,6 +45,7 @@ Scope::Scope(QString const& id, QString const& name, bool visible, QObject* pare
4445 , m_id(id)
4546 , m_name(name)
4647 , m_visible(visible)
48+ , m_searching(false)
4749 , m_categories(new Categories(this))
4850 , m_results(new DeeListModel(this))
4951{
@@ -85,6 +87,10 @@ bool Scope::connected() const {
8587 return true;
8688}
8789
90+bool Scope::searchInProgress() const {
91+ return m_searching;
92+}
93+
8894Categories* Scope::categories() const {
8995 return m_categories;
9096}
@@ -122,6 +128,13 @@ void Scope::setFormFactor(const QString &str) {
122128 }
123129}
124130
131+void Scope::setSearchInProgress(const bool inProg) {
132+ if (inProg != m_searching) {
133+ m_searching = inProg;
134+ Q_EMIT searchInProgressChanged();
135+ }
136+}
137+
125138void Scope::setNoResultsHint(const QString& str) {
126139 if (str != m_noResultsHint) {
127140 m_noResultsHint = str;
tests/mocks/Unity/fake_scope.h+5−1
@@ -37,6 +37,7 @@ class Scope : public QObject
3737 Q_PROPERTY(bool connected READ connected NOTIFY connectedChanged)
3838 Q_PROPERTY(Categories* categories READ categories NOTIFY categoriesChanged)
3939
40+ Q_PROPERTY(bool searchInProgress READ searchInProgress WRITE setSearchInProgress NOTIFY searchInProgressChanged)
4041 Q_PROPERTY(QString searchQuery READ searchQuery WRITE setSearchQuery NOTIFY searchQueryChanged)
4142 Q_PROPERTY(QString noResultsHint READ noResultsHint WRITE setNoResultsHint NOTIFY noResultsHintChanged)
4243 Q_PROPERTY(QString formFactor READ formFactor WRITE setFormFactor NOTIFY formFactorChanged)
@@ -54,6 +55,7 @@ public:
5455 bool visible() const;
5556 QString shortcut() const;
5657 bool connected() const;
58+ bool searchInProgress() const;
5759 Categories* categories() const;
5860 QString searchQuery() const;
5961 QString noResultsHint() const;
@@ -64,6 +66,7 @@ public:
6466 void setSearchQuery(const QString& search_query);
6567 void setNoResultsHint(const QString& hint);
6668 void setFormFactor(const QString& form_factor);
69+ void setSearchInProgress(const bool inProg);
6770
6871 Q_INVOKABLE void activate(const QVariant &uri, const QVariant &icon_hint, const QVariant &category,
6972 const QVariant &result_type, const QVariant &mimetype, const QVariant &title,
@@ -78,11 +81,11 @@ Q_SIGNALS:
7881 void iconHintChanged(const QString&);
7982 void descriptionChanged(const QString&);
8083 void searchHintChanged(const QString&);
84+ void searchInProgressChanged();
8185 void visibleChanged(bool);
8286 void shortcutChanged(const QString&);
8387 void connectedChanged(bool);
8488 void categoriesChanged();
85− void searchFinished(const QString&);
8689 void searchQueryChanged();
8790 void noResultsHintChanged();
8891 void formFactorChanged();
@@ -103,6 +106,7 @@ protected:
103106 QString m_noResultsHint;
104107 QString m_formFactor;
105108 bool m_visible;
109+ bool m_searching;
106110
107111 Categories* m_categories;
108112 DeeListModel* m_results;
tests/mocks/libusermetrics/UserMetrics.cpp+6−2
@@ -228,7 +228,7 @@ UserMetricsPrivate::~UserMetricsPrivate()
228228
229229void UserMetricsPrivate::setUsername(const QString &username)
230230{
231− if (m_username == username) {
231+ if (m_username == username && m_newData) {
232232 return;
233233 }
234234
@@ -407,7 +407,11 @@ UserMetrics::~UserMetrics()
407407
408408QString UserMetrics::label() const
409409{
410− return d_ptr->m_label;
410+ if (d_ptr->m_label.isEmpty()) {
411+ return "No data";
412+ } else {
413+ return d_ptr->m_label;
414+ }
411415}
412416
413417QString UserMetrics::username() const
tests/plugins/ListViewWithPageHeader/listviewwithpageheadertest.cpp+8
@@ -1816,6 +1816,14 @@ private Q_SLOTS:
18161816 verifyItem(0, -50., 800., false);
18171817 }
18181818
1819+ void positionAtBeginningEmpty()
1820+ {
1821+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 6));
1822+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 0);
1823+
1824+ lvwph->positionAtBeginning();
1825+ }
1826+
18191827private:
18201828 QQuickView *view;
18211829 ListViewWithPageHeader *lvwph;
tests/plugins/Unity/Indicators/indicatorsmodeltest.cpp−15
@@ -65,40 +65,25 @@ private Q_SLOTS:
6565 void testDataAndOrder()
6666 {
6767 // Priority order. (2, 1, 4, 3)
68− QVariantMap map;
69− QVariantMap map1; map1["title"] = "fake1";
70− QVariantMap map2; map2["title"] = "fake2";
71− QVariantMap map3; map3["title"] = "fake3";
72− QVariantMap map4; map4["title"] = "fake4";
73− map["indicator-fake1"] = map1;
74− map["indicator-fake2"] = map2;
75− map["indicator-fake3"] = map3;
76− map["indicator-fake4"] = map4;
77−
7868 IndicatorsModel model;
79− model.setIndicatorData(map);
8069 model.load();
8170
8271 // should be in order:
8372 // fake3, fake4, fake1, fake2
8473
8574 QCOMPARE(model.data(0, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake3"));
86− QCOMPARE(model.data(0, IndicatorsModelRole::Title).toString(), QString("fake3"));
8775 QCOMPARE(model.data(0, IndicatorsModelRole::Position).toInt(), 3);
8876 QCOMPARE(model.data(0, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake3"));
8977
9078 QCOMPARE(model.data(1, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake4"));
91− QCOMPARE(model.data(1, IndicatorsModelRole::Title).toString(), QString("fake4"));
9279 QCOMPARE(model.data(1, IndicatorsModelRole::Position).toInt(), 2);
9380 QCOMPARE(model.data(1, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake4"));
9481
9582 QCOMPARE(model.data(2, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake1"));
96− QCOMPARE(model.data(2, IndicatorsModelRole::Title).toString(), QString("fake1"));
9783 QCOMPARE(model.data(2, IndicatorsModelRole::Position).toInt(), 1);
9884 QCOMPARE(model.data(2, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake1"));
9985
10086 QCOMPARE(model.data(3, IndicatorsModelRole::Identifier).toString(), QString("indicator-fake2"));
101− QCOMPARE(model.data(3, IndicatorsModelRole::Title).toString(), QString("fake2"));
10287 QCOMPARE(model.data(3, IndicatorsModelRole::Position).toInt(), 0);
10388 QCOMPARE(model.data(3, IndicatorsModelRole::IndicatorProperties).toMap()["busName"].toString(), QString("com.canonical.indicator.fake2"));
10489 }
tests/plugins/Unity/Launcher/launcherbackendtest.cpp+3−3
@@ -37,7 +37,7 @@ private Q_SLOTS:
3737
3838 void testFileNames()
3939 {
40− LauncherBackend backend(false);
40+ LauncherBackend backend;
4141
4242 backend.setStoredApplications(QStringList() << "rel-icon" << "abs-icon" << "invalid");
4343 QCOMPARE(backend.storedApplications(), QStringList() << "rel-icon" << "abs-icon");
@@ -45,7 +45,7 @@ private Q_SLOTS:
4545
4646 void testPinning()
4747 {
48− LauncherBackend backend(false);
48+ LauncherBackend backend;
4949
5050 backend.setStoredApplications(QStringList() << "rel-icon" << "abs-icon");
5151 QCOMPARE(backend.isPinned("rel-icon"), false);
@@ -82,7 +82,7 @@ private Q_SLOTS:
8282 QFETCH(QString, appId);
8383 QFETCH(QString, expectedIcon);
8484
85− LauncherBackend backend(false);
85+ LauncherBackend backend;
8686 backend.setStoredApplications(QStringList() << appId);
8787
8888 QCOMPARE(backend.icon(appId), expectedIcon);
tests/plugins/Unity/resultstest.cpp+13−9
@@ -65,26 +65,30 @@ void ResultsTest::testAllColumns()
6565
6666void ResultsTest::testIconColumn_data()
6767{
68+ QTest::addColumn<QString>("uri");
6869 QTest::addColumn<QString>("giconString");
6970 QTest::addColumn<QString>("result");
7071
71− QTest::newRow("absolute path") << "/usr/share/icons/example.png" << "/usr/share/icons/example.png";
72− QTest::newRow("file uri") << "file:///usr/share/icons/example.png" << "file:///usr/share/icons/example.png";
73− QTest::newRow("http uri") << "http://images.ubuntu.com/example.jpg" << "http://images.ubuntu.com/example.jpg";
74− QTest::newRow("image uri") << "image://thumbnail/with/arguments?passed_to=ImageProvider" << "image://thumbnail/with/arguments?passed_to=ImageProvider";
75− QTest::newRow("themed icon") << "accessories-other" << "image://theme/accessories-other";
76− QTest::newRow("fileicon") << ". GFileIcon http://example.org/resource.gif" << "http://example.org/resource.gif";
77− QTest::newRow("themedicon") << ". GThemedIcon accessories-other accessories generic" << "image://theme/accessories-other,accessories,generic";
78− QTest::newRow("annotatedicon") << ". UnityProtocolAnnotatedIcon %7B'base-icon':%20%3C'.%20GThemedIcon%20accessories-other%20accessories%20generic'%3E%7D" << "image://theme/accessories-other,accessories,generic";
72+ QTest::newRow("unspecified") << "test:uri" << "" << "";
73+ QTest::newRow("absolute path") << "test:uri" << "/usr/share/icons/example.png" << "/usr/share/icons/example.png";
74+ QTest::newRow("file uri") << "test:uri" << "file:///usr/share/icons/example.png" << "file:///usr/share/icons/example.png";
75+ QTest::newRow("http uri") << "test:uri" << "http://images.ubuntu.com/example.jpg" << "http://images.ubuntu.com/example.jpg";
76+ QTest::newRow("image uri") << "test:uri" << "image://thumbnail/with/arguments?passed_to=ImageProvider" << "image://thumbnail/with/arguments?passed_to=ImageProvider";
77+ QTest::newRow("themed icon") << "test:uri" << "accessories-other" << "image://theme/accessories-other";
78+ QTest::newRow("fileicon") << "test:uri" << ". GFileIcon http://example.org/resource.gif" << "http://example.org/resource.gif";
79+ QTest::newRow("themedicon") << "test:uri" << ". GThemedIcon accessories-other accessories generic" << "image://theme/accessories-other,accessories,generic";
80+ QTest::newRow("annotatedicon") << "test:uri" << ". UnityProtocolAnnotatedIcon %7B'base-icon':%20%3C'.%20GThemedIcon%20accessories-other%20accessories%20generic'%3E%7D" << "image://theme/accessories-other,accessories,generic";
81+ QTest::newRow("thumbnailer icon") << "file:///usr/share/samples/video/foo.avi" << "" << "image://thumbnailer//usr/share/samples/video/foo.avi";
7982}
8083
8184void ResultsTest::testIconColumn()
8285{
86+ QFETCH(QString, uri);
8387 QFETCH(QString, giconString);
8488 QFETCH(QString, result);
8589 auto deeModel = createBackendModel();
8690 dee_model_append (deeModel,
87− "test:uri",
91+ uri.toLocal8Bit().constData(),
8892 giconString.toLocal8Bit().constData(),
8993 0,
9094 0,
tests/qmltests/CMakeLists.txt+1−1
@@ -63,7 +63,7 @@ add_qml_test(Greeter Infographics IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qml
6363add_qml_test(Hud Hud)
6464add_qml_test(Hud Result)
6565add_qml_test(Launcher Launcher IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
66−add_qml_test(Notifications Notifications IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_SOURCE_DIR}/tests/mocks)
66+add_qml_test(Notifications Notifications IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_SOURCE_DIR}/tests/mocks)
6767add_qml_test(Panel IndicatorRow)
6868add_qml_test(Panel Indicators IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
6969add_qml_test(Panel MenuContent IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS})
tests/qmltests/Components/tst_PageHeader.qml+28
@@ -19,12 +19,17 @@ import QtTest 1.0
1919import ".."
2020import "../../../Components"
2121import Ubuntu.Components 0.1
22+import Unity 0.1
2223import Unity.Test 0.1 as UT
2324
2425Item {
2526 width: units.gu(110)
2627 height: units.gu(30)
2728
29+ Scope {
30+ id: scopeMock
31+ }
32+
2833 UT.UnityTestCase {
2934 name: "PageHeaderTest"
3035 when: windowShown
@@ -132,6 +137,27 @@ Item {
132137 compare(pageHeader.searchHistory.count, 3)
133138 compare(pageHeader.searchHistory.get(0).query, "humppa4")
134139 }
140+
141+ function test_search_indicator() {
142+ var searchIndicator = findChild(pageHeader, "searchIndicator")
143+ var primaryImage = findChild(pageHeader, "primaryImage")
144+
145+ pageHeader.triggerSearch()
146+
147+ scopeMock.searchInProgress = false
148+ compare(searchIndicator.running, false, "Search indicator is running.")
149+ tryCompare(primaryImage, "visible", true)
150+
151+ scopeMock.searchInProgress = true
152+ compare(searchIndicator.running, true, "Search indicator isn't running.")
153+ tryCompare(primaryImage, "visible", false)
154+
155+ pageHeader.resetSearch()
156+ }
157+
158+ function cleanup() {
159+ scopeMock.searchInProgress = false
160+ }
135161 }
136162
137163 Column {
@@ -145,6 +171,8 @@ Item {
145171 right: parent.right
146172 }
147173
174+ scope: scopeMock
175+
148176 searchEntryEnabled: true
149177 text: "%^$%^%^&%^&%^$%GHR%"
150178 }
tests/qmltests/Greeter/tst_Infographics.qml+4−4
@@ -64,15 +64,15 @@ Item {
6464
6565 function test_set_username_data() {
6666 return [
67− { username: "has-password" },
68− { username: "no-password" },
69− { username: "empty-name" }
67+ { username: "has-password", label: "<b>19</b> minutes talk time" },
68+ { username: "two-factor", label: "No data" },
69+ { username: "", label: "No data" },
7070 ]
7171 }
7272
7373 function test_set_username(data) {
7474 infographicModel.username = data.username
75− tryCompare(label, "text", "<b>19</b> minutes talk time")
75+ tryCompare(label, "text", data.label)
7676 }
7777 }
7878
tests/qmltests/Greeter/tst_Phone.qml+15
@@ -19,6 +19,7 @@ import QtTest 1.0
1919import ".."
2020import "../../../Greeter"
2121import AccountsService 0.1
22+import LightDM 0.1 as LightDM
2223import Ubuntu.Components 0.1
2324import Unity.Test 0.1 as UT
2425
@@ -53,6 +54,10 @@ Item {
5354 name: "Greeter"
5455 when: windowShown
5556
57+ function cleanup() {
58+ AccountsService.statsWelcomeScreen = true
59+ }
60+
5661 function test_properties() {
5762 compare(greeter.multiUser, false)
5863 compare(greeter.narrowMode, true)
@@ -105,6 +110,16 @@ Item {
105110 tryCompareFunction(function() { return greeter.x;}, 0);
106111 }
107112
113+ function test_statsWelcomeScreen() {
114+ // Test logic in greeter that turns statsWelcomeScreen setting into infographic changes
115+ compare(AccountsService.statsWelcomeScreen, true)
116+ tryCompare(LightDM.Infographic, "username", "single")
117+ AccountsService.statsWelcomeScreen = false
118+ tryCompare(LightDM.Infographic, "username", "")
119+ AccountsService.statsWelcomeScreen = true
120+ tryCompare(LightDM.Infographic, "username", "single")
121+ }
122+
108123 function test_wallpaper_data() {
109124 return [
110125 {tag: "set", accounts: "../tests/data/unity/backgrounds/blue.png", expected: "blue.png"},
tests/qmltests/Panel/tst_IndicatorRow.qml+3−3
@@ -62,13 +62,13 @@ Item {
6262 function test_set_current_item() {
6363 init_test();
6464 indicatorRow.setCurrentItem(0);
65− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).title, "Menu1", "Incorrect item at position 0");
65+ compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake1", "Incorrect item at position 0");
6666
6767 indicatorRow.setCurrentItem(1);
68− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).title, "Menu2", "Incorrect item at position 1");
68+ compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake2", "Incorrect item at position 1");
6969
7070 indicatorRow.setCurrentItem(2);
71− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).title, "Menu3", "Incorrect item at position 2");
71+ compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake3", "Incorrect item at position 2");
7272 }
7373 }
7474
tests/qmltests/tst_Shell.qml+68
@@ -56,6 +56,18 @@ Item {
5656
5757 function initTestCase() {
5858 swipeAwayGreeter();
59+
60+ // Ensure DashHome is loaded before continuing
61+ var dashContentList = findChild(shell, "dashContentList");
62+ waitForRendering(dashContentList);
63+ var homeLoader = findChild(dashContentList, "home.scope loader");
64+ verify(homeLoader);
65+ tryCompareFunction(function() {return homeLoader.item !== undefined;}, true);
66+
67+ // FIXME: Desperate measure to ensure Jenkins has the scene graph fully loaded
68+ // before it calls the test functions (otherwise findChild calls will fail).
69+ // The code above just didn't solve it.
70+ wait(2000);
5971 }
6072
6173 function cleanup() {
@@ -233,6 +245,62 @@ Item {
233245 tryCompare(dash, "visible", false);
234246 }
235247
248+ /*
249+ Regression test for bug https://bugs.launchpad.net/touch-preview-images/+bug/1193419
250+
251+ When the user minimizes an application (left-edge swipe) he should always end up in the "Running Apps"
252+ category of the "Applications" scope view.
253+
254+ Steps:
255+ - go to apps lens
256+ - scroll to the bottom
257+ - reveal launcher and launch an app
258+ - perform long left edge swipe to go minimize the app and go back to the dash.
259+
260+ Expected Results
261+ - apps lens shown and Running Apps visible on screen
262+ */
263+ function test_minimizingAppTakesToRunningApps() {
264+ var dashApps = findChild(shell, "DashApps");
265+
266+ swipeUntilScopeViewIsReached(dashApps);
267+
268+ // swipe finger up until the running/recent apps section (which we assume
269+ // it's the first one) is as far from view as possible.
270+ // We also assume that DashApps is tall enough that it's scrollable
271+ var appsCategoryListView = findChild(dashApps, "categoryListView");
272+ while (!appsCategoryListView.atYEnd) {
273+ swipeUpFromCenter();
274+ tryCompare(appsCategoryListView, "moving", false);
275+ }
276+
277+ // Switch away from the Applications scope.
278+ swipeRightFromCenter();
279+ waitUntilItemStopsMoving(dashApps);
280+ verify(!itemIsOnScreen(dashApps));
281+
282+ dragLauncherIntoView();
283+
284+ // Launch an app from the launcher
285+ tapOnAppIconInLauncher();
286+
287+ waitUntilApplicationWindowIsFullyVisible();
288+
289+ // Minimize the application we just launched
290+ swipeFromLeftEdge();
291+
292+ // Wait for the whole UI to settle down
293+ waitUntilApplicationWindowIsFullyHidden();
294+ waitUntilItemStopsMoving(dashApps);
295+ tryCompare(appsCategoryListView, "moving", false);
296+
297+ verify(itemIsOnScreen(dashApps));
298+
299+ var runningApplicationsGrid = findChild(appsCategoryListView, "recent");
300+ verify(runningApplicationsGrid);
301+ verify(itemIsOnScreen(runningApplicationsGrid));
302+ }
303+
236304 // Wait for the whole UI to settle down
237305 function waitForUIToSettle() {
238306 waitUntilApplicationWindowIsFullyHidden();