on xenial help sign in
merged with trunk
commit54c109e312ac7420be7064fd73c203589b709c7b authorNick Dedekind <nick.dedekind@canonical.com> dateFri 10 Feb 2017, 14:39 (10 years ago) parenta6cff499482eec
132 files changed+1052−581
debian/changelog+15 debian/control−2 plugins/WindowManager/TopLevelWindowModel.cpp+36−28 plugins/WindowManager/TopLevelWindowModel.h+2 plugins/WindowManager/Window.h−1 po/aa.po+3−3 po/am.po+3−3 po/ar.po+3−3 po/ast.po+3−3 po/az.po+3−3 po/be.po+3−3 po/bg.po+3−3 po/bn.po+3−3 po/br.po+3−3 po/bs.po+3−3 po/ca.po+3−3 po/ca@valencia.po+3−3 po/ce.po+3−3 po/ckb.po+3−3 po/co.po+3−3 po/cs.po+3−3 po/cy.po+3−3 po/da.po+3−3 po/de.po+3−3 po/el.po+3−3 po/en_AU.po+3−3 po/en_GB.po+3−3 po/eo.po+3−3 po/es.po+3−3 po/et.po+3−3 po/eu.po+3−3 po/fa.po+3−3 po/fi.po+3−3 po/fo.po+3−3 po/fr.po+12−12 po/ga.po+3−3 po/gd.po+3−3 po/gl.po+12−12 po/gv.po+3−3 po/he.po+3−3 po/hi.po+3−3 po/hr.po+3−3 po/hu.po+3−3 po/hy.po+3−3 po/ia.po+3−3 po/id.po+3−3 po/is.po+3−3 po/it.po+3−3 po/ja.po+3−3 po/km.po+3−3 po/kn.po+3−3 po/ko.po+3−3 po/ku.po+3−3 po/ky.po+3−3 po/lo.po+3−3 po/lt.po+3−3 po/lv.po+3−3 po/ml.po+3−3 po/mr.po+3−3 po/ms.po+3−3 po/my.po+3−3 po/nb.po+13−13 po/ne.po+3−3 po/nl.po+3−3 po/nn.po+3−3 po/oc.po+3−3 po/or.po+3−3 po/pa.po+3−3 po/pl.po+3−3 po/pt.po+3−3 po/pt_BR.po+3−3 po/ro.po+3−3 po/ru.po+3−3 po/shn.po+3−3 po/si.po+3−3 po/sk.po+3−3 po/sl.po+3−3 po/sq.po+3−3 po/sr.po+3−3 po/sv.po+3−3 po/sw.po+3−3 po/ta.po+3−3 po/te.po+3−3 po/th.po+3−3 po/tr.po+3−3 po/ug.po+3−3 po/uk.po+3−3 po/unity8.pot+1−1 po/ur.po+3−3 po/uz.po+3−3 po/vi.po+3−3 po/wo.po+3−3 po/xh.po+3−3 po/zh_CN.po+3−3 po/zh_HK.po+3−3 po/zh_TW.po+3−3 qml/Components/WindowControlButtons.qml+2 qml/Dash/CardGrid.qml+2−3 qml/Dash/CardTool.qml+2−26 qml/Dash/GenericScopeView.qml+1−1 qml/Dash/ScopesListCategory.qml+1−1 qml/Stage/ChildWindow.qml+159 qml/Stage/ChildWindowRepeater.qml+28 qml/Stage/ChildWindowTree.qml+127 qml/Stage/DecoratedWindow.qml+1−3 qml/Stage/MoveHandler.qml+23−19 qml/Stage/Stage.qml+50−11 qml/Stage/WindowControlsOverlay.qml+21−26 qml/Stage/WindowDecoration.qml+1 qml/Stage/WindowResizeArea.qml+3−2 tests/autopilot/unity8/dash.py+1−17 tests/autopilot/unity8/shell/tests/test_helpers.py−49 tests/mocks/Unity/Application/ApplicationInfo.cpp+9−1 tests/mocks/Unity/Application/ApplicationInfo.h+3 tests/mocks/Unity/Application/ApplicationManager.cpp+9 tests/mocks/Unity/Application/MirSurface.cpp+43 tests/mocks/Unity/Application/MirSurface.h+11 tests/mocks/Unity/Application/MirSurfaceItem.cpp+19−4 tests/mocks/Unity/Application/MirSurfaceListModel.h−1 tests/mocks/Unity/Application/SurfaceManager.cpp+15−8 tests/mocks/Unity/Application/SurfaceManager.h+3−1 tests/mocks/Unity/Application/VirtualKeyboard.cpp+5−4 tests/mocks/Unity/Application/resources/Kate.qml+49 tests/mocks/Unity/Application/resources/KateDialog.qml+48 tests/mocks/Unity/Application/resources/KateMenu.qml+41 tests/mocks/Unity/Application/resources/surfaces.qrc+3 tests/mocks/Unity/fake_scopes.cpp−1 tests/qmltests/Dash/tst_Dash.qml+1−48 tests/qmltests/Dash/tst_DashContent.qml+3−3 tests/qmltests/Dash/tst_GenericScopeView.qml+5−21 tests/qmltests/Stage/ApplicationCheckBox.qml+1−1 tests/qmltests/Stage/tst_WindowResizeArea.qml+10
debian/changelog+15
@@ -1,3 +1,18 @@
1+unity8 (8.15+17.04.20170206-0ubuntu1) zesty; urgency=medium
2+
3+ [ Daniel d'Andrada ]
4+ * Initial support for child windows (menus, dialogs, tooltips) (LP:
5+ #1543467, #1591384, #1656727)
6+
7+ -- Albert Astals Cid <albert.astals@canonical.com> Mon, 06 Feb 2017 09:12:23 +0000
8+
9+unity8 (8.15+17.04.20170131.1-0ubuntu1) zesty; urgency=medium
10+
11+ [ Rodney Dawes ]
12+ * Remove dependencies on clickscope.
13+
14+ -- Albert Astals Cid <albert.astals@canonical.com> Tue, 31 Jan 2017 14:40:33 +0000
15+
116unity8 (8.15+17.04.20170124-0ubuntu1) zesty; urgency=medium
217
318 [ Albert Astals Cid ]
debian/control−2
@@ -141,7 +141,6 @@ Depends: dmz-cursor-theme,
141141Recommends: indicator-keyboard,
142142 indicator-session,
143143 unity-greeter-session-broadcast,
144− unity-scope-click,
145144Suggests: unity-scope-mediascanner2,
146145Breaks: indicator-network (<< 0.5.1+14.10.20141014),
147146 ubuntu-touch-session (<< 0.107),
@@ -191,7 +190,6 @@ Depends: autopilot-qt5 (>= 1.4),
191190 python3-gi,
192191 qttestability-autopilot (>= 1.4),
193192 ubuntu-ui-toolkit-autopilot (>= 1.3.2030),
194− unity-scope-click,
195193 unity8 (= ${source:Version}),
196194 unity8-tests (= ${source:Version}),
197195 url-dispatcher-tools,
plugins/WindowManager/TopLevelWindowModel.cpp+36−28
@@ -176,18 +176,13 @@ void TopLevelWindowModel::prependSurfaceHelper(unityapi::MirSurfaceInterface *su
176176 // No point in signaling anything if we're resetting the whole model
177177 }
178178
179− int id = generateId();
180− Window *window = new Window(id, this);
181− if (surface) {
182− window->setSurface(surface);
183− }
179+ Window *window = createWindow(surface);
180+
184181 m_windowModel.prepend(ModelEntry(window, application));
185182 if (surface) {
186183 connectSurface(surface);
187184 }
188185
189− connectWindow(window);
190−
191186 if (m_modelState == InsertingState) {
192187 endInsertRows();
193188 Q_EMIT countChanged();
@@ -322,34 +317,47 @@ void TopLevelWindowModel::onSurfaceDestroyed(unityapi::MirSurfaceInterface *surf
322317 }
323318}
324319
320+Window *TopLevelWindowModel::createWindow(unityapi::MirSurfaceInterface *surface)
321+{
322+ int id = generateId();
323+ Window *qmlWindow = new Window(id, this);
324+ connectWindow(qmlWindow);
325+ if (surface) {
326+ qmlWindow->setSurface(surface);
327+ }
328+ return qmlWindow;
329+}
330+
325331void TopLevelWindowModel::onSurfaceCreated(unityapi::MirSurfaceInterface *surface)
326332{
327333 DEBUG_MSG << "(" << surface << ")";
328− if (surface->type() == Mir::InputMethodType) {
329− int id = generateId();
330− Window *qmlWindow = new Window(id, this);
331− connectWindow(qmlWindow);
332− qmlWindow->setSurface(surface);
333− setInputMethodWindow(qmlWindow);
334+
335+ if (surface->parentSurface()) {
336+ // Wrap it in a Window so that we keep focusedWindow() up to date.
337+ Window *window = createWindow(surface);
338+ connect(surface, &QObject::destroyed, window, [=](){
339+ window->setSurface(nullptr);
340+ window->deleteLater();
341+ });
334342 } else {
335− auto application = m_applicationManager->findApplicationWithSurface(surface);
336− if (application) {
337− prependSurface(surface, application);
343+ if (surface->type() == Mir::InputMethodType) {
344+ setInputMethodWindow(createWindow(surface));
338345 } else {
339− // Must be a prompt session. No need to do add it as a prompt surface is not top-level.
340− // It will show up in the ApplicationInfoInterface::promptSurfaceList of some application.
341− // Still wrap it in a Window though, so that we keep focusedWindow() up to date.
342− int id = generateId();
343− Window *promptWindow = new Window(id, this);
344− connectWindow(promptWindow);
345− promptWindow->setSurface(surface);
346− connect(surface, &QObject::destroyed, promptWindow, [=](){
347− promptWindow->setSurface(nullptr);
348− promptWindow->deleteLater();
349− });
346+ auto *application = m_applicationManager->findApplicationWithSurface(surface);
347+ if (application) {
348+ prependSurface(surface, application);
349+ } else {
350+ // Must be a prompt session. No need to do add it as a prompt surface is not top-level.
351+ // It will show up in the ApplicationInfoInterface::promptSurfaceList of some application.
352+ // Still wrap it in a Window though, so that we keep focusedWindow() up to date.
353+ Window *promptWindow = createWindow(surface);
354+ connect(surface, &QObject::destroyed, promptWindow, [=](){
355+ promptWindow->setSurface(nullptr);
356+ promptWindow->deleteLater();
357+ });
358+ }
350359 }
351360 }
352− // TODO: handle surfaces that are neither top-level windows nor input method. eg: child dialogs, popups, menus
353361}
354362
355363void TopLevelWindowModel::removeAt(int index)
plugins/WindowManager/TopLevelWindowModel.h+2
@@ -220,6 +220,8 @@ private:
220220
221221 void activateTopMostWindowWithoutId(int forbiddenId);
222222
223+ Window *createWindow(unity::shell::application::MirSurfaceInterface *surface);
224+
223225 struct ModelEntry {
224226 ModelEntry() {}
225227 ModelEntry(Window *window,
plugins/WindowManager/Window.h−1
@@ -32,7 +32,6 @@ namespace unity {
3232 }
3333}
3434
35−
3635Q_DECLARE_LOGGING_CATEGORY(UNITY_WINDOW)
3736
3837/**
po/aa.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-02-12 10:18+0000\n"
1212"Last-Translator: Charif AYFARAH <ayfarah@ymail.com>\n"
1313"Language-Team: Afar <aa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/am.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2017-01-26 15:04+0000\n"
1212"Last-Translator: samson <Unknown>\n"
1313"Language-Team: Amharic <am@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ar.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2017-01-14 05:20+0000\n"
1212"Last-Translator: Ibrahim Saed <ibraheem5000@gmail.com>\n"
1313"Language-Team: Arabic <ar@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n % 100 >= "
1818"3 && n % 100 <= 10 ? 3 : n % 100 >= 11 && n % 100 <= 99 ? 4 : 5;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/ast.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-12-16 02:13+0000\n"
1212"Last-Translator: enolp <enolp@softastur.org>\n"
1313"Language-Team: Asturian <ast@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/az.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-09-03 16:39+0000\n"
1212"Last-Translator: Nicat Məmmədov <n1c4t97@gmail.com>\n"
1313"Language-Team: Azerbaijani <az@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/be.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-12-13 13:12+0000\n"
1212"Last-Translator: Mikhail_SaTuRn <mikhail_saturn@tut.by>\n"
1313"Language-Team: Belarusian <be@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/bg.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-04-12 14:43+0000\n"
1212"Last-Translator: George Karavasilev <kokoto-java@ubuntu.com>\n"
1313"Language-Team: Bulgarian <bg@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/bn.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-11-27 19:38+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Bengali <bn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/br.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-08-29 11:37+0000\n"
1212"Last-Translator: Fohanno Thierry <thierry.fohanno@ofis-bzh.org>\n"
1313"Language-Team: Breton <br@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/bs.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-12-01 20:06+0000\n"
1212"Last-Translator: Kenan Gutić <Unknown>\n"
1313"Language-Team: Bosnian <bs@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/ca.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-11-11 06:30+0000\n"
1212"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ca@valencia.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-02-22 15:22+0000\n"
1212"Last-Translator: David Planella <david.planella@gmail.com>\n"
1313"Language-Team: Catalan <ca@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:14+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ce.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-02-15 04:01+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Chechen <ce@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ckb.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-01-21 11:05+0000\n"
1212"Last-Translator: Aras <aras.noori@gmail.com>\n"
1313"Language-Team: Kurdish (Sorani) <ckb@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:14+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/co.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-05-24 10:40+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Corsican <co@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/cs.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-07 10:44+0000\n"
1212"Last-Translator: Vojtěch Daněk <vdanek@outlook.com>\n"
1313"Language-Team: Czech <cs@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020"Language: cs\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
po/cy.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-31 13:21+0000\n"
1212"Last-Translator: Owen Llywelyn <owen.llywelyn@gmail.com>\n"
1313"Language-Team: Welsh <cy@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : (n != 8 && n != 11) ? "
1818"2 : 3;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/da.po+3−3
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
11+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1212"PO-Revision-Date: 2015-07-06 12:05+0000\n"
1313"Last-Translator: Folmer Fredslund <Unknown>\n"
1414"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=2; plural=n != 1;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/de.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2017-01-18 22:45+0000\n"
1212"Last-Translator: Torsten Franz <Unknown>\n"
1313"Language-Team: German <de@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/el.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-04-25 16:24+0000\n"
1212"Last-Translator: Aggelos Arnaoutis <angelosarn@hotmail.com>\n"
1313"Language-Team: Greek <el@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/en_AU.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-03-27 10:09+0000\n"
1212"Last-Translator: Jared Norris <jarednorris@ubuntu.com>\n"
1313"Language-Team: English (Australia) <en_AU@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:14+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/en_GB.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-07-05 00:37+0000\n"
1212"Last-Translator: Andi Chandler <Unknown>\n"
1313"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:14+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/eo.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-06-06 23:37+0000\n"
1212"Last-Translator: Eliovir <Unknown>\n"
1313"Language-Team: Esperanto <eo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/es.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-03-25 12:02+0000\n"
1212"Last-Translator: Adolfo Jayme <fitoschido@gmail.com>\n"
1313"Language-Team: Spanish <es@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/et.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-12-28 06:29+0000\n"
1212"Last-Translator: Karlis <Unknown>\n"
1313"Language-Team: Estonian <et@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/eu.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-13 23:29+0000\n"
1212"Last-Translator: Ibai Oihanguren Sala <Unknown>\n"
1313"Language-Team: Basque <eu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/fa.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-10-18 07:03+0000\n"
1212"Last-Translator: Danial Behzadi <dani.behzi@gmail.com>\n"
1313"Language-Team: Persian <fa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/fi.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-04 18:32+0000\n"
1212"Last-Translator: Jiri Grönroos <Unknown>\n"
1313"Language-Team: Finnish <fi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/fo.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-01-14 20:08+0000\n"
1212"Last-Translator: Jógvan Olsen <jo@jebster.net>\n"
1313"Language-Team: Faroese <fo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/fr.po+12−12
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
11−"PO-Revision-Date: 2016-12-17 14:32+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
11+"PO-Revision-Date: 2017-02-07 18:31+0000\n"
1212"Last-Translator: Anne017 <anneonyme017@openmailbox.org>\n"
1313"Language-Team: French <fr@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -24,15 +24,15 @@ msgstr "Mot de passe : "
2424
2525#: plugins/LightDM/Greeter.cpp:203
2626msgid "Username"
27−msgstr ""
27+msgstr "Nom d’utilisateur"
2828
2929#: plugins/LightDM/Greeter.cpp:242
3030msgid "Failed to authenticate"
31−msgstr ""
31+msgstr "Échec de l'authentification"
3232
3333#: plugins/LightDM/Greeter.cpp:244
3434msgid "Invalid password, please try again"
35−msgstr ""
35+msgstr "Mot de passe non valide, veuillez réessayer"
3636
3737#: plugins/LightDM/Greeter.cpp:254
3838msgid "Log In"
@@ -44,11 +44,11 @@ msgstr "Réessayer"
4444
4545#: plugins/LightDM/UsersModel.cpp:152
4646msgid "Login"
47−msgstr ""
47+msgstr "Se connecter"
4848
4949#: plugins/LightDM/UsersModel.cpp:160
5050msgid "Guest Session"
51−msgstr ""
51+msgstr "Session d'invité"
5252
5353#: plugins/Unity/Launcher/launcheritem.cpp:50
5454#: plugins/Unity/Launcher/launcheritem.cpp:122
@@ -151,7 +151,7 @@ msgstr "Alt + Impécr"
151151
152152#: qml/Components/KeyboardShortcutsOverlay.qml:80
153153msgid "Takes a screenshot of the current window."
154−msgstr ""
154+msgstr "Prend une capture d'écran de la fenêtre actuelle."
155155
156156#: qml/Components/KeyboardShortcutsOverlay.qml:88
157157msgid "Super + Space"
@@ -507,11 +507,11 @@ msgstr "Réessayer"
507507
508508#: qml/Greeter/Greeter.qml:562
509509msgid "Enter passphrase to unlock"
510−msgstr ""
510+msgstr "Saisir la phrase de passe pour déverrouiller"
511511
512512#: qml/Greeter/Greeter.qml:563
513513msgid "Enter passcode to unlock"
514−msgstr ""
514+msgstr "Saisissez votre mot de passe pour déverrouiller"
515515
516516#: qml/Greeter/NarrowView.qml:242
517517msgid "Emergency"
po/ga.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-01-25 11:33+0000\n"
1212"Last-Translator: Joshua Kiley <Unknown>\n"
1313"Language-Team: Irish <ga@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/gd.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-04-08 18:34+0000\n"
1212"Last-Translator: Akerbeltz <fios@akerbeltz.org>\n"
1313"Language-Team: Fòram na Gàidhlig\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
1818"(n > 2 && n < 20) ? 2 : 3;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121"Language: gd\n"
2222
2323#: plugins/LightDM/Greeter.cpp:188
po/gl.po+12−12
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
11−"PO-Revision-Date: 2016-12-16 00:21+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
11+"PO-Revision-Date: 2017-02-02 07:25+0000\n"
1212"Last-Translator: Marcos Lans <Unknown>\n"
1313"Language-Team: Galician <gl@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -24,15 +24,15 @@ msgstr "Contrasinal : "
2424
2525#: plugins/LightDM/Greeter.cpp:203
2626msgid "Username"
27−msgstr ""
27+msgstr "Nome do usuario"
2828
2929#: plugins/LightDM/Greeter.cpp:242
3030msgid "Failed to authenticate"
31−msgstr ""
31+msgstr "Produciuse un fallo na autenticación"
3232
3333#: plugins/LightDM/Greeter.cpp:244
3434msgid "Invalid password, please try again"
35−msgstr ""
35+msgstr "O contrasinal é incorrecto, ténteo de novo"
3636
3737#: plugins/LightDM/Greeter.cpp:254
3838msgid "Log In"
@@ -44,11 +44,11 @@ msgstr "Reintentar"
4444
4545#: plugins/LightDM/UsersModel.cpp:152
4646msgid "Login"
47−msgstr ""
47+msgstr "Iniciar sesión"
4848
4949#: plugins/LightDM/UsersModel.cpp:160
5050msgid "Guest Session"
51−msgstr ""
51+msgstr "Sesión de convidado"
5252
5353#: plugins/Unity/Launcher/launcheritem.cpp:50
5454#: plugins/Unity/Launcher/launcheritem.cpp:122
@@ -149,7 +149,7 @@ msgstr "Alt + ImpPant"
149149
150150#: qml/Components/KeyboardShortcutsOverlay.qml:80
151151msgid "Takes a screenshot of the current window."
152−msgstr ""
152+msgstr "Fai unha foto da xanela actual."
153153
154154#: qml/Components/KeyboardShortcutsOverlay.qml:88
155155msgid "Super + Space"
@@ -499,11 +499,11 @@ msgstr "Tentar de novo"
499499
500500#: qml/Greeter/Greeter.qml:562
501501msgid "Enter passphrase to unlock"
502−msgstr ""
502+msgstr "Escriba a frase secreta de desbloqueo"
503503
504504#: qml/Greeter/Greeter.qml:563
505505msgid "Enter passcode to unlock"
506−msgstr ""
506+msgstr "Escriba a clave de desbloqueo"
507507
508508#: qml/Greeter/NarrowView.qml:242
509509msgid "Emergency"
po/gv.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-04-02 14:24+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Manx <gv@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : (n == 2 ? 1 : 2);\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/he.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-12 08:47+0000\n"
1212"Last-Translator: Yaron <sh.yaron@gmail.com>\n"
1313"Language-Team: Hebrew <he@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/hi.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-01-15 01:49+0000\n"
1212"Last-Translator: Siddhanathan Shanmugam <Unknown>\n"
1313"Language-Team: Hindi <hi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/hr.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-05-04 17:52+0000\n"
1212"Last-Translator: gogo <trebelnik2@gmail.com>\n"
1313"Language-Team: Croatian <hr@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/hu.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-08-17 10:53+0000\n"
1212"Last-Translator: Richard Somlói <ricsipontaz@gmail.com>\n"
1313"Language-Team: Hungarian <hu@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/hy.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-10-28 06:34+0000\n"
1212"Last-Translator: Vahan Harutyunyan <Unknown>\n"
1313"Language-Team: Armenian <hy@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ia.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-08-25 19:31+0000\n"
1212"Last-Translator: karm <melo@carmu.com>\n"
1313"Language-Team: Interlingua <ia@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/id.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-06-26 22:35+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Indonesian <id@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/is.po+3−3
@@ -9,7 +9,7 @@ msgid ""
99msgstr ""
1010"Project-Id-Version: po_unity8-is\n"
1111"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
12−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
12+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1313"PO-Revision-Date: 2014-11-13 09:32+0000\n"
1414"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
1515"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
@@ -17,8 +17,8 @@ msgstr ""
1717"Content-Type: text/plain; charset=UTF-8\n"
1818"Content-Transfer-Encoding: 8bit\n"
1919"Plural-Forms: nplurals=2; plural=n != 1;\n"
20−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
21−"X-Generator: Launchpad (build 18315)\n"
20+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
21+"X-Generator: Launchpad (build 18326)\n"
2222"Language: is\n"
2323
2424#: plugins/LightDM/Greeter.cpp:188
po/it.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-09-11 10:40+0000\n"
1212"Last-Translator: Claudio Arseni <claudio.arseni@gmail.com>\n"
1313"Language-Team: Italian <it@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ja.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-10-05 10:05+0000\n"
1212"Last-Translator: Kentaro Kazuhama <Unknown>\n"
1313"Language-Team: Japanese <ja@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/km.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-08-20 02:48+0000\n"
1212"Last-Translator: Sophea Sok <sksophea@gmail.com>\n"
1313"Language-Team: Khmer <km@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/kn.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-06-27 05:43+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kannada <kn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ko.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-08-19 13:02+0000\n"
1212"Last-Translator: MinSik CHO <Unknown>\n"
1313"Language-Team: Korean <ko@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ku.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-09-10 13:14+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Kurdish <ku@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ky.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-06-27 06:17+0000\n"
1212"Last-Translator: Michał Sawicz <michal.sawicz@canonical.com>\n"
1313"Language-Team: Kirghiz <ky@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/lo.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-10-02 10:00+0000\n"
1212"Last-Translator: Anousak <anousak@gmail.com>\n"
1313"Language-Team: Lao <lo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/lt.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-05-19 17:15+0000\n"
1212"Last-Translator: Mantas Kriaučiūnas <mantas@akl.lt>\n"
1313"Language-Team: Lithuanian <lt@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"(n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/lv.po+3−3
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
11+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1212"PO-Revision-Date: 2015-11-22 19:13+0000\n"
1313"Last-Translator: Klavs Anson <anson.klavs@gmail.com>\n"
1414"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Type: text/plain; charset=UTF-8\n"
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121"Language: lv\n"
2222
2323#: plugins/LightDM/Greeter.cpp:188
po/ml.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-11-23 11:44+0000\n"
1212"Last-Translator: ST Alfas <Unknown>\n"
1313"Language-Team: Malayalam <ml@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/mr.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-01-14 19:54+0000\n"
1212"Last-Translator: Rohan Deshmukh <Unknown>\n"
1313"Language-Team: Marathi <mr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ms.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-12-20 14:02+0000\n"
1212"Last-Translator: abuyop <Unknown>\n"
1313"Language-Team: Malay <ms@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/my.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-12-12 11:12+0000\n"
1212"Last-Translator: Pyae Sone <Unknown>\n"
1313"Language-Team: Burmese <my@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/nb.po+13−13
@@ -7,16 +7,16 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
11−"PO-Revision-Date: 2016-10-30 17:41+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
11+"PO-Revision-Date: 2017-01-27 07:01+0000\n"
1212"Last-Translator: Åka Sikrom <Unknown>\n"
1313"Language-Team: Norwegian Bokmal <nb@li.org>\n"
1414"MIME-Version: 1.0\n"
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
@@ -207,11 +207,11 @@ msgstr "Tilsvarer å trykke på et oppstarterikon."
207207
208208#: qml/Components/KeyboardShortcutsOverlay.qml:177
209209msgid "Super + A"
210−msgstr ""
210+msgstr "Super + A"
211211
212212#: qml/Components/KeyboardShortcutsOverlay.qml:182
213213msgid "Opens the Application Drawer."
214−msgstr ""
214+msgstr "Åpner programmeny."
215215
216216#: qml/Components/KeyboardShortcutsOverlay.qml:194
217217msgid "Scopes"
@@ -361,19 +361,19 @@ msgstr ""
361361
362362#: qml/Components/VirtualTouchPad.qml:327
363363msgid "Tap left button to click."
364−msgstr ""
364+msgstr "Trykk på venstre knapp for å klikke."
365365
366366#: qml/Components/VirtualTouchPad.qml:339
367367msgid "Tap right button to right click."
368−msgstr ""
368+msgstr "Trykk på høyre knapp for å høyreklikke."
369369
370370#: qml/Components/VirtualTouchPad.qml:351
371371msgid "Swipe with two fingers to scroll."
372−msgstr ""
372+msgstr "Dra med to fingre for å rulle."
373373
374374#: qml/Components/VirtualTouchPad.qml:396
375375msgid "Find more settings in the system settings."
376−msgstr ""
376+msgstr "Finn flere instillinger i systeminstillinger."
377377
378378#: qml/Dash/DashPageHeader.qml:361
379379msgctxt "Button: Open the Ubuntu Store"
@@ -527,16 +527,16 @@ msgstr "Velg skrivebordsmiljø"
527527
528528#: qml/Launcher/Drawer.qml:92
529529msgid "Search…"
530−msgstr ""
530+msgstr "Søk …"
531531
532532#: qml/Launcher/Drawer.qml:123
533533msgctxt "Apps sorted alphabetically"
534534msgid "A-Z"
535−msgstr ""
535+msgstr "A-Å"
536536
537537#: qml/Launcher/MoreAppsHeader.qml:39
538538msgid "More apps in the store"
539−msgstr ""
539+msgstr "Flere programmer i butikken"
540540
541541#: qml/Notifications/NotificationMenuItemFactory.qml:124
542542msgid "Show password"
po/ne.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-12-06 15:11+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Nepali <ne@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/nl.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-11-01 08:29+0000\n"
1212"Last-Translator: Hannie Dumoleyn <Unknown>\n"
1313"Language-Team: Dutch <nl@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/nn.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-05-12 11:32+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Norwegian Nynorsk <nn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/oc.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-10-27 13:43+0000\n"
1212"Last-Translator: Cédric VALMARY (Tot en òc) <cvalmary@yahoo.fr>\n"
1313"Language-Team: Occitan (post 1500) <oc@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/or.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-03-21 05:28+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Oriya <or@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n!=1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/pa.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-04-24 04:29+0000\n"
1212"Last-Translator: Gursharnjit_Singh <ubuntuser13@gmail.com>\n"
1313"Language-Team: Punjabi <pa@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/pl.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-11-01 15:06+0000\n"
1212"Last-Translator: Krzysztof Tataradziński <Unknown>\n"
1313"Language-Team: Polish <pl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
1818"|| n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/pt.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-06-20 11:37+0000\n"
1212"Last-Translator: Ivo Xavier <ivoxavier.8@gmail.com>\n"
1313"Language-Team: Portuguese <pt@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/pt_BR.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-08-05 04:40+0000\n"
1212"Last-Translator: Julio Alexander Sieg <julio.sieg@gmail.com>\n"
1313"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:14+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ro.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-06 17:47+0000\n"
1212"Last-Translator: Meriuță Cornel <meriutacornel@neacornel.eu>\n"
1313"Language-Team: Romanian <ro@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n == 1 ? 0: (((n % 100 > 19) || ((n % 100 "
1818"== 0) && (n != 0))) ? 2: 1));\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/ru.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-06 05:33+0000\n"
1212"Last-Translator: ☠Jay ZDLin☠ <Unknown>\n"
1313"Language-Team: Russian <ru@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/shn.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-11-10 12:09+0000\n"
1212"Last-Translator: Rockworld <sumoisrock@gmail.com>\n"
1313"Language-Team: Shan <shn@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=(n == 1) ? 0 : 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/si.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-06-26 22:36+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Sinhalese <si@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/sk.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-09-28 04:43+0000\n"
1212"Last-Translator: P_E_T_O <Unknown>\n"
1313"Language-Team: Slovak <sk@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020"Language: sk\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
po/sl.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-01-31 18:34+0000\n"
1212"Last-Translator: Bernard Banko <Unknown>\n"
1313"Language-Team: Slovenian <sl@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
1818"n%100==4 ? 3 : 0);\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/sq.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-04-21 06:03+0000\n"
1212"Last-Translator: Indrit Bashkimi <indrit.bashkimi@gmail.com>\n"
1313"Language-Team: sq\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:12+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:58+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020"Language: sq\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
po/sr.po+3−3
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity\n"
1010"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
11−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
11+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1212"PO-Revision-Date: 2016-08-22 20:43+0000\n"
1313"Last-Translator: Bojan Bogdanović <Unknown>\n"
1414"Language-Team: српски <xfce4@xfce4.org>\n"
@@ -17,8 +17,8 @@ msgstr ""
1717"Content-Transfer-Encoding: 8bit\n"
1818"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1919"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
20−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
21−"X-Generator: Launchpad (build 18315)\n"
20+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
21+"X-Generator: Launchpad (build 18326)\n"
2222"Language: sr\n"
2323
2424#: plugins/LightDM/Greeter.cpp:188
po/sv.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-06-19 19:31+0000\n"
1212"Last-Translator: Josef Andersson <Unknown>\n"
1313"Language-Team: Swedish\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020"Language: sv\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
po/sw.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-17 20:02+0000\n"
1212"Last-Translator: Valentine <mwangi_valentino@yahoo.com>\n"
1313"Language-Team: Swahili <sw@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 04:59+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ta.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-10-24 11:36+0000\n"
1212"Last-Translator: Arun Kumar - அருண் குமார் <thangam.arunx@gmail.com>\n"
1313"Language-Team: Ubuntu Tamil Team/Free Tamil Computing/Thamizha\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020"Language: ta\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
po/te.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-07-19 10:04+0000\n"
1212"Last-Translator: Praveen Illa <mail2ipn@gmail.com>\n"
1313"Language-Team: Telugu <te@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/th.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-10-02 04:55+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Thai <th@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/tr.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-03-22 15:56+0000\n"
1212"Last-Translator: Arda Ünlü <aarda.uunlu@gmail.com>\n"
1313"Language-Team: Turkish <tr@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/ug.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-07-03 13:56+0000\n"
1212"Last-Translator: Eltikin <eltikinuyghur@hotmail.com>\n"
1313"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/uk.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2017-01-17 10:58+0000\n"
1212"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n"
1313"Language-Team: Ukrainian <uk@li.org>\n"
@@ -16,8 +16,8 @@ msgstr ""
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
1818"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
19−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
20−"X-Generator: Launchpad (build 18315)\n"
19+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
20+"X-Generator: Launchpad (build 18326)\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
2323msgid "Password: "
po/unity8.pot+1−1
@@ -8,7 +8,7 @@ msgid ""
88msgstr ""
99"Project-Id-Version: unity8\n"
1010"Report-Msgid-Bugs-To: \n"
11−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
11+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414"Language-Team: LANGUAGE <LL@li.org>\n"
po/ur.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-05-05 03:12+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Urdu <ur@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/uz.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-07-04 16:03+0000\n"
1212"Last-Translator: Learner <muzaffar.habibullayev@yandex.ru>\n"
1313"Language-Team: Uzbek <uz@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/vi.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-01-15 01:19+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Vietnamese <vi@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/wo.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2015-10-29 11:16+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Wolof <wo@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/xh.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2013-09-28 13:20+0000\n"
1212"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1313"Language-Team: Xhosa <xh@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/zh_CN.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-04-13 06:27+0000\n"
1212"Last-Translator: YunQiang Su <wzssyqa@gmail.com>\n"
1313"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:14+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/zh_HK.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity8\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2014-08-10 11:45+0000\n"
1212"Last-Translator: Daniel Cheung <daniel.2345@hotmail.com>\n"
1313"Language-Team: Chinese (Hong Kong) <zh_HK@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:13+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020
2121#: plugins/LightDM/Greeter.cpp:188
2222msgid "Password: "
po/zh_TW.po+3−3
@@ -7,7 +7,7 @@ msgid ""
77msgstr ""
88"Project-Id-Version: unity\n"
99"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10−"POT-Creation-Date: 2017-01-24 07:46+0000\n"
10+"POT-Creation-Date: 2017-02-06 09:12+0000\n"
1111"PO-Revision-Date: 2016-02-24 04:40+0000\n"
1212"Last-Translator: Po-Hsu Lin <po-hsu.lin@canonical.com>\n"
1313"Language-Team: Chinese (Traditional) <zh_TW@li.org>\n"
@@ -15,8 +15,8 @@ msgstr ""
1515"Content-Type: text/plain; charset=UTF-8\n"
1616"Content-Transfer-Encoding: 8bit\n"
1717"Plural-Forms: nplurals=1; plural=0;\n"
18−"X-Launchpad-Export-Date: 2017-01-27 06:14+0000\n"
19−"X-Generator: Launchpad (build 18315)\n"
18+"X-Launchpad-Export-Date: 2017-02-08 05:00+0000\n"
19+"X-Generator: Launchpad (build 18326)\n"
2020"Language: zh_TW\n"
2121
2222#: plugins/LightDM/Greeter.cpp:188
qml/Components/WindowControlButtons.qml+2
@@ -29,6 +29,7 @@ Row {
2929 property bool windowIsMaximized: false
3030 property bool closeButtonShown: true
3131 property bool maximizeButtonShown: true
32+ property bool minimizeButtonVisible: true
3233 property bool overlayShown
3334
3435 signal closeClicked()
@@ -75,6 +76,7 @@ Row {
7576 height: parent.height
7677 width: height
7778 onClicked: root.minimizeClicked()
79+ visible: root.minimizeButtonVisible
7880
7981 // We dont want touch events to fall through to parent,
8082 // otherwise the containsMouse will not work.
qml/Dash/CardGrid.qml+2−3
@@ -25,8 +25,7 @@ DashRenderer {
2525 return cardTool.template["collapsed-rows"];
2626 }
2727
28− // ↓ This is the ubuntu store icon
29− readonly property string backgroundShapeStyle: cardTool.isAppLikeScope && !cardTool.isAppLikeScopeAppCategory ? "shadow" : "flat"
28+ readonly property string backgroundShapeStyle: "flat"
3029
3130 expandedHeight: grid.totalContentHeight
3231 collapsedHeight: Math.min(grid.contentHeightForRows(collapsedRows, grid.cellHeight), expandedHeight)
@@ -46,7 +45,7 @@ DashRenderer {
4645 ResponsiveGridView {
4746 id: grid
4847 anchors.fill: parent
49− minimumHorizontalSpacing: (cardTool.isAppLikeScopeAppCategory && cardTool.isWideView) ? units.gu(5) : units.gu(1)
48+ minimumHorizontalSpacing: cardTool.isWideView ? units.gu(5) : units.gu(1)
5049 delegateWidth: cardTool.cardWidth
5150 delegateHeight: cardTool.cardHeight
5251 verticalSpacing: units.gu(1)
qml/Dash/CardTool.qml+2−26
@@ -77,16 +77,8 @@ Item {
7777 return layout;
7878 }
7979
80− readonly property bool isAppLikeScope: scopeId === "clickscope" || scopeId === "libertine-scope.ubuntu_libertine-scope"
81− readonly property bool isAppLikeScopeAppCategory: ((scopeId === "clickscope" && (categoryId === "predefined" || categoryId === "local"))
82− || (scopeId === "libertine-scope.ubuntu_libertine-scope" && categoryId !== "hint"))
83−
8480 readonly property string artShapeStyle: {
85− if (isAppLikeScope) {
86− return isAppLikeScopeAppCategory ? "icon" : "flat";
87− } else {
88− return categoryLayout === "carousel" ? "shadow" : "flat"
89− }
81+ return categoryLayout === "carousel" ? "shadow" : "flat"
9082 }
9183
9284 // FIXME ? This seems like it should not be needed, but on Qt 5.4 + phone
@@ -121,18 +113,6 @@ Item {
121113 If -1, should use implicit width of the actual card.
122114 */
123115 readonly property real cardWidth: {
124− if (isAppLikeScopeAppCategory) {
125− if (!isNarrowView) {
126− if (isWideView) {
127− return units.gu(11);
128− } else {
129− return units.gu(10);
130− }
131− } else {
132− return units.gu(12);
133− }
134− }
135−
136116 switch (categoryLayout) {
137117 case "grid":
138118 case "vertical-journal":
@@ -191,11 +171,7 @@ Item {
191171 readonly property int headerHeight: cardLoader.item ? cardLoader.item.headerHeight : 0
192172
193173 readonly property size artShapeSize: {
194− if (isAppLikeScopeAppCategory) {
195− return Qt.size(units.gu(8), units.gu(7.5));
196− } else {
197− return cardLoader.item ? cardLoader.item.artShapeSize : Qt.size(0, 0)
198− }
174+ return cardLoader.item ? cardLoader.item.artShapeSize : Qt.size(0, 0)
199175 }
200176
201177 QtObject {
qml/Dash/GenericScopeView.qml+1−1
@@ -582,7 +582,7 @@ FocusScope {
582582 showSignatureLine: !showBackButton
583583 searchEntryEnabled: true
584584 settingsEnabled: scopeView.scope && scopeView.scope.settings && scopeView.scope.settings.count > 0 || false
585− favoriteEnabled: scopeView.scope && scopeView.scope.id !== "clickscope"
585+ favoriteEnabled: scopeView.scope
586586 favorite: scopeView.scope && scopeView.scope.favorite
587587 navigationTag: scopeView.scope ? scopeView.scope.primaryNavigationTag : ""
588588 scopeStyle: scopeView.scopeStyle
qml/Dash/ScopesListCategory.qml+1−1
@@ -89,7 +89,7 @@ Item {
8989 icon: model.art || model.mascot || ""
9090 text: model.title || ""
9191 subtext: model.subtitle || ""
92− showStar: model.scopeId !== "clickscope" && (root.isFavoritesFeed || root.isAlsoInstalled)
92+ showStar: root.isFavoritesFeed || root.isAlsoInstalled
9393 isFavorite: root.isFavoritesFeed
9494
9595 hideChildren: dragItem.loaderToShrink == loader
qml/Stage/ChildWindow.qmlnew file+159
@@ -0,0 +1,159 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+import Unity.Application 0.1
20+
21+Item {
22+ id: root
23+
24+ // Set from outside.
25+ property var surface
26+ property Item boundsItem
27+ property Item target
28+ property alias requestedWidth: surfaceContainer.requestedWidth
29+ property alias requestedHeight: surfaceContainer.requestedHeight
30+
31+ width: surface ? surface.size.width : 0
32+ height: surface ? surface.size.height : 0
33+
34+ // Make it get shown and hidden with a fade in/out effect
35+ opacity: surface && surface.state !== Mir.MinimizedState && surface.state !== Mir.HiddenState ? 1.0 : 0.0
36+ Behavior on opacity { UbuntuNumberAnimation {} }
37+ visible: opacity !== 0.0 // make it transparent to input as well
38+
39+ readonly property bool dragging: windowResizeArea.dragging || d.touchOverlayDragging || d.moveHandlerDragging
40+
41+ QtObject {
42+ id: d
43+ readonly property bool decorated: surface ? surface.type === Mir.UtilityType
44+ || surface.type === Mir.DialogType
45+ || surface.type === Mir.NormalType
46+ : false
47+
48+ readonly property bool moveable: decorated
49+ readonly property bool resizeable: decorated
50+
51+ property alias decoration: decorationLoader.item
52+ property alias moveHandler: moveHandlerLoader.item
53+
54+ readonly property bool touchOverlayDragging: touchOverlayLoader.item ? touchOverlayLoader.item.dragging : false
55+ readonly property bool moveHandlerDragging: moveHandlerLoader.item ? moveHandlerLoader.item.dragging : false
56+ }
57+
58+ WindowResizeArea {
59+ id: windowResizeArea
60+ anchors {
61+ top: decorationLoader.top
62+ bottom: parent.bottom
63+ left: parent.left; right: parent.right
64+ }
65+ target: root.target
66+ boundsItem: root.boundsItem
67+ minWidth: units.gu(10)
68+ minHeight: units.gu(10)
69+ borderThickness: units.gu(2)
70+ enabled: d.resizeable
71+ visible: enabled
72+ onPressed: root.surface.activate();
73+ }
74+
75+ BorderImage {
76+ property real shadowThickness: root.surface && root.surface.focused ? units.gu(2) : units.gu(1.5)
77+ anchors {
78+ top: decorationLoader.top
79+ bottom: parent.bottom
80+ left: parent.left; right: parent.right
81+ margins: -shadowThickness
82+ }
83+ source: "../graphics/dropshadow2gu.sci"
84+ opacity: .3
85+ }
86+
87+ Loader {
88+ id: decorationLoader
89+ anchors.bottom: root.top
90+ anchors.left: root.left
91+ anchors.right: root.right
92+
93+ visible: active
94+ active: d.decorated
95+
96+ height: item ? item.height : 0
97+
98+ sourceComponent: Component {
99+ WindowDecoration {
100+ height: units.gu(3)
101+ title: root.surface ? root.surface.name : ""
102+ active: root.surface ? root.surface.focused : false
103+ closeButtonVisible: false
104+ minimizeButtonVisible: false
105+ maximizeButtonShown: false
106+ onPressed: root.surface.activate();
107+ onPressedChanged: if (d.moveHandler) { d.moveHandler.handlePressedChanged(pressed, pressedButtons, mouseX, mouseY); }
108+ onPositionChanged: if (d.moveHandler) {
109+ d.moveHandler.handlePositionChanged(mouse);
110+ }
111+ onReleased: if (d.moveHandler) { d.moveHandler.handleReleased(); }
112+ }
113+ }
114+ }
115+
116+ Loader {
117+ id: moveHandlerLoader
118+ active: d.moveable
119+ sourceComponent: Component {
120+ MoveHandler {
121+ target: root.target
122+ buttonsWidth: d.decoration ? d.decoration.buttonsWidth : 0
123+ boundsItem: root.boundsItem
124+ boundsTopMargin: decorationLoader.height
125+ }
126+ }
127+ }
128+
129+ SurfaceContainer {
130+ id: surfaceContainer
131+
132+ // Do not hold on to a dead surface so that it can be destroyed.
133+ // FIXME It should not be QML's job to release the MirSurface if its backing surface goes away. Instead backing
134+ // MirSurface should go away but the MirSurfaceItem should be able to live on with the last drawn frame
135+ // and properties.
136+ surface: root.surface && root.surface.live ? root.surface : null
137+
138+ requestedWidth: surface ? surface.size.width : 0
139+ requestedHeight: surface ? surface.size.height : 0
140+
141+ // TODO ChildWindow parent will probably want to control those
142+ interactive: true
143+ consumesInput: true
144+ }
145+
146+ Loader {
147+ id: touchOverlayLoader
148+ active: d.resizeable || d.moveable
149+ anchors.top: decorationLoader.top
150+ anchors.bottom: parent.bottom
151+ anchors.left: parent.left
152+ anchors.right: parent.right
153+ sourceComponent: Component { WindowControlsOverlay {
154+ target: root.target
155+ resizeArea: windowResizeArea
156+ boundsItem: root.boundsItem
157+ } }
158+ }
159+}
qml/Stage/ChildWindowRepeater.qmlnew file+28
@@ -0,0 +1,28 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+
19+// Meant to be created with a Loader to circumvent the "ChildWindowTree is instantiated recursively" error from the QML engine
20+Repeater {
21+ id: root
22+ property Item boundsItem
23+ delegate: ChildWindowTree {
24+ surface: model.surface
25+ z: root.count - model.index
26+ boundsItem: root.boundsItem
27+ }
28+}
qml/Stage/ChildWindowTree.qmlnew file+127
@@ -0,0 +1,127 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+import Unity.Application 0.1
20+
21+Item {
22+ id: root
23+
24+ property alias surface: childWindow.surface
25+ property real displacementX: 0
26+ property real displacementY: 0
27+ property alias boundsItem: childWindow.boundsItem
28+
29+ x: surface ? surface.position.x + displacementX : 0
30+ y: surface ? surface.position.y + displacementY : 0
31+ width: childWindow.width
32+ height: childWindow.height
33+
34+ ////
35+ // API expected by MoveHandler (and some by WindowResizeArea as well)
36+ readonly property bool maximized: false
37+ readonly property bool maximizedLeft: false
38+ readonly property bool maximizedRight: false
39+ readonly property bool maximizedHorizontally: false
40+ readonly property bool maximizedVertically: false
41+ readonly property bool maximizedTopLeft: false
42+ readonly property bool maximizedTopRight: false
43+ readonly property bool maximizedBottomLeft: false
44+ readonly property bool maximizedBottomRight: false
45+ readonly property bool anyMaximized: maximized || maximizedLeft || maximizedRight || maximizedHorizontally || maximizedVertically ||
46+ maximizedTopLeft || maximizedTopRight || maximizedBottomLeft || maximizedBottomRight
47+
48+ readonly property bool canBeCornerMaximized: false
49+ readonly property bool canBeMaximizedLeftRight: false
50+ readonly property bool canBeMaximized: false
51+
52+ readonly property var resizeArea: QtObject {
53+ property real normalWidth: units.gu(1)
54+ property real normalHeight: units.gu(1)
55+ }
56+
57+ readonly property bool windowedTransitionRunning: false
58+
59+ // NB: those bindings will be overwritten by MoveHandler when you first move the window
60+ property real windowedX: x
61+ property real windowedY: y
62+
63+
64+ property real restoredX
65+ property real restoredY
66+
67+ state: "restored"
68+ // end of API expected by MoveHandler
69+ ////
70+
71+ ////
72+ // API expected by WindowResizeArea
73+ property real windowedWidth: childWindow.width
74+ property real windowedHeight: childWindow.height
75+ // end of API expected by WindowResizeArea
76+ ////
77+
78+ ////
79+ // API expected by WindowControlsOverlay
80+ function activate() {
81+ surface.activate();
82+ }
83+ // end of API expected by WindowControlsOverlay
84+ ////
85+
86+ Binding {
87+ target: root.surface
88+ when: childWindow.dragging
89+ property: "requestedPosition"
90+ value: Qt.point(root.windowedX - root.displacementX,
91+ root.windowedY - root.displacementY);
92+ }
93+
94+ // It's a separate Item so that a window can be hid independently of its children
95+ ChildWindow {
96+ id: childWindow
97+ target: root
98+ requestedWidth: root.windowedWidth
99+ requestedHeight: root.windowedHeight
100+ }
101+
102+ Connections {
103+ target: root.surface
104+ onFocusRequested: {
105+ root.surface.activate();
106+ }
107+ }
108+
109+ // Using a loader here mainly to circunvent the "ChildWindowTree is instantiated recursively" error from the QML engine
110+ Loader {
111+ id: childRepeaterLoader
112+ source: "ChildWindowRepeater.qml"
113+ active: root.surface && root.surface.childSurfaceList.count > 0
114+ Binding {
115+ target: childRepeaterLoader.item
116+ when: childRepeaterLoader.item
117+ property: "model"
118+ value: root.surface ? root.surface.childSurfaceList : null
119+ }
120+ Binding {
121+ target: childRepeaterLoader.item
122+ when: childRepeaterLoader.item
123+ property: "boundsItem"
124+ value: root.boundsItem
125+ }
126+ }
127+}
qml/Stage/DecoratedWindow.qml+1−3
@@ -67,8 +67,7 @@ FocusScope {
6767 readonly property int heightIncrement: !counterRotate ? applicationWindow.heightIncrement : applicationWindow.widthIncrement
6868
6969 property alias overlayShown: decoration.overlayShown
70− property alias stageWidth: moveHandler.stageWidth
71− property alias stageHeight: moveHandler.stageHeight
70+ property alias boundsItem: moveHandler.boundsItem
7271 readonly property alias dragging: moveHandler.dragging
7372
7473 readonly property Item clientAreaItem: applicationWindow
@@ -292,7 +291,6 @@ FocusScope {
292291 objectName: "moveHandler"
293292 target: root.parent
294293 buttonsWidth: decoration.buttonsWidth
295− panelState: root.panelState
296294 }
297295
298296 Rectangle {
qml/Stage/MoveHandler.qml+23−19
@@ -19,16 +19,14 @@ import Unity.Application 0.1 // For Mir singleton
1919import Ubuntu.Components 1.3
2020import Utils 0.1
2121import "../Components"
22−import "../Components/PanelState"
2322
2423QtObject {
2524 id: root
2625
2726 property Item target // appDelegate
28− property int stageWidth
29− property int stageHeight
3027 property real buttonsWidth: 0
31− property PanelState panelState
28+ property Item boundsItem
29+ property real boundsTopMargin: 0
3230
3331 readonly property bool dragging: priv.dragging
3432
@@ -80,7 +78,10 @@ QtObject {
8078 // length of the triggerArea square diagonal
8179 var diagLength = Math.sqrt(2 * priv.triggerArea * priv.triggerArea);
8280 var ratio = 1 - (distance / diagLength);
83− return bx > 0 && bx <= stageWidth && by > 0 && by <= stageHeight ? ratio : 1; // everything "outside" of our square from the center is 1
81+
82+ // everything "outside" of our square from the center is 1
83+ var mousePosBoundsCoords = target.mapToItem(root.boundsItem, bx, by);
84+ return root.boundsItem.contains(mousePosBoundsCoords) ? ratio : 1;
8485 }
8586 property real progress: 0
8687 }
@@ -118,35 +119,38 @@ QtObject {
118119 target.requestRestore();
119120 }
120121
121− var pos = mapToItem(target.parent, mouse.x, mouse.y);
122+ var pos = mapToItem(target.parent, mouse.x, mouse.y); // How can that work if we're just a QtObject (not an Item)?
123+ var bounds = boundsItem.mapToItem(target.parent, 0, 0, boundsItem.width, boundsItem.height);
124+ bounds.y += boundsTopMargin;
125+ bounds.height -= boundsTopMargin;
122126 // Use integer coordinate values to ensure that target is left in a pixel-aligned
123127 // position. Mouse movement could have subpixel precision, yielding a fractional
124128 // mouse position.
125129 target.windowedX = Math.round(pos.x - priv.distanceX);
126− target.windowedY = Math.round(Math.max(pos.y - priv.distanceY, panelState.panelHeight));
130+ target.windowedY = Math.round(Math.max(pos.y - priv.distanceY, bounds.top));
127131
128132 if (sensingPoints) { // edge/corner detection when dragging via the touch overlay
129− if (sensingPoints.topLeft.x < priv.triggerArea && sensingPoints.topLeft.y < panelState.panelHeight + priv.triggerArea
133+ if (sensingPoints.topLeft.x < priv.triggerArea && sensingPoints.topLeft.y < bounds.top + priv.triggerArea
130134 && target.canBeCornerMaximized) { // top left
131− priv.progress = priv.progressInCorner(0, panelState.panelHeight, sensingPoints.topLeft.x, sensingPoints.topLeft.y);
135+ priv.progress = priv.progressInCorner(bounds.left, bounds.top, sensingPoints.topLeft.x, sensingPoints.topLeft.y);
132136 priv.resetEdges();
133137 priv.nearTopLeftCorner = true;
134138 root.fakeMaximizeTopLeftAnimationRequested(priv.progress);
135− } else if (sensingPoints.topRight.x > stageWidth - priv.triggerArea && sensingPoints.topRight.y < panelState.panelHeight + priv.triggerArea
139+ } else if (sensingPoints.topRight.x > bounds.right - priv.triggerArea && sensingPoints.topRight.y < bounds.top + priv.triggerArea
136140 && target.canBeCornerMaximized) { // top right
137− priv.progress = priv.progressInCorner(stageWidth, panelState.panelHeight, sensingPoints.topRight.x, sensingPoints.topRight.y);
141+ priv.progress = priv.progressInCorner(bounds.right, bounds.top, sensingPoints.topRight.x, sensingPoints.topRight.y);
138142 priv.resetEdges();
139143 priv.nearTopRightCorner = true;
140144 root.fakeMaximizeTopRightAnimationRequested(priv.progress);
141− } else if (sensingPoints.bottomLeft.x < priv.triggerArea && sensingPoints.bottomLeft.y > stageHeight - priv.triggerArea
145+ } else if (sensingPoints.bottomLeft.x < priv.triggerArea && sensingPoints.bottomLeft.y > bounds.bottom - priv.triggerArea
142146 && target.canBeCornerMaximized) { // bottom left
143− priv.progress = priv.progressInCorner(0, stageHeight, sensingPoints.bottomLeft.x, sensingPoints.bottomLeft.y);
147+ priv.progress = priv.progressInCorner(bounds.left, bounds.bottom, sensingPoints.bottomLeft.x, sensingPoints.bottomLeft.y);
144148 priv.resetEdges();
145149 priv.nearBottomLeftCorner = true;
146150 root.fakeMaximizeBottomLeftAnimationRequested(priv.progress);
147− } else if (sensingPoints.bottomRight.x > stageWidth - priv.triggerArea && sensingPoints.bottomRight.y > stageHeight - priv.triggerArea
151+ } else if (sensingPoints.bottomRight.x > bounds.right - priv.triggerArea && sensingPoints.bottomRight.y > bounds.bottom - priv.triggerArea
148152 && target.canBeCornerMaximized) { // bottom right
149− priv.progress = priv.progressInCorner(stageWidth, stageHeight, sensingPoints.bottomRight.x, sensingPoints.bottomRight.y);
153+ priv.progress = priv.progressInCorner(bounds.right, bounds.bottom, sensingPoints.bottomRight.x, sensingPoints.bottomRight.y);
150154 priv.resetEdges();
151155 priv.nearBottomRightCorner = true;
152156 root.fakeMaximizeBottomRightAnimationRequested(priv.progress);
@@ -155,13 +159,13 @@ QtObject {
155159 priv.resetEdges();
156160 priv.nearLeftEdge = true;
157161 root.fakeMaximizeLeftAnimationRequested(priv.progress);
158− } else if (sensingPoints.right.x > stageWidth - priv.triggerArea && target.canBeMaximizedLeftRight) { // right
159− priv.progress = MathUtils.clampAndProject(sensingPoints.right.x, stageWidth - priv.triggerArea, stageWidth, 0, 1);
162+ } else if (sensingPoints.right.x > bounds.right - priv.triggerArea && target.canBeMaximizedLeftRight) { // right
163+ priv.progress = MathUtils.clampAndProject(sensingPoints.right.x, bounds.right - priv.triggerArea, bounds.right, 0, 1);
160164 priv.resetEdges();
161165 priv.nearRightEdge = true;
162166 root.fakeMaximizeRightAnimationRequested(priv.progress);
163− } else if (sensingPoints.top.y < panelState.panelHeight + priv.triggerArea && target.canBeMaximized) { // top
164− priv.progress = MathUtils.clampAndProject(sensingPoints.top.y, panelState.panelHeight + priv.triggerArea, 0, 0, 1);
167+ } else if (sensingPoints.top.y < bounds.top + priv.triggerArea && target.canBeMaximized) { // top
168+ priv.progress = MathUtils.clampAndProject(sensingPoints.top.y, bounds.top + priv.triggerArea, 0, 0, 1);
165169 priv.resetEdges();
166170 priv.nearTopEdge = true;
167171 root.fakeMaximizeAnimationRequested(priv.progress);
qml/Stage/Stage.qml+50−11
@@ -101,7 +101,7 @@ FocusScope {
101101 } else {
102102 // No we didn't, do a quick alt-tab
103103 if (appRepeater.count > 1) {
104− appRepeater.itemAt(1).claimFocus();
104+ appRepeater.itemAt(1).activate();
105105 }
106106 }
107107 }
@@ -666,6 +666,13 @@ FocusScope {
666666 }
667667 }
668668
669+ Item {
670+ id: boundariesForWindowPlacement
671+ anchors.fill: parent
672+ anchors.topMargin: PanelState.panelHeight
673+ visible: false
674+ }
675+
669676 Repeater {
670677 id: appRepeater
671678 model: topLevelSurfaceList
@@ -834,7 +841,6 @@ FocusScope {
834841 readonly property var surface: model.window.surface
835842 readonly property var window: model.window
836843
837− readonly property alias resizeArea: resizeArea
838844 readonly property alias focusedSurface: decoratedWindow.focusedSurface
839845 readonly property bool dragging: touchControls.overlayShown ? touchControls.dragging : decoratedWindow.dragging
840846
@@ -891,7 +897,7 @@ FocusScope {
891897 screenWidth: appContainer.width
892898 screenHeight: appContainer.height
893899 leftMargin: root.leftMargin
894− minimumY: panelState.panelHeight
900+ minimumY: boundariesForWindowPlacement.y
895901 }
896902
897903 Connections {
@@ -1521,7 +1527,7 @@ FocusScope {
15211527 anchors.margins: touchControls.overlayShown ? borderThickness/2 : -borderThickness
15221528
15231529 target: appDelegate
1524− minimumY: panelState.panelHeight // disallow resizing up past Panel
1530+ boundsItem: boundariesForWindowPlacement
15251531 minWidth: units.gu(10)
15261532 minHeight: units.gu(10)
15271533 borderThickness: units.gu(2)
@@ -1540,7 +1546,7 @@ FocusScope {
15401546 anchors.top: appDelegate.top
15411547 application: model.application
15421548 surface: model.window.surface
1543− active: appDelegate.focus
1549+ active: model.window.focused
15441550 focus: true
15451551 interactive: root.interactive
15461552 showDecoration: 1
@@ -1549,9 +1555,7 @@ FocusScope {
15491555 width: implicitWidth
15501556 height: implicitHeight
15511557 highlightSize: windowInfoItem.iconMargin / 2
1552− stageWidth: appContainer.width
1553− stageHeight: appContainer.height
1554− panelState: root.panelState
1558+ boundsItem: boundariesForWindowPlacement
15551559
15561560 requestedWidth: appDelegate.requestedWidth
15571561 requestedHeight: appDelegate.requestedHeight
@@ -1606,12 +1610,12 @@ FocusScope {
16061610
16071611 WindowControlsOverlay {
16081612 id: touchControls
1613+ anchors.fill: appDelegate
16091614 target: appDelegate
1615+ resizeArea: resizeArea
16101616 enabled: false
16111617 visible: enabled
1612− stageWidth: appContainer.width
1613− stageHeight: appContainer.height
1614− panelState: root.panelState
1618+ boundsItem: boundariesForWindowPlacement
16151619
16161620 onFakeMaximizeAnimationRequested: if (!appDelegate.maximized) fakeRectangle.maximize(amount, true)
16171621 onFakeMaximizeLeftAnimationRequested: if (!appDelegate.maximizedLeft) fakeRectangle.maximizeLeft(amount, true)
@@ -1706,6 +1710,41 @@ FocusScope {
17061710 sourceSize.height: height
17071711 }
17081712 }
1713+
1714+ Item {
1715+ // Group all child windows in this item so that we can fade them out together when going to the spread
1716+ // (and fade them in back again when returning from it)
1717+ readonly property bool stageOnProperState: root.state === "windowed"
1718+ || root.state === "staged"
1719+ || root.state === "stagedWithSideStage"
1720+
1721+ // TODO: Is it worth the extra cost of layering to avoid the opacity artifacts of intersecting children?
1722+ // Btw, will involve more than uncommenting the line below as children won't necessarily fit this item's
1723+ // geometry. This is just a reference.
1724+ //layer.enabled: opacity !== 0.0 && opacity !== 1.0
1725+
1726+ opacity: stageOnProperState ? 1.0 : 0.0
1727+ visible: opacity !== 0.0 // make it transparent to input as well
1728+ Behavior on opacity { UbuntuNumberAnimation {} }
1729+
1730+ Repeater {
1731+ id: childWindowRepeater
1732+ model: appDelegate.surface ? appDelegate.surface.childSurfaceList : null
1733+
1734+ delegate: ChildWindowTree {
1735+ surface: model.surface
1736+
1737+ // Account for the displacement caused by window decoration in the top-level surface
1738+ // Ie, the top-level surface is not positioned at (0,0) of this ChildWindow's parent (appDelegate)
1739+ displacementX: appDelegate.clientAreaItem.x
1740+ displacementY: appDelegate.clientAreaItem.y
1741+
1742+ boundsItem: boundariesForWindowPlacement
1743+
1744+ z: childWindowRepeater.count - model.index
1745+ }
1746+ }
1747+ }
17091748 }
17101749 }
17111750 }
qml/Stage/WindowControlsOverlay.qml+21−26
@@ -18,18 +18,14 @@ import QtQuick 2.4
1818import Ubuntu.Components 1.3
1919import Ubuntu.Gestures 0.1
2020import Unity.Application 0.1
21−import "../Components/PanelState"
2221
2322Item {
2423 id: root
25− enabled: target && !target.fullscreen
26− anchors.fill: target
2724
2825 // to be set from outside
2926 property Item target // appDelegate
30− property PanelState panelState
31− property alias stageWidth: moveHandler.stageWidth
32− property alias stageHeight: moveHandler.stageHeight
27+ property WindowResizeArea resizeArea
28+ property Item boundsItem
3329
3430 // to be read from outside
3531 readonly property alias overlayShown: overlay.visible
@@ -91,9 +87,7 @@ Item {
9187
9288 QtObject {
9389 id: priv
94− readonly property var resizeArea: root.target && root.target.resizeArea ? root.target.resizeArea : null
95− readonly property bool ensureWindow: root.target.state == "normal" || root.target.state == "restored"
96− readonly property bool dragging: moveHandler.dragging || (resizeArea && resizeArea.dragging)
90+ readonly property bool dragging: moveHandler.dragging || (root.resizeArea && root.resizeArea.dragging)
9791
9892 function getSensingPoints() {
9993 var xPoints = [];
@@ -162,7 +156,8 @@ Item {
162156 id: moveHandler
163157 objectName: "moveHandler"
164158 target: root.target
165− panelState: root.panelState
159+
160+ boundsItem: root.boundsItem
166161
167162 onFakeMaximizeAnimationRequested: root.fakeMaximizeAnimationRequested(amount)
168163 onFakeMaximizeLeftAnimationRequested: root.fakeMaximizeLeftAnimationRequested(amount)
@@ -195,65 +190,65 @@ Item {
195190 ResizeGrip { // top left
196191 anchors.horizontalCenter: parent.left
197192 anchors.verticalCenter: parent.top
198− visible: priv.ensureWindow || target.maximizedBottomRight
199− resizeTarget: priv.resizeArea
193+ visible: root.enabled || target.maximizedBottomRight
194+ resizeTarget: root.resizeArea
200195 }
201196
202197 ResizeGrip { // top center
203198 anchors.horizontalCenter: parent.horizontalCenter
204199 anchors.verticalCenter: parent.top
205200 rotation: 45
206− visible: priv.ensureWindow || target.maximizedHorizontally || target.maximizedBottomLeft || target.maximizedBottomRight
207− resizeTarget: priv.resizeArea
201+ visible: root.enabled || target.maximizedHorizontally || target.maximizedBottomLeft || target.maximizedBottomRight
202+ resizeTarget: root.resizeArea
208203 }
209204
210205 ResizeGrip { // top right
211206 anchors.horizontalCenter: parent.right
212207 anchors.verticalCenter: parent.top
213208 rotation: 90
214− visible: priv.ensureWindow || target.maximizedBottomLeft
215− resizeTarget: priv.resizeArea
209+ visible: root.enabled || target.maximizedBottomLeft
210+ resizeTarget: root.resizeArea
216211 }
217212
218213 ResizeGrip { // right
219214 anchors.horizontalCenter: parent.right
220215 anchors.verticalCenter: parent.verticalCenter
221216 rotation: 135
222− visible: priv.ensureWindow || target.maximizedVertically || target.maximizedLeft ||
217+ visible: root.enabled || target.maximizedVertically || target.maximizedLeft ||
223218 target.maximizedTopLeft || target.maximizedBottomLeft
224− resizeTarget: priv.resizeArea
219+ resizeTarget: root.resizeArea
225220 }
226221
227222 ResizeGrip { // bottom right
228223 anchors.horizontalCenter: parent.right
229224 anchors.verticalCenter: parent.bottom
230− visible: priv.ensureWindow || target.maximizedTopLeft
231− resizeTarget: priv.resizeArea
225+ visible: root.enabled || target.maximizedTopLeft
226+ resizeTarget: root.resizeArea
232227 }
233228
234229 ResizeGrip { // bottom center
235230 anchors.horizontalCenter: parent.horizontalCenter
236231 anchors.verticalCenter: parent.bottom
237232 rotation: 45
238− visible: priv.ensureWindow || target.maximizedHorizontally || target.maximizedTopLeft || target.maximizedTopRight
239− resizeTarget: priv.resizeArea
233+ visible: root.enabled || target.maximizedHorizontally || target.maximizedTopLeft || target.maximizedTopRight
234+ resizeTarget: root.resizeArea
240235 }
241236
242237 ResizeGrip { // bottom left
243238 anchors.horizontalCenter: parent.left
244239 anchors.verticalCenter: parent.bottom
245240 rotation: 90
246− visible: priv.ensureWindow || target.maximizedTopRight
247− resizeTarget: priv.resizeArea
241+ visible: root.enabled || target.maximizedTopRight
242+ resizeTarget: root.resizeArea
248243 }
249244
250245 ResizeGrip { // left
251246 anchors.horizontalCenter: parent.left
252247 anchors.verticalCenter: parent.verticalCenter
253248 rotation: 135
254− visible: priv.ensureWindow || target.maximizedVertically || target.maximizedRight ||
249+ visible: root.enabled || target.maximizedVertically || target.maximizedRight ||
255250 target.maximizedTopRight || target.maximizedBottomRight
256− resizeTarget: priv.resizeArea
251+ resizeTarget: root.resizeArea
257252 }
258253 }
259254}
qml/Stage/WindowDecoration.qml+1
@@ -28,6 +28,7 @@ MouseArea {
2828 property alias closeButtonVisible: buttons.closeButtonShown
2929 property alias title: titleLabel.text
3030 property alias maximizeButtonShown: buttons.maximizeButtonShown
31+ property alias minimizeButtonVisible: buttons.minimizeButtonVisible
3132 property bool active: false
3233 property alias overlayShown: buttons.overlayShown
3334 property var menu: undefined
qml/Stage/WindowResizeArea.qml+3−2
@@ -32,7 +32,7 @@ MouseArea {
3232 // The area will anchor to it and manage resize events
3333 property Item target: null
3434 property int borderThickness: 0
35− property real minimumY: -100000000 // By default, impose no limit
35+ property Item boundsItem
3636 property int minWidth: 0
3737 property int minHeight: 0
3838
@@ -243,7 +243,8 @@ MouseArea {
243243 }
244244
245245 if (d.topBorder) {
246− var newTargetY = Math.max(d.startY + deltaY, root.minimumY);
246+ var bounds = boundsItem.mapToItem(target.parent, 0, 0, boundsItem.width, boundsItem.height);
247+ var newTargetY = Math.max(d.startY + deltaY, bounds.y);
247248 var bottomBorderY = target.windowedY + target.height;
248249 if (bottomBorderY > newTargetY + d.minimumHeight) {
249250 if (bottomBorderY < newTargetY + d.maximumHeight) {
tests/autopilot/unity8/dash.py+1−17
@@ -48,23 +48,7 @@ class Dash(ubuntuuitoolkit.UbuntuUIToolkitCustomProxyObjectBase):
4848 self.dash_content_list = self.wait_select_single(
4949 'QQuickListView', objectName='dashContentList')
5050
51− def get_applications_grid(self):
52− get_grid = self.get_scope('clickscope').wait_select_single(
53− 'CardGrid', objectName='local')
54− return get_grid
55−
56− def get_application_icon(self, text):
57− """Returns a 'Tile' icon that has the text 'text' from the application
58− grid.
59−
60− :param text: String containing the text of the icon to search for.
61−
62− """
63− app_grid = self.get_applications_grid()
64− resp_grid = app_grid.wait_select_single('ResponsiveGridView')
65− return resp_grid.select_single('Tile', text=text)
66−
67− def get_scope(self, scope_name='clickscope'):
51+ def get_scope(self, scope_name):
6852 return self.dash_content_list.wait_select_single(
6953 'QQuickLoader', scopeId=scope_name)
7054
tests/autopilot/unity8/shell/tests/test_helpers.py−49
@@ -99,12 +99,6 @@ class DashHelperTestCase(tests.DashBaseTestCase):
9999 self._assert_scope_is_opened(scope, scope_id)
100100 self.assertIsInstance(scope, dash_helpers.GenericScopeView)
101101
102− def test_open_applications_scope(self):
103− scope_id = 'clickscope'
104− scope = self.dash.open_scope(scope_id)
105− self._assert_scope_is_opened(scope, scope_id)
106− self.assertIsInstance(scope, dash_helpers.GenericScopeView)
107−
108102
109103class GenericScopeViewHelperTestCase(tests.DashBaseTestCase):
110104
@@ -122,46 +116,3 @@ class GenericScopeViewHelperTestCase(tests.DashBaseTestCase):
122116 """Open an item that requires swiping to make it visible."""
123117 preview = self.generic_scope.open_preview('2', 'Title.2.0')
124118 self.assertIsInstance(preview, dash_helpers.Preview)
125−
126−
127−class DashAppsHelperTestCase(tests.DashBaseTestCase):
128−
129− available_applications = [
130− 'Title.2.0', 'Title.2.1', 'Title.2.2', 'Title.2.3', 'Title.2.4',
131− 'Title.2.5', 'Title.2.6', 'Title.2.7', 'Title.2.8', 'Title.2.9',
132− 'Title.2.10', 'Title.2.11', 'Title.2.12', 'Title.2.13', 'Title.2.14',
133− 'Title.2.15', 'Title.2.16', 'Title.2.17', 'Title.2.18']
134−
135− def setUp(self):
136− # Set up the fake scopes before launching unity.
137− self.useFixture(fixture_setup.FakeScopes())
138− super().setUp()
139− self.applications_scope = self.dash.open_scope('clickscope')
140−
141− def test_get_applications_should_return_correct_applications(self):
142− category = '2'
143− category_element = self.applications_scope._get_category_element(
144− category)
145− list_view = self.dash.get_scope('clickscope')\
146− .select_single(dash_helpers.ListViewWithPageHeader)
147− expected_apps_count = self._get_number_of_application_slots(category)
148− expected_applications = self.available_applications[
149− :expected_apps_count]
150− x_center = list_view.globalRect.x + list_view.width / 2
151− y_center = list_view.globalRect.y + list_view.height / 2
152− y_diff = (
153− category_element.y - list_view.height + category_element.height
154− )
155− list_view._slow_drag(x_center, x_center, y_center, y_center - y_diff)
156− applications = self.applications_scope.get_applications(category)
157− self.assertEqual(expected_applications, applications)
158−
159− def _get_number_of_application_slots(self, category):
160− category_element = self.applications_scope._get_category_element(
161− category)
162− cardgrid = category_element.select_single('CardGrid')
163− if (category_element.expanded):
164− return cardgrid.select_single('QQuickGridView').count
165− else:
166− return cardgrid.collapsedRows \
167− * cardgrid.select_single('ResponsiveGridView').columns
tests/mocks/Unity/Application/ApplicationInfo.cpp+9−1
@@ -94,6 +94,7 @@ void ApplicationInfo::createPromptSurface()
9494 auto surface = surfaceManager->createSurface(QString("prompt foo"),
9595 Mir::NormalType,
9696 Mir::RestoredState,
97+ nullptr, /* parentSurface */
9798 screenshotUrl);
9899 surfaceManager->notifySurfaceCreated(surface);
99100
@@ -122,7 +123,9 @@ void ApplicationInfo::createSurface()
122123 auto surface = surfaceManager->createSurface(surfaceName,
123124 Mir::NormalType,
124125 fullscreen() ? Mir::FullscreenState : Mir::RestoredState,
125− m_screenshotFileName);
126+ nullptr, /* parentSurface */
127+ m_screenshotFileName,
128+ m_qmlFilePath);
126129
127130 surface->setShellChrome(m_shellChrome);
128131
@@ -201,6 +204,11 @@ void ApplicationInfo::setScreenshotId(const QString &screenshotId)
201204 }
202205}
203206
207+void ApplicationInfo::setQmlFilename(const QString &qmlFilename)
208+{
209+ m_qmlFilePath = QString("qrc:///Unity/Application/%1").arg(qmlFilename);
210+}
211+
204212void ApplicationInfo::setName(const QString &value)
205213{
206214 if (value != m_name) {
tests/mocks/Unity/Application/ApplicationInfo.h+3
@@ -29,6 +29,7 @@ class MirSurface;
2929
3030#include <QList>
3131#include <QTimer>
32+#include <QUrl>
3233
3334using namespace unity::shell::application;
3435
@@ -58,6 +59,7 @@ public:
5859
5960 void setIconId(const QString &iconId);
6061 void setScreenshotId(const QString &screenshotId);
62+ void setQmlFilename(const QString &);
6163
6264 void setAppId(const QString &value) { m_appId = value; }
6365 QString appId() const override { return m_appId; }
@@ -152,6 +154,7 @@ private:
152154 QList<MirSurface*> m_closingSurfaces;
153155 bool m_manualSurfaceCreation{false};
154156 Mir::ShellChrome m_shellChrome{Mir::NormalChrome};
157+ QUrl m_qmlFilePath;
155158};
156159
157160Q_DECLARE_METATYPE(ApplicationInfo*)
tests/mocks/Unity/Application/ApplicationManager.cpp+9
@@ -480,6 +480,15 @@ void ApplicationManager::buildListOfAvailableApplications()
480480 application->setName("Primary Oriented");
481481 application->setSupportedOrientations(Qt::PrimaryOrientation);
482482 m_availableApplications.append(application);
483+
484+ application = new ApplicationInfo(this);
485+ application->setAppId("kate");
486+ application->setName("Kate");
487+ application->setIconId("libreoffice");
488+ application->setScreenshotId("libreoffice");
489+ application->setQmlFilename("Kate.qml");
490+ application->setIsTouchApp(false);
491+ m_availableApplications.append(application);
483492}
484493
485494
tests/mocks/Unity/Application/MirSurface.cpp+43
@@ -74,6 +74,7 @@ using namespace unity::shell::application;
7474MirSurface::MirSurface(const QString& name,
7575 Mir::Type type,
7676 Mir::State state,
77+ MirSurface *parentSurface,
7778 const QUrl& screenshot,
7879 const QUrl &qmlFilePath)
7980 : unity::shell::application::MirSurfaceInterface(nullptr)
@@ -90,6 +91,8 @@ MirSurface::MirSurface(const QString& name,
9091 , m_height(-1)
9192 , m_slowToResize(false)
9293 , m_shellChrome(Mir::NormalChrome)
94+ , m_parentSurface(parentSurface)
95+ , m_childSurfaceList(new MirSurfaceListModel(this))
9396{
9497 DEBUG_MSG("state=" << stateToStr(state));
9598
@@ -493,6 +496,36 @@ void MirSurface::setInputBounds(const QRect &boundsRect)
493496 }
494497}
495498
499+void MirSurface::openMenu(qreal x, qreal y, qreal width, qreal height)
500+{
501+ auto *menu = SurfaceManager::instance()->createSurface("menu", Mir::MenuType, Mir::HiddenState,
502+ this /* parentSurface */,
503+ QUrl() /* screenshot */,
504+ QUrl("qrc:///Unity/Application/KateMenu.qml"));
505+
506+ menu->setRequestedPosition(QPoint(x,y));
507+ menu->resize(width, height);
508+ menu->requestState(Mir::RestoredState);
509+
510+ SurfaceManager::instance()->notifySurfaceCreated(menu);
511+}
512+
513+void MirSurface::openDialog(qreal x, qreal y, qreal width, qreal height)
514+{
515+ auto *dialog = SurfaceManager::instance()->createSurface("dialog", Mir::DialogType, Mir::HiddenState,
516+ this /* parentSurface */,
517+ QUrl() /* screenshot */,
518+ QUrl("qrc:///Unity/Application/KateDialog.qml"));
519+
520+ dialog->setRequestedPosition(QPoint(x,y));
521+ dialog->resize(width, height);
522+ dialog->requestState(Mir::RestoredState);
523+
524+ SurfaceManager::instance()->notifySurfaceCreated(dialog);
525+
526+ dialog->requestFocus();
527+}
528+
496529void MirSurface::setRequestedPosition(const QPoint &value)
497530{
498531 if (value != m_requestedPosition) {
@@ -505,3 +538,13 @@ void MirSurface::setRequestedPosition(const QPoint &value)
505538 Q_EMIT positionChanged(m_position);
506539 }
507540}
541+
542+MirSurfaceInterface* MirSurface::parentSurface() const
543+{
544+ return m_parentSurface;
545+}
546+
547+MirSurfaceListInterface* MirSurface::childSurfaceList() const
548+{
549+ return m_childSurfaceList;
550+}
tests/mocks/Unity/Application/MirSurface.h+11
@@ -45,6 +45,7 @@ public:
4545 MirSurface(const QString& name,
4646 Mir::Type type,
4747 Mir::State state,
48+ MirSurface *parentSurface,
4849 const QUrl& screenshot,
4950 const QUrl &qmlFilePath = QUrl());
5051 virtual ~MirSurface();
@@ -94,6 +95,9 @@ public:
9495 QPoint requestedPosition() const override { return m_requestedPosition; }
9596 void setRequestedPosition(const QPoint &) override;
9697
98+ unity::shell::application::MirSurfaceInterface* parentSurface() const override;
99+ unity::shell::application::MirSurfaceListInterface* childSurfaceList() const override;
100+
97101 Q_INVOKABLE void close() override;
98102 Q_INVOKABLE void activate() override;
99103
@@ -121,6 +125,9 @@ public:
121125
122126 Q_INVOKABLE virtual void setInputBounds(const QRect &boundsRect);
123127
128+ Q_INVOKABLE void openMenu(qreal x, qreal y, qreal width, qreal height);
129+ Q_INVOKABLE void openDialog(qreal x, qreal y, qreal width, qreal height);
130+
124131 /////
125132 // internal mock stuff
126133
@@ -216,6 +223,10 @@ private:
216223
217224 QPoint m_position;
218225 QPoint m_requestedPosition;
226+
227+ unity::shell::application::MirSurfaceInterface* m_parentSurface;
228+
229+ MirSurfaceListModel *m_childSurfaceList;
219230};
220231
221232#endif // MOCK_MIR_SURFACE_H
tests/mocks/Unity/Application/MirSurfaceItem.cpp+19−4
@@ -159,7 +159,9 @@ void MirSurfaceItem::setOrientationAngle(Mir::OrientationAngle angle)
159159
160160 if (m_qmlItem) {
161161 QQmlProperty orientationProp(m_qmlItem, "orientationAngle");
162− orientationProp.write(QVariant::fromValue(orientationAngle()));
162+ if (orientationProp.isValid()) {
163+ orientationProp.write(QVariant::fromValue(orientationAngle()));
164+ }
163165 }
164166}
165167
@@ -167,7 +169,9 @@ void MirSurfaceItem::updateScreenshot(QUrl screenshotUrl)
167169{
168170 if (m_qmlItem) {
169171 QQmlProperty screenshotSource(m_qmlItem, "screenshotSource");
170− screenshotSource.write(QVariant::fromValue(screenshotUrl));
172+ if (screenshotSource.isValid()) {
173+ screenshotSource.write(QVariant::fromValue(screenshotUrl));
174+ }
171175 }
172176}
173177
@@ -193,12 +197,23 @@ void MirSurfaceItem::createQmlContentItem()
193197
194198 {
195199 QQmlProperty screenshotSource(m_qmlItem, "screenshotSource");
196− screenshotSource.write(QVariant::fromValue(m_qmlSurface->screenshotUrl()));
200+ if (screenshotSource.isValid()) {
201+ screenshotSource.write(QVariant::fromValue(m_qmlSurface->screenshotUrl()));
202+ }
197203 }
198204
199205 {
200206 QQmlProperty orientationProp(m_qmlItem, "orientationAngle");
201− orientationProp.write(QVariant::fromValue(orientationAngle()));
207+ if (orientationProp.isValid()) {
208+ orientationProp.write(QVariant::fromValue(orientationAngle()));
209+ }
210+ }
211+
212+ {
213+ QQmlProperty surfaceProperty(m_qmlItem, "surface");
214+ if (surfaceProperty.isValid()) {
215+ surfaceProperty.write(QVariant::fromValue(m_qmlSurface));
216+ }
202217 }
203218}
204219
tests/mocks/Unity/Application/MirSurfaceListModel.h−1
@@ -44,7 +44,6 @@ public:
4444 bool contains(MirSurface *surface) const { return m_surfaceList.contains(surface); }
4545
4646private:
47− void appendSurface(MirSurface *surface);
4847 void raise(MirSurface *surface);
4948 void moveSurface(int from, int to);
5049 void connectSurface(MirSurface *surface);
tests/mocks/Unity/Application/SurfaceManager.cpp+15−8
@@ -61,10 +61,15 @@ SurfaceManager::~SurfaceManager()
6161MirSurface *SurfaceManager::createSurface(const QString& name,
6262 Mir::Type type,
6363 Mir::State state,
64− const QUrl& screenshot)
64+ MirSurface *parentSurface,
65+ const QUrl &screenshot,
66+ const QUrl &qmlFilePath)
6567{
66− MirSurface* surface = new MirSurface(name, type, state, screenshot);
68+ MirSurface* surface = new MirSurface(name, type, state, parentSurface, screenshot, qmlFilePath);
6769 registerSurface(surface);
70+ if (parentSurface) {
71+ static_cast<MirSurfaceListModel*>(parentSurface->childSurfaceList())->addSurface(surface);
72+ }
6873 return surface;
6974}
7075
@@ -72,12 +77,14 @@ void SurfaceManager::registerSurface(MirSurface *surface)
7277{
7378 m_surfaces.prepend(surface);
7479
75− surface->setMinimumWidth(m_newSurfaceMinimumWidth);
76− surface->setMaximumWidth(m_newSurfaceMaximumWidth);
77− surface->setMinimumHeight(m_newSurfaceMinimumHeight);
78− surface->setMaximumHeight(m_newSurfaceMaximumHeight);
79− surface->setWidthIncrement(m_newSurfaceWidthIncrement);
80− surface->setHeightIncrement(m_newSurfaceHeightIncrement);
80+ if (!surface->parentSurface()) {
81+ surface->setMinimumWidth(m_newSurfaceMinimumWidth);
82+ surface->setMaximumWidth(m_newSurfaceMaximumWidth);
83+ surface->setMinimumHeight(m_newSurfaceMinimumHeight);
84+ surface->setMaximumHeight(m_newSurfaceMaximumHeight);
85+ surface->setWidthIncrement(m_newSurfaceWidthIncrement);
86+ surface->setHeightIncrement(m_newSurfaceHeightIncrement);
87+ }
8188
8289 connect(surface, &MirSurface::stateRequested, this, [=](Mir::State state) {
8390 this->onStateRequested(surface, state);
tests/mocks/Unity/Application/SurfaceManager.h+3−1
@@ -49,7 +49,9 @@ public:
4949 Q_INVOKABLE MirSurface* createSurface(const QString& name,
5050 Mir::Type type,
5151 Mir::State state,
52− const QUrl& screenshot);
52+ MirSurface *parentSurface,
53+ const QUrl &screenshot,
54+ const QUrl &qmlFilePath = QUrl());
5355
5456
5557 void notifySurfaceCreated(unity::shell::application::MirSurfaceInterface *);
tests/mocks/Unity/Application/VirtualKeyboard.cpp+5−4
@@ -24,10 +24,11 @@
2424
2525VirtualKeyboard::VirtualKeyboard()
2626 : MirSurface("input-method",
27− Mir::InputMethodType,
28− Mir::MinimizedState,
29− QUrl("qrc:///Unity/Application/vkb_portrait.png"),
30− QUrl("qrc:///Unity/Application/VirtualKeyboard.qml"))
27+ Mir::InputMethodType,
28+ Mir::MinimizedState,
29+ nullptr, /* parentSurface */
30+ QUrl("qrc:///Unity/Application/vkb_portrait.png"),
31+ QUrl("qrc:///Unity/Application/VirtualKeyboard.qml"))
3132{
3233}
3334
tests/mocks/Unity/Application/resources/Kate.qmlnew file+49
@@ -0,0 +1,49 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+
20+Rectangle {
21+ id: root
22+ color: "white"
23+ implicitWidth: width
24+ implicitHeight: height
25+
26+ property var surface
27+
28+ Column {
29+ Button {
30+ text: "Open Menu"
31+ property real nextY: y
32+ property real menuHeight: units.gu(5)
33+ onClicked: {
34+ surface.openMenu(x+width, nextY, units.gu(10), menuHeight);
35+ nextY += menuHeight + units.gu(.5)
36+ }
37+ }
38+
39+ Button {
40+ text: "Open Dialog"
41+ property real dialogWidth: units.gu(30)
42+ property real dialogHeight: units.gu(20)
43+ onClicked: {
44+ surface.openDialog(root.x+(root.width/2)-(dialogWidth/2), root.y+(root.height/2)-(dialogHeight/2),
45+ dialogWidth, dialogHeight);
46+ }
47+ }
48+ }
49+}
tests/mocks/Unity/Application/resources/KateDialog.qmlnew file+48
@@ -0,0 +1,48 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+
20+Rectangle {
21+ id: root
22+ color: "grey"
23+ implicitWidth: width
24+ implicitHeight: height
25+
26+ property var surface
27+
28+ Text {
29+ anchors.left: parent.left
30+ anchors.right: parent.right
31+ horizontalAlignment: Text.AlignHCenter
32+ verticalAlignment: Text.AlignVCenter
33+ text: "This is a child dialog."
34+ }
35+
36+ Row {
37+ anchors.bottom: parent.bottom
38+ anchors.right: parent.right
39+ Button {
40+ text: "OK"
41+ onClicked: root.surface.close()
42+ }
43+ Button {
44+ text: "Cancel"
45+ onClicked: root.surface.close()
46+ }
47+ }
48+}
tests/mocks/Unity/Application/resources/KateMenu.qmlnew file+41
@@ -0,0 +1,41 @@
1+/*
2+ * Copyright (C) 2016 Canonical, Ltd.
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; version 3.
7+ *
8+ * This program is distributed in the hope that it will be useful,
9+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
10+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+ * GNU General Public License for more details.
12+ *
13+ * You should have received a copy of the GNU General Public License
14+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
15+ */
16+
17+import QtQuick 2.4
18+import Ubuntu.Components 1.3
19+
20+Rectangle {
21+ id: root
22+ color: "grey"
23+ implicitWidth: width
24+ implicitHeight: height
25+
26+ property var surface
27+
28+ Text {
29+ anchors.centerIn: parent
30+ text: "menu"
31+ }
32+ MouseArea {
33+ anchors.fill: parent
34+ property real nextY: 0
35+ onClicked: {
36+ // ensure some overlap with is parent in order to visually check for nested opacity artifacts
37+ root.surface.openMenu(x+(width*0.6), nextY, units.gu(10), root.height);
38+ nextY += root.height
39+ }
40+ }
41+}
tests/mocks/Unity/Application/resources/surfaces.qrc+3
@@ -1,5 +1,8 @@
11<RCC>
22 <qresource prefix="/Unity/Application">
3+ <file>Kate.qml</file>
4+ <file>KateDialog.qml</file>
5+ <file>KateMenu.qml</file>
36 <file>VirtualKeyboard.qml</file>
47 <file>MirSurfaceItem.qml</file>
58 <file>vkb_portrait.png</file>
tests/mocks/Unity/fake_scopes.cpp−1
@@ -60,7 +60,6 @@ void Scopes::updateScopes()
6060 addScope(new Scope("MockScope7", "MS7", false, this));
6161 addScope(new Scope("MockScope8", "MS8", false, this));
6262 addScope(new Scope("MockScope9", "MS9", false, this));
63− addScope(new Scope("libertine-scope.ubuntu_libertine-scope", "Libertine", true, this));
6463
6564 Scope *longNavigationScope = new Scope(
6665 "LongPrimaryNavigation", "LongPrimaryNavigation", true, this, 1, false,
tests/qmltests/Dash/tst_Dash.qml+1−48
@@ -58,7 +58,7 @@ Item {
5858 tryCompare(dashContentList, "count", 0);
5959 scopes.load();
6060 tryCompare(dashContentList, "currentIndex", 0);
61− tryCompare(dashContentList, "count", 28);
61+ tryCompare(dashContentList, "count", 27);
6262 tryCompare(scopes, "loaded", true);
6363 tryCompareFunction(function() {
6464 var mockScope1Loader = findChild(dash, "scopeLoader0");
@@ -192,24 +192,6 @@ Item {
192192 tryCompare(expandingItem, "visible", false)
193193 }
194194
195− function test_manage_dash_clickscope_unfavoritable() {
196− open_manage_dash();
197−
198− // Click scope star area is not visible (i.e. can't be unfavorited)
199− var favScopesListCategoryList = findChild(findChild(dash, "scopesListCategoryfavorites"), "scopesListCategoryInnerList");
200− var clickScope = findChild(favScopesListCategoryList, "delegateclickscope");
201− var starArea = findChild(clickScope, "starArea");
202− compare(starArea.visible, false);
203−
204− // Go back
205− var bottomEdgeController = findInvisibleChild(dash, "bottomEdgeController");
206− var scopesList = findChild(dash, "scopesList");
207− var scopesListPageHeader = findChild(scopesList, "pageHeader");
208− var backButton = findChild(scopesListPageHeader, "innerPageHeader").leadingActionBar;
209− mouseClick(backButton);
210− tryCompare(bottomEdgeController, "progress", 0);
211− }
212−
213195 function test_manage_dash_select_same_favorite() {
214196 open_manage_dash();
215197
@@ -627,35 +609,6 @@ Item {
627609 tryCompare(dashContent, "x", 0);
628610 }
629611
630− function test_cardIconStyle()
631− {
632− dash.setCurrentScope("clickscope");
633− var dashContent = findChild(dash, "dashContent");
634− tryCompare(dashContent.currentScope, "id", "clickscope");
635−
636− scrollToCategory("dashCategorypredefined");
637− tryCompareFunction(function() {
638− var tile = getCategoryDelegate("predefined", 2);
639− var proportionalShape = findChildsByType(tile, "UCProportionalShape");
640− return proportionalShape.length === 1;
641− },
642− true
643− );
644−
645− dash.setCurrentScope("libertine-scope.ubuntu_libertine-scope");
646− var dashContent = findChild(dash, "dashContent");
647− tryCompare(dashContent.currentScope, "id", "libertine-scope.ubuntu_libertine-scope");
648−
649− scrollToCategory("dashCategory2");
650− tryCompareFunction(function() {
651− var tile = getCategoryDelegate("2", 2);
652− var proportionalShape = findChildsByType(tile, "UCProportionalShape");
653− return proportionalShape.length === 1;
654− },
655− true
656− );
657− }
658−
659612 function test_tempScopeItemXOnResize()
660613 {
661614 // Go to a temp scope
tests/qmltests/Dash/tst_DashContent.qml+3−3
@@ -70,7 +70,7 @@ Item {
7070 function loadScopes() {
7171 scopeLoadedSpy.clear();
7272 scopesModel.load();
73− tryCompare(scopeLoadedSpy, "count", 28, 15000);
73+ tryCompare(scopeLoadedSpy, "count", 27, 15000);
7474 tryCompare(scopesModel, "loaded", true);
7575 tryCompareFunction(function() {
7676 var mockScope1Loader = findChild(shell, "scopeLoader0");
@@ -120,11 +120,11 @@ Item {
120120 scopesModel.clear();
121121 compare(dashContentList.count, 0, "DashContent should have 0 items after clearing");
122122 // pretend we're running after a model reset
123− dashContentList.currentIndex = 27;
123+ dashContentList.currentIndex = 26;
124124
125125 loadScopes();
126126
127− compare(dashContentList.count, 28);
127+ compare(dashContentList.count, 27);
128128 verify(dashContentList.currentIndex >= 0 && dashContentList.currentIndex < dashContentList.count);
129129 }
130130
tests/qmltests/Dash/tst_GenericScopeView.qml+5−21
@@ -84,6 +84,7 @@ Item {
8484 genericScopeView.scope = scopes.getScope(2);
8585 genericScopeView.isCurrent = true;
8686 shell.width = units.gu(120);
87+ shell.height = units.gu(100);
8788 genericScopeView.categoryView.positionAtBeginning();
8889 waitForRendering(genericScopeView.categoryView);
8990 }
@@ -195,6 +196,8 @@ Item {
195196 }
196197
197198 function test_expand_collapse() {
199+ shell.height = units.gu(120);
200+
198201 tryCompareFunction(function() { return findChild(genericScopeView, "dashSectionHeader0", 0 /* timeout */) != null; }, true);
199202
200203 var category = findChild(genericScopeView, "dashCategory0")
@@ -531,6 +534,8 @@ Item {
531534 }
532535
533536 function test_seeAllTwoCategoriesScenario2() {
537+ shell.height = units.gu(120);
538+
534539 mockScope.setId("mockScope");
535540 mockScope.setName("Mock Scope");
536541 mockScope.isActive = true;
@@ -587,7 +592,6 @@ Item {
587592 var innerHeader = findChild(header, "innerPageHeader");
588593 verify(innerHeader, "Could not find the inner header");
589594
590− expectFail("Apps", "Click scope should not have a favorite button");
591595 var favoriteAction = findChild(innerHeader, "favorite_button");
592596 verify(favoriteAction, "Could not find the favorite action.");
593597 mouseClick(favoriteAction);
@@ -697,26 +701,6 @@ Item {
697701 var shape = findChildsByType(artShapeLoader, "UCUbuntuShape");
698702 compare(shape.borderSource, undefined);
699703 }
700−
701− function test_clickScopeSizing() {
702− genericScopeView.scope = scopes.getScopeFromAll("clickscope");
703− waitForRendering(genericScopeView);
704−
705− var categoryListView = findChild(genericScopeView, "categoryListView");
706− waitForRendering(categoryListView);
707−
708− var categorypredefined = findChild(categoryListView, "dashCategorypredefined");
709− waitForRendering(categorypredefined);
710−
711− var cardTool = findChild(categorypredefined, "cardTool");
712−
713− compare(cardTool.cardWidth, units.gu(11));
714− shell.width = units.gu(46);
715− waitForRendering(genericScopeView);
716− compare(cardTool.cardWidth, units.gu(10));
717−
718− shell.width = units.gu(120)
719− }
720704 }
721705 }
722706}
tests/qmltests/Stage/ApplicationCheckBox.qml+1−1
@@ -162,7 +162,7 @@ Column {
162162 }
163163 }
164164
165− // Rows of application surfaces
165+ // Rows of top-level application surfaces
166166 Repeater {
167167 model: d.application ? d.application.surfaceList : null
168168 RowLayout {
tests/qmltests/Stage/tst_WindowResizeArea.qml+10
@@ -83,6 +83,7 @@ Item {
8383 id: windowResizeArea
8484 anchors.fill: parent
8585 target: fakeWindow
86+ boundsItem: bounds
8687 borderThickness: units.gu(2)
8788 minWidth: units.gu(15)
8889 minHeight: units.gu(10)
@@ -114,7 +115,16 @@ Item {
114115 active: windowLoaderCheckbox.checked
115116 }
116117
118+ Item {
119+ id: bounds
120+ anchors.left: parent.left
121+ anchors.top: parent.top
122+ anchors.right: controls.left
123+ anchors.bottom: parent.bottom
124+ }
125+
117126 Rectangle {
127+ id: controls
118128 anchors.right: parent.right
119129 anchors.top: parent.top
120130 anchors.bottom: parent.bottom