on xenial help sign in
merge trunk
cfda370Michael Zanetti
Launcher/LauncherPanel.qml+30−4
@@ -123,6 +123,12 @@ Item {
123 property real realContentY: contentY - originY + topMargin
123 property real realContentY: contentY - originY + topMargin
124 property int realItemHeight: itemHeight + spacing
124 property int realItemHeight: itemHeight + spacing
125
125
126+ // In case the start dragging transition is running, we need to delay the
127+ // move because the displaced transition would clash with it and cause items
128+ // to be moved to wrong places
129+ property bool draggingTransitionRunning: false
130+ property int scheduledMoveTo: -1
131+
126 displaced: Transition {
132 displaced: Transition {
127 NumberAnimation { properties: "x,y"; duration: UbuntuAnimation.FastDuration; easing: UbuntuAnimation.StandardEasing }
133 NumberAnimation { properties: "x,y"; duration: UbuntuAnimation.FastDuration; easing: UbuntuAnimation.StandardEasing }
128 }
134 }
@@ -203,10 +209,26 @@ Item {
203 UbuntuNumberAnimation { properties: "angle,offset" }
209 UbuntuNumberAnimation { properties: "angle,offset" }
204 },
210 },
205 Transition {
211 Transition {
212+ id: draggingTransition
206 from: "selected"
213 from: "selected"
207 to: "dragging"
214 to: "dragging"
215+ SequentialAnimation {
216+ PropertyAction { target: launcherListView; property: "draggingTransitionRunning"; value: true }
217+ ParallelAnimation {
208− UbuntuNumberAnimation { properties: "height" }
218+ UbuntuNumberAnimation { properties: "height" }
209− NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.FastDuration }
219+ NumberAnimation { target: dropIndicator; properties: "opacity"; duration: UbuntuAnimation.FastDuration }
220+ }
221+ ScriptAction {
222+ script: {
223+ if (launcherListView.scheduledMoveTo > -1) {
224+ launcherListView.model.move(dndArea.draggedIndex, launcherListView.scheduledMoveTo)
225+ dndArea.draggedIndex = launcherListView.scheduledMoveTo
226+ launcherListView.scheduledMoveTo = -1
227+ }
228+ }
229+ }
230+ PropertyAction { target: launcherListView; property: "draggingTransitionRunning"; value: false }
231+ }
210 },
232 },
211 Transition {
233 Transition {
212 from: "dragging"
234 from: "dragging"
@@ -388,8 +410,12 @@ Item {
388 }
410 }
389
411
390 if (newIndex >= 0 && newIndex < launcherListView.count) {
412 if (newIndex >= 0 && newIndex < launcherListView.count) {
413+ if (launcherListView.draggingTransitionRunning) {
414+ launcherListView.scheduledMoveTo = newIndex
415+ } else {
391− launcherListView.model.move(draggedIndex, newIndex)
416+ launcherListView.model.move(draggedIndex, newIndex)
392− draggedIndex = newIndex
417+ draggedIndex = newIndex
418+ }
393 }
419 }
394 }
420 }
395 }
421 }
Shell.qml+5−3
@@ -497,11 +497,13 @@ FocusScope {
497 }
497 }
498 }
498 }
499
499
500− onPowerStateChange: {
500+ onDisplayPowerStateChange: {
501− if (state == 0) { // suspend
501+ // We ignore any display-off signals when the proximity sensor
502+ // is active. This usually indicates something like a phone call.
503+ if (status == Powerd.Off && (flags & Powerd.UseProximity) == 0) {
502 powerConnection.setFocused(false);
504 powerConnection.setFocused(false);
503 greeter.show();
505 greeter.show();
504− } else if (state == 1) { // active
506+ } else if (status == Powerd.On) {
505 powerConnection.setFocused(true);
507 powerConnection.setFocused(true);
506 }
508 }
507 }
509 }
debian/changelog+38
@@ -1,3 +1,41 @@
1+unity8 (7.81.3+13.10.20130821.2-0ubuntu1) saucy; urgency=low
2+
3+ [ Michael Terry ]
4+ * Listen to display-power-changed rather than system-power-changed
5+ signals when showing the greeter; ignore such signals when the
6+ proximity sensor is active. (LP: #1214477)
7+
8+ [ Pawel Stolowski ]
9+ * Added a role for accessing progress-source property of categories.
10+
11+ [ Ubuntu daily release ]
12+ * Automatic snapshot from revision 233
13+
14+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 21 Aug 2013 22:09:53 +0000
15+
16+unity8 (7.81.3+13.10.20130821.1-0ubuntu1) saucy; urgency=low
17+
18+ [ Michael Zanetti ]
19+ * allow testing at 11:13. Old code failed because the text actually
20+ says "11:13 AM".
21+ * add some checks if we actually clicked an item or in the spacing
22+ between them gets rid of some warnings printed by the launcher .
23+
24+ [ Michał Sawicz ]
25+ * Update runtime deps in the build script.
26+
27+ [ Nick Dedekind ]
28+ * Added/Updated legacy network indicator components to use with new
29+ indicator backend.
30+
31+ [ Albert Astals ]
32+ * Fix insertions/removals on the qlimitproxymodel . (LP: #1213959)
33+
34+ [ Ubuntu daily release ]
35+ * Automatic snapshot from revision 230
36+
37+ -- Ubuntu daily release <ps-jenkins@lists.canonical.com> Wed, 21 Aug 2013 15:04:59 +0000
38+
1unity8 (7.81.3+13.10.20130821-0ubuntu1) saucy; urgency=low
39unity8 (7.81.3+13.10.20130821-0ubuntu1) saucy; urgency=low
2
40
3 [ Michael Zanetti ]
41 [ Michael Zanetti ]
debian/control+1−1
@@ -20,7 +20,7 @@ Build-Depends: cmake,
20 libsigc++-2.0-dev,
20 libsigc++-2.0-dev,
21 libunity-api-dev (>= 7.80.3),
21 libunity-api-dev (>= 7.80.3),
22 libunity-core-6.0-dev (<< 7.80),
22 libunity-core-6.0-dev (<< 7.80),
23− libunity-dev (>= 7.0.3),
23+ libunity-dev (>= 7.0.12),
24 libunity-scopes-json-def-phone,
24 libunity-scopes-json-def-phone,
25 libupstart-dev,
25 libupstart-dev,
26 libusermetricsoutput1-dev,
26 libusermetricsoutput1-dev,
plugins/Powerd/Powerd.cpp+2−2
@@ -30,7 +30,7 @@ Powerd::Powerd(QObject* parent)
30 powerd->connection().connect("com.canonical.powerd",
30 powerd->connection().connect("com.canonical.powerd",
31 "/com/canonical/powerd",
31 "/com/canonical/powerd",
32 "com.canonical.powerd",
32 "com.canonical.powerd",
33− "SysPowerStateChange",
33+ "DisplayPowerStateChange",
34 this,
34 this,
35− SIGNAL(powerStateChange(int)));
35+ SIGNAL(displayPowerStateChange(int, unsigned int)));
36}
36}
plugins/Powerd/Powerd.h+15−1
@@ -26,12 +26,26 @@
26class Powerd: public QObject
26class Powerd: public QObject
27{
27{
28 Q_OBJECT
28 Q_OBJECT
29+ Q_ENUMS(Status)
30+ Q_FLAGS(DisplayFlag DisplayFlags)
29
31
30public:
32public:
33+ enum DisplayFlag {
34+ UseProximity = 1, // Use proximity sensor to override screen state
35+ DisableAutoBrightness = 2, // Force autobrightness to be disabled
36+ Bright = 4, // Request the screen to stay bright
37+ };
38+ Q_DECLARE_FLAGS(DisplayFlags, DisplayFlag)
39+
40+ enum Status {
41+ Off,
42+ On,
43+ };
44+
31 explicit Powerd(QObject *parent = 0);
45 explicit Powerd(QObject *parent = 0);
32
46
33Q_SIGNALS:
47Q_SIGNALS:
34− void powerStateChange(int state);
48+ void displayPowerStateChange(int status, unsigned int flags);
35
49
36private:
50private:
37 QDBusInterface *powerd;
51 QDBusInterface *powerd;
plugins/Unity/Launcher/launchermodel.cpp+34
@@ -25,6 +25,9 @@ LauncherModel::LauncherModel(QObject *parent):
25 LauncherModelInterface(parent),
25 LauncherModelInterface(parent),
26 m_backend(new LauncherBackend(this))
26 m_backend(new LauncherBackend(this))
27{
27{
28+ connect(m_backend, SIGNAL(countChanged(QString,int)), SLOT(countChanged(QString,int)));
29+ connect(m_backend, SIGNAL(progressChanged(QString,int)), SLOT(progressChanged(QString,int)));
30+
28 Q_FOREACH (const QString &entry, m_backend->storedApplications()) {
31 Q_FOREACH (const QString &entry, m_backend->storedApplications()) {
29 LauncherItem *item = new LauncherItem(entry,
32 LauncherItem *item = new LauncherItem(entry,
30 m_backend->desktopFile(entry),
33 m_backend->desktopFile(entry),
@@ -67,6 +70,10 @@ QVariant LauncherModel::data(const QModelIndex &index, int role) const
67 return item->icon();
70 return item->icon();
68 case RolePinned:
71 case RolePinned:
69 return item->pinned();
72 return item->pinned();
73+ case RoleCount:
74+ return item->count();
75+ case RoleProgress:
76+ return item->progress();
70 }
77 }
71
78
72 return QVariant();
79 return QVariant();
@@ -177,6 +184,12 @@ void LauncherModel::quickListActionInvoked(const QString &appId, int actionIndex
177 }
184 }
178}
185}
179
186
187+void LauncherModel::setUser(const QString &username)
188+{
189+ Q_UNUSED(username)
190+ // TODO: Implement this...
191+}
192+
180void LauncherModel::storeAppList()
193void LauncherModel::storeAppList()
181{
194{
182 QStringList appIds;
195 QStringList appIds;
@@ -198,3 +211,24 @@ int LauncherModel::findApplication(const QString &appId)
198 }
211 }
199 return -1;
212 return -1;
200}
213}
214+
215+void LauncherModel::progressChanged(const QString &appId, int progress)
216+{
217+ int idx = findApplication(appId);
218+ if (idx >= 0) {
219+ LauncherItem *item = m_list.at(idx);
220+ item->setProgress(progress);
221+ Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleProgress);
222+ }
223+}
224+
225+
226+void LauncherModel::countChanged(const QString &appId, int count)
227+{
228+ int idx = findApplication(appId);
229+ if (idx >= 0) {
230+ LauncherItem *item = m_list.at(idx);
231+ item->setCount(count);
232+ Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleCount);
233+ }
234+}
plugins/Unity/Launcher/launchermodel.h+5
@@ -48,11 +48,16 @@ public:
48 Q_INVOKABLE void pin(const QString &appId, int index = -1);
48 Q_INVOKABLE void pin(const QString &appId, int index = -1);
49 Q_INVOKABLE void requestRemove(const QString &appId);
49 Q_INVOKABLE void requestRemove(const QString &appId);
50 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
50 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
51+ Q_INVOKABLE void setUser(const QString &username);
51
52
52private:
53private:
53 void storeAppList();
54 void storeAppList();
54 int findApplication(const QString &appId);
55 int findApplication(const QString &appId);
55
56
57+private Q_SLOTS:
58+ void progressChanged(const QString &appId, int progress);
59+ void countChanged(const QString &appId, int count);
60+
56private:
61private:
57 QList<LauncherItem*> m_list;
62 QList<LauncherItem*> m_list;
58 LauncherBackend *m_backend;
63 LauncherBackend *m_backend;
plugins/Unity/categories.cpp+6
@@ -39,6 +39,7 @@ Categories::Categories(QObject* parent)
39 m_roles[Categories::RoleIcon] = "icon";
39 m_roles[Categories::RoleIcon] = "icon";
40 m_roles[Categories::RoleRenderer] = "renderer";
40 m_roles[Categories::RoleRenderer] = "renderer";
41 m_roles[Categories::RoleContentType] = "contentType";
41 m_roles[Categories::RoleContentType] = "contentType";
42+ m_roles[Categories::RoleProgressSource] = "progressSource";
42 m_roles[Categories::RoleHints] = "hints";
43 m_roles[Categories::RoleHints] = "hints";
43 m_roles[Categories::RoleResults] = "results";
44 m_roles[Categories::RoleResults] = "results";
44 m_roles[Categories::RoleCount] = "count";
45 m_roles[Categories::RoleCount] = "count";
@@ -198,6 +199,11 @@ Categories::data(const QModelIndex& index, int role) const
198 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
199 auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
199 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
200 return hints.contains("content-type") ? hints["content-type"] : QVariant(QString("default"));
200 }
201 }
202+ case RoleProgressSource:
203+ {
204+ auto hints = DeeListModel::data(index, CategoryColumn::HINTS).toHash();
205+ return hints.contains("progress-source") ? hints["progress-source"] : QVariant();
206+ }
201 case RoleHints:
207 case RoleHints:
202 return DeeListModel::data(index, CategoryColumn::HINTS);
208 return DeeListModel::data(index, CategoryColumn::HINTS);
203 case RoleResults:
209 case RoleResults:
plugins/Unity/categories.h+1
@@ -47,6 +47,7 @@ public:
47 RoleIcon,
47 RoleIcon,
48 RoleRenderer,
48 RoleRenderer,
49 RoleContentType,
49 RoleContentType,
50+ RoleProgressSource,
50 RoleHints,
51 RoleHints,
51 RoleResults,
52 RoleResults,
52 RoleCount,
53 RoleCount,
plugins/Unity/genericoptionsmodel.cpp+2−2
@@ -76,9 +76,9 @@ int GenericOptionsModel::rowCount(const QModelIndex& /* parent */) const
76 return m_options.size ();
76 return m_options.size ();
77}
77}
78
78
79−void GenericOptionsModel::setActive(QVector<AbstractFilterOption *>::size_type idx, bool value)
79+void GenericOptionsModel::setActive(int idx, bool value)
80{
80{
81− if (idx < m_options.size())
81+ if (idx >= 0 && idx < m_options.size())
82 {
82 {
83 m_options[idx]->setActive(value);
83 m_options[idx]->setActive(value);
84 }
84 }
plugins/Unity/genericoptionsmodel.h+1−1
@@ -49,7 +49,7 @@ public:
49 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
49 QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
50 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
50 int rowCount(const QModelIndex& parent = QModelIndex()) const override;
51
51
52− Q_INVOKABLE void setActive(QVector<AbstractFilterOption *>::size_type idx, bool value);
52+ Q_INVOKABLE void setActive(int idx, bool value);
53 Q_INVOKABLE void setActive(const QString &id, bool value);
53 Q_INVOKABLE void setActive(const QString &id, bool value);
54
54
55 AbstractFilterOption* getRawOption(QVector<AbstractFilterOption *>::size_type idx) const;
55 AbstractFilterOption* getRawOption(QVector<AbstractFilterOption *>::size_type idx) const;
plugins/Unity/plugin.cpp+2
@@ -33,6 +33,7 @@
33#include "categories.h"
33#include "categories.h"
34#include "categoryresults.h"
34#include "categoryresults.h"
35#include "bottombarvisibilitycommunicatorshell.h"
35#include "bottombarvisibilitycommunicatorshell.h"
36+#include "genericoptionsmodel.h"
36
37
37// libqtdee
38// libqtdee
38#include "deelistmodel.h"
39#include "deelistmodel.h"
@@ -47,6 +48,7 @@ void UnityPlugin::registerTypes(const char *uri)
47 qmlRegisterUncreatableType<PreviewAction>(uri, 0, 1, "PreviewAction", "Can't create PreviewAction object in QML.");
48 qmlRegisterUncreatableType<PreviewAction>(uri, 0, 1, "PreviewAction", "Can't create PreviewAction object in QML.");
48 qmlRegisterUncreatableType<PreviewInfoHint>(uri, 0, 1, "PreviewInfoHint", "Can't create PreviewInfoHint object in QML.");
49 qmlRegisterUncreatableType<PreviewInfoHint>(uri, 0, 1, "PreviewInfoHint", "Can't create PreviewInfoHint object in QML.");
49 qmlRegisterUncreatableType<SocialPreviewComment>(uri, 0, 1, "SocialPreviewComment", "Can't create SocialPreviewComment object in QML.");
50 qmlRegisterUncreatableType<SocialPreviewComment>(uri, 0, 1, "SocialPreviewComment", "Can't create SocialPreviewComment object in QML.");
51+ qmlRegisterUncreatableType<GenericOptionsModel>(uri, 0, 1, "GenericOptionsModel", "Can't create options model in QML.");
50 qmlRegisterType<Scope>(uri, 0, 1, "Scope");
52 qmlRegisterType<Scope>(uri, 0, 1, "Scope");
51 qmlRegisterType<Scopes>(uri, 0, 1, "Scopes");
53 qmlRegisterType<Scopes>(uri, 0, 1, "Scopes");
52 qmlRegisterType<Categories>(uri, 0, 1, "Categories");
54 qmlRegisterType<Categories>(uri, 0, 1, "Categories");
po/ar.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
17"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
18"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/az.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/bg.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Type: text/plain; charset=UTF-8\n"
17"Content-Transfer-Encoding: 8bit\n"
17"Content-Transfer-Encoding: 8bit\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
18"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/ca.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/de.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/el.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/en_AU.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:26+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/en_GB.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:26+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/eo.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/es.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/fi.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/fo.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/fr.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/gl.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/he.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/hr.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/hu.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/hy.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/id.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/it.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/ja.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/kn.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/ko.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/ky.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/lv.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/my.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/nb.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/nl.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/pl.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
17"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
18"|| n%100>=20) ? 1 : 2;\n"
18"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/pt_BR.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:26+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/ro.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
17"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
18"== 0) && (n != 0))) ? 2: 1));\n"
18"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/ru.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/si.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/sl.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
17"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
18"n%100==4 ? 3 : 0);\n"
18"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/sr.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/sv.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/te.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/tr.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/ug.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:25+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/uk.po+2−2
@@ -16,8 +16,8 @@ msgstr ""
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
17"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
18"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2013-08-14 06:26+0000\n"
19+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
20−"X-Generator: Launchpad (build 16723)\n"
20+"X-Generator: Launchpad (build 16734)\n"
21
21
22#: Applications/applications.js:23
22#: Applications/applications.js:23
23msgid "Phone"
23msgid "Phone"
po/zh_CN.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:26+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
po/zh_TW.po+2−2
@@ -15,8 +15,8 @@ msgstr ""
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
17"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2013-08-14 06:26+0000\n"
18+"X-Launchpad-Export-Date: 2013-08-22 06:11+0000\n"
19−"X-Generator: Launchpad (build 16723)\n"
19+"X-Generator: Launchpad (build 16734)\n"
20
20
21#: Applications/applications.js:23
21#: Applications/applications.js:23
22msgid "Phone"
22msgid "Phone"
tests/mocks/Powerd/Powerd.h+15−2
@@ -20,17 +20,30 @@
20#define UNITY_MOCK_POWERD_H
20#define UNITY_MOCK_POWERD_H
21
21
22#include <QtCore/QObject>
22#include <QtCore/QObject>
23−#include <QtDBus/QDBusInterface>
24
23
25class Powerd: public QObject
24class Powerd: public QObject
26{
25{
27 Q_OBJECT
26 Q_OBJECT
27+ Q_ENUMS(Status)
28+ Q_FLAGS(DisplayFlag DisplayFlags)
28
29
29public:
30public:
31+ enum DisplayFlag {
32+ UseProximity = 1, // Use proximity sensor to override screen state
33+ DisableAutoBrightness = 2, // Force autobrightness to be disabled
34+ Bright = 4, // Request the screen to stay bright
35+ };
36+ Q_DECLARE_FLAGS(DisplayFlags, DisplayFlag)
37+
38+ enum Status {
39+ Off,
40+ On,
41+ };
42+
30 explicit Powerd(QObject *parent = 0);
43 explicit Powerd(QObject *parent = 0);
31
44
32Q_SIGNALS:
45Q_SIGNALS:
33− void powerStateChange(int state);
46+ void displayPowerStateChange(int status, unsigned int flags);
34};
47};
35
48
36#endif
49#endif
tests/mocks/Unity/Launcher/MockLauncherModel.cpp+6
@@ -174,3 +174,9 @@ int MockLauncherModel::findApp(const QString &appId)
174 }
174 }
175 return -1;
175 return -1;
176}
176}
177+
178+void MockLauncherModel::setUser(const QString &username)
179+{
180+ Q_UNUSED(username)
181+ // TODO: implement this...
182+}
tests/mocks/Unity/Launcher/MockLauncherModel.h+1
@@ -43,6 +43,7 @@ public:
43 Q_INVOKABLE void pin(const QString &appId, int index = -1);
43 Q_INVOKABLE void pin(const QString &appId, int index = -1);
44 Q_INVOKABLE void requestRemove(const QString &appId);
44 Q_INVOKABLE void requestRemove(const QString &appId);
45 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
45 Q_INVOKABLE void quickListActionInvoked(const QString &appId, int actionIndex);
46+ Q_INVOKABLE void setUser(const QString &username);
46
47
47Q_SIGNALS:
48Q_SIGNALS:
48 void quickListTriggered(const QString &appId, int index);
49 void quickListTriggered(const QString &appId, int index);
tests/qmltests/Launcher/tst_Launcher.qml+33−13
@@ -277,8 +277,9 @@ Item {
277
277
278 function test_dragndrop_data() {
278 function test_dragndrop_data() {
279 return [
279 return [
280− {tag: "startDrag", fullDrag: false},
280+ {tag: "startDrag", fullDrag: false },
281+ {tag: "fullDrag horizontal", fullDrag: true, orientation: ListView.Horizontal },
281− {tag: "fullDrag", fullDrag: true},
282+ {tag: "fullDrag vertical", fullDrag: true, orientation: ListView.Vertical },
282 ];
283 ];
283 }
284 }
284
285
@@ -288,8 +289,8 @@ Item {
288 var item0 = findChild(launcher, "launcherDelegate0")
289 var item0 = findChild(launcher, "launcherDelegate0")
289 var fakeDragItem = findChild(launcher, "fakeDragItem")
290 var fakeDragItem = findChild(launcher, "fakeDragItem")
290 var initialItemHeight = draggedItem.height
291 var initialItemHeight = draggedItem.height
291− var item5Name = LauncherModel.get(5).iconName
292+ var item5 = LauncherModel.get(5).appId
292− var item4Name = LauncherModel.get(4).iconName
293+ var item4 = LauncherModel.get(4).appId
293
294
294 // Initial state
295 // Initial state
295 compare(draggedItem.itemOpacity, 1, "Item's opacity is not 1 at beginning")
296 compare(draggedItem.itemOpacity, 1, "Item's opacity is not 1 at beginning")
@@ -297,28 +298,43 @@ Item {
297 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
298 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
298
299
299 // Doing longpress
300 // Doing longpress
301+ var currentMouseX = draggedItem.width / 2
300− mousePress(draggedItem, draggedItem.width / 2, draggedItem.height / 2)
302+ var currentMouseY = draggedItem.height / 2
303+ mousePress(draggedItem, currentMouseX, currentMouseY)
301 // DraggedItem needs to hide and fakeDragItem become visible
304 // DraggedItem needs to hide and fakeDragItem become visible
302 tryCompare(draggedItem, "itemOpacity", 0)
305 tryCompare(draggedItem, "itemOpacity", 0)
303 tryCompare(fakeDragItem, "visible", true)
306 tryCompare(fakeDragItem, "visible", true)
304
307
305 // Dragging a bit (> 1.5 gu)
308 // Dragging a bit (> 1.5 gu)
306− mouseMove(draggedItem, -units.gu(2), draggedItem.height / 2)
309+ currentMouseX -= units.gu(2)
310+ mouseMove(draggedItem, currentMouseX, currentMouseY)
307 // Other items need to expand and become 0.6 opaque
311 // Other items need to expand and become 0.6 opaque
308 tryCompare(item0, "angle", 0)
312 tryCompare(item0, "angle", 0)
309 tryCompare(item0, "itemOpacity", 0.6)
313 tryCompare(item0, "itemOpacity", 0.6)
310
314
311 if (data.fullDrag) {
315 if (data.fullDrag) {
312 // Dragging a bit more
316 // Dragging a bit more
317+ if (data.orientation == ListView.Horizontal) {
318+ currentMouseX -= units.gu(15)
319+ mouseMove(draggedItem, currentMouseX, currentMouseY, 100)
320+
321+ tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
313− mouseMove(draggedItem, -units.gu(15), draggedItem.height / 2, 100)
322+ tryCompare(draggedItem, "height", units.gu(1))
323+
324+ // Dragging downwards. Item needs to move in the model
325+ currentMouseY -= initialItemHeight * 1.5
326+ mouseMove(draggedItem, currentMouseX, currentMouseY)
327+ } else if (data.orientation == ListView.Vertical) {
328+ currentMouseY -= initialItemHeight * 1.5
329+ mouseMove(draggedItem, currentMouseX, currentMouseY, 100)
330+
314− tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
331+ tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 1)
315− tryCompare(draggedItem, "height", units.gu(1))
332+ tryCompare(draggedItem, "height", units.gu(1))
333+ }
316
334
317− // Dragging downwards. Item needs to move in the model
318− mouseMove(draggedItem, -units.gu(15), -initialItemHeight)
319 waitForRendering(draggedItem)
335 waitForRendering(draggedItem)
320− compare(LauncherModel.get(5).iconName, item4Name)
336+ compare(LauncherModel.get(5).appId, item4)
321− compare(LauncherModel.get(5).iconName, item5Name)
337+ compare(LauncherModel.get(4).appId, item5)
322 }
338 }
323
339
324 // Releasing and checking if initial values are restored
340 // Releasing and checking if initial values are restored
@@ -326,6 +342,10 @@ Item {
326 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
342 tryCompare(findChild(draggedItem, "dropIndicator"), "opacity", 0)
327 tryCompare(draggedItem, "itemOpacity", 1)
343 tryCompare(draggedItem, "itemOpacity", 1)
328 tryCompare(fakeDragItem, "visible", false)
344 tryCompare(fakeDragItem, "visible", false)
345+
346+ // Click somewhere in the empty space to make it hide in case it isn't
347+ mouseClick(launcher, launcher.width - units.gu(1), units.gu(1));
348+ revealer.waitUntilLauncherDisappears();
329 }
349 }
330
350
331 function test_quicklist_dismiss() {
351 function test_quicklist_dismiss() {
tests/qmltests/tst_Shell.qml+7−3
@@ -125,13 +125,17 @@ Item {
125 var mainApp = ApplicationManager.mainStageFocusedApplication;
125 var mainApp = ApplicationManager.mainStageFocusedApplication;
126 tryCompareFunction(function() { return mainApp != null; }, true);
126 tryCompareFunction(function() { return mainApp != null; }, true);
127
127
128+ // Try to suspend while proximity is engaged...
129+ Powerd.displayPowerStateChange(Powerd.Off, Powerd.UseProximity);
130+ tryCompare(greeter, "showProgress", 0);
131+
128− // Now suspend
132+ // Now really suspend
129− Powerd.powerStateChange(0);
133+ Powerd.displayPowerStateChange(Powerd.Off, 0);
130 tryCompare(greeter, "showProgress", 1);
134 tryCompare(greeter, "showProgress", 1);
131 tryCompare(ApplicationManager, "mainStageFocusedApplication", null);
135 tryCompare(ApplicationManager, "mainStageFocusedApplication", null);
132
136
133 // And wake up
137 // And wake up
134− Powerd.powerStateChange(1);
138+ Powerd.displayPowerStateChange(Powerd.On, 0);
135 tryCompare(ApplicationManager, "mainStageFocusedApplication", mainApp);
139 tryCompare(ApplicationManager, "mainStageFocusedApplication", mainApp);
136 tryCompare(greeter, "showProgress", 1);
140 tryCompare(greeter, "showProgress", 1);
137 }
141 }