on xenial help sign in
Merge trunk

[ Sebastien Bacher ] * Set text hint property for the messaging menus inline reply widget (LP: #1389234) [ Ying-Chun Liu ] * Added an initial set of autopilot tests for the display indicator. [ Nick Dedekind ] * Removed filtering the indicator model by visibility. [ Michael Zanetti ] * fixes left edge drag when in spread [ Albert Astals Cid ] * Fix ninja build in a different way The previous one was adding rpath to some .so that broke our tests that use LD_LIBRARY_PATH to change which one is picked up [ Leo Arias ] * Added an initial set of autopilot tests for the display indicator.

commit957d57445988c8756cdbc541f22540c94ce8b540 authorDaniel d'Andrada <daniel.dandrada@canonical.com> dateTue 27 Jan 2015, 13:50 (12 years ago) parentd86d3683e93701
30 files changed+556−501
debian/changelog+25 debian/control+1−1 plugins/Unity/Indicators/CMakeLists.txt−1 plugins/Unity/Indicators/indicators.h+1−2 plugins/Unity/Indicators/plugin.cpp−2 plugins/Unity/Indicators/visibleindicatorsmodel.cpp−90 plugins/Unity/Indicators/visibleindicatorsmodel.h−56 po/en_AU.po+100−94 po/en_GB.po+47−41 po/eu.po+51−43 po/unity8.pot+43−39 qml/Panel/Indicators/MessageMenuItemFactory.qml+1 qml/Panel/Indicators/VisibleIndicators.qml−84 qml/Shell.qml+4−8 qml/Stages/PhoneStage.qml+2−2 qml/Stages/TabletStage.qml+2−2 run.sh+1−1 tests/autopilot/unity8/fixture_setup.py+35−1 tests/autopilot/unity8/indicators/__init__.py+124 tests/autopilot/unity8/indicators/tests/__init__.py+18−1 tests/autopilot/unity8/indicators/tests/test_display_indicator.py+53 tests/autopilot/unity8/indicators/tests/test_indicators.py+6−19 tests/autopilot/unity8/shell/emulators/main_window.py+11−1 tests/mocks/LightDM/CMakeLists.txt+2−1 tests/mocks/Unity/Indicators/CMakeLists.txt−1 tests/mocks/Unity/Indicators/fakeplugin.cpp−2 tests/plugins/LightDM/CMakeLists.txt+3−1 tests/qmltests/Panel/IndicatorTest.qml+1−7 tests/qmltests/Panel/tst_MenuContent.qml+1−1 tests/qmltests/Stages/tst_PhoneStage.qml+24
debian/changelog+25
@@ -1,3 +1,28 @@
1+unity8 (8.02+15.04.20150123.3-0ubuntu1) vivid; urgency=low
2+
3+ [ Sebastien Bacher ]
4+ * Set text hint property for the messaging menus inline reply widget
5+ (LP: #1389234)
6+
7+ [ Ying-Chun Liu ]
8+ * Added an initial set of autopilot tests for the display indicator.
9+
10+ [ Nick Dedekind ]
11+ * Removed filtering the indicator model by visibility.
12+
13+ [ Michael Zanetti ]
14+ * fixes left edge drag when in spread
15+
16+ [ Albert Astals Cid ]
17+ * Fix ninja build in a different way The previous one was adding rpath
18+ to some .so that broke our tests that use LD_LIBRARY_PATH to change
19+ which one is picked up
20+
21+ [ Leo Arias ]
22+ * Added an initial set of autopilot tests for the display indicator.
23+
24+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Fri, 23 Jan 2015 12:12:41 +0000
25+
126unity8 (8.02+15.04.20150121.2-0ubuntu1) vivid; urgency=low
227
328 [ Michael Terry ]
debian/control+1−1
@@ -48,7 +48,7 @@ Build-Depends: cmake,
4848 qtdeclarative5-dev-tools,
4949 qtdeclarative5-private-dev (>= 5.2.1),
5050 qtdeclarative5-qtmultimedia-plugin,
51− qtdeclarative5-ubuntu-settings-components (>= 0.4),
51+ qtdeclarative5-ubuntu-settings-components (>= 0.5),
5252 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1.1239) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1.1239),
5353 qtdeclarative5-ubuntu-web-plugin,
5454 ttf-ubuntu-font-family,
plugins/Unity/Indicators/CMakeLists.txt−1
@@ -29,7 +29,6 @@ set(IndicatorsQML_SOURCES
2929 sharedunitymenumodel.cpp
3030 unitymenumodelcache.cpp
3131 unitymenumodelstack.cpp
32− visibleindicatorsmodel.cpp
3332)
3433add_definitions(-DUNITYINDICATORS_LIBRARY)
3534
plugins/Unity/Indicators/indicators.h+1−2
@@ -74,8 +74,7 @@ public:
7474 enum Roles {
7575 Identifier = 0,
7676 Position,
77− IndicatorProperties,
78− IsVisible
77+ IndicatorProperties
7978 };
8079
8180 IndicatorsModelRole(QObject*parent=0):QObject(parent) {}
plugins/Unity/Indicators/plugin.cpp−2
@@ -34,7 +34,6 @@
3434#include "sharedunitymenumodel.h"
3535#include "unitymenumodelcache.h"
3636#include "unitymenumodelstack.h"
37−#include "visibleindicatorsmodel.h"
3837
3938#include <unitymenumodel.h>
4039
@@ -55,7 +54,6 @@ void IndicatorsPlugin::registerTypes(const char *uri)
5554 qmlRegisterType<ModelActionRootState>(uri, 0, 1, "ModelActionRootState");
5655 qmlRegisterType<ActionRootState>(uri, 0, 1, "ActionRootState");
5756 qmlRegisterType<ModelPrinter>(uri, 0, 1, "ModelPrinter");
58− qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
5957 qmlRegisterType<SharedUnityMenuModel>(uri, 0, 1, "SharedUnityMenuModel");
6058
6159 qmlRegisterSingletonType<UnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
plugins/Unity/Indicators/visibleindicatorsmodel.cppdeleted−90
@@ -1,90 +0,0 @@
1−/*
2− * Copyright (C) 2012, 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− */
16−
17−// self
18−#include "visibleindicatorsmodel.h"
19−#include "indicators.h"
20−
21−VisibleIndicatorsModel::VisibleIndicatorsModel(QObject *parent)
22− : QIdentityProxyModel(parent),
23− m_inserting(false)
24−{
25− QObject::connect(this, SIGNAL(rowsAboutToBeInserted(QModelIndex, int, int)), this, SLOT(onBeginRowInserted(QModelIndex, int, int)));
26− QObject::connect(this, SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(onRowInserted(QModelIndex, int, int)));
27−}
28−
29−QHash<int, QByteArray> VisibleIndicatorsModel::roleNames() const
30−{
31− static QHash<int, QByteArray> roles;
32− if (roles.isEmpty())
33− {
34− roles[IndicatorsModelRole::Identifier] = "identifier";
35− roles[IndicatorsModelRole::Position] = "position";
36− roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
37− roles[IndicatorsModelRole::IsVisible] = "isVisible";
38− }
39− return roles;
40−}
41−
42−void VisibleIndicatorsModel::setSourceModel(QAbstractItemModel *model)
43−{
44− if (sourceModel() != model) {
45− QIdentityProxyModel::setSourceModel(model);
46− Q_EMIT modelChanged();
47− }
48−}
49−
50−QVariantMap VisibleIndicatorsModel::visible() const
51−{
52− return m_visible;
53−}
54−
55−void VisibleIndicatorsModel::onBeginRowInserted(const QModelIndex&, int, int)
56−{
57− m_inserting = true;
58−}
59−
60−void VisibleIndicatorsModel::onRowInserted(const QModelIndex&, int, int)
61−{
62− m_inserting = false;
63−}
64−
65−void VisibleIndicatorsModel::setVisible(const QVariantMap& visible)
66−{
67− if (m_visible != visible) {
68− m_visible = visible;
69− Q_EMIT visibleChanged();
70−
71− // need to tell the view that the visible data has changed.
72− if (!m_inserting && rowCount() > 0) {
73− Q_EMIT dataChanged(index(0, 0), index(rowCount() - 1, 0), QVector<int>() << IndicatorsModelRole::IsVisible);
74− }
75− }
76−}
77−
78−QVariant VisibleIndicatorsModel::data(const QModelIndex &index, int role) const
79−{
80− if (role != IndicatorsModelRole::IsVisible) {
81− return QIdentityProxyModel::data(index, role);
82− }
83−
84− if (!index.isValid()) {
85− return false;
86− }
87−
88− QString ident = QIdentityProxyModel::data(index, IndicatorsModelRole::Identifier).toString();
89− return m_visible.value(ident, false).toBool();
90−}
plugins/Unity/Indicators/visibleindicatorsmodel.hdeleted−56
@@ -1,56 +0,0 @@
1−/*
2− * Copyright (C) 2012, 2013 Canonical, Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− *
13− * You should have received a copy of the GNU General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−#ifndef VISIBLEINDICATORSMODEL_H
21−#define VISIBLEINDICATORSMODEL_H
22−
23−#include <QIdentityProxyModel>
24−
25−class VisibleIndicatorsModel : public QIdentityProxyModel
26−{
27− Q_OBJECT
28−
29− Q_PROPERTY(QAbstractItemModel* model READ sourceModel WRITE setSourceModel NOTIFY modelChanged)
30− Q_PROPERTY(QVariantMap visible READ visible WRITE setVisible NOTIFY visibleChanged)
31−
32−public:
33− explicit VisibleIndicatorsModel(QObject *parent = 0);
34−
35− virtual void setSourceModel(QAbstractItemModel *model);
36− virtual QHash<int, QByteArray> roleNames() const;
37− virtual QVariant data(const QModelIndex &index, int role) const;
38−
39− QVariantMap visible() const;
40− void setVisible(const QVariantMap& visible);
41−
42−public Q_SLOTS:
43− void onBeginRowInserted(const QModelIndex&, int start, int end);
44− void onRowInserted(const QModelIndex&, int start, int end);
45−
46−Q_SIGNALS:
47− void totalCountChanged();
48− void modelChanged();
49− void visibleChanged();
50−
51−private:
52− QVariantMap m_visible;
53− bool m_inserting;
54−};
55−
56−#endif // VISIBLEINDICATORSMODEL_H
po/en_AU.po+100−94
@@ -8,26 +8,26 @@ msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1010"POT-Creation-Date: 2014-12-10 10:55+0100\n"
11−"PO-Revision-Date: 2014-10-12 09:41+0000\n"
11+"PO-Revision-Date: 2015-01-25 05:57+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-12-13 07:11+0000\n"
19−"X-Generator: Launchpad (build 17286)\n"
18+"X-Launchpad-Export-Date: 2015-01-26 06:54+0000\n"
19+"X-Generator: Launchpad (build 17306)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
2323msgstr "Password: "
2424
2525#: plugins/Unity/Launcher/launcheritem.cpp:45
26−#: plugins/Unity/Launcher/launcheritem.cpp:100
26+#: plugins/Unity/Launcher/launcheritem.cpp:91
2727msgid "Pin shortcut"
2828msgstr "Pin shortcut"
2929
30−#: plugins/Unity/Launcher/launcheritem.cpp:100
30+#: plugins/Unity/Launcher/launcheritem.cpp:91
3131msgid "Unpin shortcut"
3232msgstr "Unpin shortcut"
3333
@@ -50,45 +50,45 @@ msgid_plural "Please wait %1 minutes and then try again…"
5050msgstr[0] "Please wait %1 minute and then try again…"
5151msgstr[1] "Please wait %1 minutes and then try again…"
5252
53−#: qml/Components/Dialogs.qml:70
53+#: qml/Components/Dialogs.qml:74
5454msgid "Log out"
5555msgstr "Log out"
5656
57−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
5858msgid "Are you sure you want to log out?"
5959msgstr "Are you sure you want to log out?"
6060
61−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
62−#: qml/Components/Dialogs.qml:122
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
62+#: qml/Components/Dialogs.qml:126
6363msgid "No"
6464msgstr "No"
6565
66−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
67−#: qml/Components/Dialogs.qml:129
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
67+#: qml/Components/Dialogs.qml:133
6868msgid "Yes"
6969msgstr "Yes"
7070
71−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
7272msgid "Shut down"
7373msgstr "Shut down"
7474
75−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
7676msgid "Are you sure you want to shut down?"
7777msgstr "Are you sure you want to shut down?"
7878
79−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
8080msgid "Reboot"
8181msgstr "Reboot"
8282
83−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
8484msgid "Are you sure you want to reboot?"
8585msgstr "Are you sure you want to reboot?"
8686
87−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
8888msgid "Power"
8989msgstr "Power"
9090
91−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
9292msgid ""
9393"Are you sure you would like\n"
9494"to power off?"
@@ -96,15 +96,15 @@ msgstr ""
9696"Are you sure you would like\n"
9797"to power off?"
9898
99−#: qml/Components/Dialogs.qml:147
99+#: qml/Components/Dialogs.qml:151
100100msgid "Power off"
101101msgstr "Power off"
102102
103−#: qml/Components/Dialogs.qml:157
103+#: qml/Components/Dialogs.qml:161
104104msgid "Restart"
105105msgstr "Restart"
106106
107−#: qml/Components/Dialogs.qml:167
107+#: qml/Components/Dialogs.qml:171
108108msgid "Cancel"
109109msgstr "Cancel"
110110
@@ -112,43 +112,43 @@ msgstr "Cancel"
112112msgid "Skip intro"
113113msgstr "Skip intro"
114114
115−#: qml/Components/EdgeDemo.qml:125
115+#: qml/Components/EdgeDemo.qml:112
116116msgid "Right edge"
117117msgstr "Right edge"
118118
119−#: qml/Components/EdgeDemo.qml:126
119+#: qml/Components/EdgeDemo.qml:113
120120msgid "Try swiping from the right edge to unlock the phone"
121121msgstr "Try swiping from the right edge to unlock the phone"
122122
123−#: qml/Components/EdgeDemo.qml:157
123+#: qml/Components/EdgeDemo.qml:144
124124msgid "Top edge"
125125msgstr "Top edge"
126126
127−#: qml/Components/EdgeDemo.qml:158
127+#: qml/Components/EdgeDemo.qml:145
128128msgid "Try swiping from the top edge to access the indicators"
129129msgstr "Try swiping from the top edge to access the indicators"
130130
131−#: qml/Components/EdgeDemo.qml:183
131+#: qml/Components/EdgeDemo.qml:170
132132msgid "Close"
133133msgstr "Close"
134134
135−#: qml/Components/EdgeDemo.qml:184
135+#: qml/Components/EdgeDemo.qml:171
136136msgid "Swipe up again to close the settings screen"
137137msgstr "Swipe up again to close the settings screen"
138138
139−#: qml/Components/EdgeDemo.qml:214
139+#: qml/Components/EdgeDemo.qml:201
140140msgid "Left edge"
141141msgstr "Left edge"
142142
143−#: qml/Components/EdgeDemo.qml:215
143+#: qml/Components/EdgeDemo.qml:202
144144msgid "Swipe from the left to reveal the launcher for quick access to apps"
145145msgstr "Swipe from the left to reveal the launcher for quick access to apps"
146146
147−#: qml/Components/EdgeDemo.qml:242
147+#: qml/Components/EdgeDemo.qml:229
148148msgid "Well done"
149149msgstr "Well done"
150150
151−#: qml/Components/EdgeDemo.qml:243
151+#: qml/Components/EdgeDemo.qml:230
152152msgid ""
153153"You have now mastered the edge gestures and can start using the "
154154"phone<br><br>Tap on the screen to start"
@@ -156,44 +156,44 @@ msgstr ""
156156"You have now mastered the edge gestures and can start using the "
157157"phone<br><br>Tap on the screen to start"
158158
159−#: qml/Components/Lockscreen.qml:238
159+#: qml/Components/Lockscreen.qml:223
160160msgid "Return to Call"
161−msgstr ""
161+msgstr "Return to Call"
162162
163−#: qml/Components/Lockscreen.qml:238
163+#: qml/Components/Lockscreen.qml:223
164164msgid "Emergency Call"
165165msgstr "Emergency Call"
166166
167−#: qml/Components/Lockscreen.qml:270
167+#: qml/Components/Lockscreen.qml:255
168168msgid "OK"
169169msgstr "OK"
170170
171−#: qml/Dash/GenericScopeView.qml:431 qml/Dash/GenericScopeView.qml:588
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
172172msgid "See less"
173173msgstr "See less"
174174
175−#: qml/Dash/GenericScopeView.qml:431
175+#: qml/Dash/GenericScopeView.qml:434
176176msgid "See all"
177177msgstr "See all"
178178
179−#: qml/Dash/GenericScopeView.qml:493 qml/Dash/PageHeader.qml:267
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:268
180180#: qml/Panel/SearchIndicator.qml:27
181181msgid "Search"
182182msgstr "Search"
183183
184−#: qml/Dash/PageHeader.qml:260
184+#: qml/Dash/PageHeader.qml:261
185185msgid "Store"
186186msgstr "Store"
187187
188−#: qml/Dash/PageHeader.qml:277
188+#: qml/Dash/PageHeader.qml:278
189189msgid "Settings"
190190msgstr "Settings"
191191
192−#: qml/Dash/PageHeader.qml:284
192+#: qml/Dash/PageHeader.qml:285
193193msgid "Remove from Favorites"
194194msgstr "Remove from Favourites"
195195
196−#: qml/Dash/PageHeader.qml:284
196+#: qml/Dash/PageHeader.qml:285
197197msgid "Add to Favorites"
198198msgstr "Add to Favourites"
199199
@@ -227,15 +227,15 @@ msgstr "Release to refresh…"
227227
228228#: qml/Dash/ScopesList.qml:63
229229msgid "Manage"
230−msgstr ""
230+msgstr "Manage"
231231
232232#: qml/Dash/ScopesList.qml:107
233233msgid "Home"
234−msgstr ""
234+msgstr "Home"
235235
236236#: qml/Dash/ScopesList.qml:108
237237msgid "Also installed"
238−msgstr ""
238+msgstr "Also installed"
239239
240240#: qml/Greeter/Greeter.qml:174
241241msgid "Unlock"
@@ -289,49 +289,49 @@ msgstr "Unlock SIM"
289289msgid "Roaming"
290290msgstr "Roaming"
291291
292−#: qml/Shell.qml:367
292+#: qml/Shell.qml:402
293293#, qt-format
294294msgid "Enter %1"
295295msgstr "Enter %1"
296296
297−#: qml/Shell.qml:368 qml/Wizard/Pages/passwd-set.qml:60
297+#: qml/Shell.qml:394
298298msgid "Enter passphrase"
299299msgstr "Enter passphrase"
300300
301−#: qml/Shell.qml:369
301+#: qml/Shell.qml:398
302302msgid "Enter passcode"
303303msgstr "Enter passcode"
304304
305−#: qml/Shell.qml:370
305+#: qml/Shell.qml:403
306306#, qt-format
307307msgid "Sorry, incorrect %1"
308308msgstr "Sorry, incorrect %1"
309309
310−#: qml/Shell.qml:371
310+#: qml/Shell.qml:395
311311msgid "Sorry, incorrect passphrase"
312312msgstr "Sorry, incorrect passphrase"
313313
314−#: qml/Shell.qml:372
314+#: qml/Shell.qml:396
315315msgid "Please re-enter"
316316msgstr "Please re-enter"
317317
318−#: qml/Shell.qml:373
318+#: qml/Shell.qml:399
319319msgid "Sorry, incorrect passcode"
320320msgstr "Sorry, incorrect passcode"
321321
322−#: qml/Shell.qml:467 qml/Wizard/Pages/passwd-confirm.qml:53
322+#: qml/Shell.qml:444
323323msgid "Sorry, incorrect passphrase."
324324msgstr "Sorry, incorrect passphrase."
325325
326−#: qml/Shell.qml:468 qml/Wizard/Pages/passwd-confirm.qml:54
326+#: qml/Shell.qml:445
327327msgid "Sorry, incorrect passcode."
328328msgstr "Sorry, incorrect passcode."
329329
330−#: qml/Shell.qml:469
330+#: qml/Shell.qml:446
331331msgid "This will be your last attempt."
332332msgstr "This will be your last attempt."
333333
334−#: qml/Shell.qml:471
334+#: qml/Shell.qml:448
335335msgid ""
336336"If passphrase is entered incorrectly, your phone will conduct a factory "
337337"reset and all personal data will be deleted."
@@ -339,7 +339,7 @@ msgstr ""
339339"If passphrase is entered incorrectly, your phone will conduct a factory "
340340"reset and all personal data will be deleted."
341341
342−#: qml/Shell.qml:472
342+#: qml/Shell.qml:449
343343msgid ""
344344"If passcode is entered incorrectly, your phone will conduct a factory reset "
345345"and all personal data will be deleted."
@@ -349,98 +349,98 @@ msgstr ""
349349
350350#: qml/Wizard/Page.qml:89
351351msgid "Back"
352−msgstr ""
352+msgstr "Back"
353353
354354#: qml/Wizard/Pages/10-welcome.qml:27
355355msgid "Hi!"
356−msgstr ""
356+msgstr "Hi!"
357357
358358#: qml/Wizard/Pages/10-welcome.qml:44
359359msgid "Welcome to your Ubuntu phone."
360−msgstr ""
360+msgstr "Welcome to your Ubuntu phone."
361361
362362#: qml/Wizard/Pages/10-welcome.qml:52
363363msgid "Let’s get started."
364−msgstr ""
364+msgstr "Let’s get started."
365365
366366#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
367367#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
368368#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
369369#: qml/Wizard/Pages/passwd-set.qml:90
370370msgid "Continue"
371−msgstr ""
371+msgstr "Continue"
372372
373373#: qml/Wizard/Pages/20-sim.qml:25
374374msgid "Add a SIM card and restart your device"
375−msgstr ""
375+msgstr "Add a SIM card and restart your device"
376376
377377#: qml/Wizard/Pages/20-sim.qml:55
378378msgid "Without it, you won’t be able to make calls or use text messaging."
379−msgstr ""
379+msgstr "Without it, you won’t be able to make calls or use text messaging."
380380
381381#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
382382msgid "Skip"
383−msgstr ""
383+msgstr "Skip"
384384
385385#: qml/Wizard/Pages/30-passwd-type.qml:39
386386msgid "Lock security"
387−msgstr ""
387+msgstr "Lock security"
388388
389389#: qml/Wizard/Pages/30-passwd-type.qml:74
390390msgid "Please select how you’d like to unlock your phone."
391−msgstr ""
391+msgstr "Please select how you’d like to unlock your phone."
392392
393393#: qml/Wizard/Pages/30-passwd-type.qml:97
394394msgid "Swipe"
395−msgstr ""
395+msgstr "Swipe"
396396
397397#: qml/Wizard/Pages/30-passwd-type.qml:98
398398msgid "No security"
399−msgstr ""
399+msgstr "No security"
400400
401401#: qml/Wizard/Pages/30-passwd-type.qml:100
402402msgid "Passcode"
403−msgstr ""
403+msgstr "Passcode"
404404
405405#: qml/Wizard/Pages/30-passwd-type.qml:101
406406msgid "4 digits only"
407−msgstr ""
407+msgstr "4 digits only"
408408
409409#: qml/Wizard/Pages/30-passwd-type.qml:103
410410msgid "Passphrase"
411−msgstr ""
411+msgstr "Passphrase"
412412
413413#: qml/Wizard/Pages/30-passwd-type.qml:104
414414msgid "Numbers and letters"
415−msgstr ""
415+msgstr "Numbers and letters"
416416
417417#: qml/Wizard/Pages/40-wifi.qml:28
418418msgid "Connect to Wi‑Fi"
419−msgstr ""
419+msgstr "Connect to Wi‑Fi"
420420
421421#: qml/Wizard/Pages/40-wifi.qml:147
422422msgid "Available networks…"
423−msgstr ""
423+msgstr "Available networks…"
424424
425425#: qml/Wizard/Pages/40-wifi.qml:148
426426msgid "No available networks."
427−msgstr ""
427+msgstr "No available networks."
428428
429429#: qml/Wizard/Pages/50-location.qml:27
430430msgid "Location"
431−msgstr ""
431+msgstr "Location"
432432
433433#: qml/Wizard/Pages/50-location.qml:62
434434msgid "Let the phone detect your location:"
435−msgstr ""
435+msgstr "Let the phone detect your location:"
436436
437437#: qml/Wizard/Pages/50-location.qml:69
438438msgid "Using GPS only (less accurate)"
439−msgstr ""
439+msgstr "Using GPS only (less accurate)"
440440
441441#: qml/Wizard/Pages/50-location.qml:86
442442msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
443−msgstr ""
443+msgstr "Using GPS, anonymised Wi-Fi and cellular network info (recommended)"
444444
445445#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
446446#: qml/Wizard/Pages/50-location.qml:103
@@ -448,81 +448,87 @@ msgid ""
448448"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
449449"conditions</a>."
450450msgstr ""
451+"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
452+"conditions</a>."
451453
452454#: qml/Wizard/Pages/50-location.qml:112
453455msgid "Not at all"
454−msgstr ""
456+msgstr "Not at all"
455457
456458#: qml/Wizard/Pages/50-location.qml:124
457459msgid "You can change your mind later in <b>System Settings</b>."
458−msgstr ""
460+msgstr "You can change your mind later in <b>System Settings</b>."
459461
460462#: qml/Wizard/Pages/60-reporting.qml:24
461463msgid "Improving your experience"
462−msgstr ""
464+msgstr "Improving your experience"
463465
464466#: qml/Wizard/Pages/60-reporting.qml:36
465467msgid ""
466468"Your phone is set up to automatically report errors to Canonical and its "
467469"partners, the makers of the operating system."
468470msgstr ""
471+"Your phone is set up to automatically report errors to Canonical and its "
472+"partners, the makers of the operating system."
469473
470474#: qml/Wizard/Pages/60-reporting.qml:43
471475msgid ""
472476"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
473477"Privacy</b>"
474478msgstr ""
479+"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
480+"Privacy</b>"
475481
476482#: qml/Wizard/Pages/80-finished.qml:24
477483msgid "All done"
478−msgstr ""
484+msgstr "All done"
479485
480486#: qml/Wizard/Pages/80-finished.qml:39
481487msgid "Nice work!"
482−msgstr ""
488+msgstr "Nice work!"
483489
484490#: qml/Wizard/Pages/80-finished.qml:46
485491msgid "Your phone is now ready to use."
486−msgstr ""
492+msgstr "Your phone is now ready to use."
487493
488494#: qml/Wizard/Pages/80-finished.qml:53
489495msgid "Finish"
490−msgstr ""
496+msgstr "Finish"
491497
492498#: qml/Wizard/Pages/here-terms.qml:27
493499msgid "Terms & Conditions"
494−msgstr ""
500+msgstr "Terms & Conditions"
495501
496502#: qml/Wizard/Pages/passwd-confirm.qml:49
497503msgid "Confirm passphrase"
498−msgstr ""
504+msgstr "Confirm passphrase"
499505
500506#: qml/Wizard/Pages/passwd-confirm.qml:50
501507msgid "Confirm passcode"
502−msgstr ""
508+msgstr "Confirm passcode"
503509
504510#: qml/Wizard/Pages/passwd-confirm.qml:53
505511#: qml/Wizard/Pages/passwd-confirm.qml:54
506512msgid "Please try again."
507−msgstr ""
513+msgstr "Please try again."
508514
509515#: qml/Wizard/Pages/passwd-set.qml:61
510516msgid "Choose your passcode"
511−msgstr ""
517+msgstr "Choose your passcode"
512518
513519#: qml/Wizard/Pages/passwd-set.qml:68
514520msgid "Passphrase must be 4 characters long"
515−msgstr ""
521+msgstr "Passphrase must be 4 characters long"
516522
517523#: qml/Wizard/StackButton.qml:39
518524#, qt-format
519525msgid "〈 %1"
520−msgstr ""
526+msgstr "〈 %1"
521527
522528#: qml/Wizard/StackButton.qml:42
523529#, qt-format
524530msgid "%1 〉"
525−msgstr ""
531+msgstr "%1 〉"
526532
527533#~ msgid "Confirm"
528534#~ msgstr "Confirm"
po/en_GB.po+47−41
@@ -8,15 +8,15 @@ msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1010"POT-Creation-Date: 2014-12-10 10:55+0100\n"
11−"PO-Revision-Date: 2014-11-05 18:59+0000\n"
11+"PO-Revision-Date: 2015-01-22 12:14+0000\n"
1212"Last-Translator: Andi Chandler <Unknown>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-12-13 07:11+0000\n"
19−"X-Generator: Launchpad (build 17286)\n"
18+"X-Launchpad-Export-Date: 2015-01-23 06:48+0000\n"
19+"X-Generator: Launchpad (build 17306)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -349,98 +349,98 @@ msgstr ""
349349
350350#: qml/Wizard/Page.qml:89
351351msgid "Back"
352−msgstr ""
352+msgstr "Back"
353353
354354#: qml/Wizard/Pages/10-welcome.qml:27
355355msgid "Hi!"
356−msgstr ""
356+msgstr "Hi!"
357357
358358#: qml/Wizard/Pages/10-welcome.qml:44
359359msgid "Welcome to your Ubuntu phone."
360−msgstr ""
360+msgstr "Welcome to your Ubuntu phone."
361361
362362#: qml/Wizard/Pages/10-welcome.qml:52
363363msgid "Let’s get started."
364−msgstr ""
364+msgstr "Let’s get started."
365365
366366#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
367367#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
368368#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
369369#: qml/Wizard/Pages/passwd-set.qml:90
370370msgid "Continue"
371−msgstr ""
371+msgstr "Continue"
372372
373373#: qml/Wizard/Pages/20-sim.qml:25
374374msgid "Add a SIM card and restart your device"
375−msgstr ""
375+msgstr "Add a SIM card and restart your device"
376376
377377#: qml/Wizard/Pages/20-sim.qml:55
378378msgid "Without it, you won’t be able to make calls or use text messaging."
379−msgstr ""
379+msgstr "Without it, you won’t be able to make calls or use text messaging."
380380
381381#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
382382msgid "Skip"
383−msgstr ""
383+msgstr "Skip"
384384
385385#: qml/Wizard/Pages/30-passwd-type.qml:39
386386msgid "Lock security"
387−msgstr ""
387+msgstr "Lock security"
388388
389389#: qml/Wizard/Pages/30-passwd-type.qml:74
390390msgid "Please select how you’d like to unlock your phone."
391−msgstr ""
391+msgstr "Please select how you’d like to unlock your phone."
392392
393393#: qml/Wizard/Pages/30-passwd-type.qml:97
394394msgid "Swipe"
395−msgstr ""
395+msgstr "Swipe"
396396
397397#: qml/Wizard/Pages/30-passwd-type.qml:98
398398msgid "No security"
399−msgstr ""
399+msgstr "No security"
400400
401401#: qml/Wizard/Pages/30-passwd-type.qml:100
402402msgid "Passcode"
403−msgstr ""
403+msgstr "Passcode"
404404
405405#: qml/Wizard/Pages/30-passwd-type.qml:101
406406msgid "4 digits only"
407−msgstr ""
407+msgstr "4 digits only"
408408
409409#: qml/Wizard/Pages/30-passwd-type.qml:103
410410msgid "Passphrase"
411−msgstr ""
411+msgstr "Passphrase"
412412
413413#: qml/Wizard/Pages/30-passwd-type.qml:104
414414msgid "Numbers and letters"
415−msgstr ""
415+msgstr "Numbers and letters"
416416
417417#: qml/Wizard/Pages/40-wifi.qml:28
418418msgid "Connect to Wi‑Fi"
419−msgstr ""
419+msgstr "Connect to Wi‑Fi"
420420
421421#: qml/Wizard/Pages/40-wifi.qml:147
422422msgid "Available networks…"
423−msgstr ""
423+msgstr "Available networks…"
424424
425425#: qml/Wizard/Pages/40-wifi.qml:148
426426msgid "No available networks."
427−msgstr ""
427+msgstr "No available networks."
428428
429429#: qml/Wizard/Pages/50-location.qml:27
430430msgid "Location"
431−msgstr ""
431+msgstr "Location"
432432
433433#: qml/Wizard/Pages/50-location.qml:62
434434msgid "Let the phone detect your location:"
435−msgstr ""
435+msgstr "Let the phone detect your location:"
436436
437437#: qml/Wizard/Pages/50-location.qml:69
438438msgid "Using GPS only (less accurate)"
439−msgstr ""
439+msgstr "Using GPS only (less accurate)"
440440
441441#: qml/Wizard/Pages/50-location.qml:86
442442msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
443−msgstr ""
443+msgstr "Using GPS, anonymised Wi-Fi and cellular network info (recommended)"
444444
445445#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
446446#: qml/Wizard/Pages/50-location.qml:103
@@ -448,81 +448,87 @@ msgid ""
448448"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
449449"conditions</a>."
450450msgstr ""
451+"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
452+"conditions</a>."
451453
452454#: qml/Wizard/Pages/50-location.qml:112
453455msgid "Not at all"
454−msgstr ""
456+msgstr "Not at all"
455457
456458#: qml/Wizard/Pages/50-location.qml:124
457459msgid "You can change your mind later in <b>System Settings</b>."
458−msgstr ""
460+msgstr "You can change your mind later in <b>System Settings</b>."
459461
460462#: qml/Wizard/Pages/60-reporting.qml:24
461463msgid "Improving your experience"
462−msgstr ""
464+msgstr "Improving your experience"
463465
464466#: qml/Wizard/Pages/60-reporting.qml:36
465467msgid ""
466468"Your phone is set up to automatically report errors to Canonical and its "
467469"partners, the makers of the operating system."
468470msgstr ""
471+"Your phone is set up to automatically report errors to Canonical and its "
472+"partners, the makers of the operating system."
469473
470474#: qml/Wizard/Pages/60-reporting.qml:43
471475msgid ""
472476"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
473477"Privacy</b>"
474478msgstr ""
479+"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
480+"Privacy</b>"
475481
476482#: qml/Wizard/Pages/80-finished.qml:24
477483msgid "All done"
478−msgstr ""
484+msgstr "All done"
479485
480486#: qml/Wizard/Pages/80-finished.qml:39
481487msgid "Nice work!"
482−msgstr ""
488+msgstr "Nice work!"
483489
484490#: qml/Wizard/Pages/80-finished.qml:46
485491msgid "Your phone is now ready to use."
486−msgstr ""
492+msgstr "Your phone is now ready to use."
487493
488494#: qml/Wizard/Pages/80-finished.qml:53
489495msgid "Finish"
490−msgstr ""
496+msgstr "Finish"
491497
492498#: qml/Wizard/Pages/here-terms.qml:27
493499msgid "Terms & Conditions"
494−msgstr ""
500+msgstr "Terms & Conditions"
495501
496502#: qml/Wizard/Pages/passwd-confirm.qml:49
497503msgid "Confirm passphrase"
498−msgstr ""
504+msgstr "Confirm passphrase"
499505
500506#: qml/Wizard/Pages/passwd-confirm.qml:50
501507msgid "Confirm passcode"
502−msgstr ""
508+msgstr "Confirm passcode"
503509
504510#: qml/Wizard/Pages/passwd-confirm.qml:53
505511#: qml/Wizard/Pages/passwd-confirm.qml:54
506512msgid "Please try again."
507−msgstr ""
513+msgstr "Please try again."
508514
509515#: qml/Wizard/Pages/passwd-set.qml:61
510516msgid "Choose your passcode"
511−msgstr ""
517+msgstr "Choose your passcode"
512518
513519#: qml/Wizard/Pages/passwd-set.qml:68
514520msgid "Passphrase must be 4 characters long"
515−msgstr ""
521+msgstr "Passphrase must be 4 characters long"
516522
517523#: qml/Wizard/StackButton.qml:39
518524#, qt-format
519525msgid "〈 %1"
520−msgstr ""
526+msgstr "〈 %1"
521527
522528#: qml/Wizard/StackButton.qml:42
523529#, qt-format
524530msgid "%1 〉"
525−msgstr ""
531+msgstr "%1 〉"
526532
527533#~ msgid "Confirm"
528534#~ msgstr "Confirm"
po/eu.po+51−43
@@ -8,15 +8,15 @@ msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
1010"POT-Creation-Date: 2014-12-10 10:55+0100\n"
11−"PO-Revision-Date: 2014-11-08 14:44+0000\n"
11+"PO-Revision-Date: 2015-01-22 21:40+0000\n"
1212"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
1313"Language-Team: Basque <eu@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-12-13 07:10+0000\n"
19−"X-Generator: Launchpad (build 17286)\n"
18+"X-Launchpad-Export-Date: 2015-01-23 06:48+0000\n"
19+"X-Generator: Launchpad (build 17306)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:130
2222msgid "Password: "
@@ -231,15 +231,15 @@ msgstr "Askatu freskatzeko…"
231231
232232#: qml/Dash/ScopesList.qml:63
233233msgid "Manage"
234−msgstr ""
234+msgstr "Kudeatu"
235235
236236#: qml/Dash/ScopesList.qml:107
237237msgid "Home"
238−msgstr ""
238+msgstr "Hasiera"
239239
240240#: qml/Dash/ScopesList.qml:108
241241msgid "Also installed"
242−msgstr ""
242+msgstr "Hau ere instalatuta"
243243
244244#: qml/Greeter/Greeter.qml:174
245245msgid "Unlock"
@@ -353,98 +353,100 @@ msgstr ""
353353
354354#: qml/Wizard/Page.qml:89
355355msgid "Back"
356−msgstr ""
356+msgstr "Atzera"
357357
358358#: qml/Wizard/Pages/10-welcome.qml:27
359359msgid "Hi!"
360−msgstr ""
360+msgstr "Epa!"
361361
362362#: qml/Wizard/Pages/10-welcome.qml:44
363363msgid "Welcome to your Ubuntu phone."
364−msgstr ""
364+msgstr "Ongi etorri zure Ubuntu telefonora."
365365
366366#: qml/Wizard/Pages/10-welcome.qml:52
367367msgid "Let’s get started."
368−msgstr ""
368+msgstr "Has gaitezen."
369369
370370#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
371371#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
372372#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
373373#: qml/Wizard/Pages/passwd-set.qml:90
374374msgid "Continue"
375−msgstr ""
375+msgstr "Jarraitu"
376376
377377#: qml/Wizard/Pages/20-sim.qml:25
378378msgid "Add a SIM card and restart your device"
379−msgstr ""
379+msgstr "Gehitu SIM txartel bat eta berrabiarazi zure gailua"
380380
381381#: qml/Wizard/Pages/20-sim.qml:55
382382msgid "Without it, you won’t be able to make calls or use text messaging."
383−msgstr ""
383+msgstr "Hura gabe, ezingo duzu deirik egin edo testu-mezularitza erabili."
384384
385385#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
386386msgid "Skip"
387−msgstr ""
387+msgstr "Saltatu"
388388
389389#: qml/Wizard/Pages/30-passwd-type.qml:39
390390msgid "Lock security"
391−msgstr ""
391+msgstr "Blokeo-segurtasuna"
392392
393393#: qml/Wizard/Pages/30-passwd-type.qml:74
394394msgid "Please select how you’d like to unlock your phone."
395−msgstr ""
395+msgstr "Aukeratu telefonoa nola desblokeatu nahi duzun."
396396
397397#: qml/Wizard/Pages/30-passwd-type.qml:97
398398msgid "Swipe"
399−msgstr ""
399+msgstr "Pasatu hatza"
400400
401401#: qml/Wizard/Pages/30-passwd-type.qml:98
402402msgid "No security"
403−msgstr ""
403+msgstr "Segurtasunik gabe"
404404
405405#: qml/Wizard/Pages/30-passwd-type.qml:100
406406msgid "Passcode"
407−msgstr ""
407+msgstr "Pasakodea"
408408
409409#: qml/Wizard/Pages/30-passwd-type.qml:101
410410msgid "4 digits only"
411−msgstr ""
411+msgstr "4 digitu soilik"
412412
413413#: qml/Wizard/Pages/30-passwd-type.qml:103
414414msgid "Passphrase"
415−msgstr ""
415+msgstr "Pasaesaldia"
416416
417417#: qml/Wizard/Pages/30-passwd-type.qml:104
418418msgid "Numbers and letters"
419−msgstr ""
419+msgstr "Zenbakiak eta hizkiak"
420420
421421#: qml/Wizard/Pages/40-wifi.qml:28
422422msgid "Connect to Wi‑Fi"
423−msgstr ""
423+msgstr "Konektatu wifira"
424424
425425#: qml/Wizard/Pages/40-wifi.qml:147
426426msgid "Available networks…"
427−msgstr ""
427+msgstr "Sare erabilgarriak…"
428428
429429#: qml/Wizard/Pages/40-wifi.qml:148
430430msgid "No available networks."
431−msgstr ""
431+msgstr "Ez dago sare erabilgarririk."
432432
433433#: qml/Wizard/Pages/50-location.qml:27
434434msgid "Location"
435−msgstr ""
435+msgstr "Kokalekua"
436436
437437#: qml/Wizard/Pages/50-location.qml:62
438438msgid "Let the phone detect your location:"
439−msgstr ""
439+msgstr "Utzi telefonoari zure kokalekua detektatzen:"
440440
441441#: qml/Wizard/Pages/50-location.qml:69
442442msgid "Using GPS only (less accurate)"
443−msgstr ""
443+msgstr "GPSa soilik erabiltzen (zehaztasun gutxiago)"
444444
445445#: qml/Wizard/Pages/50-location.qml:86
446446msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
447447msgstr ""
448+"GPSa, wifi anonimotua eta sare mugikorraren informazioa erabiltzen "
449+"(gomendatua)"
448450
449451#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
450452#: qml/Wizard/Pages/50-location.qml:103
@@ -452,81 +454,87 @@ msgid ""
452454"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
453455"conditions</a>."
454456msgstr ""
457+"Aukera hau hautatuz, Nokia HERE(r)en <a href='#'>baldintzak</a> onartzeko "
458+"dituzu."
455459
456460#: qml/Wizard/Pages/50-location.qml:112
457461msgid "Not at all"
458−msgstr ""
462+msgstr "Bat ere ez"
459463
460464#: qml/Wizard/Pages/50-location.qml:124
461465msgid "You can change your mind later in <b>System Settings</b>."
462−msgstr ""
466+msgstr "Geroago ere alda dezakezu <b>Sistemaren ezarpenetan</b>."
463467
464468#: qml/Wizard/Pages/60-reporting.qml:24
465469msgid "Improving your experience"
466−msgstr ""
470+msgstr "Zure esperientzia hobetuz"
467471
468472#: qml/Wizard/Pages/60-reporting.qml:36
469473msgid ""
470474"Your phone is set up to automatically report errors to Canonical and its "
471475"partners, the makers of the operating system."
472476msgstr ""
477+"Telefonoa erroreen berria automatikoki Canonical-i eta honen bazkideei "
478+"emateko konfiguratuta dago, sistema eragilearen egileei."
473479
474480#: qml/Wizard/Pages/60-reporting.qml:43
475481msgid ""
476482"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
477483"Privacy</b>"
478484msgstr ""
485+"Hau <b>Sistemaren ezarpenetatik</b> desgaitu daiteke, <b>Segurtasuna eta "
486+"pribatutasuna</b> atalean"
479487
480488#: qml/Wizard/Pages/80-finished.qml:24
481489msgid "All done"
482−msgstr ""
490+msgstr "Eginda"
483491
484492#: qml/Wizard/Pages/80-finished.qml:39
485493msgid "Nice work!"
486−msgstr ""
494+msgstr "Bikain!"
487495
488496#: qml/Wizard/Pages/80-finished.qml:46
489497msgid "Your phone is now ready to use."
490−msgstr ""
498+msgstr "Zure telefonoa erabiltzeko prest dago."
491499
492500#: qml/Wizard/Pages/80-finished.qml:53
493501msgid "Finish"
494−msgstr ""
502+msgstr "Amaitu"
495503
496504#: qml/Wizard/Pages/here-terms.qml:27
497505msgid "Terms & Conditions"
498−msgstr ""
506+msgstr "Baldintzak"
499507
500508#: qml/Wizard/Pages/passwd-confirm.qml:49
501509msgid "Confirm passphrase"
502−msgstr ""
510+msgstr "Berretsi pasaesaldia"
503511
504512#: qml/Wizard/Pages/passwd-confirm.qml:50
505513msgid "Confirm passcode"
506−msgstr ""
514+msgstr "Berretsi pasakodea"
507515
508516#: qml/Wizard/Pages/passwd-confirm.qml:53
509517#: qml/Wizard/Pages/passwd-confirm.qml:54
510518msgid "Please try again."
511−msgstr ""
519+msgstr "Saiatu berriro."
512520
513521#: qml/Wizard/Pages/passwd-set.qml:61
514522msgid "Choose your passcode"
515−msgstr ""
523+msgstr "Aukeratu zure pasakodea"
516524
517525#: qml/Wizard/Pages/passwd-set.qml:68
518526msgid "Passphrase must be 4 characters long"
519−msgstr ""
527+msgstr "Pasaesaldiak 4 karaktereko luzera izan behar du"
520528
521529#: qml/Wizard/StackButton.qml:39
522530#, qt-format
523531msgid "〈 %1"
524−msgstr ""
532+msgstr "〈 %1"
525533
526534#: qml/Wizard/StackButton.qml:42
527535#, qt-format
528536msgid "%1 〉"
529−msgstr ""
537+msgstr "%1 〉"
530538
531539#~ msgid "Type or say a command"
532540#~ msgstr "Idatzi edo esan agindu bat"
po/unity8.pot+43−39
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2014-12-10 10:55+0100\n"
11+"POT-Creation-Date: 2015-01-22 11:09+0100\n"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -50,59 +50,59 @@ msgid_plural "Please wait %1 minutes and then try again…"
5050msgstr[0] ""
5151msgstr[1] ""
5252
53−#: qml/Components/Dialogs.qml:70
53+#: qml/Components/Dialogs.qml:86
5454msgid "Log out"
5555msgstr ""
5656
57−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:87
5858msgid "Are you sure you want to log out?"
5959msgstr ""
6060
61−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
62−#: qml/Components/Dialogs.qml:122
61+#: qml/Components/Dialogs.qml:89 qml/Components/Dialogs.qml:111
62+#: qml/Components/Dialogs.qml:134
6363msgid "No"
6464msgstr ""
6565
66−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
67−#: qml/Components/Dialogs.qml:129
66+#: qml/Components/Dialogs.qml:95 qml/Components/Dialogs.qml:117
67+#: qml/Components/Dialogs.qml:140
6868msgid "Yes"
6969msgstr ""
7070
71−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:108
7272msgid "Shut down"
7373msgstr ""
7474
75−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:109
7676msgid "Are you sure you want to shut down?"
7777msgstr ""
7878
79−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:131
8080msgid "Reboot"
8181msgstr ""
8282
83−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:132
8484msgid "Are you sure you want to reboot?"
8585msgstr ""
8686
87−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:154
8888msgid "Power"
8989msgstr ""
9090
91−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:155
9292msgid ""
9393"Are you sure you would like\n"
9494"to power off?"
9595msgstr ""
9696
97−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:157
9898msgid "Power off"
9999msgstr ""
100100
101−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:166
102102msgid "Restart"
103103msgstr ""
104104
105−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:175
106106msgid "Cancel"
107107msgstr ""
108108
@@ -164,32 +164,32 @@ msgstr ""
164164msgid "OK"
165165msgstr ""
166166
167−#: qml/Dash/GenericScopeView.qml:431 qml/Dash/GenericScopeView.qml:588
167+#: qml/Dash/GenericScopeView.qml:485 qml/Dash/GenericScopeView.qml:642
168168msgid "See less"
169169msgstr ""
170170
171−#: qml/Dash/GenericScopeView.qml:431
171+#: qml/Dash/GenericScopeView.qml:485
172172msgid "See all"
173173msgstr ""
174174
175−#: qml/Dash/GenericScopeView.qml:493 qml/Dash/PageHeader.qml:267
175+#: qml/Dash/GenericScopeView.qml:547 qml/Dash/PageHeader.qml:274
176176#: qml/Panel/SearchIndicator.qml:27
177177msgid "Search"
178178msgstr ""
179179
180−#: qml/Dash/PageHeader.qml:260
180+#: qml/Dash/PageHeader.qml:267
181181msgid "Store"
182182msgstr ""
183183
184−#: qml/Dash/PageHeader.qml:277
184+#: qml/Dash/PageHeader.qml:284
185185msgid "Settings"
186186msgstr ""
187187
188−#: qml/Dash/PageHeader.qml:284
188+#: qml/Dash/PageHeader.qml:291
189189msgid "Remove from Favorites"
190190msgstr ""
191191
192−#: qml/Dash/PageHeader.qml:284
192+#: qml/Dash/PageHeader.qml:291
193193msgid "Add to Favorites"
194194msgstr ""
195195
@@ -221,19 +221,19 @@ msgstr ""
221221msgid "Release to refresh…"
222222msgstr ""
223223
224−#: qml/Dash/ScopesList.qml:63
224+#: qml/Dash/ScopesList.qml:66
225225msgid "Manage"
226226msgstr ""
227227
228−#: qml/Dash/ScopesList.qml:107
228+#: qml/Dash/ScopesList.qml:112
229229msgid "Home"
230230msgstr ""
231231
232−#: qml/Dash/ScopesList.qml:108
232+#: qml/Dash/ScopesList.qml:113
233233msgid "Also installed"
234234msgstr ""
235235
236−#: qml/Greeter/Greeter.qml:174
236+#: qml/Greeter/Greeter.qml:133
237237msgid "Unlock"
238238msgstr ""
239239
@@ -277,6 +277,10 @@ msgstr ""
277277msgid "Failed, tap to retry"
278278msgstr ""
279279
280+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:149
281+msgid "Reply"
282+msgstr ""
283+
280284#: qml/Panel/Indicators/ModemInfoItem.qml:105
281285msgid "Unlock SIM"
282286msgstr ""
@@ -285,55 +289,55 @@ msgstr ""
285289msgid "Roaming"
286290msgstr ""
287291
288−#: qml/Shell.qml:367
292+#: qml/Shell.qml:390
289293#, qt-format
290294msgid "Enter %1"
291295msgstr ""
292296
293−#: qml/Shell.qml:368 qml/Wizard/Pages/passwd-set.qml:60
297+#: qml/Shell.qml:391 qml/Wizard/Pages/passwd-set.qml:60
294298msgid "Enter passphrase"
295299msgstr ""
296300
297−#: qml/Shell.qml:369
301+#: qml/Shell.qml:392
298302msgid "Enter passcode"
299303msgstr ""
300304
301−#: qml/Shell.qml:370
305+#: qml/Shell.qml:393
302306#, qt-format
303307msgid "Sorry, incorrect %1"
304308msgstr ""
305309
306−#: qml/Shell.qml:371
310+#: qml/Shell.qml:394
307311msgid "Sorry, incorrect passphrase"
308312msgstr ""
309313
310−#: qml/Shell.qml:372
314+#: qml/Shell.qml:395
311315msgid "Please re-enter"
312316msgstr ""
313317
314−#: qml/Shell.qml:373
318+#: qml/Shell.qml:396
315319msgid "Sorry, incorrect passcode"
316320msgstr ""
317321
318−#: qml/Shell.qml:467 qml/Wizard/Pages/passwd-confirm.qml:53
322+#: qml/Shell.qml:490 qml/Wizard/Pages/passwd-confirm.qml:53
319323msgid "Sorry, incorrect passphrase."
320324msgstr ""
321325
322−#: qml/Shell.qml:468 qml/Wizard/Pages/passwd-confirm.qml:54
326+#: qml/Shell.qml:491 qml/Wizard/Pages/passwd-confirm.qml:54
323327msgid "Sorry, incorrect passcode."
324328msgstr ""
325329
326−#: qml/Shell.qml:469
330+#: qml/Shell.qml:492
327331msgid "This will be your last attempt."
328332msgstr ""
329333
330−#: qml/Shell.qml:471
334+#: qml/Shell.qml:494
331335msgid ""
332336"If passphrase is entered incorrectly, your phone will conduct a factory "
333337"reset and all personal data will be deleted."
334338msgstr ""
335339
336−#: qml/Shell.qml:472
340+#: qml/Shell.qml:495
337341msgid ""
338342"If passcode is entered incorrectly, your phone will conduct a factory reset "
339343"and all personal data will be deleted."
qml/Panel/Indicators/MessageMenuItemFactory.qml+1
@@ -146,6 +146,7 @@ Loader {
146146 time: timeFormatter.timeString
147147 body: getExtendedProperty(extendedData, "xCanonicalText", "")
148148 replyButtonText: getExtendedProperty(replyActionDescription, "label", "Send")
149+ replyHintText: i18n.tr("Reply")
149150 // icons
150151 avatar: getExtendedProperty(extendedData, "icon", "image://theme/contact")
151152 icon: getExtendedProperty(extendedData, "xCanonicalAppIcon", "image://theme/message")
qml/Panel/Indicators/VisibleIndicators.qmldeleted−84
@@ -1,84 +0,0 @@
1−/*
2− * Copyright 2013 Canonical Ltd.
3− *
4− * This program is free software; you can redistribute it and/or modify
5− * it under the terms of the GNU Lesser General Public License as published by
6− * the Free Software Foundation; version 3.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU Lesser General Public License for more details.
12− *
13− * You should have received a copy of the GNU Lesser General Public License
14− * along with this program. If not, see <http://www.gnu.org/licenses/>.
15− *
16− * Authors:
17− * Nick Dedekind <nick.dedekind@canonical.com>
18− */
19−
20−import QtQuick 2.0
21−import Unity.Indicators 0.1 as Indicators
22−import Utils 0.1
23−
24−Item {
25− property UnitySortFilterProxyModel model: filterModel
26−
27− function initialise(profile) {
28− indicatorsModel.load(profile);
29− }
30−
31− UnitySortFilterProxyModel {
32− id: filterModel
33− filterRole: Indicators.IndicatorsModelRole.IsVisible
34− filterRegExp: RegExp("^true$")
35− dynamicSortFilter: true
36−
37− model: Indicators.VisibleIndicatorsModel {
38− id: visibleIndicatorsModel
39− model: indicatorsModel
40− }
41− }
42−
43− Indicators.IndicatorsModel {
44− id: indicatorsModel
45− }
46−
47− Repeater {
48− id: repeater
49− model: indicatorsModel
50−
51− property var visibleIndicators: undefined
52− onVisibleIndicatorsChanged: {
53− if (visibleIndicators !== undefined) {
54− visibleIndicatorsModel.visible = visibleIndicators;
55− }
56− }
57−
58− delegate: IndicatorDelegate {
59− id: item
60− objectName: model.identifier + "-delegate"
61− identifier: model.identifier
62− Component.onCompleted: {
63− for(var pName in indicatorProperties) {
64− if (item.hasOwnProperty(pName)) {
65− item[pName] = indicatorProperties[pName];
66− }
67− }
68− updateVisibility();
69− }
70−
71− onEnabledChanged: {
72− updateVisibility()
73− }
74−
75− function updateVisibility() {
76− if (repeater.visibleIndicators === undefined) {
77− repeater.visibleIndicators = {}
78− }
79− repeater.visibleIndicators[model.identifier] = enabled;
80− repeater.visibleIndicatorsChanged();
81− }
82− }
83− }
84−}
qml/Shell.qml+4−8
@@ -36,11 +36,11 @@ import "Panel"
3636import "Components"
3737import "Notifications"
3838import "Stages"
39−import "Panel/Indicators"
4039import "Wizard"
4140import Unity.Notifications 1.0 as NotificationBackend
4241import Unity.Session 0.1
4342import Unity.DashCommunicator 0.1
43+import Unity.Indicators 0.1 as Indicators
4444
4545Item {
4646 id: shell
@@ -749,13 +749,9 @@ Item {
749749 minimizedPanelHeight: units.gu(3)
750750 expandedPanelHeight: units.gu(7)
751751
752− indicatorsModel: visibleIndicators.model
753− }
754−
755− VisibleIndicators {
756− id: visibleIndicators
757− // TODO: This should be sourced by device type (eg "desktop", "tablet", "phone"...)
758− Component.onCompleted: initialise(indicatorProfile)
752+ indicatorsModel: Indicators.IndicatorsModel {
753+ Component.onCompleted: load(indicatorProfile);
754+ }
759755 }
760756 callHint {
761757 greeterShown: greeter.shown || lockscreen.shown
qml/Stages/PhoneStage.qml+2−2
@@ -52,7 +52,7 @@ Rectangle {
5252 if (inverseProgress == 0 && priv.oldInverseProgress > 0) {
5353 // left edge drag released. Minimum distance is given by design.
5454 if (priv.oldInverseProgress > units.gu(22)) {
55− ApplicationManager.focusApplication("unity8-dash");
55+ ApplicationManager.requestFocusApplication("unity8-dash");
5656 }
5757 }
5858 priv.oldInverseProgress = inverseProgress;
@@ -299,7 +299,7 @@ Rectangle {
299299 x: {
300300 // focused app is always positioned at 0 except when following left edge drag
301301 if (index == 0) {
302− if (!isDash && root.inverseProgress > 0) {
302+ if (!isDash && root.inverseProgress > 0 && spreadView.phase === 0) {
303303 return root.inverseProgress;
304304 }
305305 return 0;
qml/Stages/TabletStage.qml+2−2
@@ -43,7 +43,7 @@ Rectangle {
4343 if (inverseProgress == 0 && priv.oldInverseProgress > 0) {
4444 // left edge drag released. Minimum distance is given by design.
4545 if (priv.oldInverseProgress > units.gu(22)) {
46− ApplicationManager.focusApplication("unity8-dash");
46+ ApplicationManager.requestFocusApplication("unity8-dash");
4747 }
4848 }
4949 priv.oldInverseProgress = inverseProgress;
@@ -492,7 +492,7 @@ Rectangle {
492492 interactive: !spreadView.interactive && spreadView.phase === 0 && root.interactive
493493 swipeToCloseEnabled: spreadView.interactive && !snapAnimation.running
494494 maximizedAppTopMargin: root.maximizedAppTopMargin
495− dragOffset: !isDash && model.appId == priv.mainStageAppId && root.inverseProgress > 0 ? root.inverseProgress : 0
495+ dragOffset: !isDash && model.appId == priv.mainStageAppId && root.inverseProgress > 0 && spreadView.phase === 0 ? root.inverseProgress : 0
496496 application: ApplicationManager.get(index)
497497 closeable: !isDash
498498
run.sh+1−1
@@ -39,7 +39,7 @@ done
3939
4040if $USE_MOCKS; then
4141 export QML2_IMPORT_PATH=$QML2_IMPORT_PATH:$PWD/builddir/tests/mocks:$PWD/builddir/plugins:$PWD/builddir/modules
42− export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/builddir/tests/mocks/LightDM/liblightdm:$PWD/builddir/tests/mocks/libusermetrics
42+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/builddir/tests/mocks/LightDM/liblightdm:$PWD/builddir/tests/mocks/libusermetrics:$PWD/builddir/tests/mocks/QMenuModel
4343else
4444 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/builddir/plugins/LightDM/liblightdm
4545fi
tests/autopilot/unity8/fixture_setup.py+35−1
@@ -1,7 +1,7 @@
11# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
22#
33# Unity Autopilot Test Suite
4−# Copyright (C) 2014 Canonical
4+# Copyright (C) 2014, 2015 Canonical
55#
66# This program is free software: you can redistribute it and/or modify
77# it under the terms of the GNU General Public License as published by
@@ -18,6 +18,8 @@
1818#
1919
2020import fixtures
21+import subprocess
22+
2123from autopilot import introspection
2224
2325from unity8 import process_helpers
@@ -62,3 +64,35 @@ class LaunchDashApp(fixtures.Fixture):
6264
6365 def stop_application(self):
6466 process_helpers.stop_job('unity8-dash')
67+
68+
69+class DisplayRotationLock(fixtures.Fixture):
70+
71+ def __init__(self, enable):
72+ super(DisplayRotationLock, self).__init__()
73+ self.enable = enable
74+
75+ def setUp(self):
76+ super(DisplayRotationLock, self).setUp()
77+ original_state = self._is_rotation_lock_enabled()
78+ if self.enable != original_state:
79+ self.addCleanup(self._set_rotation_lock, original_state)
80+ self._set_rotation_lock(self.enable)
81+
82+ def _is_rotation_lock_enabled(self):
83+ command = [
84+ 'gsettings', 'get',
85+ 'com.ubuntu.touch.system',
86+ 'rotation-lock'
87+ ]
88+ output = subprocess.check_output(command, universal_newlines=True)
89+ return True if output.count('true') else False
90+
91+ def _set_rotation_lock(self, value):
92+ value_string = 'true' if value else 'false'
93+ command = [
94+ 'gsettings', 'set',
95+ 'com.ubuntu.touch.system',
96+ 'rotation-lock', value_string
97+ ]
98+ subprocess.check_output(command)
tests/autopilot/unity8/indicators/__init__.py+124
@@ -0,0 +1,124 @@
1+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2+#
3+# Unity Indicators Autopilot Test Suite
4+# Copyright (C) 2015 Canonical
5+#
6+# This program is free software: you can redistribute it and/or modify
7+# it under the terms of the GNU General Public License as published by
8+# the Free Software Foundation, either version 3 of the License, or
9+# (at your option) any later version.
10+#
11+# This program is distributed in the hope that it will be useful,
12+# but WITHOUT ANY WARRANTY; without even the implied warranty of
13+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+# GNU General Public License for more details.
15+# You should have received a copy of the GNU General Public License
16+# along with this program. If not, see <http://www.gnu.org/licenses/>.
17+
18+import ubuntuuitoolkit
19+from autopilot import introspection
20+
21+from unity8.shell import emulators
22+
23+
24+class IndicatorPage(emulators.UnityEmulatorBase):
25+
26+ """Autopilot helper for the IndicatorPage component."""
27+
28+ # XXX Because of https://bugs.launchpad.net/autopilot-qt/+bug/1341671
29+ # we need to make sure it does not match in any selection.
30+ # --elopio - 2015-01-20
31+
32+ @classmethod
33+ def validate_dbus_object(cls, path, state):
34+ return False
35+
36+
37+class DisplayIndicator(object):
38+
39+ def __init__(self, main_window):
40+ self._main_window = main_window
41+
42+ def is_indicator_icon_visible(self):
43+ panel_item = self._main_window.wait_select_single(
44+ objectName='indicator-rotation-lock-panelItem')
45+ return panel_item.indicatorVisible
46+
47+ def open(self):
48+ """Open the display indicator page.
49+
50+ :return: The custom proxy object for the display indicator page.
51+
52+ """
53+ if self.is_indicator_icon_visible():
54+ return self._main_window.open_indicator_page(
55+ 'indicator-rotation-lock')
56+ else:
57+ return self._open_indicator_with_icon_not_visible()
58+
59+ def _open_indicator_with_icon_not_visible(self):
60+ # Open any displayed indicator.
61+ self._main_window.open_indicator_page('indicator-datetime')
62+ self._make_indicator_icon_visible()
63+ indicator_rotation_icon = self._main_window.select_single(
64+ objectName='indicator-rotation-lock-panelItem')
65+ self._main_window.pointing_device.click_object(indicator_rotation_icon)
66+ return self._main_window.wait_select_single(
67+ objectName='indicator-rotation-lock-page')
68+
69+ def _make_indicator_icon_visible(self):
70+ indicators_bar_flickable = self._main_window.select_single(
71+ 'IndicatorsBar').select_single(
72+ ubuntuuitoolkit.QQuickFlickable, objectName='flickable')
73+ self._swipe_flickable_to_x_end(indicators_bar_flickable)
74+
75+ def _swipe_flickable_to_x_end(self, flickable):
76+ # XXX this should be implemented as a general horizontal swiping in
77+ # the toolkit custom proxy object. -- elopio - 2015-01-20
78+ if not flickable.atXEnd:
79+ while not flickable.atXEnd:
80+ start_y = stop_y = (
81+ flickable.globalRect.y +
82+ (flickable.globalRect.height // 2))
83+ # We can't start the swipe from the border because it would
84+ # open the launcher
85+ start_x = flickable.globalRect.x + 45
86+ stop_x = (
87+ flickable.globalRect.x + flickable.globalRect.width - 5)
88+ flickable.pointing_device.drag(
89+ start_x, start_y, stop_x, stop_y)
90+ flickable.dragging.wait_for(False)
91+ flickable.moving.wait_for(False)
92+
93+ def close(self):
94+ """Close the indicator page."""
95+ self._main_window.close_indicator_page()
96+
97+
98+class DisplayIndicatorPage(IndicatorPage):
99+
100+ """Autopilot helper for the display indicator page."""
101+
102+ @classmethod
103+ def validate_dbus_object(cls, path, state):
104+ name = introspection.get_classname_from_path(path)
105+ if name == b'IndicatorPage':
106+ if state['objectName'][1] == 'indicator-rotation-lock-page':
107+ return True
108+ return False
109+
110+ def lock_rotation(self):
111+ """Toggle the rotation lock indicator to locked."""
112+ switcher = self._get_switcher()
113+ switcher.check()
114+ switcher.checked.wait_for(True)
115+
116+ def _get_switcher(self):
117+ return self.select_single(
118+ ubuntuuitoolkit.CheckBox, objectName='switcher')
119+
120+ def unlock_rotation(self):
121+ """Toggle the rotation lock indicator to unlocked."""
122+ switcher = self._get_switcher()
123+ switcher.uncheck()
124+ switcher.checked.wait_for(False)
tests/autopilot/unity8/indicators/tests/__init__.py+18−1
@@ -1,7 +1,7 @@
11# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
22#
33# Unity - Indicators Autopilot Test Suite
4−# Copyright (C) 2013, 2014 Canonical
4+# Copyright (C) 2013, 2014, 2015 Canonical
55#
66# This program is free software: you can redistribute it and/or modify
77# it under the terms of the GNU General Public License as published by
@@ -15,3 +15,20 @@
1515#
1616# You should have received a copy of the GNU General Public License
1717# along with this program. If not, see <http://www.gnu.org/licenses/>.
18+
19+from autopilot import platform
20+
21+from unity8 import process_helpers
22+from unity8.shell import tests
23+
24+
25+class IndicatorTestCase(tests.UnityTestCase):
26+
27+ device_emulation_scenarios = tests._get_device_emulation_scenarios()
28+
29+ def setUp(self):
30+ if platform.model() == 'Desktop':
31+ self.skipTest('Test cannot be run on the desktop.')
32+ super(IndicatorTestCase, self).setUp()
33+ self.unity_proxy = self.launch_unity()
34+ process_helpers.unlock_unity(self.unity_proxy)
tests/autopilot/unity8/indicators/tests/test_display_indicator.pynew file+53
@@ -0,0 +1,53 @@
1+# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2+#
3+# Unity Indicators Autopilot Test Suite
4+# Copyright (C) 2015 Canonical
5+#
6+# This program is free software: you can redistribute it and/or modify
7+# it under the terms of the GNU General Public License as published by
8+# the Free Software Foundation, either version 3 of the License, or
9+# (at your option) any later version.
10+#
11+# This program is distributed in the hope that it will be useful,
12+# but WITHOUT ANY WARRANTY; without even the implied warranty of
13+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14+# GNU General Public License for more details.
15+#
16+# You should have received a copy of the GNU General Public License
17+# along with this program. If not, see <http://www.gnu.org/licenses/>.
18+
19+from unity8 import (
20+ fixture_setup,
21+ indicators,
22+)
23+from unity8.indicators import tests
24+
25+
26+class DisplayIndicatorTestCase(tests.IndicatorTestCase):
27+
28+ def test_indicator_icon_must_be_visible_after_rotation_locked(self):
29+ # TODO remove the skip when the bug is fixed. --elopio - 2015-01-20
30+ self.skipTest(
31+ 'This test fails because of bug http://pad.lv/1410915')
32+ rotation_unlocked = fixture_setup.DisplayRotationLock(False)
33+ self.useFixture(rotation_unlocked)
34+ display_indicator = indicators.DisplayIndicator(self.main_window)
35+ self.assertFalse(display_indicator.is_indicator_icon_visible())
36+
37+ display_indicator_page = display_indicator.open()
38+ display_indicator_page.lock_rotation()
39+ display_indicator.close()
40+
41+ self.assertTrue(display_indicator.is_indicator_icon_visible())
42+
43+ def test_indicator_icon_must_not_be_visible_after_rotation_unlocked(self):
44+ rotation_locked = fixture_setup.DisplayRotationLock(True)
45+ self.useFixture(rotation_locked)
46+ display_indicator = indicators.DisplayIndicator(self.main_window)
47+ self.assertTrue(display_indicator.is_indicator_icon_visible())
48+
49+ display_indicator_page = display_indicator.open()
50+ display_indicator_page.unlock_rotation()
51+ display_indicator.close()
52+
53+ self.assertFalse(display_indicator.is_indicator_icon_visible())
tests/autopilot/unity8/indicators/tests/test_indicators.py+6−19
@@ -1,7 +1,7 @@
11# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
22#
33# Unity Indicators Autopilot Test Suite
4−# Copyright (C) 2013, 2014 Canonical
4+# Copyright (C) 2013, 2014, 2015 Canonical
55#
66# This program is free software: you can redistribute it and/or modify
77# it under the terms of the GNU General Public License as published by
@@ -22,23 +22,10 @@ from testscenarios import multiply_scenarios
2222
2323from autopilot import platform
2424
25−from unity8.process_helpers import unlock_unity
26−from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
25+from unity8.indicators import tests
2726
2827
29−class IndicatorTestCase(UnityTestCase):
30−
31− device_emulation_scenarios = _get_device_emulation_scenarios()
32−
33− def setUp(self):
34− if platform.model() == 'Desktop':
35− self.skipTest('Test cannot be run on the desktop.')
36− super(IndicatorTestCase, self).setUp()
37− self.unity_proxy = self.launch_unity()
38− unlock_unity(self.unity_proxy)
39−
40−
41−class IndicatorExistsTestCase(IndicatorTestCase):
28+class IndicatorExistsTestCase(tests.IndicatorTestCase):
4229
4330 indicator_scenarios = [
4431 ('Bluetooth', dict(indicator_name='indicator-bluetooth')),
@@ -51,7 +38,7 @@ class IndicatorExistsTestCase(IndicatorTestCase):
5138 ]
5239 scenarios = multiply_scenarios(
5340 indicator_scenarios,
54− IndicatorTestCase.device_emulation_scenarios
41+ tests.IndicatorTestCase.device_emulation_scenarios
5542 )
5643
5744 def setUp(self):
@@ -66,7 +53,7 @@ class IndicatorExistsTestCase(IndicatorTestCase):
6653 )
6754
6855
69−class IndicatorPageTitleMatchesWidgetTestCase(IndicatorTestCase):
56+class IndicatorPageTitleMatchesWidgetTestCase(tests.IndicatorTestCase):
7057
7158 indicator_scenarios = [
7259 ('Bluetooth', dict(indicator_name='indicator-bluetooth',
@@ -86,7 +73,7 @@ class IndicatorPageTitleMatchesWidgetTestCase(IndicatorTestCase):
8673 ]
8774 scenarios = multiply_scenarios(
8875 indicator_scenarios,
89− IndicatorTestCase.device_emulation_scenarios
76+ tests.IndicatorTestCase.device_emulation_scenarios
9077 )
9178
9279 def setUp(self):
tests/autopilot/unity8/shell/emulators/main_window.py+11−1
@@ -1,7 +1,7 @@
11# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
22#
33# Unity Autopilot Test Suite
4−# Copyright (C) 2012, 2013, 2014 Canonical
4+# Copyright (C) 2012, 2013, 2014, 2015 Canonical
55#
66# This program is free software: you can redistribute it and/or modify
77# it under the terms of the GNU General Public License as published by
@@ -88,6 +88,16 @@ class QQuickView(emulators.UnityEmulatorBase):
8888 self.wait_select_single('IndicatorsMenu', fullyOpened=True)
8989 return self._get_indicator_page(indicator_name)
9090
91+ @autopilot_logging.log_action(logger.info)
92+ def close_indicator_page(self):
93+ """Swipe to close the opened indicator, wait until it's closed."""
94+ indicators_menu = self.wait_select_single('IndicatorsMenu')
95+ end_x, end_y = input.get_center_point(indicators_menu)
96+ start_x = end_x
97+ start_y = self.height
98+ self.pointing_device.drag(start_x, start_y, end_x, end_y)
99+ indicators_menu.fullyClosed.wait_for(True)
100+
91101 @autopilot_logging.log_action(logger.info)
92102 def show_dash_swiping(self):
93103 """Show the dash swiping from the left."""
tests/mocks/LightDM/CMakeLists.txt+2−1
@@ -36,7 +36,8 @@ add_library(MockLightDM-qml MODULE
3636# LD_LIBRARY_PATH.
3737add_dependencies(MockLightDM-qml MockLightDM MockUserMetrics)
3838target_link_libraries(MockLightDM-qml
39− MockLightDM
39+ -L${CMAKE_CURRENT_BINARY_DIR}/liblightdm
40+ -llightdm-qt5-2
4041 -L${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics
4142 -lusermetricsoutput
4243 unity8-private
tests/mocks/Unity/Indicators/CMakeLists.txt−1
@@ -19,7 +19,6 @@ set(IndicatorsFakeQml_SOURCES
1919 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/sharedunitymenumodel.cpp
2020 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelcache.cpp
2121 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelstack.cpp
22− ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/visibleindicatorsmodel.cpp
2322)
2423
2524add_library(IndicatorsFakeQml SHARED
tests/mocks/Unity/Indicators/fakeplugin.cpp−2
@@ -29,7 +29,6 @@
2929#include "sharedunitymenumodel.h"
3030#include "fakeunitymenumodelcache.h"
3131#include "unitymenumodelstack.h"
32−#include "visibleindicatorsmodel.h"
3332
3433#include <unitymenumodel.h>
3534
@@ -49,7 +48,6 @@ void IndicatorsFakePlugin::registerTypes(const char * uri)
4948 // external
5049 qmlRegisterType<MenuContentActivator>(uri, 0, 1, "MenuContentActivator");
5150 qmlRegisterType<UnityMenuModelStack>(uri, 0, 1, "UnityMenuModelStack");
52− qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
5351 qmlRegisterType<SharedUnityMenuModel>(uri, 0, 1, "SharedUnityMenuModel");
5452
5553 qmlRegisterSingletonType<FakeUnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
tests/plugins/LightDM/CMakeLists.txt+3−1
@@ -11,7 +11,9 @@ include_directories(
1111 ${LIBLIGHTDM_INCLUDE_DIRS}
1212 )
1313
14−target_link_libraries(GreeterDBusTestExec MockLightDM)
14+add_dependencies(GreeterDBusTestExec MockLightDM)
15+target_link_libraries(GreeterDBusTestExec -L${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm
16+ -llightdm-qt5-2)
1517
1618add_definitions(-DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
1719
tests/qmltests/Panel/IndicatorTest.qml+1−7
@@ -26,15 +26,9 @@ Rectangle {
2626 id: root
2727 color: "white"
2828
29− property alias indicatorsModel: __visibleIndicatorsModel
29+ property alias indicatorsModel: __indicatorsModel
3030 property alias originalModelData: __indicatorsModel.originalModelData
3131
32− Indicators.VisibleIndicatorsModel {
33− id: __visibleIndicatorsModel
34−
35− model: __indicatorsModel
36− }
37−
3832 Indicators.IndicatorsModel {
3933 id: __indicatorsModel
4034 Component.onCompleted: load();
tests/qmltests/Panel/tst_MenuContent.qml+1−1
@@ -111,7 +111,7 @@ IndicatorTest {
111111 var menuIndex = i%menuCount;
112112
113113 activate_content(menuIndex);
114− testItemObjectName = indicatorsModel.model.data(menuIndex, Indicators.IndicatorsModelRole.Identifier);
114+ testItemObjectName = indicatorsModel.data(menuIndex, Indicators.IndicatorsModelRole.Identifier);
115115 compare(listView.currentIndex, menuIndex, "Current tab index does not match selected tab index");
116116 tryCompareFunction(current_item_equals_test_item, true);
117117 }
tests/qmltests/Stages/tst_PhoneStage.qml+24
@@ -394,5 +394,29 @@ Item {
394394
395395 tryCompare(spreadView, "contentX", -spreadView.shift)
396396 }
397+
398+ function test_leftEdge_data() {
399+ return [
400+ { tag: "normal", inSpread: false, leftEdgeDragWidth: units.gu(5), shouldMoveApp: true },
401+ { tag: "inSpread", inSpread: true, leftEdgeDragWidth: units.gu(5), shouldMoveApp: false }
402+ ]
403+ }
404+
405+ function test_leftEdge(data) {
406+ addApps(2);
407+
408+ if (data.inSpread) {
409+ goToSpread();
410+ }
411+
412+ var focusedDelegate = findChild(phoneStage, "appDelegate0");
413+ phoneStage.inverseProgress = data.leftEdgeDragWidth;
414+
415+ tryCompare(focusedDelegate, "x", data.shouldMoveApp ? data.leftEdgeDragWidth : 0);
416+
417+ phoneStage.inverseProgress = 0;
418+
419+ tryCompare(focusedDelegate, "x", 0);
420+ }
397421 }
398422}