on xenial help sign in
Merge from trunk
0d3e495Michael Terry
cmake/modules/autopilot.cmake+10−1
@@ -2,7 +2,7 @@ add_custom_target(autopilot)
2
2
3function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
3function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
4 add_custom_target(autopilot-${TEST_NAME}
4 add_custom_target(autopilot-${TEST_NAME}
5− COMMAND LANG=C UBUNTU_ICON_THEME=ubuntu-mobile QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks autopilot run ${TEST_SUITE}
5+ COMMAND LANG=C UBUNTU_ICON_THEME=ubuntu-mobile QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python3 -m autopilot.run run ${TEST_SUITE}
6 WORKING_DIRECTORY ${WORKING_DIR}
6 WORKING_DIRECTORY ${WORKING_DIR}
7 DEPENDS fake_install
7 DEPENDS fake_install
8 )
8 )
@@ -12,4 +12,13 @@ function(declare_autopilot_test TEST_NAME TEST_SUITE WORKING_DIR)
12 )
12 )
13
13
14 add_dependencies(autopilot autopilot-${TEST_NAME})
14 add_dependencies(autopilot autopilot-${TEST_NAME})
15+
16+ add_custom_target(autopilot2-${TEST_NAME}
17+ COMMAND LANG=C UBUNTU_ICON_THEME=ubuntu-mobile QML2_IMPORT_PATH=${SHELL_INSTALL_QML}/mocks python2 -m autopilot.run run ${TEST_SUITE}
18+ WORKING_DIRECTORY ${WORKING_DIR}
19+ DEPENDS fake_install
20+ )
21+
22+ add_dependencies(autopilot autopilot2-${TEST_NAME})
23+
15endfunction()
24endfunction()
data/unity8.conf+5
@@ -28,6 +28,11 @@ pre-start script
28 initctl set-env --global MIR_SOCKET=$MIR_SERVER_FILE
28 initctl set-env --global MIR_SOCKET=$MIR_SERVER_FILE
29 gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "@a{ss} {'MIR_SOCKET': '$MIR_SERVER_FILE'}"
29 gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/DBus --method org.freedesktop.DBus.UpdateActivationEnvironment "@a{ss} {'MIR_SOCKET': '$MIR_SERVER_FILE'}"
30 fi
30 fi
31+
32+ # Remove the socket if still there
33+ if [ -S "$MIR_SERVER_FILE" ]; then
34+ rm "$MIR_SERVER_FILE"
35+ fi
31end script
36end script
32
37
33exec ${BINARY:-unity8} $ARGS
38exec ${BINARY:-unity8} $ARGS
debian/changelog+155
@@ -1,3 +1,158 @@
1+unity8 (7.84+14.04.20140317.2-0ubuntu1) trusty; urgency=low
2+
3+ [ CI bot ]
4+ * Resync trunk
5+
6+ [ Michał Sawicz ]
7+ * Revert disable-hud, we weren't ready to land it yet.
8+
9+ [ Mirco Müller ]
10+ * The snap-decision AP-test for "incoming call"-case used the wrong
11+ objectName "notification0". It has to be "notification1".
12+
13+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Mon, 17 Mar 2014 15:54:39 +0000
14+
15+unity8 (7.84+14.04.20140314-0ubuntu1) trusty; urgency=low
16+
17+ [ Michał Sawicz ]
18+ * Fix tests under Qt 5.2.
19+ * CardHeader improvements depending on background. Also drop prices,
20+ they need to be reworked into attributes.
21+ * Bring Cards closer to design
22+ * Add back the workaround for not being able scroll the image gallery
23+ Taken from AppPreview.qml (LP: #1281709)
24+ * Only allow searching when preview isn't open. (LP: #1282475)
25+ * Adds carousel dynamic switch
26+
27+ [ Leo Arias ]
28+ * Update the url dispatcher test to use the fake app fixture from the
29+ toolkit.
30+
31+ [ Albert Astals ]
32+ * Fix tests under Qt 5.2.
33+ * Workaround compiz/unity7 behaviour change/bug
34+
35+ [ Michael Zanetti ]
36+ * Fix tests under Qt 5.2.
37+ * Disable HUD from the bottom edge.
38+
39+ [ Andrea Cimitan ]
40+ * Adds carousel dynamic switch
41+
42+ [ CI bot ]
43+ * Resync trunk
44+
45+ [ Michał Karnicki ]
46+ * CardHeader improvements depending on background. Also drop prices,
47+ they need to be reworked into attributes.
48+
49+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 14 Mar 2014 15:46:10 +0000
50+
51+unity8 (7.84+14.04.20140307-0ubuntu1) trusty; urgency=low
52+
53+ * New rebuild forced
54+
55+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 07 Mar 2014 10:54:33 +0000
56+
57+unity8 (7.84+14.04.20140306-0ubuntu1) trusty; urgency=low
58+
59+ [ Bill Filler ]
60+ * Convert gallery and camera to click
61+
62+ [ Michael Zanetti ]
63+ * Just disable HUD tests, without really disabling the HUD itself
64+
65+ [ Sergio Schvezov ]
66+ * Convert gallery and camera to click
67+
68+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Thu, 06 Mar 2014 16:45:46 +0000
69+
70+unity8 (7.84+14.04.20140304-0ubuntu1) trusty; urgency=low
71+
72+ [ Michael Terry ]
73+ * Ensure that the selected() signal is emitted by the greeter on
74+ startup, fixing the background on startup for the first user in
75+ tablet mode.
76+
77+ [ Nick Dedekind ]
78+ * Remocked IndicatorModel to fix qt5.2.1 changes.
79+
80+ [ Albert Astals ]
81+ * Initialize m_distance (LP: #1285385)
82+ * import Ubuntu.Components so we can use UbuntuAnimation
83+
84+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 04 Mar 2014 11:43:04 +0000
85+
86+unity8 (7.84+14.04.20140228-0ubuntu1) trusty; urgency=low
87+
88+ [ Michał Sawicz ]
89+ * Fix CardHeader title font weight.
90+ * Delete stale sockets. (LP: #1285215)
91+
92+ [ Dmitrijs Ledkovs ]
93+ * Ship python3 autopilot modules.
94+
95+ [ Albert Astals ]
96+ * Cleanup DashContent Remove unused signals and properties
97+
98+ [ Michał Karnicki ]
99+ * Take it easy on the logging.
100+ * Fix CardHeader title font weight.
101+
102+ [ Nick Dedekind ]
103+ * Added ability to change indicator profile in shell (env
104+ UNITY_INDICATOR_PROFILE)
105+
106+ [ Andrea Cimitan ]
107+ * Rename PreviewRating to PreviewRatingInput
108+ * Adds PreviewRatingDisplay
109+
110+ [ Daniel d'Andrada ]
111+ * DirectionalDragArea: Reset status if disabled while dragging (LP:
112+ #1276122)
113+
114+ [ Dimitri John Ledkov ]
115+ * Ship python3 autopilot modules.
116+
117+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 28 Feb 2014 10:48:06 +0000
118+
119+unity8 (7.84+14.04.20140221-0ubuntu1) trusty; urgency=low
120+
121+ [ Michał Sawicz ]
122+ * Add card background support.
123+ * Increase the sidestage threshold.
124+
125+ [ Jussi Pakkanen ]
126+ * Move downloads to their own threads so they don't muck about with
127+ the parent thread's event loop. (LP: #1240408)
128+
129+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 21 Feb 2014 09:06:04 +0000
130+
131+unity8 (7.84+14.04.20140218-0ubuntu1) trusty; urgency=low
132+
133+ [ Michał Sawicz ]
134+ * Center-align title when it's alone in the header.
135+
136+ [ Leo Arias ]
137+ * Prepare unity8 to the _uinput refactors in autopilot.
138+
139+ [ Albert Astals ]
140+ * Progress Preview Widget
141+ * LWPH Fix crash from bug 1279434 (LP: #1279434)
142+ * Show the loading indicator of the screenshot in video playback
143+
144+ [ Andrea Cimitan ]
145+ * Adds rating preview widget. Work on the rating widget
146+
147+ [ Daniel d'Andrada ]
148+ * Make DirectionalDragArea work when rotated The drag gesture
149+ direction is in local coordinates, not in scene coordinates
150+
151+ [ Michał Karnicki ]
152+ * Center-align title when it's alone in the header.
153+
154+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Tue, 18 Feb 2014 11:41:58 +0000
155+
1unity8 (7.84+14.04.20140212-0ubuntu1) trusty; urgency=low
156unity8 (7.84+14.04.20140212-0ubuntu1) trusty; urgency=low
2
157
3 [ Gerry Boland ]
158 [ Gerry Boland ]
debian/control+8−1
@@ -28,7 +28,8 @@ Build-Depends: cmake,
28 pkg-config,
28 pkg-config,
29 python:any (>= 2.7),
29 python:any (>= 2.7),
30 python-setuptools,
30 python-setuptools,
31− python3:any,
31+ python3-all:any,
32+ python3-setuptools,
32 qt5-default,
33 qt5-default,
33 qtbase5-dev,
34 qtbase5-dev,
34 qtbase5-dev-tools,
35 qtbase5-dev-tools,
@@ -107,16 +108,22 @@ Depends: gir1.2-glib-2.0,
107 libautopilot-qt (>= 1.4),
108 libautopilot-qt (>= 1.4),
108 libqt5test5,
109 libqt5test5,
109 libqt5widgets5,
110 libqt5widgets5,
111+ python-autopilot,
110 python-evdev,
112 python-evdev,
111 python-fixtures,
113 python-fixtures,
112 python-gi,
114 python-gi,
113 python-mock,
115 python-mock,
116+ python3-autopilot,
117+ python3-evdev,
118+ python3-fixtures,
119+ python3-gi,
114 ubuntu-ui-toolkit-autopilot,
120 ubuntu-ui-toolkit-autopilot,
115 unity8 (>= ${source:Version}),
121 unity8 (>= ${source:Version}),
116 unity8-fake-env (>= ${source:Version}),
122 unity8-fake-env (>= ${source:Version}),
117 url-dispatcher-tools,
123 url-dispatcher-tools,
118 ${misc:Depends},
124 ${misc:Depends},
119 ${python:Depends},
125 ${python:Depends},
126+ ${python3:Depends},
120 ${shlibs:Depends},
127 ${shlibs:Depends},
121Description: Test package for Unity 8 shell
128Description: Test package for Unity 8 shell
122 Autopilot tests for the unity8 package
129 Autopilot tests for the unity8 package
debian/rules+2−2
@@ -10,7 +10,7 @@ SCOPES_RECOMMENDS := $(shell perl debian/scopes-recommends-generator /usr/share/
10
10
11.PHONY: build
11.PHONY: build
12build %:
12build %:
13− dh $@ --parallel --fail-missing --with python2
13+ dh $@ --parallel --fail-missing --with python2,python3
14
14
15override_dh_auto_clean:
15override_dh_auto_clean:
16 dh_auto_clean
16 dh_auto_clean
@@ -28,7 +28,7 @@ override_dh_auto_build:
28override_dh_install:
28override_dh_install:
29 # install autopilot tests
29 # install autopilot tests
30 cd tests/autopilot; \
30 cd tests/autopilot; \
31− set -ex; for python in $(shell pyversions -r); do \
31+ set -ex; for python in $(shell pyversions -r) $(shell py3versions -r); do \
32 $$python setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb; \
32 $$python setup.py install --root=$(CURDIR)/debian/tmp --install-layout=deb; \
33 done; \
33 done; \
34 cd $(CURDIR)
34 cd $(CURDIR)
plugins/DashViews/listviewwithpageheader.cpp+34−11
@@ -91,6 +91,7 @@
91
91
92#include "listviewwithpageheader.h"
92#include "listviewwithpageheader.h"
93
93
94+#include <QCoreApplication>
94#include <QDebug>
95#include <QDebug>
95#include <qqmlinfo.h>
96#include <qqmlinfo.h>
96#include <qqmlengine.h>
97#include <qqmlengine.h>
@@ -477,6 +478,11 @@ void ListViewWithPageHeader::componentComplete()
477 polish();
478 polish();
478}
479}
479
480
481+static inline bool uFuzzyCompare(qreal r1, qreal r2)
482+{
483+ return qFuzzyCompare(r1, r2) || (qFuzzyIsNull(r1) && qFuzzyIsNull(r2));
484+}
485+
480void ListViewWithPageHeader::viewportMoved(Qt::Orientations orient)
486void ListViewWithPageHeader::viewportMoved(Qt::Orientations orient)
481{
487{
482 // Check we are not being taken down and don't paint anything
488 // Check we are not being taken down and don't paint anything
@@ -491,11 +497,7 @@ void ListViewWithPageHeader::viewportMoved(Qt::Orientations orient)
491 const bool showHeaderAnimationRunning = m_contentYAnimation->isRunning() && contentYAnimationType == ContentYAnimationShowHeader;
497 const bool showHeaderAnimationRunning = m_contentYAnimation->isRunning() && contentYAnimationType == ContentYAnimationShowHeader;
492 if (m_headerItem) {
498 if (m_headerItem) {
493 const auto oldHeaderItemShownHeight = m_headerItemShownHeight;
499 const auto oldHeaderItemShownHeight = m_headerItemShownHeight;
494− if (contentY() < -m_minYExtent) {
500+ if (uFuzzyCompare(contentY(), -m_minYExtent) || contentY() > -m_minYExtent) {
495− // Stick the header item to the top when dragging down
496− m_headerItem->setY(contentY());
497− m_headerItem->setHeight(m_headerItem->implicitHeight() + (-m_minYExtent - contentY()));
498− } else {
499 m_headerItem->setHeight(m_headerItem->implicitHeight());
501 m_headerItem->setHeight(m_headerItem->implicitHeight());
500 // We are going down (but it's not because of the rebound at the end)
502 // We are going down (but it's not because of the rebound at the end)
501 // (but the header was not shown by it's own position)
503 // (but the header was not shown by it's own position)
@@ -509,21 +511,32 @@ void ListViewWithPageHeader::viewportMoved(Qt::Orientations orient)
509 m_headerItemShownHeight = 0;
511 m_headerItemShownHeight = 0;
510 m_headerItem->setY(-m_minYExtent);
512 m_headerItem->setY(-m_minYExtent);
511 } else if ((scrolledUp && notRebounding && notShownByItsOwn && !maximizeVisibleAreaRunning) || (m_headerItemShownHeight > 0) || m_inContentHeightKeepHeaderShown) {
513 } else if ((scrolledUp && notRebounding && notShownByItsOwn && !maximizeVisibleAreaRunning) || (m_headerItemShownHeight > 0) || m_inContentHeightKeepHeaderShown) {
514+ if (maximizeVisibleAreaRunning && diff > 0) {
512− if (maximizeVisibleAreaRunning && diff > 0) // If we are maximizing and the header was shown, make sure we hide it
515+ // If we are maximizing and the header was shown, make sure we hide it
513 m_headerItemShownHeight -= diff;
516 m_headerItemShownHeight -= diff;
514− else
517+ } else {
515 m_headerItemShownHeight += diff;
518 m_headerItemShownHeight += diff;
519+ }
516− if (contentY() == -m_minYExtent) {
520+ if (uFuzzyCompare(contentY(), -m_minYExtent)) {
517 m_headerItemShownHeight = 0;
521 m_headerItemShownHeight = 0;
518 } else {
522 } else {
519 m_headerItemShownHeight = qBound(static_cast<qreal>(0.), m_headerItemShownHeight, m_headerItem->height());
523 m_headerItemShownHeight = qBound(static_cast<qreal>(0.), m_headerItemShownHeight, m_headerItem->height());
520 }
524 }
521 if (m_headerItemShownHeight > 0) {
525 if (m_headerItemShownHeight > 0) {
526+ if (uFuzzyCompare(m_headerItem->height(), m_headerItemShownHeight)) {
527+ m_headerItem->setY(contentY());
528+ m_headerItemShownHeight = m_headerItem->height();
529+ } else {
522− m_headerItem->setY(contentY() - m_headerItem->height() + m_headerItemShownHeight);
530+ m_headerItem->setY(contentY() - m_headerItem->height() + m_headerItemShownHeight);
531+ }
523 } else {
532 } else {
524 m_headerItem->setY(-m_minYExtent);
533 m_headerItem->setY(-m_minYExtent);
525 }
534 }
526 }
535 }
536+ } else {
537+ // Stick the header item to the top when dragging down
538+ m_headerItem->setY(contentY());
539+ m_headerItem->setHeight(m_headerItem->implicitHeight() + (-m_minYExtent - contentY()));
527 }
540 }
528 // We will be changing the clip item, need to accomadate for it
541 // We will be changing the clip item, need to accomadate for it
529 // otherwise we move the firstItem down/up twice (unless the
542 // otherwise we move the firstItem down/up twice (unless the
@@ -1073,7 +1086,7 @@ void ListViewWithPageHeader::itemGeometryChanged(QQuickItem * /*item*/, const QR
1073{
1086{
1074 const qreal heightDiff = newGeometry.height() - oldGeometry.height();
1087 const qreal heightDiff = newGeometry.height() - oldGeometry.height();
1075 if (heightDiff != 0) {
1088 if (heightDiff != 0) {
1076− if (oldGeometry.y() + oldGeometry.height() + m_clipItem->y() < contentY() && !m_visibleItems.isEmpty()) {
1089+ if (oldGeometry.y() + oldGeometry.height() + m_clipItem->y() <= contentY() && !m_visibleItems.isEmpty()) {
1077 ListItem *firstItem = m_visibleItems.first();
1090 ListItem *firstItem = m_visibleItems.first();
1078 firstItem->setY(firstItem->y() - heightDiff);
1091 firstItem->setY(firstItem->y() - heightDiff);
1079 adjustMinYExtent();
1092 adjustMinYExtent();
@@ -1128,7 +1141,12 @@ void ListViewWithPageHeader::adjustMinYExtent()
1128 nonCreatedHeight = m_firstVisibleIndex * visibleItemsHeight / visibleItems;
1141 nonCreatedHeight = m_firstVisibleIndex * visibleItemsHeight / visibleItems;
1129// qDebug() << m_firstVisibleIndex << visibleItemsHeight << visibleItems << nonCreatedHeight;
1142// qDebug() << m_firstVisibleIndex << visibleItemsHeight << visibleItems << nonCreatedHeight;
1130 }
1143 }
1131− m_minYExtent = nonCreatedHeight - m_visibleItems.first()->y() - m_clipItem->y() + (m_headerItem ? m_headerItem->implicitHeight() : 0);
1144+ const qreal headerHeight = (m_headerItem ? m_headerItem->implicitHeight() : 0);
1145+ m_minYExtent = nonCreatedHeight - m_visibleItems.first()->y() - m_clipItem->y() + headerHeight;
1146+ if (m_minYExtent != 0 && qFuzzyIsNull(m_minYExtent)) {
1147+ m_minYExtent = 0;
1148+ m_visibleItems.first()->setY(nonCreatedHeight - m_clipItem->y() + headerHeight);
1149+ }
1132 }
1150 }
1133}
1151}
1134
1152
@@ -1264,6 +1282,11 @@ void ListViewWithPageHeader::updatePolish()
1264 refill();
1282 refill();
1265
1283
1266 if (m_contentHeightDirty) {
1284 if (m_contentHeightDirty) {
1285+ // We need to make sure all bindings have updated otherwise
1286+ // we may end up with bindings updating when we call setContentHeight
1287+ // and then everything gets out of sync, i.e. testHeaderPositionBug1240118
1288+ QCoreApplication::instance()->processEvents();
1289+
1267 qreal contentHeight;
1290 qreal contentHeight;
1268 if (m_visibleItems.isEmpty()) {
1291 if (m_visibleItems.isEmpty()) {
1269 contentHeight = m_headerItem ? m_headerItem->height() : 0;
1292 contentHeight = m_headerItem ? m_headerItem->height() : 0;
plugins/Ubuntu/Gestures/DirectionalDragArea.cpp+114−44
@@ -109,11 +109,13 @@ private:
109DirectionalDragArea::DirectionalDragArea(QQuickItem *parent)
109DirectionalDragArea::DirectionalDragArea(QQuickItem *parent)
110 : QQuickItem(parent)
110 : QQuickItem(parent)
111 , m_status(WaitingForTouch)
111 , m_status(WaitingForTouch)
112+ , m_sceneDistance(0)
112 , m_touchId(-1)
113 , m_touchId(-1)
113 , m_direction(Direction::Rightwards)
114 , m_direction(Direction::Rightwards)
114 , m_wideningAngle(0)
115 , m_wideningAngle(0)
115 , m_wideningFactor(0)
116 , m_wideningFactor(0)
116 , m_distanceThreshold(0)
117 , m_distanceThreshold(0)
118+ , m_distanceThresholdSquared(0.)
117 , m_minSpeed(0)
119 , m_minSpeed(0)
118 , m_maxSilenceTime(200)
120 , m_maxSilenceTime(200)
119 , m_silenceTime(0)
121 , m_silenceTime(0)
@@ -128,6 +130,8 @@ DirectionalDragArea::DirectionalDragArea(QQuickItem *parent)
128 m_recognitionTimer->setInterval(60);
130 m_recognitionTimer->setInterval(60);
129
131
130 m_velocityCalculator = new AxisVelocityCalculator(this);
132 m_velocityCalculator = new AxisVelocityCalculator(this);
133+
134+ connect(this, &QQuickItem::enabledChanged, this, &DirectionalDragArea::onEnabledChanged);
131}
135}
132
136
133Direction::Type DirectionalDragArea::direction() const
137Direction::Type DirectionalDragArea::direction() const
@@ -162,7 +166,14 @@ void DirectionalDragArea::setWideningAngle(qreal angle)
162 return;
166 return;
163
167
164 m_wideningAngle = angle;
168 m_wideningAngle = angle;
169+
170+ // wideningFactor = pow(cosine(angle), 2)
171+ {
165− m_wideningFactor = qTan(angle * M_PI / 180.0);
172+ qreal angleRadians = angle * M_PI / 180.0;
173+ m_wideningFactor = qCos(angleRadians);
174+ m_wideningFactor = m_wideningFactor * m_wideningFactor;
175+ }
176+
166 Q_EMIT wideningAngleChanged(angle);
177 Q_EMIT wideningAngleChanged(angle);
167}
178}
168
179
@@ -170,6 +181,7 @@ void DirectionalDragArea::setDistanceThreshold(qreal value)
170{
181{
171 if (m_distanceThreshold != value) {
182 if (m_distanceThreshold != value) {
172 m_distanceThreshold = value;
183 m_distanceThreshold = value;
184+ m_distanceThresholdSquared = m_distanceThreshold * m_distanceThreshold;
173 Q_EMIT distanceThresholdChanged(value);
185 Q_EMIT distanceThresholdChanged(value);
174 }
186 }
175}
187}
@@ -237,13 +249,15 @@ qreal DirectionalDragArea::distance() const
237 }
249 }
238}
250}
239
251
252+void DirectionalDragArea::updateSceneDistance()
253+{
254+ QPointF totalMovement = m_previousScenePos - m_startScenePos;
255+ m_sceneDistance = projectOntoDirectionVector(totalMovement);
256+}
257+
240qreal DirectionalDragArea::sceneDistance() const
258qreal DirectionalDragArea::sceneDistance() const
241{
259{
242− if (Direction::isHorizontal(m_direction)) {
260+ return m_sceneDistance;
243− return m_previousScenePos.x() - m_startScenePos.x();
244− } else {
245− return m_previousScenePos.y() - m_startScenePos.y();
246− }
247}
261}
248
262
249qreal DirectionalDragArea::touchX() const
263qreal DirectionalDragArea::touchX() const
@@ -335,12 +349,13 @@ void DirectionalDragArea::touchEvent_absent(QTouchEvent *event)
335 m_startScenePos = newTouchPoint->scenePos();
349 m_startScenePos = newTouchPoint->scenePos();
336 m_touchId = newTouchPoint->id();
350 m_touchId = newTouchPoint->id();
337 m_dampedScenePos.reset(m_startScenePos);
351 m_dampedScenePos.reset(m_startScenePos);
338− updateVelocityCalculator(m_startScenePos);
352+ m_velocityCalculator->setTrackedPosition(0.);
339 m_velocityCalculator->reset();
353 m_velocityCalculator->reset();
340 m_numSamplesOnLastSpeedCheck = 0;
354 m_numSamplesOnLastSpeedCheck = 0;
341 m_silenceTime = 0;
355 m_silenceTime = 0;
342 setPreviousPos(m_startPos);
356 setPreviousPos(m_startPos);
343 setPreviousScenePos(m_startScenePos);
357 setPreviousScenePos(m_startScenePos);
358+ updateSceneDirectionVector();
344
359
345 setStatus(Undecided);
360 setStatus(Undecided);
346}
361}
@@ -441,44 +456,53 @@ const QTouchEvent::TouchPoint *DirectionalDragArea::fetchTargetTouchPoint(QTouch
441
456
442bool DirectionalDragArea::pointInsideAllowedArea() const
457bool DirectionalDragArea::pointInsideAllowedArea() const
443{
458{
444− qreal dX = m_dampedScenePos.x() - m_startScenePos.x();
459+ // NB: Using squared values to avoid computing the square root to find
445− qreal dY = m_dampedScenePos.y() - m_startScenePos.y();
460+ // the length totalMovement
446
461
447− switch (m_direction) {
462+ QPointF totalMovement(m_dampedScenePos.x() - m_startScenePos.x(),
448− case Direction::Upwards:
463+ m_dampedScenePos.y() - m_startScenePos.y());
449− return dY <= 0 && qFabs(dX) <= qFabs(dY) * m_wideningFactor;
464+
450− case Direction::Downwards:
465+ qreal squaredTotalMovSize = totalMovement.x() * totalMovement.x() +
451− return dY >= 0 && qFabs(dX) <= dY * m_wideningFactor;
466+ totalMovement.y() * totalMovement.y();
452− case Direction::Leftwards:
467+
453− return dX <= 0 && qFabs(dY) <= qFabs(dX) * m_wideningFactor;
468+ if (squaredTotalMovSize == 0.) {
454− default: // Direction::Rightwards:
469+ // didn't move
455− return dX >= 0 && qFabs(dY) <= dX * m_wideningFactor;
470+ return true;
456 }
471 }
472+
473+ qreal projectedMovement = projectOntoDirectionVector(totalMovement);
474+
475+
476+ qreal cosineAngleSquared = (projectedMovement * projectedMovement) / squaredTotalMovSize;
477+
478+ // Same as:
479+ // angle_between_movement_vector_and_gesture_direction_vector <= widening_angle
480+ return cosineAngleSquared >= m_wideningFactor;
457}
481}
458
482
459bool DirectionalDragArea::movingInRightDirection() const
483bool DirectionalDragArea::movingInRightDirection() const
460{
484{
461− switch (m_direction) {
462− case Direction::Upwards:
463− return m_dampedScenePos.y() <= m_previousDampedScenePos.y();
485+ QPointF movementVector(m_dampedScenePos.x() - m_previousDampedScenePos.x(),
464− case Direction::Downwards:
465− return m_dampedScenePos.y() >= m_previousDampedScenePos.y();
486+ m_dampedScenePos.y() - m_previousDampedScenePos.y());
466− case Direction::Leftwards:
487+
467− return m_dampedScenePos.x() <= m_previousDampedScenePos.x();
488+ qreal scalarProjection = projectOntoDirectionVector(movementVector);
468− default: // Direction::Rightwards:
489+
469− return m_dampedScenePos.x() >= m_previousDampedScenePos.x();
490+ return scalarProjection >= 0.;
470− }
471}
491}
472
492
473bool DirectionalDragArea::movedFarEnough(const QPointF &point) const
493bool DirectionalDragArea::movedFarEnough(const QPointF &point) const
474{
494{
475− if (m_distanceThreshold > 0) {
495+ if (m_distanceThreshold <= 0.) {
476− if (Direction::isHorizontal(m_direction))
496+ // distance threshold check is disabled
477− return qFabs(point.x() - m_startScenePos.x()) > m_distanceThreshold;
478− else
479− return qFabs(point.y() - m_startScenePos.y()) > m_distanceThreshold;
480− } else {
481 return true;
497 return true;
498+ } else {
499+ QPointF totalMovement(point.x() - m_startScenePos.x(),
500+ point.y() - m_startScenePos.y());
501+
502+ qreal squaredTotalMovSize = totalMovement.x() * totalMovement.x() +
503+ totalMovement.y() * totalMovement.y();
504+
505+ return squaredTotalMovSize > m_distanceThresholdSquared;
482 }
506 }
483}
507}
484
508
@@ -507,6 +531,13 @@ void DirectionalDragArea::checkSpeed()
507 m_numSamplesOnLastSpeedCheck = m_velocityCalculator->numSamples();
531 m_numSamplesOnLastSpeedCheck = m_velocityCalculator->numSamples();
508}
532}
509
533
534+void DirectionalDragArea::onEnabledChanged()
535+{
536+ if (!isEnabled() && m_status != WaitingForTouch) {
537+ setStatus(WaitingForTouch);
538+ }
539+}
540+
510void DirectionalDragArea::setStatus(DirectionalDragArea::Status newStatus)
541void DirectionalDragArea::setStatus(DirectionalDragArea::Status newStatus)
511{
542{
512 if (newStatus == m_status)
543 if (newStatus == m_status)
@@ -568,28 +599,33 @@ void DirectionalDragArea::setPreviousScenePos(const QPointF &point)
568 bool xChanged = m_previousScenePos.x() != point.x();
599 bool xChanged = m_previousScenePos.x() != point.x();
569 bool yChanged = m_previousScenePos.y() != point.y();
600 bool yChanged = m_previousScenePos.y() != point.y();
570
601
602+ if (!xChanged && !yChanged)
603+ return;
604+
605+ qreal oldSceneDistance = sceneDistance();
571 m_previousScenePos = point;
606 m_previousScenePos = point;
607+ updateSceneDistance();
608+
609+ if (oldSceneDistance != sceneDistance()) {
610+ Q_EMIT sceneDistanceChanged(sceneDistance());
611+ }
572
612
573 if (xChanged) {
613 if (xChanged) {
574 Q_EMIT touchSceneXChanged(point.x());
614 Q_EMIT touchSceneXChanged(point.x());
575− if (Direction::isHorizontal(m_direction))
576− Q_EMIT sceneDistanceChanged(sceneDistance());
577 }
615 }
578
616
579 if (yChanged) {
617 if (yChanged) {
580 Q_EMIT touchSceneYChanged(point.y());
618 Q_EMIT touchSceneYChanged(point.y());
581− if (Direction::isVertical(m_direction))
582− Q_EMIT sceneDistanceChanged(sceneDistance());
583 }
619 }
584}
620}
585
621
586−void DirectionalDragArea::updateVelocityCalculator(const QPointF &point)
622+void DirectionalDragArea::updateVelocityCalculator(const QPointF &scenePos)
587{
623{
588− if (Direction::isHorizontal(m_direction)) {
624+ QPointF totalSceneMovement = scenePos - m_startScenePos;
589− m_velocityCalculator->setTrackedPosition(point.x());
625+
590− } else {
626+ qreal scalarProjection = projectOntoDirectionVector(totalSceneMovement);
627+
591− m_velocityCalculator->setTrackedPosition(point.y());
628+ m_velocityCalculator->setTrackedPosition(scalarProjection);
592− }
593}
629}
594
630
595bool DirectionalDragArea::isWithinTouchCompositionWindow()
631bool DirectionalDragArea::isWithinTouchCompositionWindow()
@@ -693,5 +729,39 @@ qint64 DirectionalDragArea::ActiveTouchesInfo::mostRecentStartTime()
693 return highestStartTime;
729 return highestStartTime;
694}
730}
695
731
732+void DirectionalDragArea::updateSceneDirectionVector()
733+{
734+ QPointF localOrigin(0., 0.);
735+ QPointF localDirection;
736+ switch (m_direction) {
737+ case Direction::Upwards:
738+ localDirection.rx() = 0.;
739+ localDirection.ry() = -1.;
740+ break;
741+ case Direction::Downwards:
742+ localDirection.rx() = 0.;
743+ localDirection.ry() = 1;
744+ break;
745+ case Direction::Leftwards:
746+ localDirection.rx() = -1.;
747+ localDirection.ry() = 0.;
748+ break;
749+ default: // Direction::Rightwards:
750+ localDirection.rx() = 1.;
751+ localDirection.ry() = 0.;
752+ break;
753+ }
754+ QPointF sceneOrigin = mapToScene(localOrigin);
755+ QPointF sceneDirection = mapToScene(localDirection);
756+ m_sceneDirectionVector = sceneDirection - sceneOrigin;
757+}
758+
759+qreal DirectionalDragArea::projectOntoDirectionVector(const QPointF &sceneVector) const
760+{
761+ // same as dot product as m_sceneDirectionVector is a unit vector
762+ return sceneVector.x() * m_sceneDirectionVector.x() +
763+ sceneVector.y() * m_sceneDirectionVector.y();
764+}
765+
696// Because we are defining a new QObject-based class (RecognitionTimer) here.
766// Because we are defining a new QObject-based class (RecognitionTimer) here.
697#include "DirectionalDragArea.moc"
767#include "DirectionalDragArea.moc"
plugins/Ubuntu/Gestures/DirectionalDragArea.h+12−1
@@ -160,6 +160,7 @@ public:
160
160
161 qreal distance() const;
161 qreal distance() const;
162 qreal sceneDistance() const;
162 qreal sceneDistance() const;
163+ void updateSceneDistance();
163
164
164 qreal touchX() const;
165 qreal touchX() const;
165 qreal touchY() const;
166 qreal touchY() const;
@@ -217,6 +218,7 @@ protected:
217
218
218private Q_SLOTS:
219private Q_SLOTS:
219 void checkSpeed();
220 void checkSpeed();
221+ void onEnabledChanged();
220
222
221private:
223private:
222 void touchEvent_absent(QTouchEvent *event);
224 void touchEvent_absent(QTouchEvent *event);
@@ -231,6 +233,10 @@ private:
231 void setPreviousScenePos(const QPointF &point);
233 void setPreviousScenePos(const QPointF &point);
232 void updateVelocityCalculator(const QPointF &point);
234 void updateVelocityCalculator(const QPointF &point);
233 bool isWithinTouchCompositionWindow();
235 bool isWithinTouchCompositionWindow();
236+ void updateSceneDirectionVector();
237+ // returns the scalar projection between the given vector (in scene coordinates)
238+ // and m_sceneDirectionVector
239+ qreal projectOntoDirectionVector(const QPointF &sceneVector) const;
234
240
235 Status m_status;
241 Status m_status;
236
242
@@ -238,6 +244,7 @@ private:
238 QPointF m_startScenePos;
244 QPointF m_startScenePos;
239 QPointF m_previousPos;
245 QPointF m_previousPos;
240 QPointF m_previousScenePos;
246 QPointF m_previousScenePos;
247+ qreal m_sceneDistance;
241 int m_touchId;
248 int m_touchId;
242
249
243 // A movement damper is used in some of the gesture recognition calculations
250 // A movement damper is used in some of the gesture recognition calculations
@@ -245,10 +252,14 @@ private:
245 DampedPointF m_dampedScenePos;
252 DampedPointF m_dampedScenePos;
246 QPointF m_previousDampedScenePos;
253 QPointF m_previousDampedScenePos;
247
254
255+ // Unit vector in scene coordinates describing the direction of the gesture recognition
256+ QPointF m_sceneDirectionVector;
257+
248 Direction::Type m_direction;
258 Direction::Type m_direction;
249 qreal m_wideningAngle; // in degrees
259 qreal m_wideningAngle; // in degrees
250− qreal m_wideningFactor; // it's tan(degreesToRadian(m_wideningAngle))
260+ qreal m_wideningFactor; // it's pow(cosine(m_wideningAngle), 2)
251 qreal m_distanceThreshold;
261 qreal m_distanceThreshold;
262+ qreal m_distanceThresholdSquared; // it's pow(m_distanceThreshold, 2)
252 qreal m_minSpeed;
263 qreal m_minSpeed;
253 int m_maxSilenceTime; // in milliseconds
264 int m_maxSilenceTime; // in milliseconds
254 int m_silenceTime; // in milliseconds
265 int m_silenceTime; // in milliseconds
plugins/Unity/Indicators/qml/MenuItemFactory.qml+1
@@ -22,6 +22,7 @@ import Ubuntu.Settings.Menus 0.1 as Menus
22import QMenuModel 0.1 as QMenuModel
22import QMenuModel 0.1 as QMenuModel
23import Utils 0.1 as Utils
23import Utils 0.1 as Utils
24import Ubuntu.Components.ListItems 0.1 as ListItems
24import Ubuntu.Components.ListItems 0.1 as ListItems
25+import Ubuntu.Components 0.1
25
26
26Item {
27Item {
27 id: menuFactory
28 id: menuFactory
plugins/Utils/CMakeLists.txt+1−1
@@ -33,7 +33,7 @@ target_link_libraries(Utils-qml ${GIO_LDFLAGS})
33# files directly in targets.
33# files directly in targets.
34set_target_properties(Utils-qml PROPERTIES COMPILE_FLAGS -fvisibility=default)
34set_target_properties(Utils-qml PROPERTIES COMPILE_FLAGS -fvisibility=default)
35
35
36−qt5_use_modules(Utils-qml Qml Quick DBus Network XmlPatterns)
36+qt5_use_modules(Utils-qml Qml Quick DBus Network XmlPatterns Concurrent)
37
37
38# export the qmldir qmltypes and plugin files
38# export the qmldir qmltypes and plugin files
39export_qmlfiles(Utils Utils)
39export_qmlfiles(Utils Utils)
plugins/Utils/albumartprovider.cpp+23−21
@@ -33,12 +33,27 @@
33#include <QImage>
33#include <QImage>
34#include <QUrl>
34#include <QUrl>
35#include <QUrlQuery>
35#include <QUrlQuery>
36+#include <QtConcurrent>
36
37
37using namespace std;
38using namespace std;
38
39
39const std::string AlbumArtProvider::DEFAULT_ALBUM_ART = "/usr/share/unity/icons/album_missing.png";
40const std::string AlbumArtProvider::DEFAULT_ALBUM_ART = "/usr/share/unity/icons/album_missing.png";
40const std::string AlbumArtProvider::UNITY_LENS_SCHEMA = "com.canonical.Unity.Lenses";
41const std::string AlbumArtProvider::UNITY_LENS_SCHEMA = "com.canonical.Unity.Lenses";
41
42
43+static QByteArray download(QString url) {
44+ QScopedPointer<QNetworkAccessManager> am(new QNetworkAccessManager);
45+ QNetworkReply *reply = am->get(QNetworkRequest(QUrl(url)));
46+ QEventLoop loop;
47+ QObject::connect(am.data(), &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);
48+ loop.exec();
49+
50+ if (reply->error() != QNetworkReply::NoError) {
51+ qWarning() << "Error downloading from the network:" << reply->errorString();
52+ return QByteArray();
53+ }
54+ return reply->readAll();
55+}
56+
42AlbumArtProvider::AlbumArtProvider()
57AlbumArtProvider::AlbumArtProvider()
43 : QQuickImageProvider(QQmlImageProviderBase::Image, QQmlImageProviderBase::ForceAsynchronousImageLoading),
58 : QQuickImageProvider(QQmlImageProviderBase::Image, QQmlImageProviderBase::ForceAsynchronousImageLoading),
44 m_settings(nullptr)
59 m_settings(nullptr)
@@ -76,20 +91,14 @@ std::string AlbumArtProvider::get_lastfm_url(const albuminfo &ai) {
76 QString request = QString("http://ws.audioscrobbler.com/1.0/album/%1/%2/info.xml").arg(artist)
91 QString request = QString("http://ws.audioscrobbler.com/1.0/album/%1/%2/info.xml").arg(artist)
77 .arg(album)
92 .arg(album)
78 .toHtmlEscaped();
93 .toHtmlEscaped();
79− QScopedPointer<QNetworkAccessManager> am(new QNetworkAccessManager);
94+ QFuture<QByteArray> future = QtConcurrent::run(download, request);
80− QNetworkReply *reply = am->get(QNetworkRequest(QUrl(request)));
95+ QByteArray arr = future.result();
81− QEventLoop loop;
96+ if(arr.size() == 0) {
82− QObject::connect(am.data(), &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);
83− loop.exec();
84−
85− if (reply->error() != QNetworkReply::NoError) {
86− qWarning() << "Error getting the XML:" << reply->errorString();
87 return "";
97 return "";
88 }
98 }
89−
90 QXmlQuery query;
99 QXmlQuery query;
91 QBuffer tmp;
100 QBuffer tmp;
92− tmp.setData(reply->readAll());
101+ tmp.setData(arr);
93 tmp.open(QIODevice::ReadOnly);
102 tmp.open(QIODevice::ReadOnly);
94 query.bindVariable("reply", &tmp);
103 query.bindVariable("reply", &tmp);
95 query.setQuery("doc($reply)/album/coverart/large[1]/text()");
104 query.setQuery("doc($reply)/album/coverart/large[1]/text()");
@@ -109,24 +118,17 @@ std::string AlbumArtProvider::get_lastfm_url(const albuminfo &ai) {
109bool AlbumArtProvider::download_and_store(const std::string &image_url, const std::string &output_file) {
118bool AlbumArtProvider::download_and_store(const std::string &image_url, const std::string &output_file) {
110 QString url = QString::fromStdString(image_url);
119 QString url = QString::fromStdString(image_url);
111 QString fileName = QString::fromStdString(output_file);
120 QString fileName = QString::fromStdString(output_file);
112−
121+ QFuture<QByteArray> future = QtConcurrent::run(download, url);
113− QScopedPointer<QNetworkAccessManager> am(new QNetworkAccessManager);
122+ QByteArray arr = future.result();
114− QNetworkReply *reply = am->get(QNetworkRequest(QUrl(url)));
123+ if (arr.size() == 0) {
115− QEventLoop loop;
116− QObject::connect(am.data(), &QNetworkAccessManager::finished, &loop, &QEventLoop::quit);
117− loop.exec();
118−
119− if (reply->error() != QNetworkReply::NoError) {
120− qWarning() << "Error getting the image:" << reply->errorString();
121 return false;
124 return false;
122 }
125 }
123−
124 QFile file(fileName);
126 QFile file(fileName);
125 if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
127 if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
126 qWarning() << "Could not open file for writing:" << file.errorString();
128 qWarning() << "Could not open file for writing:" << file.errorString();
127 return false;
129 return false;
128 }
130 }
129− if (file.write(reply->readAll()) == -1){
131+ if (file.write(arr) == -1){
130 qWarning() << "Could not write the image:" << file.error();
132 qWarning() << "Could not write the image:" << file.error();
131 return false;
133 return false;
132 }
134 }
po/am.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr "መላኪያ"
120msgstr "መላኪያ"
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "አስተያየቶች:"
128msgstr "አስተያየቶች:"
po/ar.po+22−14
@@ -7,8 +7,8 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-02-16 09:56+0000\n"
11+"PO-Revision-Date: 2014-02-21 11:19+0000\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
12"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
13"Language-Team: Arabic <ar@li.org>\n"
13"Language-Team: Arabic <ar@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2014-02-17 06:07+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -77,19 +77,19 @@ msgstr ""
77"أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر على "
77"أنت الآن بارع في إيماءات الحواف ويمكنك البدء باستخدام هاتفك<br><br>انقر على "
78"الشاشة للبدء"
78"الشاشة للبدء"
79
79
80−#: qml/Components/PageHeader.qml:339
80+#: qml/Components/PageHeader.qml:340
81msgid "Recent searches"
81msgid "Recent searches"
82msgstr "عمليات البحث الأخيرة"
82msgstr "عمليات البحث الأخيرة"
83
83
84−#: qml/Components/SeeMore.qml:32
84+#: qml/Components/SeeMore.qml:35
85msgid "See more"
85msgid "See more"
86msgstr "شاهد المزيد"
86msgstr "شاهد المزيد"
87
87
88−#: qml/Components/SeeMore.qml:61
88+#: qml/Components/SeeMore.qml:57
89msgid "See less"
89msgid "See less"
90msgstr "شاهد أقل"
90msgstr "شاهد أقل"
91
91
92−#: qml/Dash/Apps/AppPreview.qml:136
92+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
93msgid "Rate this"
93msgid "Rate this"
94msgstr "قيّم ذلك"
94msgstr "قيّم ذلك"
95
95
@@ -111,18 +111,26 @@ msgstr[3] "%1 تعليقات"
111msgstr[4] "%1 تعليقا"
111msgstr[4] "%1 تعليقا"
112msgstr[5] "%1 تعليق"
112msgstr[5] "%1 تعليق"
113
113
114−#: qml/Dash/Previews/Reviews.qml:74
114+#: qml/Dash/Previews/PreviewActionCombo.qml:34
115+msgid "More..."
116+msgstr "المزيد..."
117+
118+#: qml/Dash/Previews/PreviewActionCombo.qml:34
119+msgid "Less..."
120+msgstr "أقل..."
121+
122+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115msgid "Add a review"
123msgid "Add a review"
116msgstr "أضف تعليق"
124msgstr "أضف تعليق"
117
125
126+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
127+msgid "Send"
128+msgstr "أرسل"
129+
118#: qml/Dash/Previews/Reviews.qml:86
130#: qml/Dash/Previews/Reviews.qml:86
119msgid "Review"
131msgid "Review"
120msgstr "التعليق"
132msgstr "التعليق"
121
133
122−#: qml/Dash/Previews/Reviews.qml:121
123−msgid "Send"
124−msgstr "أرسل"
125−
126#: qml/Dash/Previews/Reviews.qml:139
134#: qml/Dash/Previews/Reviews.qml:139
127msgid "Comments:"
135msgid "Comments:"
128msgstr "التعليقات:"
136msgstr "التعليقات:"
@@ -166,7 +174,7 @@ msgstr "عرض كلمة السر"
166
174
167#: qml/Notifications/NotificationMenuItemFactory.qml:103
175#: qml/Notifications/NotificationMenuItemFactory.qml:103
168msgid "Please enter SIM PIN"
176msgid "Please enter SIM PIN"
169−msgstr ""
177+msgstr "من فضلك أدخِل رقم التعريف الشخصي لبطاقة SIM"
170
178
171#: qml/Panel/SearchIndicator.qml:27
179#: qml/Panel/SearchIndicator.qml:27
172msgid "Search"
180msgid "Search"
po/ast.po+27−17
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2013-12-11 20:45+0000\n"
11+"PO-Revision-Date: 2014-03-01 16:51+0000\n"
12−"Last-Translator: ivarela <ivarela@ubuntu.com>\n"
12+"Last-Translator: Xuacu Saturio <xuacusk8@gmail.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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -74,20 +74,22 @@ msgid ""
74"You have now mastered the edge gestures and can start using the "
74"You have now mastered the edge gestures and can start using the "
75"phone<br><br>Tap on the screen to start"
75"phone<br><br>Tap on the screen to start"
76msgstr ""
76msgstr ""
77+"Agora domina los xestos de los bordes y pue principiar a usar el "
78+"teléfonu<br><br>Toque la pantalla pa comenzar"
77
79
78−#: qml/Components/PageHeader.qml:339
80+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
81msgid "Recent searches"
80msgstr "Busques recientes"
82msgstr "Busques recientes"
81
83
82−#: qml/Components/SeeMore.qml:32
84+#: qml/Components/SeeMore.qml:35
83msgid "See more"
85msgid "See more"
84−msgstr ""
86+msgstr "Ver más"
85
87
86−#: qml/Components/SeeMore.qml:61
88+#: qml/Components/SeeMore.qml:57
87msgid "See less"
89msgid "See less"
88−msgstr ""
90+msgstr "Ver menos"
89
91
90−#: qml/Dash/Apps/AppPreview.qml:136
92+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
93msgid "Rate this"
92msgstr "Valorar esto"
94msgstr "Valorar esto"
93
95
@@ -105,18 +107,26 @@ msgid_plural "%1 reviews"
105msgstr[0] "%1 reseña"
107msgstr[0] "%1 reseña"
106msgstr[1] "%1 reseñes"
108msgstr[1] "%1 reseñes"
107
109
108−#: qml/Dash/Previews/Reviews.qml:74
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "More..."
112+msgstr "Más…"
113+
114+#: qml/Dash/Previews/PreviewActionCombo.qml:34
115+msgid "Less..."
116+msgstr "Menos…"
117+
118+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
109msgid "Add a review"
119msgid "Add a review"
110msgstr "Amestar una reseña"
120msgstr "Amestar una reseña"
111
121
122+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
123+msgid "Send"
124+msgstr "Unviar"
125+
112#: qml/Dash/Previews/Reviews.qml:86
126#: qml/Dash/Previews/Reviews.qml:86
113msgid "Review"
127msgid "Review"
114msgstr "Revisar"
128msgstr "Revisar"
115
129
116−#: qml/Dash/Previews/Reviews.qml:121
117−msgid "Send"
118−msgstr "Unviar"
119−
120#: qml/Dash/Previews/Reviews.qml:139
130#: qml/Dash/Previews/Reviews.qml:139
121msgid "Comments:"
131msgid "Comments:"
122msgstr "Comentarios:"
132msgstr "Comentarios:"
@@ -160,7 +170,7 @@ msgstr "Amosar contraseña"
160
170
161#: qml/Notifications/NotificationMenuItemFactory.qml:103
171#: qml/Notifications/NotificationMenuItemFactory.qml:103
162msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
163−msgstr ""
173+msgstr "Escriba'l PIN de la SIM"
164
174
165#: qml/Panel/SearchIndicator.qml:27
175#: qml/Panel/SearchIndicator.qml:27
166msgid "Search"
176msgid "Search"
po/az.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -74,19 +74,19 @@ msgid ""
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/PageHeader.qml:339
77+#: qml/Components/PageHeader.qml:340
78msgid "Recent searches"
78msgid "Recent searches"
79msgstr "Son axtarışlar"
79msgstr "Son axtarışlar"
80
80
81−#: qml/Components/SeeMore.qml:32
81+#: qml/Components/SeeMore.qml:35
82msgid "See more"
82msgid "See more"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/SeeMore.qml:61
85+#: qml/Components/SeeMore.qml:57
86msgid "See less"
86msgid "See less"
87msgstr ""
87msgstr ""
88
88
89−#: qml/Dash/Apps/AppPreview.qml:136
89+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
90msgid "Rate this"
90msgid "Rate this"
91msgstr "Qiymət ver"
91msgstr "Qiymət ver"
92
92
@@ -104,18 +104,26 @@ msgid_plural "%1 reviews"
104msgstr[0] "%1 rəy"
104msgstr[0] "%1 rəy"
105msgstr[1] "%1 rəy"
105msgstr[1] "%1 rəy"
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108+msgid "More..."
109+msgstr ""
110+
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
108msgid "Add a review"
116msgid "Add a review"
109msgstr "Rəy yaz"
117msgstr "Rəy yaz"
110
118
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
120+msgid "Send"
121+msgstr "Göndər"
122+
111#: qml/Dash/Previews/Reviews.qml:86
123#: qml/Dash/Previews/Reviews.qml:86
112msgid "Review"
124msgid "Review"
113msgstr "Rəy"
125msgstr "Rəy"
114
126
115−#: qml/Dash/Previews/Reviews.qml:121
116−msgid "Send"
117−msgstr "Göndər"
118−
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
128msgid "Comments:"
121msgstr "Şərhlər:"
129msgstr "Şərhlər:"
po/bg.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-28 19:22+0000\n"
11"PO-Revision-Date: 2014-01-28 19:22+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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -80,19 +80,19 @@ msgid ""
80"phone<br><br>Tap on the screen to start"
80"phone<br><br>Tap on the screen to start"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:339
83+#: qml/Components/PageHeader.qml:340
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Последни търсения"
85msgstr "Последни търсения"
86
86
87−#: qml/Components/SeeMore.qml:32
87+#: qml/Components/SeeMore.qml:35
88msgid "See more"
88msgid "See more"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Components/SeeMore.qml:61
91+#: qml/Components/SeeMore.qml:57
92msgid "See less"
92msgid "See less"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Dash/Apps/AppPreview.qml:136
95+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
96msgid "Rate this"
96msgid "Rate this"
97msgstr "Оценете това"
97msgstr "Оценете това"
98
98
@@ -110,18 +110,26 @@ msgid_plural "%1 reviews"
110msgstr[0] "%1 отзив"
110msgstr[0] "%1 отзив"
111msgstr[1] "%1 отзива"
111msgstr[1] "%1 отзива"
112
112
113−#: qml/Dash/Previews/Reviews.qml:74
113+#: qml/Dash/Previews/PreviewActionCombo.qml:34
114+msgid "More..."
115+msgstr ""
116+
117+#: qml/Dash/Previews/PreviewActionCombo.qml:34
118+msgid "Less..."
119+msgstr ""
120+
121+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
114msgid "Add a review"
122msgid "Add a review"
115msgstr "Добави отзив"
123msgstr "Добави отзив"
116
124
125+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
126+msgid "Send"
127+msgstr "Изпрати"
128+
117#: qml/Dash/Previews/Reviews.qml:86
129#: qml/Dash/Previews/Reviews.qml:86
118msgid "Review"
130msgid "Review"
119msgstr "Отзив"
131msgstr "Отзив"
120
132
121−#: qml/Dash/Previews/Reviews.qml:121
122−msgid "Send"
123−msgstr "Изпрати"
124−
125#: qml/Dash/Previews/Reviews.qml:139
133#: qml/Dash/Previews/Reviews.qml:139
126msgid "Comments:"
134msgid "Comments:"
127msgstr "Коментари:"
135msgstr "Коментари:"
po/bs.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -74,19 +74,19 @@ msgid ""
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/PageHeader.qml:339
77+#: qml/Components/PageHeader.qml:340
78msgid "Recent searches"
78msgid "Recent searches"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/SeeMore.qml:32
81+#: qml/Components/SeeMore.qml:35
82msgid "See more"
82msgid "See more"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/SeeMore.qml:61
85+#: qml/Components/SeeMore.qml:57
86msgid "See less"
86msgid "See less"
87msgstr ""
87msgstr ""
88
88
89−#: qml/Dash/Apps/AppPreview.qml:136
89+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
90msgid "Rate this"
90msgid "Rate this"
91msgstr ""
91msgstr ""
92
92
@@ -104,18 +104,26 @@ msgid_plural "%1 reviews"
104msgstr[0] ""
104msgstr[0] ""
105msgstr[1] ""
105msgstr[1] ""
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108−msgid "Add a review"
108+msgid "More..."
109msgstr ""
109msgstr ""
110
110
111−#: qml/Dash/Previews/Reviews.qml:86
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112−msgid "Review"
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
116+msgid "Add a review"
113msgstr ""
117msgstr ""
114
118
115−#: qml/Dash/Previews/Reviews.qml:121
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
116msgid "Send"
120msgid "Send"
117msgstr ""
121msgstr ""
118
122
123+#: qml/Dash/Previews/Reviews.qml:86
124+msgid "Review"
125+msgstr ""
126+
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
128msgid "Comments:"
121msgstr ""
129msgstr ""
po/ca.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-10 07:45+0000\n"
11"PO-Revision-Date: 2014-01-10 07:45+0000\n"
12"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
12"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
13"Language-Team: Catalan <ca@li.org>\n"
13"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -79,19 +79,19 @@ msgid ""
79"phone<br><br>Tap on the screen to start"
79"phone<br><br>Tap on the screen to start"
80msgstr ""
80msgstr ""
81
81
82−#: qml/Components/PageHeader.qml:339
82+#: qml/Components/PageHeader.qml:340
83msgid "Recent searches"
83msgid "Recent searches"
84msgstr "Cerques recents"
84msgstr "Cerques recents"
85
85
86−#: qml/Components/SeeMore.qml:32
86+#: qml/Components/SeeMore.qml:35
87msgid "See more"
87msgid "See more"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Components/SeeMore.qml:61
90+#: qml/Components/SeeMore.qml:57
91msgid "See less"
91msgid "See less"
92msgstr ""
92msgstr ""
93
93
94−#: qml/Dash/Apps/AppPreview.qml:136
94+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
95msgid "Rate this"
95msgid "Rate this"
96msgstr ""
96msgstr ""
97
97
@@ -109,18 +109,26 @@ msgid_plural "%1 reviews"
109msgstr[0] "%1 ressenya"
109msgstr[0] "%1 ressenya"
110msgstr[1] "%1 ressenyes"
110msgstr[1] "%1 ressenyes"
111
111
112−#: qml/Dash/Previews/Reviews.qml:74
112+#: qml/Dash/Previews/PreviewActionCombo.qml:34
113+msgid "More..."
114+msgstr ""
115+
116+#: qml/Dash/Previews/PreviewActionCombo.qml:34
117+msgid "Less..."
118+msgstr ""
119+
120+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
113msgid "Add a review"
121msgid "Add a review"
114msgstr "Afegiu una ressenya"
122msgstr "Afegiu una ressenya"
115
123
124+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
125+msgid "Send"
126+msgstr "Envia"
127+
116#: qml/Dash/Previews/Reviews.qml:86
128#: qml/Dash/Previews/Reviews.qml:86
117msgid "Review"
129msgid "Review"
118msgstr "Ressenya"
130msgstr "Ressenya"
119
131
120−#: qml/Dash/Previews/Reviews.qml:121
121−msgid "Send"
122−msgstr "Envia"
123−
124#: qml/Dash/Previews/Reviews.qml:139
132#: qml/Dash/Previews/Reviews.qml:139
125msgid "Comments:"
133msgid "Comments:"
126msgstr "Comentaris:"
134msgstr "Comentaris:"
po/ckb.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "دوایین گەڕانەکان"
78msgstr "دوایین گەڕانەکان"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "پلە دابنی بۆی"
90msgstr "پلە دابنی بۆی"
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] "%1 پێداچوونەوە"
103msgstr[0] "%1 پێداچوونەوە"
104msgstr[1] "%1 پێداچوونەوەکان"
104msgstr[1] "%1 پێداچوونەوەکان"
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107+msgid "More..."
108+msgstr ""
109+
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
115msgid "Add a review"
108msgstr "پێداچوونەوە زۆر بکە"
116msgstr "پێداچوونەوە زۆر بکە"
109
117
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
119+msgid "Send"
120+msgstr "ناردن"
121+
110#: qml/Dash/Previews/Reviews.qml:86
122#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
123msgid "Review"
112msgstr "پێداچوونەوە"
124msgstr "پێداچوونەوە"
113
125
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "ناردن"
117−
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "لێدوانەکان:"
128msgstr "لێدوانەکان:"
po/cs.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Poslední vyhledávání"
78msgstr "Poslední vyhledávání"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "Ohodnoťte to"
90msgstr "Ohodnoťte to"
91
91
@@ -104,18 +104,26 @@ msgstr[0] "%1 recenze"
104msgstr[1] "%1 recenze"
104msgstr[1] "%1 recenze"
105msgstr[2] "%1 recenzí"
105msgstr[2] "%1 recenzí"
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108+msgid "More..."
109+msgstr ""
110+
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
108msgid "Add a review"
116msgid "Add a review"
109msgstr "Přidat recenzi"
117msgstr "Přidat recenzi"
110
118
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
120+msgid "Send"
121+msgstr "Odeslat"
122+
111#: qml/Dash/Previews/Reviews.qml:86
123#: qml/Dash/Previews/Reviews.qml:86
112msgid "Review"
124msgid "Review"
113msgstr "Recenze"
125msgstr "Recenze"
114
126
115−#: qml/Dash/Previews/Reviews.qml:121
116−msgid "Send"
117−msgstr "Odeslat"
118−
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
128msgid "Comments:"
121msgstr "Komentáře:"
129msgstr "Komentáře:"
po/da.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/de.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-15 11:01+0000\n"
11"PO-Revision-Date: 2014-01-15 11:01+0000\n"
12"Last-Translator: Dennis Baudys <Unknown>\n"
12"Last-Translator: Dennis Baudys <Unknown>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -75,19 +75,19 @@ msgid ""
75"phone<br><br>Tap on the screen to start"
75"phone<br><br>Tap on the screen to start"
76msgstr ""
76msgstr ""
77
77
78−#: qml/Components/PageHeader.qml:339
78+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
79msgid "Recent searches"
80msgstr "Letzte Suchbegriffe"
80msgstr "Letzte Suchbegriffe"
81
81
82−#: qml/Components/SeeMore.qml:32
82+#: qml/Components/SeeMore.qml:35
83msgid "See more"
83msgid "See more"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/SeeMore.qml:61
86+#: qml/Components/SeeMore.qml:57
87msgid "See less"
87msgid "See less"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Dash/Apps/AppPreview.qml:136
90+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
91msgid "Rate this"
92msgstr "Bewerten"
92msgstr "Bewerten"
93
93
@@ -105,18 +105,26 @@ msgid_plural "%1 reviews"
105msgstr[0] "%1 Bewertung"
105msgstr[0] "%1 Bewertung"
106msgstr[1] "%1 Bewertungen"
106msgstr[1] "%1 Bewertungen"
107
107
108−#: qml/Dash/Previews/Reviews.qml:74
108+#: qml/Dash/Previews/PreviewActionCombo.qml:34
109+msgid "More..."
110+msgstr ""
111+
112+#: qml/Dash/Previews/PreviewActionCombo.qml:34
113+msgid "Less..."
114+msgstr ""
115+
116+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
109msgid "Add a review"
117msgid "Add a review"
110msgstr "Bewertung hinzufügen"
118msgstr "Bewertung hinzufügen"
111
119
120+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
121+msgid "Send"
122+msgstr "Senden"
123+
112#: qml/Dash/Previews/Reviews.qml:86
124#: qml/Dash/Previews/Reviews.qml:86
113msgid "Review"
125msgid "Review"
114msgstr "Bewertung"
126msgstr "Bewertung"
115
127
116−#: qml/Dash/Previews/Reviews.qml:121
117−msgid "Send"
118−msgstr "Senden"
119−
120#: qml/Dash/Previews/Reviews.qml:139
128#: qml/Dash/Previews/Reviews.qml:139
121msgid "Comments:"
129msgid "Comments:"
122msgstr "Kommentare:"
130msgstr "Kommentare:"
po/el.po+28−18
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-01-15 16:34+0000\n"
11+"PO-Revision-Date: 2014-02-26 09:58+0000\n"
12−"Last-Translator: Filippos Kolyvas <Unknown>\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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -74,20 +74,22 @@ msgid ""
74"You have now mastered the edge gestures and can start using the "
74"You have now mastered the edge gestures and can start using the "
75"phone<br><br>Tap on the screen to start"
75"phone<br><br>Tap on the screen to start"
76msgstr ""
76msgstr ""
77+"Πλέον γνωρίζετε τις χειρονομίες από τα άκρα και μπορείτε να ξεκινήσετε να "
78+"χρησιμοποιείτε το τηλέφωνο<br><br>Αγγίξτε την οθόνη για να ξεκινήσετε"
77
79
78−#: qml/Components/PageHeader.qml:339
80+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
81msgid "Recent searches"
80msgstr "Πρόσφατες αναζητήσεις"
82msgstr "Πρόσφατες αναζητήσεις"
81
83
82−#: qml/Components/SeeMore.qml:32
84+#: qml/Components/SeeMore.qml:35
83msgid "See more"
85msgid "See more"
84−msgstr ""
86+msgstr "Περρισότερα"
85
87
86−#: qml/Components/SeeMore.qml:61
88+#: qml/Components/SeeMore.qml:57
87msgid "See less"
89msgid "See less"
88−msgstr ""
90+msgstr "Λιγότερα"
89
91
90−#: qml/Dash/Apps/AppPreview.qml:136
92+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
93msgid "Rate this"
92msgstr "Βαθμολογήστε το"
94msgstr "Βαθμολογήστε το"
93
95
@@ -105,18 +107,26 @@ msgid_plural "%1 reviews"
105msgstr[0] "%1 αξιολόγηση"
107msgstr[0] "%1 αξιολόγηση"
106msgstr[1] "%1 αξιολογήσεις"
108msgstr[1] "%1 αξιολογήσεις"
107
109
108−#: qml/Dash/Previews/Reviews.qml:74
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "More..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewActionCombo.qml:34
115+msgid "Less..."
116+msgstr ""
117+
118+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
109msgid "Add a review"
119msgid "Add a review"
110msgstr "Προσθέστε την αξιολόγησή σας"
120msgstr "Προσθέστε την αξιολόγησή σας"
111
121
122+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
123+msgid "Send"
124+msgstr "Αποστολή"
125+
112#: qml/Dash/Previews/Reviews.qml:86
126#: qml/Dash/Previews/Reviews.qml:86
113msgid "Review"
127msgid "Review"
114msgstr "Αξιολόγηση"
128msgstr "Αξιολόγηση"
115
129
116−#: qml/Dash/Previews/Reviews.qml:121
117−msgid "Send"
118−msgstr "Αποστολή"
119−
120#: qml/Dash/Previews/Reviews.qml:139
130#: qml/Dash/Previews/Reviews.qml:139
121msgid "Comments:"
131msgid "Comments:"
122msgstr "Σχόλια:"
132msgstr "Σχόλια:"
@@ -144,7 +154,7 @@ msgstr "Πληκτρολογήστε ή πείτε μια εντολή"
144
154
145#: qml/Hud/Hud.qml:84
155#: qml/Hud/Hud.qml:84
146msgid "Loading. Please Wait..."
156msgid "Loading. Please Wait..."
147−msgstr "Γίνεται φόρτωση, παρακαλώ περιμένετε..."
157+msgstr "Γίνεται φόρτωση. Παρακαλώ περιμένετε..."
148
158
149#: qml/Hud/Hud.qml:89
159#: qml/Hud/Hud.qml:89
150msgid "Speak Now..."
160msgid "Speak Now..."
@@ -160,7 +170,7 @@ msgstr "Εμφάνιση κωδικού"
160
170
161#: qml/Notifications/NotificationMenuItemFactory.qml:103
171#: qml/Notifications/NotificationMenuItemFactory.qml:103
162msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
163−msgstr ""
173+msgstr "Παρακαλώ εισάγετε το PIN της κάρτας SIM"
164
174
165#: qml/Panel/SearchIndicator.qml:27
175#: qml/Panel/SearchIndicator.qml:27
166msgid "Search"
176msgid "Search"
po/en_AU.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-09-28 07:46+0000\n"
11"PO-Revision-Date: 2013-09-28 07:46+0000\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Recent searches"
78msgstr "Recent searches"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "Rate this"
90msgstr "Rate this"
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] "%1 review"
103msgstr[0] "%1 review"
104msgstr[1] "%1 reviews"
104msgstr[1] "%1 reviews"
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107+msgid "More..."
108+msgstr ""
109+
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
115msgid "Add a review"
108msgstr "Add a review"
116msgstr "Add a review"
109
117
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
119+msgid "Send"
120+msgstr "Send"
121+
110#: qml/Dash/Previews/Reviews.qml:86
122#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
123msgid "Review"
112msgstr "Review"
124msgstr "Review"
113
125
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "Send"
117−
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "Comments:"
128msgstr "Comments:"
po/en_GB.po+27−17
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-01-14 20:46+0000\n"
11+"PO-Revision-Date: 2014-03-07 13:27+0000\n"
12−"Last-Translator: Dan Bishop <dan@danbishop.org>\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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -72,20 +72,22 @@ msgid ""
72"You have now mastered the edge gestures and can start using the "
72"You have now mastered the edge gestures and can start using the "
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75+"You have now mastered the edge gestures and can start using the "
76+"phone<br><br>Tap on the screen to start"
75
77
76−#: qml/Components/PageHeader.qml:339
78+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
79msgid "Recent searches"
78msgstr "Recent searches"
80msgstr "Recent searches"
79
81
80−#: qml/Components/SeeMore.qml:32
82+#: qml/Components/SeeMore.qml:35
81msgid "See more"
83msgid "See more"
82−msgstr ""
84+msgstr "See more"
83
85
84−#: qml/Components/SeeMore.qml:61
86+#: qml/Components/SeeMore.qml:57
85msgid "See less"
87msgid "See less"
86−msgstr ""
88+msgstr "See less"
87
89
88−#: qml/Dash/Apps/AppPreview.qml:136
90+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
91msgid "Rate this"
90msgstr "Rate this"
92msgstr "Rate this"
91
93
@@ -103,18 +105,26 @@ msgid_plural "%1 reviews"
103msgstr[0] "%1 review"
105msgstr[0] "%1 review"
104msgstr[1] "%1 reviews"
106msgstr[1] "%1 reviews"
105
107
106−#: qml/Dash/Previews/Reviews.qml:74
108+#: qml/Dash/Previews/PreviewActionCombo.qml:34
109+msgid "More..."
110+msgstr "More..."
111+
112+#: qml/Dash/Previews/PreviewActionCombo.qml:34
113+msgid "Less..."
114+msgstr "Less..."
115+
116+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
117msgid "Add a review"
108msgstr "Add a review"
118msgstr "Add a review"
109
119
120+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
121+msgid "Send"
122+msgstr "Send"
123+
110#: qml/Dash/Previews/Reviews.qml:86
124#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
125msgid "Review"
112msgstr "Review"
126msgstr "Review"
113
127
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "Send"
117−
118#: qml/Dash/Previews/Reviews.qml:139
128#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
129msgid "Comments:"
120msgstr "Comments:"
130msgstr "Comments:"
@@ -158,7 +168,7 @@ msgstr "Show password"
158
168
159#: qml/Notifications/NotificationMenuItemFactory.qml:103
169#: qml/Notifications/NotificationMenuItemFactory.qml:103
160msgid "Please enter SIM PIN"
170msgid "Please enter SIM PIN"
161−msgstr ""
171+msgstr "Please enter SIM PIN"
162
172
163#: qml/Panel/SearchIndicator.qml:27
173#: qml/Panel/SearchIndicator.qml:27
164msgid "Search"
174msgid "Search"
po/eo.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
13"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/es.po+27−17
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-01-15 18:49+0000\n"
11+"PO-Revision-Date: 2014-02-20 05:43+0000\n"
12−"Last-Translator: Paco Molinero <paco@byasl.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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -75,20 +75,22 @@ msgid ""
75"You have now mastered the edge gestures and can start using the "
75"You have now mastered the edge gestures and can start using the "
76"phone<br><br>Tap on the screen to start"
76"phone<br><br>Tap on the screen to start"
77msgstr ""
77msgstr ""
78+"Ahora domina los gestos de los bordes y puede usar el teléfono<br><br>Toque "
79+"la pantalla para comenzar"
78
80
79−#: qml/Components/PageHeader.qml:339
81+#: qml/Components/PageHeader.qml:340
80msgid "Recent searches"
82msgid "Recent searches"
81msgstr "Búsquedas recientes"
83msgstr "Búsquedas recientes"
82
84
83−#: qml/Components/SeeMore.qml:32
85+#: qml/Components/SeeMore.qml:35
84msgid "See more"
86msgid "See more"
85−msgstr ""
87+msgstr "Ver más"
86
88
87−#: qml/Components/SeeMore.qml:61
89+#: qml/Components/SeeMore.qml:57
88msgid "See less"
90msgid "See less"
89−msgstr ""
91+msgstr "Ver menos"
90
92
91−#: qml/Dash/Apps/AppPreview.qml:136
93+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
92msgid "Rate this"
94msgid "Rate this"
93msgstr "Valorar esto"
95msgstr "Valorar esto"
94
96
@@ -106,18 +108,26 @@ msgid_plural "%1 reviews"
106msgstr[0] "%1 reseña"
108msgstr[0] "%1 reseña"
107msgstr[1] "%1 reseñas"
109msgstr[1] "%1 reseñas"
108
110
109−#: qml/Dash/Previews/Reviews.qml:74
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "More..."
113+msgstr "Más…"
114+
115+#: qml/Dash/Previews/PreviewActionCombo.qml:34
116+msgid "Less..."
117+msgstr "Menos…"
118+
119+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
110msgid "Add a review"
120msgid "Add a review"
111msgstr "Añadir una reseña"
121msgstr "Añadir una reseña"
112
122
123+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
124+msgid "Send"
125+msgstr "Enviar"
126+
113#: qml/Dash/Previews/Reviews.qml:86
127#: qml/Dash/Previews/Reviews.qml:86
114msgid "Review"
128msgid "Review"
115msgstr "Reseñar"
129msgstr "Reseñar"
116
130
117−#: qml/Dash/Previews/Reviews.qml:121
118−msgid "Send"
119−msgstr "Enviar"
120−
121#: qml/Dash/Previews/Reviews.qml:139
131#: qml/Dash/Previews/Reviews.qml:139
122msgid "Comments:"
132msgid "Comments:"
123msgstr "Comentarios:"
133msgstr "Comentarios:"
@@ -161,7 +171,7 @@ msgstr "Mostrar contraseña"
161
171
162#: qml/Notifications/NotificationMenuItemFactory.qml:103
172#: qml/Notifications/NotificationMenuItemFactory.qml:103
163msgid "Please enter SIM PIN"
173msgid "Please enter SIM PIN"
164−msgstr ""
174+msgstr "Escriba el PIN de la SIM"
165
175
166#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
167msgid "Search"
177msgid "Search"
po/eu.po+47−37
@@ -7,25 +7,25 @@ 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-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-02-03 22:04+0000\n"
11+"PO-Revision-Date: 2014-03-17 20:56+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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
23msgid "Lock to Launcher"
23msgid "Lock to Launcher"
24−msgstr ""
24+msgstr "Lotu abiarazlera"
25
25
26#: plugins/Unity/Launcher/launcheritem.cpp:73
26#: plugins/Unity/Launcher/launcheritem.cpp:73
27msgid "Unlock from Launcher"
27msgid "Unlock from Launcher"
28−msgstr ""
28+msgstr "Askatu abiarazletik"
29
29
30#: qml/Components/EdgeDemoOverlay.qml:151
30#: qml/Components/EdgeDemoOverlay.qml:151
31msgid "Skip intro"
31msgid "Skip intro"
@@ -74,99 +74,109 @@ msgid ""
74"You have now mastered the edge gestures and can start using the "
74"You have now mastered the edge gestures and can start using the "
75"phone<br><br>Tap on the screen to start"
75"phone<br><br>Tap on the screen to start"
76msgstr ""
76msgstr ""
77+"Jadanik ezagutzen dituzu ertzetako keinuak, eta mugikorra erabiltzen has "
78+"zaitezke<br><br>Ukitu pantaila hasteko"
77
79
78−#: qml/Components/PageHeader.qml:339
80+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
81msgid "Recent searches"
80−msgstr ""
82+msgstr "Azken bilaketak"
81
83
82−#: qml/Components/SeeMore.qml:32
84+#: qml/Components/SeeMore.qml:35
83msgid "See more"
85msgid "See more"
84−msgstr ""
86+msgstr "Ikusi gehiago"
85
87
86−#: qml/Components/SeeMore.qml:61
88+#: qml/Components/SeeMore.qml:57
87msgid "See less"
89msgid "See less"
88−msgstr ""
90+msgstr "Ikusi gutxiago"
89
91
90−#: qml/Dash/Apps/AppPreview.qml:136
92+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
93msgid "Rate this"
92−msgstr ""
94+msgstr "Puntuatu hau"
93
95
94#. TRANSLATORS: Number of persons who rated this app/video/whatever
96#. TRANSLATORS: Number of persons who rated this app/video/whatever
95#: qml/Dash/Previews/Header.qml:93
97#: qml/Dash/Previews/Header.qml:93
96#, qt-format
98#, qt-format
97msgid "(%1)"
99msgid "(%1)"
98−msgstr ""
100+msgstr "(%1)"
99
101
100#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
102#. TRANSLATORS: Number of persons who wrote reviews for this app/video/whatever
101#: qml/Dash/Previews/Header.qml:105
103#: qml/Dash/Previews/Header.qml:105
102#, qt-format
104#, qt-format
103msgid "%1 review"
105msgid "%1 review"
104msgid_plural "%1 reviews"
106msgid_plural "%1 reviews"
105−msgstr[0] ""
107+msgstr[0] "kritika %1"
106−msgstr[1] ""
108+msgstr[1] "%1 kritika"
109+
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "More..."
112+msgstr "Gehiago..."
107
113
108−#: qml/Dash/Previews/Reviews.qml:74
114+#: qml/Dash/Previews/PreviewActionCombo.qml:34
115+msgid "Less..."
116+msgstr "Gutxiago..."
117+
118+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
109msgid "Add a review"
119msgid "Add a review"
110−msgstr ""
120+msgstr "Gehitu kritika"
121+
122+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
123+msgid "Send"
124+msgstr "Bidali"
111
125
112#: qml/Dash/Previews/Reviews.qml:86
126#: qml/Dash/Previews/Reviews.qml:86
113msgid "Review"
127msgid "Review"
114−msgstr ""
128+msgstr "Egin kritika"
115−
116−#: qml/Dash/Previews/Reviews.qml:121
117−msgid "Send"
118−msgstr ""
119
129
120#: qml/Dash/Previews/Reviews.qml:139
130#: qml/Dash/Previews/Reviews.qml:139
121msgid "Comments:"
131msgid "Comments:"
122−msgstr ""
132+msgstr "Iruzkinak:"
123
133
124#: qml/Greeter/Lockscreen.qml:149
134#: qml/Greeter/Lockscreen.qml:149
125msgid "Emergency Call"
135msgid "Emergency Call"
126−msgstr ""
136+msgstr "Larrialdi-deia"
127
137
128#: qml/Greeter/PassphraseLockscreen.qml:59
138#: qml/Greeter/PassphraseLockscreen.qml:59
129#, qt-format
139#, qt-format
130msgid "Hello %1"
140msgid "Hello %1"
131−msgstr ""
141+msgstr "Kaixo %1"
132
142
133#: qml/Greeter/PassphraseLockscreen.qml:59
143#: qml/Greeter/PassphraseLockscreen.qml:59
134msgid "Hello"
144msgid "Hello"
135−msgstr ""
145+msgstr "Kaixo"
136
146
137#: qml/Hud/HudParametrizedActionsPage.qml:132
147#: qml/Hud/HudParametrizedActionsPage.qml:132
138msgid "Confirm"
148msgid "Confirm"
139−msgstr ""
149+msgstr "Baieztatu"
140
150
141#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
151#: qml/Hud/Hud.qml:61 qml/Hud/Hud.qml:99 qml/Hud/Hud.qml:372
142msgid "Type or say a command"
152msgid "Type or say a command"
143−msgstr ""
153+msgstr "Idatzi edo esan agindu bat"
144
154
145#: qml/Hud/Hud.qml:84
155#: qml/Hud/Hud.qml:84
146msgid "Loading. Please Wait..."
156msgid "Loading. Please Wait..."
147−msgstr ""
157+msgstr "Kargatzen. Itxaron, mesedez..."
148
158
149#: qml/Hud/Hud.qml:89
159#: qml/Hud/Hud.qml:89
150msgid "Speak Now..."
160msgid "Speak Now..."
151−msgstr ""
161+msgstr "Hitz egin orain..."
152
162
153#: qml/Hud/Hud.qml:94
163#: qml/Hud/Hud.qml:94
154msgid "Speaking..."
164msgid "Speaking..."
155−msgstr ""
165+msgstr "Hitz egiten..."
156
166
157#: qml/Notifications/NotificationMenuItemFactory.qml:91
167#: qml/Notifications/NotificationMenuItemFactory.qml:91
158msgid "Show password"
168msgid "Show password"
159−msgstr ""
169+msgstr "Erakutsi pasahitza"
160
170
161#: qml/Notifications/NotificationMenuItemFactory.qml:103
171#: qml/Notifications/NotificationMenuItemFactory.qml:103
162msgid "Please enter SIM PIN"
172msgid "Please enter SIM PIN"
163−msgstr ""
173+msgstr "Sartu SIMaren PINa"
164
174
165#: qml/Panel/SearchIndicator.qml:27
175#: qml/Panel/SearchIndicator.qml:27
166msgid "Search"
176msgid "Search"
167−msgstr ""
177+msgstr "Bilatu"
168
178
169#: qml/Shell.qml:440
179#: qml/Shell.qml:440
170#, qt-format
180#, qt-format
171msgid "Please enter %1"
181msgid "Please enter %1"
172−msgstr ""
182+msgstr "Sartu %1"
po/fa.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-10-31 19:02+0000\n"
11"PO-Revision-Date: 2013-10-31 19:02+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Persian <fa@li.org>\n"
13"Language-Team: Persian <fa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/fi.po+25−15
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-02-14 13:28+0000\n"
11+"PO-Revision-Date: 2014-03-09 19:22+0000\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
12"Last-Translator: Jiri Grönroos <Unknown>\n"
13"Language-Team: Finnish <fi@li.org>\n"
13"Language-Team: Finnish <fi@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-15 07:45+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -72,20 +72,22 @@ msgid ""
72"You have now mastered the edge gestures and can start using the "
72"You have now mastered the edge gestures and can start using the "
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75+"Hallitset nyt reunaeleet, joten voit aloittaa puhelimen "
76+"käytön<br><br>Napauta näyttöä aloittaaksesi"
75
77
76−#: qml/Components/PageHeader.qml:339
78+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
79msgid "Recent searches"
78msgstr "Viimeisimmät haut"
80msgstr "Viimeisimmät haut"
79
81
80−#: qml/Components/SeeMore.qml:32
82+#: qml/Components/SeeMore.qml:35
81msgid "See more"
83msgid "See more"
82−msgstr ""
84+msgstr "Näytä lisää"
83
85
84−#: qml/Components/SeeMore.qml:61
86+#: qml/Components/SeeMore.qml:57
85msgid "See less"
87msgid "See less"
86−msgstr ""
88+msgstr "Näytä vähemmän"
87
89
88−#: qml/Dash/Apps/AppPreview.qml:136
90+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
91msgid "Rate this"
90msgstr "Arvioi tämä"
92msgstr "Arvioi tämä"
91
93
@@ -103,18 +105,26 @@ msgid_plural "%1 reviews"
103msgstr[0] "%1 arvostelu"
105msgstr[0] "%1 arvostelu"
104msgstr[1] "%1 arvostelua"
106msgstr[1] "%1 arvostelua"
105
107
106−#: qml/Dash/Previews/Reviews.qml:74
108+#: qml/Dash/Previews/PreviewActionCombo.qml:34
109+msgid "More..."
110+msgstr "Lisää..."
111+
112+#: qml/Dash/Previews/PreviewActionCombo.qml:34
113+msgid "Less..."
114+msgstr "Vähemmän..."
115+
116+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
117msgid "Add a review"
108msgstr "Lisää arvostelu"
118msgstr "Lisää arvostelu"
109
119
120+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
121+msgid "Send"
122+msgstr "Lähetä"
123+
110#: qml/Dash/Previews/Reviews.qml:86
124#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
125msgid "Review"
112msgstr "Arvostelu"
126msgstr "Arvostelu"
113
127
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "Lähetä"
117−
118#: qml/Dash/Previews/Reviews.qml:139
128#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
129msgid "Comments:"
120msgstr "Kommentit:"
130msgstr "Kommentit:"
po/fo.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/fr.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-28 00:34+0000\n"
11"PO-Revision-Date: 2014-01-28 00:34+0000\n"
12"Last-Translator: Pierre <Unknown>\n"
12"Last-Translator: Pierre <Unknown>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Recherches récentes"
78msgstr "Recherches récentes"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "Evaluez ceci"
90msgstr "Evaluez ceci"
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] "%1 avis"
103msgstr[0] "%1 avis"
104msgstr[1] "%1 avis"
104msgstr[1] "%1 avis"
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107+msgid "More..."
108+msgstr ""
109+
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
115msgid "Add a review"
108msgstr "Ajouter un avis"
116msgstr "Ajouter un avis"
109
117
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
119+msgid "Send"
120+msgstr "Envoyer"
121+
110#: qml/Dash/Previews/Reviews.qml:86
122#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
123msgid "Review"
112msgstr "Avis"
124msgstr "Avis"
113
125
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "Envoyer"
117−
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "Commentaires :"
128msgstr "Commentaires :"
po/gd.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-09-30 10:34+0000\n"
11"PO-Revision-Date: 2013-09-30 10:34+0000\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
12"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
13"Language-Team: Gaelic; Scottish <gd@li.org>\n"
13"Language-Team: Gaelic; Scottish <gd@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
17"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
18"(n > 2 && n < 20) ? 2 : 3;\n"
18"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -80,19 +80,19 @@ msgid ""
80"phone<br><br>Tap on the screen to start"
80"phone<br><br>Tap on the screen to start"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/PageHeader.qml:339
83+#: qml/Components/PageHeader.qml:340
84msgid "Recent searches"
84msgid "Recent searches"
85msgstr "Na lorg thu o chionn goirid"
85msgstr "Na lorg thu o chionn goirid"
86
86
87−#: qml/Components/SeeMore.qml:32
87+#: qml/Components/SeeMore.qml:35
88msgid "See more"
88msgid "See more"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Components/SeeMore.qml:61
91+#: qml/Components/SeeMore.qml:57
92msgid "See less"
92msgid "See less"
93msgstr ""
93msgstr ""
94
94
95−#: qml/Dash/Apps/AppPreview.qml:136
95+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
96msgid "Rate this"
96msgid "Rate this"
97msgstr "Rangaich seo"
97msgstr "Rangaich seo"
98
98
@@ -112,18 +112,26 @@ msgstr[1] "%1 lèirmheas"
112msgstr[2] "%1 lèirmheasan"
112msgstr[2] "%1 lèirmheasan"
113msgstr[3] "%1 lèirmheas"
113msgstr[3] "%1 lèirmheas"
114
114
115−#: qml/Dash/Previews/Reviews.qml:74
115+#: qml/Dash/Previews/PreviewActionCombo.qml:34
116+msgid "More..."
117+msgstr ""
118+
119+#: qml/Dash/Previews/PreviewActionCombo.qml:34
120+msgid "Less..."
121+msgstr ""
122+
123+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
116msgid "Add a review"
124msgid "Add a review"
117msgstr "Cuir lèirmheas ris"
125msgstr "Cuir lèirmheas ris"
118
126
127+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
128+msgid "Send"
129+msgstr "Cuir"
130+
119#: qml/Dash/Previews/Reviews.qml:86
131#: qml/Dash/Previews/Reviews.qml:86
120msgid "Review"
132msgid "Review"
121msgstr "Lèirmheas"
133msgstr "Lèirmheas"
122
134
123−#: qml/Dash/Previews/Reviews.qml:121
124−msgid "Send"
125−msgstr "Cuir"
126−
127#: qml/Dash/Previews/Reviews.qml:139
135#: qml/Dash/Previews/Reviews.qml:139
128msgid "Comments:"
136msgid "Comments:"
129msgstr "Beachdan"
137msgstr "Beachdan"
po/gl.po+21−13
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-02-15 04:00+0000\n"
11+"PO-Revision-Date: 2014-03-08 06:58+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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-16 06:47+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -75,19 +75,19 @@ msgstr ""
75"Agora xa domina os xestos do bordo e pode comezar a usar o "
75"Agora xa domina os xestos do bordo e pode comezar a usar o "
76"teléfono<br><br>Toque na pantalla para comezar"
76"teléfono<br><br>Toque na pantalla para comezar"
77
77
78−#: qml/Components/PageHeader.qml:339
78+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
79msgid "Recent searches"
80msgstr "Buscas recentes"
80msgstr "Buscas recentes"
81
81
82−#: qml/Components/SeeMore.qml:32
82+#: qml/Components/SeeMore.qml:35
83msgid "See more"
83msgid "See more"
84msgstr "Ver máis"
84msgstr "Ver máis"
85
85
86−#: qml/Components/SeeMore.qml:61
86+#: qml/Components/SeeMore.qml:57
87msgid "See less"
87msgid "See less"
88msgstr "Ver menos"
88msgstr "Ver menos"
89
89
90−#: qml/Dash/Apps/AppPreview.qml:136
90+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
91msgid "Rate this"
92msgstr "Valore isto"
92msgstr "Valore isto"
93
93
@@ -105,18 +105,26 @@ msgid_plural "%1 reviews"
105msgstr[0] "%1 opinión"
105msgstr[0] "%1 opinión"
106msgstr[1] "%1 opinións"
106msgstr[1] "%1 opinións"
107
107
108−#: qml/Dash/Previews/Reviews.qml:74
108+#: qml/Dash/Previews/PreviewActionCombo.qml:34
109+msgid "More..."
110+msgstr "Máis…"
111+
112+#: qml/Dash/Previews/PreviewActionCombo.qml:34
113+msgid "Less..."
114+msgstr "Menos..."
115+
116+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
109msgid "Add a review"
117msgid "Add a review"
110msgstr "Engadir unha opinión"
118msgstr "Engadir unha opinión"
111
119
120+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
121+msgid "Send"
122+msgstr "Enviar"
123+
112#: qml/Dash/Previews/Reviews.qml:86
124#: qml/Dash/Previews/Reviews.qml:86
113msgid "Review"
125msgid "Review"
114msgstr "Opinión"
126msgstr "Opinión"
115
127
116−#: qml/Dash/Previews/Reviews.qml:121
117−msgid "Send"
118−msgstr "Enviar"
119−
120#: qml/Dash/Previews/Reviews.qml:139
128#: qml/Dash/Previews/Reviews.qml:139
121msgid "Comments:"
129msgid "Comments:"
122msgstr "Comentarios:"
130msgstr "Comentarios:"
po/he.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-11-20 08:30+0000\n"
11"PO-Revision-Date: 2013-11-20 08:30+0000\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
12"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
13"Language-Team: Hebrew <he@li.org>\n"
13"Language-Team: Hebrew <he@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "חיפושים אחרונים"
78msgstr "חיפושים אחרונים"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "דירוג היישום"
90msgstr "דירוג היישום"
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] "סקירה %1"
103msgstr[0] "סקירה %1"
104msgstr[1] "%1 סקירות"
104msgstr[1] "%1 סקירות"
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107+msgid "More..."
108+msgstr ""
109+
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
115msgid "Add a review"
108msgstr "הוספת סקירה"
116msgstr "הוספת סקירה"
109
117
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
119+msgid "Send"
120+msgstr "שליחה"
121+
110#: qml/Dash/Previews/Reviews.qml:86
122#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
123msgid "Review"
112msgstr "סקירה"
124msgstr "סקירה"
113
125
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "שליחה"
117−
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "הערות:"
128msgstr "הערות:"
po/hi.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "पिछले खोजों"
78msgstr "पिछले खोजों"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107+msgid "More..."
108+msgstr ""
109+
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
115msgid "Add a review"
108msgstr "समीक्षा दे"
116msgstr "समीक्षा दे"
109
117
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
119+msgid "Send"
120+msgstr "भेजें"
121+
110#: qml/Dash/Previews/Reviews.qml:86
122#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
123msgid "Review"
112msgstr "समीक्षा"
124msgstr "समीक्षा"
113
125
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "भेजें"
117−
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/hr.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
11"PO-Revision-Date: 2013-06-27 04:14+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Croatian <hr@li.org>\n"
13"Language-Team: Croatian <hr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -74,19 +74,19 @@ msgid ""
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/PageHeader.qml:339
77+#: qml/Components/PageHeader.qml:340
78msgid "Recent searches"
78msgid "Recent searches"
79msgstr "Nedavne pretrage"
79msgstr "Nedavne pretrage"
80
80
81−#: qml/Components/SeeMore.qml:32
81+#: qml/Components/SeeMore.qml:35
82msgid "See more"
82msgid "See more"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/SeeMore.qml:61
85+#: qml/Components/SeeMore.qml:57
86msgid "See less"
86msgid "See less"
87msgstr ""
87msgstr ""
88
88
89−#: qml/Dash/Apps/AppPreview.qml:136
89+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
90msgid "Rate this"
90msgid "Rate this"
91msgstr ""
91msgstr ""
92
92
@@ -104,18 +104,26 @@ msgid_plural "%1 reviews"
104msgstr[0] ""
104msgstr[0] ""
105msgstr[1] ""
105msgstr[1] ""
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108−msgid "Add a review"
108+msgid "More..."
109msgstr ""
109msgstr ""
110
110
111−#: qml/Dash/Previews/Reviews.qml:86
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112−msgid "Review"
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
116+msgid "Add a review"
113msgstr ""
117msgstr ""
114
118
115−#: qml/Dash/Previews/Reviews.qml:121
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
116msgid "Send"
120msgid "Send"
117msgstr ""
121msgstr ""
118
122
123+#: qml/Dash/Previews/Reviews.qml:86
124+msgid "Review"
125+msgstr ""
126+
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
128msgid "Comments:"
121msgstr ""
129msgstr ""
po/hu.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -75,19 +75,19 @@ msgid ""
75"phone<br><br>Tap on the screen to start"
75"phone<br><br>Tap on the screen to start"
76msgstr ""
76msgstr ""
77
77
78−#: qml/Components/PageHeader.qml:339
78+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
79msgid "Recent searches"
80msgstr "Legutóbbi keresések"
80msgstr "Legutóbbi keresések"
81
81
82−#: qml/Components/SeeMore.qml:32
82+#: qml/Components/SeeMore.qml:35
83msgid "See more"
83msgid "See more"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/SeeMore.qml:61
86+#: qml/Components/SeeMore.qml:57
87msgid "See less"
87msgid "See less"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Dash/Apps/AppPreview.qml:136
90+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
91msgid "Rate this"
92msgstr "Osztályzás"
92msgstr "Osztályzás"
93
93
@@ -105,18 +105,26 @@ msgid_plural "%1 reviews"
105msgstr[0] "%1 értékelés"
105msgstr[0] "%1 értékelés"
106msgstr[1] "%1 értékelés"
106msgstr[1] "%1 értékelés"
107
107
108−#: qml/Dash/Previews/Reviews.qml:74
108+#: qml/Dash/Previews/PreviewActionCombo.qml:34
109+msgid "More..."
110+msgstr ""
111+
112+#: qml/Dash/Previews/PreviewActionCombo.qml:34
113+msgid "Less..."
114+msgstr ""
115+
116+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
109msgid "Add a review"
117msgid "Add a review"
110msgstr "Értékelés hozzáadása"
118msgstr "Értékelés hozzáadása"
111
119
120+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
121+msgid "Send"
122+msgstr "Küldés"
123+
112#: qml/Dash/Previews/Reviews.qml:86
124#: qml/Dash/Previews/Reviews.qml:86
113msgid "Review"
125msgid "Review"
114msgstr "Értékelés"
126msgstr "Értékelés"
115
127
116−#: qml/Dash/Previews/Reviews.qml:121
117−msgid "Send"
118−msgstr "Küldés"
119−
120#: qml/Dash/Previews/Reviews.qml:139
128#: qml/Dash/Previews/Reviews.qml:139
121msgid "Comments:"
129msgid "Comments:"
122msgstr "Hozzászólások:"
130msgstr "Hozzászólások:"
po/hy.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
11"PO-Revision-Date: 2013-06-27 04:43+0000\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
12"Last-Translator: iAbaS <sosabazyan@yandex.ru>\n"
13"Language-Team: Armenian <hy@li.org>\n"
13"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Վերջին որոնումներ"
78msgstr "Վերջին որոնումներ"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/id.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
11"PO-Revision-Date: 2013-06-26 22:35+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Indonesian <id@li.org>\n"
13"Language-Team: Indonesian <id@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/is.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-09-18 16:22+0000\n"
11"PO-Revision-Date: 2013-09-18 16:22+0000\n"
12"Last-Translator: Andri Thorlacius <Unknown>\n"
12"Last-Translator: Andri Thorlacius <Unknown>\n"
13"Language-Team: Icelandic <is@li.org>\n"
13"Language-Team: Icelandic <is@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -74,19 +74,19 @@ msgid ""
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/PageHeader.qml:339
77+#: qml/Components/PageHeader.qml:340
78msgid "Recent searches"
78msgid "Recent searches"
79msgstr "Nýlegar leitir"
79msgstr "Nýlegar leitir"
80
80
81−#: qml/Components/SeeMore.qml:32
81+#: qml/Components/SeeMore.qml:35
82msgid "See more"
82msgid "See more"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/SeeMore.qml:61
85+#: qml/Components/SeeMore.qml:57
86msgid "See less"
86msgid "See less"
87msgstr ""
87msgstr ""
88
88
89−#: qml/Dash/Apps/AppPreview.qml:136
89+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
90msgid "Rate this"
90msgid "Rate this"
91msgstr "Gefa þessu einkunn"
91msgstr "Gefa þessu einkunn"
92
92
@@ -104,18 +104,26 @@ msgid_plural "%1 reviews"
104msgstr[0] "%1 ummæli"
104msgstr[0] "%1 ummæli"
105msgstr[1] "%1 ummæli"
105msgstr[1] "%1 ummæli"
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108+msgid "More..."
109+msgstr ""
110+
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
108msgid "Add a review"
116msgid "Add a review"
109msgstr "Gefa umsögn"
117msgstr "Gefa umsögn"
110
118
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
120+msgid "Send"
121+msgstr "Senda"
122+
111#: qml/Dash/Previews/Reviews.qml:86
123#: qml/Dash/Previews/Reviews.qml:86
112msgid "Review"
124msgid "Review"
113msgstr "Umsögn"
125msgstr "Umsögn"
114
126
115−#: qml/Dash/Previews/Reviews.qml:121
116−msgid "Send"
117−msgstr "Senda"
118−
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
128msgid "Comments:"
121msgstr "Athugasemdir:"
129msgstr "Athugasemdir:"
po/it.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-22 09:15+0000\n"
11"PO-Revision-Date: 2014-01-22 09:15+0000\n"
12"Last-Translator: Domenico <domenico.verde125@live.it>\n"
12"Last-Translator: Domenico <domenico.verde125@live.it>\n"
13"Language-Team: Italian <it@li.org>\n"
13"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -78,19 +78,19 @@ msgid ""
78"phone<br><br>Tap on the screen to start"
78"phone<br><br>Tap on the screen to start"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/PageHeader.qml:339
81+#: qml/Components/PageHeader.qml:340
82msgid "Recent searches"
82msgid "Recent searches"
83msgstr "Ricerche recenti"
83msgstr "Ricerche recenti"
84
84
85−#: qml/Components/SeeMore.qml:32
85+#: qml/Components/SeeMore.qml:35
86msgid "See more"
86msgid "See more"
87msgstr ""
87msgstr ""
88
88
89−#: qml/Components/SeeMore.qml:61
89+#: qml/Components/SeeMore.qml:57
90msgid "See less"
90msgid "See less"
91msgstr ""
91msgstr ""
92
92
93−#: qml/Dash/Apps/AppPreview.qml:136
93+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
94msgid "Rate this"
94msgid "Rate this"
95msgstr "Valuta"
95msgstr "Valuta"
96
96
@@ -108,18 +108,26 @@ msgid_plural "%1 reviews"
108msgstr[0] "%1 recensione"
108msgstr[0] "%1 recensione"
109msgstr[1] "%1 recensioni"
109msgstr[1] "%1 recensioni"
110
110
111−#: qml/Dash/Previews/Reviews.qml:74
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "More..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewActionCombo.qml:34
116+msgid "Less..."
117+msgstr ""
118+
119+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
112msgid "Add a review"
120msgid "Add a review"
113msgstr "Aggiungi una recensione"
121msgstr "Aggiungi una recensione"
114
122
123+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
124+msgid "Send"
125+msgstr "Invia"
126+
115#: qml/Dash/Previews/Reviews.qml:86
127#: qml/Dash/Previews/Reviews.qml:86
116msgid "Review"
128msgid "Review"
117msgstr "Recensisci"
129msgstr "Recensisci"
118
130
119−#: qml/Dash/Previews/Reviews.qml:121
120−msgid "Send"
121−msgstr "Invia"
122−
123#: qml/Dash/Previews/Reviews.qml:139
131#: qml/Dash/Previews/Reviews.qml:139
124msgid "Comments:"
132msgid "Comments:"
125msgstr "Commenti:"
133msgstr "Commenti:"
po/ja.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "最近の検索"
78msgstr "最近の検索"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr "送信"
120msgstr "送信"
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "コメント:"
128msgstr "コメント:"
po/km.po+21−13
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-02-12 07:06+0000\n"
11+"PO-Revision-Date: 2014-03-04 02:32+0000\n"
12"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
12"Last-Translator: Khoem Sokhem <khoemsokhem@khmeros.info>\n"
13"Language-Team: Khmer <km@li.org>\n"
13"Language-Team: Khmer <km@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-13 06:51+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -77,19 +77,19 @@ msgstr ""
77"ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ "
77"ឥឡូវ​អ្នក​បាន​ពិនិត្យ​កាយវិការ​គែម​ "
78"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
78"និង​អាច​ចាប់ផ្ដើម​ប្រើ​ទូរស័ព្ទ<br><br>ប៉ះ លើ​អេក្រង់​ដើម្បី​ចាប់ផ្ដើម"
79
79
80−#: qml/Components/PageHeader.qml:339
80+#: qml/Components/PageHeader.qml:340
81msgid "Recent searches"
81msgid "Recent searches"
82msgstr "ការ​ស្វែងរក​ថ្មី"
82msgstr "ការ​ស្វែងរក​ថ្មី"
83
83
84−#: qml/Components/SeeMore.qml:32
84+#: qml/Components/SeeMore.qml:35
85msgid "See more"
85msgid "See more"
86msgstr "មើល​ច្រើន​ទៀត"
86msgstr "មើល​ច្រើន​ទៀត"
87
87
88−#: qml/Components/SeeMore.qml:61
88+#: qml/Components/SeeMore.qml:57
89msgid "See less"
89msgid "See less"
90msgstr "មើល​តិច​ជាង"
90msgstr "មើល​តិច​ជាង"
91
91
92−#: qml/Dash/Apps/AppPreview.qml:136
92+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
93msgid "Rate this"
93msgid "Rate this"
94msgstr "វាយតម្លៃ​វា"
94msgstr "វាយតម្លៃ​វា"
95
95
@@ -106,18 +106,26 @@ msgid "%1 review"
106msgid_plural "%1 reviews"
106msgid_plural "%1 reviews"
107msgstr[0] "ពិនិត្យ​មើល %1"
107msgstr[0] "ពិនិត្យ​មើល %1"
108
108
109−#: qml/Dash/Previews/Reviews.qml:74
109+#: qml/Dash/Previews/PreviewActionCombo.qml:34
110+msgid "More..."
111+msgstr "ច្រើនជាង​..."
112+
113+#: qml/Dash/Previews/PreviewActionCombo.qml:34
114+msgid "Less..."
115+msgstr "តិច​ជាង..."
116+
117+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
110msgid "Add a review"
118msgid "Add a review"
111msgstr "បន្ថែម​ការ​ពិនិត្យ"
119msgstr "បន្ថែម​ការ​ពិនិត្យ"
112
120
121+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
122+msgid "Send"
123+msgstr "ផ្ញើ"
124+
113#: qml/Dash/Previews/Reviews.qml:86
125#: qml/Dash/Previews/Reviews.qml:86
114msgid "Review"
126msgid "Review"
115msgstr "ការ​ពិនិត្យ"
127msgstr "ការ​ពិនិត្យ"
116
128
117−#: qml/Dash/Previews/Reviews.qml:121
118−msgid "Send"
119−msgstr "ផ្ញើ"
120−
121#: qml/Dash/Previews/Reviews.qml:139
129#: qml/Dash/Previews/Reviews.qml:139
122msgid "Comments:"
130msgid "Comments:"
123msgstr "មតិយោបល់៖"
131msgstr "មតិយោបល់៖"
po/kn.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
11"PO-Revision-Date: 2013-06-27 05:43+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kannada <kn@li.org>\n"
13"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
78msgstr "ಇತ್ತೀಚಿನ ಹುಡುಕಾಟಗಳು"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/ko.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-10-10 07:04+0000\n"
11"PO-Revision-Date: 2013-10-10 07:04+0000\n"
12"Last-Translator: Kim Boram <boramism@gmail.com>\n"
12"Last-Translator: Kim Boram <boramism@gmail.com>\n"
13"Language-Team: Korean <ko@li.org>\n"
13"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "최근 검색"
78msgstr "최근 검색"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/ky.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
11"PO-Revision-Date: 2013-06-27 06:17+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
13"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Соңку издөөлөр"
78msgstr "Соңку издөөлөр"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/lo.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
11"PO-Revision-Date: 2013-10-02 10:00+0000\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
12"Last-Translator: Anousak <anousak@gmail.com>\n"
13"Language-Team: Lao <lo@li.org>\n"
13"Language-Team: Lao <lo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr "ສົ່ງ"
120msgstr "ສົ່ງ"
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "ຄໍ່ເຫັນ"
128msgstr "ຄໍ່ເຫັນ"
po/lt.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-15 12:42+0000\n"
11"PO-Revision-Date: 2014-01-15 12:42+0000\n"
12"Last-Translator: Gediminas Paulauskas <menesis@pov.lt>\n"
12"Last-Translator: Gediminas Paulauskas <menesis@pov.lt>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
13"Language-Team: Lithuanian <lt@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"(n%100<10 || n%100>=20) ? 1 : 2;\n"
18"(n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -77,19 +77,19 @@ msgid ""
77"phone<br><br>Tap on the screen to start"
77"phone<br><br>Tap on the screen to start"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/PageHeader.qml:339
80+#: qml/Components/PageHeader.qml:340
81msgid "Recent searches"
81msgid "Recent searches"
82msgstr "Paskiausios paieškos"
82msgstr "Paskiausios paieškos"
83
83
84−#: qml/Components/SeeMore.qml:32
84+#: qml/Components/SeeMore.qml:35
85msgid "See more"
85msgid "See more"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Components/SeeMore.qml:61
88+#: qml/Components/SeeMore.qml:57
89msgid "See less"
89msgid "See less"
90msgstr ""
90msgstr ""
91
91
92−#: qml/Dash/Apps/AppPreview.qml:136
92+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
93msgid "Rate this"
93msgid "Rate this"
94msgstr "Įvertinkite tai"
94msgstr "Įvertinkite tai"
95
95
@@ -108,18 +108,26 @@ msgstr[0] "%1 apžvalga"
108msgstr[1] "%1 apžvalgos"
108msgstr[1] "%1 apžvalgos"
109msgstr[2] "%1 apžvalgų"
109msgstr[2] "%1 apžvalgų"
110
110
111−#: qml/Dash/Previews/Reviews.qml:74
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "More..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewActionCombo.qml:34
116+msgid "Less..."
117+msgstr ""
118+
119+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
112msgid "Add a review"
120msgid "Add a review"
113msgstr "Pridėkite apžvalgą"
121msgstr "Pridėkite apžvalgą"
114
122
123+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
124+msgid "Send"
125+msgstr "Siųsti"
126+
115#: qml/Dash/Previews/Reviews.qml:86
127#: qml/Dash/Previews/Reviews.qml:86
116msgid "Review"
128msgid "Review"
117msgstr "Apžvalga"
129msgstr "Apžvalga"
118
130
119−#: qml/Dash/Previews/Reviews.qml:121
120−msgid "Send"
121−msgstr "Siųsti"
122−
123#: qml/Dash/Previews/Reviews.qml:139
131#: qml/Dash/Previews/Reviews.qml:139
124msgid "Comments:"
132msgid "Comments:"
125msgstr "Komentarai:"
133msgstr "Komentarai:"
po/lv.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-11 16:48+0000\n"
11"PO-Revision-Date: 2014-01-11 16:48+0000\n"
12"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
12"Last-Translator: Jānis-Marks Gailis <jeanmarc.gailis@gmail.com>\n"
13"Language-Team: Latvian <lv@li.org>\n"
13"Language-Team: Latvian <lv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Nesen veiktās meklēšanas"
78msgstr "Nesen veiktās meklēšanas"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/ml.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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 Alfazz <Unknown>\n"
12"Last-Translator: STyM Alfazz <Unknown>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
13"Language-Team: Malayalam <ml@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -75,19 +75,19 @@ msgid ""
75"phone<br><br>Tap on the screen to start"
75"phone<br><br>Tap on the screen to start"
76msgstr ""
76msgstr ""
77
77
78−#: qml/Components/PageHeader.qml:339
78+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
79msgid "Recent searches"
80msgstr "സമീപകാല തിരയലുകള്‍"
80msgstr "സമീപകാല തിരയലുകള്‍"
81
81
82−#: qml/Components/SeeMore.qml:32
82+#: qml/Components/SeeMore.qml:35
83msgid "See more"
83msgid "See more"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/SeeMore.qml:61
86+#: qml/Components/SeeMore.qml:57
87msgid "See less"
87msgid "See less"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Dash/Apps/AppPreview.qml:136
90+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
91msgid "Rate this"
92msgstr "ഇത് അവലോകനം ചെയ്യുക"
92msgstr "ഇത് അവലോകനം ചെയ്യുക"
93
93
@@ -105,18 +105,26 @@ msgid_plural "%1 reviews"
105msgstr[0] "%1 അവലോകനം"
105msgstr[0] "%1 അവലോകനം"
106msgstr[1] "%1 അവലോകനങ്ങള്‍"
106msgstr[1] "%1 അവലോകനങ്ങള്‍"
107
107
108−#: qml/Dash/Previews/Reviews.qml:74
108+#: qml/Dash/Previews/PreviewActionCombo.qml:34
109+msgid "More..."
110+msgstr ""
111+
112+#: qml/Dash/Previews/PreviewActionCombo.qml:34
113+msgid "Less..."
114+msgstr ""
115+
116+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
109msgid "Add a review"
117msgid "Add a review"
110msgstr "ഒരു അവലോകനം ചേര്‍ക്കുക"
118msgstr "ഒരു അവലോകനം ചേര്‍ക്കുക"
111
119
120+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
121+msgid "Send"
122+msgstr "അയയ്‌ക്കുക"
123+
112#: qml/Dash/Previews/Reviews.qml:86
124#: qml/Dash/Previews/Reviews.qml:86
113msgid "Review"
125msgid "Review"
114msgstr "അവലോകനം"
126msgstr "അവലോകനം"
115
127
116−#: qml/Dash/Previews/Reviews.qml:121
117−msgid "Send"
118−msgstr "അയയ്‌ക്കുക"
119−
120#: qml/Dash/Previews/Reviews.qml:139
128#: qml/Dash/Previews/Reviews.qml:139
121msgid "Comments:"
129msgid "Comments:"
122msgstr "അഭിപ്രായങ്ങള്‍:"
130msgstr "അഭിപ്രായങ്ങള്‍:"
po/mr.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/ms.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Gelintar baru-baru ini"
78msgstr "Gelintar baru-baru ini"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "Kadar ini"
90msgstr "Kadar ini"
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] "%1 ulasan"
103msgstr[0] "%1 ulasan"
104msgstr[1] "%1 ulasan"
104msgstr[1] "%1 ulasan"
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107+msgid "More..."
108+msgstr ""
109+
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
115msgid "Add a review"
108msgstr "Tambah ulasan"
116msgstr "Tambah ulasan"
109
117
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
119+msgid "Send"
120+msgstr "Hantar"
121+
110#: qml/Dash/Previews/Reviews.qml:86
122#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
123msgid "Review"
112msgstr "Tinjauan"
124msgstr "Tinjauan"
113
125
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "Hantar"
117−
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "Ulasan:"
128msgstr "Ulasan:"
po/my.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
78msgstr "မကြာသေးခင်က ရှာဖွေခြင်း"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "ဒီဟာကိုအမှတ်ပေးမည်"
90msgstr "ဒီဟာကိုအမှတ်ပေးမည်"
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr "ပို့မည်"
120msgstr "ပို့မည်"
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "မှတ်ချက်များ-"
128msgstr "မှတ်ချက်များ-"
po/nb.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-27 07:02+0000\n"
11"PO-Revision-Date: 2013-06-27 07:02+0000\n"
12"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
12"Last-Translator: Joakim Langvand <jlangvand@gmail.com>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
13"Language-Team: Norwegian Bokmal <nb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Siste søk"
78msgstr "Siste søk"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/nl.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "Recente zoekopdrachten"
78msgstr "Recente zoekopdrachten"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "Beoordeel dit"
90msgstr "Beoordeel dit"
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] "%1 recensie"
103msgstr[0] "%1 recensie"
104msgstr[1] "%1 recensies"
104msgstr[1] "%1 recensies"
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107+msgid "More..."
108+msgstr ""
109+
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
107msgid "Add a review"
115msgid "Add a review"
108msgstr "Voeg recensie toe"
116msgstr "Voeg recensie toe"
109
117
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
119+msgid "Send"
120+msgstr "Versturen"
121+
110#: qml/Dash/Previews/Reviews.qml:86
122#: qml/Dash/Previews/Reviews.qml:86
111msgid "Review"
123msgid "Review"
112msgstr "Recensie"
124msgstr "Recensie"
113
125
114−#: qml/Dash/Previews/Reviews.qml:121
115−msgid "Send"
116−msgstr "Versturen"
117−
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "Reacties:"
128msgstr "Reacties:"
po/pl.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-10 11:38+0000\n"
11"PO-Revision-Date: 2014-01-10 11:38+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: Polish <pl@li.org>\n"
13"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
18"|| n%100>=20) ? 1 : 2;\n"
18"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -76,19 +76,19 @@ msgid ""
76"phone<br><br>Tap on the screen to start"
76"phone<br><br>Tap on the screen to start"
77msgstr ""
77msgstr ""
78
78
79−#: qml/Components/PageHeader.qml:339
79+#: qml/Components/PageHeader.qml:340
80msgid "Recent searches"
80msgid "Recent searches"
81msgstr "Ostatnie wyszukiwania"
81msgstr "Ostatnie wyszukiwania"
82
82
83−#: qml/Components/SeeMore.qml:32
83+#: qml/Components/SeeMore.qml:35
84msgid "See more"
84msgid "See more"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/SeeMore.qml:61
87+#: qml/Components/SeeMore.qml:57
88msgid "See less"
88msgid "See less"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Dash/Apps/AppPreview.qml:136
91+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
92msgid "Rate this"
92msgid "Rate this"
93msgstr "Oceń to"
93msgstr "Oceń to"
94
94
@@ -107,18 +107,26 @@ msgstr[0] "%1 opinia"
107msgstr[1] "%1 opinie"
107msgstr[1] "%1 opinie"
108msgstr[2] "%1 opinii"
108msgstr[2] "%1 opinii"
109
109
110−#: qml/Dash/Previews/Reviews.qml:74
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111+msgid "More..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewActionCombo.qml:34
115+msgid "Less..."
116+msgstr ""
117+
118+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
111msgid "Add a review"
119msgid "Add a review"
112msgstr "Dodaj recenzję"
120msgstr "Dodaj recenzję"
113
121
122+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
123+msgid "Send"
124+msgstr "Wyślij"
125+
114#: qml/Dash/Previews/Reviews.qml:86
126#: qml/Dash/Previews/Reviews.qml:86
115msgid "Review"
127msgid "Review"
116msgstr "Recenzja"
128msgstr "Recenzja"
117
129
118−#: qml/Dash/Previews/Reviews.qml:121
119−msgid "Send"
120−msgstr "Wyślij"
121−
122#: qml/Dash/Previews/Reviews.qml:139
130#: qml/Dash/Previews/Reviews.qml:139
123msgid "Comments:"
131msgid "Comments:"
124msgstr "Komentarze:"
132msgstr "Komentarze:"
po/pt.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/pt_BR.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-18 23:24+0000\n"
11"PO-Revision-Date: 2014-01-18 23:24+0000\n"
12"Last-Translator: Fábio Nogueira <deb-user-ba@ubuntu.com>\n"
12"Last-Translator: Fábio Nogueira <deb-user-ba@ubuntu.com>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
13"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -75,19 +75,19 @@ msgid ""
75"phone<br><br>Tap on the screen to start"
75"phone<br><br>Tap on the screen to start"
76msgstr ""
76msgstr ""
77
77
78−#: qml/Components/PageHeader.qml:339
78+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
79msgid "Recent searches"
80msgstr "Pesquisas recentes"
80msgstr "Pesquisas recentes"
81
81
82−#: qml/Components/SeeMore.qml:32
82+#: qml/Components/SeeMore.qml:35
83msgid "See more"
83msgid "See more"
84msgstr ""
84msgstr ""
85
85
86−#: qml/Components/SeeMore.qml:61
86+#: qml/Components/SeeMore.qml:57
87msgid "See less"
87msgid "See less"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Dash/Apps/AppPreview.qml:136
90+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
91msgid "Rate this"
92msgstr "Avaliar isto"
92msgstr "Avaliar isto"
93
93
@@ -105,18 +105,26 @@ msgid_plural "%1 reviews"
105msgstr[0] "%1 análise"
105msgstr[0] "%1 análise"
106msgstr[1] "%1 análises"
106msgstr[1] "%1 análises"
107
107
108−#: qml/Dash/Previews/Reviews.qml:74
108+#: qml/Dash/Previews/PreviewActionCombo.qml:34
109+msgid "More..."
110+msgstr ""
111+
112+#: qml/Dash/Previews/PreviewActionCombo.qml:34
113+msgid "Less..."
114+msgstr ""
115+
116+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
109msgid "Add a review"
117msgid "Add a review"
110msgstr "Adicionar uma análise"
118msgstr "Adicionar uma análise"
111
119
120+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
121+msgid "Send"
122+msgstr "Enviar"
123+
112#: qml/Dash/Previews/Reviews.qml:86
124#: qml/Dash/Previews/Reviews.qml:86
113msgid "Review"
125msgid "Review"
114msgstr "Revisão"
126msgstr "Revisão"
115
127
116−#: qml/Dash/Previews/Reviews.qml:121
117−msgid "Send"
118−msgstr "Enviar"
119−
120#: qml/Dash/Previews/Reviews.qml:139
128#: qml/Dash/Previews/Reviews.qml:139
121msgid "Comments:"
129msgid "Comments:"
122msgstr "Comentários:"
130msgstr "Comentários:"
po/ro.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
11"PO-Revision-Date: 2013-06-27 07:53+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Romanian <ro@li.org>\n"
13"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
18"== 0) && (n != 0))) ? 2: 1));\n"
18"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -74,19 +74,19 @@ msgid ""
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/PageHeader.qml:339
77+#: qml/Components/PageHeader.qml:340
78msgid "Recent searches"
78msgid "Recent searches"
79msgstr "Căutări recente"
79msgstr "Căutări recente"
80
80
81−#: qml/Components/SeeMore.qml:32
81+#: qml/Components/SeeMore.qml:35
82msgid "See more"
82msgid "See more"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/SeeMore.qml:61
85+#: qml/Components/SeeMore.qml:57
86msgid "See less"
86msgid "See less"
87msgstr ""
87msgstr ""
88
88
89−#: qml/Dash/Apps/AppPreview.qml:136
89+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
90msgid "Rate this"
90msgid "Rate this"
91msgstr ""
91msgstr ""
92
92
@@ -104,18 +104,26 @@ msgid_plural "%1 reviews"
104msgstr[0] ""
104msgstr[0] ""
105msgstr[1] ""
105msgstr[1] ""
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108−msgid "Add a review"
108+msgid "More..."
109msgstr ""
109msgstr ""
110
110
111−#: qml/Dash/Previews/Reviews.qml:86
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112−msgid "Review"
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
116+msgid "Add a review"
113msgstr ""
117msgstr ""
114
118
115−#: qml/Dash/Previews/Reviews.qml:121
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
116msgid "Send"
120msgid "Send"
117msgstr ""
121msgstr ""
118
122
123+#: qml/Dash/Previews/Reviews.qml:86
124+msgid "Review"
125+msgstr ""
126+
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
128msgid "Comments:"
121msgstr ""
129msgstr ""
po/ru.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-01-26 15:56+0000\n"
11"PO-Revision-Date: 2014-01-26 15:56+0000\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
12"Last-Translator: Zonov Roman <Unknown>\n"
13"Language-Team: Russian <ru@li.org>\n"
13"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -79,19 +79,19 @@ msgid ""
79"phone<br><br>Tap on the screen to start"
79"phone<br><br>Tap on the screen to start"
80msgstr ""
80msgstr ""
81
81
82−#: qml/Components/PageHeader.qml:339
82+#: qml/Components/PageHeader.qml:340
83msgid "Recent searches"
83msgid "Recent searches"
84msgstr "Последние поисковые запросы"
84msgstr "Последние поисковые запросы"
85
85
86−#: qml/Components/SeeMore.qml:32
86+#: qml/Components/SeeMore.qml:35
87msgid "See more"
87msgid "See more"
88msgstr ""
88msgstr ""
89
89
90−#: qml/Components/SeeMore.qml:61
90+#: qml/Components/SeeMore.qml:57
91msgid "See less"
91msgid "See less"
92msgstr ""
92msgstr ""
93
93
94−#: qml/Dash/Apps/AppPreview.qml:136
94+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
95msgid "Rate this"
95msgid "Rate this"
96msgstr "Оцените это"
96msgstr "Оцените это"
97
97
@@ -110,18 +110,26 @@ msgstr[0] "%1 отзыв"
110msgstr[1] "%1 отзыва"
110msgstr[1] "%1 отзыва"
111msgstr[2] "%1 отзывов"
111msgstr[2] "%1 отзывов"
112
112
113−#: qml/Dash/Previews/Reviews.qml:74
113+#: qml/Dash/Previews/PreviewActionCombo.qml:34
114+msgid "More..."
115+msgstr ""
116+
117+#: qml/Dash/Previews/PreviewActionCombo.qml:34
118+msgid "Less..."
119+msgstr ""
120+
121+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
114msgid "Add a review"
122msgid "Add a review"
115msgstr "Добавьте отзыв"
123msgstr "Добавьте отзыв"
116
124
125+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
126+msgid "Send"
127+msgstr "Отправить"
128+
117#: qml/Dash/Previews/Reviews.qml:86
129#: qml/Dash/Previews/Reviews.qml:86
118msgid "Review"
130msgid "Review"
119msgstr "Отзыв"
131msgstr "Отзыв"
120
132
121−#: qml/Dash/Previews/Reviews.qml:121
122−msgid "Send"
123−msgstr "Отправить"
124−
125#: qml/Dash/Previews/Reviews.qml:139
133#: qml/Dash/Previews/Reviews.qml:139
126msgid "Comments:"
134msgid "Comments:"
127msgstr "Комментарии:"
135msgstr "Комментарии:"
po/shn.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
11"PO-Revision-Date: 2013-10-07 11:46+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Shan <shn@li.org>\n"
13"Language-Team: Shan <shn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
17"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/si.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
13"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/sl.po+26−16
@@ -7,8 +7,8 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2013-11-30 08:20+0000\n"
11+"PO-Revision-Date: 2014-02-21 16:38+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"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
18"n%100==4 ? 3 : 0);\n"
18"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -75,20 +75,22 @@ msgid ""
75"You have now mastered the edge gestures and can start using the "
75"You have now mastered the edge gestures and can start using the "
76"phone<br><br>Tap on the screen to start"
76"phone<br><br>Tap on the screen to start"
77msgstr ""
77msgstr ""
78+"Sedaj, ko ste osvojili poteze robov, lahko začnete uporabljati "
79+"telefon<br><br>Tapnite na zaslon za začetek"
78
80
79−#: qml/Components/PageHeader.qml:339
81+#: qml/Components/PageHeader.qml:340
80msgid "Recent searches"
82msgid "Recent searches"
81msgstr "Nedavna iskanja"
83msgstr "Nedavna iskanja"
82
84
83−#: qml/Components/SeeMore.qml:32
85+#: qml/Components/SeeMore.qml:35
84msgid "See more"
86msgid "See more"
85−msgstr ""
87+msgstr "Pokaži več"
86
88
87−#: qml/Components/SeeMore.qml:61
89+#: qml/Components/SeeMore.qml:57
88msgid "See less"
90msgid "See less"
89−msgstr ""
91+msgstr "Pokaži manj"
90
92
91−#: qml/Dash/Apps/AppPreview.qml:136
93+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
92msgid "Rate this"
94msgid "Rate this"
93msgstr "Ocenite"
95msgstr "Ocenite"
94
96
@@ -108,18 +110,26 @@ msgstr[1] "%1 ocena"
108msgstr[2] "%1 oceni"
110msgstr[2] "%1 oceni"
109msgstr[3] "%1 ocene"
111msgstr[3] "%1 ocene"
110
112
111−#: qml/Dash/Previews/Reviews.qml:74
113+#: qml/Dash/Previews/PreviewActionCombo.qml:34
114+msgid "More..."
115+msgstr "Več ..."
116+
117+#: qml/Dash/Previews/PreviewActionCombo.qml:34
118+msgid "Less..."
119+msgstr "Manj ..."
120+
121+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
112msgid "Add a review"
122msgid "Add a review"
113msgstr "Dodaj oceno"
123msgstr "Dodaj oceno"
114
124
125+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
126+msgid "Send"
127+msgstr "Pošlji"
128+
115#: qml/Dash/Previews/Reviews.qml:86
129#: qml/Dash/Previews/Reviews.qml:86
116msgid "Review"
130msgid "Review"
117msgstr "Ocena"
131msgstr "Ocena"
118
132
119−#: qml/Dash/Previews/Reviews.qml:121
120−msgid "Send"
121−msgstr "Pošlji"
122−
123#: qml/Dash/Previews/Reviews.qml:139
133#: qml/Dash/Previews/Reviews.qml:139
124msgid "Comments:"
134msgid "Comments:"
125msgstr "Opombe:"
135msgstr "Opombe:"
@@ -163,7 +173,7 @@ msgstr "Pokaži geslo"
163
173
164#: qml/Notifications/NotificationMenuItemFactory.qml:103
174#: qml/Notifications/NotificationMenuItemFactory.qml:103
165msgid "Please enter SIM PIN"
175msgid "Please enter SIM PIN"
166−msgstr ""
176+msgstr "Vnesite PIN kartice SIM"
167
177
168#: qml/Panel/SearchIndicator.qml:27
178#: qml/Panel/SearchIndicator.qml:27
169msgid "Search"
179msgid "Search"
po/sq.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:25+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -74,19 +74,19 @@ msgid ""
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/PageHeader.qml:339
77+#: qml/Components/PageHeader.qml:340
78msgid "Recent searches"
78msgid "Recent searches"
79msgstr ""
79msgstr ""
80
80
81−#: qml/Components/SeeMore.qml:32
81+#: qml/Components/SeeMore.qml:35
82msgid "See more"
82msgid "See more"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/SeeMore.qml:61
85+#: qml/Components/SeeMore.qml:57
86msgid "See less"
86msgid "See less"
87msgstr ""
87msgstr ""
88
88
89−#: qml/Dash/Apps/AppPreview.qml:136
89+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
90msgid "Rate this"
90msgid "Rate this"
91msgstr "Vlerësoje këtë"
91msgstr "Vlerësoje këtë"
92
92
@@ -104,16 +104,24 @@ msgid_plural "%1 reviews"
104msgstr[0] "%1 rishikim"
104msgstr[0] "%1 rishikim"
105msgstr[1] "%1 rishikime"
105msgstr[1] "%1 rishikime"
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108+msgid "More..."
109+msgstr ""
110+
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
108msgid "Add a review"
116msgid "Add a review"
109msgstr "Shto një rishikim"
117msgstr "Shto një rishikim"
110
118
111−#: qml/Dash/Previews/Reviews.qml:86
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
112−msgid "Review"
120+msgid "Send"
113msgstr ""
121msgstr ""
114
122
115−#: qml/Dash/Previews/Reviews.qml:121
123+#: qml/Dash/Previews/Reviews.qml:86
116−msgid "Send"
124+msgid "Review"
117msgstr ""
125msgstr ""
118
126
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
po/sr.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
11"PO-Revision-Date: 2013-06-27 09:19+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Serbian <sr@li.org>\n"
13"Language-Team: Serbian <sr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -74,19 +74,19 @@ msgid ""
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76
76
77−#: qml/Components/PageHeader.qml:339
77+#: qml/Components/PageHeader.qml:340
78msgid "Recent searches"
78msgid "Recent searches"
79msgstr "Скорашње претраге"
79msgstr "Скорашње претраге"
80
80
81−#: qml/Components/SeeMore.qml:32
81+#: qml/Components/SeeMore.qml:35
82msgid "See more"
82msgid "See more"
83msgstr ""
83msgstr ""
84
84
85−#: qml/Components/SeeMore.qml:61
85+#: qml/Components/SeeMore.qml:57
86msgid "See less"
86msgid "See less"
87msgstr ""
87msgstr ""
88
88
89−#: qml/Dash/Apps/AppPreview.qml:136
89+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
90msgid "Rate this"
90msgid "Rate this"
91msgstr ""
91msgstr ""
92
92
@@ -104,18 +104,26 @@ msgid_plural "%1 reviews"
104msgstr[0] ""
104msgstr[0] ""
105msgstr[1] ""
105msgstr[1] ""
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108−msgid "Add a review"
108+msgid "More..."
109msgstr ""
109msgstr ""
110
110
111−#: qml/Dash/Previews/Reviews.qml:86
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112−msgid "Review"
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
116+msgid "Add a review"
113msgstr ""
117msgstr ""
114
118
115−#: qml/Dash/Previews/Reviews.qml:121
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
116msgid "Send"
120msgid "Send"
117msgstr ""
121msgstr ""
118
122
123+#: qml/Dash/Previews/Reviews.qml:86
124+msgid "Review"
125+msgstr ""
126+
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
128msgid "Comments:"
121msgstr ""
129msgstr ""
po/sv.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
11"PO-Revision-Date: 2013-06-26 22:36+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Swedish <sv@li.org>\n"
13"Language-Team: Swedish <sv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/sw.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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 Mlabwa <Unknown>\n"
13"Language-Team: Swahili <sw@li.org>\n"
13"Language-Team: Swahili <sw@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr "Tuma"
120msgstr "Tuma"
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr "Maoni:"
128msgstr "Maoni:"
po/ta.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
11"PO-Revision-Date: 2013-10-24 11:36+0000\n"
12"Last-Translator: Thangamani Arun - தங்கமணி அருண் <thangam.arunx@gmail.com>\n"
12"Last-Translator: Thangamani Arun - தங்கமணி அருண் <thangam.arunx@gmail.com>\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
13"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\n"
20"Language: ta\n"
20"Language: ta\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
@@ -76,19 +76,19 @@ msgid ""
76"phone<br><br>Tap on the screen to start"
76"phone<br><br>Tap on the screen to start"
77msgstr ""
77msgstr ""
78
78
79−#: qml/Components/PageHeader.qml:339
79+#: qml/Components/PageHeader.qml:340
80msgid "Recent searches"
80msgid "Recent searches"
81msgstr "கடையாக தேடப்பட்டவைகள்"
81msgstr "கடையாக தேடப்பட்டவைகள்"
82
82
83−#: qml/Components/SeeMore.qml:32
83+#: qml/Components/SeeMore.qml:35
84msgid "See more"
84msgid "See more"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/SeeMore.qml:61
87+#: qml/Components/SeeMore.qml:57
88msgid "See less"
88msgid "See less"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Dash/Apps/AppPreview.qml:136
91+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
92msgid "Rate this"
92msgid "Rate this"
93msgstr "இதை மதிப்பிடு"
93msgstr "இதை மதிப்பிடு"
94
94
@@ -106,18 +106,26 @@ msgid_plural "%1 reviews"
106msgstr[0] "%1 பரிசீலனை"
106msgstr[0] "%1 பரிசீலனை"
107msgstr[1] "%1 பரிசீலனைகள்"
107msgstr[1] "%1 பரிசீலனைகள்"
108
108
109−#: qml/Dash/Previews/Reviews.qml:74
109+#: qml/Dash/Previews/PreviewActionCombo.qml:34
110+msgid "More..."
111+msgstr ""
112+
113+#: qml/Dash/Previews/PreviewActionCombo.qml:34
114+msgid "Less..."
115+msgstr ""
116+
117+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
110msgid "Add a review"
118msgid "Add a review"
111msgstr "ஒரு பரிசீலனையை சேர்"
119msgstr "ஒரு பரிசீலனையை சேர்"
112
120
121+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
122+msgid "Send"
123+msgstr "அனுப்பு"
124+
113#: qml/Dash/Previews/Reviews.qml:86
125#: qml/Dash/Previews/Reviews.qml:86
114msgid "Review"
126msgid "Review"
115msgstr "மறுஆய்வு"
127msgstr "மறுஆய்வு"
116
128
117−#: qml/Dash/Previews/Reviews.qml:121
118−msgid "Send"
119−msgstr "அனுப்பு"
120−
121#: qml/Dash/Previews/Reviews.qml:139
129#: qml/Dash/Previews/Reviews.qml:139
122msgid "Comments:"
130msgid "Comments:"
123msgstr "கருத்துகள்:"
131msgstr "கருத்துகள்:"
po/te.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
11"PO-Revision-Date: 2013-06-27 09:57+0000\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
12"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
13"Language-Team: Telugu <te@li.org>\n"
13"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/tr.po+31−21
@@ -7,16 +7,16 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11−"PO-Revision-Date: 2014-01-14 19:05+0000\n"
11+"PO-Revision-Date: 2014-03-05 08:54+0000\n"
12−"Last-Translator: Osman Coşkun <Unknown>\n"
12+"Last-Translator: Muhammed Yüce <muhammedyuceee@gmail.com>\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"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -29,7 +29,7 @@ msgstr "Başlatıcıdan Ayır"
29
29
30#: qml/Components/EdgeDemoOverlay.qml:151
30#: qml/Components/EdgeDemoOverlay.qml:151
31msgid "Skip intro"
31msgid "Skip intro"
32−msgstr "İntro'yu geç"
32+msgstr "Tanıtımı geç"
33
33
34#: qml/Components/EdgeDemo.qml:113
34#: qml/Components/EdgeDemo.qml:113
35msgid "Right edge"
35msgid "Right edge"
@@ -37,7 +37,7 @@ msgstr "Sağ kenar"
37
37
38#: qml/Components/EdgeDemo.qml:114
38#: qml/Components/EdgeDemo.qml:114
39msgid "Try swiping from the right edge to unlock the phone"
39msgid "Try swiping from the right edge to unlock the phone"
40−msgstr "Kilidi açmak için sağ kenara sürüklemeyi deneyin"
40+msgstr "Kilidi açmak için sağ kenardan sürüklemeyi deneyin"
41
41
42#: qml/Components/EdgeDemo.qml:145
42#: qml/Components/EdgeDemo.qml:145
43msgid "Top edge"
43msgid "Top edge"
@@ -45,7 +45,7 @@ msgstr "Üst kenar"
45
45
46#: qml/Components/EdgeDemo.qml:146
46#: qml/Components/EdgeDemo.qml:146
47msgid "Try swiping from the top edge to access the indicators"
47msgid "Try swiping from the top edge to access the indicators"
48−msgstr "Bildiricilere erişmek için üst kenarı sürüklemeyi deneyin"
48+msgstr "Bildiricilere erişmek için üst kenarı sürükleyin"
49
49
50#: qml/Components/EdgeDemo.qml:171
50#: qml/Components/EdgeDemo.qml:171
51msgid "Close"
51msgid "Close"
@@ -73,20 +73,22 @@ msgid ""
73"You have now mastered the edge gestures and can start using the "
73"You have now mastered the edge gestures and can start using the "
74"phone<br><br>Tap on the screen to start"
74"phone<br><br>Tap on the screen to start"
75msgstr ""
75msgstr ""
76+"Kenar haraketlerini öğrendiniz ve telefonu kullanmaya "
77+"başlayabilirsiniz<br><br>Başlamak için ekrana dokunun"
76
78
77−#: qml/Components/PageHeader.qml:339
79+#: qml/Components/PageHeader.qml:340
78msgid "Recent searches"
80msgid "Recent searches"
79−msgstr "Son Arananlar"
81+msgstr "Son aramalar"
80
82
81−#: qml/Components/SeeMore.qml:32
83+#: qml/Components/SeeMore.qml:35
82msgid "See more"
84msgid "See more"
83−msgstr ""
85+msgstr "Daha fazlası"
84
86
85−#: qml/Components/SeeMore.qml:61
87+#: qml/Components/SeeMore.qml:57
86msgid "See less"
88msgid "See less"
87−msgstr ""
89+msgstr "Daha azını gör"
88
90
89−#: qml/Dash/Apps/AppPreview.qml:136
91+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
90msgid "Rate this"
92msgid "Rate this"
91msgstr "Oyla"
93msgstr "Oyla"
92
94
@@ -104,18 +106,26 @@ msgid_plural "%1 reviews"
104msgstr[0] "%1 inceleme"
106msgstr[0] "%1 inceleme"
105msgstr[1] "%1 inceleme"
107msgstr[1] "%1 inceleme"
106
108
107−#: qml/Dash/Previews/Reviews.qml:74
109+#: qml/Dash/Previews/PreviewActionCombo.qml:34
110+msgid "More..."
111+msgstr "Daha fazlası..."
112+
113+#: qml/Dash/Previews/PreviewActionCombo.qml:34
114+msgid "Less..."
115+msgstr "Daha az.."
116+
117+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
108msgid "Add a review"
118msgid "Add a review"
109msgstr "Bir inceleme ekle"
119msgstr "Bir inceleme ekle"
110
120
121+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
122+msgid "Send"
123+msgstr "Gönder"
124+
111#: qml/Dash/Previews/Reviews.qml:86
125#: qml/Dash/Previews/Reviews.qml:86
112msgid "Review"
126msgid "Review"
113msgstr "İnceleme"
127msgstr "İnceleme"
114
128
115−#: qml/Dash/Previews/Reviews.qml:121
116−msgid "Send"
117−msgstr "Gönder"
118−
119#: qml/Dash/Previews/Reviews.qml:139
129#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
130msgid "Comments:"
121msgstr "Yorumlar:"
131msgstr "Yorumlar:"
@@ -159,7 +169,7 @@ msgstr "Parolayı göster"
159
169
160#: qml/Notifications/NotificationMenuItemFactory.qml:103
170#: qml/Notifications/NotificationMenuItemFactory.qml:103
161msgid "Please enter SIM PIN"
171msgid "Please enter SIM PIN"
162−msgstr ""
172+msgstr "Lütfen SIM PIN'inizi girin"
163
173
164#: qml/Panel/SearchIndicator.qml:27
174#: qml/Panel/SearchIndicator.qml:27
165msgid "Search"
175msgid "Search"
po/ug.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2014-02-15 12:09+0000\n"
11"PO-Revision-Date: 2014-02-15 12:09+0000\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
12"Last-Translator: Gheyret T.Kenji <Unknown>\n"
13"Language-Team: Uyghur <ug@li.org>\n"
13"Language-Team: Uyghur <ug@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-16 06:47+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -75,19 +75,19 @@ msgstr ""
75"ئېكراننى چېكىپ باشلاڭ<br><br>سىز ھازىر گىرۋەك بارماق ئىشارەتلىرىنى ئىگەللەپ "
75"ئېكراننى چېكىپ باشلاڭ<br><br>سىز ھازىر گىرۋەك بارماق ئىشارەتلىرىنى ئىگەللەپ "
76"بولدىڭىز،ئەمدى تېلېفوننى ئىشلىتىشنى باشلىسىڭىز بولىدۇ"
76"بولدىڭىز،ئەمدى تېلېفوننى ئىشلىتىشنى باشلىسىڭىز بولىدۇ"
77
77
78−#: qml/Components/PageHeader.qml:339
78+#: qml/Components/PageHeader.qml:340
79msgid "Recent searches"
79msgid "Recent searches"
80msgstr "يېقىنقى ئىزدەشلەر"
80msgstr "يېقىنقى ئىزدەشلەر"
81
81
82−#: qml/Components/SeeMore.qml:32
82+#: qml/Components/SeeMore.qml:35
83msgid "See more"
83msgid "See more"
84msgstr "جىقراق كۆرۈش"
84msgstr "جىقراق كۆرۈش"
85
85
86−#: qml/Components/SeeMore.qml:61
86+#: qml/Components/SeeMore.qml:57
87msgid "See less"
87msgid "See less"
88msgstr "ئازراق كۆرۈش"
88msgstr "ئازراق كۆرۈش"
89
89
90−#: qml/Dash/Apps/AppPreview.qml:136
90+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
91msgid "Rate this"
91msgid "Rate this"
92msgstr "بۇنى باھالاڭ"
92msgstr "بۇنى باھالاڭ"
93
93
@@ -104,18 +104,26 @@ msgid "%1 review"
104msgid_plural "%1 reviews"
104msgid_plural "%1 reviews"
105msgstr[0] "%1 باھا"
105msgstr[0] "%1 باھا"
106
106
107−#: qml/Dash/Previews/Reviews.qml:74
107+#: qml/Dash/Previews/PreviewActionCombo.qml:34
108+msgid "More..."
109+msgstr ""
110+
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "Less..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
108msgid "Add a review"
116msgid "Add a review"
109msgstr "باھا قوشۇش"
117msgstr "باھا قوشۇش"
110
118
119+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
120+msgid "Send"
121+msgstr "ئەۋەت"
122+
111#: qml/Dash/Previews/Reviews.qml:86
123#: qml/Dash/Previews/Reviews.qml:86
112msgid "Review"
124msgid "Review"
113msgstr "تەكشۈر"
125msgstr "تەكشۈر"
114
126
115−#: qml/Dash/Previews/Reviews.qml:121
116−msgid "Send"
117−msgstr "ئەۋەت"
118−
119#: qml/Dash/Previews/Reviews.qml:139
127#: qml/Dash/Previews/Reviews.qml:139
120msgid "Comments:"
128msgid "Comments:"
121msgstr "ئىنكاس:"
129msgstr "ئىنكاس:"
po/uk.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-11-23 12:37+0000\n"
11"PO-Revision-Date: 2013-11-23 12:37+0000\n"
12"Last-Translator: Ignat Kizenko <Unknown>\n"
12"Last-Translator: Ignat Kizenko <Unknown>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
13"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
19+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
20−"X-Generator: Launchpad (build 16916)\n"
20+"X-Generator: Launchpad (build 16963)\n"
21
21
22#: plugins/Unity/Launcher/launcheritem.cpp:43
22#: plugins/Unity/Launcher/launcheritem.cpp:43
23#: plugins/Unity/Launcher/launcheritem.cpp:73
23#: plugins/Unity/Launcher/launcheritem.cpp:73
@@ -77,19 +77,19 @@ msgid ""
77"phone<br><br>Tap on the screen to start"
77"phone<br><br>Tap on the screen to start"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/PageHeader.qml:339
80+#: qml/Components/PageHeader.qml:340
81msgid "Recent searches"
81msgid "Recent searches"
82msgstr "Нещодавні пошуки"
82msgstr "Нещодавні пошуки"
83
83
84−#: qml/Components/SeeMore.qml:32
84+#: qml/Components/SeeMore.qml:35
85msgid "See more"
85msgid "See more"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Components/SeeMore.qml:61
88+#: qml/Components/SeeMore.qml:57
89msgid "See less"
89msgid "See less"
90msgstr ""
90msgstr ""
91
91
92−#: qml/Dash/Apps/AppPreview.qml:136
92+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
93msgid "Rate this"
93msgid "Rate this"
94msgstr "Оцінити"
94msgstr "Оцінити"
95
95
@@ -108,18 +108,26 @@ msgstr[0] "%1 рецензія"
108msgstr[1] "%1 рецензії"
108msgstr[1] "%1 рецензії"
109msgstr[2] "%1 рецензій"
109msgstr[2] "%1 рецензій"
110
110
111−#: qml/Dash/Previews/Reviews.qml:74
111+#: qml/Dash/Previews/PreviewActionCombo.qml:34
112+msgid "More..."
113+msgstr ""
114+
115+#: qml/Dash/Previews/PreviewActionCombo.qml:34
116+msgid "Less..."
117+msgstr ""
118+
119+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
112msgid "Add a review"
120msgid "Add a review"
113msgstr "Додати рецензію"
121msgstr "Додати рецензію"
114
122
123+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
124+msgid "Send"
125+msgstr "Надіслати"
126+
115#: qml/Dash/Previews/Reviews.qml:86
127#: qml/Dash/Previews/Reviews.qml:86
116msgid "Review"
128msgid "Review"
117msgstr "Рецензія"
129msgstr "Рецензія"
118
130
119−#: qml/Dash/Previews/Reviews.qml:121
120−msgid "Send"
121−msgstr "Надіслати"
122−
123#: qml/Dash/Previews/Reviews.qml:139
131#: qml/Dash/Previews/Reviews.qml:139
124msgid "Comments:"
132msgid "Comments:"
125msgstr "Коментарі:"
133msgstr "Коментарі:"
po/unity8.pot+18−10
@@ -8,7 +8,7 @@ msgid ""
8msgstr ""
8msgstr ""
9"Project-Id-Version: unity8\n"
9"Project-Id-Version: unity8\n"
10"Report-Msgid-Bugs-To: \n"
10"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
11+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/vi.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/xh.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
11"PO-Revision-Date: 2013-09-28 13:20+0000\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
13"Language-Team: Xhosa <xh@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr ""
78msgstr ""
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/zh_CN.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\n"
11"PO-Revision-Date: 2013-10-09 13:51+0000\n"
11"PO-Revision-Date: 2013-10-09 13:51+0000\n"
12"Last-Translator: Aron Xu <Unknown>\n"
12"Last-Translator: Aron Xu <Unknown>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
13"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "近期搜索"
78msgstr "近期搜索"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr ""
90msgstr ""
91
91
@@ -103,18 +103,26 @@ msgid_plural "%1 reviews"
103msgstr[0] ""
103msgstr[0] ""
104msgstr[1] ""
104msgstr[1] ""
105
105
106−#: qml/Dash/Previews/Reviews.qml:74
106+#: qml/Dash/Previews/PreviewActionCombo.qml:34
107−msgid "Add a review"
107+msgid "More..."
108msgstr ""
108msgstr ""
109
109
110−#: qml/Dash/Previews/Reviews.qml:86
110+#: qml/Dash/Previews/PreviewActionCombo.qml:34
111−msgid "Review"
111+msgid "Less..."
112+msgstr ""
113+
114+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
115+msgid "Add a review"
112msgstr ""
116msgstr ""
113
117
114−#: qml/Dash/Previews/Reviews.qml:121
118+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
115msgid "Send"
119msgid "Send"
116msgstr ""
120msgstr ""
117
121
122+#: qml/Dash/Previews/Reviews.qml:86
123+msgid "Review"
124+msgstr ""
125+
118#: qml/Dash/Previews/Reviews.qml:139
126#: qml/Dash/Previews/Reviews.qml:139
119msgid "Comments:"
127msgid "Comments:"
120msgstr ""
128msgstr ""
po/zh_HK.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity8\n"
8"Project-Id-Version: unity8\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "最近的搜尋"
78msgstr "最近的搜尋"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "評價"
90msgstr "評價"
91
91
@@ -102,18 +102,26 @@ msgid "%1 review"
102msgid_plural "%1 reviews"
102msgid_plural "%1 reviews"
103msgstr[0] "%1 評論"
103msgstr[0] "%1 評論"
104
104
105−#: qml/Dash/Previews/Reviews.qml:74
105+#: qml/Dash/Previews/PreviewActionCombo.qml:34
106+msgid "More..."
107+msgstr ""
108+
109+#: qml/Dash/Previews/PreviewActionCombo.qml:34
110+msgid "Less..."
111+msgstr ""
112+
113+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
106msgid "Add a review"
114msgid "Add a review"
107msgstr "新增評論"
115msgstr "新增評論"
108
116
117+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
118+msgid "Send"
119+msgstr "傳送"
120+
109#: qml/Dash/Previews/Reviews.qml:86
121#: qml/Dash/Previews/Reviews.qml:86
110msgid "Review"
122msgid "Review"
111msgstr "評論"
123msgstr "評論"
112
124
113−#: qml/Dash/Previews/Reviews.qml:121
114−msgid "Send"
115−msgstr "傳送"
116−
117#: qml/Dash/Previews/Reviews.qml:139
125#: qml/Dash/Previews/Reviews.qml:139
118msgid "Comments:"
126msgid "Comments:"
119msgstr "評論:"
127msgstr "評論:"
po/zh_TW.po+20−12
@@ -7,7 +7,7 @@ msgid ""
7msgstr ""
7msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2014-02-04 15:43+0000\n"
10+"POT-Creation-Date: 2014-02-13 18:37+0000\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"
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2014-02-12 06:27+0000\n"
18+"X-Launchpad-Export-Date: 2014-03-18 06:26+0000\n"
19−"X-Generator: Launchpad (build 16916)\n"
19+"X-Generator: Launchpad (build 16963)\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
@@ -73,19 +73,19 @@ msgid ""
73"phone<br><br>Tap on the screen to start"
73"phone<br><br>Tap on the screen to start"
74msgstr ""
74msgstr ""
75
75
76−#: qml/Components/PageHeader.qml:339
76+#: qml/Components/PageHeader.qml:340
77msgid "Recent searches"
77msgid "Recent searches"
78msgstr "最近搜尋"
78msgstr "最近搜尋"
79
79
80−#: qml/Components/SeeMore.qml:32
80+#: qml/Components/SeeMore.qml:35
81msgid "See more"
81msgid "See more"
82msgstr ""
82msgstr ""
83
83
84−#: qml/Components/SeeMore.qml:61
84+#: qml/Components/SeeMore.qml:57
85msgid "See less"
85msgid "See less"
86msgstr ""
86msgstr ""
87
87
88−#: qml/Dash/Apps/AppPreview.qml:136
88+#: qml/Dash/Apps/AppPreview.qml:136 qml/Dash/Previews/PreviewRating.qml:70
89msgid "Rate this"
89msgid "Rate this"
90msgstr "對此評比"
90msgstr "對此評比"
91
91
@@ -102,18 +102,26 @@ msgid "%1 review"
102msgid_plural "%1 reviews"
102msgid_plural "%1 reviews"
103msgstr[0] "%1 回覆"
103msgstr[0] "%1 回覆"
104
104
105−#: qml/Dash/Previews/Reviews.qml:74
105+#: qml/Dash/Previews/PreviewActionCombo.qml:34
106+msgid "More..."
107+msgstr ""
108+
109+#: qml/Dash/Previews/PreviewActionCombo.qml:34
110+msgid "Less..."
111+msgstr ""
112+
113+#: qml/Dash/Previews/PreviewRating.qml:114 qml/Dash/Previews/Reviews.qml:74
106msgid "Add a review"
114msgid "Add a review"
107msgstr "新增回覆"
115msgstr "新增回覆"
108
116
117+#: qml/Dash/Previews/PreviewRating.qml:153 qml/Dash/Previews/Reviews.qml:121
118+msgid "Send"
119+msgstr "發送"
120+
109#: qml/Dash/Previews/Reviews.qml:86
121#: qml/Dash/Previews/Reviews.qml:86
110msgid "Review"
122msgid "Review"
111msgstr "回覆"
123msgstr "回覆"
112
124
113−#: qml/Dash/Previews/Reviews.qml:121
114−msgid "Send"
115−msgstr "發送"
116−
117#: qml/Dash/Previews/Reviews.qml:139
125#: qml/Dash/Previews/Reviews.qml:139
118msgid "Comments:"
126msgid "Comments:"
119msgstr "備註:"
127msgstr "備註:"
qml/Components/DragHandle.qml+2−1
@@ -167,7 +167,8 @@ EdgeDragArea {
167 EdgeDragEvaluator {
167 EdgeDragEvaluator {
168 objectName: "edgeDragEvaluator"
168 objectName: "edgeDragEvaluator"
169 id: dragEvaluator
169 id: dragEvaluator
170+ // Effectively convert distance into the drag position projected onto the gesture direction axis
170− trackedPosition: sceneDistance
171+ trackedPosition: Direction.isPositive(dragArea.direction) ? sceneDistance : -sceneDistance
171 maxDragDistance: maxTotalDragDistance
172 maxDragDistance: maxTotalDragDistance
172 direction: dragArea.direction
173 direction: dragArea.direction
173 }
174 }
qml/Components/Rating.qmlnew file+48
@@ -0,0 +1,48 @@
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+
20+/*! Rating widget bar. */
21+
22+StyledItem {
23+ id: root
24+
25+ //! True if it accepts user input.
26+ property bool interactive: true
27+
28+ //! Maximum rating.
29+ property real maximumValue: 5
30+
31+ //! Number of rating icons.
32+ property int size: 5
33+
34+ //! Current rating.
35+ property real value: -1
36+
37+ readonly property real effectiveValue: MathUtils.clamp(size * value / maximumValue, 0, maximumValue)
38+
39+ style: RatingStyle {}
40+
41+ MouseArea {
42+ anchors.fill: parent
43+ enabled: root.interactive
44+ onClicked: root.value = Math.ceil(mouse.x / averageIconWidth) * root.maximumValue / root.size
45+
46+ readonly property int averageIconWidth: width / root.size
47+ }
48+}
qml/Components/RatingStyle.qmlnew file+47
@@ -0,0 +1,47 @@
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+
20+Row {
21+ anchors.fill: parent
22+
23+ Repeater {
24+ id: repeater
25+ model: styledItem.size
26+
27+ property int indexHalfValue: {
28+ var integerPart = Math.floor(styledItem.effectiveValue);
29+ var fractionalPart = styledItem.effectiveValue - integerPart;
30+
31+ if (fractionalPart < 0.5) return -1;
32+ else return integerPart;
33+ }
34+ property url urlIconEmpty: styledItem.urlIconEmpty || "graphics/icon_star_empty.png"
35+ property url urlIconFull: styledItem.urlIconFull || "graphics/icon_star_full.png"
36+ property url urlIconHalf: styledItem.urlIconHalf || "graphics/icon_star_half.png"
37+
38+ Image {
39+ opacity: styledItem.value < 0 ? 0.4 : 1 // Let's make the stars look inactive for a not-set value
40+ source: {
41+ if (index === repeater.indexHalfValue) return repeater.urlIconHalf;
42+ else if (index < styledItem.effectiveValue) return repeater.urlIconFull;
43+ else return repeater.urlIconEmpty;
44+ }
45+ }
46+ }
47+}
qml/Components/Stage.qml+4−6
@@ -329,13 +329,11 @@ Showable {
329
329
330 ScriptAction {
330 ScriptAction {
331 script: {
331 script: {
332− if (!stage.focusedApplicationWhenUsingScreenshots) {
333− // FIXME: only here to support case where application does
332+ // FIXME: only here to support case where application does
334− // not exist yet but is about to
333+ // not exist yet but is about to
335− return;
334+ if (stage.focusedApplicationWhenUsingScreenshots) {
335+ stage.__focusApplication(stage.focusedApplicationWhenUsingScreenshots);
336 }
336 }
337−
338− stage.__focusApplication(stage.focusedApplicationWhenUsingScreenshots);
339 }
337 }
340 }
338 }
341 }
339 }
qml/Components/graphics/icon_star_empty@20.pngnew file

Binary file not shown.

qml/Components/graphics/icon_star_full@20.pngnew file

Binary file not shown.

qml/Components/graphics/icon_star_half@20.pngnew file

Binary file not shown.

qml/Dash/Apps/FrequentlyUsedAppsModel.qml+6−6
@@ -48,24 +48,24 @@ ListModel {
48 metadata: "subscope:applications.scope/applications-non-click.scope"
48 metadata: "subscope:applications.scope/applications-non-click.scope"
49 }
49 }
50 ListElement {
50 ListElement {
51− uri: "application://camera-app.desktop"
51+ uri: "appid://com.ubuntu.camera/camera/current-user-version"
52 icon: "../../graphics/applicationIcons/camera.png"
52 icon: "../../graphics/applicationIcons/camera.png"
53 category: 0
53 category: 0
54 mimetype: "application/x-desktop"
54 mimetype: "application/x-desktop"
55 title: "Camera"
55 title: "Camera"
56 comment: ""
56 comment: ""
57− dndUri: "file:///usr/share/applications/camera-app.desktop"
57+ dndUri: "appid://com.ubuntu.camera/camera/current-user-version"
58− metadata: "subscope:applications.scope/applications-non-click.scope"
58+ metadata: "subscope:applications.scope/applications-click.scope?app_id=com.ubuntu.camera"
59 }
59 }
60 ListElement {
60 ListElement {
61− uri: "application://gallery-app.desktop"
61+ uri: "appid://com.ubuntu.gallery/gallery/current-user-version"
62 icon: "../../graphics/applicationIcons/gallery.png"
62 icon: "../../graphics/applicationIcons/gallery.png"
63 category: 0
63 category: 0
64 mimetype: "application/x-desktop"
64 mimetype: "application/x-desktop"
65 title: "Gallery"
65 title: "Gallery"
66 comment: ""
66 comment: ""
67− dndUri: "file:///usr/share/applications/gallery.desktop"
67+ dndUri: "appid://com.ubuntu.gallery/gallery/current-user-version"
68− metadata: "subscope:applications.scope/applications-non-click.scope"
68+ metadata: "subscope:applications.scope/applications-click.scope?app_id=com.ubuntu.gallery"
69 }
69 }
70 ListElement {
70 ListElement {
71 uri: "appid://com.ubuntu.developer.webapps.webapp-facebook/webapp-facebook/current-user-version"
71 uri: "appid://com.ubuntu.developer.webapps.webapp-facebook/webapp-facebook/current-user-version"
qml/Dash/Card.qml+50−2
@@ -24,12 +24,47 @@ Item {
24 property var cardData
24 property var cardData
25
25
26 property alias fontScale: header.fontScale
26 property alias fontScale: header.fontScale
27+ property alias headerAlignment: header.headerAlignment
27 readonly property alias headerHeight: header.height
28 readonly property alias headerHeight: header.height
28
29
29 property bool showHeader: true
30 property bool showHeader: true
30
31
31 implicitWidth: childrenRect.width
32 implicitWidth: childrenRect.width
32− implicitHeight: summary.y + summary.height
33+ implicitHeight: summary.y + summary.height + (summary.text && background.visible ? units.gu(1) : 0)
34+
35+ UbuntuShape {
36+ id: background
37+ objectName: "background"
38+ radius: "medium"
39+ visible: template["card-layout"] !== "horizontal" && (template["card-background"] || components["background"]
40+ || artAndSummary)
41+ property bool artAndSummary: components["art"]["field"] && components["summary"] || false
42+ color: getColor(0) || "white"
43+ gradientColor: getColor(1) || color
44+ anchors.fill: parent
45+ image: backgroundImage.source ? backgroundImage : null
46+
47+ property real luminance: 0.2126 * color.r + 0.7152 * color.g + 0.0722 * color.b
48+
49+ property Image backgroundImage: Image {
50+ objectName: "backgroundImage"
51+ source: {
52+ if (cardData && typeof cardData["background"] === "string") return cardData["background"]
53+ else if (template && typeof template["card-background"] === "string") return template["card-background"]
54+ else return ""
55+ }
56+ }
57+
58+ function getColor(index) {
59+ if (cardData && typeof cardData["background"] === "object"
60+ && (cardData["background"]["type"] === "color" || cardData["background"]["type"] === "gradient")) {
61+ return cardData["background"]["elements"][index];
62+ } else if (template && typeof template["card-background"] === "object"
63+ && (template["card-background"]["type"] === "color" || template["card-background"]["type"] === "gradient")) {
64+ return template["card-background"]["elements"][index];
65+ } else return undefined;
66+ }
67+ }
33
68
34 UbuntuShape {
69 UbuntuShape {
35 id: artShape
70 id: artShape
@@ -127,7 +162,12 @@ Item {
127 title: cardData && cardData["title"] || ""
162 title: cardData && cardData["title"] || ""
128 subtitle: cardData && cardData["subtitle"] || ""
163 subtitle: cardData && cardData["subtitle"] || ""
129
164
165+ titleWeight: components && components["subtitle"] ? Font.DemiBold : Font.Normal
166+
130 opacity: showHeader ? 1 : 0
167 opacity: showHeader ? 1 : 0
168+ inOverlay: template["overlay"] === true
169+ fontColor: inOverlay ? "white" : summary.color
170+ useMascotShape: !background.visible && !inOverlay
131
171
132 Behavior on opacity { NumberAnimation { duration: UbuntuAnimation.SnapDuration } }
172 Behavior on opacity { NumberAnimation { duration: UbuntuAnimation.SnapDuration } }
133 }
173 }
@@ -135,12 +175,20 @@ Item {
135 Label {
175 Label {
136 id: summary
176 id: summary
137 objectName: "summaryLabel"
177 objectName: "summaryLabel"
178+ anchors {
138− anchors { top: header.visible ? header.bottom : artShape.bottom; left: parent.left; right: parent.right }
179+ top: header.visible ? header.bottom : artShape.bottom
180+ left: parent.left
181+ right: parent.right
182+ margins: background.visible ? units.gu(1) : 0
183+ topMargin: 0
184+ }
139 wrapMode: Text.Wrap
185 wrapMode: Text.Wrap
140 maximumLineCount: 5
186 maximumLineCount: 5
141 elide: Text.ElideRight
187 elide: Text.ElideRight
142 text: cardData && cardData["summary"] || ""
188 text: cardData && cardData["summary"] || ""
143 height: text ? implicitHeight : 0
189 height: text ? implicitHeight : 0
144 fontSize: "small"
190 fontSize: "small"
191+ // TODO karni: Change "grey" to Ubuntu.Components.Palette color once updated.
192+ color: background.visible && background.luminance < 0.7 ? "white" : "grey"
145 }
193 }
146}
194}
qml/Dash/CardHeader.qml+35−59
@@ -22,14 +22,20 @@ Item {
22 property alias mascot: mascotImage.source
22 property alias mascot: mascotImage.source
23 property alias title: titleLabel.text
23 property alias title: titleLabel.text
24 property alias subtitle: subtitleLabel.text
24 property alias subtitle: subtitleLabel.text
25− property alias price: priceLabel.text
25+
26− property alias oldPrice: oldPriceLabel.text
26+ property alias titleWeight: titleLabel.font.weight
27− property alias altPrice: altPriceLabel.text
27+ property alias titleSize: titleLabel.fontSize
28
28
29 // FIXME: Saviq, used to scale fonts down in Carousel
29 // FIXME: Saviq, used to scale fonts down in Carousel
30 property real fontScale: 1.0
30 property real fontScale: 1.0
31
31
32+ property alias headerAlignment: titleLabel.horizontalAlignment
33+
34+ property bool inOverlay: false
35+ property bool useMascotShape: true
36+ property color fontColor: Theme.palette.selected.backgroundText
37+
32− visible: mascotImage.status === Image.Ready || title || price
38+ visible: mascotImage.status === Image.Ready || title
33 height: row.height > 0 ? row.height + row.margins * 2 : 0
39 height: row.height > 0 ? row.height + row.margins * 2 : 0
34
40
35 Row {
41 Row {
@@ -38,13 +44,13 @@ Item {
38
44
39 property real margins: units.gu(1)
45 property real margins: units.gu(1)
40
46
47+ spacing: mascotShape.visible || mascotImage.visible || inOverlay ? margins : 0
41 anchors {
48 anchors {
42 top: parent.top; left: parent.left; right: parent.right
49 top: parent.top; left: parent.left; right: parent.right
43 margins: margins
50 margins: margins
44 leftMargin: spacing
51 leftMargin: spacing
45 rightMargin: spacing
52 rightMargin: spacing
46 }
53 }
47− spacing: mascotShape.visible || (template && template["overlay"]) ? margins : 0
48
54
49 UbuntuShape {
55 UbuntuShape {
50 id: mascotShape
56 id: mascotShape
@@ -53,35 +59,45 @@ Item {
53 // TODO karni: Icon aspect-ratio is 8:7.5. Revisit these values to avoid fraction of pixels.
59 // TODO karni: Icon aspect-ratio is 8:7.5. Revisit these values to avoid fraction of pixels.
54 width: units.gu(6)
60 width: units.gu(6)
55 height: units.gu(5.625)
61 height: units.gu(5.625)
62+ anchors.verticalCenter: parent.verticalCenter
56− visible: image.status === Image.Ready
63+ visible: useMascotShape && image && image.status === Image.Ready
57 readonly property int maxSize: Math.max(width, height)
64 readonly property int maxSize: Math.max(width, height)
58
65
59− image: Image {
60− id: mascotImage
66+ image: useMascotShape ? mascotImage : null
67+ }
61
68
69+ Image {
70+ id: mascotImage
71+ objectName: "mascotImage"
72+
73+ width: source ? mascotShape.width : 0
74+ height: mascotShape.height
75+ anchors.verticalCenter: parent.verticalCenter
76+ visible: !useMascotShape && status === Image.Ready
77+
62− sourceSize { width: mascotShape.maxSize; height: mascotShape.maxSize }
78+ sourceSize { width: mascotShape.maxSize; height: mascotShape.maxSize }
63− fillMode: Image.PreserveAspectCrop
79+ fillMode: Image.PreserveAspectCrop
64− horizontalAlignment: Image.AlignHCenter
80+ horizontalAlignment: Image.AlignHCenter
65− verticalAlignment: Image.AlignVCenter
81+ verticalAlignment: Image.AlignVCenter
66− }
67 }
82 }
68
83
69 Column {
84 Column {
70 objectName: "column"
85 objectName: "column"
71 width: parent.width - x
86 width: parent.width - x
72− spacing: units.gu(0.5)
87+ spacing: units.gu(0.25)
88+ anchors.verticalCenter: parent.verticalCenter
73
89
74 Label {
90 Label {
75 id: titleLabel
91 id: titleLabel
76 objectName: "titleLabel"
92 objectName: "titleLabel"
77 anchors { left: parent.left; right: parent.right }
93 anchors { left: parent.left; right: parent.right }
78 elide: Text.ElideRight
94 elide: Text.ElideRight
79− font.weight: Font.DemiBold
95+ font.weight: Font.Normal
96+ fontSize: "small"
80 wrapMode: Text.Wrap
97 wrapMode: Text.Wrap
81 maximumLineCount: 2
98 maximumLineCount: 2
82− fontSize: "small"
83 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale)
99 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale)
84− color: template["overlay"] === true ? "white" : Theme.palette.selected.backgroundText
100+ color: fontColor
85 }
101 }
86
102
87 Label {
103 Label {
@@ -89,51 +105,11 @@ Item {
89 objectName: "subtitleLabel"
105 objectName: "subtitleLabel"
90 anchors { left: parent.left; right: parent.right }
106 anchors { left: parent.left; right: parent.right }
91 elide: Text.ElideRight
107 elide: Text.ElideRight
108+ fontSize: "small"
92 font.weight: Font.Light
109 font.weight: Font.Light
93 visible: titleLabel.text && text
110 visible: titleLabel.text && text
94− fontSize: "x-small"
95 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale)
111 font.pixelSize: Math.round(FontUtils.sizeToPixels(fontSize) * fontScale)
96− color: template["overlay"] === true ? "white" : Theme.palette.selected.backgroundText
112+ color: fontColor
97− }
98−
99− Row {
100− id: prices
101− objectName: "prices"
102− anchors { left: parent.left; right: parent.right }
103−
104− property int labels: {
105− var labels = 1; // price always visible
106− if (oldPriceLabel.text !== "") labels += 1;
107− if (altPriceLabel.text !== "") labels += 1;
108− return labels;
109− }
110− property real labelWidth: width / labels
111−
112− Label {
113− id: priceLabel
114− width: parent.labelWidth
115− elide: Text.ElideRight
116− font.weight: Font.DemiBold
117− color: Theme.palette.selected.foreground
118− visible: text
119− }
120−
121− Label {
122− id: oldPriceLabel
123− objectName: "oldPriceLabel"
124− width: parent.labelWidth
125− elide: Text.ElideRight
126− horizontalAlignment: parent.labels === 3 ? Text.AlignHCenter : Text.AlignRight
127− visible: text
128− }
129−
130− Label {
131− id: altPriceLabel
132− width: parent.labelWidth
133− elide: Text.ElideRight
134− horizontalAlignment: Text.AlignRight
135− visible: text
136− }
137 }
113 }
138 }
114 }
139 }
115 }
qml/Dash/CardTool.qml+64−8
@@ -28,6 +28,22 @@ import QtQuick 2.0
28
28
29Item {
29Item {
30 id: cardTool
30 id: cardTool
31+
32+ /*!
33+ \brief Number of cards.
34+ */
35+ property int count
36+
37+ /*!
38+ \brief Width of the category view.
39+ */
40+ property real viewWidth
41+
42+ /*!
43+ \brief Scaling factor of selected Carousel item.
44+ */
45+ readonly property real carouselSelectedItemScaleFactor: 1.38 // XXX assuming 1.38 carousel scaling factor for cards
46+
31 /*!
47 /*!
32 \brief Template supplied for the category.
48 \brief Template supplied for the category.
33 */
49 */
@@ -39,9 +55,15 @@ Item {
39 property var components
55 property var components
40
56
41 /*!
57 /*!
42− \brief Width of the view, based on which carousel width is calculated.
58+ \brief The category layout for this card tool.
43 */
59 */
44− property var viewWidth
60+ property string categoryLayout: {
61+ var layout = template["category-layout"];
62+
63+ // carousel fallback mode to grid
64+ if (layout === "carousel" && count <= Math.ceil(carouselTool.realPathItemCount)) layout = "grid";
65+ return layout;
66+ }
45
67
46 // FIXME: Saviq
68 // FIXME: Saviq
47 // Only way for the card below to actually be laid out completely.
69 // Only way for the card below to actually be laid out completely.
@@ -56,7 +78,7 @@ Item {
56 If undefined, should use implicit width of the actual card.
78 If undefined, should use implicit width of the actual card.
57 */
79 */
58 readonly property var cardWidth: {
80 readonly property var cardWidth: {
59− switch (template !== undefined && template["category-layout"]) {
81+ switch (categoryLayout) {
60 case "grid":
82 case "grid":
61 case "vertical-journal":
83 case "vertical-journal":
62 if (template["card-layout"] === "horizontal") return units.gu(38);
84 if (template["card-layout"] === "horizontal") return units.gu(38);
@@ -66,10 +88,7 @@ Item {
66 }
88 }
67 return units.gu(18.5);
89 return units.gu(18.5);
68 case "carousel":
90 case "carousel":
69− if (viewWidth === undefined) return undefined
91+ return carouselTool.minimumTileWidth;
70− if (viewWidth <= units.gu(40)) return units.gu(18)
71− if (viewWidth >= units.gu(128)) return units.gu(26)
72− return units.gu(18 + Math.round((viewWidth - units.gu(40))/ units.gu(11)))
73 case undefined:
92 case undefined:
74 case "organic-grid":
93 case "organic-grid":
75 case "journal":
94 case "journal":
@@ -84,7 +103,7 @@ Item {
84 If undefined, should use implicit height of the actual card.
103 If undefined, should use implicit height of the actual card.
85 */
104 */
86 readonly property var cardHeight: {
105 readonly property var cardHeight: {
87− switch (template !== undefined && template["category-layout"]) {
106+ switch (categoryLayout) {
88 case "journal":
107 case "journal":
89 if (template["card-size"] >= 12 && template["card-size"] <= 38) return units.gu(template["card-size"]);
108 if (template["card-size"] >= 12 && template["card-size"] <= 38) return units.gu(template["card-size"]);
90 return units.gu(18.5);
109 return units.gu(18.5);
@@ -105,6 +124,43 @@ Item {
105 */
124 */
106 readonly property alias headerHeight: card.headerHeight
125 readonly property alias headerHeight: card.headerHeight
107
126
127+ /*!
128+ \brief Desired alignment of header components.
129+ */
130+ readonly property int headerAlignment: {
131+ var subtitle = components["subtitle"];
132+ var price = components["price"];
133+ var summary = components["summary"];
134+
135+ var hasSubtitle = subtitle && (typeof subtitle === "string" || subtitle["field"])
136+ var hasPrice = price && (typeof price === "string" || subtitle["field"]);
137+ var hasSummary = summary && (typeof summary === "string" || summary["field"])
138+
139+ var isOnlyTextComponent = !hasSubtitle && !hasPrice && !hasSummary;
140+ if (!isOnlyTextComponent) return Text.AlignLeft;
141+
142+ return (template["card-layout"] === "horizontal") ? Text.AlignLeft : Text.AlignHCenter;
143+ }
144+
145+ QtObject {
146+ id: carouselTool
147+
148+ property real minimumTileWidth: {
149+ if (cardTool.viewWidth === undefined) return undefined;
150+ if (cardTool.viewWidth <= units.gu(40)) return units.gu(18);
151+ if (cardTool.viewWidth >= units.gu(128)) return units.gu(26);
152+ return units.gu(18 + Math.round((cardTool.viewWidth - units.gu(40)) / units.gu(11)));
153+ }
154+
155+ readonly property real pathItemCount: 4.8457 /// (848 / 175) reference values
156+
157+ property real realPathItemCount: {
158+ var scaledMinimumTileWidth = minimumTileWidth / cardTool.carouselSelectedItemScaleFactor;
159+ var tileWidth = Math.max(cardTool.viewWidth / pathItemCount, scaledMinimumTileWidth);
160+ return Math.min(cardTool.viewWidth / tileWidth, pathItemCount);
161+ }
162+ }
163+
108 Card {
164 Card {
109 id: card
165 id: card
110 objectName: "card"
166 objectName: "card"
qml/Dash/Dash.qml+1−1
@@ -27,8 +27,8 @@ Showable {
27 visible: shown
27 visible: shown
28
28
29 property ListModel searchHistory: SearchHistoryModel {}
29 property ListModel searchHistory: SearchHistoryModel {}
30+ property bool searchable: !dashContent.previewOpen
30
31
31− property alias contentProgress: dashContent.contentProgress
32 property string showScopeOnLoaded: "home.scope"
32 property string showScopeOnLoaded: "home.scope"
33 property real contentScale: 1.0
33 property real contentScale: 1.0
34
34
qml/Dash/DashContent.qml+1−8
@@ -24,16 +24,14 @@ Item {
24
24
25 property var model: null
25 property var model: null
26 property var scopes: null
26 property var scopes: null
27− property real contentProgress: Math.max(0, Math.min(dashContentList.contentX / (dashContentList.contentWidth - dashContentList.width), units.dp(1)))
28 property alias currentIndex: dashContentList.currentIndex
27 property alias currentIndex: dashContentList.currentIndex
28+ property alias previewOpen: previewListView.open
29
29
30 property ScopeDelegateMapper scopeMapper : ScopeDelegateMapper {}
30 property ScopeDelegateMapper scopeMapper : ScopeDelegateMapper {}
31 property ListModel searchHistory
31 property ListModel searchHistory
32
32
33 signal movementStarted()
33 signal movementStarted()
34 signal movementEnded()
34 signal movementEnded()
35− signal contentFlickStarted()
36− signal contentEndReached()
37 signal scopeLoaded(string scopeId)
35 signal scopeLoaded(string scopeId)
38 signal positionedAtBeginning()
36 signal positionedAtBeginning()
39
37
@@ -144,11 +142,6 @@ Item {
144 dashContent.positionedAtBeginning.connect(item.positionedAtBeginning)
142 dashContent.positionedAtBeginning.connect(item.positionedAtBeginning)
145 dashContent.scopeLoaded(item.scope.id)
143 dashContent.scopeLoaded(item.scope.id)
146 }
144 }
147− Connections {
148− target: item
149− ignoreUnknownSignals: true
150− onEndReached: contentEndReached()
151− }
152
145
153 Component.onDestruction: active = false
146 Component.onDestruction: active = false
154 }
147 }
qml/Dash/GenericScopeView.qml+1−5
@@ -33,7 +33,6 @@ FocusScope {
33 property OpenEffect openEffect: null
33 property OpenEffect openEffect: null
34 property Item previewListView: null
34 property Item previewListView: null
35
35
36− signal endReached
37 signal movementStarted
36 signal movementStarted
38 signal positionedAtBeginning
37 signal positionedAtBeginning
39
38
@@ -118,9 +117,6 @@ FocusScope {
118 model: scopeView.categories
117 model: scopeView.categories
119 forceNoClip: previewListView.onScreen
118 forceNoClip: previewListView.onScreen
120
119
121− onAtYEndChanged: if (atYEnd) endReached()
122− onMovingChanged: if (moving && atYEnd) endReached()
123−
124 property string expandedCategoryId: ""
120 property string expandedCategoryId: ""
125 signal correctExpandedCategory();
121 signal correctExpandedCategory();
126
122
@@ -287,7 +283,7 @@ FocusScope {
287
283
288 sectionProperty: "name"
284 sectionProperty: "name"
289 sectionDelegate: ListItems.Header {
285 sectionDelegate: ListItems.Header {
290− objectName: "dashSectionHeader" + delegate.category
286+ objectName: "dashSectionHeader" + (delegate ? delegate.category : "")
291 property var delegate: categoryView.item(delegateIndex)
287 property var delegate: categoryView.item(delegateIndex)
292 width: categoryView.width
288 width: categoryView.width
293 text: section
289 text: section
qml/Dash/Previews/PreviewActions.qml+1−1
@@ -24,7 +24,7 @@ import QtQuick 2.1
24PreviewWidget {
24PreviewWidget {
25 id: root
25 id: root
26
26
27− height: row.height
27+ height: row.height + units.gu(1)
28
28
29 Row {
29 Row {
30 id: row
30 id: row
qml/Dash/Previews/PreviewHeader.qml+3−1
@@ -34,5 +34,7 @@ PreviewWidget {
34 title: root.widgetData["title"] || ""
34 title: root.widgetData["title"] || ""
35 subtitle: root.widgetData["subtitle"] || ""
35 subtitle: root.widgetData["subtitle"] || ""
36 width: parent.width
36 width: parent.width
37+
38+ titleSize: "large"
37 }
39 }
38−}
40+}
qml/Dash/Previews/PreviewImageGallery.qml+9
@@ -33,6 +33,15 @@ PreviewWidget {
33 cacheBuffer: width * 3
33 cacheBuffer: width * 3
34 model: root.widgetData["sources"]
34 model: root.widgetData["sources"]
35
35
36+ // FIXME: Because of ListViews inside ListViews inside Flickables inside ListViews (and some more)
37+ // we finally reached the point where this ListView doesn't correctly get swipe input any more but
38+ // instead the parent ListView is the one that is swiped. This MouseArea sort of creates a blocking
39+ // layer to make sure this ListView can be swiped, regardless of what's behind it.
40+ MouseArea {
41+ anchors.fill: parent
42+ enabled: parent.contentWidth > parent.width
43+ }
44+
36 LazyImage {
45 LazyImage {
37 objectName: "placeholderScreenshot"
46 objectName: "placeholderScreenshot"
38 anchors {
47 anchors {
qml/Dash/Previews/PreviewProgress.qmlnew file+70
@@ -0,0 +1,70 @@
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.1
18+import Ubuntu.Components 0.1
19+import Ubuntu.DownloadDaemonListener 0.1
20+
21+/*! \brief Preview widget for a progress bar.
22+ *
23+ * It feeds itself from the source determined in widgetData["source"]
24+ * At the moment we only support the dbus source defined
25+ * by source["dbus-name"] and source["dbus-object"]
26+ */
27+
28+PreviewWidget {
29+ id: root
30+
31+ implicitHeight: progressBar.implicitHeight
32+ implicitWidth: progressBar.implicitWidth
33+
34+ ProgressBar {
35+ id: progressBar
36+ objectName: "progressBar"
37+ value: 0
38+ maximumValue: 100
39+ implicitHeight: units.gu(5)
40+ height: parent.height
41+ width: parent.width
42+
43+ property var source: widgetData["source"]
44+ // TODO Eventually we will need to support more sources other
45+ // than DownloadTracker via dbus so we'll need a Loader based on source contents
46+
47+ DownloadTracker {
48+ service: progressBar.source["dbus-name"] || ""
49+ dbusPath: progressBar.source["dbus-object"] || ""
50+
51+ onProgress: {
52+ if (total <= 0) {
53+ progressBar.indeterminate = true;
54+ } else {
55+ progressBar.indeterminate = false;
56+ var percentage = parseInt(received * 100 / total);
57+ progressBar.value = percentage;
58+ }
59+ }
60+
61+ onFinished: {
62+ root.triggered(widgetId, "finished", widgetData)
63+ }
64+
65+ onError: {
66+ root.triggered(widgetId, "failed", widgetData)
67+ }
68+ }
69+ }
70+}
qml/Dash/Previews/PreviewRatingDisplay.qmlnew file+101
@@ -0,0 +1,101 @@
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 "../../Components"
20+
21+/*! \brief Preview widget for rating display.
22+
23+ The widget can show a rating widget and a field showing a comment.
24+ The icons used in the rating widget can be customised with
25+ widgetData["rating-icon-empty"], widgetData["rating-icon-full"]
26+ and widgetData["rating-icon-half"].
27+
28+ This widget shows reviews contained in widgetData["reviews"], each of which should be of the form:
29+
30+ \code{.json}
31+ {
32+ "rating": null,
33+ "review": null,
34+ "author": null
35+ }
36+ \endcode
37+ */
38+
39+PreviewWidget {
40+ id: root
41+ height: childrenRect.height
42+
43+ Column {
44+ anchors { left: parent.left; right: parent.right; }
45+ visible: reviewsRepeater.count > 0
46+
47+ Repeater {
48+ id: reviewsRepeater
49+ objectName: "reviewsRepeater"
50+ model: root.widgetData["reviews"]
51+
52+ delegate: Column {
53+ id: reviewItem
54+ objectName: "reviewItem" + index
55+ anchors { left: parent.left; right: parent.right;}
56+ spacing: units.gu(1)
57+
58+ Rating {
59+ id: rating
60+ objectName: "rating"
61+ size: 5
62+ value: modelData["rating"] || -1
63+ visible: value >= 0
64+
65+ property var urlIconEmpty: widgetData["rating-icon-empty"]
66+ property var urlIconFull: widgetData["rating-icon-full"]
67+ property var urlIconHalf: widgetData["rating-icon-half"]
68+ }
69+
70+ Label {
71+ id: authorLabel
72+ objectName: "authorLabel"
73+ anchors { left: parent.left; right: parent.right }
74+ color: Theme.palette.selected.backgroundText
75+ opacity: .8
76+ text: modelData["author"] || ""
77+ visible: text !== ""
78+ wrapMode: Text.Wrap
79+ }
80+
81+ Label {
82+ id: reviewLabel
83+ objectName: "reviewLabel"
84+ anchors { left: parent.left; right: parent.right }
85+ color: Theme.palette.selected.backgroundText
86+ opacity: .8
87+ text: modelData["review"] || ""
88+ visible: text !== ""
89+ wrapMode: Text.Wrap
90+ }
91+
92+ Item {
93+ id: spacing
94+ anchors { left: parent.left; right: parent.right }
95+ height: units.gu(2)
96+ visible: rating.visible || authorLabel.visible || reviewLabel.visible
97+ }
98+ }
99+ }
100+ }
101+}
qml/Dash/Previews/PreviewRatingInput.qmlnew file+173
@@ -0,0 +1,173 @@
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 "../../Components"
20+
21+/*! \brief Preview widget for rating.
22+
23+ The widget can show a rating widget and a field to enter a comment.
24+ The visibility of the two widgets is specified by widgetData["visible"],
25+ accepting "both", "rating" or "review".
26+ The requirement of the review is specified by widgetData["visible"],
27+ accepting "both", "rating" or "review".
28+ It is possible to customise labels, widgetData["rating-label"] for the rating,
29+ widgetData["rewiew-label"] for the comment field and widgetData["submit-label"]
30+ for the submit button.
31+ The icons used in the rating widget can be customised with
32+ widgetData["rating-icon-empty"] and widgetData["rating-icon-full"].
33+ The successeful submit emits triggered(widgetId, widgetData["required"], data),
34+ with data being {"rating": rating value, "review": review comment, "author": null (for now)}.
35+*/
36+
37+PreviewWidget {
38+ id: root
39+ implicitHeight: {
40+ switch(widgetData["visible"]) {
41+ default:
42+ case "both":
43+ return ratingLabelAndWidgetContainer.implicitHeight + reviewContainer.implicitHeight;
44+ case "rating":
45+ return ratingLabelAndWidgetContainer.implicitHeight;
46+ case "review":
47+ return reviewContainer.implicitHeight;
48+ }
49+ }
50+
51+ function submit() {
52+ // checks rating-input requirements
53+ if (((widgetData["required"] === "both" ||
54+ widgetData["required"] === "rating") &&
55+ rating.value < 0) ||
56+ ((widgetData["required"] === "both" ||
57+ widgetData["required"] === "review") &&
58+ reviewTextArea.text === "")) return;
59+
60+ var data = {"rating": rating.value, "review": reviewTextArea.text, "author": null};
61+ triggered(root.widgetId, widgetData["required"], data);
62+ }
63+
64+ Item {
65+ id: ratingLabelAndWidgetContainer
66+ anchors {
67+ left: parent.left
68+ right: parent.right
69+ }
70+ implicitHeight: rating.height
71+ visible: widgetData["visible"] !== "review"
72+
73+ Label {
74+ objectName: "ratingLabel"
75+ anchors {
76+ verticalCenter: parent.verticalCenter
77+ left: parent.left
78+ }
79+ color: Theme.palette.selected.backgroundText
80+ opacity: .8
81+ text: widgetData["rating-label"] || i18n.tr("Rate this")
82+ }
83+
84+ Rating {
85+ id: rating
86+ objectName: "rating"
87+ anchors {
88+ verticalCenter: parent.verticalCenter
89+ right: parent.right
90+ }
91+ size: 5
92+ onValueChanged: {
93+ if (widgetData["visible"] === "rating") root.submit();
94+ }
95+
96+ property var urlIconEmpty: widgetData["rating-icon-empty"]
97+ property var urlIconFull: widgetData["rating-icon-full"]
98+ }
99+ }
100+
101+ Item {
102+ id: reviewContainer
103+ implicitHeight: reviewLabel.implicitHeight + reviewSubmitContainer.implicitHeight + anchors.topMargin
104+
105+ readonly property real innerMargin: units.gu(1)
106+
107+ anchors {
108+ left: parent.left
109+ right: parent.right
110+ top: ratingLabelAndWidgetContainer.visible ? ratingLabelAndWidgetContainer.bottom : parent.top
111+ bottom: parent.bottom
112+ topMargin: ratingLabelAndWidgetContainer.visible ? reviewContainer.innerMargin : 0
113+ }
114+ visible: widgetData["visible"] !== "rating"
115+
116+ Label {
117+ objectName: "reviewLabel"
118+ id: reviewLabel
119+ anchors {
120+ top: parent.top
121+ left: parent.left
122+ right: parent.right
123+ }
124+ color: Theme.palette.selected.backgroundText
125+ opacity: .8
126+ text: widgetData["review-label"] || i18n.tr("Add a review")
127+ }
128+
129+ Item {
130+ id: reviewSubmitContainer
131+ anchors {
132+ top: reviewLabel.bottom
133+ left: parent.left
134+ right: parent.right
135+ bottom: parent.bottom
136+ topMargin: reviewContainer.innerMargin
137+ }
138+ implicitHeight: reviewTextArea.implicitHeight + anchors.topMargin
139+
140+ TextArea {
141+ id: reviewTextArea
142+ objectName: "reviewTextArea"
143+ anchors {
144+ top: parent.top
145+ left: parent.left
146+ right: submitButton.left
147+ rightMargin: reviewContainer.innerMargin
148+ }
149+ }
150+
151+ Button {
152+ id: submitButton
153+ objectName: "submitButton"
154+
155+ readonly property bool readyToSubmit: {
156+ if (reviewTextArea.text === "" ||
157+ (widgetData["visible"] === "both" && rating.value < 0)) return false;
158+ else return true;
159+ }
160+
161+ anchors {
162+ top: parent.top
163+ right: parent.right
164+ }
165+ color: readyToSubmit ? Theme.palette.selected.base : Theme.palette.normal.base
166+ text: widgetData["submit-label"] || i18n.tr("Send")
167+ onClicked: {
168+ if (readyToSubmit) root.submit()
169+ }
170+ }
171+ }
172+ }
173+}
qml/Dash/Previews/PreviewTextSummary.qml+2−1
@@ -58,7 +58,8 @@ PreviewWidget {
58 }
58 }
59 height: (!seeMore.visible || seeMore.more) ? contentHeight : contentHeight / lineCount * (maximumCollapsedLineCount - 2)
59 height: (!seeMore.visible || seeMore.more) ? contentHeight : contentHeight / lineCount * (maximumCollapsedLineCount - 2)
60 clip: true
60 clip: true
61− fontSize: "medium"
61+ fontSize: "small"
62+ lineHeight: 1.2
62 color: Theme.palette.selected.backgroundText
63 color: Theme.palette.selected.backgroundText
63 opacity: .8
64 opacity: .8
64 text: widgetData["text"]
65 text: widgetData["text"]
qml/Dash/Previews/PreviewVideoPlayback.qml+2−1
@@ -36,7 +36,6 @@ PreviewWidget {
36 right: parent.right
36 right: parent.right
37 }
37 }
38 scaleTo: "width"
38 scaleTo: "width"
39− visible: state === "ready"
40 source: {
39 source: {
41 var screenshot = widgetData["screenshot"];
40 var screenshot = widgetData["screenshot"];
42 if (screenshot) return screenshot;
41 if (screenshot) return screenshot;
@@ -61,9 +60,11 @@ PreviewWidget {
61 width: bigButton ? units.gu(8) : units.gu(4.5)
60 width: bigButton ? units.gu(8) : units.gu(4.5)
62 height: width
61 height: width
63 source: "../graphics/play_button%1%2.png".arg(previewImageMouseArea.pressed ? "_active" : "").arg(bigButton ? "_big" : "")
62 source: "../graphics/play_button%1%2.png".arg(previewImageMouseArea.pressed ? "_active" : "").arg(bigButton ? "_big" : "")
63+ visible: parent.state === "ready"
64 }
64 }
65
65
66 MouseArea {
66 MouseArea {
67+ enabled: parent.state === "ready"
67 id: previewImageMouseArea
68 id: previewImageMouseArea
68 anchors.fill: parent
69 anchors.fill: parent
69 onClicked: Qt.openUrlExternally(widgetData["source"])
70 onClicked: Qt.openUrlExternally(widgetData["source"])
qml/Dash/Previews/PreviewWidget.qml+1−1
@@ -30,7 +30,7 @@ Item {
30
30
31 /*! \brief This signal should be emitted when a preview action was triggered.
31 /*! \brief This signal should be emitted when a preview action was triggered.
32 *
32 *
33− * \param widgetId,actionId Respective identifiers from widgetData.
33+ * \param widgetId, actionId Respective identifiers from widgetData.
34 * \param data Optional widget-specific data sent to the scope.
34 * \param data Optional widget-specific data sent to the scope.
35 */
35 */
36 signal triggered(string widgetId, string actionId, var data)
36 signal triggered(string widgetId, string actionId, var data)
qml/Dash/Previews/PreviewWidgetFactory.qml+3
@@ -47,6 +47,9 @@ Loader {
47 case "gallery": return "PreviewImageGallery.qml";
47 case "gallery": return "PreviewImageGallery.qml";
48 case "header": return "PreviewHeader.qml";
48 case "header": return "PreviewHeader.qml";
49 case "image": return "PreviewZoomableImage.qml"
49 case "image": return "PreviewZoomableImage.qml"
50+ case "progress": return "PreviewProgress.qml";
51+ case "rating-input": return "PreviewRatingInput.qml";
52+ case "reviews": return "PreviewRatingDisplay.qml";
50 case "text": return "PreviewTextSummary.qml";
53 case "text": return "PreviewTextSummary.qml";
51 case "video": return "PreviewVideoPlayback.qml";
54 case "video": return "PreviewVideoPlayback.qml";
52 default: return "";
55 default: return "";
qml/Greeter/Greeter.qml+5−1
@@ -37,7 +37,7 @@ Showable {
37 property alias model: greeterContentLoader.model
37 property alias model: greeterContentLoader.model
38 property bool locked: shown && !LightDM.Greeter.promptless
38 property bool locked: shown && !LightDM.Greeter.promptless
39
39
40− readonly property bool narrowMode: !multiUser && width <= units.gu(60)
40+ readonly property bool narrowMode: !multiUser && height > width
41 readonly property bool multiUser: LightDM.Users.count > 1
41 readonly property bool multiUser: LightDM.Users.count > 1
42
42
43 readonly property bool leftTeaserPressed: greeterContentLoader.status == Loader.Ready &&
43 readonly property bool leftTeaserPressed: greeterContentLoader.status == Loader.Ready &&
@@ -67,6 +67,10 @@ Showable {
67
67
68 source: required ? "GreeterContent.qml" : ""
68 source: required ? "GreeterContent.qml" : ""
69
69
70+ onLoaded: {
71+ selected(currentIndex);
72+ }
73+
70 Connections {
74 Connections {
71 target: greeterContentLoader.item
75 target: greeterContentLoader.item
72
76
qml/Greeter/GreeterContent.qml−1
@@ -96,7 +96,6 @@ MouseArea {
96
96
97 onLoaded: {
97 onLoaded: {
98 item.currentIndex = greeterContentLoader.currentIndex;
98 item.currentIndex = greeterContentLoader.currentIndex;
99− selected(item.currentIndex);
100 item.resetAuthentication();
99 item.resetAuthentication();
101 }
100 }
102
101
qml/Panel/IndicatorItem.qml+13−21
@@ -19,37 +19,29 @@ import Ubuntu.Components 0.1
19import Unity.Indicators 0.1 as Indicators
19import Unity.Indicators 0.1 as Indicators
20import "../Components"
20import "../Components"
21
21
22−Item {
22+Loader {
23− id: indicatorItem
23+ id: root
24
24
25− property alias widgetSource: loader.source
25+ property alias widgetSource: root.source
26 property bool dimmed: false
26 property bool dimmed: false
27 property var indicatorProperties: undefined
27 property var indicatorProperties: undefined
28− property bool indicatorVisible: loader.item ? loader.item.enabled : false
28+ property bool indicatorVisible: item ? item.enabled : false
29 property string identifier
29 property string identifier
30
30
31 opacity: dimmed ? 0.4 : 1
31 opacity: dimmed ? 0.4 : 1
32 Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.BriskDuration } }
32 Behavior on opacity { UbuntuNumberAnimation { duration: UbuntuAnimation.BriskDuration } }
33
33
34− width: loader.item ? loader.item.width : 0
35−
36− Loader {
37− id: loader
38−
39− onLoaded: {
34+ onLoaded: {
40− item.height = Qt.binding(function() { return indicatorItem.height; });
41−
42− for(var pName in indicatorProperties) {
35+ for(var pName in indicatorProperties) {
43− if (item.hasOwnProperty(pName)) {
36+ if (item.hasOwnProperty(pName)) {
44− item[pName] = indicatorProperties[pName];
37+ item[pName] = indicatorProperties[pName];
45− }
46 }
38 }
47 }
39 }
40+ }
48
41
49− Binding {
42+ Binding {
50− target: loader.item
43+ target: item
51− property: "objectName"
44+ property: "objectName"
52− value: identifier + "-widget"
45+ value: identifier + "-widget"
53− }
54 }
46 }
55}
47}
qml/Panel/Indicators.qml+1−1
@@ -32,7 +32,7 @@ Showable {
32 property alias overFlowWidth: indicatorRow.overFlowWidth
32 property alias overFlowWidth: indicatorRow.overFlowWidth
33 property alias showAll: indicatorRow.showAll
33 property alias showAll: indicatorRow.showAll
34 // TODO: This should be sourced by device type (eg "desktop", "tablet", "phone"...)
34 // TODO: This should be sourced by device type (eg "desktop", "tablet", "phone"...)
35− property string profile: "phone"
35+ property string profile: indicatorProfile
36
36
37 readonly property real hintValue: panelHeight + menuContent.headerHeight
37 readonly property real hintValue: panelHeight + menuContent.headerHeight
38 readonly property int lockThreshold: openedHeight / 2
38 readonly property int lockThreshold: openedHeight / 2
qml/Shell.qml+2−4
@@ -340,7 +340,7 @@ FocusScope {
340 }
340 }
341 }
341 }
342
342
343− enabled: shell.width >= units.gu(60)
343+ enabled: shell.width >= units.gu(100)
344 visible: enabled
344 visible: enabled
345 fullyShown: stages.fullyShown && shown
345 fullyShown: stages.fullyShown && shown
346 && sideStage[sideStageRevealer.boundProperty] == sideStageRevealer.openedValue
346 && sideStage[sideStageRevealer.boundProperty] == sideStageRevealer.openedValue
@@ -421,7 +421,6 @@ FocusScope {
421 Component.onCompleted: {
421 Component.onCompleted: {
422 if (LightDM.Users.count == 1) {
422 if (LightDM.Users.count == 1) {
423 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole))
423 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole))
424− greeter.selected(0)
425 }
424 }
426 }
425 }
427 }
426 }
@@ -497,7 +496,6 @@ FocusScope {
497 // If there are more users, the Greeter will handle that
496 // If there are more users, the Greeter will handle that
498 if (LightDM.Users.count == 1) {
497 if (LightDM.Users.count == 1) {
499 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
498 LightDM.Greeter.authenticate(LightDM.Users.data(0, LightDM.UserRoles.NameRole));
500− greeter.selected(0);
501 }
499 }
502 greeter.forceActiveFocus();
500 greeter.forceActiveFocus();
503 removeApplicationFocus();
501 removeApplicationFocus();
@@ -596,7 +594,7 @@ FocusScope {
596 contentEnabled: edgeDemo.panelContentEnabled
594 contentEnabled: edgeDemo.panelContentEnabled
597 }
595 }
598 fullscreenMode: shell.fullscreenMode
596 fullscreenMode: shell.fullscreenMode
599− searchVisible: !greeter.shown && !lockscreen.shown && dash.shown
597+ searchVisible: !greeter.shown && !lockscreen.shown && dash.shown && dash.searchable
600
598
601 InputFilterArea {
599 InputFilterArea {
602 anchors {
600 anchors {
src/main.cpp+6
@@ -59,6 +59,11 @@ int startShell(int argc, const char** argv, void* server)
59 application = new QGuiApplication(argc, (char**)argv);
59 application = new QGuiApplication(argc, (char**)argv);
60 }
60 }
61
61
62+ QString indicatorProfile = qgetenv("UNITY_INDICATOR_PROFILE");
63+ if (indicatorProfile.isEmpty()) {
64+ indicatorProfile = "phone";
65+ }
66+
62 resolveIconTheme();
67 resolveIconTheme();
63
68
64 QStringList args = application->arguments();
69 QStringList args = application->arguments();
@@ -88,6 +93,7 @@ int startShell(int argc, const char** argv, void* server)
88 view->setTitle("Qml Phone Shell");
93 view->setTitle("Qml Phone Shell");
89 view->engine()->setBaseUrl(QUrl::fromLocalFile(::qmlDirectory()));
94 view->engine()->setBaseUrl(QUrl::fromLocalFile(::qmlDirectory()));
90 view->rootContext()->setContextProperty("applicationArguments", &qmlArgs);
95 view->rootContext()->setContextProperty("applicationArguments", &qmlArgs);
96+ view->rootContext()->setContextProperty("indicatorProfile", indicatorProfile);
91 if (args.contains(QLatin1String("-frameless"))) {
97 if (args.contains(QLatin1String("-frameless"))) {
92 view->setFlags(Qt::FramelessWindowHint);
98 view->setFlags(Qt::FramelessWindowHint);
93 }
99 }
tests/autopilot/unity8/__init__.py+5−2
@@ -82,7 +82,10 @@ def get_binary_path(binary="unity8"):
82 )
82 )
83 if not os.path.exists(binary_path):
83 if not os.path.exists(binary_path):
84 try:
84 try:
85− binary_path = subprocess.check_output(['which', binary]).strip()
85+ binary_path = subprocess.check_output(
86+ ['which', binary],
87+ universal_newlines=True,
88+ ).strip()
86 except subprocess.CalledProcessError as e:
89 except subprocess.CalledProcessError as e:
87 raise RuntimeError("Unable to locate %s binary: %r" % (binary, e))
90 raise RuntimeError("Unable to locate %s binary: %r" % (binary, e))
88 return binary_path
91 return binary_path
@@ -128,7 +131,7 @@ def _get_xdg_upstart_env():
128 "get-env",
131 "get-env",
129 "--global",
132 "--global",
130 "XDG_DATA_DIRS"
133 "XDG_DATA_DIRS"
131− ]).rstrip()
134+ ], universal_newlines=True).rstrip()
132 except subprocess.CalledProcessError:
135 except subprocess.CalledProcessError:
133 return None
136 return None
134
137
tests/autopilot/unity8/application_lifecycle/tests/test_url_dispatcher.py+5−40
@@ -20,12 +20,11 @@
20"""Test the integration with the URL dispatcher service."""
20"""Test the integration with the URL dispatcher service."""
21
21
22import os
22import os
23−import tempfile
24
23
25from autopilot import platform
24from autopilot import platform
26from autopilot.matchers import Eventually
25from autopilot.matchers import Eventually
27from testtools.matchers import Equals
26from testtools.matchers import Equals
28−from ubuntuuitoolkit import base as toolkit_base
27+from ubuntuuitoolkit import fixture_setup
29
28
30from unity8 import process_helpers
29from unity8 import process_helpers
31from unity8.shell import tests
30from unity8.shell import tests
@@ -47,13 +46,6 @@ MainView {
47 text: 'Test application.'
46 text: 'Test application.'
48 }
47 }
49}
48}
50−""")
51−
52− desktop_file_contents = ("""[Desktop Entry]
53−Type=Application
54−Name=test
55−Exec={qmlscene} {qml_file_path}
56−Icon=Not important
57""")
49""")
58
50
59 def setUp(self):
51 def setUp(self):
@@ -66,37 +58,10 @@ Icon=Not important
66 process_helpers.unlock_unity(unity_proxy)
58 process_helpers.unlock_unity(unity_proxy)
67
59
68 def create_test_application(self):
60 def create_test_application(self):
69− # FIXME most of this code is duplicated in the toolkit. We should
61+ fake_application = fixture_setup.FakeApplication(self.test_qml)
70− # create a fixture on the toolkit for other projects to use.
62+ self.useFixture(fake_application)
71− # http://pad.lv/1277334 --elopio - 2014-02-06
72− qml_file_path = self._write_test_qml_file()
73− self.addCleanup(os.remove, qml_file_path)
74− desktop_file_path = self._write_test_desktop_file(qml_file_path)
75− self.addCleanup(os.remove, desktop_file_path)
76− return qml_file_path, desktop_file_path
77−
78− def _write_test_qml_file(self):
79− qml_file = tempfile.NamedTemporaryFile(suffix='.qml', delete=False)
80− qml_file.write(self.test_qml.encode('utf-8'))
81− qml_file.close()
82− return qml_file.name
83−
84− def _write_test_desktop_file(self, qml_file_path):
85− desktop_file_dir = self._get_local_desktop_file_directory()
86− if not os.path.exists(desktop_file_dir):
87− os.makedirs(desktop_file_dir)
88− desktop_file = tempfile.NamedTemporaryFile(
89− suffix='.desktop', dir=desktop_file_dir, delete=False)
90− contents = self.desktop_file_contents.format(
91− qmlscene=toolkit_base.get_qmlscene_launch_command(),
92− qml_file_path=qml_file_path)
93− desktop_file.write(contents.encode('utf-8'))
94− desktop_file.close()
95− return desktop_file.name
96−
97− def _get_local_desktop_file_directory(self):
98− return os.path.join(
63+ return (
99− os.environ.get('HOME'), '.local', 'share', 'applications')
64+ fake_application.qml_file_path, fake_application.desktop_file_path)
100
65
101 def test_swipe_out_application_started_by_url_dispatcher(self):
66 def test_swipe_out_application_started_by_url_dispatcher(self):
102 _, desktop_file_path = self.create_test_application()
67 _, desktop_file_path = self.create_test_application()
tests/autopilot/unity8/process_helpers.py+1−1
@@ -142,7 +142,7 @@ def _get_unity_status():
142 '/sbin/initctl',
142 '/sbin/initctl',
143 'status',
143 'status',
144 'unity8'
144 'unity8'
145− ])
145+ ], universal_newlines=True)
146 except subprocess.CalledProcessError as e:
146 except subprocess.CalledProcessError as e:
147 raise CannotAccessUnity("Unable to get unity's status: %s" % str(e))
147 raise CannotAccessUnity("Unable to get unity's status: %s" % str(e))
148
148
tests/autopilot/unity8/shell/__init__.py+11−2
@@ -50,13 +50,22 @@ def disable_qml_mocking(fn):
50
50
51class DragMixin(object):
51class DragMixin(object):
52 def _drag(self, x1, y1, x2, y2):
52 def _drag(self, x1, y1, x2, y2):
53+ # XXX This ugly code is here just temporarily, waiting for drag
54+ # improvements to land on autopilot so we don't have to access device
55+ # private internal attributes. --elopio - 2014-02-12
53 cur_x = x1
56 cur_x = x1
54 cur_y = y1
57 cur_y = y1
55 dx = 1.0 * (x2 - x1) / 100
58 dx = 1.0 * (x2 - x1) / 100
56 dy = 1.0 * (y2 - y1) / 100
59 dy = 1.0 * (y2 - y1) / 100
57 for i in range(0, 100):
60 for i in range(0, 100):
61+ try:
58− self.touch._finger_move(int(cur_x), int(cur_y))
62+ self.touch._finger_move(int(cur_x), int(cur_y))
63+ except AttributeError:
64+ self.touch._device.finger_move(int(cur_x), int(cur_y))
59 sleep(0.002)
65 sleep(0.002)
60 cur_x += dx
66 cur_x += dx
61 cur_y += dy
67 cur_y += dy
68+ try:
62− self.touch._finger_move(int(x2), int(y2))
69+ self.touch._finger_move(int(x2), int(y2))
70+ except AttributeError:
71+ self.touch._device.finger_move(int(x2), int(y2))
tests/autopilot/unity8/shell/emulators/create_interactive_notification.py+2−1
@@ -1,4 +1,5 @@
1#!/usr/bin/env python
1#!/usr/bin/env python
2+from __future__ import print_function
2
3
3# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
4# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
4#
5#
@@ -25,7 +26,7 @@ import signal
25
26
26
27
27def action_callback(notification, action_id, data):
28def action_callback(notification, action_id, data):
28− print action_id
29+ print(action_id)
29
30
30
31
31def quit_callback(notification):
32def quit_callback(notification):
tests/autopilot/unity8/shell/emulators/hud.py+8−1
@@ -54,7 +54,14 @@ class Hud(UnityEmulatorBase, DragMixin):
54 except AssertionError:
54 except AssertionError:
55 raise
55 raise
56 finally:
56 finally:
57+ # XXX This ugly code is here just temporarily, waiting for uinput
58+ # improvements to land on autopilot so we don't have to access
59+ # device private internal attributes. --elopio - 2014-02-12
60+ try:
57− if self.touch._touch_finger is not None:
61+ pressed = self.touch._touch_finger is not None
62+ except AttributeError:
63+ pressed = self.touch.pressed
64+ if pressed:
58 self.touch.release()
65 self.touch.release()
59
66
60 def dismiss(self):
67 def dismiss(self):
tests/autopilot/unity8/shell/tests/__init__.py+12−13
@@ -85,12 +85,12 @@ class UnityTestCase(AutopilotTestCase):
85 @classmethod
85 @classmethod
86 def setUpClass(cls):
86 def setUpClass(cls):
87 try:
87 try:
88− output = subprocess.check_output([
88+ output = subprocess.check_output(
89− "/sbin/initctl",
89+ ["/sbin/initctl", "status", "unity8"],
90− "status",
91− "unity8"
92− ], stderr=subprocess.STDOUT)
90+ stderr=subprocess.STDOUT,
91+ universal_newlines=True,
92+ )
93− except subprocess.CalledProcessError, e:
93+ except subprocess.CalledProcessError as e:
94 sys.stderr.write(
94 sys.stderr.write(
95 "Error: `initctl status unity8` failed, most probably the "
95 "Error: `initctl status unity8` failed, most probably the "
96 "unity8 session could not be found:\n\n"
96 "unity8 session could not be found:\n\n"
@@ -218,12 +218,11 @@ class UnityTestCase(AutopilotTestCase):
218 def _patch_environment(self, key, value):
218 def _patch_environment(self, key, value):
219 """Wrapper for patching env for upstart environment."""
219 """Wrapper for patching env for upstart environment."""
220 try:
220 try:
221− current_value = subprocess.check_output([
221+ current_value = subprocess.check_output(
222− "/sbin/initctl",
222+ ["/sbin/initctl", "get-env", "--global", key],
223− "get-env",
224− "--global",
225− key
226− ], stderr=subprocess.STDOUT).rstrip()
223+ stderr=subprocess.STDOUT,
224+ universal_newlines=True,
225+ ).rstrip()
227 except subprocess.CalledProcessError:
226 except subprocess.CalledProcessError:
228 current_value = None
227 current_value = None
229
228
@@ -305,7 +304,7 @@ class UnityTestCase(AutopilotTestCase):
305
304
306 binary_arg = "BINARY=%s" % binary_path
305 binary_arg = "BINARY=%s" % binary_path
307 extra_args = "ARGS=%s" % " ".join(args)
306 extra_args = "ARGS=%s" % " ".join(args)
308− env_args = ["%s=%s" % (k, v) for k, v in self._environment.iteritems()]
307+ env_args = ["%s=%s" % (k, v) for k, v in self._environment.items()]
309 all_args = [binary_arg, extra_args] + env_args
308 all_args = [binary_arg, extra_args] + env_args
310
309
311 self.addCleanup(self._cleanup_launching_upstart_unity)
310 self.addCleanup(self._cleanup_launching_upstart_unity)
tests/autopilot/unity8/shell/tests/test_hud.py → tests/autopilot/unity8/shell/tests/disabled_test_hud.pyrenamed+10−3
@@ -163,7 +163,7 @@ class TestHud(UnityTestCase, DragMixin):
163 self.assertThat(hud.shown, Eventually(Equals(False)))
163 self.assertThat(hud.shown, Eventually(Equals(False)))
164
164
165 def _launch_test_app_from_app_screen(self):
165 def _launch_test_app_from_app_screen(self):
166− """Launches the camera app using the Dash UI.
166+ """Launches the browser app using the Dash UI.
167
167
168 Because when testing on the desktop running
168 Because when testing on the desktop running
169 self.launch_application() will launch the application on the desktop
169 self.launch_application() will launch the application on the desktop
@@ -171,7 +171,7 @@ class TestHud(UnityTestCase, DragMixin):
171
171
172 """
172 """
173 dash = self.main_window.get_dash()
173 dash = self.main_window.get_dash()
174− icon = dash.get_application_icon('Camera')
174+ icon = dash.get_application_icon('Browser')
175 self.touch.tap_object(icon)
175 self.touch.tap_object(icon)
176
176
177 # Ensure application is open
177 # Ensure application is open
@@ -184,5 +184,12 @@ class TestHud(UnityTestCase, DragMixin):
184 # we don't.
184 # we don't.
185 def _maybe_release_finger(self):
185 def _maybe_release_finger(self):
186 """Only release the finger if it is in fact down."""
186 """Only release the finger if it is in fact down."""
187+ # XXX This ugly code is here just temporarily, waiting for uinput
188+ # improvements to land on autopilot so we don't have to access device
189+ # private internal attributes. --elopio - 2014-02-12
190+ try:
187− if self.touch._touch_finger is not None:
191+ pressed = self.touch._touch_finger is not None
192+ except AttributeError:
193+ pressed = self.touch.pressed
194+ if pressed:
188 self.touch.release()
195 self.touch.release()
tests/autopilot/unity8/shell/tests/test_emulators.py+4−1
@@ -27,7 +27,10 @@ don't break them for those external projects.
27
27
28"""
28"""
29
29
30+try:
31+ from unittest import mock
32+except ImportError:
30−import mock
33+ import mock
31
34
32from testtools.matchers import Contains, HasLength
35from testtools.matchers import Contains, HasLength
33
36
tests/autopilot/unity8/shell/tests/test_lock_screen.py+18−3
@@ -26,12 +26,18 @@ from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
26
26
27from autopilot.matchers import Eventually
27from autopilot.matchers import Eventually
28from autopilot.platform import model
28from autopilot.platform import model
29+import sys
29from testtools import skipUnless
30from testtools import skipUnless
30from testtools.matchers import Equals
31from testtools.matchers import Equals
31import logging
32import logging
32
33
33logger = logging.getLogger(__name__)
34logger = logging.getLogger(__name__)
34
35
36+# py2 compatible alias for py3
37+if sys.version >= '3':
38+ basestring = str
39+
40+
35class TestLockscreen(UnityTestCase):
41class TestLockscreen(UnityTestCase):
36
42
37 """Tests for the lock screen."""
43 """Tests for the lock screen."""
@@ -125,7 +131,10 @@ class TestLockscreen(UnityTestCase):
125 """
131 """
126
132
127 if not isinstance(code, basestring):
133 if not isinstance(code, basestring):
134+ raise TypeError(
128− raise TypeError("'code' parameter must be a string.")
135+ "'code' parameter must be a string, not %r."
136+ % type(passphrase)
137+ )
129 for num in code:
138 for num in code:
130 if not num.isdigit():
139 if not num.isdigit():
131 raise ValueError(
140 raise ValueError(
@@ -142,7 +151,10 @@ class TestLockscreen(UnityTestCase):
142
151
143 """
152 """
144 if not isinstance(passphrase, basestring):
153 if not isinstance(passphrase, basestring):
154+ raise TypeError(
145− raise TypeError("'passphrase' parameter must be a string.")
155+ "'passphrase' parameter must be a string, not %r."
156+ % type(passphrase)
157+ )
146
158
147 pinentryField = self.main_window.get_pinentryField()
159 pinentryField = self.main_window.get_pinentryField()
148 self.touch.tap_object(pinentryField)
160 self.touch.tap_object(pinentryField)
@@ -161,7 +173,10 @@ class TestLockscreen(UnityTestCase):
161
173
162 """
174 """
163 if not isinstance(passphrase, basestring):
175 if not isinstance(passphrase, basestring):
176+ raise TypeError(
164− raise TypeError("'passphrase' parameter must be a string.")
177+ "'passphrase' parameter must be a string, not %r."
178+ % type(passphrase)
179+ )
165
180
166 prompt = self.main_window.get_greeter().get_prompt()
181 prompt = self.main_window.get_greeter().get_prompt()
167 self.touch.tap_object(prompt)
182 self.touch.tap_object(prompt)
tests/autopilot/unity8/shell/tests/test_notifications.py+9−2
@@ -33,9 +33,15 @@ import os
33import logging
33import logging
34import signal
34import signal
35import subprocess
35import subprocess
36+import sys
36
37
37logger = logging.getLogger(__name__)
38logger = logging.getLogger(__name__)
38
39
40+# from __future__ import range
41+# (python3's range, is same as python2's xrange)
42+if sys.version_info < (3,):
43+ range = xrange
44+
39
45
40class NotificationsBase(UnityTestCase):
46class NotificationsBase(UnityTestCase):
41 """Base class for all notification tests that provides helper methods."""
47 """Base class for all notification tests that provides helper methods."""
@@ -188,7 +194,7 @@ class InteractiveNotificationBase(NotificationsBase):
188
194
189 notify_list = self._get_notifications_list()
195 notify_list = self._get_notifications_list()
190 get_notification = lambda: notify_list.wait_select_single(
196 get_notification = lambda: notify_list.wait_select_single(
191− 'Notification', objectName='notification0')
197+ 'Notification', objectName='notification1')
192 notification = get_notification()
198 notification = get_notification()
193 self._assert_notification(notification, None, None, True, True, 1.0)
199 self._assert_notification(notification, None, None, True, True, 1.0)
194 initial_height = notification.height
200 initial_height = notification.height
@@ -261,6 +267,7 @@ class InteractiveNotificationBase(NotificationsBase):
261 stdout=subprocess.PIPE,
267 stdout=subprocess.PIPE,
262 stderr=subprocess.PIPE,
268 stderr=subprocess.PIPE,
263 close_fds=True,
269 close_fds=True,
270+ universal_newlines=True,
264 )
271 )
265
272
266 self.addCleanup(self._tidy_up_script_process)
273 self.addCleanup(self._tidy_up_script_process)
@@ -298,7 +305,7 @@ class InteractiveNotificationBase(NotificationsBase):
298 if self._notify_proc is None:
305 if self._notify_proc is None:
299 raise AssertionError("No interactive notification was created.")
306 raise AssertionError("No interactive notification was created.")
300
307
301− for i in xrange(timeout):
308+ for i in range(timeout):
302 self._notify_proc.poll()
309 self._notify_proc.poll()
303 if self._notify_proc.returncode is not None:
310 if self._notify_proc.returncode is not None:
304 output = self._notify_proc.communicate()
311 output = self._notify_proc.communicate()
tests/autopilot/unity8/shell/tests/test_upstart.py+6−1
@@ -36,6 +36,11 @@ import logging
36
36
37logger = logging.getLogger(__name__)
37logger = logging.getLogger(__name__)
38
38
39+# from __future__ import range
40+# (python3's range, is same as python2's xrange)
41+import sys
42+if sys.version_info < (3,):
43+ range = xrange
39
44
40class UpstartIntegrationTests(UnityTestCase):
45class UpstartIntegrationTests(UnityTestCase):
41
46
@@ -52,7 +57,7 @@ class UpstartIntegrationTests(UnityTestCase):
52 self.process = subprocess.Popen([get_binary_path()] + self.unity_geometry_args)
57 self.process = subprocess.Popen([get_binary_path()] + self.unity_geometry_args)
53 def ensure_stopped():
58 def ensure_stopped():
54 self.process.terminate()
59 self.process.terminate()
55− for i in xrange(10):
60+ for i in range(10):
56 try:
61 try:
57 self._get_status()
62 self._get_status()
58 except OSError:
63 except OSError:
tests/mocks/AccountsService/AccountsService.cpp+1−1
@@ -20,7 +20,7 @@
20
20
21AccountsService::AccountsService(QObject* parent)
21AccountsService::AccountsService(QObject* parent)
22 : QObject(parent),
22 : QObject(parent),
23− m_backgroundFile(TOP_SRCDIR "/graphics/phone_background.jpg"),
23+ m_backgroundFile(TOP_SRCDIR "/qml/graphics/phone_background.jpg"),
24 m_statsWelcomeScreen(true)
24 m_statsWelcomeScreen(true)
25{
25{
26}
26}
tests/mocks/Unity/Indicators/CMakeLists.txt+1
@@ -16,6 +16,7 @@ set(IndicatorsFakeQml_SOURCES
16 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/menucontentactivator.cpp
16 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/menucontentactivator.cpp
17 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelstack.cpp
17 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelstack.cpp
18 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/visibleindicatorsmodel.cpp
18 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/visibleindicatorsmodel.cpp
19+ fakeindicatorsmodel.cpp
19)
20)
20
21
21set(IndicatorsFakeQml_RESOURCES
22set(IndicatorsFakeQml_RESOURCES
tests/mocks/Unity/Indicators/IndicatorsModel.qml+3−5
@@ -17,12 +17,10 @@
17import QtQuick 2.0
17import QtQuick 2.0
18import Unity.Indicators 0.1 as Indicators
18import Unity.Indicators 0.1 as Indicators
19
19
20−ListModel {
20+Indicators.FakeIndicatorsModel {
21
21
22− property var indicatorData : undefined
23−
24− function load() {
22+ function load(profile) {
25− clear();
23+ unload();
26
24
27 append({ "identifier": "indicator-fake1",
25 append({ "identifier": "indicator-fake1",
28 "position": 0,
26 "position": 0,
tests/mocks/Unity/Indicators/fakeindicatorsmodel.cppnew file+116
@@ -0,0 +1,116 @@
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 Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Nick Dedekind <nick.dedekind@canonical.com>
18+ */
19+
20+#include "fakeindicatorsmodel.h"
21+#include "indicators.h"
22+
23+FakeIndicatorsModel::FakeIndicatorsModel(QObject *parent)
24+ : QAbstractListModel(parent)
25+{
26+ QObject::connect(this, SIGNAL(rowsInserted(const QModelIndex &, int, int)), this, SIGNAL(countChanged()));
27+ QObject::connect(this, SIGNAL(rowsRemoved(const QModelIndex &, int, int)), this, SIGNAL(countChanged()));
28+ QObject::connect(this, SIGNAL(modelReset()), this, SIGNAL(countChanged()));
29+}
30+
31+/*! \internal */
32+FakeIndicatorsModel::~FakeIndicatorsModel()
33+{
34+ unload();
35+}
36+
37+int FakeIndicatorsModel::count() const
38+{
39+ return rowCount();
40+}
41+
42+void FakeIndicatorsModel::load(const QString&)
43+{
44+}
45+
46+void FakeIndicatorsModel::unload()
47+{
48+ beginResetModel();
49+
50+ qDeleteAll(m_indicators);
51+ m_indicators.clear();
52+
53+ endResetModel();
54+}
55+
56+
57+void FakeIndicatorsModel::append(const QVariantMap& row)
58+{
59+ Indicator* new_row = new QHash<int, QVariant>();
60+ for (auto iter = row.begin(); iter != row.end(); ++iter )
61+ {
62+ int key = roleNames().key(iter.key().toUtf8(), -1);
63+ if (key != -1) {
64+ new_row->insert(key, iter.value());
65+ }
66+ }
67+
68+ beginInsertRows(QModelIndex(), m_indicators.count(), m_indicators.count());
69+
70+ m_indicators.append(new_row);
71+
72+ endInsertRows();
73+}
74+
75+QHash<int, QByteArray> FakeIndicatorsModel::roleNames() const
76+{
77+ static QHash<int, QByteArray> roles;
78+ if (roles.isEmpty())
79+ {
80+ roles[IndicatorsModelRole::Identifier] = "identifier";
81+ roles[IndicatorsModelRole::Position] = "position";
82+ roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
83+ roles[IndicatorsModelRole::PageSource] = "pageSource";
84+ roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
85+ }
86+ return roles;
87+}
88+
89+int FakeIndicatorsModel::columnCount(const QModelIndex &) const
90+{
91+ return 1;
92+}
93+
94+Q_INVOKABLE QVariant FakeIndicatorsModel::data(int row, int role) const
95+{
96+ return data(index(row, 0), role);
97+}
98+
99+QVariant FakeIndicatorsModel::data(const QModelIndex &index, int role) const
100+{
101+ if (!index.isValid() || index.row() >= m_indicators.size())
102+ return QVariant();
103+
104+ Indicator* indicator = m_indicators[index.row()];
105+ return indicator->value(role, QVariant());
106+}
107+
108+QModelIndex FakeIndicatorsModel::parent(const QModelIndex&) const
109+{
110+ return QModelIndex();
111+}
112+
113+int FakeIndicatorsModel::rowCount(const QModelIndex&) const
114+{
115+ return m_indicators.count();
116+}
tests/mocks/Unity/Indicators/fakeindicatorsmodel.hnew file+59
@@ -0,0 +1,59 @@
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 Lesser General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU Lesser General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU Lesser General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ *
16+ * Authors:
17+ * Nick Dedekind <nick.dedekind@canonical.com>
18+ */
19+
20+#ifndef FAKE_INDICATORSMODEL_H
21+#define FAKE_INDICATORSMODEL_H
22+
23+#include <QAbstractListModel>
24+
25+class FakeIndicatorsModel : public QAbstractListModel
26+{
27+ Q_OBJECT
28+ Q_ENUMS(Roles)
29+ Q_PROPERTY(int count READ count NOTIFY countChanged)
30+public:
31+
32+ FakeIndicatorsModel(QObject *parent=0);
33+ ~FakeIndicatorsModel();
34+
35+ Q_INVOKABLE void load(const QString& profile);
36+ Q_INVOKABLE void unload();
37+
38+ Q_INVOKABLE void append(const QVariantMap& row);
39+
40+ Q_INVOKABLE QVariant data(int row, int role) const;
41+
42+ /* QAbstractItemModel */
43+ QHash<int, QByteArray> roleNames() const;
44+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
45+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
46+ QModelIndex parent (const QModelIndex &index) const;
47+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
48+
49+Q_SIGNALS:
50+ void countChanged();
51+
52+private:
53+ int count() const;
54+
55+ typedef QHash<int, QVariant> Indicator;
56+ QList<Indicator*> m_indicators;
57+};
58+
59+#endif // FAKE_INDICATORSMODEL_H
tests/mocks/Unity/Indicators/fakeplugin.cpp+6
@@ -23,6 +23,7 @@
23#include "fakeplugin.h"
23#include "fakeplugin.h"
24
24
25// local
25// local
26+#include "fakeindicatorsmodel.h"
26#include "indicators.h"
27#include "indicators.h"
27#include "menucontentactivator.h"
28#include "menucontentactivator.h"
28#include "unitymenumodelstack.h"
29#include "unitymenumodelstack.h"
@@ -32,10 +33,15 @@ void IndicatorsFakePlugin::registerTypes(const char * uri)
32{
33{
33 Q_INIT_RESOURCE(indicators_fake);
34 Q_INIT_RESOURCE(indicators_fake);
34
35
36+ // internal
37+ qmlRegisterType<FakeIndicatorsModel>(uri, 0, 1, "FakeIndicatorsModel");
38+
39+ // external
35 qmlRegisterType<MenuContentActivator>(uri, 0, 1, "MenuContentActivator");
40 qmlRegisterType<MenuContentActivator>(uri, 0, 1, "MenuContentActivator");
36 qmlRegisterType<UnityMenuModelStack>(uri, 0, 1, "UnityMenuModelStack");
41 qmlRegisterType<UnityMenuModelStack>(uri, 0, 1, "UnityMenuModelStack");
37 qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
42 qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
38
43
44+ // external uncreatables
39 qmlRegisterUncreatableType<MenuContentState>(uri, 0, 1, "MenuContentState", "Can't create MenuContentState class");
45 qmlRegisterUncreatableType<MenuContentState>(uri, 0, 1, "MenuContentState", "Can't create MenuContentState class");
40 qmlRegisterUncreatableType<ActionState>(uri, 0, 1, "ActionState", "Can't create ActionState class");
46 qmlRegisterUncreatableType<ActionState>(uri, 0, 1, "ActionState", "Can't create ActionState class");
41 qmlRegisterUncreatableType<NetworkActionState>(uri, 0, 1, "NetworkActionState", "Can't create NetworkActionState class");
47 qmlRegisterUncreatableType<NetworkActionState>(uri, 0, 1, "NetworkActionState", "Can't create NetworkActionState class");
tests/mocks/data/applications/camera-app.desktop → tests/mocks/data/applications/webbrowser-app.desktoprenamed

The content is the same.

tests/plugins/DashViews/listviewwithpageheadertest.cpp+27−6
@@ -1281,9 +1281,6 @@ private Q_SLOTS:
1281
1281
1282 void testShowHeaderHalfShown()
1282 void testShowHeaderHalfShown()
1283 {
1283 {
1284−#if (QT_VERSION < QT_VERSION_CHECK(5, 1, 0))
1285− QSKIP("This test is extremely unstable in 5.0.x");
1286−#endif
1287 changeContentY(20);
1284 changeContentY(20);
1288
1285
1289 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
1286 QTRY_COMPARE(lvwph->m_visibleItems.count(), 4);
@@ -1860,12 +1857,36 @@ private Q_SLOTS:
1860 model->setProperty(4, "size", 10);
1857 model->setProperty(4, "size", 10);
1861 model->setProperty(5, "size", 10);
1858 model->setProperty(5, "size", 10);
1862 model->setProperty(6, "size", 10);
1859 model->setProperty(6, "size", 10);
1863−#if (QT_VERSION > QT_VERSION_CHECK(5, 0, 3))
1864− QTRY_COMPARE(lvwph->m_minYExtent, 210.);
1865−#endif
1866 QTRY_COMPARE(lvwph->m_headerItem->y(), -lvwph->m_minYExtent);
1860 QTRY_COMPARE(lvwph->m_headerItem->y(), -lvwph->m_minYExtent);
1867 }
1861 }
1868
1862
1863+ void testResizeRemoveInsertBug1279434()
1864+ {
1865+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 6));
1866+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 0);
1867+
1868+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 100));
1869+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 125));
1870+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 2);
1871+ QCOMPARE(lvwph->m_firstVisibleIndex, 0);
1872+ verifyItem(0, 50., 125., false);
1873+ verifyItem(1, 175., 100., false);
1874+
1875+ lvwph->setContentY(175);
1876+
1877+ model->setProperty(1, "size", 4);
1878+ model->setProperty(0, "size", 4);
1879+
1880+ model->setProperty(0, "size", 6);
1881+
1882+ QMetaObject::invokeMethod(model, "removeItems", Q_ARG(QVariant, 0), Q_ARG(QVariant, 2));
1883+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 0);
1884+ QCOMPARE(lvwph->m_firstVisibleIndex, -1);
1885+
1886+ QMetaObject::invokeMethod(model, "insertItem", Q_ARG(QVariant, 0), Q_ARG(QVariant, 100));
1887+ QTRY_COMPARE(lvwph->m_visibleItems.count(), 1);
1888+ }
1889+
1869private:
1890private:
1870 QQuickView *view;
1891 QQuickView *view;
1871 ListViewWithPageHeader *lvwph;
1892 ListViewWithPageHeader *lvwph;
tests/plugins/DashViews/listviewwithpageheadertestsection.cpp−3
@@ -1486,9 +1486,6 @@ private Q_SLOTS:
1486
1486
1487 void testShowHeaderHalfShown()
1487 void testShowHeaderHalfShown()
1488 {
1488 {
1489−#if (QT_VERSION < QT_VERSION_CHECK(5, 1, 0))
1490− QSKIP("This test is extremely unstable in 5.0.x");
1491−#endif
1492 changeContentY(20);
1489 changeContentY(20);
1493
1490
1494 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
1491 QTRY_COMPARE(lvwph->m_visibleItems.count(), 3);
tests/plugins/DashViews/organicgridtest.cpp+2−1
@@ -134,11 +134,12 @@ private Q_SLOTS:
134 view->setSource(QUrl::fromLocalFile(DASHVIEWSTEST_FOLDER "/organicgridtest.qml"));
134 view->setSource(QUrl::fromLocalFile(DASHVIEWSTEST_FOLDER "/organicgridtest.qml"));
135
135
136 view->show();
136 view->show();
137− view->resize(470, 400);
138 QTest::qWaitForWindowExposed(view);
137 QTest::qWaitForWindowExposed(view);
138+ view->resize(470, 400);
139
139
140 grid = dynamic_cast<OrganicGrid*>(view->rootObject()->findChild<QObject*>("grid"));
140 grid = dynamic_cast<OrganicGrid*>(view->rootObject()->findChild<QObject*>("grid"));
141 grid->setModel(model);
141 grid->setModel(model);
142+ QTRY_COMPARE(grid->width(), 470.);
142
143
143 checkInitialPositions();
144 checkInitialPositions();
144 }
145 }
tests/plugins/DashViews/verticaljournaltest.cpp+2−1
@@ -135,11 +135,12 @@ private Q_SLOTS:
135 view->setSource(QUrl::fromLocalFile(DASHVIEWSTEST_FOLDER "/verticaljournaltest.qml"));
135 view->setSource(QUrl::fromLocalFile(DASHVIEWSTEST_FOLDER "/verticaljournaltest.qml"));
136
136
137 view->show();
137 view->show();
138− view->resize(470, 400);
139 QTest::qWaitForWindowExposed(view);
138 QTest::qWaitForWindowExposed(view);
139+ view->resize(470, 400);
140
140
141 vj = dynamic_cast<VerticalJournal*>(view->rootObject()->findChild<QObject*>("vj"));
141 vj = dynamic_cast<VerticalJournal*>(view->rootObject()->findChild<QObject*>("vj"));
142 vj->setModel(model);
142 vj->setModel(model);
143+ QTRY_COMPARE(vj->width(), 470.);
143
144
144 checkInitialPositions();
145 checkInitialPositions();
145 }
146 }
tests/plugins/Ubuntu/Gestures/DownwardsLauncher.qml+8−1
@@ -63,7 +63,7 @@ Item {
63 dragAreaRect.opacity = 0.3
63 dragAreaRect.opacity = 0.3
64 launcher.y = Qt.binding(launcher.followDragArea)
64 launcher.y = Qt.binding(launcher.followDragArea)
65 break;
65 break;
66− defaut: // DirectionalDragArea.Recognized:
66+ default: // DirectionalDragArea.Recognized:
67 dragAreaRect.color = "green"
67 dragAreaRect.color = "green"
68 dragAreaRect.opacity = 0.5
68 dragAreaRect.opacity = 0.5
69 break;
69 break;
@@ -76,4 +76,11 @@ Item {
76 top: parent.top
76 top: parent.top
77 }
77 }
78 }
78 }
79+
80+ Label {
81+ text: "Downwards"
82+ anchors.top: parent.top
83+ anchors.horizontalCenter: parent.horizontalCenter
84+ anchors.topMargin: units.gu(1)
85+ }
79}
86}
tests/plugins/Ubuntu/Gestures/LeftwardsLauncher.qml+7
@@ -79,4 +79,11 @@ Item {
79 bottom: parent.bottom
79 bottom: parent.bottom
80 }
80 }
81 }
81 }
82+
83+ Label {
84+ text: "Leftwards"
85+ anchors.right: parent.right
86+ anchors.verticalCenter: parent.verticalCenter
87+ anchors.rightMargin: units.gu(1)
88+ }
82}
89}
tests/plugins/Ubuntu/Gestures/RightwardsLauncher.qml+7
@@ -77,4 +77,11 @@ Item {
77 bottom: parent.bottom
77 bottom: parent.bottom
78 }
78 }
79 }
79 }
80+
81+ Label {
82+ text: "Rightwards"
83+ anchors.left: parent.left
84+ anchors.verticalCenter: parent.verticalCenter
85+ anchors.leftMargin: units.gu(1)
86+ }
80}
87}
tests/plugins/Ubuntu/Gestures/UpwardsLauncher.qml+7
@@ -79,4 +79,11 @@ Item {
79 bottom: parent.bottom
79 bottom: parent.bottom
80 }
80 }
81 }
81 }
82+
83+ Label {
84+ text: "Upwards"
85+ anchors.bottom: parent.bottom
86+ anchors.horizontalCenter: parent.horizontalCenter
87+ anchors.bottomMargin: units.gu(1)
88+ }
82}
89}
tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.cpp+162−17
@@ -83,6 +83,10 @@ private Q_SLOTS:
83 void twoFingerTap();
83 void twoFingerTap();
84 void movingDDA();
84 void movingDDA();
85 void ignoreOldFinger();
85 void ignoreOldFinger();
86+ void rotated();
87+ void sceneDistance();
88+ void sceneDistance_data();
89+ void disabledWhileDragging();
86
90
87private:
91private:
88 void passTime(qint64 timeSpan);
92 void passTime(qint64 timeSpan);
@@ -99,6 +103,14 @@ void tst_DirectionalDragArea::init()
99{
103{
100 GestureTest::init();
104 GestureTest::init();
101
105
106+ // We shouldn't need the three lines below, but a compiz/unity7
107+ // regression means we don't pass the test without them because
108+ // the window doesn't have the proper size. Can be removed in the
109+ // future if the regression is fixed and tests pass again
110+ m_view->resize(m_view->rootObject()->width(), m_view->rootObject()->height());
111+ QTRY_COMPARE(m_view->width(), (int)m_view->rootObject()->width());
112+ QTRY_COMPARE(m_view->height(), (int)m_view->rootObject()->height());
113+
102 fakeTimeSource.reset(new FakeTimeSource);
114 fakeTimeSource.reset(new FakeTimeSource);
103 fakeTimer = new FakeTimer(fakeTimeSource);
115 fakeTimer = new FakeTimer(fakeTimeSource);
104}
116}
@@ -131,18 +143,10 @@ void tst_DirectionalDragArea::passTime(qint64 timeSpan)
131}
143}
132
144
133namespace {
145namespace {
134−QPointF calculateInitialTouchPos(DirectionalDragArea *edgeDragArea, QQuickView *view)
146+QPointF calculateInitialTouchPos(DirectionalDragArea *edgeDragArea)
135{
147{
136− switch (edgeDragArea->direction()) {
148+ QPointF localCenter(edgeDragArea->width() / 2., edgeDragArea->height() / 2.);
137− case Direction::Upwards:
138− return QPointF(view->width()/2.0f, view->height() - (edgeDragArea->height()/2.0f));
139− case Direction::Downwards:
140− return QPointF(view->width()/2.0f, edgeDragArea->height()/2.0f);
141− case Direction::Leftwards:
142− return QPointF(view->width() - (edgeDragArea->width()/2.0f), view->height()/2.0f);
143− default: // Direction::Rightwards:
144− return QPointF(edgeDragArea->width()/2.0f, view->height()/2.0f);
149+ return edgeDragArea->mapToScene(localCenter);
145− }
146}
150}
147
151
148QPointF calculateDirectionVector(DirectionalDragArea *edgeDragArea,
152QPointF calculateDirectionVector(DirectionalDragArea *edgeDragArea,
@@ -193,7 +197,7 @@ void tst_DirectionalDragArea::edgeDrag()
193
197
194 QSignalSpy draggingSpy(edgeDragArea, SIGNAL(draggingChanged(bool)));
198 QSignalSpy draggingSpy(edgeDragArea, SIGNAL(draggingChanged(bool)));
195
199
196− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
200+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
197 QPointF touchPoint = initialTouchPos;
201 QPointF touchPoint = initialTouchPos;
198
202
199 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*dragDistanceFactor;
203 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*dragDistanceFactor;
@@ -300,7 +304,7 @@ void tst_DirectionalDragArea::dragWithShortDirectionChange()
300 edgeDragArea->setRecognitionTimer(fakeTimer);
304 edgeDragArea->setRecognitionTimer(fakeTimer);
301 edgeDragArea->setTimeSource(fakeTimeSource);
305 edgeDragArea->setTimeSource(fakeTimeSource);
302
306
303− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
307+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
304 QPointF touchPoint = initialTouchPos;
308 QPointF touchPoint = initialTouchPos;
305
309
306 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0;
310 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0;
@@ -360,7 +364,7 @@ void tst_DirectionalDragArea::minSpeed()
360
364
361 edgeDragArea->setMinSpeed(minSpeed);
365 edgeDragArea->setMinSpeed(minSpeed);
362
366
363− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
367+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
364 QPointF touchPoint = initialTouchPos;
368 QPointF touchPoint = initialTouchPos;
365
369
366 QPointF dragDirectionVector(1.0, 0.0);
370 QPointF dragDirectionVector(1.0, 0.0);
@@ -408,7 +412,7 @@ void tst_DirectionalDragArea::recognitionTimerUsage()
408
412
409 int timeStepMs = 5; // some arbitrary small value.
413 int timeStepMs = 5; // some arbitrary small value.
410
414
411− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
415+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
412 QPointF touchPoint = initialTouchPos;
416 QPointF touchPoint = initialTouchPos;
413
417
414 QPointF dragDirectionVector(1.0, 0.0);
418 QPointF dragDirectionVector(1.0, 0.0);
@@ -452,7 +456,7 @@ void tst_DirectionalDragArea::maxSilenceTime()
452 // Make sure this property is not disabled
456 // Make sure this property is not disabled
453 edgeDragArea->setMaxSilenceTime(100);
457 edgeDragArea->setMaxSilenceTime(100);
454
458
455− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
459+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
456 QPointF touchPoint = initialTouchPos;
460 QPointF touchPoint = initialTouchPos;
457
461
458 QTest::touchEvent(m_view, m_device).press(0, touchPoint.toPoint());
462 QTest::touchEvent(m_view, m_device).press(0, touchPoint.toPoint());
@@ -620,7 +624,7 @@ void tst_DirectionalDragArea::movingDDA()
620 edgeDragArea->setRecognitionTimer(fakeTimer);
624 edgeDragArea->setRecognitionTimer(fakeTimer);
621 edgeDragArea->setTimeSource(fakeTimeSource);
625 edgeDragArea->setTimeSource(fakeTimeSource);
622
626
623− QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea, m_view);
627+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
624 QPointF touchPoint = initialTouchPos;
628 QPointF touchPoint = initialTouchPos;
625
629
626 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0f;
630 qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0f;
@@ -704,6 +708,147 @@ void tst_DirectionalDragArea::ignoreOldFinger()
704 QCOMPARE((int)edgeDragArea->status(), (int)DirectionalDragArea::WaitingForTouch);
708 QCOMPARE((int)edgeDragArea->status(), (int)DirectionalDragArea::WaitingForTouch);
705}
709}
706
710
711+/*
712+ A Rightwards DDA that is rotated 90 degrees clockwise should recognize gestures
713+ that are done downwards in scene coordinates. I.e. the gesture recognition direction
714+ should be in local coordinates, not scene coordinates.
715+ */
716+void tst_DirectionalDragArea::rotated()
717+{
718+ QQuickItem *baseItem = m_view->rootObject()->findChild<QQuickItem*>("baseItem");
719+ baseItem->setRotation(90.);
720+
721+ QQuickItem *rightwardsLauncher = m_view->rootObject()->findChild<QQuickItem*>("rightwardsLauncher");
722+ Q_ASSERT(rightwardsLauncher != 0);
723+
724+ DirectionalDragArea *edgeDragArea =
725+ rightwardsLauncher->findChild<DirectionalDragArea*>("hpDragArea");
726+ Q_ASSERT(edgeDragArea != 0);
727+ edgeDragArea->setRecognitionTimer(fakeTimer);
728+ edgeDragArea->setTimeSource(fakeTimeSource);
729+
730+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
731+ QPointF touchPoint = initialTouchPos;
732+
733+ qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0f;
734+ QPointF dragDirectionVector(0.0f, 1.0f);
735+
736+ qreal movementStepDistance = edgeDragArea->distanceThreshold() * 0.1f;
737+ QPointF touchMovement = dragDirectionVector * movementStepDistance;
738+ int totalMovementSteps = qCeil(desiredDragDistance / movementStepDistance);
739+ int movementTimeStepMs = (edgeDragArea->compositionTime() * 1.5f) / totalMovementSteps;
740+
741+ QTest::touchEvent(m_view, m_device).press(0, touchPoint.toPoint());
742+
743+ for (int i = 0; i < totalMovementSteps; ++i) {
744+ touchPoint += touchMovement;
745+ passTime(movementTimeStepMs);
746+ QTest::touchEvent(m_view, m_device).move(0, touchPoint.toPoint());
747+ }
748+
749+ QCOMPARE((int)edgeDragArea->status(), (int)DirectionalDragArea::Recognized);
750+
751+ QTest::touchEvent(m_view, m_device).release(0, touchPoint.toPoint());
752+}
753+
754+void tst_DirectionalDragArea::sceneDistance()
755+{
756+ QQuickItem *baseItem = m_view->rootObject()->findChild<QQuickItem*>("baseItem");
757+ QFETCH(qreal, rotation);
758+ QFETCH(QPointF, dragDirectionVector);
759+ baseItem->setRotation(rotation);
760+
761+ QQuickItem *rightwardsLauncher = m_view->rootObject()->findChild<QQuickItem*>("rightwardsLauncher");
762+ Q_ASSERT(rightwardsLauncher != 0);
763+
764+ DirectionalDragArea *edgeDragArea =
765+ rightwardsLauncher->findChild<DirectionalDragArea*>("hpDragArea");
766+ Q_ASSERT(edgeDragArea != 0);
767+ edgeDragArea->setRecognitionTimer(fakeTimer);
768+ edgeDragArea->setTimeSource(fakeTimeSource);
769+
770+ QPointF initialTouchPos = calculateInitialTouchPos(edgeDragArea);
771+ QPointF touchPoint = initialTouchPos;
772+
773+ qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0f;
774+
775+ qreal movementStepDistance = edgeDragArea->distanceThreshold() * 0.1f;
776+ QPointF touchMovement = dragDirectionVector * movementStepDistance;
777+ int totalMovementSteps = qCeil(desiredDragDistance / movementStepDistance);
778+ int movementTimeStepMs = (edgeDragArea->compositionTime() * 1.5f) / totalMovementSteps;
779+
780+ QTest::touchEvent(m_view, m_device).press(0, touchPoint.toPoint());
781+
782+ for (int i = 0; i < totalMovementSteps; ++i) {
783+ touchPoint += touchMovement;
784+ passTime(movementTimeStepMs);
785+ QTest::touchEvent(m_view, m_device).move(0, touchPoint.toPoint());
786+ }
787+
788+ qreal actualDragDistance = ((qreal)totalMovementSteps) * movementStepDistance;
789+
790+ // DirectionalDragArea::sceneDistance() must match the actual drag distance as the
791+ // drag was aligned with the gesture direction
792+ // NB: qFuzzyCompare(), used internally by QCOMPARE(), is broken.
793+ QVERIFY(qAbs(edgeDragArea->sceneDistance() - actualDragDistance) < 0.001);
794+
795+ QTest::touchEvent(m_view, m_device).release(0, touchPoint.toPoint());
796+}
797+
798+void tst_DirectionalDragArea::sceneDistance_data()
799+{
800+ QTest::addColumn<qreal>("rotation");
801+ QTest::addColumn<QPointF>("dragDirectionVector");
802+
803+ QTest::newRow("not rotated") << 0. << QPointF(1., 0.);
804+ QTest::newRow("rotated by 90 degrees") << 90. << QPointF(0., 1.);
805+}
806+
807+/*
808+ Regression test for https://bugs.launchpad.net/unity8/+bug/1276122
809+
810+ The bug:
811+ If setting "enabled: false" while the DirectionalDragArea's (DDA) dragging
812+ property is true, the DDA stays in that state and doesn't recover any more.
813+*/
814+void tst_DirectionalDragArea::disabledWhileDragging()
815+{
816+ DirectionalDragArea *edgeDragArea =
817+ m_view->rootObject()->findChild<DirectionalDragArea*>("hpDragArea");
818+ Q_ASSERT(edgeDragArea != 0);
819+ edgeDragArea->setRecognitionTimer(fakeTimer);
820+ edgeDragArea->setTimeSource(fakeTimeSource);
821+
822+ QPointF touchPoint = calculateInitialTouchPos(edgeDragArea);
823+
824+ qreal desiredDragDistance = edgeDragArea->distanceThreshold()*2.0f;
825+ QPointF dragDirectionVector(1., 0.); // horizontal positive
826+
827+ qreal movementStepDistance = edgeDragArea->distanceThreshold() * 0.1f;
828+ QPointF touchMovement = dragDirectionVector * movementStepDistance;
829+ int totalMovementSteps = qCeil(desiredDragDistance / movementStepDistance);
830+ int movementTimeStepMs = (edgeDragArea->compositionTime() * 1.5f) / totalMovementSteps;
831+
832+ QTest::touchEvent(m_view, m_device).press(0, touchPoint.toPoint());
833+
834+ for (int i = 0; i < totalMovementSteps; ++i) {
835+ touchPoint += touchMovement;
836+ passTime(movementTimeStepMs);
837+ QTest::touchEvent(m_view, m_device).move(0, touchPoint.toPoint());
838+ }
839+
840+ QCOMPARE((int)edgeDragArea->status(), (int)DirectionalDragArea::Recognized);
841+ QCOMPARE(edgeDragArea->dragging(), true);
842+
843+ // disable the dragArea while it's being dragged.
844+ edgeDragArea->setEnabled(false);
845+
846+ QCOMPARE((int)edgeDragArea->status(), (int)DirectionalDragArea::WaitingForTouch);
847+ QCOMPARE(edgeDragArea->dragging(), false);
848+
849+ QTest::touchEvent(m_view, m_device).release(0, touchPoint.toPoint());
850+}
851+
707QTEST_MAIN(tst_DirectionalDragArea)
852QTEST_MAIN(tst_DirectionalDragArea)
708
853
709#include "tst_DirectionalDragArea.moc"
854#include "tst_DirectionalDragArea.moc"
tests/plugins/Ubuntu/Gestures/tst_DirectionalDragArea.qml+30−8
@@ -18,8 +18,8 @@ import QtQuick 2.0
18import Ubuntu.Components 0.1
18import Ubuntu.Components 0.1
19
19
20Rectangle {
20Rectangle {
21− width: units.gu(40)
21+ width: units.gu(60)
22− height: units.gu(71)
22+ height: units.gu(60)
23 color: "white"
23 color: "white"
24
24
25 MouseArea {
25 MouseArea {
@@ -33,14 +33,36 @@ Rectangle {
33 }
33 }
34 }
34 }
35
35
36− // NB: Do not anchor it as we will move it programmatically from the test
36+ Item {
37− RightwardsLauncher {
37+ id: baseItem
38− id: hpLauncher;
38+ objectName: "baseItem"
39 width: parent.width
39 width: parent.width
40 height: parent.height
40 height: parent.height
41+
42+ // NB: Do not anchor it as we will move it programmatically from the test
43+ RightwardsLauncher {
44+ id: hpLauncher;
45+ width: parent.width
46+ height: parent.height
47+ }
48+
49+ LeftwardsLauncher { id: hnLauncher; anchors.fill: parent }
50+ DownwardsLauncher { id: vpLauncher; anchors.fill: parent }
51+ UpwardsLauncher { id: vnLauncher; anchors.fill: parent }
41 }
52 }
42
53
43− LeftwardsLauncher { id: hnLauncher; anchors.fill: parent }
54+ Button {
44− DownwardsLauncher { id: vpLauncher; anchors.fill: parent }
55+ anchors.bottom: parent.bottom
45− UpwardsLauncher { id: vnLauncher; anchors.fill: parent }
56+ anchors.left: parent.left
57+ anchors.margins: units.gu(1)
58+
59+ text: "rotation: " + baseItem.rotation
60+ onClicked: {
61+ if (baseItem.rotation === 0.0) {
62+ baseItem.rotation = 90.0
63+ } else {
64+ baseItem.rotation = 0.0
65+ }
66+ }
67+ }
46}
68}
tests/qmltests/CMakeLists.txt+6−2
@@ -29,6 +29,7 @@ add_qml_test(Components DraggingArea)
29add_qml_test(Components EdgeDemoOverlay)
29add_qml_test(Components EdgeDemoOverlay)
30add_qml_test(Components FilterGrid IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins)
30add_qml_test(Components FilterGrid IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/plugins)
31add_qml_test(Components LazyImage)
31add_qml_test(Components LazyImage)
32+add_qml_test(Components Rating)
32add_qml_test(Components ResponsiveFlowView)
33add_qml_test(Components ResponsiveFlowView)
33add_qml_test(Components ResponsiveGridView)
34add_qml_test(Components ResponsiveGridView)
34add_qml_test(Components Revealer)
35add_qml_test(Components Revealer)
@@ -56,13 +57,16 @@ add_qml_test(Dash/Apps AppPreview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} $
56add_qml_test(Dash/Movie MoviePreview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
57add_qml_test(Dash/Movie MoviePreview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
57add_qml_test(Dash/Music MusicPreview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
58add_qml_test(Dash/Music MusicPreview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
58add_qml_test(Dash/Previews Preview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
59add_qml_test(Dash/Previews Preview IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
59−add_qml_test(Dash/Previews PreviewWidgetFactory IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
60add_qml_test(Dash/Previews PreviewActions IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
60add_qml_test(Dash/Previews PreviewActions IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
61add_qml_test(Dash/Previews PreviewAudioPlayback IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
61add_qml_test(Dash/Previews PreviewAudioPlayback IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
62−add_qml_test(Dash/Previews PreviewImageGallery IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
63add_qml_test(Dash/Previews PreviewHeader IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
62add_qml_test(Dash/Previews PreviewHeader IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
63+add_qml_test(Dash/Previews PreviewImageGallery IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
64+add_qml_test(Dash/Previews PreviewProgress IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
65+add_qml_test(Dash/Previews PreviewRatingDisplay IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
66+add_qml_test(Dash/Previews PreviewRatingInput IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
64add_qml_test(Dash/Previews PreviewTextSummary IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
67add_qml_test(Dash/Previews PreviewTextSummary IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
65add_qml_test(Dash/Previews PreviewVideoPlayback IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
68add_qml_test(Dash/Previews PreviewVideoPlayback IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
69+add_qml_test(Dash/Previews PreviewWidgetFactory IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
66add_qml_test(Dash/Previews PreviewZoomableImage IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
70add_qml_test(Dash/Previews PreviewZoomableImage IMPORT_PATHS ${qmltest_DEFAULT_IMPORT_PATHS} ${CMAKE_BINARY_DIR}/tests/mocks)
67add_qml_test(Greeter Lockscreen IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS}
71add_qml_test(Greeter Lockscreen IMPORT_PATHS ${CMAKE_BINARY_DIR}/plugins ${qmltest_DEFAULT_IMPORT_PATHS}
68 PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
72 PROPERTIES ENVIRONMENT "LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics:${CMAKE_BINARY_DIR}/tests/mocks/LightDM/full")
tests/qmltests/Components/tst_DragHandle.cpp+45−6
@@ -58,7 +58,9 @@ private Q_SLOTS:
58 void cleanup(); // called right after each and every test function is executed
58 void cleanup(); // called right after each and every test function is executed
59
59
60 void dragThreshold_horizontal();
60 void dragThreshold_horizontal();
61+ void dragThreshold_horizontal_data();
61 void dragThreshold_vertical();
62 void dragThreshold_vertical();
63+ void dragThreshold_vertical_data();
62 void stretch_horizontal();
64 void stretch_horizontal();
63 void stretch_vertical();
65 void stretch_vertical();
64 void hintingAnimation();
66 void hintingAnimation();
@@ -124,7 +126,6 @@ QQuickView *tst_DragHandle::createView()
124{
126{
125 QQuickView *window = new QQuickView(0);
127 QQuickView *window = new QQuickView(0);
126 window->setResizeMode(QQuickView::SizeRootObjectToView);
128 window->setResizeMode(QQuickView::SizeRootObjectToView);
127− window->resize(600, 600);
128 window->engine()->addImportPath(QLatin1String(UBUNTU_GESTURES_PLUGIN_DIR));
129 window->engine()->addImportPath(QLatin1String(UBUNTU_GESTURES_PLUGIN_DIR));
129 window->engine()->addImportPath(QLatin1String(TEST_DIR));
130 window->engine()->addImportPath(QLatin1String(TEST_DIR));
130
131
@@ -145,17 +146,29 @@ void tst_DragHandle::tryCompare(std::function<qreal ()> actualFunc,
145namespace {
146namespace {
146QPointF calculateDirectionVector(DirectionalDragArea *edgeDragArea)
147QPointF calculateDirectionVector(DirectionalDragArea *edgeDragArea)
147{
148{
148−
149+ QPointF localOrigin(0., 0.);
150+ QPointF localDirection;
149 switch (edgeDragArea->direction()) {
151 switch (edgeDragArea->direction()) {
150 case Direction::Upwards:
152 case Direction::Upwards:
151− return QPointF(0, -1);
153+ localDirection.rx() = 0.;
154+ localDirection.ry() = -1.;
155+ break;
152 case Direction::Downwards:
156 case Direction::Downwards:
153− return QPointF(0, 1);
157+ localDirection.rx() = 0.;
158+ localDirection.ry() = 1;
159+ break;
154 case Direction::Leftwards:
160 case Direction::Leftwards:
155− return QPointF(-1, 0);
161+ localDirection.rx() = -1.;
162+ localDirection.ry() = 0.;
163+ break;
156 default: // Direction::Rightwards:
164 default: // Direction::Rightwards:
157− return QPointF(1, 0);
165+ localDirection.rx() = 1.;
166+ localDirection.ry() = 0.;
167+ break;
158 }
168 }
169+ QPointF sceneOrigin = edgeDragArea->mapToScene(localOrigin);
170+ QPointF sceneDirection = edgeDragArea->mapToScene(localDirection);
171+ return sceneDirection - sceneOrigin;
159}
172}
160}
173}
161
174
@@ -222,6 +235,11 @@ qreal tst_DragHandle::fetchDragThreshold(DirectionalDragArea *dragHandle)
222 */
235 */
223void tst_DragHandle::dragThreshold_horizontal()
236void tst_DragHandle::dragThreshold_horizontal()
224{
237{
238+ QFETCH(qreal, rotation);
239+
240+ QQuickItem *baseItem = m_view->rootObject()->findChild<QQuickItem*>("baseItem");
241+ baseItem->setRotation(rotation);
242+
225 DirectionalDragArea *dragHandle = fetchAndSetupDragHandle("rightwardsDragHandle");
243 DirectionalDragArea *dragHandle = fetchAndSetupDragHandle("rightwardsDragHandle");
226
244
227 qreal dragThreshold = fetchDragThreshold(dragHandle);
245 qreal dragThreshold = fetchDragThreshold(dragHandle);
@@ -260,8 +278,21 @@ void tst_DragHandle::dragThreshold_horizontal()
260 QCOMPARE(parentItem->property("shown").toBool(), false);
278 QCOMPARE(parentItem->property("shown").toBool(), false);
261}
279}
262
280
281+void tst_DragHandle::dragThreshold_horizontal_data()
282+{
283+ QTest::addColumn<qreal>("rotation");
284+
285+ QTest::newRow("not rotated") << 0.;
286+ QTest::newRow("rotated 90") << 90.;
287+}
288+
263void tst_DragHandle::dragThreshold_vertical()
289void tst_DragHandle::dragThreshold_vertical()
264{
290{
291+ QFETCH(qreal, rotation);
292+
293+ QQuickItem *baseItem = m_view->rootObject()->findChild<QQuickItem*>("baseItem");
294+ baseItem->setRotation(rotation);
295+
265 DirectionalDragArea *dragHandle = fetchAndSetupDragHandle("downwardsDragHandle");
296 DirectionalDragArea *dragHandle = fetchAndSetupDragHandle("downwardsDragHandle");
266
297
267 qreal dragThreshold = fetchDragThreshold(dragHandle);
298 qreal dragThreshold = fetchDragThreshold(dragHandle);
@@ -300,6 +331,14 @@ void tst_DragHandle::dragThreshold_vertical()
300 QCOMPARE(parentItem->property("shown").toBool(), false);
331 QCOMPARE(parentItem->property("shown").toBool(), false);
301}
332}
302
333
334+void tst_DragHandle::dragThreshold_vertical_data()
335+{
336+ QTest::addColumn<qreal>("rotation");
337+
338+ QTest::newRow("not rotated") << 0.;
339+ QTest::newRow("rotated 90") << 90.;
340+}
341+
303/*
342/*
304 Checks that when the stretch property is true, dragging the DragHandle increases
343 Checks that when the stretch property is true, dragging the DragHandle increases
305 the width or height (depending on its direction) of its parent Showable
344 the width or height (depending on its direction) of its parent Showable
tests/qmltests/Components/tst_DragHandle.qml+72−56
@@ -29,62 +29,68 @@ import Ubuntu.Gestures 0.1
29 */
29 */
30Item {
30Item {
31 id: root
31 id: root
32− width: 700
32+ width: units.gu(70)
33− height: 500
33+ height: units.gu(70)
34
34
35 property var dragHandle
35 property var dragHandle
36
36
37 property bool stretch: false
37 property bool stretch: false
38 property real hintDisplacement: 0
38 property real hintDisplacement: 0
39
39
40− VerticalShowable {
40+ Item {
41− onDragHandleRecognizedGesture: { root.dragHandle = dragHandle }
41+ id: baseItem
42− stretch: root.stretch
42+ objectName: "baseItem"
43− hintDisplacement: root.hintDisplacement
43+ anchors.fill: parent
44− }
45−
46− HorizontalShowable {
47− onDragHandleRecognizedGesture: { root.dragHandle = dragHandle }
48− stretch: root.stretch
49− hintDisplacement: root.hintDisplacement
50− }
51
44
52− // Visually mark drag threshold
45+ VerticalShowable {
53− Rectangle {
46+ onDragHandleRecognizedGesture: { root.dragHandle = dragHandle }
54− color: "black"
47+ stretch: root.stretch
55− width: 2
48+ hintDisplacement: root.hintDisplacement
56− height: parent.height
49+ }
57
50
58− visible: dragHandle !== undefined && Direction.isHorizontal(dragHandle.direction)
51+ HorizontalShowable {
52+ onDragHandleRecognizedGesture: { root.dragHandle = dragHandle }
53+ stretch: root.stretch
54+ hintDisplacement: root.hintDisplacement
55+ }
59
56
57+ // Visually mark drag threshold
58+ Rectangle {
59+ color: "black"
60+ width: 2
61+ height: parent.height
62+
63+ visible: dragHandle !== undefined && Direction.isHorizontal(dragHandle.direction)
64+
60− x: {
65+ x: {
61− if (dragHandle) {
66+ if (dragHandle) {
62− if (dragHandle.direction === Direction.Rightwards) {
67+ if (dragHandle.direction === Direction.Rightwards) {
68+ dragHandle.edgeDragEvaluator.dragThreshold;
69+ } else {
63− dragHandle.edgeDragEvaluator.dragThreshold;
70+ parent.width - dragHandle.edgeDragEvaluator.dragThreshold;
71+ }
64 } else {
72 } else {
65− parent.width - dragHandle.edgeDragEvaluator.dragThreshold;
73+ 0
66 }
74 }
67− } else {
68− 0
69 }
75 }
70 }
76 }
71− }
72− Rectangle {
77+ Rectangle {
73− color: "black";
78+ color: "black";
74− height: 2
79+ height: 2
75− width: parent.width
80+ width: parent.width
76−
81+
77− visible: dragHandle !== undefined && Direction.isVertical(dragHandle.direction)
82+ visible: dragHandle !== undefined && Direction.isVertical(dragHandle.direction)
78−
83+
79− y: {
84+ y: {
80− if (dragHandle) {
85+ if (dragHandle) {
81− if (dragHandle.direction === Direction.Downwards) {
86+ if (dragHandle.direction === Direction.Downwards) {
87+ dragHandle.edgeDragEvaluator.dragThreshold;
88+ } else {
82− dragHandle.edgeDragEvaluator.dragThreshold;
89+ parent.height - dragHandle.edgeDragEvaluator.dragThreshold;
90+ }
83 } else {
91 } else {
84− parent.height - dragHandle.edgeDragEvaluator.dragThreshold;
92+ 0
85 }
93 }
86− } else {
87− 0
88 }
94 }
89 }
95 }
90 }
96 }
@@ -119,27 +125,37 @@ Item {
119 }
125 }
120 }
126 }
121
127
122− TestButton {
128+ Row {
123− id: stretchButton
124 anchors.bottom: parent.bottom
129 anchors.bottom: parent.bottom
125 anchors.left: parent.left
130 anchors.left: parent.left
126 anchors.margins: units.gu(1)
131 anchors.margins: units.gu(1)
132+ spacing: units.gu(1)
127
133
134+ Button {
135+ id: stretchButton
128− text: root.stretch ? "stretch" : "move"
136+ text: root.stretch ? "stretch" : "move"
129− onClicked: { root.stretch = !root.stretch; }
137+ onClicked: { root.stretch = !root.stretch; }
130− }
138+ }
131
139
132− TestButton {
140+ Button {
133− anchors.bottom: parent.bottom
141+ text: root.hintDisplacement > 0 ? "hint" : "no hint"
134− anchors.left: stretchButton.right
142+ onClicked: {
135− anchors.margins: units.gu(1)
143+ if (root.hintDisplacement > 0) {
144+ root.hintDisplacement = 0;
145+ } else {
146+ root.hintDisplacement = units.gu(6);
147+ }
148+ }
149+ }
136
150
137− text: root.hintDisplacement > 0 ? "hint" : "no hint"
151+ Button {
152+ text: "rotation: " + baseItem.rotation
138− onClicked: {
153+ onClicked: {
139− if (root.hintDisplacement > 0) {
154+ if (baseItem.rotation === 0.0) {
140− root.hintDisplacement = 0;
155+ baseItem.rotation = 90.0
141− } else {
156+ } else {
142− root.hintDisplacement = units.gu(6);
157+ baseItem.rotation = 0.0
158+ }
143 }
159 }
144 }
160 }
145 }
161 }
tests/qmltests/Components/tst_DragHandle/TestButton.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−Rectangle {
21− id: rect
22− width: childrenRect.width
23− height: childrenRect.height
24−
25− property alias text: textComponent.text
26−
27− signal clicked
28−
29− color: "yellow"
30− Text {
31− id: textComponent
32− font.pixelSize: units.gu(2)
33− text: root.stretch ? "stretch" : "move"
34− MouseArea {
35− anchors.fill: parent
36− onClicked: {
37− rect.clicked()
38− }
39− }
40− }
41−}
tests/qmltests/Components/tst_LazyImage.qml+1−1
@@ -155,7 +155,7 @@ Rectangle {
155
155
156 if (data.transition) {
156 if (data.transition) {
157 // wait for the transition to complete
157 // wait for the transition to complete
158− var transition = findInvisibleChild(data.image, data.transition);
158+ var transition = findChildIn(data.image, "transitions", data.transition);
159 tryCompare(transition, "running", true);
159 tryCompare(transition, "running", true);
160 tryCompare(transition, "running", false);
160 tryCompare(transition, "running", false);
161 }
161 }
tests/qmltests/Components/tst_Rating.qmlnew file+86
@@ -0,0 +1,86 @@
1+/*
2+ * Copyright 2013 Canonical Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.0
18+import QtTest 1.0
19+import "../../../qml/Components"
20+import Ubuntu.Components 0.1
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(10)
27+ color: Theme.palette.selected.background
28+
29+ Rating {
30+ id: rating
31+ anchors.centerIn: parent
32+ maximumValue: 5
33+ size: 5
34+ value: 3
35+ }
36+
37+ UT.UnityTestCase {
38+ name: "RatingTest"
39+ when: windowShown
40+
41+ function init() {
42+ rating.maximumValue = 5;
43+ rating.size = 5
44+ rating.value = 3;
45+ }
46+
47+ function test_interactive_rating_data() {
48+ return [
49+ {tag: "1st icon without interactive", interactive: false, size: 5, maximumValue: 5, index: 0, value: 3},
50+ {tag: "1st icon", interactive: true, size: 5, maximumValue: 5, index: 0, value: 1},
51+ {tag: "1st icon size 10", interactive: true, size: 10, maximumValue: 10, index: 0, value: 1},
52+ {tag: "3rd icon size 10 small maximumValue", interactive: true, size: 10, maximumValue: 5, index: 2, value: 1.5},
53+ {tag: "2nd icon with big maximumValue", interactive: true, size: 5, maximumValue: 100, index: 1, value: 40},
54+ {tag: "last icon", interactive: true, size: 5, maximumValue: 5, index: 4, value: 5},
55+ ];
56+ }
57+
58+ function test_interactive_rating(data) {
59+ rating.interactive = data.interactive;
60+ rating.maximumValue = data.maximumValue;
61+ rating.size = data.size;
62+
63+ var averageIconWidth = rating.width / rating.size;
64+ mouseClick(rating, averageIconWidth * data.index + averageIconWidth / 2, rating.height / 2);
65+ compare(rating.value, data.value);
66+
67+ rating.interactive = false;
68+ }
69+
70+ function test_effectiveValue_data() {
71+ return [
72+ {tag: "negative", value: -3, expectedValue: 0},
73+ {tag: "ranged value", value: 2, expectedValue: 2},
74+ {tag: "big", value: 200, expectedValue: rating.maximumValue},
75+ {tag: "min", value: 0, expectedValue: 0},
76+ {tag: "max", value: rating.maximumValue, expectedValue: rating.maximumValue},
77+ {tag: "half", value: 2.5, expectedValue: 2.5}
78+ ];
79+ }
80+
81+ function test_effectiveValue(data) {
82+ rating.value = data.value;
83+ compare(rating.effectiveValue, data.expectedValue, "effectiveValue not calculated correctly")
84+ }
85+ }
86+}
tests/qmltests/Dash/Previews/tst_PreviewProgress.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.0
18+import QtTest 1.0
19+import "../../../../qml/Dash/Previews"
20+import Unity.Test 0.1 as UT
21+import Ubuntu.Components 0.1
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(60)
26+ height: units.gu(80)
27+
28+ property var progressjson: {
29+ "type": "progress",
30+ "source": { "dbus-name" : "somename", "dbus-object": "somestring" }
31+ }
32+
33+ property var progressjsonFinish: {
34+ "type": "progress",
35+ "source": { "dbus-name" : "somename", "dbus-object": "finish" }
36+ }
37+
38+ property var progressjsonError: {
39+ "type": "progress",
40+ "source": { "dbus-name" : "somename", "dbus-object": "error" }
41+ }
42+
43+ SignalSpy {
44+ id: spy
45+ signalName: "triggered"
46+ }
47+
48+ PreviewProgress {
49+ id: previewProgress
50+ widgetId: "previewProgress"
51+ widgetData: progressjson
52+ width: units.gu(30)
53+
54+ Rectangle {
55+ anchors.fill: parent
56+ color: "red"
57+ opacity: 0.1
58+ }
59+ }
60+
61+ UT.UnityTestCase {
62+ name: "PreviewProgressTest"
63+ when: windowShown
64+
65+ function test_json() {
66+ spy.target = previewProgress;
67+
68+ // The mock DownloadTracker triggers its signals when you pass
69+ // finish/error as dbus-object to it. Exercise it here
70+ previewProgress.widgetData = progressjsonFinish;
71+ compare(spy.count, 1);
72+ var args = spy.signalArguments[0];
73+ compare(args[0], "previewProgress");
74+ compare(args[1], "finished");
75+ compare(args[2], progressjsonFinish);
76+
77+ spy.clear();
78+
79+ previewProgress.widgetData = progressjsonError;
80+ compare(spy.count, 1);
81+ var args = spy.signalArguments[0];
82+ compare(args[0], "previewProgress");
83+ compare(args[1], "failed");
84+ compare(args[2], progressjsonError);
85+ }
86+ }
87+}
tests/qmltests/Dash/Previews/tst_PreviewRatingDisplay.qmlnew file+112
@@ -0,0 +1,112 @@
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 Ubuntu.Components 0.1
20+import "../../../../qml/Dash/Previews"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+ color: Theme.palette.selected.background
28+
29+ property var reviewsModel0: {
30+ "reviews": [ ]
31+ }
32+
33+ property var reviewsModel1: {
34+ "reviews": [ { author: "Some dude", rating: 4.5, review: "Very cool app" },
35+ { author: "Yet Another dude", rating: 5, review: "Very cool app" }, ]
36+ }
37+
38+ property var reviewsModel2: {
39+ "reviews": [ { author: "Some dude", rating: 4.5, review: "Very cool app" },
40+ { author: "Another dude", rating: 3, review: "Average app. Lorem ipsum dolor sit amet, consectetur adipiscing elit.\nPhasellus a mi vitae augue rhoncus lobortis ut rutrum metus.\nCurabitur tortor leo, tristique sed mollis quis, condimentum venenatis nibh.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit.\nPhasellus a mi vitae augue rhoncus lobortis ut rutrum metus.\nCurabitur tortor leo, tristique sed mollis quis, condimentum venenatis nibh." },
41+ { author: "Yet Another dude", rating: 5, review: "Very cool app" }, ]
42+ }
43+
44+ property var reviewsModelMixed: {
45+ "reviews": [ { author: "Some dude", review: "Very cool app" },
46+ { author: "" },
47+ { rating: 3, review: "Average app. Lorem ipsum dolor sit amet, consectetur adipiscing elit.\nPhasellus a mi vitae augue rhoncus lobortis ut rutrum metus.\nCurabitur tortor leo, tristique sed mollis quis, condimentum venenatis nibh.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit.\nPhasellus a mi vitae augue rhoncus lobortis ut rutrum metus.\nCurabitur tortor leo, tristique sed mollis quis, condimentum venenatis nibh." },
48+ { author: "Yet Another dude", rating: 5 }, ]
49+ }
50+
51+ PreviewRatingDisplay {
52+ id: previewRatingDisplay
53+ anchors.left: parent.left
54+ anchors.right: parent.right
55+ widgetData: reviewsModelMixed
56+ }
57+
58+ UT.UnityTestCase {
59+ name: "PreviewRatingDisplayTest"
60+ when: windowShown
61+
62+ function test_reviews_data() {
63+ return [
64+ {tag: "0 reviews", reviewsModel: reviewsModel0},
65+ {tag: "1 review", reviewsModel: reviewsModel1},
66+ {tag: "3 reviews", reviewsModel: reviewsModel2},
67+ {tag: "3 mixed reviews", reviewsModel: reviewsModelMixed}
68+ ];
69+ }
70+
71+ function test_reviews(data) {
72+ previewRatingDisplay.widgetData = data.reviewsModel;
73+
74+ var reviewsRepeater = findChild(previewRatingDisplay, "reviewsRepeater");
75+ compare(reviewsRepeater.count, data.reviewsModel["reviews"].length);
76+
77+ for (var i = 0; i < data.reviewsModel["reviews"].length; ++i) {
78+ var reviewItem = findChild(previewRatingDisplay, "reviewItem" + i);
79+
80+ var rating = findChild(reviewItem, "rating");
81+ if (data.reviewsModel["reviews"][i]["rating"] >= 0) {
82+ compare(rating.visible, true);
83+ compare(rating.value, data.reviewsModel["reviews"][i]["rating"]);
84+ } else {
85+ compare(rating.visible, false);
86+ }
87+
88+ var authorLabel = findChild(reviewItem, "authorLabel");
89+ if (data.reviewsModel["reviews"][i]["author"] &&
90+ data.reviewsModel["reviews"][i]["author"] !== "") {
91+ compare(authorLabel.visible, true);
92+ compare(authorLabel.text, data.reviewsModel["reviews"][i]["author"]);
93+ } else {
94+ compare(authorLabel.visible, false);
95+ }
96+
97+ var reviewLabel = findChild(reviewItem, "reviewLabel");
98+ if (data.reviewsModel["reviews"][i]["review"] &&
99+ data.reviewsModel["reviews"][i]["review"] !== "") {
100+ compare(reviewLabel.visible, true);
101+ compare(reviewLabel.text, data.reviewsModel["reviews"][i]["review"]);
102+ } else {
103+ compare(reviewLabel.visible, false);
104+ }
105+
106+ if (!rating.visible && !authorLabel.visible && !reviewLabel.visible) {
107+ verify(reviewItem.height === 0);
108+ }
109+ }
110+ }
111+ }
112+}
tests/qmltests/Dash/Previews/tst_PreviewRatingInput.qmlnew file+183
@@ -0,0 +1,183 @@
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 Ubuntu.Components 0.1
20+import "../../../../qml/Dash/Previews"
21+import Unity.Test 0.1 as UT
22+
23+Rectangle {
24+ id: root
25+ width: units.gu(40)
26+ height: units.gu(80)
27+ color: Theme.palette.selected.background
28+
29+ property real validInputRating: 1
30+ property real invalidInputRating: -1
31+ property string validInputText: "Great!"
32+ property string invalidInputText: ""
33+
34+ property var triggeredDataBoth: { "rating": validInputRating, "review": validInputText, "author": null }
35+ property var triggeredDataRatingOnly: { "rating": validInputRating, "review": invalidInputText, "author": null }
36+ property var triggeredDataReviewOnly: { "rating": invalidInputRating, "review": validInputText, "author": null }
37+
38+ property var widgetDataBoth: { "visible": "both", "required": "both" }
39+ property var widgetDataRating: { "visible": "rating", "required": "rating" }
40+ property var widgetDataRatingBroken: { "visible": "rating", "required": "review" }
41+ property var widgetDataReview: { "visible": "review", "required": "review" }
42+ property var widgetDataReviewBroken: { "visible": "review", "required": "rating" }
43+
44+ property var widgetDataNewLabels: { "visible": "both", "required": "both", "rating-label": "TestRatingLabel", "review-label": "TestReviewLabel", "submit-label": "TestSubmitLabel" }
45+
46+ PreviewRatingInput {
47+ id: previewRatingInput
48+ anchors.left: parent.left
49+ anchors.right: parent.right
50+ widgetData: widgetDataBoth
51+ widgetId: "previewRatingInput"
52+ }
53+
54+ SignalSpy {
55+ id: spy
56+ signalName: "triggered"
57+ }
58+
59+ UT.UnityTestCase {
60+ name: "PreviewRatingInputTest"
61+ when: windowShown
62+
63+ property var rating: findChild(previewRatingInput, "rating")
64+ property var reviewTextArea: findChild(previewRatingInput, "reviewTextArea")
65+ property var submitButton: findChild(previewRatingInput, "submitButton")
66+
67+ function init() {
68+ rating.value = -1;
69+ reviewTextArea.text = "";
70+ }
71+
72+ function test_labels() {
73+ var ratingLabel = findChild(previewRatingInput, "ratingLabel");
74+ var reviewLabel = findChild(previewRatingInput, "reviewLabel");
75+
76+ previewRatingInput.widgetData = widgetDataNewLabels;
77+ compare(ratingLabel.text, widgetDataNewLabels["rating-label"]);
78+ compare(reviewLabel.text, widgetDataNewLabels["review-label"]);
79+ compare(submitButton.text, widgetDataNewLabels["submit-label"]);
80+ }
81+
82+ function test_submit_and_visibility_data() {
83+ return [
84+ {tag: "both, null review", widgetData: widgetDataBoth, inputRating: invalidInputRating, inputText: invalidInputText, emitted: false},
85+ {tag: "both, rating-only review", widgetData: widgetDataBoth, inputRating: validInputRating, inputText: invalidInputText, emitted: false},
86+ {tag: "both, review-only review", widgetData: widgetDataBoth, inputRating: invalidInputRating, inputText: validInputText, emitted: false},
87+ {tag: "both, complete review", widgetData: widgetDataBoth, inputRating: validInputRating, inputText: validInputText, emitted: true},
88+ {tag: "rating, null review", widgetData: widgetDataRating, inputRating: invalidInputRating, inputText: invalidInputText, emitted: false},
89+ {tag: "rating, rating-only review", widgetData: widgetDataRating, inputRating: validInputRating, inputText: invalidInputText, emitted: true},
90+ {tag: "rating, review-only review", widgetData: widgetDataRating, inputRating: invalidInputRating, inputText: validInputText, emitted: false},
91+ {tag: "rating, complete review", widgetData: widgetDataRating, inputRating: validInputRating, inputText: validInputText, emitted: true},
92+ {tag: "rating broken, null review", widgetData: widgetDataRatingBroken, inputRating: invalidInputRating, inputText: invalidInputText, emitted: false},
93+ {tag: "rating broken, rating-only review", widgetData: widgetDataRatingBroken, inputRating: validInputRating, inputText: invalidInputText, emitted: false},
94+ {tag: "rating broken, review-only review", widgetData: widgetDataRatingBroken, inputRating: invalidInputRating, inputText: validInputText, emitted: false},
95+ {tag: "rating broken, complete review", widgetData: widgetDataRatingBroken, inputRating: validInputRating, inputText: validInputText, emitted: false},
96+ {tag: "review, null review", widgetData: widgetDataReview, inputRating: invalidInputRating, inputText: invalidInputText, emitted: false},
97+ {tag: "review, rating-only review", widgetData: widgetDataReview, inputRating: validInputRating, inputText: invalidInputText, emitted: false},
98+ {tag: "review, review-only review", widgetData: widgetDataReview, inputRating: invalidInputRating, inputText: validInputText, emitted: true},
99+ {tag: "review, complete review", widgetData: widgetDataReview, inputRating: validInputRating, inputText: validInputText, emitted: true},
100+ {tag: "review broken, null review", widgetData: widgetDataReviewBroken, inputRating: invalidInputRating, inputText: invalidInputText, emitted: false},
101+ {tag: "review broken, rating-only review", widgetData: widgetDataReviewBroken, inputRating: validInputRating, inputText: invalidInputText, emitted: false},
102+ {tag: "review broken, review-only review", widgetData: widgetDataReviewBroken, inputRating: invalidInputRating, inputText: validInputText, emitted: false},
103+ {tag: "review broken, complete review", widgetData: widgetDataReviewBroken, inputRating: validInputRating, inputText: validInputText, emitted: false},
104+ ];
105+ }
106+
107+ function test_submit_and_visibility(data) {
108+ spy.clear();
109+ spy.target = previewRatingInput;
110+
111+ previewRatingInput.widgetData = data.widgetData;
112+
113+ if (data.widgetData["visible"] !== "review") {
114+ verify(rating.visible === true);
115+
116+ rating.value = data.inputRating;
117+ if (data.widgetData["required"] !== "rating" || data.inputRating < 0) {
118+ compare(spy.count, 0);
119+ } else {
120+ compare(spy.count, 1);
121+ }
122+ } else {
123+ verify(rating.visible === false);
124+ }
125+
126+ if (data.widgetData["visible"] !== "rating") {
127+ verify(reviewTextArea.visible === true);
128+
129+ reviewTextArea.text = data.inputText;
130+ mouseClick(submitButton, submitButton.width / 2, submitButton.height / 2);
131+ switch (data.widgetData["required"]) {
132+ case "rating": compare(spy.count, 0); break;
133+ case "both":
134+ default: {
135+ if (data.inputRating < 0 || data.inputText === "") {
136+ compare(spy.count, 0); break;
137+ }
138+ }
139+ case "review": {
140+ if (data.inputText === "") {
141+ compare(spy.count, 0); break;
142+ } else {
143+ compare(spy.count, 1); break;
144+ }
145+ }
146+ }
147+ } else {
148+ verify(reviewTextArea.visible === false);
149+ }
150+
151+ compare(spy.count === 1, data.emitted);
152+ }
153+
154+ function test_triggered_data() {
155+ return [
156+ {tag: "complete review", widgetData: widgetDataBoth, inputRating: validInputRating, inputText: validInputText, triggeredData: triggeredDataBoth},
157+ {tag: "rating-only review", widgetData: widgetDataRating, inputRating: validInputRating, inputText: invalidInputText, triggeredData: triggeredDataRatingOnly},
158+ {tag: "review-only review", widgetData: widgetDataReview, inputRating: invalidInputRating, inputText: validInputText, triggeredData: triggeredDataReviewOnly}
159+ ];
160+ }
161+
162+ function test_triggered(data) {
163+ spy.clear();
164+ spy.target = previewRatingInput;
165+
166+ previewRatingInput.widgetData = data.widgetData;
167+
168+ if (data.inputRating > 0) rating.value = data.inputRating;
169+ if (data.inputText !== "") {
170+ reviewTextArea.text = data.inputText;
171+ mouseClick(submitButton, submitButton.width / 2, submitButton.height / 2);
172+ }
173+
174+ compare(spy.count, 1);
175+ var args = spy.signalArguments[0];
176+ compare(args[0], previewRatingInput.widgetId);
177+ compare(args[1], data.widgetData["required"]);
178+ compare(args[2]["rating"], data.triggeredData["rating"]);
179+ compare(args[2]["review"], data.triggeredData["review"]);
180+ verify(args[2]["author"]); // Just verifying it exists now
181+ }
182+ }
183+}
tests/qmltests/Dash/Previews/tst_PreviewVideoPlayback.qml−6
@@ -53,12 +53,6 @@ Rectangle {
53 function test_loadScreenshot() {
53 function test_loadScreenshot() {
54 var screenshot = findChild(videoPlayback, "screenshot");
54 var screenshot = findChild(videoPlayback, "screenshot");
55
55
56− videoPlayback.widgetData = widgetData0;
57− tryCompare(screenshot.visible, false);
58−
59− videoPlayback.widgetData = widgetData1;
60− tryCompare(screenshot.visible, true);
61−
62 videoPlayback.widgetData = widgetData2;
56 videoPlayback.widgetData = widgetData2;
63 var screenshotSource = screenshot.source
57 var screenshotSource = screenshot.source
64 verify(screenshotSource.toString().indexOf("image://thumbnailer/") === 0)
58 verify(screenshotSource.toString().indexOf("image://thumbnailer/") === 0)
tests/qmltests/Dash/Previews/tst_PreviewWidgetFactory.qml+3
@@ -80,6 +80,9 @@ Rectangle {
80 { tag: "Gallery", type: "gallery", source: "PreviewImageGallery.qml" },
80 { tag: "Gallery", type: "gallery", source: "PreviewImageGallery.qml" },
81 { tag: "Header", type: "header", source: "PreviewHeader.qml" },
81 { tag: "Header", type: "header", source: "PreviewHeader.qml" },
82 { tag: "Image", type: "image", source: "PreviewZoomableImage.qml" },
82 { tag: "Image", type: "image", source: "PreviewZoomableImage.qml" },
83+ { tag: "Progress", type: "progress", source: "PreviewProgress.qml" },
84+ { tag: "Rating Input", type: "rating-input", source: "PreviewRatingInput.qml" },
85+ { tag: "Rating Display", type: "reviews", source: "PreviewRatingDisplay.qml" },
83 { tag: "Text", type: "text", source: "PreviewTextSummary.qml" },
86 { tag: "Text", type: "text", source: "PreviewTextSummary.qml" },
84 { tag: "Video", type: "video", source: "PreviewVideoPlayback.qml" },
87 { tag: "Video", type: "video", source: "PreviewVideoPlayback.qml" },
85 ];
88 ];
tests/qmltests/Dash/Previews/tst_PreviewZoomableImage.qml+3−4
@@ -30,14 +30,13 @@ Rectangle {
30 }
30 }
31
31
32 property var widgetData1: {
32 property var widgetData1: {
33− "source": "../../graphics/phone_background.jpg",
33+ "source": Qt.resolvedUrl("../artwork/checkers.png"),
34 "zoomable": false
34 "zoomable": false
35 }
35 }
36
36
37 PreviewZoomableImage {
37 PreviewZoomableImage {
38 id: zoomableImage
38 id: zoomableImage
39 width: parent.width
39 width: parent.width
40− widgetData: widgetData1
41 }
40 }
42
41
43 UT.UnityTestCase {
42 UT.UnityTestCase {
@@ -48,10 +47,10 @@ Rectangle {
48 var image = findChild(zoomableImage, "image");
47 var image = findChild(zoomableImage, "image");
49
48
50 zoomableImage.widgetData = widgetData0;
49 zoomableImage.widgetData = widgetData0;
51− tryCompare(image.state, "default");
50+ tryCompare(image, "state", "default");
52
51
53 zoomableImage.widgetData = widgetData1;
52 zoomableImage.widgetData = widgetData1;
54− tryCompare(image.state, "ready");
53+ tryCompare(image, "state", "ready");
55 }
54 }
56 }
55 }
57}
56}
tests/qmltests/Dash/artwork/checkers.pngnew file

Binary file not shown.

tests/qmltests/Dash/qml/FakeScopeView.qml−5
@@ -25,11 +25,6 @@ GenericScopeView {
25 property alias backColor : back.color
25 property alias backColor : back.color
26 property var categoryView: null
26 property var categoryView: null
27
27
28− onEndReached: {
29− if (scope != undefined && shell != undefined && shell.scopeStatus != undefined) {
30− shell.scopeStatus[scope.id].endReached++;
31− }
32− }
33 onMovementStarted: {
28 onMovementStarted: {
34 if (shell != undefined && shell.scopeStatus != undefined) {
29 if (shell != undefined && shell.scopeStatus != undefined) {
35 shell.scopeStatus[scope.id].movementStarted++;
30 shell.scopeStatus[scope.id].movementStarted++;
tests/qmltests/Dash/tst_Card.qml+122
@@ -79,6 +79,21 @@ Rectangle {
79 "layout": { "template": { "overlay": true },
79 "layout": { "template": { "overlay": true },
80 "components": JSON.parse(Helpers.fullMapping) }
80 "components": JSON.parse(Helpers.fullMapping) }
81 },
81 },
82+ {
83+ "name": "Art, header - grey background",
84+ "layout": { "template": { "card-background": { "type": "color", "elements": ["grey"] } },
85+ "components": JSON.parse(Helpers.fullMapping) }
86+ },
87+ {
88+ "name": "Art, header - gradient background",
89+ "layout": { "template": { "card-background": { "type": "gradient", "elements": ["grey", "white"] } },
90+ "components": JSON.parse(Helpers.fullMapping) }
91+ },
92+ {
93+ "name": "Art, header - image background",
94+ "layout": { "template": { "card-background": Qt.resolvedUrl("artwork/checkers.png") },
95+ "components": JSON.parse(Helpers.fullMapping) }
96+ },
82 ]
97 ]
83
98
84 CardTool {
99 CardTool {
@@ -167,15 +182,20 @@ Rectangle {
167 when: windowShown
182 when: windowShown
168
183
169 property Item header: findChild(card, "cardHeader")
184 property Item header: findChild(card, "cardHeader")
185+ property Item title: findChild(header, "titleLabel")
170 property Item art: findChild(card, "artShape")
186 property Item art: findChild(card, "artShape")
171 property Item artImage: findChild(card, "artImage")
187 property Item artImage: findChild(card, "artImage")
172 property Item summary: findChild(card, "summaryLabel")
188 property Item summary: findChild(card, "summaryLabel")
189+ property Item background: findChild(card, "background")
190+ property Item backgroundImage: findChild(card, "backgroundImage")
173
191
174 function initTestCase() {
192 function initTestCase() {
175 verify(typeof testCase.header === "object", "Couldn't find header object.");
193 verify(typeof testCase.header === "object", "Couldn't find header object.");
176 verify(typeof testCase.art === "object", "Couldn't find art object.");
194 verify(typeof testCase.art === "object", "Couldn't find art object.");
177 verify(typeof testCase.artImage === "object", "Couldn't find artImage object.");
195 verify(typeof testCase.artImage === "object", "Couldn't find artImage object.");
178 verify(typeof testCase.summary === "object", "Couldn't find summary object.");
196 verify(typeof testCase.summary === "object", "Couldn't find summary object.");
197+ verify(typeof testCase.artImage === "object", "Couldn't find background object.");
198+ verify(typeof testCase.summary === "object", "Couldn't find backgroundImage object.");
179 }
199 }
180
200
181 function cleanup() {
201 function cleanup() {
@@ -354,5 +374,107 @@ Rectangle {
354 compare(testCase.art.height, 0);
374 compare(testCase.art.height, 0);
355 compare(testCase.art.width, 0);
375 compare(testCase.art.width, 0);
356 }
376 }
377+
378+ function test_background_data() {
379+ return [
380+ { tag: "Art and summary", visible: true, color: "#ffffff", index: 0 },
381+ { tag: "No Summary", visible: false, index: 6 },
382+ { tag: "Horizontal", visible: false, index: 5 },
383+ { tag: "Grey background", visible: true, color: "#808080", index: 10 },
384+ { tag: "Overriden Gradient background", visible: true, color: "#808080", gradientColor: "#ffffff",
385+ background: {type: "color", elements: ["grey", "white"]}, index: 10 },
386+ { tag: "Overriden Image background", visible: true, image: Qt.resolvedUrl("artwork/checkers.png"),
387+ background: Qt.resolvedUrl("artwork/checkers.png"), index: 10 },
388+ { tag: "Gradient background", visible: true, color: "#808080", gradientColor: "#ffffff", index: 11 },
389+ { tag: "Image background", visible: true, image: Qt.resolvedUrl("artwork/checkers.png"), index: 12 },
390+ ];
391+ }
392+
393+ function test_background(data) {
394+ selector.selectedIndex = data.index;
395+
396+ if (data.hasOwnProperty("background")) {
397+ card.cardData["background"] = data.background;
398+ card.cardDataChanged();
399+ }
400+
401+ waitForRendering(card);
402+
403+ tryCompare(background, "visible", data.visible);
404+
405+ if (data.hasOwnProperty("color")) {
406+ tryCompare(background, "color", data.color);
407+ }
408+
409+ if (data.hasOwnProperty("gradientColor")) {
410+ tryCompare(background, "gradientColor", data.gradientColor);
411+ }
412+
413+ if (data.hasOwnProperty("image")) {
414+ tryCompare(backgroundImage, "source", data.image);
415+ }
416+ }
417+
418+ function test_font_weights_data() {
419+ return [
420+ { tag: "Title only", index: 8, weight: Font.Normal },
421+ { tag: "Title, subtitle", index: 0, weight: Font.DemiBold },
422+ ]
423+ }
424+
425+ function test_font_weights(data) {
426+ selector.selectedIndex = data.index;
427+
428+ tryCompare(testCase.title.font, "weight", data.weight);
429+ }
430+
431+ function test_fontColor_data() {
432+ return [
433+ { tag: "#ffffff", dark: true },
434+ { tag: "#fdfdfd", dark: true },
435+ { tag: "#f9f9f9", dark: true },
436+ { tag: "#000000", dark: false },
437+ { tag: "#ef814c", dark: false },
438+ { tag: "#312f2c", dark: false },
439+ { tag: "#be332d", dark: false },
440+ { tag: "#52ace4", dark: false },
441+ { tag: "#3a5897", dark: false },
442+ { tag: "#1caeeb", dark: false },
443+ { tag: "#87c341", dark: false },
444+ { tag: "#50893b", dark: false },
445+ ];
446+ }
447+
448+ function test_fontColor(data) {
449+ selector.selectedIndex = 10;
450+
451+ background.color = data.tag;
452+
453+ var fontColor = data.dark ? "grey" : "white";
454+
455+ tryCompareFunction(function() { return Qt.colorEqual(summary.color, fontColor); }, true);
456+ tryCompareFunction(function() { return Qt.colorEqual(header.fontColor, fontColor); }, true);
457+ }
458+
459+ function test_mascotShape_data() {
460+ return [
461+ { tag: "Art and summary", shape: false, index: 0 },
462+ { tag: "No Summary", shape: true, index: 6 },
463+ { tag: "With background", shape: false, index: 10 },
464+ ];
465+ }
466+
467+ function test_mascotShape(data) {
468+ selector.selectedIndex = data.index;
469+
470+ var shape = findChild(card, "mascotShape");
471+ var image = findChild(card, "mascotImage");
472+
473+ verify(shape, "Could not find shape.");
474+ verify(image, "Could not find image.");
475+
476+ tryCompare(shape, "visible", data.shape);
477+ tryCompare(image, "visible", !data.shape);
478+ }
357 }
479 }
358}
480}
tests/qmltests/Dash/tst_CardHeader.qml+1−28
@@ -46,7 +46,6 @@ Rectangle {
46 property Item mascot: findChild(cardHeader, "mascotShape")
46 property Item mascot: findChild(cardHeader, "mascotShape")
47 property Item titleLabel: findChild(cardHeader, "titleLabel")
47 property Item titleLabel: findChild(cardHeader, "titleLabel")
48 property Item subtitleLabel: findChild(cardHeader, "subtitleLabel")
48 property Item subtitleLabel: findChild(cardHeader, "subtitleLabel")
49− property Item prices: findChild(cardHeader, "prices")
50 property Item oldPriceLabel: findChild(cardHeader, "oldPriceLabel")
49 property Item oldPriceLabel: findChild(cardHeader, "oldPriceLabel")
51 property Item outerRow: findChild(cardHeader, "outerRow")
50 property Item outerRow: findChild(cardHeader, "outerRow")
52 property Item column: findChild(cardHeader, "column")
51 property Item column: findChild(cardHeader, "column")
@@ -55,7 +54,6 @@ Rectangle {
55 verify(typeof testCase.mascot === "object", "Couldn't find mascot object.");
54 verify(typeof testCase.mascot === "object", "Couldn't find mascot object.");
56 verify(typeof testCase.titleLabel === "object", "Couldn't find titleLabel object.");
55 verify(typeof testCase.titleLabel === "object", "Couldn't find titleLabel object.");
57 verify(typeof testCase.subtitleLabel === "object", "Couldn't find subtitleLabel object.");
56 verify(typeof testCase.subtitleLabel === "object", "Couldn't find subtitleLabel object.");
58− verify(typeof testCase.prices === "object", "Couldn't find prices object.");
59 verify(typeof testCase.oldPriceLabel === "object", "Couldn't find oldPriceLabel object.");
57 verify(typeof testCase.oldPriceLabel === "object", "Couldn't find oldPriceLabel object.");
60 }
58 }
61
59
@@ -63,9 +61,6 @@ Rectangle {
63 cardHeader.mascot = "";
61 cardHeader.mascot = "";
64 cardHeader.title = "";
62 cardHeader.title = "";
65 cardHeader.subtitle = "";
63 cardHeader.subtitle = "";
66− cardHeader.price = "";
67− cardHeader.oldPrice = "";
68− cardHeader.altPrice = "";
69 }
64 }
70
65
71 function test_mascot_data() {
66 function test_mascot_data() {
@@ -96,33 +91,11 @@ Rectangle {
96 tryCompare(cardHeader, "visible", data.visible);
91 tryCompare(cardHeader, "visible", data.visible);
97 }
92 }
98
93
99− function test_prices_data() {
100− return [
101− { tag: "Main", main: "$1.25", visible: true },
102− { tag: "Alt", alt: "€1.00", visible: false },
103− { tag: "Old", old: "€2.00", visible: false },
104− { tag: "Main and Alt", main: "$1.25", alt: "€1.00", visible: true },
105− { tag: "Main and Old", main: "$1.25", old: "$2.00", visible: true, oldAlign: Text.AlignRight },
106− { tag: "Alt and Old", alt: "€1.00", old: "$2.00", visible: false },
107− { tag: "All", main: "$1.25", alt: "€1.00", old: "$2.00", visible: true, oldAlign: Text.AlignHCenter },
108− ]
109− }
110−
111− function test_prices(data) {
112− cardHeader.price = data.main !== undefined ? data.main : "";
113− cardHeader.oldPrice = data.old !== undefined ? data.old : "";
114− cardHeader.altPrice = data.alt !== undefined ? data.alt : "";
115− tryCompare(cardHeader, "visible", data.visible);
116− if (data.hasOwnProperty("oldAlign")) {
117− compare(testCase.oldPriceLabel.horizontalAlignment, data.oldAlign, "Old price label is aligned wrong.")
118− }
119− }
120−
121 function test_dimensions_data() {
94 function test_dimensions_data() {
122 return [
95 return [
123 { tag: "Column width", object: column, width: cardHeader.width },
96 { tag: "Column width", object: column, width: cardHeader.width },
124 { tag: "Column width with mascot", object: column, width: cardHeader.width - mascot.width - outerRow.margins * 3, mascot: "artwork/avatar.png" },
97 { tag: "Column width with mascot", object: column, width: cardHeader.width - mascot.width - outerRow.margins * 3, mascot: "artwork/avatar.png" },
125− { tag: "Header height", object: cardHeader, height: function() { return subtitleLabel.y + subtitleLabel.height + outerRow.margins * 2 } },
98+ { tag: "Header height", object: cardHeader, height: function() { return outerRow.height + outerRow.margins * 2 } },
126 ]
99 ]
127 }
100 }
128
101
tests/qmltests/Dash/tst_CardTool.qml+61
@@ -72,11 +72,28 @@ Rectangle {
72 "name": "Art, header - portrait",
72 "name": "Art, header - portrait",
73 "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "art": {"aspect-ratio": 0.5, "summary": undefined }}) }
73 "layout": { "components": Helpers.update(JSON.parse(Helpers.fullMapping), { "art": {"aspect-ratio": 0.5, "summary": undefined }}) }
74 },
74 },
75+ {
76+ "name": "Title - vertical",
77+ "layout": { "template": { "card-layout": "vertical" }, "components": { "title": "title" } }
78+ },
79+ {
80+ "name": "Title - horizontal",
81+ "layout": { "template": { "card-layout": "horizontal" }, "components": { "title": "title" } }
82+ },
83+ {
84+ "name": "Title, subtitle - vertical",
85+ "layout": { "template": { "card-layout": "vertical" }, "components": { "title": "title", "subtitle": "subtitle" } }
86+ },
87+ {
88+ "name": "Title, price - horizontal",
89+ "layout": { "template": { "card-layout": "horizontal" }, "components": { "title": "title", "price": "price" } }
90+ },
75 ]
91 ]
76
92
77 CardTool {
93 CardTool {
78 id: cardTool
94 id: cardTool
79
95
96+ count: 8
80 template: Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['template'];
97 template: Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['template'];
81 components: Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['components'];
98 components: Helpers.update(JSON.parse(Helpers.defaultLayout), Helpers.tryParse(layoutArea.text, layoutError))['components'];
82 viewWidth: units.gu(Math.round(widthSlider.value))
99 viewWidth: units.gu(Math.round(widthSlider.value))
@@ -121,6 +138,7 @@ Rectangle {
121 height: cardTool.cardHeight || implicitHeight
138 height: cardTool.cardHeight || implicitHeight
122
139
123 clip: true
140 clip: true
141+ headerAlignment: cardTool.headerAlignment
124
142
125 Rectangle {
143 Rectangle {
126 anchors.fill: parent
144 anchors.fill: parent
@@ -302,5 +320,48 @@ Rectangle {
302 } else tryCompare(cardTool, "cardHeight", data.height);
320 } else tryCompare(cardTool, "cardHeight", data.height);
303 }
321 }
304 }
322 }
323+
324+ function test_card_header_component_alignment_data() {
325+ return [
326+ { tag: "Title - vertical", component: "titleLabel", property: "headerAlignment",
327+ value: Text.AlignHCenter, index: 11, layout_index: 0 },
328+ { tag: "Title - horizontal", component: "titleLabel", property: "headerAlignment",
329+ value: Text.AlignLeft, index: 12, layout_index: 0},
330+ { tag: "Title, subtitle - vertical", component: "titleLabel", property: "headerAlignment",
331+ value: Text.AlignLeft, index: 13, layout_index: 0},
332+ { tag: "Title, price - horizontal", component: "titleLabel", property: "headerAlignment",
333+ value: Text.AlignLeft, index: 14, layout_index: 0},
334+ ]
335+ }
336+
337+ function test_card_header_component_alignment(data) {
338+ selector.selectedIndex = data.index;
339+ if (data.hasOwnProperty("layout_index")) {
340+ layoutSelector.selectedIndex = data.layout_index;
341+ }
342+
343+ if (data.hasOwnProperty("property")) {
344+ tryCompare(cardTool, data.property, data.value);
345+ }
346+ }
347+
348+ function test_categoryLayout_data() {
349+ return [
350+ { tag: "Default Grid", layout_index: 0, count: 2, viewWidth: units.gu(40), layout: "grid" },
351+ { tag: "Long carousel", layout_index: 4, count: 6, viewWidth: units.gu(140), layout: "carousel" },
352+ { tag: "Long carousel fallback", layout_index: 4, count: 5, viewWidth: units.gu(140), layout: "grid" },
353+ { tag: "Short carousel", layout_index: 4, count: 4, viewWidth: units.gu(30), layout: "carousel" },
354+ { tag: "Short carousel fallback", layout_index: 4, count: 3, viewWidth: units.gu(30), layout: "grid" },
355+ { tag: "Journal", layout_index: 2, count: 8, viewWidth: units.gu(30), layout: "journal" }
356+ ]
357+ }
358+
359+ function test_categoryLayout(data) {
360+ selector.selectedIndex = 0;
361+ layoutSelector.selectedIndex = data.layout_index;
362+ cardTool.viewWidth = data.viewWidth;
363+ cardTool.count = data.count;
364+ compare(cardTool.categoryLayout, data.layout);
365+ }
305 }
366 }
306}
367}
tests/qmltests/Dash/tst_DashContent.qml+15−36
@@ -105,25 +105,19 @@ Item {
105 signalName: "movementStarted"
105 signalName: "movementStarted"
106 }
106 }
107
107
108− SignalSpy {
109− id: contentEndReachedSpy
110− target: dashContent
111− signalName: "contentEndReached"
112− }
113−
114 UT.UnityTestCase {
108 UT.UnityTestCase {
115 name: "DashContent"
109 name: "DashContent"
116 when: scopesModel.loaded
110 when: scopesModel.loaded
117
111
118 function init() {
112 function init() {
119 scopesModel.clear();
113 scopesModel.clear();
114+ scopeLoadedSpy.clear();
120 scopesModel.load();
115 scopesModel.load();
116+ tryCompare(scopeLoadedSpy, "count", 5);
121 }
117 }
122
118
123 function cleanup() {
119 function cleanup() {
124− scopeLoadedSpy.clear();
125 movementStartedSpy.clear();
120 movementStartedSpy.clear();
126− contentEndReachedSpy.clear();
127 clear_scope_status();
121 clear_scope_status();
128 dashContent.visible = true;
122 dashContent.visible = true;
129
123
@@ -132,17 +126,18 @@ Item {
132 scopesModel.clear();
126 scopesModel.clear();
133 // wait for dash to empty scopes.
127 // wait for dash to empty scopes.
134 tryCompare(dashContentList, "count", 0);
128 tryCompare(dashContentList, "count", 0);
135− // this is the default state for empty model
136− dashContentList.currentIndex = -1;
137 }
129 }
138
130
139 function test_current_index() {
131 function test_current_index() {
140 var dashContentList = findChild(dashContent, "dashContentList");
132 var dashContentList = findChild(dashContent, "dashContentList");
141 verify(dashContentList != undefined)
133 verify(dashContentList != undefined)
142
134
135+ scopesModel.clear();
143 compare(dashContentList.count, 0, "DashContent should have 0 items when it starts");
136 compare(dashContentList.count, 0, "DashContent should have 0 items when it starts");
144− compare(dashContentList.currentIndex, -1, "DashContent's currentIndex should be -1 while there have been no items in the model");
137+ tryCompare(dashContentList, "currentIndex", -1);
145
138
139+ scopeLoadedSpy.clear();
140+ scopesModel.load();
146 tryCompare(scopeLoadedSpy, "count", 5);
141 tryCompare(scopeLoadedSpy, "count", 5);
147
142
148 verify(dashContentList.currentIndex >= 0);
143 verify(dashContentList.currentIndex >= 0);
@@ -152,10 +147,13 @@ Item {
152 var dashContentList = findChild(dashContent, "dashContentList");
147 var dashContentList = findChild(dashContent, "dashContentList");
153 verify(dashContentList != undefined)
148 verify(dashContentList != undefined)
154
149
150+ scopesModel.clear();
155− compare(dashContentList.count, 0, "DashContent should have 0 items when it starts");
151+ compare(dashContentList.count, 0, "DashContent should have 0 items after clearing");
156 // pretend we're running after a model reset
152 // pretend we're running after a model reset
157 dashContentList.currentIndex = 27;
153 dashContentList.currentIndex = 27;
158
154
155+ scopeLoadedSpy.clear();
156+ scopesModel.load();
159 tryCompare(scopeLoadedSpy, "count", 5);
157 tryCompare(scopeLoadedSpy, "count", 5);
160
158
161 verify(dashContentList.currentIndex >= 0 && dashContentList.currentIndex < 5);
159 verify(dashContentList.currentIndex >= 0 && dashContentList.currentIndex < 5);
@@ -167,8 +165,6 @@ Item {
167 var dashContentList = findChild(dashContent, "dashContentList");
165 var dashContentList = findChild(dashContent, "dashContentList");
168 verify(dashContentList != undefined)
166 verify(dashContentList != undefined)
169
167
170− tryCompare(scopeLoadedSpy, "count", 5);
171−
172 dashContentList.movementStarted();
168 dashContentList.movementStarted();
173
169
174 compare(movementStartedSpy.count, 1, "DashContent should have emitted movementStarted signal when content list did.");
170 compare(movementStartedSpy.count, 1, "DashContent should have emitted movementStarted signal when content list did.");
@@ -182,8 +178,6 @@ Item {
182 function test_positioned_at_beginning_signal() {
178 function test_positioned_at_beginning_signal() {
183 dashContent.setCurrentScopeAtIndex(3, true, false);
179 dashContent.setCurrentScopeAtIndex(3, true, false);
184
180
185− tryCompare(scopeLoadedSpy, "count", 5);
186−
187 dashContent.positionedAtBeginning();
181 dashContent.positionedAtBeginning();
188 compare(scopeStatus["MockScope1"].positionedAtBeginning, 1, "MockScope1 should have emitted positionedAtBeginning signal when DashContent did.");
182 compare(scopeStatus["MockScope1"].positionedAtBeginning, 1, "MockScope1 should have emitted positionedAtBeginning signal when DashContent did.");
189 compare(scopeStatus["MockScope2"].positionedAtBeginning, 1, "MockScope2 should have emitted positionedAtBeginning signal when DashContent did.");
183 compare(scopeStatus["MockScope2"].positionedAtBeginning, 1, "MockScope2 should have emitted positionedAtBeginning signal when DashContent did.");
@@ -192,30 +186,17 @@ Item {
192 compare(scopeStatus["MockScope5"].positionedAtBeginning, 1, "MockScope5 should have emitted positionedAtBeginning signal when DashContent did.");
186 compare(scopeStatus["MockScope5"].positionedAtBeginning, 1, "MockScope5 should have emitted positionedAtBeginning signal when DashContent did.");
193 }
187 }
194
188
195− function test_scope_loaded() {
196− tryCompare(scopeLoadedSpy, "count", 5);
197− }
198−
199− function test_content_end_reached() {
200− var dashContentList = findChild(dashContent, "dashContentList");
201− verify(dashContentList != undefined);
202−
203− tryCompare(scopeLoadedSpy, "count", 5);
204− dashContent.setCurrentScopeAtIndex(0, true, false);
205− dashContentList.currentItem.item.endReached();
206−
207− compare(contentEndReachedSpy.count, 1);
208− }
209−
210 // This tests that setting the current scope index will end up at the correct index even if
189 // This tests that setting the current scope index will end up at the correct index even if
211 // the scopes are loaded asynchrounsly.
190 // the scopes are loaded asynchrounsly.
212 function test_set_current_scope_index_async() {
191 function test_set_current_scope_index_async() {
192+ scopesModel.clear();
213 verify(scopesModel.loaded == false);
193 verify(scopesModel.loaded == false);
214
194
215− // next index is 1 if current is -1, otherwise it's current + 1
195+ tryCompare(dashContent, "currentIndex", -1);
216− var next_index = ((dashContent.currentIndex == -1 ? 0 : dashContent.currentIndex) + 1) % 5
196+ var next_index = 1
217
197
218 dashContent.setCurrentScopeAtIndex(next_index, true, false);
198 dashContent.setCurrentScopeAtIndex(next_index, true, false);
199+ scopesModel.load();
219 tryCompare(dashContent, "currentIndex", next_index);
200 tryCompare(dashContent, "currentIndex", next_index);
220 verify(scopesModel.loaded == true);
201 verify(scopesModel.loaded == true);
221
202
@@ -265,8 +246,6 @@ Item {
265 function test_is_active(data) {
246 function test_is_active(data) {
266 var dashContentList = findChild(dashContent, "dashContentList");
247 var dashContentList = findChild(dashContent, "dashContentList");
267
248
268− tryCompare(scopeLoadedSpy, "count", 5);
269−
270 dashContent.setCurrentScopeAtIndex(data.select, true, false);
249 dashContent.setCurrentScopeAtIndex(data.select, true, false);
271 dashContent.visible = data.visible;
250 dashContent.visible = data.visible;
272
251
@@ -305,7 +284,7 @@ Item {
305 tryCompare(scopesModel, "loaded", true);
284 tryCompare(scopesModel, "loaded", true);
306 var tabbar = findChild(dashContent, "tabbar");
285 var tabbar = findChild(dashContent, "tabbar");
307
286
308− compare(dashContent.currentIndex, 0);
287+ tryCompare(dashContent, "currentIndex", 0);
309 tryCompare(tabbar, "selectedIndex", 0);
288 tryCompare(tabbar, "selectedIndex", 0);
310 tryCompare(tabbar, "selectionMode", false);
289 tryCompare(tabbar, "selectionMode", false);
311
290
tests/qmltests/Dash/tst_GenericPreview.qml+2−2
@@ -22,7 +22,7 @@ import Unity.Test 0.1 as UT
22Item {
22Item {
23 id: root
23 id: root
24 width: units.gu(60)
24 width: units.gu(60)
25− height: units.gu(80)
25+ height: units.gu(90)
26
26
27 property var calls: []
27 property var calls: []
28 property int counter: 0
28 property int counter: 0
@@ -81,7 +81,7 @@ Item {
81
81
82 var actions = get_actions_data();
82 var actions = get_actions_data();
83 for(var i = 0; i < actions.length; i++) {
83 for(var i = 0; i < actions.length; i++) {
84− compare(root.calls[i], actions[i].id);
84+ tryCompare(root.calls, i, actions[i].id);
85 }
85 }
86 }
86 }
87
87
tests/qmltests/Dash/tst_GenericScopeView.qml+3−3
@@ -67,7 +67,7 @@ Item {
67 function init() {
67 function init() {
68 shell.width = units.gu(120)
68 shell.width = units.gu(120)
69 genericScopeView.categoryView.positionAtBeginning();
69 genericScopeView.categoryView.positionAtBeginning();
70− tryCompare(genericScopeView.categoryView.contentY, 0)
70+ tryCompare(genericScopeView.categoryView, "contentY", 0)
71 }
71 }
72
72
73 function test_isCurrent() {
73 function test_isCurrent() {
@@ -184,13 +184,13 @@ Item {
184 categoryListView.positionAtBeginning();
184 categoryListView.positionAtBeginning();
185 waitForRendering(categoryListView);
185 waitForRendering(categoryListView);
186 categoryListView.flick(0, -units.gu(60));
186 categoryListView.flick(0, -units.gu(60));
187− tryCompare(categoryListView.flicking, false);
187+ tryCompare(categoryListView, "flicking", false);
188
188
189 var tile = findChild(findChild(genericScopeView, "0"), "delegate0");
189 var tile = findChild(findChild(genericScopeView, "0"), "delegate0");
190 mouseClick(tile, tile.width / 2, tile.height - 1);
190 mouseClick(tile, tile.width / 2, tile.height - 1);
191 tryCompare(openEffect, "gap", 1);
191 tryCompare(openEffect, "gap", 1);
192
192
193− verify(openEffect.positionPx >= pageHeader.height + categoryListView.stickyHeaderHeight);
193+ verify(openEffect.positionPx >= Math.round(pageHeader.height + categoryListView.stickyHeaderHeight));
194 }
194 }
195
195
196 function test_previewCycle() {
196 function test_previewCycle() {
tests/qmltests/Greeter/tst_Phone.qml+19
@@ -44,6 +44,17 @@ Item {
44 }
44 }
45 }
45 }
46
46
47+ Component {
48+ id: greeterComponent
49+ Greeter {
50+ SignalSpy {
51+ objectName: "selectedSpy"
52+ target: parent
53+ signalName: "selected"
54+ }
55+ }
56+ }
57+
47 SignalSpy {
58 SignalSpy {
48 id: unlockSpy
59 id: unlockSpy
49 target: greeter
60 target: greeter
@@ -148,5 +159,13 @@ Item {
148 tryCompareFunction(function() { return background.source.toString().indexOf(data.expected) !== -1; }, true)
159 tryCompareFunction(function() { return background.source.toString().indexOf(data.expected) !== -1; }, true)
149 tryCompare(background, "status", Image.Ready)
160 tryCompare(background, "status", Image.Ready)
150 }
161 }
162+
163+ function test_initial_selected_signal() {
164+ var greeterObj = greeterComponent.createObject(this)
165+ var spy = findChild(greeterObj, "selectedSpy")
166+ spy.wait()
167+ tryCompare(spy, "count", 1)
168+ greeterObj.destroy()
169+ }
151 }
170 }
152}
171}
tests/qmltests/Greeter/tst_Tablet.qml+19
@@ -31,6 +31,17 @@ Item {
31 anchors.fill: parent
31 anchors.fill: parent
32 }
32 }
33
33
34+ Component {
35+ id: greeterComponent
36+ Greeter {
37+ SignalSpy {
38+ objectName: "selectedSpy"
39+ target: parent
40+ signalName: "selected"
41+ }
42+ }
43+ }
44+
34 SignalSpy {
45 SignalSpy {
35 id: unlockSpy
46 id: unlockSpy
36 target: greeter
47 target: greeter
@@ -335,5 +346,13 @@ Item {
335 var userlist = findChild(greeter, "userList")
346 var userlist = findChild(greeter, "userList")
336 compare(greeter.model.data(userlist.currentIndex, LightDM.UserRoles.NameRole), "has-password")
347 compare(greeter.model.data(userlist.currentIndex, LightDM.UserRoles.NameRole), "has-password")
337 }
348 }
349+
350+ function test_initial_selected_signal() {
351+ var greeterObj = greeterComponent.createObject(this)
352+ var spy = findChild(greeterObj, "selectedSpy")
353+ spy.wait()
354+ tryCompare(spy, "count", 1)
355+ greeterObj.destroy()
356+ }
338 }
357 }
339}
358}
tests/qmltests/Launcher/tst_Launcher.qml+6−4
@@ -121,8 +121,7 @@ Item {
121 revealer.dragLauncherIntoView()
121 revealer.dragLauncherIntoView()
122
122
123 var listView = findChild(launcher, "launcherListView");
123 var listView = findChild(launcher, "launcherListView");
124− listView.flick(0, units.gu(500));
124+ listView.positionViewAtEnd();
125− tryCompare(listView, "flicking", false);
126
125
127 var appIcon = findChild(launcher, "launcherDelegate0")
126 var appIcon = findChild(launcher, "launcherDelegate0")
128
127
@@ -397,8 +396,11 @@ Item {
397
396
398 // Position launcher to where we need it
397 // Position launcher to where we need it
399 var listView = findChild(launcher, "launcherListView");
398 var listView = findChild(launcher, "launcherListView");
400− listView.flick(0, units.gu(200) * (data.flickTo === "top" ? 1 : -1));
399+ if (data.flickTo == "top") {
401− tryCompare(listView, "flicking", false);
400+ listView.positionViewAtEnd();
401+ } else {
402+ listView.positionViewAtBeginning();
403+ }
402
404
403 // Doing longpress
405 // Doing longpress
404 mousePress(draggedItem, draggedItem.width / 2, draggedItem.height / 2)
406 mousePress(draggedItem, draggedItem.width / 2, draggedItem.height / 2)
tests/qmltests/Panel/tst_IndicatorRow.qml+3−3
@@ -70,13 +70,13 @@ Item {
70 function test_set_current_item() {
70 function test_set_current_item() {
71 init_test();
71 init_test();
72 indicatorRow.setCurrentItemIndex(0);
72 indicatorRow.setCurrentItemIndex(0);
73− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake1", "Incorrect item at position 0");
73+ compare(indicatorRow.indicatorsModel.data(indicatorRow.currentItemIndex, Indicators.IndicatorsModelRole.Identifier), "indicator-fake1", "Incorrect item at position 0");
74
74
75 indicatorRow.setCurrentItemIndex(1);
75 indicatorRow.setCurrentItemIndex(1);
76− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake2", "Incorrect item at position 1");
76+ compare(indicatorRow.indicatorsModel.data(indicatorRow.currentItemIndex, Indicators.IndicatorsModelRole.Identifier), "indicator-fake2", "Incorrect item at position 1");
77
77
78 indicatorRow.setCurrentItemIndex(2);
78 indicatorRow.setCurrentItemIndex(2);
79− compare(indicatorRow.indicatorsModel.get(indicatorRow.currentItemIndex).identifier, "indicator-fake3", "Incorrect item at position 2");
79+ compare(indicatorRow.indicatorsModel.data(indicatorRow.currentItemIndex, Indicators.IndicatorsModelRole.Identifier), "indicator-fake3", "Incorrect item at position 2");
80 }
80 }
81
81
82 function test_highlight_data() {
82 function test_highlight_data() {
tests/qmltests/Panel/tst_MenuContent.qml+1−1
@@ -133,7 +133,7 @@ Item {
133 var menuIndex = i%menuCount;
133 var menuIndex = i%menuCount;
134
134
135 activate_content(menuIndex);
135 activate_content(menuIndex);
136− testTabObjectName = indicatorsModel.get(menuIndex).identifier;
136+ testTabObjectName = indicatorsModel.data(menuIndex, Indicators.IndicatorsModelRole.Identifier);
137 compare(tabs.selectedTabIndex, menuIndex, "Current tab index does not match selected tab index");
137 compare(tabs.selectedTabIndex, menuIndex, "Current tab index does not match selected tab index");
138 tryCompareFunction(selected_tab_equals_test_tab, true);
138 tryCompareFunction(selected_tab_equals_test_tab, true);
139 }
139 }
tests/qmltests/tst_Shell.qml+18−2
@@ -110,6 +110,9 @@ Item {
110 swipeUntilScopeViewIsReached(dashHome);
110 swipeUntilScopeViewIsReached(dashHome);
111
111
112 hideIndicators();
112 hideIndicators();
113+
114+ var dashContent = findChild(shell, "dashContent");
115+ dashContent.previewOpen = false;
113 }
116 }
114
117
115 function killApps(apps) {
118 function killApps(apps) {
@@ -235,8 +238,8 @@ Item {
235
238
236 var dash = findChild(shell, "dash");
239 var dash = findChild(shell, "dash");
237 // check that dash has normal scale and opacity
240 // check that dash has normal scale and opacity
238− tryCompare(dash.contentScale, 1.0);
241+ tryCompare(dash, "contentScale", 1.0);
239− tryCompare(dash.opacity, 1.0);
242+ tryCompare(dash, "opacity", 1.0);
240
243
241 touchFlick(shell, touchX, touchY, shell.width * 0.1, touchY,
244 touchFlick(shell, touchX, touchY, shell.width * 0.1, touchY,
242 true /* beginTouch */, false /* endTouch */);
245 true /* beginTouch */, false /* endTouch */);
@@ -549,5 +552,18 @@ Item {
549 tryCompare(greeter, "shown", true)
552 tryCompare(greeter, "shown", true)
550 tryCompare(searchIndicator, "opacity", 0)
553 tryCompare(searchIndicator, "opacity", 0)
551 }
554 }
555+
556+ function test_searchIndicatorHideOnPreviewShown() {
557+ var searchIndicator = findChild(shell, "container");
558+ var dashContent = findChild(shell, "dashContent");
559+
560+ verify(dashContent != null);
561+
562+ tryCompare(searchIndicator, "opacity", 1);
563+
564+ dashContent.previewOpen = true;
565+
566+ tryCompare(searchIndicator, "opacity", 0);
567+ }
552 }
568 }
553}
569}
tests/utils/modules/Unity/Test/UnityTestCase.qml+10−16
@@ -71,19 +71,8 @@ TestCase {
71
71
72
72
73 // Find an object with the given name in the children tree of "obj"
73 // Find an object with the given name in the children tree of "obj"
74− function findChild(obj,objectName) {
74+ function findChild(obj, objectName) {
75− var childs = new Array(0);
75+ return findChildIn(obj, "children", objectName);
76− childs.push(obj)
77− while (childs.length > 0) {
78− if (childs[0].objectName == objectName) {
79− return childs[0]
80− }
81− for (var i in childs[0].children) {
82− childs.push(childs[0].children[i])
83− }
84− childs.splice(0, 1);
85− }
86− return null;
87 }
76 }
88
77
89 // Find an object with the given name in the children tree of "obj"
78 // Find an object with the given name in the children tree of "obj"
@@ -91,15 +80,20 @@ TestCase {
91 // Note: you should use findChild if you're not sure you need this
80 // Note: you should use findChild if you're not sure you need this
92 // as this tree is much bigger and might contain stuff that goes
81 // as this tree is much bigger and might contain stuff that goes
93 // away randomly.
82 // away randomly.
94− function findInvisibleChild(obj,objectName) {
83+ function findInvisibleChild(obj, objectName) {
84+ return findChildIn(obj, "data", objectName);
85+ }
86+
87+ // Find a child in the named property
88+ function findChildIn(obj, prop, objectName) {
95 var childs = new Array(0);
89 var childs = new Array(0);
96 childs.push(obj)
90 childs.push(obj)
97 while (childs.length > 0) {
91 while (childs.length > 0) {
98 if (childs[0].objectName == objectName) {
92 if (childs[0].objectName == objectName) {
99 return childs[0]
93 return childs[0]
100 }
94 }
101− for (var i in childs[0].data) {
95+ for (var i in childs[0][prop]) {
102− childs.push(childs[0].data[i])
96+ childs.push(childs[0][prop][i])
103 }
97 }
104 childs.splice(0, 1);
98 childs.splice(0, 1);
105 }
99 }