on xenial help sign in
Merge trunk
957d574Daniel d'Andrada
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+
1unity8 (8.02+15.04.20150121.2-0ubuntu1) vivid; urgency=low
26unity8 (8.02+15.04.20150121.2-0ubuntu1) vivid; urgency=low
2
27
3 [ Michael Terry ]
28 [ Michael Terry ]
debian/control+1−1
@@ -48,7 +48,7 @@ Build-Depends: cmake,
48 qtdeclarative5-dev-tools,
48 qtdeclarative5-dev-tools,
49 qtdeclarative5-private-dev (>= 5.2.1),
49 qtdeclarative5-private-dev (>= 5.2.1),
50 qtdeclarative5-qtmultimedia-plugin,
50 qtdeclarative5-qtmultimedia-plugin,
51− qtdeclarative5-ubuntu-settings-components (>= 0.4),
51+ qtdeclarative5-ubuntu-settings-components (>= 0.5),
52 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1.1239) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1.1239),
52 qtdeclarative5-ubuntu-ui-toolkit-plugin (>= 1.1.1239) | qtdeclarative5-ubuntu-ui-toolkit-plugin-gles (>= 1.1.1239),
53 qtdeclarative5-ubuntu-web-plugin,
53 qtdeclarative5-ubuntu-web-plugin,
54 ttf-ubuntu-font-family,
54 ttf-ubuntu-font-family,
plugins/Unity/Indicators/CMakeLists.txt−1
@@ -29,7 +29,6 @@ set(IndicatorsQML_SOURCES
29 sharedunitymenumodel.cpp
29 sharedunitymenumodel.cpp
30 unitymenumodelcache.cpp
30 unitymenumodelcache.cpp
31 unitymenumodelstack.cpp
31 unitymenumodelstack.cpp
32− visibleindicatorsmodel.cpp
33)
32)
34add_definitions(-DUNITYINDICATORS_LIBRARY)
33add_definitions(-DUNITYINDICATORS_LIBRARY)
35
34
plugins/Unity/Indicators/indicators.h+1−2
@@ -74,8 +74,7 @@ public:
74 enum Roles {
74 enum Roles {
75 Identifier = 0,
75 Identifier = 0,
76 Position,
76 Position,
77− IndicatorProperties,
77+ IndicatorProperties
78− IsVisible
79 };
78 };
80
79
81 IndicatorsModelRole(QObject*parent=0):QObject(parent) {}
80 IndicatorsModelRole(QObject*parent=0):QObject(parent) {}
plugins/Unity/Indicators/plugin.cpp−2
@@ -34,7 +34,6 @@
34#include "sharedunitymenumodel.h"
34#include "sharedunitymenumodel.h"
35#include "unitymenumodelcache.h"
35#include "unitymenumodelcache.h"
36#include "unitymenumodelstack.h"
36#include "unitymenumodelstack.h"
37−#include "visibleindicatorsmodel.h"
38
37
39#include <unitymenumodel.h>
38#include <unitymenumodel.h>
40
39
@@ -55,7 +54,6 @@ void IndicatorsPlugin::registerTypes(const char *uri)
55 qmlRegisterType<ModelActionRootState>(uri, 0, 1, "ModelActionRootState");
54 qmlRegisterType<ModelActionRootState>(uri, 0, 1, "ModelActionRootState");
56 qmlRegisterType<ActionRootState>(uri, 0, 1, "ActionRootState");
55 qmlRegisterType<ActionRootState>(uri, 0, 1, "ActionRootState");
57 qmlRegisterType<ModelPrinter>(uri, 0, 1, "ModelPrinter");
56 qmlRegisterType<ModelPrinter>(uri, 0, 1, "ModelPrinter");
58− qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
59 qmlRegisterType<SharedUnityMenuModel>(uri, 0, 1, "SharedUnityMenuModel");
57 qmlRegisterType<SharedUnityMenuModel>(uri, 0, 1, "SharedUnityMenuModel");
60
58
61 qmlRegisterSingletonType<UnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
59 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 ""
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-12-10 10:55+0100\n"
10"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"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
12"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
13"Language-Team: English (Australia) <en_AU@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-12-13 07:11+0000\n"
18+"X-Launchpad-Export-Date: 2015-01-26 06:54+0000\n"
19−"X-Generator: Launchpad (build 17286)\n"
19+"X-Generator: Launchpad (build 17306)\n"
20
20
21#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
22msgid "Password: "
22msgid "Password: "
23msgstr "Password: "
23msgstr "Password: "
24
24
25#: plugins/Unity/Launcher/launcheritem.cpp:45
25#: plugins/Unity/Launcher/launcheritem.cpp:45
26−#: plugins/Unity/Launcher/launcheritem.cpp:100
26+#: plugins/Unity/Launcher/launcheritem.cpp:91
27msgid "Pin shortcut"
27msgid "Pin shortcut"
28msgstr "Pin shortcut"
28msgstr "Pin shortcut"
29
29
30−#: plugins/Unity/Launcher/launcheritem.cpp:100
30+#: plugins/Unity/Launcher/launcheritem.cpp:91
31msgid "Unpin shortcut"
31msgid "Unpin shortcut"
32msgstr "Unpin shortcut"
32msgstr "Unpin shortcut"
33
33
@@ -50,45 +50,45 @@ msgid_plural "Please wait %1 minutes and then try again…"
50msgstr[0] "Please wait %1 minute and then try again…"
50msgstr[0] "Please wait %1 minute and then try again…"
51msgstr[1] "Please wait %1 minutes and then try again…"
51msgstr[1] "Please wait %1 minutes and then try again…"
52
52
53−#: qml/Components/Dialogs.qml:70
53+#: qml/Components/Dialogs.qml:74
54msgid "Log out"
54msgid "Log out"
55msgstr "Log out"
55msgstr "Log out"
56
56
57−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:75
58msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
59msgstr "Are you sure you want to log out?"
59msgstr "Are you sure you want to log out?"
60
60
61−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:77 qml/Components/Dialogs.qml:101
62−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:126
63msgid "No"
63msgid "No"
64msgstr "No"
64msgstr "No"
65
65
66−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:84 qml/Components/Dialogs.qml:108
67−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:133
68msgid "Yes"
68msgid "Yes"
69msgstr "Yes"
69msgstr "Yes"
70
70
71−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:98
72msgid "Shut down"
72msgid "Shut down"
73msgstr "Shut down"
73msgstr "Shut down"
74
74
75−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:99
76msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
77msgstr "Are you sure you want to shut down?"
77msgstr "Are you sure you want to shut down?"
78
78
79−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:123
80msgid "Reboot"
80msgid "Reboot"
81msgstr "Reboot"
81msgstr "Reboot"
82
82
83−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:124
84msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
85msgstr "Are you sure you want to reboot?"
85msgstr "Are you sure you want to reboot?"
86
86
87−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:148
88msgid "Power"
88msgid "Power"
89msgstr "Power"
89msgstr "Power"
90
90
91−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:149
92msgid ""
92msgid ""
93"Are you sure you would like\n"
93"Are you sure you would like\n"
94"to power off?"
94"to power off?"
@@ -96,15 +96,15 @@ msgstr ""
96"Are you sure you would like\n"
96"Are you sure you would like\n"
97"to power off?"
97"to power off?"
98
98
99−#: qml/Components/Dialogs.qml:147
99+#: qml/Components/Dialogs.qml:151
100msgid "Power off"
100msgid "Power off"
101msgstr "Power off"
101msgstr "Power off"
102
102
103−#: qml/Components/Dialogs.qml:157
103+#: qml/Components/Dialogs.qml:161
104msgid "Restart"
104msgid "Restart"
105msgstr "Restart"
105msgstr "Restart"
106
106
107−#: qml/Components/Dialogs.qml:167
107+#: qml/Components/Dialogs.qml:171
108msgid "Cancel"
108msgid "Cancel"
109msgstr "Cancel"
109msgstr "Cancel"
110
110
@@ -112,43 +112,43 @@ msgstr "Cancel"
112msgid "Skip intro"
112msgid "Skip intro"
113msgstr "Skip intro"
113msgstr "Skip intro"
114
114
115−#: qml/Components/EdgeDemo.qml:125
115+#: qml/Components/EdgeDemo.qml:112
116msgid "Right edge"
116msgid "Right edge"
117msgstr "Right edge"
117msgstr "Right edge"
118
118
119−#: qml/Components/EdgeDemo.qml:126
119+#: qml/Components/EdgeDemo.qml:113
120msgid "Try swiping from the right edge to unlock the phone"
120msgid "Try swiping from the right edge to unlock the phone"
121msgstr "Try swiping from the right edge to unlock the phone"
121msgstr "Try swiping from the right edge to unlock the phone"
122
122
123−#: qml/Components/EdgeDemo.qml:157
123+#: qml/Components/EdgeDemo.qml:144
124msgid "Top edge"
124msgid "Top edge"
125msgstr "Top edge"
125msgstr "Top edge"
126
126
127−#: qml/Components/EdgeDemo.qml:158
127+#: qml/Components/EdgeDemo.qml:145
128msgid "Try swiping from the top edge to access the indicators"
128msgid "Try swiping from the top edge to access the indicators"
129msgstr "Try swiping from the top edge to access the indicators"
129msgstr "Try swiping from the top edge to access the indicators"
130
130
131−#: qml/Components/EdgeDemo.qml:183
131+#: qml/Components/EdgeDemo.qml:170
132msgid "Close"
132msgid "Close"
133msgstr "Close"
133msgstr "Close"
134
134
135−#: qml/Components/EdgeDemo.qml:184
135+#: qml/Components/EdgeDemo.qml:171
136msgid "Swipe up again to close the settings screen"
136msgid "Swipe up again to close the settings screen"
137msgstr "Swipe up again to close the settings screen"
137msgstr "Swipe up again to close the settings screen"
138
138
139−#: qml/Components/EdgeDemo.qml:214
139+#: qml/Components/EdgeDemo.qml:201
140msgid "Left edge"
140msgid "Left edge"
141msgstr "Left edge"
141msgstr "Left edge"
142
142
143−#: qml/Components/EdgeDemo.qml:215
143+#: qml/Components/EdgeDemo.qml:202
144msgid "Swipe from the left to reveal the launcher for quick access to apps"
144msgid "Swipe from the left to reveal the launcher for quick access to apps"
145msgstr "Swipe from the left to reveal the launcher for quick access to apps"
145msgstr "Swipe from the left to reveal the launcher for quick access to apps"
146
146
147−#: qml/Components/EdgeDemo.qml:242
147+#: qml/Components/EdgeDemo.qml:229
148msgid "Well done"
148msgid "Well done"
149msgstr "Well done"
149msgstr "Well done"
150
150
151−#: qml/Components/EdgeDemo.qml:243
151+#: qml/Components/EdgeDemo.qml:230
152msgid ""
152msgid ""
153"You have now mastered the edge gestures and can start using the "
153"You have now mastered the edge gestures and can start using the "
154"phone<br><br>Tap on the screen to start"
154"phone<br><br>Tap on the screen to start"
@@ -156,44 +156,44 @@ msgstr ""
156"You have now mastered the edge gestures and can start using the "
156"You have now mastered the edge gestures and can start using the "
157"phone<br><br>Tap on the screen to start"
157"phone<br><br>Tap on the screen to start"
158
158
159−#: qml/Components/Lockscreen.qml:238
159+#: qml/Components/Lockscreen.qml:223
160msgid "Return to Call"
160msgid "Return to Call"
161−msgstr ""
161+msgstr "Return to Call"
162
162
163−#: qml/Components/Lockscreen.qml:238
163+#: qml/Components/Lockscreen.qml:223
164msgid "Emergency Call"
164msgid "Emergency Call"
165msgstr "Emergency Call"
165msgstr "Emergency Call"
166
166
167−#: qml/Components/Lockscreen.qml:270
167+#: qml/Components/Lockscreen.qml:255
168msgid "OK"
168msgid "OK"
169msgstr "OK"
169msgstr "OK"
170
170
171−#: qml/Dash/GenericScopeView.qml:431 qml/Dash/GenericScopeView.qml:588
171+#: qml/Dash/GenericScopeView.qml:434 qml/Dash/GenericScopeView.qml:591
172msgid "See less"
172msgid "See less"
173msgstr "See less"
173msgstr "See less"
174
174
175−#: qml/Dash/GenericScopeView.qml:431
175+#: qml/Dash/GenericScopeView.qml:434
176msgid "See all"
176msgid "See all"
177msgstr "See all"
177msgstr "See all"
178
178
179−#: qml/Dash/GenericScopeView.qml:493 qml/Dash/PageHeader.qml:267
179+#: qml/Dash/GenericScopeView.qml:496 qml/Dash/PageHeader.qml:268
180#: qml/Panel/SearchIndicator.qml:27
180#: qml/Panel/SearchIndicator.qml:27
181msgid "Search"
181msgid "Search"
182msgstr "Search"
182msgstr "Search"
183
183
184−#: qml/Dash/PageHeader.qml:260
184+#: qml/Dash/PageHeader.qml:261
185msgid "Store"
185msgid "Store"
186msgstr "Store"
186msgstr "Store"
187
187
188−#: qml/Dash/PageHeader.qml:277
188+#: qml/Dash/PageHeader.qml:278
189msgid "Settings"
189msgid "Settings"
190msgstr "Settings"
190msgstr "Settings"
191
191
192−#: qml/Dash/PageHeader.qml:284
192+#: qml/Dash/PageHeader.qml:285
193msgid "Remove from Favorites"
193msgid "Remove from Favorites"
194msgstr "Remove from Favourites"
194msgstr "Remove from Favourites"
195
195
196−#: qml/Dash/PageHeader.qml:284
196+#: qml/Dash/PageHeader.qml:285
197msgid "Add to Favorites"
197msgid "Add to Favorites"
198msgstr "Add to Favourites"
198msgstr "Add to Favourites"
199
199
@@ -227,15 +227,15 @@ msgstr "Release to refresh…"
227
227
228#: qml/Dash/ScopesList.qml:63
228#: qml/Dash/ScopesList.qml:63
229msgid "Manage"
229msgid "Manage"
230−msgstr ""
230+msgstr "Manage"
231
231
232#: qml/Dash/ScopesList.qml:107
232#: qml/Dash/ScopesList.qml:107
233msgid "Home"
233msgid "Home"
234−msgstr ""
234+msgstr "Home"
235
235
236#: qml/Dash/ScopesList.qml:108
236#: qml/Dash/ScopesList.qml:108
237msgid "Also installed"
237msgid "Also installed"
238−msgstr ""
238+msgstr "Also installed"
239
239
240#: qml/Greeter/Greeter.qml:174
240#: qml/Greeter/Greeter.qml:174
241msgid "Unlock"
241msgid "Unlock"
@@ -289,49 +289,49 @@ msgstr "Unlock SIM"
289msgid "Roaming"
289msgid "Roaming"
290msgstr "Roaming"
290msgstr "Roaming"
291
291
292−#: qml/Shell.qml:367
292+#: qml/Shell.qml:402
293#, qt-format
293#, qt-format
294msgid "Enter %1"
294msgid "Enter %1"
295msgstr "Enter %1"
295msgstr "Enter %1"
296
296
297−#: qml/Shell.qml:368 qml/Wizard/Pages/passwd-set.qml:60
297+#: qml/Shell.qml:394
298msgid "Enter passphrase"
298msgid "Enter passphrase"
299msgstr "Enter passphrase"
299msgstr "Enter passphrase"
300
300
301−#: qml/Shell.qml:369
301+#: qml/Shell.qml:398
302msgid "Enter passcode"
302msgid "Enter passcode"
303msgstr "Enter passcode"
303msgstr "Enter passcode"
304
304
305−#: qml/Shell.qml:370
305+#: qml/Shell.qml:403
306#, qt-format
306#, qt-format
307msgid "Sorry, incorrect %1"
307msgid "Sorry, incorrect %1"
308msgstr "Sorry, incorrect %1"
308msgstr "Sorry, incorrect %1"
309
309
310−#: qml/Shell.qml:371
310+#: qml/Shell.qml:395
311msgid "Sorry, incorrect passphrase"
311msgid "Sorry, incorrect passphrase"
312msgstr "Sorry, incorrect passphrase"
312msgstr "Sorry, incorrect passphrase"
313
313
314−#: qml/Shell.qml:372
314+#: qml/Shell.qml:396
315msgid "Please re-enter"
315msgid "Please re-enter"
316msgstr "Please re-enter"
316msgstr "Please re-enter"
317
317
318−#: qml/Shell.qml:373
318+#: qml/Shell.qml:399
319msgid "Sorry, incorrect passcode"
319msgid "Sorry, incorrect passcode"
320msgstr "Sorry, incorrect passcode"
320msgstr "Sorry, incorrect passcode"
321
321
322−#: qml/Shell.qml:467 qml/Wizard/Pages/passwd-confirm.qml:53
322+#: qml/Shell.qml:444
323msgid "Sorry, incorrect passphrase."
323msgid "Sorry, incorrect passphrase."
324msgstr "Sorry, incorrect passphrase."
324msgstr "Sorry, incorrect passphrase."
325
325
326−#: qml/Shell.qml:468 qml/Wizard/Pages/passwd-confirm.qml:54
326+#: qml/Shell.qml:445
327msgid "Sorry, incorrect passcode."
327msgid "Sorry, incorrect passcode."
328msgstr "Sorry, incorrect passcode."
328msgstr "Sorry, incorrect passcode."
329
329
330−#: qml/Shell.qml:469
330+#: qml/Shell.qml:446
331msgid "This will be your last attempt."
331msgid "This will be your last attempt."
332msgstr "This will be your last attempt."
332msgstr "This will be your last attempt."
333
333
334−#: qml/Shell.qml:471
334+#: qml/Shell.qml:448
335msgid ""
335msgid ""
336"If passphrase is entered incorrectly, your phone will conduct a factory "
336"If passphrase is entered incorrectly, your phone will conduct a factory "
337"reset and all personal data will be deleted."
337"reset and all personal data will be deleted."
@@ -339,7 +339,7 @@ msgstr ""
339"If passphrase is entered incorrectly, your phone will conduct a factory "
339"If passphrase is entered incorrectly, your phone will conduct a factory "
340"reset and all personal data will be deleted."
340"reset and all personal data will be deleted."
341
341
342−#: qml/Shell.qml:472
342+#: qml/Shell.qml:449
343msgid ""
343msgid ""
344"If passcode is entered incorrectly, your phone will conduct a factory reset "
344"If passcode is entered incorrectly, your phone will conduct a factory reset "
345"and all personal data will be deleted."
345"and all personal data will be deleted."
@@ -349,98 +349,98 @@ msgstr ""
349
349
350#: qml/Wizard/Page.qml:89
350#: qml/Wizard/Page.qml:89
351msgid "Back"
351msgid "Back"
352−msgstr ""
352+msgstr "Back"
353
353
354#: qml/Wizard/Pages/10-welcome.qml:27
354#: qml/Wizard/Pages/10-welcome.qml:27
355msgid "Hi!"
355msgid "Hi!"
356−msgstr ""
356+msgstr "Hi!"
357
357
358#: qml/Wizard/Pages/10-welcome.qml:44
358#: qml/Wizard/Pages/10-welcome.qml:44
359msgid "Welcome to your Ubuntu phone."
359msgid "Welcome to your Ubuntu phone."
360−msgstr ""
360+msgstr "Welcome to your Ubuntu phone."
361
361
362#: qml/Wizard/Pages/10-welcome.qml:52
362#: qml/Wizard/Pages/10-welcome.qml:52
363msgid "Let’s get started."
363msgid "Let’s get started."
364−msgstr ""
364+msgstr "Let’s get started."
365
365
366#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
366#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
367#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
367#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
368#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
368#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
369#: qml/Wizard/Pages/passwd-set.qml:90
369#: qml/Wizard/Pages/passwd-set.qml:90
370msgid "Continue"
370msgid "Continue"
371−msgstr ""
371+msgstr "Continue"
372
372
373#: qml/Wizard/Pages/20-sim.qml:25
373#: qml/Wizard/Pages/20-sim.qml:25
374msgid "Add a SIM card and restart your device"
374msgid "Add a SIM card and restart your device"
375−msgstr ""
375+msgstr "Add a SIM card and restart your device"
376
376
377#: qml/Wizard/Pages/20-sim.qml:55
377#: qml/Wizard/Pages/20-sim.qml:55
378msgid "Without it, you won’t be able to make calls or use text messaging."
378msgid "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."
380
380
381#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
381#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
382msgid "Skip"
382msgid "Skip"
383−msgstr ""
383+msgstr "Skip"
384
384
385#: qml/Wizard/Pages/30-passwd-type.qml:39
385#: qml/Wizard/Pages/30-passwd-type.qml:39
386msgid "Lock security"
386msgid "Lock security"
387−msgstr ""
387+msgstr "Lock security"
388
388
389#: qml/Wizard/Pages/30-passwd-type.qml:74
389#: qml/Wizard/Pages/30-passwd-type.qml:74
390msgid "Please select how you’d like to unlock your phone."
390msgid "Please select how you’d like to unlock your phone."
391−msgstr ""
391+msgstr "Please select how you’d like to unlock your phone."
392
392
393#: qml/Wizard/Pages/30-passwd-type.qml:97
393#: qml/Wizard/Pages/30-passwd-type.qml:97
394msgid "Swipe"
394msgid "Swipe"
395−msgstr ""
395+msgstr "Swipe"
396
396
397#: qml/Wizard/Pages/30-passwd-type.qml:98
397#: qml/Wizard/Pages/30-passwd-type.qml:98
398msgid "No security"
398msgid "No security"
399−msgstr ""
399+msgstr "No security"
400
400
401#: qml/Wizard/Pages/30-passwd-type.qml:100
401#: qml/Wizard/Pages/30-passwd-type.qml:100
402msgid "Passcode"
402msgid "Passcode"
403−msgstr ""
403+msgstr "Passcode"
404
404
405#: qml/Wizard/Pages/30-passwd-type.qml:101
405#: qml/Wizard/Pages/30-passwd-type.qml:101
406msgid "4 digits only"
406msgid "4 digits only"
407−msgstr ""
407+msgstr "4 digits only"
408
408
409#: qml/Wizard/Pages/30-passwd-type.qml:103
409#: qml/Wizard/Pages/30-passwd-type.qml:103
410msgid "Passphrase"
410msgid "Passphrase"
411−msgstr ""
411+msgstr "Passphrase"
412
412
413#: qml/Wizard/Pages/30-passwd-type.qml:104
413#: qml/Wizard/Pages/30-passwd-type.qml:104
414msgid "Numbers and letters"
414msgid "Numbers and letters"
415−msgstr ""
415+msgstr "Numbers and letters"
416
416
417#: qml/Wizard/Pages/40-wifi.qml:28
417#: qml/Wizard/Pages/40-wifi.qml:28
418msgid "Connect to Wi‑Fi"
418msgid "Connect to Wi‑Fi"
419−msgstr ""
419+msgstr "Connect to Wi‑Fi"
420
420
421#: qml/Wizard/Pages/40-wifi.qml:147
421#: qml/Wizard/Pages/40-wifi.qml:147
422msgid "Available networks…"
422msgid "Available networks…"
423−msgstr ""
423+msgstr "Available networks…"
424
424
425#: qml/Wizard/Pages/40-wifi.qml:148
425#: qml/Wizard/Pages/40-wifi.qml:148
426msgid "No available networks."
426msgid "No available networks."
427−msgstr ""
427+msgstr "No available networks."
428
428
429#: qml/Wizard/Pages/50-location.qml:27
429#: qml/Wizard/Pages/50-location.qml:27
430msgid "Location"
430msgid "Location"
431−msgstr ""
431+msgstr "Location"
432
432
433#: qml/Wizard/Pages/50-location.qml:62
433#: qml/Wizard/Pages/50-location.qml:62
434msgid "Let the phone detect your location:"
434msgid "Let the phone detect your location:"
435−msgstr ""
435+msgstr "Let the phone detect your location:"
436
436
437#: qml/Wizard/Pages/50-location.qml:69
437#: qml/Wizard/Pages/50-location.qml:69
438msgid "Using GPS only (less accurate)"
438msgid "Using GPS only (less accurate)"
439−msgstr ""
439+msgstr "Using GPS only (less accurate)"
440
440
441#: qml/Wizard/Pages/50-location.qml:86
441#: qml/Wizard/Pages/50-location.qml:86
442msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
442msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
443−msgstr ""
443+msgstr "Using GPS, anonymised Wi-Fi and cellular network info (recommended)"
444
444
445#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
445#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
446#: qml/Wizard/Pages/50-location.qml:103
446#: qml/Wizard/Pages/50-location.qml:103
@@ -448,81 +448,87 @@ msgid ""
448"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
448"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
449"conditions</a>."
449"conditions</a>."
450msgstr ""
450msgstr ""
451+"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
452+"conditions</a>."
451
453
452#: qml/Wizard/Pages/50-location.qml:112
454#: qml/Wizard/Pages/50-location.qml:112
453msgid "Not at all"
455msgid "Not at all"
454−msgstr ""
456+msgstr "Not at all"
455
457
456#: qml/Wizard/Pages/50-location.qml:124
458#: qml/Wizard/Pages/50-location.qml:124
457msgid "You can change your mind later in <b>System Settings</b>."
459msgid "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>."
459
461
460#: qml/Wizard/Pages/60-reporting.qml:24
462#: qml/Wizard/Pages/60-reporting.qml:24
461msgid "Improving your experience"
463msgid "Improving your experience"
462−msgstr ""
464+msgstr "Improving your experience"
463
465
464#: qml/Wizard/Pages/60-reporting.qml:36
466#: qml/Wizard/Pages/60-reporting.qml:36
465msgid ""
467msgid ""
466"Your phone is set up to automatically report errors to Canonical and its "
468"Your phone is set up to automatically report errors to Canonical and its "
467"partners, the makers of the operating system."
469"partners, the makers of the operating system."
468msgstr ""
470msgstr ""
471+"Your phone is set up to automatically report errors to Canonical and its "
472+"partners, the makers of the operating system."
469
473
470#: qml/Wizard/Pages/60-reporting.qml:43
474#: qml/Wizard/Pages/60-reporting.qml:43
471msgid ""
475msgid ""
472"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
476"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
473"Privacy</b>"
477"Privacy</b>"
474msgstr ""
478msgstr ""
479+"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
480+"Privacy</b>"
475
481
476#: qml/Wizard/Pages/80-finished.qml:24
482#: qml/Wizard/Pages/80-finished.qml:24
477msgid "All done"
483msgid "All done"
478−msgstr ""
484+msgstr "All done"
479
485
480#: qml/Wizard/Pages/80-finished.qml:39
486#: qml/Wizard/Pages/80-finished.qml:39
481msgid "Nice work!"
487msgid "Nice work!"
482−msgstr ""
488+msgstr "Nice work!"
483
489
484#: qml/Wizard/Pages/80-finished.qml:46
490#: qml/Wizard/Pages/80-finished.qml:46
485msgid "Your phone is now ready to use."
491msgid "Your phone is now ready to use."
486−msgstr ""
492+msgstr "Your phone is now ready to use."
487
493
488#: qml/Wizard/Pages/80-finished.qml:53
494#: qml/Wizard/Pages/80-finished.qml:53
489msgid "Finish"
495msgid "Finish"
490−msgstr ""
496+msgstr "Finish"
491
497
492#: qml/Wizard/Pages/here-terms.qml:27
498#: qml/Wizard/Pages/here-terms.qml:27
493msgid "Terms & Conditions"
499msgid "Terms & Conditions"
494−msgstr ""
500+msgstr "Terms & Conditions"
495
501
496#: qml/Wizard/Pages/passwd-confirm.qml:49
502#: qml/Wizard/Pages/passwd-confirm.qml:49
497msgid "Confirm passphrase"
503msgid "Confirm passphrase"
498−msgstr ""
504+msgstr "Confirm passphrase"
499
505
500#: qml/Wizard/Pages/passwd-confirm.qml:50
506#: qml/Wizard/Pages/passwd-confirm.qml:50
501msgid "Confirm passcode"
507msgid "Confirm passcode"
502−msgstr ""
508+msgstr "Confirm passcode"
503
509
504#: qml/Wizard/Pages/passwd-confirm.qml:53
510#: qml/Wizard/Pages/passwd-confirm.qml:53
505#: qml/Wizard/Pages/passwd-confirm.qml:54
511#: qml/Wizard/Pages/passwd-confirm.qml:54
506msgid "Please try again."
512msgid "Please try again."
507−msgstr ""
513+msgstr "Please try again."
508
514
509#: qml/Wizard/Pages/passwd-set.qml:61
515#: qml/Wizard/Pages/passwd-set.qml:61
510msgid "Choose your passcode"
516msgid "Choose your passcode"
511−msgstr ""
517+msgstr "Choose your passcode"
512
518
513#: qml/Wizard/Pages/passwd-set.qml:68
519#: qml/Wizard/Pages/passwd-set.qml:68
514msgid "Passphrase must be 4 characters long"
520msgid "Passphrase must be 4 characters long"
515−msgstr ""
521+msgstr "Passphrase must be 4 characters long"
516
522
517#: qml/Wizard/StackButton.qml:39
523#: qml/Wizard/StackButton.qml:39
518#, qt-format
524#, qt-format
519msgid "〈 %1"
525msgid "〈 %1"
520−msgstr ""
526+msgstr "〈 %1"
521
527
522#: qml/Wizard/StackButton.qml:42
528#: qml/Wizard/StackButton.qml:42
523#, qt-format
529#, qt-format
524msgid "%1 〉"
530msgid "%1 〉"
525−msgstr ""
531+msgstr "%1 〉"
526
532
527#~ msgid "Confirm"
533#~ msgid "Confirm"
528#~ msgstr "Confirm"
534#~ msgstr "Confirm"
po/en_GB.po+47−41
@@ -8,15 +8,15 @@ msgstr ""
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-12-10 10:55+0100\n"
10"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"
12"Last-Translator: Andi Chandler <Unknown>\n"
12"Last-Translator: Andi Chandler <Unknown>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
13"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2014-12-13 07:11+0000\n"
18+"X-Launchpad-Export-Date: 2015-01-23 06:48+0000\n"
19−"X-Generator: Launchpad (build 17286)\n"
19+"X-Generator: Launchpad (build 17306)\n"
20
20
21#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
22msgid "Password: "
22msgid "Password: "
@@ -349,98 +349,98 @@ msgstr ""
349
349
350#: qml/Wizard/Page.qml:89
350#: qml/Wizard/Page.qml:89
351msgid "Back"
351msgid "Back"
352−msgstr ""
352+msgstr "Back"
353
353
354#: qml/Wizard/Pages/10-welcome.qml:27
354#: qml/Wizard/Pages/10-welcome.qml:27
355msgid "Hi!"
355msgid "Hi!"
356−msgstr ""
356+msgstr "Hi!"
357
357
358#: qml/Wizard/Pages/10-welcome.qml:44
358#: qml/Wizard/Pages/10-welcome.qml:44
359msgid "Welcome to your Ubuntu phone."
359msgid "Welcome to your Ubuntu phone."
360−msgstr ""
360+msgstr "Welcome to your Ubuntu phone."
361
361
362#: qml/Wizard/Pages/10-welcome.qml:52
362#: qml/Wizard/Pages/10-welcome.qml:52
363msgid "Let’s get started."
363msgid "Let’s get started."
364−msgstr ""
364+msgstr "Let’s get started."
365
365
366#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
366#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
367#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
367#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
368#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
368#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
369#: qml/Wizard/Pages/passwd-set.qml:90
369#: qml/Wizard/Pages/passwd-set.qml:90
370msgid "Continue"
370msgid "Continue"
371−msgstr ""
371+msgstr "Continue"
372
372
373#: qml/Wizard/Pages/20-sim.qml:25
373#: qml/Wizard/Pages/20-sim.qml:25
374msgid "Add a SIM card and restart your device"
374msgid "Add a SIM card and restart your device"
375−msgstr ""
375+msgstr "Add a SIM card and restart your device"
376
376
377#: qml/Wizard/Pages/20-sim.qml:55
377#: qml/Wizard/Pages/20-sim.qml:55
378msgid "Without it, you won’t be able to make calls or use text messaging."
378msgid "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."
380
380
381#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
381#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
382msgid "Skip"
382msgid "Skip"
383−msgstr ""
383+msgstr "Skip"
384
384
385#: qml/Wizard/Pages/30-passwd-type.qml:39
385#: qml/Wizard/Pages/30-passwd-type.qml:39
386msgid "Lock security"
386msgid "Lock security"
387−msgstr ""
387+msgstr "Lock security"
388
388
389#: qml/Wizard/Pages/30-passwd-type.qml:74
389#: qml/Wizard/Pages/30-passwd-type.qml:74
390msgid "Please select how you’d like to unlock your phone."
390msgid "Please select how you’d like to unlock your phone."
391−msgstr ""
391+msgstr "Please select how you’d like to unlock your phone."
392
392
393#: qml/Wizard/Pages/30-passwd-type.qml:97
393#: qml/Wizard/Pages/30-passwd-type.qml:97
394msgid "Swipe"
394msgid "Swipe"
395−msgstr ""
395+msgstr "Swipe"
396
396
397#: qml/Wizard/Pages/30-passwd-type.qml:98
397#: qml/Wizard/Pages/30-passwd-type.qml:98
398msgid "No security"
398msgid "No security"
399−msgstr ""
399+msgstr "No security"
400
400
401#: qml/Wizard/Pages/30-passwd-type.qml:100
401#: qml/Wizard/Pages/30-passwd-type.qml:100
402msgid "Passcode"
402msgid "Passcode"
403−msgstr ""
403+msgstr "Passcode"
404
404
405#: qml/Wizard/Pages/30-passwd-type.qml:101
405#: qml/Wizard/Pages/30-passwd-type.qml:101
406msgid "4 digits only"
406msgid "4 digits only"
407−msgstr ""
407+msgstr "4 digits only"
408
408
409#: qml/Wizard/Pages/30-passwd-type.qml:103
409#: qml/Wizard/Pages/30-passwd-type.qml:103
410msgid "Passphrase"
410msgid "Passphrase"
411−msgstr ""
411+msgstr "Passphrase"
412
412
413#: qml/Wizard/Pages/30-passwd-type.qml:104
413#: qml/Wizard/Pages/30-passwd-type.qml:104
414msgid "Numbers and letters"
414msgid "Numbers and letters"
415−msgstr ""
415+msgstr "Numbers and letters"
416
416
417#: qml/Wizard/Pages/40-wifi.qml:28
417#: qml/Wizard/Pages/40-wifi.qml:28
418msgid "Connect to Wi‑Fi"
418msgid "Connect to Wi‑Fi"
419−msgstr ""
419+msgstr "Connect to Wi‑Fi"
420
420
421#: qml/Wizard/Pages/40-wifi.qml:147
421#: qml/Wizard/Pages/40-wifi.qml:147
422msgid "Available networks…"
422msgid "Available networks…"
423−msgstr ""
423+msgstr "Available networks…"
424
424
425#: qml/Wizard/Pages/40-wifi.qml:148
425#: qml/Wizard/Pages/40-wifi.qml:148
426msgid "No available networks."
426msgid "No available networks."
427−msgstr ""
427+msgstr "No available networks."
428
428
429#: qml/Wizard/Pages/50-location.qml:27
429#: qml/Wizard/Pages/50-location.qml:27
430msgid "Location"
430msgid "Location"
431−msgstr ""
431+msgstr "Location"
432
432
433#: qml/Wizard/Pages/50-location.qml:62
433#: qml/Wizard/Pages/50-location.qml:62
434msgid "Let the phone detect your location:"
434msgid "Let the phone detect your location:"
435−msgstr ""
435+msgstr "Let the phone detect your location:"
436
436
437#: qml/Wizard/Pages/50-location.qml:69
437#: qml/Wizard/Pages/50-location.qml:69
438msgid "Using GPS only (less accurate)"
438msgid "Using GPS only (less accurate)"
439−msgstr ""
439+msgstr "Using GPS only (less accurate)"
440
440
441#: qml/Wizard/Pages/50-location.qml:86
441#: qml/Wizard/Pages/50-location.qml:86
442msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
442msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
443−msgstr ""
443+msgstr "Using GPS, anonymised Wi-Fi and cellular network info (recommended)"
444
444
445#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
445#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
446#: qml/Wizard/Pages/50-location.qml:103
446#: qml/Wizard/Pages/50-location.qml:103
@@ -448,81 +448,87 @@ msgid ""
448"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
448"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
449"conditions</a>."
449"conditions</a>."
450msgstr ""
450msgstr ""
451+"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
452+"conditions</a>."
451
453
452#: qml/Wizard/Pages/50-location.qml:112
454#: qml/Wizard/Pages/50-location.qml:112
453msgid "Not at all"
455msgid "Not at all"
454−msgstr ""
456+msgstr "Not at all"
455
457
456#: qml/Wizard/Pages/50-location.qml:124
458#: qml/Wizard/Pages/50-location.qml:124
457msgid "You can change your mind later in <b>System Settings</b>."
459msgid "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>."
459
461
460#: qml/Wizard/Pages/60-reporting.qml:24
462#: qml/Wizard/Pages/60-reporting.qml:24
461msgid "Improving your experience"
463msgid "Improving your experience"
462−msgstr ""
464+msgstr "Improving your experience"
463
465
464#: qml/Wizard/Pages/60-reporting.qml:36
466#: qml/Wizard/Pages/60-reporting.qml:36
465msgid ""
467msgid ""
466"Your phone is set up to automatically report errors to Canonical and its "
468"Your phone is set up to automatically report errors to Canonical and its "
467"partners, the makers of the operating system."
469"partners, the makers of the operating system."
468msgstr ""
470msgstr ""
471+"Your phone is set up to automatically report errors to Canonical and its "
472+"partners, the makers of the operating system."
469
473
470#: qml/Wizard/Pages/60-reporting.qml:43
474#: qml/Wizard/Pages/60-reporting.qml:43
471msgid ""
475msgid ""
472"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
476"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
473"Privacy</b>"
477"Privacy</b>"
474msgstr ""
478msgstr ""
479+"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
480+"Privacy</b>"
475
481
476#: qml/Wizard/Pages/80-finished.qml:24
482#: qml/Wizard/Pages/80-finished.qml:24
477msgid "All done"
483msgid "All done"
478−msgstr ""
484+msgstr "All done"
479
485
480#: qml/Wizard/Pages/80-finished.qml:39
486#: qml/Wizard/Pages/80-finished.qml:39
481msgid "Nice work!"
487msgid "Nice work!"
482−msgstr ""
488+msgstr "Nice work!"
483
489
484#: qml/Wizard/Pages/80-finished.qml:46
490#: qml/Wizard/Pages/80-finished.qml:46
485msgid "Your phone is now ready to use."
491msgid "Your phone is now ready to use."
486−msgstr ""
492+msgstr "Your phone is now ready to use."
487
493
488#: qml/Wizard/Pages/80-finished.qml:53
494#: qml/Wizard/Pages/80-finished.qml:53
489msgid "Finish"
495msgid "Finish"
490−msgstr ""
496+msgstr "Finish"
491
497
492#: qml/Wizard/Pages/here-terms.qml:27
498#: qml/Wizard/Pages/here-terms.qml:27
493msgid "Terms & Conditions"
499msgid "Terms & Conditions"
494−msgstr ""
500+msgstr "Terms & Conditions"
495
501
496#: qml/Wizard/Pages/passwd-confirm.qml:49
502#: qml/Wizard/Pages/passwd-confirm.qml:49
497msgid "Confirm passphrase"
503msgid "Confirm passphrase"
498−msgstr ""
504+msgstr "Confirm passphrase"
499
505
500#: qml/Wizard/Pages/passwd-confirm.qml:50
506#: qml/Wizard/Pages/passwd-confirm.qml:50
501msgid "Confirm passcode"
507msgid "Confirm passcode"
502−msgstr ""
508+msgstr "Confirm passcode"
503
509
504#: qml/Wizard/Pages/passwd-confirm.qml:53
510#: qml/Wizard/Pages/passwd-confirm.qml:53
505#: qml/Wizard/Pages/passwd-confirm.qml:54
511#: qml/Wizard/Pages/passwd-confirm.qml:54
506msgid "Please try again."
512msgid "Please try again."
507−msgstr ""
513+msgstr "Please try again."
508
514
509#: qml/Wizard/Pages/passwd-set.qml:61
515#: qml/Wizard/Pages/passwd-set.qml:61
510msgid "Choose your passcode"
516msgid "Choose your passcode"
511−msgstr ""
517+msgstr "Choose your passcode"
512
518
513#: qml/Wizard/Pages/passwd-set.qml:68
519#: qml/Wizard/Pages/passwd-set.qml:68
514msgid "Passphrase must be 4 characters long"
520msgid "Passphrase must be 4 characters long"
515−msgstr ""
521+msgstr "Passphrase must be 4 characters long"
516
522
517#: qml/Wizard/StackButton.qml:39
523#: qml/Wizard/StackButton.qml:39
518#, qt-format
524#, qt-format
519msgid "〈 %1"
525msgid "〈 %1"
520−msgstr ""
526+msgstr "〈 %1"
521
527
522#: qml/Wizard/StackButton.qml:42
528#: qml/Wizard/StackButton.qml:42
523#, qt-format
529#, qt-format
524msgid "%1 〉"
530msgid "%1 〉"
525−msgstr ""
531+msgstr "%1 〉"
526
532
527#~ msgid "Confirm"
533#~ msgid "Confirm"
528#~ msgstr "Confirm"
534#~ msgstr "Confirm"
po/eu.po+51−43
@@ -8,15 +8,15 @@ msgstr ""
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-12-10 10:55+0100\n"
10"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"
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-12-13 07:10+0000\n"
18+"X-Launchpad-Export-Date: 2015-01-23 06:48+0000\n"
19−"X-Generator: Launchpad (build 17286)\n"
19+"X-Generator: Launchpad (build 17306)\n"
20
20
21#: plugins/LightDM/Greeter.cpp:130
21#: plugins/LightDM/Greeter.cpp:130
22msgid "Password: "
22msgid "Password: "
@@ -231,15 +231,15 @@ msgstr "Askatu freskatzeko…"
231
231
232#: qml/Dash/ScopesList.qml:63
232#: qml/Dash/ScopesList.qml:63
233msgid "Manage"
233msgid "Manage"
234−msgstr ""
234+msgstr "Kudeatu"
235
235
236#: qml/Dash/ScopesList.qml:107
236#: qml/Dash/ScopesList.qml:107
237msgid "Home"
237msgid "Home"
238−msgstr ""
238+msgstr "Hasiera"
239
239
240#: qml/Dash/ScopesList.qml:108
240#: qml/Dash/ScopesList.qml:108
241msgid "Also installed"
241msgid "Also installed"
242−msgstr ""
242+msgstr "Hau ere instalatuta"
243
243
244#: qml/Greeter/Greeter.qml:174
244#: qml/Greeter/Greeter.qml:174
245msgid "Unlock"
245msgid "Unlock"
@@ -353,98 +353,100 @@ msgstr ""
353
353
354#: qml/Wizard/Page.qml:89
354#: qml/Wizard/Page.qml:89
355msgid "Back"
355msgid "Back"
356−msgstr ""
356+msgstr "Atzera"
357
357
358#: qml/Wizard/Pages/10-welcome.qml:27
358#: qml/Wizard/Pages/10-welcome.qml:27
359msgid "Hi!"
359msgid "Hi!"
360−msgstr ""
360+msgstr "Epa!"
361
361
362#: qml/Wizard/Pages/10-welcome.qml:44
362#: qml/Wizard/Pages/10-welcome.qml:44
363msgid "Welcome to your Ubuntu phone."
363msgid "Welcome to your Ubuntu phone."
364−msgstr ""
364+msgstr "Ongi etorri zure Ubuntu telefonora."
365
365
366#: qml/Wizard/Pages/10-welcome.qml:52
366#: qml/Wizard/Pages/10-welcome.qml:52
367msgid "Let’s get started."
367msgid "Let’s get started."
368−msgstr ""
368+msgstr "Has gaitezen."
369
369
370#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
370#: qml/Wizard/Pages/10-welcome.qml:88 qml/Wizard/Pages/30-passwd-type.qml:128
371#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
371#: qml/Wizard/Pages/40-wifi.qml:197 qml/Wizard/Pages/50-location.qml:131
372#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
372#: qml/Wizard/Pages/60-reporting.qml:50 qml/Wizard/Pages/passwd-confirm.qml:82
373#: qml/Wizard/Pages/passwd-set.qml:90
373#: qml/Wizard/Pages/passwd-set.qml:90
374msgid "Continue"
374msgid "Continue"
375−msgstr ""
375+msgstr "Jarraitu"
376
376
377#: qml/Wizard/Pages/20-sim.qml:25
377#: qml/Wizard/Pages/20-sim.qml:25
378msgid "Add a SIM card and restart your device"
378msgid "Add a SIM card and restart your device"
379−msgstr ""
379+msgstr "Gehitu SIM txartel bat eta berrabiarazi zure gailua"
380
380
381#: qml/Wizard/Pages/20-sim.qml:55
381#: qml/Wizard/Pages/20-sim.qml:55
382msgid "Without it, you won’t be able to make calls or use text messaging."
382msgid "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."
384
384
385#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
385#: qml/Wizard/Pages/20-sim.qml:69 qml/Wizard/Pages/40-wifi.qml:197
386msgid "Skip"
386msgid "Skip"
387−msgstr ""
387+msgstr "Saltatu"
388
388
389#: qml/Wizard/Pages/30-passwd-type.qml:39
389#: qml/Wizard/Pages/30-passwd-type.qml:39
390msgid "Lock security"
390msgid "Lock security"
391−msgstr ""
391+msgstr "Blokeo-segurtasuna"
392
392
393#: qml/Wizard/Pages/30-passwd-type.qml:74
393#: qml/Wizard/Pages/30-passwd-type.qml:74
394msgid "Please select how you’d like to unlock your phone."
394msgid "Please select how you’d like to unlock your phone."
395−msgstr ""
395+msgstr "Aukeratu telefonoa nola desblokeatu nahi duzun."
396
396
397#: qml/Wizard/Pages/30-passwd-type.qml:97
397#: qml/Wizard/Pages/30-passwd-type.qml:97
398msgid "Swipe"
398msgid "Swipe"
399−msgstr ""
399+msgstr "Pasatu hatza"
400
400
401#: qml/Wizard/Pages/30-passwd-type.qml:98
401#: qml/Wizard/Pages/30-passwd-type.qml:98
402msgid "No security"
402msgid "No security"
403−msgstr ""
403+msgstr "Segurtasunik gabe"
404
404
405#: qml/Wizard/Pages/30-passwd-type.qml:100
405#: qml/Wizard/Pages/30-passwd-type.qml:100
406msgid "Passcode"
406msgid "Passcode"
407−msgstr ""
407+msgstr "Pasakodea"
408
408
409#: qml/Wizard/Pages/30-passwd-type.qml:101
409#: qml/Wizard/Pages/30-passwd-type.qml:101
410msgid "4 digits only"
410msgid "4 digits only"
411−msgstr ""
411+msgstr "4 digitu soilik"
412
412
413#: qml/Wizard/Pages/30-passwd-type.qml:103
413#: qml/Wizard/Pages/30-passwd-type.qml:103
414msgid "Passphrase"
414msgid "Passphrase"
415−msgstr ""
415+msgstr "Pasaesaldia"
416
416
417#: qml/Wizard/Pages/30-passwd-type.qml:104
417#: qml/Wizard/Pages/30-passwd-type.qml:104
418msgid "Numbers and letters"
418msgid "Numbers and letters"
419−msgstr ""
419+msgstr "Zenbakiak eta hizkiak"
420
420
421#: qml/Wizard/Pages/40-wifi.qml:28
421#: qml/Wizard/Pages/40-wifi.qml:28
422msgid "Connect to Wi‑Fi"
422msgid "Connect to Wi‑Fi"
423−msgstr ""
423+msgstr "Konektatu wifira"
424
424
425#: qml/Wizard/Pages/40-wifi.qml:147
425#: qml/Wizard/Pages/40-wifi.qml:147
426msgid "Available networks…"
426msgid "Available networks…"
427−msgstr ""
427+msgstr "Sare erabilgarriak…"
428
428
429#: qml/Wizard/Pages/40-wifi.qml:148
429#: qml/Wizard/Pages/40-wifi.qml:148
430msgid "No available networks."
430msgid "No available networks."
431−msgstr ""
431+msgstr "Ez dago sare erabilgarririk."
432
432
433#: qml/Wizard/Pages/50-location.qml:27
433#: qml/Wizard/Pages/50-location.qml:27
434msgid "Location"
434msgid "Location"
435−msgstr ""
435+msgstr "Kokalekua"
436
436
437#: qml/Wizard/Pages/50-location.qml:62
437#: qml/Wizard/Pages/50-location.qml:62
438msgid "Let the phone detect your location:"
438msgid "Let the phone detect your location:"
439−msgstr ""
439+msgstr "Utzi telefonoari zure kokalekua detektatzen:"
440
440
441#: qml/Wizard/Pages/50-location.qml:69
441#: qml/Wizard/Pages/50-location.qml:69
442msgid "Using GPS only (less accurate)"
442msgid "Using GPS only (less accurate)"
443−msgstr ""
443+msgstr "GPSa soilik erabiltzen (zehaztasun gutxiago)"
444
444
445#: qml/Wizard/Pages/50-location.qml:86
445#: qml/Wizard/Pages/50-location.qml:86
446msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
446msgid "Using GPS, anonymized Wi-Fi and cellular network info (recommended)"
447msgstr ""
447msgstr ""
448+"GPSa, wifi anonimotua eta sare mugikorraren informazioa erabiltzen "
449+"(gomendatua)"
448
450
449#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
451#. TRANSLATORS: HERE is a trademark for Nokia's location service, you probably shouldn't translate it
450#: qml/Wizard/Pages/50-location.qml:103
452#: qml/Wizard/Pages/50-location.qml:103
@@ -452,81 +454,87 @@ msgid ""
452"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
454"By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
453"conditions</a>."
455"conditions</a>."
454msgstr ""
456msgstr ""
457+"Aukera hau hautatuz, Nokia HERE(r)en <a href='#'>baldintzak</a> onartzeko "
458+"dituzu."
455
459
456#: qml/Wizard/Pages/50-location.qml:112
460#: qml/Wizard/Pages/50-location.qml:112
457msgid "Not at all"
461msgid "Not at all"
458−msgstr ""
462+msgstr "Bat ere ez"
459
463
460#: qml/Wizard/Pages/50-location.qml:124
464#: qml/Wizard/Pages/50-location.qml:124
461msgid "You can change your mind later in <b>System Settings</b>."
465msgid "You can change your mind later in <b>System Settings</b>."
462−msgstr ""
466+msgstr "Geroago ere alda dezakezu <b>Sistemaren ezarpenetan</b>."
463
467
464#: qml/Wizard/Pages/60-reporting.qml:24
468#: qml/Wizard/Pages/60-reporting.qml:24
465msgid "Improving your experience"
469msgid "Improving your experience"
466−msgstr ""
470+msgstr "Zure esperientzia hobetuz"
467
471
468#: qml/Wizard/Pages/60-reporting.qml:36
472#: qml/Wizard/Pages/60-reporting.qml:36
469msgid ""
473msgid ""
470"Your phone is set up to automatically report errors to Canonical and its "
474"Your phone is set up to automatically report errors to Canonical and its "
471"partners, the makers of the operating system."
475"partners, the makers of the operating system."
472msgstr ""
476msgstr ""
477+"Telefonoa erroreen berria automatikoki Canonical-i eta honen bazkideei "
478+"emateko konfiguratuta dago, sistema eragilearen egileei."
473
479
474#: qml/Wizard/Pages/60-reporting.qml:43
480#: qml/Wizard/Pages/60-reporting.qml:43
475msgid ""
481msgid ""
476"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
482"This can be disabled in <b>System Settings</b> under <b>Security &amp; "
477"Privacy</b>"
483"Privacy</b>"
478msgstr ""
484msgstr ""
485+"Hau <b>Sistemaren ezarpenetatik</b> desgaitu daiteke, <b>Segurtasuna eta "
486+"pribatutasuna</b> atalean"
479
487
480#: qml/Wizard/Pages/80-finished.qml:24
488#: qml/Wizard/Pages/80-finished.qml:24
481msgid "All done"
489msgid "All done"
482−msgstr ""
490+msgstr "Eginda"
483
491
484#: qml/Wizard/Pages/80-finished.qml:39
492#: qml/Wizard/Pages/80-finished.qml:39
485msgid "Nice work!"
493msgid "Nice work!"
486−msgstr ""
494+msgstr "Bikain!"
487
495
488#: qml/Wizard/Pages/80-finished.qml:46
496#: qml/Wizard/Pages/80-finished.qml:46
489msgid "Your phone is now ready to use."
497msgid "Your phone is now ready to use."
490−msgstr ""
498+msgstr "Zure telefonoa erabiltzeko prest dago."
491
499
492#: qml/Wizard/Pages/80-finished.qml:53
500#: qml/Wizard/Pages/80-finished.qml:53
493msgid "Finish"
501msgid "Finish"
494−msgstr ""
502+msgstr "Amaitu"
495
503
496#: qml/Wizard/Pages/here-terms.qml:27
504#: qml/Wizard/Pages/here-terms.qml:27
497msgid "Terms & Conditions"
505msgid "Terms & Conditions"
498−msgstr ""
506+msgstr "Baldintzak"
499
507
500#: qml/Wizard/Pages/passwd-confirm.qml:49
508#: qml/Wizard/Pages/passwd-confirm.qml:49
501msgid "Confirm passphrase"
509msgid "Confirm passphrase"
502−msgstr ""
510+msgstr "Berretsi pasaesaldia"
503
511
504#: qml/Wizard/Pages/passwd-confirm.qml:50
512#: qml/Wizard/Pages/passwd-confirm.qml:50
505msgid "Confirm passcode"
513msgid "Confirm passcode"
506−msgstr ""
514+msgstr "Berretsi pasakodea"
507
515
508#: qml/Wizard/Pages/passwd-confirm.qml:53
516#: qml/Wizard/Pages/passwd-confirm.qml:53
509#: qml/Wizard/Pages/passwd-confirm.qml:54
517#: qml/Wizard/Pages/passwd-confirm.qml:54
510msgid "Please try again."
518msgid "Please try again."
511−msgstr ""
519+msgstr "Saiatu berriro."
512
520
513#: qml/Wizard/Pages/passwd-set.qml:61
521#: qml/Wizard/Pages/passwd-set.qml:61
514msgid "Choose your passcode"
522msgid "Choose your passcode"
515−msgstr ""
523+msgstr "Aukeratu zure pasakodea"
516
524
517#: qml/Wizard/Pages/passwd-set.qml:68
525#: qml/Wizard/Pages/passwd-set.qml:68
518msgid "Passphrase must be 4 characters long"
526msgid "Passphrase must be 4 characters long"
519−msgstr ""
527+msgstr "Pasaesaldiak 4 karaktereko luzera izan behar du"
520
528
521#: qml/Wizard/StackButton.qml:39
529#: qml/Wizard/StackButton.qml:39
522#, qt-format
530#, qt-format
523msgid "〈 %1"
531msgid "〈 %1"
524−msgstr ""
532+msgstr "〈 %1"
525
533
526#: qml/Wizard/StackButton.qml:42
534#: qml/Wizard/StackButton.qml:42
527#, qt-format
535#, qt-format
528msgid "%1 〉"
536msgid "%1 〉"
529−msgstr ""
537+msgstr "%1 〉"
530
538
531#~ msgid "Type or say a command"
539#~ msgid "Type or say a command"
532#~ msgstr "Idatzi edo esan agindu bat"
540#~ msgstr "Idatzi edo esan agindu bat"
po/unity8.pot+43−39
@@ -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-12-10 10:55+0100\n"
11+"POT-Creation-Date: 2015-01-22 11:09+0100\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -50,59 +50,59 @@ msgid_plural "Please wait %1 minutes and then try again…"
50msgstr[0] ""
50msgstr[0] ""
51msgstr[1] ""
51msgstr[1] ""
52
52
53−#: qml/Components/Dialogs.qml:70
53+#: qml/Components/Dialogs.qml:86
54msgid "Log out"
54msgid "Log out"
55msgstr ""
55msgstr ""
56
56
57−#: qml/Components/Dialogs.qml:71
57+#: qml/Components/Dialogs.qml:87
58msgid "Are you sure you want to log out?"
58msgid "Are you sure you want to log out?"
59msgstr ""
59msgstr ""
60
60
61−#: qml/Components/Dialogs.qml:73 qml/Components/Dialogs.qml:97
61+#: qml/Components/Dialogs.qml:89 qml/Components/Dialogs.qml:111
62−#: qml/Components/Dialogs.qml:122
62+#: qml/Components/Dialogs.qml:134
63msgid "No"
63msgid "No"
64msgstr ""
64msgstr ""
65
65
66−#: qml/Components/Dialogs.qml:80 qml/Components/Dialogs.qml:104
66+#: qml/Components/Dialogs.qml:95 qml/Components/Dialogs.qml:117
67−#: qml/Components/Dialogs.qml:129
67+#: qml/Components/Dialogs.qml:140
68msgid "Yes"
68msgid "Yes"
69msgstr ""
69msgstr ""
70
70
71−#: qml/Components/Dialogs.qml:94
71+#: qml/Components/Dialogs.qml:108
72msgid "Shut down"
72msgid "Shut down"
73msgstr ""
73msgstr ""
74
74
75−#: qml/Components/Dialogs.qml:95
75+#: qml/Components/Dialogs.qml:109
76msgid "Are you sure you want to shut down?"
76msgid "Are you sure you want to shut down?"
77msgstr ""
77msgstr ""
78
78
79−#: qml/Components/Dialogs.qml:119
79+#: qml/Components/Dialogs.qml:131
80msgid "Reboot"
80msgid "Reboot"
81msgstr ""
81msgstr ""
82
82
83−#: qml/Components/Dialogs.qml:120
83+#: qml/Components/Dialogs.qml:132
84msgid "Are you sure you want to reboot?"
84msgid "Are you sure you want to reboot?"
85msgstr ""
85msgstr ""
86
86
87−#: qml/Components/Dialogs.qml:144
87+#: qml/Components/Dialogs.qml:154
88msgid "Power"
88msgid "Power"
89msgstr ""
89msgstr ""
90
90
91−#: qml/Components/Dialogs.qml:145
91+#: qml/Components/Dialogs.qml:155
92msgid ""
92msgid ""
93"Are you sure you would like\n"
93"Are you sure you would like\n"
94"to power off?"
94"to power off?"
95msgstr ""
95msgstr ""
96
96
97−#: qml/Components/Dialogs.qml:147
97+#: qml/Components/Dialogs.qml:157
98msgid "Power off"
98msgid "Power off"
99msgstr ""
99msgstr ""
100
100
101−#: qml/Components/Dialogs.qml:157
101+#: qml/Components/Dialogs.qml:166
102msgid "Restart"
102msgid "Restart"
103msgstr ""
103msgstr ""
104
104
105−#: qml/Components/Dialogs.qml:167
105+#: qml/Components/Dialogs.qml:175
106msgid "Cancel"
106msgid "Cancel"
107msgstr ""
107msgstr ""
108
108
@@ -164,32 +164,32 @@ msgstr ""
164msgid "OK"
164msgid "OK"
165msgstr ""
165msgstr ""
166
166
167−#: qml/Dash/GenericScopeView.qml:431 qml/Dash/GenericScopeView.qml:588
167+#: qml/Dash/GenericScopeView.qml:485 qml/Dash/GenericScopeView.qml:642
168msgid "See less"
168msgid "See less"
169msgstr ""
169msgstr ""
170
170
171−#: qml/Dash/GenericScopeView.qml:431
171+#: qml/Dash/GenericScopeView.qml:485
172msgid "See all"
172msgid "See all"
173msgstr ""
173msgstr ""
174
174
175−#: qml/Dash/GenericScopeView.qml:493 qml/Dash/PageHeader.qml:267
175+#: qml/Dash/GenericScopeView.qml:547 qml/Dash/PageHeader.qml:274
176#: qml/Panel/SearchIndicator.qml:27
176#: qml/Panel/SearchIndicator.qml:27
177msgid "Search"
177msgid "Search"
178msgstr ""
178msgstr ""
179
179
180−#: qml/Dash/PageHeader.qml:260
180+#: qml/Dash/PageHeader.qml:267
181msgid "Store"
181msgid "Store"
182msgstr ""
182msgstr ""
183
183
184−#: qml/Dash/PageHeader.qml:277
184+#: qml/Dash/PageHeader.qml:284
185msgid "Settings"
185msgid "Settings"
186msgstr ""
186msgstr ""
187
187
188−#: qml/Dash/PageHeader.qml:284
188+#: qml/Dash/PageHeader.qml:291
189msgid "Remove from Favorites"
189msgid "Remove from Favorites"
190msgstr ""
190msgstr ""
191
191
192−#: qml/Dash/PageHeader.qml:284
192+#: qml/Dash/PageHeader.qml:291
193msgid "Add to Favorites"
193msgid "Add to Favorites"
194msgstr ""
194msgstr ""
195
195
@@ -221,19 +221,19 @@ msgstr ""
221msgid "Release to refresh…"
221msgid "Release to refresh…"
222msgstr ""
222msgstr ""
223
223
224−#: qml/Dash/ScopesList.qml:63
224+#: qml/Dash/ScopesList.qml:66
225msgid "Manage"
225msgid "Manage"
226msgstr ""
226msgstr ""
227
227
228−#: qml/Dash/ScopesList.qml:107
228+#: qml/Dash/ScopesList.qml:112
229msgid "Home"
229msgid "Home"
230msgstr ""
230msgstr ""
231
231
232−#: qml/Dash/ScopesList.qml:108
232+#: qml/Dash/ScopesList.qml:113
233msgid "Also installed"
233msgid "Also installed"
234msgstr ""
234msgstr ""
235
235
236−#: qml/Greeter/Greeter.qml:174
236+#: qml/Greeter/Greeter.qml:133
237msgid "Unlock"
237msgid "Unlock"
238msgstr ""
238msgstr ""
239
239
@@ -277,6 +277,10 @@ msgstr ""
277msgid "Failed, tap to retry"
277msgid "Failed, tap to retry"
278msgstr ""
278msgstr ""
279
279
280+#: qml/Panel/Indicators/MessageMenuItemFactory.qml:149
281+msgid "Reply"
282+msgstr ""
283+
280#: qml/Panel/Indicators/ModemInfoItem.qml:105
284#: qml/Panel/Indicators/ModemInfoItem.qml:105
281msgid "Unlock SIM"
285msgid "Unlock SIM"
282msgstr ""
286msgstr ""
@@ -285,55 +289,55 @@ msgstr ""
285msgid "Roaming"
289msgid "Roaming"
286msgstr ""
290msgstr ""
287
291
288−#: qml/Shell.qml:367
292+#: qml/Shell.qml:390
289#, qt-format
293#, qt-format
290msgid "Enter %1"
294msgid "Enter %1"
291msgstr ""
295msgstr ""
292
296
293−#: qml/Shell.qml:368 qml/Wizard/Pages/passwd-set.qml:60
297+#: qml/Shell.qml:391 qml/Wizard/Pages/passwd-set.qml:60
294msgid "Enter passphrase"
298msgid "Enter passphrase"
295msgstr ""
299msgstr ""
296
300
297−#: qml/Shell.qml:369
301+#: qml/Shell.qml:392
298msgid "Enter passcode"
302msgid "Enter passcode"
299msgstr ""
303msgstr ""
300
304
301−#: qml/Shell.qml:370
305+#: qml/Shell.qml:393
302#, qt-format
306#, qt-format
303msgid "Sorry, incorrect %1"
307msgid "Sorry, incorrect %1"
304msgstr ""
308msgstr ""
305
309
306−#: qml/Shell.qml:371
310+#: qml/Shell.qml:394
307msgid "Sorry, incorrect passphrase"
311msgid "Sorry, incorrect passphrase"
308msgstr ""
312msgstr ""
309
313
310−#: qml/Shell.qml:372
314+#: qml/Shell.qml:395
311msgid "Please re-enter"
315msgid "Please re-enter"
312msgstr ""
316msgstr ""
313
317
314−#: qml/Shell.qml:373
318+#: qml/Shell.qml:396
315msgid "Sorry, incorrect passcode"
319msgid "Sorry, incorrect passcode"
316msgstr ""
320msgstr ""
317
321
318−#: qml/Shell.qml:467 qml/Wizard/Pages/passwd-confirm.qml:53
322+#: qml/Shell.qml:490 qml/Wizard/Pages/passwd-confirm.qml:53
319msgid "Sorry, incorrect passphrase."
323msgid "Sorry, incorrect passphrase."
320msgstr ""
324msgstr ""
321
325
322−#: qml/Shell.qml:468 qml/Wizard/Pages/passwd-confirm.qml:54
326+#: qml/Shell.qml:491 qml/Wizard/Pages/passwd-confirm.qml:54
323msgid "Sorry, incorrect passcode."
327msgid "Sorry, incorrect passcode."
324msgstr ""
328msgstr ""
325
329
326−#: qml/Shell.qml:469
330+#: qml/Shell.qml:492
327msgid "This will be your last attempt."
331msgid "This will be your last attempt."
328msgstr ""
332msgstr ""
329
333
330−#: qml/Shell.qml:471
334+#: qml/Shell.qml:494
331msgid ""
335msgid ""
332"If passphrase is entered incorrectly, your phone will conduct a factory "
336"If passphrase is entered incorrectly, your phone will conduct a factory "
333"reset and all personal data will be deleted."
337"reset and all personal data will be deleted."
334msgstr ""
338msgstr ""
335
339
336−#: qml/Shell.qml:472
340+#: qml/Shell.qml:495
337msgid ""
341msgid ""
338"If passcode is entered incorrectly, your phone will conduct a factory reset "
342"If passcode is entered incorrectly, your phone will conduct a factory reset "
339"and all personal data will be deleted."
343"and all personal data will be deleted."
qml/Panel/Indicators/MessageMenuItemFactory.qml+1
@@ -146,6 +146,7 @@ Loader {
146 time: timeFormatter.timeString
146 time: timeFormatter.timeString
147 body: getExtendedProperty(extendedData, "xCanonicalText", "")
147 body: getExtendedProperty(extendedData, "xCanonicalText", "")
148 replyButtonText: getExtendedProperty(replyActionDescription, "label", "Send")
148 replyButtonText: getExtendedProperty(replyActionDescription, "label", "Send")
149+ replyHintText: i18n.tr("Reply")
149 // icons
150 // icons
150 avatar: getExtendedProperty(extendedData, "icon", "image://theme/contact")
151 avatar: getExtendedProperty(extendedData, "icon", "image://theme/contact")
151 icon: getExtendedProperty(extendedData, "xCanonicalAppIcon", "image://theme/message")
152 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"
36import "Components"
36import "Components"
37import "Notifications"
37import "Notifications"
38import "Stages"
38import "Stages"
39−import "Panel/Indicators"
40import "Wizard"
39import "Wizard"
41import Unity.Notifications 1.0 as NotificationBackend
40import Unity.Notifications 1.0 as NotificationBackend
42import Unity.Session 0.1
41import Unity.Session 0.1
43import Unity.DashCommunicator 0.1
42import Unity.DashCommunicator 0.1
43+import Unity.Indicators 0.1 as Indicators
44
44
45Item {
45Item {
46 id: shell
46 id: shell
@@ -749,13 +749,9 @@ Item {
749 minimizedPanelHeight: units.gu(3)
749 minimizedPanelHeight: units.gu(3)
750 expandedPanelHeight: units.gu(7)
750 expandedPanelHeight: units.gu(7)
751
751
752− indicatorsModel: visibleIndicators.model
752+ indicatorsModel: Indicators.IndicatorsModel {
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)
753+ Component.onCompleted: load(indicatorProfile);
754+ }
759 }
755 }
760 callHint {
756 callHint {
761 greeterShown: greeter.shown || lockscreen.shown
757 greeterShown: greeter.shown || lockscreen.shown
qml/Stages/PhoneStage.qml+2−2
@@ -52,7 +52,7 @@ Rectangle {
52 if (inverseProgress == 0 && priv.oldInverseProgress > 0) {
52 if (inverseProgress == 0 && priv.oldInverseProgress > 0) {
53 // left edge drag released. Minimum distance is given by design.
53 // left edge drag released. Minimum distance is given by design.
54 if (priv.oldInverseProgress > units.gu(22)) {
54 if (priv.oldInverseProgress > units.gu(22)) {
55− ApplicationManager.focusApplication("unity8-dash");
55+ ApplicationManager.requestFocusApplication("unity8-dash");
56 }
56 }
57 }
57 }
58 priv.oldInverseProgress = inverseProgress;
58 priv.oldInverseProgress = inverseProgress;
@@ -299,7 +299,7 @@ Rectangle {
299 x: {
299 x: {
300 // focused app is always positioned at 0 except when following left edge drag
300 // focused app is always positioned at 0 except when following left edge drag
301 if (index == 0) {
301 if (index == 0) {
302− if (!isDash && root.inverseProgress > 0) {
302+ if (!isDash && root.inverseProgress > 0 && spreadView.phase === 0) {
303 return root.inverseProgress;
303 return root.inverseProgress;
304 }
304 }
305 return 0;
305 return 0;
qml/Stages/TabletStage.qml+2−2
@@ -43,7 +43,7 @@ Rectangle {
43 if (inverseProgress == 0 && priv.oldInverseProgress > 0) {
43 if (inverseProgress == 0 && priv.oldInverseProgress > 0) {
44 // left edge drag released. Minimum distance is given by design.
44 // left edge drag released. Minimum distance is given by design.
45 if (priv.oldInverseProgress > units.gu(22)) {
45 if (priv.oldInverseProgress > units.gu(22)) {
46− ApplicationManager.focusApplication("unity8-dash");
46+ ApplicationManager.requestFocusApplication("unity8-dash");
47 }
47 }
48 }
48 }
49 priv.oldInverseProgress = inverseProgress;
49 priv.oldInverseProgress = inverseProgress;
@@ -492,7 +492,7 @@ Rectangle {
492 interactive: !spreadView.interactive && spreadView.phase === 0 && root.interactive
492 interactive: !spreadView.interactive && spreadView.phase === 0 && root.interactive
493 swipeToCloseEnabled: spreadView.interactive && !snapAnimation.running
493 swipeToCloseEnabled: spreadView.interactive && !snapAnimation.running
494 maximizedAppTopMargin: root.maximizedAppTopMargin
494 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
496 application: ApplicationManager.get(index)
496 application: ApplicationManager.get(index)
497 closeable: !isDash
497 closeable: !isDash
498
498
run.sh+1−1
@@ -39,7 +39,7 @@ done
39
39
40if $USE_MOCKS; then
40if $USE_MOCKS; then
41 export QML2_IMPORT_PATH=$QML2_IMPORT_PATH:$PWD/builddir/tests/mocks:$PWD/builddir/plugins:$PWD/builddir/modules
41 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
43else
43else
44 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/builddir/plugins/LightDM/liblightdm
44 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/builddir/plugins/LightDM/liblightdm
45fi
45fi
tests/autopilot/unity8/fixture_setup.py+35−1
@@ -1,7 +1,7 @@
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2#
2#
3# Unity Autopilot Test Suite
3# Unity Autopilot Test Suite
4−# Copyright (C) 2014 Canonical
4+# Copyright (C) 2014, 2015 Canonical
5#
5#
6# This program is free software: you can redistribute it and/or modify
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
7# it under the terms of the GNU General Public License as published by
@@ -18,6 +18,8 @@
18#
18#
19
19
20import fixtures
20import fixtures
21+import subprocess
22+
21from autopilot import introspection
23from autopilot import introspection
22
24
23from unity8 import process_helpers
25from unity8 import process_helpers
@@ -62,3 +64,35 @@ class LaunchDashApp(fixtures.Fixture):
62
64
63 def stop_application(self):
65 def stop_application(self):
64 process_helpers.stop_job('unity8-dash')
66 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 @@
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2#
2#
3# Unity - Indicators Autopilot Test Suite
3# Unity - Indicators Autopilot Test Suite
4−# Copyright (C) 2013, 2014 Canonical
4+# Copyright (C) 2013, 2014, 2015 Canonical
5#
5#
6# This program is free software: you can redistribute it and/or modify
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
7# it under the terms of the GNU General Public License as published by
@@ -15,3 +15,20 @@
15#
15#
16# You should have received a copy of the GNU General Public License
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/>.
17# 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 @@
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2#
2#
3# Unity Indicators Autopilot Test Suite
3# Unity Indicators Autopilot Test Suite
4−# Copyright (C) 2013, 2014 Canonical
4+# Copyright (C) 2013, 2014, 2015 Canonical
5#
5#
6# This program is free software: you can redistribute it and/or modify
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
7# it under the terms of the GNU General Public License as published by
@@ -22,23 +22,10 @@ from testscenarios import multiply_scenarios
22
22
23from autopilot import platform
23from autopilot import platform
24
24
25−from unity8.process_helpers import unlock_unity
25+from unity8.indicators import tests
26−from unity8.shell.tests import UnityTestCase, _get_device_emulation_scenarios
27
26
28
27
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):
42
29
43 indicator_scenarios = [
30 indicator_scenarios = [
44 ('Bluetooth', dict(indicator_name='indicator-bluetooth')),
31 ('Bluetooth', dict(indicator_name='indicator-bluetooth')),
@@ -51,7 +38,7 @@ class IndicatorExistsTestCase(IndicatorTestCase):
51 ]
38 ]
52 scenarios = multiply_scenarios(
39 scenarios = multiply_scenarios(
53 indicator_scenarios,
40 indicator_scenarios,
54− IndicatorTestCase.device_emulation_scenarios
41+ tests.IndicatorTestCase.device_emulation_scenarios
55 )
42 )
56
43
57 def setUp(self):
44 def setUp(self):
@@ -66,7 +53,7 @@ class IndicatorExistsTestCase(IndicatorTestCase):
66 )
53 )
67
54
68
55
69−class IndicatorPageTitleMatchesWidgetTestCase(IndicatorTestCase):
56+class IndicatorPageTitleMatchesWidgetTestCase(tests.IndicatorTestCase):
70
57
71 indicator_scenarios = [
58 indicator_scenarios = [
72 ('Bluetooth', dict(indicator_name='indicator-bluetooth',
59 ('Bluetooth', dict(indicator_name='indicator-bluetooth',
@@ -86,7 +73,7 @@ class IndicatorPageTitleMatchesWidgetTestCase(IndicatorTestCase):
86 ]
73 ]
87 scenarios = multiply_scenarios(
74 scenarios = multiply_scenarios(
88 indicator_scenarios,
75 indicator_scenarios,
89− IndicatorTestCase.device_emulation_scenarios
76+ tests.IndicatorTestCase.device_emulation_scenarios
90 )
77 )
91
78
92 def setUp(self):
79 def setUp(self):
tests/autopilot/unity8/shell/emulators/main_window.py+11−1
@@ -1,7 +1,7 @@
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
1# -*- Mode: Python; coding: utf-8; indent-tabs-mode: nil; tab-width: 4 -*-
2#
2#
3# Unity Autopilot Test Suite
3# Unity Autopilot Test Suite
4−# Copyright (C) 2012, 2013, 2014 Canonical
4+# Copyright (C) 2012, 2013, 2014, 2015 Canonical
5#
5#
6# This program is free software: you can redistribute it and/or modify
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
7# it under the terms of the GNU General Public License as published by
@@ -88,6 +88,16 @@ class QQuickView(emulators.UnityEmulatorBase):
88 self.wait_select_single('IndicatorsMenu', fullyOpened=True)
88 self.wait_select_single('IndicatorsMenu', fullyOpened=True)
89 return self._get_indicator_page(indicator_name)
89 return self._get_indicator_page(indicator_name)
90
90
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+
91 @autopilot_logging.log_action(logger.info)
101 @autopilot_logging.log_action(logger.info)
92 def show_dash_swiping(self):
102 def show_dash_swiping(self):
93 """Show the dash swiping from the left."""
103 """Show the dash swiping from the left."""
tests/mocks/LightDM/CMakeLists.txt+2−1
@@ -36,7 +36,8 @@ add_library(MockLightDM-qml MODULE
36# LD_LIBRARY_PATH.
36# LD_LIBRARY_PATH.
37add_dependencies(MockLightDM-qml MockLightDM MockUserMetrics)
37add_dependencies(MockLightDM-qml MockLightDM MockUserMetrics)
38target_link_libraries(MockLightDM-qml
38target_link_libraries(MockLightDM-qml
39− MockLightDM
39+ -L${CMAKE_CURRENT_BINARY_DIR}/liblightdm
40+ -llightdm-qt5-2
40 -L${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics
41 -L${CMAKE_BINARY_DIR}/tests/mocks/libusermetrics
41 -lusermetricsoutput
42 -lusermetricsoutput
42 unity8-private
43 unity8-private
tests/mocks/Unity/Indicators/CMakeLists.txt−1
@@ -19,7 +19,6 @@ set(IndicatorsFakeQml_SOURCES
19 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/sharedunitymenumodel.cpp
19 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/sharedunitymenumodel.cpp
20 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelcache.cpp
20 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelcache.cpp
21 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelstack.cpp
21 ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/unitymenumodelstack.cpp
22− ${CMAKE_SOURCE_DIR}/plugins/Unity/Indicators/visibleindicatorsmodel.cpp
23)
22)
24
23
25add_library(IndicatorsFakeQml SHARED
24add_library(IndicatorsFakeQml SHARED
tests/mocks/Unity/Indicators/fakeplugin.cpp−2
@@ -29,7 +29,6 @@
29#include "sharedunitymenumodel.h"
29#include "sharedunitymenumodel.h"
30#include "fakeunitymenumodelcache.h"
30#include "fakeunitymenumodelcache.h"
31#include "unitymenumodelstack.h"
31#include "unitymenumodelstack.h"
32−#include "visibleindicatorsmodel.h"
33
32
34#include <unitymenumodel.h>
33#include <unitymenumodel.h>
35
34
@@ -49,7 +48,6 @@ void IndicatorsFakePlugin::registerTypes(const char * uri)
49 // external
48 // external
50 qmlRegisterType<MenuContentActivator>(uri, 0, 1, "MenuContentActivator");
49 qmlRegisterType<MenuContentActivator>(uri, 0, 1, "MenuContentActivator");
51 qmlRegisterType<UnityMenuModelStack>(uri, 0, 1, "UnityMenuModelStack");
50 qmlRegisterType<UnityMenuModelStack>(uri, 0, 1, "UnityMenuModelStack");
52− qmlRegisterType<VisibleIndicatorsModel>(uri, 0, 1, "VisibleIndicatorsModel");
53 qmlRegisterType<SharedUnityMenuModel>(uri, 0, 1, "SharedUnityMenuModel");
51 qmlRegisterType<SharedUnityMenuModel>(uri, 0, 1, "SharedUnityMenuModel");
54
52
55 qmlRegisterSingletonType<FakeUnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
53 qmlRegisterSingletonType<FakeUnityMenuModelCache>(uri, 0, 1, "UnityMenuModelCache", menuModelCacheSingleton);
tests/plugins/LightDM/CMakeLists.txt+3−1
@@ -11,7 +11,9 @@ include_directories(
11 ${LIBLIGHTDM_INCLUDE_DIRS}
11 ${LIBLIGHTDM_INCLUDE_DIRS}
12 )
12 )
13
13
14+add_dependencies(GreeterDBusTestExec MockLightDM)
14−target_link_libraries(GreeterDBusTestExec MockLightDM)
15+target_link_libraries(GreeterDBusTestExec -L${CMAKE_BINARY_DIR}/tests/mocks/LightDM/liblightdm
16+ -llightdm-qt5-2)
15
17
16add_definitions(-DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
18add_definitions(-DCURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
17
19
tests/qmltests/Panel/IndicatorTest.qml+1−7
@@ -26,15 +26,9 @@ Rectangle {
26 id: root
26 id: root
27 color: "white"
27 color: "white"
28
28
29− property alias indicatorsModel: __visibleIndicatorsModel
29+ property alias indicatorsModel: __indicatorsModel
30 property alias originalModelData: __indicatorsModel.originalModelData
30 property alias originalModelData: __indicatorsModel.originalModelData
31
31
32− Indicators.VisibleIndicatorsModel {
33− id: __visibleIndicatorsModel
34−
35− model: __indicatorsModel
36− }
37−
38 Indicators.IndicatorsModel {
32 Indicators.IndicatorsModel {
39 id: __indicatorsModel
33 id: __indicatorsModel
40 Component.onCompleted: load();
34 Component.onCompleted: load();
tests/qmltests/Panel/tst_MenuContent.qml+1−1
@@ -111,7 +111,7 @@ IndicatorTest {
111 var menuIndex = i%menuCount;
111 var menuIndex = i%menuCount;
112
112
113 activate_content(menuIndex);
113 activate_content(menuIndex);
114− testItemObjectName = indicatorsModel.model.data(menuIndex, Indicators.IndicatorsModelRole.Identifier);
114+ testItemObjectName = indicatorsModel.data(menuIndex, Indicators.IndicatorsModelRole.Identifier);
115 compare(listView.currentIndex, menuIndex, "Current tab index does not match selected tab index");
115 compare(listView.currentIndex, menuIndex, "Current tab index does not match selected tab index");
116 tryCompareFunction(current_item_equals_test_item, true);
116 tryCompareFunction(current_item_equals_test_item, true);
117 }
117 }
tests/qmltests/Stages/tst_PhoneStage.qml+24
@@ -394,5 +394,29 @@ Item {
394
394
395 tryCompare(spreadView, "contentX", -spreadView.shift)
395 tryCompare(spreadView, "contentX", -spreadView.shift)
396 }
396 }
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+ }
397 }
421 }
398}
422}