on xenial help sign in
Merged with trunk.
91b4bd6Leo Arias
@@ -48,6 +48,7 @@ install_dependencies() {
48 qtdeclarative5-gsettings1.0 \
48 qtdeclarative5-gsettings1.0 \
49 qtdeclarative5-ubuntu-ui-toolkit-plugin \
49 qtdeclarative5-ubuntu-ui-toolkit-plugin \
50 qtdeclarative5-ubuntu-settings-components \
50 qtdeclarative5-ubuntu-settings-components \
51+ qtdeclarative5-ubuntu-telephony0.1 \
51 qtdeclarative5-ubuntu-thumbnailer0.1 \
52 qtdeclarative5-ubuntu-thumbnailer0.1 \
52 unity-notifications-impl \
53 unity-notifications-impl \
53 ubuntu-mobile-icons \
54 ubuntu-mobile-icons \
debian/changelog+47
@@ -1,3 +1,50 @@
1+unity8 (7.90+14.10.20140709.2-0ubuntu1) utopic; urgency=low
2+
3+ [ Michal Hruby ]
4+ * Fix FTBFS when using latest unity-api.
5+
6+ [ Michał Sawicz ]
7+ * Refactor carousel item activation.
8+ * Refactor ScopeItem into GenericScopeView.
9+ * Add initial support for scope customizations.
10+ * Make rating stars in PreviewReviewDisplay.qml non-interactive. (LP:
11+ #1337508)
12+
13+ [ Nick Dedekind ]
14+ * Added active call hint A hint is displayed in the indicator panel
15+ when an call is active on the Telephony Serivce
16+
17+ [ Albert Astals ]
18+ * We need to boostrap height also when we have 1 item ^_^ (LP:
19+ #1337408)
20+ * Add initial support for scope customizations.
21+ * CardCreator: Give a correct implicitHeight if we only have art The
22+ hasSubtitle change is really unrelated and not needed here, just
23+ sneaking it in to not create yet another review. (LP: #1330899)
24+ * Fake Scopes Plugin: Register PreviewModelInterface
25+
26+ [ Michael Zanetti ]
27+ * make the launcher's drag'n'drop indicator more prominent (LP:
28+ #1332042)
29+ * make launcher items live having them non-live is not really required
30+ and reveals an issue in combination with UbuntuShape (LP: #1302761)
31+ * Fade out launcher in place instead of moving it to the left on long
32+ left edge swipes. (LP: #1332096)
33+ * update launcher icon glow as requested by design (LP: #1336725)
34+ * update header in dash to use the new header from the SDK (LP:
35+ #1335491)
36+ * fix testPreview with larger GRID_UNIT_PX values
37+ * clip the corner of pinned icons in the launcher as per new design
38+ * update launcher background according to latest design (LP: #1336314)
39+ * Update Launcher's home button design according to new spec. (LP:
40+ #1329331)
41+
42+ [ CI bot ]
43+ * make launcher items live having them non-live is not really required
44+ and reveals an issue in combination with UbuntuShape (LP: #1302761)
45+
46+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 09 Jul 2014 19:46:11 +0000
47+
1unity8 (7.90+14.10.20140707-0ubuntu1) utopic; urgency=low
48unity8 (7.90+14.10.20140707-0ubuntu1) utopic; urgency=low
2
49
3 [ Nick Dedekind ]
50 [ Nick Dedekind ]
debian/control+5−4
@@ -19,7 +19,7 @@ Build-Depends: cmake,
19 libpulse-dev,
19 libpulse-dev,
20 libqmenumodel-dev (>= 0.2.7),
20 libqmenumodel-dev (>= 0.2.7),
21 libqt5xmlpatterns5-dev,
21 libqt5xmlpatterns5-dev,
22− libunity-api-dev (>= 7.83),
22+ libunity-api-dev (>= 7.85),
23 libunity-mir-dev,
23 libunity-mir-dev,
24 libusermetricsoutput1-dev,
24 libusermetricsoutput1-dev,
25 libxcb1-dev,
25 libxcb1-dev,
@@ -40,7 +40,7 @@ Build-Depends: cmake,
40 qtdeclarative5-private-dev (>= 5.2.1),
40 qtdeclarative5-private-dev (>= 5.2.1),
41 qtdeclarative5-qtmultimedia-plugin,
41 qtdeclarative5-qtmultimedia-plugin,
42 qtdeclarative5-ubuntu-settings-components (>= 0.3),
42 qtdeclarative5-ubuntu-settings-components (>= 0.3),
43− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.48) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.48),
43+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
44 ttf-ubuntu-font-family,
44 ttf-ubuntu-font-family,
45Standards-Version: 3.9.4
45Standards-Version: 3.9.4
46Homepage: http://launchpad.net/unity
46Homepage: http://launchpad.net/unity
@@ -53,7 +53,7 @@ Vcs-Browser: https://bazaar.launchpad.net/~unity-team/unity8/trunk
53Package: indicators-client
53Package: indicators-client
54Architecture: amd64 armhf i386
54Architecture: amd64 armhf i386
55Depends: qmenumodel-qml (>= 0.2.7),
55Depends: qmenumodel-qml (>= 0.2.7),
56− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.48) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.48),
56+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
57 unity8 (= ${binary:Version}),
57 unity8 (= ${binary:Version}),
58 ${misc:Depends},
58 ${misc:Depends},
59 ${shlibs:Depends},
59 ${shlibs:Depends},
@@ -81,6 +81,7 @@ Depends: gsettings-desktop-schemas,
81 qml-module-qtquick-xmllistmodel,
81 qml-module-qtquick-xmllistmodel,
82 qtdeclarative5-gsettings1.0,
82 qtdeclarative5-gsettings1.0,
83 qtdeclarative5-ubuntu-settings-components (>= 0.3),
83 qtdeclarative5-ubuntu-settings-components (>= 0.3),
84+ qtdeclarative5-ubuntu-telephony0.1,
84 unity-launcher-impl-3,
85 unity-launcher-impl-3,
85 unity8-common (= ${source:Version}),
86 unity8-common (= ${source:Version}),
86 unity8-private (= ${binary:Version}),
87 unity8-private (= ${binary:Version}),
@@ -101,7 +102,7 @@ Description: Unity 8 shell
101Package: unity8-common
102Package: unity8-common
102Architecture: all
103Architecture: all
103Depends: qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
104Depends: qtdeclarative5-ubuntu-thumbnailer0.1 | ubuntu-thumbnailer-impl,
104− qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.48) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.48),
105+ qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 0.1.49) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 0.1.49),
105 qtdeclarative5-unity-notifications-plugin | unity-notifications-impl,
106 qtdeclarative5-unity-notifications-plugin | unity-notifications-impl,
106 ubuntu-thumbnailer-impl-0,
107 ubuntu-thumbnailer-impl-0,
107 unity-application-impl-2,
108 unity-application-impl-2,
doc/CMakeLists.txt+2
@@ -15,6 +15,8 @@ else()
15 ${CMAKE_SOURCE_DIR}/src/*.cpp
15 ${CMAKE_SOURCE_DIR}/src/*.cpp
16 ${CMAKE_SOURCE_DIR}/plugins/*.h
16 ${CMAKE_SOURCE_DIR}/plugins/*.h
17 ${CMAKE_SOURCE_DIR}/plugins/*.cpp
17 ${CMAKE_SOURCE_DIR}/plugins/*.cpp
18+ ${CMAKE_SOURCE_DIR}/plugins/*.qml
19+ ${CMAKE_SOURCE_DIR}/plugins/*.js
18 ${CMAKE_SOURCE_DIR}/qml/*.qml
20 ${CMAKE_SOURCE_DIR}/qml/*.qml
19 ${CMAKE_SOURCE_DIR}/qml/*.js
21 ${CMAKE_SOURCE_DIR}/qml/*.js
20 ${CMAKE_SOURCE_DIR}/tests/autopilot/*.py
22 ${CMAKE_SOURCE_DIR}/tests/autopilot/*.py
plugins/Dash/CardCreator.js+7−4
@@ -289,6 +289,7 @@ function cardString(template, components) {
289 property var cardData; \n\
289 property var cardData; \n\
290 property var artShapeBorderSource: undefined; \n\
290 property var artShapeBorderSource: undefined; \n\
291 property real fontScale: 1.0; \n\
291 property real fontScale: 1.0; \n\
292+ property var scopeStyle: null; \n\
292 property int headerAlignment: Text.AlignLeft; \n\
293 property int headerAlignment: Text.AlignLeft; \n\
293 property int fixedHeaderHeight: -1; \n\
294 property int fixedHeaderHeight: -1; \n\
294 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
295 property size fixedArtShapeSize: Qt.size(-1, -1); \n\
@@ -305,7 +306,7 @@ function cardString(template, components) {
305 var hasTitle = components["title"] || false;
306 var hasTitle = components["title"] || false;
306 var hasMascot = components["mascot"] || false;
307 var hasMascot = components["mascot"] || false;
307 var headerAsOverlay = hasArt && template && template["overlay"] === true && (hasTitle || hasMascot);
308 var headerAsOverlay = hasArt && template && template["overlay"] === true && (hasTitle || hasMascot);
308− var hasSubtitle = components["subtitle"] || false;
309+ var hasSubtitle = hasTitle && components["subtitle"] || false;
309 var hasHeaderRow = hasMascot && hasTitle;
310 var hasHeaderRow = hasMascot && hasTitle;
310
311
311 if (hasBackground) {
312 if (hasBackground) {
@@ -407,7 +408,7 @@ function cardString(template, components) {
407 mascotCode = kMascotImageCode.arg(anchors).arg(mascotImageVisible);
408 mascotCode = kMascotImageCode.arg(anchors).arg(mascotImageVisible);
408 }
409 }
409
410
410− var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < 0.7 ? "white" : "grey"';
411+ var summaryColorWithBackground = 'backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < 0.7 ? "white" : (root.scopeStyle ? root.scopeStyle.foreground : "grey")';
411
412
412 var titleSubtitleCode = "";
413 var titleSubtitleCode = "";
413 if (hasTitle) {
414 if (hasTitle) {
@@ -419,7 +420,7 @@ function cardString(template, components) {
419 } else if (hasBackground) {
420 } else if (hasBackground) {
420 color = summaryColorWithBackground;
421 color = summaryColorWithBackground;
421 } else {
422 } else {
422− color = '"grey"';
423+ color = 'root.scopeStyle ? root.scopeStyle.foreground : "grey"';
423 }
424 }
424
425
425 var titleAnchors;
426 var titleAnchors;
@@ -495,7 +496,7 @@ function cardString(template, components) {
495 if (hasBackground) {
496 if (hasBackground) {
496 color = summaryColorWithBackground;
497 color = summaryColorWithBackground;
497 } else {
498 } else {
498− color = '"grey"';
499+ color = 'root.scopeStyle ? root.scopeStyle.foreground : "grey"';
499 }
500 }
500
501
501 var summaryTopMargin = (hasMascot || hasSubtitle ? 'anchors.margins' : '0');
502 var summaryTopMargin = (hasMascot || hasSubtitle ? 'anchors.margins' : '0');
@@ -513,6 +514,8 @@ function cardString(template, components) {
513 code += 'implicitHeight: subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
514 code += 'implicitHeight: subtitleLabel.y + subtitleLabel.height + units.gu(1);\n';
514 } else if (hasTitle) {
515 } else if (hasTitle) {
515 code += 'implicitHeight: titleLabel.y + titleLabel.height + units.gu(1);\n';
516 code += 'implicitHeight: titleLabel.y + titleLabel.height + units.gu(1);\n';
517+ } else if (hasArt) {
518+ code += 'implicitHeight: artShapeHolder.height;\n';
516 }
519 }
517 // Close the AbstractButton
520 // Close the AbstractButton
518 code += '}\n';
521 code += '}\n';
plugins/Dash/ScopeStyle.qmlnew file+87
@@ -0,0 +1,87 @@
1+/*
2+ * Copyright 2014 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.2
18+
19+/*! \brief Helper for processing scope customization options.
20+
21+ It will take the customizations object passed by the scope and
22+ process it to provide the scope UI with data such as colors or
23+ image paths.
24+ */
25+
26+QtObject {
27+ /// Style object passed from the scope
28+ property var style: Object()
29+
30+ /*! \brief Calculate luminance of the passed color
31+
32+ \note If not fully opaque, luminance is dependant on blending.
33+ */
34+ function luminance(color) {
35+ return 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b;
36+ }
37+
38+ /// Color used for text and symbolic icons
39+ readonly property color foreground: "foreground-color" in style ? style["foreground-color"] : d.defaultDark
40+
41+ /// Color used for the overall background
42+ readonly property color background: "background-color" in style ? style["background-color"] : "transparent"
43+
44+ /*! \brief Luminance threshold for switching between fore and background color
45+
46+ \note If background colour is not fully opaque, it's not taken into account.
47+ */
48+ readonly property real threshold: background.a !== 1.0 ? d.foregroundLuminance : (d.foregroundLuminance + d.backgroundLuminance) / 2
49+
50+ /*! \brief The lighter of foreground and background colors
51+
52+ \note If background color is not fully opaque, it's not taken into account
53+ and defaults to the theme-provided light color.
54+ */
55+ readonly property color light: {
56+ if (background.a !== 1.0) return d.foregroundLuminance > d.defaultLightLuminance ? foreground : d.defaultLight;
57+ return d.foregroundLuminance > d.backgroundLuminance ? foreground : background;
58+ }
59+
60+ /*! \brief The darker of foreground and background colors
61+
62+ \note If background color is not fully opaque, it's not taken into account
63+ and defaults to the theme-provided dark color.
64+ */
65+ readonly property color dark: {
66+ if (background.a !== 1.0) return d.foregroundLuminance < d.defaultDarkLuminance ? foreground : d.defaultDark;
67+ return d.foregroundLuminance < d.backgroundLuminance ? foreground : background;
68+ }
69+
70+ /// Source of the logo image for the header
71+ readonly property url headerLogo: "logo" in d.headerStyle ? d.headerStyle["logo"] : ""
72+
73+ //! @cond
74+ property var d: QtObject {
75+ readonly property real foregroundLuminance: luminance(foreground)
76+ readonly property real backgroundLuminance: luminance(background)
77+
78+ // FIXME: should be taken from the theme
79+ readonly property color defaultLight: "white"
80+ readonly property color defaultDark: "grey"
81+ readonly property real defaultLightLuminance: luminance(defaultLight)
82+ readonly property real defaultDarkLuminance: luminance(defaultDark)
83+
84+ readonly property var headerStyle: "page-header" in style ? style["page-header"] : { }
85+ }
86+ //! @endcond
87+}
plugins/Dash/qmldir+1
@@ -2,3 +2,4 @@ module Dash
2plugin Dash-qml
2plugin Dash-qml
3typeinfo Dash.qmltypes
3typeinfo Dash.qmltypes
4singleton CardCreatorCache 0.1 CardCreatorCache.qml
4singleton CardCreatorCache 0.1 CardCreatorCache.qml
5+ScopeStyle 0.1 ScopeStyle.qml
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+1
@@ -378,6 +378,7 @@ void DirectionalDragArea::touchEvent_undecided(QTouchEvent *event)
378 // touch has ended before recognition concluded
378 // touch has ended before recognition concluded
379 DDA_DEBUG("Touch has ended before recognition concluded");
379 DDA_DEBUG("Touch has ended before recognition concluded");
380 setStatus(WaitingForTouch);
380 setStatus(WaitingForTouch);
381+ Q_EMIT tapped();
381 return;
382 return;
382 }
383 }
383
384
plugins/Ubuntu/Gestures/DirectionalDragArea.h+1
@@ -212,6 +212,7 @@ Q_SIGNALS:
212 void touchYChanged(qreal value);
212 void touchYChanged(qreal value);
213 void touchSceneXChanged(qreal value);
213 void touchSceneXChanged(qreal value);
214 void touchSceneYChanged(qreal value);
214 void touchSceneYChanged(qreal value);
215+ void tapped();
215
216
216protected:
217protected:
217 virtual void touchEvent(QTouchEvent *event);
218 virtual void touchEvent(QTouchEvent *event);
plugins/Unity/Launcher/launchermodel.cpp+3−1
@@ -128,7 +128,7 @@ void LauncherModel::pin(const QString &appId, int index)
128 if (index == -1 || index == currentIndex) {
128 if (index == -1 || index == currentIndex) {
129 m_list.at(currentIndex)->setPinned(true);
129 m_list.at(currentIndex)->setPinned(true);
130 QModelIndex modelIndex = this->index(currentIndex);
130 QModelIndex modelIndex = this->index(currentIndex);
131− Q_EMIT dataChanged(modelIndex, modelIndex);
131+ Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RolePinned);
132 } else {
132 } else {
133 move(currentIndex, index);
133 move(currentIndex, index);
134 // move() will store the list to the backend itself, so just exit at this point.
134 // move() will store the list to the backend itself, so just exit at this point.
@@ -159,6 +159,8 @@ void LauncherModel::requestRemove(const QString &appId)
159
159
160 if (m_appManager->findApplication(appId)) {
160 if (m_appManager->findApplication(appId)) {
161 m_list.at(index)->setPinned(false);
161 m_list.at(index)->setPinned(false);
162+ QModelIndex modelIndex = this->index(index);
163+ Q_EMIT dataChanged(modelIndex, modelIndex, QVector<int>() << RolePinned);
162 return;
164 return;
163 }
165 }
164
166
po/am.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-18 19:28+0000\n"
11"PO-Revision-Date: 2014-01-18 19:28+0000\n"
12"Last-Translator: samson <Unknown>\n"
12"Last-Translator: samson <Unknown>\n"
13"Language-Team: Amharic <am@li.org>\n"
13"Language-Team: Amharic <am@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "ማስነሻው ላይ መቆለፊያ"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "ከማስነሻው ላይ ማላቀቂያ"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr "የመግቢያ ቃል ማሳያ"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "መፈለጊያ"
194msgstr "መፈለጊያ"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "እባክዎን ያስገቡ %1"
199msgstr "እባክዎን ያስገቡ %1"
po/ar.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
11"PO-Revision-Date: 2014-05-22 08:22+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "ثبّت في الشريط"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "فُك التثبيت من الشريط"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -83,7 +83,7 @@ msgstr "مكالمة طوارئ"
83msgid "OK"
83msgid "OK"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/PageHeader.qml:365
86+#: qml/Components/PageHeader.qml:366
87msgid "Recent searches"
87msgid "Recent searches"
88msgstr "عمليات البحث الأخيرة"
88msgstr "عمليات البحث الأخيرة"
89
89
@@ -168,11 +168,35 @@ msgstr "عرض كلمة السر"
168msgid "Please enter SIM PIN"
168msgid "Please enter SIM PIN"
169msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
169msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
170
170
171+#: qml/Panel/Indicators/MenuItemFactory.qml:583
172+msgid "In queue…"
173+msgstr ""
174+
175+#: qml/Panel/Indicators/MenuItemFactory.qml:587
176+msgid "Downloading"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:589
180+msgid "Paused, tap to resume"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:591
184+msgid "Canceled"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:593
188+msgid "Finished"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:595
192+msgid "Failed, tap to retry"
193+msgstr ""
194+
171#: qml/Panel/SearchIndicator.qml:27
195#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
196msgid "Search"
173msgstr "ابحث"
197msgstr "ابحث"
174
198
175−#: qml/Shell.qml:334
199+#: qml/Shell.qml:359
176#, qt-format
200#, qt-format
177msgid "Please enter %1"
201msgid "Please enter %1"
178msgstr "من فضلك أدخِل %1"
202msgstr "من فضلك أدخِل %1"
po/ast.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-07-04 15:29+0000\n"
11"PO-Revision-Date: 2014-07-04 15:29+0000\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
12"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
13"Language-Team: Asturian <ast@li.org>\n"
13"Language-Team: Asturian <ast@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-07-05 05:59+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17086)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Caltener nel Llanzador"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Nun caltener nel llanzador"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,7 +84,7 @@ msgstr "Llamada d'emerxencia"
84msgid "OK"
84msgid "OK"
85msgstr "Aceutar"
85msgstr "Aceutar"
86
86
87−#: qml/Components/PageHeader.qml:365
87+#: qml/Components/PageHeader.qml:366
88msgid "Recent searches"
88msgid "Recent searches"
89msgstr "Busques recientes"
89msgstr "Busques recientes"
90
90
@@ -169,11 +169,35 @@ msgstr "Amosar contraseña"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Escribi'l PIN de la SIM"
170msgstr "Escribi'l PIN de la SIM"
171
171
172+#: qml/Panel/Indicators/MenuItemFactory.qml:583
173+msgid "In queue…"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:587
177+msgid "Downloading"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:589
181+msgid "Paused, tap to resume"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:591
185+msgid "Canceled"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:593
189+msgid "Finished"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:595
193+msgid "Failed, tap to retry"
194+msgstr ""
195+
172#: qml/Panel/SearchIndicator.qml:27
196#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
197msgid "Search"
174msgstr "Guetar"
198msgstr "Guetar"
175
199
176−#: qml/Shell.qml:334
200+#: qml/Shell.qml:359
177#, qt-format
201#, qt-format
178msgid "Please enter %1"
202msgid "Please enter %1"
179msgstr "Introduz %1"
203msgstr "Introduz %1"
po/az.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-15 09:50+0000\n"
11"PO-Revision-Date: 2014-01-15 09:50+0000\n"
12"Last-Translator: Turan Mahmudov <turan.mahmudov@gmail.com>\n"
12"Last-Translator: Turan Mahmudov <turan.mahmudov@gmail.com>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
13"Language-Team: Azerbaijani <az@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Panelə Bərkit"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Paneldən Qaldır"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -81,7 +81,7 @@ msgstr "Zərurət zəngi"
81msgid "OK"
81msgid "OK"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/PageHeader.qml:365
84+#: qml/Components/PageHeader.qml:366
85msgid "Recent searches"
85msgid "Recent searches"
86msgstr "Son axtarışlar"
86msgstr "Son axtarışlar"
87
87
@@ -166,11 +166,35 @@ msgstr "Parolu göstər"
166msgid "Please enter SIM PIN"
166msgid "Please enter SIM PIN"
167msgstr ""
167msgstr ""
168
168
169+#: qml/Panel/Indicators/MenuItemFactory.qml:583
170+msgid "In queue…"
171+msgstr ""
172+
173+#: qml/Panel/Indicators/MenuItemFactory.qml:587
174+msgid "Downloading"
175+msgstr ""
176+
177+#: qml/Panel/Indicators/MenuItemFactory.qml:589
178+msgid "Paused, tap to resume"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:591
182+msgid "Canceled"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:593
186+msgid "Finished"
187+msgstr ""
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:595
190+msgid "Failed, tap to retry"
191+msgstr ""
192+
169#: qml/Panel/SearchIndicator.qml:27
193#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
194msgid "Search"
171msgstr "Axtar"
195msgstr "Axtar"
172
196
173−#: qml/Shell.qml:334
197+#: qml/Shell.qml:359
174#, qt-format
198#, qt-format
175msgid "Please enter %1"
199msgid "Please enter %1"
176msgstr "Xahiş edirik daxil edin: %1"
200msgstr "Xahiş edirik daxil edin: %1"
po/bg.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
11"PO-Revision-Date: 2014-04-01 14:08+0000\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
12"Last-Translator: Atanas Kovachki <Unknown>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
13"Language-Team: Bulgarian <bg@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Заключване към панела"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Отключи от панела за стартиране"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -87,7 +87,7 @@ msgstr "Спешно повикване"
87msgid "OK"
87msgid "OK"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Components/PageHeader.qml:365
90+#: qml/Components/PageHeader.qml:366
91msgid "Recent searches"
91msgid "Recent searches"
92msgstr "Последни търсения"
92msgstr "Последни търсения"
93
93
@@ -172,11 +172,35 @@ msgstr "Покажи паролата"
172msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
173msgstr ""
173msgstr ""
174
174
175+#: qml/Panel/Indicators/MenuItemFactory.qml:583
176+msgid "In queue…"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:587
180+msgid "Downloading"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:589
184+msgid "Paused, tap to resume"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:591
188+msgid "Canceled"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:593
192+msgid "Finished"
193+msgstr ""
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:595
196+msgid "Failed, tap to retry"
197+msgstr ""
198+
175#: qml/Panel/SearchIndicator.qml:27
199#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
200msgid "Search"
177msgstr "Търсене"
201msgstr "Търсене"
178
202
179−#: qml/Shell.qml:334
203+#: qml/Shell.qml:359
180#, qt-format
204#, qt-format
181msgid "Please enter %1"
205msgid "Please enter %1"
182msgstr "Моля, въведете %1"
206msgstr "Моля, въведете %1"
po/br.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-16 11:41+0000\n"
11"PO-Revision-Date: 2014-06-16 11:41+0000\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
12"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
13"Language-Team: Breton <br@li.org>\n"
13"Language-Team: Breton <br@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Stagañ ouzh al lañser"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Distagañ diouzh al lañser"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -87,7 +87,7 @@ msgstr "Pellgomzadenn vallus"
87msgid "OK"
87msgid "OK"
88msgstr "Mat eo"
88msgstr "Mat eo"
89
89
90−#: qml/Components/PageHeader.qml:365
90+#: qml/Components/PageHeader.qml:366
91msgid "Recent searches"
91msgid "Recent searches"
92msgstr "Enklaskoù graet nevez zo"
92msgstr "Enklaskoù graet nevez zo"
93
93
@@ -172,11 +172,35 @@ msgstr "Diskouez ar ger-tremen"
172msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
173msgstr "Ebarzhit kod PIN ho kartenn SIM, mar plij"
173msgstr "Ebarzhit kod PIN ho kartenn SIM, mar plij"
174
174
175+#: qml/Panel/Indicators/MenuItemFactory.qml:583
176+msgid "In queue…"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:587
180+msgid "Downloading"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:589
184+msgid "Paused, tap to resume"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:591
188+msgid "Canceled"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:593
192+msgid "Finished"
193+msgstr ""
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:595
196+msgid "Failed, tap to retry"
197+msgstr ""
198+
175#: qml/Panel/SearchIndicator.qml:27
199#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
200msgid "Search"
177msgstr "Klask"
201msgstr "Klask"
178
202
179−#: qml/Shell.qml:334
203+#: qml/Shell.qml:359
180#, qt-format
204#, qt-format
181msgid "Please enter %1"
205msgid "Please enter %1"
182msgstr "Ebarzhit %1, mar plij"
206msgstr "Ebarzhit %1, mar plij"
po/bs.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
11"PO-Revision-Date: 2014-01-16 22:33+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
13"Language-Team: Bosnian <bs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/ca.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-13 07:47+0000\n"
11"PO-Revision-Date: 2014-06-13 07:47+0000\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
12"Last-Translator: David Planella <david.planella@ubuntu.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Mantén-la al llançador"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "No la mantinguis al llançador"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -88,7 +88,7 @@ msgstr "Trucada d'emergència"
88msgid "OK"
88msgid "OK"
89msgstr "D'acord"
89msgstr "D'acord"
90
90
91−#: qml/Components/PageHeader.qml:365
91+#: qml/Components/PageHeader.qml:366
92msgid "Recent searches"
92msgid "Recent searches"
93msgstr "Cerques recents"
93msgstr "Cerques recents"
94
94
@@ -173,11 +173,35 @@ msgstr "Mostra la contrasenya"
173msgid "Please enter SIM PIN"
173msgid "Please enter SIM PIN"
174msgstr "Introduïu el PIN de la targeta SIM"
174msgstr "Introduïu el PIN de la targeta SIM"
175
175
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
176#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
177msgid "Search"
201msgid "Search"
178msgstr "Cerca"
202msgstr "Cerca"
179
203
180−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
181#, qt-format
205#, qt-format
182msgid "Please enter %1"
206msgid "Please enter %1"
183msgstr "Introduïu %1"
207msgstr "Introduïu %1"
po/ckb.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
11"PO-Revision-Date: 2014-01-21 11:05+0000\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
12"Last-Translator: Aras <aras.noori@gmail.com>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
13"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "چەسباندن بە لانچرەوە"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "ھەڵکەندن لە لانچر"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr "هێڵی فریاگوزاری"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "دوایین گەڕانەکان"
85msgstr "دوایین گەڕانەکان"
86
86
@@ -165,11 +165,35 @@ msgstr "تێپەڕەوشە پیشان بدە"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "گەڕان"
194msgstr "گەڕان"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "تکایە %1 بنووسە"
199msgstr "تکایە %1 بنووسە"
po/cs.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
11"PO-Revision-Date: 2014-01-08 10:11+0000\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
12"Last-Translator: Tadeáš Pařík <tadeas.parik@gmail.com>\n"
13"Language-Team: Czech <cs@li.org>\n"
13"Language-Team: Czech <cs@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Přidat do Launcheru"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Odebrat z Launcheru"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr "Tísňové volání"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Poslední vyhledávání"
85msgstr "Poslední vyhledávání"
86
86
@@ -165,11 +165,35 @@ msgstr "Zobrazit heslo"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Hledat"
194msgstr "Hledat"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "Zadejte prosím %1"
199msgstr "Zadejte prosím %1"
po/da.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-14 20:16+0000\n"
11"PO-Revision-Date: 2014-01-14 20:16+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Danish <da@li.org>\n"
13"Language-Team: Danish <da@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/de.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-06 19:34+0000\n"
11"PO-Revision-Date: 2014-06-06 19:34+0000\n"
12"Last-Translator: Phillip Sz <Unknown>\n"
12"Last-Translator: Phillip Sz <Unknown>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Im Starter sperren"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Aus dem Starter entsperren"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -85,7 +85,7 @@ msgstr "Notruf"
85msgid "OK"
85msgid "OK"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Components/PageHeader.qml:365
88+#: qml/Components/PageHeader.qml:366
89msgid "Recent searches"
89msgid "Recent searches"
90msgstr "Zuletzt verwendete Suchbegriffe"
90msgstr "Zuletzt verwendete Suchbegriffe"
91
91
@@ -170,11 +170,35 @@ msgstr "Passwort anzeigen"
170msgid "Please enter SIM PIN"
170msgid "Please enter SIM PIN"
171msgstr "Bitte die PIN der SIM eingeben"
171msgstr "Bitte die PIN der SIM eingeben"
172
172
173+#: qml/Panel/Indicators/MenuItemFactory.qml:583
174+msgid "In queue…"
175+msgstr ""
176+
177+#: qml/Panel/Indicators/MenuItemFactory.qml:587
178+msgid "Downloading"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:589
182+msgid "Paused, tap to resume"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:591
186+msgid "Canceled"
187+msgstr ""
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:593
190+msgid "Finished"
191+msgstr ""
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:595
194+msgid "Failed, tap to retry"
195+msgstr ""
196+
173#: qml/Panel/SearchIndicator.qml:27
197#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
198msgid "Search"
175msgstr "Suchen"
199msgstr "Suchen"
176
200
177−#: qml/Shell.qml:334
201+#: qml/Shell.qml:359
178#, qt-format
202#, qt-format
179msgid "Please enter %1"
203msgid "Please enter %1"
180msgstr "Bitte geben Sie %1 ein"
204msgstr "Bitte geben Sie %1 ein"
po/el.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-02-26 09:58+0000\n"
11"PO-Revision-Date: 2014-02-26 09:58+0000\n"
12"Last-Translator: j3lc <x_nikos@yahoo.gr>\n"
12"Last-Translator: j3lc <x_nikos@yahoo.gr>\n"
13"Language-Team: Greek <el@li.org>\n"
13"Language-Team: Greek <el@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Διατήρηση στον εκκινητή"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Απομάκρυνση από τον εκκινητή"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,7 +84,7 @@ msgstr "Κλήση έκτακτης ανάγκης"
84msgid "OK"
84msgid "OK"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/PageHeader.qml:365
87+#: qml/Components/PageHeader.qml:366
88msgid "Recent searches"
88msgid "Recent searches"
89msgstr "Πρόσφατες αναζητήσεις"
89msgstr "Πρόσφατες αναζητήσεις"
90
90
@@ -169,11 +169,35 @@ msgstr "Εμφάνιση κωδικού"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
170msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
171
171
172+#: qml/Panel/Indicators/MenuItemFactory.qml:583
173+msgid "In queue…"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:587
177+msgid "Downloading"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:589
181+msgid "Paused, tap to resume"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:591
185+msgid "Canceled"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:593
189+msgid "Finished"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:595
193+msgid "Failed, tap to retry"
194+msgstr ""
195+
172#: qml/Panel/SearchIndicator.qml:27
196#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
197msgid "Search"
174msgstr "Αναζήτηση"
198msgstr "Αναζήτηση"
175
199
176−#: qml/Shell.qml:334
200+#: qml/Shell.qml:359
177#, qt-format
201#, qt-format
178msgid "Please enter %1"
202msgid "Please enter %1"
179msgstr "Πληκτρολογήστε %1"
203msgstr "Πληκτρολογήστε %1"
po/en_AU.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-09-28 07:46+0000\n"
11"PO-Revision-Date: 2013-09-28 07:46+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr "Emergency Call"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Recent searches"
85msgstr "Recent searches"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Search"
194msgstr "Search"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "Please enter %1"
199msgstr "Please enter %1"
po/en_GB.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-03-07 13:27+0000\n"
11"PO-Revision-Date: 2014-03-07 13:27+0000\n"
12"Last-Translator: Andi Chandler <Unknown>\n"
12"Last-Translator: Andi Chandler <Unknown>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Lock to Launcher"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Unlock from Launcher"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,7 +82,7 @@ msgstr "Emergency Call"
82msgid "OK"
82msgid "OK"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/PageHeader.qml:365
85+#: qml/Components/PageHeader.qml:366
86msgid "Recent searches"
86msgid "Recent searches"
87msgstr "Recent searches"
87msgstr "Recent searches"
88
88
@@ -167,11 +167,35 @@ msgstr "Show password"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "Please enter SIM PIN"
168msgstr "Please enter SIM PIN"
169
169
170+#: qml/Panel/Indicators/MenuItemFactory.qml:583
171+msgid "In queue…"
172+msgstr ""
173+
174+#: qml/Panel/Indicators/MenuItemFactory.qml:587
175+msgid "Downloading"
176+msgstr ""
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:589
179+msgid "Paused, tap to resume"
180+msgstr ""
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:591
183+msgid "Canceled"
184+msgstr ""
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:593
187+msgid "Finished"
188+msgstr ""
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:595
191+msgid "Failed, tap to retry"
192+msgstr ""
193+
170#: qml/Panel/SearchIndicator.qml:27
194#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
195msgid "Search"
172msgstr "Search"
196msgstr "Search"
173
197
174−#: qml/Shell.qml:334
198+#: qml/Shell.qml:359
175#, qt-format
199#, qt-format
176msgid "Please enter %1"
200msgid "Please enter %1"
177msgstr "Please enter %1"
201msgstr "Please enter %1"
po/eo.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/es.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-26 03:08+0000\n"
11"PO-Revision-Date: 2014-06-26 03:08+0000\n"
12"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
12"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
13"Language-Team: Spanish <es@li.org>\n"
13"Language-Team: Spanish <es@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-27 07:13+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17077)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Fijar al lanzador"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Quitar del lanzador"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -85,7 +85,7 @@ msgstr "Llamada de emergencia"
85msgid "OK"
85msgid "OK"
86msgstr "Aceptar"
86msgstr "Aceptar"
87
87
88−#: qml/Components/PageHeader.qml:365
88+#: qml/Components/PageHeader.qml:366
89msgid "Recent searches"
89msgid "Recent searches"
90msgstr "Búsquedas recientes"
90msgstr "Búsquedas recientes"
91
91
@@ -170,11 +170,35 @@ msgstr "Mostrar contraseña"
170msgid "Please enter SIM PIN"
170msgid "Please enter SIM PIN"
171msgstr "Escriba el PIN de la SIM"
171msgstr "Escriba el PIN de la SIM"
172
172
173+#: qml/Panel/Indicators/MenuItemFactory.qml:583
174+msgid "In queue…"
175+msgstr ""
176+
177+#: qml/Panel/Indicators/MenuItemFactory.qml:587
178+msgid "Downloading"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:589
182+msgid "Paused, tap to resume"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:591
186+msgid "Canceled"
187+msgstr ""
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:593
190+msgid "Finished"
191+msgstr ""
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:595
194+msgid "Failed, tap to retry"
195+msgstr ""
196+
173#: qml/Panel/SearchIndicator.qml:27
197#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
198msgid "Search"
175msgstr "Buscar"
199msgstr "Buscar"
176
200
177−#: qml/Shell.qml:334
201+#: qml/Shell.qml:359
178#, qt-format
202#, qt-format
179msgid "Please enter %1"
203msgid "Please enter %1"
180msgstr "Introduzca %1"
204msgstr "Introduzca %1"
po/eu.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-03-30 12:44+0000\n"
11"PO-Revision-Date: 2014-03-30 12:44+0000\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
12"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
13"Language-Team: Basque <eu@li.org>\n"
13"Language-Team: Basque <eu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Lotu abiarazlera"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Askatu abiarazletik"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,7 +84,7 @@ msgstr "Larrialdi-deia"
84msgid "OK"
84msgid "OK"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/PageHeader.qml:365
87+#: qml/Components/PageHeader.qml:366
88msgid "Recent searches"
88msgid "Recent searches"
89msgstr "Azken bilaketak"
89msgstr "Azken bilaketak"
90
90
@@ -169,11 +169,35 @@ msgstr "Erakutsi pasahitza"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Sartu SIMaren PINa"
170msgstr "Sartu SIMaren PINa"
171
171
172+#: qml/Panel/Indicators/MenuItemFactory.qml:583
173+msgid "In queue…"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:587
177+msgid "Downloading"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:589
181+msgid "Paused, tap to resume"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:591
185+msgid "Canceled"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:593
189+msgid "Finished"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:595
193+msgid "Failed, tap to retry"
194+msgstr ""
195+
172#: qml/Panel/SearchIndicator.qml:27
196#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
197msgid "Search"
174msgstr "Bilatu"
198msgstr "Bilatu"
175
199
176−#: qml/Shell.qml:334
200+#: qml/Shell.qml:359
177#, qt-format
201#, qt-format
178msgid "Please enter %1"
202msgid "Please enter %1"
179msgstr "Sartu %1"
203msgstr "Sartu %1"
po/fa.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-10-31 19:02+0000\n"
11"PO-Revision-Date: 2013-10-31 19:02+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Persian <fa@li.org>\n"
13"Language-Team: Persian <fa@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/fi.po+34−10
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11−"PO-Revision-Date: 2014-06-14 10:23+0000\n"
11+"PO-Revision-Date: 2014-07-09 17:26+0000\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-10 07:29+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Kiinnitä käynnistimeen"
23+msgstr "Kiinnitä pikakuvake"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Poista käynnistimestä"
27+msgstr "Poista pikakuvakkeen kiinnitys"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,7 +82,7 @@ msgstr "Hätäpuhelu"
82msgid "OK"
82msgid "OK"
83msgstr "OK"
83msgstr "OK"
84
84
85−#: qml/Components/PageHeader.qml:365
85+#: qml/Components/PageHeader.qml:366
86msgid "Recent searches"
86msgid "Recent searches"
87msgstr "Viimeisimmät haut"
87msgstr "Viimeisimmät haut"
88
88
@@ -167,11 +167,35 @@ msgstr "Näytä salasana"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "Anna SIM-kortin PIN-koodi"
168msgstr "Anna SIM-kortin PIN-koodi"
169
169
170+#: qml/Panel/Indicators/MenuItemFactory.qml:583
171+msgid "In queue…"
172+msgstr "Jonossa…"
173+
174+#: qml/Panel/Indicators/MenuItemFactory.qml:587
175+msgid "Downloading"
176+msgstr "Ladataan"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:589
179+msgid "Paused, tap to resume"
180+msgstr "Keskeytetty, napauta palauttaaksesi"
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:591
183+msgid "Canceled"
184+msgstr "Peruttu"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:593
187+msgid "Finished"
188+msgstr "Valmistunut"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:595
191+msgid "Failed, tap to retry"
192+msgstr "Epäonnistunut, napauta yrittääksesi uudelleen"
193+
170#: qml/Panel/SearchIndicator.qml:27
194#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
195msgid "Search"
172msgstr "Hae"
196msgstr "Hae"
173
197
174−#: qml/Shell.qml:334
198+#: qml/Shell.qml:359
175#, qt-format
199#, qt-format
176msgid "Please enter %1"
200msgid "Please enter %1"
177msgstr "Kirjoita %1"
201msgstr "Kirjoita %1"
po/fo.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
11"PO-Revision-Date: 2014-01-14 20:08+0000\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
12"Last-Translator: Jógvan Olsen <jeggy@jebster.net>\n"
13"Language-Team: Faroese <fo@li.org>\n"
13"Language-Team: Faroese <fo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Leita"
194msgstr "Leita"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/fr.po+35−11
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11−"PO-Revision-Date: 2014-06-08 20:45+0000\n"
11+"PO-Revision-Date: 2014-07-09 17:53+0000\n"
12−"Last-Translator: Pierre Slamich <pierre.slamich@gmail.com>\n"
12+"Last-Translator: Sébastien Maes <nautilussebastien@gmail.com>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-10 07:29+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Conserver dans le lanceur"
23+msgstr "Épingler le raccourci"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Retirer du lanceur"
27+msgstr "Détacher le raccourci"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -89,7 +89,7 @@ msgstr "Appel d'urgence"
89msgid "OK"
89msgid "OK"
90msgstr "OK"
90msgstr "OK"
91
91
92−#: qml/Components/PageHeader.qml:365
92+#: qml/Components/PageHeader.qml:366
93msgid "Recent searches"
93msgid "Recent searches"
94msgstr "Recherches récentes"
94msgstr "Recherches récentes"
95
95
@@ -174,11 +174,35 @@ msgstr "Afficher le mot de passe"
174msgid "Please enter SIM PIN"
174msgid "Please enter SIM PIN"
175msgstr "Veuillez entrer le code PIN de votre carte SIM"
175msgstr "Veuillez entrer le code PIN de votre carte SIM"
176
176
177+#: qml/Panel/Indicators/MenuItemFactory.qml:583
178+msgid "In queue…"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:587
182+msgid "Downloading"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:589
186+msgid "Paused, tap to resume"
187+msgstr "En pause, appuyez pour reprendre"
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:591
190+msgid "Canceled"
191+msgstr ""
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:593
194+msgid "Finished"
195+msgstr ""
196+
197+#: qml/Panel/Indicators/MenuItemFactory.qml:595
198+msgid "Failed, tap to retry"
199+msgstr "Échec, appuyez pour réessayer"
200+
177#: qml/Panel/SearchIndicator.qml:27
201#: qml/Panel/SearchIndicator.qml:27
178msgid "Search"
202msgid "Search"
179msgstr "Rechercher"
203msgstr "Rechercher"
180
204
181−#: qml/Shell.qml:334
205+#: qml/Shell.qml:359
182#, qt-format
206#, qt-format
183msgid "Please enter %1"
207msgid "Please enter %1"
184msgstr "Veuillez saisir %1"
208msgstr "Veuillez saisir %1"
po/gd.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-17 21:08+0000\n"
11"PO-Revision-Date: 2014-05-17 21:08+0000\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
13"Language-Team: Gaelic; Scottish <gd@li.org>\n"
13"Language-Team: Gaelic; Scottish <gd@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Glais ris an lòinsear"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Dealaich on lòinsear"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -88,7 +88,7 @@ msgstr "Gairm èiginn"
88msgid "OK"
88msgid "OK"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Components/PageHeader.qml:365
91+#: qml/Components/PageHeader.qml:366
92msgid "Recent searches"
92msgid "Recent searches"
93msgstr "Na lorg thu o chionn goirid"
93msgstr "Na lorg thu o chionn goirid"
94
94
@@ -173,11 +173,35 @@ msgstr "Seall am facal-faire"
173msgid "Please enter SIM PIN"
173msgid "Please enter SIM PIN"
174msgstr "Cuir a-steach SIM PIN"
174msgstr "Cuir a-steach SIM PIN"
175
175
176+#: qml/Panel/Indicators/MenuItemFactory.qml:583
177+msgid "In queue…"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:587
181+msgid "Downloading"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:589
185+msgid "Paused, tap to resume"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:591
189+msgid "Canceled"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:593
193+msgid "Finished"
194+msgstr ""
195+
196+#: qml/Panel/Indicators/MenuItemFactory.qml:595
197+msgid "Failed, tap to retry"
198+msgstr ""
199+
176#: qml/Panel/SearchIndicator.qml:27
200#: qml/Panel/SearchIndicator.qml:27
177msgid "Search"
201msgid "Search"
178msgstr "Lorg"
202msgstr "Lorg"
179
203
180−#: qml/Shell.qml:334
204+#: qml/Shell.qml:359
181#, qt-format
205#, qt-format
182msgid "Please enter %1"
206msgid "Please enter %1"
183msgstr "Cuir a-steach %1"
207msgstr "Cuir a-steach %1"
po/gl.po+34−10
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11−"PO-Revision-Date: 2014-07-06 15:53+0000\n"
11+"PO-Revision-Date: 2014-07-09 12:17+0000\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
12"Last-Translator: Marcos Lans <Unknown>\n"
13"Language-Team: Galician <gl@li.org>\n"
13"Language-Team: Galician <gl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-07-07 06:08+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-10 07:29+0000\n"
18−"X-Generator: Launchpad (build 17086)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Manter no Iniciador"
23+msgstr "Pegar o atallo"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Non manter no Iniciador"
27+msgstr "Despegar o atallo"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,7 +84,7 @@ msgstr "Chamada de emerxencia"
84msgid "OK"
84msgid "OK"
85msgstr "Aceptar"
85msgstr "Aceptar"
86
86
87−#: qml/Components/PageHeader.qml:365
87+#: qml/Components/PageHeader.qml:366
88msgid "Recent searches"
88msgid "Recent searches"
89msgstr "Buscas recentes"
89msgstr "Buscas recentes"
90
90
@@ -169,11 +169,35 @@ msgstr "Mostrar contrasinal"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Introduza o PIN da SIM"
170msgstr "Introduza o PIN da SIM"
171
171
172+#: qml/Panel/Indicators/MenuItemFactory.qml:583
173+msgid "In queue…"
174+msgstr "Na cola..."
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:587
177+msgid "Downloading"
178+msgstr "Descargando"
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:589
181+msgid "Paused, tap to resume"
182+msgstr "Detido, toque para continuar"
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:591
185+msgid "Canceled"
186+msgstr "Cancelado"
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:593
189+msgid "Finished"
190+msgstr "Rematado"
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:595
193+msgid "Failed, tap to retry"
194+msgstr "Fallou, toque para reintentar"
195+
172#: qml/Panel/SearchIndicator.qml:27
196#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
197msgid "Search"
174msgstr "Buscar"
198msgstr "Buscar"
175
199
176−#: qml/Shell.qml:334
200+#: qml/Shell.qml:359
177#, qt-format
201#, qt-format
178msgid "Please enter %1"
202msgid "Please enter %1"
179msgstr "Introduza %1"
203msgstr "Introduza %1"
po/he.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-09 07:49+0000\n"
11"PO-Revision-Date: 2014-06-09 07:49+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "נעילה למשגר"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "הפרדה מהמשגר"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,7 +82,7 @@ msgstr "שיחת חירום"
82msgid "OK"
82msgid "OK"
83msgstr "אישור"
83msgstr "אישור"
84
84
85−#: qml/Components/PageHeader.qml:365
85+#: qml/Components/PageHeader.qml:366
86msgid "Recent searches"
86msgid "Recent searches"
87msgstr "חיפושים אחרונים"
87msgstr "חיפושים אחרונים"
88
88
@@ -167,11 +167,35 @@ msgstr "הצגת הססמה"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "נא להזין את קוד ה־<U+200F>SIM"
168msgstr "נא להזין את קוד ה־<U+200F>SIM"
169
169
170+#: qml/Panel/Indicators/MenuItemFactory.qml:583
171+msgid "In queue…"
172+msgstr ""
173+
174+#: qml/Panel/Indicators/MenuItemFactory.qml:587
175+msgid "Downloading"
176+msgstr ""
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:589
179+msgid "Paused, tap to resume"
180+msgstr ""
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:591
183+msgid "Canceled"
184+msgstr ""
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:593
187+msgid "Finished"
188+msgstr ""
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:595
191+msgid "Failed, tap to retry"
192+msgstr ""
193+
170#: qml/Panel/SearchIndicator.qml:27
194#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
195msgid "Search"
172msgstr "חיפוש"
196msgstr "חיפוש"
173
197
174−#: qml/Shell.qml:334
198+#: qml/Shell.qml:359
175#, qt-format
199#, qt-format
176msgid "Please enter %1"
200msgid "Please enter %1"
177msgstr "נא להזין %1"
201msgstr "נא להזין %1"
po/hi.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
11"PO-Revision-Date: 2014-01-15 01:49+0000\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
12"Last-Translator: Siddhanathan S. <Unknown>\n"
13"Language-Team: Hindi <hi@li.org>\n"
13"Language-Team: Hindi <hi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr "आपातकालीन कॉल"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "पिछले खोजों"
85msgstr "पिछले खोजों"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "खोजें"
194msgstr "खोजें"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/hr.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Croatian <hr@li.org>\n"
13"Language-Team: Croatian <hr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Nedavne pretrage"
85msgstr "Nedavne pretrage"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Pretraživanje"
194msgstr "Pretraživanje"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/hu.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-14 23:02+0000\n"
11"PO-Revision-Date: 2014-01-14 23:02+0000\n"
12"Last-Translator: Kristóf Kiszel <Unknown>\n"
12"Last-Translator: Kristóf Kiszel <Unknown>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
13"Language-Team: Hungarian <hu@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Indítóban tartás"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Eltávolítás az Indítóból"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,7 +82,7 @@ msgstr "Vészhívás"
82msgid "OK"
82msgid "OK"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/PageHeader.qml:365
85+#: qml/Components/PageHeader.qml:366
86msgid "Recent searches"
86msgid "Recent searches"
87msgstr "Legutóbbi keresések"
87msgstr "Legutóbbi keresések"
88
88
@@ -167,11 +167,35 @@ msgstr "Jelszó megjelenítése"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr ""
168msgstr ""
169
169
170+#: qml/Panel/Indicators/MenuItemFactory.qml:583
171+msgid "In queue…"
172+msgstr ""
173+
174+#: qml/Panel/Indicators/MenuItemFactory.qml:587
175+msgid "Downloading"
176+msgstr ""
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:589
179+msgid "Paused, tap to resume"
180+msgstr ""
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:591
183+msgid "Canceled"
184+msgstr ""
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:593
187+msgid "Finished"
188+msgstr ""
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:595
191+msgid "Failed, tap to retry"
192+msgstr ""
193+
170#: qml/Panel/SearchIndicator.qml:27
194#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
195msgid "Search"
172msgstr "Keresés"
196msgstr "Keresés"
173
197
174−#: qml/Shell.qml:334
198+#: qml/Shell.qml:359
175#, qt-format
199#, qt-format
176msgid "Please enter %1"
200msgid "Please enter %1"
177msgstr "Adja meg a következőt: %1"
201msgstr "Adja meg a következőt: %1"
po/hy.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Վերջին որոնումներ"
85msgstr "Վերջին որոնումներ"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Որոնում"
194msgstr "Որոնում"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/id.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Indonesian <id@li.org>\n"
13"Language-Team: Indonesian <id@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/is.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-09-18 16:22+0000\n"
11"PO-Revision-Date: 2013-09-18 16:22+0000\n"
12"Last-Translator: Andri Thorlacius <Unknown>\n"
12"Last-Translator: Andri Thorlacius <Unknown>\n"
13"Language-Team: Icelandic <is@li.org>\n"
13"Language-Team: Icelandic <is@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -81,7 +81,7 @@ msgstr "Neyðarsímtal"
81msgid "OK"
81msgid "OK"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/PageHeader.qml:365
84+#: qml/Components/PageHeader.qml:366
85msgid "Recent searches"
85msgid "Recent searches"
86msgstr "Nýlegar leitir"
86msgstr "Nýlegar leitir"
87
87
@@ -166,11 +166,35 @@ msgstr ""
166msgid "Please enter SIM PIN"
166msgid "Please enter SIM PIN"
167msgstr ""
167msgstr ""
168
168
169+#: qml/Panel/Indicators/MenuItemFactory.qml:583
170+msgid "In queue…"
171+msgstr ""
172+
173+#: qml/Panel/Indicators/MenuItemFactory.qml:587
174+msgid "Downloading"
175+msgstr ""
176+
177+#: qml/Panel/Indicators/MenuItemFactory.qml:589
178+msgid "Paused, tap to resume"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:591
182+msgid "Canceled"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:593
186+msgid "Finished"
187+msgstr ""
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:595
190+msgid "Failed, tap to retry"
191+msgstr ""
192+
169#: qml/Panel/SearchIndicator.qml:27
193#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
194msgid "Search"
171msgstr "Leita"
195msgstr "Leita"
172
196
173−#: qml/Shell.qml:334
197+#: qml/Shell.qml:359
174#, qt-format
198#, qt-format
175msgid "Please enter %1"
199msgid "Please enter %1"
176msgstr ""
200msgstr ""
po/it.po+34−10
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11−"PO-Revision-Date: 2014-06-10 12:08+0000\n"
11+"PO-Revision-Date: 2014-07-09 07:07+0000\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
12"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
13"Language-Team: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-10 07:29+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Blocca nel Launcher"
23+msgstr "Blocca scorciatoia"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Sblocca dal Launcher"
27+msgstr "Sblocca scorciatoia"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -87,7 +87,7 @@ msgstr "Chiamata di emergenza"
87msgid "OK"
87msgid "OK"
88msgstr "OK"
88msgstr "OK"
89
89
90−#: qml/Components/PageHeader.qml:365
90+#: qml/Components/PageHeader.qml:366
91msgid "Recent searches"
91msgid "Recent searches"
92msgstr "Ricerche recenti"
92msgstr "Ricerche recenti"
93
93
@@ -172,11 +172,35 @@ msgstr "Mostra password"
172msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
173msgstr "Inserire il codice PIN"
173msgstr "Inserire il codice PIN"
174
174
175+#: qml/Panel/Indicators/MenuItemFactory.qml:583
176+msgid "In queue…"
177+msgstr "In coda..."
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:587
180+msgid "Downloading"
181+msgstr "Scaricamento in corso"
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:589
184+msgid "Paused, tap to resume"
185+msgstr "In pausa. Tocca per riprendere"
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:591
188+msgid "Canceled"
189+msgstr "Annullato"
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:593
192+msgid "Finished"
193+msgstr "Completato"
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:595
196+msgid "Failed, tap to retry"
197+msgstr "Non riuscito. Tocca per riprovare"
198+
175#: qml/Panel/SearchIndicator.qml:27
199#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
200msgid "Search"
177msgstr "Cerca"
201msgstr "Cerca"
178
202
179−#: qml/Shell.qml:334
203+#: qml/Shell.qml:359
180#, qt-format
204#, qt-format
181msgid "Please enter %1"
205msgid "Please enter %1"
182msgstr "Inserire %1"
206msgstr "Inserire %1"
po/ja.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-18 07:01+0000\n"
11"PO-Revision-Date: 2014-01-18 07:01+0000\n"
12"Last-Translator: Shushi Kurose <md81bird@hitaki.net>\n"
12"Last-Translator: Shushi Kurose <md81bird@hitaki.net>\n"
13"Language-Team: Japanese <ja@li.org>\n"
13"Language-Team: Japanese <ja@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Launcherに登録"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Launcherへの登録を解除"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "最近の検索"
85msgstr "最近の検索"
86
86
@@ -165,11 +165,35 @@ msgstr "パスワードを表示"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "検索"
194msgstr "検索"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/km.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-19 01:42+0000\n"
11"PO-Revision-Date: 2014-05-19 01:42+0000\n"
12"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
12"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
13"Language-Team: Khmer <km@li.org>\n"
13"Language-Team: Khmer <km@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "ចាក់​សោ​​ទៅ​កម្មវិធី​ចាប់ផ្ដើម"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "ដោះសោ​ពី​កម្មវិធី​ចាប់ផ្ដើម"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,7 +84,7 @@ msgstr "ការ​ហៅ​ពេល​អាសន្ន"
84msgid "OK"
84msgid "OK"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/PageHeader.qml:365
87+#: qml/Components/PageHeader.qml:366
88msgid "Recent searches"
88msgid "Recent searches"
89msgstr "ការ​ស្វែងរក​ថ្មី"
89msgstr "ការ​ស្វែងរក​ថ្មី"
90
90
@@ -169,11 +169,35 @@ msgstr "បង្ហាញ​ពាក្យ​សម្ងាត់"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "បញ្ចូល​កូដ PIN របស់​ស៊ីមកាត"
170msgstr "បញ្ចូល​កូដ PIN របស់​ស៊ីមកាត"
171
171
172+#: qml/Panel/Indicators/MenuItemFactory.qml:583
173+msgid "In queue…"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:587
177+msgid "Downloading"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:589
181+msgid "Paused, tap to resume"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:591
185+msgid "Canceled"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:593
189+msgid "Finished"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:595
193+msgid "Failed, tap to retry"
194+msgstr ""
195+
172#: qml/Panel/SearchIndicator.qml:27
196#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
197msgid "Search"
174msgstr "ស្វែង​រក"
198msgstr "ស្វែង​រក"
175
199
176−#: qml/Shell.qml:334
200+#: qml/Shell.qml:359
177#, qt-format
201#, qt-format
178msgid "Please enter %1"
202msgid "Please enter %1"
179msgstr "សូម​បញ្ចូល %1"
203msgstr "សូម​បញ្ចូល %1"
po/kn.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kannada <kn@li.org>\n"
13"Language-Team: Kannada <kn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
85msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "ಹುಡುಕು"
194msgstr "ಹುಡುಕು"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/ko.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-10-10 07:04+0000\n"
11"PO-Revision-Date: 2013-10-10 07:04+0000\n"
12"Last-Translator: Kim Boram <boramism@gmail.com>\n"
12"Last-Translator: Kim Boram <boramism@gmail.com>\n"
13"Language-Team: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "최근 검색"
85msgstr "최근 검색"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "검색"
194msgstr "검색"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/ky.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Соңку издөөлөр"
85msgstr "Соңку издөөлөр"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Издөө"
194msgstr "Издөө"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/lo.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
13"Language-Team: Lao <lo@li.org>\n"
13"Language-Team: Lao <lo@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "ຊອກຫາ"
194msgstr "ຊອກຫາ"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "ກະລູນາປ້ອນ %1"
199msgstr "ກະລູນາປ້ອນ %1"
po/lt.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-19 17:15+0000\n"
11"PO-Revision-Date: 2014-05-19 17:15+0000\n"
12"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
12"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Palikti mygtukų juostoje"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Nelaikyti mygtukų juostoje"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -83,7 +83,7 @@ msgstr "Pagalbos skambutis"
83msgid "OK"
83msgid "OK"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/PageHeader.qml:365
86+#: qml/Components/PageHeader.qml:366
87msgid "Recent searches"
87msgid "Recent searches"
88msgstr "Paskiausios paieškos"
88msgstr "Paskiausios paieškos"
89
89
@@ -168,11 +168,35 @@ msgstr "Rodyti slaptažodį"
168msgid "Please enter SIM PIN"
168msgid "Please enter SIM PIN"
169msgstr "Įveskite SIM kortelės PIN kodą"
169msgstr "Įveskite SIM kortelės PIN kodą"
170
170
171+#: qml/Panel/Indicators/MenuItemFactory.qml:583
172+msgid "In queue…"
173+msgstr ""
174+
175+#: qml/Panel/Indicators/MenuItemFactory.qml:587
176+msgid "Downloading"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:589
180+msgid "Paused, tap to resume"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:591
184+msgid "Canceled"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:593
188+msgid "Finished"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:595
192+msgid "Failed, tap to retry"
193+msgstr ""
194+
171#: qml/Panel/SearchIndicator.qml:27
195#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
196msgid "Search"
173msgstr "Paieška"
197msgstr "Paieška"
174
198
175−#: qml/Shell.qml:334
199+#: qml/Shell.qml:359
176#, qt-format
200#, qt-format
177msgid "Please enter %1"
201msgid "Please enter %1"
178msgstr "Prašom įvesti %1"
202msgstr "Prašom įvesti %1"
po/lv.po+34−10
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-31 14:54+0000\n"
11"PO-Revision-Date: 2014-05-31 14:54+0000\n"
12−"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
12+"Last-Translator: Jānis-Marks Gailis <jm-gailis@fai-vianet.fr>\n"
13"Language-Team: Latvian <lv@li.org>\n"
13"Language-Team: Latvian <lv@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Pieslēgt palaidējam"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Atslēgt no palaidēja"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr "Neatliekamās Palīdzības zvans"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Nesen veiktās meklēšanas"
85msgstr "Nesen veiktās meklēšanas"
86
86
@@ -165,11 +165,35 @@ msgstr "Rādīt paroli"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr "Lūdzu ievadiet SIM PIN"
166msgstr "Lūdzu ievadiet SIM PIN"
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Meklēt"
194msgstr "Meklēt"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "Lūdzu ievadiet %1"
199msgstr "Lūdzu ievadiet %1"
po/ml.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-11-23 11:44+0000\n"
11"PO-Revision-Date: 2013-11-23 11:44+0000\n"
12"Last-Translator: Stym alfaZ <Unknown>\n"
12"Last-Translator: Stym alfaZ <Unknown>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "വിക്ഷേപികയില്‍ സ്ഥിരപ്പെടുത്തുക"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "വിക്ഷേപികാ സ്ഥിരപ്പെടുത്തല്‍ ഒഴിവാക്കുക"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,7 +82,7 @@ msgstr "അടിയന്തിര വിളി"
82msgid "OK"
82msgid "OK"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/PageHeader.qml:365
85+#: qml/Components/PageHeader.qml:366
86msgid "Recent searches"
86msgid "Recent searches"
87msgstr "സമീപകാല തിരയലുകള്‍"
87msgstr "സമീപകാല തിരയലുകള്‍"
88
88
@@ -167,11 +167,35 @@ msgstr "രഹസ്യവാക്ക് കാണിക്കുക"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr ""
168msgstr ""
169
169
170+#: qml/Panel/Indicators/MenuItemFactory.qml:583
171+msgid "In queue…"
172+msgstr ""
173+
174+#: qml/Panel/Indicators/MenuItemFactory.qml:587
175+msgid "Downloading"
176+msgstr ""
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:589
179+msgid "Paused, tap to resume"
180+msgstr ""
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:591
183+msgid "Canceled"
184+msgstr ""
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:593
187+msgid "Finished"
188+msgstr ""
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:595
191+msgid "Failed, tap to retry"
192+msgstr ""
193+
170#: qml/Panel/SearchIndicator.qml:27
194#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
195msgid "Search"
172msgstr "തിരയുക"
196msgstr "തിരയുക"
173
197
174−#: qml/Shell.qml:334
198+#: qml/Shell.qml:359
175#, qt-format
199#, qt-format
176msgid "Please enter %1"
200msgid "Please enter %1"
177msgstr "ദയവായി %1 നല്‍കുക"
201msgstr "ദയവായി %1 നല്‍കുക"
po/mr.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-14 19:54+0000\n"
11"PO-Revision-Date: 2014-01-14 19:54+0000\n"
12"Last-Translator: Rohan Deshmukh <Unknown>\n"
12"Last-Translator: Rohan Deshmukh <Unknown>\n"
13"Language-Team: Marathi <mr@li.org>\n"
13"Language-Team: Marathi <mr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/ms.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-17 09:05+0000\n"
11"PO-Revision-Date: 2014-01-17 09:05+0000\n"
12"Last-Translator: abuyop <Unknown>\n"
12"Last-Translator: abuyop <Unknown>\n"
13"Language-Team: Malay <ms@li.org>\n"
13"Language-Team: Malay <ms@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Kunci ke Pelancar"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Tanggalkan dari Pelancar"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr "panggilan Kecemasan"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Gelintar baru-baru ini"
85msgstr "Gelintar baru-baru ini"
86
86
@@ -165,11 +165,35 @@ msgstr "Tunjuk kata laluan"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Gelintar"
194msgstr "Gelintar"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "Sila masukkan %1"
199msgstr "Sila masukkan %1"
po/my.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-12-12 11:12+0000\n"
11"PO-Revision-Date: 2013-12-12 11:12+0000\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
12"Last-Translator: Pyae Sone <Unknown>\n"
13"Language-Team: Burmese <my@li.org>\n"
13"Language-Team: Burmese <my@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Launcher တွင်ထားမည်"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Launcher မှဖြုတ်မည်"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr "အရေးပေါ်ခေါ်မည်"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
85msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
86
86
@@ -165,11 +165,35 @@ msgstr "စကားဝှက်ကိုပြ"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "ရှာဖွေ"
194msgstr "ရှာဖွေ"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "%1ကိုရိုက်ထည့်ပါ"
199msgstr "%1ကိုရိုက်ထည့်ပါ"
po/nb.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-11 06:36+0000\n"
11"PO-Revision-Date: 2014-06-11 06:36+0000\n"
12"Last-Translator: Åka Sikrom <Unknown>\n"
12"Last-Translator: Åka Sikrom <Unknown>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Lås til oppstarter"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Lås opp fra oppstarter"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,7 +82,7 @@ msgstr "Nødanrop"
82msgid "OK"
82msgid "OK"
83msgstr "OK"
83msgstr "OK"
84
84
85−#: qml/Components/PageHeader.qml:365
85+#: qml/Components/PageHeader.qml:366
86msgid "Recent searches"
86msgid "Recent searches"
87msgstr "Nylige søk"
87msgstr "Nylige søk"
88
88
@@ -167,11 +167,35 @@ msgstr "Vis passord"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "Skriv inn PIN-koden til SIM-kortet"
168msgstr "Skriv inn PIN-koden til SIM-kortet"
169
169
170+#: qml/Panel/Indicators/MenuItemFactory.qml:583
171+msgid "In queue…"
172+msgstr ""
173+
174+#: qml/Panel/Indicators/MenuItemFactory.qml:587
175+msgid "Downloading"
176+msgstr ""
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:589
179+msgid "Paused, tap to resume"
180+msgstr ""
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:591
183+msgid "Canceled"
184+msgstr ""
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:593
187+msgid "Finished"
188+msgstr ""
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:595
191+msgid "Failed, tap to retry"
192+msgstr ""
193+
170#: qml/Panel/SearchIndicator.qml:27
194#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
195msgid "Search"
172msgstr "Søk"
196msgstr "Søk"
173
197
174−#: qml/Shell.qml:334
198+#: qml/Shell.qml:359
175#, qt-format
199#, qt-format
176msgid "Please enter %1"
200msgid "Please enter %1"
177msgstr "Skriv inn %1"
201msgstr "Skriv inn %1"
po/nl.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-15 16:42+0000\n"
11"PO-Revision-Date: 2014-01-15 16:42+0000\n"
12"Last-Translator: Hannie Dumoleyn <Unknown>\n"
12"Last-Translator: Hannie Dumoleyn <Unknown>\n"
13"Language-Team: Dutch <nl@li.org>\n"
13"Language-Team: Dutch <nl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "In Starter vastzetten"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Uit Starter verwijderen"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr "Noodoproep"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Recente zoekopdrachten"
85msgstr "Recente zoekopdrachten"
86
86
@@ -165,11 +165,35 @@ msgstr "Wachtwoord tonen"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Zoeken"
194msgstr "Zoeken"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "Voer %1 in"
199msgstr "Voer %1 in"
po/pl.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-27 15:20+0000\n"
11"PO-Revision-Date: 2014-05-27 15:20+0000\n"
12"Last-Translator: GTriderXC <gtriderxc@yahoo.com>\n"
12"Last-Translator: GTriderXC <gtriderxc@yahoo.com>\n"
13"Language-Team: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Dodaj do panelu uruchamiania"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Usuń z panelu uruchamiania"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,7 +84,7 @@ msgstr "Telefon ratunkowy"
84msgid "OK"
84msgid "OK"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/PageHeader.qml:365
87+#: qml/Components/PageHeader.qml:366
88msgid "Recent searches"
88msgid "Recent searches"
89msgstr "Ostatnie wyszukiwania"
89msgstr "Ostatnie wyszukiwania"
90
90
@@ -169,11 +169,35 @@ msgstr "Wyświetl hasło"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Wprowadź kod PIN karty SIM"
170msgstr "Wprowadź kod PIN karty SIM"
171
171
172+#: qml/Panel/Indicators/MenuItemFactory.qml:583
173+msgid "In queue…"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:587
177+msgid "Downloading"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:589
181+msgid "Paused, tap to resume"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:591
185+msgid "Canceled"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:593
189+msgid "Finished"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:595
193+msgid "Failed, tap to retry"
194+msgstr ""
195+
172#: qml/Panel/SearchIndicator.qml:27
196#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
197msgid "Search"
174msgstr "Szukaj"
198msgstr "Szukaj"
175
199
176−#: qml/Shell.qml:334
200+#: qml/Shell.qml:359
177#, qt-format
201#, qt-format
178msgid "Please enter %1"
202msgid "Please enter %1"
179msgstr "Wprowadź %1"
203msgstr "Wprowadź %1"
po/pt.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-14 19:18+0000\n"
11"PO-Revision-Date: 2014-01-14 19:18+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Portuguese <pt@li.org>\n"
13"Language-Team: Portuguese <pt@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/pt_BR.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-15 14:31+0000\n"
11"PO-Revision-Date: 2014-05-15 14:31+0000\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
12"Last-Translator: Rafael Neri <Unknown>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Bloquear no lançador"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Desbloquear do lançador"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,7 +84,7 @@ msgstr "Chamada de emergência"
84msgid "OK"
84msgid "OK"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/PageHeader.qml:365
87+#: qml/Components/PageHeader.qml:366
88msgid "Recent searches"
88msgid "Recent searches"
89msgstr "Pesquisas recentes"
89msgstr "Pesquisas recentes"
90
90
@@ -169,11 +169,35 @@ msgstr "Exibir senha"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Por favor, digite o PIN do cartão SIM"
170msgstr "Por favor, digite o PIN do cartão SIM"
171
171
172+#: qml/Panel/Indicators/MenuItemFactory.qml:583
173+msgid "In queue…"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:587
177+msgid "Downloading"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:589
181+msgid "Paused, tap to resume"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:591
185+msgid "Canceled"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:593
189+msgid "Finished"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:595
193+msgid "Failed, tap to retry"
194+msgstr ""
195+
172#: qml/Panel/SearchIndicator.qml:27
196#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
197msgid "Search"
174msgstr "Pesquisar"
198msgstr "Pesquisar"
175
199
176−#: qml/Shell.qml:334
200+#: qml/Shell.qml:359
177#, qt-format
201#, qt-format
178msgid "Please enter %1"
202msgid "Please enter %1"
179msgstr "Por favor, digite %1"
203msgstr "Por favor, digite %1"
po/ro.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Romanian <ro@li.org>\n"
13"Language-Team: Romanian <ro@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Căutări recente"
85msgstr "Căutări recente"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Căutare"
194msgstr "Căutare"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/ru.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-15 12:57+0000\n"
11"PO-Revision-Date: 2014-05-15 12:57+0000\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"
13"Language-Team: Russian <ru@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Закрепить на панели"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Убрать с панели"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -87,7 +87,7 @@ msgstr "Экстренный вызов"
87msgid "OK"
87msgid "OK"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Components/PageHeader.qml:365
90+#: qml/Components/PageHeader.qml:366
91msgid "Recent searches"
91msgid "Recent searches"
92msgstr "Последние поисковые запросы"
92msgstr "Последние поисковые запросы"
93
93
@@ -172,11 +172,35 @@ msgstr "Показать пароль"
172msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
173msgstr "Введите PIN код"
173msgstr "Введите PIN код"
174
174
175+#: qml/Panel/Indicators/MenuItemFactory.qml:583
176+msgid "In queue…"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:587
180+msgid "Downloading"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:589
184+msgid "Paused, tap to resume"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:591
188+msgid "Canceled"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:593
192+msgid "Finished"
193+msgstr ""
194+
195+#: qml/Panel/Indicators/MenuItemFactory.qml:595
196+msgid "Failed, tap to retry"
197+msgstr ""
198+
175#: qml/Panel/SearchIndicator.qml:27
199#: qml/Panel/SearchIndicator.qml:27
176msgid "Search"
200msgid "Search"
177msgstr "Поиск"
201msgstr "Поиск"
178
202
179−#: qml/Shell.qml:334
203+#: qml/Shell.qml:359
180#, qt-format
204#, qt-format
181msgid "Please enter %1"
205msgid "Please enter %1"
182msgstr "Пожалуйста, введите %1"
206msgstr "Пожалуйста, введите %1"
po/shn.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Shan <shn@li.org>\n"
13"Language-Team: Shan <shn@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/si.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/sl.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-23 09:29+0000\n"
11"PO-Revision-Date: 2014-06-23 09:29+0000\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
12"Last-Translator: Damir Jerovšek <Unknown>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
13"Language-Team: Slovenian <sl@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-24 06:33+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17065)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Zakleni na zaganjalnik"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Odkleni z zaganjalnika"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -84,7 +84,7 @@ msgstr "Klic v sili"
84msgid "OK"
84msgid "OK"
85msgstr "V REDU"
85msgstr "V REDU"
86
86
87−#: qml/Components/PageHeader.qml:365
87+#: qml/Components/PageHeader.qml:366
88msgid "Recent searches"
88msgid "Recent searches"
89msgstr "Nedavna iskanja"
89msgstr "Nedavna iskanja"
90
90
@@ -169,11 +169,35 @@ msgstr "Pokaži geslo"
169msgid "Please enter SIM PIN"
169msgid "Please enter SIM PIN"
170msgstr "Vnesite PIN kartice SIM"
170msgstr "Vnesite PIN kartice SIM"
171
171
172+#: qml/Panel/Indicators/MenuItemFactory.qml:583
173+msgid "In queue…"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:587
177+msgid "Downloading"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:589
181+msgid "Paused, tap to resume"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:591
185+msgid "Canceled"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:593
189+msgid "Finished"
190+msgstr ""
191+
192+#: qml/Panel/Indicators/MenuItemFactory.qml:595
193+msgid "Failed, tap to retry"
194+msgstr ""
195+
172#: qml/Panel/SearchIndicator.qml:27
196#: qml/Panel/SearchIndicator.qml:27
173msgid "Search"
197msgid "Search"
174msgstr "Iskanje"
198msgstr "Iskanje"
175
199
176−#: qml/Shell.qml:334
200+#: qml/Shell.qml:359
177#, qt-format
201#, qt-format
178msgid "Please enter %1"
202msgid "Please enter %1"
179msgstr "Vnesite %1"
203msgstr "Vnesite %1"
po/sq.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-15 13:51+0000\n"
11"PO-Revision-Date: 2014-01-15 13:51+0000\n"
12"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
12"Last-Translator: Besmir Zanaj <besmirzanaj@gmail.com>\n"
13"Language-Team: Albanian <sq@li.org>\n"
13"Language-Team: Albanian <sq@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:50+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:36+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -81,7 +81,7 @@ msgstr ""
81msgid "OK"
81msgid "OK"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/PageHeader.qml:365
84+#: qml/Components/PageHeader.qml:366
85msgid "Recent searches"
85msgid "Recent searches"
86msgstr ""
86msgstr ""
87
87
@@ -166,11 +166,35 @@ msgstr ""
166msgid "Please enter SIM PIN"
166msgid "Please enter SIM PIN"
167msgstr ""
167msgstr ""
168
168
169+#: qml/Panel/Indicators/MenuItemFactory.qml:583
170+msgid "In queue…"
171+msgstr ""
172+
173+#: qml/Panel/Indicators/MenuItemFactory.qml:587
174+msgid "Downloading"
175+msgstr ""
176+
177+#: qml/Panel/Indicators/MenuItemFactory.qml:589
178+msgid "Paused, tap to resume"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:591
182+msgid "Canceled"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:593
186+msgid "Finished"
187+msgstr ""
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:595
190+msgid "Failed, tap to retry"
191+msgstr ""
192+
169#: qml/Panel/SearchIndicator.qml:27
193#: qml/Panel/SearchIndicator.qml:27
170msgid "Search"
194msgid "Search"
171msgstr ""
195msgstr ""
172
196
173−#: qml/Shell.qml:334
197+#: qml/Shell.qml:359
174#, qt-format
198#, qt-format
175msgid "Please enter %1"
199msgid "Please enter %1"
176msgstr ""
200msgstr ""
po/sr.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Serbian <sr@li.org>\n"
13"Language-Team: Serbian <sr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Скорашње претраге"
85msgstr "Скорашње претраге"
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Претрага"
194msgstr "Претрага"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/sv.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-07 19:14+0000\n"
11"PO-Revision-Date: 2014-06-07 19:14+0000\n"
12"Last-Translator: mikasjoman <Unknown>\n"
12"Last-Translator: mikasjoman <Unknown>\n"
13"Language-Team: Swedish <sv@li.org>\n"
13"Language-Team: Swedish <sv@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr "Nödsamtal"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr "Visa lösenord"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Sök"
194msgstr "Sök"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "Vänligen fyll i %1"
199msgstr "Vänligen fyll i %1"
po/sw.po+32−8
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-14 19:28+0000\n"
11"PO-Revision-Date: 2014-01-14 19:28+0000\n"
12−"Last-Translator: Damas Mlabwa <Unknown>\n"
12+"Last-Translator: Damas <Unknown>\n"
13"Language-Team: Swahili <sw@li.org>\n"
13"Language-Team: Swahili <sw@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "Tafuta"
194msgstr "Tafuta"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/ta.po+31−7
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
12"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
12"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19"Language: ta\n"
19"Language: ta\n"
20
20
21#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:73
22#: plugins/Unity/Launcher/launcheritem.cpp:73
23−msgid "Lock to Launcher"
23+msgid "Pin shortcut"
24msgstr ""
24msgstr ""
25
25
26#: plugins/Unity/Launcher/launcheritem.cpp:73
26#: plugins/Unity/Launcher/launcheritem.cpp:73
27−msgid "Unlock from Launcher"
27+msgid "Unpin shortcut"
28msgstr ""
28msgstr ""
29
29
30#: qml/Components/EdgeDemoOverlay.qml:151
30#: qml/Components/EdgeDemoOverlay.qml:151
@@ -83,7 +83,7 @@ msgstr "அவசர அழைப்பு"
83msgid "OK"
83msgid "OK"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/PageHeader.qml:365
86+#: qml/Components/PageHeader.qml:366
87msgid "Recent searches"
87msgid "Recent searches"
88msgstr "கடையாக தேடப்பட்டவைகள்"
88msgstr "கடையாக தேடப்பட்டவைகள்"
89
89
@@ -168,11 +168,35 @@ msgstr ""
168msgid "Please enter SIM PIN"
168msgid "Please enter SIM PIN"
169msgstr ""
169msgstr ""
170
170
171+#: qml/Panel/Indicators/MenuItemFactory.qml:583
172+msgid "In queue…"
173+msgstr ""
174+
175+#: qml/Panel/Indicators/MenuItemFactory.qml:587
176+msgid "Downloading"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:589
180+msgid "Paused, tap to resume"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:591
184+msgid "Canceled"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:593
188+msgid "Finished"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:595
192+msgid "Failed, tap to retry"
193+msgstr ""
194+
171#: qml/Panel/SearchIndicator.qml:27
195#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
196msgid "Search"
173msgstr "தெடு"
197msgstr "தெடு"
174
198
175−#: qml/Shell.qml:334
199+#: qml/Shell.qml:359
176#, qt-format
200#, qt-format
177msgid "Please enter %1"
201msgid "Please enter %1"
178msgstr "தயவுச்செய்து %1 உள்ளிடு"
202msgstr "தயவுச்செய்து %1 உள்ளிடு"
po/te.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Telugu <te@li.org>\n"
13"Language-Team: Telugu <te@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/tr.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-05-19 12:52+0000\n"
11"PO-Revision-Date: 2014-05-19 12:52+0000\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
12"Last-Translator: Volkan Gezer <Unknown>\n"
13"Language-Team: Turkish <tr@li.org>\n"
13"Language-Team: Turkish <tr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Başlatıcıya Sabitle"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Başlatıcıdan Ayır"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -83,7 +83,7 @@ msgstr "Acil Arama"
83msgid "OK"
83msgid "OK"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/PageHeader.qml:365
86+#: qml/Components/PageHeader.qml:366
87msgid "Recent searches"
87msgid "Recent searches"
88msgstr "Son aramalar"
88msgstr "Son aramalar"
89
89
@@ -168,11 +168,35 @@ msgstr "Parolayı göster"
168msgid "Please enter SIM PIN"
168msgid "Please enter SIM PIN"
169msgstr "Lütfen SIM PIN'inizi girin"
169msgstr "Lütfen SIM PIN'inizi girin"
170
170
171+#: qml/Panel/Indicators/MenuItemFactory.qml:583
172+msgid "In queue…"
173+msgstr ""
174+
175+#: qml/Panel/Indicators/MenuItemFactory.qml:587
176+msgid "Downloading"
177+msgstr ""
178+
179+#: qml/Panel/Indicators/MenuItemFactory.qml:589
180+msgid "Paused, tap to resume"
181+msgstr ""
182+
183+#: qml/Panel/Indicators/MenuItemFactory.qml:591
184+msgid "Canceled"
185+msgstr ""
186+
187+#: qml/Panel/Indicators/MenuItemFactory.qml:593
188+msgid "Finished"
189+msgstr ""
190+
191+#: qml/Panel/Indicators/MenuItemFactory.qml:595
192+msgid "Failed, tap to retry"
193+msgstr ""
194+
171#: qml/Panel/SearchIndicator.qml:27
195#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
196msgid "Search"
173msgstr "Ara"
197msgstr "Ara"
174
198
175−#: qml/Shell.qml:334
199+#: qml/Shell.qml:359
176#, qt-format
200#, qt-format
177msgid "Please enter %1"
201msgid "Please enter %1"
178msgstr "Lütfen %1 girin"
202msgstr "Lütfen %1 girin"
po/ug.po+34−10
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11−"PO-Revision-Date: 2014-06-13 21:07+0000\n"
11+"PO-Revision-Date: 2014-07-09 23:27+0000\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
13"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-10 07:29+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "ئىجراچىغا سولىۋەت"
23+msgstr "تېزلەتمىنى قوي"
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "ئىجراچىدىن چىقار"
27+msgstr "تېزلەتمىنى ئېلىۋەت"
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -82,7 +82,7 @@ msgstr "جىددىي تېلېفون"
82msgid "OK"
82msgid "OK"
83msgstr "تامام"
83msgstr "تامام"
84
84
85−#: qml/Components/PageHeader.qml:365
85+#: qml/Components/PageHeader.qml:366
86msgid "Recent searches"
86msgid "Recent searches"
87msgstr "يېقىنقى ئىزدەشلەر"
87msgstr "يېقىنقى ئىزدەشلەر"
88
88
@@ -167,11 +167,35 @@ msgstr "ئىم كۆرسەت"
167msgid "Please enter SIM PIN"
167msgid "Please enter SIM PIN"
168msgstr "سىم(SIM) كارتىڭىزنىڭ PIN نومۇرىنى كىرگۈزۈڭ"
168msgstr "سىم(SIM) كارتىڭىزنىڭ PIN نومۇرىنى كىرگۈزۈڭ"
169
169
170+#: qml/Panel/Indicators/MenuItemFactory.qml:583
171+msgid "In queue…"
172+msgstr ""
173+
174+#: qml/Panel/Indicators/MenuItemFactory.qml:587
175+msgid "Downloading"
176+msgstr "چۈشۈرۈۋاتىدۇ"
177+
178+#: qml/Panel/Indicators/MenuItemFactory.qml:589
179+msgid "Paused, tap to resume"
180+msgstr ""
181+
182+#: qml/Panel/Indicators/MenuItemFactory.qml:591
183+msgid "Canceled"
184+msgstr "قالدۇرۇۋېتىلدى"
185+
186+#: qml/Panel/Indicators/MenuItemFactory.qml:593
187+msgid "Finished"
188+msgstr "تاماملاندى"
189+
190+#: qml/Panel/Indicators/MenuItemFactory.qml:595
191+msgid "Failed, tap to retry"
192+msgstr "مەغلۇپ بولدى، چېكىپ قايتا سىناڭ"
193+
170#: qml/Panel/SearchIndicator.qml:27
194#: qml/Panel/SearchIndicator.qml:27
171msgid "Search"
195msgid "Search"
172msgstr "ئىزدە"
196msgstr "ئىزدە"
173
197
174−#: qml/Shell.qml:334
198+#: qml/Shell.qml:359
175#, qt-format
199#, qt-format
176msgid "Please enter %1"
200msgid "Please enter %1"
177msgstr "%1 نى كىرگۈزۈڭ"
201msgstr "%1 نى كىرگۈزۈڭ"
po/uk.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-08 19:09+0000\n"
11"PO-Revision-Date: 2014-06-08 19:09+0000\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
12"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "Зафіксувати на панелі запуску"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "Від’єднати від панелі запуску"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -85,7 +85,7 @@ msgstr "Терміновий виклик"
85msgid "OK"
85msgid "OK"
86msgstr "Гаразд"
86msgstr "Гаразд"
87
87
88−#: qml/Components/PageHeader.qml:365
88+#: qml/Components/PageHeader.qml:366
89msgid "Recent searches"
89msgid "Recent searches"
90msgstr "Нещодавні пошуки"
90msgstr "Нещодавні пошуки"
91
91
@@ -170,11 +170,35 @@ msgstr "Показати пароль"
170msgid "Please enter SIM PIN"
170msgid "Please enter SIM PIN"
171msgstr "Введіть PIN-код SIM-картки"
171msgstr "Введіть PIN-код SIM-картки"
172
172
173+#: qml/Panel/Indicators/MenuItemFactory.qml:583
174+msgid "In queue…"
175+msgstr ""
176+
177+#: qml/Panel/Indicators/MenuItemFactory.qml:587
178+msgid "Downloading"
179+msgstr ""
180+
181+#: qml/Panel/Indicators/MenuItemFactory.qml:589
182+msgid "Paused, tap to resume"
183+msgstr ""
184+
185+#: qml/Panel/Indicators/MenuItemFactory.qml:591
186+msgid "Canceled"
187+msgstr ""
188+
189+#: qml/Panel/Indicators/MenuItemFactory.qml:593
190+msgid "Finished"
191+msgstr ""
192+
193+#: qml/Panel/Indicators/MenuItemFactory.qml:595
194+msgid "Failed, tap to retry"
195+msgstr ""
196+
173#: qml/Panel/SearchIndicator.qml:27
197#: qml/Panel/SearchIndicator.qml:27
174msgid "Search"
198msgid "Search"
175msgstr "Пошук"
199msgstr "Пошук"
176
200
177−#: qml/Shell.qml:334
201+#: qml/Shell.qml:359
178#, qt-format
202#, qt-format
179msgid "Please enter %1"
203msgid "Please enter %1"
180msgstr "Будь ласка, введіть %1"
204msgstr "Будь ласка, введіть %1"
po/vi.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-15 01:19+0000\n"
11"PO-Revision-Date: 2014-01-15 01:19+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Vietnamese <vi@li.org>\n"
13"Language-Team: Vietnamese <vi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/xh.po+31−7
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23msgstr ""
23msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr ""
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr ""
85msgstr ""
86
86
@@ -165,11 +165,35 @@ msgstr ""
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr ""
194msgstr ""
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
po/zh_CN.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-06-12 08:55+0000\n"
11"PO-Revision-Date: 2014-06-12 08:55+0000\n"
12"Last-Translator: Shengjing Zhu <Unknown>\n"
12"Last-Translator: Shengjing Zhu <Unknown>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "固定到启动器"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "从启动器移除"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr "紧急电话"
80msgid "OK"
80msgid "OK"
81msgstr "确定"
81msgstr "确定"
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "近期搜索"
85msgstr "近期搜索"
86
86
@@ -165,11 +165,35 @@ msgstr "显示密码"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr "请输入 SIM PIN"
166msgstr "请输入 SIM PIN"
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "搜索"
194msgstr "搜索"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "请输入 %1"
199msgstr "请输入 %1"
po/zh_HK.po+33−9
@@ -7,24 +7,24 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-25 13:32+0000\n"
11"PO-Revision-Date: 2014-01-25 13:32+0000\n"
12"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
12"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
13"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
13"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "鎖定至啟動器"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27−msgstr "從啟動器解除鎖定"
27+msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
30msgid "Skip intro"
30msgid "Skip intro"
@@ -80,7 +80,7 @@ msgstr "緊急電話"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "最近的搜尋"
85msgstr "最近的搜尋"
86
86
@@ -165,11 +165,35 @@ msgstr "顯示密碼"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "搜尋"
194msgstr "搜尋"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr "請輸入 %1"
199msgstr "請輸入 %1"
po/zh_TW.po+32−8
@@ -7,23 +7,23 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-06-13 09:55+0200\n"
10+"POT-Creation-Date: 2014-07-07 12:15+0100\n"
11"PO-Revision-Date: 2014-01-16 06:04+0000\n"
11"PO-Revision-Date: 2014-01-16 06:04+0000\n"
12"Last-Translator: Henry Yang <henry9846@hotmail.com>\n"
12"Last-Translator: Henry Yang <henry9846@hotmail.com>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
13"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17−"X-Launchpad-Export-Date: 2014-06-17 06:51+0000\n"
17+"X-Launchpad-Export-Date: 2014-07-09 06:37+0000\n"
18−"X-Generator: Launchpad (build 17045)\n"
18+"X-Generator: Launchpad (build 17100)\n"
19
19
20#: plugins/Unity/Launcher/launcheritem.cpp:43
20#: plugins/Unity/Launcher/launcheritem.cpp:43
21#: plugins/Unity/Launcher/launcheritem.cpp:73
21#: plugins/Unity/Launcher/launcheritem.cpp:73
22−msgid "Lock to Launcher"
22+msgid "Pin shortcut"
23−msgstr "鎖定至啟動欄"
23+msgstr ""
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:73
25#: plugins/Unity/Launcher/launcheritem.cpp:73
26−msgid "Unlock from Launcher"
26+msgid "Unpin shortcut"
27msgstr ""
27msgstr ""
28
28
29#: qml/Components/EdgeDemoOverlay.qml:151
29#: qml/Components/EdgeDemoOverlay.qml:151
@@ -80,7 +80,7 @@ msgstr "緊急連絡"
80msgid "OK"
80msgid "OK"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:365
83+#: qml/Components/PageHeader.qml:366
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "最近搜尋"
85msgstr "最近搜尋"
86
86
@@ -165,11 +165,35 @@ msgstr "顯示密碼"
165msgid "Please enter SIM PIN"
165msgid "Please enter SIM PIN"
166msgstr ""
166msgstr ""
167
167
168+#: qml/Panel/Indicators/MenuItemFactory.qml:583
169+msgid "In queue…"
170+msgstr ""
171+
172+#: qml/Panel/Indicators/MenuItemFactory.qml:587
173+msgid "Downloading"
174+msgstr ""
175+
176+#: qml/Panel/Indicators/MenuItemFactory.qml:589
177+msgid "Paused, tap to resume"
178+msgstr ""
179+
180+#: qml/Panel/Indicators/MenuItemFactory.qml:591
181+msgid "Canceled"
182+msgstr ""
183+
184+#: qml/Panel/Indicators/MenuItemFactory.qml:593
185+msgid "Finished"
186+msgstr ""
187+
188+#: qml/Panel/Indicators/MenuItemFactory.qml:595
189+msgid "Failed, tap to retry"
190+msgstr ""
191+
168#: qml/Panel/SearchIndicator.qml:27
192#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
193msgid "Search"
170msgstr "搜尋"
194msgstr "搜尋"
171
195
172−#: qml/Shell.qml:334
196+#: qml/Shell.qml:359
173#, qt-format
197#, qt-format
174msgid "Please enter %1"
198msgid "Please enter %1"
175msgstr ""
199msgstr ""
qml/Components/BaseCarouselDelegate.qml+19
@@ -17,7 +17,26 @@
17import QtQuick 2.0
17import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19
19
20+/*!
21+ \brief Base delegate for use with the Carousel component
22+
23+ Use this as the base of your component in a Carousel, the properties
24+ will get updated and signals emitted accordingly.
25+*/
26+
20Item {
27Item {
28+ /// True if this item is currently "focused" in the carousel.
21 property bool explicitlyScaled
29 property bool explicitlyScaled
30+
31+ /// Model index for this delegate.
32+ property int index
33+
34+ /// Model data for this delegate.
22 property var model
35 property var model
36+
37+ /// Will be emitted when the item is tapped.
38+ signal clicked
39+
40+ /// Will be emitted when the item is long-pressed.
41+ signal pressAndHold
23}
42}
qml/Components/Carousel.qml+5−14
@@ -52,16 +52,6 @@ Item {
52 /// exposes the distance to the next row (only one row in carousel, so it's the topMargins)
52 /// exposes the distance to the next row (only one row in carousel, so it's the topMargins)
53 readonly property alias verticalSpacing: listView.verticalMargin
53 readonly property alias verticalSpacing: listView.verticalMargin
54
54
55− /// Emitted when the user clicked on an item
56− /// @param index is the index of the clicked item
57− /// @param itemY is y of the clicked delegate
58− signal clicked(int index, real itemY)
59−
60− /// Emitted when the user pressed and held on an item
61− /// @param index is the index of the held item
62− /// @param itemY is y of the held delegate
63− signal pressAndHold(int index, real itemY)
64−
65 implicitHeight: listView.tileHeight * selectedItemScaleFactor
55 implicitHeight: listView.tileHeight * selectedItemScaleFactor
66 opacity: listView.highlightIndex === -1 ? 1 : 0.6
56 opacity: listView.highlightIndex === -1 ? 1 : 0.6
67
57
@@ -167,7 +157,7 @@ Item {
167 /* We're clicking the selected item and
157 /* We're clicking the selected item and
168 we're in the neighbourhood of radius 1 pixel from it.
158 we're in the neighbourhood of radius 1 pixel from it.
169 Let's emit the clicked signal. */
159 Let's emit the clicked signal. */
170− carousel.clicked(index, delegateItem.y)
160+ delegateItem.clicked()
171 return
161 return
172 }
162 }
173
163
@@ -185,7 +175,7 @@ Item {
185 /* We're pressAndHold the selected item and
175 /* We're pressAndHold the selected item and
186 we're in the neighbourhood of radius 1 pixel from it.
176 we're in the neighbourhood of radius 1 pixel from it.
187 Let's emit the pressAndHold signal. */
177 Let's emit the pressAndHold signal. */
188− carousel.pressAndHold(index, delegateItem.y);
178+ delegateItem.pressAndHold();
189 return;
179 return;
190 }
180 }
191
181
@@ -316,8 +306,9 @@ Item {
316 }
306 }
317
307
318 onLoaded: {
308 onLoaded: {
319− item.explicitlyScaled = Qt.binding(function() { return explicitlyScaled; })
309+ item.explicitlyScaled = Qt.binding(function() { return explicitlyScaled; });
310+ item.index = Qt.binding(function() { return index; });
320− item.model = Qt.binding(function() { return model; })
311+ item.model = Qt.binding(function() { return model; });
321 }
312 }
322
313
323 MouseArea {
314 MouseArea {
qml/Components/ListItems/Header.qml+1
@@ -24,6 +24,7 @@ Item {
24 \qmlproperty string text
24 \qmlproperty string text
25 */
25 */
26 property alias text: label.text
26 property alias text: label.text
27+ property alias textColor: label.color
27 property alias image: image.source
28 property alias image: image.source
28
29
29 signal clicked(variant mouse)
30 signal clicked(variant mouse)
qml/Components/PageHeader.qml+221−313
@@ -14,386 +14,294 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17−import QtQuick 2.0
17+import QtQuick 2.2
18+import Ubuntu.Components 1.1
18−import Ubuntu.Components 0.1
19+import Ubuntu.Components.Themes.Ambiance 1.1
19−import Ubuntu.Components.Popups 0.1
20+import Ubuntu.Components.Popups 1.0
20−import Ubuntu.Components.ListItems 0.1 as ListItem
21+import Ubuntu.Components.ListItems 1.0
21−import Unity 0.2
22+import "SearchHistoryModel"
22
23
23Item {
24Item {
24 id: root
25 id: root
26+ objectName: "pageHeader"
27+ implicitHeight: headerContainer.height + units.gu(2) + bottomContainer.height
28+
29+ property bool showBackButton: false
30+ property string title
31+
25 property bool searchEntryEnabled: false
32 property bool searchEntryEnabled: false
33+ property ListModel searchHistory: SearchHistoryModel
26− property alias searchQuery: searchField.text
34+ property alias searchQuery: searchTextField.text
27− property ListModel searchHistory
35+ property bool searchInProgress: false
28− property var scope: null
36+
29− property alias childItem: itemContainer.children
30 property alias bottomItem: bottomContainer.children
37 property alias bottomItem: bottomContainer.children
31− property alias showBackButton: backButton.visible
32
38
33− signal backClicked
39+ // TODO We should use foreground for the icons
40+ // of the toolbar but unfortunately Action does not have
41+ // the keyColor property as Icon does :-/
42+ property var scopeStyle: null
34
43
35− height: header.height + units.gu(2) + bottomContainer.height
44+ signal backClicked()
36− implicitHeight: header.height + units.gu(2) + bottomContainer.height
45+
46+ onScopeStyleChanged: refreshLogo()
37
47
38 function triggerSearch() {
48 function triggerSearch() {
39− if (searchEntryEnabled) searchField.forceActiveFocus()
49+ if (searchEntryEnabled) {
50+ headerContainer.showSearch = true;
51+ searchTextField.forceActiveFocus();
52+ }
40 }
53 }
41
54
42− function resetSearch() {
55+ function resetSearch(keepFocus) {
43− if (!searchHistory) return;
56+ if (searchHistory) {
44−
45− searchHistory.addQuery(searchField.text);
57+ searchHistory.addQuery(searchTextField.text);
58+ }
59+ if (!keepFocus) {
46− unfocus();
60+ unfocus();
47− searchField.text = "";
61+ }
62+ searchTextField.text = "";
63+ if (headerContainer.popover != null) {
64+ PopupUtils.close(headerContainer.popover);
65+ }
48 }
66 }
49
67
50 function unfocus() {
68 function unfocus() {
51− searchField.focus = false;
69+ searchTextField.focus = false;
70+ if (!searchTextField.text) {
71+ headerContainer.showSearch = false;
72+ }
52 }
73 }
53
74
54− Connections {
75+ function openSearchHistory() {
55− target: greeter
76+ if (openSearchAnimation.running) {
56− onShownChanged: if (shown) resetSearch()
77+ openSearchAnimation.openSearchHistory = true;
78+ } else if (root.searchHistory.count > 0 && headerContainer.popover == null) {
79+ headerContainer.popover = PopupUtils.open(popoverComponent, searchTextField,
80+ {
81+ "contentWidth": searchTextField.width,
82+ "edgeMargins": units.gu(1)
83+ }
84+ );
85+ }
57 }
86 }
58
87
59− Flickable {
88+ function refreshLogo() {
60− id: header
89+ if (scopeStyle ? scopeStyle.headerLogo != "" : false) {
61− anchors {
90+ header.contents = imageComponent.createObject();
62− left: parent.left
91+ } else if (header.contents) {
63− right: parent.right
92+ header.contents.destroy();
64− top: parent.top
93+ header.contents = null;
65 }
94 }
66− height: units.gu(6.5)
95+ }
67−
68− interactive: false
69− contentHeight: headerContainer.height
70− clip: true
71−
72− contentY: searchField.activeFocus || searchField.text != "" ? searchContainer.y : headerContainer.y
73
96
74− Behavior on contentY { NumberAnimation { duration: 200; easing.type: Easing.OutQuad } }
97+ Connections {
98+ target: root.scopeStyle
99+ onHeaderLogoChanged: root.refreshLogo()
100+ }
75
101
76− AbstractButton {
102+ InverseMouseArea {
77− id: backButton
103+ anchors { fill: parent; margins: units.gu(1); bottomMargin: units.gu(3) + bottomContainer.height }
78− objectName: root.objectName + "_backButton"
104+ visible: headerContainer.showSearch
79− visible: false
105+ onPressed: {
80− height: header.height
106+ if (headerContainer.popover) {
81− y: header.contentY
107+ PopupUtils.close(headerContainer.popover);
82− anchors {
83− left: parent.left
84− leftMargin: visible ? units.gu(2) : 0
85 }
108 }
86− width: visible ? image.width + units.gu(2) : 0
109+ if (!searchTextField.text) {
87− onClicked: root.backClicked();
110+ headerContainer.showSearch = false;
88− Image {
89− id: image
90− anchors.centerIn: parent
91− source: "graphics/headerback.png"
92 }
111 }
112+ searchTextField.focus = false;
113+ mouse.accepted = false;
93 }
114 }
115+ }
94
116
95− // FIXME this could potentially be simplified to avoid all the containers
117+ Flickable {
96− Item {
97− id: headerContainer
118+ id: headerContainer
98−
99− anchors {
100− left: backButton.right
101− right: parent.right
102− }
103− height: childrenRect.height
104−
105− Item {
106− id: itemContainer
107−
108− width: searchContainer.narrowMode ? header.width : header.width - searchContainer.width
109− height: header.height
110− }
111−
112− Item {
113− id: searchContainer
114− objectName: "searchContainer"
119+ objectName: "headerContainer"
115−
120+ clip: true
116− visible: searchEntryEnabled
121+ anchors { left: parent.left; top: parent.top; right: parent.right }
117− property bool popoverShouldOpen: false
122+ height: units.gu(6.5)
118− property bool popoverShouldClose: false
123+ contentHeight: headersColumn.height
119−
124+ interactive: false
120− property bool narrowMode: parent.width < units.gu(80)
125+ contentY: showSearch ? 0 : height
121−
122− property bool active: searchField.text != "" || searchField.activeFocus
123− property var popover: null
124
126
125− anchors.right: headerContainer.right
127+ property bool showSearch: false
126− height: header.height
128+ property var popover: null
127
129
128− state:
130+ Behavior on contentY {
129− if (active && narrowMode) "narrowActive"
131+ UbuntuNumberAnimation {
130− else if (!active && narrowMode) "narrowInactive"
132+ id: openSearchAnimation
131− else if (active && !narrowMode) "active"
133+ property bool openSearchHistory: false
132− else if (!active && !narrowMode) "inactive"
133
134
134− onStateChanged: {
135+ onRunningChanged: {
135− if (state == "active" || state == "narrowActive") {
136+ if (!running && openSearchAnimation.openSearchHistory) {
136− popoverShouldOpen = true;
137+ openSearchAnimation.openSearchHistory = false;
137− popoverShouldClose = false;
138+ root.openSearchHistory();
138− } else {
139− popoverShouldOpen = false;
140− popoverShouldClose = true;
141 }
139 }
142 }
140 }
141+ }
142+ }
143
143
144− function openPopover() {
144+ Column {
145− if (searchHistory.count > 0) {
145+ id: headersColumn
146− searchContainer.popover = PopupUtils.open(popoverComponent, pointerPositioner,
146+ anchors { left: parent.left; right: parent.right }
147− {
147+
148− "contentWidth": searchField.width,
148+ PageHeadStyle {
149− "edgeMargins": units.gu(1)
149+ id: searchHeader
150+ anchors { left: parent.left; right: parent.right }
151+ height: headerContainer.height
152+ contentHeight: height
153+ separatorSource: ""
154+ // Required to keep PageHeadStyle noise down as it expects the Page's properties around.
155+ property var styledItem: searchHeader
156+ property string title
157+ property var config: PageHeadConfiguration {
158+ backAction: Action {
159+ iconName: "back"
160+ onTriggered: {
161+ root.resetSearch();
162+ headerContainer.showSearch = false;
150− }
163+ }
151− )
152 }
164 }
153− popoverShouldOpen = false;
154− popoverShouldClose = false;
155 }
165 }
156−
166+ property var contents: TextField {
157− function closePopover() {
167+ id: searchTextField
158− if (searchContainer.popover) {
168+ objectName: "searchTextField"
159− PopupUtils.close(searchContainer.popover);
169+ hasClearButton: false
160− searchContainer.popover = null;
170+ anchors {
171+ fill: parent
172+ leftMargin: units.gu(1)
173+ topMargin: units.gu(1)
174+ bottomMargin: units.gu(1)
175+ rightMargin: root.width > units.gu(60) ? root.width - units.gu(40) : units.gu(1)
161 }
176 }
162− popoverShouldOpen = false;
163− popoverShouldClose = false;
164− }
165−
166− onActiveFocusChanged: if (!activeFocus) { searchHistory.addQuery(searchField.text) }
167−
168− TextField {
169− id: searchField
170−
171− anchors.fill: parent
172− anchors.margins: units.gu(1)
173
177
174− inputMethodHints: Qt.ImhNoPredictiveText
178+ secondaryItem: AbstractButton {
175− hasClearButton: false
179+ height: searchTextField.height
180+ width: height
181+ enabled: searchTextField.text.length > 0
176
182
177− primaryItem: AbstractButton {
183+ Image {
178− enabled: searchField.text != "" && !searchIndicator.running
184+ objectName: "clearIcon"
179− onClicked: {
185+ anchors.fill: parent
180− if (searchField.text != "") {
186+ anchors.margins: units.gu(.75)
181− searchHistory.addQuery(searchField.text)
187+ source: "image://theme/clear"
182− searchField.text = ""
188+ opacity: searchTextField.text.length > 0 && !searchActivityIndicator.running
189+ visible: opacity > 0
190+ Behavior on opacity {
191+ UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
183 }
192 }
184 }
193 }
185− height: parent.height
186− width: height
187
194
188 ActivityIndicator {
195 ActivityIndicator {
189− id: searchIndicator
196+ id: searchActivityIndicator
190 objectName: "searchIndicator"
197 objectName: "searchIndicator"
191−
192− anchors {
198+ anchors.fill: parent
193− verticalCenter: parent.verticalCenter
199+ anchors.margins: units.gu(.75)
194− left: parent.left
200+ running: root.searchInProgress
195− leftMargin: units.gu(0.5)
196− }
197−
198− running: opacity > 0
201+ opacity: running ? 1 : 0
199− }
202+ Behavior on opacity {
200−
203+ UbuntuNumberAnimation { duration: UbuntuAnimation.FastDuration }
201− Image {
202− id: primaryImage
203− objectName: "primaryImage"
204− anchors {
205− verticalCenter: parent.verticalCenter
206− left: parent.left
207− leftMargin: units.gu(0.5)
208 }
204 }
209− width: units.gu(3)
210− height: units.gu(3)
211− visible: opacity > 0
212 }
205 }
213
206
214− Item {
207+ onClicked: {
215− id: pointerPositioner
208+ root.resetSearch(true);
216− anchors.left: parent.right
209+ root.openSearchHistory();
217− anchors.leftMargin: units.gu(0.5)
218− anchors.top: parent.bottom
219 }
210 }
220 }
211 }
221
212
222− onTextChanged: {
223− if (text != "") searchContainer.closePopover()
224− else if (text == "" && activeFocus) searchContainer.openPopover()
225− }
226−
227 onActiveFocusChanged: {
213 onActiveFocusChanged: {
228− if (!activeFocus) searchContainer.closePopover()
214+ if (activeFocus) {
215+ root.openSearchHistory();
216+ }
229 }
217 }
218+ }
219+ }
230
220
231− states: [
221+ PageHeadStyle {
232− State {
222+ id: header
233− name: "searching"
223+ objectName: "innerPageHeader"
234− when: scope && scope.searchInProgress
224+ anchors { left: parent.left; right: parent.right }
235− PropertyChanges { target: searchIndicator; running: true; opacity: 1 }
225+ height: headerContainer.height
236− PropertyChanges { target: primaryImage; opacity: 0 }
226+ contentHeight: height
237− },
227+ separatorSource: ""
238− State {
228+ textColor: root.scopeStyle ? root.scopeStyle.foreground : "grey"
239− name: "idle"
229+ property var styledItem: header
240− when: !scope || !scope.searchInProgress
230+ property string title: root.title
241− PropertyChanges { target: searchIndicator; opacity: 0 }
231+ property var config: PageHeadConfiguration {
242− PropertyChanges { target: primaryImage; opacity: 1 }
232+ backAction: Action {
233+ iconName: "back"
234+ visible: root.showBackButton
235+ onTriggered: {
236+ root.backClicked();
243 }
237 }
244− ]
238+ }
245
239
246− transitions: [
240+ actions: [
247− Transition {
241+ Action {
248− to: "searching"
242+ iconName: "search"
249− reversible: true
243+ visible: root.searchEntryEnabled
250− SequentialAnimation {
244+ onTriggered: {
251− NumberAnimation { target: primaryImage; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
245+ headerContainer.showSearch = true;
252− NumberAnimation { target: searchIndicator; property: "opacity"; duration: UbuntuAnimation.FastDuration; easing.type: Easing.Linear }
246+ searchTextField.forceActiveFocus();
253 }
247 }
254 }
248 }
255 ]
249 ]
256 }
250 }
257
251
258− states: [
252+ property var contents: null
259− State {
253+ Component.onCompleted: root.refreshLogo()
260− name: "wide"
261− AnchorChanges { target: itemContainer; anchors.top: headerContainer.top }
262− AnchorChanges { target: searchContainer; anchors.left: undefined; anchors.top: itemContainer.top }
263− },
264− State {
265− name: "narrow"
266− PropertyChanges { target: searchField; highlighted: true }
267− AnchorChanges { target: itemContainer; anchors.top: searchContainer.bottom }
268− AnchorChanges { target: searchContainer; anchors.left: headerContainer.left; anchors.top: headerContainer.top }
269− },
270− State {
271− name: "active"
272− extend: "wide"
273− PropertyChanges { target: searchContainer; width: units.gu(40) }
274− PropertyChanges { target: primaryImage; source: searchField.text ? "../Dash/graphics/icon_clear.png" : "../Dash/graphics/icon_search_active.png" }
275− PropertyChanges { target: searchField; highlighted: true }
276− },
277− State {
278− name: "inactive"
279− extend: "wide"
280− PropertyChanges { target: searchContainer; width: units.gu(25) }
281− PropertyChanges { target: primaryImage; source: "../Dash/graphics/icon_search_inactive.png" }
282− PropertyChanges { target: searchField; highlighted: false }
283− },
284− State {
285− name: "narrowActive"
286− extend: "narrow"
287− PropertyChanges { target: header; contentY: 0 }
288− PropertyChanges { target: primaryImage; source: searchField.text ? "../Dash/graphics/icon_clear.png" : "../Dash/graphics/icon_search_active.png" }
289− },
290− State {
291− name: "narrowInactive"
292− extend: "narrow"
293− PropertyChanges { target: header; contentY: header.height }
294− PropertyChanges { target: primaryImage; source: searchField.text ? "../Dash/graphics/icon_clear.png" : "../Dash/graphics/icon_search_active.png" }
295− }
296− ]
297−
298− transitions: [
299− Transition {
300− to: "active"
301− SequentialAnimation {
302− ParallelAnimation {
303− NumberAnimation { targets: [searchContainer, searchField]; property: "width"; duration: 200; easing.type: Easing.InOutQuad }
304− PropertyAction { target: primaryImage; property: "source" }
305− AnchorAnimation { targets: [searchContainer, itemContainer]; duration: 200; easing.type: Easing.InOutQuad }
306− }
307− ScriptAction { script: if (searchContainer.popoverShouldOpen) { searchContainer.openPopover(); } }
308− }
309− },
310− Transition {
311− to: "inactive"
312− ScriptAction { script: if (searchContainer.popoverShouldClose) { searchContainer.closePopover(); } }
313− NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.InOutQuad }
314− AnchorAnimation { targets: [searchContainer, itemContainer]; duration: 200; easing.type: Easing.InOutQuad }
315− },
316− Transition {
317− to: "narrowActive"
318− SequentialAnimation {
319− ParallelAnimation {
320− NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.OutQuad }
321− AnchorAnimation { targets: [searchContainer, itemContainer]; duration: 200; easing.type: Easing.InOutQuad }
322− }
323− ScriptAction { script: if (searchContainer.popoverShouldOpen) { searchContainer.openPopover(); } }
324− }
325− },
326− Transition {
327− to: "narrowInactive"
328− ScriptAction { script: if (searchContainer.popoverShouldClose) { searchContainer.closePopover(); } }
329− NumberAnimation { targets: [searchContainer, searchField] ; property: "width"; duration: 200; easing.type: Easing.OutQuad }
330− AnchorAnimation { targets: [searchContainer, itemContainer]; duration: 200; easing.type: Easing.InOutQuad }
331− }
332− ]
333
254
334 Component {
255 Component {
335− id: popoverComponent
256+ id: imageComponent
336− Popover {
337− id: popover
338−
339− // FIXME: this should go into the first item below, but enable: false
340− // prevents mouse events propagation
341− AbstractButton {
342− anchors {
343− top: parent.top
344− right: parent.right
345− }
346− height: units.gu(6)
347− width: height
348−
349− onClicked: searchContainer.closePopover()
350
257
351− Image {
258+ Item {
352− anchors.centerIn: parent
259+ anchors { fill: parent; topMargin: units.gu(1); bottomMargin: units.gu(1) }
353− width: units.gu(2)
260+ clip: true
354− height: units.gu(2)
261+ Image {
355− source: "../Dash/graphics/icon_listview_clear.png"
262+ objectName: "titleImage"
356− }
263+ anchors.fill: parent
264+ source: root.scopeStyle ? root.scopeStyle.headerLogo : ""
265+ fillMode: Image.PreserveAspectFit
266+ horizontalAlignment: Image.AlignLeft
267+ sourceSize.height: height
357 }
268 }
269+ }
270+ }
271+ }
272+ }
273+ }
358
274
359− Column {
275+ Component {
360− anchors {
276+ id: popoverComponent
361− top: parent.top
277+ Popover {
362− left: parent.left
278+ id: popover
363− right: parent.right
279+ autoClose: false
364− }
365−
366− ListItem.Standard { enabled: false; text: i18n.tr("Recent searches") }
367
280
368− Repeater {
281+ Component.onDestruction: {
369− id: recentSearches
282+ headerContainer.popover = null;
370− model: searchHistory
283+ }
371
284
372− delegate: ListItem.Standard {
285+ Column {
373− showDivider: index < recentSearches.count - 1
286+ anchors {
374− text: query
287+ top: parent.top
375− onClicked: {
288+ left: parent.left
376− searchHistory.addQuery(text)
289+ right: parent.right
377− searchField.text = text
378− }
379− }
380− }
381− }
382− }
383 }
290 }
384
291
385− InverseMouseArea {
292+ Repeater {
386− enabled: searchField.activeFocus
293+ id: recentSearches
294+ model: searchHistory
387
295
388− anchors {
296+ delegate: Standard {
389− top: parent.top
297+ showDivider: index < recentSearches.count - 1
390− left: parent.left
298+ text: query
391− right: parent.right
299+ onClicked: {
300+ searchHistory.addQuery(text);
301+ searchTextField.text = text;
302+ PopupUtils.close(popover);
303+ }
392 }
304 }
393−
394− height: searchContainer.popover ? parent.height + searchContainer.popover.contentHeight + units.gu(2) : parent.height
395−
396− onPressed: searchField.focus = false
397 }
305 }
398 }
306 }
399 }
307 }
@@ -402,7 +310,7 @@ Item {
402 BorderImage {
310 BorderImage {
403 id: bottomBorder
311 id: bottomBorder
404 anchors {
312 anchors {
405− top: header.bottom
313+ top: headerContainer.bottom
406 left: parent.left
314 left: parent.left
407 right: parent.right
315 right: parent.right
408 bottom: bottomContainer.top
316 bottom: bottomContainer.top
qml/Components/PageHeaderLabel.qmldeleted−41
@@ -1,41 +0,0 @@
1−/*
2− * Copyright (C) 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−import QtQuick 2.0
18−import Ubuntu.Components 0.1
19−
20−PageHeader {
21− property alias text: label.text
22−
23− childItem: Label {
24− id: label
25− anchors {
26− left: parent.left
27− leftMargin: units.gu(2)
28− right: parent.right
29− verticalCenter: parent.verticalCenter
30− }
31−
32− color: Theme.palette.selected.backgroundText
33− opacity: 0.8
34− font.family: "Ubuntu"
35− font.weight: Font.Light
36− fontSize: "x-large"
37− elide: Text.ElideRight
38− style: Text.Raised
39− styleColor: "black"
40− }
41−}
qml/Components/SearchHistoryModel.qml → qml/Components/SearchHistoryModel/SearchHistoryModel.qmlrenamed+1
@@ -14,6 +14,7 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17+pragma Singleton
17import QtQuick 2.0
18import QtQuick 2.0
18
19
19// TODO sanitize input, move to persistent storage
20// TODO sanitize input, move to persistent storage
qml/Components/SearchHistoryModel/qmldirnew file+1
@@ -0,0 +1 @@
1+singleton SearchHistoryModel 1.0 SearchHistoryModel.qml
qml/Components/graphics/headerback@27.pngdeleted

Binary file not shown.

qml/Dash/CardCarousel.qml+7−4
@@ -40,9 +40,6 @@ DashRenderer {
40 cacheBuffer: 1404 // 18px * 13gu * 6
40 cacheBuffer: 1404 // 18px * 13gu * 6
41 model: cardCarousel.model
41 model: cardCarousel.model
42
42
43− onClicked: cardCarousel.clicked(index, null)
44− onPressAndHold: cardCarousel.pressAndHold(index)
45−
46 property real fontScale: 1 / selectedItemScaleFactor
43 property real fontScale: 1 / selectedItemScaleFactor
47 property real headerHeight: cardTool.headerHeight / selectedItemScaleFactor
44 property real headerHeight: cardTool.headerHeight / selectedItemScaleFactor
48
45
@@ -51,11 +48,16 @@ DashRenderer {
51
48
52 property bool explicitlyScaled
49 property bool explicitlyScaled
53 property var model
50 property var model
51+ property int index
54 enabled: false
52 enabled: false
55
53
54+ objectName: "carouselDelegate" + index
55+
56+ function clicked() { cardCarousel.clicked(index, model.result) }
57+ function pressAndHold() { cardCarousel.pressAndHold(index, model.result) }
58+
56 sourceComponent: cardTool.cardComponent
59 sourceComponent: cardTool.cardComponent
57 onLoaded: {
60 onLoaded: {
58− item.objectName = "carouselDelegate" + index;
59 item.fixedHeaderHeight = Qt.binding(function() { return carousel.headerHeight; });
61 item.fixedHeaderHeight = Qt.binding(function() { return carousel.headerHeight; });
60 item.height = Qt.binding(function() { return cardTool.cardHeight; });
62 item.height = Qt.binding(function() { return cardTool.cardHeight; });
61 item.cardData = Qt.binding(function() { return model; });
63 item.cardData = Qt.binding(function() { return model; });
@@ -64,6 +66,7 @@ DashRenderer {
64 item.fontScale = Qt.binding(function() { return carousel.fontScale; });
66 item.fontScale = Qt.binding(function() { return carousel.fontScale; });
65 item.showHeader = Qt.binding(function() { return loader.explicitlyScaled; });
67 item.showHeader = Qt.binding(function() { return loader.explicitlyScaled; });
66 item.artShapeBorderSource = "none";
68 item.artShapeBorderSource = "none";
69+ item.scopeStyle = cardCarousel.scopeStyle;
67 }
70 }
68
71
69 BorderImage {
72 BorderImage {
qml/Dash/CardFilterGrid.qml+1
@@ -58,6 +58,7 @@ DashRenderer {
58 item.template = Qt.binding(function() { return cardTool.template; });
58 item.template = Qt.binding(function() { return cardTool.template; });
59 item.components = Qt.binding(function() { return cardTool.components; });
59 item.components = Qt.binding(function() { return cardTool.components; });
60 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
60 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
61+ item.scopeStyle = genericFilterGrid.scopeStyle;
61 }
62 }
62 Connections {
63 Connections {
63 target: loader.item
64 target: loader.item
qml/Dash/CardVerticalJournal.qml+2−1
@@ -31,7 +31,7 @@ DashRenderer {
31 // is special by the fact that it doesn't know how to calculate its implicit height unless we give it
31 // is special by the fact that it doesn't know how to calculate its implicit height unless we give it
32 // enough height that it can start creating its children so we make sure it has enough height for that
32 // enough height that it can start creating its children so we make sure it has enough height for that
33 // in case the model is non empty
33 // in case the model is non empty
34− readonly property double minHeight: root.model.count > 1 ? cardVerticalJournal.rowSpacing + 1 : 0
34+ readonly property double minHeight: root.model.count >= 1 ? cardVerticalJournal.rowSpacing + 1 : 0
35 height: filtered ? Math.max(collapsedHeight, minHeight) : uncollapsedHeight
35 height: filtered ? Math.max(collapsedHeight, minHeight) : uncollapsedHeight
36
36
37 Behavior on height {
37 Behavior on height {
@@ -75,6 +75,7 @@ DashRenderer {
75 item.template = Qt.binding(function() { return cardTool.template; });
75 item.template = Qt.binding(function() { return cardTool.template; });
76 item.components = Qt.binding(function() { return cardTool.components; });
76 item.components = Qt.binding(function() { return cardTool.components; });
77 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
77 item.headerAlignment = Qt.binding(function() { return cardTool.headerAlignment; });
78+ item.scopeStyle = root.scopeStyle;
78 }
79 }
79 Connections {
80 Connections {
80 target: loader.item
81 target: loader.item
qml/Dash/Dash.qml+14−15
@@ -26,9 +26,6 @@ Showable {
26
26
27 visible: shown
27 visible: shown
28
28
29− property ListModel searchHistory: SearchHistoryModel {}
30− property bool searchable: !dashContent.previewOpen && !scopeItem.previewOpen
31−
32 property string showScopeOnLoaded: "clickscope"
29 property string showScopeOnLoaded: "clickscope"
33 property real contentScale: 1.0
30 property real contentScale: 1.0
34
31
@@ -76,7 +73,6 @@ Showable {
76 height: parent.height
73 height: parent.height
77 model: filteredScopes
74 model: filteredScopes
78 scopes: scopes
75 scopes: scopes
79− searchHistory: dash.searchHistory
80 visible: x != -width
76 visible: x != -width
81 onGotoScope: {
77 onGotoScope: {
82 dash.setCurrentScope(scopeId, true, false);
78 dash.setCurrentScope(scopeId, true, false);
@@ -105,26 +101,29 @@ Showable {
105 }
101 }
106 }
102 }
107
103
108− ScopeItem {
104+ GenericScopeView {
109 id: scopeItem
105 id: scopeItem
110 anchors.left: dashContent.right
106 anchors.left: dashContent.right
111 width: parent.width
107 width: parent.width
112 height: parent.height
108 height: parent.height
113− searchHistory: dash.searchHistory
114 scale: dash.contentScale
109 scale: dash.contentScale
115 clip: scale != 1.0
110 clip: scale != 1.0
116 visible: scope != null
111 visible: scope != null
117− onBack: {
112+ hasBackAction: true
113+ isCurrent: visible
114+ onBackClicked: {
118 closeOverlayScope();
115 closeOverlayScope();
119− }
116+ closePreview();
120− onGotoScope: {
121− // TODO
122− console.log("gotoScope from an openScope scope is not implemented");
123− }
124− onOpenScope: {
125− // TODO
126− console.log("openScope from an openScope scope is not implemented");
127 }
117 }
128
118
119+ Connections {
120+ target: scopeItem.scope
121+ onGotoScope: {
122+ dashContent.gotoScope(scopeId);
123+ }
124+ onOpenScope: {
125+ dashContent.openScope(scope);
126+ }
127+ }
129 }
128 }
130}
129}
qml/Dash/DashContent.qml+7−84
@@ -26,13 +26,11 @@ Item {
26 property var model: null
26 property var model: null
27 property var scopes: null
27 property var scopes: null
28 readonly property alias currentIndex: dashContentList.currentIndex
28 readonly property alias currentIndex: dashContentList.currentIndex
29− property alias previewOpen: previewListView.open
30−
31− property ListModel searchHistory
32
29
33 signal scopeLoaded(string scopeId)
30 signal scopeLoaded(string scopeId)
34 signal gotoScope(string scopeId)
31 signal gotoScope(string scopeId)
35 signal openScope(var scope)
32 signal openScope(var scope)
33+ signal closePreview()
36
34
37 // If we set the current scope index before the scopes have been added,
35 // If we set the current scope index before the scopes have been added,
38 // then we need to wait until the loaded signals gets emitted from the scopes
36 // then we need to wait until the loaded signals gets emitted from the scopes
@@ -82,23 +80,16 @@ Item {
82 dashContentList.currentItem.theScope.closeScope(scope)
80 dashContentList.currentItem.theScope.closeScope(scope)
83 }
81 }
84
82
85− function closePreview() {
86− previewListView.open = false;
87− }
88−
89 Item {
83 Item {
90 id: dashContentListHolder
84 id: dashContentListHolder
91
85
92− x: previewListView.open ? -width : 0
86+ anchors.fill: parent
93− Behavior on x { UbuntuNumberAnimation { } }
94− width: parent.width
95− height: parent.height
96
87
97 ListView {
88 ListView {
98 id: dashContentList
89 id: dashContentList
99 objectName: "dashContentList"
90 objectName: "dashContentList"
100
91
101− interactive: dashContent.scopes.loaded && !previewListView.open && currentItem && !currentItem.moving
92+ interactive: dashContent.scopes.loaded && currentItem && !currentItem.moving
102
93
103 anchors.fill: parent
94 anchors.fill: parent
104 model: dashContent.model
95 model: dashContent.model
@@ -147,11 +138,8 @@ Item {
147
138
148 onLoaded: {
139 onLoaded: {
149 item.objectName = scope.id
140 item.objectName = scope.id
150− item.pageHeader = dashPageHeader;
151− item.previewListView = previewListView;
152 item.scope = Qt.binding(function() { return scope })
141 item.scope = Qt.binding(function() { return scope })
153 item.isCurrent = Qt.binding(function() { return visible && ListView.isCurrentItem })
142 item.isCurrent = Qt.binding(function() { return visible && ListView.isCurrentItem })
154− item.tabBarHeight = Qt.binding(function() { return dashPageHeader.implicitHeight; })
155 dashContent.scopeLoaded(item.scope.id)
143 dashContent.scopeLoaded(item.scope.id)
156 }
144 }
157 Connections {
145 Connections {
@@ -164,78 +152,13 @@ Item {
164 dashContent.openScope(scope);
152 dashContent.openScope(scope);
165 }
153 }
166 }
154 }
167−
168− Component.onDestruction: active = false
169− }
170− }
171−
172− PageHeader {
173− id: dashPageHeader
174− objectName: "pageHeader"
175− width: parent.width
176− searchEntryEnabled: true
177− searchHistory: dashContent.searchHistory
178− scope: dashContentList.currentItem && dashContentList.currentItem.theScope
179−
180− childItem: TabBar {
181− id: tabBar
182− objectName: "tabbar"
183− height: units.gu(6.5)
184− width: parent.width
185− style: DashContentTabBarStyle {}
186−
187− SortFilterProxyModel {
188− id: tabBarModel
189−
190− model: dashContentList.model
191−
192− property int selectedIndex: -1
193− onSelectedIndexChanged: {
194− if (dashContentList.currentIndex == -1 && tabBar.selectedIndex != -1) {
195− // TODO This together with the Timer below
196− // are a workaround for the first tab sometimes not showing the text.
197− // But Tabs are going away in the future so not sure if makes
198− // sense invetigating what's the problem at this stage
199− selectionModeTimer.restart();
200− }
201− dashContentList.currentIndex = selectedIndex;
202− }
203− }
204−
205− model: tabBarModel.count > 0 ? tabBarModel : null
206−
207− Connections {
155+ Connections {
208− target: dashContentList
156+ target: dashContent
209− onCurrentIndexChanged: {
157+ onClosePreview: if (item) item.closePreview()
210− tabBarModel.selectedIndex = dashContentList.currentIndex
211 }
158 }
212− }
213
159
214− Timer {
160+ Component.onDestruction: active = false
215− id: selectionModeTimer
216− interval: 1
217− onTriggered: tabBar.selectionMode = false
218 }
161 }
219− }
220−
221− bottomItem: DashDepartments {
222− scope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
223− width: parent.width <= units.gu(60) ? parent.width : units.gu(40)
224− anchors.right: parent.right
225− windowHeight: dashContent.height
226− windowWidth: dashContent.width
227− }
228 }
162 }
229 }
163 }
230−
231− PreviewListView {
232− id: previewListView
233− objectName: "dashContentPreviewList"
234− visible: x != width
235− scope: dashContentList.currentItem ? dashContentList.currentItem.theScope : null
236− pageHeader: dashPageHeader
237− width: parent.width
238− height: parent.height
239− anchors.left: dashContentListHolder.right
240− }
241}
164}
qml/Dash/DashDepartments.qml+8−7
@@ -29,6 +29,7 @@ AbstractButton {
29
29
30 property alias windowWidth: blackRect.width
30 property alias windowWidth: blackRect.width
31 property alias windowHeight: blackRect.height
31 property alias windowHeight: blackRect.height
32+ property var scopeStyle: null
32
33
33 // Are we drilling down the tree or up?
34 // Are we drilling down the tree or up?
34 property bool isGoingBack: false
35 property bool isGoingBack: false
@@ -78,18 +79,17 @@ AbstractButton {
78 anchors.margins: units.gu(2)
79 anchors.margins: units.gu(2)
79 verticalAlignment: Text.AlignVCenter
80 verticalAlignment: Text.AlignVCenter
80 text: root.currentDepartment ? root.currentDepartment.label : ""
81 text: root.currentDepartment ? root.currentDepartment.label : ""
81− color: "gray" // TODO remove once we're a separate app
82+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
82 }
83 }
83
84
84− Image {
85+ Icon {
85 anchors.verticalCenter: parent.verticalCenter
86 anchors.verticalCenter: parent.verticalCenter
86 anchors.right: parent.right
87 anchors.right: parent.right
87 anchors.rightMargin: units.gu(2)
88 anchors.rightMargin: units.gu(2)
88− rotation: showList ? 180 : 0
89+ name: showList ? "up" : "down"
89− source: "image://theme/dropdown-menu"
90− sourceSize.height: parent.height - units.gu(2)
90+ height: units.gu(2)
91− sourceSize.width: units.gu(2)
91+ width: height
92− fillMode: Image.PreserveAspectFit
92+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
93 }
93 }
94
94
95 // departmentListView is outside root
95 // departmentListView is outside root
@@ -124,6 +124,7 @@ AbstractButton {
124 objectName: "department" + index
124 objectName: "department" + index
125 visible: height != 0
125 visible: height != 0
126 width: departmentListView.width
126 width: departmentListView.width
127+ scopeStyle: root.scopeStyle
127 property real desiredHeight: {
128 property real desiredHeight: {
128 if (root.showList) {
129 if (root.showList) {
129 if (department && department.loaded && x == departmentListView.contentX)
130 if (department && department.loaded && x == departmentListView.contentX)
qml/Dash/DashDepartmentsList.qml+19−17
@@ -21,15 +21,17 @@ Item {
21 id: root
21 id: root
22 property var department: null
22 property var department: null
23 property var currentDepartment: null
23 property var currentDepartment: null
24+ property var scopeStyle: null
24 signal enterDepartment(var newDepartmentId, bool hasChildren)
25 signal enterDepartment(var newDepartmentId, bool hasChildren)
25 signal goBackToParentClicked()
26 signal goBackToParentClicked()
26 signal allDepartmentClicked()
27 signal allDepartmentClicked()
27
28
28 readonly property int itemHeight: units.gu(5)
29 readonly property int itemHeight: units.gu(5)
30+ readonly property color foregroundColor: root.scopeStyle ? root.scopeStyle.foreground : "grey"
29 implicitHeight: flickable.contentHeight
31 implicitHeight: flickable.contentHeight
30
32
31 Rectangle {
33 Rectangle {
32− color: "white"
34+ color: !root.scopeStyle || Qt.colorEqual(root.scopeStyle.background, "transparent") ? "white" : root.scopeStyle.background
33 anchors.fill: parent
35 anchors.fill: parent
34 }
36 }
35
37
@@ -71,17 +73,17 @@ Item {
71
73
72 onClicked: root.goBackToParentClicked();
74 onClicked: root.goBackToParentClicked();
73
75
74− Image {
76+ Icon {
75 id: backImage
77 id: backImage
76 anchors {
78 anchors {
77 verticalCenter: parent.verticalCenter
79 verticalCenter: parent.verticalCenter
78 left: parent.left
80 left: parent.left
79 leftMargin: units.gu(2)
81 leftMargin: units.gu(2)
80 }
82 }
81− source: "image://theme/back"
83+ name: "back"
82− sourceSize.height: parent.height - units.gu(3)
84+ height: units.gu(2)
83− sourceSize.width: units.gu(3)
85+ width: height
84− fillMode: Image.PreserveAspectFit
86+ color: root.foregroundColor
85 }
87 }
86
88
87 Label {
89 Label {
@@ -91,7 +93,7 @@ Item {
91 leftMargin: units.gu(0.5)
93 leftMargin: units.gu(0.5)
92 }
94 }
93 text: department ? department.parentLabel : ""
95 text: department ? department.parentLabel : ""
94− color: "gray" // TODO remove once we're a separate app
96+ color: root.foregroundColor
95 }
97 }
96
98
97 Rectangle {
99 Rectangle {
@@ -102,7 +104,7 @@ Item {
102 leftMargin: units.gu(2)
104 leftMargin: units.gu(2)
103 rightMargin: units.gu(2)
105 rightMargin: units.gu(2)
104 }
106 }
105− color: "gray"
107+ color: root.foregroundColor
106 opacity: 0.2
108 opacity: 0.2
107 height: units.dp(1)
109 height: units.dp(1)
108 }
110 }
@@ -123,7 +125,7 @@ Item {
123 }
125 }
124 text: department ? (department.allLabel != "" ? department.allLabel : department.label) : ""
126 text: department ? (department.allLabel != "" ? department.allLabel : department.label) : ""
125 font.bold: true
127 font.bold: true
126− color: "gray" // TODO remove once we're a separate app
128+ color: root.foregroundColor
127 }
129 }
128
130
129 Rectangle {
131 Rectangle {
@@ -134,7 +136,7 @@ Item {
134 leftMargin: units.gu(2)
136 leftMargin: units.gu(2)
135 rightMargin: units.gu(2)
137 rightMargin: units.gu(2)
136 }
138 }
137− color: "gray"
139+ color: root.foregroundColor
138 opacity: 0.2
140 opacity: 0.2
139 height: units.dp(1)
141 height: units.dp(1)
140 }
142 }
@@ -159,19 +161,19 @@ Item {
159 leftMargin: units.gu(2)
161 leftMargin: units.gu(2)
160 }
162 }
161 text: label
163 text: label
162− color: "gray" // TODO remove once we're a separate app
164+ color: root.foregroundColor
163 }
165 }
164
166
165− Image {
167+ Icon {
166 anchors {
168 anchors {
167 verticalCenter: parent.verticalCenter
169 verticalCenter: parent.verticalCenter
168 right: parent.right
170 right: parent.right
169 rightMargin: units.gu(2)
171 rightMargin: units.gu(2)
170 }
172 }
173+ height: units.gu(2)
174+ width: height
171− source: hasChildren ? "image://theme/chevron" : "graphics/tick.png"
175+ name: hasChildren ? "go-next" : "tick"
172− sourceSize.height: parent.height - units.gu(3)
176+ color: root.foregroundColor
173− sourceSize.width: units.gu(3)
174− fillMode: Image.PreserveAspectFit
175 visible: hasChildren || isActive
177 visible: hasChildren || isActive
176 }
178 }
177
179
@@ -183,7 +185,7 @@ Item {
183 leftMargin: units.gu(2)
185 leftMargin: units.gu(2)
184 rightMargin: units.gu(2)
186 rightMargin: units.gu(2)
185 }
187 }
186− color: "gray"
188+ color: root.foregroundColor
187 opacity: 0.1
189 opacity: 0.1
188 height: units.dp(1)
190 height: units.dp(1)
189 visible: index != department.count - 1
191 visible: index != department.count - 1
qml/Dash/DashRenderer.qml+5−4
@@ -36,10 +36,11 @@ Item {
36 // The model to renderer
36 // The model to renderer
37 property var model
37 property var model
38
38
39− /*!
40− \brief CardTool component.
39+ /// CardTool component.
41− */
42− property var cardTool: undefined
40+ property var cardTool: null
41+
42+ /// ScopeStyle component.
43+ property var scopeStyle: null
43
44
44 /// Emitted when the user clicked on an item
45 /// Emitted when the user clicked on an item
45 /// @param index is the index of the clicked item
46 /// @param index is the index of the clicked item
qml/Dash/GenericScopeView.qml+57−29
@@ -19,6 +19,7 @@ import Ubuntu.Components 0.1
19import Utils 0.1
19import Utils 0.1
20import Unity 0.2
20import Unity 0.2
21import Unity.Application 0.1
21import Unity.Application 0.1
22+import Dash 0.1
22import "../Components"
23import "../Components"
23import "../Components/ListItems" as ListItems
24import "../Components/ListItems" as ListItems
24
25
@@ -29,13 +30,16 @@ FocusScope {
29 property SortFilterProxyModel categories: categoryFilter
30 property SortFilterProxyModel categories: categoryFilter
30 property bool isCurrent: false
31 property bool isCurrent: false
31 property alias moving: categoryView.moving
32 property alias moving: categoryView.moving
32− property int tabBarHeight: 0
33+ property bool hasBackAction: false
33− property PageHeader pageHeader: null
34− property Item previewListView: null
35−
36 property bool enableHeightBehaviorOnNextCreation: false
34 property bool enableHeightBehaviorOnNextCreation: false
37 property var categoryView: categoryView
35 property var categoryView: categoryView
38
36
37+ property var scopeStyle: ScopeStyle {
38+ style: scope ? scope.customizations : {}
39+ }
40+
41+ signal backClicked()
42+
39 onScopeChanged: {
43 onScopeChanged: {
40 if (scope) {
44 if (scope) {
41 scope.activateApplication.connect(activateApp);
45 scope.activateApplication.connect(activateApp);
@@ -54,6 +58,10 @@ FocusScope {
54 categoryView.showHeader()
58 categoryView.showHeader()
55 }
59 }
56
60
61+ function closePreview() {
62+ previewListView.open = false;
63+ }
64+
57 Binding {
65 Binding {
58 target: scope
66 target: scope
59 property: "isActive"
67 property: "isActive"
@@ -88,33 +96,32 @@ FocusScope {
88 when: isCurrent
96 when: isCurrent
89 }
97 }
90
98
91− Connections {
92− target: panel
93− onSearchClicked: if (isCurrent) {
94− pageHeader.triggerSearch()
95− categoryView.showHeader()
96− }
97− }
98−
99 Connections {
99 Connections {
100 target: scopeView.scope
100 target: scopeView.scope
101 onShowDash: previewListView.open = false;
101 onShowDash: previewListView.open = false;
102 onHideDash: previewListView.open = false;
102 onHideDash: previewListView.open = false;
103 }
103 }
104
104
105+ Rectangle {
106+ anchors.fill: parent
107+ color: scopeView.scopeStyle ? scopeView.scopeStyle.background : "transparent"
108+ visible: color != "transparent"
109+ }
110+
105 ScopeListView {
111 ScopeListView {
106 id: categoryView
112 id: categoryView
107 objectName: "categoryListView"
113 objectName: "categoryListView"
108− anchors.fill: parent
114+
115+ x: previewListView.open ? -width : 0
116+ Behavior on x { UbuntuNumberAnimation { } }
117+ width: parent.width
118+ height: parent.height
119+
109 model: scopeView.categories
120 model: scopeView.categories
110 forceNoClip: previewListView.open
121 forceNoClip: previewListView.open
111
122
112 property string expandedCategoryId: ""
123 property string expandedCategoryId: ""
113
124
114− onContentYChanged: pageHeader.positionRealHeader();
115− onOriginYChanged: pageHeader.positionRealHeader();
116− onContentHeightChanged: pageHeader.positionRealHeader();
117−
118 delegate: ListItems.Base {
125 delegate: ListItems.Base {
119 id: baseItem
126 id: baseItem
120 objectName: "dashCategory" + category
127 objectName: "dashCategory" + category
@@ -168,6 +175,7 @@ FocusScope {
168 item.model = Qt.binding(function() { return results })
175 item.model = Qt.binding(function() { return results })
169 }
176 }
170 item.objectName = Qt.binding(function() { return categoryId })
177 item.objectName = Qt.binding(function() { return categoryId })
178+ item.scopeStyle = scopeView.scopeStyle;
171 if (item.expandable) {
179 if (item.expandable) {
172 var shouldFilter = categoryId != categoryView.expandedCategoryId;
180 var shouldFilter = categoryId != categoryView.expandedCategoryId;
173 item.setFilter(shouldFilter, false /*animate*/);
181 item.setFilter(shouldFilter, false /*animate*/);
@@ -307,6 +315,7 @@ FocusScope {
307 property var delegate: categoryView.item(delegateIndex)
315 property var delegate: categoryView.item(delegateIndex)
308 width: categoryView.width
316 width: categoryView.width
309 text: section
317 text: section
318+ textColor: scopeStyle ? scopeStyle.foreground : "grey"
310 image: {
319 image: {
311 if (delegate && delegate.expandable)
320 if (delegate && delegate.expandable)
312 return delegate.filtered ? "graphics/header_handlearrow.png" : "graphics/header_handlearrow2.png"
321 return delegate.filtered ? "graphics/header_handlearrow.png" : "graphics/header_handlearrow2.png"
@@ -319,20 +328,39 @@ FocusScope {
319 categoryView.expandedCategoryId = "";
328 categoryView.expandedCategoryId = "";
320 }
329 }
321 }
330 }
322− pageHeader: Item {
323− implicitHeight: scopeView.tabBarHeight
324− onHeightChanged: {
325− if (scopeView.pageHeader && scopeView.isCurrent) {
326− scopeView.pageHeader.height = height;
327− }
328− }
329− onYChanged: positionRealHeader();
330
331
331− function positionRealHeader() {
332+ pageHeader: PageHeader {
332− if (scopeView.pageHeader && scopeView.isCurrent) {
333+ id: pageHeader
333− scopeView.pageHeader.y = y + parent.y;
334+ objectName: "scopePageHeader"
334− }
335+ width: parent.width
336+ title: scopeView.scope ? scopeView.scope.name : ""
337+ showBackButton: scopeView.hasBackAction
338+ searchEntryEnabled: true
339+ searchInProgress: scopeView.scope ? scopeView.scope.searchInProgress : false
340+ scopeStyle: scopeView.scopeStyle
341+
342+ bottomItem: DashDepartments {
343+ scope: scopeView.scope
344+ width: parent.width <= units.gu(60) ? parent.width : units.gu(40)
345+ anchors.right: parent.right
346+ windowHeight: scopeView.height
347+ windowWidth: scopeView.width
348+ scopeStyle: scopeView.scopeStyle
335 }
349 }
350+
351+ onBackClicked: scopeView.backClicked()
336 }
352 }
337 }
353 }
354+
355+ PreviewListView {
356+ id: previewListView
357+ objectName: "previewListView"
358+ visible: x != width
359+ scope: scopeView.scope
360+ scopeStyle: scopeView.scopeStyle
361+ width: parent.width
362+ height: parent.height
363+ anchors.left: categoryView.right
364+ }
365+
338}
366}
qml/Dash/PreviewListView.qml+8−22
@@ -24,7 +24,7 @@ Item {
24 id: root
24 id: root
25
25
26 property var scope: null
26 property var scope: null
27− property var pageHeader: null
27+ property var scopeStyle: null
28
28
29 property alias open: previewListView.open
29 property alias open: previewListView.open
30 property alias model: previewListView.model
30 property alias model: previewListView.model
@@ -34,34 +34,19 @@ Item {
34
34
35 PageHeader {
35 PageHeader {
36 id: header
36 id: header
37− objectName: root.objectName + "_pageHeader"
37+ objectName: "pageHeader"
38 width: parent.width
38 width: parent.width
39− searchEntryEnabled: false
39+ title: scope ? scope.name : ""
40− scope: root.scope
41− height: units.gu(8.5)
42 showBackButton: true
40 showBackButton: true
43− onBackClicked: root.open = false
41+ searchEntryEnabled: false
42+ scopeStyle: root.scopeStyle
44
43
45− childItem: Label {
44+ onBackClicked: root.open = false
46− id: label
47− anchors {
48− left: parent.left
49− right: parent.right
50− verticalCenter: parent.verticalCenter
51− }
52− text: scope ? scope.name : ""
53− // TODO Saviq: These should come from updated Ubuntu Palette.
54− color: "#888888"
55− font.family: "Ubuntu"
56− font.weight: Font.Light
57− fontSize: "x-large"
58− elide: Text.ElideRight
59− }
60 }
45 }
61
46
62 ListView {
47 ListView {
63 id: previewListView
48 id: previewListView
64− objectName: root.objectName + "_listView"
49+ objectName: "listView"
65 anchors {
50 anchors {
66 top: header.bottom
51 top: header.bottom
67 bottom: parent.bottom
52 bottom: parent.bottom
@@ -118,6 +103,7 @@ Item {
118 var previewStack = root.scope.preview(result);
103 var previewStack = root.scope.preview(result);
119 return previewStack.getPreviewModel(0);
104 return previewStack.getPreviewModel(0);
120 }
105 }
106+ scopeStyle: root.scopeStyle
121 }
107 }
122
108
123 MouseArea {
109 MouseArea {
qml/Dash/Previews/Preview.qml+4
@@ -36,6 +36,9 @@ Item {
36 //! \brief Should be set to true if this preview is currently displayed.
36 //! \brief Should be set to true if this preview is currently displayed.
37 property bool isCurrent: false
37 property bool isCurrent: false
38
38
39+ //! \brief The ScopeStyle component.
40+ property var scopeStyle: null
41+
39 clip: true
42 clip: true
40
43
41 Binding {
44 Binding {
@@ -77,6 +80,7 @@ Item {
77 widgetType: model.type
80 widgetType: model.type
78 widgetData: model.properties
81 widgetData: model.properties
79 isCurrentPreview: root.isCurrent
82 isCurrentPreview: root.isCurrent
83+ scopeStyle: root.scopeStyle
80 anchors {
84 anchors {
81 left: parent.left
85 left: parent.left
82 right: parent.right
86 right: parent.right
qml/Dash/Previews/PreviewAudioPlayback.qml+3−3
@@ -139,7 +139,7 @@ PreviewWidget {
139 objectName: "trackTitleLabel"
139 objectName: "trackTitleLabel"
140 anchors { top: parent.top; left: parent.left; right: parent.right }
140 anchors { top: parent.top; left: parent.left; right: parent.right }
141 opacity: 0.9
141 opacity: 0.9
142− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
142+ color: scopeStyle ? scopeStyle.foreground : "grey"
143 fontSize: "small"
143 fontSize: "small"
144 horizontalAlignment: Text.AlignLeft
144 horizontalAlignment: Text.AlignLeft
145 text: modelData["title"]
145 text: modelData["title"]
@@ -152,7 +152,7 @@ PreviewWidget {
152 anchors { top: trackTitleLabel.bottom; left: parent.left; right: parent.right }
152 anchors { top: trackTitleLabel.bottom; left: parent.left; right: parent.right }
153 visible: text !== ""
153 visible: text !== ""
154 opacity: 0.9
154 opacity: 0.9
155− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
155+ color: scopeStyle ? scopeStyle.foreground : "grey"
156 font.weight: Font.Light
156 font.weight: Font.Light
157 fontSize: "small"
157 fontSize: "small"
158 horizontalAlignment: Text.AlignLeft
158 horizontalAlignment: Text.AlignLeft
@@ -193,7 +193,7 @@ PreviewWidget {
193 anchors.verticalCenter: parent.verticalCenter
193 anchors.verticalCenter: parent.verticalCenter
194 width: parent.column3Width
194 width: parent.column3Width
195 opacity: 0.9
195 opacity: 0.9
196− color: "grey"//Theme.palette.selected.backgroundText // TODO karni: Use updated Palette.
196+ color: scopeStyle ? scopeStyle.foreground : "grey"
197 fontSize: "small"
197 fontSize: "small"
198 horizontalAlignment: Text.AlignRight
198 horizontalAlignment: Text.AlignRight
199 text: audio.lengthToString(modelData["length"])
199 text: audio.lengthToString(modelData["length"])
qml/Dash/Previews/PreviewHeader.qml+1−1
@@ -35,7 +35,7 @@ PreviewWidget {
35 readonly property url mascot: root.widgetData["mascot"] || ""
35 readonly property url mascot: root.widgetData["mascot"] || ""
36 readonly property string title: root.widgetData["title"] || ""
36 readonly property string title: root.widgetData["title"] || ""
37 readonly property string subtitle: root.widgetData["subtitle"] || ""
37 readonly property string subtitle: root.widgetData["subtitle"] || ""
38− readonly property color fontColor: "grey"
38+ readonly property color fontColor: root.scopeStyle ? root.scopeStyle.foreground : "grey"
39
39
40 implicitHeight: row.height + row.margins * 2
40 implicitHeight: row.height + row.margins * 2
41 width: parent.width
41 width: parent.width
qml/Dash/Previews/PreviewRatingDisplay.qml+3−4
@@ -61,6 +61,7 @@ PreviewWidget {
61 size: 5
61 size: 5
62 value: modelData["rating"] || -1
62 value: modelData["rating"] || -1
63 visible: value >= 0
63 visible: value >= 0
64+ interactive: false
64
65
65 property var urlIconEmpty: widgetData["rating-icon-empty"]
66 property var urlIconEmpty: widgetData["rating-icon-empty"]
66 property var urlIconFull: widgetData["rating-icon-full"]
67 property var urlIconFull: widgetData["rating-icon-full"]
@@ -71,8 +72,7 @@ PreviewWidget {
71 id: authorLabel
72 id: authorLabel
72 objectName: "authorLabel"
73 objectName: "authorLabel"
73 anchors { left: parent.left; right: parent.right }
74 anchors { left: parent.left; right: parent.right }
74− // TODO cimi: Yet another fix requiring Palette update.
75+ color: scopeStyle ? scopeStyle.foreground : "grey"
75− color: "grey" //Theme.palette.selected.backgroundText
76 opacity: .8
76 opacity: .8
77 text: modelData["author"] || ""
77 text: modelData["author"] || ""
78 visible: text !== ""
78 visible: text !== ""
@@ -83,8 +83,7 @@ PreviewWidget {
83 id: reviewLabel
83 id: reviewLabel
84 objectName: "reviewLabel"
84 objectName: "reviewLabel"
85 anchors { left: parent.left; right: parent.right }
85 anchors { left: parent.left; right: parent.right }
86− // TODO cimi: Yet another fix requiring Palette update.
86+ color: scopeStyle ? scopeStyle.foreground : "grey"
87− color: "grey" //Theme.palette.selected.backgroundText
88 opacity: .8
87 opacity: .8
89 text: modelData["review"] || ""
88 text: modelData["review"] || ""
90 visible: text !== ""
89 visible: text !== ""
qml/Dash/Previews/PreviewRatingInput.qml+2−4
@@ -76,8 +76,7 @@ PreviewWidget {
76 verticalCenter: parent.verticalCenter
76 verticalCenter: parent.verticalCenter
77 left: parent.left
77 left: parent.left
78 }
78 }
79− // TODO cimi: Yet another fix requiring Palette update.
79+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
80− color: "grey" //Theme.palette.selected.backgroundText
81 opacity: .8
80 opacity: .8
82 text: widgetData["rating-label"] || i18n.tr("Rate this")
81 text: widgetData["rating-label"] || i18n.tr("Rate this")
83 }
82 }
@@ -122,8 +121,7 @@ PreviewWidget {
122 left: parent.left
121 left: parent.left
123 right: parent.right
122 right: parent.right
124 }
123 }
125− // TODO cimi: Yet another fix requiring Palette update.
124+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
126− color: "grey" //Theme.palette.selected.backgroundText
127 opacity: .8
125 opacity: .8
128 text: widgetData["review-label"] || i18n.tr("Add a review")
126 text: widgetData["review-label"] || i18n.tr("Add a review")
129 }
127 }
qml/Dash/Previews/PreviewTextSummary.qml+2−4
@@ -39,8 +39,7 @@ PreviewWidget {
39 }
39 }
40 height: visible ? implicitHeight : 0
40 height: visible ? implicitHeight : 0
41 fontSize: "large"
41 fontSize: "large"
42− // TODO karni: Yet another fix requiring Palette update.
42+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
43− color: "grey" //Theme.palette.selected.backgroundText
44 visible: text !== ""
43 visible: text !== ""
45 opacity: .8
44 opacity: .8
46 text: widgetData["title"] || ""
45 text: widgetData["title"] || ""
@@ -62,8 +61,7 @@ PreviewWidget {
62 clip: true
61 clip: true
63 fontSize: "small"
62 fontSize: "small"
64 lineHeight: 1.2
63 lineHeight: 1.2
65− // TODO karni: Yet another fix requiring Palette update.
64+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey"
66− color: "grey" //Theme.palette.selected.backgroundText
67 opacity: .8
65 opacity: .8
68 text: widgetData["text"]
66 text: widgetData["text"]
69 wrapMode: Text.Wrap
67 wrapMode: Text.Wrap
qml/Dash/Previews/PreviewWidget.qml+3
@@ -28,6 +28,9 @@ Item {
28 //! Variable used to contain widget's data
28 //! Variable used to contain widget's data
29 property var widgetData
29 property var widgetData
30
30
31+ //! The ScopeStyle component.
32+ property var scopeStyle: null
33+
31 /*! \brief This signal should be emitted when a preview action was triggered.
34 /*! \brief This signal should be emitted when a preview action was triggered.
32 *
35 *
33 * \param widgetId, actionId Respective identifiers from widgetData.
36 * \param widgetId, actionId Respective identifiers from widgetData.
qml/Dash/Previews/PreviewWidgetFactory.qml+4
@@ -31,6 +31,9 @@ Loader {
31 //! Widget data, forwarded to the widget as is.
31 //! Widget data, forwarded to the widget as is.
32 property var widgetData: null
32 property var widgetData: null
33
33
34+ //! The ScopeStyle component.
35+ property var scopeStyle: null
36+
34 //! Set to true if the parent preview is displayed.
37 //! Set to true if the parent preview is displayed.
35 property bool isCurrentPreview: false
38 property bool isCurrentPreview: false
36
39
@@ -62,6 +65,7 @@ Loader {
62 item.widgetId = Qt.binding(function() { return root.widgetId } )
65 item.widgetId = Qt.binding(function() { return root.widgetId } )
63 item.widgetData = Qt.binding(function() { return root.widgetData } )
66 item.widgetData = Qt.binding(function() { return root.widgetData } )
64 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
67 item.isCurrentPreview = Qt.binding(function() { return root.isCurrentPreview } )
68+ if (item.hasOwnProperty("scopeStyle")) item.scopeStyle = root.scopeStyle;
65 }
69 }
66
70
67 Connections {
71 Connections {
qml/Dash/ScopeItem.qmldeleted−106
@@ -1,106 +0,0 @@
1−/*
2− * Copyright (C) 2014 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 Unity 0.2
20−import "../Components"
21−
22−Item {
23− id: root
24−
25− property alias scope: scopeView.scope
26− property alias previewOpen: previewListView.open
27−
28− property ListModel searchHistory
29−
30− signal back
31− signal gotoScope(string scopeId)
32− signal openScope(var scope)
33−
34− // TODO see how much code we can share
35− // between here and other Dash parts, it's starting to have
36− // too much duplicated code with the DashDepartments, etc
37−
38− Item {
39− id: scopeViewHolder
40−
41− x: previewListView.open ? -width : 0
42− Behavior on x { UbuntuNumberAnimation { } }
43− width: parent.width
44− height: parent.height
45−
46− GenericScopeView {
47− id: scopeView
48− width: parent.width
49− height: parent.height
50− isCurrent: scope != null
51− tabBarHeight: scopeItemPageHeader.implicitHeight
52− pageHeader: scopeItemPageHeader
53− previewListView: previewListView
54−
55− Connections {
56− target: scopeView.isCurrent ? scope : null
57− onGotoScope: root.gotoScope(scopeId);
58− onOpenScope: root.openScope(scope);
59− }
60− }
61−
62− PageHeader {
63− id: scopeItemPageHeader
64− width: parent.width
65− searchEntryEnabled: true
66− searchHistory: root.searchHistory
67− scope: root.scope
68− height: units.gu(8.5)
69− showBackButton: true
70− onBackClicked: root.back();
71−
72− childItem: Label {
73− id: label
74− anchors {
75− left: parent.left
76− right: parent.right
77− verticalCenter: parent.verticalCenter
78− }
79− text: scope ? scope.name : ""
80− color: "#888888"
81− font.family: "Ubuntu"
82− font.weight: Font.Light
83− fontSize: "x-large"
84− elide: Text.ElideRight
85− }
86−
87− bottomItem: DashDepartments {
88− scope: root.scope
89− width: parent.width <= units.gu(60) ? parent.width : units.gu(40)
90− anchors.right: parent.right
91− windowHeight: root.height
92− windowWidth: root.width
93− }
94− }
95− }
96−
97− PreviewListView {
98− id: previewListView
99− visible: x != width
100− pageHeader: scopeItemPageHeader
101− scope: root.scope
102− width: parent.width
103− height: parent.height
104− anchors.left: scopeViewHolder.right
105− }
106−}
qml/Dash/graphics/icon_listview_clear@20.pngdeleted

Binary file not shown.

qml/Dash/graphics/phone/screenshots/phone@12.png → qml/Dash/graphics/phone/screenshots/dialer@12.pngrenamed

Binary file not shown.

qml/Dash/graphics/tick@30.pngdeleted

Binary file not shown.

qml/Hud/HudParametrizedActionsPage.qml+2−2
@@ -19,7 +19,7 @@ import Ubuntu.Components 0.1
19import "../Components"
19import "../Components"
20
20
21Item {
21Item {
22− property alias header: header.text
22+ property alias header: header.title
23 signal backPressed
23 signal backPressed
24 signal confirmPressed
24 signal confirmPressed
25 signal valuesUpdated
25 signal valuesUpdated
@@ -89,7 +89,7 @@ Item {
89 anchors.left: parent.left
89 anchors.left: parent.left
90 anchors.right: parent.right
90 anchors.right: parent.right
91
91
92− PageHeaderLabel {
92+ PageHeader {
93 id: header
93 id: header
94 anchors.top: parent.top
94 anchors.top: parent.top
95 anchors.left: parent.left
95 anchors.left: parent.left
qml/Launcher/Launcher.qml+33−3
@@ -55,6 +55,10 @@ Item {
55 switchToNextState("")
55 switchToNextState("")
56 }
56 }
57
57
58+ function fadeOut() {
59+ fadeOutAnimation.start();
60+ }
61+
58 function switchToNextState(state) {
62 function switchToNextState(state) {
59 animateTimer.nextState = state
63 animateTimer.nextState = state
60 animateTimer.start();
64 animateTimer.start();
@@ -99,6 +103,31 @@ Item {
99 }
103 }
100 }
104 }
101
105
106+ SequentialAnimation {
107+ id: fadeOutAnimation
108+ ScriptAction {
109+ script: {
110+ panel.layer.enabled = true
111+ }
112+ }
113+ UbuntuNumberAnimation {
114+ target: panel
115+ property: "opacity"
116+ easing.type: Easing.InQuad
117+ to: 0
118+ }
119+ ScriptAction {
120+ script: {
121+ panel.layer.enabled = false
122+ panel.animate = false;
123+ root.state = "";
124+ panel.x = -panel.width
125+ panel.opacity = 1;
126+ panel.animate = true;
127+ }
128+ }
129+ }
130+
102 MouseArea {
131 MouseArea {
103 id: launcherDragArea
132 id: launcherDragArea
104 enabled: root.state == "visible"
133 enabled: root.state == "visible"
@@ -173,9 +202,9 @@ Item {
173 }
202 }
174
203
175 Behavior on x {
204 Behavior on x {
205+ enabled: !dragArea.dragging && !launcherDragArea.drag.active && panel.animate;
176 NumberAnimation {
206 NumberAnimation {
177− // Disabling animation when dragging
207+ duration: 300
178− duration: dragArea.dragging || launcherDragArea.drag.active ? 0 : 300;
179 easing.type: Easing.OutCubic
208 easing.type: Easing.OutCubic
180 }
209 }
181 }
210 }
@@ -215,9 +244,10 @@ Item {
215 onDraggingChanged: {
244 onDraggingChanged: {
216 if (!dragging) {
245 if (!dragging) {
217 if (distance > panel.width / 2) {
246 if (distance > panel.width / 2) {
218− root.switchToNextState("visible")
219 if (distance > minimizeDistance) {
247 if (distance > minimizeDistance) {
220 root.dash()
248 root.dash()
249+ } else {
250+ root.switchToNextState("visible")
221 }
251 }
222 } else {
252 } else {
223 root.switchToNextState("")
253 root.switchToNextState("")
qml/Launcher/LauncherDelegate.qml+35−13
@@ -23,10 +23,10 @@ Item {
23 property string iconName
23 property string iconName
24 property int count: -1
24 property int count: -1
25 property int progress: -1
25 property int progress: -1
26− property bool highlighted: false
27 property bool itemFocused: false
26 property bool itemFocused: false
28 property real maxAngle: 0
27 property real maxAngle: 0
29 property bool inverted: false
28 property bool inverted: false
29+ property bool clipCorner: false
30
30
31 readonly property int effectiveHeight: Math.cos(angle * Math.PI / 180) * itemHeight
31 readonly property int effectiveHeight: Math.cos(angle * Math.PI / 180) * itemHeight
32 readonly property real foldedHeight: Math.cos(maxAngle * Math.PI / 180) * itemHeight
32 readonly property real foldedHeight: Math.cos(maxAngle * Math.PI / 180) * itemHeight
@@ -40,12 +40,6 @@ Item {
40 property real itemOpacity: 1
40 property real itemOpacity: 1
41 property real brightness: 0
41 property real brightness: 0
42
42
43− onIconNameChanged: shaderEffectSource.scheduleUpdate();
44− onCountChanged: shaderEffectSource.scheduleUpdate();
45− onProgressChanged: shaderEffectSource.scheduleUpdate();
46− onHighlightedChanged: shaderEffectSource.scheduleUpdate();
47− onItemFocusedChanged: shaderEffectSource.scheduleUpdate();
48−
49 Item {
43 Item {
50 id: iconItem
44 id: iconItem
51 width: parent.itemWidth + units.gu(1)
45 width: parent.itemWidth + units.gu(1)
@@ -69,12 +63,11 @@ Item {
69 }
63 }
70
64
71 BorderImage {
65 BorderImage {
72− id: overlayHighlight
66+ id: itemGlow
73 anchors.centerIn: iconItem
67 anchors.centerIn: iconItem
74− rotation: inverted ? 180 : 0
68+ source: "graphics/icon-top-highlight.png"
75− source: root.highlighted ? "graphics/selected.sci" : "graphics/non-selected.sci"
76− width: root.itemWidth + units.gu(0.5)
69+ width: root.itemWidth - units.gu(1)
77− height: root.itemHeight + units.gu(0.5)
70+ height: root.itemHeight - units.gu(1)
78 }
71 }
79
72
80 BorderImage {
73 BorderImage {
@@ -151,6 +144,24 @@ Item {
151 }
144 }
152 }
145 }
153
146
147+ Item {
148+ id: clipper
149+ anchors.centerIn: parent
150+ width: iconItem.width
151+ height: iconItem.height
152+ Rectangle {
153+ anchors {
154+ fill: parent
155+ topMargin: -units.gu(2)
156+ leftMargin: -units.gu(2)
157+ rightMargin: -units.gu(2)
158+ bottomMargin: units.gu(1.2)
159+ }
160+ color: "red"
161+ rotation: root.rotation + 45
162+ }
163+ }
164+
154 ShaderEffect {
165 ShaderEffect {
155 id: transformEffect
166 id: transformEffect
156 anchors.centerIn: parent
167 anchors.centerIn: parent
@@ -160,13 +171,18 @@ Item {
160 property real itemOpacity: root.itemOpacity
171 property real itemOpacity: root.itemOpacity
161 property real brightness: Math.max(-1, root.brightness)
172 property real brightness: Math.max(-1, root.brightness)
162 property real angle: root.angle
173 property real angle: root.angle
174+ property bool clipCorner: root.clipCorner
163 rotation: root.inverted ? 180 : 0
175 rotation: root.inverted ? 180 : 0
164
176
165 property variant source: ShaderEffectSource {
177 property variant source: ShaderEffectSource {
166 id: shaderEffectSource
178 id: shaderEffectSource
167 sourceItem: iconItem
179 sourceItem: iconItem
168 hideSource: true
180 hideSource: true
169− live: false
181+ }
182+
183+ property var mask: ShaderEffectSource {
184+ sourceItem: clipper
185+ hideSource: true
170 }
186 }
171
187
172 transform: [
188 transform: [
@@ -203,13 +219,19 @@ Item {
203 fragmentShader: "
219 fragmentShader: "
204 varying highp vec2 qt_TexCoord0;
220 varying highp vec2 qt_TexCoord0;
205 uniform sampler2D source;
221 uniform sampler2D source;
222+ uniform sampler2D mask;
206 uniform lowp float brightness;
223 uniform lowp float brightness;
207 uniform lowp float itemOpacity;
224 uniform lowp float itemOpacity;
225+ uniform bool clipCorner;
208 void main(void)
226 void main(void)
209 {
227 {
210 highp vec4 sourceColor = texture2D(source, qt_TexCoord0);
228 highp vec4 sourceColor = texture2D(source, qt_TexCoord0);
229+ highp vec4 maskColor = texture2D(mask, qt_TexCoord0);
211 sourceColor.rgb = mix(sourceColor.rgb, vec3(step(0.0, brightness)), abs(brightness));
230 sourceColor.rgb = mix(sourceColor.rgb, vec3(step(0.0, brightness)), abs(brightness));
212 sourceColor *= itemOpacity;
231 sourceColor *= itemOpacity;
232+ if (clipCorner) {
233+ sourceColor *= maskColor.a;
234+ }
213 gl_FragColor = sourceColor;
235 gl_FragColor = sourceColor;
214 }"
236 }"
215 }
237 }
qml/Launcher/LauncherPanel.qml+19−15
@@ -22,8 +22,9 @@ import Ubuntu.Components.Popups 0.1
22import "../Components/ListItems"
22import "../Components/ListItems"
23import "../Components/"
23import "../Components/"
24
24
25−Item {
25+Rectangle {
26 id: root
26 id: root
27+ color: "#B2000000"
27
28
28 rotation: inverted ? 180 : 0
29 rotation: inverted ? 180 : 0
29
30
@@ -37,27 +38,18 @@ Item {
37 signal applicationSelected(string appId)
38 signal applicationSelected(string appId)
38 signal showDashHome()
39 signal showDashHome()
39
40
40− BorderImage {
41− id: background
42− source: "graphics/launcher_bg.sci"
43− anchors.fill: parent
44− anchors.rightMargin: root.inverted ? 0 : -units.gu(1)
45− anchors.leftMargin: root.inverted ? -units.gu(1) : 0
46− rotation: root.rotation
47− }
48−
49 Column {
41 Column {
50 id: mainColumn
42 id: mainColumn
51 anchors {
43 anchors {
52 fill: parent
44 fill: parent
53 }
45 }
54
46
55− MouseArea {
47+ Rectangle {
56− id: dashItem
57 width: parent.width
48 width: parent.width
58 height: units.gu(7)
49 height: units.gu(7)
59− onClicked: root.showDashHome()
50+ color: UbuntuColors.orange
60 z: 1
51 z: 1
52+
61 Image {
53 Image {
62 objectName: "dashItem"
54 objectName: "dashItem"
63 width: units.gu(5)
55 width: units.gu(5)
@@ -66,7 +58,13 @@ Item {
66 source: "graphics/home.png"
58 source: "graphics/home.png"
67 rotation: root.rotation
59 rotation: root.rotation
68 }
60 }
61+ MouseArea {
62+ id: dashItem
63+ anchors.fill: parent
64+ onClicked: root.showDashHome()
65+ }
69 }
66 }
67+
70 ThinDivider {
68 ThinDivider {
71 anchors {
69 anchors {
72 left: parent.left
70 left: parent.left
@@ -155,6 +153,7 @@ Item {
155 iconName: model.icon
153 iconName: model.icon
156 count: model.count
154 count: model.count
157 progress: model.progress
155 progress: model.progress
156+ clipCorner: model.pinned
158 itemFocused: model.focused
157 itemFocused: model.focused
159 inverted: root.inverted
158 inverted: root.inverted
160 z: -Math.abs(offset)
159 z: -Math.abs(offset)
@@ -167,6 +166,7 @@ Item {
167 anchors.centerIn: parent
166 anchors.centerIn: parent
168 width: parent.width + mainColumn.anchors.leftMargin + mainColumn.anchors.rightMargin
167 width: parent.width + mainColumn.anchors.leftMargin + mainColumn.anchors.rightMargin
169 opacity: 0
168 opacity: 0
169+ source: "graphics/divider-line.png"
170 }
170 }
171
171
172 states: [
172 states: [
@@ -246,7 +246,7 @@ Item {
246 Transition {
246 Transition {
247 from: "dragging"
247 from: "dragging"
248 to: "*"
248 to: "*"
249− NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.FastDuration }
249+ NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.SnapDuration }
250 NumberAnimation { properties: "itemOpacity"; duration: UbuntuAnimation.BriskDuration }
250 NumberAnimation { properties: "itemOpacity"; duration: UbuntuAnimation.BriskDuration }
251 SequentialAnimation {
251 SequentialAnimation {
252 ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
252 ScriptAction { script: if (index == launcherListView.count-1) launcherListView.flick(0, -launcherListView.clickFlickSpeed); }
@@ -464,6 +464,10 @@ Item {
464 width: itemWidth
464 width: itemWidth
465 rotation: root.rotation
465 rotation: root.rotation
466 itemOpacity: 0.9
466 itemOpacity: 0.9
467+ clipCorner: dndArea.draggedIndex > -1 &&
468+ LauncherModel.get(dndArea.draggedIndex).pinned &&
469+ !dndArea.preDragging &&
470+ !dndArea.dragging
467
471
468 function flatten() {
472 function flatten() {
469 fakeDragItemAnimation.start();
473 fakeDragItemAnimation.start();
@@ -522,11 +526,11 @@ Item {
522 color: "#221e1c"
526 color: "#221e1c"
523 width: units.gu(30)
527 width: units.gu(30)
524 height: quickListColumn.height
528 height: quickListColumn.height
529+ visible: quickListShape.visible
525 anchors {
530 anchors {
526 left: root.inverted ? undefined : parent.right
531 left: root.inverted ? undefined : parent.right
527 right: root.inverted ? parent.left : undefined
532 right: root.inverted ? parent.left : undefined
528 margins: units.gu(1)
533 margins: units.gu(1)
529−
530 }
534 }
531 y: itemCenter - (height / 2) + offset
535 y: itemCenter - (height / 2) + offset
532 rotation: root.rotation
536 rotation: root.rotation
qml/Launcher/graphics/divider-line.pngnew file

Binary file not shown.

qml/Launcher/graphics/highlight@18.pngdeleted

Binary file not shown.

qml/Launcher/graphics/home@18.png

Binary file not shown.

qml/Launcher/graphics/icon-top-highlight.pngnew file

Binary file not shown.

qml/Launcher/graphics/launcher_bg@30.pngdeleted

Binary file not shown.

qml/Launcher/graphics/launcher_bg@30.scideleted−5
@@ -1,5 +0,0 @@
1−border.left: 4
2−border.top: 4
3−border.bottom: 4
4−border.right: 66
5−source: launcher_bg@30.png
qml/Launcher/graphics/non-selected@18.pngdeleted

Binary file not shown.

qml/Launcher/graphics/non-selected@18.scideleted−5
@@ -1,5 +0,0 @@
1−border.left: 54
2−border.top: 60
3−border.bottom: 60
4−border.right: 54
5−source: non-selected@18.png
qml/Launcher/graphics/selected@18.pngdeleted

Binary file not shown.

qml/Launcher/graphics/selected@18.scideleted−5
@@ -1,5 +0,0 @@
1−border.left: 54
2−border.top: 60
3−border.bottom: 60
4−border.right: 54
5−source: selected@18.png
qml/Launcher/graphics/triangle@18.pngdeleted

Binary file not shown.

qml/Panel/ActiveCallHint.qmlnew file+206
@@ -0,0 +1,206 @@
1+/*
2+ * Copyright (C) 2014 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.Telephony 0.1 as Telephony
19+import Ubuntu.Components 0.1
20+import Unity.Application 0.1
21+import "../Components"
22+
23+Item {
24+ id: callHint
25+
26+ readonly property bool active: {
27+ var application = ApplicationManager.findApplication("dialer-app");
28+
29+ if (callManager.callIndicatorVisible) {
30+ // at the moment, callIndicatorVisible is only "valid" if dialer is in focus.
31+ if (application && ApplicationManager.focusedApplicationId === "dialer-app") {
32+ // Don't show if application is still starting; might get a fleeting true/false.
33+ return application.state !== ApplicationInfoInterface.Starting;
34+ }
35+ }
36+ if (ApplicationManager.focusedApplicationId !== "dialer-app") {
37+ if (application) {
38+ // Don't show if application is still starting; might get a fleeting true/false.
39+ return application.state !== ApplicationInfoInterface.Starting && callManager.hasCalls;
40+ }
41+ return callManager.hasCalls;
42+ }
43+ return false;
44+ }
45+ readonly property QtObject contactWatcher: _contactWatcher
46+ property int labelSwitchInterval: 6000
47+ implicitWidth: row.x + row.width
48+
49+ Component.onCompleted: {
50+ telepathyHelper.registerChannelObserver("unity8");
51+ }
52+
53+ function showLiveCall() {
54+ Qt.openUrlExternally("dialer:///?view=liveCall");
55+ }
56+
57+ Component {
58+ id: contactColumn
59+
60+ Column {
61+ id: column
62+ objectName: "contactColumn"
63+
64+ anchors.left: parent.left
65+
66+ Component.onCompleted: {
67+ if (index === 0) {
68+ labelPathView.column1 = column;
69+ } else {
70+ labelPathView.column2 = column;
71+ }
72+ }
73+
74+ Label {
75+ height: callHint.height
76+ verticalAlignment: Text.AlignVCenter
77+ text: i18n.tr("Tap to return to call...");
78+ }
79+
80+ Label {
81+ objectName: "contactLabel"
82+ height: callHint.height
83+ verticalAlignment: Text.AlignVCenter
84+ width: Math.max(contentWidth, 1)
85+
86+ text: {
87+ if (!d.activeCall) {
88+ return "";
89+ } else if (d.activeCall.isConference) {
90+ return i18n.tr("Conference");
91+ } else {
92+ return contactWatcher.alias !== "" ? contactWatcher.alias : contactWatcher.phoneNumber;
93+ }
94+ }
95+ }
96+ }
97+ }
98+
99+ Row {
100+ id: row
101+ anchors {
102+ top: parent.top
103+ bottom: parent.bottom
104+ left: parent.left
105+ leftMargin: units.gu(1)
106+ }
107+ spacing: units.gu(1)
108+
109+ Label {
110+ id: time
111+ objectName: "timeLabel"
112+
113+ anchors {
114+ top: parent.top
115+ bottom: parent.bottom
116+ }
117+ verticalAlignment: Text.AlignVCenter
118+ horizontalAlignment: Text.AlignRight
119+ text: {
120+ var m = Math.round(d.callTime/60);
121+ var ss = d.callTime % 60;
122+ if (ss >= 10) {
123+ return m + ":" + ss;
124+ } else {
125+ return m + ":0" + ss;
126+ }
127+ }
128+ }
129+
130+ PathView {
131+ id: labelPathView
132+ objectName: "labelPathView"
133+
134+ anchors {
135+ top: parent.top
136+ bottom: parent.bottom
137+ }
138+ width: column1 && column2 ? Math.max(column1.width, column1.width) : 0
139+ clip: true
140+
141+ property Column column1
142+ property Column column2
143+ property int columnHeight: column1 ? column1.height : 0
144+
145+ delegate: contactColumn
146+ model: 2
147+ offset: 0
148+ interactive: false
149+
150+ path: Path {
151+ startY: -labelPathView.columnHeight / 2
152+ PathLine {
153+ y: labelPathView.columnHeight * 1.5
154+ }
155+ }
156+
157+ Behavior on offset {
158+ id: offsetBehaviour
159+ SmoothedAnimation {
160+ id: offsetAnimation
161+ // ensure we go faster than the label switch
162+ duration: labelSwitchInterval/8
163+ velocity: 0.75
164+ easing.type: Easing.InOutQuad
165+ }
166+ }
167+ }
168+ }
169+
170+ Timer {
171+ id: alternateLabelTimer
172+ running: callHint.active
173+ interval: labelPathView.offset % 1.0 !== 0 ? labelSwitchInterval : labelSwitchInterval/4
174+ repeat: true
175+
176+ onRunningChanged: {
177+ if (running) {
178+ offsetBehaviour.enabled = false;
179+ labelPathView.offset = 0;
180+ offsetBehaviour.enabled = true;
181+ }
182+ }
183+
184+ onTriggered: {
185+ labelPathView.offset = labelPathView.offset + 0.5;
186+ }
187+ }
188+
189+ Telephony.ContactWatcher {
190+ id: _contactWatcher
191+ objectName: "contactWatcher"
192+ phoneNumber: d.activeCall ? d.activeCall.phoneNumber : ""
193+ }
194+
195+ QtObject {
196+ id: d
197+
198+ property QtObject activeCall: {
199+ if (callManager.foregroundCall) {
200+ return callManager.foregroundCall;
201+ }
202+ return callManager.backgroundCall;
203+ }
204+ property int callTime: activeCall ? activeCall.elapsedTime : 0
205+ }
206+}
qml/Panel/IndicatorRow.qml+1−1
@@ -36,7 +36,7 @@ Item {
36
36
37 function setDefaultItem() {
37 function setDefaultItem() {
38 // The leftmost indicator
38 // The leftmost indicator
39− setCurrentItem(0);
39+ setCurrentItemIndex(0);
40 }
40 }
41
41
42 function setCurrentItemIndex(index) {
42 function setCurrentItemIndex(index) {
qml/Panel/Indicators.qml+22−36
@@ -28,7 +28,6 @@ Showable {
28
28
29 property real openedHeight: units.gu(71)
29 property real openedHeight: units.gu(71)
30 property int panelHeight: units.gu(3)
30 property int panelHeight: units.gu(3)
31− property bool pinnedMode: true //should be set true if indicators menu can cover whole screen
32 property alias overFlowWidth: indicatorRow.overFlowWidth
31 property alias overFlowWidth: indicatorRow.overFlowWidth
33 property alias showAll: indicatorRow.showAll
32 property alias showAll: indicatorRow.showAll
34 // TODO: This should be sourced by device type (eg "desktop", "tablet", "phone"...)
33 // TODO: This should be sourced by device type (eg "desktop", "tablet", "phone"...)
@@ -38,26 +37,20 @@ Showable {
38 readonly property int lockThreshold: openedHeight / 2
37 readonly property int lockThreshold: openedHeight / 2
39 property bool fullyOpened: height == openedHeight
38 property bool fullyOpened: height == openedHeight
40 property bool partiallyOpened: height > panelHeight && !fullyOpened
39 property bool partiallyOpened: height > panelHeight && !fullyOpened
41− property real visualBottom: Math.max(y+height, y+indicatorRow.y+indicatorRow.height)
42 property bool contentEnabled: true
40 property bool contentEnabled: true
43 property bool initalizeItem: true
41 property bool initalizeItem: true
44 readonly property alias content: menuContent
42 readonly property alias content: menuContent
45 property real unitProgress: (height - panelHeight) / (openedHeight - panelHeight)
43 property real unitProgress: (height - panelHeight) / (openedHeight - panelHeight)
44+ property bool enableHint: true
45+ property real showHintBottomMargin: 0
46+
47+ signal showTapped(point position)
46
48
47 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
49 // TODO: Perhaps we need a animation standard for showing/hiding? Each showable seems to
48 // use its own values. Need to ask design about this.
50 // use its own values. Need to ask design about this.
49 showAnimation: StandardAnimation {
51 showAnimation: StandardAnimation {
50 property: "height"
52 property: "height"
51− duration: 350
52 to: openedHeight
53 to: openedHeight
53− easing.type: Easing.OutCubic
54−
55− // Re-size if we've changed the openHeight while shown.
56− onToChanged: {
57− if (indicators.shown) {
58− indicators.show();
59− }
60− }
61 }
54 }
62
55
63 hideAnimation: StandardAnimation {
56 hideAnimation: StandardAnimation {
@@ -67,16 +60,24 @@ Showable {
67 easing.type: Easing.OutCubic
60 easing.type: Easing.OutCubic
68 }
61 }
69
62
63+ onOpenedHeightChanged: {
64+ if (showAnimation.running) {
65+ showAnimation.restart();
66+ } else if (indicators.shown) {
67+ height = openedHeight;
68+ }
69+ }
70+
70 height: panelHeight
71 height: panelHeight
71− onHeightChanged: updateRevealProgressState(indicators.height - panelHeight, true)
72+ onHeightChanged: updateRevealProgressState(indicators.height - panelHeight - showHintBottomMargin, true)
72
73
73 function updateRevealProgressState(revealProgress, enableRelease) {
74 function updateRevealProgressState(revealProgress, enableRelease) {
74 if (!showAnimation.running && !hideAnimation.running) {
75 if (!showAnimation.running && !hideAnimation.running) {
75 if (revealProgress === 0) {
76 if (revealProgress === 0) {
76 indicators.state = "initial";
77 indicators.state = "initial";
77− } else if (revealProgress > 0 && revealProgress <= hintValue) {
78+ } else if (enableHint && revealProgress > 0 && revealProgress <= hintValue) {
78 indicators.state = "hint";
79 indicators.state = "hint";
79− } else if (revealProgress > hintValue && revealProgress < lockThreshold) {
80+ } else if ((!enableHint || revealProgress > hintValue) && revealProgress < lockThreshold) {
80 indicators.state = "reveal";
81 indicators.state = "reveal";
81 } else if (revealProgress >= lockThreshold && lockThreshold > 0) {
82 } else if (revealProgress >= lockThreshold && lockThreshold > 0) {
82 indicators.state = "locked";
83 indicators.state = "locked";
@@ -171,17 +172,6 @@ Showable {
171 }
172 }
172 }
173 }
173
174
174− VerticalThinDivider {
175− anchors {
176− top: indicators.top
177− topMargin: panelHeight
178− bottom: handle.bottom
179− right: indicators.left
180− }
181− width: units.dp(2)
182− source: "graphics/VerticalDivider.png"
183− }
184−
185 VisibleIndicators {
175 VisibleIndicators {
186 id: visibleIndicators
176 id: visibleIndicators
187 }
177 }
@@ -245,10 +235,6 @@ Showable {
245 }
235 }
246 }
236 }
247
237
248− PanelBackground {
249− anchors.fill: indicatorRow
250− }
251−
252 IndicatorRow {
238 IndicatorRow {
253 id: indicatorRow
239 id: indicatorRow
254 objectName: "indicatorRow"
240 objectName: "indicatorRow"
@@ -356,24 +342,27 @@ Showable {
356 id: showDragHandle
342 id: showDragHandle
357 anchors.bottom: parent.bottom
343 anchors.bottom: parent.bottom
358 // go beyond parent so that it stays reachable, at the top of the screen.
344 // go beyond parent so that it stays reachable, at the top of the screen.
359− anchors.bottomMargin: pinnedMode ? 0 : -panelHeight
345+ anchors.bottomMargin: showHintBottomMargin
360 anchors.left: parent.left
346 anchors.left: parent.left
361 anchors.right: parent.right
347 anchors.right: parent.right
362 height: panelHeight
348 height: panelHeight
363 direction: Direction.Downwards
349 direction: Direction.Downwards
364 enabled: !indicators.shown && indicators.available
350 enabled: !indicators.shown && indicators.available
365− hintDisplacement: pinnedMode ? indicators.hintValue : 0
351+ hintDisplacement: enableHint ? indicators.hintValue : 0
366 autoCompleteDragThreshold: maxTotalDragDistance / 2
352 autoCompleteDragThreshold: maxTotalDragDistance / 2
367 stretch: true
353 stretch: true
368 maxTotalDragDistance: openedHeight - panelHeight
354 maxTotalDragDistance: openedHeight - panelHeight
369− distanceThreshold: pinnedMode ? 0 : units.gu(3)
355+ distanceThreshold: panelHeight
370
356
371 onStatusChanged: {
357 onStatusChanged: {
372 if (status === DirectionalDragArea.Recognized) {
358 if (status === DirectionalDragArea.Recognized) {
373 menuContent.activateContent();
359 menuContent.activateContent();
374 }
360 }
375 }
361 }
362+
363+ onTapped: showTapped(Qt.point(touchSceneX, touchSceneY));
376 }
364 }
365+
377 DragHandle {
366 DragHandle {
378 id: hideDragHandle
367 id: hideDragHandle
379 anchors.fill: handle
368 anchors.fill: handle
@@ -396,10 +385,6 @@ Showable {
396 },
385 },
397 State {
386 State {
398 name: "hint"
387 name: "hint"
399− PropertyChanges {
400− target: indicatorRow;
401− y: pinnedMode ? 0 : panelHeight
402− }
403 StateChangeScript {
388 StateChangeScript {
404 script: {
389 script: {
405 if (d.activeDragHandle) {
390 if (d.activeDragHandle) {
@@ -432,5 +417,6 @@ Showable {
432 Component.onCompleted: initialise();
417 Component.onCompleted: initialise();
433 function initialise() {
418 function initialise() {
434 visibleIndicators.load(profile);
419 visibleIndicators.load(profile);
420+ indicatorRow.setDefaultItem();
435 }
421 }
436}
422}
qml/Panel/Panel.qml+131−90
@@ -16,27 +16,23 @@
16
16
17import QtQuick 2.0
17import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19+import Unity.Application 0.1
19import "../Components"
20import "../Components"
21+import "../Components/ListItems"
20
22
21Item {
23Item {
22 id: root
24 id: root
23− readonly property real panelHeight: units.gu(3) + units.dp(2)
25+ readonly property real panelHeight: indicatorArea.y + d.indicatorHeight
24− property real indicatorsMenuWidth: width
25− property alias indicators: indicatorsMenu
26+ property alias indicators: __indicators
27+ property alias callHint: __callHint
26 property bool fullscreenMode: false
28 property bool fullscreenMode: false
27− property bool searchVisible: true
28−
29− readonly property real separatorLineHeight: leftSeparatorLine.height
30− readonly property real __panelMinusSeparatorLineHeight: panelHeight - separatorLineHeight
31−
32− signal searchClicked
33
29
34 function hideIndicatorMenu(delay) {
30 function hideIndicatorMenu(delay) {
35 if (delay !== undefined) {
31 if (delay !== undefined) {
36 hideTimer.interval = delay;
32 hideTimer.interval = delay;
37 hideTimer.start();
33 hideTimer.start();
38 } else {
34 } else {
39− indicatorsMenu.hide();
35+ indicators.hide();
40 }
36 }
41 }
37 }
42
38
@@ -44,129 +40,174 @@ Item {
44 id: hideTimer
40 id: hideTimer
45 running: false
41 running: false
46 onTriggered: {
42 onTriggered: {
47− indicatorsMenu.hide();
43+ indicators.hide();
48 }
44 }
49 }
45 }
50
46
51 Connections {
47 Connections {
52− target: indicatorsMenu
48+ target: indicators
53 onShownChanged: hideTimer.stop()
49 onShownChanged: hideTimer.stop()
54 }
50 }
55
51
56− PanelBackground {
57− id: panelBackground
58− anchors {
59− left: parent.left
60− right: parent.right
61− }
62− height: __panelMinusSeparatorLineHeight
63− y: 0
64−
65− Behavior on y { StandardAnimation { duration: 500 } }
66− }
67−
68− PanelSeparatorLine {
69− id: leftSeparatorLine
70− anchors {
71− top: panelBackground.bottom
72− left: parent.left
73− right: indicatorsMenu.left
74− }
75− saturation: 1 - indicatorsMenu.unitProgress
76− }
77−
78 Rectangle {
52 Rectangle {
79 id: darkenedArea
53 id: darkenedArea
80 property real darkenedOpacity: 0.6
54 property real darkenedOpacity: 0.6
81 anchors {
55 anchors {
56+ top: parent.top
57+ topMargin: panelHeight
82 left: parent.left
58 left: parent.left
83 right: parent.right
59 right: parent.right
84− top: panelBackground.bottom
85 bottom: parent.bottom
60 bottom: parent.bottom
86 }
61 }
87 color: "black"
62 color: "black"
88− opacity: indicatorsMenu.unitProgress * darkenedOpacity
63+ opacity: indicators.unitProgress * darkenedOpacity
64+
89 MouseArea {
65 MouseArea {
90 anchors.fill: parent
66 anchors.fill: parent
91− enabled: indicatorsMenu.shown
67+ enabled: indicators.shown
92− onClicked: if (indicatorsMenu.fullyOpened) indicatorsMenu.hide();
68+ onClicked: if (indicators.fullyOpened) indicators.hide();
93 }
69 }
94 }
70 }
95
71
96− Indicators {
72+ Item {
97− id: indicatorsMenu
73+ id: indicatorArea
98− objectName: "indicators"
74+ objectName: "indicatorArea"
99−
100− anchors.right: parent.right
101− y: panelBackground.y
102− width: root.indicatorsMenuWidth
103− shown: false
104− panelHeight: __panelMinusSeparatorLineHeight
105− openedHeight: parent.height + (pinnedMode ? 0 : root.panelHeight)
106− pinnedMode: !fullscreenMode
107− overFlowWidth: search.state=="hidden" ? parent.width : parent.width - search.width
108− }
109
75
110− PanelSeparatorLine {
76+ anchors.fill: parent
111− id: indicatorsSeparatorLine
77+
112− visible: true
78+ Behavior on anchors.topMargin { StandardAnimation {} }
113− anchors {
79+
114− left: indicatorsMenu.left
80+ BorderImage {
115− right: indicatorsMenu.right
81+ id: dropShadow
82+ anchors {
83+ fill: indicators
84+ leftMargin: -units.gu(1)
85+ bottomMargin: -units.gu(1)
86+ }
87+ visible: indicators.height > indicators.panelHeight
88+ source: "graphics/rectangular_dropshadow.sci"
116 }
89 }
117− y: indicatorsMenu.visualBottom
118− }
119
90
120− BorderImage {
91+ VerticalThinDivider {
121− id: dropShadow
92+ id: indicatorDividor
122− anchors {
93+ anchors {
123− top: indicators.top
94+ top: indicators.top
124− bottom: indicatorsSeparatorLine.bottom
95+ bottom: indicators.bottom
125− left: indicators.left
96+ right: indicators.left
126− right: indicators.right
97+
127− margins: -units.gu(1)
98+ topMargin: indicatorArea.anchors.topMargin + indicators.panelHeight
99+ }
100+
101+ width: units.dp(2)
102+ source: "graphics/VerticalDivider.png"
103+ }
104+
105+ Rectangle {
106+ id: indicatorAreaBackground
107+ color: callHint.visible ? "green" : "black"
108+ anchors {
109+ top: parent.top
110+ left: parent.left
111+ right: parent.right
112+ }
113+ height: indicators.panelHeight
114+
115+ Behavior on color { ColorAnimation { duration: UbuntuAnimation.FastDuration } }
116+ }
117+
118+ PanelSeparatorLine {
119+ id: nonIndicatorAreaSeparatorLine
120+ anchors {
121+ top: indicatorAreaBackground.bottom
122+ left: parent.left
123+ right: indicators.left
124+ }
125+ saturation: 1 - indicators.unitProgress
126+ }
127+
128+ MouseArea {
129+ anchors {
130+ top: parent.top
131+ left: parent.left
132+ right: indicators.left
133+ }
134+ height: indicators.panelHeight
135+ enabled: callHint.visible
136+ onClicked: callHint.showLiveCall()
128 }
137 }
129− visible: indicatorsMenu.height > indicatorsMenu.panelHeight
130− source: "graphics/rectangular_dropshadow.sci"
131− }
132
138
133− SearchIndicator {
139+ Indicators {
134− id: search
140+ id: __indicators
135− objectName: "search"
141+ objectName: "indicators"
136− enabled: root.searchVisible
137
142
138− state: {
143+ anchors {
139− if (parent.width < indicatorsMenu.width + width) {
144+ top: parent.top
140− if (indicatorsMenu.state != "initial") {
145+ right: parent.right
141− return "hidden";
146+ }
147+
148+ width: root.width
149+ shown: false
150+ panelHeight: units.gu(3)
151+ openedHeight: root.height
152+ overFlowWidth: {
153+ if (callHint.visible) {
154+ return Math.max(root.width - (callHint.width + units.gu(2)), 0)
142 }
155 }
156+ return root.width
143 }
157 }
144− if (root.searchVisible && !indicatorsMenu.showAll) {
158+
145− return "visible";
159+ enableHint: !callHint.active && !fullscreenMode
160+ showHintBottomMargin: fullscreenMode ? -panelHeight : 0
161+
162+ onShowTapped: {
163+ if (callHint.active) {
164+ callHint.showLiveCall();
165+ }
146 }
166 }
167+ }
147
168
148− return "hidden";
169+ ActiveCallHint {
170+ id: __callHint
171+ anchors {
172+ top: parent.top
173+ left: parent.left
174+ }
175+ height: indicators.panelHeight
176+ visible: active && indicators.state == "initial"
149 }
177 }
150
178
151− height: __panelMinusSeparatorLineHeight
179+ PanelSeparatorLine {
180+ id: indicatorsSeparatorLine
181+ visible: true
152− anchors {
182+ anchors {
153− top: panelBackground.top
183+ top: indicators.bottom
154− left: panelBackground.left
184+ left: indicatorDividor.left
185+ right: indicators.right
186+ }
155 }
187 }
188+ }
156
189
157− onClicked: root.searchClicked()
190+ QtObject {
191+ id: d
192+ readonly property real indicatorHeight: indicators.panelHeight + indicatorsSeparatorLine.height
158 }
193 }
159
194
160 states: [
195 states: [
161 State {
196 State {
162− name: "in" //fully opaque and visible at top edge of screen
197+ name: "onscreen" //fully opaque and visible at top edge of screen
163 when: !fullscreenMode
198 when: !fullscreenMode
164− PropertyChanges { target: panelBackground; y: 0 }
199+ PropertyChanges {
200+ target: indicatorArea;
201+ anchors.topMargin: 0
202+ }
165 },
203 },
166 State {
204 State {
167− name: "out" //pushed off screen
205+ name: "offscreen" //pushed off screen
168 when: fullscreenMode
206 when: fullscreenMode
169− PropertyChanges { target: panelBackground; y: -panelHeight }
207+ PropertyChanges {
208+ target: indicatorArea;
209+ anchors.topMargin: indicators.state === "initial" ? -d.indicatorHeight : 0
210+ }
170 }
211 }
171 ]
212 ]
172}
213}
qml/ScopeTool.qml−1
@@ -73,7 +73,6 @@ Rectangle {
73 id: dashContent
73 id: dashContent
74
74
75 model: filteredScopes
75 model: filteredScopes
76− searchHistory: SearchHistoryModel { }
77 property var scope: scopes.getScope(currentIndex)
76 property var scope: scopes.getScope(currentIndex)
78
77
79 anchors {
78 anchors {
qml/Shell.qml+14−15
@@ -109,7 +109,7 @@ FocusScope {
109 anchors.rightMargin: -parent.anchors.rightMargin
109 anchors.rightMargin: -parent.anchors.rightMargin
110
110
111 // Whether the underlay is fully covered by opaque UI elements.
111 // Whether the underlay is fully covered by opaque UI elements.
112− property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicatorsMenuWidth
112+ property bool fullyCovered: panel.indicators.fullyOpened && shell.width <= panel.indicators.width
113
113
114 // Whether the user should see the topmost application surface (if there's one at all).
114 // Whether the user should see the topmost application surface (if there's one at all).
115 readonly property bool applicationSurfaceShouldBeSeen: stages.shown && !stages.painting && !stages.overlayMode
115 readonly property bool applicationSurfaceShouldBeSeen: stages.shown && !stages.painting && !stages.overlayMode
@@ -484,16 +484,16 @@ FocusScope {
484 Panel {
484 Panel {
485 id: panel
485 id: panel
486 anchors.fill: parent //because this draws indicator menus
486 anchors.fill: parent //because this draws indicator menus
487− indicatorsMenuWidth: parent.width > units.gu(60) ? units.gu(40) : parent.width
488 indicators {
487 indicators {
489 hides: [launcher]
488 hides: [launcher]
490 available: edgeDemo.panelEnabled
489 available: edgeDemo.panelEnabled
491 contentEnabled: edgeDemo.panelContentEnabled
490 contentEnabled: edgeDemo.panelContentEnabled
491+ width: parent.width > units.gu(60) ? units.gu(40) : parent.width
492+ panelHeight: units.gu(3)
492 }
493 }
493 property string focusedAppId: ApplicationManager.focusedApplicationId
494 property string focusedAppId: ApplicationManager.focusedApplicationId
494 property var focusedApplication: ApplicationManager.findApplication(focusedAppId)
495 property var focusedApplication: ApplicationManager.findApplication(focusedAppId)
495 fullscreenMode: focusedApplication && stages.fullscreen && !greeter.shown && !lockscreen.shown
496 fullscreenMode: focusedApplication && stages.fullscreen && !greeter.shown && !lockscreen.shown
496− searchVisible: !greeter.shown && !lockscreen.shown && dash.shown && dash.searchable
497
497
498 InputFilterArea {
498 InputFilterArea {
499 anchors {
499 anchors {
@@ -534,15 +534,16 @@ FocusScope {
534 showHome()
534 showHome()
535 }
535 }
536 onDash: {
536 onDash: {
537− if (stages.shown && !stages.overlayMode) {
537+ if (stages.shown && !stages.overlayMode && !stages.locked) {
538− if (!stages.locked) {
539− stages.hide();
538+ stages.hide();
540− launcher.hide();
539+ launcher.fadeOut();
541− }
540+ } else {
541+ launcher.switchToNextState("visible");
542 }
542 }
543+
543 if (greeter.shown) {
544 if (greeter.shown) {
544 greeter.hideRight();
545 greeter.hideRight();
545− launcher.hide();
546+ launcher.fadeOut();
546 }
547 }
547 }
548 }
548 onDashSwipeChanged: if (dashSwipe && stages.shown) dash.setCurrentScope("clickscope", false, true)
549 onDashSwipeChanged: if (dashSwipe && stages.shown) dash.setCurrentScope("clickscope", false, true)
@@ -581,12 +582,10 @@ FocusScope {
581 model: NotificationBackend.Model
582 model: NotificationBackend.Model
582 margin: units.gu(1)
583 margin: units.gu(1)
583
584
584− anchors {
585+ y: panel.panelHeight
585− top: parent.top
586+ width: parent.width
586− right: parent.right
587− bottom: parent.bottom
588− topMargin: panel.panelHeight
587+ height: parent.height - panel.panelHeight
589− }
588+
590 states: [
589 states: [
591 State {
590 State {
592 name: "narrow"
591 name: "narrow"
qml/graphics/applicationIcons/phone-app@18.png → qml/graphics/applicationIcons/dialer-app@18.pngrenamed

Binary file not shown.

tests/autopilot/unity8/shell/emulators/dash.py+29−26
@@ -108,44 +108,47 @@ class Dash(emulators.UnityEmulatorBase):
108 @autopilot_logging.log_action(logger.info)
108 @autopilot_logging.log_action(logger.info)
109 def _scroll_to_left_scope(self):
109 def _scroll_to_left_scope(self):
110 original_index = self.dash_content_list.currentIndex
110 original_index = self.dash_content_list.currentIndex
111− # Scroll on the border of the page header, because some scopes have
111+ dashContent = self.select_single(objectName="dashContent")
112− # contents that can be scrolled horizontally.
113− page_header = self._get_page_header()
114− border = page_header.select_single('QQuickBorderImage')
115− start_x = border.width / 3
112+ start_x = dashContent.width / 3
116− stop_x = border.width / 3 * 2
113+ stop_x = dashContent.width / 3 * 2
117− start_y = stop_y = border.globalRect.y + border.height / 2
114+ start_y = stop_y = dashContent.globalRect.y + 1
118 self.pointing_device.drag(start_x, start_y, stop_x, stop_y)
115 self.pointing_device.drag(start_x, start_y, stop_x, stop_y)
119 self.dash_content_list.currentIndex.wait_for(original_index - 1)
116 self.dash_content_list.currentIndex.wait_for(original_index - 1)
120
117
121− def _get_page_header(self):
122− return self.select_single('PageHeader', objectName='pageHeader')
123−
124 @autopilot_logging.log_action(logger.info)
118 @autopilot_logging.log_action(logger.info)
125 def _scroll_to_right_scope(self):
119 def _scroll_to_right_scope(self):
126 original_index = self.dash_content_list.currentIndex
120 original_index = self.dash_content_list.currentIndex
127− # Scroll on the border of the page header, because some scopes have
121+ dashContent = self.select_single(objectName="dashContent")
128− # contents that can be scrolled horizontally.
129− page_header = self._get_page_header()
130− border = page_header.select_single('QQuickBorderImage')
131− start_x = border.width / 3 * 2
122+ start_x = dashContent.width / 3 * 2
132− stop_x = border.width / 3
123+ stop_x = dashContent.width / 3
133− start_y = stop_y = border.globalRect.y + border.height / 2
124+ start_y = stop_y = dashContent.globalRect.y + 1
134 self.pointing_device.drag(start_x, start_y, stop_x, stop_y)
125 self.pointing_device.drag(start_x, start_y, stop_x, stop_y)
135 self.dash_content_list.currentIndex.wait_for(original_index + 1)
126 self.dash_content_list.currentIndex.wait_for(original_index + 1)
136
127
137 def enter_search_query(self, query):
128 def enter_search_query(self, query):
129+ current_header = self._get_current_page_header()
130+ self.pointing_device.move(current_header.globalRect.x +
131+ current_header.width - current_header.height / 2,
132+ current_header.globalRect.y +
133+ current_header.height / 2)
134+ self.pointing_device.click()
135+ headerContainer = current_header.select_single(objectName="headerContainer")
136+ headerContainer.contentY.wait_for(0)
138 search_text_field = self._get_search_text_field()
137 search_text_field = self._get_search_text_field()
139 search_text_field.write(query)
138 search_text_field.write(query)
140− search_text_field.state.wait_for('idle')
139+ current_header.select_single(objectName="searchIndicator").running.wait_for(False)
141
140
142 def _get_search_text_field(self):
141 def _get_search_text_field(self):
143− page_header = self._get_page_header()
142+ page_header = self._get_current_page_header()
144− search_container = page_header.select_single(
143+ return page_header.select_single(objectName='searchTextField')
145− 'QQuickItem', objectName='searchContainer')
144+
146− search_container.state.wait_for(
145+ def _get_current_page_header(self):
147− MatchesAny(Equals('narrowActive'), Equals('active')))
146+ dashContentList = self.select_single(objectName="dashContentList")
148− return search_container.select_single(toolkit_emulators.TextField)
147+ all_headers = dashContentList.select_many("QQuickLoader")
148+ for i in all_headers:
149+ if i.isCurrent:
150+ return i.select_single(objectName="scopePageHeader")
151+ return None
149
152
150
153
151class GenericScopeView(emulators.UnityEmulatorBase):
154class GenericScopeView(emulators.UnityEmulatorBase):
@@ -166,8 +169,8 @@ class GenericScopeView(emulators.UnityEmulatorBase):
166 # Some categories do not show previews, like recent apps.
169 # Some categories do not show previews, like recent apps.
167 # --elopio - 2014-1-14
170 # --elopio - 2014-1-14
168 self.pointing_device.click_object(icon)
171 self.pointing_device.click_object(icon)
169− preview_list = self.get_root_instance().wait_select_single(
172+ preview_list = self.wait_select_single(
170− 'PreviewListView', objectName='dashContentPreviewList')
173+ 'PreviewListView', objectName='previewListView')
171 preview_list.x.wait_for(0)
174 preview_list.x.wait_for(0)
172 return preview_list.select_single(
175 return preview_list.select_single(
173 Preview, objectName='preview{}'.format(preview_list.currentIndex))
176 Preview, objectName='preview{}'.format(preview_list.currentIndex))
tests/autopilot/unity8/shell/emulators/main_window.py−5
@@ -130,13 +130,8 @@ class QQuickView(emulators.UnityEmulatorBase):
130
130
131 @autopilot_logging.log_action(logger.info)
131 @autopilot_logging.log_action(logger.info)
132 def search(self, query):
132 def search(self, query):
133− search_indicator = self._get_search_indicator()
134− self.pointing_device.click_object(search_indicator)
135 self.get_dash().enter_search_query(query)
133 self.get_dash().enter_search_query(query)
136
134
137− def _get_search_indicator(self):
138− return self.select_single('SearchIndicator', objectName='search')
139−
140 @autopilot_logging.log_action(logger.info)
135 @autopilot_logging.log_action(logger.info)
141 def show_dash_from_launcher(self):
136 def show_dash_from_launcher(self):
142 """Open the dash clicking the dash icon on the launcher."""
137 """Open the dash clicking the dash icon on the launcher."""
tests/autopilot/unity8/shell/tests/test_emulators.py−1
@@ -50,7 +50,6 @@ class MainWindowTestCase(tests.UnityTestCase):
50 self.main_window.search('Test')
50 self.main_window.search('Test')
51 text_field = self.main_window.get_dash()._get_search_text_field()
51 text_field = self.main_window.get_dash()._get_search_text_field()
52 self.assertEqual(text_field.text, 'Test')
52 self.assertEqual(text_field.text, 'Test')
53− self.assertEqual(text_field.state, 'idle')
54
53
55
54
56class DashBaseTestCase(tests.UnityTestCase):
55class DashBaseTestCase(tests.UnityTestCase):
tests/autopilot/unity8/shell/tests/test_notifications.py+4−4
@@ -137,7 +137,7 @@ class InteractiveNotificationBase(NotificationsBase):
137 ("x-canonical-switch-to-application", "true"),
137 ("x-canonical-switch-to-application", "true"),
138 (
138 (
139 "x-canonical-secondary-icon",
139 "x-canonical-secondary-icon",
140− self._get_icon_path('applicationIcons/phone-app.png')
140+ self._get_icon_path('applicationIcons/dialer-app.png')
141 )
141 )
142 ]
142 ]
143
143
@@ -172,7 +172,7 @@ class InteractiveNotificationBase(NotificationsBase):
172 hints = [
172 hints = [
173 (
173 (
174 "x-canonical-secondary-icon",
174 "x-canonical-secondary-icon",
175− self._get_icon_path('applicationIcons/phone-app.png')
175+ self._get_icon_path('applicationIcons/dialer-app.png')
176 ),
176 ),
177 ("x-canonical-snap-decisions", "true"),
177 ("x-canonical-snap-decisions", "true"),
178 ]
178 ]
@@ -438,7 +438,7 @@ class EphemeralNotificationsTests(NotificationsBase):
438 hints = [
438 hints = [
439 (
439 (
440 "x-canonical-secondary-icon",
440 "x-canonical-secondary-icon",
441− self._get_icon_path('applicationIcons/phone-app.png')
441+ self._get_icon_path('applicationIcons/dialer-app.png')
442 )
442 )
443 ]
443 ]
444
444
@@ -681,7 +681,7 @@ class EphemeralNotificationsTests(NotificationsBase):
681 body = 'This bubble uses the icon-title-body layout with a ' \
681 body = 'This bubble uses the icon-title-body layout with a ' \
682 'secondary icon.'
682 'secondary icon.'
683 icon_path = self._get_icon_path('avatars/anna_olsson.png')
683 icon_path = self._get_icon_path('avatars/anna_olsson.png')
684− hint_icon = self._get_icon_path('applicationIcons/phone-app.png')
684+ hint_icon = self._get_icon_path('applicationIcons/dialer-app.png')
685
685
686 notification = shell.create_ephemeral_notification(
686 notification = shell.create_ephemeral_notification(
687 summary,
687 summary,
tests/mocks/Ubuntu/CMakeLists.txt+1
@@ -1,3 +1,4 @@
1add_subdirectory(DownloadDaemonListener)
1add_subdirectory(DownloadDaemonListener)
2add_subdirectory(Payments)
2add_subdirectory(Payments)
3+add_subdirectory(Telephony)
3add_subdirectory(Thumbnailer)
4add_subdirectory(Thumbnailer)
tests/mocks/Ubuntu/Telephony/CMakeLists.txtnew file+22
@@ -0,0 +1,22 @@
1+set(FakeUbuntuTelephonyQml_SOURCES
2+ plugin.cpp
3+ ContactWatcherData.cpp
4+ MockCallEntry.cpp
5+ MockCallManager.cpp
6+ MockContactWatcher.cpp
7+ MockTelepathyHelper.cpp
8+)
9+
10+add_library(FakeUbuntuTelephonyQml MODULE ${FakeUbuntuTelephonyQml_SOURCES})
11+
12+qt5_use_modules(FakeUbuntuTelephonyQml Core Quick)
13+
14+# copy files into build directory for shadow builds
15+add_custom_target(UbuntuTelephonyQmlDirFile ALL
16+ COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/qmldir" ${CMAKE_CURRENT_BINARY_DIR}
17+ DEPENDS qmldir
18+)
19+
20+install(TARGETS FakeUbuntuTelephonyQml
21+ DESTINATION ${SHELL_INSTALL_QML}/mocks/Ubuntu/Telephony
22+ )
tests/mocks/Ubuntu/Telephony/ContactWatcherData.cppnew file+43
@@ -0,0 +1,43 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#include "ContactWatcherData.h"
20+
21+ContactWatcherData::ContactWatcherData(QObject *parent)
22+ : QObject(parent)
23+{
24+}
25+
26+ContactWatcherData *ContactWatcherData::instance()
27+{
28+ static ContactWatcherData* contactData = new ContactWatcherData();
29+ return contactData;
30+}
31+
32+QVariant ContactWatcherData::contactData() const
33+{
34+ return m_data;
35+}
36+
37+void ContactWatcherData::setContactData(const QVariant& contactData)
38+{
39+ if(m_data != contactData){
40+ m_data = contactData;
41+ Q_EMIT contactDataChanged();
42+ }
43+}
tests/mocks/Ubuntu/Telephony/ContactWatcherData.hnew file+46
@@ -0,0 +1,46 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#ifndef CONTACTWATCHERDATA_H
20+#define CONTACTWATCHERDATA_H
21+
22+#include <QObject>
23+#include <QVariant>
24+
25+class ContactWatcherData : public QObject
26+{
27+ Q_OBJECT
28+ Q_DISABLE_COPY(ContactWatcherData)
29+ Q_PROPERTY(QVariant contactData READ contactData WRITE setContactData NOTIFY contactDataChanged)
30+
31+public:
32+ ContactWatcherData(QObject *parent = 0);
33+
34+ static ContactWatcherData *instance();
35+
36+ QVariant contactData() const;
37+ void setContactData(const QVariant& contactData);
38+
39+Q_SIGNALS:
40+ void contactDataChanged();
41+
42+private:
43+ QVariant m_data;
44+};
45+
46+#endif // CONTACTWATCHERDATA_H
tests/mocks/Ubuntu/Telephony/MockCallEntry.cppnew file+66
@@ -0,0 +1,66 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#include "MockCallEntry.h"
20+
21+MockCallEntry::MockCallEntry(QObject *parent)
22+ : QObject(parent)
23+ , m_conference(false)
24+ , m_elapsed(0)
25+{
26+ startTimer(1000);
27+}
28+
29+QString MockCallEntry::phoneNumber() const
30+{
31+ return m_phoneNumber;
32+}
33+
34+void MockCallEntry::setPhoneNumber(const QString& phoneNumber)
35+{
36+ if(m_phoneNumber != phoneNumber){
37+ m_phoneNumber = phoneNumber;
38+ Q_EMIT phoneNumberChanged();
39+ }
40+}
41+
42+bool MockCallEntry::isConference() const
43+{
44+ return m_conference;
45+}
46+
47+void MockCallEntry::setIsConference(bool isConference)
48+{
49+ if(m_conference != isConference){
50+ m_conference = isConference;
51+ Q_EMIT isConferenceChanged();
52+ }
53+}
54+
55+int MockCallEntry::elapsedTime() const
56+{
57+ return m_elapsed;
58+}
59+
60+void MockCallEntry::timerEvent(QTimerEvent * event)
61+{
62+ Q_UNUSED(event);
63+
64+ m_elapsed++;
65+ Q_EMIT elapsedTimeChanged();
66+}
tests/mocks/Ubuntu/Telephony/MockCallEntry.hnew file+57
@@ -0,0 +1,57 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#ifndef MOCKCALLENTRY_H
20+#define MOCKCALLENTRY_H
21+
22+#include <QObject>
23+
24+class MockCallEntry : public QObject
25+{
26+ Q_OBJECT
27+ Q_DISABLE_COPY(MockCallEntry)
28+
29+ Q_PROPERTY(QString phoneNumber READ phoneNumber WRITE setPhoneNumber NOTIFY phoneNumberChanged)
30+ Q_PROPERTY(bool isConference READ isConference WRITE setIsConference NOTIFY isConferenceChanged)
31+ Q_PROPERTY(int elapsedTime READ elapsedTime NOTIFY elapsedTimeChanged)
32+
33+public:
34+ MockCallEntry(QObject *parent = 0);
35+
36+ QString phoneNumber() const;
37+ bool isConference() const;
38+ int elapsedTime() const;
39+
40+ void setPhoneNumber(const QString& phoneNumber);
41+ void setIsConference(bool isConference);
42+
43+Q_SIGNALS:
44+ void phoneNumberChanged();
45+ void isConferenceChanged();
46+ void elapsedTimeChanged();
47+
48+protected:
49+ void timerEvent(QTimerEvent * event);
50+
51+private:
52+ QString m_phoneNumber;
53+ bool m_conference;
54+ int m_elapsed;
55+};
56+
57+#endif // MOCKCALLENTRY_H
tests/mocks/Ubuntu/Telephony/MockCallManager.cppnew file+80
@@ -0,0 +1,80 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#include "MockCallManager.h"
20+
21+MockCallManager::MockCallManager(QObject *parent)
22+ : QObject(parent)
23+ , m_foregroundCall(nullptr)
24+ , m_backgroundCall(nullptr)
25+ , m_callIndicatorVisible(false)
26+{
27+}
28+
29+MockCallManager *MockCallManager::instance()
30+{
31+ static MockCallManager* manager = new MockCallManager();
32+ return manager;
33+}
34+
35+QObject* MockCallManager::foregroundCall() const
36+{
37+ return m_foregroundCall;
38+}
39+
40+void MockCallManager::setForegroundCall(QObject* foregroundCall)
41+{
42+ if(m_foregroundCall != foregroundCall){
43+ m_foregroundCall = foregroundCall;
44+ Q_EMIT foregroundCallChanged();
45+ Q_EMIT hasCallsChanged();
46+ }
47+}
48+
49+QObject* MockCallManager::backgroundCall() const
50+{
51+ return m_backgroundCall;
52+}
53+
54+void MockCallManager::setBackgroundCall(QObject* backgroundCall)
55+{
56+ if(m_backgroundCall != backgroundCall){
57+ m_backgroundCall = backgroundCall;
58+ Q_EMIT backgroundCallChanged();
59+ Q_EMIT hasCallsChanged();
60+ }
61+}
62+
63+bool MockCallManager::hasCalls() const
64+{
65+ return m_foregroundCall || m_backgroundCall;
66+}
67+
68+
69+bool MockCallManager::callIndicatorVisible() const
70+{
71+ return m_callIndicatorVisible;
72+}
73+
74+void MockCallManager::setCallIndicatorVisible(bool callIndicatorVisible)
75+{
76+ if(m_callIndicatorVisible != callIndicatorVisible){
77+ m_callIndicatorVisible = callIndicatorVisible;
78+ Q_EMIT callIndicatorVisibleChanged();
79+ }
80+}
tests/mocks/Ubuntu/Telephony/MockCallManager.hnew file+60
@@ -0,0 +1,60 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#ifndef MOCKCALLMANAGER_H
20+#define MOCKCALLMANAGER_H
21+
22+#include <QObject>
23+
24+class MockCallManager : public QObject
25+{
26+ Q_OBJECT
27+ Q_DISABLE_COPY(MockCallManager)
28+
29+ Q_PROPERTY(QObject *foregroundCall READ foregroundCall WRITE setForegroundCall NOTIFY foregroundCallChanged)
30+ Q_PROPERTY(QObject *backgroundCall READ backgroundCall WRITE setBackgroundCall NOTIFY backgroundCallChanged)
31+ Q_PROPERTY(bool hasCalls READ hasCalls NOTIFY hasCallsChanged)
32+ Q_PROPERTY(bool callIndicatorVisible READ callIndicatorVisible WRITE setCallIndicatorVisible NOTIFY callIndicatorVisibleChanged)
33+
34+public:
35+ explicit MockCallManager(QObject *parent = 0);
36+
37+ static MockCallManager *instance();
38+
39+ QObject* foregroundCall() const;
40+ QObject* backgroundCall() const;
41+ bool hasCalls() const;
42+ bool callIndicatorVisible() const;
43+
44+ void setForegroundCall(QObject* foregroundCall);
45+ void setBackgroundCall(QObject* backgroundCall);
46+ void setCallIndicatorVisible(bool callIndicatorVisible);
47+
48+Q_SIGNALS:
49+ void foregroundCallChanged();
50+ void backgroundCallChanged();
51+ void hasCallsChanged();
52+ void callIndicatorVisibleChanged();
53+
54+private:
55+ QObject* m_foregroundCall;
56+ QObject* m_backgroundCall;
57+ bool m_callIndicatorVisible;
58+};
59+
60+#endif // MOCKCALLMANAGER_H
tests/mocks/Ubuntu/Telephony/MockContactWatcher.cppnew file+50
@@ -0,0 +1,50 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#include "MockContactWatcher.h"
20+#include "ContactWatcherData.h"
21+
22+MockContactWatcher::MockContactWatcher(QObject *parent)
23+ : QObject(parent)
24+{
25+ connect(ContactWatcherData::instance(), &ContactWatcherData::contactDataChanged,
26+ this, &MockContactWatcher::aliasChanged);
27+}
28+
29+QString MockContactWatcher::phoneNumber() const
30+{
31+ return m_phoneNumber;
32+}
33+
34+void MockContactWatcher::setPhoneNumber(const QString& phoneNumber)
35+{
36+ if(m_phoneNumber != phoneNumber){
37+ m_phoneNumber = phoneNumber;
38+ Q_EMIT phoneNumberChanged();
39+ Q_EMIT aliasChanged();
40+ }
41+}
42+
43+QString MockContactWatcher::alias() const
44+{
45+ QVariantMap data = ContactWatcherData::instance()->contactData().toMap();
46+ if (data.contains(m_phoneNumber)) {
47+ return data[m_phoneNumber].toMap()["alias"].toString();
48+ }
49+ return "";
50+}
tests/mocks/Ubuntu/Telephony/MockContactWatcher.hnew file+49
@@ -0,0 +1,49 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#ifndef MOCKCONTACTWATCHER_H
20+#define MOCKCONTACTWATCHER_H
21+
22+#include <QObject>
23+#include <QVariant>
24+
25+class MockContactWatcher : public QObject
26+{
27+ Q_OBJECT
28+ Q_DISABLE_COPY(MockContactWatcher)
29+
30+ Q_PROPERTY(QString phoneNumber READ phoneNumber WRITE setPhoneNumber NOTIFY phoneNumberChanged)
31+ Q_PROPERTY(QString alias READ alias NOTIFY aliasChanged)
32+
33+public:
34+ MockContactWatcher(QObject *parent = 0);
35+
36+ QString phoneNumber() const;
37+ QString alias() const;
38+
39+ void setPhoneNumber(const QString& phoneNumber);
40+
41+Q_SIGNALS:
42+ void phoneNumberChanged();
43+ void aliasChanged();
44+
45+private:
46+ QString m_phoneNumber;
47+};
48+
49+#endif // MOCKCONTACTWATCHER_H
tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cppnew file+35
@@ -0,0 +1,35 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#include "MockTelepathyHelper.h"
20+
21+MockTelepathyHelper::MockTelepathyHelper(QObject *parent)
22+ : QObject(parent)
23+{
24+}
25+
26+MockTelepathyHelper *MockTelepathyHelper::instance()
27+{
28+ static MockTelepathyHelper* helper = new MockTelepathyHelper();
29+ return helper;
30+}
31+
32+void MockTelepathyHelper::registerChannelObserver(const QString& name)
33+{
34+ Q_UNUSED(name);
35+}
tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.hnew file+36
@@ -0,0 +1,36 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#ifndef MOCKTELEPATHYHELPER_H
20+#define MOCKTELEPATHYHELPER_H
21+
22+#include <QObject>
23+
24+class MockTelepathyHelper : public QObject
25+{
26+ Q_OBJECT
27+ Q_DISABLE_COPY(MockTelepathyHelper)
28+public:
29+ MockTelepathyHelper(QObject *parent = 0);
30+
31+ static MockTelepathyHelper *instance();
32+
33+ Q_INVOKABLE void registerChannelObserver(const QString& name);
34+};
35+
36+#endif // MOCKCONTACTWATCHER_H
tests/mocks/Ubuntu/Telephony/plugin.cppnew file+52
@@ -0,0 +1,52 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#include "plugin.h"
20+#include "MockCallEntry.h"
21+#include "MockCallManager.h"
22+#include "MockContactWatcher.h"
23+#include "MockTelepathyHelper.h"
24+#include "ContactWatcherData.h"
25+
26+#include <QtQml/QQmlContext>
27+#include <QtQml/QQmlEngine>
28+#include <qqml.h>
29+
30+void FakeUbuntuTelephonyQmlPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
31+{
32+ Q_ASSERT(engine);
33+
34+ Q_UNUSED(uri);
35+
36+ mRootContext = engine->rootContext();
37+ Q_ASSERT(mRootContext);
38+
39+ mRootContext->setContextProperty("telepathyHelper", MockTelepathyHelper::instance());
40+ mRootContext->setContextProperty("callManager", MockCallManager::instance());
41+ mRootContext->setContextProperty("contactWactherData", ContactWatcherData::instance());
42+}
43+
44+void FakeUbuntuTelephonyQmlPlugin::registerTypes(const char *uri)
45+{
46+ // @uri Telephony
47+ qmlRegisterUncreatableType<MockTelepathyHelper>(uri, 0, 1, "TelepathyHelper", "This is a singleton helper class");
48+ qmlRegisterUncreatableType<MockCallManager>(uri, 0, 1, "CallManager", "This is a singleton manager class");
49+ qmlRegisterUncreatableType<ContactWatcherData>(uri, 0, 1, "ContactWatcherData", "This is a singleton data class");
50+ qmlRegisterType<MockCallEntry>(uri, 0, 1, "CallEntry");
51+ qmlRegisterType<MockContactWatcher>(uri, 0, 1, "ContactWatcher");
52+}
tests/mocks/Ubuntu/Telephony/plugin.hnew file+37
@@ -0,0 +1,37 @@
1+/*
2+ * Copyright (C) 2014 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+ * Authored by: Nick Dedekind <nick.dedekind@canonical.com
17+ */
18+
19+#ifndef PLUGIN_H
20+#define PLUGIN_H
21+
22+#include <QQmlContext>
23+#include <QQmlExtensionPlugin>
24+
25+class FakeUbuntuTelephonyQmlPlugin : public QQmlExtensionPlugin
26+{
27+ Q_OBJECT
28+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
29+public:
30+ void initializeEngine(QQmlEngine *engine, const char *uri);
31+ void registerTypes(const char *uri);
32+
33+private:
34+ QQmlContext *mRootContext;
35+};
36+
37+#endif
tests/mocks/Ubuntu/Telephony/qmldirnew file+2
@@ -0,0 +1,2 @@
1+module Ubuntu.Telephony
2+plugin FakeUbuntuTelephonyQml
tests/mocks/Unity/Application/ApplicationManager.cpp+3−3
@@ -361,9 +361,9 @@ void ApplicationManager::buildListOfAvailableApplications()
361 ApplicationInfo *application;
361 ApplicationInfo *application;
362
362
363 application = new ApplicationInfo(this);
363 application = new ApplicationInfo(this);
364− application->setAppId("phone-app");
364+ application->setAppId("dialer-app");
365− application->setName("Phone");
365+ application->setName("Dialer");
366− application->setIcon(QUrl("phone"));
366+ application->setIcon(QUrl("dialer"));
367 application->setStage(ApplicationInfo::SideStage);
367 application->setStage(ApplicationInfo::SideStage);
368 application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch()));
368 application->setScreenshot(QString("image://application/%1/%2").arg(application->appId()).arg(QDateTime::currentMSecsSinceEpoch()));
369 generateQmlStrings(application);
369 generateQmlStrings(application);
tests/mocks/Unity/CMakeLists.txt+1−1
@@ -6,7 +6,7 @@ add_subdirectory(Notifications)
6pkg_search_module(DEE dee-1.0 REQUIRED)
6pkg_search_module(DEE dee-1.0 REQUIRED)
7pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
7pkg_search_module(GOBJECT gobject-2.0 REQUIRED)
8pkg_search_module(DEEQT libdee-qt5 REQUIRED)
8pkg_search_module(DEEQT libdee-qt5 REQUIRED)
9−pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=1)
9+pkg_check_modules(SCOPES_API REQUIRED unity-shell-scopes=2)
10
10
11include_directories(
11include_directories(
12 ${CMAKE_CURRENT_BINARY_DIR}
12 ${CMAKE_CURRENT_BINARY_DIR}
tests/mocks/Unity/Launcher/MockLauncherModel.cpp+7−2
@@ -22,12 +22,14 @@
22
22
23MockLauncherModel::MockLauncherModel(QObject* parent): LauncherModelInterface(parent)
23MockLauncherModel::MockLauncherModel(QObject* parent): LauncherModelInterface(parent)
24{
24{
25− MockLauncherItem *item = new MockLauncherItem("phone-app", "/usr/share/applications/phone-app.desktop", "Phone", "phone-app", this);
25+ MockLauncherItem *item = new MockLauncherItem("dialer-app", "/usr/share/applications/dialer-app.desktop", "Dialer", "dialer-app", this);
26 item->setProgress(0);
26 item->setProgress(0);
27− m_list.append(item);
27+ item->setPinned(true);
28 item->setFocused(true);
28 item->setFocused(true);
29+ m_list.append(item);
29 item = new MockLauncherItem("camera-app", "/usr/share/applications/camera-app.desktop", "Camera", "camera", this);
30 item = new MockLauncherItem("camera-app", "/usr/share/applications/camera-app.desktop", "Camera", "camera", this);
30 item->setProgress(10);
31 item->setProgress(10);
32+ item->setPinned(true);
31 m_list.append(item);
33 m_list.append(item);
32 item = new MockLauncherItem("gallery-app", "/usr/share/applications/gallery-app.desktop", "Gallery", "gallery", this);
34 item = new MockLauncherItem("gallery-app", "/usr/share/applications/gallery-app.desktop", "Gallery", "gallery", this);
33 item->setProgress(50);
35 item->setProgress(50);
@@ -40,6 +42,7 @@ MockLauncherModel::MockLauncherModel(QObject* parent): LauncherModelInterface(pa
40 m_list.append(item);
42 m_list.append(item);
41 item = new MockLauncherItem("twitter-webapp", "/usr/share/applications/twitter-webapp.desktop", "Twitter", "twitter", this);
43 item = new MockLauncherItem("twitter-webapp", "/usr/share/applications/twitter-webapp.desktop", "Twitter", "twitter", this);
42 item->setCount(12);
44 item->setCount(12);
45+ item->setPinned(true);
43 m_list.append(item);
46 m_list.append(item);
44 item = new MockLauncherItem("gmail-webapp", "/usr/share/applications/gmail-webapp.desktop", "GMail", "gmail", this);
47 item = new MockLauncherItem("gmail-webapp", "/usr/share/applications/gmail-webapp.desktop", "GMail", "gmail", this);
45 item->setCount(123);
48 item->setCount(123);
@@ -51,8 +54,10 @@ MockLauncherModel::MockLauncherModel(QObject* parent): LauncherModelInterface(pa
51 item->setProgress(50);
54 item->setProgress(50);
52 item->setCount(5);
55 item->setCount(5);
53 item->setFocused(true);
56 item->setFocused(true);
57+ item->setPinned(true);
54 m_list.append(item);
58 m_list.append(item);
55 item = new MockLauncherItem("calendar-app", "/usr/share/applications/calendar-app.desktop","Calendar", "calendar", this);
59 item = new MockLauncherItem("calendar-app", "/usr/share/applications/calendar-app.desktop","Calendar", "calendar", this);
60+ item->setPinned(true);
56 m_list.append(item);
61 m_list.append(item);
57}
62}
58
63
tests/mocks/Unity/fake_categories.cpp+4
@@ -116,6 +116,8 @@ Categories::data(const QModelIndex& index, int role) const
116 map["title"] = "HOLA";
116 map["title"] = "HOLA";
117 return map;
117 return map;
118 }
118 }
119+ case RoleHeaderLink:
120+ return QString();
119 case RoleResults:
121 case RoleResults:
120 return QVariant();
122 return QVariant();
121 case RoleCount:
123 case RoleCount:
@@ -163,6 +165,8 @@ Categories::data(const QModelIndex& index, int role) const
163 map["subtitle"] = "HOLA";
165 map["subtitle"] = "HOLA";
164 return map;
166 return map;
165 }
167 }
168+ case RoleHeaderLink:
169+ return QString();
166 case RoleResults:
170 case RoleResults:
167 return QVariant::fromValue(resultsModel);
171 return QVariant::fromValue(resultsModel);
168 case RoleCount:
172 case RoleCount:
tests/mocks/Unity/fake_scope.cpp+58−19
@@ -14,6 +14,8 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
15 */
16
16
17+#include <QUrl>
18+
17#include "fake_scope.h"
19#include "fake_scope.h"
18#include "fake_department.h"
20#include "fake_department.h"
19#include "fake_resultsmodel.h"
21#include "fake_resultsmodel.h"
@@ -35,87 +37,110 @@ Scope::Scope(QString const& id, QString const& name, bool visible, QObject* pare
35{
37{
36}
38}
37
39
38−QString Scope::id() const {
40+QString Scope::id() const
41+{
39 return m_id;
42 return m_id;
40}
43}
41
44
42−QString Scope::name() const {
45+QString Scope::name() const
46+{
43 return m_name;
47 return m_name;
44}
48}
45
49
46−QString Scope::searchQuery() const {
50+QString Scope::searchQuery() const
51+{
47 return m_searchQuery;
52 return m_searchQuery;
48}
53}
49
54
50−QString Scope::iconHint() const {
55+QString Scope::iconHint() const
56+{
51 return m_iconHint;
57 return m_iconHint;
52}
58}
53
59
54−QString Scope::description() const {
60+QString Scope::description() const
61+{
55 return m_description;
62 return m_description;
56}
63}
57
64
58−QString Scope::searchHint() const {
65+QString Scope::searchHint() const
66+{
59 return QString("");
67 return QString("");
60}
68}
61
69
62−QString Scope::shortcut() const {
70+QString Scope::shortcut() const
71+{
63 return QString("");
72 return QString("");
64}
73}
65
74
66−bool Scope::searchInProgress() const {
75+bool Scope::searchInProgress() const
76+{
67 return m_searching;
77 return m_searching;
68}
78}
69
79
70−unity::shell::scopes::CategoriesInterface* Scope::categories() const {
80+unity::shell::scopes::CategoriesInterface* Scope::categories() const
81+{
71 return m_categories;
82 return m_categories;
72}
83}
73
84
85+unity::shell::scopes::SettingsModelInterface* Scope::settings() const
86+{
87+ return nullptr;
88+}
89+
74−QString Scope::noResultsHint() const {
90+QString Scope::noResultsHint() const
91+{
75 return m_noResultsHint;
92 return m_noResultsHint;
76}
93}
77
94
78−QString Scope::formFactor() const {
95+QString Scope::formFactor() const
96+{
79 return m_formFactor;
97 return m_formFactor;
80}
98}
81
99
82−bool Scope::visible() const {
100+bool Scope::visible() const
101+{
83 return m_visible;
102 return m_visible;
84}
103}
85
104
86−bool Scope::isActive() const {
105+bool Scope::isActive() const
106+{
87 return m_isActive;
107 return m_isActive;
88}
108}
89
109
90−void Scope::setSearchQuery(const QString &str) {
110+void Scope::setSearchQuery(const QString &str)
111+{
91 if (str != m_searchQuery) {
112 if (str != m_searchQuery) {
92 m_searchQuery = str;
113 m_searchQuery = str;
93 Q_EMIT searchQueryChanged();
114 Q_EMIT searchQueryChanged();
94 }
115 }
95}
116}
96
117
97−void Scope::setFormFactor(const QString &str) {
118+void Scope::setFormFactor(const QString &str)
119+{
98 if (str != m_formFactor) {
120 if (str != m_formFactor) {
99 m_formFactor = str;
121 m_formFactor = str;
100 Q_EMIT formFactorChanged();
122 Q_EMIT formFactorChanged();
101 }
123 }
102}
124}
103
125
104−void Scope::setActive(const bool active) {
126+void Scope::setActive(const bool active)
127+{
105 if (active != m_isActive) {
128 if (active != m_isActive) {
106 m_isActive = active;
129 m_isActive = active;
107 Q_EMIT isActiveChanged();
130 Q_EMIT isActiveChanged();
108 }
131 }
109}
132}
110
133
111−void Scope::setSearchInProgress(const bool inProg) {
134+void Scope::setSearchInProgress(const bool inProg)
135+{
112 if (inProg != m_searching) {
136 if (inProg != m_searching) {
113 m_searching = inProg;
137 m_searching = inProg;
114 Q_EMIT searchInProgressChanged();
138 Q_EMIT searchInProgressChanged();
115 }
139 }
116}
140}
117
141
118−void Scope::setNoResultsHint(const QString& str) {
142+void Scope::setNoResultsHint(const QString& str)
143+{
119 if (str != m_noResultsHint) {
144 if (str != m_noResultsHint) {
120 m_noResultsHint = str;
145 m_noResultsHint = str;
121 Q_EMIT noResultsHintChanged();
146 Q_EMIT noResultsHintChanged();
@@ -157,7 +182,16 @@ bool Scope::hasDepartments() const
157
182
158QVariantMap Scope::customizations() const
183QVariantMap Scope::customizations() const
159{
184{
185+ QVariantMap m;
186+ if (m_id == "clickscope") {
187+ m["background-color"] = "red";
188+ m["foreground-color"] = "blue";
189+ } else if (m_id == "MockScope5") {
190+ QVariantMap pageHeader;
191+ pageHeader["logo"] = QUrl("../../../tests/qmltests/Components/tst_PageHeader/logo-ubuntu-orange.svg");
192+ m["page-header"] = pageHeader;
193+ }
160− return QVariantMap();
194+ return m;
161}
195}
162
196
163unity::shell::scopes::DepartmentInterface* Scope::getDepartment(const QString& id)
197unity::shell::scopes::DepartmentInterface* Scope::getDepartment(const QString& id)
@@ -182,3 +216,8 @@ void Scope::loadDepartment(const QString& id)
182 m_currentDeparment = id;
216 m_currentDeparment = id;
183 Q_EMIT currentDepartmentIdChanged();
217 Q_EMIT currentDepartmentIdChanged();
184}
218}
219+
220+void Scope::performQuery(const QString& query)
221+{
222+ Q_UNUSED(query);
223+}
tests/mocks/Unity/fake_scope.h+2
@@ -46,6 +46,7 @@ public:
46 QString noResultsHint() const override;
46 QString noResultsHint() const override;
47 QString formFactor() const override;
47 QString formFactor() const override;
48 bool isActive() const override;
48 bool isActive() const override;
49+ unity::shell::scopes::SettingsModelInterface* settings() const override;
49
50
50 /* setters */
51 /* setters */
51 void setSearchQuery(const QString& search_query) override;
52 void setSearchQuery(const QString& search_query) override;
@@ -63,6 +64,7 @@ public:
63 bool hasDepartments() const override;
64 bool hasDepartments() const override;
64 Q_INVOKABLE unity::shell::scopes::DepartmentInterface* getDepartment(const QString& id) override;
65 Q_INVOKABLE unity::shell::scopes::DepartmentInterface* getDepartment(const QString& id) override;
65 Q_INVOKABLE void loadDepartment(const QString& id) override;
66 Q_INVOKABLE void loadDepartment(const QString& id) override;
67+ Q_INVOKABLE void performQuery(const QString& query) override;
66
68
67 QVariantMap customizations() const override;
69 QVariantMap customizations() const override;
68
70
tests/mocks/Unity/fake_unity_plugin.cpp+1
@@ -45,6 +45,7 @@ void FakeUnityPlugin::registerTypes(const char *uri)
45 qmlRegisterUncreatableType<unity::shell::scopes::ScopeInterface>(uri, 0, 2, "Scope", "Can't create Scope object in QML.");
45 qmlRegisterUncreatableType<unity::shell::scopes::ScopeInterface>(uri, 0, 2, "Scope", "Can't create Scope object in QML.");
46 qmlRegisterUncreatableType<unity::shell::scopes::DepartmentInterface>(uri, 0, 2, "Department", "Can't create Department object in QML.");
46 qmlRegisterUncreatableType<unity::shell::scopes::DepartmentInterface>(uri, 0, 2, "Department", "Can't create Department object in QML.");
47 qmlRegisterUncreatableType<unity::shell::scopes::CategoriesInterface>(uri, 0, 2, "Categories", "Can't create Categories object in QML.");
47 qmlRegisterUncreatableType<unity::shell::scopes::CategoriesInterface>(uri, 0, 2, "Categories", "Can't create Categories object in QML.");
48+ qmlRegisterUncreatableType<unity::shell::scopes::PreviewModelInterface>(uri, 0, 2, "PreviewModel", "Can't create new PreviewModel in QML. Get them from PreviewStack instance.");
48 qmlRegisterUncreatableType<ResultsModel>(uri, 0, 2, "ResultsModel", "Can't create ResultsModel object in QML.");
49 qmlRegisterUncreatableType<ResultsModel>(uri, 0, 2, "ResultsModel", "Can't create ResultsModel object in QML.");
49 qmlRegisterType<PreviewModel>(uri, 0, 2, "FakePreviewModel");
50 qmlRegisterType<PreviewModel>(uri, 0, 2, "FakePreviewModel");
50 qmlRegisterUncreatableType<PreviewWidgetModel>(uri, 0, 2, "PreviewWidgetModel", "Can't create new PreviewWidgetModel in QML. Get them from PreviewModel instance.");
51 qmlRegisterUncreatableType<PreviewWidgetModel>(uri, 0, 2, "PreviewWidgetModel", "Can't create new PreviewWidgetModel in QML. Get them from PreviewModel instance.");
tests/plugins/Dash/CMakeLists.txt+2
@@ -76,4 +76,6 @@ add_binary_qml_test(CardCreator "" "Dash-qml")
76# plain qml test
76# plain qml test
77set(qmltest_DEFAULT_TARGETS qmluitests)
77set(qmltest_DEFAULT_TARGETS qmluitests)
78set(qmltest_DEFAULT_NO_ADD_TEST TRUE)
78set(qmltest_DEFAULT_NO_ADD_TEST TRUE)
79+set(qmltest_DEFAULT_PROPERTIES ENVIRONMENT "LC_ALL=C")
80+add_qml_test(. ScopeStyle IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
79add_qml_test(. ListViewWithPageHeaderQML IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
81add_qml_test(. ListViewWithPageHeaderQML IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins)
tests/plugins/Dash/cardcreator/1.res+3−2
@@ -5,7 +5,8 @@ AbstractButton {
5 property var cardData;
5 property var cardData;
6 property var artShapeBorderSource: undefined;
6 property var artShapeBorderSource: undefined;
7 property real fontScale: 1.0;
7 property real fontScale: 1.0;
8+ property var scopeStyle: null;
8− property int headerAlignment: Text.AlignLeft;
9+ property int headerAlignment: Text.AlignLeft;
9 property int fixedHeaderHeight: -1;
10 property int fixedHeaderHeight: -1;
10 property size fixedArtShapeSize: Qt.size(-1, -1);
11 property size fixedArtShapeSize: Qt.size(-1, -1);
11 readonly property string title: cardData && cardData["title"] || "";
12 readonly property string title: cardData && cardData["title"] || "";
@@ -75,7 +76,7 @@ leftMargin: units.gu(1);
75 wrapMode: Text.Wrap;
76 wrapMode: Text.Wrap;
76 maximumLineCount: 2;
77 maximumLineCount: 2;
77 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
78 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
78− color: "grey";
79+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey";
79 visible: showHeader ;
80 visible: showHeader ;
80 text: root.title;
81 text: root.title;
81 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
82 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
tests/plugins/Dash/cardcreator/2.res+5−5
@@ -5,7 +5,8 @@ AbstractButton {
5 property var cardData;
5 property var cardData;
6 property var artShapeBorderSource: undefined;
6 property var artShapeBorderSource: undefined;
7 property real fontScale: 1.0;
7 property real fontScale: 1.0;
8+ property var scopeStyle: null;
8− property int headerAlignment: Text.AlignLeft;
9+ property int headerAlignment: Text.AlignLeft;
9 property int fixedHeaderHeight: -1;
10 property int fixedHeaderHeight: -1;
10 property size fixedArtShapeSize: Qt.size(-1, -1);
11 property size fixedArtShapeSize: Qt.size(-1, -1);
11 readonly property string title: cardData && cardData["title"] || "";
12 readonly property string title: cardData && cardData["title"] || "";
@@ -78,8 +79,7 @@ Column {
78 anchors.verticalCenter: parent.verticalCenter;
79 anchors.verticalCenter: parent.verticalCenter;
79 spacing: units.dp(2);
80 spacing: units.dp(2);
80 width: parent.width - x;
81 width: parent.width - x;
81− data: [
82−Label {
82+ data: [ Label {
83 id: titleLabel;
83 id: titleLabel;
84 objectName: "titleLabel";
84 objectName: "titleLabel";
85 anchors { left: parent.left; right: parent.right }
85 anchors { left: parent.left; right: parent.right }
@@ -88,7 +88,7 @@ Label {
88 wrapMode: Text.Wrap;
88 wrapMode: Text.Wrap;
89 maximumLineCount: 2;
89 maximumLineCount: 2;
90 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
90 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
91− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < 0.7 ? "white" : "grey";
91+ color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < 0.7 ? "white" : (root.scopeStyle ? root.scopeStyle.foreground : "grey");
92 visible: showHeader ;
92 visible: showHeader ;
93 text: root.title;
93 text: root.title;
94 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
94 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -103,7 +103,7 @@ Label {
103 elide: Text.ElideRight;
103 elide: Text.ElideRight;
104 fontSize: "small";
104 fontSize: "small";
105 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
105 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
106− color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < 0.7 ? "white" : "grey";
106+ color: backgroundLoader.active && backgroundLoader.item && backgroundLoader.item.luminance < 0.7 ? "white" : (root.scopeStyle ? root.scopeStyle.foreground : "grey");
107 visible: titleLabel.visible && titleLabel.text;
107 visible: titleLabel.visible && titleLabel.text;
108 text: cardData && cardData["subtitle"] || "";
108 text: cardData && cardData["subtitle"] || "";
109 font.weight: Font.Light;
109 font.weight: Font.Light;
tests/plugins/Dash/cardcreator/3.res+6−4
@@ -5,7 +5,8 @@ AbstractButton {
5 property var cardData;
5 property var cardData;
6 property var artShapeBorderSource: undefined;
6 property var artShapeBorderSource: undefined;
7 property real fontScale: 1.0;
7 property real fontScale: 1.0;
8+ property var scopeStyle: null;
8− property int headerAlignment: Text.AlignLeft;
9+ property int headerAlignment: Text.AlignLeft;
9 property int fixedHeaderHeight: -1;
10 property int fixedHeaderHeight: -1;
10 property size fixedArtShapeSize: Qt.size(-1, -1);
11 property size fixedArtShapeSize: Qt.size(-1, -1);
11 readonly property string title: cardData && cardData["title"] || "";
12 readonly property string title: cardData && cardData["title"] || "";
@@ -75,7 +76,7 @@ leftMargin: units.gu(1);
75 wrapMode: Text.Wrap;
76 wrapMode: Text.Wrap;
76 maximumLineCount: 2;
77 maximumLineCount: 2;
77 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
78 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
78− color: "grey";
79+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey";
79 visible: showHeader ;
80 visible: showHeader ;
80 text: root.title;
81 text: root.title;
81 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
82 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -88,11 +89,12 @@ Label {
88 leftMargin: titleLabel.leftMargin;
89 leftMargin: titleLabel.leftMargin;
89 right: titleLabel.right;
90 right: titleLabel.right;
90 top: titleLabel.bottom;
91 top: titleLabel.bottom;
91− topMargin: units.dp(2); }
92+ topMargin: units.dp(2);
93+ }
92 elide: Text.ElideRight;
94 elide: Text.ElideRight;
93 fontSize: "small";
95 fontSize: "small";
94 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
96 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
95− color: "grey";
97+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey";
96 visible: titleLabel.visible && titleLabel.text;
98 visible: titleLabel.visible && titleLabel.text;
97 text: cardData && cardData["subtitle"] || "";
99 text: cardData && cardData["subtitle"] || "";
98 font.weight: Font.Light;
100 font.weight: Font.Light;
tests/plugins/Dash/cardcreator/4.res+4−3
@@ -5,7 +5,8 @@ AbstractButton {
5 property var cardData;
5 property var cardData;
6 property var artShapeBorderSource: undefined;
6 property var artShapeBorderSource: undefined;
7 property real fontScale: 1.0;
7 property real fontScale: 1.0;
8+ property var scopeStyle: null;
8− property int headerAlignment: Text.AlignLeft;
9+ property int headerAlignment: Text.AlignLeft;
9 property int fixedHeaderHeight: -1;
10 property int fixedHeaderHeight: -1;
10 property size fixedArtShapeSize: Qt.size(-1, -1);
11 property size fixedArtShapeSize: Qt.size(-1, -1);
11 readonly property string title: cardData && cardData["title"] || "";
12 readonly property string title: cardData && cardData["title"] || "";
@@ -68,7 +69,7 @@ data: [ Label {
68 wrapMode: Text.Wrap;
69 wrapMode: Text.Wrap;
69 maximumLineCount: 2;
70 maximumLineCount: 2;
70 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
71 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
71− color: "grey";
72+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey";
72 visible: showHeader ;
73 visible: showHeader ;
73 text: root.title;
74 text: root.title;
74 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
75 font.weight: components && components["subtitle"] ? Font.DemiBold : Font.Normal;
@@ -83,7 +84,7 @@ Label {
83 elide: Text.ElideRight;
84 elide: Text.ElideRight;
84 fontSize: "small";
85 fontSize: "small";
85 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
86 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale);
86− color: "grey";
87+ color: root.scopeStyle ? root.scopeStyle.foreground : "grey";
87 visible: titleLabel.visible && titleLabel.text;
88 visible: titleLabel.visible && titleLabel.text;
88 text: cardData && cardData["subtitle"] || "";
89 text: cardData && cardData["subtitle"] || "";
89 font.weight: Font.Light;
90 font.weight: Font.Light;
tests/plugins/Dash/cardcreator/5.res+3−2
@@ -4,8 +4,9 @@ AbstractButton {
4 property var components;
4 property var components;
5 property var cardData;
5 property var cardData;
6 property var artShapeBorderSource: undefined;
6 property var artShapeBorderSource: undefined;
7− property real fontScale: 1.0;
7+ property real fontScale: 1.0;
8+ property var scopeStyle: null;
8− property int headerAlignment: Text.AlignLeft;
9+ property int headerAlignment: Text.AlignLeft;
9 property int fixedHeaderHeight: -1;
10 property int fixedHeaderHeight: -1;
10 property size fixedArtShapeSize: Qt.size(-1, -1);
11 property size fixedArtShapeSize: Qt.size(-1, -1);
11 readonly property string title: cardData && cardData["title"] || "";
12 readonly property string title: cardData && cardData["title"] || "";
tests/plugins/Dash/cardcreator/6.resnew file+66
@@ -0,0 +1,66 @@
1+AbstractButton {
2+ id: root;
3+ property var template;
4+ property var components;
5+ property var cardData;
6+ property var artShapeBorderSource: undefined;
7+ property real fontScale: 1.0;
8+ property int headerAlignment: Text.AlignLeft;
9+ property int fixedHeaderHeight: -1;
10+ property size fixedArtShapeSize: Qt.size(-1, -1);
11+ readonly property string title: cardData && cardData["title"] || "";
12+ property bool asynchronous: true;
13+ property bool showHeader: true;
14+ implicitWidth: childrenRect.width;
15+onArtShapeBorderSourceChanged: { if (artShapeBorderSource !== undefined && artShapeLoader.item) artShapeLoader.item.borderSource = artShapeBorderSource; }
16+readonly property size artShapeSize: artShapeLoader.item ? Qt.size(artShapeLoader.item.width, artShapeLoader.item.height) : Qt.size(-1, -1);
17+Item {
18+ id: artShapeHolder;
19+ height: root.fixedArtShapeSize.height > 0 ? root.fixedArtShapeSize.height : artShapeLoader.height;
20+ width: root.fixedArtShapeSize.width > 0 ? root.fixedArtShapeSize.width : artShapeLoader.width;
21+ anchors { horizontalCenter: parent.horizontalCenter; }
22+ Loader {
23+ id: artShapeLoader;
24+ objectName: "artShapeLoader";
25+ active: cardData && cardData["art"] || false;
26+ asynchronous: root.asynchronous;
27+ visible: status == Loader.Ready;
28+ sourceComponent: UbuntuShape {
29+ id: artShape;
30+ objectName: "artShape";
31+ radius: "medium";
32+ visible: image.status == Image.Ready;
33+ readonly property real fixedArtShapeSizeAspect: (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) ? root.fixedArtShapeSize.width / root.fixedArtShapeSize.height : -1;
34+ readonly property real aspect: fixedArtShapeSizeAspect > 0 ? fixedArtShapeSizeAspect : components !== undefined ? components["art"]["aspect-ratio"] : 1;
35+ readonly property bool aspectSmallerThanImageAspect: aspect < image.aspect;
36+ Component.onCompleted: { updateWidthHeightBindings(); if (artShapeBorderSource !== undefined) borderSource = artShapeBorderSource; }
37+ onAspectSmallerThanImageAspectChanged: updateWidthHeightBindings();
38+ Connections { target: root; onFixedArtShapeSizeChanged: updateWidthHeightBindings(); }
39+ function updateWidthHeightBindings() {
40+ if (root.fixedArtShapeSize.height > 0 && root.fixedArtShapeSize.width > 0) {
41+ width = root.fixedArtShapeSize.width;
42+ height = root.fixedArtShapeSize.height;
43+ } else if (aspectSmallerThanImageAspect) {
44+ width = Qt.binding(function() { return !visible ? 0 : image.width });
45+ height = Qt.binding(function() { return !visible ? 0 : image.fillMode === Image.PreserveAspectCrop ? image.height : width / image.aspect });
46+ } else {
47+ width = Qt.binding(function() { return !visible ? 0 : image.fillMode === Image.PreserveAspectCrop ? image.width : height * image.aspect });
48+ height = Qt.binding(function() { return !visible ? 0 : image.height });
49+ }
50+ }
51+ image: Image {
52+ objectName: "artImage";
53+ source: cardData && cardData["art"] || "";
54+ cache: true;
55+ asynchronous: root.asynchronous;
56+ fillMode: components && components["art"]["fill-mode"] === "fit" ? Image.PreserveAspectFit: Image.PreserveAspectCrop;
57+ readonly property real aspect: implicitWidth / implicitHeight;
58+ width: root.width;
59+ height: width / artShape.aspect;
60+ }
61+ }
62+ }
63+ }
64+readonly property int headerHeight: 0;
65+implicitHeight: artShapeHolder.height;
66+}
tests/plugins/Dash/cardcreator/6.tstnew file+3
@@ -0,0 +1,3 @@
1+template: {"card-layout":"vertical","card-size":"small","category-layout":"grid","collapsed-rows":2}
2+components: {"art":{"aspect-ratio":1.6,"field":"art","fill-mode":"fit"}}
3+result: 6.res
tests/plugins/Dash/tst_ScopeStyle.qmlnew file+151
@@ -0,0 +1,151 @@
1+/*
2+ * Copyright (C) 2014 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.2
18+import QtTest 1.0
19+import Dash 0.1
20+import Ubuntu.Components 1.1
21+
22+Rectangle {
23+ width: units.gu(40)
24+ height: units.gu(71)
25+
26+ ScopeStyle {
27+ id: tool
28+ }
29+
30+ TestCase {
31+ id: testCase
32+ name: "ScopeStyle"
33+ when: windowShown
34+
35+ property color color
36+ property var styles: [
37+ {},
38+ { "foreground-color": "red", "background-color": "black", "page-header": { "logo": "/foo/bar" } },
39+ { "foreground-color": "green", "background-color": "white" },
40+ { "foreground-color": "blue", "background-color": "darkgrey" },
41+ ]
42+
43+ function cleanup() {
44+ testCase.color = "transparent";
45+ }
46+
47+ function test_luminance_data() {
48+ return [
49+ { tag: "#F00", luminance: 0.2126 },
50+ { tag: "#0F0", luminance: 0.7152 },
51+ { tag: "#00F", luminance: 0.0722 },
52+ { tag: "white", luminance: 1.0 },
53+ { tag: "black", luminance: 0.0 },
54+ { tag: "lightgrey", luminance: 0.8275 },
55+ { tag: "grey", luminance: 0.5020 },
56+ { tag: "darkgrey", luminance: 0.6627 },
57+ ];
58+ }
59+
60+ function test_luminance(data) {
61+ testCase.color = data.tag;
62+ compare(tool.luminance(testCase.color).toFixed(4), data.luminance.toFixed(4));
63+ }
64+
65+ function test_foreground_data() {
66+ return [
67+ { tag: "default", index: 0, foreground: "grey" },
68+ { tag: "red on black", index: 1, foreground: "red" },
69+ { tag: "green on white", index: 2, foreground: "green" },
70+ { tag: "blue on darkgrey", index: 3, foreground: "blue" },
71+ ];
72+ }
73+
74+ function test_foreground(data) {
75+ tool.style = testCase.styles[data.index];
76+ verify(Qt.colorEqual(tool.foreground, data.foreground),
77+ "Foreground color not equal: %1 != %2".arg(tool.foreground).arg(data.foreground));
78+ }
79+
80+ function test_background_data() {
81+ return [
82+ { tag: "default", index: 0, background: "transparent" },
83+ { tag: "red on black", index: 1, background: "black" },
84+ { tag: "green on white", index: 2, background: "white" },
85+ { tag: "blue on darkgrey", index: 3, background: "darkgrey" },
86+ ];
87+ }
88+
89+ function test_background(data) {
90+ tool.style = testCase.styles[data.index];
91+ verify(Qt.colorEqual(tool.background, data.background),
92+ "Background color not equal: %1 != %2".arg(tool.background).arg(data.background));
93+ }
94+
95+ function test_threshold_data() {
96+ return [
97+ { tag: "default", index: 0, threshold: 0.5020 },
98+ { tag: "red on black", index: 1, threshold: 0.1063 },
99+ { tag: "green on white", index: 2, threshold: 0.6795 },
100+ { tag: "blue on darkgrey", index: 3, threshold: 0.3675 },
101+ ];
102+ }
103+
104+ function test_threshold(data) {
105+ tool.style = testCase.styles[data.index];
106+ compare(tool.threshold.toFixed(4), data.threshold.toFixed(4), "Luminance threshold was incorrect.");
107+ }
108+
109+ function test_light_data() {
110+ return [
111+ { tag: "default", index: 0, light: "white" },
112+ { tag: "red on black", index: 1, light: "red" },
113+ { tag: "green on white", index: 2, light: "white" },
114+ { tag: "blue on darkgrey", index: 3, light: "darkgrey" },
115+ ];
116+ }
117+
118+ function test_light(data) {
119+ tool.style = testCase.styles[data.index];
120+ verify(Qt.colorEqual(tool.light, data.light),
121+ "Light color not equal: %1 != %2".arg(tool.light).arg(data.light));
122+ }
123+
124+ function test_dark_data() {
125+ return [
126+ { tag: "default", index: 0, dark: "grey" },
127+ { tag: "red on black", index: 1, dark: "black" },
128+ { tag: "green on white", index: 2, dark: "green" },
129+ { tag: "blue on darkgrey", index: 3, dark: "blue" },
130+ ];
131+ }
132+
133+ function test_dark(data) {
134+ tool.style = testCase.styles[data.index];
135+ verify(Qt.colorEqual(tool.dark, data.dark),
136+ "Dark color not equal: %1 != %2".arg(tool.dark).arg(data.dark));
137+ }
138+
139+ function test_headerLogo_data() {
140+ return [
141+ { tag: "default", index: 0, headerLogo: "" },
142+ { tag: "with logo", index: 1, headerLogo: "file:///foo/bar" },
143+ ];
144+ }
145+
146+ function test_headerLogo(data) {
147+ tool.style = testCase.styles[data.index];
148+ compare(tool.headerLogo, data.headerLogo, "Header logo was incorrect.");
149+ }
150+ }
151+}
tests/plugins/Unity/Launcher/launchermodeltest.cpp+9
@@ -156,11 +156,20 @@ private Q_SLOTS:
156 }
156 }
157
157
158 void testPinning() {
158 void testPinning() {
159+ QSignalSpy spy(launcherModel, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)));
159 QCOMPARE(launcherModel->get(0)->pinned(), false);
160 QCOMPARE(launcherModel->get(0)->pinned(), false);
160 QCOMPARE(launcherModel->get(1)->pinned(), false);
161 QCOMPARE(launcherModel->get(1)->pinned(), false);
161 launcherModel->pin(launcherModel->get(0)->appId());
162 launcherModel->pin(launcherModel->get(0)->appId());
162 QCOMPARE(launcherModel->get(0)->pinned(), true);
163 QCOMPARE(launcherModel->get(0)->pinned(), true);
163 QCOMPARE(launcherModel->get(1)->pinned(), false);
164 QCOMPARE(launcherModel->get(1)->pinned(), false);
165+ QCOMPARE(spy.count(), 1);
166+ QCOMPARE(spy.at(0).at(2).value<QVector<int>>().first(), (int)LauncherModelInterface::RolePinned);
167+
168+ launcherModel->requestRemove(launcherModel->get(0)->appId());
169+ QCOMPARE(launcherModel->get(0)->pinned(), false);
170+ QCOMPARE(launcherModel->get(1)->pinned(), false);
171+ QCOMPARE(spy.count(), 2);
172+ QCOMPARE(spy.at(1).at(2).value<QVector<int>>().first(), (int)LauncherModelInterface::RolePinned);
164 }
173 }
165
174
166 void testRemove_data() {
175 void testRemove_data() {
tests/qmltests/CMakeLists.txt+2−1
@@ -32,7 +32,7 @@ add_qml_test(Components ResponsiveGridView)
32add_qml_test(Components ResponsiveVerticalJournal IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins)
32add_qml_test(Components ResponsiveVerticalJournal IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins)
33add_qml_test(Components SeeMore)
33add_qml_test(Components SeeMore)
34add_qml_test(Components Showable)
34add_qml_test(Components Showable)
35−add_qml_test(Components PageHeaderLabel)
35+add_qml_test(Components PageHeader)
36add_qml_test(Components ZoomableImage)
36add_qml_test(Components ZoomableImage)
37add_qml_test(Dash Dash)
37add_qml_test(Dash Dash)
38add_qml_test(Dash DashContent)
38add_qml_test(Dash DashContent)
@@ -64,6 +64,7 @@ add_qml_test(Hud Result)
64add_qml_test(Launcher Launcher)
64add_qml_test(Launcher Launcher)
65add_qml_test(Notifications Notifications)
65add_qml_test(Notifications Notifications)
66add_qml_test(Notifications VisualSnapDecisionsQueue)
66add_qml_test(Notifications VisualSnapDecisionsQueue)
67+add_qml_test(Panel ActiveCallHint)
67add_qml_test(Panel IndicatorRow)
68add_qml_test(Panel IndicatorRow)
68add_qml_test(Panel Indicators)
69add_qml_test(Panel Indicators)
69add_qml_test(Panel MenuContent)
70add_qml_test(Panel MenuContent)
tests/qmltests/Components/tst_Carousel.qml+48−2
@@ -27,12 +27,13 @@ Item {
27 Carousel {
27 Carousel {
28 anchors.fill: parent
28 anchors.fill: parent
29 id: carousel
29 id: carousel
30− model: 40
31
30
32 property int createdDelegates: 0
31 property int createdDelegates: 0
33 property int destroyedDelegates: 0
32 property int destroyedDelegates: 0
34
33
35 itemComponent: BaseCarouselDelegate {
34 itemComponent: BaseCarouselDelegate {
35+ objectName: "carouselDelegate" + index
36+
36 Rectangle {
37 Rectangle {
37 anchors.fill: parent
38 anchors.fill: parent
38 border.color: "black"
39 border.color: "black"
@@ -42,6 +43,11 @@ Item {
42 }
43 }
43 }
44 }
44 }
45 }
46+
47+ SignalSpy {
48+ id: spy
49+ }
50+
45 UT.UnityTestCase {
51 UT.UnityTestCase {
46 id: root
52 id: root
47 name: "Carousel"
53 name: "Carousel"
@@ -51,6 +57,8 @@ Item {
51 property int itemCount
57 property int itemCount
52 property real tileWidth
58 property real tileWidth
53
59
60+ property Item listView: findChild(carousel, "listView")
61+
54 property real contentWidth: itemCount * tileWidth
62 property real contentWidth: itemCount * tileWidth
55 // following variables are copied from Carousel.qml
63 // following variables are copied from Carousel.qml
56 // I'm not using the variables directly from there, as then tileWidth and others would be affected as well
64 // I'm not using the variables directly from there, as then tileWidth and others would be affected as well
@@ -60,11 +68,25 @@ Item {
60 property real kGapEnd: kMiddleIndex * (1 - gapToEndPhase / gapToMiddlePhase)
68 property real kGapEnd: kMiddleIndex * (1 - gapToEndPhase / gapToMiddlePhase)
61 property real kXBeginningEnd: 1 / tileWidth + kMiddleIndex / gapToMiddlePhase
69 property real kXBeginningEnd: 1 / tileWidth + kMiddleIndex / gapToMiddlePhase
62
70
71+ function init() {
72+ carousel.model = 40;
73+ waitForRendering(carousel)
74+ listView.positionViewAtBeginning();
75+ }
76+
77+ function cleanup() {
78+ carousel.model = 0;
79+ carousel.createdDelegates = 0;
80+ carousel.destroyedDelegates = 0;
81+ spy.target = null;
82+ spy.signalName = "";
83+ }
84+
63 // This test needs to run first since it tests a corner case condition
85 // This test needs to run first since it tests a corner case condition
64 // to where the carousel is just being created
86 // to where the carousel is just being created
65 // That is why it has a 1 in the name
87 // That is why it has a 1 in the name
66 function test_1onlyNeededItemsCreated() {
88 function test_1onlyNeededItemsCreated() {
67− tryCompare(carousel, "createdDelegates", 10);
89+ tryCompare(carousel, "createdDelegates", 9);
68 compare(carousel.destroyedDelegates, 0);
90 compare(carousel.destroyedDelegates, 0);
69 }
91 }
70
92
@@ -243,5 +265,29 @@ Item {
243 var x = carouselList.getXFromContinuousIndex(carousel.model - 1);
265 var x = carouselList.getXFromContinuousIndex(carousel.model - 1);
244 verify(Math.abs(x - carouselList.contentX) < 1);
266 verify(Math.abs(x - carouselList.contentX) < 1);
245 }
267 }
268+
269+ function test_activate() {
270+ var carouselList = findChild(carousel, "listView");
271+ tryCompareFunction(function() { return findChild(carouselList, "carouselDelegate3") ? true : false; }, true);
272+ var carouselItem = findChild(carousel, "carouselDelegate3")
273+ verify(carouselItem, "Could not find delegate");
274+
275+ spy.signalName = "clicked";
276+ spy.target = carouselItem;
277+ mouseClick(carouselItem, carouselItem.width / 2, carouselItem.height / 2);
278+ tryCompare(carouselList, "moving", false);
279+ tryCompare(carouselItem, "explicitlyScaled", true);
280+ mouseClick(carouselItem, carouselItem.width / 2, carouselItem.height / 2);
281+ spy.wait();
282+
283+ spy.signalName = "pressAndHold";
284+ spy.target = carouselItem;
285+ mouseClick(carouselItem, carouselItem.width / 2, carouselItem.height / 2);
286+ tryCompare(carouselList, "moving", false);
287+ tryCompare(carouselItem, "explicitlyScaled", true);
288+ mousePress(carouselItem, carouselItem.width / 2, carouselItem.height / 2);
289+ spy.wait();
290+ mouseRelease(carouselItem, carouselItem.width / 2, carouselItem.height / 2);
291+ }
246 }
292 }
247}
293}
tests/qmltests/Components/tst_PageHeaderLabel.qml → tests/qmltests/Components/tst_PageHeader.qmlrenamed+90−54
@@ -23,13 +23,10 @@ import Unity 0.2
23import Unity.Test 0.1 as UT
23import Unity.Test 0.1 as UT
24
24
25Item {
25Item {
26+ id: root
26 width: units.gu(110)
27 width: units.gu(110)
27 height: units.gu(30)
28 height: units.gu(30)
28
29
29− MockScope {
30− id: scopeMock
31− }
32−
33 UT.UnityTestCase {
30 UT.UnityTestCase {
34 name: "PageHeaderLabelTest"
31 name: "PageHeaderLabelTest"
35 when: windowShown
32 when: windowShown
@@ -82,33 +79,6 @@ Item {
82 compare(searchQuery, "", "Reset search did not reset searchQuery correctly.")
79 compare(searchQuery, "", "Reset search did not reset searchQuery correctly.")
83 }
80 }
84
81
85− function test_move_search_by_width()
86− {
87− searchEnabled = true
88− pageHeader.resetSearch()
89−
90− var searchContainer = findChild(pageHeader, "searchContainer")
91−
92− parent.width = units.gu(40)
93−
94− verify(searchContainer !== undefined)
95− verify(searchContainer.y <= 0)
96−
97− pageHeader.triggerSearch()
98− verify(searchContainer.y >= 0)
99−
100− pageHeader.resetSearch()
101− verify(searchContainer.y <= 0)
102−
103− parent.width = units.gu(110)
104− verify(searchContainer.y >= 0)
105−
106− pageHeader.triggerSearch()
107− tryCompare(searchContainer, "narrowMode", false)
108− tryCompare(searchContainer, "state", "active")
109− tryCompare(searchContainer, "width", units.gu(40))
110− }
111−
112 function test_history() {
82 function test_history() {
113 pageHeader.searchHistory.clear()
83 pageHeader.searchHistory.clear()
114 compare(pageHeader.searchHistory.count, 0)
84 compare(pageHeader.searchHistory.count, 0)
@@ -144,21 +114,41 @@ Item {
144
114
145 function test_search_indicator() {
115 function test_search_indicator() {
146 var searchIndicator = findChild(pageHeader, "searchIndicator")
116 var searchIndicator = findChild(pageHeader, "searchIndicator")
147− var primaryImage = findChild(pageHeader, "primaryImage")
117+ var clearIcon = findChild(pageHeader, "clearIcon")
148
118
149 pageHeader.triggerSearch()
119 pageHeader.triggerSearch()
150
120
151− scopeMock.setSearchInProgress(false);
121+ tryCompare(clearIcon, "visible", false)
122+ pageHeader.searchQuery = "ubuntu"
123+ tryCompare(clearIcon, "visible", true)
124+
125+ pageHeader.searchInProgress = false
152 compare(searchIndicator.running, false, "Search indicator is running.")
126 compare(searchIndicator.running, false, "Search indicator is running.")
153− tryCompare(primaryImage, "visible", true)
127+ tryCompare(clearIcon, "visible", true)
154
128
155− scopeMock.setSearchInProgress(true);
129+ pageHeader.searchInProgress = true
156 compare(searchIndicator.running, true, "Search indicator isn't running.")
130 compare(searchIndicator.running, true, "Search indicator isn't running.")
157− tryCompare(primaryImage, "visible", false)
131+ tryCompare(clearIcon, "visible", false)
132+
133+ pageHeader.searchInProgress = false;
134+ compare(searchIndicator.running, false, "Search indicator is running.")
135+ tryCompare(clearIcon, "visible", true)
136+ }
137+
138+ function test_titleImage() {
139+
140+ var titleImage = findChild(pageHeader, "titleImage");
141+ verify(titleImage == null);
142+
143+ showImageCheckBox.checked = true;
144+
145+ titleImage = findChild(pageHeader, "titleImage");
146+ verify(titleImage !== null);
147+ compare(titleImage.source, pageHeader.titleImageSource);
148+
158 }
149 }
159
150
160 function cleanup() {
151 function cleanup() {
161− scopeMock.setSearchInProgress(false);
162 pageHeader.resetSearch();
152 pageHeader.resetSearch();
163 }
153 }
164
154
@@ -171,14 +161,21 @@ Item {
171
161
172 pageHeader.triggerSearch();
162 pageHeader.triggerSearch();
173
163
174− var searchContainer = findChild(pageHeader, "searchContainer");
164+ var headerContainer = findChild(pageHeader, "headerContainer");
175− verify(searchContainer !== undefined, "searchContainer != undefined");
165+ verify(headerContainer !== null, "headerContainer != null");
176− tryCompareFunction(function() { return searchContainer.popover !== null; }, true);
166+ tryCompareFunction(function() { return headerContainer.popover !== null; }, true);
177
167
178− tryCompare(searchContainer.popover, "visible", true);
168+ tryCompare(headerContainer.popover, "visible", true);
179 }
169 }
180
170
181− function test_resetSearch_onPopupClose() {
171+ function test_tap_outside_closes_popup_data() {
172+ return [
173+ { tag: "with search text", searchText: "foobar", hideSearch: false },
174+ { tag: "without search text", searchText: "", hideSearch: true }
175+ ];
176+ }
177+
178+ function test_tap_outside_closes_popup(data) {
182 searchEnabled = true;
179 searchEnabled = true;
183 pageHeader.searchHistory.clear();
180 pageHeader.searchHistory.clear();
184
181
@@ -187,16 +184,19 @@ Item {
187
184
188 pageHeader.triggerSearch();
185 pageHeader.triggerSearch();
189
186
190− var searchContainer = findChild(pageHeader, "searchContainer");
187+ var headerContainer = findChild(pageHeader, "headerContainer");
191− verify(searchContainer !== undefined, "searchContainer != undefined");
188+ verify(headerContainer !== null, "headerContainer != null");
192− tryCompareFunction(function() { return searchContainer.popover !== null; }, true);
189+ tryCompareFunction(function() { return headerContainer.popover !== null; }, true);
193− compare(searchContainer.popover.visible, true);
190+ compare(headerContainer.popover.visible, true);
191+
192+ pageHeader.searchQuery = data.searchText;
194
193
195− pageHeader.searchQuery = "test";
194+ mouseClick(root, root.width / 2, root.height - 1);
195+
196+ tryCompare(headerContainer, "showSearch", !data.hideSearch);
196− tryCompareFunction( function() { return (searchContainer.popover===null || !searchContainer.popover.visible) }, true);
197+ tryCompareFunction(function() { return headerContainer.popover === null; }, true);
197
198
198 pageHeader.resetSearch();
199 pageHeader.resetSearch();
199− compare((searchContainer.popover===null || !searchContainer.popover.visible), true);
200 }
200 }
201 }
201 }
202
202
@@ -204,18 +204,24 @@ Item {
204 anchors.fill: parent
204 anchors.fill: parent
205 spacing: units.gu(1)
205 spacing: units.gu(1)
206
206
207− PageHeaderLabel {
207+ PageHeader {
208 id: pageHeader
208 id: pageHeader
209 anchors {
209 anchors {
210 left: parent.left
210 left: parent.left
211 right: parent.right
211 right: parent.right
212 }
212 }
213
213
214− scope: scopeMock
215−
216 searchEntryEnabled: true
214 searchEntryEnabled: true
217− searchHistory: SearchHistoryModel {}
218− text: "%^$%^%^&%^&%^$%GHR%"
215+ title: "%^$%^%^&%^&%^$%GHR%"
216+ scopeStyle: QtObject {
217+ readonly property color foreground: "grey"
218+ readonly property url headerLogo: showImageCheckBox.checked ? pageHeader.titleImageSource : ""
219+ }
220+ showBackButton: showBackButtonCheckBox.checked
221+
222+ property string titleImageSource: Qt.resolvedUrl("tst_PageHeader/logo-ubuntu-orange.svg")
223+ property date lastBackClicked
224+ onBackClicked: lastBackClicked = new Date()
219 }
225 }
220
226
221 Row {
227 Row {
@@ -251,5 +257,35 @@ Item {
251 anchors.verticalCenter: parent.verticalCenter
257 anchors.verticalCenter: parent.verticalCenter
252 }
258 }
253 }
259 }
260+
261+ Row {
262+ spacing: units.gu(1)
263+ anchors {
264+ left: parent.left
265+ right: parent.right
266+ }
267+ CheckBox {
268+ id: showBackButtonCheckBox
269+ }
270+ Label {
271+ text: "Back button enabled (Last clicked: " + Qt.formatTime(pageHeader.lastBackClicked, "hh:mm:ss") + ")"
272+ anchors.verticalCenter: parent.verticalCenter
273+ }
274+ }
275+
276+ Row {
277+ spacing: units.gu(1)
278+ anchors {
279+ left: parent.left
280+ right: parent.right
281+ }
282+ CheckBox {
283+ id: showImageCheckBox
284+ }
285+ Label {
286+ text: "Show image instead of title"
287+ anchors.verticalCenter: parent.verticalCenter
288+ }
289+ }
254 }
290 }
255}
291}
tests/qmltests/Components/tst_PageHeader/logo-ubuntu-orange.svgnew file+60
@@ -0,0 +1,60 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<!-- Generator: Adobe Illustrator 17.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5+ width="107px" height="25px" viewBox="0 0 107 25" enable-background="new 0 0 107 25" xml:space="preserve">
6+<g id="BK">
7+</g>
8+<g id="Comp">
9+ <circle fill="#DD4814" cx="100.596" cy="7.374" r="6.403"/>
10+ <path fill="#FFFFFF" d="M96.6,6.605c-0.424,0-0.768,0.344-0.768,0.77c0,0.423,0.344,0.768,0.768,0.768
11+ c0.425,0,0.772-0.345,0.772-0.768C97.371,6.949,97.025,6.605,96.6,6.605z M102.094,10.103c-0.365,0.211-0.492,0.682-0.282,1.047
12+ c0.214,0.372,0.685,0.497,1.051,0.284c0.369-0.21,0.496-0.682,0.281-1.05C102.932,10.014,102.462,9.889,102.094,10.103z
13+ M98.272,7.375c0-0.76,0.378-1.434,0.956-1.839l-0.562-0.944c-0.675,0.451-1.176,1.138-1.384,1.943
14+ c0.246,0.2,0.398,0.501,0.398,0.84c0,0.337-0.152,0.639-0.398,0.838c0.208,0.805,0.709,1.492,1.384,1.941l0.562-0.941
15+ C98.65,8.807,98.272,8.134,98.272,7.375z M100.518,5.125c1.177,0,2.14,0.902,2.24,2.052l1.098-0.019
16+ c-0.055-0.846-0.425-1.61-0.994-2.166c-0.295,0.108-0.634,0.093-0.925-0.078c-0.292-0.168-0.473-0.452-0.524-0.761
17+ c-0.285-0.077-0.584-0.12-0.895-0.12c-0.53,0-1.032,0.125-1.48,0.345l0.535,0.958C99.86,5.201,100.182,5.125,100.518,5.125z
18+ M100.518,9.622c-0.336,0-0.658-0.076-0.945-0.21l-0.535,0.958c0.447,0.221,0.95,0.344,1.48,0.344c0.312,0,0.61-0.039,0.895-0.119
19+ c0.051-0.311,0.232-0.596,0.524-0.763c0.294-0.168,0.63-0.186,0.925-0.073c0.569-0.562,0.938-1.323,0.994-2.17l-1.098-0.015
20+ C102.658,8.721,101.695,9.622,100.518,9.622z M102.094,4.646c0.368,0.213,0.838,0.088,1.051-0.282
21+ c0.214-0.367,0.087-0.839-0.281-1.052c-0.366-0.211-0.837-0.085-1.051,0.283C101.601,3.962,101.728,4.433,102.094,4.646z"/>
22+ <path fill="#DD4814" d="M12.807,24.177c-0.649,0.162-1.509,0.337-2.577,0.518c-1.068,0.184-2.304,0.276-3.704,0.276
23+ c-1.222,0-2.247-0.179-3.082-0.535c-0.833-0.355-1.503-0.858-2.01-1.509c-0.509-0.65-0.875-1.419-1.098-2.302
24+ C0.11,19.739,0,18.76,0,17.68V8.778h2.835v8.293c0,1.932,0.304,3.315,0.916,4.147c0.61,0.834,1.636,1.249,3.079,1.249
25+ c0.304,0,0.62-0.01,0.945-0.031c0.326-0.02,0.632-0.045,0.914-0.075C8.974,22.33,9.234,22.3,9.468,22.27
26+ c0.234-0.032,0.401-0.065,0.504-0.108V8.778h2.835V24.177L12.807,24.177z"/>
27+ <path fill="#DD4814" d="M19.728,9.478c0.347-0.222,0.871-0.458,1.572-0.7c0.7-0.243,1.507-0.367,2.424-0.367
28+ c1.137,0,2.148,0.205,3.033,0.609c0.886,0.406,1.632,0.977,2.243,1.709c0.607,0.731,1.069,1.605,1.385,2.622
29+ c0.317,1.016,0.474,2.135,0.474,3.355c0,1.279-0.187,2.433-0.565,3.461c-0.377,1.025-0.909,1.894-1.6,2.605
30+ c-0.692,0.714-1.524,1.26-2.502,1.647C25.219,24.807,24.121,25,22.899,25c-1.321,0-2.49-0.093-3.506-0.276
31+ c-1.016-0.183-1.849-0.367-2.501-0.549V1.46l2.837-0.488L19.728,9.478L19.728,9.478z M19.728,22.162
32+ c0.285,0.084,0.686,0.159,1.206,0.23c0.517,0.073,1.161,0.107,1.935,0.107c1.523,0,2.746-0.504,3.659-1.509
33+ c0.915-1.007,1.373-2.435,1.373-4.284c0-0.813-0.081-1.575-0.245-2.288c-0.163-0.712-0.428-1.326-0.793-1.845
34+ c-0.366-0.519-0.839-0.923-1.416-1.219c-0.582-0.297-1.278-0.444-2.09-0.444c-0.774,0-1.484,0.133-2.135,0.395
35+ c-0.651,0.267-1.149,0.541-1.495,0.825v10.032H19.728z"/>
36+ <path fill="#DD4814" d="M46.684,24.177c-0.651,0.162-1.509,0.337-2.576,0.518c-1.067,0.184-2.303,0.276-3.707,0.276
37+ c-1.219,0-2.246-0.179-3.079-0.535c-0.833-0.355-1.504-0.858-2.011-1.509c-0.511-0.65-0.875-1.419-1.098-2.302
38+ c-0.224-0.886-0.335-1.865-0.335-2.944V8.778h2.835v8.293c0,1.932,0.304,3.315,0.914,4.147c0.611,0.834,1.636,1.249,3.08,1.249
39+ c0.305,0,0.622-0.01,0.947-0.031c0.325-0.02,0.629-0.045,0.915-0.075c0.284-0.032,0.544-0.062,0.779-0.092
40+ c0.232-0.032,0.4-0.065,0.503-0.108V8.778h2.835v15.399H46.684z"/>
41+ <path fill="#DD4814" d="M50.769,9.236c0.651-0.164,1.514-0.335,2.593-0.521c1.077-0.18,2.316-0.272,3.719-0.272
42+ c1.263,0,2.308,0.178,3.142,0.533c0.834,0.356,1.499,0.853,1.997,1.494c0.498,0.64,0.849,1.408,1.053,2.3
43+ c0.202,0.898,0.304,1.882,0.304,2.959v8.905h-2.836V16.34c0-0.977-0.067-1.809-0.198-2.501c-0.132-0.693-0.351-1.249-0.656-1.676
44+ c-0.303-0.429-0.712-0.738-1.221-0.93c-0.506-0.197-1.139-0.292-1.888-0.292c-0.306,0-0.622,0.012-0.944,0.032
45+ c-0.326,0.021-0.637,0.046-0.931,0.076c-0.298,0.03-0.56,0.067-0.794,0.107c-0.235,0.041-0.402,0.072-0.503,0.091v13.386h-2.837
46+ L50.769,9.236L50.769,9.236z"/>
47+ <path fill="#DD4814" d="M70.132,8.778h6.008v2.378h-6.008v7.319c0,0.792,0.062,1.45,0.185,1.966
48+ c0.121,0.52,0.304,0.927,0.548,1.221c0.244,0.292,0.549,0.501,0.914,0.625c0.367,0.122,0.794,0.182,1.28,0.182
49+ c0.874,0,1.565-0.096,2.076-0.29c0.507-0.193,0.853-0.329,1.035-0.412l0.609,2.32c-0.283,0.142-0.787,0.324-1.508,0.547
50+ c-0.722,0.225-1.539,0.338-2.454,0.338c-1.078,0-1.968-0.137-2.669-0.413c-0.701-0.275-1.265-0.685-1.692-1.234
51+ c-0.427-0.548-0.727-1.224-0.898-2.027c-0.175-0.805-0.26-1.734-0.26-2.79V4.356l2.833-0.489v4.911H70.132z"/>
52+ <path fill="#DD4814" d="M91.57,24.177c-0.653,0.162-1.51,0.337-2.579,0.518c-1.067,0.184-2.3,0.276-3.701,0.276
53+ c-1.222,0-2.247-0.179-3.081-0.535c-0.836-0.355-1.506-0.858-2.013-1.509c-0.509-0.65-0.873-1.419-1.1-2.302
54+ c-0.221-0.886-0.335-1.865-0.335-2.944V8.778h2.838v8.293c0,1.932,0.305,3.315,0.914,4.147c0.609,0.834,1.637,1.249,3.081,1.249
55+ c0.304,0,0.618-0.01,0.945-0.031c0.323-0.02,0.629-0.045,0.914-0.075c0.284-0.032,0.546-0.062,0.777-0.092
56+ c0.234-0.032,0.403-0.065,0.505-0.108V8.778h2.837v15.399H91.57z"/>
57+</g>
58+<g id="Grid" display="none">
59+</g>
60+</svg>
tests/qmltests/Dash/Apps/tst_RunningApplicationsGrid.qml+2−2
@@ -30,7 +30,7 @@ Rectangle {
30 ApplicationManager.stopApplication(ApplicationManager.get(0).appId)
30 ApplicationManager.stopApplication(ApplicationManager.get(0).appId)
31 }
31 }
32
32
33− ApplicationManager.startApplication("phone-app");
33+ ApplicationManager.startApplication("dialer-app");
34 ApplicationManager.startApplication("webbrowser-app");
34 ApplicationManager.startApplication("webbrowser-app");
35 }
35 }
36
36
@@ -70,7 +70,7 @@ Rectangle {
70 verify(browserTile != undefined)
70 verify(browserTile != undefined)
71 browserTile.onPressAndHold.connect(onBrowserLongPressed)
71 browserTile.onPressAndHold.connect(onBrowserLongPressed)
72
72
73− phoneTile = findChild(runningApplicationsGrid, "runningAppTile Phone")
73+ phoneTile = findChild(runningApplicationsGrid, "runningAppTile Dialer")
74 verify(phoneTile != undefined)
74 verify(phoneTile != undefined)
75 phoneTile.onPressAndHold.connect(onPhoneLongPressed)
75 phoneTile.onPressAndHold.connect(onPhoneLongPressed)
76
76
tests/qmltests/Dash/Previews/tst_Preview.qml+2−2
@@ -73,8 +73,8 @@ Rectangle {
73
73
74 function test_containOnFocus() {
74 function test_containOnFocus() {
75 waitForRendering(preview);
75 waitForRendering(preview);
76− tryCompareFunction(function () { return findChild(preview, "widget-9") != null }, true);
76+ tryCompareFunction(function () { return findChild(preview, "widget-10") != null }, true);
77− var widget = findChild(preview, "widget-9");
77+ var widget = findChild(preview, "widget-10");
78
78
79 var bottomLeft = preview.mapFromItem(widget, 0, widget.height);
79 var bottomLeft = preview.mapFromItem(widget, 0, widget.height);
80 verify(bottomLeft.y > preview.height);
80 verify(bottomLeft.y > preview.height);
tests/qmltests/Dash/Previews/tst_PreviewRatingDisplay.qml+13
@@ -108,5 +108,18 @@ Rectangle {
108 }
108 }
109 }
109 }
110 }
110 }
111+
112+ function test_non_interactive() {
113+ previewRatingDisplay.widgetData = reviewsModel1;
114+
115+ var reviewItem = findChild(previewRatingDisplay, "reviewItem1");
116+ var rating = findChild(reviewItem, "rating");
117+
118+ compare(rating.value, reviewsModel1["reviews"][1]["rating"]);
119+
120+ // Tap on first star
121+ mouseClick(rating, 0, 0);
122+ compare(rating.value, reviewsModel1["reviews"][1]["rating"]);
123+ }
111 }
124 }
112}
125}
tests/qmltests/Dash/tst_Dash.qml−39
@@ -70,24 +70,6 @@ Item {
70 ]
70 ]
71 }
71 }
72
72
73− function test_set_current_scope_data() {
74− return get_scope_data()
75− }
76−
77− function test_set_current_scope(data) {
78− // wait for scopes to load
79− tryCompare(scopes, "loaded", true);
80−
81− var tabbar = findChild(dash, "tabbar");
82− verify(tabbar != undefined)
83− var dashContent = findChild(dash, "dashContent");
84− var current_index = dashContent.currentIndex;
85−
86− dash.setCurrentScope(data.tag, true /* animate */, false /* reset */);
87− compare(dashContent.currentIndex, data.shouldBeVisible ? data.visualIndex : current_index);
88− compare(tabbar.selectedIndex, data.shouldBeVisible ? data.visualIndex : current_index);
89− }
90−
91 function test_show_scope_on_load_data() {
73 function test_show_scope_on_load_data() {
92 return get_scope_data()
74 return get_scope_data()
93 }
75 }
@@ -109,26 +91,5 @@ Item {
109 verify(dashContentList != undefined);
91 verify(dashContentList != undefined);
110 tryCompare(dashContentList, "currentIndex", data.visualIndex);
92 tryCompare(dashContentList, "currentIndex", data.visualIndex);
111 }
93 }
112−
113− function test_dash_bar_set_index_connection_data() {
114− return get_scope_data()
115− }
116−
117− function test_dash_bar_set_index_connection(data) {
118− if (data.shouldBeVisible == false) {
119− console.log("Not testing " + data.tag + ": not visible");
120− return;
121− }
122− // wait for scopes to load
123− tryCompare(scopes, "loaded", true);
124−
125− var tabbar = findChild(dash, "tabbar");
126− verify(tabbar != undefined)
127− var dashContent = findChild(dash, "dashContent");
128− var current_index = dashContent.currentIndex;
129−
130− tabbar.model.selectedIndex = data.visualIndex;
131− compare(dashContent.currentIndex, data.shouldBeVisible ? data.visualIndex : current_index);
132− }
133 }
94 }
134}
95}
tests/qmltests/Dash/tst_DashContent.qml+4−152
@@ -47,8 +47,6 @@ Item {
47 model: scopesModel
47 model: scopesModel
48 }
48 }
49 scopes : scopesModel
49 scopes : scopesModel
50−
51− searchHistory: SearchHistoryModel {}
52 }
50 }
53
51
54 SignalSpy {
52 SignalSpy {
@@ -194,8 +192,9 @@ Item {
194 function test_scope_mapping(data) {
192 function test_scope_mapping(data) {
195 dashContent.setCurrentScopeAtIndex(data.index, true, false);
193 dashContent.setCurrentScopeAtIndex(data.index, true, false);
196 tryCompareFunction(get_current_item_object_name, data.objectName)
194 tryCompareFunction(get_current_item_object_name, data.objectName)
197− var pageHeader = findChild(dashContent, "pageHeader");
195+ var scopeView = findChild(dashContent, data.objectName);
196+ var pageHeader = findChild(scopeView, "innerPageHeader");
198− compare(pageHeader.scope, scopesModel.getScope(data.index));
197+ compare(pageHeader.title, scopesModel.getScope(data.index).name);
199 }
198 }
200
199
201 function test_is_active_data() {
200 function test_is_active_data() {
@@ -217,67 +216,6 @@ Item {
217 tryCompare(scopesModel.getScope(2), "isActive", data.active2);
216 tryCompare(scopesModel.getScope(2), "isActive", data.active2);
218 }
217 }
219
218
220− function doFindMusicButton(parent) {
221− for (var i = 0; i < parent.children.length; i++) {
222− var c = parent.children[i];
223− if (UT.Util.isInstanceOf(c, "AbstractButton") && parent.x >= 0) {
224− for (var ii = 0; ii < c.children.length; ii++) {
225− var cc = c.children[ii];
226− if (UT.Util.isInstanceOf(cc, "Label") && cc.text == "Music") {
227− return c;
228− }
229− }
230− }
231− var r = doFindMusicButton(c);
232− if (r !== undefined) {
233− return r;
234− }
235− }
236− return undefined;
237− }
238−
239− function findMusicButton() {
240− // We need to find a AbstractButton that has a Label child
241− // with text Music and it's parent x is >= 0
242− var tabbar = findChild(dashContent, "tabbar");
243− return doFindMusicButton(tabbar);
244− }
245−
246− function test_tabBar_index_change() {
247− tryCompare(scopesModel, "loaded", true);
248− var tabbar = findChild(dashContent, "tabbar");
249−
250− tryCompare(dashContent, "currentIndex", 0);
251− tryCompare(tabbar, "selectedIndex", 0);
252− tryCompare(tabbar, "selectionMode", false);
253−
254− mouseClick(tabbar, units.gu(5), units.gu(5))
255−
256− tryCompare(tabbar, "selectionMode", true);
257− tryCompare(tabbar, "selectedIndex", 0);
258− tryCompare(dashContent, "currentIndex", 0);
259−
260− var button;
261− tryCompareFunction(function() { button = findMusicButton(); return button != undefined; }, true);
262− waitForRendering(button);
263−
264− tryCompareFunction(function() { return button.opacity > 0; }, true);
265− mouseClick(button, button.width / 2, button.height / 2)
266−
267− tryCompare(tabbar, "selectionMode", false);
268− tryCompare(tabbar, "selectedIndex", 1);
269− tryCompare(dashContent, "currentIndex", 1);
270− }
271−
272− function test_tabBar_listens_to_index_change() {
273− var tabbar = findChild(dashContent, "tabbar");
274− tryCompare(dashContent, "currentIndex", 0);
275− compare(tabbar.selectedIndex, 0);
276− var dashContentList = findChild(dashContent, "dashContentList");
277− dashContentList.currentIndex = 1;
278− compare(tabbar.selectedIndex, 1);
279− }
280−
281 function checkFlickMovingAndNotInteractive()
219 function checkFlickMovingAndNotInteractive()
282 {
220 {
283 var dashContentList = findChild(dashContent, "dashContentList");
221 var dashContentList = findChild(dashContent, "dashContentList");
@@ -300,93 +238,6 @@ Item {
300 tryCompareFunction(checkFlickMovingAndNotInteractive, true);
238 tryCompareFunction(checkFlickMovingAndNotInteractive, true);
301 }
239 }
302
240
303− function openPreview() {
304− tryCompareFunction(function() {
305− var filterGrid = findChild(dashContent, "0");
306− if (filterGrid != null) {
307− var tile = findChild(filterGrid, "delegate0");
308− return tile != null;
309− }
310− return false;
311− },
312− true);
313− var tile = findChild(findChild(dashContent, "0"), "delegate0");
314− mouseClick(tile, tile.width / 2, tile.height / 2);
315− var previewListView = findChild(dashContent, "dashContentPreviewList");
316− tryCompare(previewListView, "open", true);
317− tryCompare(previewListView, "x", 0);
318− }
319−
320− function closePreview() {
321− var closePreviewMouseArea = findChild(dashContent, "dashContentPreviewList_pageHeader_backButton");
322− mouseClick(closePreviewMouseArea, closePreviewMouseArea.width / 2, closePreviewMouseArea.height / 2);
323−
324− var previewListView = findChild(dashContent, "dashContentPreviewList");
325− tryCompare(previewListView, "open", false);
326− }
327−
328− function test_previewOpenClose() {
329− var previewListView = findChild(dashContent, "dashContentPreviewList");
330− tryCompare(previewListView, "open", false);
331−
332− var categoryListView = findChild(dashContent, "categoryListView");
333− categoryListView.positionAtBeginning();
334−
335− openPreview();
336− closePreview();
337− }
338−
339− function test_showPreviewCarousel() {
340− tryCompareFunction(function() {
341− var scope = findChild(dashContent, "MockScope1 loader");
342− if (scope != null) {
343− var dashCategory1 = findChild(scope, "dashCategory1");
344− if (dashCategory1 != null) {
345− var tile = findChild(dashCategory1, "carouselDelegate1");
346− return tile != null;
347− }
348− }
349− return false;
350− },
351− true);
352−
353− var previewListView = findChild(dashContent, "dashContentPreviewList");
354− tryCompare(previewListView, "open", false);
355−
356− var scope = findChild(dashContent, "MockScope1 loader");
357− var dashCategory1 = findChild(scope, "dashCategory1");
358− var tile = findChild(dashCategory1, "carouselDelegate1");
359− mouseClick(tile, tile.width / 2, tile.height / 2);
360− tryCompare(previewListView, "open", true);
361− tryCompare(previewListView, "x", 0);
362−
363− closePreview();
364− }
365−
366− function test_previewCycle() {
367− var categoryListView = findChild(dashContent, "categoryListView");
368− categoryListView.positionAtBeginning();
369−
370− var previewListView = findChild(dashContent, "dashContentPreviewList");
371− tryCompare(previewListView, "open", false);
372− var previewListViewList = findChild(dashContent, "dashContentPreviewList_listView");
373−
374− openPreview();
375−
376− // flick to the next previews
377− tryCompare(previewListView, "count", 15);
378− for (var i = 1; i < previewListView.count; ++i) {
379− mouseFlick(previewListView, previewListView.width - units.gu(1),
380− previewListView.height / 2,
381− units.gu(2),
382− previewListView.height / 2);
383− tryCompare(previewListViewList, "moving", false);
384− tryCompare(previewListView.currentItem, "objectName", "previewItem" + i);
385−
386− }
387− closePreview();
388− }
389−
390 function test_carouselAspectRatio() {
241 function test_carouselAspectRatio() {
391 tryCompareFunction(function() {
242 tryCompareFunction(function() {
392 var scope = findChild(dashContent, "MockScope1 loader");
243 var scope = findChild(dashContent, "MockScope1 loader");
@@ -461,6 +312,7 @@ Item {
461 compare(allButton.visible, true);
312 compare(allButton.visible, true);
462 compare(backButton.visible, true);
313 compare(backButton.visible, true);
463
314
315+ waitForRendering(departmentListView);
464 mouseClick(allButton, 0, 0);
316 mouseClick(allButton, 0, 0);
465 compare(dashDepartments.showList, false);
317 compare(dashDepartments.showList, false);
466 tryCompare(dashDepartments.currentDepartment, "departmentId", "middle2");
318 tryCompare(dashDepartments.currentDepartment, "departmentId", "middle2");
tests/qmltests/Dash/tst_GenericScopeView.qml+98−45
@@ -37,10 +37,6 @@ Item {
37
37
38 Scopes {
38 Scopes {
39 id: scopes
39 id: scopes
40−
41− onLoadedChanged: {
42− genericScopeView.scope = scopes.getScope(2)
43− }
44 }
40 }
45
41
46 property Item applicationManager: Item {
42 property Item applicationManager: Item {
@@ -48,24 +44,17 @@ Item {
48 signal mainStageFocusedApplicationChanged()
44 signal mainStageFocusedApplicationChanged()
49 }
45 }
50
46
51− PageHeaderLabel {
52− id: testPageHeader
53− searchHistory: SearchHistoryModel {}
54− text: genericScopeView.scope ? genericScopeView.scope.name : ""
55− width: parent.width
56− }
57−
58 GenericScopeView {
47 GenericScopeView {
59 id: genericScopeView
48 id: genericScopeView
60 anchors.fill: parent
49 anchors.fill: parent
61− previewListView: previewListView
62− pageHeader: testPageHeader
63− tabBarHeight: testPageHeader.implicitHeight
64
50
65 UT.UnityTestCase {
51 UT.UnityTestCase {
52+ id: testCase
66 name: "GenericScopeView"
53 name: "GenericScopeView"
67 when: scopes.loaded && windowShown
54 when: scopes.loaded && windowShown
68
55
56+ property Item previewListView: findChild(genericScopeView, "previewListView")
57+
69 function init() {
58 function init() {
70 genericScopeView.scope = scopes.getScope(2)
59 genericScopeView.scope = scopes.getScope(2)
71 shell.width = units.gu(120)
60 shell.width = units.gu(120)
@@ -73,37 +62,28 @@ Item {
73 tryCompare(genericScopeView.categoryView, "contentY", 0)
62 tryCompare(genericScopeView.categoryView, "contentY", 0)
74 }
63 }
75
64
76− function test_isCurrent() {
77− genericScopeView.isCurrent = true
78− testPageHeader.searchQuery = "test"
79− previewListView.open = true
80− genericScopeView.isCurrent = false
81− tryCompare(testPageHeader, "searchQuery", "")
82− tryCompare(previewListView, "open", false);
83− }
84−
85 function test_isActive() {
65 function test_isActive() {
86 tryCompare(genericScopeView.scope, "isActive", false)
66 tryCompare(genericScopeView.scope, "isActive", false)
87 genericScopeView.isCurrent = true
67 genericScopeView.isCurrent = true
88 tryCompare(genericScopeView.scope, "isActive", true)
68 tryCompare(genericScopeView.scope, "isActive", true)
89− previewListView.open = true
69+ testCase.previewListView.open = true
90 tryCompare(genericScopeView.scope, "isActive", false)
70 tryCompare(genericScopeView.scope, "isActive", false)
91− previewListView.open = false
71+ testCase.previewListView.open = false
92 tryCompare(genericScopeView.scope, "isActive", true)
72 tryCompare(genericScopeView.scope, "isActive", true)
93 genericScopeView.isCurrent = false
73 genericScopeView.isCurrent = false
94 tryCompare(genericScopeView.scope, "isActive", false)
74 tryCompare(genericScopeView.scope, "isActive", false)
95 }
75 }
96
76
97 function test_showDash() {
77 function test_showDash() {
98− previewListView.open = true;
78+ testCase.previewListView.open = true;
99 scopes.getScope(2).showDash();
79 scopes.getScope(2).showDash();
100− tryCompare(previewListView, "open", false);
80+ tryCompare(testCase.previewListView, "open", false);
101 }
81 }
102
82
103 function test_hideDash() {
83 function test_hideDash() {
104− previewListView.open = true;
84+ testCase.previewListView.open = true;
105 scopes.getScope(2).hideDash();
85 scopes.getScope(2).hideDash();
106− tryCompare(previewListView, "open", false);
86+ tryCompare(testCase.previewListView, "open", false);
107 }
87 }
108
88
109 function test_searchQuery() {
89 function test_searchQuery() {
@@ -170,14 +150,6 @@ Item {
170
150
171 categoryListView.positionAtBeginning();
151 categoryListView.positionAtBeginning();
172
152
173− // wait for the header0 to be on its position
174− tryCompareFunction(
175− function() {
176− var header0 = findChild(genericScopeView, "dashSectionHeader0")
177− return header0.y == testPageHeader.height;
178− },
179− true);
180−
181 var header0 = findChild(genericScopeView, "dashSectionHeader0")
153 var header0 = findChild(genericScopeView, "dashSectionHeader0")
182 var category0 = findChild(genericScopeView, "dashCategory0")
154 var category0 = findChild(genericScopeView, "dashCategory0")
183 mouseClick(header0, header0.width / 2, header0.height / 2);
155 mouseClick(header0, header0.width / 2, header0.height / 2);
@@ -204,14 +176,95 @@ Item {
204 mouseClick(header0, header0.width / 2, header0.height / 2);
176 mouseClick(header0, header0.width / 2, header0.height / 2);
205 tryCompare(category, "filtered", true);
177 tryCompare(category, "filtered", true);
206 }
178 }
207− }
208− }
209
179
210− PreviewListView {
180+ function openPreview() {
181+ tryCompareFunction(function() {
182+ var filterGrid = findChild(genericScopeView, "0");
183+ if (filterGrid != null) {
184+ var tile = findChild(filterGrid, "delegate0");
185+ return tile != null;
186+ }
187+ return false;
188+ },
189+ true);
190+ var tile = findChild(findChild(genericScopeView, "0"), "delegate0");
191+ mouseClick(tile, tile.width / 2, tile.height / 2);
211− id: previewListView
192+ tryCompare(testCase.previewListView, "open", true);
212− anchors.fill: parent
193+ tryCompare(testCase.previewListView, "x", 0);
213− visible: false
194+ }
214− pageHeader: testPageHeader
195+
196+ function closePreview() {
197+ var closePreviewMouseArea = findChild(genericScopeView, "innerPageHeader");
198+ mouseClick(closePreviewMouseArea, units.gu(2), units.gu(2));
199+
200+ tryCompare(testCase.previewListView, "open", false);
201+ }
202+
203+ function test_previewOpenClose() {
204+ tryCompare(testCase.previewListView, "open", false);
205+
206+ var categoryListView = findChild(genericScopeView, "categoryListView");
207+ categoryListView.positionAtBeginning();
208+
209+ openPreview();
210+ closePreview();
211+ }
212+
213+ function test_showPreviewCarousel() {
214+ tryCompareFunction(function() {
215+ var dashCategory1 = findChild(genericScopeView, "dashCategory1");
216+ if (dashCategory1 != null) {
217+ var tile = findChild(dashCategory1, "carouselDelegate1");
218+ return tile != null;
219+ }
220+ return false;
221+ },
222+ true);
223+
224+ tryCompare(testCase.previewListView, "open", false);
225+
226+ var dashCategory1 = findChild(genericScopeView, "dashCategory1");
227+ var tile = findChild(dashCategory1, "carouselDelegate1");
228+ mouseClick(tile, tile.width / 2, tile.height / 2);
229+ tryCompare(tile, "explicitlyScaled", true);
230+ mouseClick(tile, tile.width / 2, tile.height / 2);
231+ tryCompare(testCase.previewListView, "open", true);
232+ tryCompare(testCase.previewListView, "x", 0);
233+
234+ closePreview();
235+ }
236+
237+ function test_previewCycle() {
238+ var categoryListView = findChild(genericScopeView, "categoryListView");
239+ categoryListView.positionAtBeginning();
240+
241+ tryCompare(testCase.previewListView, "open", false);
242+ var previewListViewList = findChild(previewListView, "listView");
243+
244+ openPreview();
245+
246+ // flick to the next previews
247+ tryCompare(testCase.previewListView, "count", 15);
248+ for (var i = 1; i < testCase.previewListView.count; ++i) {
249+ mouseFlick(testCase.previewListView, testCase.previewListView.width - units.gu(1),
250+ testCase.previewListView.height / 2,
251+ units.gu(2),
252+ testCase.previewListView.height / 2);
253+ tryCompare(previewListViewList, "moving", false);
254+ tryCompare(testCase.previewListView.currentItem, "objectName", "previewItem" + i);
255+
256+ }
257+ closePreview();
258+ }
259+
260+ function test_haeder_logo() {
215− scope: genericScopeView.scope
261+ genericScopeView.scope = scopes.getScope(3);
262+
263+ var image = findChild(genericScopeView, "titleImage");
264+ verify(image, "Could not find the title image");
265+ compare(image.source, Qt.resolvedUrl("../Components/tst_PageHeader/logo-ubuntu-orange.svg"), "Title image has the wrong source");
266+
267+ }
268+ }
216 }
269 }
217}
270}
tests/qmltests/Launcher/tst_Launcher.qml+2−2
@@ -115,7 +115,7 @@ Item {
115 /* If I click on the icon of an application on the launcher
115 /* If I click on the icon of an application on the launcher
116 Launcher::launcherApplicationSelected signal should be emitted with the
116 Launcher::launcherApplicationSelected signal should be emitted with the
117 corresponding desktop file. E.g. clicking on phone icon should yield
117 corresponding desktop file. E.g. clicking on phone icon should yield
118− launcherApplicationSelected("[...]phone-app.desktop") */
118+ launcherApplicationSelected("[...]dialer-app.desktop") */
119 function test_clickingOnAppIconCausesSignalEmission() {
119 function test_clickingOnAppIconCausesSignalEmission() {
120 launcher.lastSelectedApplication = ""
120 launcher.lastSelectedApplication = ""
121
121
@@ -131,7 +131,7 @@ Item {
131 mouseClick(appIcon, appIcon.width/2, appIcon.height/2)
131 mouseClick(appIcon, appIcon.width/2, appIcon.height/2)
132
132
133 tryCompare(launcher, "lastSelectedApplication",
133 tryCompare(launcher, "lastSelectedApplication",
134− "phone-app")
134+ "dialer-app")
135
135
136 // Tapping on an application icon also dismisses the launcher
136 // Tapping on an application icon also dismisses the launcher
137 revealer.waitUntilLauncherDisappears()
137 revealer.waitUntilLauncherDisappears()
tests/qmltests/Notifications/tst_VisualSnapDecisionsQueue.qml+1−1
@@ -67,7 +67,7 @@ Row {
67 summary: "Incoming call",
67 summary: "Incoming call",
68 body: "Frank Zappa\n+44 (0)7736 027340",
68 body: "Frank Zappa\n+44 (0)7736 027340",
69 icon: "../graphics/avatars/funky.png",
69 icon: "../graphics/avatars/funky.png",
70− secondaryIcon: "../graphics/applicationIcons/phone-app.png",
70+ secondaryIcon: "../graphics/applicationIcons/dialer-app.png",
71 actions: [{ id: "pickup_id", label: "Pick up"},
71 actions: [{ id: "pickup_id", label: "Pick up"},
72 { id: "decline_1_id", label: "Decline"},
72 { id: "decline_1_id", label: "Decline"},
73 { id: "decline_2_id", label: "Can't talk now, what's up?"},
73 { id: "decline_2_id", label: "Can't talk now, what's up?"},
tests/qmltests/Panel/tst_ActiveCallHint.qmlnew file+165
@@ -0,0 +1,165 @@
1+/*
2+ * Copyright 2014 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import QtTest 1.0
19+import Unity.Test 0.1 as UT
20+import Ubuntu.Telephony 0.1 as Telephony
21+import Unity.Application 0.1
22+import ".."
23+import "../../../qml/Panel"
24+
25+Item {
26+ width: units.gu(40)
27+ height: units.gu(20)
28+
29+ Telephony.CallEntry {
30+ id: call1
31+ phoneNumber: "+447812221111"
32+ }
33+
34+ Telephony.CallEntry {
35+ id: call2
36+ phoneNumber: "+447812221112"
37+ }
38+
39+ Telephony.CallEntry {
40+ id: call3
41+ phoneNumber: "+447812221113"
42+ }
43+
44+ ActiveCallHint {
45+ id: callHint
46+ anchors {
47+ top: parent.top
48+ left:parent.left
49+ right:parent.right
50+ }
51+ height: units.gu(3)
52+ labelSwitchInterval: 2000
53+ }
54+
55+ Component.onCompleted: {
56+ contactWactherData.contactData = {
57+ "+447812221113": {
58+ "alias": "Bob's Uncle"
59+ }
60+ };
61+ callManager.foregroundCall = call3;
62+ }
63+
64+ UT.UnityTestCase {
65+ name: "ActiveCallHint"
66+ when: windowShown
67+
68+ function init() {
69+ callManager.foregroundCall = null;
70+ callManager.backgroundCall = null;
71+ callHint.labelSwitchInterval = 300;
72+
73+ ApplicationManager.stopApplication("dialer-app");
74+ }
75+
76+ function test_activeHint_data() {
77+ return [
78+ { tag: "noCall-callNotVisible", dialer: false, call: null, visible: false, expected: false },
79+ { tag: "noCall-callVisible", dialer: false, call: null, visible: true, expected: false },
80+ { tag: "hasCall-callNotVisible", dialer: false, call: call1, visible: false, expected: true },
81+ { tag: "hasCall-callVisible", dialer: false, call: call1, visible: true, expected: true },
82+
83+ { tag: "dialerNotFocused-noCall-callNotVisible", dialer: true, focused: false, call: null, visible: false, expected: false },
84+ { tag: "dialerNotFocused-noCall-callVisible", dialer: true, focused: false, call: null, visible: true, expected: false },
85+ { tag: "dialerNotFocused-hasCall-callNotVisible", dialer: true, focused: false, call: call1, visible: false, expected: true },
86+ { tag: "dialerNotFocused-hasCall-callVisible", dialer: true, focused: false, call: call1, visible: true, expected: true },
87+
88+ { tag: "dialerFocused-noCall-callNotVisible", dialer: true, focused: true, call: null, visible: false, expected: false },
89+ { tag: "dialerFocused-noCall-callVisible", dialer: true, focused: true, call: null, visible: true, expected: true },
90+ { tag: "dialerFocused-hasCall-callNotVisible", dialer: true, focused: true, call: call1, visible: false, expected: false },
91+ { tag: "dialerFocused-hasCall-callVisible", dialer: true, focused: true, call: call1, visible: true, expected: true },
92+ ];
93+ }
94+
95+ function test_activeHint(data) {
96+ if (data.dialer) {
97+ var application = ApplicationManager.startApplication("dialer-app");
98+ tryCompare(ApplicationManager, "focusedApplicationId", "dialer-app");
99+ tryCompare(application, "state", ApplicationInfo.Running);
100+
101+ if (!data.focused) { ApplicationManager.unfocusCurrentApplication(); }
102+ }
103+ callManager.foregroundCall = data.call;
104+ callManager.callIndicatorVisible = data.visible;
105+
106+ compare(callHint.active, data.expected, "Call hint should be active when callIndicatorVisible=true");
107+ }
108+
109+ function test_currentCall_data() {
110+ return [
111+ { tag: "empty", foreground: null, background: null, active: false, label: "" },
112+ { tag: "foreground", foreground: call1, background: null, active: true, label: "+447812221111" },
113+ { tag: "background", foreground: null, background: call2, active: true, label: "+447812221112" },
114+ { tag: "multiple", foreground: call1, background: call2, active: true, label: "+447812221111" },
115+ ];
116+ }
117+
118+ function test_currentCall(data) {
119+ callManager.foregroundCall = data.foreground;
120+ callManager.backgroundCall = data.background;
121+
122+ var contactLabel = findChild(callHint, "contactLabel");
123+ verify(contactLabel !== null);
124+
125+ compare(contactLabel.text, data.label, "Contact label does not match call");
126+ }
127+
128+ function test_changeContactData() {
129+ callManager.backgroundCall = call3;
130+
131+ var contactLabel = findChild(callHint, "contactLabel");
132+ verify(contactLabel !== null);
133+
134+ contactWactherData.contactData = { "+447812221113": { "alias": "Bob's Uncle" } };
135+ compare(contactLabel.text, "Bob's Uncle", "Contact label does not match call");
136+
137+ contactWactherData.contactData = { "+447812221113": { "alias": "Freddy" } };
138+ compare(contactLabel.text, "Freddy", "Contact label does not match call");
139+ }
140+
141+ function test_timeLapse() {
142+ callManager.backgroundCall = call3;
143+
144+ var timeLabel = findChild(callHint, "timeLabel");
145+ verify(timeLabel !== null);
146+
147+ var currentLabel = timeLabel.text;
148+ tryCompareFunction(function() { return timeLabel.text !== currentLabel }, true);
149+ currentLabel = timeLabel.text;
150+ tryCompareFunction(function() { return timeLabel.text !== currentLabel }, true);
151+ }
152+
153+ function test_displayedLabelChangesOverTime() {
154+ callManager.backgroundCall = call3;
155+
156+ var labelPathView = findChild(callHint, "labelPathView");
157+ verify(labelPathView !== null);
158+
159+ var currentOffset = labelPathView.offset
160+ tryCompareFunction(function() { return labelPathView.offset !== currentOffset }, true);
161+ currentOffset = labelPathView.offset
162+ tryCompareFunction(function() { return labelPathView.offset !== currentOffset }, true);
163+ }
164+ }
165+}
tests/qmltests/Panel/tst_Indicators.qml+10−21
@@ -17,6 +17,7 @@
17import QtQuick 2.0
17import QtQuick 2.0
18import QtTest 1.0
18import QtTest 1.0
19import Unity.Test 0.1 as UT
19import Unity.Test 0.1 as UT
20+import Ubuntu.Components 0.1 as UC
20import ".."
21import ".."
21import "../../../qml/Panel"
22import "../../../qml/Panel"
22import "../../../qml/Components"
23import "../../../qml/Components"
@@ -45,13 +46,12 @@ Item {
45 shown: false
46 shown: false
46 profile: "test1"
47 profile: "test1"
47
48
48− openedHeight: parent.height - click_me.height
49+ openedHeight: parent.height - button.height
49 }
50 }
50
51
51− // Just a rect for clicking to open the indicators.
52+ UC.Button {
52− Rectangle {
53+ id: button
53− id: click_me
54+ text: indicators.shown ? "Hide" : "Show"
54− color: "red"
55 anchors {
55 anchors {
56 bottom: shell.bottom
56 bottom: shell.bottom
57 left: parent.left
57 left: parent.left
@@ -59,22 +59,11 @@ Item {
59 }
59 }
60 height: 50
60 height: 50
61
61
62− Text {
63− text: "Click Me"
64− horizontalAlignment: Text.AlignHCenter
65− verticalAlignment: Text.AlignVCenter
66− anchors.fill: parent
67−
68− MouseArea {
69− anchors.fill: parent
70−
71− onClicked: {
62+ onClicked: {
72− if (!indicators.shown) {
63+ if (!indicators.shown) {
73− indicators.show();
64+ indicators.show();
74− } else {
65+ } else {
75− indicators.hide();
66+ indicators.hide();
76− }
77− }
78 }
67 }
79 }
68 }
80 }
69 }
tests/qmltests/Panel/tst_Panel.qml+147−82
@@ -17,6 +17,8 @@
17import QtQuick 2.0
17import QtQuick 2.0
18import QtTest 1.0
18import QtTest 1.0
19import Unity.Test 0.1 as UT
19import Unity.Test 0.1 as UT
20+import Ubuntu.Components 0.1 as UC
21+import Ubuntu.Telephony 0.1 as Telephony
20import ".."
22import ".."
21import "../../../qml/Panel"
23import "../../../qml/Panel"
22
24
@@ -30,42 +32,104 @@ Item {
30 width: units.gu(40)
32 width: units.gu(40)
31 height: units.gu(80)
33 height: units.gu(80)
32
34
33− property bool searchClicked: false
34−
35− Connections {
36− target: panel
37− onSearchClicked: searchClicked = true
38− }
39−
40 Panel {
35 Panel {
41 id: panel
36 id: panel
42− anchors.fill: parent
37+ anchors {
38+ left: parent.left
39+ right: parent.right
40+ }
41+ height: parent.height - row.height
42+ fullscreenMode: false
43
43
44 indicators {
44 indicators {
45 profile: "test1"
45 profile: "test1"
46+ panelHeight: units.gu(5)
47+ }
48+ callHint {
49+ height: units.gu(4)
46 }
50 }
51+
52+ property real panelAndSeparatorHeight: panel.indicators.panelHeight + units.dp(2)
53+ }
54+
55+
56+ Row {
57+ id: row
58+ anchors {
59+ bottom: shell.bottom
60+ left: parent.left
61+ right: parent.right
62+ }
63+ height: 50
64+
65+ UC.Button {
66+ text: panel.indicators.shown ? "Hide" : "Show"
67+ anchors {
68+ top: parent.top
69+ bottom: parent.bottom
70+ }
71+ width: parent.width/3
72+
73+ onClicked: {
74+ if (panel.indicators.shown) {
75+ panel.indicators.hide();
76+ } else {
77+ panel.indicators.show();
78+ }
79+ }
80+ }
81+
82+ UC.Button {
83+ text: panel.fullscreenMode ? "Maximize" : "FullScreen"
84+ anchors {
85+ top: parent.top
86+ bottom: parent.bottom
87+ }
88+ width: parent.width/3
89+
90+ onClicked: panel.fullscreenMode = !panel.fullscreenMode
91+ }
92+
93+ UC.Button {
94+ text: callManager.hasCalls ? "Called" : "No Calls"
95+ anchors {
96+ top: parent.top
97+ bottom: parent.bottom
98+ }
99+ width: parent.width/3
100+
101+ onClicked: {
102+ if (callManager.foregroundCall) {
103+ callManager.foregroundCall = null;
104+ } else {
105+ callManager.foregroundCall = phoneCall;
106+ }
107+ }
108+ }
109+ }
110+
111+ Telephony.CallEntry {
112+ id: phoneCall
113+ phoneNumber: "+447812221111"
47 }
114 }
48
115
49 UT.UnityTestCase {
116 UT.UnityTestCase {
50 name: "Panel"
117 name: "Panel"
51 when: windowShown
118 when: windowShown
52
119
53− function get_window_data() {
54− return [
55− {tag: "pinned", fullscreenFlag: false, alreadyOpen: false },
56− {tag: "fullscreen", fullscreenFlag: true, alreadyOpen: false },
57− {tag: "pinned-alreadyOpen", fullscreenFlag: false, alreadyOpen: true },
58− {tag: "fullscreen-alreadyOpen", fullscreenFlag: true, alreadyOpen: true }
59− ];
60− }
61−
62 function init() {
120 function init() {
63 panel.indicators.initialise();
121 panel.indicators.initialise();
122+ panel.fullscreenMode = false;
64
123
65− searchClicked = false;
66 panel.indicators.hide();
124 panel.indicators.hide();
125+ // Wait for animation to complete
67 tryCompare(panel.indicators.hideAnimation, "running", false);
126 tryCompare(panel.indicators.hideAnimation, "running", false);
68− tryCompare(panel.indicators, "state", "initial");
127+ callManager.foregroundCall = null;
128+
129+ // Wait for the indicators to get into position.
130+ // (switches between normal and fullscreen modes are animated)
131+ var indicatorArea = findChild(panel, "indicatorArea");
132+ tryCompare(indicatorArea, "y", 0);
69 }
133 }
70
134
71 function get_indicator_item(index) {
135 function get_indicator_item(index) {
@@ -88,46 +152,59 @@ Item {
88 // Pressing on the indicator panel should activate the indicator hints
152 // Pressing on the indicator panel should activate the indicator hints
89 // and expose a portion of the conent.
153 // and expose a portion of the conent.
90 function test_hint() {
154 function test_hint() {
91− panel.fullscreenMode = false;
92− // Wait for the indicators to get into position.
93− // (switches between normal and fullscreen modes are animated)
94− tryCompare(panel.indicators, "y", 0);
95−
96 var indicatorItemCoord = get_indicator_item_position(0);
155 var indicatorItemCoord = get_indicator_item_position(0);
97
156
98− touchPress(panel, indicatorItemCoord.x, panel.panelHeight / 2);
157+ touchPress(panel, indicatorItemCoord.x, panel.indicators.panelHeight / 2);
99
158
100 // hint animation should be run, meaning that indicators will move downwards
159 // hint animation should be run, meaning that indicators will move downwards
101 // by hintValue pixels without any drag taking place
160 // by hintValue pixels without any drag taking place
102− tryCompare(panel.indicators, "height",
161+ tryCompareFunction(function() { return panel.indicators.height },
103− panel.indicators.panelHeight + panel.indicators.hintValue);
162+ panel.indicators.panelHeight + panel.indicators.hintValue);
104 tryCompare(panel.indicators, "partiallyOpened", true);
163 tryCompare(panel.indicators, "partiallyOpened", true);
105 tryCompare(panel.indicators, "fullyOpened", false);
164 tryCompare(panel.indicators, "fullyOpened", false);
106
165
107− touchRelease(panel, indicatorItemCoord.x, panel.panelHeight/2);
166+ touchRelease(panel, indicatorItemCoord.x, panel.indicators.panelHeight/2);
108 }
167 }
109
168
110 // Pressing on the top edge of the screen should have no effect if the panel
169 // Pressing on the top edge of the screen should have no effect if the panel
111− // is hidden (!pinned), which is the case when a fullscreen app is being shown
170+ // is hidden (fullscreen), which is the case when a fullscreen app is being shown
112 function test_noHintOnFullscreenMode() {
171 function test_noHintOnFullscreenMode() {
113 panel.fullscreenMode = true;
172 panel.fullscreenMode = true;
114 // Wait for the indicators to get into position.
173 // Wait for the indicators to get into position.
115 // (switches between normal and fullscreen modes are animated)
174 // (switches between normal and fullscreen modes are animated)
175+ var indicatorArea = findChild(panel, "indicatorArea");
116− tryCompare(panel.indicators, "y", -panel.panelHeight);
176+ tryCompare(indicatorArea, "y", -panel.panelHeight);
117
177
118 var indicatorItemCoord = get_indicator_item_position(0);
178 var indicatorItemCoord = get_indicator_item_position(0);
119
179
120− touchPress(panel, indicatorItemCoord.x, panel.panelHeight / 2);
180+ touchPress(panel, indicatorItemCoord.x, panel.indicators.panelHeight / 2);
181+
182+ // Give some time for a hint animation to change things, if any
183+ wait(500);
184+
185+ // no hint animation when fullscreen
186+ compare(panel.indicators.partiallyOpened, false,
187+ "Indicator should not be partially opened when panel is pressed in" +
188+ " fullscreenmode");
189+ compare(panel.indicators.fullyOpened, false, "Indicator should not be partially" +
190+ " opened when panel is pressed in fullscreenmode");
191+
192+ touchRelease(panel, indicatorItemCoord.x, panel.panelHeight/2);
193+ }
194+
195+ // Pressing on the top edge of the indicator should have no effect if the panel
196+ // has an active call
197+ function test_noHintOnActiveCall() {
198+ callManager.foregroundCall = phoneCall;
199+
200+ var indicatorItemCoord = get_indicator_item_position(0);
201+
202+ touchPress(panel, indicatorItemCoord.x, panel.callHint.height + panel.indicators.panelHeight / 2);
121
203
122 // Give some time for a hint animation to change things, if any
204 // Give some time for a hint animation to change things, if any
123 wait(500);
205 wait(500);
124
206
125 // no hint animation when fullscreen
207 // no hint animation when fullscreen
126− compare(panel.indicators.y, -panel.panelHeight);
127− var indicatorRow = findChild(panel.indicators, "indicatorRow");
128− verify(indicatorRow !== null);
129− compare(indicatorRow.y, 0);
130− compare(panel.indicators.height, panel.indicators.panelHeight);
131 compare(panel.indicators.partiallyOpened, false,
208 compare(panel.indicators.partiallyOpened, false,
132 "Indicator should not be partially opened when panel is pressed in" +
209 "Indicator should not be partially opened when panel is pressed in" +
133 " fullscreenmode");
210 " fullscreenmode");
@@ -137,34 +214,47 @@ Item {
137 touchRelease(panel, indicatorItemCoord.x, panel.panelHeight/2);
214 touchRelease(panel, indicatorItemCoord.x, panel.panelHeight/2);
138 }
215 }
139
216
140− function test_drag_show_data() { return get_window_data(); }
217+ function test_drag_show_data() {
218+ return [
219+ { tag: "pinned", fullscreenFlag: false, alreadyOpen: false, call: null,
220+ indicatorY: 0 },
221+ { tag: "fullscreen", fullscreenFlag: true, alreadyOpen: false, call: null,
222+ indicatorY: -panel.panelAndSeparatorHeight },
223+ { tag: "pinned-alreadyOpen", fullscreenFlag: false, alreadyOpen: true, call: null,
224+ indicatorY: 0 },
225+ { tag: "fullscreen-alreadyOpen", fullscreenFlag: true, alreadyOpen: true, call: null,
226+ indicatorY: 0 },
227+ { tag: "pinned-callActive", fullscreenFlag: false, alreadyOpen: false, call: phoneCall,
228+ indicatorY: 0},
229+ { tag: "fullscreen-callActive", fullscreenFlag: true, alreadyOpen: false, call: phoneCall,
230+ indicatorY: -panel.panelAndSeparatorHeight }
231+ ];
232+ }
141
233
142 // Dragging from a indicator item in the panel will gradually expose the
234 // Dragging from a indicator item in the panel will gradually expose the
143 // indicators, first by running the hint animation, then after dragging down will
235 // indicators, first by running the hint animation, then after dragging down will
144 // expose more of the panel, binding it to the selected indicator and opening it's menu.
236 // expose more of the panel, binding it to the selected indicator and opening it's menu.
145 function test_drag_show(data) {
237 function test_drag_show(data) {
146 panel.fullscreenMode = data.fullscreenFlag;
238 panel.fullscreenMode = data.fullscreenFlag;
239+ callManager.foregroundCall = data.call;
240+
147 if (data.alreadyOpen) {
241 if (data.alreadyOpen) {
148 panel.indicators.show();
242 panel.indicators.show();
149 tryCompare(panel.indicators, "fullyOpened", true);
243 tryCompare(panel.indicators, "fullyOpened", true);
150 }
244 }
151
245
152− var indicatorRow = findChild(panel.indicators, "indicatorRow");
246+ var indicatorRow = findChild(panel.indicators, "indicatorRow");
153 verify(indicatorRow !== null);
247 verify(indicatorRow !== null);
154
248
155 var menuContent = findChild(panel.indicators, "menuContent");
249 var menuContent = findChild(panel.indicators, "menuContent");
156− verify(indicatorRow !== null);
250+ verify(menuContent !== null);
157
251
158− var menuContent = findChild(panel.indicators, "menuContent");
252+ var indicatorArea = findChild(panel, "indicatorArea");
159− verify(indicatorRow !== null);
253+ verify(indicatorArea !== null);
160
254
161 // Wait for the indicators to get into position.
255 // Wait for the indicators to get into position.
162 // (switches between normal and fullscreen modes are animated)
256 // (switches between normal and fullscreen modes are animated)
163− if (data.fullscreenFlag) {
257+ tryCompareFunction(function() { return indicatorArea.y }, data.indicatorY);
164− tryCompare(panel.indicators, "y", -panel.panelHeight);
165− } else {
166− tryCompare(panel.indicators, "y", 0);
167− }
168
258
169 // do this for each indicator item
259 // do this for each indicator item
170 for (var i = 0; i < indicatorRow.row.count; i++) {
260 for (var i = 0; i < indicatorRow.row.count; i++) {
@@ -178,12 +268,12 @@ Item {
178 var indicatorItemCoord = get_indicator_item_position(i);
268 var indicatorItemCoord = get_indicator_item_position(i);
179
269
180 touchPress(panel,
270 touchPress(panel,
181− indicatorItemCoord.x, panel.panelHeight / 2);
271+ indicatorItemCoord.x, panel.indicators.panelHeight / 2);
182
272
183 // 1) Drag the mouse down
273 // 1) Drag the mouse down
184 touchFlick(panel,
274 touchFlick(panel,
185− indicatorItemCoord.x, panel.panelHeight / 2,
275+ indicatorItemCoord.x, panel.indicators.panelHeight / 2,
186− indicatorItemCoord.x, panel.height * 0.8,
276+ indicatorItemCoord.x, panel.height,
187 false /* beginTouch */, false /* endTouch */);
277 false /* beginTouch */, false /* endTouch */);
188
278
189 // Indicators height should follow the drag, and therefore increase accordingly.
279 // Indicators height should follow the drag, and therefore increase accordingly.
@@ -192,7 +282,7 @@ Item {
192 function() {return panel.indicators.height >= panel.height * 0.5},
282 function() {return panel.indicators.height >= panel.height * 0.5},
193 true);
283 true);
194
284
195− touchRelease(panel, indicatorItemCoord.x, panel.height * 0.8);
285+ touchRelease(panel, indicatorItemCoord.x, panel.height);
196
286
197 compare(indicatorRow.currentItem, indicatorItem,
287 compare(indicatorRow.currentItem, indicatorItem,
198 "Incorrect item activated at position " + i);
288 "Incorrect item activated at position " + i);
@@ -200,43 +290,18 @@ Item {
200
290
201 // init for next indicatorItem
291 // init for next indicatorItem
202 if (!data.alreadyOpen) {
292 if (!data.alreadyOpen) {
203− init();
293+ panel.indicators.hide();
294+ tryCompare(panel.indicators.hideAnimation, "running", false);
295+ tryCompare(panel.indicators, "state", "initial");
204 }
296 }
205 }
297 }
206 }
298 }
207
299
208− function test_search_click_when_visible() {
209− panel.fullscreenMode = false;
210− panel.searchVisible = true;
211−
212− var searchIndicator = findChild(panel, "search");
213− verify(searchIndicator !== null);
214−
215− tap(searchIndicator, 1, 1);
216−
217− compare(searchClicked, true,
218− "Tapping search indicator while it was enabled did not emit searchClicked signal");
219− }
220−
221− function test_search_click_when_not_visible() {
222− panel.fullscreenMode = false;
223− panel.searchVisible = false;
224−
225− var searchIndicator = findChild(panel, "search");
226− verify(searchIndicator !== null);
227−
228− tap(searchIndicator, 1, 1);
229−
230− compare(searchClicked, false,
231− "Tapping search indicator while it was not visible emitted searchClicked signal");
232− }
233−
234 // Test the vertical velocity check when flicking the indicators open at an angle.
300 // Test the vertical velocity check when flicking the indicators open at an angle.
235 // If the vertical velocity is above a specific point, we shouldnt change active indicators
301 // If the vertical velocity is above a specific point, we shouldnt change active indicators
236 // if the x position changes
302 // if the x position changes
237 function test_vertical_velocity_detector() {
303 function test_vertical_velocity_detector() {
238 panel.fullscreenMode = false;
304 panel.fullscreenMode = false;
239− panel.searchVisible = false;
240
305
241 var indicatorRow = findChild(panel.indicators, "indicatorRow");
306 var indicatorRow = findChild(panel.indicators, "indicatorRow");
242 verify(indicatorRow !== null);
307 verify(indicatorRow !== null);
@@ -249,19 +314,19 @@ Item {
249 var indicatorItemCoordNext = get_indicator_item_position(indicatorRow.row.count - 1);
314 var indicatorItemCoordNext = get_indicator_item_position(indicatorRow.row.count - 1);
250
315
251 touchPress(panel,
316 touchPress(panel,
252− indicatorItemCoordFirst.x, panel.panelHeight / 2);
317+ indicatorItemCoordFirst.x, panel.indicators.panelHeight / 2);
253
318
254 // 1) Drag the mouse down to hint a bit
319 // 1) Drag the mouse down to hint a bit
255 touchFlick(panel,
320 touchFlick(panel,
256− indicatorItemCoordFirst.x, panel.panelHeight / 2,
321+ indicatorItemCoordFirst.x, panel.indicators.panelHeight / 2,
257− indicatorItemCoordFirst.x, panel.panelHeight * 2,
322+ indicatorItemCoordFirst.x, panel.indicators.panelHeight * 2,
258 false /* beginTouch */, false /* endTouch */);
323 false /* beginTouch */, false /* endTouch */);
259
324
260 tryCompare(indicatorRow, "currentItem", indicatorItemFirst)
325 tryCompare(indicatorRow, "currentItem", indicatorItemFirst)
261
326
262 // 1) Flick mouse down to bottom
327 // 1) Flick mouse down to bottom
263 touchFlick(panel,
328 touchFlick(panel,
264− indicatorItemCoordFirst.x, panel.panelHeight * 2,
329+ indicatorItemCoordFirst.x, panel.indicators.panelHeight * 2,
265 indicatorItemCoordNext.x, panel.height,
330 indicatorItemCoordNext.x, panel.height,
266 false /* beginTouch */, true /* endTouch */,
331 false /* beginTouch */, true /* endTouch */,
267 units.gu(10) /* speed */, 30 /* iterations */); // more samples needed for accurate velocity
332 units.gu(10) /* speed */, 30 /* iterations */); // more samples needed for accurate velocity
tests/qmltests/tst_Shell.qml+1−37
@@ -104,7 +104,7 @@ Item {
104 killApps(ApplicationManager);
104 killApps(ApplicationManager);
105
105
106 var dashContent = findChild(shell, "dashContent");
106 var dashContent = findChild(shell, "dashContent");
107− dashContent.previewOpen = false;
107+ dashContent.closePreview();
108
108
109 var dashHome = findChild(shell, "clickscope loader");
109 var dashHome = findChild(shell, "clickscope loader");
110 swipeUntilScopeViewIsReached(dashHome);
110 swipeUntilScopeViewIsReached(dashHome);
@@ -510,42 +510,6 @@ Item {
510 tryCompare(dash, "shown", data.expectedShown);
510 tryCompare(dash, "shown", data.expectedShown);
511 }
511 }
512
512
513− function test_searchIndicatorHidesOnAppFocus() {
514− var searchIndicator = findChild(shell, "container")
515− tryCompare(searchIndicator, "opacity", 1)
516− dragLauncherIntoView();
517−
518− // Launch an app from the launcher
519− tapOnAppIconInLauncher();
520− waitUntilApplicationWindowIsFullyVisible();
521−
522− tryCompare(searchIndicator, "opacity", 0);
523− }
524−
525− function test_searchIndicatorHidesOnGreeterShown() {
526− var searchIndicator = findChild(shell, "container")
527− var greeter = findChild(shell, "greeter");
528−
529− tryCompare(searchIndicator, "opacity", 1)
530−
531− greeter.show()
532− tryCompare(greeter, "shown", true)
533− tryCompare(searchIndicator, "opacity", 0)
534− }
535−
536− function test_searchIndicatorHideOnPreviewShown() {
537− var searchIndicator = findChild(shell, "container");
538− var dashContent = findChild(shell, "dashContent");
539−
540− verify(dashContent != null);
541−
542− tryCompare(searchIndicator, "opacity", 1);
543−
544− dashContent.previewOpen = true;
545−
546− tryCompare(searchIndicator, "opacity", 0);
547− }
548−
549 function test_focusRequestedHidesGreeter() {
513 function test_focusRequestedHidesGreeter() {
550 var greeter = findChild(shell, "greeter")
514 var greeter = findChild(shell, "greeter")
551
515